Trigger buttons click event for DropDown Button
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2
3         * Toolbar.cs: Triggers button click event when click on icon
4         of dropdown ToolBarButton. Fixes #79912.
5         
6 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7
8         * Theme.cs:
9         * ThemeWin32Classic.cs:
10         - Added a property WindowBorderFont to enable themeing
11           of mdi child windows' Text.
12           
13 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
14
15         * InternalWindowManager.cs:
16         * Form.cs:
17         * MdiClient.cs:
18         * MdiWindowManager.cs: 
19         - If mdi child is maximized, set mdi parent's
20           text to "Parent - [Child]". Fixes #79770.
21         - If there is any maximized mdi child windows, only the active 
22           window (and any new windows) is maximized, the rest are normal.
23         - On a WindowState change only save mdi child's window bounds 
24           if the old window state was normal. Fixes #79774.
25         - The scroll bars are now calculated on hopefully all
26           necessary events. Fixed #79771 / #79844->6 / #79906.
27         - MdiClient.SizeScrollBars() now takes into account docked 
28           controls in the parent when calculating available space.
29         - InternalWindowManager now always repaints the entire title
30           area. Fixes #79844->1/4/5.
31         - Added RequestNCRecalc on mdi child windowstate changes.
32           Fixes #79772.
33
34 2006-11-20  Mike Kestner  <mkestner@novell.com>
35
36         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
37         in the MouseUp handler of the listbox and move the return handling
38         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
39
40 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
41
42         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
43
44 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
45
46         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
47           working in 1.2.x anymore. So, updated.
48
49 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
50
51         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
52         NumberGroupSeparator of current culture instead of assuming en-US.
53         Fixed bug #79967.
54
55 2006-11-17  Mike Kestner  <mkestner@novell.com>
56
57         * Control.cs: Add the concept of implicit bounds setting so that
58         dock/undock round trips preserve explicitly set size/locations.
59         Fixes #79313.
60
61 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
62
63         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
64           can't handle those filters. (Fixes bug #79961)
65
66 2006-11-17  Chris Toshok  <toshok@ximian.com>
67
68         [ fixes the exit/crashes associated with #79835.  it's clearly
69         suboptimal though, we need to figure out a better way to solve
70         this. ]
71         
72         * PrintPreviewControl.cs: deal with the new invalid printer
73         exceptions.
74
75         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
76         and return false (so CommonDialog.ShowDialog doesn't actually show
77         the form.)
78
79         * PrintDialog.cs: enable/disable the Ok button depending on
80         whether or not the printer is valid.
81
82         * CommonDialog.cs (ShowDialog): only actually show the form if
83         RunDialog returns true.
84
85 2006-11-17  Jackson Harper  <jackson@ximian.com>
86
87         * TextControl.cs: When soft splitting a line, mark it as a soft
88         split line. Also carry over the current line break to the next
89         line.
90
91 2006-11-17  Chris Toshok  <toshok@ximian.com>
92
93         * XplatUIX11.cs: when scrolling a window with an invalid area, we
94         only want to shift the part of the invalid area that overlaps the
95         area we're scrolling.  we also don't want to clear the invalid
96         area unless the invalid area was entirely contained within the
97         scrolling area.
98
99 2006-11-16  Chris Toshok  <toshok@ximian.com>
100
101         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
102         also make sure to free the memory returned by XGetWindowProperty
103         in GetText().
104
105         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
106
107 2006-11-16  Chris Toshok  <toshok@ximian.com>
108
109         * XplatUI.cs: add a new super secret way to get at the totally
110         unsupported X11 backend.
111
112 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
113
114         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
115
116 2006-11-16  Jackson Harper  <jackson@ximian.com>
117
118         * TreeView.cs: Allow more explicit setting of top node position
119         for scrollbars. Slower algo, but more accurate.
120         - CollapseAll should maintain the current top node.
121         * TextBoxBase.cs: When positioning the caret, use the line, pos
122         method, since the x, y method does not grab the correct tag, and
123         the caret height never gets set correctly. (Maybe I should just do
124         away with the caret having its own height, and always use the
125         carets current tag for height).
126
127 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
128
129         [Fixes 79778, 79923]
130
131         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
132         Parent to the FosterParent instead.
133
134 2006-11-16  Jackson Harper  <jackson@ximian.com>
135
136         * TreeView.cs: Need to recalc the topnode when we expand or
137         collapse. The scrolling methods can't handle this on their own,
138         since they use differences between the last scroll position, and
139         those difference get completely messed up since we are expanding
140         nodes.  This problem should probably be fixed in the scrolling
141         methods, so they can figure out exactly where they are, but this
142         will slow things down a little.
143         * ThemeWin32Classic.cs: Special case for groupboxes with empty
144         strings, makes nunit-gui look a lot nicer.
145
146 2006-11-16  Chris Toshok  <toshok@ximian.com>
147
148         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
149         the broken multithreaded event handling we have in here.  File
150         this entry under "Why we should move to the new X11 backend".
151
152         Any thread can make it into UpdateMessageQueue, which gets events
153         from the X socket - some of which could belong to hwnds being
154         managed by a different thread.  We can also have multiple threads
155         in UpdateMessageQueue at the same time, with each one reading from
156         the X socket.  This leads to many problems, with the following
157         solutions:
158
159         We can't use hwnd.Queue.Enqueue anywhere in here and must use
160         EnqueueLocked.
161
162         The MotionNotify compression we do can't work across threads
163         (without locking the entire queue, perhaps) since we call
164         hwnd.Queue.Peek, so we just punt and don't compress motion events
165         unless the owning thread is the one which got the X event.
166
167         ConfigureNotify is another fun one, since it modifies the hwnd's
168         bounds and then enqueues the event.  We add a lock to Hwnd which
169         is held when setting configure_pending to true (and enqueuing the
170         event).
171
172         There is a race wrt the wake socket.  we need to make sure that
173         only 1 thread is waiting on that socket, or else a thread could
174         sleep waiting for data that never comes.  It's difficult (but not
175         impossible) to make happen, because it seems to require something
176         like the following:
177
178             1. Thread 1 polls on wake_receive
179         
180             2. poll returns saying there's data to be read on
181                wake_receive.
182         
183             3. Thread 2 polls on wake_receive and immediately returns
184                saying there's data to be read.
185
186             4. Thread 2 reads the wakeup byte from wake_receive
187
188             5. Thread 1 attempts to read the wakeup byte from
189                wake_receive.
190
191             6. Thread 2 exits (due to a form closing, perhaps).
192
193             7. Thread 1 blocks forever.
194         
195         Fun, eh?
196
197         Fixing the Expose handling isn't done yet, and the races inherent
198         in that piece of code are responsible for the drawing mistakes you
199         see when generating expose events in a MT app (like NPlot).  This
200         one is the likely to be the hardest to bandaid, and it doesn't
201         appear to cause anything but drawing problems.  The other issues
202         caused apps to exit or hang.
203
204         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
205         called from a different thread than the one that should be calling
206         these functions.
207
208         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
209
210 2006-11-15  Chris Toshok  <toshok@ximian.com>
211
212         * Application.cs: null out the context's MainForm when we exit
213         RunLoop.  Fixes a newly checked in unit test as well as the last
214         ODE from bug #79933.
215
216 2006-11-15  Chris Toshok  <toshok@ximian.com>
217
218         * Form.cs (set_Owner): allow a null value so we can clear the
219         form's owner.
220         (Dispose): set all our owned_form's Owner properties to null, and
221         clear the owned_forms collection.
222         (WM_CLOSE): clean up this a little bit.. still not right though.
223
224         * ApplicationContext.cs: OnMainFormClosed should only call
225         ExitThreadCore if the main form isn't recreating.  Fixes unit
226         test.
227
228 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
229
230         [Fixes 78346]
231
232         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
233
234 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
235
236         [Fixes 79433]
237
238         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
239         keep popup window types from stealing focus from the main form
240         on Windows.
241
242         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
243
244         * MenuAPI.cs: Set above flag to true.
245
246 2006-11-15  Chris Toshok  <toshok@ximian.com>
247
248         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
249         the button being released is not in wParam.
250
251 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
252
253         * Form.cs: Add the released button to MouseEventArgs.Button
254         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
255         on Win32.
256
257 2006-11-15  Chris Toshok  <toshok@ximian.com>
258
259         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
260         GetText().  untested because it's unused in our implementation.
261         Control.Text always caches the text, even if
262         ControlStyles.CacheText is not set.
263
264         fixes bug #79939.
265
266 2006-11-15  Chris Toshok  <toshok@ximian.com>
267
268         [ fixes #79933 ]
269         
270         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
271         message.  no hiding, no disposing.
272
273         in the WM_CLOSE handler, hide the form if it's modal.
274
275 2006-11-15  Chris Toshok  <toshok@ximian.com>
276
277         * XplatUIX11.cs: use AddExpose instead of sending a message.
278         fixes textbox border drawing.
279
280 2006-11-15  Chris Toshok  <toshok@ximian.com>
281
282         * PropertyGridView.cs: keep from crashing on mouse move/down when
283         the property grid is empty.
284
285 2006-11-14  Jackson Harper  <jackson@ximian.com>
286
287         * TextControl.cs: Make PageUp and PageDown more like the MS
288         versions.
289         * TextBoxBase.cs: When we set the text property position the
290         cursor at the beginning of the document.
291
292 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
293
294         * Form.cs: if a mdi child's WindowState has changed
295         before it's creation, it would display wrong control
296         buttons.
297         
298 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
299
300         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
301           (Fixes bug #79927)
302
303 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
304
305         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
306         the window gets to paint its borders even if the window is
307         getting smaller.
308         
309         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
310         otherwise the old control buttons would still be painted 
311         if the window gets bigger.
312         
313         * PaintEventArgs.cs: add an internal method so that the clip 
314         rectangle can be changed.
315         
316 2006-11-13  Chris Toshok  <toshok@ximian.com>
317
318         [ fixes bug #79745 ]
319         
320         * NotifyIcon.cs: lots of cleanup.
321
322         * X11Structs.cs: add an enum for XEMBED messages.
323
324         * XplatUIX11.cs: reindent one of the giant switch statements, it
325         was taking up an additional tab stop, and this file is already way
326         too wide for my laptop's screen.
327
328         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
329         we get it, resize the hwnd to the WMNormalHints max_width/height.
330
331 2006-11-13  Jackson Harper  <jackson@ximian.com>
332
333         * TextBoxBase.cs: Compute the value changes for the mouse wheel
334         teh simple way.
335
336 2006-11-13  Chris Toshok  <toshok@ximian.com>
337
338         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
339         #79898.  force a reference to the Region to stick around so the
340         unmanaged object isn't collected (rendering our handle in the MSG
341         stale).
342
343 2006-11-13  Chris Toshok  <toshok@ximian.com>
344
345         * XplatUIX11.cs: fix #79917 for window managers which support
346
347         using XStoreName on the raw utf8, and we need to convert to
348         COMPOUND_TEXT if it's non-latin1.
349
350 2006-11-13  Chris Toshok  <toshok@ximian.com>
351
352         * Form.cs (set_DialogResult): we need to set closing to false if
353         we're setting our result to None.  fixes bug #79908.
354
355 2006-11-13  Jackson Harper  <jackson@ximian.com>
356
357         * TextControl.cs: When formatting text, compute the adjusted tag
358         lengths correctly, using FindTag for the end tag instead of trying
359         to figure it out outselves.
360         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
361         the item, ItemHeight doesn't work, because trees with large
362         imagelists use those for their height
363         * TreeView.cs: ActualItemHeight factors in the image height
364         - compute left edge of checkboxes correctly
365         - when expanding/collapsing move the bottom down one pixel, so we
366         aren't moving part of the node
367
368 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
369
370         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
371         stack in PaintEventStart so that it won't get disposed by the gc
372         before reaching PaintEventEnd.
373
374 2006-11-13  Jackson Harper  <jackson@ximian.com>
375
376         * TextBoxBase.cs: Don't select the word if we are on a line with
377         no text.
378         - We don't need to position the caret on mouse up, since the mouse
379         move handler should be doing this
380         - When double clicking a blank line, the caret is advanced to the
381         next line.
382
383 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
384
385         * TreeNodeCollection.cs: Avoid duplicating indexer code.
386
387 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
388
389         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
390         Fixes part of bug #79910.
391
392 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
393
394         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
395           (bug #79903). Some minor string updates to match ms.
396
397 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
398
399         * FileDialog.cs: Don't add an extension if the filename
400           already ends with that extension.
401
402 2006-11-10  Jackson Harper  <jackson@ximian.com>
403
404         * TreeView.cs: Use the currently highlighted node for the
405         BeforeSelect event.
406         * TextBoxBase.cs: There is no need to expand selection on
407         MouseMove.
408         - CanUndo means 'is there any undo operations', not 'is undo
409         allowed on this textcontrol. Fixed ClearUndo unit test.
410
411 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
412
413         * Button.cs: only perform click when button is Selectable (so as 
414         not to activate default buttons when they're disabled)
415         
416         * Control.cs: Rewrite of the SelectNextControl and related 
417         methods. HandleClick now selects next control if the current one
418         is being disabled.
419         
420         * Form.cs: OnActivated selects next active control only if Load 
421         has already occurred. If Load hasn't run, there's no point in 
422         selecting here, Load might change the state of controls.
423         
424         * FocusTest.cs: Tests marked as working again for these fixes
425
426 2006-11-10  Chris Toshok  <toshok@ximian.com>
427
428         * XplatUIX11.cs: a couple of fixes.
429
430         - use XInternAtoms with almost all the atoms we need to register,
431         instead of many, many calls to XInternAtom.  should help a bit on
432         startup time, at the expense of making the code look a little
433         worse.
434
435         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
436         isn't reparented (which seems to be a clue that we're running fon
437         compiz) and they have an Owner form.  This fixes the tool windows
438         in paint.net when running under compiz.
439
440         - when setting the opacity of a window, support both the case
441         where the window has been reparented and also when it hasn't been.
442         Since compiz/beryl doesn't seem to reparent windows, and these are
443         the only window managers which support translucency, I'm not sure
444         why we need the hwnd.reparented case at all.. but leave it in.
445         now we get translucent windows in paint.net under compiz/beryl.
446
447 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
448
449         * FileDialog.cs: Always return the value for FilterIndex that
450           was set. Internally convert it to values that make sense.
451
452 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
453         
454         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
455
456 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
457
458         * Toolbar.cs: Change default value of DropDownArrows to true, the 
459         signature still using false to make it compatible with MS but the 
460         initial value is true. Fixes #79855.
461
462 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
463
464         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
465           only available on Linux.
466
467 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
468
469         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
470         reduce number of calls to redraw method during toolbar creation.
471
472 2006-11-09  Mike Kestner  <mkestner@novell.com>
473
474         * ListView.cs : raise SelectedIndexChanged when an item is selected
475         programmatically via the Item.Selected property.  Gert's nice 
476         ListViewSelectedIndexChanged test fixture now runs clean.
477
478 2006-11-09  Mike Kestner  <mkestner@novell.com>
479
480         * ListView.cs : raise SelectedIndexChanged when a selected item is
481         removed from the item collection using Remove or RemoveAt.
482
483 2006-11-09  Mike Kestner  <mkestner@novell.com>
484
485         * ListView.cs : raise SelectedIndexChanged once per selected item
486         for compat with MS.  Fixes #79849+.
487
488 2006-11-09  Chris Toshok  <toshok@ximian.com>
489
490         * TabControl.cs: initialize row_count to 0, and set it to 1 when
491         we need to (if we have any tab pages).  Fixes unit test.
492
493 2006-11-09  Chris Toshok  <toshok@ximian.com>
494
495         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
496         width is 0, not 3.  Fixes a unit test.
497
498 2006-11-09  Mike Kestner  <mkestner@novell.com>
499
500         * ListView.cs : use Implicit scrollbars so that focus isn't 
501         stolen from the listview when they are clicked. Fixes #79850.
502
503 2006-11-09  Chris Toshok  <toshok@ximian.com>
504
505         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
506         have a root item.  Fixes #79879.
507
508 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
509
510         * FileDialog.cs:
511           - Fix ToString ()
512           - An ArgumentException is now thrown if a wrong filter
513             is applied (matches ms). The previous filter doesn't change
514             anymore if an exception is thrown.
515           - Changing the FileName property also affects FileNames
516         * ColorDialog.cs: The length of the CustomColors array is always
517           16. It doesn't matter if we use a smaller array or null to update
518           or change the custom colors property.
519         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
520           for RootFolder if we get a undefined value.
521
522 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
523
524         * StatusBarPanel.cs: 
525         - Width is set to MinWidth if Width is smaller than
526         MinWidth. Fixes #79842.
527         - MinWidth now always overrides Width (MSDN says MinWidth
528         is set to Width when AutoSize = None, but they do not 
529         behave like that).
530         - Style has now the the correct default value.
531         
532 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
533  
534         * TrackBar.cs: 
535         - The control is completely invalidated on 
536         Got/LostFocus to draw the focus rectangle correctly.
537         - When AutoSize then height is always 45 (width for 
538         vertical controls).
539         
540         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
541         on the mouse when moved and it doesn't move when grabbed
542         until the mouse moves as well. Also fixed some wrong 
543         calculations when clicking on the thumb (control thought
544         click was outside of thumb and didn't grab it).
545         Fixes some of the issues in #79718.
546
547 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
548
549         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
550
551 2006-11-08  Chris Toshok  <toshok@ximian.com>
552
553         * PropertyGridView.cs: only call ToggleValue if the item is not
554         readonly.
555
556 2006-11-08  Jackson Harper  <jackson@ximian.com>
557
558         * TextBoxBase.cs: The RichTextBox and textbox have very different
559         word selection methods.  Implement the textbox's simple word
560         selection here, and let the RichTextBox override and provide it's
561         own.
562         - Don't do extra selection on mouseup
563         * RichTextBox.cs: Use the documents word selection algorithm, I
564         think ideally, this function will be pulled into the
565         RichTextBox.cs code someday.
566
567 2006-11-08  Chris Toshok  <toshok@ximian.com>
568
569         * RootGridEntry.cs: new class to represent GridItemType.Root.
570
571         * CategoryGridEntry.cs: reformat, and add boilerplate.
572         
573         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
574         returns the UI parent anyway, and we need special handling to
575         implement the GetTarget method in the face of it.  Also, implement
576         Select().
577
578         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
579         a root grid item, and use that instead of PropertyGrid.grid_items.
580         Also, make use of TypeConverters (and add limitted support for
581         ICustomTypeDescriptors) when initially populating the grid.
582         Arrays now show up more or less properly.
583
584 2006-11-08  Chris Toshok  <toshok@ximian.com>
585
586         * Application.cs: set the modal dialog to non modal after we close
587         it.  Fixes bug #79866.
588
589 2006-11-08  Jackson Harper  <jackson@ximian.com>
590
591         * TextControl.cs: When combining lines carry over the line end
592         style from the end line.
593         - Invalidate the selected area when setting it, if it is visible.
594         * TextBoxBase.cs: Only rich text box can do full line selects.
595         - Make sure to set the cursor position when there is a click,
596         otherwise two clicks in separate areas could cause a large chunk
597         to be selected.
598
599 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
600
601         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
602         Fixes #79863.
603
604 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
605
606         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
607         time. Remove tooltips when ToolButton click events.  Fixes #79856.
608
609 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
610
611         * MenuAPI.cs: Ignore right click for menu actions and fixes
612         menu border when clicked.  Fixes #79846.
613
614 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
615
616         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
617         MouseState after create wParam for message, this fixes mouse button 
618         equal none in mouse up events.
619         
620 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
621
622         * Control.cs : Focus() now calls Select to set the Container's
623         Active Control and to give it focus. To avoid infinite recursion
624         (because ActiveControl also calls Focus at one point), a check 
625         is made in Focus with the help of a new internal variable
626         is_focusing.
627
628 2006-11-07  Mike Kestner  <mkestner@novell.com>
629
630         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
631         if there's a selection.  Fixes #79849.
632
633 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
634
635         * PropertyGrid.cs: Avoid fixed height of help description label.
636         Fixes part of bug #79829.
637
638 2006-11-07  Chris Toshok  <toshok@ximian.com>
639
640         * XplatUIX11.cs: fix #79790 again, by using the
641         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
642
643 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
644
645         * ToolBar.cs: Fix left click checking.
646
647 2006-11-07  Chris Toshok  <toshok@ximian.com>
648
649         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
650
651 2006-11-07  Chris Toshok  <toshok@ximian.com>
652
653         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
654         PropertyManager unit tests.
655
656         * PropertyManager.cs: make property_name internal.
657
658 2006-11-07  Chris Toshok  <toshok@ximian.com>
659
660         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
661         pass a unit test.  Also, don't set image_index to anything in
662         response to setting the ImageList property.
663
664 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
665
666         * ToolBar.cs: Ignore click events when mouse button is not a
667         left button, only accepts other button for dropdown menus.  
668         Fixes #79854.
669
670 2006-11-07  Chris Toshok  <toshok@ximian.com>
671
672         * DataGrid.cs: make the back and parent row buttons a little less
673         ugly.
674
675 2006-11-07  Jackson Harper  <jackson@ximian.com>
676
677         * TextBoxBase.cs: When converting to Text don't put line breaks in
678         for soft line breaks.
679         * TextControl.cs: There is an initial "fake" line in the document,
680         this is now a soft break line, so that an extra line feed doesn't
681         get added to the end of documents.
682
683 2006-11-07  Chris Toshok  <toshok@ximian.com>
684
685         [ fix bug #79778 ]
686         
687         * CurrencyManager.cs: if the list is readonly, don't bother
688         checking if IBindingList.AllowNew is true.
689
690         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
691         for non-DataRowView datasources..  or rather, make it not crash.
692         (DataGridPaintRelationRow): make sure we limit the row painting to
693         the area not covered by the row header, and make our cell width at
694         least large enough to cover the relation area.  This allows grids
695         that have relations but no rows to render correctly.
696         (DataGridPaintRowContents): same type of changes here.
697         (SetDataSource): move back to always calling
698         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
699         navigating back through relations.
700         (HitTest): handle the case where we have no cells but have
701         relations.  Right now we generate a hit in cell 0 of whatever the
702         row is, not sure if this is strictly correct, but it works for our
703         purposes.
704         
705         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
706         bother doing anything.
707
708 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
709
710         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
711         early version of StatusStrip.  Not responsible for eaten
712         application or firstborn children.
713
714 2006-11-06  Chris Toshok  <toshok@ximian.com>
715
716         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
717         call GetTabRect with a -1 index.  Fixes #79847.
718
719 2006-11-06  Jackson Harper  <jackson@ximian.com>
720
721         * TreeNodeCollection.cs: Update scrollbars after clearing.
722
723 2006-11-06  Chris Toshok  <toshok@ximian.com>
724
725         * NumericUpDown.cs: fix the ToString method for some unit test
726         love.
727
728 2006-11-06  Chris Toshok  <toshok@ximian.com>
729
730         * PropertyGrid.cs:
731         - set the initial SelectedGridItem if we can.
732
733         - Exclude non-mergable properties only if we're merging > 1
734         object.  Merging 1 object isn't really merging, obviously.
735
736         - Handle PropertySort.NoSort just like Alphabetical, which is
737         wrong of course, but at least gets things on the screen.
738         
739         * PropertyGridView.cs:
740         - Add method "FindFirstItem" which finds the first property grid
741         item, so we can select it by default.
742
743         - make use of GridEntry.CanResetValue.
744
745         - Don't call RedrawBelowItemOnExpansion here anymore, the
746         individual GridEntry's will do that.
747
748         - Remove the ITypeDescriptorContextImpl internal class.
749         
750         * GridEntry.cs:
751         - this class needs to implement ITypeDescriptorContext, as it's
752         what MS's PropertyDescriptorGridEntry does, which means we can
753         remove the ITypeDescriptorContextImpl internal class from
754         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
755
756         - keep a reference to our PropertyGridView, and move the call to
757         RedrawBelowItemOnExpansion here from PGV.  This means
758         programmaticly setting Expanded actually does something visible.
759
760         - add a CanResetValue() function which takes into account our
761         possibly multiple "selected_objects" in the merged case.  Shifting
762         PropertyGridView to use this method fixes another unreported
763         crasher found running the test for #79829.
764
765         - when Top or Bounds is updated, make sure the PropertyGridTextBox
766         is updated to reflect this.
767
768         * CategoryGridEntry.cs: the ctor takes the PGV now.
769         
770 2006-11-06  Jackson Harper  <jackson@ximian.com>
771
772         * TextControl.cs: These are 1 based.
773         * TextBoxBase.cs: When setting the selected text, don't change the
774         selected text tags, this is done by ReplaceText, just position the
775         cursor at the end of the new text.
776
777 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
778
779         * ListView.cs: Allow label edit only when, when LabelEdit is
780           set to true.
781
782 2006-11-06  Jackson Harper  <jackson@ximian.com>
783
784         * TextControl.cs: If a suitable wrapping position isn't found,
785         just wrap right in the middle of a word.
786
787 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
788
789         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
790           bug #79820.
791
792 2006-11-06  Jackson Harper  <jackson@ximian.com>
793
794         * TreeView.cs: Can't use the VisibleCount property when setting
795         scrollbar heights, because this doesn't take into account whether
796         or not the horz scrollbar just came visible.
797
798 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
799
800         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
801         activated.  Fixes #79369, #79832.
802
803 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
804
805         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
806           had to remove support for links that point to a directory. FileInfo
807           returns no usefull information (means, the directory they point to)
808           for such links. Replaced some empty string ("") with String.Empty.
809
810 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
811
812         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
813         NullReferenceException when attempting to remove node that is not in
814         collection. Throw NullReferenceException when null is passed to 
815         Remove. Allow first element of the collection to be removed. Fixes
816         bug #79831.  In GetEnumerator ().Current return null if positioned 
817         before the first element of the collection. In GetEnumerator ().Reset,
818         position before first element of the collection.
819
820 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
821
822         * PropertyGrid.cs: To match MS, remove default title and description
823         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
824         buttons.
825
826 2006-11-04  Chris Toshok  <toshok@ximian.com>
827
828         * Theme.cs: add a Clamp method, just for kicks.
829
830         * ThemeWin32Classic.cs: clamp all color components to [0..255].
831
832 2006-11-04  Chris Toshok  <toshok@ximian.com>
833
834         * Form.cs: if the form isn't visible, Close() does nothing.
835
836 2006-11-03  Chris Toshok  <toshok@ximian.com>
837
838         * Form.cs (Close): if the form is modal, don't Dispose of it, only
839         Hide it.
840         (WndProc): don't Dispose after handling the WM_CLOSE message.
841
842         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
843         them as such, instead of using casts from Control to Form.  Also,
844         don't Dispose of the modal dialog when we fall out of the loop -
845         Close() it instead.
846
847         fixes bug #79813.
848
849 2006-11-03  Chris Toshok  <toshok@ximian.com>
850
851         * Control.cs (Dispose): only go through the dispose thing if we're
852         @disposing, and we haven't already been disposed.  Fixes bug
853         #79814.
854
855         * Form.cs: no reason to call "base.Dispose()" here instead of
856         "Dispose()".
857
858 2006-11-03  Mike Kestner  <mkestner@novell.com>
859
860         * ComboBox.cs : use ToString instead of casts in AddItem for
861         sorting functionality.  Fixes #79812.
862
863 2006-11-03  Chris Toshok  <toshok@ximian.com>
864
865         * Application.cs: pave the way for actually using the thread
866         exception dialog.  it's ifdefed out at the moment.
867
868 2006-11-03  Chris Toshok  <toshok@ximian.com>
869
870         * ThreadExceptionDialog.cs: until we get a better layout, actually
871         hide the details textbox and label when we shouldn't see them.
872
873 2006-11-03  Jackson Harper  <jackson@ximian.com>
874
875         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
876         multiline textboxes anymore.  This method also determines the
877         width/height of a textboxes canvas area.
878         - Sorta a revert of the last patch.  For multiline just position
879         the controls, then bail.  This way the scrollbar width won't be
880         altered.
881
882 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
883
884         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
885         it dont need.  Fixes #79537.
886
887 2006-11-02  Jackson Harper  <jackson@ximian.com>
888
889         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
890         send the status after firing the DndOver event.
891
892 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
893
894         * TrackBar.cs: Now orientation only switches height / width if
895         the control's handle is created (Win32 does it like this). Also 
896         fixed a typo in ToString() for a test to pass, changed the 
897         exception thrown in set_LargeChange and set_SmallChange to 
898         match Win32 behaviour, and added TrackBar tests to the unit 
899         tests.
900
901 2006-11-02  Chris Toshok  <toshok@ximian.com>
902
903         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
904         not _NET_WM_STATE_NO_TASKBAR.
905
906 2006-11-02  Jackson Harper  <jackson@ximian.com>
907
908         * TextControl.cs: Increment count by one, since in the update view
909         count - 1 is used.
910
911 2006-11-02  Jackson Harper  <jackson@ximian.com>
912
913         * TextBoxBase.cs: Use client rectangle not bounds for checking if
914         the mouse is in the client rectangle (duh).
915
916 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
917         
918         * TrackBar.cs: Fixed trackbar jumping around when clicking
919         on it - the trackbar was not detecting correctly at which
920         side of the thumb the click was done. (fixes #79718)
921
922 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
923
924         * ListBox.cs: scroll visible area when change SelectedIndex to
925         a non visible area.  Fixes #79481.
926
927 2006-11-01  Jackson Harper  <jackson@ximian.com>
928
929         * TextControl.cs: When replacing the selection move the selection
930         start/end/anchor to the end of the new text.
931
932 2006-11-01  Jackson Harper  <jackson@ximian.com>
933
934         * XplatUIWin32.cs: When setting the parent change the controls
935         visibility to it's visibility flag, not to it's old parents
936         visibility (.Visible walks the parent chain).
937
938 2006-11-01  Chris Toshok  <toshok@ximian.com>
939
940         * XplatUIX11.cs: revert the #79790 fix, as the simple.
941         XSetTransientForHint fix breaks paint .net's tool windows.  more
942         work needed for that one.
943
944 2006-11-01  Chris Toshok  <toshok@ximian.com>
945
946         * ScrollBar.cs: throw ArgumentException instead of Exception in
947         LargeChange/SmallChange setters.  fixes unit tests.
948
949 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
950
951         * ContainerControl.cs: reverted rev.67183 (which was itself
952         a reversion of rev.66853... eh).
953         
954         * Control.cs: Fixes Reflector hang by changing Focus() call
955         to what it was before rev.66643 (calling Select() here sets 
956         ActiveControl, which in some situations calls back Focus and 
957         eventually does a stack overflow). Temp fix.    
958         Changes to GetNextControl() to not look for children to select when
959         parent cannot be selectable (so it looks for siblings instead)  
960         
961 2006-10-31  Mike Kestner  <mkestner@novell.com>
962
963         * CheckedListBox.cs : off by one error in returned index from
964         ObjectCollection.Add.  Fixes #79758.
965
966 2006-10-31  Chris Toshok  <toshok@ximian.com>
967
968         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
969         calls for the textbox/spinner, to keep from recursing to the point
970         where we crash.  Fixes #79760.
971
972 2006-10-31  Chris Toshok  <toshok@ximian.com>
973
974         * ListControl.cs (set_SelectedValue): don't throw exceptions on
975         null/"" value, just return.  matches ms's behavior and fixes some
976         failing tests.
977
978 2006-10-31  Chris Toshok  <toshok@ximian.com>
979
980         * Control.cs (set_Capture): make a logic a little easier to
981         follow.
982
983         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
984         if it's being destroyed.  A necessary fix surely, but a bandaid
985         also, to fix the stuck capture problem in bug #78413.
986
987 2006-10-31  Chris Toshok  <toshok@ximian.com>
988
989         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
990         convention of clearing hwnd.ClientRect when we set the
991         width/height (so it'll be recalculated by Hwnd).
992
993 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
994
995         * ContainerControl.cs: reversed Contains check from
996         ActiveControl due to hanging problems. This fix
997         partly regresses #79667 (button does not have
998         initial focus), so this might be a symptom for 
999         a larger parenting problem (set_ActiveControl
1000         is being called but the child control does
1001         not have the parent set yet?)   
1002         
1003 2006-10-31  Mike Kestner  <mkestner@novell.com>
1004
1005         * MenuAPI.cs : fix keynav when menu is click activated.
1006
1007 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
1008
1009         * ToolStrip*: Version 0.2.
1010
1011         * MenuStrip.cs: Version 0.1.
1012
1013         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
1014
1015 2006-10-30  Chris Toshok  <toshok@ximian.com>
1016
1017         [ fixes the oversized notify icon issue in bug #79745 ]
1018         
1019         * NotifyIcon.cs: scale the icon down to the size we're given by
1020         the XplatUI layer (this would be faster if we did it once instead
1021         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
1022         since it's never invoked.
1023
1024         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
1025         pixels high by default, so let's hardcode our systray icon to that
1026         size.  The SYSTEM_TRAY protocol should really have a way for
1027         client apps to query for the correct icon size.. but oh well.  A
1028         couple of patches to deal with the screwy client_window ==
1029         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
1030         instance, and also make sure we don't XSelectInput twice).
1031
1032 2006-10-30  Chris Toshok  <toshok@ximian.com>
1033
1034         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
1035         recreating forms.  Control recreation is the bane of my existence.
1036         Fix it in a way that keeps everyone happy.
1037
1038 2006-10-30  Chris Toshok  <toshok@ximian.com>
1039
1040         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
1041         just non-CHILD ones.  otherwise sometimes scrollbars end up with
1042         client_windows not being resized to the proper size (ReportBuilder
1043         shows this extremely well).
1044
1045 2006-10-30  Chris Toshok  <toshok@ximian.com>
1046
1047         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
1048         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
1049         showing up in the gnome taskbar.  Fixes bug #79790.
1050
1051 2006-10-30  Chris Toshok  <toshok@ximian.com>
1052
1053         * ApplicationContext.cs: guard against a NRE.
1054
1055         * Application.cs: null out the old MainForm for the context, so we
1056         don't try to use it again once it's disposed.  Fixes bug #79783.
1057
1058 2006-10-30  Chris Toshok  <toshok@ximian.com>
1059
1060         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
1061         BindingContext, set the data source directly, otherwise do the
1062         lazy approach - the actual ListManager will be created when we get
1063         a BindingContext. Fixes bug #79700.
1064
1065 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1066
1067         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
1068           XplatUIX11.cs: Remove old 2 parameter SetVisible.
1069
1070         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
1071
1072 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1073
1074         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
1075         of SetVisible that allows a window to be shown, but not activated.
1076         This is needed on Windows for MenuStrip, and can probably be used
1077         with MainMenu and ComboBox to fix the focus stealing issues on
1078         Windows.
1079
1080         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
1081
1082 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
1083
1084         * PictureBox.cs: Fix the output of the ToString method.
1085
1086 2006-10-29  Chris Toshok  <toshok@ximian.com>
1087
1088         * Control.cs (get_TopLevelControl): fix bug #79781.
1089
1090 2006-10-29  Chris Toshok  <toshok@ximian.com>
1091
1092         * ListControl.cs (set_DataSource): throw Exception here, not
1093         ArgumentException, to match MS behavior.
1094
1095 2006-10-29  Chris Toshok  <toshok@ximian.com>
1096
1097         * Form.cs: remove the try-catch's around calls to GetWindowState.
1098         We can just check the return value.
1099
1100         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
1101         Instead return -1.
1102
1103         * XplatUI.cs: Add note about additional return value for
1104         GetWindowState.
1105
1106 2006-10-29  Chris Toshok  <toshok@ximian.com>
1107
1108         * Control.cs (CreateHandle): when we create our handle, we also
1109         create the handles of our child controls.  Fixes one of the
1110         Control unit tests (CH11).
1111
1112 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1113
1114         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
1115
1116 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1117
1118         * ThemeClearlooks.cs: A little speedup.
1119
1120 2006-10-27  Chris Toshok  <toshok@ximian.com>
1121
1122         * Control.cs: implement Control.FromChildHandle in a way that
1123         matches the docs (and fixes the failed test.)
1124
1125 2006-10-27  Chris Toshok  <toshok@ximian.com>
1126
1127         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
1128         comments).
1129
1130         * DataGrid.cs: implement ResetForeColor such that the tests
1131         succeed.
1132         
1133 2006-10-27  Chris Toshok  <toshok@ximian.com>
1134
1135         * ToolBarButton.cs: setting text/tooltiptext to null results in it
1136         being set to "".  Fixes bug #79759.
1137
1138 2006-10-27  Jackson Harper  <jackson@ximian.com>
1139
1140         * TextControl.cs: We need to clear the entire selection area when
1141         setting the start, otherwise multiline selections are still
1142         visible.
1143
1144 2006-10-26  Chris Toshok  <toshok@ximian.com>
1145
1146         * PropertyGridView.cs: 
1147
1148         - ifdef all the code specific to the double
1149         buffer case, and provide some alternatives in the non-doublebuffer
1150         code, which makes heavy use of XplatUI.ScrollWindow to move things
1151         around without having to invalidate (and cause flicker).  There
1152         are still some drawing problems in the non-doublebuffered case, so
1153         DOUBLEBUFFER is defined by default.
1154
1155         - Fix the way dropdowns are handled.  now we explicitly watch for
1156         the events which might cause the dropdown to close, and break out
1157         of the nested event loop there.  This gets rid of all Capture
1158         code, at the expense of the Msg special casing.  Seems to work,
1159         though, and fixes bug #79743.
1160
1161 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
1162         * Control.cs: SetIsRecreating now recreates implicitly added
1163         child controls as well. Finally fixes #79629. The flag passed to 
1164         SetIsRecreating has also been removed since it wasn't used.
1165         
1166 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1167
1168         * PageSetupDialog.cs: Clean some code, fix some bits, 
1169         add some checks, and add a printer sub-dialog.
1170
1171 2006-10-26  Chris Toshok  <toshok@ximian.com>
1172
1173         * PropertyGrid.cs: make set_SelectedObject call
1174         set_SelectedObjects, and move the duplicate logic to the
1175         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
1176
1177         * PropertyGridView.cs: hide the textbox when we get a
1178         SelectedObjectsChanged event.
1179
1180         Fixes bug #79748.
1181
1182 2006-10-26  Chris Toshok  <toshok@ximian.com>
1183
1184         * PropertyGridView.cs: deal with the type converter not supporting
1185         GetStandardValues() or GetStandardValues() returning null, which
1186         is does in the default case.  Fixes #79742.
1187
1188 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1189
1190         * CheckedListBox.cs: nunit no longer crashes when selecting 
1191         Project/Edit menu option
1192         
1193 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1194
1195         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
1196         is no menu selected. fixes #79739
1197
1198 2006-10-25  Chris Toshok  <toshok@ximian.com>
1199
1200         * PropertyGridView.cs: factor out the splitter invalidation code
1201         into the SplitterPercent setter, and for kicks implement the
1202         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
1203         amount in either direction.
1204
1205 2006-10-25  Chris Toshok  <toshok@ximian.com>
1206
1207         * PropertyGridView.cs: do some cleanup of the brush used to draw
1208         text - read only fields should be grayed out.  not sure how to do
1209         this with the textbox, though.  but the textbox's should also be
1210         readonly now at least.  Also, hide/show the textbox when resizing
1211         the control.
1212         
1213         * CursorConverter.cs: use System.Reflection when getting the
1214         properties of Cursors, as TypeDescriptor.GetProperties isn't
1215         returning static properties.
1216
1217 2006-10-25  Chris Toshok  <toshok@ximian.com>
1218
1219         * PropertyGridView.cs: factor out the up/down handling, and reuse
1220         it for page up/down.  also add End/Home support.
1221
1222 2006-10-25  Chris Toshok  <toshok@ximian.com>
1223
1224         * PropertyGridView.cs:
1225
1226         - ensure the selected grid item is visible in the scrolled area,
1227         fixes bug #79572.
1228
1229         - fix Keys.Down handling when you're on the last item in the
1230         propertygrid.
1231
1232 2006-10-25  Mike Kestner  <mkestner@novell.com>
1233
1234         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
1235         clicks too.  Fixes #79725.
1236
1237 2006-10-24  Chris Toshok  <toshok@ximian.com>
1238
1239         * PropertyGrid.cs: use property.Converter instead of
1240         TypeDescriptor.GetConverter(property.PropertyType), so we catch
1241         TypeConverters declared on the property as well as on the
1242         PropertyType.  Fixes bug #79678.
1243
1244 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
1245
1246         * MimeIcon.cs, Mime.cs:
1247           Fallback to the default platform handler if no shared mime info
1248           stuff exists (fixes #79693).
1249
1250 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1251         * ContainerControl.cs: Incorrect contains check in ActiveControl 
1252         from previous fix (duh).
1253
1254 2006-10-20  Chris Toshok  <toshok@ximian.com>
1255
1256         * PropertyGridView.cs: the dropdown should be MIN(number of items
1257         in list, 15).  Fixes #79551.
1258
1259 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1260         Fixes #79384, #79394, #79652, #79667
1261         * Application.cs: 
1262         
1263         - Modal windows are now destroyed in the proper order for windows
1264         
1265         * ContainerControl.cs:
1266         
1267         - ActiveControl setter has more conditions on when to return:
1268                 - if we're reselecting the active control, but it actually
1269                 didn't have focus (window hidden or some such), it runs
1270                 - if the active control being selected doesn't actually 
1271                 exist in the container, it returns
1272         
1273         * Form.cs
1274         
1275         - The ShowDialog now gets the current form as the owner when
1276         invoking without parameters, and correctly activates the owner 
1277         when returning
1278         
1279         * MessageBox.cs
1280         
1281         - MessageBox now catches the Escape key to exit
1282
1283 2006-10-20  Chris Toshok  <toshok@ximian.com>
1284
1285         * PropertyGridView.cs: fix a number of issues (bug #78565, and
1286         most of bug #79676):
1287
1288         - you can navigate around the property grid with the arrow keys.
1289
1290         - the dropdown is sized properly when the pg has a vertical
1291         scrollbar.
1292
1293         - fix the indentation for subentries, and properly select the
1294         entire label rect.
1295
1296         - fix the gray bar's drawing (only draw it to the last element,
1297         not for the height of the control.  Also make sure we draw that
1298         last horizontal grid line.
1299
1300         - use the same mechanism the datagrid uses wrt the editing textbox
1301         when scrolling/resizing/etc.  Namely, we hide it first, do the
1302         operation, then show it again (if it's still visible).
1303         
1304         - aggressively remove a lot of unnecessary refreshes (and also
1305         calls to Invalidate(). call more limited variants, and only redraw
1306         what we need.)
1307         
1308         * PropertyGrid.cs:
1309
1310         - when we're populating the merged collection, fill in the UI
1311         parent with either the passed in item, or the category item we
1312         create.
1313
1314         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
1315
1316         * GridItem.cs: drop some fully qualified names.
1317         
1318         * GridEntry.cs: add a "UIParent", which is basically the parent
1319         treenode.
1320
1321         * GridItemCollection.cs: add an IndexOf method.
1322
1323 2006-10-20  Mike Kestner  <mkestner@novell.com>
1324
1325         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
1326         a working win32 NC invalidation mechanism, we can't invalidate
1327         menus.  [Fixes #79705]
1328
1329 2006-10-20  Mike Kestner  <mkestner@novell.com>
1330
1331         * ListBox.cs : don't update the VScrollbar if the list is empty,
1332         just hide it.  [Fixes #79692]
1333
1334 2006-10-20  Jackson Harper  <jackson@ximian.com>
1335
1336         * RichTextBox.cs: Handle some special chars better, and don't skip
1337         the entire group when we encounter a special char that we don't
1338         handle correctly.
1339
1340 2006-10-18  Chris Toshok  <toshok@ximian.com>
1341
1342         * PropertyGridView.cs: address a number of issues from bug #79676,
1343         mostly of the cosmetic variety.
1344
1345         - The highlight rectangle for indented items not extends all the
1346         way to the left.
1347
1348         - Indented items aren't indented so much.
1349
1350         - the dropdown is properly sized width-wise if the pg has a
1351         vertical scrollbar.
1352
1353 2006-10-18  Chris Toshok  <toshok@ximian.com>
1354
1355         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
1356         systray stuff is rather convoluted to begin with.
1357
1358         systray icons are a single window for some reason (that I haven't
1359         figured out yet), and for them, client_window == whole_window.
1360         Given the way the tests are structured elsewhere to determine
1361         which paints are pending (client vs. nc), that situation will
1362         always yield PAINT, not NCPAINT.  So, if we have a pending
1363         nc_expose and no pending expose, remove the hwnd from the paint
1364         queue, and also set nc_expose_pending to false, to keep us from
1365         blocking further expose's adding the hwnd to the paint queue.
1366
1367         phew.  like i said, a rather convoluted change.  Fixes the
1368         notifyicon repaint issues in bug #79645.
1369
1370 2006-10-18  Chris Toshok  <toshok@ximian.com>
1371
1372         * Form.cs: when getting the backcolor of the form, don't get
1373         base.BackColor, as this allows parents to influence the background
1374         color.  This breaks mdi forms.  Instead, if the background_color
1375         is empty, return the default.
1376
1377 2006-10-18  Chris Toshok  <toshok@ximian.com>
1378
1379         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
1380         to being private instead of internal static.
1381
1382         * Control.cs: remove all the stupid ParentWaitingOnRecreation
1383         crap, it wasn't working for more deeply nested controls anyway,
1384         and we already have the is_recreating flag - use that instead.
1385         Before calling DestroyHandle in RecreateHandle, recurse through
1386         the control tree setting it to true.  this returns the recreate
1387         code to much of its original simplicity, while now guaranteeing we
1388         actually recreate everything we're supposed to.  This change gets
1389         fyireporting actually showing mdi children.
1390
1391 2006-10-17  Chris Toshok  <toshok@ximian.com>
1392
1393         * Form.cs: remove some debug spew, and collapse some duplicate
1394         code at the end of SetClientSizeCore.
1395
1396         * XplatUIX11.cs: 
1397         - add some more debug spew here too wrt Destroy handling.
1398         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
1399         in Control's handling of WM_DESTROY.
1400         - Remove the handling of zombie window DestroyNotifies from the
1401         event loop - we don't need it.  Now the only DestroyNotifies we
1402         actually handle are ones generated by X.
1403         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
1404         match gtk's (functioning) handling of this. This keep metacity
1405         from leaving droppings in the form of wm borders with no window
1406         contents all over the place.
1407
1408         * Control.cs:
1409         - add a bunch of debug spew wrt control recreation.
1410         - fix a bug where we weren't tracking Visible properly on
1411         recreated hwnds.
1412         - fixed the WM_PAINT double buffer handling to support re-entrant
1413         calls (yes, i know it's gross, but it's happening to us).
1414
1415 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1416         * ThemeWin32Classic.cs: changed drawing of selected days
1417         to make them look better.
1418
1419 2006-10-16  Chris Toshok  <toshok@ximian.com>
1420
1421         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
1422         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
1423
1424         * XplatUIX11.cs: move away from using hwnd.client_dc and
1425         hwnd.non_client_dc and on to a stack of dc's (and in window's
1426         case, PAINTSTRUCT's), so we can deal with nested Paint calls
1427         without puking or not disposing of Graphics objects.
1428
1429         * XplatUIOSX.cs: same.
1430
1431         * XplatUIWin32.cs: same.
1432
1433 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1434
1435         * FileDialog.cs: Don't call on_directory_changed inside
1436           OnSelectedIndexChanged (it changes the SelectedIndex too).
1437           Instead move it to OnSelectionChangeCommitted.
1438
1439 2006-10-13  Chris Toshok  <toshok@ximian.com>
1440
1441         * XplatUIX11.cs: more Destroy work.  the current code does the
1442         following things, in order:
1443
1444         1. Enumerates all handles of all controls at or below the one
1445         being destroyed, in pre-order.  As it is doing this, it marks the
1446         handles as zombie and clears all references to them.
1447         
1448         2. calls XDestroyWindow on the window passed in.
1449
1450         3. SendMessage's WM_DESTROY to all he handles in the accumulated
1451         list.
1452
1453 2006-10-13  Chris Toshok  <toshok@ximian.com>
1454
1455         * XplatUIX11.cs: set hwnd.zombie to true before calling
1456         SendMessage (WM_DESTROY).  this keeps us from marking the new
1457         window a zombie, and also keeps us from calling sendmessage at
1458         all.
1459
1460 2006-10-13  Jackson Harper  <jackson@ximian.com>
1461
1462         * TextControl.cs: Do not show the caret and selection at the same
1463         time.  Reduces ugliness by 35%.
1464
1465 2006-10-13  Chris Toshok  <toshok@ximian.com>
1466
1467         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
1468         zombie after we do the recursive call, so we actually do call
1469         SendMessage on the children controls.
1470         (GetMessage): if we find a pending paint event for a zombie hwnd,
1471         remove the hwnd from the paint queue, or else it will always be
1472         there (and we'll effectively loop infinitely)
1473
1474 2006-10-13  Mike Kestner  <mkestner@novell.com>
1475
1476         * MenuItem.cs : add Selected format under keynav too.
1477         Fixes #79528.
1478
1479 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
1480
1481         * PropertyGrid.cs: Fixed some NRE's and small difference between our
1482         implementation and that of MS.
1483
1484 2006-10-13  Chris Toshok  <toshok@ximian.com>
1485
1486         * Control.cs (OnInvalidated) only futz with the invalid_region if
1487         the control is double buffered.  this fixes the apparent hang in
1488         the ListView unit tests.  Someone needs to make the
1489         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
1490
1491 2006-10-13  Chris Toshok  <toshok@ximian.com>
1492
1493         * PropertyGridView.cs:
1494
1495         - do a little refactoring so that only one place calls
1496         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
1497         else call that.  Also make it Refresh, since there are redraw bugs
1498         otherwise (we should take a look at that...)
1499
1500         - do a little more refactoring work to share the body of code
1501         involved with the drop down.  it was duplicated in the code
1502         dealing with the listbox handling and in the code dealing with the
1503         UITypeEditors.
1504
1505         - add a Capture to the dropdown form's control once it's
1506         displayed, and add a MouseDown handler that checks to make sure
1507         the position is inside the control.  If it's not, close the
1508         dropdown.  This fixes #78190.
1509
1510         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
1511         if the value is different than the initial value.
1512         
1513 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
1514
1515         * Control.cs: see #78650
1516         - Fixed GetNextControl for several cases:
1517                 - Changed FindFlatForward to return 
1518                 correct sibling control when more than one
1519                 control has same TabIndex as the currently 
1520                 focused one.
1521                 - Changed FindFlatBackward to loop children
1522                 from last to first and apply same logic as in
1523                 FindFlatForward
1524                 - Changed FindControlForward to search for
1525                 children when control is not a container
1526                 but has children, or search for siblings if
1527                 control is a container...
1528                 - Changed FindControlBackward   to continue
1529                 searching for child controls when hitting 
1530                 Panel-like parents
1531                 
1532         - Fixed Focus method to update ActiveControl
1533         (FocusTest.FocusSetsActive failure)
1534         
1535         * TabControl.cs:
1536         - Focus rectangle now refreshes when gaining
1537         or losing focus
1538         - Removed grab for Tab key on IsInputKey that 
1539         was keeping tab navigation from working (#78650)
1540
1541 2006-10-13  Chris Toshok  <toshok@ximian.com>
1542
1543         * PropertyGridView.cs:
1544         - Rewrite SetPropertyValue to loop over SelectedGridItem's
1545         SelectedObjects.
1546
1547         - Deal with GridItem.Value == null a few places.
1548
1549         * PropertyGrid.cs: 
1550         - replace the PopulateGridItemCollection with a pair of methods
1551         which compute the intersection of all the properties in the
1552         SelectedObjects array.  Fixes #79615.
1553
1554         - Throw ArgumentException from set_SelectedObjects if there's a
1555         null in the array.
1556
1557         - Add GetTarget method which can be used to traverse up the
1558         GridItem.Parent chain.  It depends on the assumption that
1559         selected_objects for different GridEntries are always in the same
1560         order (a safe assumption).  Use this method and loop over all the
1561         selected objects in the entry when calling RemoveValueChanged and
1562         AddValueChanged.
1563         
1564         * GridEntry.cs: Make this handle multiple selected objects.
1565         .Value returns null if not all the selected objects share the same
1566         value.
1567
1568 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
1569         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
1570           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
1571           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
1572           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
1573           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
1574         add additional functionality.
1575
1576 2006-10-12  Mike Kestner  <mkestner@novell.com>
1577
1578         * ErrorProvider.cs : new ToolTipWindow ctor sig.
1579         * HelpProvider.cs : new ToolTipWindow ctor sig.
1580         * ToolTip.cs : remove ToolTip param from Window sig since it is
1581         not used.
1582         * ToolBar.cs : add tooltip support.  Fixes #79565.
1583
1584 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1585
1586         * ComboBox.cs: move the events in set_SelectedIndex to 
1587         after the call to HighlightIndex in order to avoid 
1588         possible recursion and subsequent problems with the call
1589         to HighlightIndex and include a range check in 
1590         set_HighlightIndex. Fixes #79588
1591         
1592 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1593
1594         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
1595         to ui thread's settings instead of sunday. 
1596         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
1597
1598 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1599
1600         * DateTimePicker.cs
1601         * MonthCalendar.cs
1602         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
1603         and implement missing functionality (selecting different parts 
1604         of the date and edit them individually with the keyboard).
1605         
1606 2006-10-11  Chris Toshok  <toshok@ximian.com>
1607
1608         * Control.cs (OnInvalidated): fix NRE relating to last change.
1609
1610 2006-10-11  Chris Toshok  <toshok@ximian.com>
1611
1612         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
1613         atoms in _NET_WM_STATE here if the window is maximized.  We need
1614         to do this because we're *replacing* the existing _NET_WM_STATE
1615         property, so those atoms will be lost otherwise, and any further
1616         call to GetWindowState will return Normal for a window which is
1617         actually maximized.  Fixes #79338.
1618
1619 2006-10-11  Jackson Harper  <jackson@ximian.com>
1620
1621         * TextControl.cs: Special case for setting selection end to
1622         selection start, we basically kill the anchor.
1623         - some todo comments.
1624
1625 2006-10-11  Chris Toshok  <toshok@ximian.com>
1626
1627         * Control.cs: switch to using an "invalid_region" to track which
1628         parts of the image buffer need updating.  This is more code than
1629         the simple fix from r66532.  That version just attempted to always
1630         fill the entire buffer on redraw, which turns out to be
1631         inefficient when invalidating small rectangles.  This version
1632         simply adds the invalid rectangle to the invalid region.  When we
1633         get any WM_PAINT message we see if it can be filled using the
1634         image buffer, and if it can't (if the paint event's clip rectangle
1635         is visible in the invalid region) we first fill the image buffer.
1636         So, the image buffer is still a cache, we just fill it lazily.
1637
1638         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
1639         need it any longer.
1640
1641 2006-10-11  Chris Toshok  <toshok@ximian.com>
1642
1643         * XplatUIX11.cs (SetWindowPos): we need to update both position as
1644         well as size after calling XMoveResizeWindow.  This keeps us from
1645         ignoring future SetWindowPos calls.  Fixes the disappearing
1646         DateTimePicker in the ToolBarDockExample from bug #72499.
1647
1648 2006-10-11  Chris Toshok  <toshok@ximian.com>
1649
1650         * TextBoxBase.cs: reorder things a bit when it comes to
1651         resizing-causing-recalculation.  we were recalculating the
1652         document when our position was changed, which shouldn't happen.
1653         We only care about size changes.  Clear up some more redundant
1654         recalculation calls while I'm at it.  This makes the toolbar dock
1655         example snappy when you're just dragging toolbars around (since it
1656         causes a relayout whenever you move one.)
1657
1658 2006-10-11  Chris Toshok  <toshok@ximian.com>
1659
1660         * ToolBarButton.cs (get_Rectangle): this only returns
1661         Rectangle.Empty if Visible == false, or Parent == null.
1662         Parent.Visible doesn't matter.
1663
1664 2006-10-10  Chris Toshok  <toshok@ximian.com>
1665
1666         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
1667         by .net 1.1, so switch to an internal method instead.
1668
1669 2006-10-10  Chris Toshok  <toshok@ximian.com>
1670
1671         * Control.cs (WM_PAINT): when a control is double buffered we draw
1672         initially to the ImageBuffer and then copy from there.  But when a
1673         parent control which has child controls is double buffered, the
1674         initial drawing doesn't encompass the entire ClientRectangle of
1675         the parent control, so we end up with uninitialized bits (this is
1676         easily seen by dragging the top toolbar in
1677         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
1678         manually set the ClipRectangle of the paint_event (only the one we
1679         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
1680         of the nastiness in bug #72499.
1681
1682         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
1683         which we use in Control.cs's WM_PAINT handling.
1684
1685 2006-10-10  Jackson Harper  <jackson@ximian.com>
1686
1687         * TextBoxBase.cs: Finish off the autoscrolling stuff.
1688
1689 2006-10-10  Chris Toshok  <toshok@ximian.com>
1690
1691         * Cursor.cs: Apply a slightly different patch to the one suggested
1692         in #79609.
1693
1694 2006-10-10  Jackson Harper  <jackson@ximian.com>
1695
1696         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
1697         not the parent form.
1698         * TextControl.cs: use difference in old line count vs new count to
1699         calculate how many lines were added, this takes into account soft
1700         line breaks properly.
1701
1702 2006-10-10  Chris Toshok  <toshok@ximian.com>
1703
1704         * LinkLabel.cs: don't call MeasureCharacterRanges against a
1705         rectangle located at 0,0 and the size of the text.  Use
1706         ClientRectangle instead.  This fixes rendering of non-left aligned
1707         link labels.
1708
1709 2006-10-10  Jackson Harper  <jackson@ximian.com>
1710
1711         * TextBoxBase.cs: When we set the selection start position the
1712         caret.
1713         * TextControl.cs: Need to update the caret when we decrement it to
1714         zero.
1715         - Make sure that the selection_visible flag gets reset to false if
1716         the selection isn't visible.  Before this you could get it set to
1717         visible by changing the selection start, then changing the end to
1718         equal the start.
1719
1720 2006-10-09  Jackson Harper  <jackson@ximian.com>
1721
1722         * TreeView.cs: Don't update scrollbars when we aren't visible.
1723         * TreeNodeCollection.cs: Only need to update scrollbars if being
1724         added to an expanded visible node or the root node.
1725
1726 2006-10-09  Chris Toshok  <toshok@ximian.com>
1727
1728         * XplatUIX11.cs (SendMessage): fix NRE.
1729
1730 2006-10-09  Jackson Harper  <jackson@ximian.com>
1731
1732         * TextBoxBase.cs: Implement horizontal autoscrolling.
1733         * TextControl.cs: Add a movement types that allows moving forward
1734         and backwards without wrapping.
1735
1736 2006-10-09  Mike Kestner  <mkestner@novell.com>
1737
1738         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
1739         with focus "expansion" of labels.  Fixes #79532 and then some.
1740         * ThemeWin32Classic.cs : add LineLimit to ListView label format
1741         when wrapping.
1742
1743 2006-10-09  Jackson Harper  <jackson@ximian.com>
1744
1745         * TextBoxBase.cs: Set the default max values to MaxValue since
1746         we use the scrollbar for autoscrolling and the default value is
1747         100.  If we don't do this the caret won't keep up with typing
1748         after about 18 characters.
1749         * TextControl.cs: Make sure the selection is offset by the
1750         viewport x.  This fixes selection when using auto scrolling.
1751
1752 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
1753         
1754         * Form.cs: The active control should be selected after the 
1755         OnLoad so that any child control initialization that affects
1756         the selection is done. Fixes #79406
1757
1758 2006-10-06  Chris Toshok  <toshok@ximian.com>
1759
1760         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
1761         to have no evil effects.
1762
1763         - Stop selecting StructureNotifyMask on non-toplevel windows.
1764
1765           The only way children should be resized is by using the SWF api,
1766           and we already send WM_WINDOWPOSCHANGED messages in those cases.
1767           Toplevel windows can be interacted with via the window manager,
1768           and so we keep the input mask there.
1769
1770           The other event StructureNotifyMask gives us (that we care
1771           about) is DestroyNotify.  The code is already structured such
1772           that it assumes we won't be getting a DestroyNotify event for
1773           the window we pass to XDestroyWindow (which is what
1774           StructureNotifyMask is supposed to guarantee.)  So, that code
1775           shouldn't be affected by this either.
1776
1777         - Stop selecting VisibilityChangeMask altogether.
1778
1779           We weren't doing anything with the resulting events anyway.
1780         
1781         This vastly reduces the number of X requests and events we see
1782         when resizing/laying out a large ui.
1783
1784 2006-10-06  Chris Toshok  <toshok@ximian.com>
1785
1786         * ScrollableControl.cs (DisplayRectangle): we need to take into
1787         account the DockPadding regardless of whether or not auto_scroll
1788         == true.  rework this slightly to this effect, and fix bug #79606,
1789         and part of #72499 (you can now see the drag handles and drag
1790         toolbars around).
1791
1792 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
1793
1794         * ListViewItem.cs: Collections of selected and checked items are now
1795         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
1796         we mark the collection "dirty".
1797         * ListView.cs: Marked collections readonly. Modified UpdateSelection
1798         to only clear SelectedItems when a new item is selected and MultiSelect
1799         is enabled. CheckedItems and SelectedItems now subscribe to Changed
1800         event of ListViewItemCollection, and mark its list dirty whenever
1801         that event is fire. This allows us to return selected/checked items 
1802         in the same order as they are in the Items collection. This matches
1803         the MS behavior.
1804
1805 2006-10-06  Chris Toshok  <toshok@ximian.com>
1806
1807         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
1808         right mouse clicks.  Fixes bug #79593.
1809
1810 2006-10-06  Chris Toshok  <toshok@ximian.com>
1811
1812         * Splitter.cs: doh, fix splitters that don't want to cancel the
1813         movement when you drag them.  Also, impose the limits on the
1814         values we send to the SplitterMovingEvent.  Fixes #79598.
1815
1816 2006-10-06  Jackson Harper  <jackson@ximian.com>
1817
1818         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
1819         since we use this for auto scrolling also.
1820
1821 2006-10-05  Chris Toshok  <toshok@ximian.com>
1822
1823         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
1824         beginning to think that most datagrid column types don't need this
1825         method.  Fixes bug #79392.
1826
1827 2006-10-05  Chris Toshok  <toshok@ximian.com>
1828
1829         * DataGrid.cs: move back to a more lazy scheme for creating the
1830         CurrencyManager, so we aren't updating it every time you set
1831         either DataSource or DataMember.  Also, don't call
1832         RecreateDataGridRows if the currency manager hasn't changed.
1833
1834 2006-10-05  Chris Toshok  <toshok@ximian.com>
1835
1836         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
1837         emitted, SelectedIndex should already be updated.  Fixes bug
1838         #78929.
1839
1840 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
1841
1842         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
1843           ToolStripTextBox.cs: Initial commit.
1844         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
1845
1846 2006-10-05  Jackson Harper  <jackson@ximian.com>
1847
1848         * TabControl.cs: We need to invalidate the tab control area when
1849         new ones are added (duh).
1850
1851 2006-10-03  Chris Toshok  <toshok@ximian.com>
1852
1853         * Form.cs (ProcessDialogKey): if the focused control is in this
1854         form and is a button, call its PerformClick method here.  Fixes
1855         #79534.
1856
1857 2006-10-04  Jackson Harper  <jackson@ximian.com>
1858
1859         * TabPage.cs: Ignore setting of Visible, and add an internal
1860         method for setting the controls visibility.  TabPage's Visible
1861         property is a little strange on MS, this seems to make us
1862         compatible, and fixes cases where people set all the tab pages to
1863         visible.
1864         * TabControl.cs: Use the new internal setting on tab pages
1865         visibility.
1866
1867 2006-10-03  Mike Kestner  <mkestner@novell.com>
1868
1869         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
1870
1871 2006-10-03  Mike Kestner  <mkestner@novell.com>
1872
1873         * ListView.cs : use is_visible instead of Visible to check if 
1874         scrollbars should be placed/sized.  Also some max_wrap_width
1875         love for LargeIcon view.  [Fixes #79533]
1876
1877 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1878
1879         * TextControl.cs :
1880           Make set_TextAlign() do actually update the align. Fixed #78403.
1881
1882 2006-10-03  Chris Toshok  <toshok@ximian.com>
1883
1884         * DataGrid.cs: fix a crash when switching datasources if the
1885         vertical scrollbar is at someplace other than Value = 0.  Also,
1886         reduce the number of recalculation passes we do in SetDataSource
1887         from 2 to 1.
1888
1889 2006-10-03  Jackson Harper  <jackson@ximian.com>
1890
1891         * TextBoxBase.cs: Move the if value the same bail check up, we
1892         don't want to empty the document if it is already empty, this
1893         seems to severly mess up the caret.  TODO: I should probably fix
1894         the empty statement to update teh caret somehow.
1895
1896 2006-10-03  Chris Toshok  <toshok@ximian.com>
1897
1898         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
1899         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
1900         reflection, an internal row type, properties on said type, etc.)
1901         will work with our datagrid.  Fixes #79531.
1902
1903 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1904
1905         * FileDialog.cs: Don't crash if a path is not accessible
1906           (System.UnauthorizedAccessException). Fixes #79569.
1907         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
1908           a ':' too. Return unknown icon for those paths/files.
1909
1910 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
1911
1912         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
1913         GetContainerControl returns null.
1914
1915 2006-10-02  Chris Toshok  <toshok@ximian.com>
1916
1917         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
1918         call to XGetWindowAttributes instead of "handle".  fixes an X
1919         error using notifyicon after the NotifyIconWindow to Form base
1920         class switch.
1921
1922 2006-10-02  Chris Toshok  <toshok@ximian.com>
1923
1924         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
1925         server grab and looping we need to do to get down to the most
1926         deeply nested child window.
1927         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
1928         QueryPointer again after the WarpPointer so we can generate a
1929         proper (fake) MotionNotify event to be enqueued in the destination
1930         window's queue.
1931         (GetCursorPos): call QueryPointer.
1932
1933         Fixes #79556.
1934
1935 2006-10-02  Jackson Harper  <jackson@ximian.com>
1936
1937         * NotifyIcon.cs: Derive the notify icon from a form, so things
1938         like FindForm work on it.
1939         - Swallow the WM_CONTEXTMENU message, since that is generated on
1940         mouse down, and context menu is a mouse up kinda guy.  I believe
1941         the correct fix here is probably to make the notify icon entirely
1942         NC area, but this seems to work fine for anyone not manipulating
1943         WndProc.
1944
1945 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
1946
1947         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
1948           ToolStripItemCollection.cs, ToolStripLabel.cs,
1949           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
1950           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
1951           Initial implementation.
1952         * TextRenderer.cs: Provide padding to MeasureText.
1953
1954 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
1955
1956         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
1957         of ButtonBaseAccessibleObject. Fix bug #79552.
1958
1959 2006-10-02  Jackson Harper  <jackson@ximian.com>
1960
1961         * MdiWindowManager.cs: When maximizing use the containers client
1962         rect, not it's bounds, so nc area is accounted correctly.
1963         - Use the parent form's size for the menu position, since the
1964         client isn't always the full form size.
1965
1966 2006-10-01  Chris Toshok  <toshok@ximian.com>
1967
1968         * ScrollableControl.cs: make sure neither right_edge or
1969         bottom_edge are < 0, since they're used as LargeChange for the
1970         horiz/vert scrollbars respectively.  Fixes #79539.
1971
1972 2006-10-01  Chris Toshok  <toshok@ximian.com>
1973
1974         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
1975         the xplatuix11 code can cause us to destroy/recreate our handle.
1976
1977         * XplatUIX11.cs
1978         (SystrayAdd):
1979         - this code can be invoked many times for the same Hwnd.  Make
1980           sure we only destroy the client window once (the first time this
1981           method is called).  This fixes bug #79544.
1982         - Remove the call to the improperly bound XSync.  why we had two
1983           bindings to this, I will never know, but this call resulted in
1984           events being discarded from the queue(!).
1985         - correct a misunderstanding of _XEMBED_INFO - the second atom is
1986           not our current state but the state we wish to be in.  So, 0 if
1987           we don't want to be mapped.  Change it to 1.
1988         (SystrayRemove): The XEMBED spec makes mention of the fact that
1989         gtk doesn't support the reparent of client windows away from the
1990         embedder.  Looking at gtksocket-x11.c seems to agree with this.
1991         The only avenue we have for removing systray icons is to destroy
1992         them.  We don't want the handle to go away for good, though, so
1993         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
1994         #79545.
1995         
1996 2006-10-01  Chris Toshok  <toshok@ximian.com>
1997
1998         * Form.cs (WndProc): inline the native_enabled variable usage into
1999         the cases in which it's used.  Fixes #79536.
2000
2001 2006-09-29  Mike Kestner  <mkestner@novell.com>
2002
2003         * ListView.cs : toggle the selection state for ctrl clicks in 
2004         multiselect mode. [Fixes #79417]
2005
2006 2006-09-29  Mike Kestner  <mkestner@novell.com>
2007
2008         * ListView.cs : kill CanMultiSelect and refactor the selection
2009         code to support multiselection in the absence of mod keys. Steal
2010         arrow/home/end keys by overriding InternalPreProcessMessage to
2011         restore regressed keynav behavior.
2012         [Fixes #79416]
2013
2014 2006-09-29  Jackson Harper  <jackson@ximian.com>
2015
2016         * MdiClient.cs: Repaint the titlebars when the active window is
2017         changed.
2018
2019 2006-09-29  Chris Toshok  <toshok@ximian.com>
2020
2021         * Application.cs: when entering a runloop with a modal, make sure
2022         the hwnd is enabled.  Fixes #79480.
2023
2024 2006-09-29  Chris Toshok  <toshok@ximian.com>
2025
2026         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
2027         when ListManager.CanAddRows == false, bump us back one.
2028
2029         * DataGridColumnStyle.cs (ParentReadOnly): remove the
2030         listmanager.CanAddRows check.  This makes ArrayLists uneditable
2031         using a datagrid, which is not right.
2032         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
2033         is an IEditable, but call property_descriptor.SetValue regardless.
2034         fixes #79435.
2035
2036 2006-09-29  Chris Toshok  <toshok@ximian.com>
2037
2038         * DataGridBoolColumn.cs: we need to test equality in the face of
2039         possible null values (as is the case with the default NullValue).
2040         This patch keeps us from crashing in that case.
2041
2042 2006-09-29  Jackson Harper  <jackson@ximian.com>
2043
2044         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
2045         here, since it will get called for every node collection in the
2046         tree. This is now done in the treeview once the sorting is
2047         finished.
2048         * TreeView.cs: Recalculate the visible order, and update the
2049         scrollbars after sorting, set the top nope to the root so that the
2050         recalc actually works.
2051
2052 2006-09-29  Chris Toshok  <toshok@ximian.com>
2053
2054         * LinkLabel.cs: more handling of the default link collection in
2055         the face of LinkArea manipulation.  The default link collection
2056         contains 1 element (start=0,length=-1).  If the user sets LinkArea
2057         to anything and the links collection is the default, clear it.
2058         Then only add the link if its nonempty.  Fixes #79518.
2059
2060 2006-09-29  Chris Toshok  <toshok@ximian.com>
2061
2062         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
2063         piece correctly when we hit a '\n'.  Fixes #79517.
2064
2065 2006-09-29  Chris Toshok  <toshok@ximian.com>
2066
2067         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
2068         change the binding of gdk_init_check to take two IntPtr's, and
2069         pass IntPtr.Zero for both of them.  Fixes #79520.
2070
2071 2006-09-29  Mike Kestner  <mkestner@novell.com>
2072
2073         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
2074         [Fixes #78779]
2075
2076 2006-09-28  Jackson Harper  <jackson@ximian.com>
2077
2078         * XplatUIX11.cs: When translating NC messages make sure we go from
2079         whole window to screen, not client window to screen.
2080         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
2081         method doesn't exist
2082         - Skip over controls that aren't forms when arranging.
2083
2084 2006-09-28  Jackson Harper  <jackson@ximian.com>
2085
2086         * XplatUIWin32.cs: Clip the rect to the parent window.
2087         * XplatUIStructs.cs: Add clipping modes struct.
2088         * InternalWindowManager.cs: New private method that factors title
2089         bar heights in when calculating the pos of an NC mouse message.
2090         - Use SendMessage to force a paint when the form's size is changed
2091         instead of painting the decorations immediately.
2092         - Don't let the NC button click messages get to DefWndProc,
2093         because they will attempt to handle windowing themself, and this
2094         messes up z-order (it will put them in front of the scrollbars).
2095         * XplatUIX11.cs: Make sure that we don't reset window managers if
2096         we already have one (ie the window is an MDI window).
2097
2098 2006-09-28  Chris Toshok  <toshok@ximian.com>
2099
2100         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
2101         menu code really needs going over.
2102
2103 2006-09-27  Chris Toshok  <toshok@ximian.com>
2104
2105         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
2106         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
2107         window is maximizable.  So, we need to make sure that even if we
2108         clear the border/wm frame of those functions, they're still
2109         available (basically, we remove the decoration without removing
2110         the function).  Half the fix for #79338.
2111
2112 2006-09-27  Chris Toshok  <toshok@ximian.com>
2113
2114         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
2115         Fixes bug #79515.
2116
2117 2006-09-27  Chris Toshok  <toshok@ximian.com>
2118
2119         * Splitter.cs: reorder things a bit so that we don't actually
2120         draw/move the splitter until after calling OnSplitterMoving.  This
2121         lets users cancel/disallow the movement by explicitly setting
2122         event.SplitX/SplitY.  Fixes #79372.
2123
2124 2006-09-27  Jackson Harper  <jackson@ximian.com>
2125
2126         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
2127         because it is most likely on a window being destroyed, and that
2128         will give us an X11 error.
2129
2130 2006-09-27  Chris Toshok  <toshok@ximian.com>
2131
2132         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
2133         the dropdown button now toggles between showing and hiding the
2134         dropdown.  Also, get rid of dropdown_form_showing and just use
2135         dropdown_form.Visible.  We still don't do a grab, but I'll leave
2136         that part to someone who has handled Capture-fu before.
2137
2138 2006-09-27  Chris Toshok  <toshok@ximian.com>
2139
2140         * DataGrid.cs: return false if alt isn't pressed when '0' is
2141         pressed.  this keeps the '0' key from being swallowed, and fixes
2142         bug #79350.
2143
2144 2006-09-27  Chris Toshok  <toshok@ximian.com>
2145
2146         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
2147         Calling Refresh (in response to a scrollbar event) screws up the
2148         scrollbar painting.  Fixes bug #78923.
2149
2150 2006-09-27  Chris Toshok  <toshok@ximian.com>
2151
2152         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
2153         then insert into hashtable" blocks threadsafe.
2154
2155 2006-09-27  Chris Toshok  <toshok@ximian.com>
2156
2157         * MessageBox.cs (CreateParams): the styles should be |'ed with our
2158         baseclass's, since otherwise the
2159         ControlBox/MinimizeBox/MaximizeBox assignments above have no
2160         effect.  This gets the close button back in messageboxes.
2161
2162 2006-09-27  Chris Toshok  <toshok@ximian.com>
2163
2164         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
2165         flag, not just != 0.  this makes flags that are actually multiple
2166         bits (like WS_CAPTION) work.  fixes bug #79508.
2167
2168 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
2169
2170         * PageSetupDialog.cs: add support for getting and settings the 
2171         paper size, source and orientation.
2172
2173 2006-09-26  Chris Toshok  <toshok@ximian.com>
2174
2175         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
2176         and caption == "", we need to remove the resize handles as well as
2177         the title bar.
2178
2179         * Control.cs (set_Text): turns out that setting Text on a form
2180         should change the WM styles on the window, since if ControlBox ==
2181         false, the only way to get a window border is to have a non-""
2182         Text property.  check winforms/forms/text.cs for an example.  so,
2183         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
2184         update both window styles and title.  This fixes a lot of dialogs
2185         (including the preferences dialog in MonoCalendar.)
2186
2187 2006-09-26  Chris Toshok  <toshok@ximian.com>
2188
2189         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
2190         control isn't a Form), call Win32ShowWindow to hide the window,
2191         but don't update the control Visible property.  When we reparent
2192         back to a parent control, call SetVisible in order for the
2193         window's visibility to be reinstated.
2194
2195         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
2196         the FosterParent.
2197
2198         * Control.cs (ControlCollection.Remove): remove that value.Hide()
2199         call for good, since it breaks MonoCalendar (and other things I'm
2200         sure.) Also, set all_controls to null *after* the owner calls,
2201         which end up regenerating it.
2202         (ChangeParent): allow new_parent to be == null, passing
2203         IntPtr.Zero down to XplatUI.
2204
2205         this fixes #79294 the right way.
2206
2207 2006-09-26  Mike Kestner  <mkestner@novell.com>
2208
2209         * GridEntry.cs : internal SetParent method.
2210         * PropertyGrid.cs : attach to property changed on the proper
2211         target if we have a hierarchical grid with subobjects. Setup
2212         GridItem.Parent for hierarchical items.
2213         * PropertyGridView.cs : Set value on the correct target for
2214         hierarchical grids. [Fixes #78903]
2215
2216 2006-09-26  Chris Toshok  <toshok@ximian.com>
2217
2218         * Control.cs (ChildNeedsRecreating): this should return true if
2219         either we're being recreated and the child is in our list, or our
2220         parent is waiting for our recreation.
2221
2222 2006-09-26  Chris Toshok  <toshok@ximian.com>
2223
2224         * Control.cs (ControlCollection.Remove): reinstate the
2225         value.Hide() call as suggested in bug #79294.
2226
2227 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
2228
2229         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
2230         coordinates (versus a relative move).
2231
2232 2006-09-26  Chris Toshok  <toshok@ximian.com>
2233
2234         * Control.cs: rework child recreation a little bit.  It turns out
2235         that we race between the DestroyNotify the WM_DESTROY message.  If
2236         the parent gets its DestroyNotify before the child gets the
2237         WM_DESTROY message, the child ends up not recreating (since the
2238         parent finishes its recreation on DestroyNotify, and the child
2239         checks ParentIsRecreating.)
2240
2241         So, instead we store off a list of all the child controls which
2242         need to be recreated when the parent control starts to recreate
2243         itself.  Then, when child controls get their WM_DESTROY message we
2244         check to see if they're in the parent's pending recreation list,
2245         and if so, we recreate.  This removes all dependency on ordering
2246         from the code and fixes the initial MonoCalendar upgrade dialog.
2247         
2248 2006-09-26  Jackson Harper  <jackson@ximian.com>
2249
2250         * TextControl.cs: Use the Line to get the length of the line,
2251         since soft line breaks can change the end line.
2252
2253 2006-09-26  Chris Toshok  <toshok@ximian.com>
2254
2255         * Control.cs (ControlCollection.AddImplicit): don't add the
2256         control again if it's already in one of our lists.  This keeps us
2257         from adding controls over and over again for comboboxes when their
2258         handle gets recreated (as the combobox adds implicit controls in
2259         OnHandleCreated).  Fixes the X11 errors in bug #79480.
2260
2261 2006-09-26  Jackson Harper  <jackson@ximian.com>
2262
2263         * TextControl.cs: When deleting characters make sure that any
2264         orphaned zero lengthed tags get deleted.
2265         - Fix ToString for zero lengthed tags.
2266
2267 2006-09-25  Jackson Harper  <jackson@ximian.com>
2268
2269         * TextControl.cs: When getting a tag at the location there can be
2270         multiple tags at the same spot, these are 0-lengthed tags that
2271         appear when extra formatting has been stuck in a location.  We
2272         need to pull out the last of these 0 lengthed tags.
2273
2274 2006-09-25  Jackson Harper  <jackson@ximian.com>
2275
2276         * TextControl.cs: Fix print out in debug method.
2277         * TextBoxBase.cs: When text is set bail if we are setting to the
2278         previous value.
2279         
2280 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
2281
2282         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
2283           It is now possible to change the selected index in a FontXXXListBox
2284           with the up and down arrow keys from the FontXXXTextBoxes.
2285           Also, send the FontXXXTextBox mouse wheel event to the corresponding
2286           FontXXXListBoxes to match ms.
2287
2288 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
2289
2290         * SystemInformation.cs: Return a clone of the theme's MenuFont because
2291         anyone can dispose it, anytime. All other properties returns enums, 
2292         structs or basic types so they don't need such tricks.
2293
2294 2006-09-22  Jackson Harper  <jackson@ximian.com>
2295
2296         * XplatUI.cs:
2297         * XplatUIWin32.cs:
2298         * Clipboard.cs:
2299         * DataFormats.cs:
2300         * XplatUIOSX.cs:
2301         * XplatUIDriver.cs: Update interface to add a primary selection
2302         flag, so the driver can use the primary selection buffer if
2303         needed.
2304         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
2305
2306         * RichTextBox.cs: We need to supply the data object to paste now
2307         (so we can choose to supply CLIPBOARD or PRIMARY).
2308         * TextBoxBase.cs: Supply data object to paste (see above).
2309         - Middle click uses the primary selection data object.
2310         
2311 2006-09-21  Chris Toshok  <toshok@ximian.com>
2312
2313         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
2314         of SetWMStyles.  It's still a rat's nest and is largely
2315         order-dependent which I dislike immensely.  This also fixes the X
2316         button disappearing from toplevel forms.
2317
2318 2006-09-21  Mike Kestner <mkestner@novell.com>
2319
2320         * ListBox.cs: move Jordi's click/dblclick raising code to the
2321         mouse up handler.
2322
2323 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
2324
2325         * ListBox.cs: Fixes 79450
2326
2327 2006-09-21  Mike Kestner <mkestner@novell.com>
2328
2329         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
2330         to deal with people updating the TreeNodeCollection after the tree
2331         is disposed.  "Fixes" 79330.
2332
2333 2006-09-20  Jackson Harper <jackson@ximian.com>
2334
2335         * TextControl.cs: Push the cursor record onto the undo stack
2336         before the delete action. This fixes 78651.
2337
2338 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
2339
2340         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
2341         CreateParams. Fixes 79329.
2342
2343 2006-09-19  Chris Toshok  <toshok@ximian.com>
2344
2345         * XplatUIX11.cs: a couple of blanket code massage passes to clean
2346         things up a bit.  First, get rid of the NetAtoms array (and the NA
2347         enum), and just embed the atoms as static fields.  Also, add a
2348         couple of functions (StyleSet and ExStyleSet) to clean up all the
2349         bitmask testing of styles.
2350
2351         * X11Structs.cs: remove the NA enum, not needed anymore.
2352         
2353 2006-09-19  Chris Toshok  <toshok@ximian.com>
2354
2355         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
2356         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
2357         added cleanup to get MessageBox titles appearing again, which were
2358         broken by my earlier fix for caption-less/ControlBox-less windows.
2359
2360 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
2361
2362         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
2363           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
2364           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
2365           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
2366           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
2367           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
2368           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
2369           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
2370           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
2371           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
2372           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
2373             Inital import.
2374         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
2375           ToolStripButton.cs: Stubs needed for above.
2376         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
2377
2378 2006-09-15  Chris Toshok  <toshok@ximian.com>
2379
2380         * XplatUIX11.cs:
2381         - make the MessageQueues hashtable Synchronized.
2382         
2383         - SendMessage: if the Hwnd is owned by a different thread, use the
2384         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
2385         thread.  Fixes bug #79201.
2386
2387 2006-09-15  Chris Toshok  <toshok@ximian.com>
2388
2389         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
2390         ControlBox == false, we disallow maximize/minimize/close.  If the
2391         form Caption is "" we also disallow move (and get rid of the Title
2392         decoration).  Unfortunately, regardless of how things are set,
2393         we're stuck with the Title and WM menu.
2394
2395 2006-09-15  Chris Toshok  <toshok@ximian.com>
2396
2397         * Application.cs: add locking around the static message_filters
2398         ArrayList, part of #79196.
2399
2400 2006-09-15  Chris Toshok  <toshok@ximian.com>
2401
2402         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
2403         Form.ControlBox == false, the window has no titlebar nor resize
2404         handles.  fixes bug #79368.
2405
2406 2006-09-15  Chris Toshok  <toshok@ximian.com>
2407
2408         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
2409         >= 0.  Fixes bug #79370.
2410
2411 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
2412         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
2413         * Control.cs:
2414             Add properties: LayoutEngine, Margin, DefaultMargin.
2415             Add method: GetPreferredSize.
2416             Move layout logic from PerformLayout to layout engines. 
2417
2418 2006-09-13  Chris Toshok  <toshok@ximian.com>
2419
2420         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
2421         fix for #79326 broke #78718, so this change addresses that.
2422
2423         - in SendWMDestroyMessages remove the call to
2424         CleanupCachedWindows, since we might be recreating the control and
2425         need to maintain the references to right Hwnd handles.  Also, set
2426         the zombie flag to true for each of the children in the hierarchy
2427         instead of calling hwnd.Dispose.  This will cause GetMessage to
2428         ignore all events for the window except for DestroyNotify.
2429
2430         - In GetMessage, ignore messages except for DestroyNotify for
2431         zombie hwnds.
2432         
2433         * Control.cs: revert the is_recreating fix from the last
2434         ChangeLog.  It's definitely "right", but it breaks switching from
2435         an MDI form to a non-MDI form.  Will need to revisit that.
2436
2437         * Hwnd.cs: add a zombie flag, which means "the
2438         client_window/whole_window handles are invalid, but we're waiting
2439         for the DestroyNotify event to come in for them".  Set the flag to
2440         false explicitly if setting WholeWindow/ClientWindow, and also
2441         when Disposing.
2442         
2443 2006-09-13  Chris Toshok  <toshok@ximian.com>
2444
2445         * XplatUIX11.cs: rework window destruction slightly.
2446
2447         - when destroying the windows associated with a control, we don't
2448         need 2 separate XDestroyWindow calls.  Just the one for the
2449         whole_window (or for client_window if whole_window is somehow
2450         IntPtr.Zero -- can this happen?) is enough.
2451
2452         - reworked SendWMDestroyMessages slightly, so we always dispose
2453         the child control hwnd's after sending the messages.
2454         
2455         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
2456         the two places it was used (one was even using hwnd.Handle and the
2457         other hwnd.client_window.  ugh), adding another call in
2458         SendWMDestroyMessages.  We need this new call because now the
2459         DestroyNotify events in the queue will be ignored for the child
2460         controls (as their hwnd's were disposed, and the window id's
2461         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
2462
2463         - this fixes bug #79326.
2464
2465 2006-09-13  Chris Toshok  <toshok@ximian.com>
2466
2467         * Control.cs: don't always set is_recreating to false at the end
2468         of RecreateHandle, since sometimes we're not done (and won't be
2469         until WndProc handles the WM_DESTROY message).  Also, set
2470         is_recreating to false in the WM_DESTROY handling code.  Part of
2471         the fix for bug #79326.
2472
2473 2006-09-13  Miguel de Icaza  <miguel@novell.com>
2474
2475         * X11DesktopColors.cs: Start the droppage of debugging messages.
2476
2477         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
2478
2479 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
2480
2481         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
2482
2483 2006-09-12  Chris Toshok  <toshok@ximian.com>
2484
2485         * DataGrid.cs (get_ListManager): if the list_manager is null, try
2486         to create it using SetDataSource.  Fixes bug #79151.
2487
2488 2006-09-11  Chris Toshok  <toshok@ximian.com>
2489
2490         * XEventQueue.cs: add a DispatchIdle property.
2491
2492         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
2493         either the queue is null, or the queue has DispatchIdle set to
2494         true.
2495         (DoEvents): set queue.DispatchIdle to false around the
2496         peek/translate/dispatch message loop in this method.  This keeps
2497         Application.Doevents from emitting idle events.  Part of the fix
2498         for #78823.
2499
2500 2006-09-11  Chris Toshok  <toshok@ximian.com>
2501
2502         * DataGrid.cs (set_DataSource): make this work for both the
2503         winforms/datagrid test and ReportBuilder.  It seems as though when
2504         we've created a ListManager (or maybe it's if we have a
2505         BindingContext?), when we set the DataSource it clears the
2506         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
2507         #79333.
2508
2509 2006-09-11  Chris Toshok  <toshok@ximian.com>
2510
2511         * XplatUIX11.cs: deal with queue being null, which happens in all
2512         the Clipboard functions.  Fixes one of the two problems mentioned
2513         in #78612.
2514
2515 2006-09-11  Chris Toshok  <toshok@ximian.com>
2516
2517         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
2518         button on various spots (including outside the menu) works closer
2519         to MS, and doesn't crash.  Fixes #79343.
2520
2521 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
2522
2523         * ListView.cs: Do not initialize item_sorter in init. To match MS,
2524         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
2525         and the internal comparer is set. When a new ListViewItemSorter is set,
2526         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
2527         was specified. No further processing is necessary if SortOrder is set
2528         to it's current value. If Sorting is modified to None, and View is
2529         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
2530         (either custom or our internal ItemComparer) to null, on 1.0 profile
2531         only set item_sorter to null if its our internal IComparer. If Sorting
2532         is modified to Ascending or Descending, then use our internal IComparer
2533         if none is set, and if the current IComparer is our internal one then:
2534         on 2.0 profile always replace it with one for new Sorting, and on 1.0
2535         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
2536         Enum.IsDefined to verify whether a valid View value is specified in
2537         its setter. Automatically sort listview items when listview is
2538         created. In Sort, do nothing if ListView is not yet created, or if
2539         no item_sorter is set (no Sorting was set, Sorting was explicitly set
2540         to None or ListViewItemSorter was set to null). Added Sort overload
2541         taking a bool to indicate whether the ListView should be redrawn when
2542         items are sorted (we use this in ListViewItemCollection to avoid double
2543         redraws). Modified our internal IComparer to take the sort order into
2544         account. In Add and AddRange methods of ListViewItemCollection, also
2545         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
2546         view), but use overload with noredraw option to avoid double redraw.
2547         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
2548         true when View is Tile, and do the same when attempting to set View to
2549         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
2550         for selected/checked indices, as it involves overhead when sorting is
2551         done while these collections are not used all that often. Instead
2552         we'll build the indices on demand. Modified IList implementation of
2553         CheckedIndexCollection to use public methods if object is int.
2554         Modified CheckedListViewItemCollection to hide checked items if
2555         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
2556         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
2557         IList implementation in SelectedIndexCollection to use public methods
2558         if object is int. Modified SelectedListViewItemCollection to hide
2559         selected items if listview is not yet created.
2560         * ListViewItem.cs: CheckedIndices list no longer needs to be
2561         maintained separately (see ListView changes). Also clone font, fixes
2562         test failure.
2563
2564 2006-09-11  Mike Kestner  <mkestner@novell.com>
2565
2566         * ComboBox.cs: if we are updating the contents of the currently
2567         selected index, refresh the control or the textbox selection.
2568         [Fixes #79066]
2569
2570 2006-09-11  Mike Kestner  <mkestner@novell.com>
2571
2572         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
2573         the 'specified' logic has been moved there.  This seems like a bug 
2574         in Control.cs, since our current SetBoundsCore completely ignores 
2575         the specified parameter.  Peter's commit seems to indicate that is 
2576         the way the MS control implementation works.  [Fixes #79325]
2577
2578 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
2579
2580         * XplatUI.cs: Set default_class_name to be composed
2581         of current domain id. This allows MWF to be loaded in multiple
2582         domains on Win32.
2583
2584 2006-09-09  Miguel de Icaza  <miguel@novell.com>
2585
2586         * X11Keyboard.cs: If we are unable to obtain the input method, do
2587         not call CreateXic to create the input context.   Should fix
2588         #78944/79276.
2589
2590 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
2591
2592         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
2593           Simplified gnome support by adding more pinvokes to get the
2594           icon for a file or mime type.
2595
2596 2006-09-08  Jackson Harper  <jackson@ximian.com>
2597
2598         * MenuAPI.cs: Deslect popup context menu items before closing the
2599         window, so that you don't see the previously selected item
2600         selected when you reopen the menu.
2601         * TextControl.cs: Update the cursor position even if we don't have
2602         focus.  This fixes typing in things like the ComboBox.  I'm not
2603         totally sure we should always set the visibility if we don't have
2604         focus, but couldn't find any corner cases where the cursor showed
2605         up when it shouldn't.
2606
2607 2006-09-08  Chris Toshok  <toshok@ximian.com>
2608
2609         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
2610         our arrays are length 256.  & 0xff before indexing.  Fixes the
2611         crash in bug #78077.
2612         
2613 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2614
2615         * ThemeWin32Classic.cs: 
2616         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
2617         is true. Handle that check box too.
2618
2619 2006-09-07  Chris Toshok  <toshok@ximian.com>
2620
2621         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
2622         79244.
2623
2624 2006-09-07  Chris Toshok  <toshok@ximian.com>
2625
2626         * Control.cs: in set_BackColor only do the work if
2627         background_color != value.
2628
2629         * XplatUIX11.cs: move the clearing of invalid areas (both client
2630         and nc) to the same block of code where we set (nc_)expose_pending
2631         to false.  That is, move it from PaintEventEnd to PaintEventStart,
2632         so things that cause invalidates from within OnPaint will trigger
2633         another call to OnPaint.  Fixes bug #79262.
2634
2635 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
2636
2637         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
2638         * FileDialog.cs: Fix typo
2639
2640 2006-09-07  Jackson Harper  <jackson@ximian.com>
2641
2642         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
2643         for tab pages if they have any.
2644
2645 2006-09-06  Mike Kestner  <mkestner@novell.com>
2646
2647         * Splitter.cs: use the "current" rect when finishing drag handle
2648         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
2649
2650 2006-09-06  Mike Kestner  <mkestner@novell.com>
2651
2652         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
2653         support offset splitters. [Fixes #79298]
2654
2655 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
2656
2657         * Mime.cs: Fixed a bug that could override the global mime type
2658           result.
2659
2660 2006-09-05  Jackson Harper  <jackson@ximian.com>
2661
2662         * TabControl.cs: Better calculation method for setting the slider
2663         pos. Prevents crashes on really wide tabs.
2664         - Draw Image on tab pages if an image list is used.
2665
2666 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2667
2668         * MonthCalendar.cs: When Font changes, the Size should be
2669         updated to fit the new font's space requirements.
2670
2671 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
2672
2673         * ListBox.cs: If the items are cleared with Items.Clear set
2674           top_index to 0.
2675
2676 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2677
2678         * MonthCalendar.cs: Handle arrow keys as input keys. Also
2679         fire DateChanged event instead of DateSelected event when
2680         the date was changed by keyboard interaction.
2681
2682 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2683
2684         * DateTimePicker.cs: Handle DateChanged for the associated
2685         month_calendar control, and set month_calendar.Font from 
2686         OnFontChanged method, as well as resize the height of the
2687         control when needed. Make PreferredHeight proportional.
2688
2689 2006-09-01  Chris Toshok  <toshok@ximian.com>
2690
2691         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
2692         properties.
2693
2694         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
2695
2696 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
2697
2698         * FileDialog.cs: Set ClientSize instead of window size, to allow space
2699           for decorations (Fixes #79219)
2700
2701 2006-09-01  Mike Kestner  <mkestner@novell.com>
2702
2703         * ComboBox.cs: first stab at sorting plus some selection handling
2704         fixes to bring us more in line with MS behavior.  Also switches back
2705         to index based selection.  Alternative patches for index-based 
2706         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
2707         and latency@gmx.de on bug 78848.  I assume they were similar to this
2708         code I've had simmering in my tree forever.
2709         [Fixes #78848]
2710
2711 2006-09-01  Chris Toshok  <toshok@ximian.com>
2712
2713         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
2714         when setting list position guard against ending up with a -1 index
2715         (the other part of the fix for #78812).  Should probably make sure
2716         we don't need the analogous fix in the ItemDeleted case.
2717
2718         * DataGrid.cs:
2719         - in SetDataSource, work around the fact that the way
2720         OnBindingContextChanged is invoked will cause us to re-enter this
2721         method.  I'll remove the hack once I investigate
2722         OnBindingContextChanged.
2723
2724         - fix the logic in set_DataSource and set_DataMember (basically
2725         what to do if the other of the two is null.)
2726         
2727         - in OnListManagerItemChanged, we need to take into account the
2728         edit row when deciding whether or not to call RecreateDataGridRows
2729         (part of the fix for #78812).
2730
2731 2006-09-01  Jackson Harper  <jackson@ximian.com>
2732
2733         * Splitter.cs: Don't do anything if there is no control to affect
2734         (prevents us from crashing in weird tet cases).
2735         * TreeView.cs: Bounding box for the mouse movement reverting
2736         focus/selection back to previously selected node.  This matches
2737         MS, and makes the tree a lot more useable.
2738         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
2739         use clipping so they are not drawn.  This fixes when the control
2740         is set to have a transparent background, or if it was over an
2741         image.
2742
2743 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
2744
2745         * MimeIcon.cs: Improved handling for reading default icons when
2746           using gnome (2.16 made it necessary). Check and read svg icons
2747           first, then 48x48 and then 32x32 icons.
2748
2749 2006-08-31  Chris Toshok  <toshok@ximian.com>
2750
2751         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
2752         visible.
2753
2754         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
2755         ProcessKeyPreview.  Fixes part of #77806.
2756
2757         * DataGrid.cs: big patch.
2758
2759         - revert the queueing up of DataSource/DataMember if inside
2760         BeginInit/EndInit calls.  That's not the way the datagrid achieves
2761         its delayed databinding.  Instead, call SetDataSource in
2762         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
2763         #78811.
2764
2765         - Also, it wasn't mentioned in #78811, but the test case exhibits
2766         behavior that was lacking in our datagrid implementation - Columns
2767         that have mapping names that don't exist in the datasource's
2768         properties aren't shown.  Yuck.  To fix this I added the bound
2769         field to the column style, and basically any calculation to figure
2770         out anything about columns uses a loop to find the bound columns.
2771         still need to investigate if I can cache an array of the bound
2772         columns or if the indices must be the same.
2773
2774         - When setting CurrentCell, we no longer abort if the cell being
2775         edited was in the add row.  This fixes the other part of #77806.
2776
2777         - The new code also fixes #78807.
2778         
2779         * ThemeWin32Classic.cs: perpetrate the same disgusting
2780         column.bound field hack, and only render bound fields.
2781
2782 2006-08-31  Chris Toshok  <toshok@ximian.com>
2783
2784         * DataGridColumnStyle.cs: add bound field.  this field is true if
2785         the datasource has a property corresponding to the mapping name.
2786
2787         * DataGridTableStyle.cs: set the bound field on the column styles
2788         depending on whether or not we have a column for that property.
2789
2790 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
2791
2792         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
2793           splitter control (fixes #79228)
2794
2795 2006-08-31  Chris Toshok  <toshok@ximian.com>
2796
2797         * DataGridColumnStyle.cs: we need to delay the assignment of
2798         property descriptor until the last possible moment due to the lazy
2799         databinding stuff in the datagrid.  Also, fix the exceptions
2800         thrown by CheckValidDataSource to match MS.
2801
2802 2006-08-31  Jackson Harper  <jackson@ximian.com>
2803
2804         * Form.cs: When activated select the active control, if there is
2805         no active control, we select the first control.
2806         * XplatUIX11.cs: If there is no focus control when we get a
2807         FocusIn event, find the toplevel form and activate it.  This
2808         occurs when you popup a window, it becomes the focus window, then
2809         you close that window, giving focus back to the main window.
2810
2811 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2812
2813         * MonthCalendar.cs: 
2814         * ThemeWin32Classic.cs: Cache Font in bold style, as well
2815         as StringFormat with Center alignments in MonthCalendar,
2816         instead of creating new ones when drawing the control. 
2817         Also, draw the month name in bold style.
2818
2819 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
2820
2821         * Control.cs:
2822           - PerformLayout(): It would seem MS performs the fill even if the 
2823             control is not visible (part of #79218 fix)
2824           - ResetBackColor(): Use the setter to reset the color, to allow
2825             overriders to catch the change.
2826         * Form.cs:
2827           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
2828           - CreateHandle(): dito (part of $79218 fix)
2829           - Don't set an icon if we have a dialog
2830         * ScrollableControl.cs:
2831           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
2832           - ScrollIntoView(): No need to scroll if control is already visible
2833             (resolves fixme and fixes #79218)
2834
2835 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2836
2837         * MonthCalendar.cs: Change proportions in SingleMonthSize
2838         to match the aspect of the original control.
2839
2840 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
2841
2842         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
2843           get updated when they get maximized.
2844
2845 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
2846
2847         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
2848
2849 2006-08-29  Chris Toshok  <toshok@ximian.com>
2850
2851         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
2852
2853 2006-08-29  Jackson Harper  <jackson@ximian.com>
2854
2855         * TreeView.cs: Need to track selected node and highlighted node,
2856         they aren't always the same thing, when the mouse is down on a
2857         node it is hilighted, but not selected yet.
2858         - Do the HideSelection stuff right
2859         - Need to focus on rbutton mouse down. And redraw selection when
2860         right click is mouse upped.
2861
2862 2006-08-29  Mike Kestner  <mkestner@novell.com>
2863
2864         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
2865         when SubItems.Count < Columns.Count.  [Fixes #79167]
2866
2867 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
2868
2869         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
2870
2871 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
2872
2873         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
2874           from X. Only send based on ConfigureNotify if we don't have the
2875           correct location in hwnd (if the window manager moved us)
2876
2877 2006-08-28  Mike Kestner  <mkestner@novell.com>
2878
2879         * ListView.cs: remove a TODO. 
2880         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
2881         [Fixes ListView part of #79166]
2882
2883 2006-08-28  Mike Kestner  <mkestner@novell.com>
2884
2885         * ListView.cs: move wheel handler to parent since it is focused
2886         instead of the item_control now.  [Fixes #79177]
2887
2888 2006-08-28  Mike Kestner  <mkestner@novell.com>
2889
2890         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
2891         when the control is focused. [Fixes #79171]
2892
2893 2006-08-28  Mike Kestner  <mkestner@novell.com>
2894
2895         * ListView.cs: size the item and header controls for empty and
2896         unscrollable views.
2897         * ThemeWin32Classic.cs: draw disabled backgrounds.
2898         [Fixes #79187]
2899
2900 2006-08-28  Chris Toshok  <toshok@ximian.com>
2901
2902         * Form.cs: remove unused "active_form" static field.
2903
2904         * Hwnd.cs: lock around accesses to static windows collection.
2905
2906         * Application.cs: lock threads in Exit ().
2907
2908 2006-08-28  Chris Toshok  <toshok@ximian.com>
2909
2910         * NativeWindow.cs: lock around accesses to window_collection.
2911         
2912 2006-08-28  Chris Toshok  <toshok@ximian.com>
2913
2914         * Control.cs: err, fix this the right way, by locking on controls
2915         when using it.  not by making it synchronized.
2916
2917 2006-08-28  Chris Toshok  <toshok@ximian.com>
2918
2919         * Control.cs: make the static "controls" field synchronized, as it
2920         gets updated from multiple threads.
2921
2922 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2923
2924         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
2925           Prevent other threads from exiting when calling thread sets quit state.
2926         * XEventQueue.cs: Added PostQuitState property
2927
2928 2006-08-27  Chris Toshok  <toshok@ximian.com>
2929
2930         * AsyncMethodData.cs: add a slot for the window handle.
2931
2932         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
2933         window (the destination control's window, not the foster window).
2934
2935         * Control.cs (BeginInvokeInternal): store the window's handle in
2936         the AsyncMethodData.
2937         
2938
2939 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2940
2941         * XplatUIX11.cs:
2942           - PostQuitMessage: Removed resetting S.D display handle, we might have
2943             another loop started after calling PostQuitMessage (Fixes #79119)
2944           - Created destructor to reset S.D handle
2945
2946 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
2947
2948         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
2949
2950 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2951
2952         * TextControl.cs (Insert): Update the caret position even if we don't
2953           have a handle yet, just don't call the driver in that case.
2954         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
2955           to the end of the new selection text (Fixes #79184)
2956
2957 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2958
2959         * Form.cs (Activate): Only activate if the handle is created)
2960         * Control.c:
2961           - Mark window as invisible when it's disposed
2962           - Check if window handle is created when setting window visible, 
2963             instead of relying just on the is_created variable
2964           - Check if object is disposed when creating the control (Fixes #79155)
2965
2966 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2967
2968         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
2969           when allowing layout again. Otherwise we re-generate the anchoring 
2970           distance to the border again and actually alter what the user wanted
2971           This is ugly, it'd be better if we used DisplayRectangle instead of
2972           ClientRectangle for Control.UpdateDistances, but that causes us to
2973           have other problems (initial anchoring positons would be wrong)
2974           (Fixes #78835)
2975
2976 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2977
2978         * Control.cs:
2979           - The size and location setters shouldn't go directly to 
2980             SetBoundsCore, but to SetBounds, which triggers layout on the
2981             parent, then calls SetBoundsCore. (Related to fix for #78835)
2982           - SetBounds: Moved actual location update code into this function
2983             from SetBoundsCore, to match MS. Added call to PerformLayout if
2984             we have a parent (to trigger resizing of anchored parents if the 
2985             child size has changed (see testcase for #78835) 
2986         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
2987           new control code
2988         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
2989
2990 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2991
2992         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
2993           System.Drawing when a toplevel window gets closed; there might
2994           be other toplevel windows belonging to the same app (Fixes #78052)
2995
2996 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
2997
2998         * FileDialog.cs: After reading FileDialog settings from mwf_config
2999           use Desktop prefix only if a real folder doesn't exist anymore.
3000         * FontDialog.cs: Added char sets.
3001           It is now possible to select the font, size or style with the
3002           textboxes.
3003
3004 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
3005
3006         * PrintPreviewDialog.cs: Use assembly name constants.
3007
3008 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3009
3010         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
3011           scrollbar from whacking it's buttons)
3012
3013 2006-08-24  Chris Toshok  <toshok@ximian.com>
3014
3015         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
3016         in this patch (aggregating setting Left/Top/Width/Height to
3017         setting Bounds on the scrollbars), but the crux of the fix is in
3018         Recalculate, where we scroll by the remaining scroll_position if
3019         we're hiding a scrollbar.  The 2*$5 reward in the comment is
3020         serious.
3021
3022 2006-08-24  Jackson Harper  <jackson@ximian.com>
3023
3024         * MdiClient.cs:
3025         * MdiWindowManager.cs: If the form is made a non-mdi window we
3026         need to remove the form closed event so that closing forms works
3027         correctly.
3028
3029 2006-08-24  Jackson Harper  <jackson@ximian.com>
3030
3031         * Control.cs: Make IsRecreating internal so that the driver can
3032         check it
3033         - Temporarily remove the Hide when controls are removed, its
3034         making a whole bunch of things not work because visibility isn't
3035         getting reset elsewhere correctly
3036         * Form.cs: Need to do a full handle recreation when the mdi parent
3037         is set.
3038         * XplatUIX11.cs: If we are recreating handles don't dispose the
3039         HWNDs.  What was happening is the handles were being recreated in
3040         SendWMDestroyMessages, but then flow continued on in that method
3041         and destroyed the new handles.
3042
3043 2006-08-23  Jackson Harper  <jackson@ximian.com>
3044
3045         * Form.cs: MdiClient is always at the back of the bus
3046         * Control.cs: When the order of items in the collection is changed
3047         we need to reset the all_controls array
3048         - do the same sorta setup thats done when adding a control when a
3049         control is set on the collection.
3050
3051 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3052
3053         * TextBoxBase.cs (get_Text): Return an empty array if our document
3054           is empty (fixes #79052)
3055
3056 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3057
3058         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
3059           on WM_SYSCHAR messages (fixes #79053)
3060
3061 2006-08-23  Chris Toshok  <toshok@ximian.com>
3062
3063         * DataGrid.cs: fix flickering when scrolling vertically.
3064
3065 2006-08-23  Chris Toshok  <toshok@ximian.com>
3066
3067         * DataGrid.cs (EndEdit): only invalidate the row header when we
3068         need to.
3069
3070 2006-08-23  Chris Toshok  <toshok@ximian.com>
3071
3072         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
3073         methods.  fixes the flicker when scrolling around.
3074
3075 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3076
3077         * FileDialog.cs: Making sure the control is created before we get a 
3078           chance to use it with BeginInvoke (Fixes #79096)
3079
3080 2006-08-23  Chris Toshok  <toshok@ximian.com>
3081
3082         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
3083         width to use when painting the rows.
3084
3085 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3086
3087         * TextBoxBase.cs:
3088           - Throw ArgumentException if a negative value is passed to SelectionLength
3089           - Update the selection end if start is moved. end needs to be always
3090             after start. (Fixes #79095)
3091           - Track selection length; MS keeps the selection length even if start
3092             is changed; reset on all other operations affection selection
3093
3094 2006-08-22  Jackson Harper  <jackson@ximian.com>
3095
3096         * TreeView.cs: Make sure both scrollbars get displayed and sized
3097         correctly when the other bar is visible.
3098         - Use the original clip rectangle for checking if the area between
3099         the two scrollbars is visible, not the viewport adjusted clipping
3100         rectangle.
3101
3102 2006-08-22  Jackson Harper  <jackson@ximian.com>
3103
3104         * Binding.cs: We don't use IsBinding because it requires the
3105         control to be created, which really shouldn't be necessary just to
3106         set a property on the control.
3107
3108 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3109
3110         * ComboBox.cs: Some CB.ObjectCollection methods must throw
3111         ArgumentNullReferenceException when the argument is null.
3112
3113 2006-08-21  Jackson Harper  <jackson@ximian.com>
3114
3115         * Timer.cs: Track the thread that the timer is started in (NOT
3116         CREATED), this way messages for it will only be triggered on its
3117         queue.
3118         * XEventQueue.cs: Track the timers here, this makes timers per
3119         thread, like MS.
3120         * XplatUIX11.cs: The timers are moved to the XEventQueue.
3121
3122 2006-08-19  Chris Toshok  <toshok@ximian.com>
3123
3124         * XplatUIX11.cs: after further communication with pdb, we get the
3125         best of both worlds.  SetZOrder working for un-Mapped windows, and
3126         no X errors for un-mapped windows.
3127
3128 2006-08-19  Chris Toshok  <toshok@ximian.com>
3129
3130         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
3131         as it was causing pdn toolbars to not have the correct stacking.
3132
3133 2006-08-18  Mike Kestner  <mkestner@novell.com> 
3134
3135         * ListView.cs : guard against negative ClientArea.Width in scrollbar
3136         calculation.  Not sure why control should ever be setting a negative
3137         width though.  Fixes #78931.
3138
3139 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3140
3141         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
3142         null items in ObjectCollection class.
3143         * ListBox.cs.: Likewise.
3144
3145 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
3146
3147         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
3148           as the base method in ThemeWin32Classic should work fine.
3149           Fixed bug #78607.
3150
3151 2006-08-18  Jackson Harper  <jackson@ximian.com>
3152
3153         * Binding.cs: When validating if the value entered doesn't convert
3154         properly reset to the old value.
3155         * RadioButton.cs: Don't fire click when we get focus.
3156
3157 2006-08-18  Jackson Harper  <jackson@ximian.com>
3158
3159         * FileDialog.cs: Paint the selection on the directory combobox the
3160         same way as on MS. 
3161
3162 2006-08-17  Jackson Harper  <jackson@ximian.com>
3163
3164         * ErrorProvider.cs: Don't allow the error control to be selected.
3165         * Control.cs: Don't send the SetFocus messages, the control
3166         activation will do this, and if we do it blindly here validation
3167         does not work.
3168
3169 2006-08-17  Jackson Harper  <jackson@ximian.com>
3170
3171         * Control.cs:
3172         * ContainerControl.cs: Make validation events fire in the correct
3173         order.  TODO: For some reason the first validation event is not
3174         getting fired.
3175
3176 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3177
3178         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
3179
3180 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3181
3182         * ComboBox.cs : implement scroll wheel support for popped-down
3183         state. Fixes #78945. 
3184
3185 2006-08-17  Jackson Harper  <jackson@ximian.com>
3186
3187         * TreeView.cs: Specify treeview actions (old patch that didn't get
3188         committed for some reason).
3189         - Don't let the mouse wheel scroll us too far.  Just want to make
3190         the bottom node visible, not scroll it all the ways to the top.
3191
3192 2006-08-17  Jackson Harper  <jackson@ximian.com>
3193
3194         * XplatUIX11.cs: Mouse wheel events go to the focused window.
3195
3196 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3197
3198         * ComboBox.cs : don't do mouseover selection in simple mode.
3199
3200 2006-08-16  Jackson Harper  <jackson@ximian.com>
3201
3202         * Form.cs: Fire the closing events for all the mdi child windows
3203         when a window is closed.  If the cancel args are set to true, the
3204         main window still gets the event fired, but it doesn't not close.
3205         * MdiWindowManager.cs: Do this closing cleanup in a Closed
3206         handler, instead of when the button is clicked, so cancelling the
3207         close works correctly.
3208         * ComboBox.cs: Send the mouse down to the scrollbar.
3209
3210 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3211
3212         * ListBox.cs: When passing 'null' to SelectedItem,
3213         set SelectedIndex to -1, to unselect items. This is the
3214         observed behaviour in .Net.
3215
3216 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
3217
3218         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
3219           MS flags saying there won't be any. (fixes #78800)
3220         * Control.cs (HandleClick): Made virtual
3221
3222 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3223
3224         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
3225           cultures. Fixed bug #78399.
3226
3227 2006-08-16  Jackson Harper  <jackson@ximian.com>
3228
3229         * Form.cs: Use the MdiClients MdiChildren property to access
3230         MdiChildren instead of creating the array from the child controls.
3231         * MdiClient.cs: Maintain a separate array of the mdi children, so
3232         that insertion order is maintained when the Z-order is changed.
3233
3234 2006-08-16  Mike Kestner  <mkestner@novell.com> 
3235
3236         * ListView.cs : add an ItemComparer and default to it for sorting.
3237         Fixes #79076, but sorting needs a complete overhaul to be compat with
3238         MS.
3239
3240 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3241
3242         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
3243
3244 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3245
3246         * Hwnd.cs (Mapped): Properly traverse the tree
3247
3248 2006-08-15  Chris Toshok  <toshok@ximian.com>
3249
3250         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
3251         pass manager.Current.GetType() to ParseData.  It has to be the
3252         property type.  So, hold off doing the ParseData until we're in
3253         SetPropertyValue where we know the type.  This fixes the crash in
3254         #78821 but the textbox is still empty.
3255
3256 2006-08-15  Chris Toshok  <toshok@ximian.com>
3257
3258         * DataGrid.cs:
3259         - when we're scrolling, only call Edit() again if the
3260         current cell is still unobscured. Fixes bug #78927.
3261         - when handling mousedown on a cell, ensure the cell is visible
3262         before calling Edit.
3263         - remove the properties from DataGridRow, and remove the
3264         DataGridParentRow class altogether.
3265         
3266
3267 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3268
3269         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
3270           fire OnTextChanged by ourselves. There's no point calling base,
3271           we don't set the base value anywhere else. Fixes #78773.
3272
3273 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3274
3275         * ListBox.cs: Call CollectionChanged when modifying
3276         an item from Items indexer, to update the actual items
3277         in the list box.
3278
3279 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3280
3281         * PrintDialog.cs: Small fixes for focus and a pair of checks,
3282         to match .Net behaviour.
3283
3284 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3285
3286         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
3287
3288 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3289
3290         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
3291
3292 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3293
3294         * MessageBox.cs: Prevent potential NRE exception.
3295         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
3296
3297 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3298
3299         * MessageBox.cs: Calculate the owner of a messagebox, also make
3300           it topmost. Fixes #78753
3301
3302 2006-08-14  Chris Toshok  <toshok@ximian.com>
3303
3304         * XplatUIX11.cs: A couple of fixes so that metacity will let us
3305         programmatically move windows.  first, set the PPosition hint as
3306         well as the USPosition hint.  Second include some code from pdb
3307         that sets the window type to NORMAL when we set the transient for
3308         hint.  This is because, in the absence of a window type, metacity
3309         thinks any window with TransientFor set is a dialog, and refuses
3310         to let us move it programmatically.  fascists.
3311
3312 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3313
3314         * XplatUIX11.cs: When setting normal hints, take into consideration
3315           an different hints previously set so we don't delete them (fixes #78866)
3316
3317 2006-08-12  Chris Toshok  <toshok@ximian.com>
3318
3319         * ToolBarButton.cs: make Layout return a boolean, if something to
3320         do with the button's layout changed.
3321
3322         * ToolBar.cs:
3323         - add another parameter to Redraw, @force, which all existing
3324           calls set to true.
3325         - make the Layout function return a boolean which is true if the
3326           layout has actually changed.  Redraw now uses this (and @force)
3327           to determine when to invalidate.  At present the only place
3328           where @force can be false is the call from OnResize, when
3329           background_image == null.  So, resizing a toolbar when the
3330           layout doesn't change results in no drawing.
3331
3332 2006-08-12  Chris Toshok  <toshok@ximian.com>
3333
3334         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
3335         the VScrollBar and HScrollbar reversed.  oops.
3336
3337         * DataGrid.cs: fix the logic that assigns sizes to the implicit
3338         scrollbars.  we were assigning them twice (once in
3339         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
3340         therefore causing two scrollbar resizes (and redraws?) to happen
3341         per grid resize.
3342
3343 2006-08-12  Chris Toshok  <toshok@ximian.com>
3344
3345         * ToolBarButton.cs: redraw the entire button if the theme tells us
3346         to.
3347
3348         * Theme.cs: add ToolBarInvalidateEntireButton.
3349
3350         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
3351         buttons, just the border.
3352
3353         * ThemeNice.cs: redraw the entire toolbar button since we need to
3354         draw the highlight image.
3355
3356         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
3357         we need to redraw the entire button (not just the border).
3358
3359 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3360
3361         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
3362           for vertical bars. Fixes the mismatches shown by #78513
3363
3364 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
3365
3366         * FileDialog.cs: If a saved/remembered path doesn't exist
3367           anymore, fall back to "Desktop".
3368
3369 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3370
3371         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
3372           parent. It's apparently legal to not have one
3373         * XplatUIX11.cs:
3374           - SetZOrder: Don't try to set Z-Order on an unmapped window
3375           - CreateWindow: 0,0 are legal coordinates for a window. don't move
3376             it unless the coordinates are negative
3377
3378 2006-08-10  Mike Kestner  <mkestner@novell.com>
3379
3380         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
3381         when setting to null per msdn docs.  Fixes #78854.
3382
3383 2006-08-10  Chris Toshok  <toshok@ximian.com>
3384
3385         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
3386         flickering by setting a clip rectangle on the Graphics when we
3387         need to redraw just a particular menuitem.  Also, rename "OnClick"
3388         to "OnMouseDown" to reflect what it actually is.
3389         
3390         * Form.cs: track the OnMouseDown change.
3391
3392 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
3393
3394         * CommonDialog.cs: Properly inherit the CreateParams from the form
3395           and only change what we need. Fixes #78865
3396
3397 2006-08-10  Chris Toshok  <toshok@ximian.com>
3398
3399         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
3400         flickering in flat mode (and most of the flickering in general) by
3401         only invalidating the button border (and not the entire rectangle)
3402         when the state changes.  A couple of cases still flicker:
3403         ToggleButtons, and the dropdown arrow case when the user mouse
3404         ups.
3405
3406 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
3407
3408         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
3409           for german keyboards. Numlock state shouldn't affect the behaviour
3410           of the Del key. Fixes bug #78291.
3411
3412 2006-08-10  Chris Toshok  <toshok@ximian.com>
3413
3414         * ListControl.cs: remove the items.Clear line from BindDataItems,
3415         as this is the first thing done by both subclasses in their
3416         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
3417         passed -1, refresh the list.  This gets databinding working when
3418         the datasource is set on the list before the datasource is
3419         populated (as in wf-apps/ReportBuilder.)
3420
3421         * ComboBox.cs: remove the argument to BindDataItems.  This call
3422         should really go away, and be initiated by the ListControl code.
3423
3424         * ListBox.cs: same.
3425
3426 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3427
3428         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
3429           if no data is in the document when the control is displayed
3430
3431 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
3432
3433         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
3434           yes (fixes #78806)
3435         * TextControl.cs: 
3436           - PositionCaret: Allow positioning of caret but don't call methods 
3437             requiring a handle if the window isn't created yet
3438           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
3439           - owner_HandleCreated: Don't position the caret, just update it's 
3440             location. User might have already set a different position
3441
3442 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3443
3444         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
3445           windows. Screws up the returned coordinates for child windows. 
3446           Fixes #78825. I'm hoping this doesn't break something, since the
3447           code was explicitly put in 8 months ago, but no bug was attached.
3448           Menus still seem to work properly.
3449
3450 2006-08-08  Chris Toshok  <toshok@ximian.com>
3451
3452         * DataGrid.cs: make BeginInit/EndInit actually do what they're
3453         supposed to do - delay data binding until the EndInit call.  Also,
3454         make the table style collection's CollectionChangeAction.Refresh
3455         work properly.
3456
3457         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
3458         (with action = Refresh) when a consituent table's MappingName is
3459         changed.
3460
3461 2006-08-08  Chris Toshok  <toshok@ximian.com>
3462
3463         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
3464         Invalidate, since changing the text can change the size of the all
3465         toolbar buttons.
3466
3467 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3468
3469         * Form.cs (AddOwnedForm): Still need to add the form to our listif
3470           we don't have it yet
3471
3472 2006-08-08  Chris Toshok  <toshok@ximian.com>
3473
3474         * PrintControllerWithStatusDialog.cs: don't .Close() the status
3475         dialog, as this causes X errors later on, since we actually
3476         destroy the window.  Instead, .Hide() it.
3477
3478 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3479
3480         * ComboBox.cs: Added focus reflection for popup window
3481         * XplatUIX11.cs: 
3482           - Removed transient setting for non-app windows for now, not sure it
3483             was needed
3484           - Fixed logic checking if we have captions when deciding 
3485             override_redirect, WS_CAPTION is two bits and a 0 check was not
3486             sufficient
3487           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
3488             complicated
3489         * Form.cs: 
3490           - AddOwnedForm: Don't just add the form to the list, call the property
3491             to ensure the driver is informed about the ownership as well
3492           - CreateHandle: Set the TopMost status in the driver if we have an owner
3493         * XplatUI.cs: Fixed debug statement
3494
3495 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
3496         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3497           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
3498           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
3499           TrackBarRenderer.cs: Make constructor private.
3500         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
3501         * ProfessionalColorTable.cs: Make properties virtual.
3502
3503 2006-08-06  Duncan Mak  <duncan@novell.com>
3504
3505         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
3506         is not changing.
3507
3508 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3509         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3510           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
3511           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
3512           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
3513           Initial import of new 2.0 classes.
3514
3515 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3516         * Application.cs: Add 2.0 VisualStyles properties.
3517
3518 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3519         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3520           XplatUIX11.cs: Create property to allow access to existing private
3521           variable "themes_enabled"
3522
3523 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3524
3525         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
3526         file size, as otherwise our class libraries fail using windows. Fixes
3527         bug #78759.
3528
3529 2006-08-04  Jackson Harper  <jackson@ximian.com>
3530
3531         * Form.cs:
3532         * XplatUIX11.cs: Move the toolwindow window manager creation into
3533         the X11 driver, this way on win32 we can let windows create/handle
3534         the toolwindows.
3535
3536 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3537
3538         * PrintDialog.cs: Remove some redundant checks, add some others,
3539         clean some code, and move the focus to the text boxes when the
3540         values are incorrect.
3541
3542 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
3543
3544         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
3545
3546 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3547
3548         * NumericUpDown.cs: Setting the Minimum and Maximum is now
3549           handled correctly. Fixes bug #79001.
3550
3551 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3552
3553         * PrintDialog.cs: The "Copies" numeric up down must have
3554         set the Minimum property to 1; only if the value is bigger
3555         than 1, activate "Collate" check box. This is the behaviour of .Net.
3556         Also modify the Document elements only if it is not null.
3557
3558 2006-08-03  Jackson Harper  <jackson@ximian.com>
3559
3560         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
3561         length. (We have a larger array then actual node count).
3562                 
3563 2006-08-03  Jackson Harper  <jackson@ximian.com>
3564
3565         * ComboBox.cs: Don't show selection by default.
3566         - The SelectAll isn't needed here, since the focus code should do
3567         that
3568         - DDL style lists to manual selection drawing, so when they
3569         get/lose focus they have to invalidate.
3570
3571 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
3572
3573         * TextBoxBase.cs: Don't always show all selections by default.
3574
3575 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
3576         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
3577           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
3578           Fixed various typos.
3579
3580 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3581
3582         * Control.cs: Removing the controls in a ControlCollection with
3583           Clear now hides the controls as expected. Fixes bug #78804. 
3584
3585 2006-08-03  Jackson Harper  <jackson@ximian.com>
3586
3587         * Control.cs: Revert previous focus patch, it breaks reflector.
3588
3589 2006-08-03  Jackson Harper  <jackson@ximian.com>
3590
3591         * ComboBox.cs: Cleanup selection and focus with the combobox.
3592         This also eliminates some duplicated keyboard code, since now
3593         everything is handled by the main class.
3594         - Make list selection work on mouse up instead of down, to match
3595         MS.
3596
3597 2006-08-02  Jackson Harper  <jackson@ximian.com>
3598
3599         * Control.cs: Setting focus needs to go through the whole
3600         selection mechanism.
3601
3602 2006-08-02  Chris Toshok  <toshok@ximian.com>
3603
3604         * PrintPreviewDialog.cs: change MinimumSize to use
3605         base.MinimumSize so it works.
3606
3607 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
3608
3609         * TextControl.cs:
3610           - UpdateCaret: Added sanity check in case caret isn't defined yet
3611           - Line.Delete: Now updating selection and caret markers if we're
3612             transfering a node (Properly fixes #78323)
3613           - SetSelectionEnd: Added sanity check
3614         * TextBoxBase.cs: Removed broken attempt to fix #78323
3615
3616 2006-08-01  Chris Toshok  <toshok@ximian.com>
3617
3618         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
3619         Close() call is handled in Form, not here.
3620
3621 2006-08-01  Chris Toshok  <toshok@ximian.com>
3622
3623         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
3624         layout/rendering.
3625
3626         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
3627         for sizes < 100% zoom.  The code now aggressively attempts to keep
3628         from calling document.Print (), and tries not to use the scaling
3629         g.DrawImage whenever possible (it still does if you scale to >
3630         100%, since usually that involves huge images).
3631
3632         * PrintPreviewControl.cs: hook up the close button.
3633
3634 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
3635         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
3636           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
3637           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
3638           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
3639           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
3640           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
3641           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
3642           Removed [Serializable] for 2.0 Event Handlers.
3643
3644 2006-07-31  Jackson Harper  <jackson@ximian.com>
3645
3646         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
3647         * TextControl.cs: Uncomment out the body of this method.
3648
3649 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
3650
3651         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
3652           standard cursors.
3653
3654 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3655
3656         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
3657           that embed TextBox and need selections visible even if textbox is not
3658           focused to enforce that behaviour.
3659         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
3660           selection drawing
3661
3662 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3663
3664         * TextControl.cs:
3665           - Added new SetSelectionStart/SetSelectionEnd overloads
3666           - Fixed viewport width assignment to be accurate
3667           - Adjusted alignment line shift calculations to allow cursor on right
3668             aligned lines to be always visible at the right border (like MS)
3669         * TextBoxBase.cs:
3670           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
3671           - TextBoxBase_SizeChanged: recalculating canvas on size changes
3672           - CalculateScrollBars: Use ViewPort size instead of window size, to
3673             properly consider space occupied by the border and scrollbars 
3674             (Fixes #78661)
3675           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
3676             calculations; no longer leaves artifacts
3677           - CaretMoved: Adjusted window scrolling to match MS and fixed several
3678             calculation bugs (Still missing right/center align calculations)
3679
3680 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
3681
3682         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
3683           use of both scroll rect and clip rect, as they do the same.
3684
3685 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3686
3687         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
3688           in the event handler (fixes #78912)
3689
3690 2006-07-31  Chris Toshok  <toshok@ximian.com>
3691
3692         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
3693         grid.ListManager.Count, since grid.ListManager might be null.
3694         This of course begs the question "why are we drawing rows for a
3695         grid with no list manager (and therefor no rows)?"  Fixes the
3696         crash in bug #78929.
3697
3698 2006-07-31  Chris Toshok  <toshok@ximian.com>
3699
3700         * RelatedPropertyManager.cs: Don't always chain up to the parent
3701         ctor.  instead, call SetDataSource if the parent's position is !=
3702         -1.  Fixes the crash in #78822.
3703
3704 2006-07-31  Chris Toshok  <toshok@ximian.com>
3705
3706         * DataGrid.cs (get_ListManager): use field instead of property
3707         accessors for datasource and datamember.
3708         (RowsCount): make internal again.
3709         (OnMouseDown): end edits before resizing columns/rows.
3710         (OnMouseUp): restart edits after resizing columns/rows.
3711
3712 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
3713
3714         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
3715           This fixes the situation where the last set cursor is displayed
3716           whenever the mouse is over scrollbars.
3717
3718 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3719
3720         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
3721         Document properties, as well as initial values.
3722
3723 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
3724
3725         * XplatUIWin32.cs (SetBorderStyle): Setting both border
3726           and ClientEdge results in a 3-pixel border, which is
3727           wrong.
3728
3729 2006-07-28  Jackson Harper  <jackson@ximian.com>
3730
3731         * TreeNodeCollection.cs: Fix the clear method.
3732         - Fix the Shrink also
3733
3734 2006-07-27  Jackson Harper  <jackson@ximian.com>
3735
3736         * TreeView.cs: Make sure the visible order is computed when we
3737         attempt to size the scrollbars (for trees that mess with the
3738         scrolling when they shouldn't.
3739         - Make sure to give the scrollbars valid values.
3740
3741 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3742
3743         * XplatUIX11.cs: Move motion compression code to where it
3744           has less performance impact
3745
3746 2006-07-26  Jackson Harper  <jackson@ximian.com>
3747
3748         * UpDownBase.cs: When the control is selected make the child
3749         controls non selectable, so that a click on them won't do a
3750         focus/unfocus cycle.
3751         - Don't give focus to the text box when the spinner is selected.
3752         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
3753
3754 2006-07-26  Chris Toshok  <toshok@ximian.com>
3755
3756         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
3757         satisfied with this solution.  If the bitmaps are small, we should
3758         just cache them in the PrintPreviewDialog and draw them here.
3759         Also, the layout is broken for the 2-up and 3-up cases.
3760
3761         * Theme.cs: add PrintPReviewControlPaint.
3762
3763         * PrintPreviewDialog.cs: first pass implementation.
3764
3765         * PrintPreviewControl.cs: first pass implementation.  No
3766         scrollbars yet.
3767
3768         * PrintDialog.cs: only validate fields if that particular portion
3769         of the UI is enabled.  Also, set the document's controller to a
3770         PrintControllerWithStatusDialog wrapping the document's print
3771         controller.
3772
3773         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
3774         bring up a SaveFileDialog (i hope we don't want to match the
3775         behavior of the crappy windows file entry) and set the
3776         PrinterSettings.PrintFileName accordingly.
3777
3778 2006-07-26  Jackson Harper  <jackson@ximian.com>
3779
3780         * ContainerControl.cs: Add a field that disables auto selecting
3781         the next control in a container when the container is activated.
3782         * UpDownBase.cs: Don't select the text box when the up down is
3783         selected.
3784
3785 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3786
3787         * XEventQueue.cs: Added methods for peeking (used for compression
3788           of successive events)
3789         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
3790           mouse move events (fixes #78732)
3791
3792 2006-07-25  Jackson Harper  <jackson@ximian.com>
3793
3794         * UpDownBase.cs: Use an internal class for the textbox so that we
3795         can control focus.  the updown control should always have focus,
3796         if either the text area or the buttons are clicked.
3797         - Send the key messages to the textbox, since it never actually
3798         has focus
3799         - Activate and decativate the textbox caret.
3800
3801 2006-07-24  Jackson Harper  <jackson@ximian.com>
3802
3803         * Control.cs: Use the directed select when selecting a control,
3804         this way the container controls override will get called and the
3805         whole ActiveControl chain will get triggered.  TODO: probably need
3806         to make sure this gets done everywhere instead of the old
3807         Select(Control).
3808         * ContainerControl.cs: Implement the directed Select method to
3809         find and activate the correct child control.    
3810         
3811 2006-07-22  Mike Kestner  <mkestner@novell.com>
3812
3813         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
3814         menu handling code so that clicks without a grab work too.
3815         [Fixes #78914]
3816
3817 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
3818
3819         * FileDialog.cs: Enable the BackButton when dirstack has one element.
3820           Added some small optimizations.
3821
3822 2006-07-21  Matt Hargett  <matt@use.net>
3823
3824         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
3825
3826 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
3827
3828         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
3829           tests pass and match MS in some strange border cases.
3830
3831 2006-07-21  Chris Toshok  <toshok@ximian.com>
3832
3833         * ThemeWin32Classic.cs: handle drawing of the relation links and
3834         parent row buttons.
3835
3836         * Theme.cs: change args to DataGridPaintParentRow.
3837
3838         * DataGrid.cs: Don't use controls for the relation links and
3839         parent buttons, so we have to handle all their interactions in
3840         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
3841         when we're navigating through child tables, so we can reinstate
3842         selection, expanded state, current cell, etc.
3843
3844 2006-07-20  Chris Toshok  <toshok@ximian.com>
3845
3846         * ToolBar.cs: When we redraw a button, for whatever reason,
3847         there's no reason to redraw the entire toolbar.  Also, don't call
3848         Control.Refresh from within Redraw, as it's much heavier than
3849         Invalidate (which is really what we want).
3850
3851 2006-07-20  Chris Toshok  <toshok@ximian.com>
3852
3853         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
3854         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
3855         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
3856         traces from within a debug IBindingList datasource
3857         (in mono/winforms/datagrid) for *days*, I've finally gotten things
3858         to work in a similar fashion.
3859
3860 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3861
3862         * ListBox.cs: Don't call Sort () when setting 
3863         the Sorted property to false (avoid an unnecessary sort).
3864
3865 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3866
3867         * ListControl.cs: DataSource should throw an ArgumentException
3868         instead of a normal exception when the argument is not of the 
3869         correct type.
3870
3871 2006-07-20  Mike Kestner  <mkestner@novell.com>
3872
3873         * Control.cs: add InternalPreProcessMessage to allow us to steal
3874         key events before MWF gets its paws on them.  Adapted from a
3875         suggestion by eno.
3876         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
3877         up/down/left/right navigation. Override the new internal control
3878         method to steal the events since they never make it to WndProc.
3879         * ToolBarButton.cs: don't worry about pushed when setting hilight
3880         since the drawing code prefers pushed to hilight. Invalidate on 
3881         Hilight changes. Fixes #78547 and #78525.
3882
3883 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3884
3885         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
3886           the canvas size. Fixes #78868
3887
3888 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
3889
3890         * Splitter.cs: Track requested split position until first layout
3891           is performed. Fixes #78871
3892
3893 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3894
3895         * Application.cs: Removed code that forces 1.x for the version
3896           number if the version started with 0. Not sure why that code was
3897           there and I couldn't find any bugs that indicated we needed it.
3898           Fixes #78869
3899
3900 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
3901
3902         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
3903           ResetDefaults(), just write some output to the console until it's
3904           implemented. Fixes bug #78907 for now. Eliminated two warnings.
3905
3906 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
3907
3908         * PropertyGridView.cs: set StartPosition of drop down forms
3909         so they appear in correct initial spot.  Fixes #78190.
3910
3911 2006-07-19  Mike Kestner  <mkestner@novell.com>
3912
3913         * ThemeWin32Classic.cs: use parent background color when drawing
3914         flat toolbars.  Restructure the conditionals to make sure non-flat
3915         non-Divider toolbars are filled too.  Fixes #78837.
3916
3917 2006-07-19  Mike Kestner  <mkestner@novell.com>
3918
3919         * ListBox.cs: Sort on collection changes even if the handle
3920         isn't created yet.  Fixes #78813.
3921
3922 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3923
3924         * ListControl.cs: DisplayMember should never be null,
3925         and now we assign String.Empty when null is passed to it (this
3926         is the .Net way).
3927
3928 2006-07-17  Mike Kestner  <mkestner@novell.com>
3929
3930         * ListViewItem.cs: restructure Font and subitem Font handling 
3931         to hold a specific font and refer back to owner on null.
3932         Fixes #78761.
3933
3934 2006-07-17  Mike Kestner  <mkestner@novell.com>
3935
3936         * ToolBar.cs: bandaid for side-effect of previous patch which was
3937         discarding explicit heights for non-AutoSize toolbars.  Need to
3938         extend my format tester to deal with AutoSize=false. Fixes #78864.
3939
3940 2006-07-15  Jackson Harper  <jackson@ximian.com>
3941
3942         * LabelEditTextBox.cs:
3943         * TreeView.cs: Use a new LabelEdit class for node editing, this
3944         class automatically 'closes' itself when it gets the enter key or
3945         loses focus.
3946         - Use the client rectangle when setting the trees scrollbars, so
3947         border style is taken into account.
3948         
3949 2006-07-14  Jackson Harper  <jackson@ximian.com>
3950
3951         * TreeNode.cs:
3952         * TreeView.cs: Make the editing work similar to MSs, firing the
3953         events correctly and ending edits correctly.
3954
3955 2006-07-14  Mike Kestner  <mkestner@novell.com>
3956
3957         * ToolBarButton.cs:
3958         * ToolBar.cs: layout restructuring and redraw enhancements to support
3959         formatting changes gracefully, like setting TextAlign, ImageList, 
3960         ButtonSize, and Appearance.  Handles explicit button sizing quirks
3961         of the MS controls.  Things like flat toolbars ignoring button size
3962         but becoming constant sized at the largest button's size.  Normal
3963         toolbars with an image set cannot be shrunk smaller than the image,
3964         but text can be clipped/ignored.
3965         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
3966         is zero.  Seems like DrawString should be smart enough to not put
3967         anything on screen though. Also trim labels and ellipsize at the char
3968         boundary, not word.
3969         Fixes #78711 and #78483.
3970
3971 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3972
3973         * FolderBrowserDialog.cs: Disable "New Folder" button and
3974           "New Folder" contextmenu menuitem if a folder like "My Computer"
3975           is selected.
3976
3977 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3978
3979         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
3980         * FolderBrowserDialog.cs:
3981           - Use MWFConfig to store and read size and position settings
3982           - Added code to create a new folder (button or context menu).
3983             Use TreeView labeledit to change the name of the new folder.
3984
3985 2006-07-14  Jackson Harper  <jackson@ximian.com>
3986
3987         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
3988         when the tree is scrolled we end editing.
3989
3990 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3991
3992         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
3993           Down arrows
3994
3995 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
3996
3997         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
3998         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
3999         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
4000         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
4001         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
4002         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
4003         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
4004         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
4005         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
4006         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
4007         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
4008         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
4009         ListViewItemSelectionChangedEventHandler.cs,
4010         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
4011         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
4012         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
4013         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
4014         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
4015         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
4016         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
4017         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
4018         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
4019         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
4020         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
4021         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
4022         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
4023         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
4024         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
4025         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
4026         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
4027         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
4028         WebBrowserNavigatingEventHandler.cs, 
4029         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
4030
4031 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
4032
4033         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
4034         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
4035         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
4036         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
4037         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
4038         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
4039         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
4040         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
4041         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
4042         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
4043         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
4044         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
4045         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
4046         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
4047         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
4048         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
4049         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
4050         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
4051         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
4052         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
4053         ListViewItemStates.cs, MaskFormat.cs: Added
4054
4055 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
4056
4057         * PropertyGridView.cs: Fix keyboard navigation of drop down.
4058         Patch from eno for bug 78558.
4059         
4060 2006-07-13  Jackson Harper  <jackson@ximian.com>
4061
4062         * TreeView.cs: When an edit is finished make sure that the
4063         selected node is visible.
4064         - When setting the top/bottom use the scrollbars is_visible, so
4065         everything will be set correctly even if the tree isn't visible
4066         yet.
4067
4068 2006-07-13  Jackson Harper  <jackson@ximian.com>
4069
4070         * ComboBox.cs: Revert the item->index part of my previous patch.
4071         * TreeView.cs: Use LostFocus instead of Leave for detecting when
4072         the edit box has lost focus (duh).
4073         - Just make the edit box not visible when we get return, that will
4074         take the focus, which will call EndEdit
4075         * TreeNode.cs When we start editing, notify the treeview.
4076
4077 2006-07-12  Jackson Harper  <jackson@ximian.com>
4078
4079         * ComboBox.cs: Clear out old items before setting the item list.
4080         This prevents databound controls from having their items added
4081         twice.
4082         - Switch the combobox to use indices whereever possible instead of
4083         using Item's.  This allows usto navigate through lists that have
4084         more then one item with the same string value (ie a, b, b, a).
4085         - Scroll the listboxes scrollbar when a non visible item is
4086         highlighted
4087         - Allow keypress to cycle through all the possible values. For
4088         example if you have b1, b2, b3 and hold down the B key all the
4089         values will be cycled through.
4090         
4091 2006-07-12  Jackson Harper  <jackson@ximian.com>
4092
4093         * TextBoxBase.cs:
4094         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
4095         this using the internal methods.
4096         * Control.cs: Add OnGotFocusInternal.  A new method that allows
4097         controls to "override" OnGotFocus and change focus behavior if
4098         needed.
4099         - Same thing for LostFocus
4100         * ComboBox.cs: Pass off focus to the text control properly.
4101
4102 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
4103
4104         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
4105         * FolderBrowserDialog.cs: Almost a complete rewrite.
4106           - Better support for Environment.Specialfolders
4107           - Added support for MWFVFS
4108           - Made setting SelectedPath work
4109
4110 2006-07-12  Jackson Harper  <jackson@ximian.com>
4111
4112         * Control.cs: Optimze getting all the controls.
4113
4114 2006-07-11  Jackson Harper  <jackson@ximian.com>
4115
4116         * ContainerControl.cs: Override SETFOCUS in the container control,
4117         so that it is not selected on mouse click.
4118
4119 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
4120
4121         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
4122           Hopefully we will have a better way once all of focus is complete.
4123
4124 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
4125
4126         * ThemeWin32Classic.cs: Commented out some debug code and fixed
4127           a compile error with csc.
4128
4129 2006-07-11  Jackson Harper  <jackson@ximian.com>
4130
4131         * Control.cs: When hiding a control only select the next control
4132         if the current control was focused.
4133         - Don't handle enter/leave when setting/killing focus, this is
4134         done by the container control.
4135         - Remove is_selected, it's not needed anymore.
4136         - Add utility methods for selecting a child control, and for
4137         firing the Enter/Leave events.
4138         * ContainerControl.cs: When a control is activated fire the
4139         enter/leave events.
4140         - Don't wrap when processing the tab key, so that focus can be
4141         moved outside of the container.
4142         - Use the correct active control
4143
4144 2006-07-11  Jackson Harper  <jackson@ximian.com>
4145
4146         * ComboBox.cs: Remove some debug code that was blinding me.
4147         * UpDownBase.cs: These controls actually aren't implicit, they are
4148         visible to the user.
4149
4150 2006-07-10  Chris Toshok  <toshok@ximian.com>
4151
4152         * DataGrid.cs: move back to the is_adding boolean field.  god i
4153         hate this is_editing/is_adding/is_changing stuff.
4154
4155 2006-07-10  Chris Toshok  <toshok@ximian.com>
4156
4157         * DataGridTableStyle.cs: just check if the property type is bool.
4158         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
4159         Don't use CanRenderType.
4160
4161         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
4162         if our text == NullText.  Remove CanRenderType.
4163
4164         * DataGridBoolColumn.cs: nuke CanRenderType.
4165
4166         * DataGrid.cs: reenable some code to end the current edit inside
4167         of set_CurrentCell.  This fixes the other 1.1.16 regression.
4168         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
4169         Also, remove the visible_row_count arg from CalcRowHeaders, since
4170         we don't need to worry about the actual height of the area.
4171
4172 2006-07-10  Chris Toshok  <toshok@ximian.com>
4173
4174         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
4175         mode, just return.
4176
4177         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
4178         the real sense of the IsInEditOrNavigateMode property (true =
4179         navigate, false = edit).  Also, update OnKeyPress to reflect this.
4180
4181         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
4182         column style exists, we still need to set its property descriptor
4183         to match up with our list manager.
4184
4185 2006-07-10  Chris Toshok  <toshok@ximian.com>
4186
4187         * ThemeWin32Classic.cs: implement the new row/header painting
4188         approach.  The parent row painting will likely go away and
4189         replaced with label controls, but the rest seems to work ok (and
4190         efficiently).
4191
4192         * Theme.cs: change the way we draw datagrid rows.  we don't draw
4193         the row headers as a block now.  Instead we draw them in the
4194         normal draw-row loop.  Add some calls for drawing parent rows and
4195         relation rows.
4196
4197         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
4198         a default table style.  Set the defaults from ThemeEngine.Current,
4199         not SystemColors.  Fix lots of misc issues with property setters.
4200
4201         * DataGrid.cs: move loads of style information out of this class
4202         as it's being duplicated with DataGridTableStyle.  keep track of a
4203         special DataGridTableStyle for the properties we used to mirror
4204         here.  Switch all the style properties to access this table style
4205         instead of instance fields of this class.  Also add a internal
4206         class to represent parent rows (more needs to be stored here, like
4207         the selection state from the parent table, as well as the
4208         expansion state.)  Also, for datasources with relations, do the
4209         right thing for collapse/expand, and add support for the
4210         navigation/parent row buttons.
4211
4212         Lastly, fix the crash in the 1.1.16 build.
4213
4214         * GridTableStylesCollection.cs: make the explicit interface
4215         implementations call the class's methods as opposed to duplicating
4216         them.
4217
4218         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
4219         0 so the text doesn't jump around when we move the cursor.
4220
4221 2006-07-10  Jackson Harper  <jackson@ximian.com>
4222
4223         * TextBoxBase.cs:
4224         * ListBox.cs: Match MS's ToString (this makes debugging focus
4225         stuff infinitely easier).
4226
4227 2006-07-10  Jackson Harper  <jackson@ximian.com>
4228
4229         * Control.cs (SelectNextControl): When checking the control's
4230         parent use this instead of ctrl.parent so that null can be passed
4231         to SelectNextControl. (I have unit tests for this).
4232         - Remove unused var.
4233
4234 2006-07-10  Chris Toshok  <toshok@ximian.com>
4235
4236         * CurrencyManager.cs: correct one regression, the removal of the
4237         finalType field.  Also, add a MonoTODO on CanAddRows, implement
4238         Refresh() correctly, and fix some event emission in
4239         ListChangedHandler.
4240
4241 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4242
4243         * FileDialog.cs: Don't use brackets for new folders if they exist
4244           under *nix. Instead use -(number of existing folders +1).
4245
4246 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4247
4248         * FileDialog.cs:
4249           - Fixed really nasty bug #78771
4250           - Don't block the whole GUI when reading directories with a lot of
4251             entries. Use an other thread instead and call BeginInvoke to
4252             update the ListView in MWFFileView
4253
4254 2006-07-07  Chris Toshok  <toshok@ximian.com>
4255
4256         * Control.cs (Dispose): release any Capture when disposing.
4257
4258 2006-07-07  Chris Toshok  <toshok@ximian.com>
4259
4260         * LinkLabel.cs (Select): if we chain up to the parent, set
4261         focused_index to -1 so we'll search for the first available link
4262         the next time the user tabs into us.  Also, if the direction is
4263         backward and focused_index == -1, start the search from the last
4264         element.
4265
4266 2006-07-07  Chris Toshok  <toshok@ximian.com>
4267
4268         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
4269         is beyond the end of the text, don't do anything.
4270         (CreateLinkPieces): set our ControlStyles.Selectable based on
4271         whether or not we have any links.
4272         (Link.Invalidate): use a loop instead of foreach.
4273         (Link.set_Start): null out owner.sorted_links so it'll be
4274         recreated by CreateLinkPieces.
4275
4276 2006-07-06  Chris Toshok  <toshok@ximian.com>
4277
4278         * LinkLabel.cs: revert the SetStyle change.
4279
4280 2006-07-06  Chris Toshok  <toshok@ximian.com>
4281
4282         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
4283         (OnEnableChanged): s/Refresh/Invalidate
4284         (OnGotFocus): if we have a focused index already, refocus it (so
4285         if we mouse out/in to the window it'll focus the right link).
4286         (OnKeyDown): move the tab handling out of here.
4287         (OnLostFocus): don't set focused_index to -1, so we can refocus it
4288         when we lose focus.
4289         (OnMouseDown): don't Capture here - Control handles it.  Also,
4290         focus the active link.
4291         (OnMouseUp): don't deal with Capture.
4292         (OnPaintBackgroundInternal): remove.
4293         (OnTextAlignChanged): CreateLinkPieces before calling the
4294         superclass's method.
4295         (OnTextChanged): call CreateLinkPieces before calling superclass's
4296         method.
4297         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
4298         move around.
4299         (Select): implement this, moving the selection between different
4300         links, and call parent.SelectNextControl if we don't have another
4301         link to focus in the given direction.
4302         (CreateLinkPieces): call Invalidate instead of Refresh.
4303         
4304 2006-07-06  Chris Toshok  <toshok@ximian.com>
4305
4306         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
4307         new LinkLabel internals.
4308
4309         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
4310         over pieces looking for active/focused/etc links.  also, deal with
4311         runs of text (and links) with embedded \n's in them, and use
4312         MeasureCharacterRanges instead of MeasureString to figure out the
4313         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
4314         two-step.
4315
4316 2006-07-04  Jackson Harper  <jackson@ximian.com>
4317
4318         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
4319         XKB or key auto repeat, do it manually.  Without key auto repeat,
4320         when a key is held down we get key press, key release, key press,
4321         key release, ... with auto repeat we get key press, key press, key
4322         press ..., and then a release when the key is actually released.
4323
4324 2006-07-03  Jackson Harper  <jackson@ximian.com>
4325
4326         * TabControl.cs:
4327         * ThemeWin32Classic.cs: Tabs do not obey normal background color
4328         rules, they are always control color regardless of the background
4329         color.
4330
4331 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
4332
4333         * FileDialog.cs: Added internal class MWFConfig.
4334           Removed Registry support and replaced it with support for the new
4335           MWFConfig class. See MWFConfig comments for more information.
4336
4337 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
4338
4339         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
4340           rectangle. Added some patches from eno from bug #78490 and fixed
4341           the arrow position for small up and down CPDrawScrollButtons.
4342
4343 2006-06-30  Jackson Harper  <jackson@ximian.com>
4344
4345         * InternalWindowManager.cs: Remove some debug code.
4346         * Form.cs: When an MdiParent is set to null, the window is
4347         "detatched" and becomes a normal window.
4348         * MdiClient.cs: Don't bring the new child form to the front until
4349         it is activated (setting it as active does this), this makes the
4350         previously active forms titlebar get redrawn as inactive.
4351
4352 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
4353
4354         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
4355           with later controls
4356
4357 2006-06-29  Mike Kestner  <mkestner@novell.com>
4358
4359         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
4360         arrow in keynav state.  Fixes #78682.
4361
4362 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4363
4364         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
4365           order (fixes #78393)
4366
4367 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
4368
4369         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
4370           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
4371           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
4372           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
4373           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
4374           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
4375           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
4376           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
4377           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
4378           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
4379           enumerations (FlagsAttribute, SerializableAttribute, added/removed
4380           values)
4381
4382 2006-06-28  Mike Kestner  <mkestner@novell.com>
4383
4384         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
4385
4386 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4387
4388         * PropertyGrid.cs,
4389           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
4390           item lines from other area (It also makes BackColor consistent and
4391           compatible with .NET). Fixed bug #78564.
4392
4393 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
4394
4395         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
4396         Patch from Eno for #78555.
4397
4398 2006-06-27  Chris Toshok  <toshok@ximian.com>
4399
4400         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
4401
4402         * DataGridColumnStyle.cs: same.
4403
4404         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
4405         
4406         * DataGridDrawingLogic.cs: nuke.
4407
4408 2006-06-27  Chris Toshok  <toshok@ximian.com>
4409
4410         * DataGridTableStyle.cs: clean up the constructors, and build the
4411         list of child relations for this table.  I have no idea if this is
4412         where we should be doing it (it probably isn't), but since we're
4413         already iterating over the properties..
4414
4415         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
4416         struct and array for keeping track of row information, similar to
4417         what's shown in a hack on
4418         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
4419
4420         * Theme.cs: be consistent about the naming of DataGrid methods,
4421         prefering ColumnWidths and RowHeights over columnsWidths and
4422         RowsHeights.
4423
4424         * ThemeWin32Classic.cs: same, and also add support for variable
4425         sized rows (and the +/- expansion icons for related rows).
4426
4427 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4428
4429         * TextBoxBase.cs: Applied Eno's patch from #78660
4430
4431 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4432
4433         * Form.cs (ScaleCore): We don't want to scale our form if it's
4434           state is minimized or maximized, but we still need to scale our
4435           child windows. Also, added try/finally block to ensure layout
4436           gets reset (Fixes #78697)
4437
4438 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4439
4440         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
4441
4442 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4443
4444         * Form.cs: Fixed c+p error and added check to resize form if minimum
4445           size is bigger than current size (Fixes #78709)
4446
4447 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
4448
4449         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
4450
4451 2006-06-26  Mike Kestner  <mkestner@novell.com>
4452
4453         * ComboBox.cs: only do Keypress handling in the combo when there  
4454         are items in the collection. Fixes #78710.
4455
4456 2006-06-26  Chris Toshok  <toshok@ximian.com>
4457
4458         * Binding.cs: make this work bi-directionally.  also, clear up
4459         other mixups between Push/Pull Data (e.g. we're supposed to pull
4460         data when validating).
4461
4462         * BindingManagerBase.cs: trim some fully qualified collection
4463         types.
4464
4465         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
4466
4467 2006-06-23  Chris Toshok  <toshok@ximian.com>
4468
4469         * PropertyManager.cs: It appears (according to the unit tests)
4470         that PropertyManager doesn't use
4471         PropertyDescriptor.AddValueChanged to track propery value changes
4472         in its datasource, but uses the same scheme as Binding, where it
4473         looks for a <Property>Changed event and binds to it.
4474
4475         Also, according to the docs, IsSuspended always returns false for
4476         a property manager with a non-null datasource.
4477
4478 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
4479
4480         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
4481           need to update the actual DialogResult. (Fixes #78613)
4482
4483 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
4484
4485         * Form.cs (ShowDialog): Release any captures before running the
4486           new message pump (fixes #78680)
4487
4488 2006-06-22  Mike Kestner  <mkestner@novell.com>
4489
4490         * ListView.cs: Layout column widths properly in details mode even 
4491         if HeaderStyle.None is set.  Fixes #78691.
4492
4493 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
4494
4495         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
4496
4497 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
4498
4499         * Control.cs (ContainsFocus): Using new driver method to get focused
4500           window, instead of trying to use internal tracking var, which can
4501           recursion issues (Fixes #78685)
4502         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4503           XplatUIWin32.cs: Added GetFocus method to return focused window
4504
4505 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4506
4507         * ColorDialog.cs: when the mouse button is pressed inside the color
4508         matrix, don't let the cursor move out of it until the button is
4509         released, which is the behavior on windows. Changed 'colours' by
4510         'colors' to use the same word consistently.
4511
4512 2006-06-21  Chris Toshok  <toshok@ximian.com>
4513
4514         * DataGrid.cs: add in some basic navigation stuff (navigating to a
4515         child relation and back, using a stack).  Also, remove
4516         GetDataSource and the code that calls it - it's not needed.  Also,
4517         track CurrencyManager.ListName's removal.
4518
4519 2006-06-21  Chris Toshok  <toshok@ximian.com>
4520
4521         * CurrencyManager.cs: push some of the original type checking from
4522         BindingContext.CreateBindingManager to here, and remove some of
4523         the finalType stuff.  Need more tests to make sure I've got the
4524         ListName part right, and we might need more in SetDataSource.
4525
4526         * PropertyManager.cs: add a ctor that takes just the datasource,
4527         and no property name.  Make SetDataSource work with a null
4528         property_name, and make Current return the data_source if the
4529         property descriptor is null.  this makes 'string foo = "hi";
4530         BindingContext[foo].Current' return "hi" as it should.
4531
4532         * RelatedCurrencyManager.cs: make this code more generic - there's
4533         no reason the parent manager has to be CurrencyManager, and
4534         there's no reason to pass the DataRelation.  It suffices to use a
4535         BindingManagerBase and PropetyDescriptor.
4536
4537         * RelatedPropertyManager.cs: make a similar change here.
4538         
4539         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
4540         flower I knew it could be.
4541
4542 2006-06-20  Chris Toshok  <toshok@ximian.com>
4543
4544         * PropertyManager.cs: the PropertyChangedHandler is invoked when
4545         data in the source has changed and we need to update the control,
4546         so s/PullData/PushData.
4547
4548         * CurrencyManager.cs: Refresh is meant to update the control from
4549         data in the datasource.  So, s/PullData/PushData.
4550
4551         * BindingContext.cs: add more ugliness (we weren't handling the
4552         case where data_source = DataTable and data_member = column_name).
4553
4554         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
4555         from the perspective of the datasource.  PullData pulls from the
4556         control, PushData pushes to the control.
4557
4558 2006-06-20  Chris Toshok  <toshok@ximian.com>
4559
4560         * BindingContext.cs: rewrite the CreateBindingManager code to
4561         handle navigation paths more or less properly.  This could
4562         definitely stand some more work, in particular to push the
4563         recursion up to the toplevel.  But that relies on fixes in other
4564         places (System.Data comes to mind).
4565
4566         Also, move to a flat hashtable (and encode the twolevel nature of
4567         the dictionary into the hash key).  This lets us implement the
4568         IEnumerable.GetEnumerator method.
4569
4570         * RelatedCurrencyManager.cs: new class.  Update our view based on
4571         our relation and our parent CurrencyManager's position.
4572
4573         * CurrencyManager.cs: split out some logic from the ctor into
4574         SetView, so it can be called from the new RelatedCurrencyManager
4575         subclass.
4576
4577         * RelatedPropertyManager.cs: new class.  Update our datasource
4578         based on the position of our parent CurrencyManager.
4579
4580         * PropertyManager.cs: split out some logic from the ctor into
4581         SetDataSource, so it can be called from the new RelatedDataSource
4582         subclass.  Also, make the Current getter return the value
4583         of the PropertyDescriptor, not the data_source.
4584
4585         * Binding.cs: no need to duplicate the string splitting code here.
4586
4587 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4588
4589         * Control.cs:
4590           - set_Enabled: OnEnabledChanged is not called if the inherited state 
4591             of the control is not altered, even though  we might be changing the
4592             internal state of the control (#78458)
4593           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
4594             OnEnabledChanged, to allow easy altering of any child window state
4595           - OnEnabledChanged: Added code to enable/disable driver window state
4596           - OnParentEnabledChanged: Instead of firing the event, call 
4597             OnEnabledChanged, which will fire the event and also a) set driver
4598             window state and pass the enabled state to any grandchildren (#78458)
4599
4600 2006-06-19  Jackson Harper  <jackson@ximian.com>
4601
4602         * InternalWindowManager.cs: We don't set the cursor explicitly
4603         thats done via the response to NCHITTESTs.
4604         - Don't need to adjust for titlebar heights anymore, the
4605         coordinates are coming in the correct coordinates now (see peters
4606         last patch).
4607
4608
4609 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4610
4611         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
4612           being translated relative to whole window, instead of client window.
4613           That caused broken offsets on mouseclick (and caused gas for our
4614           InternalWindowManager)
4615
4616 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4617
4618         * TextControl.cs:
4619           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
4620           - Undo(): Added replay of cursor move on DeleteChars action; added
4621             calling Undo() again if a recorded cursor move is invalid (to
4622             ensure that some action is performed on Undo)
4623         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
4624
4625 2006-06-16  Jackson Harper  <jackson@ximian.com>
4626
4627         * MdiClient.cs: Instead of just sizing maximized windows when
4628         there is a resize we also have to adjust the Y of minimized
4629         windows, so they stay pinned to the bottom of the mdi container.
4630         - Eliminate separate tracking of the active control, we can just
4631         get this from the controls collection.
4632         - Paint the decorations for the newly activated titlebar so we get
4633         a pretty blue bar.
4634         * InternalWindowManager.cs:
4635         * ThemeWin32Classic.cs: Minimized windows get all three buttons
4636         even if they are a tool window.
4637         
4638 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4639
4640         * TextControl.cs (Undo): Handle non-existent cursor locations in the
4641           undo buffer, these can happen when text was deleted and the cursor
4642           was recorded first. Since we will also have a recorded cursor
4643           after the delete this is not an issue. (Fixes #78651)
4644
4645 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
4646
4647         * AccessibleObject.cs: Remove dependence on Control.is_selected;
4648           instead properly track control states internally (allows us to
4649           remove is_selected from Control)
4650
4651 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4652
4653         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
4654         whose width is not a multiple of 8.
4655
4656 2006-06-13  Jackson Harper  <jackson@ximian.com>
4657
4658         * MdiClient.cs:  Only maximize the next child if the current one
4659         is maximized.
4660
4661 2006-06-13  Chris Toshok  <toshok@ximian.com>
4662
4663         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
4664         modified.  Also, guard against grid or grid_drawing being null in
4665         Invalidate.
4666
4667         * DataGrid.cs: Reformat tons of getters/setters.  In the
4668         DataMember setter, just call SetNewDataSource instead of
4669         duplicating some of its functionality.  In SetNewDataSource, don't
4670         check ListManager for null, since the property getter creates the
4671         object if needed.
4672
4673         * DataGridTableStyle.cs: don't set TableStyle or call
4674         SetDataGridInternal on the column here, it's done in
4675         GridColumnStylesCollection.Add.
4676
4677         * GridColumnStylesCollection.cs: fix all the explicit interface
4678         implementations to just call our methods.  Nuke AddInternal() and
4679         move the body of it to Add().  Also, add a call to
4680         column.SetDataGridInternal to Add().
4681
4682         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
4683         base()+duplicate code.  Also, use the Format property instead of
4684         format to generate an Invalidate ala MS.  Lastly, create the
4685         textbox here, unconditionally.
4686         (set_Format): call Invalidate.
4687         (get_TextBox): no need to call EnsureTextBox.
4688         (Commit): remove the message box.
4689         (Edit) remove the call to EnsureTextBox.
4690         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
4691         (EnterNullValue): no need to check textbox for null.
4692         (HideEditBox): no need to check textbox for null.
4693         (SetDataGridInColumn): add the textbox to the grid's controls.
4694         (EnsureTextBox): nuke.
4695         
4696 2006-06-13  Jackson Harper  <jackson@ximian.com>
4697
4698         * MdiWindowManager.cs: Hook up to the maximized menus paint event
4699         and redraw the buttons when needed. Unhook when the window is
4700         unmaximized.
4701         * MainMenu.cs: Add an internal Paint event, the mdi window manager
4702         needs this so that it can redraw its buttons when the menu is
4703         repainted.
4704         * InternalWindowManager.cs:
4705         * Form.cs: The method order has changed for DrawMaximizedButtons,
4706         so that it can be a PaintEventHandler.
4707         
4708 2006-06-13  Jackson Harper  <jackson@ximian.com>
4709
4710         * MdiClient.cs: When we close a maximized mdi window, the next mdi
4711         window is activated and maximized, even if it wasn't before.
4712         - When  a new window is activated repaint the decorations of the
4713         old one, so that it no longer has the Active "look" (the blue
4714         titlebar).
4715         * InternalWindowManager.cs: Open up CreateButtons to base classes
4716         so they can recreate the buttons on state changes.
4717         - If a window is maximized give it all three buttons
4718         * MdiWindowManager.cs: Create the titlebar buttons when the state
4719         is changed, this is needed because a toolwindow will not have all
4720         three buttons until it is maximized.
4721
4722 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
4723
4724         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
4725           Fixed bug #78609.
4726
4727 2006-06-12  Jackson Harper  <jackson@ximian.com>
4728
4729         * KeysConverter.cs: Make sure we handle the Ctrl special case
4730         if its the only key.
4731         
4732 2006-06-12  Jackson Harper  <jackson@ximian.com>
4733
4734         * Theme.cs: Add a method to get the size of a managed window
4735         toolbar button.
4736         * InternalWindowManager.cs: Remove the ButtonSize property, this
4737         should be retrieved from the theme.
4738         * MdiWindowManager.cs: Get the button size from the theme
4739         * ThemeWin32Classic.cs: Make the method to get the managed window
4740         titlebar button size public.
4741         - Handle the different button sizes of maximized toolwindows
4742         (should match any maximized window).
4743         - Get the titlebar height from the theme, not the WM (which gets
4744         it from the theme).
4745
4746 2006-06-12  Jackson Harper  <jackson@ximian.com>
4747
4748         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
4749         event down to the mdi window manager.
4750         - Expose some extra stuff to base classes
4751         - Make sure to end the Capture on an NC Mouse up, so that we can
4752         get double clicks properly, and the sizing doens't stick.
4753         - When doing PointToClient contain it in the workable desktop
4754         area, this prevents windows from changing size when the cursor is
4755         pulled outside of the working area while sizing.
4756         * MdiWindowManager.cs: When we get a double click maximize the
4757         window.
4758         - Reset the cursor after handling mode changes.
4759
4760 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
4761
4762         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
4763           current desktop, instead of just assuming a 0, 0 origin. This
4764           is needed for our internal window manager, to know the top
4765           margin of the desktop
4766
4767 2006-06-12  Chris Toshok  <toshok@ximian.com>
4768
4769         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
4770         we need this to get rid of the selected background in the bool
4771         column.
4772         (CancelEditing): move the ConcedeFocus call to above the Abort
4773         call.  Also, set is_changing to false and invalidate the row
4774         header if we were changing before.
4775         (ProcessKeyPreviewInternal): remove, since noone outside this
4776         class calls it anymore.  Roll the code into ProcessKeyPreview.
4777         (EndEdit): remove the internal version.
4778         (InvalidateCurrentRowHeader): make private.
4779
4780         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
4781         Keys.Escape handling (and with it the last call to
4782         DataGrid.EndEdit from outside the class.)
4783
4784
4785 2006-06-12  Chris Toshok  <toshok@ximian.com>
4786
4787         * DataGridTextBox.cs (.ctor): isedit defaults to false.
4788         (OnKeyPress): set isedit to true.
4789         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
4790         already handled by the grid.
4791
4792         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
4793         right.  ugh.
4794         (set_DataSource): SetDataSource always returns true, so stop
4795         putting it in an if statement.
4796         (EndEdit): get rid of some {}'s
4797         (ProcessGridKey): return true in case Keys.Escape.
4798         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
4799         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
4800         PositionChanged, stopped connecting to CurrentChanged.
4801         (GetDataSource): simplify this a bunch.
4802         (SetDataSource): change return type from bool to void.
4803         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
4804         to this, and make sure we don't set ListManager.Position inside
4805         set_CurrentCell.
4806         (OnListManagerItemChanged): if we're passed an actual index,
4807         redraw that row.
4808
4809         * CurrencyManager.cs (set_Position): don't call PullData here.
4810
4811 2006-06-09  Jackson Harper  <jackson@ximian.com>
4812
4813         * TreeNode.cs:  Recalculate the visible order before doing the
4814         Expand/Collapse Below calls, because those calls generate an
4815         expose.
4816         - Reduce calls to the TreeView property, which is mildly expensive
4817         by using a local var.
4818         * Form.cs: Layout the MDI child windows when creating the parent
4819         form.
4820         - Don't use the internal constructor anymore
4821         * MdiClient.cs: use the parent form width/height (if available)
4822         when laying out the child windows, we do this because the
4823         mdiclient isn't docked yet when the initial layout is done.
4824         - Don't need an internal constructor anymore.
4825
4826 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4827
4828         * FileDialog.cs: handle access errors when trying to create a folder
4829         or changing to a directory. No need to initialize out parameters.
4830
4831 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4832
4833         * FileDialog.cs: Append a number when creating a new folder if the
4834           folder already exists (use parenthesis instead of square brackets)
4835
4836 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4837
4838         * FileDialog.cs:
4839           - Disabled registry support for windows and added better registry
4840             error checking for other systems (need to investigate why it
4841             works perfectly on my system)
4842           - If a folder already exist show an error MessageBox instead of
4843             trying to create an indexed name.
4844           - Fixed a non intentional typo.
4845
4846 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4847
4848         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
4849
4850 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4851
4852         * FileDialog.cs: When creating a new folder don't crash if the
4853           folder already exists.
4854
4855 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4856
4857         * FileDialog.cs: Allmost a complete rewrite.
4858           - added a "virtual" file system that handles the differences
4859             between unix and windows file systems (especially the directory
4860             structure). Moved most of the directory and file handling code
4861             into the vfs.
4862             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
4863             UnixFileSystem and FSEntry.
4864           - Recently used folder/directory, size, location and used file names
4865             (file name ComboBox) are now stored in the registry and get read
4866             before the dialog shows up (fixes part 6 of bug #78446).
4867           - Creation of new folders/directories is now possible (context menu
4868             or ToolBar). Added TextEntryDialog for this that fills in the gap
4869             until ListView.LabelEdit works.
4870           - Fixed cursor handling (bug #78527) and focus handling for
4871             PopupButtonPanel
4872           - Various "Search in" ComboBox enhancements. The content of the
4873             dropdown listbox now almost matches ms.
4874           - Changed the behaviour when the user switches to SpecialFolder
4875             Recent to show the ListView in View.Details.
4876           - Beside using the ToolBar to change the View property of the
4877             file ListView it is now possible to use the context menu too.
4878
4879 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4880
4881         * ComboBox.cs: Don't create a new ObjectCollection when an item
4882           gets inserted. Just insert the item in the existing object_items
4883           ArrayList.
4884
4885 2006-06-08  Jackson Harper  <jackson@ximian.com>
4886
4887         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
4888         that the treeview and root node checks are done also, this fixes a
4889         regression i caused in the unit tests.
4890
4891 2006-06-07  Wade Berrier <wberrier@novell.com> 
4892
4893         * RichTextBox.cs: More ISO8859-1 -> unicode
4894
4895 2006-06-07  Mike Kestner  <mkestner@novell.com>
4896
4897         * ComboBox.cs : use items to hold highlight/selection so that
4898         collection insertions don't require synchronization.
4899
4900 2006-06-07  Jackson Harper  <jackson@ximian.com>
4901
4902         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
4903         routine.  We now always keep the sized edge at the cursor instead
4904         of computing movement and adjusting rects.  There is one buglet
4905         with this method though when the cursor is moved over area that
4906         the window can not expand too (such as the toolbars on the desktop).
4907
4908 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4909
4910         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
4911         here. Fixes crash on startup in AlbumSurfer.
4912
4913 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
4914
4915         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
4916           values
4917
4918 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4919
4920         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
4921         statement to avoid calling XNextEvent which will block if another thread
4922         took the event that we were expecting. Fixes bug #78605.
4923
4924 2006-06-07  Mike Kestner  <mkestner@novell.com>
4925
4926         * ListView.cs : isolated checkbox clicking from the selection logic.
4927         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
4928
4929 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4930
4931         * Form.cs: Check that the value passed to Form.DialogResult
4932         is a valid enum value.
4933
4934 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4935
4936         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
4937         Computer'. Clicking it in the network view goes to 'My Computer'.
4938         Added CIFS filesystem type. Display the mount point of filesystems.
4939         Avoid duplicate mount points (happens for me with CIFS);
4940
4941 2006-06-06  Jackson Harper  <jackson@ximian.com>
4942
4943         * InternalWindowManager.cs: Draw the maximized windows buttons
4944         when resizing.
4945
4946 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4947
4948         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
4949         all other dialogs. Fixes bug #78585.
4950
4951 2006-06-06  Mike Kestner  <mkestner@novell.com>
4952
4953         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
4954         Only invalidate checkbox on checkstate changes to avoid flicker.
4955         * ListBox.cs : avoid unselect/select when clicking selected item.
4956         avoid reselection flicker for already multiselected items.
4957         Fixes #78382.
4958
4959 2006-06-06  Jackson Harper  <jackson@ximian.com>
4960
4961         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
4962         the parent form so that the menu is removed if needed.
4963
4964 2006-06-06  Mike Kestner  <mkestner@novell.com>
4965
4966         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
4967         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
4968
4969 2006-06-06  Mike Kestner  <mkestner@novell.com>
4970
4971         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
4972
4973
4974 2006-06-06  Jackson Harper  <jackson@ximian.com>
4975
4976         * Control.cs: Use the property (instead of the field) to get the
4977         default cursor so it is instantiated correctly.
4978         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
4979         resizes so we need to manually repaint the window decorations here.
4980         - Set the titlebar button locations as soon as they are created,
4981         otherwise they are not set correctly on win32.
4982         
4983 2006-06-06  Chris Toshok  <toshok@ximian.com>
4984
4985         * CurrencyManager.cs (set_Position): call PullData before
4986         OnCurrentChanged.
4987         (AddNew): after calling IBindingList.AddNew, update our
4988         listposition, and call OnCurrentChanged/OnPositionChanged (without
4989         calling PullData).
4990         (OnCurrentChanged): remove the call to PullData from here.
4991         (OnItemChanged): remove the call to PushData from here.
4992         (OnPositionChanged): change the test from == null to != null to
4993         match the other methods.
4994         (ListChangedHandler): the grossest part of the patch.  Implement
4995         this such that it passes the unit tests in CurrencyManagerTest and
4996         the output more or less matches that of MS's implementation.
4997  
4998 2006-06-06  Mike Kestner  <mkestner@novell.com>
4999
5000         * ListView.cs : only update check state on single click.
5001         * ThemeWin32Classic.cs : fix focus drawing for details view without
5002         fullrowselect.  Fixes #78454.
5003         * XplatUIX11.cs : fix for double click emission.
5004
5005 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5006
5007         * PropertyGridView.cs : Applied Atsushi's patch to fix
5008         font dialog bug  (#78197).
5009
5010 2006-06-05  Jackson Harper  <jackson@ximian.com>
5011
5012         * TreeNode.cs: Compute the next node for expanding/collapsing
5013         correctly. We now factor in nodes without a NextNode
5014         correctly. (Fixes somes cases in nunit-gui).
5015         * InternalWindowManager.cs: Set the bounds when updating the
5016         virtual position of a tool window.
5017         
5018 2006-06-05  Chris Toshok  <toshok@ximian.com>
5019
5020         * DataGrid.cs: rename cached_currencymgr to list_manager.
5021         (set_CurrentCell): move SetCurrentCell code here, and clean it up
5022         some.
5023         (CurrentRow, CurrentColumn): single accessors so we can make the
5024         cursor movement code a lot easier to understand.
5025         (CurrentRowIndex): implement this in terms of CurrentRow.
5026         (BeginEdit): clean this up a bit.
5027         (CancelEditing): sort out the is_editing/is_changing/is_adding
5028         stuff a little.
5029         (EndEdit): minor changes.
5030         (OnKeyDown): add a comment about a (most likely) unnecessary
5031         check.
5032         (OnMouseDown): cancel editing when we click on a row header.  And
5033         use the CurrentRow setter, not CurrentCell.
5034         (ProcessDialogKey): directly call ProcessGridKey.
5035         (UpdateSelectionAfterCursorMove): factor out this common block of
5036         code (it's used everywhere that we move the cursor by updating row
5037         or column).
5038         (ProcessGridKey): pretty substantial overhaul.  Use the
5039         CurrentRow/CurrentColumn properties to make the code a lot more
5040         readable.  Only use the CurrentCell property when we have to
5041         modify both row and column at once.  Tab behavior is still broken,
5042         and Delete is untested.
5043         (Select): if we have no selected rows, set selection_start to
5044         @row.
5045         (EditCurrentCell): rename EditCell this.  It was only ever invoked
5046         with CurrentCell as the arg, so drop the arg and rename it.
5047
5048         * DataGridColumnStyle.cs: clean up the constructors a little, and
5049         drop CommonConstructor().
5050
5051         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
5052         actually get notified when the user hits it.
5053         (ProcessKeyMessage): *substantially* simplify this method.
5054         There's no reason (that I can see) for the textbox to be making
5055         calls into the datagrid at all.  Remove all of them but the ones
5056         for Enter handling.  those will take some more work.
5057
5058         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
5059         calling HideEditBox.
5060         (HideEditBox): if we have an active textbox, render it invisible
5061         without causing a re-layout of the datagrid.
5062
5063 2006-06-05  Mike Kestner  <mkestner@novell.com>
5064
5065         * ListView.cs : fix NRE crasher when focuseditem is cleared by
5066         collection changes by resetting it to Items[0].  Fixes #78587.
5067
5068 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5069
5070         * MessageBox.cs: if the height of the text is larger than the icon_size,
5071         use that. Fixes bug #78575.
5072
5073 2006-06-05  Jackson Harper  <jackson@ximian.com>
5074
5075         * TreeView.cs: Fix line drawing when scrolling.  To do this each
5076         node is basically responsible for drawing its entire horizontal
5077         area.  When drawing a node it draws its parent node lines if
5078         needed.
5079         - Adjust the clip area to the viewport rectangle
5080         - Fix Left/Right key handling to match MS. (It expand/collapses
5081         and moves to parents/first child but does not move selection to
5082         sibling nodes).
5083         - Fix SetTop to work with new bound calculation code
5084         - When scrollbars are no longer needed we need to reset scrolling
5085         vars and recalculate the visible order so the redraw is correct
5086         * TreeNode.cs: We can't expand/collapse nodes with no children.
5087
5088 2006-06-03  John Luke  <john.luke@gmail.com> 
5089
5090         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
5091         so the colors work without dev packages
5092         
5093 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
5094
5095         * Control.cs 
5096           - Select: Implemented to just use activate. Seems to match MS 
5097             behaviour closest. Documented to only do actual control walking 
5098             based on it's parameters if in a container control so I moved 
5099             the code there.
5100           - Removed selection check logic from our internal Select() method
5101         * ContainerControl.cs:
5102           - Select: Moved selection logic from Control here, since MS documents
5103             that containers obey the bool arguments. No longer calling base
5104
5105 2006-06-02  Jackson Harper  <jackson@ximian.com>
5106
5107         * TreeView.cs: If the selected node isn't changed when we get
5108         focus update the previously selected node so that we see the
5109         selection box.
5110
5111 2006-06-02  Mike Kestner  <mkestner@novell.com>
5112
5113         * ComboBox.cs: restructure grab and general mouse event handling.
5114         Make the composite control raise mouse events like it was a single
5115         control for leaves/enters/motion/up/down events.  fix dropdown list
5116         coordinate mangling and refactor it into the scrollbar subclass to
5117         reduce code duplication.  Fixes #78282 #78361 and #78457.
5118
5119 2006-06-02  Mike Kestner  <mkestner@novell.com>
5120
5121         * ScrollBar.cs: remove Capture setting/clearing, as it happens
5122         automatically in the Control.WndProc.
5123
5124 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5125
5126         * FileDialog.cs: fix crash when running SharpChess, which sets the
5127         FilterIndex to 2 with only one Filter.
5128
5129 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5130
5131         * ToolBar.cs: add SizeSpecified property.
5132         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
5133         try to figure out our real size, otherwise fallback to what the
5134         container says.
5135
5136 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5137
5138         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
5139         * Control.cs (WndProc): MS always calls the DefWndProc to pass
5140           up the event
5141
5142 2006-06-01  Mike Kestner  <mkestner@novell.com>
5143
5144         * ListView.cs: revamp the focus management in ListView.  It still
5145         causes churn of LostFocus/GotFocus emissions on clicks, but it's
5146         better than not handling focus at all.  Will revisit when pdb feels
5147         the general focus handling is solid.  Fixes #78526.
5148
5149 2006-06-01  Jackson Harper  <jackson@ximian.com>
5150
5151         * TreeView.cs: Set the default border style in the constructor.
5152         - Move painting to use OnPaintInternal instead of capturing
5153         WM_PAINT, this is the correct way of doing things
5154         - UpdateBelow shouldn't invalidate the scrollbar area
5155         - Cap the top on update below in case the node was above the top
5156         of the viewport rectangle.
5157         - ExpandBelow and Collapse below need to obey Begin/End Update.
5158         * TreeNode.cs: Make is_expanded internal so the treenode
5159         collection can change it without firing the whole event chain.
5160         * TreeNodeCollection.cs: When clearing all the child nodes make
5161         sure to recalc the visible order.
5162         - Improve algo for remove the top node
5163
5164 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5165
5166         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
5167           SendMessage directly calling window procedures, which in turn might
5168           call SetFocus()
5169
5170 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
5171
5172         * Control.cs: Don't handle WM_SETFOCUS if the same window already
5173           has focus (works around X11 sending a FocusIn after our SetFocus)
5174         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
5175
5176 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
5177
5178         * Mime.cs: Fix for the NET_2_0 build.
5179           NameValueCollection needs StringComparer now.
5180
5181 2006-05-31  Chris Toshok  <toshok@ximian.com>
5182
5183         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
5184         return (via an out parameter) the starting X of the column.
5185         (UpdateVisibleColumn): track change to FromPixelToColumn.
5186         (HitTest): add a ColumnResize case here.
5187         (DrawResizeLine): new function, probably poorly named.
5188
5189         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
5190         only need to keep one reference.
5191         (set_ListManager): same.
5192         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
5193         Also, add support for HitTestType.ColumnResize.
5194         (OnMouseMove): add column resize behavior here, and change the
5195         cursor to the correct one as we move around the datagrid.
5196         (OnMouseUp): terminate the column resize if we're resizing.
5197         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
5198         for the current cell.
5199         (ConnectListManagerEvents): use cached_currencymgr.
5200         (DisconnectListManagerEvents): fill this in, using
5201         cached_currencymgr.
5202         (SetCurrentCell): remove cached_currencymgr_events handling.
5203         (SetDataMember): only call DisconnectListManagerEvents if
5204         cached_currencymgr is != null.
5205         (SetDataSource): same.
5206         (OnListManagerCurrentChanged): cached_currencymgr_events ->
5207         cached_currencymgr.
5208
5209 2006-05-31  Jackson Harper  <jackson@ximian.com>
5210
5211         * BindingManagerBase.cs: Remove somedebug code that creeped into
5212         SVN.
5213         * TreeNode.cs: We get the indent level dynamically right now, so
5214         don't track it as a member.
5215         * TreeNodeCollection.cs: Make sure all nodes added to the list
5216         have parents, treeviews/topnodes setup properly.
5217         - Don't attempt to track indent level.
5218
5219 2006-05-30  Jackson Harper  <jackson@ximian.com>
5220
5221         * BindingContext.cs: Create the currency manager tables here.
5222         This allows us to more easily create null tables (when bad data
5223         members are used), and more easily create related currency
5224         managers.
5225         * CurrencyManager.cs: All the table creation stuff is done by the
5226         binding context now.
5227         - Current should throw an exception if listposition is -1.
5228         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
5229         been bound yet.
5230
5231 2006-05-30  Mike Kestner  <mkestner@novell.com>
5232
5233         * ListView.cs: allow reexpansion of zero-width column headers.
5234         Fixes #78528.
5235
5236 2006-05-28  Chris Toshok  <toshok@ximian.com>
5237
5238         * CurrencyManager.cs (get_Current): after the late binding
5239         listposition = -1 fix, we need to guard against it here and return
5240         null, otherwise we raise an exception (which is swallowed
5241         elsewhere, and breaks datagrid databinding.)
5242
5243 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5244
5245         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
5246           than WM_SYSKEY, don't throw if get something unexpected (#78507)
5247
5248 2006-05-26  Jackson Harper  <jackson@ximian.com>
5249
5250         * ControlPaint.cs:
5251         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
5252         values, it's faster and it's all we care about (we don't care if
5253         the names aren't equal).
5254         * KeyboardLayouts.cs: Eliminate some dead code.
5255         - Lazy init things
5256         * X11Keyboard.cs: Lazy init keyboard detection.
5257         - Cleanup access modifiers a little.
5258
5259 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5260
5261         * XplatUIX11.cs: Once again, attempting to get layout just right.
5262
5263 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
5264
5265         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
5266           the sizes of each link section, that will result in sizes that
5267           match DrawString's layout (Fixes #78391)
5268
5269 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
5270
5271         * FileDialog.cs: If AddExtension property is true autocomplete the
5272           extensions in SaveFileDialog correctly. Fixes bug #78453.
5273           Set MyNetwork and MyComputer to "C:\" for windows. This should
5274           fix part 8 of bug #78446 for now.
5275
5276 2006-05-26  Chris Toshok  <toshok@ximian.com>
5277
5278         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
5279         invalidate the current row header if we need to, but presumably
5280         we'll invalidate the row corrsponding to the bounds or
5281         editingControl.
5282         (GridHScrolled): switch back to this method, as it's part of the
5283         public api.  *sigh*.
5284         (GridVScrolled): same.
5285         (OnMouseWheel): hack up something that more or less works.  Call
5286         GridHScrolled/GridVScrolled directly, instead of duplicating much
5287         of their code here.
5288         (EnsureCellVisibility): reinstate a bunch of this code, since we
5289         can't just set the scrollbar Value and expect to do all the work
5290         in the ValueChanged handler.  Also, Call Update() after scrolling
5291         in one direction so the other XplatX11.ScrollWindow call has the
5292         proper stuff in the proper places.
5293         (EditCell): set is_editing to true before calling .Edit.
5294
5295         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
5296         don't bother comparing first.
5297         (OnKeyPress): call grid.ColumnStartedEditing before calling
5298         base.OnKeyPress.  this will set is_changing and invalidate the row
5299         header if necessary.
5300         (ProcessKeyMessage): for WM_CHAR messages, call
5301         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
5302         and WM_KEYDOWN.
5303         
5304         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
5305         it's done in the DataGrid.
5306         (NextState): call grid.ColumnStartedEditing, which takes care of
5307         invalidating the row header (and setting is_changing).
5308
5309         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
5310         here.  it's done in the DataGrid.
5311
5312 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5313
5314         * Control.cs: allow changing the cursor when the mouse position is
5315         out of bounds but Capture is set.
5316         * LinkLabel.cs: handle the case when the mouse button is pressed on the
5317         linklabel but released somewhere else.
5318
5319 2006-05-25  Jackson Harper  <jackson@ximian.com>
5320
5321         * TreeView.cs: When we get focus if there is no selected node make
5322         it the top node
5323         - Remove some uneeded setup code from Draw.
5324         * TreeNodeCollection.cs: If the tree doesn't have a top node when
5325         a new node is inserted make the new node the top.
5326         * XplatUIX11.cs:
5327         * Timer.cs: Use Utc time so that no local time zone stuff needs to
5328         be used (should be faster).
5329         
5330 2006-05-25  Chris Toshok  <toshok@ximian.com>
5331
5332         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
5333         problem with the last commit.
5334
5335 2006-05-25  Chris Toshok  <toshok@ximian.com>
5336
5337         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
5338         need the invalidate call here, while scrolling right-to-left via
5339         the left arrow key (i.e. moving the editing cell while scrolling).
5340
5341         * DataGrid.cs (.ctor): remove the initialization of
5342         ctrl_pressed/shift_pressed.  We no longer track them using key
5343         up/down handlers, but by using Control.ModifierKeys.  Also, switch
5344         to using ValueChanged handlers on the scrollbars instead of
5345         Scrolled event handlers.  This simplifies a bunch of the scrolling
5346         code.
5347         (GridHValueChanged): rename from GridHScrolled, and change it to
5348         work with the new event args.
5349         (GridVValueChanged): same.
5350         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
5351         (OnMouseWheel): actually scroll the datagrid.  Don't change the
5352         selected cell.
5353         (ProcessGridKey): correct all the keyboard navigation stuff I
5354         could find.  Ctrl up/down/left/right/home/end work now.
5355         (EnsureCellVisibility): correct method name spelling.  Also,
5356         simplify this a touch by not explicitly calling the
5357         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
5358         scrollbar value.
5359         (OnKeyUpDG): no need for this method now.
5360         
5361 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5362
5363         * LinkLabel.cs: display the OverrideCursor when hovering the label.
5364         Fixes bug #78392.
5365
5366 2006-05-25  Chris Toshok  <toshok@ximian.com>
5367
5368         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
5369         r61019.
5370
5371 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5372
5373         * Application.cs: Moved setting of is_modal and closing to before
5374           we create the control, to allow the event handlers called as a
5375           result of creation affect closing. Also removed Gonzalo's previous
5376           change to setting DialogResult, the behaviour has been moved to 
5377           Form.ShowDialog()
5378         * Form.cs: 
5379           - ShowDialog(): Removed explicit creation of the form, let RunLoop
5380             handle it instead
5381           - ShowDialog(): If no dialog result is set, we need to return Cancel
5382           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
5383             the close is cancelled
5384
5385 2006-05-25  Jackson Harper  <jackson@ximian.com>
5386
5387         * StatusBar.cs: We only need to update the sizes of the other
5388         panels when we have auto size contents.  Also we are only updating
5389         the contents of the panel, not the borders, so compensate for the
5390         border width (TODO: get this width from the theme somehow).
5391         * TreeView.cs: Scrollable is true by default
5392         - Use invalidate instead of refresh where needed
5393         - Factor the scrollable value into scrollbar updating
5394         - Update the scrollbars if the Scrollable property is altered
5395         - Update the selected node if its ImageIndex is changed
5396         - Handle null nodes in UpdateNode (mainly so we don't have to
5397         check if selected is null when updating it
5398         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
5399         are factored into the visible count
5400         - Use VisibleCount for clarity in the code
5401         - When the font is changed we need to recurse through all the
5402         nodes and invalidate their sizes
5403         
5404 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5405
5406         * Application.cs: set the DialogResult to fixed when the main form is
5407         hidden or destroyed while being modal.
5408
5409 2006-05-25  Miguel de Icaza  <miguel@novell.com>
5410
5411         * Theme.cs: Use Tangoified messagebox icons. 
5412
5413         (GetSizedResourceImage): Also cope with width = 0 and do not
5414         trigger a warning in that case (0 means "give me your icon from
5415         the resouce, no special size needed).
5416
5417 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5418
5419         * Application.cs: Leave runloop if the the main modal form is 
5420           hidden (fixes #78484)
5421
5422 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5423
5424         * BindingContext.cs : reject null datasource in Contains() and
5425           Item[].
5426         * CurrencyManager.cs : check data_member validity when data_source
5427           is dataset. When it is late binding, the initial position is -1.
5428
5429 2006-05-24  Jackson Harper  <jackson@ximian.com>
5430
5431         * TreeNodeCollection.cs: Dont't recalculate the visible order on
5432         inserted nodes that aren't visible.  This changes the
5433         max_visible_order which confuses scrollbar settings.
5434         - Use the enumerator to get the prev node instead of duplicating
5435         code.
5436         * TreeView.cs: Use new method for setting scrollbar values
5437         - Don't set the bounds every time the scrollbar is updated
5438         - When updating below the root node use an invalidate instead of a
5439         refresh to prevent the child controls (scrollbars) from being
5440         refreshed. (UpdateBelow still needs to be reworked anyways).
5441         - Reenable SetBottom now that visible orders are set correctly,
5442         added some debug code incase we ever get bad values there again.
5443         - Set the scrollbar max to 2 less then the max value, this
5444         compensates for the max value being one above the node count, and
5445         for scrollbars adding one extra "notch".
5446         - When drawing image nodes if there is an imagelist we draw the
5447         first image in the list if the supplied image index is out of the
5448         image list's bounds.
5449         
5450 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5451
5452         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
5453           we receive a size change from the WM (Fixes #78503)
5454
5455 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
5456
5457         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
5458           rectangle (Fixes #78501)
5459
5460 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5461
5462         * ButtonBase.cs: 
5463           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
5464             as a bitfield.
5465           - Fixed MouseMove to no longer switch pressed state unless the left
5466             mouse button is pressed. Atsushi provided the original patch (#78485)
5467           
5468 2006-05-24  Jackson Harper  <jackson@ximian.com>
5469
5470         * ScrollBar.cs: New internal methods that allow us to change a
5471         couple values on the scrollbar (the most common case is maximum
5472         and large change) without getting multiple invalidates.
5473
5474 2006-05-24  Chris Toshok  <toshok@ximian.com>
5475
5476         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
5477         (Edit): save off the original state in oldState, and set
5478         grid.is_editing to true.
5479         (OnKeyDown): abort editing if escape is pressed.  also, call
5480         NextState if space is pressed.
5481         (OnMouseDown): call NextState.
5482         (NextState): factor out shared code from OnKeyDown and OnMouseDown
5483         here.  Also, only invalidate the row header once (on the initial
5484         is_changing switch) to save on redraws.
5485
5486 2006-05-24  Chris Toshok  <toshok@ximian.com>
5487
5488         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
5489         if the value in the cell is different than it was before.  This
5490         keeps us from triggering a layout when we move around a datarid
5491         with a highlighted cell.
5492         (Edit): suspend layout when creating/positining the text box, and
5493         resume passing false so we don't ever actually re-layout.
5494         (ReleaseHostedControl): same.
5495         (EnsureTextBox): reformat slightly, and set WordWrap to false.
5496
5497         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
5498         control-key sequences should go to the datagrid - remove that
5499         lock.  Also, modify the conditions under which we move between
5500         cells when moving the cursor within a cell, and remove the "this"
5501         and "base" from field accesses.  We weren't even consistent, given
5502         they all were in the base class.
5503
5504 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
5505
5506         * Binding.cs : (.ctor)
5507           An obvious NRE fix for BindingTest.CtorNullTest().
5508
5509 2006-05-23  Chris Toshok  <toshok@ximian.com>
5510
5511         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
5512         them between lines.  This fixes some quirks editing cells in the
5513         datagrid.
5514
5515 2006-05-23  Jackson Harper  <jackson@ximian.com>
5516
5517         * TreeView.cs: Use begin/end update when doing expand/collapse all
5518         so that we don't get flicker on the scrollbar.
5519
5520 2006-05-23  Jackson Harper  <jackson@ximian.com>
5521
5522         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
5523         treenode calculations to be independant of the painting code. To
5524         do this nodes track a visible order which is calculated by the
5525         treeview.
5526         - Call new methods for expanding/collapsing nodes.  These methods
5527         use scrollwindow so we don't have to update everything below the
5528         node.
5529         * TreeView.cs: Refactored drawing and scrolling code.  We don't
5530         need to update nodes when drawing anymore or calculate scrollbar
5531         stuff.
5532         - Added new methods for expanding/collapsing nodes. These methods
5533         use ScrollWindow so as to not have to redraw all the nodes below.
5534         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
5535         we add/remove nodes or sort.
5536         - Handle removing the selected and the top node properly.
5537
5538 2006-05-23  Chris Toshok  <toshok@ximian.com>
5539
5540         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
5541         maybe this should actually happen in the datagrid code?
5542         (EndEdit): no need to invalidate anything, given that
5543         ReleaseHostedControl causes the datagrid to relayout, which
5544         invalidates everything anyway.
5545
5546         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
5547         in SetCurrentCell).
5548         (set_SelectionBackColor): call InvalidateSelection instead of
5549         Refresh.
5550         (set_SelectionForeColor): same.
5551         (BeginEdit): Flesh this out a bit.
5552         (CancelEditing): only do any of this if we're editing/adding.
5553         (EndEdit): same.
5554         (OnMouseDown): there's no need to cancel editing here, it's done
5555         in SetCurrentCell.
5556         (SetCurrentCell): only invalidate the current row header if it's a
5557         different row than the new one.
5558         (ShiftSelection): fix this to work like MS does.
5559         (ResetSelection): factor out the invalidation of selected_rows to
5560         InvalidateSelection.
5561         (SetDataSource): cancel any editing that's going on.
5562
5563         * DataGridColumnStyle.cs
5564         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
5565         call the non-interface version.
5566
5567         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
5568         header rectangle with the clip rectangle so we don't redraw the
5569         entire header for just a small area.  Gets rid of the last flicker
5570         when horizontally scrolling.
5571         (DataGridPaintRow): same.
5572
5573 2006-05-23  Mike Kestner  <mkestner@novell.com>
5574
5575         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
5576         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
5577         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
5578         Critical bug report.
5579
5580 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5581
5582         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
5583           and this fixes #78493
5584
5585 2006-05-23  Miguel de Icaza  <miguel@novell.com>
5586
5587         * Theme.cs (GetSizedResourceImage): Scale images if the proper
5588         size is not found.  
5589         
5590         * FileDialog.cs: Do not change the background for the side bar as
5591         it wont work nicely with the theme, and also reduces the artifacts
5592         in rendering the icons (which I want to fix too).
5593
5594         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
5595         resources, not resgen resources. 
5596
5597         (PlatformDefaultHandler): Pull images using the new API.
5598
5599 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5600
5601         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
5602           a reference to the hwnd and will not remove it unless there are
5603           no pending exposures (fixes #78341)
5604         * XplatUI.cs: Improved debug
5605
5606 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
5607
5608         * MenuAPI.cs : don't handle OnClick event when it was not the left
5609           button. Fixed bug #78487.
5610
5611 2006-05-23  Mike Kestner  <mkestner@novell.com>
5612
5613         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
5614         prefer submenus to the top menu for item lookup, to avoid popping down
5615         top-row items.
5616
5617 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
5618
5619         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
5620           Graphics.FillRectangle as the visual results are really bad (even
5621           on win). We now draw perfect arrows (and perfect shadows when the
5622           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
5623           Pen.DashPattern to draw the dots of each line.
5624
5625 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
5626
5627         * FileDialog.cs: Update the filename combobox when navigating through
5628           the ListView with the cursor keys. Fixes part 7 of bug #78446.
5629
5630 2006-05-22  Mike Kestner  <mkestner@novell.com>
5631
5632         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
5633         Fixes #78463.
5634
5635 2006-05-22  Mike Kestner  <mkestner@novell.com>
5636
5637         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
5638         requests. Fix a misspelled parameter and a copy paste exception error
5639         in Select.
5640
5641 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
5642
5643         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
5644           to get the same width/height (5/13) on X11 as the default font has on
5645           win32. This means that our DefaultFont emSize is smaller than the 
5646           the MS SWF equivalent (even thought the width/height stays the same)
5647
5648 2006-05-20  Jackson Harper  <jackson@ximian.com>
5649
5650         * MdiClient.cs:
5651         * MdiWindowManager.cs:
5652         * InternalWindowManager.cs: Make sure to use the border width from
5653         the theme.
5654
5655 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
5656
5657         * PrintDialog.cs: Implements printer details
5658
5659 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
5660
5661         * FileDialog.cs: Added focus handling for PopupButtonPanel.
5662           Fixes part 1 and 2 of bug #78446
5663
5664 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
5665
5666         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
5667           instead of sticking to the first ever calculated value
5668
5669 2006-05-19  Mike Kestner  <mkestner@novell.com>
5670
5671         * ComboBox.cs: fix mouse motion selection to use MousePosition and
5672         PointToClient, since Capture is set. Fixes #78344.
5673
5674 2006-05-19  Mike Kestner  <mkestner@novell.com>
5675
5676         * ListView.cs: match MS behavior in Details view where items are not
5677         drawn if Columns.Count == 0. 
5678         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
5679         Use a separate pen to draw the check, since changing the width affects
5680         the box as well.  Fixes #78454.
5681
5682 2006-05-18  Miguel de Icaza  <miguel@novell.com>
5683
5684         * ListView.cs: ArgumentOutOfRangeException, single versions of the
5685         exception should throw the name of the invalid argument.
5686
5687         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
5688         there are no files listed. 
5689
5690 2006-05-18  Jackson Harper  <jackson@ximian.com>
5691
5692         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
5693         up.
5694
5695 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5696
5697         * Control.cs: Brought back our old UpdateZOrder method as a private
5698           function and switched our calls from UpdateZOrder to the new one.
5699           This fixes the Paint.Net canvas disappearing bug.
5700
5701 2006-05-18  Jackson Harper  <jackson@ximian.com>
5702
5703         * Theme.cs:
5704         * ThemeWin32Classic.cs:
5705         * InternalWindowManager.cs: Move the drawing into the theme,
5706         expose everything the theme should need from the window manager.
5707
5708 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5709
5710         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
5711           from the call to NativeWindow to avoid walking up the parent chain
5712           further than needed (speeds up setting cursors and avoids setting
5713           the wrong cursor if a parent has another cursor defined)
5714         * Cursor.cs: When loading an icon as cursor, MS uses the center of
5715           the icon as hotspot, not what's contained as hotspot in the icon
5716           file. This fixes the perceived drawing offset seen with Paint.Net
5717         
5718 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5719
5720         * XplatUIX11.cs: 
5721           - Store the calculated rectangle in Hwnd object and use it when 
5722             setting the client size
5723           - Force Toolwindows to always be type Dock, to ensure they're on top
5724
5725 2006-05-18  Mike Kestner  <mkestner@novell.com>
5726
5727         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
5728         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
5729         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
5730         Substantial refactoring to remove confusing nested classes. Coding
5731         standard and Get+Set->property refactorings.  Shift to index based
5732         highlighting in ComboListBox instead of constantly using IndexOf and
5733         Items[]. Add invalidations on resize for DropDownList to fix ugliness
5734         in FileDialog growth.  Draw borders manually since Simple mode needs
5735         to look like two independent controls.  Make listbox border
5736         conditional to DropDownStyle.  Improved OwnerDraw support.
5737
5738 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
5739
5740         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
5741         Don't set the disposed graphics to null, so we can throw the "right"
5742         exception if the graphics is reused later (added a flag to avoid 
5743         double disposing). Some behaviours are different under 2.0 and are
5744         filled under bug #78448.
5745
5746 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5747
5748         * Control.cs: When double-buffering is enabled, we need to reset
5749           our graphics context between paint calls. Otherwise, any 
5750           transformations and other alterations on the context will 
5751           become cumulative (#77734)
5752
5753 2006-05-18  Mike Kestner  <mkestner@novell.com>
5754
5755         * ListView.cs: do focused item selection like MS on clicks. 
5756         Rework focus handling for ItemControl so LostFocus invalidates as
5757         well.
5758         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
5759         the ListView ItemControl has focus.
5760
5761 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
5762
5763         * XplatUIX11.cs: If client_window ends up being width or height zero
5764           due to border settings, move it off window inside whole_window (#78433)
5765
5766 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5767
5768         * Mime.cs: Shrink the mime file cache correctly.
5769
5770 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5771
5772         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
5773
5774 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5775
5776         * XplatUIX11.cs (AddExpose): More sanity checks
5777
5778 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5779
5780         * XplatUIX11.cs:
5781           - AddExpose: Don't add expose ranges outside the size of our
5782             window
5783           - Cast opacity values to Int32 to avoid crashes with certain
5784             values
5785           - Added disabled code paths that protect against illegal cross-
5786             thread painting (Developers.exe)
5787
5788 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5789
5790         * ProgressBar.cs: Invalidate the control when it's resized
5791           since block size is based on control size. (#78388)
5792
5793 2006-05-16  Miguel de Icaza  <miguel@novell.com>
5794
5795         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
5796         of setting the incoming argument to the "reset" value, we set the
5797         this.datamember to string.empty (before we were invalidating the
5798         incoming data).   
5799
5800         Fixes 78420
5801
5802 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5803
5804         * Form.cs: Only apply transparency settings after the form
5805           is created. (Fixes #77800)
5806
5807 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5808
5809         * ApplicationContext.cs: Grab the HandleDestroyed event so
5810           we know when to fire OnMainFormClosed 
5811
5812 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5813
5814         * Application.cs: Introduced sub-class to allow tracking of
5815           threads and centralized triggering of the event mess for
5816           ThreadExit, AppExit, etc..  (#76156)
5817
5818 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
5819
5820         * MimeIcon.cs:
5821           - Do not return a null icon index value for a mime subclass.
5822             Instead try the main mime type class too.
5823           - Seems that some newer distributions don't have a link to some
5824             gnome default icons anymore. So check the default gnome dir too.
5825           
5826
5827 2006-05-16  Jackson Harper  <jackson@ximian.com>
5828
5829         * MdiClient.cs: Don't paint the parent background image if we have
5830         our own background image.
5831
5832 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5833
5834         * Control.cs:
5835           - PerformLayout: Do not shrink space filled by DockStyle.Fill
5836             controls, all filled controls are supposed to overlap (#78080)
5837           - UpdateZOrder is supposed to update the control's z-order in the
5838             parent's z-order chain. Fixed to behave like that
5839           - BringToFront: Removed obsolete code
5840           - SendToBack: Simplyfied
5841           - SetChildIndex: Trigger layout calculations when Z-order changes
5842             since layout is done by z-order
5843
5844 2006-05-16  Chris Toshok  <toshok@ximian.com>
5845
5846         [ fixes bug #78410 ]
5847         * DataGrid.cs (set_AlternatingBackColor): use
5848         grid_drawing.InvalidateCells instead of Refresh().
5849         (set_BackColor): call grid_drawing.InvalidateCells.
5850         (set_BackgroundColor): use Invalidate instead of Refresh.
5851
5852         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
5853         invalidate the cell area.
5854
5855 2006-05-15  Chris Toshok  <toshok@ximian.com>
5856
5857         [ fixes bug #78011 ]
5858         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
5859         on to DataGridPaintRow.
5860         (DataGridPaintRow): take a clip argument, and only draw the cells
5861         which intersect it.  same with the not_usedarea.
5862
5863         * Theme.cs (DataGridPaintRow) add @clip parameter.
5864
5865         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
5866         XplatUI.ScrollWindow.
5867         (ScrollToRow): same.
5868
5869         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
5870         with last column which was causing a gray swath to appear with the
5871         XplatUI.ScrollWindow code.
5872
5873 2006-05-15  Chris Toshok  <toshok@ximian.com>
5874
5875         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
5876         use XplatUI.ScrollWindow.
5877         (VerticalScrollEvent): use XplatUI.ScrollWindow.
5878
5879 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
5880
5881         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
5882
5883 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5884
5885         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
5886           file since there are no equivalent X11 cursors
5887
5888 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5889
5890         * MonthCalendar.cs : DateTimePicker should reflect selected date
5891           on mouse*up*, not mouse*down*. Fixed originally reported part of
5892           bug #76474.
5893
5894 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5895
5896         * TabControl.cs : When argument index is equal or more than tab
5897           count, just ignore. Fixed bug #78395.
5898
5899 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5900
5901         * Control.cs: Dispose all child controls when control is diposed (#78394)
5902
5903 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5904
5905         * ColorDialog.cs: Finally it is possible to select the color with
5906           the text boxes
5907
5908 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5909
5910         * PrintDialog.cs: Fix typo
5911
5912 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5913
5914         * PrintDialog.cs: PrintDialog is not resizable
5915         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
5916           color. Made some ToolBar drawing methods protected virtual.
5917
5918 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
5919
5920         * PrintDialog.cs: Implementation of the PrintDialog
5921
5922 2006-05-12  Chris Toshok  <toshok@ximian.com>
5923
5924         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
5925         thumb, instead use MoveThumb.  This has the side effect of making
5926         most of the other thumb moving machinery use MoveThumb as well.
5927         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
5928         need to actually invalidate the rectangle where the new thumb will
5929         go.
5930         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
5931         We force an Update() after, so it's not as fast as it could be,
5932         but at least there's zero flicker and no droppings.
5933         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
5934         (UpdateThumbPos): add another argument (dirty), which says whether
5935         or not to calculate/add dirty regions which we later invalidate.
5936         For cases where we know we're going to use MoveThumb, we pass
5937         false for this.  Otherwise, pass true.
5938
5939 2006-05-12  Jackson Harper  <jackson@ximian.com>
5940
5941         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
5942         the status bar.
5943         
5944 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
5945
5946         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
5947           and GetClipRegion methods and UserClipWontExposeParent property.
5948         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
5949           overriding UserClipWontExposeParent property, setting to false, since
5950           Win32 handles the required expose messages to draw our clipped parent
5951           areas internally
5952         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
5953           PaintEventStart to set the user clip region if set.
5954         * Control.cs: 
5955           - Now internally tracking the Region for the control since we need to
5956             store it if the handle is not yet created and only set it when it
5957             becomes created. Before setting the region forced handle creation
5958           - Added code to draw the parents underneath a user-clipped region
5959         * Hwnd.cs: Added UserClip property
5960
5961 2006-05-12  Chris Toshok  <toshok@ximian.com>
5962
5963         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
5964         (set_Maximum): same.
5965         (set_Minimum): same.
5966         (set_SmallChange): same.
5967         (OnMouseUpSB): remove the call to refresh when releasing the
5968         thumb.  We shouldn't need it.
5969         
5970 2006-05-12  Miguel de Icaza  <miguel@novell.com>
5971
5972         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
5973         AutoSize set to None, we do not need to relayout everything, we
5974         just need to invalidate the current region.
5975
5976         (Draw): Do not draw the entire ClientArea, just redraw the
5977         clip area being passed.
5978
5979         * MdiClient.cs: Make MdiClient constructor with the Form argument
5980         internal. 
5981
5982 2006-05-12  Jackson Harper  <jackson@ximian.com>
5983
5984         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
5985         parents background image,  but strangely not their own.
5986         - (DrawStatusBarPanel): Take into account horizontal alignment
5987         when drawing the strings and icons.
5988
5989 2006-05-12  Mike Kestner  <mkestner@novell.com>
5990
5991         * ListBox.cs: avoid invalidations for focus when the collection is
5992         empty. 
5993
5994 2006-05-12  Chris Toshok  <toshok@ximian.com>
5995
5996         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
5997         invalidate the entire thumb area.  Call InvalidateDirty which
5998         limits the redraw to the thumb itself and surrounding pixels.
5999
6000         * XplatUIX11.cs (ScrollWindow): optimize copying.
6001         
6002 2006-05-12  Chris Toshok  <toshok@ximian.com>
6003
6004         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
6005         Figure out the positioning/layout in a single pass instead of
6006         multiple recursive invocations.  Speeds up the initial display of
6007         the data grid.  Also, make many things private that were
6008         originally public but unused outside this class.
6009
6010 2006-05-11  Jackson Harper  <jackson@ximian.com>
6011
6012         * MdiClient.cs: Improved layout code.
6013
6014 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
6015
6016         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
6017           not SelectedObject.
6018
6019 2006-05-11  Chris Toshok  <toshok@ximian.com>
6020
6021         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
6022         union of that will always be {0,0,width,height}.
6023
6024 2006-05-11  Jackson Harper  <jackson@ximian.com>
6025
6026         * Form.cs: Match MS's DefaultSize for forms (they must have
6027         changed the size in sp2).
6028
6029 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6030
6031         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
6032
6033 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6034
6035         * TextControl.cs : Fixed bug #78109. This incorrect position
6036           comparison caused crash on automatic line split.
6037         * TextBoxBase.cs : reduce duplicate code.
6038
6039 2006-05-10  Jackson Harper  <jackson@ximian.com>
6040
6041         * MdiClient.cs: Active form is only sent to the back when using
6042         the Next form functionality, when a form is clicked the current
6043         active shouldn't be sent to the back.
6044         - Layout the mdi windows when the container is first made visible.
6045         * Form.cs: Give the MdiClient a ref to the containing form when we
6046         create it.
6047         
6048 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6049
6050         * LinkLabel.cs : link_font could be uninitialized, so populate one
6051           before actual use. Fixed bug #78340.
6052
6053 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6054
6055         * XplatUIX11.cs : clipboard format native value is IntPtr.
6056           Fixed bug #78283.
6057
6058 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6059
6060         * Control.cs: 
6061           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
6062             which is passed up the parent chain by DefWndProc
6063           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
6064             to DefWndProc (#77956)
6065         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
6066
6067 2006-05-10  Jackson Harper  <jackson@ximian.com>
6068
6069         * MdiClient.cs: We need to remove the controls from the mdi
6070         collection, when we close the window.
6071         * MdiWindowManager.cs: Special handling of closing mdi windows.
6072         * InternalWindowManager.cs: Make the close method virtual so the
6073         mdi window manager can handle it specially.
6074
6075 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
6076
6077         * DataGrid.cs:
6078           - Recalculate grid when the data source has changed
6079           - Matches styles provided by user from all data sources types
6080         * DataGridTableStyle.cs: For columns that provided by the user set the
6081         with the preferred value is there was unassigned.
6082         * CurrencyManager.cs: throw OnItemChanged event
6083
6084 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
6085
6086         * PictureBox.cs: Don't animate until handle is created. Start animation
6087           when handle is created.
6088
6089 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6090
6091         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
6092           current codebase.
6093         * XEventQueue.cs: We don't need to provide the extra info
6094
6095 2006-05-10  Jackson Harper  <jackson@ximian.com>
6096
6097         * MdiClient.cs: If the mdi clients parent form has a background
6098         image set, we draw that background image for the mdi area's
6099         background.
6100
6101 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6102
6103         * TextBoxBase.cs: Set IBeam cursor (#78347)
6104
6105 2006-05-10  Mike Kestner  <mkestner@novell.com>
6106
6107         * ToolBar.cs: fix some text padding issues with ButtonSize
6108         calculation. Update the default size to match MS documentation.
6109         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
6110         button size. Fixes #78296.
6111
6112 2006-05-10  Mike Kestner  <mkestner@novell.com>
6113
6114         * ListBox.cs: use is_visible for scrollbar positioning in case the
6115         control isn't on screen yet.  Fix off by one with Right vs Width
6116         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
6117         
6118 2006-05-10  Jackson Harper  <jackson@ximian.com>
6119
6120         * X11Dnd.cs: Drop to a control with another control on top of it.
6121         * ToolBar.cs: Work on a copy of the buttons list, so that it can
6122         be modified in click handlers. TODO: Look for similar problems in
6123         other controls.
6124
6125 2006-05-09  Jackson Harper  <jackson@ximian.com>
6126
6127         * Form.cs: Window managers need the old window state when setting
6128         window state now.
6129         * InternalWindowManager.cs: Allow the base mdi window manager to
6130         handle more of the MDI only stuff (like maximize buttons).
6131         * MdiWindowManager.cs: Fix some snafus in changing the window
6132         state.  Add all the menu functionality, for both popup and
6133         maximized menus.
6134         * MdiClient.cs: When a new form is selected the currently
6135         activated form is sent to the back, this matches MS.
6136         - Implement a new method to activate the next mdi child window.
6137
6138 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
6139
6140         * Control.cs: 
6141           - Added new InternalCapture method to allow controls to prevent
6142             the capture behaviour on the click handlers
6143           - Switched to use InternalCapture
6144         * ComboBox.cs:
6145           - Using InternalCapture to prevent mouse captures from being released
6146             on mouse button release (Fixes #78100)
6147         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
6148           returns Form borders if a caption is present. (Fixes #78310)
6149
6150 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
6151
6152         * TreeNode.cs: Changed serialization .ctor to not require every field
6153           to be present. (#78265)
6154         * OwnerDrawPropertyBag.cs: Added serialization .ctor
6155
6156 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
6157
6158         * MimeIcon.cs: for is faster than foreach for strings.
6159
6160 2006-05-05  Mike Kestner  <mkestner@novell.com>
6161
6162         * CheckedListBox.cs: update check handling code to not use selected.
6163         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
6164         behavior for visual feedback, motion response, shift/ctrl handling,
6165         and properly deal with all 4 selection modes. Updates to bounds
6166         handling logic.  Add scroll wheel support. [Fixes #77842]
6167
6168 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6169
6170         * ListView.cs:
6171           - Moved adding of Implicit controls into .ctor. That way, subsequent
6172             creation of the controls will not cause them to think they are 
6173             toplevel windows (fixes #78200 header problem)
6174           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
6175           - Switched visibility setting of header control to use internal field
6176             to avoid triggering handle creation
6177           - Now checking if handle is created before causing a refresh when items
6178             are added (This makes us now match handle creation time with MS)
6179         * Splitter.cs: Removed loading of private splitter cursor, switched to
6180           Cursors version now that that is loading the right ones
6181         * Cursors.cs: Load proper splitter cursors from resources
6182         * Cursor.cs: Added second method of loading resource cursors for the 
6183           VS.Net users amongst us
6184
6185 2006-05-05  Mike Kestner  <mkestner@novell.com>
6186
6187         * ListView.cs: give header_control a minimum size based on the
6188         ListView size.
6189
6190 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6191
6192         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
6193           window seems to do that with metacity, so set that type. (#78120)
6194
6195 2006-05-05  Mike Kestner  <mkestner@novell.com>
6196
6197         * ListViewItem.cs: fix Details mode checkbox layout bug.
6198         * ThemeWin32Classic.cs: draw a ListView column header for unused space
6199         at the end of the header, if it exists. [Fixes for #78200]
6200
6201 2006-05-04  Jackson Harper  <jackson@ximian.com>
6202
6203         * MdiClient.cs: Add a helper property to get the container form.
6204         * MdiWindowManager.cs: We have to make sure to use the menu origin
6205         when drawing the icons and buttons, this fixes maximized window
6206         icons/buttons on win32.
6207         * InternalWindowManager.cs: Reset the restore captions when a
6208         window goes from Maximized to Minimized and vice versa. Move the
6209         DrawMaximizedButtons into the MdiWindowManager source, tool
6210         windows can't be maximized. NOTE: This could use a little
6211         refactoring if time ever permits.
6212         
6213 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6214
6215         * TextBox.cs: Add MWFCategoryAttributes
6216         * TextBoxBase.cs: Add MWFCategoryAttributes
6217         * Form.cs: Add MWFCategoryAttributes
6218
6219 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6220
6221         * Control.cs: Add MWFCategoryAttributes
6222         * ScrollableControl.cs: Add MWFCategoryAttributes
6223
6224 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
6225
6226         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
6227           Divider is true. Fix a little glitch in PropertyToolBar
6228           drawing code
6229
6230 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
6231
6232         * Control.cs:
6233           - Dispose: Call base.Dispose, this causes the disposed event
6234             to be fired (and probably other, more important stuff)
6235           - SetVisibleCore: Set is_visible to true after creating the
6236             window so that the window still gets created invisible (if
6237             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
6238             to generate a WM_ACTIVE message
6239         * Form.cs: Call Dispose when we want to destroy the window, instead of
6240           just destroying the handle (Dispose will do that for us)
6241         * XplatUIX11.cs:
6242           - RootWindow also needs a queue, so we can properly process the
6243             property change events from RootWindow (like Activate)
6244           - Generatic synthetic WM_ACTIVE message when the active window is
6245             being destroyed
6246
6247 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6248
6249         * LinkLabel.cs: Trigger a recalc of our label dimensions when
6250           bounds are changed
6251
6252 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
6253
6254         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
6255           for determining width and height (image might not be assigned if
6256           we're drawing an imagelist)
6257
6258 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6259
6260         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
6261         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
6262           height from system
6263         * Theme.cs: No longer returns hardcoded menu height, instead calls
6264           new driver method
6265         * Form.cs (OnLoad): Scaling happens before triggering Load events 
6266           on MS (# 78257)
6267
6268 2006-05-01  Mike Kestner  <mkestner@novell.com>
6269
6270         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
6271
6272 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
6273
6274         * TextBoxBase.cs: Removed Fixme
6275         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
6276
6277 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
6278
6279         * XplatUIX11.cs:
6280           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
6281             the rectangle relative to the parent, considering borders. We
6282             don't really want that.
6283           - ScrollWindow: Fixed warning to be more understandable
6284         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
6285           scrollbars and scroll only the visible area
6286         * RichTextBox.cs: Removed debug output
6287
6288 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6289
6290         * NumericUpDown.cs (Text): Just use base
6291         * UpDownBase.cs: Ensure txtView is created before using it
6292
6293 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6294
6295         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
6296           casting to IntPtr to avoid 64bit overflow errors
6297
6298 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6299
6300         * Control.cs:
6301           - AllowDrop: Don't force handle creation.
6302           - CreateHandle: Added call to tell driver if we're allowed to drop
6303
6304 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6305
6306         * FileDialog.cs: Remember the last directory not only for the
6307           current instance but also for new FileDialog instances.
6308
6309 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6310         
6311         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
6312           broke sending async messages
6313
6314 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6315
6316         * XplatUIX11.cs:
6317           - ScrollWindow: Fixed method. We finally generate expose events again
6318             for scrolled areas. This was causing 'garbage' when scrolling
6319             textbox and other controls that used ScrollWindow
6320           - Switched from using the regular queue for paint events to the MS 
6321             model of 'generating' paint events when the queue is empty.
6322             We use the new XQueueEvent.Paint subclass to store which windows
6323             need painting.
6324           - AddExpose now takes the x/y/width/height of the exposed area
6325             and inserts the window into the paint queue if not already there
6326           - InvalidateWholeWindow: Switched to use new AddExpose method
6327           - UpdateMessageQueue: Added which queue to monitor for paint events
6328           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
6329             the unlikely case nothing above handles it. We reset the expose
6330             pending states to get them off the queue.
6331           - GetMessage: Now pulls a paint event if no other events are in the
6332             queue
6333           - Invalidate: Switched to new AddExpose method
6334           - PeekMessage: Updated to understand pending paint events
6335           - UpdateWindow: Fixed logic bug. We were only updating if the window
6336             didn't need updating. Also switched to sending WM_PAINT directly,
6337             like MS does.
6338         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
6339           and random access Remove(). The random access is needed to handle
6340           UpdateWindow() where a WM_PAINT is sent directly without accessing
6341           the queue.
6342         * ScrollBar.cs: Added Update() calls to cause immediate updates to
6343           allow for better feedback when scrolling. Scrollbars are small and
6344           the immediate update should make it 'feel' more responsive without
6345           slowing things down. ScrollBar still needs it's invaliate logic
6346           updated to not always invalidate the whole bar on certain changes.
6347
6348 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6349
6350         * Control.cs:
6351         (BackColor): if the control does not support a transparent background,
6352         return the default backcolor when the parent backcolor is transparent.
6353
6354 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
6355
6356         * Application.cs: Updated to new StartLoop/GetMessage API
6357         * RichTextBox.cs: Provide some output on RTF parsing errors
6358         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
6359           new queue_id argument to GetMessage and PeekMessage to allow faster
6360           handling of per-thread queues in drivers.
6361         * Hwnd.cs: Added Queue tracking and property
6362         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
6363         * XEventQueue.cs: Added thread trackingA
6364         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
6365         * XplatUIX11.cs:
6366           - Implemented new per-thread queue
6367           - GetMessage: Fixed return/break behaviour on several cases. We were
6368             returning stale messages in some cases, instead of just processing
6369             the next message
6370
6371 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6372
6373         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
6374
6375 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
6376
6377         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
6378           fixed off-by-one comparisons between Width/Height and Right/Bottom.
6379
6380 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6381
6382         * PropertyGridView.cs: Fix drop down width.
6383
6384 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6385
6386         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
6387           a mess in DrawToolBar, so I removed one of them.
6388
6389 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6390
6391         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
6392           needed (clip). Otherwise we get artifacts.
6393
6394 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6395
6396         * FixedSizeTextBox.cs: Added constructor to allow specifying which
6397           dimension is fixed
6398         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
6399           and switched FixedSizeTextBox to only be fixed vertical (#78116)
6400         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
6401           if it matches the scale base font (avoids unneeded scaling)
6402
6403 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6404
6405         * X11DesktopColors.cs: One gtk_init_check should be enough
6406
6407 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
6408
6409         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
6410           match MS behaviour
6411
6412 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6413
6414         * TextBoxBase.cs: 
6415           - Generate OnTextChanged for Backspace even if we're only deleting
6416             the current selection
6417           - When setting the Text property, only select all text if the
6418             control does not have focus when it is being set. Otherwise
6419             just place the cursor at the beginning of the control
6420
6421 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6422
6423         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
6424           Added a little helper to draw PropertyGrid ToolBar with a different
6425           border and a different BackColor.
6426         * PropertyGrid.cs: Some background parts didn't get painted with the
6427           correct background color. Added a class that helps us to draw the
6428           correct border for PropertyGridView and a class that helps us to
6429           draw ToolBars with a different backcolor
6430         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
6431
6432 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
6433
6434         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
6435         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
6436
6437 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6438
6439         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
6440           into the palette entries. Also, since we're working on a copy
6441           we needed to copy the palette back onto the bitmap.
6442         * Cursor.cs: Same fix as XplatUIWin32.cs.
6443
6444 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
6445
6446         * ImageListStreamer.cs: Need to read the var (or we're off)
6447
6448 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6449
6450         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
6451           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
6452           TextBoxBase.cs: Unused var fixes
6453         * AxHost.cs: Small 2.0 fix
6454         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
6455           as it seems that is what at least Metacity expects. This will make
6456           icons show up on 64bit platforms. We still have some 64bit size
6457           issues, though, since the startup app window size still won't match.
6458
6459 2006-04-25  Mike Kestner  <mkestner@novell.com>
6460
6461         * *.cs: cleanup newly reported exception var unused warnings.
6462
6463 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6464
6465         * ThemeWin32Classic.cs: Button image alignment now matches exactly
6466           ms
6467
6468 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6469
6470         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
6471           image. The image position is always the same, no matter if the
6472           button is pressed or not.
6473
6474 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6475
6476         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
6477           selection and set the correct filename for SaveFileDialog.
6478           Patch by Emery Conrad.
6479
6480 2006-04-24  Mike Kestner  <mkestner@novell.com>
6481
6482         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
6483         check for item.X outside the ClientRect instead of item.Y. Fixes
6484         #78151.
6485
6486 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6487
6488         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
6489         trust that value blindly and do some sanity check. Fixes bug #77814.
6490
6491 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6492
6493         * ImageListStreamer.cs: save the mask as a 1bpp image.
6494
6495 2006-04-21  Mike Kestner  <mkestner@novell.com>
6496
6497         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
6498         pass Checked and Indeterminate to the Theme Engine. Improve
6499         encapsulation with ListBox.
6500         * ListBox.cs: Keep a StringFormat instead of calculating it every item
6501         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
6502         nested types.  Move all CheckState functionality to CheckedListBox.
6503         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
6504         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
6505         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
6506         single base list. Fix scrollbar sizing and placement to mirror MS.
6507         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
6508         used.
6509         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
6510         for CheckedListBox by using new DrawItemState info.  Center the
6511         checkboxes on the items. Use new StringFormat property.
6512
6513 2006-04-18  Jackson Harper  <jackson@ximian.com>
6514
6515         * Form.cs: MdiChildren don't do default locations the same way as
6516         regular forms.  This prevents a crash when trying to position the
6517         mdi windows.
6518
6519 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
6520
6521         * PropertyGridTextBox.cs: Formatting, copyright
6522         * PropertiesTab.cs: Formatting
6523         * PropertyGrid.cs: Formatting
6524         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
6525           click toggling of values
6526           
6527 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
6528
6529         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
6530         * Control.cs (.ctor): verify_thread_handle is static, don't reset
6531           every time a control is created
6532         * Application.cs: Removed obsolete EnableRTLMirroring method
6533
6534 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
6535
6536         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
6537         SelectedIndex to -1. Fixes bug #78121.
6538
6539 2006-04-17  Jackson Harper  <jackson@ximian.com>
6540
6541         * Binding.cs: Handle null values for Current and BindingContext.
6542         This occurs when binding is a little delayed.
6543         * CurrencyManager.cs: return null for Current when there are no
6544         items in the list.
6545         - Hookup to the listchanged event on the DataView and update
6546         bindings when the list is changed.  This fixes late binding of
6547         controls.
6548
6549 2006-04-17  Jackson Harper  <jackson@ximian.com>
6550
6551         * X11Dnd.cs:
6552         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
6553         Ringenbach.
6554
6555 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
6556
6557         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
6558           place
6559         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
6560           with the correct ButtonState
6561
6562 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
6563
6564         * XplatUIX11.cs: Improved distinguishing between window types to
6565           tell the WM a type closer to what the app wants (Fixes #78107)
6566
6567 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6568
6569         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
6570           GrabHandle
6571
6572 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6573
6574         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
6575           drawing code to reflect the size grip changes
6576
6577 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6578
6579         * ImageListStreamer.cs: fix handling of the mask that follows the main
6580         bitmap when deserializing and serialize it properly. The generated mask
6581         should better be a 1bpp image, but I'll do that later.
6582
6583 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6584
6585         * FileDialog.cs: Show something in the DirComboBox on *nix if the
6586           path doesn't fit into some of our Current.Places
6587
6588 2006-04-13  Jackson Harper  <jackson@ximian.com>
6589
6590         * ComboBox.cs: Use borders instead of drawing our own decorations,
6591         try to obey correct rules for heights.
6592         * Theme.cs:
6593         * ThemeNice.cs:
6594         * ThemeClearLooks.cs:
6595         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
6596         this is now handled by borders.
6597         - Remove unused DrawListBoxDecorationSize method.
6598         
6599 2006-04-13  Mike Kestner  <mkestner@novell.com>
6600
6601         * MenuAPI.cs: null guarding for the disbled click check fixes crash
6602         reported by Alex.
6603
6604 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6605
6606         * ThemeWin32Classic.cs: 
6607           - Fixed CPDrawStringDisabled
6608           - Corrected drawing of disabled menu items
6609           - Fixed drawing of disabled radio buttons (bug #78095)
6610           - Draw check in a disabled CheckBox with color ControlDark 
6611
6612 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6613
6614         * Form.cs: Use the provided width when calculating the menu size;
6615           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
6616           and ClientSize.Width won't be updated yet
6617         * Application.cs: Use Visible instead of Show() to make form visible,
6618           this way we create the handle later and menusize is considered
6619
6620 2006-04-12  Mike Kestner  <mkestner@novell.com>
6621
6622         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
6623         reporting.
6624
6625 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6626
6627         * TextBox.cs: Implemented context menu
6628
6629 2006-04-12  Mike Kestner  <mkestner@novell.com>
6630
6631         * ListView.cs: implement box selection. fixes #77838.
6632         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
6633
6634 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6635
6636         * XplatUIX11.cs: Added setting of window type when transient window
6637           is created (metacity would move it otherwise)
6638         * X11Structs.cs: Added WINDOW_TYPE atoms
6639         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
6640           background (the control is Opaque but still wants transparent
6641           backgrounds)
6642
6643 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6644
6645         * Control.cs: Added OnPaintBackgroundInternal to allow controls
6646           that set Opaque but don't mean it (like all ButtonBase-derived
6647           controls) to still draw their background
6648         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
6649           the background
6650
6651 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6652
6653         * Control.cs (PaintControlBackground): Set the graphics object
6654           on our PaintEvent to null to prevent it from being disposed
6655           when the PaintEvent gets disposed
6656
6657 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
6658
6659         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
6660         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
6661
6662 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6663
6664         * Control.cs: 
6665           - Added transparency check to BackColor property. Transparent
6666             backgrounds are only allowed if the control styles permit it
6667           - Added recursive painting of parent control background and
6668             foreground if a control with a transparent backcolor is drawn
6669             (Thanks to Tim Ringenback for providing his 'hack' as a base
6670              for this patch) Fixes #77985 and #78026.
6671           - Added Opaque style check before calling OnPaintBackground, no
6672             need to draw the background if the control is opaque
6673           - Removed ControlAccessibleObject owner variable (inherited from
6674             base, no need to define again)
6675           - Added some documentation links explaining the drawing events
6676             and styles
6677
6678 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6679
6680         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
6681           that the affected control is the located at the left border of our
6682           parent (Fixes #77936)
6683
6684 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6685
6686         * TextBoxBase.cs: When rendering disabled or readonly controls,
6687           draw the background with 'Control' instead of 'Window' color as
6688           long as the user hasn't specifically set a color
6689
6690 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6691
6692         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
6693           since that won't be updated if the user types text (only if it's
6694           programatically set)
6695
6696 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6697
6698         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
6699           layout changes do to app-triggered resizes will have the proper
6700           display rectangle for layout
6701
6702 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
6703
6704         * ThemeWin32Classic.cs:
6705           - Make use of the SystemBrushes and SystemPens wherever possible
6706           - Corrected some highlight colors
6707           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
6708             drawing
6709         * Theme.cs: Added Empty field to CPColor struct
6710
6711 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6712
6713         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
6714           is displayed when calculating the display rectangle. Thanks to Mike
6715           for teaching me the err of my ways.
6716
6717 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
6718
6719         * ScrollableControl.cs:
6720           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
6721             (instead of 0,0) and we now return the real width/height instead of
6722             just the clientrectangle, adjusted for padding. The rectangle is
6723             now cached and created by the new CalculateDisplayRectangle method.
6724           - Created new CalculateDisplayRectange method, which basically does
6725             what get_DisplayRectangle() did originally, but now using the 
6726             right edge instead of DisplayRectangle to determine the size of
6727             our scrollbars
6728           - get_Canvas(): Fixed it to properly calculate canvas for 
6729             right/bottom controls which seem to be placed to the right/bottom
6730             of any controls that have a fixed location
6731           - Removed TODO that's taken care of
6732           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
6733             and SetDisplayRectLocation according to new MSDN2 docs
6734           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
6735             event when that is called, this is added for compatibility
6736           - ScrollControlIntoView(): Implemented.
6737           - Switched scrollbars to be implicit, they shouldn't be selectable
6738         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
6739           call it when the active control is set/changed
6740         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
6741         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
6742           implicit_control variable (used for native Win32 message generation)
6743         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
6744           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
6745         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
6746         * XplatUIStructs.cs: Added ScrollBarCommands enum
6747
6748 2006-04-10  Jackson Harper  <jackson@ximian.com>
6749
6750         * ButtonBase.cs:
6751         * CheckedListBox.cs:
6752         * ComboBox.cs:
6753         * DataGrid.cs:
6754         * DataGridView.cs:
6755         * Form.cs:
6756         * GroupBox.cs:
6757         * ListBox.cs:
6758         * PrintPreviewControl.cs:
6759         * ProgressBar.cs:
6760         * PropertyGrid.cs:
6761         * Splitter.cs:
6762         * StatusBar.cs:
6763         * TrackBar.cs:
6764         * UpDownBase.cs: Fixup base event overrides.
6765         
6766 2006-04-06  Mike Kestner  <mkestner@novell.com>
6767
6768         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
6769         all user-initiated value changes to min <= value <= max-thumbsz+1.
6770         (set_Value): check for vert/horiz when calculating new thumb position.
6771         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
6772         like MS does.
6773         (OnMouseMoveSB): refactor the thumb dragging code and refine
6774         invalidation logic to reduce flicker.
6775         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
6776         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
6777         (UpdateThumbPosition): small code readability cleanup
6778
6779 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
6780
6781         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
6782           different
6783
6784 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6785
6786         * ThemeNice.cs: Use a better graphics effect when a button is pressed
6787
6788 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6789
6790         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
6791         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
6792           This dramatically reduces the number of Pen.Dispose calls. 
6793           Where possible call ResPool methods only once instead of calling it
6794           over and over again (for example for the same color).
6795
6796 2006-04-06  Mike Kestner  <mkestner@novell.com>
6797
6798         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
6799         Also remove an unused private field on the collection. Fixes #77972.
6800
6801 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6802
6803         * ThemeNice.cs: Added ToolBar drawing code
6804
6805 2006-04-06  Mike Kestner  <mkestner@novell.com>
6806
6807         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
6808         I'm assuming that means we need to look up the toplevel for the
6809         provided control. Fixes the crash trace in #77911 but exposes another
6810         crash in some strange reflection usage in NDocGui.
6811
6812 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6813
6814         * ThemeNice.cs: Gave it a little silver touch and added Images
6815           method
6816         * FontDialog.cs: FontDialog is not resizable
6817         * FileDialg.cs: Added SizeGripStyle.Show
6818
6819 2006-04-05  Jackson Harper  <jackson@ximian.com>
6820
6821         * KeyboardLayouts.cs: Remove warning.
6822
6823 2006-04-05  Jackson Harper  <jackson@ximian.com>
6824
6825         * Control.cs: Enable OnPaintInternal so we can use it for drawing
6826         all of our controls instead of Paint +=.
6827         * ListBox.cs:
6828         * ListView.cs:
6829         * MenuAPI.cs:
6830         * MessageBox.cs:
6831         * NotifyIcon.cs:
6832         * ProgressBar.cs:
6833         * ScrollBar.cs:
6834         * Splitter.cs:
6835         * StatusBar.cs:
6836         * TabControl.cs:
6837         * TextBoxBase.cs:
6838         * ToolBar.cs:
6839         * TrackBar.cs:
6840         * UpDownBase.cs:
6841         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
6842         use OnPaintInternal. Remove Width/Height and Visible checks in
6843         paint handler, this is done at a higher level now.
6844         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
6845         * PaintEventArgs.cs: Add a handled flag so controls that don't
6846         want anymore painting after OnPaintInternal can make sure OnPaint
6847         isn't called.
6848
6849 2006-04-05  Mike Kestner  <mkestner@novell.com>
6850
6851         * Form.cs: fix the menu WndProc hacks to respect the native enabled
6852         state of the form, so that we don't process events when Modal dialogs
6853         are up. Fixes #77922.
6854
6855 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
6856
6857         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
6858           checking is done.
6859
6860 2006-04-05  Mike Kestner  <mkestner@novell.com>
6861
6862         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
6863
6864 2006-04-05  Mike Kestner  <mkestner@novell.com>
6865
6866         * ListView.cs (HeaderMouseMove): null guarding for the over column
6867         when setting up the drag_to_index.  Fixes #78015.
6868
6869 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
6870
6871         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
6872           in the taskbar. Transient windows seem to accomplish that.
6873
6874 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
6875
6876         * Form.cs:
6877           - Re-enabled CreateParams.X/Y code for FormStartPosition
6878           - Added code for manual placement when creating the Control
6879           - Incomplete patch to treat MDI forms differently when
6880             setting the ClientSizeCore. (Still need to figure out handling
6881             x/y coords there)
6882         * XplatUIX11.cs:
6883           - When we're explicitly setting the X/Y position of a non-Child
6884             window, let the WM know. Metacity really wants this.
6885
6886 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6887
6888         * ThemeNice.cs: Added CPDrawButton
6889
6890 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6891
6892         * ThemeNice.cs: Changed the color for focused buttons and activated
6893           the arrows for small scroll buttons.
6894
6895 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6896
6897         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
6898           anymore. Changed some method modifiers to protected (virtual)
6899         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
6900           changes
6901         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
6902           Updated drawing of menus, buttons and progressbars; added
6903           CPDrawBorder3D 
6904
6905 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6906
6907         * ImageListStreamer.cs: implemented serialization/deserialization
6908         of the images.
6909
6910 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
6911
6912         * ThemeWin32Classic.cs:
6913           - Removed all the DrawFrameControl stuff; CPDrawButton,
6914             CPDrawCheckBox and CPDrawRadioButton are now handled directly
6915             inside the methods
6916           - Updated and corrected the drawing code of CPDrawButton,
6917             CPDrawCheckBox and CPDrawRadioButton to better match ms
6918           - Updated theme checkbox and radiobutton code to use the CP*
6919             methods
6920
6921 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6922
6923         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
6924           bug is fixed
6925
6926 2006-03-31  Jackson Harper  <jackson@ximian.com>
6927
6928         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
6929         sometimes.
6930         * UpDownBase.cs: Don't CreateGraphics manually, use a
6931         Refresh. Ideally we would invalidate the correct areas here.
6932
6933 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6934
6935         * XplatUIX11.cs: 
6936           - We now track the mapping state of windows. If a window (or 
6937             one of it's parents) is not mapped we no longer permit
6938             WM_PAINT messages to be generated since we'd otherwise get 
6939             lots of BadMatch X errors. Jackson did all the work figuring
6940             out the problem.
6941           - Destroying the caret if the window it's contained in is 
6942             destroyed. Can't use regular DestroyCaret method since it
6943             might fall into a drawing function (trying to remove the
6944             caret) and with that generate new BadMatch errors. Again,
6945             Jackson tracked this down.
6946           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
6947             make sure we send the messages to all windows. (The old code
6948             would send the WM_DESTROY to the window, and then all child
6949             windows would be 'gone' because the WM_DESTROY handle lookup
6950             would no longer find the destroyed window)
6951         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
6952         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
6953
6954 2006-03-31  Jackson Harper  <jackson@ximian.com>
6955
6956         * ScrollableControl.cs: Dont recalc if we are not visible.
6957
6958 2006-03-31  Mike Kestner  <mkestner@novell.com>
6959
6960         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
6961         the visibility branch.
6962
6963 2006-03-31  Jackson Harper  <jackson@ximian.com>
6964
6965         * ScrollBar.cs: Cap values when incrementing/decrementing.
6966
6967 2006-03-31  Mike Kestner  <mkestner@novell.com>
6968
6969         * MenuAPI.cs: setup menu.tracker for popup/context menus.
6970         * ToolTip.cs: guard against timer expirations with no active control.
6971         Not sure why it happened.
6972
6973 2006-03-31  Mike Kestner  <mkestner@novell.com>
6974
6975         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
6976         text.
6977         * ToolTip.cs: Position the tooltip based on where the cursor is at
6978         popup time, not at MouseEnter time.  Add a Down state so that we don't
6979         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
6980         positioning offset. Lookup DisplaySize at positioning time, since it
6981         can theoretically change during invocation.
6982         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
6983         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
6984
6985 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6986
6987         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
6988           Fixes behaviour when the Text property of the box is String.Empty
6989
6990 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
6991
6992         * XplatUIX11.cs: Only send mouseleave for our client windows, not
6993           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
6994           a window)
6995
6996 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6997
6998         * FileDialog.cs: Visual enhancement for the popup buttons in 
6999           PopupButtonPanel
7000
7001 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
7002
7003         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
7004           code
7005
7006 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
7007
7008         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
7009           highlighted menu items to match ms
7010
7011 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
7012
7013         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
7014
7015 2006-03-30  Mike Kestner  <mkestner@novell.com>
7016
7017         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
7018         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
7019         go active to account for HotLight to Selected transition.
7020         * MenuItem.cs: add internal Selected prop. Fill out the Status
7021         property by calculating it from item info. Add HotLight,
7022         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
7023
7024 2006-03-30  Mike Kestner  <mkestner@novell.com>
7025
7026         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
7027
7028 2006-03-29  Jackson Harper  <jackson@ximian.com>
7029
7030         * Form.cs: Implement TODO.
7031
7032 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
7033
7034         * PrintPreviewDialog.cs: Implemented missing methods and events; still
7035           missing proper dialog setup in the constructor
7036
7037 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
7038
7039         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
7040         * Control.cs:
7041           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
7042           - Fixed ResetBindings and removed TODO
7043           - Added check for cross-thread calls to get_Handle()
7044           - Added Marshaller attribute for set_Font to satisfy class status
7045         * FontDialog.cs: Removed TODOs that seemed implemented
7046         * UpDownBase.cs: Removed unneeded TODO and Fixme
7047         * MessageBox.cs: Implemented support for Default button and removed TODO
7048         * FileDialog.cs: Removed obsolete TODO
7049         * DomainUpDown.cs: Removed obsolete TODO
7050         * ButtonBase.cs: Removed obsolete TODO
7051         * XplatUIWin32.cs: Removed obsolete TODO
7052         * Form.cs:
7053           - Removed obsolete TODO
7054           - Calling CheckAcceptButton when the acceptbutton is changed to allow
7055             internal status updates
7056           - Making sure the active control is selected when the control is created
7057         * CurrencyManager.cs: Removed obsolete TODO
7058
7059 2006-03-29  Mike Kestner  <mkestner@novell.com>
7060
7061         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
7062         of PrintPreviewDialog and RichTextBox.
7063
7064 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7065
7066         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
7067           DarkDark, Light and LightLight colors for a specific color
7068         * ThemeWin32Classic.cs:
7069           - Use Button drawing code to draw RadioButtons and CheckBoxes with
7070             Appearance = Button 
7071           - Make use of the new ResPool helper CPColor
7072           - Draw ProgressBar and StatusBar with correct 3D borders
7073
7074 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7075
7076         * ColorDialog.cs: Return selected color. Fixes bug #77940.
7077
7078 2006-03-28  Mike Kestner  <mkestner@novell.com>
7079
7080         * ListView.cs: fix Icon layout to plan for scrollbar widths when
7081         calculating col/row counts.
7082
7083 2006-03-28  Mike Kestner  <mkestner@novell.com>
7084
7085         * ColumnHeader.cs:
7086         * ListView.cs:
7087         * ListViewItem.cs:
7088         * Menu.cs: 
7089         switch to explicit interface method implementation for some methods
7090         corcompare identifies as inconsistent with MS.
7091
7092 2006-03-28  Mike Kestner  <mkestner@novell.com>
7093
7094         * MainMenu.cs: 
7095         * Menu.cs:
7096         add a few missing methods from the class status output.
7097
7098 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
7099
7100         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
7101           correct.
7102
7103 2006-03-28  Mike Kestner  <mkestner@novell.com>
7104
7105         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
7106
7107 2006-03-27  Mike Kestner  <mkestner@novell.com>
7108
7109         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
7110         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
7111
7112 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
7113
7114         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
7115
7116 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7117
7118         * ThemeWin32Classic.cs:
7119           - GroupBox: Inserted a little gap between the text and the lines
7120             on the right side
7121           - Made the code in CPDrawBorder3D more readable
7122           - Corrected the drawing location of the up and down arrows in 
7123             CPDrawScrollButton
7124
7125 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7126
7127         * ControlPaint.cs: Corrected line widths in DrawBorder for
7128           ButtonBorderStyle Inset and Outset
7129
7130 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7131
7132         * ThemeWin32Classic.cs:
7133           - Rewrote the totally broken CPDrawBorder3D method. That was
7134             one of the main problems for the terrific ThemeWin32Classic
7135             look
7136           - Updated and corrected Button drawing
7137           - Correct the dimensions of the SizeGrip to match ms ones
7138           - Removed a small drawing glitch in DrawComboBoxEditDecorations
7139         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
7140           Border3DStyle.Sunken to match ms.
7141
7142 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7143
7144         * ThemeWin32Classic.cs: First small part of the "de-uglify
7145           ThemeWin32Classic" effort, SizeGrip
7146
7147 2006-03-24  Jackson Harper  <jackson@ximian.com>
7148
7149         * XplatUIX11.cs: Give a max idle time of one second, this matches
7150         MS and forces an Idle event every second when there are no other
7151         events in the queue.
7152
7153 2006-03-24  Mike Kestner  <mkestner@novell.com>
7154
7155         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
7156         * ListView.Item.cs: fix layout issues with null image lists and images
7157         smaller than checkbox size.
7158         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
7159         mode like MS does.  It's weird, but consistent.  ;-)
7160         Fixes #77890.
7161
7162 2006-03-24  Mike Kestner  <mkestner@novell.com>
7163
7164         * ListView.cs: Scroll wheel support for the item control.  Fixes
7165         #77839.
7166
7167 2006-03-23  Jackson Harper  <jackson@ximian.com>
7168
7169         * ScrollableControl.cs: Special case negative sized areas, not
7170         zero.
7171         * MonthCalendar.cs: Save the rect of the clicked date so we can
7172         use it for invalidation.
7173         - Try to cut down on the number of invalidates
7174         - Invalidate the rect the mouse is over and was over when moving
7175         the mouse, so we get the focus box following the cursor.
7176
7177 2006-03-23  Mike Kestner  <mkestner@novell.com>
7178
7179         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
7180         focus rectangle drawing. Fixes #77835.
7181
7182 2006-03-23  Mike Kestner  <mkestner@novell.com>
7183
7184         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
7185         the if and else if and reverting back to the original == check on the
7186         None conditional.
7187
7188 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7189
7190         * FontDialog.cs: Update the example panel if the selected index of
7191           the fontListBox changes.
7192
7193 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7194
7195         * FileDialog.cs: Make FileDialog remember which directory it was in
7196           last in the same execution.
7197
7198 2006-03-22  Mike Kestner  <mkestner@novell.com>
7199
7200         * FileDialog.cs: make the DropDownMenu on the toolbar display
7201         RadioChecks since they are mutually exclusive and that's what MS does.
7202
7203 2006-03-22  Mike Kestner  <mkestner@novell.com>
7204
7205         * Theme.cs: add Color param to CPDrawMenuGlyph.
7206         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
7207         checks and radio marks and arrows are visible on highlighted items.
7208         * ControlPaint.cs: update to use new Theme signature.
7209
7210 2006-03-22  Mike Kestner  <mkestner@novell.com>
7211
7212         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
7213         is active. Fixes #77870.
7214
7215 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7216
7217         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
7218           to be focused/selected after startup
7219
7220 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7221
7222         * ColorDialog.cs: 
7223           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
7224             CustomColors and ShowHelp properties
7225           - Some internal rewrites to get better results when using the
7226             ColorMatrix
7227
7228 2006-03-22  Mike Kestner  <mkestner@novell.com>
7229
7230         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
7231         HoverSelection.  Fixes #77836.
7232
7233 2006-03-22  Mike Kestner  <mkestner@novell.com>
7234
7235         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
7236         ToggleButtons.  (De)Sensitize the Back button around a stack count of
7237         1, not 0.  Update ButtonSize based on a pixel count of the win32
7238         control.  Adjust the toolbar size/location for new button size.
7239
7240 2006-03-22  Jackson Harper  <jackson@ximian.com>
7241
7242         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
7243         true.
7244         * ScrollBar.cs: When doing increments and decrements we need to
7245         set the Value property so that ValueChanged gets raised. A
7246         possible optimization here would be to make an internal SetValue
7247         that doesn't invalidate immediately.
7248         * ToolTip.cs: Tooltips get added to their container (when
7249         supplied) so they get disposed when the container is disposed.
7250         - Don't create tooltips for String.Empty. This prevents all these
7251         little 2-3 pixel windows from showing up when running nunit-gui
7252         and driving me mad.
7253         * Form.cs: Don't set topmost when setting the owner if the handles
7254         haven't been created yet.  The topmost set will happen when the
7255         handles are created.
7256
7257 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
7258
7259         * XplatUIX11.cs:
7260           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
7261           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
7262             visible (to allow them to recalculate their sizes)
7263
7264 2006-03-21  Mike Kestner  <mkestner@novell.com>
7265
7266         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
7267         methods. Removed a ton of redundant code.  Still not really happy with
7268         the border rendering, but I think that's mainly because of the
7269         ControlDarkDark being black instead of a dark grey. Depending on how 
7270         close we want to be, we might want to revisit those color choices.
7271         Among the new features added during the refactor were DropDownArrow
7272         pressed rendering, Disabled image rendering.  Proper flat appearance
7273         boundary rendering.  Removed the Divider and Wrapping dividers since I
7274         can't figure out any combination of themes and conditions to make the
7275         MS control draw a horizontal line on a toolbar despite what the
7276         Divider property docs indicate.
7277         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
7278         conditions and incorrect layout.  Updated to coding standard.
7279         * ToolBarButton.cs: refactored layout and positioning code from
7280         ToolBar to here.  Invalidate wherever possible instead of forcing
7281         redraws of the whole toolbar. 
7282         (Known remaining issues: explicit ButtonSize smaller than provided
7283         images.)
7284
7285 2006-03-21  Mike Kestner  <mkestner@novell.com>
7286
7287         * ContextMenu.cs (Show): use the position parameter instead of just
7288         showing at the MousePosition.
7289
7290 2006-03-21  Jackson Harper  <jackson@ximian.com>
7291
7292         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
7293         control handle this.
7294         * TreeNodeCollection.cs: If we are clearing the root node we need
7295         to reset top_node so calcs can still happen.
7296         * ThemeWin32Classic.cs: This is a Flags so we need to check
7297         properly.
7298         
7299 2006-03-21  Jackson Harper  <jackson@ximian.com>
7300
7301         * DataGrid.cs: Create columns when the binding context has been
7302         changed.
7303         * X11Structs.cs: Keysyms are uints.
7304         - Add size to fix build.
7305
7306 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
7307
7308         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7309           XplatUIOSX.cs: 
7310           - Added ResetMouseHover method to allow controls to retrigger
7311             hovering if they need it more than once
7312           - Implemented MouseHoverTime and MouseHoverSize properties
7313         * Timer.cs: Start() must reset the interval
7314         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
7315           properties
7316
7317 2006-03-21  Jackson Harper  <jackson@ximian.com>
7318
7319         * X11Keyboard.cs: improved layout detection. Move the nonchar
7320         tables into this file.
7321         * KeyboardLayouts.cs: Move the tables into resource files.
7322
7323 2006-03-21  Mike Kestner  <mkestner@novell.com>
7324
7325         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
7326
7327 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
7328
7329         * Mime.cs: Various speed optimizations. Looking up mime types
7330           is now 2 times faster than before
7331
7332 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
7333
7334         * CreateParams.cs: Added internal menu field
7335         * Control.cs: 
7336           - Switched call order for UpdateBounds; now we always call
7337             the one that also takes ClientSize, and we're calculating the 
7338             client size via driver method in the others. The previous
7339             method of tracking client size by difference wasn't working
7340             for forms where even the starting client size wouldn't match
7341             the overall form size (due to borders) (Part of fix for #77729)
7342           - CreateParams(): Do not use parent.Handle unless the handle is
7343             already created. Causes havoc with Nexxia and throws off our
7344             creation of controls
7345         * XplatUIX11.cs:
7346           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
7347           - Switched handling of ConfigureNotify over to new PerformNCCalc 
7348             method (consolidates code)
7349           - Changed RequestNCRecalc to use new PerformNCCalc method
7350           - Added calls to RequestNCRecalc when menus and borders are changed
7351             to allow app to set NC size. (Part of fix for #77729) This matches
7352             when MS send a WM_NCRECALC on Win32 windows.
7353           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
7354             (Part of fix for #77729). This matches what MS does, they also
7355             send that message when the form is made visible.
7356           - XException.GetMessage: Improved usability of X errors by including
7357             a translation of the window into Hwnd and Control class
7358           - Improved debug info for window creation, reparenting and destruction
7359           - Created helper method WindowIsMapped() [Currently not used]
7360         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
7361         * Form.cs:
7362           - CreateParams: Now setting our menu on the new internal menu field
7363           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
7364             avoid calculating the same property twice
7365         * Hwnd.cs:
7366           - Improved usability of ToString() for debugging purposes
7367           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
7368             determine the height of the menu, instead of just the font. This
7369             required to also create a graphics context and to keep a bmp 
7370             around (for performance reasons)
7371
7372 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
7373
7374         * MenuAPI.cs: Added OnMouseUp method
7375         * Form.cs:
7376           - Now remembering the requested client size, avoids size errors
7377           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
7378             instead of base if the menu is active. This is required due to
7379             control now capturing and releasing on down/up and it would
7380             prematurely release our menu capture
7381
7382 2006-03-17  Jackson Harper  <jackson@ximian.com>
7383
7384         * KeyboardLayouts.cs: Add the czech layouts.
7385
7386 2006-03-16  Jackson Harper  <jackson@ximian.com>
7387
7388         * Control.cs: Use the viewport space when sizing not the controls
7389         client size, so things like ScrollableControl that effect the
7390         viewport size (when scrollbars are added) are computed correctly.
7391         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
7392         of ManagerEntrys.
7393         - Handle creating BindingManagers for null data sources.
7394         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
7395         source, otherwise when rows are added they are added to the 'fake'
7396         datasource and we will crash when trying to set the position in
7397         those rows.
7398         - Use Implicit scrollbars on the datagrid so they arent
7399         selectable.
7400         
7401 2006-03-16  Jackson Harper  <jackson@ximian.com>
7402
7403         * Binding.cs:
7404         * InternalWindowManager.cs:
7405         * MdiWindowManager.cs:
7406         * X11Keyboard.cs: I really want Mike to love me again (fix
7407         compiler warnings).
7408
7409 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
7410
7411         * DataGrid.cs:
7412           - OnMouseDown: Switch to editing mode when clicking on the cell
7413                          even if we're clicking on the cell that's currently 
7414                          selected
7415           - ProcessGridKey: Left/Right now wrap like MS.Net does
7416           - ProcessGridKey: Tab now knows to add a new row when tab is
7417                             pressed in the cell of the last column of the 
7418                             last row
7419           - ProcessGridKey: Enter now adds another row  if pressed in the last
7420                             row and selectes the new row, same column cell
7421           - ProcessGridKey: Home/End navigate columns, not rows, like 
7422                             originally implemented
7423           - Broke ProcessKeyPreview code out into an extra Internal method
7424             so it can be called from the edit code
7425         * DataGridTextBox.cs (ProcessKeyMessage):
7426           - Switched to accept Tab keypresses
7427           - Added F2 handling to allow jumping to the end of the edited cell
7428           - Added logic to allow moving caret left/right inside edited cell
7429             and making the edited cell jump when the caret hits cell borders
7430           - Tab and Enter are now passed to the datagrid after being handled
7431         * TextBoxBase.cs:
7432           - Removed capture code now that Control handles it
7433           - set_SelectionStart now ensures caret is visible
7434
7435 2006-03-16  Jackson Harper  <jackson@ximian.com>
7436
7437         * TrackBar.cs: Debackwards the increment/decrement for handling
7438         mouse clicks on the bar with vertical trackbars.
7439         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
7440         bottom to match MS.
7441
7442 2006-03-16  Mike Kestner  <mkestner@novell.com>
7443
7444         * ListView.cs: make shift/ctrl keyboard and mouse selection 
7445         consistent with the MS control. Fix a bug in
7446         SelectedListViewItemCollection.Clear that was pissing me off for the
7447         better part of a day because the collection was being altered
7448         underneath us as we walked the list.
7449
7450 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
7451
7452         * Control.cs: Not sure how we could miss this so long, but it seems
7453           that MS.Net has Capture set all the way from before calling 
7454           OnMouseDown through sending the mouse events until after
7455           OnMouseUp. This will fix DataGrid's selection being set to end
7456           at the location of the MouseUp.
7457
7458 2006-03-15  Jackson Harper  <jackson@ximian.com>
7459
7460         * BindingContext.cs: Check the binding after its added so that it
7461           can initialize the binding managers and hookup to events.
7462         * Binding.cs: Data members seem to sometimes include rows/cols in
7463           the format Row.Column we now take this into account.
7464           - Hookup to the position changed event so we can update the
7465           control when the position has changed in the data set.
7466         * CurrencyManager.cs: Take into account the row/col naming
7467           convention when creating dataset tables.
7468         * BindingContext.cs: Using a newer better way of storing
7469           datasource/datamember pairs.  Hopefully this better matches MS for
7470           looking up binding managers.
7471
7472
7473 2006-03-15  Jackson Harper  <jackson@ximian.com>
7474
7475         * BindingContext.cs: The currency manager needs the data member
7476         name, if the member is a data set we use the name to find the
7477         correct table.
7478         * CurrencyManager.cs: When creating the list prefer an IList over
7479         an IListSource.
7480         - Attempt to create a DataTable from a DataSet (TODO: might need
7481         some better error checking here, although MS doesn't seem to have much)
7482         - If we have a DataTable create a view and use it as our list.
7483
7484 2006-03-15  Mike Kestner  <mkestner@novell.com>
7485
7486         * ListView.cs: keep a matrix of the icon mode layout to facilitate
7487         keyboard navigation. Support Up/Down/Left/Right selection correctly
7488         for all 4 View modes.
7489         * ListViewItem.cs: add internal row/col fields for icon layouts.
7490
7491 2006-03-15  Jackson Harper  <jackson@ximian.com>
7492
7493         * TabControl.cs: Redraw the tabs when we resize so their newly
7494         calculated sizes are drawn on screen.
7495         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
7496         composite characters.
7497         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
7498         - filter events so that composite characters can be created
7499         patches by peter
7500         * X11Structs.cs: Add XIMProperties enum.
7501
7502 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7503
7504         * Control.cs (BringToFront, SendToBack): Don't use window or handle
7505           unless it's created
7506
7507 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7508
7509         * Control.cs (PerformLayout): We don't need to consider visiblity
7510           for anchoring, only for docking. This fixes 'whacky' alignment
7511           in listbox and other controls that use implicit scrollbars after
7512           the previous PerformLayout patch
7513         * ListBox.cs: Switched to use implicit scrollbars
7514           
7515 2006-03-14  Mike Kestner  <mkestner@novell.com>
7516
7517         * ToolBar.cs: 
7518         * VScrollBar.cs:
7519         - chain up the "new event" overrides to base and use
7520         OnEvent to raise them.  Part of fix for bug #76509.
7521
7522 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
7523
7524         * FileDialog.cs: Do not select an item in the parent directory
7525           on backspace
7526
7527 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7528
7529         * Control.cs (PerformLayout): It would seem that we considered
7530           invisible windows for our layout. Not quite the right thing
7531           to do. Now we don't any longer, thereby fixing bug #76889.
7532
7533 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7534
7535         * Control.cs (CanFocus): I goofed. A control can have focus 
7536           even though it's not selectable. Made it match MS docs.
7537
7538 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7539
7540         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
7541           center by default (fixes #76895)
7542         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
7543           all uses of Border3DSides.All with the explicit ORd together
7544           Left|Right|Top|Bottom because I assume that nobody was aware 
7545           that All also implies a center fill. Most places I checked had
7546           a fill right above.
7547         * ProgressBarStyle.cs: Added
7548
7549 2006-03-13  Mike Kestner  <mkestner@novell.com>
7550
7551         * ListView.cs: fix breakage in drag shadow header positioning 
7552         from Peter's csc compilation fix.
7553
7554 2006-03-13  Mike Kestner  <mkestner@novell.com>
7555
7556         * ListView.cs: fix NRE produced by backspacing twice in a focused
7557         FileDialog.
7558
7559 2006-03-13  Mike Kestner  <mkestner@novell.com>
7560
7561         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
7562
7563 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7564
7565         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
7566           be changed
7567         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
7568           the allowed size before making programmatic size changes
7569
7570 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
7571
7572         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
7573           set, metacity is broken and will still use the emty sizes in 
7574           the struct. (Fix for #77089)
7575
7576 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7577
7578         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
7579           WindowExStyles and marked both enums as Flags
7580         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
7581           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
7582           to match WindowStyles split
7583         * XplatUIX11.cs:
7584           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
7585           - Updated to match WindowStyles split
7586         * XplatUIWin32.cs:
7587           - Fixed FosterParent creation, was using ExStyle on the Style field
7588             (This should help with Popup focus issues)
7589           - Updated to match WindowStyles split
7590
7591 2006-03-13  Jackson Harper  <jackson@ximian.com>
7592
7593         * MdiWindowManager.cs: Use the system menu height. Fixes some
7594         strange sizing issues.
7595
7596 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7597
7598         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
7599         * TextBoxBase.cs:
7600           - Scroll to caret after inserting text (#77672)
7601           - Make scroll range one pixel higher, fixes off-by-one error (and
7602             makes underlines visible on the last line)
7603
7604 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
7605
7606         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
7607           the keyboard state from being stuck with keys in 'pressed' state when
7608           focus is switched away via keyboard
7609         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
7610           reset the keyboard if no X11 KeyUp events are expected to come
7611         * X11Structs.cs: Switched type of Visible to bool to match driver
7612
7613 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7614
7615         * TextControl.cs:
7616           - Switched caret to be just 1 pixel wide, matches MS and looks less
7617             clunky
7618           - Moved caret display 1 pixel down from the top of the control
7619             to improve view
7620           - InsertCharAtCharet: Update the selection start if moving the caret
7621             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
7622           - No longer always creating the caret when the caret methods are
7623             called. Only the actual ShowCaret/HideCaret will do that now
7624           - Only setting caret visible if the owner control has focus
7625           - UpdateView: Added invalidation-shortcut logic for center and right 
7626             aligned text. Previously we'd update all according to the left
7627             logic which caused drawing errors. Also fixed height of invalidated
7628             areas, now properly invalidating the whole area (was off-by-one)
7629           - owner_HandleCreated: Always generate the document when the
7630             handle is created; this ensures that 
7631         * TextBoxBase.cs:
7632           - Fixed situation where caret would disappear under the right
7633             window border, also improved scrolling behaviour on left-
7634             aligned textboxes
7635           - Fixed right-aligned textboxes to have a border to the
7636             right instead of the caret being under the right border
7637         * XplatUIX11.cs:
7638           - Switched from 'nested' to simple visible/not visible tracking 
7639             for caret (part of fix for #77671)
7640           - No longer passing through translated FocusIn/FocusOut messages
7641             since we were notifying too often and the wrong windows. Instead
7642             we just notify our focussed window of receiving or loosing focus
7643         * XplatUIWin32.cs: Switched from 'nested' show/hide 
7644           counting for caret to simple visible yes/no behaviour (part of 
7645           fix for #77671)
7646
7647 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7648
7649         * Mime.cs: Remove debug code...
7650
7651 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7652
7653         * MimeGenerated.cs: Removed
7654         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
7655           and subclasses) from /usr/(local/)share/mime and
7656           $HOME/.local/share/mime.
7657
7658 2006-03-10  Jackson Harper  <jackson@ximian.com>
7659
7660         * MdiWindowManager.cs: Recalc the NC area when a window is
7661         maximized/restored so that the menu area is drawn on forms that
7662         don't have a menu.
7663
7664 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7665
7666         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7667           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
7668           us to force a WM_NCCALCRESIZE message being sent. This is needed
7669           for MDI maximizing.
7670
7671 2006-03-10  Jackson Harper  <jackson@ximian.com>
7672
7673         * Form.cs: We need to use the ActiveMenu when calculating menu
7674         height.
7675         - Fix nullref when the window manager hasn't been created yet.
7676         * Control.cs: Fix nullref when we try to bring a control to the
7677         front that has no parent.
7678         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
7679         height.
7680         - Add a dummy item to the maximized menu so it always has the
7681         correct height. Otherwise when there are no menus we don't get our
7682         icon and buttons.
7683         
7684
7685 2006-03-10  Jackson Harper  <jackson@ximian.com>
7686
7687         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
7688         stuff.
7689         * Form.cs: Make the window_state internal so the window managers
7690         can track it.
7691         - When an MDI child is maximized let its window manager create the
7692         main menu (so it can add its icon).
7693         - Notify the window managers of state changes
7694         - Let the window manager paint its buttons and handle button
7695         clicks on the menu when it is maximized.
7696         * InternalWindowManager.cs: Move the prev_bounds into the mdi
7697         window manager, since tool windows don't use it, only mdi windows.
7698         - Tell the main form that we don't want it to handle NCPAINT
7699         itself to avoid extra painting.
7700         - Handle clicks on a maximized windows menu.
7701         - Handle window state changes
7702         - Handle minimize/maximize clicks correctly by setting the window state.
7703         * MdiWindowManager.cs: Add an icon menu that (the menu you get
7704         when clicking on the forms icon).
7705         - New method to create a forms maximized menu. This is its normal
7706         menu + an icon.
7707         - Handle window state changes.
7708         - Handle sizing of maximized windows.  Maximized windows are just
7709         drawn bigger then the parent visible area. All controls are still
7710         there, they are just outside the visible area (this matches windows).
7711         * MdiClient.cs: No scrollbars when a child window is maximized.
7712         - Let the children windows figure out how big they should be when
7713         sizing maximized windows.
7714         - Implement a version of ArrangeIconicWindows somewhat similar to
7715         Windows version.  There are some little differences, but I don't
7716         think any app will rely on the layout of minimized mdi windows.
7717
7718 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7719
7720         * Padding.cs: Several fixes to allow compiling with csc 2.0
7721
7722 2006-03-09  Jackson Harper  <jackson@ximian.com>
7723
7724         * Menu.cs:
7725         * MenuItem.cs: Cheap hack so we can add items to the list without
7726         the events being raised.  This allows adding mdi items during
7727         drawing. TODO: Should probably find a better time to add the items.
7728
7729 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7730
7731         * ThemeWin32Classic.cs:
7732           - CheckBox_DrawText: Added logic to not wrap if not enough space
7733             is available (Fix for bug #77727)
7734           - RadioButton_DrawText: Added logic not to wrap if not enough
7735             space is available (Fix for bug #77727). Also removed some
7736             duplicate code, DrawString always drawing the regular text
7737             before hitting the if statement.
7738
7739 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
7740
7741         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
7742
7743 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7744
7745         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
7746         * ContainerControl.cs: Partial implementation of some 2.0 scaling
7747           methods. Moved the new 2.0 properties into alphabetical order with
7748           other properties and added MonoTODO tags
7749
7750 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7751
7752         * AutoScaleMode.cs: Added. Fix build.
7753
7754 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7755
7756         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7757           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
7758           and was requiring premature handle creation for calls from above
7759         * Form.cs, Control.cs: Removed handle arguments from calls to
7760           CalculateClientRect()
7761
7762 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7763
7764         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
7765           drag_column.column_rect is MarshalByRef and can't be used that way
7766
7767 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7768
7769         * AxHost.cs: Added deserialization constructor for 
7770           AxHost+State (fixes 77743)
7771
7772 2006-03-09  Mike Kestner  <mkestner@novell.com>
7773
7774         * ListView.cs: 
7775         - Added column drag reordering for details view.
7776         - fixed behavior when mouse is dragged off column and
7777         AllowColumnReorder is false.
7778         * ColumnHeader.cs: clone the format too in Clone.
7779         * Theme.cs: add DrawListViewHeaderDragDetails method.
7780         * ThemeWin32Classic.cs:
7781         - impl new method for drawing drag column shadows and targets.
7782         - support column offset for details mode in DrawListViewItem.
7783
7784 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7785
7786         * TextControl.cs: Reset the char_count when the document is cleared
7787           (Fixes bug reported on mono-winforms mailing list)
7788
7789 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7790
7791         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
7792           of calling base we simply process the key ourselves, since both
7793           DefWindowProc and the handled method would set m.Result. 
7794           (Fixes #77732)
7795
7796 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7797
7798         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
7799           method also moves the window; instead implemented a copy of
7800           Control.ScaleCore (Part of fix for #77456)
7801         * TextBoxBase.cs: 
7802           - Created new CreateGraphicsInternal method to allow providing
7803             a graphics context when no handle is created without triggering
7804             handle creation. (Part of fix for #77456)
7805           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7806         * TextControl.cs: 
7807           - Switched Constructor to require TextBoxBase instead of Control (to
7808             allow uncast access to CreateGraphicsInternal)
7809           - Safeguarded use of owner.Handle property. No longer accessing it
7810             unless the handle is already created.
7811           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7812           - Now triggering a recalc when owning control becomes visible
7813         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
7814           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
7815           premature handle creation (Part of fix for #77456)
7816         * Control.cs:
7817           - We now only destroy our double-buffering buffers when the
7818             control is resized or disposed, but not when visibility
7819             changes. (The code even re-created them twice every time)
7820           - Now requiring a redraw of the buffer on visibility changes
7821             (fixes bug 77654 part 2)
7822           - Not passing OnParentVisibleChanged up unless the control
7823             is visible
7824           - CanFocus: Fixed to match MS documentation
7825           - Focus: Fixed to return actual focus state and to check if
7826             setting focus is legal before setting it
7827
7828 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
7829
7830         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
7831           when to draw focus rectangle by looking at parent focus and
7832           selected state instead. This fixes TabPages on Linux sometimes
7833           having none or multiple focus rectangles.
7834         * XplatUIX11.cs (SetFocus): 
7835           - Don't set the focus if the same window already has focus
7836           - Use SendMessage instead of PostMessage (like it's Win32
7837             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
7838             to match MS behaviour
7839         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
7840           are not selectable.
7841
7842 2006-03-07  Jackson Harper  <jackson@ximian.com>
7843
7844         * PictureBox.cs: Revert line I accidently committed last week.
7845
7846 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7847
7848         * Control.cs: 
7849           - Added new IsRecreating and ParentIsRecreating properties to
7850             allow testing if RecreateHandle has been called on ourselves
7851             or one of our parents
7852           - WndProc(WM_DESTROY): If our control handle is being recreated
7853             we immediately need to create the handle when receiving the
7854             destroy, that way our child windows find a valid parent handle
7855             when they themselves are being recreated upon WM_DESTROY receipt
7856             (fix for bug #77654 part 1)
7857         * XplatUIX11.cs:
7858           - DestroyWindow: WM_DESTROY must be sent to our own window before
7859             notifying any child windows. MS documents that child windows
7860             are still valid when WM_DESTROY is received. (Control now relies on
7861             this behaviour)
7862           - Added some fine-grain debug options
7863
7864 2006-03-06  Jackson Harper  <jackson@ximian.com>
7865
7866         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
7867         box and base calculations off this.
7868         * MdiChildContext.cs:
7869         * MdiWindowManager.cs: Don't need to ensure scrollbars here
7870         anymore.
7871         
7872 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
7873
7874         * Splitter.cs: In situations where the affected control is added
7875           to the parent's control list after the splitter, we would not
7876           populate affected. Now we try populating it on mousedown, if
7877           it's not already set, and force it to be re-set whenever our
7878           parent changes.
7879
7880 2006-03-03  Matt Hargett  <matt@use.net>
7881
7882         * Control.cs: implement Control.Padding
7883         * Padding.cs: -Padding.All returns -1 when constructing with the
7884         implicit default ctor
7885         -Padding.ToString() matches MS.NET
7886         * ContainerControl.cs: implement
7887         ContainerControl.AutoScaleDimensions
7888         * ListControl.cs: implement ListControl.FormattingEnabled
7889         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
7890         * ButtonBase.cs:
7891         * TabPage.cs: Implement UseVisualStyleBackColor.
7892         * PictureBox.cs: Implement PictureBox.InitialImage.
7893
7894 2006-03-03  Mike Kestner  <mkestner@novell.com>
7895
7896         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
7897         event declarations to proxy to base event.
7898         * ListViewItem.cs: update to use ItemControl.
7899         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
7900         * ThemeWin32Classic.cs: update to new ListView theme API and fix
7901         column header label rendering for 0 width columns.
7902
7903 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
7904
7905         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
7906           that causes the control to be created. Fixes #77476.
7907
7908 2006-03-02  Jackson Harper  <jackson@ximian.com>
7909
7910         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
7911         expose_pending.
7912
7913 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
7914
7915         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
7916           passed in for the EventArgs (fixes #77690)
7917
7918 2006-03-01  Jackson Harper  <jackson@ximian.com>
7919
7920         * ScrollBar.cs: Refresh afterbeing resized.
7921
7922 2006-02-28  Mike Kestner  <mkestner@novell.com>
7923
7924         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
7925         Clean up a tracker compile warning.
7926         * MenuItem.cs: add internal PerformPopup method.
7927         [Fixes #77457]
7928
7929 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7930
7931         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
7932           implicit expose) when the text is set to null
7933
7934 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
7935
7936         * RichTextBox.cs (FlushText): When newline is true, we always
7937           need to split the line, even if no text is on it and we may
7938           never eat newlines. (Fixes #77669)
7939
7940 2006-02-28  Mike Kestner  <mkestner@novell.com>
7941
7942         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
7943         and set Selected instead.
7944         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
7945         collections.
7946
7947 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7948
7949         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
7950
7951 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
7952
7953         * FontDialog.cs:
7954           - Got rid of the panel. All controls are now directly added to
7955             the dialog form
7956           - It is now possible to set a font with the Font property
7957           - MinSize and MaxSize property do now what they should
7958           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
7959           - Searching and selecting a font with the font textbox works now,
7960             the same applies to the style and size textbox
7961           - Draw the correct 3D border in the example panel
7962           - Fixed a little mem leak (unused fonts didn't get disposed)
7963           - Many other internal updates/rewrites...
7964           - Fix typo
7965
7966 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7967
7968         * TextControl.cs: 
7969           - InsertRTFFromStream: Added 'number of characters inserted' argument
7970           - set_SelectedRTF: Now using the number of characters to calculate
7971             the new location for the selection and cursor (x/y cannot be used
7972             due to potentially already wrapped text)
7973
7974 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
7975
7976         * TextControl.cs: Added property and implemented means to allow 
7977           disabling recalculation of a document (can be used to speed up
7978           multiple inserts and is needed to make RTF inserts predictable, see
7979           bug #77659)
7980         * RichTextBox.cs: Using the new NoRecalc property of Document to
7981           keep x/y insert locations predictable. Also makes it faster inserting
7982           large chunks of RTF
7983
7984 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7985
7986         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
7987           it's easier for a child control to handle the other messages without
7988           having to duplicate the special functionality
7989         * TextBoxBase.cs
7990           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
7991             code to handle processing the key ourselves, in order to get 
7992             access to the result of KeyEventArgs.Handled. We now only call 
7993             ProcessKey if they key hasn't been handled already. Fixes #77526.
7994           - set_Text: If null or empty string is given, just clear the 
7995             document. Fixes part of #77526
7996
7997 2006-02-27  Jackson Harper  <jackson@ximian.com>
7998
7999         * SizeGrip.cs: Paint the background color before painting the grip
8000         so things look right.
8001         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
8002
8003 2006-02-27  Mike Kestner  <mkestner@novell.com>
8004
8005         * ListView.cs:
8006           - Restructure layout and invalidation model to remove a ton of
8007           flicker from the control and speed up performance in general.
8008           - Add manual column resize, flickers like crazy, but I already have
8009           some ideas on how I'll fix that. (#76822)
8010           - Merge the three Icon-based views into a single layout method.
8011           - Move item selection interaction logic from the item since 
8012           interaction with the collections is more appropriate to the view.
8013           - Deselection on non-item clicks.
8014         * ListViewItem.cs:
8015           - Encapsulate most of the layout. Add some internal props to trigger
8016           layout.  Move to a model where Items invalidate themselves instead
8017           of just invalidating the whole control every time something changes.
8018           - Invalidate on Text/Caption changes.
8019           - switch to an offset based layout model to avoid having to absolute
8020           position every element on item moves.
8021           - correct checkbox layout to conform to MS layout.
8022         * ThemeWin32Classic.cs:
8023           - refactor some column header drawing code.
8024           - fix string justification for column headers (#76821)
8025           - make SmallIcon labels top justified for compat with MS impl.
8026         * ThemeClearlooks.cs:
8027           - adjust to new ListViewItem internal checkbox bounds api.
8028
8029 2006-02-27  Jackson Harper  <jackson@ximian.com>
8030
8031         * Control.cs:  Change where implicit controls fall in the zorder.
8032         They are now on top of all children.
8033         - Synced AddImplicit code with Add
8034         - Removed unused enumerator.
8035         * SizeGrip.cs: Remove the TODO as its been TODONE.
8036
8037 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
8038
8039         * TextControl.cs(Insert): Combine the last lines unless the insertion
8040           string ends with \n\n, otherwise we leave one line too many (Fixes
8041           something I noticed with the testapp for #77526; the bug itself was
8042           already fixed in the previous checkin)
8043
8044 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
8045
8046         * RichTextBox.cs:
8047           - SelectionColor and SelectionFont methods no longer set absolute
8048             styles. Instead, the keep font or color respectively (This 
8049             resolves a long-standing FIXME in the code)
8050           - When flushing RTF text, the insert code now considers text trailing
8051             behind the insertion point (Fixes the bug where when replacing
8052             the selected text via SelectedRTF the remainder of the line behind 
8053             the selection would stay on the first insertion line)
8054         * TextBoxBase.cs:
8055           - AppendText now updates the selection points after inserting text
8056           - AppendText now ensures that the last tag (sometimes 0-length) of
8057             the document is used for the style information (Fixes part of 
8058             bug #77220)
8059         * TextControl.cs:
8060           - Created new FontDefiniton class to allow describing partial style
8061             changes
8062           - StreamLine() now takes a lines argument, to allow it to decide
8063             whether an encountered zero-length tag is the last in the document
8064             (which must be kept to not loose the font/color contained in it,
8065             for later appends)
8066           - Created Combine() and Split() methods for Marker structs, to 
8067             support marker updates due to reformatted documents (soft line
8068             wraps)
8069           - Implemented Document.CaretTag setter
8070           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
8071             of the last line (Not the cause, but also exposed by bug #77220)
8072           - Added LineTag argument to InsertString method, to allow callers
8073             to force a certain tag to be used (required to force use of the
8074             trailing zero-length tag of a document)
8075           - Now updating markers in Combine(), to avoid stale tag markers
8076           - Added some method descriptions to aid maintenance
8077           - Implemented new FormatText concept, allowing additive/subtractive
8078             formatting by only specifying the components that are to be 
8079             changed. This was needed for resolving the RTB.SelectedColor/
8080             RTB.SelectedFont fixmes
8081           - Added Break() support method to allow breaking up linetags (used
8082             for partial formatting)
8083           - Added GenerateTextFormat() method. It is used for partial 
8084             formatting and allows to generate a full font/color from given
8085             attributes and an existing tag.
8086
8087 2006-02-26  Jackson Harper  <jackson@ximian.com>
8088
8089         * XplatUIX11.cs:  Use the correct caption height.
8090         - Translate hittest coordinates to screen coords to match MS.
8091         * XplatUIWin32.cs: When we create MDI windows we need to reset
8092         some of the style flags, so we get a nice blank window, and can
8093         draw all the decorations ourselves.
8094         - Set a clipping rectangle on the non client paint event, the
8095         window manager drawing code needs one.
8096         * Form.cs: The window manager needs to know when the window state
8097         has been updated.
8098         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
8099         don't need to factor in border and title sizes in these
8100         methods. TODO: Remove the args and fix the call points.
8101         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
8102         properly.
8103         - Let the driver set the cursors.
8104         - Improve active window handling
8105         - Correct sizes for title bars and buttons.
8106         - Match MS drawing better
8107         * MdiWindowManager.cs: We don't need to handle border style
8108         updates specially anymore.
8109         - Check for scrollbars when windows are done moving
8110         - Handle Active properly.
8111         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
8112         correctly. I am spewing the exception though, so we don't hide the
8113         bugs.
8114         
8115 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
8116
8117         * DataGridViewRowPostPaintEventArgs.cs,
8118           DataGridViewCellPaintingEventArgs.cs,
8119           DataGridViewRowCollection.cs,
8120           DataGridViewRowPrePaintEventArgs.cs,
8121           DataGridViewCell.cs: Clear a few warnings and implement a few
8122           exceptions that should be thrown.
8123
8124 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8125
8126         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
8127           'inheriting' our parent's (non-default) cursor. (Part of
8128            the fix for #77479)
8129
8130 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
8131
8132         * XplatUIX11.cs: Fixed cast to make csc happy
8133
8134 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8135
8136         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
8137           it's for the client area (part of fix for #77479 and needed
8138           for MDI window cursor handling)
8139         * XplatUIX11.cs
8140           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
8141             the appropriate default cursors and also passing the message
8142             up the parent chain 
8143           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
8144             for non-client areas
8145
8146 2006-02-15  Jackson Harper  <jackson@ximian.com>
8147
8148         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
8149         is a real MDI window
8150
8151 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
8152
8153         * X11DesktopColors.cs: Instead of checking the desktop session
8154           string for "KDE" check if it starts with "KDE"
8155
8156 2006-02-10  Jackson Harper  <jackson@ximian.com>
8157
8158         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
8159         systems).
8160
8161 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8162
8163         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
8164           errors
8165         * ColorDialog.cs:
8166           - Got rid of the panel. All controls are now directly added to
8167             the dialog form
8168           - Changed to mono coding style
8169
8170 2006-02-10  Jackson Harper  <jackson@ximian.com>
8171
8172         * InternalWindowManager.cs: We don't need the set visibility to
8173         false hack anymore now that peter has written beautiful shutdown
8174         code.
8175
8176 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
8177
8178         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
8179           where already explicitly destroyed
8180
8181 2006-02-10  Jackson Harper  <jackson@ximian.com>
8182
8183         * MdiClient.cs: Handle the case where windows are too high or to
8184         the left and we need scrollbars.
8185
8186 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8187
8188         * MimeIcon.cs: Added some icons
8189         * FileDialog.cs:
8190           - Fixed bug #77477
8191           - Got rid of the panel. All controls are now directly added to
8192             the dialog form
8193           - Changed to mono coding style
8194           - On Linux "My Computer" and "My Network" will now show some
8195             more usefull information. A new class, MasterMount, gathers
8196             this information from /proc/mount. Updated MWFFileView to make
8197             use of this information
8198           - Fixed a bug that caused FileDialog to crash when
8199             ".recently_used" file had a zero size
8200           - FilterIndex does now what it should
8201           - Some Refactoring
8202         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
8203             FileDialog changes
8204
8205 2006-02-09  Jackson Harper  <jackson@ximian.com>
8206
8207         * ComboBox.cs: Don't touch if null.
8208
8209 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
8210
8211         * Cursor.cs: 64bit safeness fix
8212         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
8213
8214 2006-02-09  Jackson Harper  <jackson@ximian.com>
8215
8216         * Form.cs: If a form is made into an MDI form update the styles so
8217         all the props can get set correctly.
8218         - Kill the mdi_container when we dont need it anymore.
8219         * InternalWindowManager.cs: Add missing NOT
8220
8221 2006-02-08  Jackson Harper  <jackson@ximian.com>
8222
8223         * InternalWindowManager.cs: Respek clipping when drawing MDi
8224         decorations.
8225
8226 2006-02-08  Jackson Harper  <jackson@ximian.com>
8227
8228         * Hwnd.cs: Add bits to track non client expose events.
8229         * XplatUIX11.cs: Track non client expose events on the hwnd. This
8230         gives us a proper invalid rect and will allow for some nice
8231         optimizations with NC client drawing
8232         - MDI windows are children windows, so move their style handling
8233         into the child window block.
8234         * InternalWindowManager.cs: Remove a state reset that was
8235         getting invoked at the wrong time. Fixes managed windows getting
8236         into a 'stuck' captured state.
8237
8238 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8239
8240         * TextControl.cs (Document.ctor): Now initializing 
8241           selection_anchor. Fixes #77493
8242
8243 2006-02-07  Jackson Harper  <jackson@ximian.com>
8244
8245         * TrackBar.cs: The increment/decrements were backwards.
8246
8247 2006-02-07  Mike Kestner  <mkestner@novell.com>
8248
8249         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
8250         to the instance itself.
8251
8252 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8253
8254         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
8255           on ulongs and pointers, the size differs between 32bit and 64bit
8256           systems. 
8257
8258 2006-02-07  Mike Kestner  <mkestner@novell.com>
8259
8260         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
8261         for 64 bit platforms to work around a metacity bug. 
8262
8263 2006-02-07  Jackson Harper  <jackson@ximian.com>
8264
8265         * TrackBar.cs: Process the input keys we need, and hookup to
8266         KeyDown instead of using WndProc, so we get key messages.
8267
8268 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
8269
8270         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
8271           machine we're on. 
8272         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
8273           we need to translate the XdndVersion atoms array before sending it
8274
8275 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
8276
8277         * XplatUIX11.cs: 
8278           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
8279             number of bits for the property, not the number of bytes. The
8280             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
8281             but would not crash since it specified 8 bits instead of 4 bits)
8282           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
8283             defined as XID -> long in the C headers)
8284           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
8285             references since those are now IntPtr to begin with
8286           - Switched all Atom.XXX 'int' casts to IntPtr casts
8287           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
8288           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
8289           - Added XChangeActivePointerGrab DllImport (for X11DnD)
8290         * X11Structs.cs:
8291           - Changed 'int' type for Atoms in XEvent structures to IntPtr
8292           - Changed atom in HoverStruct to be IntPtr
8293         * X11DnD.cs:
8294           - Removed local DllImports, switched code to use those from XplatUIX11
8295           - Removed/fixed casts related to the switch of Atom to be a IntPtr
8296
8297 2006-02-06  Mike Kestner  <mkestner@novell.com>
8298
8299         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
8300         method signatures in the import region.  There may still be some
8301         lingering struct marshaling issues, as I didn't drill down into those.
8302         Yet.
8303
8304 2006-02-06  Jackson Harper  <jackson@ximian.com>
8305
8306         * ComboBox.cs: Dont manually set the top_item, this is computed
8307         when the scrollbar position is set.
8308
8309 2006-02-06  Mike Kestner  <mkestner@novell.com>
8310
8311         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
8312         startup crashes on amd64.  There's other fixes needed.  All pinvoke
8313         usage of Atom needs to be mapped to IntPtr for example.  And there are
8314         likely other int/long issues to be addressed.
8315
8316 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
8317
8318         * FileDialog.cs: One more...
8319
8320 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8321
8322         * FileDialog.cs: Next try
8323
8324 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8325
8326         * FileDialog.cs: First part of fix for #77464
8327
8328 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8329
8330         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
8331           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
8332           AcceptButton border drawing.
8333
8334 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
8335
8336         * Form.cs: Moved positioning of form after auto scaling is applied,
8337           otherwise it would possibly use wrong form size.
8338
8339 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
8340
8341         * Control.cs (RecreateHandle): No need to re-create any child
8342           controls, the child windows will get destroyed automatically by
8343           the windowing system or driver, and re-created when the handle
8344           is being accessed the first time. Fixes #77456
8345         * Form.cs: No longer setting the form to closing if the handle is 
8346           being recreated. This seems like the right thing to do, don't
8347           have a bug or testcase for this, though.
8348
8349 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8350
8351         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
8352           controls to avoid unwanted side effects
8353
8354 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
8355
8356         * Control.cs: 
8357           - ScaleCore needs to scale the bounds, not the ClientSize of the 
8358             control. Fixes #77416.
8359           - DefaultSize is 0,0 for control
8360         * TextBoxBase.cs: 
8361           - DefaultSize is 100, 20
8362           - SetBoundsCore: Now enforcing the height, no matter if the provided
8363             height is more or less than the preferred one, as long as AutoSize
8364             is on
8365         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
8366
8367 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8368
8369         * Control.cs:
8370           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
8371             call unless both performLayout is true *and* we have a pending
8372             layout change
8373           - ResumeLayout: MS does not completely nest Suspend and Resume,
8374             they bottom out at 0, fixed our code to match that.
8375           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
8376             SetBoundsCore, we were updating even when we shouldn't. This fixes
8377             swf-anchors mis-anchoring when resizing the app fast and lots.
8378           - UpdateDistances: Now only setting the left and top distance if 
8379             we have a parent and are not suspended, this is based on
8380             a suggestion by Don Edvaldson in bug #77355.
8381           - OnVisibleChanged: Fixed logic when to create the control. We may
8382             not create the control if we have no parent or if it's not visible;
8383             switched to using Visible property instead of is_visible field 
8384             since the property also considers parent states. This fixes a bug
8385             when starting Paint.Net
8386
8387 2006-02-02  Jackson Harper  <jackson@ximian.com>
8388
8389         * Form.cs: If the forms handle hasn't been created yet don't call
8390         into xplatui to make it top most, just set the topmost flag on the
8391         form in CreateParams
8392         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
8393
8394 2006-02-01  Jackson Harper  <jackson@ximian.com>
8395
8396         * ScrollableControl.cs: Refactored the Recalculate method a
8397         little, this wasn't handling all the variants of bottom and right
8398         bars needed to be added and added/removed based on their
8399         counterparts being added/removed (which changes the drawable
8400         size). Also we special case client widths and heights of 0 and
8401         don't add the scrollbar for those.
8402
8403 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
8404
8405         * XplatUIX11.cs: 
8406           - Added method to get AbsoluteGeometry(); currently unused, but might
8407             be used in the future, if we try again to figure out toplevel
8408             coordinates with some more crappy window managers
8409           - Added FrameExtents() method to retrieve the WM set decoration size
8410           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
8411             to deal with at least KDE, FVWM and metacity (Fixes #77092)
8412         * Hwnd.cs: 
8413           - Added whacky_wm tracking var for metacity
8414           - Added logic to have default menu height if the actual menu height
8415             has not yet been calculated (part of fix for #77426)
8416         * Form.cs: Keep track whether client size has been set and re-set 
8417           it if a menu is added/removed afterwards (Fixes #77426)
8418
8419 2006-01-31  Jackson Harper  <jackson@ximian.com>
8420
8421         * Control.cs: When a new Site is set on the component attempt to
8422         pull the AmbientProperties from it.
8423
8424 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
8425
8426         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
8427           in the background of the owning form. Fixes #77332
8428
8429 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8430
8431         * MimeIcon.cs: Fix for #77409
8432
8433 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8434
8435         * XplatUIX11GTK.cs: Initial import
8436
8437 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
8438
8439         * FixedSizeTextBox: fixes class signature
8440
8441 2006-01-30  Jackson Harper  <jackson@ximian.com>
8442
8443         * FixedSizeTextBox.cs: New internal class that represents a
8444         textBox that will not be scaled.
8445         * TreeView.cs:
8446         * ComboBox.cs:
8447         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
8448         standard TextBox.
8449                 
8450 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
8451
8452         * XplatUIX11.cs: Retrieve default screen number instead of
8453           assuming 0. Attempted fix for #77318
8454
8455 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
8456
8457         * XplatUIWin32.cs: 
8458           - GetWindowPos: When a window is parented by FosterParent, use 
8459             the desktop instead of FosterParent as the base to get coordinates
8460           - CreateWindow: Don't make FosterParent the parent window for Popups
8461             if we don't want a taskbar entry, Popups automatically don't get one
8462         * Hwnd.cs: Need to call remove to actually remove the key from the
8463           hash table
8464
8465 2006-01-30  Mike Kestner  <mkestner@novell.com>
8466
8467         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
8468
8469 2006-01-30  Jackson Harper  <jackson@ximian.com>
8470
8471         * TreeView.cs:
8472         * TreeNode.cs: Raise events no matter how the treenode is
8473         checked. Patch by Don Edvalson.
8474
8475 2006-01-30  Jackson Harper  <jackson@ximian.com>
8476
8477         * TreeNode.cs: Signature fix.
8478
8479 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
8480
8481         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
8482
8483 2006-01-20  Mike Kestner  <mkestner@novell.com>
8484
8485         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
8486         event forwarding when menus are active.
8487         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
8488         Most of the patch is pdb's with a little rework.
8489
8490 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8491
8492         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
8493           Removed GetMenuDC and ReleaseMenuDC methods; replaced
8494           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
8495         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
8496         * InternalWindowManager.cs: Added use of PaintEventStart/End to
8497           handling of WM_NCPAINT message, now passing the PaintEventArgs to
8498           the PaintWindowDecorations method
8499         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
8500         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
8501         * MenuAPI.cs: Made tracker window invisible
8502         * XplatUIWin32.cs:
8503           - Removed GetMenuDC and ReleaseMenuDC methods
8504           - Implemented the client=false path for PaintEventStart and
8505             PaintEventEnd
8506
8507 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8508
8509         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
8510         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
8511           styles
8512         * Form.cs: 
8513           - MaximizeBox, MinimizeBox: Recreate the handle when setting
8514             the style
8515           - CreateParams: Reworked the styles to match MS look'n'feel,
8516             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
8517             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
8518
8519 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8520
8521         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
8522           window is not mapped, since otherwise every form that's being 
8523           created is considered minimized, which is wrong.
8524         * Form.cs: Catching the exception and returning our internal value
8525           instead
8526
8527 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8528
8529         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
8530           SetWindowMinMax() to have means to tell the driver about the minimum,
8531           maximum and maximized state window sizes. (Part of the fix for #76485)
8532         * Form.cs:
8533           - Implemented tracking of minimum and maximum window size, now calling
8534             new SetWindowMinMax() driver method to tell the driver (Part of the
8535             fix for #76485)
8536           - Finished handling of WM_GETMINMAXINFO method, now setting all values
8537             (Completes fix for #76485)
8538           - Calling new SetWindowMinMax driver method when the handle for a 
8539             form is created, to make sure the driver knows about it even if
8540             the values have been set before the window was created
8541           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
8542             to avoid messing up our anchoring calculations (partial fix
8543             for #77355)
8544         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
8545         * XplatUIX11.cs:
8546           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
8547           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
8548             (and presumably other freedesktop.org compliant WMs). Left the
8549             assumption unmapped=minimized, needed for SetVisible to work.
8550           - Now setting the window state when creating windows
8551           - Fixed SetVisible to consider/set the window state when mapping
8552             a Form. We cannot set the state before it's mapped, and we cannot
8553             use Form.WindowState once it's mapped (since it would ask the
8554             driver and get 'normal'. Therefore, we grab the state before
8555             mapping, map, and then set state.
8556           - Implmemented SetWindowMinMax method; Metacity does not seem to
8557             honor the ZoomHints, though.
8558         * XplatUIWin32.cs:
8559           - Removed MINMAXINFO (moved to XplatUIStructs)
8560           - Added SetWindowMinMax stub (on Win32 the only way to set that
8561             information is in response to the WM_GETMINMAXINFO message, which
8562             is handled in Form.cs)
8563           - Added logic to SetVisible to set the proper window state when a 
8564             form is made visible (fixes #75720)
8565
8566 2006-01-26  Jackson Harper  <jackson@ximian.com>
8567
8568         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
8569         same way we handle them with Invoke.
8570
8571 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
8572
8573         * Form.cs:
8574           - Added tracking of window state so CreateParams can return
8575             the appropriate style
8576           - Moved setting of WS_CAPTION style in CreateParams to allow
8577             styles without caption
8578         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
8579           control if the TextBox property is accessed. Fixes #77345
8580         * Control.cs:
8581           - get_Created: now uses is_disposed and is_created to determine
8582             return value (suggested by Jackson)
8583           - CreateHandle: No longer exits if the handle is being recreated
8584           - RecreateHandle: If the handle is not yet created call the 
8585             appropriate method to create either control or handle. If the
8586             control is already created CreateHandle will simply exit instead
8587             of just creating the handle
8588         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
8589           now SendMessage WM_DESTROY directly to the control when DestroyWindow
8590           is called.
8591         * XplatUIX11.cs: 
8592           - When DestroyWindow is called, instead of waiting for the 
8593             DestroyNotification from X11, we directly post it to the WndProc
8594             and immediately dispose the hwnd object.
8595             Same applies to DestroyChildWindows, and this obsoletes the
8596             expose_pending tracking. Contrary to Win32 behaviour we destroy our
8597             child windows before our own, to avoid X11 errors.
8598           - Removed the direct sending of WM_PAINT on UpdateWindow
8599         * XplatUIWin32.cs:
8600           - Reworked DoEvents and GetMessage to allow access to internal queue
8601             even when trying non-blocking access to the queue.  Fixes #77335. 
8602             Based on a patch suggestion by Don Edvalson. The new private
8603             GetMessage can now also be used as a backend for a PeekMessage
8604             frontend version.
8605         * XplatUI.cs: Improved debug output for CreateWindow
8606
8607 2006-01-25  Jackson Harper  <jackson@ximian.com>
8608
8609         * Help.cs: Allow param to be null. Patch by Don Edvalson.
8610
8611 2006-01-24  Jackson Harper  <jackson@ximian.com>
8612
8613         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
8614         when we have a MaxDropItems lower then the selected index.
8615
8616 2006-01-24  Jackson Harper  <jackson@ximian.com>
8617
8618         * Control.cs: Don't allow selection of non visible controls, allow
8619         selection of controls without parents.
8620
8621 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8622
8623         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
8624         * DataGridDrawingLogic.cs: Add editing row only when is necessary
8625
8626 2006-01-23  Jackson Harper  <jackson@ximian.com>
8627
8628         * UpDownBase.cs: Make the textbox handle all the selection and
8629         tabbing. This fixes tabing to updown controls.
8630
8631 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8632
8633         * TextBoxBase.cs: fixes exception thown the object was null
8634
8635 2006-01-23  Jackson Harper  <jackson@ximian.com>
8636
8637         * ButtonBase.cs: Just use the base CreateParams. They set
8638         visibility and enabled correctly.
8639         * ComboBox.cs:
8640         * TrackBar.cs:
8641         * MonthCalendar.cs: Lets let the base set as much of the
8642         createparams as possible so we don't have duplicate code all over
8643         the place.
8644
8645 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
8646
8647         * ThemeGtk.cs: Added TrackBar and some experimental code to
8648           get double buffering back
8649
8650 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
8651
8652         * DataGrid.cs: Allows row number set internally higher than the last
8653         when creating a new row. Restores the editing functionality.
8654
8655 2006-01-20  Mike Kestner  <mkestner@novell.com>
8656
8657         * MimeIcon.cs: delay Image creation until the icons are accessed
8658         instead of creating 190 scaled images on GnomeHandler startup.
8659
8660 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
8661
8662         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
8663           first call base before processing the event. Fixes #77279
8664
8665 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
8666
8667         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
8668           that the stride for the GDI bitmap would match the stride of
8669           a DIB or a Cursor.
8670
8671 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
8672
8673         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
8674
8675 2006-01-19  Jackson Harper  <jackson@ximian.com>
8676
8677         * ComboBox.cs: Hookup the text controls keydown event so we get
8678         those when the text control has the focus.
8679
8680 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8681
8682         * Label.cs: Now using the base events instead of defining new ones;
8683           this allows us to just call the base properties without having to
8684           duplicate all base property logic 
8685
8686 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8687
8688         * Label.cs: A label by default is not a tabstop (Fixes one of our
8689           failing nunit tests)
8690
8691 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8692
8693         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
8694         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
8695
8696 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8697
8698         * Cursor.cs: Reimplemented creating cursor bitmaps without using
8699           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
8700           This fixes #77218
8701         * XplatUIWin32.cs: 
8702           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
8703             constructor creates images that can't be saved. Part of the fix
8704             for #76103
8705           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
8706           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
8707             bug fix for handling window state in forms properly)
8708
8709 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8710
8711         * ThemeGtk.cs: Simplify ScrollBar drawing
8712
8713 2006-01-18  Jackson Harper  <jackson@ximian.com>
8714
8715         * Splitter.cs: Set the default dock style for the splitter control
8716         in the constructor.
8717
8718 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8719
8720         * ThemeGtk.cs: Corrected StateType and ShadowType for
8721           gtk_paint_box
8722
8723 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8724
8725         * Control.cs: Make use of Theme.DoubleBufferingSupported
8726         * ThemeGtk.cs:
8727           - Added drawing for flat style buttons
8728           - Added ScrollBar drawing
8729
8730 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8731
8732         * ThemeClearlooks.cs: Removed some unneeded code.
8733         * ThemeGtk.cs: First part of ThemeGtk enhancements.
8734
8735 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8736
8737         * LinkLabel.cs: We need to update the hover drawing when
8738           leaving the control as well.
8739
8740 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
8741
8742         * DataGrid.cs: Clicking on non empty areas in the columns
8743            area was giving an exception
8744
8745 2006-01-17  Jackson Harper  <jackson@ximian.com>
8746
8747         * ThemeWin32Classic.cs:
8748         * ListView.cs: Do not draw/clip the headers when the header style
8749         is None.
8750
8751 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8752
8753         * DataGrid.cs: Fixes 77260
8754         
8755 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8756
8757         * DataGrid.cs: Clicking on a column on a empty grid was giving
8758           an exception
8759
8760 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8761
8762         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
8763           or any keypress will crash the grid.
8764
8765 2006-01-17  Mike Kestner  <mkestner@novell.com>
8766
8767         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
8768         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
8769         invisible/previously-visible items.
8770         [Fixes #76909]
8771
8772 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
8773
8774         * ThemeClearlooks.cs:
8775         - Added CL_Draw_Button method; now other theme controls that are 
8776           not derived from button or do not have a button can draw buttons
8777           too
8778         - Updated ComboBox drawing
8779         - Beautified RadioButton drawing
8780         - Corrected drawing of bottom and left tabs
8781         - Beautified DateTimePicker and MonthCalendar
8782         - Added CPDrawButton and CPDrawRadioButton
8783
8784 2006-01-16  Jackson Harper  <jackson@ximian.com>
8785
8786         * ComboBox.cs: Set the initial value of the scrollbar to the
8787         current index. Reduce the numbers of refreshs and IndexOfs called.
8788
8789 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
8790
8791         * FileDialog.cs: When the file listview is focused hitting the
8792           backspace key moves the fileview to the parent directory
8793
8794 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8795
8796         * Form.cs: 
8797           - Added RecreateHandle call when changing taskbar visibility to 
8798             trigger reparenting in Win32 driver (Fixes #75719)
8799           - If a window has minimize or maximize buttons, it cannot have
8800             a help button
8801         * XplatUIWin32.cs:
8802           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
8803             the toplevel form with FosterParent (A toolwindow not on the
8804             taskbar) (Fixes #75719)
8805           - Made FosterParent a toolwindow
8806
8807 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8808
8809         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
8810
8811 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8812
8813         * ToolTip.cs: If SetToolTip is called from a control and the mouse
8814           is currently over that control, make sure that tooltip_window.Text
8815           gets updated
8816
8817 2006-01-13  Mike Kestner  <mkestner@novell.com>
8818
8819         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
8820
8821 2006-01-13  Jackson Harper  <jackson@ximian.com>
8822
8823         * TreeView.cs: On MS GetNodeAt never actually factors in the X
8824         value passed.  Also redraw the selected node when we recieve
8825         focus, so tabbing between trees works correctly.
8826
8827 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8828
8829         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
8830           ~/.gconf/%gconf-tree.xml, so use
8831           .gconf/desktop/gnome/interface/%gconf.xml
8832
8833 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8834
8835         * TextControl.cs: Draw text in gray if control is disabled
8836
8837 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8838
8839         * TreeView.cs: Draw the focus rectangle outside the highlight, to
8840           make sure it's always visible. Fixes #76680.
8841
8842 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8843
8844         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
8845
8846 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
8847
8848         * PageSetupDialog.cs: Added.
8849         * PrintDialog.cs: Attributes.
8850         * PrintPreviewControl.cs: Updates.
8851         * PrintPreviewDialog.cs: Updates.
8852         
8853 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8854
8855         * Control.cs: Undid my selection check fix, since it's not needed
8856         * TextBoxBase.cs:
8857           - Now considering the presence of hscroll/vscroll when sizing
8858             vscroll/hscroll respectively. Fixed bug #77077
8859           - Added Left/Up/Down/Right to IsInputKey list to prevent
8860             ContainerControl from stealing them. This fixes what I broke
8861             with my last checkin.
8862
8863 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
8864
8865         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
8866           I finally understand how the property can be set without a setter :-)
8867
8868 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8869
8870         * Application.cs:
8871           - Switched RunLoop to use static Message.Create to create a 
8872             Message object
8873           - Added PreProcessMessage call in runloop for keyboard events; this
8874             is part of the fix for #77219, I overlooked this originally in the
8875             MSDN doc for PreProcessMessage
8876         * Control.cs:
8877           - Removed call to PreProcessMessage from handling of keyboard 
8878             messages; it's supposed to be done in the message pump
8879           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
8880             per MSDN documentation.
8881           - IsInputChar: All chars are input chars by default; removed the 
8882             parent calling chain, MS does not document that
8883           - PreProcessMessage: If IsInputChar is true, we want to return false
8884             to allow dispatching of the message
8885           - When selecting the next control, now also check that we're not
8886             selecting ourselves again and therefore return a false positive.
8887         * TextBoxBase.cs:
8888           - Tried to match return values for IsInputKey and ProcessDialogKey
8889             to what MS returns; moved processing of our special keys outside
8890             ProcessDialogKey since MS does not seem to return true on those.
8891           - Moved code that previously was in ProcessDialogKey into new private
8892             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
8893           - Reworked handling of WM_CHAR to not have to duplicate code from
8894             Control.cs anymore, instead we simply call down to base.
8895            
8896 2006-01-12  Jackson Harper  <jackson@ximian.com>
8897
8898         * ComboBox.cs: We always need to refresh the text area when
8899         EndUpdate is called. Fixes the combobox in the file dialog.
8900         * Control.cs: Don't create the creator_thread until the controls
8901         handle is created.  Also in InvokeRequired we check if the
8902         creator_thread is null. This gives the effect of InvokeRequired
8903         returning true if the controls handle is not created yet, and
8904         matches MS.
8905
8906 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8907
8908         * XplatUI.cs:
8909           - Added StartLoop() driver method. This is used to allow drivers to
8910             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
8911             loop for a particular thread
8912           - Added EndLoop() driver method. This is called once the message
8913             pump for the thread is shut down
8914           - Added SupportsTransparency method to allow the driver to indicate
8915             opacity support for windows
8916         * Form.cs:
8917           - Removed TODO attribute, completed AllowTransparency property
8918           - Added documented logic to Opacity
8919         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
8920           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
8921           versions of CompatibleTextRendering
8922         * X11Structs.cs: Added opacity atom to our atom enumeration
8923         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
8924           of a form might be set before it's reparented by the WM, and we need
8925           the opacity value without calling up to Form)
8926         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
8927           SupportsTransparency() driver methods
8928         * Application.cs: Now calling StartLoop and EndLoop driver methods
8929         * XplatUIX11.cs:
8930           - Added opacity atom registration
8931           - Added StartLoop()/EndLoop() methods. They're empty right now but
8932             will need to get implemented when we switch to a per-thread queue
8933           - Implemented SupportsTransparency() method
8934           - Implemented SetWindowTransparency() method
8935           - Added support for setting the opacity value when a window is
8936             reparented (since the opacity needs to be set on the WM frame)
8937         * XplatUIOSX.cs, XplatUIWin32.cs:
8938           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
8939
8940 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8941
8942         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
8943
8944 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8945
8946         * FileDialog.cs: Added ToolTip for MWFFileView
8947         * MimeIcon.cs: Rewrote GnomeHandler.
8948           - Get currently used gnome icon theme from
8949             ($HOME)/.gconf/%gconf-tree.xml
8950           - Make use of inherited icon themes
8951           - Support SVG icon themes like Tango via librsvg
8952
8953 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8954
8955         Revert's Jackson's revert which broke 2.0 builds.   Fix both
8956         builds. 
8957         
8958         * Application.cs: Move the use_compatible_text_rendering outside
8959         the NET_2_0 define.  If we ever need to use the
8960         use_compatible_text_rendering on the individual controls they will
8961         access the variable from the common shared code paths.
8962
8963 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8964
8965         * XplatUI.cs:
8966           - Added more granular debug options
8967           - Added method to print both window text and id
8968           - Switched debug output to use new Window() debug method
8969           - Added IsEnabled() driver method
8970           - Added EnableWindow() driver method
8971         * Form.cs:
8972           - Removed end_modal; no longer needed, new loop handles termination
8973             via 'closing' variable
8974           - If form is modal, setting DialogResult will now initiate loop
8975             termination via 'closing' variable
8976           - Added support for is_enabled/WS_DISABLED to CreateParams
8977           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
8978             does all the work
8979           - Removed code that's now in RunLoop from ShowDialog()
8980           - Added various documented sanity checks to ShowDialog()
8981           - Added handling of WM_DESTROY message; we set 'closing' on getting
8982             the message to indicate the message pump to terminate
8983           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
8984             send by the Application.ExitThread method. (We send the message
8985             to destroy the window after all other events have been
8986             processed through the queue, instead of destroying the handle 
8987             directly)
8988           - Moved code from Close() method to WM_CLOSE handler; added logic
8989             to only send close-related events if the form is not displayed
8990             modal
8991         * Splitter.cs (..ctor): Fixed typo in resource name
8992         * Control.cs:
8993           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
8994             brush now
8995           - set_Cursor: Now only setting calling into XplatUI if the handle for
8996             the control is already created; this avoids implict handle creation
8997             or crashes if it's not created
8998           - set_Enabled: Now setting the enabled state via the new driver method
8999             instead of just tracking it
9000           - CreateParams: Added logic to set WS_DISABLED based on enabled state
9001           - CreateControl: Reordered event firing and method calls to more
9002             closely fire events in the order MS does. Now setting the
9003             enabled state in the driver when creating the control.
9004           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
9005             match MS order
9006         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
9007           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
9008         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
9009         * Hwnd.cs:
9010           - Added tracking of window enabled state (get_Enabled/set_Enabled)
9011           - Added EnabledHwnd property to easily allow a driver to find the
9012             handle of the first enabled window in the parent chain (this is
9013             used by drivers to pass up input events of disabled windows)
9014         * XplatUIDriver.cs: Added IsEnabled() method
9015         * Application.cs:
9016           - Removed crude and obsolete exiting tracking variable
9017           - Removed internal ModalRun(); replaced by RunLoop()
9018           - Implemented private CloseForms() method to allow closing all 
9019             windows owned by a particular (or all) threads
9020           - Exit() now properly closes all windows without forcing the message
9021             pump to quit
9022           - Removed obsolete InternalExit() method
9023           - Changed Run() methods to use new RunLoop() message pump
9024           - Implemented new RunLoop() method for both modal and non-modal forms
9025         * CommonDialog.cs:
9026           - get_CreateParams: Added setting of WS_DISABLED
9027           - Simplified ShowDialog(); now all the work is done in RunLoop(),
9028             invoked via Form.ShowDialog()
9029         * NativeWindow.cs: We don't remove the window from the collection when
9030           the handle is destroyed; there might still be messages for it in the
9031           queue (mainly the resulting WM_DESTROY); instead it will be removed
9032           when Control calls InvalidateHandle in the WM_DESTROY handler
9033         * XplatUIX11.cs:
9034           - CreateWindow: Added logic to handle the WS_DISABLED window style
9035           - EnableWindow: Implemented based on Hwnd.Enabled
9036           - GetMessage: Reset PostQuitState so the method can be called again
9037           - Implemented support for disabled windows (passing messages to the
9038             first enabled parent) in handling all input messages
9039           - Added optimizations for handling Expose events
9040           - Implemeted new driver method IsEnabled()
9041           - Now always resetting paint pending tracking vars when we start paint
9042           - Re-implemented UpdateWindow via just sending a WM_PAINT message
9043         * XplatUIOSX.cs: Added IsEnabled method stub
9044         * XplatUIWin32.cs: Implemented new IsEnabled() method
9045
9046 2006-01-11  Jackson Harper  <jackson@ximian.com>
9047
9048         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9049         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
9050         variables a little.
9051         * ColorDialog.cs: Clear out the old form before adding the new
9052         panel.  
9053
9054 2006-01-11  Jackson Harper  <jackson@ximian.com>
9055
9056         * X11Dnd.cs: Make sure to add all the text formats when adding
9057         strings to the data object.
9058         * TreeNodeCollection.cs: When adding to a sorted tree we need to
9059         do some redrawing too.  Also change the UpdateNode to an
9060         UpdateBelow so the newly added node gets painted.
9061         
9062 2006-01-11  Miguel de Icaza  <miguel@novell.com>
9063
9064         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9065         LinkLabel.cs, PropertyGrid.cs: Implement the
9066         UseCompatibleTextRendering property for 2.x
9067
9068         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
9069
9070 2006-01-11  Jackson Harper  <jackson@ximian.com>
9071
9072         * TreeView.cs: Use the property for setting the selected node so
9073         the correct events get raised.
9074         * TreeNode.cs: Update the tree when the fore/back colours of a
9075         node are set.
9076
9077 2006-01-10  Jackson Harper  <jackson@ximian.com>
9078
9079         * TreeView.cs: Allow setting SelectedNode to null.
9080
9081 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9082
9083         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
9084
9085 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9086
9087         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
9088
9089 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9090
9091         * PrintDialog.cs: Added attributes and set default property values.
9092
9093 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9094
9095         * PrintControllerWithStatusDialog.cs: 
9096         Added PrintControllerWithStatusDialog.
9097
9098 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9099
9100         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
9101         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
9102
9103 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9104
9105         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
9106
9107 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9108
9109         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
9110         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
9111
9112 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9113
9114         * MimeIcon.cs: Added internal class SVGUtil.
9115
9116 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9117
9118         * FileDialog.cs: Don't crash if there are two files with the
9119           same name but different locations.
9120
9121 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
9122
9123         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
9124         dates across multiple month grids. Used to not highlight entire 
9125         month, but does now.
9126         
9127 2006-01-06  Jackson Harper  <jackson@ximian.com>
9128
9129         * MonthCalendar.cs: Removed DoEvents call to prevent a running
9130         message loop. Change timer intervals to numbers that seem more
9131         natural.
9132
9133 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
9134
9135         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
9136           object for location info since screen object is now implemented.
9137
9138 2006-01-05  Jackson Harper  <jackson@ximian.com>
9139
9140         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
9141         * AsyncMethodResult.cs: We no longer use a WeakReference for the
9142         AsyncMethodResult, this is because we ALWAYS want the
9143         ManualResetEvent to get set.
9144         * Control.cs: When disposing use an async invoke to call shutdown
9145         code, so that thigns don't block on the finalizer thread.  Also
9146         check if we even have a message loop before trying to send
9147         messages, if we don't then don't bother sending messages.
9148         - No more weak references for async methods
9149         * XplatUIDriver.cs: No more weak references for async methods.
9150
9151 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9152
9153         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
9154           returns two FontFamily with the same name
9155
9156 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9157
9158         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
9159           drawing disabled text. Instead using the ColorGrayText color
9160
9161 2006-01-04  Jackson Harper  <jackson@ximian.com>
9162
9163         * TreeNode.cs: redraw the node when its image index is changed.
9164
9165 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9166
9167         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
9168           time I checked there are no others like it.
9169
9170 2006-01-04  Jackson Harper  <jackson@ximian.com>
9171
9172         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
9173         this gives the behavoir I was looking for.
9174         * Control.cs: Special case Invoking EventHandlers, this matches MS
9175         and fixes part of bug #76326.
9176
9177 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9178
9179         * ThemeClearlooks.cs, FileDialog.cs:
9180           - Reflect the latest Theme class changes
9181           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
9182             with DateTime
9183             
9184 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9185
9186         * Theme.cs: Cache UI resource images and resize them if needed
9187
9188 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9189
9190         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
9191           is called. This fixes the crash in Nexxia when setting the font
9192           attributes in the chat. [However, RTF needs a look-over to make sure
9193           that all SelectionXXX methods handle the special case that selection
9194           is empty and therefore the change must be applied to all text starting
9195           at the cursor/selection start]
9196
9197 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
9198
9199         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9200           XplatUIOSX.cs: Added SendMessage and PostMessage methods
9201         * X11Keyboard.cs: Switched to new way of calling PostMessage
9202
9203 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9204
9205         * Theme.cs: Added theme interface for images to allow the theme to
9206           control what images are used for things like FileDialog, MessageBox
9207           icons, etc.
9208         * MessageBox.cs: Now uses the new Theme icon/image interfaces
9209
9210 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
9211
9212         * FileDialog.cs:
9213           - Removed some dead code
9214           - Opening a recently used file does work now
9215           - Small UI enhancements
9216           - Refactoring
9217
9218 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9219
9220         * FileDialog.cs: Forgot too add __MonoCS__
9221
9222 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9223
9224         * FileDialog.cs: We are able to read recently used files now let's
9225           go on and write them.
9226
9227 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
9228
9229         * FileDialog.cs: Breathe some life into "last open"/"recently used"
9230           button
9231         * MimeIcon.cs: Do a check for the top level media type also
9232
9233 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9234
9235         * ThemeClearlooks.cs:
9236           - Added CPDrawStringDisabled
9237           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
9238             some chars if the text doesn't fit into text_rect
9239           - DrawListViewItem: If View = View.LargeIcon center the image;
9240             rewrote the drawing of ListViewItem.Text if View = 
9241             View.LargeIcon
9242
9243 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9244
9245         * MimeIcon.cs: Use default KDE icon theme if there is no
9246           "48x48" directory for the current icon theme, fixes #77114
9247         * Mime.cs: Disable not working and actually not used code. 
9248         * ThemeWin32Classic.cs:
9249           - Replace "new SolidBrush" in GetControlBackBrush and
9250             GetControlForeBrush with ResPool.GetSolidBrush
9251           - Changed DrawListViewItem from private to protected virtual
9252         * FileDialog.cs:
9253           - Added form.MaximizeBox = true
9254           - Don't throw an exception if there is a broken symbolic link
9255
9256 2005-12-23  Jackson Harper  <jackson@ximian.com>
9257
9258         * TabControl.cs: Give the panels focus, keyboard navigation is
9259         fixed so this works correctly now.
9260         - We need these key events also.
9261         * ToolBar.cs: Remove some of the poor mans double buffering.
9262         
9263 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
9264
9265         * ComboBox.cs: The internal TextBox now returns the focus.
9266
9267 2005-12-23  Jackson Harper  <jackson@ximian.com>
9268
9269         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
9270
9271 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9272
9273         * Control.cs: Removed debug code
9274         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
9275           implicit children
9276
9277 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
9278
9279         * Control.cs: When creating the control, update the Z-order after
9280           all it's children are created, too. (Fixes nexxia not showing
9281           picturebox bug)
9282
9283 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9284
9285         * Control.cs: Do not update the anchoring distances if layout is
9286           suspended, instead do it once layout is resumed
9287
9288 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
9289
9290         * Control.cs: 
9291           - After many hours of debugging, for both Jackson and
9292             myself, it turns out that it helps to set the parent of a control
9293             if you want to actually see it onscreen. In the spirit of that
9294             discovery, we're now setting the parent of the control and
9295             it's children when the control's handle is created. This fix
9296             will make Lutz Roeder's Reflector run happily. 
9297           - now just creating the handle instead of the whole control when
9298             getting a graphics context for the control.
9299
9300 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9301
9302         * ScrollableControl.cs: When calculating the canvas, don't consider
9303           the scrollbar widths. Instead, predict if horizontal scrollbar
9304           will affect canvas when deciding on vertical display and vice versa.
9305
9306 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9307
9308         * RichTextBox.cs: Set default RTF font for documents that don't
9309           have a font table (Fixes #77076)
9310
9311 2005-12-22  Jackson Harper  <jackson@ximian.com>
9312
9313         * TextBoxBase.cs: It's difficult to do, but you can have an empty
9314         clipboard. This prevents a NullRef in that case.
9315         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
9316         clipboard. PRIMARY is for the currently selected text only. (We
9317         should implement PRIMARY at some point.
9318
9319 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9320
9321         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
9322           a Unicode function with a structure that was defined in Ansi way.
9323           This fixes #76942.
9324
9325 2005-12-21  Jackson Harper  <jackson@ximian.com>
9326
9327         * StatusBar.cs: Statusbar handles its fore/back colours on it's
9328         on. Because thats how it rolls. (and this avoids it using ambient
9329         colours).
9330         * ThemeWin32Classic.cs: Use the proper back color for filling.
9331         * Menu.cs: Use the system menu bar color for drawing menu
9332         bars. Using the window back color will bring ambient colours into
9333         the picture.
9334
9335 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
9336
9337         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
9338           Bitmaps were created and not disposed.
9339
9340 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9341
9342         * Control.cs (CreateControl): Don't do anything if the control is
9343           already created, otherwise we'd fire the OnCreated event more than
9344           once
9345
9346 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9347
9348         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
9349           will always match. Instead return -1. Fixes #76464.
9350
9351 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9352
9353         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
9354           neither the beginning nor the end of the line (Fixes bug #76479)
9355
9356 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9357
9358         * Control.cs:
9359           - ControlNativeWindow.ControlFromHandle(): Now handling situation
9360             where handle is invalid
9361           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
9362             instead of slower linear search
9363         * NativeWindow.cs: Don't remove the window from the hashtable until
9364           after the driver has destroyed it (since the driver might use
9365           Control.FromHandle to lookup the control object
9366         * Hwnd.cs: Added DestroyPending property to track if a window is 
9367           already destroyed as far as the driver is concerned and only hasn't
9368           yet notified the control
9369         * XplatUIX11.cs:
9370           - Activate(): Check if the window is still valid before using the 
9371             handle
9372           - Implemented DestroyChildWindow() method to mark child windows as
9373             destroyed when a window is destroyed. This prevents situations 
9374             where we might call an X method based on queued events for a
9375             window that already has been destroyed but we haven't yet pulled
9376             the destroy method from the queue.
9377           - Added a call to the new DestroyChildWindow() method to the drivers
9378             DestroyWindow code. Also now marking the destroyed window itself
9379             as pending
9380
9381 2005-12-20  Jackson Harper  <jackson@ximian.com>
9382
9383         * StatusBar.cs:
9384         * StatusBarPanel.cs: Don't calculate panel sizes on draw
9385         anymore. Just do them when needed, also track the rects of panels
9386         so that we can optimize refreshing more in the future.
9387
9388 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
9389
9390         * ColorDialog.cs: Fixed focus drawing in small color controls
9391
9392 2005-12-19  Jackson Harper  <jackson@ximian.com>
9393
9394         * InternalWindowManager.cs:
9395         * MdiWindowManager.cs: Cleanup some coordinate system changes so
9396         moving windows works properly.
9397
9398 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
9399
9400         * Control.cs: 
9401           - Removed call to InitLayout() from SetBoundsCore(); doc says
9402             it's only called when a control is added to a container
9403           - Split InitLayout logic, moved to separate UpdateDistances() method
9404             since we need to perform those calculations more often than just
9405             when adding the control to a container. (Needed to fix #77022)
9406           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
9407           - Reduced the OnBindingContextChanged events count, don't send them
9408             unless the control is created, we still aren't totally matching
9409             MS, but I can't quite figure out some of their rules
9410
9411 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9412
9413         * ThemeClearlooks.cs: Corrected distance between ProgressBar
9414           stripes
9415
9416 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9417
9418         * ThemeClearlooks.cs:
9419           - Updated ProgressBar drawing
9420           - Corrected drawing of ScrollBars and scroll buttons
9421           - Some temporary fixes for minor pixel artefacts
9422
9423 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
9424
9425         * Control.cs:
9426           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
9427             cause events to be sent in the same order as MS does.
9428           - Added ChangeParent() method to trigger various OnXXXChanged events
9429             that need to be fired when a parent changes (This is a reworking
9430             of the patch from r54254, with the X11 errors fixed)
9431           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
9432             since on MS we get OnLayoutChanged events when calling Clear()
9433           - Changed Enabled property to consider parent state as well, if a
9434             parent is not enabled, the control will not be either
9435           - Changed Parent property to simply call Controls.Add() since that
9436             now does all the work required, this way we avoid code duplication
9437           - Threw in a few OnBindingsContextChanged calls to try and match
9438             when MS sends them. We seem to send a few too many, though.
9439           - Added call to CreateControl when adding the control to a parent.
9440             We were never calling CreateControl. Still needs some work, in
9441             some places we treat HandleCreated and ControlCreated as equal, 
9442             which is wrong
9443           - Removed obsolete commented out code from UpdateZOrder()
9444
9445 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9446
9447         * ThemeClearlooks.cs: Updated TrackBar drawing.
9448
9449 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9450
9451         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
9452
9453 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9454
9455         * FileDialog.cs: Add the Help button and the open readonly
9456           checkbox only if needed
9457
9458 2005-12-16  Jackson Harper  <jackson@ximian.com>
9459
9460         * Control.cs: Make sure we have an active menu before trying to
9461         process commands on it. Prevents menu-less forms from crashing
9462         when Alt is pressed.
9463         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
9464         Dieter Bremes.
9465         * RichTextBox.cs: Expand statement to help out gmcs and fix the
9466         2.0 build.
9467
9468 2005-12-16  Jackson Harper  <jackson@ximian.com>
9469
9470         * InternalWindowManager.cs: Don't translate tool windows screen
9471         coordinates. This fixes windows 'bouncing' around when being moved.
9472
9473 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9474
9475         * TextBoxBase.cs:
9476           - MaxLength now treats 2^31-1 equal to unlimited length (this is
9477             not quite MS compatible, MS uses that number only for single line
9478             and 2^32-1 for multi-line, but I figure it won't hurt keeping
9479             the limit at 2GB)
9480           - Now enforcing the MaxLength limit when entering characters
9481           - Added argument to internal Paste() method to track if it's called
9482             from programatically or via keyboard, since keyboard driven pastes
9483             need to enforce max-length
9484           - Added logic to Paste to only paste as many chars as MaxLength 
9485             allows
9486         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
9487         * TextControl.cs:
9488           - Added Length property to return number of characters in document
9489           - Added private CharCount property which only tracks actual chars
9490             in the document (no linefeeds) and fires event when CharCount
9491             changes
9492           - Added tracking of character count to all methods that alter it
9493           - Added LengthChanged event to allow applications to subscribe
9494             to any changes to the document
9495
9496 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9497
9498         * TextBox.cs: 
9499           - Removed local password_char field (moved to TextBoxBase)
9500           - Now setting the document's password var when password is
9501             set
9502         * TextBoxBase.cs:
9503           - Added password_char field (needed here so MultiLine can
9504             access it)
9505           - Added logic to MultiLine property setter to set the document's
9506             variable when password display is allowed
9507           - Removed debug code and made some debug code conditional
9508         * TextControl.cs:
9509           - Added RecalculatePasswordLine() method to handle special password
9510             char only lines
9511           - Added PasswordChar property, also added related tracking vars
9512           - Draw() method now uses local text var for grabbing text to draw,
9513             this var is set to line.text unless we're doing password display,
9514             then it is set to the pre-generated all-password-chars line
9515           - Added calling RecalculatePasswordLine() method for password lines
9516
9517 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9518
9519         * Hwnd.cs: 
9520           - Added Reparented property to allow tracking of Window Manager
9521             reparenting actions (which affect X/Y calculations of toplevel 
9522             windows)
9523           - Made ToString() print window handles in hex
9524         * XplatUIX11.cs:
9525           - AddConfigureNotify(): Now uses reparented state off Hwnd to
9526             determine if X/Y needs offsetting
9527           - AddConfigureNotify(): Fixed offset calculations
9528           - Now adds ReparentNotify messages into the queue
9529           - Now processes ReparentNotify messages and causes a 
9530             WM_WINDOWPOSCHANGED message to be sent upstream if a window
9531             is reparented (as most likely it's X/Y coordinates are changed
9532             due to that)
9533
9534 2005-12-14  Jackson Harper  <jackson@ximian.com>
9535
9536         * XplatUIX11.cs: Tool windows still need to respek focus.
9537
9538 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9539
9540         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
9541           have a working release
9542
9543 2005-12-13  Jackson Harper  <jackson@ximian.com>
9544
9545         * Form.cs: Update styles after setting the border style regardless
9546         of whether or not the window is using a window manager.
9547
9548 2005-12-13  Jackson Harper  <jackson@ximian.com>
9549
9550         * Form.cs: We now hook into an internal window manager instead of just an
9551         MDI subsystem, this is so we can have properly behaving tool windows.
9552         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
9553         * InternalWindowManager.cs: New internal class that acts as a
9554         window manager for tool windows and as a base for mdi windows.
9555         * MdiWindowManager.cs: New class that acts as a window manager for
9556         mdi windows.
9557
9558 2005-12-12  Jackson Harper  <jackson@ximian.com>
9559
9560         * Control.cs: Updates so we match behavoir for for implicit
9561         controls. Fixes explosions in MDI.
9562
9563 2005-12-12  Jackson Harper  <jackson@ximian.com>
9564
9565         * Control.cs: Implement Invalidate (Region).
9566
9567 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
9568
9569         * Control.cs: 
9570           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
9571             the same events as MS does. MS fires events for each property 
9572             except, for unknown reasons, Cursor, when the control is reparented. 
9573             I can't seem to totally match add/remove since MS also fires some 
9574             VisibleChanged events, which makes no sense. Consolidated the
9575             parenting code into a separate method so it can be called from
9576             both Add and Remove. set_Parent no longer needs any special logic
9577             as it calls the parent's add method which implicitly fires
9578             all events
9579           - Removed some obsolete code and debug output
9580           - Enabled state is inherited from parents, if this is enabled
9581
9582 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
9583
9584         * Form.cs: Removed commented out code
9585
9586 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
9587
9588         * Control.cs:
9589           - Added internal version of Invoke, with additional argument 
9590             indicating if we're calling it from a Dispose() handler. That
9591             way we can avoid BeginInvoke throwing an exception if we're
9592             calling for an already destroyed window.
9593           - Added a dispose argument to BeginInvokeInternal, and made the
9594             check if a valid window handle chain exists conditional on
9595             it not being a dispose call
9596           - Removed code in DestroyHandle to destroy our children. Since we
9597             now handle the WM_DESTROY message we will catch all our children
9598             being destroyed.
9599           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
9600         * Form.cs:
9601           - Added a field to track the application context of the form.
9602           - No need to set closing variable as response to WM_CLOSE, instead
9603             we destroy the window. We also call PostQuitMessage if the form
9604             has an application context (which makes it the main app form,
9605             which, when closed terminates the app)
9606         * XplatUI.cs:
9607           - Dropped Exit() method, it's naming was confusing
9608           - Added PostQuitMessage() which causes GetMessage to return false
9609             once the message queue is empty
9610         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
9611           PostQuitMessage()
9612         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
9613           no longer a valid XplatUI method, but left it in since it's used
9614           internally. Added empty PostQuitMessage() method.
9615         * MenuAPI.cs: Replaced call to Exit() with call to
9616           PostQuitMessage, even though this is probably no longer needed.
9617         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
9618         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
9619         * Application.cs:
9620           - Replaced call to XplatUI.Exit() with PostQuitMessage()
9621           - Removed old debug code that would call XplatUI for exception
9622             display, enabled standard exception handling (Still not enabled
9623             though, until NativeWindow's ExternalExceptionHandler define
9624             is removed
9625         * NativeWindow.cs:
9626           - Added internal method to allow control to update NativeWindow
9627             after a window has been destroyed
9628           - Added handling of already destroyed windows when calling i
9629             DestroyWindow
9630           - Added removal of handle from list on ReleaseHandle
9631         * XplatUIX11.cs:
9632           - Dropped GetMessageResult var and related code
9633           - Added PostQuitState to field to track if PostQuitMessage has been
9634             called
9635           - Dropped Exit() method
9636           - Added PostQuitMessage() method
9637           - GetMessage now will return false if PostQuitState is set and no
9638             more messages are in the queue.
9639           - Expose handler will no longer generate WM_PAINT messages if we are
9640             in PostQuitState since it's very likely any windows have already
9641             been destroyed, and since Hwnd won't get updated until we have
9642             processed the DestroyNotify we'd be causing X errors.
9643         
9644 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9645
9646         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
9647           Thanks to Mike for pointing out the err of my ways.
9648
9649 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9650
9651         * Control.cs(PreProcessMessage): Moved menu handling back, but
9652           after all other key handling, to match MS (who handles Menu in
9653           DefWndProc)
9654         * Menu.cs (WndProc): Removed my brainfart
9655
9656 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9657
9658         * Control.cs(PreProcessMessage): Removed special menu handling 
9659         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
9660
9661 2005-12-07  Mike Kestner  <mkestner@novell.com>
9662
9663         * Control.cs : special case SYSKEYUP so that we can adjust keynav
9664         state according in tracker.
9665         * Menu.cs : promote tracker field to base class and provide a tracker
9666         lookup capability.  Add/Remove shortcuts dynamically if the top menu
9667         has a tracker. Unparent items that are removed from the collection.
9668         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
9669         * Theme*.cs: add always_show_hotkeys field to support configurability
9670         of mnemonic display.  win32 doesn't show mnemonics until Alt is
9671         pressed.
9672
9673 2005-12-07  Jackson Harper  <jackson@ximian.com>
9674
9675         * MdiChildContext.cs: Use Control.ResetCursor.
9676         * Control.cs: ResetCursor needs to set the property so that the
9677         correct XplatUI call gets made.
9678
9679 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9680
9681         * Control.cs: More fixes to make our key events match MS. We
9682           were not setting the modifier state on KeyData, and we were
9683           not generating any events when Alt was pressed with a key
9684           since handling of WM_SYSxxx was missing for the OnKey methods.
9685
9686 2005-12-07  Jackson Harper  <jackson@ximian.com>
9687
9688         * MdiChildContext.cs: reenable the sizing code.
9689         - When the mouse leaves a window reset its cursor.
9690
9691 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9692
9693         * ThemeClearlooks.cs: Reflect latest Hwnd changes
9694
9695 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9696
9697         * Hwnd.cs: Now using the theme 3d bordersize to calculate
9698           widths of Fixed3D borders
9699
9700 2005-12-07  Jackson Harper  <jackson@ximian.com>
9701
9702         * MdiClient.cs: Fix warnings. Earn Mike's love.
9703
9704 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9705
9706         * ThemeClearlooks.cs:
9707           - Adjusted mouse over button color
9708           - Added first parts of CheckBox drawing
9709           - Added correct color for selected text background
9710           - Fixed ComboBox drawing
9711           - Added CPDrawBorder3D and CPDrawBorder
9712
9713 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9714
9715         * XplatUIX11.cs: Added call to XBell for AudibleAlert
9716
9717 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
9718
9719         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9720           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
9721           alert users via sound. We could add an enum arg with different
9722           types of alerts in the future
9723
9724 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9725
9726         * Control.cs: Fix behaviour problems pointed out by Mike
9727
9728 2005-12-05  Mike Kestner  <mkestner@novell.com>
9729
9730         * StatusBarPanel.cs: add Invalidate method and hook it into all the
9731         prop setters.  Calls parent.Refresh for now, but could be maybe be
9732         optimized with an internal method on StatusBar at some point.
9733         [Fixes #76513]
9734
9735 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
9736
9737         * RichTextBox.cs: Implemented get_SelectionColor
9738
9739 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
9740
9741         * ThemeClearlooks.cs:
9742           - Removed dead code
9743           - Draw black button border only if button is Form.AcceptButton
9744           - Draw correct button color for pressed RadioButton if the mouse 
9745             has entered the button
9746           - Updated ProgressBar drawing!
9747           - Updated CPDrawSizeGrip drawing
9748           - Updated StatusBarPanel drawing
9749
9750 2005-12-05  Mike Kestner  <mkestner@novell.com>
9751
9752         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
9753         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
9754
9755 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
9756
9757         * ThemeClearlooks.cs: Initial check-in, activate with
9758           export MONO_THEME=clearlooks
9759         * ThemeEngine.cs: Added ThemeClearlooks
9760
9761 2005-12-03  Mike Kestner  <mkestner@novell.com>
9762
9763         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
9764         [Fixes #76897]
9765
9766 2005-12-02  Jackson Harper  <jackson@ximian.com>
9767
9768         * Form.cs: If the child form has no menu the default main menu is
9769         used as the active menu.
9770
9771 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
9772
9773         * ListBox.cs: Check if any items exist before trying to resolve 
9774           coordinates into items
9775
9776 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9777
9778         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
9779           as the second color for the background hatch
9780
9781 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9782
9783         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
9784         * RichTextBox.cs: FormatText position arguments are 1-based, now making
9785           sure that what we pass to FormatText is always 1-based. Fixes #76885
9786
9787 2005-11-29  Miguel de Icaza  <miguel@novell.com>
9788
9789         * NumericUpDown.cs (EndInit): When we are done initializing,
9790         reflect any updates on the UI.
9791
9792 2005-12-02  Jackson Harper  <jackson@ximian.com>
9793
9794         * ImplicitHScrollBar.cs:
9795         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
9796         their container controls.
9797         * TreeView.cs: Use the new implicit scrollbars.
9798
9799 2005-12-02  Jackson Harper  <jackson@ximian.com>
9800
9801         * TreeView.cs: Make top_node internal so the TreeNodeCollections
9802         can play with it.
9803         * TreeNodeCollection.cs: If we remove the topnode we need to
9804         update topnode to the next node in line.
9805         - When clearing nodes go through the same process as removing
9806         them, so they get depareneted and checked if they are top node.
9807
9808 2005-12-01  Jackson Harper  <jackson@ximian.com>
9809
9810         * TreeView.cs: When imagelists are used the image area is
9811         selectable as well as the text.
9812         - If there are no selected nodes select the first one.
9813         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
9814         so don't do it more then we need to.
9815
9816 2005-12-01  Jackson Harper  <jackson@ximian.com>
9817
9818         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
9819         that arrows can be scaled.
9820
9821 2005-12-01  Jackson Harper  <jackson@ximian.com>
9822
9823         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
9824         fail. Patch by Dieter Bremes
9825
9826 2005-11-30  Jackson Harper  <jackson@ximian.com>
9827
9828         * Form.cs: Property is 2.0 only
9829         * PrintDialog.cs: Signature fix.
9830
9831 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9832
9833         * TextControl.cs: 
9834           - No longer artificially moves text 2 pixels down (now that we have
9835             borders this is no longer needed)
9836           - Added calcs for left, hanging and right indent
9837
9838 2005-11-23  Mike Kestner  <mkestner@novell.com>
9839
9840         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
9841
9842 2005-11-30  Jackson Harper  <jackson@ximian.com>
9843
9844         * MdiChildContext.cs: Set the cloned menus forms, as these don't
9845         get cloned as part of CloneMenu ().
9846         * Menu.cs: Make sure the parent of the items get set correctly
9847         when they are added.  And the owners are notified of the changes.
9848         * Form.cs: Create an ActiveMenu property, so that when MDI is used
9849         we can change the menu being displayed/handled by the form without
9850         changing the menu assosciated with the form.
9851         - Don't let Mdi children draw/handle menus.
9852         
9853 2005-11-30  Jackson Harper  <jackson@ximian.com>
9854
9855         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
9856         a MenuChanged event. Just to make the API a little more
9857         consistent.
9858         * MainMenu.cs:
9859         * MenuItem.cs: Use the new OnMenuChanged
9860         * MdiChildContext.cs: Handle menu merging.
9861         * Form.cs: Implement MergedMenu.
9862         
9863 2005-11-30  Jackson Harper  <jackson@ximian.com>
9864
9865         * Menu.cs: We were misusing Add. Add goes behind the specified
9866         index according to the docs, and does not replace the specified
9867         index. So I added an Insert method.
9868
9869 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9870
9871         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
9872           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
9873           is for Jackson
9874         * RichTextBox.cs: Added calls to base for DnD events
9875
9876 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
9877
9878         * TextControl.cs:
9879           - Fixed drag-selection related crash; style fixes
9880           - Implemented undo class
9881             o Implemented method to capture document state for specified
9882               range in document tree
9883             o Implemented method to restore captured document state
9884             o Implemented cursor tracking
9885             o Implemented basic undo stack
9886           - Added undo cursor tracking to methods altering cursor location
9887           - Added undo tracking to selection deletion (still missing
9888             other text-altering hookups)
9889         * RichTextBox.cs:
9890           - Added SelectionLength property
9891           - Implemented CanPaste()
9892           - Implemented Paste()
9893           - Added missing protected methods
9894           - Fixed RTF->Document conversion; now uses font index 0 and color 
9895             index 0 as the default font for the parsed text
9896           - Fixed RTF<->Document font size translation
9897           - Fixed RTF generation, now properly handles cross-tag boundaries
9898             for single line selection
9899           - No longer always appends blank line to generated RTF
9900           - Removed TODOs
9901           - Added missing attributes
9902           - Hooked up undo-related methods
9903         * TextBoxBase.cs:
9904           - Implemented Copy()
9905           - Implemented Paste()
9906           - Implemented Cut()
9907           - Fixed caret mis-behaviour on backspace across line-boundaries
9908
9909 2005-11-29  Jackson Harper  <jackson@ximian.com>
9910
9911         * MdiClient.cs: Add a method for activating mdi children. Very
9912         basic right now. I imagine someday it might need more girth.
9913         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
9914         children windows names are added to the menu item.
9915         * ThemeWin32Classic.cs: Draw the arrow if the item is an
9916         mdilist. This happens regardless of whether or not there are any
9917         mdi windows to see in the list, and according to my tests happens
9918         before the items are even added. Also happens if there isn't even
9919         an mdi client to get windows from.
9920
9921 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
9922
9923         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
9924         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
9925
9926 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
9927
9928         * DataGridTableStyle.cs:
9929           - Create always the styles for the missing columns even if they are
9930             provided by the user (not default table style)
9931         * DataGrid.cs:
9932           - Fixes bug 76770
9933           - Fixes SetDataBinding (always re-attach source)
9934           - Fixes SetNewDataSource (only clear styles if they are not for 
9935             this source)
9936          -  Expands OnTableStylesCollectionChanged to handle style refresh 
9937             and remove properly
9938
9939 2005-11-29  Jackson Harper  <jackson@ximian.com>
9940
9941         * FileDialog.cs: Implement missing bits, remove some dead
9942         code.
9943         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
9944         creation of the panel so that the options set on the dialog are
9945         seen when the panel is created.
9946         * TreeView.cs: raise a click when items are clicked.
9947         
9948 2005-11-29  Jackson Harper  <jackson@ximian.com>
9949
9950         * MdiClient.cs: Pass some signature methods through to base.
9951
9952 2005-11-28  Jackson Harper  <jackson@ximian.com>
9953
9954         * ListView.cs: Raise the click event when items are clicked.
9955
9956 2005-11-28  Jackson Harper  <jackson@ximian.com>
9957
9958         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
9959         a nullref.
9960
9961 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
9962
9963         * ThemeNice.cs: - Removed 1 pixel bitmaps
9964           - Use SmoothingMode.AntiAlias where it makes sense
9965             (ScrollButton arrow for example)
9966           - Enhanced Button focus drawing
9967           - Fixed ComboBox drawing (no artefacts anymore, focus
9968             rectangle is back again, reduced size of ComboButton, etc.)
9969           - Fixed RadioButton focus drawing for Appearence.Button
9970           - Slight ScrollButton redesign
9971           - Some LinearGradientBrush size fixes
9972           - GroupBoxes have now rounded edges
9973           - Fixed StatusBar drawing
9974
9975 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
9976
9977         * ThemeNice.cs: - Remove dead code
9978           - use correct background colors for menus, etc.
9979           - Fake pixel drawing with 1 pixel bitmaps
9980
9981 2005-11-24  Jackson Harper  <jackson@ximian.com>
9982
9983         * MdiClient.cs: Size the scrollbars when resizing the window.
9984         - Resize the maximized windows when the client is resized
9985         * Form.cs: Make the child context available
9986         
9987 2005-11-23  Jackson Harper  <jackson@ximian.com>
9988
9989         * MdiChildContext.cs: Don't size windows if they are maximized.
9990
9991 2005-11-23  Mike Kestner  <mkestner@novell.com>
9992
9993         * ContextMenu.cs: use MenuTracker.
9994         * Control.cs: remove menu handle usage.
9995         * Form.cs: remove menu handle usage.
9996         * Hwnd.cs: remove menu handle usage.
9997         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
9998         motion and clicks to the new Tracker handlers.
9999         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
10000         and handle usage.
10001         * MenuAPI.cs: refactored to combine popup and menubar event handling.
10002         Killed the MENU and MENUITEM data types and associated collections
10003         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
10004         MenuTracker class that exposes the leftovers from the old MenuAPI
10005         static methods. Restructured Capture handling so that only one grab is
10006         done for the entire menu hierarchy instead of handing off grabs to
10007         submenus. Tracker now has an invisible control to Capture when active.
10008         * MenuItem.cs: add sizing accessors, kill Create
10009         and handle usage.
10010         * Theme.cs: remove menu handle and MENU(ITEM) usage.
10011         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
10012         MENU(ITEM). remove menu handle usage, use Menu directly.
10013         * XplatUIDriver.cs: remove menu handle usage.
10014         * XplatUIOSX.cs: remove menu handle usage.
10015         * XplatUIWin32.cs: remove menu handle usage.
10016         * XplatUIX11.cs: remove menu handle usage.
10017
10018 2005-11-22  Jackson Harper  <jackson@ximian.com>
10019
10020         * Hwnd.cs: Don't compute the menu size for
10021         DefaultClientRectangle.
10022         - Reenable menu sizes being computed for GetClienRectangle.
10023         * Form.cs: Remove comment of trechery
10024         
10025 2005-11-22  Jackson Harper  <jackson@ximian.com>
10026
10027         * Hwnd.cs: The adjustments for the menu bar are made when it is
10028         attached to the form.
10029
10030 2005-11-19  Jackson Harper  <jackson@ximian.com>
10031
10032         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
10033         (just like on windows).
10034
10035 2005-11-19  Jackson Harper  <jackson@ximian.com>
10036
10037         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
10038         use real buttons anymore because they are in non client area. The
10039         one TODO here is that I need to somehow invalidate a section of
10040         the non client area.
10041
10042 2005-11-18  Jackson Harper  <jackson@ximian.com>
10043
10044         * Control.cs: Put the enum check back in now that MDI doesnt have
10045         to use this to set border styles.
10046         * Form.cs: Only set mdi child windows borders if the handle has
10047         been created.
10048         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
10049         this directly on to the driver.
10050         - Get the move start position before adjusting for the titlebar
10051         height, this fixes the windows "skipping" when they are first
10052         moved.
10053
10054 2005-11-18  Jackson Harper  <jackson@ximian.com>
10055
10056         * XplatUIX11.cs: Just compute the mdi borders separately as they
10057         don't totally match up with normal form borders.
10058
10059 2005-11-18  Jackson Harper  <jackson@ximian.com>
10060
10061         * Control.cs: Set WS_ styles for borders, so that the driver does
10062         not have to retrieve the control instance to figure out what kind
10063         of borders it should have.
10064         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
10065         driver can know its an mdi child easily.
10066         * XplatUIX11.cs: Get the border styles and whether the window is
10067         MDI from the Styles and ExStyles params instead of having to get a
10068         control. This prevents a chicken and egg problem.       
10069
10070 2005-11-18  Jackson Harper  <jackson@ximian.com>
10071
10072         * MdiClient.cs: Fix typo so scrollbars show up correctly.
10073
10074 2005-11-18  Jackson Harper  <jackson@ximian.com>
10075
10076         * MdiClient.cs: Calculate when to add and remove scrollbars
10077         correctly.
10078         * MdiChildContext.cs: Adjust the y position to take the titlebar
10079         into account.
10080         - No height for FormBorderStyle.None
10081
10082 2005-11-18  Jackson Harper  <jackson@ximian.com>
10083
10084         * Control.cs: Allow non enum values to be used for
10085         InternalBorderStyle.  MDI does this to set a special border style.
10086         - New utility methods for converting points to/from client coords
10087         - Add the newly created control to the Controls collection before
10088         updating its style. This way UpdateStyle can walk the control
10089         heirarchy to find the control if needed.
10090         so I don't need to create a new Point object all the time.
10091         * Form.cs: Let MDI windows handle their border styles.
10092         - Set styles on MDI windows so the correct title style is derived.
10093         * MdiChildContext.cs: Move all the painting and window handling
10094         into the non client area.
10095         - Use correct sizing and put correct buttons on frames based on
10096         the FormBorderStyle.
10097         - Notify the mdi client about scrolling
10098         - Need to handle the buttons ourselves now, because they are all
10099         in non client areas and we can't add controls there.
10100         * MdiClient.cs: Halfway to scrolling, this implementation is
10101         somewhat broken though, we need to check to make sure other
10102         windows aren't causing scrolling before removing the bars. Also
10103         the bars need to be drawn on top, maybe I can switch implicit
10104         controls to be on top.
10105         * Hwnd.cs: caption_height and tool_caption_height are now
10106         properties of an hwnd, this way they can be set by the driver
10107         based on the type of window they are.  In X11 the window manager
10108         handles the decorations so caption_height is zero unless its an
10109         MDI window.
10110         - Add 3 pixel borders for MDI windows (0xFFFF).
10111         - Get rid of some code duplication, have DefaultClientRectanle
10112         just call GetClientRectangle.
10113         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
10114         Hwnd now.
10115         - Set border styles differently for mdi windows.
10116         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
10117         Hwnd now.
10118         
10119 2005-11-15  Mike Kestner  <mkestner@novell.com>
10120
10121         * Menu.cs: when adding an item to the collection, if item is already 
10122         parented, remove it from the parent.
10123
10124 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
10125
10126         * X11DesktopColors.cs: Added KDE support
10127
10128 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
10129
10130         * XplatUIWin32.cs: 
10131           - Clipboard methods now can translate Rtf format
10132           - No longer removes clipboard contents whenever a new format is added
10133             to allow placing multiple formats on the clipboard
10134         * Clipboard.cs: Clipboard now supports getting a IDataObject and
10135           will place all formats contained in it onto the clipboard. Also
10136           now cleans the clipboard before placing a new object onto it
10137         * RichTextBox.cs:
10138           - Implemented set_Rtf
10139           - Implemented set_SelectedRtf
10140           - Created InsertRTFFromStream() method to allow single code base
10141             for all properties and methods that insert RTF into document
10142           - Removed debug output
10143         * TextControl.cs:
10144           - Fixed Delete(int) to fix up line numbers
10145           - Fixed ReplaceSelection to combine start and end line
10146           - Fixed serious DeleteChars bug that would leave the document tree
10147             broken
10148           - Improved DumpTree with several logic checks to detect broken
10149             document trees
10150           - Removed debug lines
10151           - Fixed Caret.WordForward/WordBack moving code, now always also 
10152             updates caret.tag (fixes crash when word-selecting across tag
10153             boundaries via keyboard)
10154           - Added Insert() method for inserting multiline text into documents
10155           - Fixed DeleteChars() calculation errors that would cause a broken
10156             tag chain with multiple tag lines
10157           - DeleteChars() no longer crashes on multi-tag lines if not all tags
10158           - Split() no longer moves caret if split is at caret location
10159           - ReplaceSelection() now updates the cursor and re-displays it
10160           - ReplaceSelection() now uses new Insert() method to avoid code
10161             duplication
10162           - FormatText() can now handle formatting partial lines
10163         * TextBoxBase.cs:
10164           - Append now uses new TextControl.Insert() method (this avoids 
10165             duplicate code)
10166           - Implemented Ctrl-X (Cut) (
10167           - Implemented Ctrl-C (Copy)
10168           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
10169             regeneration when pasting text; roundtripping Copy&Paste within
10170             edit control still fails due to some calculation bugs in GenerateRTF)
10171           - The Delete key will now remove the current selection if it is visible
10172         * TextBox.cs: Removed debug lines
10173         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
10174           driver to be initialized and can't therefore be done via a static ctor)
10175
10176 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
10177
10178         * TextControl.cs: Added backend code for finding char arrays and strings
10179         * TextBoxBase.cs:
10180           - Added mouse wheel scroll support
10181           - Added support for VScroll and HScroll events
10182         * RichTextBox.cs:
10183           - Implemented all seven Find() variants
10184           - Implemented GetCharFromPosition()
10185           - Implemented GetCharIndexFromPosition()
10186           - Implemented GetLineFromIndex()
10187           - Implemented GetPositionFromCharIndex();
10188           - Implemented SaveFile for PlainText and UnicodeText
10189           - Fixed set_Font, now setting a new font applies that font to
10190             the whole document
10191           - Implemented generic Document to RTF converter
10192           - Implemented SaveFile for RichText format (still missing unicode
10193             conversion for non-ansi chars)
10194           - Implemented get_Rtf
10195           - Implemented get_SelectedRtf
10196
10197 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
10198
10199         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
10200           to allow any captures to be released before triggering OnClick. This
10201           way a click handler may capture the mouse without interference.
10202         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
10203           This way we send them even though X may not allow a grab (if the window
10204           isn't visible, for example)
10205
10206 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
10207
10208         * DataGridViewRowEventArgs.cs: DataGridView implementation
10209         * DataGridViewElement.cs: DataGridView implementation
10210         * DataGridViewComboBoxCell.cs: DataGridView implementation
10211         * DataGridViewDataErrorContexts.cs: DataGridView implementation
10212         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
10213         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
10214         * ImageLayout.cs: DataGridView implementation
10215         * DataGridViewComboBoxColumn.cs: DataGridView implementation
10216         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
10217         * DataGridViewSelectionMode.cs: DataGridView implementation
10218         * IDataGridViewEditingControl.cs: DataGridView implementation
10219         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
10220         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
10221         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
10222         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
10223         * DataGridViewColumnSortMode.cs: DataGridView implementation
10224         * DataGridView.cs: DataGridView implementation
10225         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
10226         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
10227         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
10228         * Padding.cs: DataGridView implementation
10229         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
10230         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
10231         * DataGridViewRowEventHandler.cs: DataGridView implementation
10232         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
10233         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
10234         * DataGridViewButtonCell.cs: DataGridView implementation
10235         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
10236         * DataGridViewEditMode.cs: DataGridView implementation
10237         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
10238         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
10239         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
10240         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
10241         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
10242         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
10243         * DataGridViewCellEventHandler.cs: DataGridView implementation
10244         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
10245         * DataGridViewCellStyleConverter.cs: DataGridView implementation
10246         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
10247         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
10248         * DataGridViewColumnEventArgs.cs: DataGridView implementation
10249         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
10250         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
10251         * QuestionEventArgs.cs: DataGridView implementation
10252         * IDataGridViewEditingCell.cs: DataGridView implementation
10253         * DataGridViewTriState.cs: DataGridView implementation
10254         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
10255         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
10256         * DataGridViewColumnCollection.cs: DataGridView implementation
10257         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
10258         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
10259         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
10260         * DataGridViewColumn.cs: DataGridView implementation
10261         * DataGridViewCellBorderStyle.cs: DataGridView implementation
10262         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
10263         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
10264         * DataGridViewRow.cs: DataGridView implementation
10265         * DataGridViewImageCellLayout.cs: DataGridView implementation
10266         * DataGridViewImageCell.cs: DataGridView implementation
10267         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
10268         * DataGridViewCheckBoxCell.cs: DataGridView implementation
10269         * DataGridViewHeaderCell.cs: DataGridView implementation
10270         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
10271         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
10272         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
10273         * DataGridViewTextBoxColumn.cs: DataGridView implementation
10274         * QuestionEventHandler.cs: DataGridView implementation
10275         * DataGridViewCellStyleScopes.cs: DataGridView implementation
10276         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
10277         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
10278         * DataGridViewCell.cs: DataGridView implementation
10279         * DataGridViewCellEventArgs.cs: DataGridView implementation
10280         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
10281         * DataGridViewCellStyle.cs: DataGridView implementation
10282         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
10283         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
10284         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
10285         * TextFormatFlags.cs: DataGridView implementation
10286         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
10287         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
10288         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
10289         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
10290         * DataGridViewButtonColumn.cs: DataGridView implementation
10291         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
10292         * HandledMouseEventArgs.cs: DataGridView implementation
10293         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
10294         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
10295         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
10296         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
10297         * DataGridViewRowCollection.cs: DataGridView implementation
10298         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
10299         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
10300         * DataGridViewHitTestType.cs: DataGridView implementation
10301         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
10302         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
10303         * DataGridViewColumnEventHandler.cs: DataGridView implementation
10304         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
10305         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
10306         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
10307         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
10308         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
10309         * DataGridViewContentAlignment.cs: DataGridView implementation
10310         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
10311         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
10312         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
10313         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
10314         * DataGridViewPaintParts.cs: DataGridView implementation
10315         * DataGridViewCellCollection.cs: DataGridView implementation
10316         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
10317         * DataGridViewImageColumn.cs: DataGridView implementation
10318         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
10319         * DataGridViewElementStates.cs: DataGridView implementation
10320         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
10321         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
10322         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
10323         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
10324         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
10325         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
10326         * DataGridViewRowHeaderCell.cs: DataGridView implementation
10327         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
10328         * DataGridViewTextBoxCell.cs: DataGridView implementation
10329         * DataGridViewBand.cs: DataGridView implementation
10330         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
10331         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
10332         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
10333         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
10334         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
10335         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
10336         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
10337         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
10338         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
10339         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
10340         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
10341
10342 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
10343
10344         * ThemeWin32Classic.cs: 
10345           - Draw the outside focus rectangle around buttons
10346           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
10347             doesn't use end caps for every dash of a line anymore. This
10348             workaround ignores the forecolor.
10349
10350 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
10351
10352         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
10353           endian safe.
10354
10355 2005-11-07  Jackson Harper  <jackson@ximian.com>
10356
10357         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
10358
10359 2005-11-07  Jackson Harper  <jackson@ximian.com>
10360
10361         * ScrollableControl.cs: Calculate the maximum and change vars
10362         (more) correctly so that scrollbars appear as a sensible size.
10363
10364 2005-11-04  Jackson Harper  <jackson@ximian.com>
10365
10366         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
10367         collection.
10368         * TreeView.cs: When the tree is sorted null out the top_node so
10369         that it is recalculated.
10370         - Use dotted lines instead of dashed lines to match MS better.
10371
10372 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
10373
10374         * ListView.cs: 
10375           - Implements key search for items. Useful when browsing files with FileDialog
10376           - When changing view mode or when clear the items reset scrollbar positions
10377
10378 2005-11-04  Jackson Harper  <jackson@ximian.com>
10379
10380         * CurrencyManager.cs: Implement the MetaDataChanged event, the
10381         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
10382         as to what the method may do as there is no real way of creating a
10383         derived CurrencyManager and calling the method. 
10384
10385 2005-11-03  Jackson Harper  <jackson@ximian.com>
10386
10387         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
10388         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
10389         method which seems to just be used internally to refresh the tabs.
10390
10391 2005-11-03  Jackson Harper  <jackson@ximian.com>
10392
10393         * TabControl.cs: Implement the remove method. Fix some broken
10394         comments.
10395
10396 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10397
10398         * DateTimePicker.cs:
10399           - Added missing DateTimePickerAccessibleObject class
10400           - Added missing events
10401           - Added OnFontChanged method
10402         * Form.cs: Added missing attributes
10403         * TreeView.cs: Added missing attributes
10404
10405 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
10406
10407         * GridItemCollection.cs: Fix signatures
10408
10409 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10410
10411         * XplatUI.cs: Updated build rev/date
10412         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
10413           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
10414         * Application.cs: Trigger context-specific ExitThread events
10415
10416 2005-11-03  Jackson Harper  <jackson@ximian.com>
10417
10418         * Menu.cs:
10419         * MainMenu.cs:
10420         * GridTableStylesCollection.cs:
10421         * Timer.cs:
10422         * TabPage.cs:
10423         * HelpProvider.cs:
10424         * StatusBar.cs:
10425         * MonthCalendar.cs: Signature fixes
10426
10427 2005-11-03  Jackson Harper  <jackson@ximian.com>
10428
10429         * TreeNodeCollection.cs: Remove should not be virtual.
10430         * TreeView.cs: Implement the last of the missing methods.
10431
10432 2005-11-03  Jackson Harper  <jackson@ximian.com>
10433
10434         * TreeNodeConverter.cs: Implement to get off my class-status back.
10435
10436 2005-11-03  Jackson Harper  <jackson@ximian.com>
10437
10438         * TreeView.cs: Hookup the bits for drag and drop.
10439         * TreeNode.cs: Don't cache the tree_view or index anymore, now
10440         that nodes can be moved from tree to tree easily this just causes
10441         all sorts of problems.
10442         * TreeNodeCollection: Don't need to give treenodes an index and
10443         treeview anymore when they are added, these are computed on the
10444         fly. Also make sure to remove a node before its added.
10445
10446 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10447
10448         * TextControl.cs:
10449           - Added CaretSelection enum
10450           - Added comparison methods to Marker struct, makes selection code
10451             more readable
10452           - Added SelectionStart and SelectionEnd as 'moveable' location for
10453             the CaretDirection enum and handler
10454           - Added selection_prev variable to track optimized invalidation for
10455             word and line selection
10456           - Added SelectionVisible property (returns true if there is a valid 
10457             selection)
10458           - Switched CaretHasFocus to only display the caret if there is no
10459             visible selection
10460           - Avoiding StringBuilder.ToString to retrieve a single char, instead
10461             using the direct character index; should be much faster
10462           - Added various conditional debug statements
10463           - Fixed invalidation calculation for selection ranges
10464           - Added ExpandSelection() method to support word and line selection
10465           - Switched SetSelectionToCaret to use new Marker compare overloads
10466           - Added central IsWordSeparator() method to determine word 
10467             separators/whitespace and FindWordSeparator() to streamline common
10468             usage of IsWordSeparator()
10469         * TextBoxBase.cs:
10470           - Removed unneeded grabbed variable, it was just mirroring
10471             Control.Capture
10472           - No longer firing OnTextChanged event when Text setter is called,
10473             since the base will fire the event for us
10474           - Added handling of Ctrl-Up/Down selection
10475           - Added handling of Shift-Cursorkey selection
10476           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
10477             words
10478           - Added handling of Shift and Ctrl-Shift-Home/End selection
10479           - Removed some debug output
10480           - Added handling for single/double/tripple-click to place caret/
10481             select word/select line respectively (Fixes bug #76031)
10482           - Added support for drag expansion of word/line selection
10483         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
10484           current selection
10485
10486 2005-11-02  Jackson Harper  <jackson@ximian.com>
10487
10488         * X11Dnd.cs: If the drag is going to and from a MWF window just
10489         copy the data instead of sending it out through the X Selection
10490         mechanism.
10491
10492 2005-11-02  Jackson Harper  <jackson@ximian.com>
10493
10494         * X11Dnd.cs:
10495         * XplatUIX11.cs: When in a drag we don't want motion notify
10496         messages to get passed on to the other controls. This prevents
10497         mouse move messages from showing up in the drag source.
10498
10499 2005-11-02  Jackson Harper  <jackson@ximian.com>
10500
10501         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
10502         the correct button is release to end a drag.
10503         * XplatUIX11.cs: Make the button state internal so the drag system
10504         can access it.  Dragging needs to know about all button releases,
10505         not just left button.
10506
10507 2005-11-02  Miguel de Icaza  <miguel@novell.com>
10508
10509         * Form.cs (Icon): If the icon is null, reset the icon to the
10510         default value. 
10511
10512         * Cursor.cs: When writing the AND-mask bitmap do not include the
10513         number of colors, but hardcode those to two (black and white),
10514         fixes the loading of color cursors (Paint Dot Net).
10515
10516         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
10517         turn off autoscaling.
10518
10519         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
10520
10521 2005-11-02  Jackson Harper  <jackson@ximian.com>
10522
10523         * X11Dnd.cs: Make sure to send a status message if the pointer
10524         enters a control that can not accept a drop, otherwise the cursor
10525         isn't updated correctly. Also tried to compress the lines of code
10526         a bit.
10527
10528 2005-11-02  Jackson Harper  <jackson@ximian.com>
10529
10530         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
10531         set actions correctly.  This isn't perfect as XDND and win32 have
10532         some differences on how you allow actions. I'll clear this up by
10533         adding a path for drag from MWF to MWF windows.
10534         * XplatUIX11.cs: Hook into the dnd system.
10535
10536 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
10537
10538         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
10539         previously shown but they are no longer need it. Very obvious when 
10540         browsing files with FileDialog.
10541
10542 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
10543
10544         * Control.cs: We always need to call OnPaintBackground. We pretty much
10545           ignore AllPaintingInWmPaint and always do the painting there, whether 
10546           it's set or not, since we always ignore the WM_ERASEBKGND message 
10547           (which we don't generate on X11). This fixes #76616.
10548         * Panel.cs: Removed unneeded background painting. This happens properly
10549           in Control.cs already
10550
10551 2005-10-31  Mike Kestner  <mkestner@novell.com>
10552
10553         * Menu.cs: Add items to collection before setting their index.
10554         * MenuItem.cs : add range checking with ArgumentException like MS.
10555         [Fixes #76510]
10556
10557 2005-10-31  Jackson Harper  <jackson@ximian.com>
10558
10559         * ListBox.cs: Invalidate if the area is visible at all not just
10560         contained in the visible rect. Fixes unselection of semi visible
10561         items.
10562
10563 2005-10-31  Jackson Harper  <jackson@ximian.com>
10564
10565         * Control.cs: Consistently name the dnd methods. Make them
10566         internal so we can override them to match some MS behavoir
10567         internally.
10568         * Win32DnD.cs: Use the new consistent names.
10569
10570 2005-10-31  Jackson Harper  <jackson@ximian.com>
10571
10572         * TreeView.cs: Don't draw the selected node when we lose focus.
10573
10574 2005-10-31  Jackson Harper  <jackson@ximian.com>
10575
10576         * X11Dnd.cs: We still need to reset the state even though a full
10577         reset isn't being done, otherwise status's still get sent all over
10578         the place.
10579
10580 2005-10-31  Jackson Harper  <jackson@ximian.com>
10581
10582         * Control.cs: Make the dnd_aware flag internal so the dnd
10583         subsystem can check it. Catch exceptions thrown in dnd handlers to
10584         match MS behavoir.
10585         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
10586         * X11Dnd.cs: Handle null data in the converters. Set the XDND
10587         version when sending a XdndEnter. Use the control/hwnd dnd_aware
10588         flags to reduce the number of dnd enters/status's sent.
10589
10590 2005-10-31  Jackson Harper  <jackson@ximian.com>
10591
10592         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
10593
10594 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
10595
10596         * PictureBox.cs: Fixes 76512
10597
10598 2005-10-28  Jackson Harper  <jackson@ximian.com>
10599
10600         * X11Dnd.cs: Early implementation to support winforms being a drag
10601         source for data on X11. Also restructured the converters so they
10602         can go both ways now.
10603         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
10604         
10605 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
10606
10607         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
10608           clipboard requests
10609
10610 2005-10-27  Jackson Harper  <jackson@ximian.com>
10611
10612         * TreeNode.cs: Implement serialization so my DnD examples will work.
10613
10614 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
10615
10616         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
10617           TreeView.cs: Don't dispose objects that are not owned.
10618           
10619 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
10620
10621         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
10622           should retrieve the current cursor and report that, but XplatUI
10623           doesn't (yet) have an interface for that (and I'm not sure I even
10624           can, on X11)
10625         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
10626           until any message loop processing is done (and the WM_SETCURSOR
10627           replaces the cursor to the proper one)
10628         * XplatUIX11.cs: 
10629           - Fixed override behaviour, we can't set the cursor globally on X11, 
10630             just for our windows.
10631           - Invalidating the System.Drawing X11 display handle when we are
10632             shutting down
10633         * Control.cs: Fix to make csc happy
10634
10635 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
10636
10637         * TextBoxBase.cs: 
10638           - get_Text: Add last line (without trailing newline) to returned
10639             value (Fixes 76212)
10640           - get_TextLength: Count last line in returned length
10641           - ToString: Call Text property instead of duplicating code
10642
10643 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
10644
10645         * ImageList.cs: Dispose ImageAttributes objects.
10646
10647 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10648
10649         * ImageList.cs: Use attribute constructors with less arguments where
10650           possible.
10651
10652 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10653
10654         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
10655           Use typeof instead of strings when assembly is referenced. Added
10656           some more comments.
10657
10658 2005-10-21  Jackson Harper  <jackson@ximian.com>
10659
10660         * ListView.cs: Raise a double click event. Also tried to somewhat
10661         fix when the selectedindexchanged event is raised. Its still
10662         broken though.
10663
10664 2005-10-21  Jackson Harper  <jackson@ximian.com>
10665
10666         * TreeView.cs: New method to invalidate the plus minus area of a
10667         node without invalidating the whole node (maybe this can be used
10668         in some more places).
10669         * TreeNodeCollection.cs: When adding to an empty node we need to
10670         invalidate its plus minus area so the little block shows up.
10671         
10672 2005-10-21  Jackson Harper  <jackson@ximian.com>
10673
10674         * TreeView.cs: Make sure that when we invalidate a node the bounds
10675         are big enough to cover the selected box and the focus
10676         rectangle. Use a different colour for the lines connecting nodes
10677         so they show up with all themes.
10678
10679 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10680
10681         * NativeWindow.cs: Don't call anything that could call into the driver,
10682           we might be on a different thread.
10683
10684 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
10685
10686         * Control.cs(Dispose): Since Dispose might run on a different thread,
10687           make sure that we call methods that could call into the driver via
10688           invoke, to avoid thread issues
10689
10690 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10691
10692         * XplatUI.cs: Removed finalizer
10693         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
10694           not allowing to be called on the finalizer thread.
10695
10696 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
10697
10698         * ImageList.cs:
10699           - Reverted r51889 and r51891.
10700           - Added ImageListItem class that stores unmodified image items and image
10701             properties required to create list images until handle is created.
10702           - Added AddItem and moved image creation logic to AddItemInternal.
10703           - Added CreateHandle method that creates images based on unmodified items.
10704           - Added DestroyHandle that changes state to store unmodified items.
10705           - Add and AddStrip methods no more create handle.
10706           - ReduceColorDepth has no return value.
10707           - Dispose destroys handle.
10708           - Modified other methods to reflect the above changes.
10709           - Implemented key support.
10710           - Added profile 2.0 members and attributes.
10711           - Added private Reset and ShouldSerialize methods that provide the same
10712             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
10713             them as they are private.
10714           - Added some more comments about implementation details.
10715
10716 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10717
10718         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
10719
10720 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10721
10722         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
10723
10724 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10725
10726         * DataGridDrawingLogic.cs: Fixes column hit calcultation
10727         * DataGridColumnStyle.cs: Remove debug message
10728
10729 2005-10-20  Jackson Harper  <jackson@ximian.com>
10730
10731         * TreeView.cs: We can always get input keys regardless of whether
10732         or not editing is enabled. They are used for navigation.
10733
10734 2005-10-20  Jackson Harper  <jackson@ximian.com>
10735
10736         * TreeNode.cs: Use the viewport rect for determining if a node
10737         needs to be moved for visibility. Don't use Begin/End edit. This
10738         calls a full refresh when its done.
10739         * TreeView.cs: New SetBottom works correctly.  Make the viewport
10740         rect property internal so the treenodes can see it. When clicking
10741         on a node we need to ensure that its visible because it might just
10742         be partly visible when clicked.
10743
10744 2005-10-20  Jackson Harper  <jackson@ximian.com>
10745
10746         * TreeNodeCollection.cs: Remove debug code.
10747
10748 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10749
10750         * Datagrid.cs: Implements column sorting in Datagrid
10751         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
10752
10753 2005-10-20  Jackson Harper  <jackson@ximian.com>
10754
10755         * TreeNodeCollection.cs: Remove items properly. Update the correct
10756         area after removing them.
10757
10758 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10759
10760         * Datagrid.cs: Should not call base.OnPaintBackground
10761
10762 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10763
10764         * XplatUIX11.cs (GetMessage):
10765           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
10766             window instead of client window
10767           - Now properly calculates NC_xBUTTONUP message coordinates
10768           - ScreenToMenu now properly calculates it's coordinates of whole 
10769             window, since menus are in the whole window, not in the client
10770             window
10771           - Added WholeToScreen coordinate translation method
10772
10773 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
10774
10775         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
10776           want to return a message, loop back to the beginning of the function
10777           and grab the next real message to process instead.
10778
10779 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10780
10781         * Splitter.cs: Properly set limits if no filler control is used
10782
10783 2005-10-19  Jackson Harper  <jackson@ximian.com>
10784
10785         * ColorDialog.cs: Don't show the help button if it is not enabled
10786         instead of disabling it (this is what MS does). Don't create the
10787         panel until the dialog is run, otherwise the vars (such as
10788         ShowHelp) are not set yet.
10789
10790 2005-10-19  Jackson Harper  <jackson@ximian.com>
10791
10792         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
10793         are reduced when adding nodes.
10794         * TreeNode.cs:
10795         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
10796         tree.
10797         
10798 2005-10-19  Jackson Harper  <jackson@ximian.com>
10799
10800         * FolderBrowserDialog.cs: End editing our treeview so the window
10801         actually gets refreshed.
10802
10803 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10804
10805         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
10806           Obsoleted handling of WM_ERASEBKGND, now always draws our background
10807           inside of WM_PAINT
10808
10809 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10810
10811         * MenuAPI.cs: Returns after Hidding window
10812         * XplatUIX11.cs: Added TODO found while debugging menu issues
10813
10814 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10815
10816         * XplatUIX11.cs: Do not re-map the whole window when it's size
10817           becomes non-zero unless it's supposed to be actually visible
10818
10819 2005-10-18  Jackson Harper  <jackson@ximian.com>
10820
10821         * TreeView.cs: We don't need to keep a count anymore.
10822         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
10823         use the Grow method.
10824
10825 2005-10-18  Jackson Harper  <jackson@ximian.com>
10826
10827         * TreeNodeCollection.cs: Insert is not supported on arrays, so
10828         implement it manually here.
10829
10830 2005-10-18  Jackson Harper  <jackson@ximian.com>
10831
10832         * ImageList.cs: Dont kill the list when the colour depth is
10833         changed, just change the colour depth of all the images.
10834         - Same goes for setting the image size. Just resize them all
10835         instead of killing the list softly.
10836
10837 2005-10-18  Jackson Harper  <jackson@ximian.com>
10838
10839         * Control.cs: Don't invalidate empty rectangles.
10840
10841 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10842
10843         * ListViewItem.cs:
10844           - Adds checked item to the Checked/Item lists (where empty before)
10845           - Do not add items to the Selected lists if they are already present
10846         * ListView.cs:
10847           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
10848           - When deleting items make sure that we delete them for the Selected
10849           and Checked list also.
10850
10851 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10852
10853         * Label.cs: Dispose objects no longer used
10854         * ThemeWin32Classic.cs: Dispose objects no longer used
10855
10856 2005-10-18  Jackson Harper  <jackson@ximian.com>
10857
10858         * TabControl.cs: Don't refresh the whole control when the tabs are
10859         scrolled, we just need to refresh the tab area.
10860
10861 2005-10-17  Jackson Harper  <jackson@ximian.com>
10862
10863         * XplatUIX11.cs: Compress code a little bit. Only calculate the
10864         after handle when we need it.
10865
10866 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10867
10868         * Control.cs: When the parent size changes, recalculate anchor 
10869           positions. Partial fix for #76462
10870
10871 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10872
10873         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
10874           drawn. Fixes #76462
10875
10876 2005-10-17  Jackson Harper  <jackson@ximian.com>
10877
10878         * MonthCalendar.cs: Don't create the numeric up down until our
10879         handle is created. Otherwise our handle is created in the
10880         constructor and we don't know if we are a WS_CHILD or WS_POPUP
10881         yet.
10882
10883 2005-10-17  Jackson Harper  <jackson@ximian.com>
10884
10885         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
10886         correctly.
10887
10888 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10889         * TreeNode.cs : small logical fix (was using local var instead of field)
10890         
10891 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10892
10893         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
10894
10895 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10896
10897         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
10898
10899 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
10900
10901         * Control.cs: 
10902           - Re-implemented anchoring code. My first version was really broken.
10903             This fixes bug #76033. Unlike the previous implementation we will
10904             no longer have round errors since all numbers are calculated from
10905             scratch every time. Removed various anchor-related obsolete vars.
10906           - InitLayout no longer causes layout event firing and layout to be 
10907             performed
10908
10909 2005-10-16  Jackson Harper  <jackson@ximian.com>
10910
10911         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
10912         which was broken).
10913
10914 2005-10-16  Jackson Harper  <jackson@ximian.com>
10915
10916         * TabControl.cs: Remove debug code.
10917
10918 2005-10-16  Jackson Harper  <jackson@ximian.com>
10919
10920         * XEventQueue.cs: Increase the default queue size (very simple
10921         apps needed to grow the queue).
10922         * Hwnd.cs: No finalizer so we don't need to suppress
10923         finalization. Compute the invalid area manually so a new rectangle
10924         does not newto be created.
10925         * ScrollableControl.cs: Don't set any params (otherwise visibility
10926         isn't set correctly).
10927         * MdiChildContext.cs: New constructor takes the mdi parent so it
10928         doesn't have to be computed and avoids a crash on windows. Draw
10929         the window icon properly, and allow the text to be seen.
10930         * Form.cs: Use new MdiChildContext constructor. Make sure the
10931         child context isn't null in wndproc.
10932         * TabControl.cs: Don't set focus, this is muddling keyboard
10933         behavoir. Expand the tab rows when a window size increase will
10934         allow extra tabs to be seen. Don't allow tabs smaller than the
10935         width of a window to be scrolled out of view.
10936         * TreeNode.cs:
10937         * TreeView.cs: Use measure string to calculate a nodes width, the
10938         width is cached and only updated when the text or the font is
10939         changed. Don't check for expand/collapse clicks on the first level
10940         nodes if root lines are disabled.
10941         
10942 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
10943
10944         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
10945
10946 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10947
10948         * DataGridBoolColumn.cs: fixes warning
10949
10950 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10951
10952         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
10953         to match more to match more precisely the MS Net behavior
10954
10955 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10956
10957         * Hwnd.cs: Added field to track if window is mapped
10958         * XplatUIX11.cs: 
10959           - Unmap windows if they become 0-size, re-map when 
10960             they are >0 again; fixes #76035
10961           - Re-set our error handler after initializing X11Desktop
10962             to override any error handlers Gtk or whatever was called
10963             may have set.
10964
10965 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10966
10967         * CheckedListBox.cs: Removed unused vars
10968         * ListView.cs: Fixed signatures
10969         * RichTextBox.cs: Removed unused vars
10970         * TextBoxBase.cs: Removed unused vars
10971         * XplatUIWin32.cs: Removed unused vars
10972         * XplatUIX11.cs: Removed unused vars
10973         * XplatUI.cs: Updated version and date to latest published
10974
10975 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10976
10977         * Cursor.cs: Added private .ctor to work around a bug in
10978           resourceset (Thanks to Geoff Norton for the help on this)
10979         * SplitterEventArgs.cs: Made fields accessible so we don't
10980           waste boatloads of objects and can reuse the same one
10981           in Splitter
10982         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
10983           any captions and borders when generating screen coordinates
10984         * Splitter.cs: Reimplemented control, now fully complete, uses
10985           rubberband drawing, supports and obeys all properties, has
10986           proper cursors
10987
10988 2005-10-13  Miguel de Icaza  <miguel@novell.com>
10989
10990         * Form.cs (Form): Setup default values for autoscale and
10991         autoscale_base_size;  Make these instance variables, not static
10992         variables. 
10993
10994         (OnLoad): on the first load, adjust the size of the form.
10995
10996 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10997
10998         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
10999           width argument to DrawReversibleRectangle()
11000         * XplatUIWin32.cs, XplatUIX11.cs: 
11001           - Implemented width for DrawReversibleRectangle()
11002           - Added logic to DrawReversibleRectangle that recognizes a zero
11003             width or height and only draws a line in that situation
11004         
11005 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
11006
11007         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
11008         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
11009         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
11010           method (it uses our FosterParent window to get a graphics context)
11011
11012 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
11013
11014         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
11015           and SetWindowBackground methods
11016         * Control.cs:
11017           - Setting proper ControlStyles
11018           - We no longer call XplatUI.SetWindowBackground and XplatUI.
11019             EraseWindowBackground, instead we draw the window background
11020             ourselves in PaintControlBackground. This behaviour is
11021             required to match MS, where, when OnPaintBackground is not
11022             called, the background is not drawn.
11023           - Removed unneeded Refresh() in set_Text
11024         * Hwnd.cs: Dropped the ErasePending support. No longer needed
11025         * XplatUIX11.cs:
11026           - Created DeriveStyles method to translate from CreateParams to
11027             FormBorderStyle and TitleStyle, also handles BorderStyle (which
11028             matches FormBorderStyle enum values)
11029           - Consolidated SetHwndStyles and CalculateWindowRect border/title
11030             style calculations into single DeriveStyles method
11031           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
11032             from redrawing the whole window on any resize or expose.
11033           - Fixed CreateWindow usage of SetWindowValuemask. Before not
11034             all styles were applied to our whole/client window appropriately
11035           - Removed EraseWindowBackground() and SetWindowBackground() methods
11036           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
11037             no longer clear/redraw the background through X
11038           - Removed handling of erase_pending bit, we have no use for it (or
11039             so it seems)
11040         * XplatUIOSX.cs:
11041           - Removed generation and handling of WM_ERASEBKGND message
11042           - Removed EraseWindowBackground() and SetWindowBackground() methods
11043           - Removed handling of hwnd.ErasePending flag
11044         * XplatUIWin32.cs:
11045           - Removed EraseWindowBackground() and SetWindowBackground() methods
11046           - We no longer call EraseWindowBackground on PaintEventStart, we 
11047             ignore the fErase flag, erasing is handled in Control in the
11048             background handler
11049         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
11050           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
11051           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
11052           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
11053           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
11054           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
11055           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
11056
11057 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
11058
11059         * PropertyGrids.cs: Get sub properties
11060         * PropertyGridView.cs: Fix drawing code
11061
11062 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11063
11064         * ListBox.cs: Fixes 76383
11065
11066 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11067
11068         * DataGridTextBoxColumn.cs: Sets location and size before attachment
11069         * ThemeWin32Classic.cs: Fixes border drawing and calculations
11070         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
11071
11072
11073 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11074
11075         * ComboBox.cs: Fixes border drawing
11076
11077 2005-10-10  Miguel de Icaza  <miguel@novell.com>
11078
11079         * MimeIcon.cs: Ignore errors if the file can not be read.
11080
11081 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11082
11083         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
11084          - Fixed border calculations
11085          - Fixed horizontal scrolling in single column listboxes
11086          - Fixed drawing issues
11087
11088 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
11089
11090         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
11091           FormBorderStyle enum
11092         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
11093           code to determine FormBorderStyles from CreateParams
11094         * Form.cs:
11095           - Fixed bug where we'd set the wrong window styles if we were
11096             not creating an MDI window
11097           - Added call to XplatUI.SetBorderStyle when form borders are set
11098         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
11099         * Hwnd.cs:
11100           - Removed obsolete edge style
11101           - Switched from BorderStyle to FormBorderStyle
11102         
11103 2005-10-10  Jackson Harper  <jackson@ximian.com>
11104
11105         * Form.cs: Use the property to get the window handle instead of
11106         accessing it directly. Prevents a null reference exception.
11107
11108 2005-10-10  Jackson Harper  <jackson@ximian.com>
11109
11110         * TreeView.cs: Don't adjust the rect given to DrawString now that
11111         our libgdiplus draws correctly.
11112
11113 2005-10-08  Jackson Harper  <jackson@ximian.com>
11114
11115         * TreeView.cs: Don't try to find the clicked on node if there are
11116         no nodes in the tree.
11117
11118 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11119
11120         * RichTextBox.cs:
11121
11122           restore
11123
11124 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11125
11126         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
11127           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
11128           ErrorProvider.cs:
11129           Use ResPool for brushes and dispose System.Drawing objects that
11130           are not used anymore.
11131
11132 2005-10-07  Jackson Harper  <jackson@ximian.com>
11133
11134         * MdiChildContext.cs: Use the new borders instead of drawing them
11135         ourselves.
11136
11137 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11138
11139         * Calling UpdateBounds after changing the window's BorderStyle 
11140         since the style can change the ClientSize
11141
11142 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11143
11144         * Control.cs: Made PaintControlBackground virtual
11145         * Panel.cs: Overriding PaintControlBackground instead of using paint
11146           event; paint event method was interfering with 'real' users of the
11147           event.
11148
11149 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11150
11151         * ThemeWin32Classic.cs: remove border drawing since it is handled
11152         by the base control class now and was causing double border drawing.
11153
11154 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11155
11156         * Panel.cs: Redraw our background on paint. Not a pretty solution,
11157           but it does seem to match MS behaviour. This fixes bug #75324
11158
11159 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11160
11161         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
11162           somewhat hackish looking
11163
11164 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11165
11166         * TextBoxBase.cs:
11167           - We now accept Enter even if AcceptEnter is false, if the containing
11168             form does not have an AcceptButton configured (fixes bug #76355)
11169           - Calculations are now fixed to no longer use Width/Height, but
11170             ClientSize.Width/Height, since we now support borders (this was
11171             a result of fixing borders and therefore bug #76166)
11172           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
11173             true (fixes bug #76354)
11174         
11175 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11176
11177         * Control.cs: 
11178           - Defaulting BorderStyle and setting it in XplatUI when our window 
11179             is created
11180           - Added enum check to InternalBorderStyle setter
11181         * XplatUIX11.cs: 
11182           - Added drawing of window borders
11183           - Now properly calculates WM decorations offset for toplevel 
11184             windows (fixes bug #74763)
11185         * XplatUIWin32.cs: 
11186           - Implemented BorderStyles for windows (we're letting win32 draw 
11187             the border for us)
11188           - Fixed the signature for SetWindowLong
11189         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
11190           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
11191           setting borders
11192         * UpDownBase.cs: Remove drawing of borders, this is handled by
11193           the driver, outside the client area
11194         * ListView.cs: Removed bogus border calculations. The control should
11195           be oblivious to borders, since those are not part of the client
11196           area. 
11197         * X11DesktopColors.cs: Commented out (currently) unneeded variables
11198         * ThemeWin32Classic.cs: Removed border calculations from ListView 
11199           drawing code
11200
11201 2005-10-06  Jackson Harper  <jackson@ximian.com>
11202
11203         * MdiChildContext.cs: Clear out the old virtual position remove
11204         all the unneeded calls to CreateGraphics.
11205
11206 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11207
11208         * TextControl.cs: Use proper color for highlighted text; fixes #76350
11209
11210 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11211
11212         * Form.cs: 
11213           - Added loading and setting of our new default icon
11214           - Only set icon if window is already created
11215
11216 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11217
11218         * Label.cs:
11219           - Do not explicitly set the foreground and background colors, to
11220             allow inheriting from parents (fixes #76302)
11221           - Use Control's InternalBorderStyle property to deal with borders
11222
11223 2005-10-06  Jackson Harper  <jackson@ximian.com>
11224
11225         * MdiChildContext.cs: Use the new xplatui function to draw a
11226         reversible rect.
11227
11228 2005-10-06  Jackson Harper  <jackson@ximian.com>
11229
11230         * Form.cs: Add the parent before creating the child context cause
11231         we need the parent when setting up the child.
11232
11233 2005-10-06  Jackson Harper  <jackson@ximian.com>
11234
11235         * FolderBrowserDialog.cs: redo the tree population code so a
11236         second thread isn't used. Should be a lot faster and more stable
11237         now.
11238
11239 2005-10-05  Jackson Harper  <jackson@ximian.com>
11240
11241         * TreeView.cs: There are no expand/collapse boxes if the node has
11242         no children.
11243
11244 2005-10-05  Jackson Harper  <jackson@ximian.com>
11245
11246         * X11DesktopColors.cs: Get menu colours for the gtk theme.
11247
11248 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
11249
11250         * FileDialog.cs: Fix InitialDirectory
11251
11252 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11253
11254         * ComboBox.cs:
11255                 - Fixes changing between styles
11256                 - Fixes simple mode
11257                 - Fixes last item crashing when navigating with keyboard
11258
11259 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11260
11261         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
11262
11263 2005-10-05  Jackson Harper  <jackson@ximian.com>
11264
11265         * TreeView.cs: If updating the root node do a full refresh.
11266         * TreeNode.cs: The root node should be expanded by default. Also
11267         added a utility prop to tell if we are the root node.
11268         * TreeNodeCollection.cs: Only refresh if the node we are being
11269         added to is expanded. Also added a comment on a potential
11270         optimization.
11271         
11272 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
11273
11274         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
11275           in dispose method. Fixes #76330
11276
11277 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
11278
11279         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
11280
11281                 - Implements vertical and horizontal scrolling using XplatUI
11282                 - Fixes keyboard navagation
11283                 - Fixes EnsureVisible
11284                 - Drawing fixes
11285                 - Handles and draws focus properly
11286
11287
11288 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
11289
11290         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
11291           Create handle. NET_2_0: Destroy handle when value is null.
11292
11293 2005-10-03  Jackson Harper  <jackson@ximian.com>
11294
11295         * ScrollBar.cs: My last scrollbar patch was broken. This is a
11296         revert and a new patch to prevent the thumb from refreshing so
11297         much.
11298
11299 2005-10-02  Jackson Harper  <jackson@ximian.com>
11300
11301         * ScrollBar.cs: Don't update position if it hasn't actually
11302         changed. This occurs when you hold down the increment/decrement
11303         buttons and the thumb gets to the max/min.
11304
11305 2005-10-01  Jackson Harper  <jackson@ximian.com>
11306
11307         * Form.cs:
11308         * MdiChildContext.cs:
11309         * MdiClient.cs: Implement ActiveMdiChild in Form.
11310
11311 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
11312
11313         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
11314
11315 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
11316
11317         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
11318           be found
11319
11320 2005-09-30  Jackson Harper  <jackson@ximian.com>
11321
11322         * ListBox.cs: Don't do a full refresh unless some data has
11323         actually changed.
11324
11325 2005-09-30  Jackson Harper  <jackson@ximian.com>
11326
11327         * TreeView.cs: Make sure that the checkboxes size is factored in
11328         even when not visible.
11329
11330 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11331
11332         * FileDialog.cs: Fix Jordi's build break
11333
11334 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11335
11336         * FileDialog.cs: 
11337                 - Use standard the Windows colours for the combobox as espected
11338                 - Dispose objects that use resouces when no longer need them
11339
11340 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11341
11342         * X11DesktopColors.cs: Initial incomplete implementation
11343         * XplatUIX11.cs: Added call to initialize X11DesktopColors
11344
11345 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
11346
11347         * Theme.cs: 
11348           - Switched Theme color names to match the names defined in 
11349             System.Drawing.KnownColors. Life's hard enough, no need to make 
11350             it harder.
11351           - Added setters to all theme color properties so themes can set
11352             their color schemes. The setters also propagate the color changes
11353             to System.Drawing.KnownColors via reflection
11354         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
11355           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
11356           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
11357           use the new, more logical theme color names
11358         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
11359           post-NT colors
11360         * ThemeWin32Classic.cs:
11361           - Removed code to set the old classic Windows colors. Instead it
11362             now relies on the colors returned by System.Drawing.KnownColors
11363             which will be either modern static colors (Unix) or colors
11364             read from the user's configuration (Win32)
11365           - Updated to use the new, more logical theme color names
11366           - Switched DataGrid drawing code to use only Theme colors instead of
11367             a mix of System.Drawing.KnownColors and Theme colors
11368           - DrawFrameControl(): Removed code that fills the button area, the
11369             fill would overwrite any previous fill done by a control. This
11370             fixes bug #75338 
11371           - Added DrawReversibleRectangle() stub
11372         * ScrollableControl.cs: Set visible state to false when scrollbars
11373           are removed (pdn fix)
11374         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
11375           DrawReversibleRectangle() method to allow drawing primitive 
11376           'rubber bands'
11377         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
11378
11379 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11380
11381         * ImageList.cs: Add(Icon): Create handle.
11382
11383 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11384
11385         * ListView.cs:
11386         * ThemeWin32Classic.cs:
11387                 - Fixes detail mode
11388                 - Sets clippings
11389                 - Issues with drawing
11390
11391 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11392
11393         * ImageList.cs: Moved RecreateHandle back to ImageList as event
11394           source has to be the ImageList.
11395
11396 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11397
11398         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
11399
11400 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11401
11402         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
11403
11404 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11405
11406         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
11407
11408 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
11409         * GridItem.cs: Fixed TODOs
11410         * GridItemCollection.cs: Added ICollection interface
11411
11412 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11413
11414         * ImageList.cs: Resize icons when needed.
11415
11416 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
11417
11418         * ListViewItem.cs
11419                 - Fixes GetBounds and returns on screen rects
11420         * ListView.cs:
11421                 - Fixes vertical and horzintal scrolling of items
11422         * ThemeWin32Classic.cs:
11423                 - Fixes drawing
11424                 
11425 2005-09-29  Raja R Harinath  <harinath@gmail.com>
11426
11427         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
11428
11429 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
11430
11431         * ImageList.cs: Added comments about handle creation. Moved Handle,
11432           HandleCreated and OnRecreateHandle implementations to ImageCollection.
11433           Handle is created in Add methods.
11434
11435 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11436          
11437         * DataGridDrawingLogic.cs: 
11438                 - Takes rows into account on Colum calculations
11439                 - Returns the column when clickig
11440         * DataGrid.cs:
11441                 - Fixes default HitTestInfo values
11442                 - Fixes HitTestInfo.ToString
11443                 - Fixes ResetBackColor          
11444         
11445 2005-09-28  Jackson Harper  <jackson@ximian.com>
11446
11447         * MdiChildContext.cs: Obey rules for fixed sized windows (no
11448         sizing or cursor changes). Also added some temp code to draw the
11449         titlebars text (Makes dev a little easier).
11450
11451 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11452
11453         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
11454
11455 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11456          
11457         * ListBox.cs: Fixes bug 76253
11458
11459 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11460
11461         * ImageList.cs: Added comments about the current implementation. Added
11462           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
11463           Format32bppArgb to preserve transparency and can use Graphics.FromImage
11464           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
11465           with Bitmap.LockBits for better performance. Revised the whole file to
11466           match MS.NET behaviour and provide better performance. Non-public
11467           interface members are calling public members even when they throw
11468           NotSupportedException for better maintainability. Moved ColorDepth,
11469           ImageSize, ImageStream and TransparentColor implementations to
11470           ImageCollection for better performance as these properties are not used
11471           by ImageList.
11472         * ImageListStreamer.cs: Added a new internal constructor that takes an
11473           ImageList.ImageCollection and serializes Images based on
11474           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
11475           match ImageList property name.
11476
11477 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
11478
11479         * ListBox.cs: Fixes IndexFromPoint for last item
11480
11481 2005-09-27  Jackson Harper  <jackson@ximian.com>
11482
11483         * Form.cs: Set the position of new mdi children correctly.
11484
11485 2005-09-27  Jackson Harper  <jackson@ximian.com>
11486
11487         * MdiClient.cs: New mdi children need to be added to the back of
11488         the controls collection so the zorder is set correctly. Also add a
11489         count of all the child windows that have been created.
11490
11491 2005-09-27  Jackson Harper  <jackson@ximian.com>
11492
11493         * Form.cs (CreateParams): Setup MDI forms correctly.
11494
11495 2005-09-27  Jackson Harper  <jackson@ximian.com>
11496
11497         * MdiChildContext.cs:
11498         * MonthCalendar.cs:
11499         * UpDownBase.cs:
11500         * ListBox.cs:
11501         * ListView.cs:
11502         * TextBoxBase.cs:
11503         * TreeView.cs:
11504         * ScrollableControl.cs:
11505         * ComboBox.cs: Add implicit controls using the new implict control
11506         functionality in ControlCollection. Also try to block multiple
11507         control add in a suspend/resume layout to save some cycles.
11508         
11509 2005-09-27  Jackson Harper  <jackson@ximian.com>
11510
11511         * Control.cs: Add functionality to the controls collection to add
11512         'implicit controls' these are controls that are created by the
11513         containing control but should not be exposed to the user. Such as
11514         scrollbars in the treeview.
11515         * Form.cs: The list var of the ControlsCollection is no longer
11516         available because of the potential of implicit controls getting
11517         ignored by someone accessing the list directly.
11518
11519 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
11520
11521         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
11522           loose it's parent. (Fixed bug introduced in r49103 when we added
11523           setting the child parent to null on Remove)
11524
11525 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
11526
11527         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
11528         * Splitter.cs: Added missing attributes for BorderStyle property.
11529         * TextBoxBase.cs: Marked Calculate* methods internal.
11530         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
11531         MS.NET.
11532
11533 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
11534          
11535         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
11536
11537 2005-09-25  Jackson Harper  <jackson@ximian.com>
11538
11539         * TreeView.cs: Update the node bounds correctly regardless of
11540         whether the node is visible.
11541
11542 2005-09-25  Jackson Harper  <jackson@ximian.com>
11543
11544         * ImageList.cs: Don't dispose the image after it is added to the
11545         image list. Only reformat images that need to be resized.
11546
11547 2005-09-25  Jackson Harper  <jackson@ximian.com>
11548
11549         * ImageList.cs: Don't set the format when changing the image.
11550
11551 2005-09-25  Jackson Harper  <jackson@ximian.com>
11552
11553         * TreeView.cs: We can't just assume the node has a font. Use the
11554         treeviews font if no node font is available.
11555
11556 2005-09-25  Jackson Harper  <jackson@ximian.com>
11557
11558         * TreeView.cs: Allow the scrollbars to be reset with negative
11559         values.
11560         - Don't add scrollbars to negative sized windows.
11561
11562 2005-09-23  Jackson Harper  <jackson@ximian.com>
11563
11564         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
11565         old Mono.Posix. Also remove some stray code that shouldn't have
11566         been committed.
11567
11568 2005-09-23  Jackson Harper  <jackson@ximian.com>
11569
11570         * TreeView.cs: Attempt at proper sizing of the horizontal
11571         scrollbar. Also don't resize the scrollbars unless they are
11572         visible.
11573
11574 2005-09-23  Jackson Harper  <jackson@ximian.com>
11575
11576         * TreeView.cs: We don't need to expand the invalid area when the
11577         selection changes, as this is all drawn in the node's bounding
11578         box. The area needs to be expanded (previous typo was contracting
11579         it) when the focus rect moves.
11580
11581 2005-09-23  Jackson Harper  <jackson@ximian.com>
11582
11583         * TreeView.cs: Display the selection box under the correct
11584         circumstances. We were rendering white text with no selection box
11585         before.
11586
11587 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
11588
11589         * TextControl.cs(Split): Now updates selection start/end if it points 
11590           into a line that's being split. Fixes a FIXME and bug #75258
11591
11592 2005-09-23  Jackson Harper  <jackson@ximian.com>
11593
11594         * Binding.cs:
11595         * ListControl.cs: Don't use the path when retrieving binding
11596         managers from the binding context. My bat sense tells me that the
11597         path is only used on insertion.
11598
11599 2005-09-22  Jackson Harper  <jackson@ximian.com>
11600
11601         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
11602
11603 2005-09-22  Jackson Harper  <jackson@ximian.com>
11604
11605         * Splitter.cs: There are special cursors used for splitting.
11606         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
11607
11608 2005-09-22  Jackson Harper  <jackson@ximian.com>
11609
11610         * Splitter.cs: Change the cursor appropriately when the splitter
11611         is moused over, so the user actually knows there is a splitter
11612         there.
11613
11614 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11615
11616        * Label.cs : Fix ToString method to give same output as MS.NET
11617
11618 2005-09-22  Jackson Harper  <jackson@ximian.com>
11619
11620         * TreeView.cs: Create the scrollbars when the handle is created
11621         and add them right away, just make them invisble. Also account for
11622         the window being shrunk vertically to the point that the vert
11623         scrollbar needs to be added.
11624         - Remove some 0.5 adjustments to get around anti aliasing issues.
11625         
11626 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
11627          
11628         * MainMenu.cs: Fixes default value
11629         * MenuItem.cs: Fixes default value
11630
11631 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
11632
11633         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
11634
11635 2005-09-21  Jackson Harper  <jackson@ximian.com>
11636
11637         * Control.cs: Don't try to set the border style on the window if
11638         it hasn't been created. When the window is created the border
11639         style will be used.
11640
11641 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11642
11643         * Control.cs (Update): Don't call XplatUI if we don't have a
11644           window handle yet
11645
11646 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11647
11648         * ContainerControl.cs: Instead of throwing an exception, print
11649           a one-time warning about Validate not being implemented
11650         * XplatUIWin32.cs: Removed debug output
11651
11652 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11653
11654         * Control.cs: Only set XplatUI background if we expect the windowing
11655           system to handle the background. This stops controls that draw their
11656           own background from flickering
11657
11658         * XplatUIX11.cs: Support custom visuals and colormaps for window 
11659           creation. This allows, amongst other things, using MWF X11 windows 
11660           with OpenGL.
11661
11662 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11663
11664         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
11665           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
11666           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
11667           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
11668           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
11669           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
11670           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
11671           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
11672           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
11673           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
11674           GridColumnStylesCollection.cs, 
11675           IDataGridColumnStyleEditingNotificationService.cs,
11676           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
11677           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
11678           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
11679           TreeNodeCollection.cs, AmbientProperties.cs, 
11680           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11681           DataObject.cs, ErrorProvider.cs, Splitter.cs,
11682           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
11683           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
11684           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
11685           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
11686           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
11687           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
11688           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
11689           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
11690           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
11691           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
11692           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
11693           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
11694           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
11695           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
11696           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
11697           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
11698           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
11699           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
11700           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
11701           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
11702           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
11703           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
11704           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
11705           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
11706           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
11707           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
11708           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
11709           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
11710           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
11711           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
11712           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
11713           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
11714           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
11715           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
11716           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
11717
11718 2005-09-21  Jackson Harper  <jackson@ximian.com>
11719
11720         * TreeNode.cs: Call Before/After Expand not Collapse when
11721         expanding.
11722
11723 2005-09-20  Jackson Harper  <jackson@ximian.com>
11724         
11725         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
11726
11727 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11728          
11729         * ListViewItem.cs:
11730                 - Fixes bug 76120
11731                 - Fixes proper storing of subitems
11732                 - Fixes not updated items
11733
11734 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
11735
11736         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
11737           things if our window handle isn't created yet. Also disabled 
11738           debug for TextBoxBase
11739
11740 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
11741
11742         * MenuAPI.cs: Remove filtering of events to allow menu usage
11743
11744 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11745
11746         * Cursor.cs: Allow null to be passed to Cursor.Current.
11747
11748 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
11749
11750         * ThemeWin32Classic.cs:
11751           - Change some private methods/fields to protected virtual so that 
11752             they can be accessed and overriden in derived classes
11753           - First refactoring of some methods. Derived themes now don't 
11754             need to duplicate the complete code from ThemeWin32Classic
11755         * ThemeNice.cs:
11756           - Added nice StatusBar
11757           - Derive from ThemeWin32Classic and not Theme
11758           - Removed duplicate ThemeWin32Classic code
11759
11760 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11761
11762         * Control.cs (ControlCollection.Add): If the value null is passed
11763         the control is ignored. 
11764
11765         Optimize this loop.
11766
11767 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
11768
11769         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
11770           PostQuitMessage state.
11771         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
11772
11773 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
11774
11775         * Application.cs: Our constructor will never get called, move 
11776           initialization to fields; fixes bug #75933
11777
11778 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11779
11780         * FileDialog.cs :
11781                 - Allow files to be selected properly using file name
11782                 combo box.
11783                 - Add ability to change diretory (absolute / relative)
11784                 using file name combo box.
11785
11786 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11787          
11788         * ListBox.cs: 
11789                 - Fixes Multicolumn listboxes item wrong calculations
11790                 - Allows to click when only one item is in the listbox
11791                 - Fixes crash when no items using keyboard navigation
11792
11793 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
11794
11795         * ComboBox.cs: Reverted almost everything from the latest patch which
11796           broke ComboBox
11797
11798 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
11799         
11800         * ToolTip.cs:
11801                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
11802         * ComboBox.cs:
11803                 - When DropDownStyle is Simple, it does not show scrollbar 
11804                 to the last item of the list.
11805                 - When DropDownStyle is Simple, it crashed when the list was 
11806                 scrolled down with the down cursor key.
11807                 - Fixed a bug that when DropDownStyle is DropDownList, the 
11808                 selected item was not shown.
11809                 - The position of the selected item was not preserved when 
11810                 the next dropdown happened.
11811         * ThemeWin32Classic.cs:
11812                 - Items were wrapped at the right end.
11813         * CheckedListBox.cs:
11814                 - Fixed Add method
11815         * ListBox.cs:
11816                 - Items should be fully shown.
11817                 - When resizing and vertical scrollbar disappeared, the item 
11818                 of index 0 should be on the top of the list.
11819                 - GetItemRectangle should consider the size of ver. scrollbar
11820         * StatusBar.cs:
11821                 - SizingGrip area should not be allocated when it is not 
11822                 displayed.
11823                 - Now it reflects MinWidth of the containing panel and 
11824                 fixed a crash that happens when its width becomes so small.
11825
11826 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11827
11828         * CheckedListBox.cs: Fixes bug 76028
11829         * ListBox.cs: Fixes bug 76028
11830
11831 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11832
11833         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
11834         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
11835
11836 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
11837
11838         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
11839
11840 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11841
11842         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
11843
11844 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11845
11846         * IRootGridEntry.cs: Added
11847         * PropertyGridCommands.cs: Added
11848         * PropertiesTab.cs: Added missing methods and property
11849         * PropertyGridView.cs: Made class internal
11850         * PropertyGridTextBox.cs: Made class internal
11851
11852 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11853
11854         * MimeIcon.cs: Try to check some other environment variables
11855           if "DESKTOP_SESSION" returns "default"
11856
11857 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11858
11859         * ThemeNice.cs: Corrected background colors (e.g. menus)
11860         * ColorDialog.cs: Use correct background colors for controls
11861
11862 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11863
11864         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
11865
11866 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
11867
11868         * RichTextBox.cs: Added initial implementation
11869         * lang.cs: Removed. Was accidentally checked in long time ago
11870         * TODO: Removed. Contents were obsolete
11871
11872 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11873                                                                                 
11874         * PropertiesTab.cs : Added
11875
11876 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11877                                                                                 
11878         * PropertyGrid.cs : Update
11879         * PropertyGridView.cs : Update
11880         * System.Windows.Forms.resx : Added images and strings
11881
11882 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
11883
11884         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
11885  
11886 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
11887
11888         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
11889           a busy loop right after the Ungrab the X11 display is otherwise 
11890           blocked
11891
11892 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
11893
11894         * ThemeWin32Classic.cs: Optimise the use of clipping
11895
11896 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
11897
11898         * DataGrid.cs: fixes recursion bug
11899
11900 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
11901
11902         * ThemeNice.cs: 
11903           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
11904           - Cleanup
11905
11906 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
11907
11908         * ThemeNice.cs: Draw nice ProgressBars
11909
11910 2005-09-01  Miguel de Icaza  <miguel@novell.com>
11911
11912         * VScrollBar.cs: Another buglet found by Aaron's tool. 
11913
11914         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
11915         bug finder.
11916
11917 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
11918
11919         * ThemeNice.cs:
11920           - Added nicer menu drawing
11921           - Updated DrawTab
11922           - some refactoring
11923
11924 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11925
11926         * CreateParams.cs (ToString): Made output match MS
11927         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
11928             handle is already created (to avoid forcing window creation)
11929         * XplatUIX11.cs: Set window text to caption after creating window,
11930           in case Text was set before window was created
11931         * Form.cs: Use this.Text instead of a static string as caption
11932
11933 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11934
11935         * NotifyIcon.cs: Don't set the window to visible; this screws
11936           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
11937           OnPaint without a bitmap)
11938         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
11939           happen very often anyway; we could add the check to the WM_PAINT 
11940           event generation code
11941
11942 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11943
11944         * NotifyIcon.cs: Fill the icon area with a background color, to 
11945           avoid 'residue' when transparent icons are drawn
11946         * XplatUIX11.cs:
11947           - Handle whole_window == client_window when destroying windows
11948           - SystrayAdd(): Set client_window to whole_window value to
11949             get mouse and other events passed to NotifyIcon
11950
11951 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11952
11953         * Form.cs: Set proper default for Opacity property
11954         * NotifyIcon.cs:
11955           - ShowSystray(): Don't bother creating telling the OS
11956             about the systray item if no icon is provided
11957           - Now handles WM_NCPAINT message to deal with whole/client window
11958             split
11959           - Create window as visible to not get caught by Expose optimization
11960         * Hwnd.cs: Removed debug message
11961         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
11962           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
11963             PaintEventStart/End to use new client argument
11964         * TextBoxBase.cs:
11965           - Commented out debug messages
11966           - Switched PaintEventStart/End to use new client argument
11967         * XplatUI.cs: Added client window bool to PaintEventStart()/
11968           PaintEventEnd() calls, to support drawing in non-client areas
11969         * XplatUIDriver.cs: 
11970           - Added client window bool to PaintEventStart()/PaintEventEnd() 
11971             calls, to support drawing in non-client areas
11972           - Added conditional compile to allow using MWF BeginInvoke 
11973             on MS runtime
11974         * XplatUIX11.cs:
11975           - Added some conditional debug output
11976           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
11977             whole/client window split
11978           - Implemented handling of client argument to PaintEventStart()/End()
11979         * Control.cs:
11980           - Throw exception if BeginInvoke() is called and the window handle
11981             or one of the window's parent handles is not created
11982           - Added conditional compile to allow using MWF BeginInvoke on
11983             MS runtime
11984           - get_Parent(): Only sets parent if handle is created. This avoids
11985             forcing window handle creation when parent is set.
11986           - Now fires Layout and Parent changed events in proper order
11987           - Switched to use Handle instead of window.Handle for Z-Order setting,
11988             the get_Parent() patch above causes us to possibly get null for 'window'
11989           - Implemented handling of client argument to PaintEventStart()/End()
11990           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
11991             default handling)
11992           - Now sends a Refresh() to all child windows when Refresh() is called
11993
11994 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
11995
11996         * Form.cs: Added (non-functional) Opacity property
11997         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
11998
11999 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
12000         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
12001           use export MONO_THEME=nice to activate it.
12002           Currently supported controls:
12003           - Button
12004           - ComboBox
12005           - ScrollBar
12006           - TabControl (TabAlignment.Top only, other will follow)
12007         * ThemeEngine.cs: Add theme nice
12008         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
12009           if enabled
12010
12011 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
12012
12013         * Splitter.cs: Resize docked control and its neighbor.
12014
12015 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12016         -- Making Windows with Menus layout correctly --
12017         * Form.cs : The first leg of the fix
12018                 Menu setter - adjust Client Size as needed to make space for the menu
12019                 SetClientSizeCore - doesn't call base version to be able to pass the 
12020                         menu handle to XplatUI.CalculateWindowRect
12021         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
12022         * XplatUIX11.cs: The critical second leg of the fix
12023                 GetWindowPos needs to use a recalculated client_rect
12024                 so that resizing the window doesn't break layout of child controls. 
12025                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
12026                 Lots of \t\n killed
12027
12028 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12029
12030         * Label.cs: Now properly recalculates width and height on Font and Text
12031           changes if AutoSize is set
12032
12033 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12034         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
12035
12036 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
12037
12038         * ImageList.cs: Makes ToString method compatible with MS
12039
12040 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
12041
12042         * MenuAPI.cs: fixes bug 75716
12043
12044 2005-08-11 Umadevi S <sumadevi@novell.com>
12045         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
12046
12047 2005-08-11 Umadevi S <sumadevi@novell.com>
12048         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
12049
12050 2005-08-10  Umadevi S <sumadevi@novell.com>
12051         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
12052
12053 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
12054
12055         * Menu.cs: fixes bug 75700
12056         * MenuAPI.cs: fixes navigation issues
12057
12058 2005-08-09  Umadevi S <sumadevi@novell.com>
12059         * CheckedListBox.cs - simple fix for GetItemChecked.
12060
12061 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
12062
12063         * ComboBox.cs: Serveral fixes
12064         * ListBox.cs: Serveral fixes
12065
12066 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12067
12068         * ComboBox.cs: Fixes FindString methods and GetItemHeight
12069         * ListBox.cs: Fixes FindString methods
12070
12071 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12072
12073         * DataGrid.cs: fixes bugs exposed by new tests
12074
12075 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
12076
12077         * Mime.cs: Compile Mono assembly references only if compiling
12078           with Mono (Allows to build with VS.Net again)
12079
12080 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
12081
12082         * Control.cs (PaintControlBackground): Draw background image
12083         corrrectly.
12084         (CheckForIllegalCrossThreadCalls): Stubbed.
12085         
12086         * Form.cs (OnCreateControl): Center when should be centered.
12087         
12088         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
12089
12090 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
12091
12092         * Binding.cs: Binding to properties should be case unsensitive
12093
12094 2005-07-18 vlindos@nucleusys.com
12095
12096         * DataGrid.cs: fixes setmember order
12097
12098 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
12099
12100         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
12101         * FileDialog.cs: FileDialog is now resizable and uses the new
12102           MimeIconEngine
12103
12104 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
12105
12106         * DataGridTextBoxColumn.cs: default value
12107         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
12108         * GridTableStylesCollection.cs: fixes checking MappingName
12109         * DataGridDrawingLogic.cs: fixes drawing logic issues
12110         * DataSourceHelper.cs: rewritten to make compatible with more data sources
12111         * DataGrid.cs: fixes    
12112
12113 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
12114
12115         * MimeGenerated.cs: Use case sensitive comparer for
12116           NameValueCollections
12117
12118 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
12119
12120         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
12121         * ThemeWin32Classic.cs: bug fixes, code refactoring
12122         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
12123         * DataGrid.cs: bug fixes, code refactoring
12124         * DataGridTextBox.cs: bug fixes, code refactoring
12125         * DataGridColumnStyle.cs:  bug fixes, code refactoring
12126         * Theme.cs:  bug fixes, code refactoring
12127
12128 2005-07-01  Peter Bartok  <pbartok@novell.com> 
12129
12130         * TextControl.cs: Quick fix for the reported crash on ColorDialog
12131           and other text box usage
12132
12133 2005-07-01  Jackson Harper  <jackson@ximian.com>
12134
12135         * TabControl.cs: Make sure the bottom of the tab covers the pages
12136         border.
12137
12138 2005-06-30  Peter Bartok  <pbartok@novell.com> 
12139
12140         * Form.cs (ShowDialog): Assign owner of the dialog
12141         * TextBoxBase.cs: Always refresh caret size when deleting, caret
12142           might have been moved to a tag with different height
12143
12144 2005-06-30  Jackson Harper  <jackson@ximian.com>
12145
12146         * Form.cs: Don't create an infinite loop when setting focus
12147         * MenuItem.cs: Don't dirty the parents if we don't have any
12148
12149 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
12150
12151         * LibSupport.cs: Rename
12152
12153 2005-06-29  Peter Bartok  <pbartok@novell.com>
12154
12155         * TextBoxBase.cs: Re-align caret after deleting a character
12156         * TextControl.cs:
12157           - DeleteChars(): Ensure that tag covers the provided position
12158           - StreamLine(): Drop reference for dropped tag
12159
12160 2005-06-29  Peter Bartok  <pbartok@novell.com> 
12161
12162         * TextControl.cs: 
12163           - Selections now work properly, anchoring at the initial location
12164             and properly extending in either direction (SetSelectionToCaret(),
12165             SetSelectionStart() and SetSelectionEnd())
12166           - No longer redraws the whole control on selection change, now
12167             calculates delta between previous and new selection and only
12168             invalidates/redraws that area
12169           - Fixed FindPos() math off-by-one errors
12170           - Changed DeleteChars() to verify the provided tag covers the
12171             provided position, selections may have a tag that doesn't cover
12172             the position if the selection is at a tag border
12173           - Fixed off-by-one errors in DeleteChars()
12174           - Added missing streamlining check in DeleteChars() to remove
12175             zero-length tags
12176           - Implemented Invalidate() method, now properly calculates exposures
12177             between two given lines/positions
12178           - Implemented SetSelection()
12179           - Obsoleted and removed FixupSelection()
12180           - Improved RecalculateDocument() logic, removing code duplication
12181
12182 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12183
12184         * LibSupport.cs: changes to match different input/output arguments.
12185
12186 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12187
12188         * LibSupport.cs: added libsupport.so init routine.
12189
12190 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
12191         
12192         * ControlBindingsCollection.cs
12193                 - Throws an exception on null datasource when adding
12194                 - Checks for duplicated bindings when adding
12195
12196 2005-06-28  Jackson Harper  <jackson@ximian.com>
12197
12198         * TreeView.cs (OnKeyDown): Support left and right properly
12199         (navigates as well as expanding and collapsing.
12200         - Add support for Multiply, this expands all the selected nodes
12201         children.
12202         - Fix some tabbing.
12203
12204 2005-06-28  Jackson Harper  <jackson@ximian.com>
12205
12206         * TreeView.cs: Implement keyboard navigation, currently supports,
12207         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
12208         support for toggling checkboxes with the space bar.
12209
12210 2005-06-28  Jackson Harper  <jackson@ximian.com>
12211
12212         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
12213         tree.
12214
12215 2005-06-28  Jackson Harper  <jackson@ximian.com>
12216
12217         * TreeView.cs: Add missing event.
12218
12219 2005-06-27  Peter Bartok  <pbartok@novell.com> 
12220
12221         * TextControl.cs:
12222           - Made line ending size configurable (now allows for counting 
12223             lineendings as \n or \r\n)
12224           - Added margin to viewport to keep caret visible on right side
12225           - Fixed translation routines for line/pos to documentpos to consider
12226             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
12227           - Fixed some line-endings to be unix style
12228           - Fixed Document.FormatText to perform it's calculations 1-based
12229           - Added descriptions for a few methods that might otherwise get 
12230             used wrong
12231           - Added NOTE section with some basic conventions to remember at 
12232             the top of the file
12233           - Major fixup for RichTextBox selection drawing:
12234             * Fixed crashes when multiple tags on a single line were selected
12235             * fixed selection box drawing not overlaying text
12236             * fixed bogus offset calculation for tags not starting at index 1
12237             * Switched behaviour from using multiple Substrings of a 
12238               StringBuilder.ToString() to using multiple 
12239               StringBuilder.ToString(start, length) statements, hoping this is
12240               faster (kept original version commented out in the code, in case
12241               original version was faster)
12242         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
12243           alignment != Left
12244         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
12245           call it as well
12246
12247 2005-06-27  Jackson Harper  <jackson@ximian.com>
12248
12249         * TabControl.cs: Move to the left and right with the arrow
12250         keys. These keys don't cycle beyond first and last like
12251         tab. Refresh all the tabs when scrolling them to the left or
12252         right.
12253
12254 2005-06-27  Jackson Harper  <jackson@ximian.com>
12255
12256         * TabControl.cs:
12257           - ToString: Added method
12258           - CreateParams: Remove TODO and comment
12259           - OnKeyDown: Cycle through bounds properly.
12260           - SelectedIndex: Scroll to the right or left if we need to
12261           display the newly selected tab.
12262
12263 2005-06-23  Jackson Harper  <jackson@ximian.com>
12264
12265         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
12266         set.
12267
12268 2005-06-23  Jackson Harper  <jackson@ximian.com>
12269
12270         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
12271         CTRL-SHIFT-TAB, and HOME, END are there any others?
12272
12273 2005-06-23  Jackson Harper  <jackson@ximian.com>
12274
12275         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
12276
12277 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12278         
12279         * DataGridTextBoxColumn.cs: fixes and enhancements
12280         * ThemeWin32Classic.cs: fixes and enhancements
12281         * DataGridBoolColumn.cs:  fixes and enhancements
12282         * DataGridDrawingLogic.cs:  fixes and enhancements
12283         * CurrencyManager.cs: fixes and enhancements
12284         * DataGrid.cs: fixes and enhancements
12285         * DataGridColumnStyle.cs:  fixes and enhancements
12286
12287 2005-06-22  Jackson Harper  <jackson@ximian.com>
12288
12289         * TabControl.cs: Add some missing methods that just call into the
12290         base. Make the TabPageCollection's IList interface behave in the
12291         same manner as the MS implementation.
12292
12293 2005-06-22  Peter Bartok  <pbartok@novell.com> 
12294
12295         * TextControl.cs: Added sanity check
12296         * TextBoxBase.cs: 
12297           - Fixed wrapping behaviour, don't set wrap on single line controls
12298             (this fixes the breakage of colordialog introduced in an earlier
12299              checkin)
12300           - Added rudimentary support for autoscrolling right-aligned controls
12301             (still needs fixing, also, center alignment scroll is missing)
12302
12303 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12304         
12305         * ScrollBar.cs: Fixes thumbpos on Maximum values
12306
12307 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
12308         
12309         * PropertyGridView.cs: Pass context information to UITypeEditors 
12310
12311 2005-06-21  Peter Bartok  <pbartok@novell.com> 
12312
12313         * TextBoxBase.cs:
12314           - Now calling PositionCaret with absolute space coordinates
12315           - Enabled vertical scrolling
12316           - Better tracking of scrollbar changes, tied into WidthChange
12317             event
12318           - Improved cursor tracking
12319           - Removed debug output
12320         * TextControl.cs:
12321           - PositionCaret coordinates are now works in absolute space, not 
12322             the canvas
12323           - Improved tracking of document size
12324           - Added events for width and height changes
12325
12326 2005-06-21  Peter Bartok  <pbartok@novell.com>
12327
12328         * Form.cs: Set focus to active control when form is activated
12329         * TextControl.cs: 
12330           - Added word-wrap functionality to RecalculateLine() 
12331           - Added some short function descriptions for VS.Net to aid in
12332             writing dependent controls
12333           - Added Caret property, returning the current coords of the caret
12334           - Added ViewPortWidth and ViewPortHeight properties
12335           - Added Wrap property
12336           - Added CaretMoved event
12337           - Removed some old debug code
12338           - Split() can now create soft splits
12339           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
12340           - Added method to format existing text
12341           - Fixed size/alignment calculations to use viewport
12342           - RecalculateDocument now can handle changing line-numbers while
12343             calculating lines
12344
12345         * TextBox.cs:
12346           - Added some wrap logic, we don't wrap if alignment is not left
12347           - Added casts for scrollbar var, base class switched types to
12348             also support RichTextBoxA
12349           - Implemented handling of scrollbar visibility flags
12350
12351         * TextBoxBase.cs:
12352           - Switched scrollbars type to RichTextBoxScrollBars to support
12353             RichTextBox
12354           - Added tracking of canvas width/height
12355           - Switched scrollbars to be not selectable (to keep focus on text)
12356           - Added central CalculateDocument() method to handle all redraw
12357             requirements
12358           - Added ReadOnly support
12359           - Added WordWrap support
12360           - Fixed handling of Enter key (we now treat it as a DialogKey)
12361           - Fixed caret positioning when h or v scroll is not zero
12362           - Fixed placing/generation of vertical scrollbar
12363           - Added CalculateScrollBars() method to allow updating scrollbar
12364             limits and visibility
12365           - Fixed handling of horizontal scroll
12366           - Added handling of vertical scroll
12367           - Implemented auto-'jump' when caret moves to close to a left or
12368             right border and there is text to be scrolled into view (currently
12369             there's the potential for a stack overflow, until a bug in
12370             scrollbar is fixed)
12371
12372 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
12373         
12374         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
12375
12376 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
12377
12378         * Mime.cs:
12379         - added inodes.
12380         - return application/x-zerosize for files with size zero
12381           (if no extension pattern matches).
12382         - check matches collection for strings too.
12383         - return only the first mime type if the name value
12384           collection has more than one mime type.
12385
12386 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
12387         
12388         * PropertyGrid.cs: Cleaned up some TODOs
12389         * PropertyGridView.cs: Added support for UITypeEditors
12390
12391 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12392         
12393         * DataGrid.cs: clears cached value
12394
12395 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12396
12397         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
12398         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
12399         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
12400         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
12401         
12402 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
12403
12404         * ThemeWin32Classic.cs: fixes colour
12405
12406 2005-06-15  Peter Bartok  <pbartok@novell.com>
12407
12408         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
12409         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
12410         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
12411         * Control.cs: Added some MWFCategory and MWFDescription attributes
12412         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
12413
12414 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
12415
12416         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
12417         usage
12418
12419 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
12420
12421         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
12422         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
12423         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
12424         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
12425         * DataGrid.cs: default datagrid settings for Default Styles, fixes
12426         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
12427
12428 2005-06-13  Jackson Harper  <jackson@ximian.com>
12429
12430         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
12431         isn't printed when the user enables dropping. (X11 does accept
12432         drops).
12433         
12434 2005-06-13  Jackson Harper  <jackson@ximian.com>
12435
12436         * TreeView.cs: Remove some TODOS.
12437
12438 2005-06-13  Jackson Harper  <jackson@ximian.com>
12439
12440         * Form.cs: Hook into the mdi framework.
12441         * MdiClient.cs: Use the base control collections add method so
12442         parents get setup correctly. Set the default back colour and dock
12443         style.
12444         * MdiChildContext.cs: New class, this bad actor handles an
12445         instance of an MDI window. Right now there is only basic
12446         support. You can drag, close, and resize windows. Minimize and
12447         Maximize are partially implemented.
12448
12449 2005-06-13  Jackson Harper  <jackson@ximian.com>
12450
12451         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
12452         freaky when both vals are negative. NOTE: There are probably other
12453         places in XplatUIX11 that this needs to be done.
12454
12455 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
12456
12457         * DataGrid.cs: implement missing methods, move KeyboardNavigation
12458         * DataGridColumnStyle.cs: fixes signature
12459
12460 2005-06-12  Jackson Harper  <jackson@ximian.com>
12461
12462         * XplatUIX11.cs: Use sizing cursors similar to the ones on
12463         windows.
12464
12465 2005-06-11  Jackson Harper  <jackson@ximian.com>
12466
12467         * StatusBarPanel.cs: Signature cleanups. Implement
12468         BeginInit/EndInit.
12469
12470 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
12471
12472         * DataGridTextBoxColumn.cs: Honors aligment
12473         * GridColumnStylesCollection.cs: Contains is case unsensitive
12474         * GridTableStylesCollection.cs: several fixes
12475         * DataGridTableStyle.cs: default column creation
12476         * DataGridDrawingLogic.cs: fixes
12477         * CurrencyManager.cs: ListName property
12478         * DataGrid.cs: multiple styles support
12479         * DataGridColumnStyle.cs: fixes
12480         
12481
12482 2005-06-10  Peter Bartok  <pbartok@novell.com>
12483
12484         * Control.cs(Select): Moved SetFocus call to avoid potential
12485           loops if controls change the active control when getting focus
12486         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
12487           the up/down buttons
12488
12489 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
12490
12491         * ImageListConverter.cs: Implemented
12492
12493 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12494
12495         * MonthCalendar.cs: Wired in NumericUpDown control for year
12496
12497 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12498
12499         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
12500           DoubleClick events, since they are not meant to be fired.
12501
12502 2005-06-09  Peter Bartok  <pbartok@novell.com>
12503
12504         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
12505           Jonathan's standalone controls into MWF, implemented missing
12506           events, attributes and methods; added xxxAccessible classes
12507         * AccessibleObject.cs: Made fields internal so other classes
12508           can change them if needed
12509
12510 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
12511
12512         * UpDownBase.cs: Complete implementation
12513         * NumericUpDown.cs: Complete implementation
12514         * DomainUpDown.cs: Complete implementation
12515
12516 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
12517
12518         * DataGridTextBoxColumn.cs: drawing fixes
12519         * DataGridCell.cs: fixes ToString method to match MSNet
12520         * DataGridTableStyle.cs: fixes
12521         * DataGridBoolColumn.cs: fixes, drawing
12522         * DataGridDrawingLogic.cs: fixes, new methods
12523         * DataGridTextBox.cs: Keyboard and fixes
12524         * DataGrid.cs:
12525                 - Keyboard navigation
12526                 - Scrolling fixes
12527                 - Row selection (single, multiple, deletion, etc)
12528                 - Lots of fixes
12529         
12530 2005-06-07  Jackson Harper  <jackson@ximian.com>
12531
12532         * ThemeWin32Classic.cs: Clear the background area when drawing
12533         buttons.
12534
12535 2005-06-06  Peter Bartok  <pbartok@novell.com>
12536
12537         * ImageListStreamer.cs: Fixed signature for GetData
12538         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
12539         * ComboBox.cs:
12540           - Added missing ChildAccessibleObject class
12541           - Added missing OnXXXFocus overrides, switched to using those
12542             instead of the event handler
12543         * Control.cs:
12544           - Added Parent property for ControlAccessibleObject
12545           - Fixed signatures
12546           - Fixed attributes
12547           - Added ResetBindings()
12548         * ListBindingConverter.cs: Implemented some methods
12549         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
12550         * ImageList.cs: Implemented basic handle scheme, removed TODOs
12551         * ContainerControl.cs: Fixed signature, now subscribing to the
12552           ControlRemoved event instead of overriding the handler, LAMESPEC
12553         * CurrencyManager.cs: Added missing attribute
12554         * MonthCalendar.cs: Added missing properties
12555
12556 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12557
12558         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
12559         
12560 2005-06-06  Gaurav Vaish and Ankit Jain
12561
12562         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
12563         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
12564         
12565 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12566
12567         * Control.cs: fixes CreateParams Width / Height.
12568
12569 2005-06-05  Peter Bartok  <pbartok@novell.com>
12570
12571         * Win32DnD.cs: Removed compilation warnings
12572
12573 2005-06-05  Peter Bartok  <pbartok@novell.com>
12574
12575         * Control.cs (CreateParams): Since we don't know if one of the
12576           properties we use is overridden, lets make sure if we fail accessing
12577           we continue with a backup plan
12578
12579 2005-06-05  Peter Bartok  <pbartok@novell.com>
12580
12581         * Win32DnD.cs:
12582           - Removed debug output
12583           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
12584             struct
12585           - Plugged resource leak
12586         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
12587           MS size
12588
12589 2005-06-05  Peter Bartok  <pbartok@novell.com>
12590
12591         * XplatUIWin32.cs: Removed DnD code
12592         * Win32DnD.cs: Implemented drop source and drop target functionality
12593
12594 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12595
12596         * UpDownBase.cs: remove duplicate addition of event, enable some code
12597         that was commented out.
12598         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
12599         Validate input when a key is pressed. It works fine now for every
12600         combination of Hexadecimal. Only missing some drawing love when sharing
12601         space with other controls.
12602
12603 2005-06-04  Peter Bartok  <pbartok@novell.com>
12604
12605         * Control.cs:
12606           - We need to pass a window for DragDrop, so enable callback events
12607           - Added DnD callback events when being a DragSource
12608         * XplatUI.cs (StartDrag): Added window handle argument
12609         * XplatUIDriver.cs (StartDrag): Added window handle argument
12610         * QueryContinueDragEventArgs: Made fields internally accessible so
12611           drivers can set them
12612         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
12613           can set them
12614
12615 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
12616
12617         * DataGridTextBoxColumn.cs: column text editing
12618         * DataGridTableStyle.cs: Respect columns styles created by the user
12619         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
12620         * DataGridBoolColumn.cs: bool column editing
12621         * DataGrid.cs: fixes to scrolling, properties, etc
12622         * DataGridTextBox.cs: handle keyboard
12623         * DataGridColumnStyle.cs: fixes
12624
12625 2005-06-02  Jackson Harper  <jackson@ximian.com>
12626
12627         * ImageListStreamer.cs: Somewhat broken implementation of
12628         GetObjectData. The RLE needs some work to match MS properly.
12629
12630 2005-06-02  Jackson Harper  <jackson@ximian.com>
12631
12632         * X11Dnd.cs: Attempting to keep at least one file in MWF
12633         monostyled.
12634
12635 2005-06-02  Peter Bartok  <pbartok@novell.com>
12636
12637         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
12638           that way
12639
12640 2005-06-02  Peter Bartok  <pbartok@novell.com>
12641
12642         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
12643         * XplatUI.cs: Added DoDragDrop() method
12644         * XplatUIDriver.cs: Added DoDragDrop() method
12645
12646 2005-06-02  Jackson Harper  <jackson@ximian.com>
12647
12648         * Splitter.cs: Implement BorderStyle.
12649
12650 2005-06-02  Jackson Harper  <jackson@ximian.com>
12651
12652         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
12653         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
12654         X11 using XDND.
12655
12656 2005-06-02  Peter Bartok  <pbartok@novell.com>
12657
12658         * DataObject.cs:
12659           - Added Data setter
12660           - Fixed broken insertion code for SetData, now also
12661             overwrites any existing entry of the same format name
12662         * Hwnd.cs: Added list of pointers that automatically gets
12663           freed when the window is disposed
12664         * XplatUI.cs: Call driver initialization method when loading
12665           a driver
12666         * Control.cs:
12667           - OnDragLeave takes EventArgs, not DragEventArgs
12668           - Added setting of WS_EX_ACCEPTFILES style when dropping is
12669             supported
12670           - Forces style update when drop state changes
12671         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
12672           not perfect since we cannot (yet) call the IDataObject.GetData()
12673           method, we keep getting 0x80004005 error, dunno why)
12674
12675 2005-06-02  Peter Bartok  <pbartok@novell.com>
12676
12677         * DragEventArgs.cs: Make fields internal so we can cache the
12678           object and re-set the fields from XplatUI
12679
12680 2005-06-02  Jackson Harper  <jackson@ximian.com>
12681
12682         * Control.cs: Add some internal methods so the DnD subsystem can
12683         raise DnD events. Also call into the driver when AllowDrop is set.
12684         * XplatUI.cs:
12685         * XplatUIDriver.cs: New method for setting whether or not a window
12686         is allowed to accept drag and drop messages.
12687                 
12688 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
12689         
12690         * ScrollBar.cs: Make sure that values sent in Scroll events
12691         are always between Maximum and Minimum.
12692
12693 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
12694
12695         * Menu.cs: Call MenuChanged when menuitem visibility has been
12696         changed.
12697         * MenuItem.cs: Rebuild menu when item is (not) visible.
12698         * MainMenu.cs: MainMenu has special MenuChanged.
12699         * Theme.cs: Caption and FrameBorderSize are not fixed.
12700         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
12701         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
12702         * XplatUIX11.cs,
12703         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
12704         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
12705
12706 2005-05-30  Jackson Harper  <jackson@ximian.com>
12707
12708         * DataFormat.cs: We can't statically initialize this stuff because
12709         it calls into the xplatui and could create a loop. So we lazy init
12710         it.
12711
12712 2005-05-28  Jackson Harper  <jackson@ximian.com>
12713
12714         * Control.cs: Proper implementation of Product(Name/Version).
12715
12716 2005-05-27  Jackson Harper  <jackson@ximian.com>
12717
12718         * DataObject.cs: Dont crash if no data is found.
12719
12720 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
12721         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
12722                 as per status page, guessing it should be set to true
12723
12724 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
12725
12726         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
12727         * DataGridTableStyle.cs: set proper formatting text, def header text
12728         * ThemeWin32Classic.cs: new themable paramaters
12729         * DataGridBoolColumn.cs: paint check box, get data, fixes
12730         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
12731         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
12732         * DataGridColumnStyle.cs: fixes
12733         * Theme.cs: new themable paramaters
12734                 
12735 2005-05-26  Peter Bartok  <pbartok@novell.com>
12736
12737         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
12738
12739 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12740         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
12741
12742 2005-05-24  Peter Bartok  <pbartok@novell.com>
12743
12744         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
12745           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
12746           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
12747           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
12748           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
12749           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
12750           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
12751           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
12752           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
12753           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
12754           missing attributes, etc
12755         * DataGridPreferredColumnWidthTypeConverter.cs: Added
12756
12757 2005-05-24  Peter Bartok  <pbartok@novell.com>
12758
12759         * Help.cs: Added, implemented trivial functions, throws up MessageBox
12760           when user tries to get help
12761         * DataObject.cs, DataFormats.cs, LinkArea.cs,
12762           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
12763           to suppress warnings
12764         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
12765           avoid unreachable code warning
12766
12767 2005-05-20  Peter Bartok  <pbartok@novell.com>
12768
12769         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
12770
12771 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12772
12773         * DataGridTextBoxColumn.cs: Basic painting methods
12774         * DataGridTableStyle.cs: Set table style in the column
12775         * ThemeWin32Classic.cs: Use Theme for colors
12776         * DataGridDrawingLogic.cs: Implement more drawing
12777         * DataGrid.cs: drawing, theming, enhacements, fixes
12778         * DataGridColumnStyle.cs: fixes, drawing
12779         * Theme.cs: theming for Datagrid
12780
12781 2005-05-20  Peter Bartok  <pbartok@novell.com>
12782
12783         * Cursor.cs: Implemented GetObjectData() method
12784
12785 2005-05-20  Peter Bartok  <pbartok@novell.com>
12786
12787         * Cursors.cs: Added setting of cursor name
12788         * Cursor.cs:
12789           - Implemented constructors
12790           - Implemented Draw and DrawStretched
12791           - Implemented Current property
12792           - Implemented == and != operators
12793           - Implemented Dispose()
12794           - Implemented ToString
12795           - Added missing attributes
12796         * XplatUIX11.cs:
12797           - Added missing reset for OverrideCursor when DoEvents is called
12798           - Fixed creation of cursor, logic was wrong
12799         * XplatUIWin32.cs:
12800           - Added missing reset for OverrideCursor when DoEvents is called
12801           - Fixed creation of cursor, bit arrays were swapped
12802         * Clipboard.cs: Removed obsolete MonoTODO attribute
12803
12804 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12805
12806         * ComboBox.cs: fixes OnSelectedItemChanged
12807         * ControlBindingsCollection.cs: fixes item range check
12808
12809 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12810
12811         * UpDownBase.cs:
12812                 - Calc preferred height properly
12813                 - Implement missing properties
12814                 
12815         * NumericUpDown.cs: Implement missing events
12816
12817 2005-05-19  Jackson Harper  <jackson@ximian.com>
12818
12819         * TabControl.cs: New method that resizes the tab pages before
12820         redrawing them. This as needed as the control is double buffered
12821         and sizing will not be recalculated unless ResizeTabPages is
12822         called.
12823         * TabPage.cs: Set base.Text instead of Text in the constructor so
12824         that UpdateOwner does not get called. Use the new Redraw method of
12825         TabControl instead of Refresh so the sizing is recalculated.
12826         * ThemeWin32Classic.cs: Draw the text for button tabs.
12827
12828 2005-05-19  Jackson Harper  <jackson@ximian.com>
12829
12830         * Control.cs: Paint control background images. Fix typo where
12831         PaintControlBackground was not getting called correctly.
12832
12833 2005-05-19  Peter Bartok  <pbartok@novell.com>
12834
12835         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
12836           I can investigate, apparently I broke FileDialog
12837
12838 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
12839
12840         * AxHost.cs: Some simple properties.
12841         * Control.cs: window must be accessible after ctor.
12842         * Form.cs: Added TransparencyKey property.
12843         * TextBoxBase.cs: Implemented Clear. Text property can be null.
12844         * XplatUIWin32.cs: SetBorderStyle implemented.
12845
12846 2005-05-18  Peter Bartok  <pbartok@novell.com>
12847
12848         * DataObject.cs: Entries are not global but particular to the
12849           DataObject, now it behaves that way
12850         * XplatUIWin32.cs: Implemented Clipboard methods
12851         * Clipboard.cs: Implemented
12852         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
12853         * XplatUIOSX.cs: Updated to final clipboard prototypes
12854         * XplatUIX11.cs: Implemented Clipboard methods
12855         * XplatUIDriver.cs: Updated to final clipboard prototypes
12856         * XplatUIStructs.cs:
12857           - Added BITMAPINFOHEADER struct
12858           - Added ClipboardFormats enum
12859         * X11Structs.cs:
12860           - Added ClipboardStruct
12861           - Added Atom enum items for clipboard types
12862           - Fixed atom types for Selection event structures
12863         * DataFormats.cs:
12864           - Added internal properties and methods for drivers to enumerate
12865             all known formats
12866           - Switched initialization method to allow drivers to assign their
12867             own IDs even for the MS predefined clipboard IDs
12868         * XplatUI.cs: Updated to final clipboard interface
12869
12870 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12871         * PropertyGridView.cs: Fixed compiler warnings.
12872
12873 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12874         * PropertyGrid.cs: Added some event calls
12875         * PropertyGridView.cs: Change drawing code to use double buffering
12876         * PropertyGridTextBox.cs: Changed Text property name
12877         * GridItem.cs: Added Bounds property.
12878         * GridEntry.cs: Added Bounds property.
12879
12880 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
12881
12882         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
12883         since GetType() may not return the correct type if the object is
12884         a remoting proxy.
12885
12886 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
12887
12888         * TreeNodeCollection.cs: fixes get/set item ranges
12889         
12890 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12891
12892         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
12893                 
12894 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12895
12896         * ComboBox.cs: Fix item range comparation
12897         * ListView.cs: Fix item range comparation
12898
12899 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12900
12901         * FontDialog.cs:
12902           - Clear example panel when OnPaint is called
12903           - Better solution for displaying the example panel text
12904           - Select default indexes in the ListBoxes
12905
12906 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12907
12908         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
12909
12910 2005-05-11  Peter Bartok  <pbartok@novell.com>
12911
12912         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
12913         * SelectionRangeConverter.cs: Implemented
12914         * PropertyGrid.cs: Fixed attribute value
12915         * Control.cs:
12916           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
12917           - Added Sebastien Pouliot's CAS Stack Propagation fixes
12918         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
12919           that's common to all drivers. First methods to go there are
12920           Sebastien Pouliot's CAS Stack Propagation helper methods
12921         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
12922           Sebastien Pouliot for CAS Stack Propagation
12923
12924 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12925
12926         * OSXStructs.cs:
12927           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
12928
12929 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
12930
12931         * DataGridTextBoxColumn.cs: fixed some members
12932         * GridColumnStylesCollection.cs: indexed column is case insensitive
12933         * DataGridTableStyle.cs: fixes
12934         * ThemeWin32Classic.cs: add new theme parameter
12935         * Theme.cs: add new theme parameter
12936         * DataGridDrawingLogic.cs: Datagrid's drawing logic
12937         * DataGrid.cs: fixes, new internal properties, etc.
12938         * DataGridColumnStyle.cs: allows to set grid value
12939         *
12940
12941 2005-05-10  Peter Bartok  <pbartok@novell.com>
12942
12943         * AccessibleObject.cs:
12944           - Removed MonoTODO attribute on help, method is correct
12945           - Fixed Bounds property
12946         * AxHost.cs: Moved MonoTODO
12947         * ButtonBase.cs: Now setting AccessibleObject properties
12948         * RadioButton.cs: Setting proper AccessibleObject role
12949         * CheckBox.cs: Setting proper AccessibleObject role
12950         * ControlBindingsCollection.cs: Added properties, methods and attributes
12951         * DataFormats.cs: Fixed awkward internal API, and changed to enable
12952           userdefined DataFormats.Format items as well
12953         * ListControl.cs: Removed data_member from the public eye
12954         * OpenFileDialog.cs:
12955           - Made class sealed
12956           - Added missing attributes
12957         * SaveFileDialog.cs: Added missing attributes
12958         * ImageListStreamer.cs: Fixed code that caused warnings
12959         * LinkLabel.cs: Removed unreachable code
12960         * TreeView.cs: Fixed code that caused warnings
12961         * PropertyGridView.cs: Fixed code that caused warnings
12962         * GridColumnStylesCollection.cs: Added missing attributes
12963         * GridTableStylesCollection: Added missing attribute
12964         * PropertyManager: Added .ctor
12965         * SecurityIDType: Added
12966         * DataObject.cs: Implemented class
12967         * LinkArea.cs: Added missing attribute
12968
12969 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
12970
12971         * RadioButton.cs: call base method to allow to fire OnClick event
12972         * UpDownBase.cs: OnMouseUp call base method
12973         * CheckedListBox.cs: call base method before returning
12974         * TrackBar.cs: call base method before returning
12975         
12976
12977 2005-05-10  Peter Bartok  <pbartok@novell.com>
12978
12979         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
12980           for messages
12981
12982 2005-05-10  Peter Bartok  <pbartok@novell.com>
12983
12984         * DataFormats.cs: Implemented
12985         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
12986           XplatUIX11.cs: Added Clipboard APIs
12987         * XplatUIWin32.cs: Implemented Clipboard APIs
12988         * FolderBrowserDialog.cs: Added missing event, attributes
12989
12990 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
12991
12992         * CheckBox.cs: call base method to allow to fire OnClick event
12993
12994 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
12995
12996         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
12997
12998 2005-05-06  Peter Bartok  <pbartok@novell.com>
12999
13000         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
13001         * Screen.cs: Implemented
13002         * HelpNavigator.cs: Added
13003         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
13004           property
13005         * HelpProvider.cs: Implemented all we can do until we have a CHM
13006           help library (which means that "What's This" does work now)
13007
13008 2005-05-06  Jackson Harper  <jackson@ximian.com>
13009
13010         * XplatUIX11.cs: Fix waking up the main loop.
13011                 
13012 2005-05-05  Peter Bartok  <pbartok@novell.com>
13013
13014         * XplatUI.cs: Updated revision
13015         * Form.cs: Removed enless loop
13016         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
13017         * Label.cs (OnPaint): Added call to base.OnPaint()
13018         * ToolTip.cs: Made ToolTipWindow reusable for other controls
13019         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
13020         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
13021         * AxHost.cs: Added
13022         * ButtonBase.cs: Moved base.OnPaint() call to end of method
13023         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
13024           to ToolTip.ToolTipWindow for drawing and size methods; this allows
13025           reuse of ToolTipWindow by other controls
13026         * SizeGrip.cs: Moved base.OnPaint() call to end of method
13027         * XplatUIX11.cs: Now clipping drawing area (experimental)
13028         * PictureBox.cs: Moved base.OnPaint() call to end of method
13029         * Theme.cs: Fixed ToolTip abstracts to match new format
13030         * ErrorProvider.cs: Implemented
13031
13032 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
13033
13034         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
13035         * LinkLabel.cs:
13036                 - Adds cursors
13037                 - Handles focus
13038                 - Implements LinkBehavior
13039                 - Fixes many issues
13040
13041 2005-05-03  Jackson Harper  <jackson@ximian.com>
13042
13043         * ListView.cs: Calculate the scrollbar positioning on resize and
13044         paint, so they get put in the correct place.
13045
13046 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
13047
13048         * ColorDialogs.cs: The small color panels are now handled by
13049           SmallColorControl. This fixes drawing of the focus rectangle
13050           and adds a 3D border.
13051
13052 2005-05-03  Peter Bartok  <pbartok@novell.com>
13053
13054         * Control.cs: Modified version of Jonathan Chamber's fix for
13055           double-buffering
13056
13057 2005-05-03  Jackson Harper  <jackson@ximian.com>
13058
13059         * ListView.cs: Remove redraw variable. Control now handles whether
13060         or not a redraw needs to be done, and will only raise the paint
13061         event if redrawing is needed.
13062
13063 2005-05-03  Jackson Harper  <jackson@ximian.com>
13064
13065         * Splitter.cs: No decorations for the splitter form. Cache the
13066         hatch brush.
13067
13068 2005-05-03  Jackson Harper  <jackson@ximian.com>
13069
13070         * TreeView.cs: Use dashed lines to connect nodes. Use the
13071         ControlPaint method for drawing the focus rect instead of doing
13072         that in treeview.
13073
13074 2005-05-02  Peter Bartok  <pbartok@novell.com>
13075
13076         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
13077
13078 2005-04-29  Jackson Harper  <jackson@ximian.com>
13079
13080         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
13081         entire image buffer. Just clear the clipping rectangle.
13082
13083 2005-04-29  Jackson Harper  <jackson@ximian.com>
13084
13085         * ThemeWin32Classic.cs: Don't draw list view items that are
13086         outside the clipping rectangle.
13087
13088 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
13089
13090         * ListBox.cs: added horizontal item scroll
13091
13092 2005-04-29  Jackson Harper  <jackson@ximian.com>
13093
13094         * ThemeWin32Classic.cs: Remove some old debug code that was
13095         causing flicker with the new double buffering code.
13096
13097 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
13098
13099         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
13100         behave like combobox and comboboxlist (still not sure if this is
13101         correct though).
13102
13103 2005-04-28  Jackson Harper  <jackson@ximian.com>
13104
13105         * ThemeWin32Classic.cs: Don't fill the middle of progress
13106         bars. This fills areas outside of the clip bounds that don't need
13107         to be filled.
13108
13109 2005-04-28  Jackson Harper  <jackson@ximian.com>
13110
13111         * Control.cs: Don't expose functionality to touch the image buffers.
13112         * ProgressBar.cs:
13113         * ListView.cs: We do not need to (and no longer can) manipulate
13114         the image buffers directly. All of this is handled by Control.
13115
13116 2005-04-28  Peter Bartok  <pbartok@novell.com>
13117
13118         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13119           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
13120           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
13121
13122 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13123
13124         * Combobox:
13125                 - Adjust control's height for non-simple comboboxes (bug fix)
13126                 - Remove dead code
13127         * MenuAPI.cs: remove unused var
13128         * ScrollBar.cs: remove unsed var
13129                  
13130         * ListBox.cs: unselect items when clearing
13131
13132 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13133
13134         * ListControl.cs: honors OnPositionChanged and default Selected Item
13135         * ListBox.cs: unselect items when clearing
13136
13137 2005-04-27  Jackson Harper  <jackson@ximian.com>
13138
13139         * X11Keyboard.cs: Initialize a default keyboard and give a warning
13140         if a "correct" keyboard is not found. This will make us not crash,
13141         but might give some users bad keyboard layouts...seems to be the
13142         same thing rewind does.
13143
13144 2005-04-27  Jackson Harper  <jackson@ximian.com>
13145
13146         * BindingManagerBase.cs: Attach the current/position changed
13147         handlers to their respective events.
13148
13149 2005-04-27  Jackson Harper  <jackson@ximian.com>
13150
13151         * Control.cs: Make sure that the first WM_PAINT does a full draw,
13152         not just a blit.
13153         * ThemeWin32Classic.cs: Don't fill the background for picture
13154         boxes. This could overright user drawing.
13155         * ComboBox.cs: Just fill the clipping rect not the entire client
13156         rect when drawing the background. This prevents pieces of the
13157         image buffer from getting overwritten and is theoretically faster.
13158
13159 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
13160
13161         * ComboBox.cs: Databinding support fixes, fire missing events
13162         * ListControl.cs: implement missing methods and properties, fixes
13163         * ThemeWin32Classic.cs: Databiding support on Drawing
13164         * CheckedListBox.cs: Databinding support fixes, fire missing events
13165         * ListBox.cs: Databinding support fixes, fire missing events
13166         
13167 2005-04-25  Peter Bartok  <pbartok@novell.com>
13168
13169         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
13170
13171 2005-04-25  Jackson Harper  <jackson@ximian.com>
13172
13173         * TreeView.cs: Use the horizontal scrollbars height not width when
13174         determining how much of the client area is available.
13175
13176 2005-04-25  Jackson Harper  <jackson@ximian.com>
13177
13178         * Control.cs: Double buffering is handled differently now. As per
13179         the spec, the extra buffer is created in the WM_PAINT message and
13180         passed down to the control's drawing code.
13181         * GroupBox.cs:
13182         * Label.cs:
13183         * CheckBox.cs:
13184         * ProgressBar.cs:
13185         * RadioButton.cs:
13186         * ColorDialog.cs:
13187         * ComboBox.cs:
13188         * PropertyGridView.cs:
13189         * UpDownBase.cs:
13190         * MessageBox.cs:
13191         * MenuAPI.cs:
13192         * ListView.cs:
13193         * ButtonBase.cs:
13194         * SizeGrip.cs:
13195         * ScrollBar.cs:
13196         * ListBox.cs:
13197         * TrackBar.cs:
13198         * ToolBar.cs:
13199         * PictureBox.cs:
13200         * DateTimePicker.cs:
13201         * StatusBar.cs:
13202         * TreeView.cs: Update to new double buffering system.
13203         * MonthCalendar.cs: Uncomment block, as Capture is now
13204         working. Update to new double buffering
13205         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
13206         * PaintEventArgs.cs: New internal method allows us to set the
13207         graphics object. This is used for double buffering.
13208         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
13209         rectangle. The internal paint_area var has been removed from
13210         StatusBar. The clipping rect should be used instead.
13211         * Theme.cs: Give the PictureBox drawing method a clipping rect.
13212         * TabPage.cs: The RefreshTabs method was removed, so just call the
13213         tab controls Refresh method now.
13214         * TabControl.cs: Update to new double buffering. Make sure the
13215         handle is created before sizing the tab pages, otherwise we will
13216         get stuck in a loop.
13217
13218 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
13219
13220         * LinkLabel.cs: Fix typo, bug #74719; patch
13221           from Borja Sanchez Zamorano
13222
13223 2005-04-22  Jackson Harper  <jackson@ximian.com>
13224
13225         * TreeNode.cs: Implement Handle stuff.
13226         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
13227
13228 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
13229
13230         * DataGridTextBoxColumn.cs: call base constructors, fixes
13231         * GridColumnStylesCollection.cs: missing events, methods, and functionality
13232         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
13233         * DataGridTableStyle.cs: implements create default column styles
13234         * DataGridBoolColumn.cs: which types can handle
13235         * DataGrid.cs: missing methods, fixes, new functionality
13236         * DataGridColumnStyle.cs: fixes
13237
13238 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
13239         * FolderBrowserDialog.cs:
13240         - Use a thread to fill the TreeView
13241         - Adjusted some sizes
13242
13243 2005-04-19  Peter Bartok  <pbartok@novell.com>
13244
13245         * LinkLabel.cs: (Re-)create the pieces when setting the Text
13246           property. Fixes #74360.
13247
13248 2005-04-19  Jackson Harper  <jackson@ximian.com>
13249
13250         * XEventQueue.cs: Lock when getting the lockqueue size.
13251         * PictureBox.cs: Call base OnPaint
13252         
13253 2005-04-19  Peter Bartok  <pbartok@novell.com>
13254
13255         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
13256           messages were no longer being processed (this broke BeginInvoke)
13257
13258           
13259 2005-04-18  Jackson Harper  <jackson@ximian.com>
13260
13261         * TreeView.cs: buglet that caused node images to get drawn
13262         regardless of whether or not they were in the clipping rectangle.
13263
13264 2005-04-18  Jackson Harper  <jackson@ximian.com>
13265
13266         * CurrencyManager.cs: There are four rules for GetItemProperties:
13267         - If the type is an array use the element type of the array
13268         - If the type is a typed list, use the type
13269         - If the list contains an Item property that is not an object, use
13270         that property
13271         - use the first element of the list if there are any elements in
13272         the list.
13273         
13274 2005-04-17  Jackson Harper  <jackson@ximian.oom>
13275
13276         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
13277         click. This handles offsets for scrolling properly and reduces
13278         memory. Also fixed GetNode to not offset now that TopNode works
13279         properly.
13280         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
13281         
13282 2005-04-17  Jackson Harper  <jackson@ximian.com>
13283
13284         * CursorConverter.cs: Initial implementation.
13285
13286 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13287
13288         * ListControl.cs: work towards complex data binding support on ListControl
13289         * CurrencyManager.cs: work towards complex data binding support on ListControl
13290         * ListBox.cs: work towards complex data binding support on ListControl
13291
13292
13293 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13294
13295         * GridTableStylesCollection.cs: fixes name and constructor
13296         * DataGridTableStyle.cs: fixes
13297         * DataGridBoolColumn.cs: fixes names and constructors
13298         * DataGrid.cs: define methods and properties. Some init implementations
13299         * DataGridCell.cs: define methods and properties. Some init implementations
13300         * GridTablesFactory.cs: Define methods and properties
13301
13302 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
13303
13304         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
13305         graphics port changes.  We still want the coordinates in global screen
13306         coordinates.
13307
13308 2005-04-14  Jackson Harper  <jackson@ximian.com>
13309
13310         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
13311         check plus minus or checkbox clicks unless those features are enabled.
13312
13313 2005-04-14  Jackson Harper  <jackson@ximian.com>
13314
13315         * TreeView.cs: Add methods for setting the top and bottom visible
13316         nodes. TreeNode::EnsureVisible uses these methods.
13317         * TreeNode.cs: Implement EnsureVisible
13318
13319 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
13320
13321         * Form.cs: Pospone menu assignation if the window has not been created yet
13322         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
13323         size and position
13324
13325 2005-04-12  Jackson Harper  <jackson@ximian.com>
13326
13327         * TreeView.cs: Set the TopNode properly when scrolling
13328         occurs. This has the added benifit of reducing the amount of
13329         walking that needs to be done when drawing. Also removed an old
13330         misleading TODO.
13331         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
13332         
13333 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
13334
13335         * Timer.cs: fixes interval setting when the timer is already enabled
13336         
13337 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
13338
13339         * FolderBrowserDialog.cs: First approach
13340
13341 2005-04-09  Peter Bartok  <pbartok@novell.com>
13342
13343         * FolderBrowserDialog: Added
13344
13345 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
13346
13347         * LinkLabel.cs: move drawing code into the theme
13348         * ThemeWin32Classic.cs: drawing code and painting background bugfix
13349         * Theme.cs: define DrawLinkLabel method
13350
13351 2005-04-05  Jackson Harper  <jackson@ximian.com>
13352
13353         * BindingContext.cs: Use weak references so these bad actors don't
13354         stay alive longer then they need to.
13355
13356 2005-04-05  Jackson Harper  <jackson@ximian.com>
13357
13358         * ListControl.cs: Basic implementation of complex databinding.
13359         * ComboBox.cs:
13360         * ListBox.cs: Add calls to ListControl databinding methods.
13361
13362 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
13363
13364         * FileDialog.cs:
13365           - Don't change PopupButtonState to Normal when the
13366             PopupButton gets pressed several times.
13367           - Renamed ButtonPanel to PopupButtonPanel
13368
13369 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
13370
13371         * ColorDialog.cs: Use cached objects instead of creating them
13372         * LinkLabel.cs: Use cached objects instead of creating them
13373         * Splitter.cs: Use cached objects instead of creating them
13374         * FontDialog.cs: Use cached objects instead of creating them
13375         * PropertyGridView.cs: Use cached objects instead of creating them
13376         * MessageBox.cs: Use cached objects instead of creating them
13377         * FileDialog.cs: Use cached objects instead of creating them
13378         * ThemeWin32Classic.cs: Use cached objects instead of creating them
13379         * TreeView.cs: Use cached objects instead of creating them
13380         
13381 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
13382
13383         * Control.cs: use Equals to compare the font since no == op
13384         * ScrollBar.cs: use Equals to compare the font since no == op
13385
13386 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
13387
13388         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
13389
13390 2005-04-01  Jackson Harper  <jackson@ximian.com>
13391
13392         * Binding.cs: Implement IsBinding.
13393         * BindingManagerBase.cs:
13394         * PropertyManager.cs:
13395         * CurrencyManager.cs: Add IsSuspended property.
13396
13397 2005-04-01  Jackson Harper  <jackson@ximian.com>
13398
13399         * Binding.cs: Had some IsAssignableFrom calls backwards.
13400
13401 2005-04-01  Jackson Harper  <jackson@ximian.com>
13402
13403         * Binding.cs: Handle null data members when pulling data.
13404         * PropertyManager.cs: Handle the data member being a property that
13405         does not exist.
13406
13407 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13408
13409         * DataGridTextBoxColumn.cs: fixes signature
13410         * DataGrid.cs: calls right constructor
13411
13412 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13413
13414         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
13415         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
13416         * GridTableStylesCollection.cs: implements GridTableStylesCollection
13417         * DataGridTableStyle.cs: implements DataGridTableStyle
13418         * DataGridBoolColumn.cs: implements DataGridBoolColumn
13419         * DataGridTextBox.cs: implements DataGridTextBox
13420         * DataGridColumnStyle.cs: implements DataGridColumnStyle
13421
13422 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
13423
13424         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
13425
13426 2005-03-29  Peter Bartok  <pbartok@novell.com>
13427
13428         * Application.cs:
13429           - Properly implemented CompanyName property
13430           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
13431             returns a path that includes CompanyName, ProductName and
13432             Version (fixes bug #70330)
13433
13434 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
13435
13436         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
13437           fixes bug #72588.
13438
13439 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13440
13441         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
13442         
13443           - Added ReadOnly CheckBox
13444           - Further refactoring: moved some code from Open-/SaveFileDialog
13445             to FileDialog
13446
13447 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13448
13449         * OpenFileDialog.cs: Fixed CheckFileExists
13450         * FileDialog.cs:
13451           Moved FileView and DirComboBox outside FileDialog class.
13452           They can now be used outside FileDialog
13453
13454 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13455
13456         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
13457         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
13458
13459 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13460
13461         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13462           - Added missing CreatePrompt property in SaveDialog
13463           - Overall SaveDialog handling should be better now
13464           - Added non standard ShowHiddenFiles property
13465           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
13466           - Added InitialDirectory and RestoreDirectory support
13467
13468 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
13469
13470         * FileDialog.cs: Made dirComboBox usable
13471
13472 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
13473
13474         * FileDialog.cs: Added Filter support (case sensitiv)
13475
13476 2005-03-24  Jackson Harper  <jackson@ximian.com>
13477
13478         * TabControl.cs: Need a couple more pixels for the lines.
13479
13480 2005-03-23  Jackson Harper  <jackson@ximian.com>
13481
13482         * TabControl.cs: Give the tab page focus when it is selected.
13483
13484 2005-03-23  Jackson Harper  <jackson@ximian.com>
13485
13486         * TabControl.cs: Account for the drawing of tabs borders when
13487         invalidating. If the slider was clicked dont do click detection on
13488         the tabs.
13489
13490 2005-03-23  Jackson Harper  <jackson@ximian.com>
13491
13492         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
13493
13494 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
13495
13496         * CategoryGridEntry.cs: Added
13497         * GridItem.cs: Added helper properties
13498         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
13499         * GridEntry.cs: Updated code for collection
13500         * PropertyGrid.cs: Cleaned up some formatting
13501         * PropertyGridView.cs: Added drop down functionality for enums.
13502         * GridItemCollection.cs: Added enumerator logic
13503         * PropertyGridEntry.cs: Added
13504
13505 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13506
13507         * FileDialog.cs:
13508           - Removed unnecessary commented code
13509           - Fixed handling for entering the filename manually in the combobox
13510
13511 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13512
13513         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
13514
13515 2005-03-18  Peter Bartok  <pbartok@novell.com>
13516
13517         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
13518           them being touching the border
13519
13520 2005-03-18  Peter Bartok  <pbartok@novell.com>
13521
13522         * TextControl.cs: Quick hack to center text better
13523
13524 2005-03-18  Peter Bartok  <pbartok@novell.com>
13525
13526         * ControlPaint.cs:
13527           - Don't throw NotImplemented exceptions, just print a notice once
13528             instead (requested by Miguel). This makes running existing SWF
13529             apps a bit easier
13530         * Control.cs:
13531           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
13532           - Added context menu trigger on right click
13533         * Panel.cs: Trigger invalidate on resize
13534         * StatusBar.cs:
13535           - Removed old double-buffer drawing
13536           - Added ResizeRedraw style to force proper update of statusbar
13537         * ListView.cs:
13538           - Removed debug output
13539         * ThemeWin32Classic.cs:
13540           - Fixed drawing of status bar, now draws Text property if there
13541             are no defined panels
13542
13543 2005-03-18  Jackson Harper  <jackson@ximian.com>
13544
13545         * ImageList.cs: When the image stream is set pull all the images
13546         from it.
13547         * ImageListStreamer.cs: Implement reading image list streams.
13548
13549 2005-03-18  Peter Bartok  <pbartok@novell.com>
13550
13551         * ThemeWin32Classic.cs (DrawPictureBox):
13552           - Fixed calculations for centered drawing
13553           - Fixed drawing for normal mode, not scaling the image on normal
13554
13555 2005-03-18  Peter Bartok  <pbartok@novell.com>
13556
13557         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
13558           textbox
13559         * FileDialog.cs:
13560           - Made Open/Save button the accept button for FileDialog
13561           - Tied the cancel button to the IButtonControl cancel button
13562           - Save/Open now properly builds the pathname
13563           - Now handles user-entered text
13564           - Preventing crash on right-click if no item is selected
13565           - Fixed Text property, now uses contents of textbox
13566           - Fixed SelectedText property, now just returns the text part that
13567             is selected in the text box
13568
13569 2005-03-18  Jackson Harper  <jackson@ximian.com>
13570
13571         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
13572         rect, make sure to de-adjust the interior rect after drawing the
13573         tab text.
13574
13575 2005-03-18  Peter Bartok  <pbartok@novell.com>
13576
13577         * MenuAPI.cs: Remove menu *before* executing selected action to
13578           prevent the menu from 'hanging around'
13579           
13580 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
13581
13582         * XplatUIOSX.cs: Implemented WorkingArea property
13583
13584 2005-03-17  Peter Bartok  <pbartok@novell.com>
13585
13586         * XplatUIX11.cs: Fixed menu coord calculations
13587         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
13588           for calculating offsets
13589
13590 2005-03-17  Peter Bartok  <pbartok@novell.com>
13591
13592         * Hwnd.cs: Do not consider menu presence for default client
13593           rectangle location/size
13594         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
13595           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
13596           translation functions
13597         * FileDialog.cs: Fixed (what I presume is a) typo
13598
13599 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
13600
13601         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
13602           X access (avoids X-Async errors)
13603
13604 2005-03-16  Jackson Harper  <jackson@ximian.com>
13605
13606         * TabControl.cs: Raise the SelectedIndexChanged event.
13607
13608 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
13609
13610         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13611           - Removed vertical ToolBar and replaced it with a custom panel
13612             (desktop and home button already work)
13613           - Added Help button (some controls get resized or relocated then)
13614           - Draw correct text depending on Open or Save.
13615           - Fixed some typos...
13616
13617 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
13618
13619         * ScrollBar.cs:
13620           - Only change Maximum and Minimum when need it (bug fix)
13621
13622 2005-03-15  Peter Bartok  <pbartok@novell.com>
13623
13624         * Form.cs: Use Handle for icon, to trigger creation if
13625           the window does not yet exist
13626         * Control.cs:
13627           - CanSelect: Slight performance improvement
13628           - Focus(): Preventing possible recursion
13629           - Invalidate(): Removed ControlStyle based clear flag setting
13630           - WM_PAINT: fixed logic for calling OnPaintBackground
13631           - WM_ERASEBKGND: Fixed logic, added call to new driver method
13632             EraseWindowBackground if the control doesn't paint background
13633         * XplatUIWin32.cs:
13634           - Moved EraseWindowBackground() method to internal methods
13635           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
13636             is sent via SendMessage on BeginPaint call on Win32
13637         * XplatUIX11.cs:
13638           - Added EraseWindowBackground() method
13639           - No longer sends WM_ERASEBKGND on .Expose, but on call to
13640             PaintEventStart, which more closely matches Win32 behaviour
13641           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
13642           - Fixed SetFocus() to properly deal with client and whole windows
13643         * Hwnd.cs: Added ErasePending property
13644         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
13645         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
13646
13647 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
13648
13649         * XplatUIOSX.cs:
13650           - Fix hard loop when timers exist.
13651           - Fix bugs with middle and right click for 3 button mice.
13652
13653 2005-03-11  Peter Bartok  <pbartok@novell.com>
13654
13655         * XplatUIX11.cs:
13656           - get_WorkingArea: Need to call X directly, GetWindowPos only
13657             returns cached data now
13658           - Added sanity check to GetWindowPos hwnd usage
13659
13660 2005-03-11  Jackson Harper  <jackson@ximian.com>
13661
13662         * BindingManagerBase.cs: This method isn't used anymore as
13663         PullData now updates the data in the control.
13664
13665 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
13666
13667         * Form.cs: fixes menu drawing on X11
13668         * MenuAPI.cs:  fixes menu drawing on X11
13669
13670 2005-03-11  Peter Bartok  <pbartok@novell.com>
13671
13672         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
13673           from Jonathan Gilbert; should fix bug #73606
13674         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
13675           in Screen coordinates. Thanks, Jordi.
13676         * Form.cs: Added missing attribute
13677
13678 2005-03-11  Peter Bartok  <pbartok@novell.com>
13679
13680         * Form.cs:
13681           - Rudimentary Mdi support
13682           - Removed outdated FormParent code
13683           - Implemented lots of missing properties and methods, still missing
13684             transparency support
13685           - Added missing attributes
13686           - Implemented support for MaximumBounds
13687           - Added firing of various events
13688         * XplatUI.cs: Added SetIcon() method
13689         * XplatUIDriver.cs: Added SetIcon() abstract
13690         * XplatUIOSX.cs: Stubbed out SetIcon() method
13691         * XplatUIX11.cs:
13692           - Implemented SetIcon() support
13693           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
13694           - Switched to unix line endings
13695         * XplatUIWin32.cs:
13696           - Made POINT internal so for can access it as part of MINMAX
13697           - Implemented SetIcon() support
13698           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
13699             native Mdi support again, might have to go managed)
13700         * Control.cs: Now fires the StyleChanged event
13701         * MdiClient.cs: Added; still mostly empty
13702
13703 2005-03-10  Peter Bartok  <pbartok@novell.com>
13704
13705         * SaveFileDialog.cs: Added emtpy file
13706
13707 2005-03-08  Peter Bartok  <pbartok@novell.com>
13708
13709         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
13710           in turn triggers OnCreateContro) when creating a handle for the
13711           first time.
13712         * TextControl.cs: Fixed endless loop in certain cases when
13713           replacing the current selection
13714
13715 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
13716
13717         * ScrollBar.cs:
13718           - Honors NewValue changes in Scroll events allowing apps to change it
13719           - Adds First and Last Scroll events
13720           - Fixes Thumb events
13721
13722 2005-03-07  Peter Bartok  <pbartok@novell.com>
13723
13724         * Hwnd.cs: Added DefaultClientRectangle property
13725         * XplatUI.cs: Now using the X11 driver Where() method, which provides
13726           more detailed debug information
13727         * XplatUIX11.cs:
13728           - Fixed size-change feedback loop, where we would pull an old size
13729             off the queue and mistakenly change our window's size to an
13730             earlier value
13731           - Now compressing ConfigureNotify events, to reduce looping and
13732             redraw issues
13733         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
13734           is called
13735
13736 2005-03-07  Jackson Harper  <jackson@ximian.com>
13737
13738         * Binding.cs: Push data pushes from data -> property. Check if the
13739         property is readonly when attempting to set it.
13740
13741 2005-03-07  Jackson Harper  <jackson@ximian.com>
13742
13743         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
13744         instead of IsSubclassOf. Pulling data now sets the value on the
13745         control.
13746         * PropertyManager.cs:
13747         * CurrencyManager.cs: Just need to pull data when updating now,
13748         because PullData will set the value on the control.
13749
13750 2005-03-04  Jackson Harper  <jackson@ximian.com>
13751
13752         * Binding.cs: Implement data type parsing and converting on pulled
13753         data. TODO: Are there more ways the data can be converted?
13754
13755 2005-03-04  Jackson Harper  <jackson@ximian.com>
13756
13757         * Binding.cs: Support <Property>IsNull checks. Also bind to the
13758         controls Validating method so we can repull the data when the
13759         control loses focus.
13760
13761 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
13762
13763         * ColumnHeader.cs:
13764           - Fixes null string format
13765           
13766         * ListView.cs:
13767           - Adds enum type checks
13768           - Fixes redrawing and recalc need after changing some properties
13769           - Fixes on focus_item set after the event
13770           - Fixes adding columns after the control has been created
13771           
13772         * ThemeWin32Classic.cs:
13773           - Fixes CheckBox focus rectangle
13774           - Fixes ColumnHeader drawing
13775
13776
13777 2005-03-03  Jackson Harper  <jackson@ximian.com>
13778
13779         * Binding.cs: Bind to <Property>Changed events so we can detect
13780         when properties are changed and update the data.
13781
13782 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
13783
13784         * ImageList.cs:
13785           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
13786           - Fixes ImageList constructor with ImageList container
13787           - Fixes image scaling (wrong parameters at DrawImage)
13788
13789 2005-02-02  Jackson Harper  <jackson@ximian.com>
13790
13791         * Binding.cs: Make property searches case-insensitive. Eliminate
13792         some duplicated code.
13793
13794 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
13795
13796         * ComboBox.cs:
13797                 - Handle focus event
13798                 - Fix scrollbar events
13799                 - Discard highlighted item if remove it
13800                 - Fixes SelectedItem with strings
13801
13802 2005-03-01  Peter Bartok  <pbartok@novell.com>
13803
13804         * Control.cs:
13805           - Fixed Visible property, now follows (once again) parent chain
13806             to return false if any control in the chain is visible=false
13807           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
13808           - Fixed several places where is_visible instead of Visible was used
13809           - Implemented FIXME related to focus selection when setting focused
13810             control to be invisible
13811
13812         * XplatUIWin32.cs: Now using proper method to find out if window is
13813           visible. Thanks to Jordi for pointing it out
13814
13815 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
13816
13817         * ComboBox.cs: show/hide scrollbar instead of creating it
13818
13819 2005-02-27  Jackson Harper  <jackson@ximian.com>
13820
13821         * CurrencyManager.cs: Add PositionChanged stuff.
13822
13823 2005-02-27  Peter Bartok  <pbartok@novell.com>
13824
13825         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
13826         * XplatUIOSX.cs: Added GetMenuOrigin() stub
13827         * XplatUIWin32.cs: Implemented GetMenuOrigin()
13828         * XplatUIX11.cs:
13829           - Implemented GetMenuDC()
13830           - Implemented GetMenuOrigin()
13831           - Implemented ReleaseMenuDC()
13832           - Implemented generation of WM_NCPAINT message
13833           - Implemented generation and handling of WM_NCCALCSIZE message
13834         * Form.cs: Added debug helper message for Jordi's menu work
13835         * Hwnd.cs:
13836           - Modified ClientRect property; added setter, fixed getter to handle
13837             setting of ClientRect
13838           - Added MenuOrigin property
13839
13840 2005-02-26  Peter Bartok  <pbartok@novell.com>
13841
13842         * XplatUIX11.cs:
13843           - Destroys the caret if a window that's being destroyed contains it
13844           - Ignores expose events coming from the X11 queue for windows that
13845             already are destroyed
13846           - Now uses the proper variable for handling DestroyNotify, before we
13847             marked the wrong window as destroyed
13848           - Improved/added some debug output
13849
13850 2005-02-26  Peter Bartok  <pbartok@novell.com>
13851
13852         * X11Keyboard.cs: Fixes to work on 64bit systems
13853
13854 2005-02-26  Peter Bartok  <pbartok@novell.com>
13855
13856         * Control.cs:
13857           - Now calling OnHandleDestroyed from DestroyHandle()
13858             instead of Dispose()
13859           - Removed bogus call to controls.Remove() from DestroyHandle()
13860
13861 2005-02-26  Peter Bartok  <pbartok@novell.com>
13862
13863         * Control.cs: Properly destroy child windows when our handle is
13864           destroyed
13865
13866 2005-02-25  Peter Bartok  <pbartok@novell.com>
13867
13868         * XplatUI.cs:
13869           - Added 'DriverDebug' define to allow tracing XplatUI API calls
13870           - Alphabetized Static Methods and Subclasses
13871
13872         * XplatUIX11.cs:
13873           - Added XException class to allow custom handling of X11 exceptions
13874           - Created custom X11 error handler, tied into XException class
13875           - Added support for MONO_XEXCEPTIONS env var to allow the user
13876             to either throw an exception on X errors or continue running
13877             after displaying the error
13878           - Added handling of DestroyNotify message
13879           - Added handler for CreateNotify message (still disabled)
13880           - Improved (tried to at least) Where method to provide file and lineno
13881         * X11Structs.cs:
13882           - Added XErrorHandler delegate
13883           - Added XRequest enumeration (to suppor translation of errors)
13884
13885 2005-02-25  Jackson Harper  <jackson@ximian.com>
13886
13887         * PropertyManager.cs: Implement editing features
13888         * CurrencyManager.cs:
13889         * Binding.cs: First attempt at UpdateIsBinding
13890         * BindingManagerBase.cs: Call UpdateIsBinding before
13891         pushing/pulling data.
13892
13893 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
13894
13895         * MenuAPI.cs: Respect disabled items
13896         * ThemeWin32Classic.cs
13897                 - Caches ImageAttributes creation for DrawImageDisabled
13898                 - Fixes vertical menu line drawing
13899                 - Draws disabled arrows in disable menu items
13900
13901 2005-02-24  Peter Bartok  <pbartok@novell.com>
13902
13903         * Hwnd.cs:
13904           - Added UserData property to allow associating arbitrary objects
13905             with the handle
13906           - Fixed leak; now removing Hwnd references from static windows array
13907         * XplatUIWin32.cs:
13908           - Fixed Graphics leak in PaintEventEnd
13909           - Removed usage of HandleData, switched over to Hwnd class
13910         * HandleData.cs: Removed, obsoleted by Hwnd.cs
13911
13912 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13913
13914         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
13915         * ScrollBar.cs: Fixes bug
13916         * TrackBar.cs: removes death code, clipping, mimize refreshes,
13917          keyboard navigation enhancements
13918
13919 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13920
13921         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
13922         * GroupBox.cs: Add control styles
13923         * Label.cs: Add control styles
13924         * UpDownBase.cs: Add control styles
13925         * ListBox.cs: Add control styles
13926         * XplatUIWin32.cs: Fixes wrong parameter order
13927
13928
13929 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
13930
13931         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
13932
13933 2005-02-23  Jackson Harper  <jackson@ximian.com>
13934
13935         * PropertyManager.cs: Implement property binding. This doesn't
13936         seem to work yet though as (I think) there are some bugs in
13937         System.ComponentModel.PropertyDescriptor.
13938         * BindingContext.cs: Use new PropertyManager constructor.
13939
13940 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
13941
13942         * ProgressBar.cs: use clip region in ProgressBar
13943         * ThemeWin32Classic.cs: use clip region in ProgressBar
13944
13945 2004-02-22  Jackson Harper  <jackson@ximian.com>
13946
13947         * BindingsCollection.cs: Remove some debug code.
13948
13949 2005-02-22  Jackson Harper  <jackson@ximian.com>
13950
13951         * BindingContext.cs:
13952         * ControlBindingsCollection.cs:
13953         * CurrencyManager.cs:
13954         * Binding.cs:
13955         * BindingManagerBase.cs: Initial implementation
13956         * BindingsCollection.cs: Add an internal contains method that the
13957         BindingManagerBase uses to ensure bindings aren't added twice to
13958         the collection.
13959         * PropertyManager.cs: Stubbed out.
13960         * Control.cs:
13961         * ContainerControl.cs: Hook up databinding
13962         
13963 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
13964
13965         * XplatUIOSX.cs:
13966           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
13967           Fixed Invalidate/Update chain.
13968           Fixed tons of other minor bugs (this is almost a complete rewrite).
13969
13970 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
13971
13972         * ComboBox.cs: do subcontrol creation when the control is created
13973
13974 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13975
13976         * Label.cs: fixes image drawing (image and imagelist)
13977         * ThemeWin32Classic.cs: cache brushes
13978         
13979 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13980
13981         * Form.cs: Move menu drawing code to Theme class
13982         * ComboBox.cs: Move ComboBox drawing code to Theme class
13983         * MenuItem.cs: Move menu drawing code to Theme class
13984         * MenuAPI.cs: Move menu drawing code to Theme class
13985         * ThemeWin32Classic.cs: New methods
13986         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
13987         * ListBox.cs: Move Listbox drawing code to Theme class
13988         * Theme.cs: New methods
13989
13990 2005-02-20  Peter Bartok  <pbartok@novell.com>
13991
13992         * Control.cs:
13993           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
13994             only process mnemonics on those)
13995           - Fixed event sequence for key handling; first calling
13996             ProcessKeyEventArgs now
13997         * TextBoxBase.cs:
13998           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
13999             for processing non-character keys
14000           - Fixed WM_CHAR to generate proper event sequence before processing
14001         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
14002           generation
14003
14004 2005-02-19  Peter Bartok  <pbartok@novell.com>
14005
14006         * UserControl.cs: Added TextChanged event; added attributes
14007         * SizeGrip.cs: Implemented resizing and optional display of grip
14008         * Form.cs: Fixed attribute
14009         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14010           Changed meaning of ScrollWindow bool argument; instead of the
14011           clear attribute (which will be true usually anyway), it gives the
14012           option of moving child controls as well.
14013         * XplatUIX11.cs:
14014           - Changed to match new ScrollWindow argument
14015           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
14016             now handles the implicit parent window a WM puts around us
14017         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
14018           to work)
14019         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
14020         * TreeView.cs: Adjusted to new ScrollWindow arguments
14021
14022 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
14023
14024         * Form.cs: Menu integration with non-client area
14025         * MenuItem.cs: Menu integration with non-client area
14026         * MenuAPI.cs: Menu integration with non-client area
14027
14028 2005-02-18  Peter Bartok  <pbartok@novell.com>
14029
14030         * MethodInvoker.cs: Added
14031         * MdiLayout.cs: Added
14032         * SendKeys.cs: Started implementation
14033         * ErrorIconAlignment.cs: Added
14034
14035 2005-02-18  Peter Bartok  <pbartok@novell.com>
14036
14037         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
14038         * Form.cs: Added handling for Menu-related Non-client messages
14039
14040 2005-02-17  Peter Bartok  <pbartok@novell.com>
14041
14042         * UpDownBase.cs: Fixed typo, compilation errors
14043         * DomainUpDown.cs: Fixed attribute value
14044
14045 2005-02-16  Miguel de Icaza  <miguel@novell.com>
14046
14047         * UpDownBase.cs: Attach entry events.
14048         Propagate events.
14049         Add ForeColor property, Focused, InterceptArrowKeys (interception
14050         does not work yet).
14051
14052 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
14053
14054         * Form.cs:
14055                 - Redraw non client are on Setmenu
14056                 - Calc proper menu starting point
14057
14058 2005-02-17  Peter Bartok  <pbartok@novell.com>
14059
14060         * Application.cs: Fixed message_filter check
14061
14062 2005-02-17  Peter Bartok  <pbartok@novell.com>
14063
14064         * Application.cs: Now calls registered message filters
14065         * DockStyle.cs: Fixed attribute
14066         * Form.cs: Fixed attribute
14067         * Menu.cs: Fixed attribute
14068         * ToolTip.cs: Fixed attribute
14069         * TreeNode.cs: Added missing attributes and arranged in regions
14070         * PropertyGrid.cs: Fixed signatures
14071         * TreeNodeCollection.cs: Added attributes
14072         * Splitter.cs: Added missing attributes; arranged into regions
14073         * TabPage.cs: Added missing attributes; arranged into regions
14074         * TextBoxBase.cs: Added missing attributes
14075         * TextBox.cs: Added missing attributes
14076         * ArrangeDirection.cs: Added missing attributes
14077         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
14078         * ToolBarButton.cs: Fixed attributes
14079         * AnchorStyles.cs: Fixed attribute
14080         * TrackBar.cs: Fixed attributes
14081         * TabControl.cs: Added missing attributes and arranged into regions
14082         * ToolBar.cs: Fixed attribute
14083         * StatusBar.cs: Fixed signature, organized into regions and added
14084           attributes
14085         * StatusBarPanel.cs: Fixed attributes
14086         * ContentsResizedEventArgs.cs: Implemented
14087         * ContentsResizedEventHandler.cs: Implemented
14088         * DateBoldEventArgs.cs: Implemented
14089         * DateBoldEventHandler.cs: Implemented
14090         * UpDownEventArgs.cs: Implemented
14091         * UpDownEventHandler.cs: Implemented
14092         
14093 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
14094
14095         * Form.cs: first Menu NC refactoring
14096         * MenuAPI.cs: first Menu NC refactoring
14097         
14098 2005-02-16  Peter Bartok  <pbartok@novell.com>
14099
14100         * ImeMode.cs: Added missing attributes
14101         * Menu.cs: Fixed attribute
14102         * GroupBox.cs: Fixed attribute
14103         * Label.cs: Fixed attribute
14104         * ColorDialog.cs (RunDialog): Removed TODO attribute
14105         * ComboBox.cs: Fixed attributes
14106         * ListControl.cs: Added missing attributes
14107         * PropertyGrid.cs: Fixed attributes
14108         * Control.cs: Fixed attributes
14109         * ListViewItem.cs: Added TypeConverter attribute
14110         * NotifyIcon.cs: Fixed attributes
14111         * ListView.cs: Fixed attributes
14112         * ButtonBase.cs: Fixed attribute
14113         * ImageList.cs: Added missing attributes
14114         * ContainerControl.cs: Fixed signature
14115         * CheckedListBox.cs: Fixed attribute; added missing attributes
14116         * Panel.cs: Fixed attributes
14117         * PropertyTabChangedEventArgs.cs: Added missing attribute
14118         * PropertyValueChangedEventArgs.cs: Added missing attribute
14119         * Binding.cs: Fixed attribute
14120         * ListViewItemConverter: Implemented ListViewSubItemConverter class
14121         * ListBox.cs: Fixed attribute; added missing attributes;
14122         * ScrollableControl.cs: Added missing attributes
14123         * PictureBox.cs: Added missing attributes; implemented missing property
14124         * DateTimePicker.cs: Added missing attributes
14125         * Theme.cs (ToolWindowCaptionHeight): Fixed type
14126         * MonthCalendar.cs: Fixed attributes
14127         * StatusBarPanel.cs: Added missing attributes
14128         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
14129
14130 2005-02-16  Peter Bartok  <pbartok@novell.com>
14131
14132         * TextBoxBase.cs: The previous method to enforce height yet remember
14133           the requested high was less than ideal, this is an attempt to do
14134           it better.
14135         * Control.cs: Added comment about possible problem
14136         * Copyright: Updated format
14137         * GridItemType.cs: Fixed swapped values
14138
14139 2005-02-15  Jackson Harper  <jackson@ximian.com>
14140
14141         * BaseCollection.cs: Use property so we never access an
14142         uninitialized list. Also initialize the list in the property.
14143
14144 2005-02-15  Peter Bartok  <pbartok@novell.com>
14145
14146         * GroupBox.cs (ProcessMnemonic): Implemented
14147         * Label.cs (ProcessMnemonic): Implemented
14148         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
14149           hotkeys
14150
14151 2005-02-15  Peter Bartok  <pbartok@novell.com>
14152
14153         * RadioButton.cs (ProcessMnemonic): Implemented
14154         * CheckBox.cs (ProcessMnemonic): Implemented
14155         * Control.cs:
14156           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
14157             handling
14158           - Added internal method to allow calling ProcessMnemonic from other
14159             controls
14160         * ContainerControl.cs:
14161           - Started support for handling validation chain handling
14162           - Implemented ProcessMnemonic support
14163           - Added Select() call to Active, to make sure the active control
14164             receives focus
14165         * Form.cs: Setting toplevel flag for Forms (this was lost in the
14166           FormParent rewrite)
14167         * ThemeWin32Classic.cs:
14168           - DrawCheckBox(): Fixed stringformat to show hotkeys
14169           - DrawRadioButton(): Fixed stringformat to show hotkeys
14170         * CommonDialog.cs: Removed WndProc override, not needed
14171
14172 2005-02-14  Peter Bartok  <pbartok@novell.com>
14173
14174         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
14175           missed those in the rewrite
14176
14177 2005-02-14  Miguel de Icaza  <miguel@novell.com>
14178
14179         * NumericUpDown.cs (Increment, ToString): Add.
14180         (DecimalPlaces): implement.
14181         
14182         Add attributes.
14183         
14184         * UpDownBase.cs: Add the designer attributes.
14185
14186 2005-02-13  Peter Bartok  <pbartok@novell.com>
14187
14188         * Panel.cs: Removed border_style, now in Control
14189         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
14190           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
14191
14192 2005-02-13  Peter Bartok  <pbartok@novell.com>
14193
14194         * MouseButtons.cs: Added missing attributes
14195         * XplatUIStructs.cs: Added enumeration for title styles
14196         * LeftRightAlignment.cs: Added missing attributes
14197         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
14198           it compatible with Graphics.FromHwnd()
14199         * SelectedGridItemChangedEventArgs.cs: Fixed property type
14200         * Keys.cs: Added missing attributes
14201         * SelectionRange.cs: Added missing attributes
14202         * SelectionRangeConverter.cs: Added
14203         * XplatUI.cs:
14204           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
14205             ReleaseMenuDC methods
14206           - Renamed ReleaseWindow to UngrabWindow
14207           - Added proper startup notice to allow version identification
14208         * Form.cs:
14209           - Added missing attributes
14210           - Removed FormParent concept
14211         * Label.cs: Removed border_style field, now in Control
14212         * RadioButton.cs: Now properly selects RadioButton when focus is
14213           received
14214         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
14215         * Control.cs:
14216           - Added missing attributes
14217           - Added borderstyle handling
14218           - Removed FormParent concept support
14219           - Fixed calls to XplatUI to match changed APIs
14220           - Fixed bug that would case us to use disposed Graphics objects
14221           - Removed unneeded internal methods
14222           - PerformLayout(): Fixed to handle DockStyle.Fill properly
14223           - SelectNextControl(): Fixed to properly check common parents
14224         * TextBoxBase.cs: Removed border_style field (now in Control)
14225         * MessageBox.cs:
14226           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
14227             fixed calculations for form size
14228           - Added support for localized strings and icons
14229           - Improved form size calculations, added border
14230         * ListView.cs: Removed border_style field (now in Control)
14231         * X11Structs.cs: Moved several structs from X11 driver here
14232         * X11Keyboard.cs: Changed debug message
14233         * Application.cs: Removed FormParent concept support
14234         * CommonDialog.cs:
14235           - Resetting end_modal flag
14236           - Removed FormParent concept support
14237         * NativeWindow.cs: Removed FormParent concept support
14238         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
14239           Client area and Non-Client whole window to allow support for WM_NC
14240           messages
14241         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
14242           prevent using it until it supports Hwnd as per Geoff Norton's request
14243         * ToolBar.cs: Fixed drawing, was not doing proper drawing
14244         * PictureBox.cs: Removed border_style field, now in Control
14245         * XplatUIWin32.cs: Added new driver methods
14246
14247 2005-02-12  Peter Bartok  <pbartok@novell.com>
14248
14249         * OpacityConverter.cs: Implemented
14250         * Hwnd.cs: Internal class to support drivers that need to emulate
14251           client area/non-client area window behaviour
14252
14253 2005-02-11  Peter Bartok  <pbartok@novell.com>
14254
14255         * KeysConverter.cs: Implemented
14256
14257 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
14258
14259         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
14260         * LinkLabel: Added missing attributes
14261         * MainMenu.cs: fixes ToString
14262         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
14263         * ListBox.cs: fixes event position
14264         * TrackBar.cs: adds missing attributes and events
14265         
14266 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
14267
14268         * MenuItem.cs: Use SystemInformation and bug fixes
14269         * MenuAPI.cs: Use SystemInformation and bug fixes
14270
14271 2005-02-09  Jackson Harper  <jackson@ximian.com>
14272
14273         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
14274         their keystate otherwise things like VK_MENU get stuck "on".
14275
14276 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
14277
14278         * ListBox.cs: Fixes AddRange bug
14279         
14280 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
14281
14282         * ProgressBar.cs
14283                 - Add missing attributes
14284                 - Add missing method
14285                 
14286         * CheckedListBox.cs: Added missing attributes
14287                 - Add missing attributes
14288                 - Remove extra method
14289         
14290         * ComboBox.cs: Added missing attributes
14291         * VScrollBar.cs: Added missing attributes
14292         * ScrollBar.cs:  Added missing attributes
14293         * ListBox.cs: Fixes signature, add missing consts
14294         * LinkArea.cs:   Added missing attributes
14295         
14296
14297 2005-02-08  Peter Bartok  <pbartok@novell.com>
14298
14299         * Menu.cs: Added missing attributes
14300         * MainMenu.cs: Added missing attributes
14301         * GroupBox.cs: Added missing attributes
14302         * Label.cs: Added missing attributes
14303         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
14304         * ColorDialog.cs:
14305           - Added Instance and Options properties
14306           - Added missing attributes
14307         * Cursor.cs: Made Serializable
14308         * NotifyIcon: Added missing attributes
14309         * MenuItem.cs: Added missing attributes
14310         * TextBoxBase.cs: Implemented AppendText() and Select() methods
14311         * Panel.cs: Added Missing attributes
14312         * MonthCalendar.cs: Fixed CreateParams
14313
14314 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14315         
14316         * LinkLabel.cs:
14317                 - Fixes signature
14318                 - Fixes issues with links
14319                 - Adds the class attributes
14320
14321 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14322         
14323         * ComboBox.cs:
14324                 - Fixes button when no items available in dropdown
14325                 - Fixes repainting problems
14326                 - Adds the class attributes
14327                 
14328 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14329
14330         * XplatUIOSX.cs: Detect the menu bar and title bar height from
14331         the current theme.  Cache these on startup.
14332
14333 2005-02-07  Jackson Harper  <jackson@ximian.com>
14334
14335         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
14336         the scrollbar buttons when they are depressed.
14337
14338 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14339
14340         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
14341         Get the display size from the main displayid.  We currently dont
14342         support multiple display configurations.
14343
14344 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14345
14346         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
14347
14348 2005-02-07  Miguel de Icaza  <miguel@novell.com>
14349
14350         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
14351
14352 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
14353
14354         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
14355
14356 2005-02-04  Jackson Harper  <jackson@ximian.com>
14357
14358         * ThemeWin32Classic.cs: Respect the clipping rect when
14359         drawing. Only fill the intersection of clips and rects so there
14360         isn't a lot of large fills.
14361         * ScrollBar.cs: Pass the correct clipping rect to the theme
14362         engine. Remove some debug code.
14363
14364 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
14365         
14366         * DateTimePicker.cs:
14367                 - Fixed crash on DateTime.Parse, use Constructor instead
14368
14369 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14370         
14371         * MenuItem.cs:
14372         * MenuAPI.cs:
14373                 - Owner draw support (MeasureItem and DrawItem)
14374
14375 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14376         
14377         *  Menu.cs:
14378                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
14379                 - Fixes MenuItems.Add range
14380         * MenuItem.cs:
14381                 - MergeMenu and Clone and CloneMenu functions
14382
14383 2005-02-03  Jackson Harper  <jackson@ximian.com>
14384
14385         * ScrollBar.cs: Make abstract
14386         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
14387         is abstract.
14388
14389 2005-02-03  Jackson Harper  <jackson@ximian.com>
14390
14391         * ScrollBar.cs: First part of my scrollbar fixups. This removes
14392         all the unneeded refreshes and uses invalidates with properly
14393         computed rects.
14394
14395 2005-02-03  Peter Bartok  <pbartok@novell.com>
14396
14397         * ComponentModel.cs: Added
14398         * IDataGridEditingService.cs: Added
14399         * Timer.cs: Added missing attributes
14400         * ToolTip.cs: Added missing attributes
14401
14402 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14403
14404         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
14405
14406 2005-02-03  Peter Bartok  <pbartok@novell.com>
14407
14408         * ListBox.cs: Added missing attributes
14409
14410 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
14411         
14412         * ListBox.cs:
14413                 - Fixes font height after font change
14414                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
14415                 
14416 2005-02-02  Peter Bartok  <pbartok@novell.com>
14417
14418         * HandleData.cs: Introduced static methods to allow class
14419           to be more self-contained and track it's own HandleData objects
14420         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
14421           HandleData to use new static methods
14422
14423 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
14424
14425         * Combobox.cs:
14426                 - Fixes default size and PreferredHeight
14427                 - Missing events
14428                 - ObjectCollection.Insert implementation
14429                 
14430         * ListControl.cs
14431                 - Fixes signature
14432         * ListBox.cs:
14433                 - Several fixes
14434                 - ObjectCollection.Insert implementation
14435                 - No selection after clean
14436                 - Small fixes
14437
14438 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14439
14440         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
14441
14442 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
14443
14444         * Combobox.cs:
14445                 - Caches ItemHeight calculation for OwnerDrawVariable
14446                 - Handles dropdown properly
14447                 - Fixes several minor bugs
14448
14449 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14450
14451         * ListBox.cs:
14452                 - Fixes 71946 and 71950
14453                 - Fixes changing Multicolumn on the fly
14454                 - Fixes keyboard navigation on Multicolumn listboxes
14455
14456 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14457         
14458         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
14459         crash reporter log.
14460
14461 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14462
14463         * XplatUIOSX.cs: Allow applications to actually exit.
14464
14465 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14466
14467         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
14468         their parent at creation time rather than lazily later.  Fixes a major
14469         regression we were experiencing.
14470
14471 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14472
14473         * ThemeWin32Classic.cs: more date time picker painting fixes
14474         * DateTimePicker.cs: more monthcalendar drop down fixes
14475         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
14476
14477 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14478
14479         * ScrollBar.cs:
14480                 - When moving the thumb going outside the control should stop the moving
14481                 - Adds the firing of missing events
14482                 - Fixes no button show if Size is not specified
14483                 - End / Home keys for keyboard navigation
14484
14485 2005-01-30  Peter Bartok  <pbartok@novell.com>
14486
14487         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
14488           sanity check to prevent theoretical loop
14489         * XplatUIWin32.cs (SetVisible): Removed debug output
14490         * XplatUIX11.cs (SystrayChange): Added sanity check
14491         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
14492         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
14493           behaviour, valid until the X11 client window rewrite is done
14494         * TextBox.cs (ctor): Setting proper default foreground and background
14495           colors
14496
14497 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
14498
14499         * Theme: Added DrawDateTimePicker to interface
14500         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
14501         * DateTimePicker.cs: Created (still needs keys and painting code)
14502         * DateTimePickerFormat.cs: added
14503         * MonthCalendar.cs: fixed CreateParams for popup window mode
14504           
14505 2005-01-29  Peter Bartok  <pbartok@novell.com>
14506
14507         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
14508           this should also the calculations for ligher/darker
14509         * Theme.cs: Fixed defaults for ScrollBar widths/heights
14510
14511 2005-01-29  Peter Bartok  <pbartok@novell.com>
14512
14513         * ArrangeDirection.cs: Added
14514         * ArrangeStartingPositon.cs: Added
14515         * SystemInformation.cs: Implemented
14516         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14517           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
14518           used by SystemInformation class
14519         * X11Strucs.cs: Added XSizeHints structure
14520         * MenuAPI.cs:
14521           - Fixed CreateParams to make sure the menu window is always visible
14522           - TrackPopupMenu: Added check to make sure we don't draw the
14523             menu offscreen
14524
14525 2005-01-29  Peter Bartok  <pbartok@novell.com>
14526
14527         * HandleData.cs: Added method for altering invalid area
14528         * TextBoxBase.cs: Implemented TextLength
14529
14530 2005-01-28  Peter Bartok  <pbartok@novell.com>
14531
14532         * XplatUIX11.cs: Improvement over last patch, not sending
14533           the WM_PAINT directly anymore, instead we scroll any pending
14534           exposed areas and let the system pick out the WM_PAINT later
14535
14536 2005-01-28  Peter Bartok  <pbartok@novell.com>
14537
14538         * SWF.csproj: Deleted, no longer used. Instead,
14539           Managed.Windows.Forms/SWF.csproj should be used
14540         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
14541           directly, to avoid a potential race condition with the next
14542           scroll
14543
14544 2005-01-28  Peter Bartok  <pbartok@novell.com>
14545
14546         * XplatUI.cs: Made class internal
14547
14548 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
14549
14550         * CheckedListBox.cs:
14551                 - Draw focus
14552                 - Fixed Drawing
14553                 - Missing methods and events
14554
14555 2005-01-27  Peter Bartok  <pbartok@novell.com>
14556
14557         * Application.cs (Run): Don't use form if we don't have one
14558
14559 2005-01-27  Peter Bartok  <pbartok@novell.com>
14560
14561         * TextBoxBase.cs (get_Lines): Fixed index off by one error
14562
14563 2005-01-27  Peter Bartok  <pbartok@novell.com>
14564
14565         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
14566         * GridItem.cs: Added; Patch by Jonathan S. Chambers
14567         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
14568         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
14569         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
14570         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
14571         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14572         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14573         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14574         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14575         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14576         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14577
14578 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14579
14580         * Combobox.cs:
14581                 - Draw focus on Simple Combobox
14582                 - Fixes drawing issues
14583                 - fixes 71834
14584
14585 2005-01-27  Peter Bartok  <pbartok@novell.com>
14586
14587         * Form.cs:
14588           - Place window in default location, instead of hardcoded 0/0
14589           - Send initial LocationChanged event
14590         * Control.cs:
14591           - UpdateBounds after creation to find out where the WM placed us
14592           - Make sure that if the ParentForm changes location the Form
14593             is notified
14594         * XplatUIX11.cs: XGetGeometry will not return the coords relative
14595             to the root, but to whatever the WM placed around us.
14596             Translate to root coordinates before returning toplevel
14597             coordinates
14598         * XplatUIWin32.cs: Removed debug output
14599         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
14600           flag to GetWindowPos, to allow translation of coordinates on X11
14601
14602 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14603
14604         * ListBox.cs: connect LostFocus Event
14605
14606 2005-01-27  Peter Bartok  <pbartok@novell.com>
14607
14608         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14609           XplatUIX11.cs: Extended the Systray API
14610         * Form.cs: Removed debug output
14611         * Application.cs: Fixed focus assignment, always need to call
14612           XplatUI.Activate() since Form.Activate() has rules that may
14613           prevent activation
14614         * NotifyIcon.cs: Should be complete now
14615         * ToolTip.cs: Worked around possible timer bug
14616
14617 2005-01-27  Jackson Harper  <jackson@ximian.com>
14618
14619         * TabControl.cs:
14620         - Only invalidate the effected tabs when the
14621         selected index changes. This reduces drawing and gets rid of some
14622         flicker.
14623         - Only refresh if the tabs need to be shifted, otherwise only
14624         invalidate the slider button.
14625         - On windows the tabs are not filled to right if the slider is
14626         visible.
14627         
14628 2005-01-27  Jackson Harper  <jackson@ximian.com>
14629
14630         * TabControl.cs: Only refresh on mouseup if we are showing the
14631         slider. Also only invalidate the button whose state has changed.
14632
14633 2005-01-26  Peter Bartok  <pbartok@novell.com>
14634
14635         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
14636         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
14637           and SystrayRemove() methods
14638         * XplatUIOSX.cs: Stubbed Systray methods
14639         * XplatUIX11.cs:
14640           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
14641             methods
14642           - Fixed broken XChangeProperty calls (marshalling messed up things)
14643         * X11Structs.cs: Added enums and structs required for Size hinting
14644         * NotifyIcon.cs: Added & implemented
14645
14646 2005-01-26  Jackson Harper  <jackson@ximian.com>
14647
14648         * TabControl.cs: Space vertically layed out tabs properly.
14649
14650 2005-01-26  Peter Bartok  <pbartok@novell.com>
14651
14652         * Form.cs (CreateClientParams): Always set the location to 0,0
14653           since we're a child window.
14654
14655         * Control.cs (SetVisibleCore): Always explicitly setting the location
14656           of a toplevel window, apparently X11 doesn't like to move windows
14657           while they're not mapped.
14658
14659 2005-01-26  Jackson Harper  <jackson@ximian.com>
14660
14661         * TabControl.cs: Implement FillToRight size mode with vertically
14662         rendered tabs.
14663
14664 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14665
14666         * ControlPaint.cs, ThemeWin32Classic.cs
14667                 - Fixes DrawFocusRectangle
14668
14669 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14670
14671         * MenuAPI.cs:
14672                 - MenuBar tracking only starts when item is first clicked
14673                 - Fixes menu hidding for multiple subitems
14674                 - Unselect item in MenuBar when item Executed
14675                 - Fixes bug 71495
14676
14677 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
14678
14679         * ListControl.cs:
14680                 - IsInputKey for ListBox
14681         * ListBox.cs:
14682                 - Focus item
14683                 - Shift and Control item selection
14684                 - Implement SelectionMode.MultiExtended
14685                 - Fixes RightToLeft
14686         * ComboBox.cs:
14687                 - IsInputKey implemented
14688                 - Do not generate OnTextChangedEdit on internal txt changes
14689                 
14690 2005-01-23  Peter Bartok  <pbartok@novell.com>
14691
14692         * AccessibleObject.cs: Partially implemented Select()
14693         * MonthCalendar.cs: Added missing attributes and events
14694         * Form.cs: Fixed CreateParams behaviour, now controls derived from
14695           form can properly override CreateParams.
14696         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14697           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
14698           Control performs Invalidate & Update
14699         * NativeWindow (CreateHandle): Added special handling for Form
14700           and Form.FormParent classes to allow overriding of From.CreateParams
14701         * Control.cs:
14702           - ControlNativeWindow: Renamed 'control' variable to more intuitive
14703             name 'owner'
14704           - ControlNativeWindow: Added Owner property
14705           - Removed usage of Refresh() on property changes, changed into
14706             Invalidate(), we need to wait until the queue is processed for
14707             updates, direct calls might cause problems if not all vars for
14708             Paint are initialized
14709           - Added call to UpdateStyles() when creating the window, to set any
14710             styles that CreateWindow might have ignored.
14711           - Added support for Form CreateParent overrides to UpdateStyles()
14712         * MessageBox.cs: Removed no longer needed FormParent override stuff,
14713           CreateParams are now properly overridable
14714         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
14715           CreateParams are now properly overridable
14716
14717 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
14718
14719         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
14720         OnTextBoxChanged.
14721
14722         Capture LostFocus and OnTextBoxChanged.  The later introduces a
14723         recursive invocation that I have not figured out yet.
14724
14725         Reset the timer when not using (it was accumulating).
14726
14727
14728         (OnTextBoxChanged): Set UserEdit to true here to track whether the
14729         user has made changes that require validation.
14730
14731         Reset changing to avoid loops.
14732
14733 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
14734
14735         * NumericUpDown.cs: Display value at startup.
14736
14737         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
14738         ValidateEditText.
14739
14740         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
14741         filled in.  Added some basic parsing of text.
14742
14743         Still missing the OnXXX method overrides, and figuring out the
14744         events that must be emitted.
14745
14746         * UpDownBase.cs: Handle UserEdit on the Text property.
14747         
14748 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
14749
14750         * ComboBox.cs:
14751           - Fixes IntegralHeight
14752           - ToString method
14753
14754 2005-01-21  Jackson Harper  <jackson@ximian.com>
14755
14756         * TabControl.cs: Set the SelectedIndex property when SelectedTab
14757         is set so that the page visibility is updated and the tabs are
14758         sized correctly.
14759
14760 2005-01-21  Jackson Harper  <jackson@ximian.com>
14761
14762         * TabControl.cs: Use cliping rectangle for blitting. Give the
14763         theme the clipping rect so we can do clipping while
14764         drawing. Remove some debug code.
14765
14766 2005-01-21  Jackson Harper  <jackson@ximian.com>
14767
14768         * TabPage.cs: Add a new method so tab pages can force the tab
14769         control to recalculate the tab page sizes.
14770         * TabControl.cs: UpdateOwner needs to make the tab control recalc
14771         sizes.
14772
14773 2005-01-20  Jackson Harper  <jackson@ximian.com>
14774
14775         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
14776
14777 2005-01-20  Jackson Harper  <jackson@ximian.com>
14778
14779         * TreeView.cs: Set the bounds for nodes properly. They were
14780         getting screwed up when checkboxes were not enabled, but images
14781         were.
14782
14783 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
14784
14785         * ListBox.cs:
14786                 - Owner draw support
14787                 - Fixes
14788                 
14789 2005-01-20  Jackson Harper  <jackson@ximian.com>
14790
14791         * XplatUIStructs.cs: More misc keys
14792         * X11Keyboard.cs: Ignore some control keys.
14793
14794 2005-01-20  Jackson Harper  <jackson@ximian.com>
14795
14796         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
14797         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
14798
14799 2005-01-19  Peter Bartok  <pbartok@novell.com>
14800
14801         * Control.cs: Un-selecting the control when it is loosing focus
14802
14803 2005-01-19  Jackson Harper  <jackson@ximian.com>
14804
14805         * TreeView.cs: Hook up to the text controls leave event so we can
14806         end editing when the users clicks outside the text box.
14807         
14808 2005-01-19  Jackson Harper  <jackson@ximian.com>
14809
14810         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
14811         get set in the conversion array.
14812
14813 2005-01-19  Peter Bartok  <pbartok@novell.com>
14814
14815         * Application.cs (ModalRun): Added a call to CreateControl to ensure
14816           focus is properly set
14817         * Button.cs:
14818           - Added missing attributes
14819           - removed styles, those are already set in the base class
14820         * ButtonBase.cs:
14821           - Added missing attributes
14822           - Added clip window styles
14823         * CheckBox.cs: Added missing attributes
14824         * CommonDialog.cs:
14825           - FormParentWindow.CreateParams: Added required clip styles
14826         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
14827           also filters modifier keys
14828         * MessageBox.cs:
14829           - Added assignment of Accept and Cancel button to enable Enter
14830             and Esc keys in MessageBox dialogs
14831           - FormParentWindow.CreateParams: Added required clip styles
14832         * RadioButton.cs: Added missing attributes
14833         * TextControl.cs: No longer draws selection if control does not
14834           have focus
14835         * TextBoxBase.cs:
14836           - Now draws simple rectangle around test area to make it obvious
14837             there's a control. This is a hack until we properly support borders
14838           - A few simple fixes to support selections better, now erases selected
14839             text when typing, and resets selection when using movement keys
14840
14841 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14842
14843         * UpDownBase.cs: Added some new properties.
14844
14845         * DomainUpDown.cs: Implement a lot to get my test working.
14846
14847 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14848
14849         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
14850
14851 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14852
14853         * OSXStructs (WindowAttributes): Fixed csc complaints
14854
14855 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14856
14857         * XplayUIOSX.cs:
14858           OSXStructs.cs: Initial refactor to move enums and consts into
14859           OSXStructs and use them in the driver for greater readability.
14860
14861 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14862
14863         * XplatUIOSX.cs: Initial support for Standard Cursors.
14864         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
14865
14866 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
14867
14868         * ComboBox.cs: ability to change style when the ctrl is already
14869         created, missing methods and events, bug fixes, signature fixes
14870
14871 2005-01-19  Peter Bartok  <pbartok@novell.com>
14872
14873         * Cursors.cs (ctor): Added ctor to fix signature
14874
14875 2005-01-18  Peter Bartok  <pbartok@novell.com>
14876
14877         * Button.cs: Implemented DoubleClick event
14878         * ButtonBase.cs:
14879           - Fixed keyboard handling to behave like MS, where the press of
14880             Spacebar is equivalent to a mousedown, and the key release is
14881             equivalent to mouseup. Now a spacebar push will give the same
14882             visual feedback like a mouse click.
14883           - Added missing attributes
14884           - Added ImeModeChanged event
14885           - Added support for generating DoubleClick event for derived classes
14886         * CheckBox.cs:
14887           - Implemented DoubleClick event
14888           - Added missing attributes
14889         * CommonDialog.cs: Added missing attribute
14890         * ContextMenu.cs: Added missing attributes
14891         * RadioButton.cs:
14892           - AutoChecked buttons do not allow to be unselected when clicked
14893             (otherwise we might end up with no selected buttons in a group)
14894           - Added missing attributes
14895           - Implemented DoubleClickEvent
14896         * ThreadExceptionDialog.cs: Enabled TextBox code
14897
14898 2005-01-18  Peter Bartok  <pbartok@novell.com>
14899
14900         * Form.cs: Removed debug output
14901         * Button.cs: Added support for DoubleClick method
14902
14903 2005-01-18  Peter Bartok  <pbartok@novell.com>
14904
14905         * Form.cs:
14906           - Added method to parent window that allows triggering size
14907             calculations when a menu is added/removed
14908           - set_Menu: Cleaned up mess from early days of Form and Control,
14909             now properly triggers a recalc when a menu is added/removed
14910           - Added case to select form itself as focused form if no child
14911             controls exist
14912           - Added PerformLayout call when showing dialog, to ensure properly
14913             placed controls
14914         * Control.cs:
14915           - Select(): Made internal so Form can access it
14916           - Focus(): Only call Xplat layer if required (avoids loop), and sets
14917             status
14918         * Application.cs (Run): Removed hack and calls PerformLayout instead
14919           to trigger calculation when Form becomes visible
14920
14921 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
14922
14923         * ComboBox.cs: fixes for ownerdraw
14924
14925 2005-01-18  Peter Bartok  <pbartok@novell.com>
14926
14927         * TextControl.cs:
14928           - Sentinel is no longer static, each Document gets it's own, this
14929             avoids locking or alternatively overwrite problems when more
14930             than one text control is used simultaneously.
14931           - Switched to use Hilight and HilightText brushes for text selection
14932
14933         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
14934
14935 2005-01-18  Peter Bartok  <pbartok@novell.com>
14936
14937         * Control.cs:
14938           - Hooked up the following events:
14939                 o ControlAdded
14940                 o ControlRemoved
14941                 o HandleDestroyed
14942                 o ImeModeChanged
14943                 o ParentChanged
14944                 o TabStopChanged
14945                 o Invalidated
14946                 o SystemColorsChanged
14947                 o ParentFontChanged
14948                 o Move
14949           - Removed debug output
14950           - Added a call to the current theme's ResetDefaults when a color change
14951             is detected
14952         * Form.cs: Now setting the proper ImeMode
14953         * Theme.cs: Defined a method to force recreation of cached resources
14954           and rereading of system defaults (ResetDefaults())
14955         * ThemeWin32Classic.cs: Added ResetDefaults() stub
14956
14957 2005-01-17  Peter Bartok  <pbartok@novell.com>
14958
14959         * Control.cs: Added missing attributes
14960
14961 2005-01-17  Jackson Harper  <jackson@ximian.com>
14962
14963         * TreeNode.cs: Implement editing. Add missing properties selected
14964         and visible.
14965         * TreeView.cs: Implement node editing. Also some fixes to use
14966         Invalidate (invalid area) instead of Refresh when selecting.
14967
14968 2005-01-17  Peter Bartok  <pbartok@novell.com>
14969
14970         * Control.cs:
14971           - Implemented InvokeGotFocus() method
14972           - Implemented InvokeLostFocus() method
14973           - Implemented InvokePaint() method
14974           - Implemented InvokePaintBackground() method
14975           - Implemented InvokeClick() method
14976           - Implemented FindForm() method
14977           - Implemented RectangleToClient() method
14978           - Implemented ClientToRectangle() method
14979           - Implemented ResetBackColor() method
14980           - Implemented ResetCursor() method
14981           - Implemented ResetFont() method
14982           - Implemented ResteForeColor() method
14983           - Implemented ResetImeMode() method
14984           - Implemented ResetLeftToRight() method
14985           - Implemented ResetText() method
14986           - Implemented Scale() methods
14987           - Implemented ScaleCore() method
14988           - Implemented Update() method
14989           - Removed unused variables
14990           - Stubbed AccessibilityNotifyClients and
14991             ControlAccessibleObject.NotifyClients() methods (dunno what to do
14992             with those yet)
14993           - Now setting proper default for RightToLeft property
14994           - Fixed bug in SetClientSizeCore that would cause windows to get
14995             really big
14996           - Now sending Click/DoubleClick events
14997           - Now selecting controls when left mouse button is clicked on
14998             selectable control
14999         * AccessibleEvents.cs: Added
15000         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
15001         * XplatUIOSX.cs: Stubbed UpdateWindow() method
15002         * XplatUIWin32.cs: Implemented UpdateWindow() method
15003         * XplatUIX11.cs: Implemented UpdateWindow() method
15004         * Form.cs: Removed stray semicolon causing CS0162 warning
15005         * ThemeWin32Classic.cs: Fixed unused variable warnings
15006         * ScrollableControl.cs: Now calls base method for ScaleCore
15007         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
15008           style to avoid interference with internal click handler (which is
15009           different than standard Control click handling)
15010         * RadioButton.cs:
15011           - Now unchecks all sibling radio buttons when control is
15012             selected (Fixes #68756)
15013           - Removed internal tabstop variable, using the one inherited from
15014             Control
15015
15016 2005-01-17  Jackson Harper  <jackson@ximian.com>
15017
15018         * NavigateEventArgs.cs: Fix base type.
15019         * LinkLabel.cs: Sig fix
15020         
15021 2005-01-17  Jackson Harper  <jackson@ximian.com>
15022
15023         * TreeView.cs: Only invalidate the effected nodes bounds when
15024         selecting nodes.
15025
15026 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15027
15028         * XplatUIWin32.cs: fixes Win32 marshaling
15029         * XplatUIX11.cs: fixes method signature
15030
15031 2005-01-17  Peter Bartok  <pbartok@novell.com>
15032
15033         * XplatUIX11.cs: Clean up resources when we no longer need them
15034
15035 2005-01-17  Peter Bartok  <pbartok@novell.com>
15036
15037         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
15038           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
15039           and DestroyCursor() methods.
15040         * Cursor.cs: Partially implemented, now supports standard cursors;
15041           still contains some debug code
15042         * Cursors.cs: Implemented class
15043         * Control.cs:
15044           - WndProc(): Added handling of WM_SETCURSOR message, setting the
15045             appropriate cursor
15046           - Implemented Cursor property
15047           - Replaced break; with return; more straightforwar and possibly
15048             faster
15049           - Now properly setting the result for WM_HELP
15050         * X11Structs.cs: Added CursorFontShape enum
15051         * XplatUIStructs.cs:
15052           - Added StdCursor enum (to support DefineStdCursor() method)
15053           - Added HitTest enum (to support sending WM_SETCURSOR message)
15054         * XplatUIX11.cs:
15055           - Now sends the WM_SETCURSOR message
15056           - Implemented new cursor methods
15057         * XplatUIOSX.cs: Stubbed new cursor methods
15058         * XplatUIWin32.cs:
15059           - Implemented new cursor methods
15060           - Added GetSystemMetrics function and associated enumeration
15061
15062 2005-01-15  Peter Bartok  <pbartok@novell.com>
15063
15064         * Control.cs:
15065           - WndProc(): Now handles EnableNotifyMessage
15066           - SelectNextControl(): Fixed bug where if no child or sibling
15067             controls exist we looped endlessly
15068
15069 2005-01-14  Jackson Harper  <jackson@ximian.com>
15070
15071         * TreeView.cs: Recalculate the tab pages when a new one is added
15072         so that the proper bounding rects are created.
15073
15074 2005-01-14  Jackson Harper  <jackson@ximian.com>
15075
15076         * TreeView.cs: Draw a gray box instead of a grip in the lower
15077         right hand corner when there are both horizontal and vertical
15078         scroll bars.
15079
15080 2005-01-14  Jackson Harper  <jackson@ximian.com>
15081
15082         * Control.cs: When erasing backgrounds use FromHwnd instead of
15083         FromHdc when there is a NULL wparam. This occurs on the X driver.
15084         * XplatUIX11.cs: Set the wparam to NULL.
15085
15086 2005-01-13  Jackson Harper  <jackson@ximian.com>
15087
15088         * PictureBox.cs: Implement missing methods (except ToString, need
15089         to test that on windows) and events. When visibility is changed we
15090         need to redraw the image because the buffers are killed. When size
15091         is changed refresh if the sizemode needs it.
15092
15093 2005-01-13  Peter Bartok  <pbartok@novell.com>
15094
15095         * Control.cs (SelectNextControl): Was using wrong method to select
15096           a control
15097
15098 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15099
15100         * ComboBox.cs: fixes dropstyle
15101
15102 2005-01-13  Peter Bartok  <pbartok@novell.com>
15103
15104         * Form.cs:
15105           - Implemented Select() override
15106           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
15107           - Now sets keyboard focus on startup
15108         * Control.cs (SelectNextControl): Now properly handles directed=true
15109         * TextBoxBase.cs:
15110           - WndProc: Now passes tab key on to base if AcceptTabChar=false
15111           - Added (really bad) focus rectangle (mostly for testing)
15112         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
15113           to enforce redraw on focus changes
15114         * ContainerControl.cs:
15115           - Fixed detection of Shift-Tab key presses
15116           - Fixed traversal with arrow keys
15117         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
15118           gonna keep this or if it's complete yet
15119         
15120 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15121
15122         * ComboBox.cs: missing properties, fixes
15123
15124 2005-01-13  Peter Bartok  <pbartok@novell.com>
15125
15126         * Panel.cs (ctor): Setting Selectable window style to off
15127         * Splitter.cs (ctor): Setting Selectable window style to off
15128         * GroupBox.cs (ctor): Setting Selectable window style to off
15129         * Label.cs (ctor): Setting Selectable window style to off
15130
15131 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
15132
15133         * UpDownBase.cs (InitTimer): If the timer has been already
15134         created, enable it.
15135
15136         Use a TextBox instead of a Label.
15137
15138 2005-01-12  Jackson Harper  <jackson@ximian.com>
15139
15140         * TreeView.cs: Refresh the tree after sorting the nodes. Always
15141         draw the connecting node lines (when ShowLines is true).
15142         * TreeNode.cs: The nodes index can now be updated. This is used
15143         when a node collection is sorted.
15144         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
15145         insert or an existing unsorted node collection can be sorted.
15146         
15147 2005-01-12  Peter Bartok  <pbartok@novell.com>
15148
15149         * ContainerControl.cs: Implemented ProcessDialogKeys()
15150
15151 2005-01-12  Peter Bartok  <pbartok@novell.com>
15152
15153         * Control.cs:
15154           - Implemented SelectNextControl() method
15155           - Several focus related bug fixes
15156           - Fixed Docking calculations to match MS documentation and
15157             behaviour
15158
15159 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
15160
15161         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
15162         bug fixes
15163
15164 2005-01-12  Peter Bartok  <pbartok@novell.com>
15165
15166         * Control.cs:
15167           - Fixed broken Contains() method
15168           - Implemented GetNextControl() method. Finally. This is the pre-
15169             requisite for focus handling.
15170
15171 2005-01-12  Peter Bartok  <pbartok@novell.com>
15172
15173         * OSXStrucs.cs: Added
15174
15175 2005-01-12  Peter Bartok  <pbartok@novell.com>
15176
15177         * XplatUIWin32.cs:
15178           - Removed PeekMessageFlags
15179           - Implemented SetWindowStyle() method
15180         * XplatUIStructs.cs: Added PeekMessageFlags
15181         * X11Structs: Added missing border_width field to XWindowChanges struct
15182         * XplatUIX11.cs:
15183           - PeekMessage: Now throws exception if flags which are not yet
15184             supported are passed
15185           - Implemented SetWindowStyle() method
15186           - Fixed SetZOrder to handle AfterHwnd properly
15187         * XplatUI.cs: Added SetWindowStyle() method
15188         * XplatUIDriver.cs: Added SetWindowStyle() abstract
15189         * Control.cs:
15190           - Implemented UpdateStyles() method
15191           - Implemented UpdateZOrder() method
15192         * XplatUIOSX.cs: Added SetWindowStyle() stub
15193
15194 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
15195
15196         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
15197         button mouse).
15198
15199
15200 2005-01-11  Jackson Harper  <jackson@ximian.com>
15201
15202         * TreeView.cs: Still need to draw lines to siblings even if out of
15203         the current node is out of the clip.
15204
15205 2005-01-11  Jackson Harper  <jackson@ximian.com>
15206
15207         * TreeView.cs: When setting the hbar/vbar/grip position use
15208         SetBounds so that perform layout is only called once. Also suspend
15209         and resume layout so layout is only done once for all controls.
15210         - Removed some debug fluff
15211         * SizeGrip.cs: Call base implmentation in overriding methods.
15212         - When visibility is changed the drawing buffers are killed so we
15213         need to redraw.
15214
15215 2005-01-11  Jackson Harper  <jackson@ximian.com>
15216
15217         * TreeView.cs: Calculate the open node count while drawing. This
15218         saves us an entire tree traversal for every paint operation. Use
15219         a member var for the open node count so less vars are passed around.
15220
15221 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
15222
15223         * MonthCalendar.cs:
15224         - fixed selection to use mousemove, not mouse polling on timer
15225         * ThemeWin32Classic.cs
15226         - removed redundant unused variable "no_more_content"
15227         
15228 2005-01-11  Peter Bartok  <pbartok@novell.com>
15229
15230         * XplatUIX11.cs (DoEvents): Needs to return when no more events
15231           are pending, so it now calls PeekMessage instead of GetMessage;
15232           implemented a incomplete version of PeekMessage
15233         
15234 2005-01-11  Peter Bartok  <pbartok@novell.com>
15235
15236         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
15237           I18n issues
15238         * TextBoxBase.cs: Added sending of TextChanged event
15239
15240 2005-01-10  Jackson Harper  <jackson@ximian.com>
15241
15242         * TreeView.cs: Try not to draw outside the clipping rectangle on
15243         each node element.
15244
15245 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
15246
15247         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
15248
15249 2005-01-10  Jackson Harper  <jackson@ximian.com>
15250
15251         * TreeView.cs:
15252         - Implement fast scrolling. Now only the newly
15253         exposed nodes are drawn and the old image is moved using the
15254         XplatUI::ScrollWindow method.
15255         - Factor in height of nodes when calculating whether or not the
15256         node is in the clipping rect.
15257
15258 2005-01-10  Jackson Harper  <jackson@ximian.com>
15259
15260         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
15261
15262 2005-01-10  Peter Bartok  <pbartok@novell.com>
15263
15264         * Application.cs: Added temporary hack to resolve all our resize
15265           required issues on startup. This will get fixed properly at
15266           some point in the future
15267
15268 2005-01-10  Jackson Harper  <jackson@ximian.com>
15269
15270         * SizeGrip.cs: New internal class that is used as a sizing
15271         grip control...hence the name.
15272
15273 2005-01-10  Peter Bartok  <pbartok@novell.com>
15274
15275         * Control.cs: Implemented proper TabIndex handling, now assigning
15276           a tabindex when a control is added to a container
15277         * GroupBox.cs (ctor): Now sets the Container style bit, required
15278           for Control.GetNextControl()
15279
15280 2005-01-09  Jackson Harper  <jackson@ximian.com>
15281
15282         * TextBoxBase.cs: Clear window when scrolling (fixes build).
15283
15284 2005-01-09  Peter Bartok <pbartok@novell.com>
15285
15286         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
15287           XplatUIX11.cs: Added ability to control ScrollWindow expose and
15288           an overload for ScrollWindow to allow only scrolling a rectangle
15289
15290 2005-01-09  Peter Bartok <pbartok@novell.com>
15291
15292         * Form.cs:
15293           - Implemented SetDesktopBounds method
15294           - Implemented SetDesktopLocation method
15295
15296 2005-01-08  Jackson Harper  <jackson@ximian.com>
15297
15298         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
15299         the node count has changed, this removes to VScroll::Refresh calls
15300         when drawing.
15301
15302 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
15303
15304         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
15305
15306 2005-01-07  Jackson Harper  <jackson@ximian.com>
15307
15308         * TreeNode.cs: Just update the single node when it is
15309         checked. Don't refresh after toggling, the Expand/Collapse already
15310         handles this.
15311         * TreeView.cs: Respect clipping a little more when drawing. Try
15312         not to redraw things that don't need to be redrawn. Just hide the
15313         scrollbars when they are no longer needed instead of removing
15314         them, so they don't have to be created again and again.
15315         
15316 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
15317
15318         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
15319         coordinates to window space to place the caret properly, FIXED.
15320         Implement GetWindowState & SetWindowState
15321
15322 2005-01-06  Peter Bartok <pbartok@novell.com>
15323
15324         * Form.cs:
15325           - Implemented ClientSize property
15326           - Implemented DesktopBounds property
15327           - Implemented DesktopLocation property
15328           - Implemented IsRestrictedWindow property
15329           - Implemented Size property
15330           - Implemented TopLevel property
15331           - Implemented FormWindowState property
15332         * Control.cs:
15333           - Implemented GetTopLevel() method
15334           - Implemented SetTopLevel() method
15335         * X11Structs.cs (Atom):
15336           - Added AnyPropertyType definition
15337           - Added MapState definiton and updated XWindowAttribute struct
15338         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
15339         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
15340         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
15341         * XplatUIWin32.cs:
15342           - Implemented GetWindowState() and SetWindowState() methods
15343           - Fixed Win32GetWindowLong return type
15344         * XplatUIX11.cs:
15345           - Introduced central function for sending NET_WM messages
15346           - Implemented GetWindowState() and SetWindowState() methods
15347         * TextBoxBase.cs (set_Lines):
15348           - Now uses Foreground color for text added via Text property (Duh!)
15349           - Added code to remember programmatically requested size (fixes
15350             behaviour when Multiline is set after Size)
15351           - Added AutoSize logic
15352
15353 2005-01-06  Jackson Harper  <jackson@ximian.com>
15354
15355         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
15356
15357 2005-01-06  Jackson Harper  <jackson@ximian.com>
15358
15359         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
15360         set to less then 0.
15361
15362 2005-01-06  Jackson Harper  <jackson@ximian.com>
15363
15364         * ScrollableControl.cs: Lazy init the scrollbars.
15365         
15366 2005-01-06  Jackson Harper  <jackson@ximian.com>
15367
15368         * Theme.cs: Speed up getting pens and solid brushes, by using
15369         their ARGB as a hash instead of tostring and not calling Contains.
15370
15371 2005-01-06  Peter Bartok <pbartok@novell.com>
15372
15373         * Form.cs:
15374           - Implemented OnActivated and OnDeactivate event trigger
15375           - Implemented Activate() method
15376           - Fixed ShowDialog() to activate the form that was active before
15377             the dialog was shown
15378         * XplatUIX11.cs:
15379           - Added global active_window var that tracks the currently active
15380             X11 window
15381           - Now always grabs Property changes from the root window to always
15382             catch changes on the active window property
15383           - Added code to PropertyNotify handler to send Active/Inactive
15384             messages when state changes. This puts X11 and Win32 en par on
15385             WM_ACTIVATE notifications (except for double notifications when
15386             the user clicks away from our modal window to another one of our
15387             windows)
15388
15389 2005-01-05  Jackson Harper  <jackson@ximian.com>
15390
15391         * ImageList.cs: Implment ctor
15392
15393 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15394
15395         * XplatUIOSX.cs: Implement Activate/SetTopmost
15396
15397 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15398
15399         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
15400
15401 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15402
15403         * XplatUIOSX.cs: Implement GetActive/SetFocus.
15404
15405 2005-01-05  Peter Bartok <pbartok@novell.com>
15406
15407         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
15408           XplatUIOSX.cs: Added GetActive method to return the currently
15409           active window for the application (or null, if none is active)
15410         * Form.cs:
15411           - Implemented ActiveForm
15412           - Commented out owner assignment for modal dialogs (causes problems
15413             on Win32, since the owner will be disabled)
15414           - Reworked some Active/Focus handling (still incomplete)
15415         * CommonDialog.cs: Commented out owner assignment for modal dialogs
15416           (causes problems on Win32, since the owner will be disabled)
15417         * IWin32Window: Added ComVisible attribute
15418
15419 2005-01-05  Peter Bartok <pbartok@novell.com>
15420
15421         * ToolTip.cs (WndProc): Enable setting focus now that we have the
15422           required XplatUI functions.
15423
15424 2005-01-05  Peter Bartok <pbartok@novell.com>
15425
15426         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
15427           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
15428           to implement focus and activation handling; still incomplete and
15429           with debug output
15430
15431 2005-01-04  Peter Bartok <pbartok@novell.com>
15432
15433         * TextBoxBase.cs: Changed access level for Document property to
15434           match switch to internal for TextControl
15435
15436 2005-01-04  Peter Bartok <pbartok@novell.com>
15437
15438         * AccessibleObject: Added ComVisible attribute
15439
15440 2005-01-04  Jackson Harper  <jackson@ximian.com>
15441
15442         * X11Keyboard.cs: Remove unneeded var.
15443
15444 2005-01-04  Jackson Harper  <jackson@ximian.com>
15445
15446         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
15447         but PAINT.
15448         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
15449         ClientMessage. This makes apps exit cleanly (more often).
15450         
15451 2005-01-04  Jackson Harper  <jackson@ximian.com>
15452
15453         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
15454         handling focus, return correct colors and fonts,
15455         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
15456         handle selection, horizontal scrolling, and mouse interaction.
15457
15458 2005-01-04  Peter Bartok <pbartok@novell.com>
15459
15460         * ICommandExecutor.cs: Added
15461         * IDataGridColumnStyleEditingNotificationService.cs: Added
15462         * IFeatureSupport.cs: Added
15463         * IFileReaderService.cs: Added
15464         * IDataObject.cs: Added ComVisible attribute
15465         * AmbientProperties.cs: Added
15466         * BaseCollection.cs: Added missing attributes
15467         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
15468         * BaseCollection.cs: Added missing attributes
15469         * Binding.cs: Added TypeConverter attribute
15470         * BindingContext.cs: Added DefaultEvent attribute
15471         * BindingsCollection.cs: Added DefaultEvent attribute
15472         * Button.cs: Added DefaultValue attribute
15473         * DragEventArgs.cs: Added ComVisible attribute
15474         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
15475         * KeyEventArgs.cs: Added ComVisible attribute
15476         * KeyPressEventArgs.cs: Added ComVisible attribute
15477         * MouseEventArgs.cs: Added ComVisible attribute
15478         * NavigateEventArgs.cs: Added
15479         * NavigateEventHandler.cs: Added
15480         * FeatureSupport.cs: Added
15481         * OSFeature.cs: Added
15482         * Theme.cs: Added abstract Version property to support OSFeature
15483         * ThemeWin32Classic.cs: Added Version property to
15484           support OSFeature.Themes
15485         * ProgressBar.cs: Removed OnPaintBackground override, not required since
15486           the proper styles to avoid background drawing are set, also doesn't
15487           match MS signature
15488         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
15489         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
15490         * ScrollEventArgs.cs: Added ComVisible attribute
15491         * SplitterEventArgs.cs: Added ComVisible attribute
15492         * AccessibleSelection.cs: Added Flags attribute
15493         * Appearance.cs: Added ComVisible attribute
15494         * Border3DSide.cs: Added ComVisible attribute
15495         * Border3DStyle.cs: Added ComVisible attribute
15496         * BorderStyle.cs: Added ComVisible attribute
15497         * DragAction.cs: Added ComVisible attribute
15498         * ErrorBlinkStyle.cs: Added
15499         * ScrollEventType.cs: Added ComVisible attribute
15500         * AnchorStyles.cs: Added Editor attribute
15501         * DockStyle.cs: Added Editor attribute
15502         * HorizontalAlignment.cs: Added ComVisible attribute
15503         * HelpEventArgs.cs: Added ComVisible attribute
15504         * PaintEventArgs.cs: Added IDisposable
15505
15506 2005-01-04  Peter Bartok <pbartok@novell.com>
15507
15508         * TextControl.cs: Switched Line, LineTag and Document classes to
15509           internal
15510
15511 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15512
15513         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
15514         Simple mode, fixes, IntegralHeight, etc.
15515
15516 2005-01-04  Peter Bartok <pbartok@novell.com>
15517
15518         * TextBoxBase.cs: Using proper font variable now
15519
15520 2005-01-04  Peter Bartok <pbartok@novell.com>
15521
15522         * Form.cs (ShowDialog): Set parent to owner, if provided
15523         * GroupBox.cs: Removed unused vars
15524         * TextControl.cs:
15525           - Added GetHashCode() for Document and LineTag classes
15526           - Removed unused variables
15527           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
15528             to allow translation between continuous char position and line/pos
15529         * CheckBox.cs: Removed vars that are provided by base class
15530         * RadioButton.cs: Removed vars that are provided by base class, added
15531           new keyword where required
15532         * LinkLabel.cs: Added new keyword where required
15533         * Control.cs (WndProc): Removed unused variable
15534         * TextBoxBase.cs:
15535           - Finished SelectionLength property
15536           - Implemented SelectionStart property
15537           - Implemented Text property
15538           - Removed unused vars
15539         * MessageBox.cs: Added new keyword where required
15540         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
15541           WndProc signature
15542         * MenuAPI.cs: Added new keyword where required
15543         * ButtonBase.cs: Removed vars that are provided by base class, added
15544           new keyword where required
15545         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
15546           argument to double, to allow compiling with csc 2.0 (Atsushi ran
15547           into this)
15548         * Application.cs (Run): Now triggers the ThreadExit event
15549         * CommonDialog.cs: Added new keyword where required; now properly sets
15550           parent (owner) for dialog
15551         * XplatUIX11.cs: Commented out unused vars
15552         * StatusBar.cs: Fixed signature for Text property
15553         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
15554
15555 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15556
15557         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
15558         TrackBar.cs, MonthCalendar.cs: remove unused vars
15559
15560 2005-01-03  Jackson Harper  <jackson@ximian.com>
15561
15562         * ThemeWin32Classic.cs:
15563         * X11Keyboard.cs: Remove unused vars.
15564
15565 2005-01-03  Peter Bartok  <pbartok@novell.com>
15566
15567         * TextBox.cs:
15568           - set_Text: Tied into TextControl
15569           - set_TextAlignment: Tied into TextControl
15570         * TextControl.cs:
15571           - Added alignment properties and implemented alignment handling
15572             and drawing (still has a bug, not generating proper expose events)
15573           - Added new Line() constructor to allow passing the line alignment
15574           - Fixed selection setting, properly handling end<start now
15575           - Added aligment considerations to RecalculateDocument()
15576         * TextBoxBase.cs:
15577           - Now properly enforces control height for single line controls
15578           - Added support for CharacterCasing
15579           - Added IsInputKey override
15580           - Fixed Keys.Enter logic
15581           - Added SetBoundsCore override
15582           - Fixed mouse selection handling
15583
15584 2005-01-03  Jackson Harper  <jackson@ximian.com>
15585
15586         * TreeView.cs:
15587           - Collapse and uncheck all nodes when CheckBoxes is disabled.
15588           - Checkboxes are always aligned to the bottom of the node,
15589           regardless of item height.
15590           - Use the node bounds to draw the text so we can center it when
15591           the item height is greater then the font height.
15592           - Node::Bounds are only the text part of the node.
15593         * TreeNode.cs: New method to combine collapsing and unchecking all
15594           nodes recursively.
15595
15596 2005-01-02  Jackson Harper  <jackson@ximian.com>
15597
15598         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
15599         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
15600         tree when a check is changed. TODO: Only refresh the checked node.
15601
15602 2004-12-30  Jackson Harper  <jackson@ximian.com>
15603
15604         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
15605         * TreeNode.cs: When collapsing make sure to never collapse the
15606         root node.
15607
15608 2004-12-29  Jackson Harper  <jackson@ximian.com>
15609
15610         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
15611         
15612 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
15613
15614         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
15615
15616 2004-12-28  Peter Bartok  <pbartok@novell.com>
15617
15618         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
15619           not yet assigned
15620
15621 2004-12-28  Peter Bartok  <pbartok@novell.com>
15622
15623         * Control.cs (WndProc): Added WM_HELP handler, now generates
15624           HelpRequested event
15625         * Form.cs: Added HelpButton property and required support code
15626         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
15627
15628 2004-12-28  Peter Bartok  <pbartok@novell.com>
15629
15630         * CommonDialog.cs:
15631           - Made DialogForm.owner variable internal
15632           - Added check to ensure owner form is set before setting
15633             owner properties in CreateParams
15634
15635 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
15636
15637         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
15638           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
15639           GetCursorPos.  Fix major visibility issues.  Rework the windowing
15640           system to support borderless/titleless windows (implements menus).
15641           Fix GetWindowPos.  Implement initial background color support for
15642           views.
15643
15644 2004-12-28  Peter Bartok  <pbartok@novell.com>
15645
15646         * Form.cs (get_CreateParams): Make sure we have an owner before using
15647           the owner variable. Implement proper default if no owner exists
15648
15649 2004-12-28  Peter Bartok  <pbartok@novell.com>
15650
15651         * In preparation for making Managed.Windows.Forms the default build target
15652           for System.Windows.Forms, the following stubbed files were added.
15653           Dialogs are currently being implemented by contributors and are only
15654           short-term place holders.
15655         * ColorDialog.cs: Initial check-in (minmal stub)
15656         * DataGrid.cs: Initial check-in (minimal stub)
15657         * DataGridLineStyle.cs: Initial check-in (minimal stub)
15658         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
15659         * DataGridTableStyle.cs: Initial check-in (minimal stub)
15660         * FontDialog.cs: Initial check-in (minimal stub)
15661         * FileDialog.cs: Initial check-in (minimal stub)
15662         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
15663         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
15664         * OpenFileDialog: Initial check-in (minimal stub)
15665         * IComponentEditorPageSite.cs: Initial check-in
15666         * Splitter.cs: Initial check-in (for Jackson)
15667         * SplitterEventArgs.cs: Initial check-in (for Jackson)
15668         * SplitterEventHandler.cs: Initial check-in (for Jackson)
15669         * TextBox.cs: Initial check-in; still needs some wiring to
15670           TextControl backend
15671         * Form.cs: Implemented ControlBox property
15672         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
15673         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
15674         * TextControl.cs: Added selection functionality; added todo header
15675         * TextBoxBase.cs:
15676           - Implemented Lines property
15677           - Implemented TextHeight property
15678           - Implemented SelectedText property
15679           - Implemented SelectionLength property
15680           - Implemented SelectAll method
15681           - Implemented ToString method
15682           - Removed and cleaned up some debug code
15683           - Implemented (still buggy) mouse text selection
15684
15685 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
15686
15687         * ComboBox.cs: Complete DropDownList implementation, fixes.
15688
15689 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
15690
15691         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
15692         * ComboBoxStyle.cs: ComboBoxStyle enum
15693         * ComboBox.cs: Initial work on ComboBox control
15694
15695 2004-12-21  Peter Bartok  <pbartok@novell.com>
15696
15697         * Control.cs (ctor, CreateParams): Moved setting of is_visible
15698           forward so that anything that creates a window gets the default,
15699           also no longer uses Visible property in CreateParams to avoid
15700           walking up the parent chain and possibly get the wrong visible
15701           status. Fixed IsVisible to no longer walk up to the parent.
15702
15703 2004-12-21  Peter Bartok  <pbartok@novell.com>
15704
15705         * Form.cs (ShowDialog): Unset modality for the proper window
15706  
15707 2004-12-20  Peter Bartok  <pbartok@novell.com>
15708
15709         * CommonDialog.cs: Initial check-in
15710
15711 2004-12-20  Peter Bartok  <pbartok@novell.com>
15712
15713         * Control.cs (Visible): Now uses the parent window instead of the
15714           client area window for the property
15715
15716         * Form.cs
15717           - ShowDialog(): Now uses the proper window for modality
15718           - The default visibility state for the form parent is now false. This
15719             will prevent the user from seeing all the changes to the form and
15720             its controls before the application hits Application.Run()
15721           - Removed some stale commented out code
15722
15723         * NativeWindow.cs:
15724           - Added FindWindow() method to have a method to check for existence
15725             of a window handle
15726           - Added ability to override default exception handling (for example
15727             when debugging with VS.Net; to do this the ExternalExceptionHandler
15728             define must be set
15729           - Removed some useless debug output
15730
15731         * XplatUIX11.cs:
15732           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
15733             not working as expected
15734           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
15735             property to allow switching back to the modal window if focus is
15736             given to another one of our windows (Application Modal)
15737           - Now only sets override_redirect if we create a window
15738             without WS_CAPTION
15739           - Moved EventMask selection before mapping of newly created window
15740             so we can catch the map event as well
15741           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
15742           - Added various Atom related DllImports
15743           - Implemented Exit() method
15744           - .ctor() : No longer shows window if WS_VISIBLE is not defined
15745             in the CreateParams
15746
15747         * MessageBox.cs: Now properly deals with the FormParent window by
15748           providing an override the FormParent CreateParams property to
15749           set as POPUP instead of OVERLAPPED window.
15750
15751 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15752
15753         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
15754         Minor code cleanup.
15755
15756 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15757         
15758         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
15759
15760 2004-12-18  Peter Bartok  <pbartok@novell.com>
15761
15762         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
15763           implementing SetModal() method
15764
15765 2004-12-18  Peter Bartok  <pbartok@novell.com>
15766
15767         * X11Structs.cs (XGCValues): Fixed type of function element
15768         * XplatUI.cs: Added ScrollWindow() method
15769         * XplatUIDriver.cs: Added ScrollWindow() abstract
15770         * XplatUIWin32.cs: Implemented ScrollWindow() method
15771         * XplatUIX11.cs: Implemented ScrollWindow() method
15772         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
15773
15774 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15775
15776         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
15777         Some more keyboard support (INCOMPLETE)
15778
15779 2004-12-17  Peter Bartok  <pbartok@novell.com>
15780
15781         * TextControl.cs:
15782         - Added color attribute to line tags.
15783         - Added color argument to all functions dealing with tags
15784         - Added color argument support to various functions
15785         - Fixed miss-calculation of baseline/shift in certain circumstances
15786
15787         * TextBoxBase.cs: Added new color option to test code
15788
15789 2004-12-17  Jackson Harper  <jackson@ximian.com>
15790
15791         * TreeNode.cs:
15792         * MonthCalendar.cs: Signature fixes
15793
15794 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15795
15796         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
15797         keyboard event moved it.  Create a new graphics context for each paint resolves this
15798
15799 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15800
15801         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
15802         Make caret exist and go blink blink.  Initial keyboard support.
15803         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
15804         works.
15805
15806 2004-12-17  Jackson Harper  <jackson@ximian.com>
15807
15808         * XplatUIStructs.cs: Updated set of virtual keycodes.
15809         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
15810
15811 2004-12-17  Jackson Harper  <jackson@ximian.com>
15812
15813         * XplatUIX11.cs: Prune old keyboard code.
15814
15815 2004-12-17  Jackson Harper  <jackson@ximian.com>
15816
15817         * XplatUIX11.cs: When generating mouse wparams get the modifier
15818         keys from the ModifierKeys property.
15819
15820 2004-12-17  Jackson Harper  <jackson@ximian.com>
15821
15822         * X11Keyboard.cs: Send up/down input when generating
15823         messages. Remove some unused vars.
15824
15825 2004-12-17  Jackson Harper  <jackson@ximian.com>
15826
15827         * TabControl.cs:
15828         * TreeView.cs: get rid of warnings.
15829
15830 2004-12-17  Jackson Harper  <jackson@ximian.com>
15831
15832         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
15833
15834 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
15835
15836         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
15837           CheckedListBox.cs: Implementation
15838
15839 2004-12-17  Peter Bartok  <pbartok@novell.com>
15840
15841         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
15842
15843 2004-12-16  Peter Bartok  <pbartok@novell.com>
15844
15845         * TextControl.cs:
15846           - InsertCharAtCaret(): Fixed start pos fixup
15847           - CaretLine_get: No longer derives the line from the tag, the tag
15848             could be stale if lines in the document have been added or deleted
15849           - RebalanceAfterDelete(): Fixed bug in balancing code
15850           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
15851           - Line.Streamline(): Now can also elminate leading empty tags
15852           - DumpTree(): Added a few more tests and prevented exception on
15853             uninitialized data
15854           - Added Debug section for Combining lines
15855           - Delete(): Now copies all remaining properties of a line
15856           
15857         * TextBoxBase.cs:
15858           - Left mousebutton now sets the caret (and middle button still acts
15859             as formatting tester, which must go away soon)
15860           - Added Debug section for Deleting/Combining lines
15861           - Fixed calculations for UpdateView after Combining lines
15862
15863 2004-12-16  Peter Bartok  <pbartok@novell.com>
15864
15865         * TextControl.cs: Now properly aligns text on a baseline, using the
15866           new XplatUI.GetFontMetrics() method. Simplified several calculations
15867         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
15868           defined
15869
15870 2004-12-16  Peter Bartok  <pbartok@novell.com>
15871
15872         * XplatUI.cs: Added GetFontMetrics() method
15873         * XplatUIDriver.cs: Added GetFontMetrics() abstract
15874         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
15875           into libgdiplus, our private GetFontMetrics function
15876         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
15877         * XplatUIWin32.cs: Implemented GetFontMetrics() method
15878
15879 2004-12-16  Jackson Harper  <jackson@ximain.com>
15880
15881         * XplatUIStruct.cs: Add enum for dead keys
15882         * X11Keyboard.cs: Map and unmap dead keys.
15883
15884 2004-12-16  Jackson Harper  <jackson@ximian.com>
15885
15886         * X11Keyboard.cs: Detect and use the num lock mask.
15887
15888 2004-12-16  Peter Bartok  <pbartok@novell.com>
15889
15890         * Control.cs (CreateGraphics): Added check to make sure the
15891           handle of the window exists before calling Graphics.FromHwnd()
15892
15893 2004-12-16  Peter Bartok  <pbartok@novell.com>
15894
15895         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
15896           contains a lot of code that's not supposed to be there for the
15897           real thing, but required for developing/testing the textbox
15898           backend.
15899
15900 2004-12-16  Peter Bartok  <pbartok@novell.com>
15901
15902         * TextControl.cs:
15903         - Fixed Streamline method
15904         - Added FindTag method to Line
15905         - Added DumpTree method for debugging
15906         - Added DecrementLines() method for deleting lines
15907         - Fixed UpdateView to update the cursor to end-of-line on single-line
15908           updates
15909         - Added PositionCaret() method
15910         - Fixed MoveCaret(LineDown) to move into the last line, too
15911         - Added InsertChar overload
15912         - Fixed InsertChar tag offset calculations
15913         - Added DeleteChar() method
15914         - Added Combine() method for folding lines
15915         - Fixed Delete() method, no longer allocates wasted Line object and
15916           now copies all properties when swapping nodes
15917         - Delete() method now updates document line counter
15918
15919 2004-12-15  Jackson Harper  <jackson@ximian.com>
15920
15921         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
15922         * X11Keyboard.cs: Expose the currently selected modifier keys
15923         through a property.
15924
15925 2004-12-15  Peter Bartok  <pbartok@novell.com>
15926
15927         * TextControl.cs: Initial check-in. Still incomplete
15928
15929 2004-12-15  Jackson Harper  <jackson@ximian.com>
15930
15931         * TreeNode.cs:
15932         * TreeView.cs: Fix build on csc (second time today ;-))
15933
15934 2004-12-15  Jackson Harper  <jackson@ximian.com>
15935
15936         * TreeView.cs: Store the treenodes plus/minus box bounds when it
15937         is calculated and use this for click testing.
15938         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
15939
15940 2004-12-15  Jackson Harper  <jackson@ximian.com>
15941
15942         * TreeView.cs: Pass the nodes image index to the image list when
15943         drawing that image.
15944
15945 2004-12-15  Jackson Harper  <jackson@ximian.com>
15946
15947         * X11Keyboard.cs: Set messages hwnd.
15948         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
15949         post_message calls.
15950
15951 2004-12-15  Jackson Harper  <jackson@ximian.com>
15952
15953         * X11Keyboard.cs: Fix to compile with csc.
15954         
15955 2004-12-15  Jackson Harper  <jackson@ximian.com>
15956
15957         * X11Structs.cs: Add key mask values
15958         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
15959         * X11Keyboard.cs: New file - Extrapolates and interpolates key
15960         down/up foo into WM_CHAR foo
15961         * KeyboardLayouts.cs: Common keyboard layouts
15962         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
15963         post messages into the main queue.
15964
15965 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
15966
15967         * Button.cs: implement ProcessMnemonic
15968         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
15969           brushes everytime
15970         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
15971         * ButtonBase.cs: Show HotkeyPrefix (not the &)
15972
15973 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
15974         
15975         * MonthCalendar.cs: Implemented click-hold for next/previous month
15976           and date selection
15977           
15978 2004-12-11  Peter Bartok  <pbartok@novell.com>
15979
15980         * X11Structs.cs:
15981           - Added XKeyboardState (moved from XplatUIX11.cs)
15982           - Added XCreateGC related enums and structures
15983           - Added GXFunction for XSetFunction
15984
15985         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
15986
15987         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
15988           CaretVisible() calls
15989
15990         * ToolTip.cs: Added code to prevent stealing focus from app windows
15991
15992         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
15993           DestroyCaret, SetCaretPos and CaretVisible)
15994
15995         * XplatUIX11.cs:
15996           - Added implementation for caret functions
15997           - Moved hover variables into a struct, to make it a bit easier
15998             on the eyes and to debug
15999           - Removed XKeyboardState (moved to XplatUIX11.cs)
16000           - Moved Keyboard properties into the properties region
16001
16002         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
16003           call to get a graphics context for our control
16004
16005         * XplatUIOSX.cs: Added empty overrides for the new caret functions
16006
16007         * TreeView.cs: Fixed bug. No matter what color was set it would always
16008           return SystemColors.Window
16009
16010         * XplatUIWin32.cs: Implemented caret overrides
16011
16012 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
16013
16014         * ListBox.cs: fire events, implement missing methods and properties,
16015         sorting.
16016
16017 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
16018
16019         * MonthCalendar.cs: invalidation bug fixing
16020         * ThemeWin32Classic.cs: paint fixing
16021
16022 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
16023
16024         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
16025         prepare the CGContextRef there now.
16026
16027 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
16028
16029         * MonthCalendar.cs:
16030           - optimisationL only invalidate areas that have changed
16031         * ThemeWin32Classic.cs:
16032           - only paint parts that intersect with clip_area
16033
16034 2004-12-09  Peter Bartok  <pbartok@novell.com>
16035
16036         * Application.cs: Undid changes from r37004 which cause problems
16037         on X11
16038
16039 2004-12-09  Ravindra  <rkumar@novell.com>
16040
16041         * ToolBar.cs: Added support for displaying ContextMenu
16042         attached to a button on ToolBar.
16043         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
16044         property.
16045
16046 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16047
16048         * Label.cs: autosize works in text change and removes unnecessary
16049         invalidate
16050
16051 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16052
16053         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
16054         remove warnings
16055
16056 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
16057
16058         * XplatUIOSX.cs: Added mouse move/click/grab support
16059         Remove some debugging WriteLines not needed anymore.
16060         Add window resizing/positioning.
16061         Fix visibility on reparenting.
16062
16063 2004-12-08  Peter Bartok  <pbartok@novell.com>
16064
16065         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
16066
16067 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
16068
16069         * XplatUIOSX.cs: Initial checkin
16070         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
16071
16072 2004-12-03  Ravindra <rkumar@novell.com>
16073
16074         * ListView.cs: Added some keybindings and fixed scrolling.
16075         ScrollBars listen to ValueChanged event instead of Scroll
16076         Event. This would let us take care of all changes being
16077         done in the scrollbars' values programmatically or manually.
16078         * ListView.cs (CanMultiselect): Added a check for shift key.
16079         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
16080         * ListViewItem.cs (Clone): Fixed. We need to make a copy
16081         of ListViewSubItemCollection as well.
16082
16083 2004-12-06  Peter Bartok <pbartok@novell.com>
16084
16085         * Control.cs (Parent): Added check and exception to prevent
16086         circular parenting
16087
16088 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
16089
16090         * ListBox.cs: implemented clipping, selection single and multiple,
16091         bug fixing
16092
16093 2004-12-03  Ravindra <rkumar@novell.com>
16094
16095         * ListView.cs (ListView_KeyDown):
16096         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
16097         when CTRL key is pressed.
16098         * ListViewItem.cs (Selected): Fixed setting the property.
16099
16100 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16101
16102         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
16103
16104         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
16105         MinimizeBox, ShowInTaskbar, TopMost properties.
16106
16107         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
16108         will be implemented).
16109
16110 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16111
16112         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
16113
16114         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
16115         tests.
16116         
16117         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
16118         
16119         * TreeView.cs: BackColor is Colors.Window.
16120
16121 2004-12-01  Jackson Harper  <jackson@ximian.com>
16122
16123         * TreeView.cs: When resizing the tree if the user is making it
16124         smaller we don't get expose events, so we need to handle adding
16125         the horizontal scrollbar in the size changed handler as well as
16126         the expose handler.
16127
16128 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
16129
16130         * DrawItemState.cs: fixes wrong enum values
16131
16132 2004-12-01  Jackson Harper  <jackson@ximian.com>
16133
16134         * TreeView.cs: Resize the hbar as well as the vbar on resize.
16135
16136 2004-12-01  Jackson Harper  <jackson@ximian.com>
16137
16138         * NodeLabelEditEventArgs.cs:
16139         * NodeLabelEditEventHandler.cs:
16140         * OpenTreeNodeEnumerator.cs:
16141         * TreeNode.cs:
16142         * TreeNodeCollection.cs:
16143         * TreeView.cs:
16144         * TreeViewAction.cs:
16145         * TreeViewCancelEventArgs.cs:
16146         * TreeViewCancelEventHandler.cs:
16147         * TreeViewEventArgs.cs:
16148         * TreeViewEventHandler.cs: Initial implementation.
16149
16150 2004-12-01  Ravindra <rkumar@novell.com>
16151
16152         * ListView.cs (CalculateListView): Fixed scrolling related
16153         calculations. Also, removed some debug statements from other
16154         places.
16155         * ListViewItem.cs: Changed access to 'selected' instance variable
16156         from private to internal.
16157         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
16158
16159 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
16160
16161         * ThemeWin32Classic.cs: remove cache of brush and pens for
16162         specific controls and use the global system, fixes scrollbutton
16163         bugs (for small sizes, disabled, etc)
16164         
16165         * ScrollBar.cs: does not show the thumb for very small controls
16166         (as MS) and allow smaller buttons that the regular size
16167
16168 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
16169
16170         * UpDownBase.cs: Add abstract methods for the interface.
16171         Add new virtual methods (need to be hooked up to TextEntry when it
16172         exists).
16173         Add override methods for most features.
16174         Computes the size, forces the height of the text entry.
16175
16176         * NumericUpDown.cs: Put here the current testing code.
16177
16178         * Set eol-style property on all files that do not have mixed line
16179         endings, to minimize the future problems.  There are still a few
16180         files with mixed endings, and someone should choose whether they
16181         want to move it or not.
16182
16183 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
16184
16185         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
16186         System.Colors
16187         
16188 2004-11-30  Ravindra <rkumar@novell.com>
16189
16190         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
16191         drawing and replaced use of SystemColors by theme colors.
16192         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
16193         * ListView.cs (ListViewItemCollection.Add): Throw exception when
16194         same ListViewItem is being added more than once.
16195
16196 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
16197
16198         * MonthCalendar.cs:
16199           - ControlStyles love to make the control not flicker
16200           
16201 2004-11-30  Peter Bartok  <pbartok@novell.com>
16202
16203         * CharacterCasing.cs: Added
16204
16205 2004-11-29  Peter Bartok  <pbartok@novell.com>
16206
16207         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16208           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
16209           I am removing these files as they conflict with already completed
16210           work. While it is fantastic to get contributions to MWF, I
16211           respectfully ask that everyone please coordinate their contributions
16212           through mono-winforms-list or #mono-winforms at this time. We're
16213           explicitly avoiding stubbing and don't want controls that don't have
16214           their basic functionality implemented in svn. Please also see
16215           http://www.mono-project.com/contributing/winforms.html
16216
16217
16218 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
16219
16220         * Application.cs (ModalRun): Don't hang after exit.
16221
16222         * Theme.cs: New TreeViewDefaultSize property.
16223
16224         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
16225         with less hardcoded SystemColors constant.
16226         Implemented TreeViewDefaultSize.
16227
16228         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16229         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
16230
16231
16232 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
16233
16234         * MonthCalendar.cs:
16235           - Fix NextMonthDate and PrevMonthDate click moving calendar
16236
16237 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16238
16239         * MonthCalendar.cs:
16240           - Fix usage of ScrollChange Property when scrolling months
16241
16242 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
16243
16244         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
16245          - Fixes menu destroying
16246          - Support adding and removing items on already created menus
16247
16248 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16249
16250         * MonthCalendar.cs:
16251           - Re-worked all bolded dates handling to match win32
16252         * ThemeWin32Classic.cs:
16253           - Fixed rendering with bolded dates
16254
16255 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
16256
16257         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
16258         - Horizontal scroolbar
16259         - Multicolumn
16260         - Fixes
16261
16262
16263 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
16264
16265         * MonthCalendar.cs:
16266           - Fix Usage of MaxSelectionCount from SelectionRange
16267           - Fixed Shift + Cursor Selection
16268           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
16269           - Fixed normal cursor selection to be compat with win32
16270           - Fixed Shift + Mouse Click selection
16271
16272 2004-11-24  Peter Bartok <pbartok@novell.com>
16273
16274         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
16275         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
16276         * XplatUIX11.cs:
16277           - CreatedKeyBoardMsg now updates keystate with Alt key
16278           - Added workaround for timer crash to CheckTimers, Jackson will
16279             develop a proper fix and check in later
16280           - Implemented DispatchMessage
16281           - Removed calling the native window proc from GetMessage (call
16282             now moved to DispatchMessage)
16283
16284         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
16285           the keydata (Fixes bug #69831)
16286
16287         * XplatUIWin32.cs:
16288           - (DispatchMessage): Switched to return IntPtr
16289           - Added DllImport for SetFocus
16290
16291 2004-11-24  Ravindra <rkumar@novell.com>
16292
16293         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
16294         background drawing.
16295         * ListViewItem.cs: Fixed various properties, calculations
16296         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
16297         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
16298         and some internal properties. Fixed MouseDown handler and Paint
16299         method.
16300
16301 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16302
16303         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
16304
16305 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16306
16307         * ContainerControl.cs: correct accidental check in of local changes
16308
16309 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16310
16311         * ThemeWin32Classic.cs:
16312                 - Fixed Drawing Last month in grid (sometimes not showing)
16313         * MonthCalendar.cs:
16314                 - Fixed title width calculation bug (makeing title small)
16315
16316 2004-11-23  Peter Bartok <pbartok@novell.com>
16317
16318         * XplatUIX11.cs:
16319           - Added generation of WM_MOUSEHOVER event
16320           - Added missing assignment of async_method atom
16321           - Fixed WM_ERASEBKGND; now only redraws the exposed area
16322
16323 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16324
16325         * ThemeWin32Classic.cs:
16326                 - Fixed Drawing of today circle when showtodaycircle not set
16327                 - fixed drawing of first and last month in the grid (gay dates)
16328         * MonthCalendar.cs:
16329                 - Fixed Drawing of today circle
16330                 - Fixed drawing of grady dates
16331                 - Fixed HitTest for today link when ShowToday set to false
16332                 - Fixed DefaultSize to obey ShowToday
16333
16334 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16335
16336         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
16337         * System.Windows.Forms/Theme.cs
16338         * MonthCalendar.cs: added for MonthCalendar
16339         * SelectionRange.cs: added for MonthCalendar
16340         * Day.cs: added for MonthCalendar: added for MonthCalendar
16341         * DateRangeEventArgs.cs: added for MonthCalendar
16342         * DateRangeEventHandler.cs: added for MonthCalendar
16343
16344 2004-11-22  Ravindra <rkumar@novell.com>
16345
16346         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
16347         property.
16348
16349 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
16350
16351         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
16352         event handler.
16353         
16354         * NumericUpDown.cs: Added new implementation.
16355         * UpDownBase.cs: Added new implementation.
16356
16357         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
16358         implementations.
16359         
16360         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
16361         implementations.
16362
16363         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
16364         methods.
16365
16366 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
16367
16368         * Timer.cs  (Dispose): Should call the base dispose when
16369         overriding.
16370
16371 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16372
16373         * ScrollBar.cs: updates thumb position when max, min or increment
16374         is changed
16375
16376 2004-11-21  Ravindra <rkumar@novell.com>
16377
16378         * ListView.cs: Implemented item selection, activation and
16379         column header style. Fixed properties to do a redraw, if
16380         required. Added support for MouseHover, DoubleClick, KeyDown
16381         and KeyUp event handling and some minor fixes.
16382         * ListViewItem.cs: Fixed constructor.
16383         * ThemeWin32Classic.cs: Improved drawing for ListView.
16384
16385 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16386
16387         * ThemeWin32Classic.cs: initial listbox drawing code
16388         * DrawMode.cs: new enumerator
16389         * ListControl.cs: stubbed class
16390         * ListBox.cs: initial implementation
16391         * Theme.cs: new methods definitions
16392         * SelectionMode.cs: new enumerator
16393
16394 2004-11-17  Peter Bartok  <pbartok@novell.com>
16395
16396         * XplatUIWin32.cs: Added double-click events to the class style
16397         * Control.cs (WndProc):
16398           - Added handling of click-count to MouseDown/ MouseUp events.
16399           - Added handling of middle and right mouse buttons
16400           - Removed old debug code
16401
16402 2004-11-17  Jackson Harper  <jackson@ximian.com>
16403
16404         * XplatUIX11.cs: Use the new Mono.Unix namespace.
16405
16406 2004-11-17  Ravindra <rkumar@novell.com>
16407
16408         * ListView.cs: Added event handling for MouseMove/Up/Down.
16409         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
16410         * ThemeWin32Classic.cs: We need to clear the graphics context and
16411         draw column header in a proper state.
16412
16413
16414 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
16415
16416         *  Menu.cs: fixes signature
16417
16418 2004-11-16  Peter Bartok  <pbartok@novell.com>
16419
16420         * XplatUIX11.cs (GetMessage): Implemented generation of
16421           double click mouse messages
16422
16423 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
16424
16425         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
16426         not by menu
16427
16428 2004-11-11  Peter Bartok  <pbartok@novell.com>
16429
16430         * HandleData.cs: Added Visible property
16431         * XplatUIX11.cs (IsVisible): Now uses Visible property from
16432           HandleData
16433         * XplatUIX11.cs: Removed old debug leftovers
16434         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
16435         * Control.cs (WndProc): Removed old debug leftovers,
16436           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
16437           needed WM_SIZE handling
16438
16439 2004-11-11  Jackson Harper  <jackson@ximian.com>
16440
16441         * OwnerDrawPropertyBag.cs:
16442         * TreeViewImageIndexConverter.cs: Initial implementation
16443
16444 2004-11-10  Jackson Harper  <jackson@ximian.com>
16445
16446         * ThemeWin32Classic.cs:
16447         * TabControl.cs: instead of moving tabs by the slider pos just
16448         start drawing at the tab that is offset by the slider. This way
16449         scrolling always moves by exactly one tab.
16450
16451 2004-11-10  Jackson Harper  <jackson@ximian.com>
16452
16453         * TabControl.cs: You can only scroll left when the slider has
16454         already ben moved right.
16455         
16456 2004-11-10  Jackson Harper  <jackson@ximian.com>
16457
16458         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
16459         the clip area.
16460         
16461 2004-11-10  Jackson Harper  <jackson@ximian.com>
16462
16463         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
16464         clip area.
16465         
16466 2004-11-09  Jackson Harper  <jackson@ximian.com>
16467
16468         * TabControl.cs (CalcXPos): New helper method so we can determine
16469         the proper place to start drawing vertical tabs.
16470         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
16471         
16472 2004-11-09  Jackson Harper  <jackson@ximian.com>
16473
16474         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
16475         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
16476         and Bottom, left and right are illegal values for this and
16477         multiline is enabled when the alignment is set to left or right.
16478         (DrawTab): Each alignment block should draw the text itself now
16479         because Left requires special love. Also add rendering for Left
16480         aligned tabs.
16481         
16482 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
16483
16484         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
16485         does not destroy the windows, removes debugging messages
16486
16487 2004-11-09  jba  <jba-mono@optusnet.com.au>
16488
16489         * ThemeWin32Classic.cs
16490         (DrawButtonBase): Fix verticle text rect clipping in windows
16491         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16492         rendering and incorrect text rect clipping
16493         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16494         rendering and incorrect text rect clipping
16495         
16496 2004-11-08  Jackson Harper  <jackson@ximian.com>
16497
16498         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
16499         bottom when they are bottom aligned so the bottoms of the tabs get
16500         displayed.
16501         * TabControl.cs (DropRow): Move rows up instead of down when the
16502         tab control is bottom aligned.
16503
16504 2004-11-08 13:59  pbartok
16505
16506         * XplatUIX11.cs:
16507           - Added handling for various window styles
16508           - Added handling for popup windows
16509           - Added SetTopmost handling
16510
16511 2004-11-08 13:55  pbartok
16512
16513         * XplatUIWin32.cs:
16514           - Added argument to SetTopmost method
16515           - Fixed broken ClientToScreen function
16516
16517 2004-11-08 13:53  pbartok
16518
16519         * XplatUIStructs.cs:
16520           - Added missing WS_EX styles
16521
16522 2004-11-08 13:53  pbartok
16523
16524         * XplatUI.cs, XplatUIDriver.cs:
16525           - Added argument to SetTopmost
16526
16527 2004-11-08 13:52  pbartok
16528
16529         * X11Structs.cs:
16530           - Added XSetWindowAttributes structure
16531           - Improved XWindowAttributes structure
16532           - Added SetWindowValuemask enum
16533           - Added window creation arguments enum
16534           - Added gravity enum
16535           - Added Motif hints structure
16536           - Added various Motif flags and enums
16537           - Added PropertyMode enum for property functions
16538
16539 2004-11-08 13:50  pbartok
16540
16541         * Form.cs:
16542           - Fixed arguments for updated SetTopmost method
16543
16544 2004-11-08 13:49  pbartok
16545
16546         * ToolTip.cs:
16547           - Fixed arguments for updated SetTopmost function
16548           - Fixed usage of PointToClient
16549
16550 2004-11-08 13:44  pbartok
16551
16552         * MenuAPI.cs:
16553           - Added Clipping of children and siblings
16554
16555 2004-11-08 13:41  pbartok
16556
16557         * MainMenu.cs:
16558           - Removed SetMenuBarWindow call. We do this in Form.cs
16559
16560 2004-11-08 13:40  jackson
16561
16562         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
16563           scrolling jimmi in the correct location with bottom aligned tabs
16564
16565 2004-11-08 13:36  pbartok
16566
16567         * ContainerControl.cs:
16568           - Implemented BindingContext
16569           - Implemented ParentForm
16570
16571 2004-11-08 12:46  jackson
16572
16573         * TabControl.cs: Put bottom rendered tabs in the right location
16574
16575 2004-11-08 07:15  jordi
16576
16577         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
16578           removes dead code
16579
16580 2004-11-05 17:30  jackson
16581
16582         * TabControl.cs: When selected tabs are expanded make sure they
16583           don't go beyond the edges of the tab control
16584
16585 2004-11-05 14:57  jackson
16586
16587         * TabControl.cs: Reset show_slider so if the control is resized to
16588           a size where it is no longer needed it's not displayed anymore
16589
16590 2004-11-05 13:16  jackson
16591
16592         * TabControl.cs: Make tab pages non visible when added to the
16593           control
16594
16595 2004-11-05 12:42  jackson
16596
16597         * TabControl.cs: Implement SizeMode.FillToRight
16598
16599 2004-11-05 12:16  jackson
16600
16601         * Control.cs: Do not call CreateHandle if the handle is already
16602           created
16603
16604 2004-11-05 11:46  jackson
16605
16606         * TabControl.cs: Remove superflous call to CalcTabRows
16607
16608 2004-11-05 09:07  jackson
16609
16610         * XplatUIX11.cs: Update for Mono.Posix changes
16611
16612 2004-11-05 07:00  ravindra
16613
16614         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
16615           scrolling.
16616
16617 2004-11-04 22:47  jba
16618
16619         * ThemeWin32Classic.cs:
16620           - Fix Button rendering for FlatStyle = Flat or Popup
16621           - Fix RadioButton and CheckBox rendering when Appearance = Button
16622             (normal and flatstyle).
16623           - Correct outer rectangle color when drawing focus rectangle
16624           - Adjust button bounds to be 1 px smaller when focused
16625           - Make button not draw sunken 3d border when pushed (windows compat)
16626           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
16627           - Offset the text in RadioButton and Checkbox when being rendered as
16628           a button.
16629           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
16630           radiobuttons
16631           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
16632           - Fixed disabled text rendering for normally rendered radiobuttons
16633
16634 2004-11-04 10:26  jackson
16635
16636         * TabControl.cs: Recalculate tab rows when resizing
16637
16638 2004-11-04 07:47  jordi
16639
16640         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
16641           collection completion, drawing issues, missing features
16642
16643 2004-11-04 05:03  ravindra
16644
16645         * ScrollBar.cs:
16646                 - We need to recalculate the Thumb area when
16647                 LargeChange/maximum/minimum values are changed.
16648           - We set the 'pos' in UpdatePos() method to minimum, if it's less
16649                 than minimum. This is required to handle the case if large_change is
16650                 more than max, and use LargeChange property instead of large_change
16651                 variable.
16652           - We return max+1 when large_change is more than max, like MS does.
16653
16654 2004-11-04 04:29  ravindra
16655
16656         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
16657                 - Changed default value signatures (prefixed all with ListView).
16658                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
16659                 ListView.
16660           - Fixed calculations for ListViewItem and implemented Clone()
16661           method.
16662
16663 2004-11-04 04:26  ravindra
16664
16665         * Theme.cs, ThemeWin32Classic.cs:
16666                 - Changed default ListView values signatures (prefixed all with
16667                 ListView).
16668           - Fixed default size values for VScrollBar and HScrollBar.
16669                 - Fixed DrawListViewItem method.
16670
16671 2004-11-04 04:05  ravindra
16672
16673         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
16674
16675 2004-11-04 04:04  ravindra
16676
16677         * ImageList.cs: Implemented the missing overload for Draw method.
16678
16679 2004-11-03 19:29  jackson
16680
16681         * TabControl.cs: Handle dropping rows on selection properly
16682
16683 2004-11-03 11:59  jackson
16684
16685         * TabControl.cs: remove debug code
16686
16687 2004-11-03 11:52  jackson
16688
16689         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
16690           the scrolly widgerywoo
16691
16692 2004-11-02 13:52  jackson
16693
16694         * TabControl.cs: Resize the tab pages and tabs when the tab control
16695           is resized
16696
16697 2004-11-02 13:40  jackson
16698
16699         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
16700           selected tab to the bottom
16701
16702 2004-11-02 13:39  jackson
16703
16704         * TabPage.cs: Store the tab pages row
16705
16706 2004-11-02 12:33  jordi
16707
16708         * MenuItem.cs: fixes handle creation
16709
16710 2004-11-02 11:42  jackson
16711
16712         * TabControl.cs: signature fix
16713
16714 2004-11-02 08:56  jackson
16715
16716         * TabControl.cs: Calculate whether the tab is on an edge properly.
16717           Remove top secret debugging code
16718
16719 2004-11-01 19:57  jackson
16720
16721         * TabControl.cs: Add click handling, and proper sizing
16722
16723 2004-11-01 19:47  jackson
16724
16725         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
16726           tab controls
16727
16728 2004-11-01 19:39  jackson
16729
16730         * TabPage.cs: add internal property to store the bounds of a tab
16731           page
16732
16733 2004-10-30 04:23  ravindra
16734
16735         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
16736           values.
16737
16738 2004-10-30 04:21  ravindra
16739
16740         * ListView.cs, ListViewItem.cs: Added support for scrolling and
16741           fixed calculations.
16742
16743 2004-10-30 03:06  pbartok
16744
16745         * XplatUIX11.cs:
16746           - Removed extension of DllImported libs
16747
16748 2004-10-29 09:55  jordi
16749
16750         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
16751           navigation, itemcollection completion, menu fixes
16752
16753 2004-10-27 22:58  pbartok
16754
16755         * XplatUIX11.cs:
16756           - Now throws a nice error message when no X display could be opened
16757
16758 2004-10-26 13:51  jordi
16759
16760         * ListView.cs: removes warning
16761
16762 2004-10-26 03:55  ravindra
16763
16764         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
16765           ThemeWin32Classic.cs: Some formatting for my last checkins.
16766
16767 2004-10-26 03:36  ravindra
16768
16769         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
16770           control and default values.
16771
16772 2004-10-26 03:35  ravindra
16773
16774         * Theme.cs: Added some default values for ListView control.
16775
16776 2004-10-26 03:33  ravindra
16777
16778         * ToolBar.cs: ToolBar should use the user specified button size, if
16779           there is any. Added a size_specified flag for the same.
16780
16781 2004-10-26 03:33  ravindra
16782
16783         * ColumnHeader.cs: Added some internal members and calculations for
16784           ColumnHeader.
16785
16786 2004-10-26 03:32  ravindra
16787
16788         * ListViewItem.cs: Calculations for ListViewItem.
16789
16790 2004-10-26 03:31  ravindra
16791
16792         * ListView.cs: Added some internal members and calculations for
16793           ListView.
16794
16795 2004-10-22 13:31  jordi
16796
16797         * MenuAPI.cs: speedup menus drawing
16798
16799 2004-10-22 13:16  jackson
16800
16801         * XplatUIX11.cs: Make sure to update exposed regions when adding an
16802           expose event
16803
16804 2004-10-22 11:49  jackson
16805
16806         * Control.cs: oops
16807
16808 2004-10-22 11:41  jackson
16809
16810         * Control.cs: Check to see if the window should have its background
16811           repainted by X when drawing.
16812
16813 2004-10-22 11:31  jackson
16814
16815         * XplatUIX11.cs: When invalidating areas only use XClearArea if
16816           clear is true, this way we do not get flicker from X repainting the
16817           background
16818
16819 2004-10-22 11:28  jackson
16820
16821         * XEventQueue.cs: Queue properly
16822
16823 2004-10-21 09:38  jackson
16824
16825         * XEventQueue.cs: Fix access modifier
16826
16827 2004-10-21 09:36  jackson
16828
16829         * XEventQueue.cs: Don't loose messages
16830
16831 2004-10-21 09:22  jackson
16832
16833         * XEventQueue.cs: Don't loose messages
16834
16835 2004-10-20 04:15  jordi
16836
16837         * BootMode.cs: enum need it by SystemInfo
16838
16839 2004-10-19 21:58  pbartok
16840
16841         * XplatUIWin32.cs:
16842           - Small sanity check
16843
16844 2004-10-19 21:56  pbartok
16845
16846         * Form.cs:
16847           - Added private FormParentWindow class which acts as the container
16848             for our form and as the non-client area where menus are drawn
16849           - Added/Moved required tie-ins to Jordi's menus
16850           - Fixed/Implemented the FormStartPosition functionality
16851
16852 2004-10-19 21:52  pbartok
16853
16854         * Control.cs:
16855           - Removed unneeded locals
16856           - Added code to all size and location properties to understand and
16857             deal with the parent container of Form
16858
16859 2004-10-19 21:33  pbartok
16860
16861         * Application.cs:
16862           - Fixed to deal with new Form subclasses for menus
16863
16864 2004-10-19 17:48  jackson
16865
16866         * XEventQueue.cs: commit correct version of file
16867
16868 2004-10-19 16:50  jackson
16869
16870         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
16871
16872 2004-10-19 16:15  jordi
16873
16874         * MenuAPI.cs: MenuBarCalcSize returns the height
16875
16876 2004-10-19 08:31  pbartok
16877
16878         * Control.cs:
16879           - Added missing call to PreProcessMessage before calling OnXXXKey
16880           methods
16881
16882 2004-10-19 00:04  ravindra
16883
16884         * ToolTip.cs: Fixed constructor.
16885
16886 2004-10-18 09:31  jordi
16887
16888         * MenuAPI.cs: menuitems in menubars do not have shortcuts
16889
16890 2004-10-18 09:26  jordi
16891
16892         * MenuItem.cs: fixes MenuItem class signature
16893
16894 2004-10-18 08:56  jordi
16895
16896         * MenuAPI.cs: prevents windows from showing in the taskbar
16897
16898 2004-10-18 00:28  ravindra
16899
16900         * ToolTip.cs: Suppressed a warning message.
16901
16902 2004-10-18 00:27  ravindra
16903
16904         * Control.cs: Default value of visible property must be true.
16905
16906 2004-10-17 23:19  pbartok
16907
16908         * ToolTip.cs:
16909           - Complete implementation
16910
16911 2004-10-17 23:19  pbartok
16912
16913         * XplatUIX11.cs:
16914           - Added EnableWindow method
16915           - Added SetModal stub
16916           - Added generation of WM_ACTIVATE message (still needs testing)
16917           - Added SetTopMost stub
16918           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
16919
16920 2004-10-17 23:17  pbartok
16921
16922         * XplatUIWin32.cs:
16923           - Removed VirtualKeys to XplatUIStructs
16924           - Implemented SetTopMost method
16925           - Implemented EnableWindow method
16926           - Bugfix in ScreenToClient()
16927           - Bugfixes in ClientToScreen()
16928
16929 2004-10-17 22:51  pbartok
16930
16931         * XplatUIStructs.cs:
16932           - Added WS_EX styles to WindowStyles enumeration
16933
16934 2004-10-17 22:50  pbartok
16935
16936         * XplatUI.cs, XplatUIDriver.cs:
16937           - Added method for enabling/disabling windows
16938           - Added method for setting window modality
16939           - Added method for setting topmost window
16940
16941 2004-10-17 22:49  pbartok
16942
16943         * ThemeWin32Classic.cs:
16944           - Added ToolTip drawing code
16945
16946 2004-10-17 22:49  pbartok
16947
16948         * Theme.cs:
16949           - Added ToolTip abstracts
16950
16951 2004-10-17 22:47  pbartok
16952
16953         * Form.cs:
16954           - Fixed Form.ControlCollection to handle owner relations
16955           - Added Owner/OwnedForms handling
16956           - Implemented Z-Ordering for owned forms
16957           - Removed unneeded private overload of ShowDialog
16958           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
16959             so I hope)
16960           - Fixed Close(), had wrong default
16961           - Added firing of OnLoad event
16962           - Added some commented out debug code for Ownership handling
16963
16964 2004-10-17 22:16  pbartok
16965
16966         * Control.cs:
16967           - Fixed/implemented flat list of controls
16968
16969 2004-10-17 22:14  pbartok
16970
16971         * Application.cs:
16972           - Added code to simulate modal dialogs on Win32
16973
16974 2004-10-17 16:11  jordi
16975
16976         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
16977           mouse event
16978
16979 2004-10-17 13:39  jordi
16980
16981         * MenuAPI.cs: menu drawing fixes
16982
16983 2004-10-15 09:10  ravindra
16984
16985         * StructFormat.cs: General Enum.
16986
16987 2004-10-15 09:09  ravindra
16988
16989         * SizeGripStyle.cs: Enum for Form.
16990
16991 2004-10-15 09:08  ravindra
16992
16993         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
16994           in Theme for ListView.
16995
16996 2004-10-15 09:06  ravindra
16997
16998         * ColumnHeader.cs: Flushing some formatting changes.
16999
17000 2004-10-15 09:05  ravindra
17001
17002         * ListViewItem.cs: Implemented GetBounds method and fixed coding
17003           style.
17004
17005 2004-10-15 09:03  ravindra
17006
17007         * ListView.cs: Implemented Paint method and fixed coding style.
17008
17009 2004-10-15 07:34  jordi
17010
17011         * MenuAPI.cs: fix for X11
17012
17013 2004-10-15 07:32  ravindra
17014
17015         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
17016                 - Renamed Paint() method to Draw() for clarity. Also, moved
17017                 DrawImage() to OnPaint().
17018
17019 2004-10-15 07:25  ravindra
17020
17021         * CheckBox.cs, RadioButton.cs:
17022                 - Removed Redraw (), we get it from ButtonBase.
17023                 - Implemented Paint (), to do class specific painting.
17024
17025 2004-10-15 07:16  ravindra
17026
17027         * ButtonBase.cs:
17028                 - Redraw () is not virtual now.
17029                 - Added an internal virtual method Paint (), so that
17030                 derived classes can do their painting on their own.
17031                 - Modified OnPaint () to call Paint ().
17032
17033 2004-10-15 06:43  jordi
17034
17035         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
17036           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
17037
17038 2004-10-15 00:30  ravindra
17039
17040         * MessageBox.cs:
17041                 - MessageBox on windows does not have min/max buttons.
17042                 This change in CreateParams fixes this on Windows. We
17043                 still need to implement this windowstyle behavior in
17044                 our X11 driver.
17045
17046 2004-10-14 05:14  ravindra
17047
17048         * ToolBar.cs:
17049                 - Changed Redraw () to do a Refresh () always.
17050                 - Fixed the MouseMove event handling when mouse is pressed,
17051                 ie drag event handling.
17052                 - Replaced the usage of ToolBarButton.Pressed property to
17053                 ToolBarButton.pressed internal variable.
17054
17055 2004-10-14 05:10  ravindra
17056
17057         * ToolBarButton.cs:
17058                 - Added an internal member 'inside' to handle mouse move
17059                 with mouse pressed ie mouse drag event.
17060                 - Changed 'Pressed' property to return true only when
17061                 'inside' and 'pressed' are both true.
17062                 - Some coding style love.
17063
17064 2004-10-14 00:17  ravindra
17065
17066         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
17067           public method.
17068
17069 2004-10-14 00:15  ravindra
17070
17071         * ButtonBase.cs: Redraw () related improvements.
17072
17073 2004-10-14 00:14  ravindra
17074
17075         * MessageBox.cs: Moved InitFormSize () out of Paint method and
17076           removed unnecessary calls to Button.Show () method.
17077
17078 2004-10-13 17:50  pbartok
17079
17080         * XplatUIX11.cs:
17081           - Formatting fix
17082           - Removed destroying of window until we solve the problem of X
17083             destroying the window before us on shutdown
17084
17085 2004-10-13 16:32  pbartok
17086
17087         * ButtonBase.cs:
17088           - Now Redraws on MouseUp for FlatStyle Flat and Popup
17089
17090 2004-10-13 14:18  pbartok
17091
17092         * XplatUIX11.cs:
17093           - Added code to destroy the X window
17094
17095 2004-10-13 14:18  pbartok
17096
17097         * XplatUIWin32.cs:
17098           - Added code to destroy a window
17099
17100 2004-10-13 14:12  pbartok
17101
17102         * ButtonBase.cs:
17103           - Added the Redraw on Resize that got dropped in the last rev
17104
17105 2004-10-13 09:06  pbartok
17106
17107         * ThemeWin32Classic.cs:
17108           - Path from John BouAntoun:
17109             * Fix check rendering (centre correctly for normal style, offset
17110               correctly for FlatStyle).
17111             * Fix border color usage (use backcolor) for FlatStyle.Popup
17112             * Use checkbox.Capture instead of checkbox.is_pressed when
17113               rendering flatstyle states.
17114
17115 2004-10-12 21:48  pbartok
17116
17117         * ThemeWin32Classic.cs:
17118           - Removed all occurences of SystemColors and replaced them with the
17119             matching theme color
17120
17121 2004-10-12 21:41  pbartok
17122
17123         * ThemeWin32Classic.cs:
17124           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
17125             him using the function for flatstyle drawing
17126           - Changed functions to use the new version of CPDrawBorder3D
17127
17128 2004-10-12 21:15  pbartok
17129
17130         * ControlPaint.cs:
17131           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
17132             match MS documentation. They need to return defined colors if the
17133             passed color matches the configured control color. Thanks to John
17134             BouAntoun for pointing this out.
17135
17136 2004-10-12 20:57  pbartok
17137
17138         * Control.cs:
17139           - Fix from John BouAntoun: Raise ForeColorChanged event when text
17140             color is changed
17141
17142 2004-10-12 20:46  pbartok
17143
17144         * CheckBox.cs:
17145           - Fix from John BouAntoun: Now properly sets the Appearance property
17146
17147 2004-10-12 20:45  pbartok
17148
17149         * ThemeWin32Classic.cs:
17150           - Fixes from John BouAntoun: now handles forecolors and backcolors
17151             for flatstyle rendered controls much better; It also fixes normal
17152             checkbox rendering when pushed or disabled.
17153
17154 2004-10-08 02:50  jordi
17155
17156         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
17157           work
17158
17159 2004-10-07 08:56  jordi
17160
17161         * ThemeWin32Classic.cs: Removes deletion of cached brushes
17162
17163 2004-10-06 03:59  jordi
17164
17165         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
17166           XplatUIWin32.cs: removes warnings from compilation
17167
17168 2004-10-05 12:23  jackson
17169
17170         * RadioButton.cs: Fix ctor
17171
17172 2004-10-05 11:10  pbartok
17173
17174         * MessageBox.cs:
17175           - Partial implementation by Benjamin Dasnois
17176
17177 2004-10-05 10:15  jackson
17178
17179         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
17180           by John BouAntoun
17181
17182 2004-10-05 03:07  ravindra
17183
17184         * ToolBar.cs:
17185                 - Removed a private method, Draw ().
17186                 - Fixed the ButtonDropDown event handling.
17187                 - Fixed MouseMove event handling.
17188
17189 2004-10-05 03:04  ravindra
17190
17191         * ThemeWin32Classic.cs:
17192                 - Added DrawListView method and ListViewDefaultSize property.
17193                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
17194                 - Changed DOS style CRLF to Unix format (dos2unix).
17195
17196 2004-10-05 03:03  ravindra
17197
17198         * Theme.cs:
17199                 - Added DrawListView method and ListViewDefaultSize property.
17200
17201 2004-10-05 02:42  ravindra
17202
17203         * ToolBarButton.cs: Added an internal member dd_pressed to handle
17204           clicks on DropDown arrow.
17205
17206 2004-10-04 22:56  jackson
17207
17208         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
17209           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
17210           Control handle the buffers, derived classes should not have to
17211           CreateBuffers themselves.
17212
17213 2004-10-04 21:20  jackson
17214
17215         * StatusBar.cs: The control handles resizing the buffers now.
17216
17217 2004-10-04 21:18  jackson
17218
17219         * Control.cs: When resizing the buffers should be invalidated. This
17220           should be handled in Control not in derived classes.
17221
17222 2004-10-04 14:45  jackson
17223
17224         * TabPage.cs: oops
17225
17226 2004-10-04 02:14  pbartok
17227
17228         * LeftRightAlignment.cs:
17229           - Initial check-in
17230
17231 2004-10-04 01:09  jordi
17232
17233         * ThemeWin32Classic.cs: fixes right button position causing right
17234           button not showing on horizontal scrollbars
17235
17236 2004-10-02 13:12  pbartok
17237
17238         * XplatUIX11.cs:
17239           - Simplified the Invalidate method by using an X call instead of
17240             generating the expose ourselves
17241           - Added an expose when the window background is changed
17242           - Implemented ClientToScreen method
17243
17244 2004-10-02 13:08  pbartok
17245
17246         * XplatUIWin32.cs:
17247           - Added Win32EnableWindow method (test for implementing modal
17248           dialogs)
17249           - Added ClientToScreen method and imports
17250
17251 2004-10-02 13:07  pbartok
17252
17253         * XplatUI.cs, XplatUIDriver.cs:
17254           - Added ClientToScreen coordinate translation method
17255
17256 2004-10-02 13:06  pbartok
17257
17258         * KeyPressEventArgs.cs:
17259           - Fixed access level for constructor
17260
17261 2004-10-02 13:06  pbartok
17262
17263         * NativeWindow.cs:
17264           - Changed access level for the window_collection hash table
17265
17266 2004-10-02 13:05  pbartok
17267
17268         * Form.cs:
17269           - Added KeyPreview property
17270           - Added Menu property (still incomplete, pending Jordi's menu work)
17271           - Implemented ProcessCmdKey
17272           - Implemented ProcessDialogKey
17273           - Implemented ProcessKeyPreview
17274
17275 2004-10-02 13:02  pbartok
17276
17277         * Control.cs:
17278           - Added private method to get the Control object from the window
17279           handle
17280           - Implemented ContextMenu property
17281           - Implemented PointToScreen
17282           - Implemented PreProcessMessage
17283           - Implemented IsInputChar
17284           - Implemented IsInputKey
17285           - Implemented ProcessCmdKey
17286           - Completed ProcessKeyEventArgs
17287           - Fixed message loop to call the proper chain of functions on key
17288           events
17289           - Implemented ProcessDialogChar
17290           - Implemented ProcessDialogKey
17291           - Implemented ProcessKeyMessage
17292           - Implemented ProcessKeyPreview
17293           - Added RaiseDragEvent stub (MS internal method)
17294           - Added RaiseKeyEvent stub (MS internal method)
17295           - Added RaiseMouseEvent stub (MS Internal method)
17296           - Added RaisePaintEvent stub (MS Internal method)
17297           - Added ResetMouseEventArgs stub (MS Internal method)
17298           - Implemented RtlTranslateAlignment
17299           - Implemented RtlTranslateContent
17300           - Implemented RtlTranslateHorizontal
17301           - Implemented RtlTranslateLeftRight
17302           - Added generation of KeyPress event
17303
17304 2004-10-02 05:57  ravindra
17305
17306         * ListViewItem.cs: Added attributes.
17307
17308 2004-10-02 05:32  ravindra
17309
17310         * ListView.cs: Added attributes.
17311
17312 2004-10-01 11:53  jackson
17313
17314         * Form.cs: Implement the Close method so work on MessageBox can
17315           continue.
17316
17317 2004-09-30 14:06  pbartok
17318
17319         * XplatUIX11.cs:
17320           - Bug fixes
17321
17322 2004-09-30 11:34  jackson
17323
17324         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
17325
17326 2004-09-30 07:26  ravindra
17327
17328         * ListViewItemConverter.cs: Converter for ListViewItem.
17329
17330 2004-09-30 07:26  ravindra
17331
17332         * SortOrder.cs: Enum for ListView control.
17333
17334 2004-09-30 07:25  ravindra
17335
17336         * ColumnHeader.cs: Supporting class for ListView control.
17337
17338 2004-09-30 07:24  ravindra
17339
17340         * ListView.cs, ListViewItem.cs: Initial implementation.
17341
17342 2004-09-30 07:20  ravindra
17343
17344         * ItemActivation.cs: Enum for ListView Control.
17345
17346 2004-09-29 20:29  pbartok
17347
17348         * XplatUIX11.cs:
17349           - Added lookup of pixel value for background color; tries to get a
17350             color 'close' to the requested color, it avoids having to create a
17351             colormap.  Depending on the display this could mean the used color
17352             is slightly off the desired color. Might have to change it to a more
17353             resource intensive colormap approach, but it will work as a
17354           workaround to avoid red screens.
17355
17356 2004-09-29 14:27  jackson
17357
17358         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
17359
17360 2004-09-28 12:44  pbartok
17361
17362         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
17363           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
17364           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
17365           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
17366           TrackBar.cs, VScrollBar.cs:
17367           - Streamlined Theme interfaces:
17368             * Each DrawXXX method for a control now is passed the object for
17369               the control to be drawn in order to allow accessing any state the
17370               theme might require
17371
17372             * ControlPaint methods for the theme now have a CP prefix to avoid
17373               name clashes with the Draw methods for controls
17374
17375             * Every control now retrieves it's DefaultSize from the current
17376             theme
17377
17378 2004-09-28 12:17  jackson
17379
17380         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
17381           drawing
17382
17383 2004-09-24 14:57  jackson
17384
17385         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
17386           Gives us a nice little performance boost.
17387
17388 2004-09-24 12:02  jackson
17389
17390         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
17391           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
17392           Control and supporting classes. Initial checkin
17393
17394 2004-09-23 13:08  jackson
17395
17396         * Form.cs: Temp build fixage
17397
17398 2004-09-23 01:39  ravindra
17399
17400         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
17401           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
17402           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
17403           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
17404           EventHandlers needed by ListView Control.
17405
17406 2004-09-22 14:12  pbartok
17407
17408         * ScrollableControl.cs:
17409           - Implemented DockPadding property
17410           - Implemented AutoScroll property
17411           - Implemented AutoScrollMargin property
17412           - Implemented AutoScrollMinSize property
17413           - Implemented AutoScrollPosition property
17414           - Implemented DisplayRectangle property (still incomplete)
17415           - Implemented CreateParams property
17416           - Implemented HScroll property
17417           - Implemented VScroll property
17418           - Implemented OnVisibleChanged property
17419
17420 2004-09-22 14:09  pbartok
17421
17422         * Form.cs:
17423           - Added Form.ControllCollection class
17424           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
17425             RemoveOwnedForm (still incomplete, missing on-top and common
17426             minimize/maximize behaviour)
17427           - Added StartPosition property (still incomplete, does not use when
17428             creating the form)
17429           - Added ShowDialog() methods (still incomplete, missing forcing the
17430             dialog modal)
17431
17432 2004-09-22 14:05  pbartok
17433
17434         * Application.cs:
17435           - Added message loop for modal dialogs
17436
17437 2004-09-22 14:02  pbartok
17438
17439         * GroupBox.cs:
17440           - Fixed wrong types for events
17441
17442 2004-09-22 14:00  pbartok
17443
17444         * Shortcut.cs, FormWindowState.cs:
17445           - Fixed wrong values
17446
17447 2004-09-22 12:01  jackson
17448
17449         * Control.cs: Text is never null
17450
17451 2004-09-20 22:14  pbartok
17452
17453         * XplatUIWin32.cs:
17454           - Fixed accessibility level for Idle handler
17455
17456 2004-09-20 18:54  jackson
17457
17458         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17459           XplatUIX11.cs: New message loop that uses poll so we don't get a
17460           busy loop
17461
17462 2004-09-17 10:43  pbartok
17463
17464         * ScrollBar.cs:
17465           - Fixed behaviour of arrow buttons. Now properly behaves like
17466             Buttons (and like Microsoft's scrollbar arrow buttons)
17467
17468 2004-09-17 10:14  pbartok
17469
17470         * ScrollBar.cs:
17471           - Added missing release of keyboard/mouse capture
17472
17473 2004-09-17 06:18  jordi
17474
17475         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
17476           Theme.cs: Very early menu support
17477
17478 2004-09-16 17:45  pbartok
17479
17480         * XplatUIWin32.cs:
17481           - Fixed sending a window to the front
17482           - Added overload for SetWindowPos to avoid casting
17483
17484 2004-09-16 17:44  pbartok
17485
17486         * Control.cs:
17487           - Added SendToBack and BringToFront methods
17488
17489 2004-09-16 07:00  ravindra
17490
17491         * Copyright: Added Novell URL.
17492
17493 2004-09-16 07:00  ravindra
17494
17495         * ToolBar.cs: Invalidate should be done before redrawing.
17496
17497 2004-09-15 21:19  ravindra
17498
17499         * ColumnHeaderStyle.cs: Enum for ListView Control.
17500
17501 2004-09-15 21:18  ravindra
17502
17503         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
17504           ListView Control.
17505
17506 2004-09-13 18:26  jackson
17507
17508         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
17509           properly
17510
17511 2004-09-13 18:13  jackson
17512
17513         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
17514           a second thread and post messages into the main threads message
17515           queue. This makes timing much more consistent. Both win2K and XP
17516           have a minimum timer value of 15 milliseconds, so we now do this
17517           too.
17518
17519 2004-09-13 15:18  pbartok
17520
17521         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17522           XplatUIX11.cs:
17523           - Added Z-Ordering methods
17524
17525 2004-09-13 10:56  pbartok
17526
17527         * Form.cs:
17528           - Fixed #region names
17529           - Moved properties and methods into their proper #regions
17530
17531 2004-09-13 10:51  pbartok
17532
17533         * Form.cs:
17534           - Added Accept and CancelButton properties
17535           - Added ProcessDialogKey() method
17536
17537 2004-09-13 08:18  pbartok
17538
17539         * IWindowTarget.cs:
17540           - Initial check-in
17541
17542 2004-09-10 21:50  pbartok
17543
17544         * Control.cs:
17545           - Added DoDragDrop() [incomplete]
17546           - Properly implemented 'Visible' handling
17547           - Added SetVisibleCore()
17548           - Implemented FindChildAtPoint()
17549           - Implemented GetContainerControl()
17550           - Implemented Hide()
17551
17552 2004-09-10 19:28  pbartok
17553
17554         * Control.cs:
17555           - Moved methods into their appropriate #regions
17556           - Reordered methods within regions alphabetically
17557
17558 2004-09-10 18:57  pbartok
17559
17560         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17561           - Added method to retrieve text from window
17562
17563 2004-09-10 18:56  pbartok
17564
17565         * Control.cs:
17566           - Moved some internal functions into the internal region
17567           - Implemented FontHeight
17568           - Implemented RenderRightToLeft
17569           - Implemented ResizeRedraw
17570           - Implemented ShowFocusCues
17571           - Implemented ShowKeyboardCues
17572           - Implemented FromChildHandle
17573           - Implemented FromHandle
17574           - Implemented IsMnemonic
17575           - Implemented ReflectMessage
17576           - All public and protected Static Methods are now complete
17577
17578 2004-09-10 16:54  pbartok
17579
17580         * Control.cs:
17581           - Implemented remaining missing public instance properties
17582           - Alphabetized some out of order properties
17583
17584 2004-09-10 05:51  ravindra
17585
17586         * PictureBox.cs: Added a check for null image.
17587
17588 2004-09-10 00:59  jordi
17589
17590         * GroupBox.cs: remove cvs tag
17591
17592 2004-09-09 05:25  ravindra
17593
17594         * ToolBar.cs: Make redraw accessible from ToolBarButton.
17595
17596 2004-09-09 05:23  ravindra
17597
17598         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
17599           parent redraw.
17600
17601 2004-09-09 02:28  pbartok
17602
17603         * ThemeWin32Classic.cs:
17604           - Improve disabled string look
17605
17606 2004-09-09 01:15  jordi
17607
17608         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
17609           args and handler
17610
17611 2004-09-08 23:56  ravindra
17612
17613         * ItemBoundsPortion.cs: It's enum, not a class!
17614
17615 2004-09-08 23:47  ravindra
17616
17617         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
17618           Enums for Form.
17619
17620 2004-09-08 21:13  ravindra
17621
17622         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
17623           ListView control.
17624
17625 2004-09-08 21:03  ravindra
17626
17627         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
17628           avoid crash.
17629
17630 2004-09-08 21:01  ravindra
17631
17632         * ScrollableControl.cs: Removed unreachable code.
17633
17634 2004-09-08 06:45  jordi
17635
17636         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
17637
17638 2004-09-08 01:00  jackson
17639
17640         * XplatUIX11.cs: Only run the timers when updating the message
17641           queue. This effectively gives X messages a higher priority then
17642           timer messages. Timers still need love though
17643
17644 2004-09-07 14:01  jackson
17645
17646         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
17647           this for us and the handle is no longer valid.
17648
17649 2004-09-07 13:59  jackson
17650
17651         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
17652           loop that manages to not crash. TODO: Add poll and cleanup timers
17653
17654 2004-09-07 11:12  jordi
17655
17656         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
17657
17658 2004-09-07 03:40  jordi
17659
17660         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
17661           fixes, methods, multiple links
17662
17663 2004-09-06 06:55  jordi
17664
17665         * Control.cs: Caches ClientRectangle rectangle value
17666
17667 2004-09-05 02:03  jordi
17668
17669         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
17670           certain situations
17671
17672 2004-09-04 11:10  jordi
17673
17674         * Label.cs: Refresh when font changed
17675
17676 2004-09-02 16:24  pbartok
17677
17678         * Control.cs:
17679           - Added sanity check to creation of double buffer bitmap
17680
17681 2004-09-02 16:24  pbartok
17682
17683         * ButtonBase.cs:
17684           - Fixed selection of text color
17685           - Fixed handling of resize event; now properly recreates double
17686             buffering bitmap
17687           - Added missing assignment of TextAlignment
17688           - Added proper default for TextAlignment
17689
17690 2004-09-02 14:26  pbartok
17691
17692         * RadioButton.cs:
17693           - Added missing RadioButton.RadioButtonAccessibleObject class
17694
17695 2004-09-02 14:26  pbartok
17696
17697         * Control.cs:
17698           - Added missing Control.ControlAccessibleObject class
17699           - Started to implement Select()ion mechanisms, still very incomplete
17700
17701 2004-09-02 14:25  pbartok
17702
17703         * AccessibleObject.cs:
17704           - Added missing methods
17705
17706 2004-09-02 14:23  pbartok
17707
17708         * AccessibleNavigation.cs, AccessibleSelection.cs:
17709           - Initial check-in
17710
17711 2004-09-02 10:32  jordi
17712
17713         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
17714           pool for pens, brushes, and hatchbruses
17715
17716 2004-09-01 15:30  jackson
17717
17718         * StatusBar.cs: Fix typo
17719
17720 2004-09-01 14:44  pbartok
17721
17722         * RadioButton.cs:
17723           - Fixed state
17724
17725 2004-09-01 14:39  pbartok
17726
17727         * Button.cs, RadioButton.cs:
17728           - Functional initial check-in
17729
17730 2004-09-01 14:01  pbartok
17731
17732         * CheckBox.cs:
17733           - Added missing default
17734           - Added missing region mark
17735
17736 2004-09-01 09:10  jordi
17737
17738         * Label.cs: fixes method signatures, new methods, events, fixes
17739           autosize
17740
17741 2004-09-01 07:19  jordi
17742
17743         * Control.cs: Init string variables with an empty object
17744
17745 2004-09-01 04:20  jordi
17746
17747         * Control.cs: fires OnFontChanged event
17748
17749 2004-08-31 20:07  pbartok
17750
17751         * ButtonBase.cs:
17752           - Enabled display of strings
17753
17754 2004-08-31 20:05  pbartok
17755
17756         * Form.cs:
17757           - Added (partial) implementation of DialogResult; rest needs to be
17758             implemented when the modal loop code is done
17759
17760 2004-08-31 19:55  pbartok
17761
17762         * CheckBox.cs:
17763           - Fixed to match the removal of the needs_redraw concept
17764
17765 2004-08-31 19:55  pbartok
17766
17767         * ButtonBase.cs:
17768           - Removed the rather odd split between 'needs redraw' and redrawing
17769           - Now handles the events that require regeneration (ambient
17770             properties and size)
17771
17772 2004-08-31 19:41  pbartok
17773
17774         * Control.cs:
17775           - Added firing of BackColorChanged event
17776           - Added TopLevelControl property
17777           - Fixed handling of WM_ERASEBKGRND message
17778
17779 2004-08-31 12:49  pbartok
17780
17781         * ButtonBase.cs:
17782           - Removed debug
17783           - Minor fixes
17784
17785 2004-08-31 12:48  pbartok
17786
17787         * CheckBox.cs:
17788           - Finished (famous last words)
17789
17790 2004-08-31 04:35  jordi
17791
17792         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
17793           scrolling bugs, adds new methods
17794
17795 2004-08-30 14:42  pbartok
17796
17797         * CheckBox.cs:
17798           - Implemented CheckBox drawing code
17799
17800 2004-08-30 14:42  pbartok
17801
17802         * ButtonBase.cs:
17803           - Made Redraw() and CheckRedraw() virtual
17804           - Improved mouse up/down/move logic to properly track buttons
17805
17806 2004-08-30 09:44  pbartok
17807
17808         * CheckBox.cs:
17809           - Updated to fix broken build. Not complete yet.
17810
17811 2004-08-30 09:28  pbartok
17812
17813         * CheckState.cs:
17814           - Initial checkin
17815
17816 2004-08-30 09:17  pbartok
17817
17818         * Appearance.cs:
17819           - Initial check-in
17820
17821 2004-08-27 16:12  ravindra
17822
17823         * ToolBarButton.cs: Added TypeConverter attribute.
17824
17825 2004-08-27 16:07  ravindra
17826
17827         * ImageIndexConverter.cs: Implemented.
17828
17829 2004-08-27 14:17  pbartok
17830
17831         * Control.cs:
17832           - Removed unneeded stack vars
17833           - First attempt to fix sizing issues when layout is suspended
17834
17835 2004-08-25 15:35  jordi
17836
17837         * ScrollBar.cs: more fixes to scrollbar
17838
17839 2004-08-25 14:04  ravindra
17840
17841         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
17842           Added the missing divider code and grip for ToolBar Control.
17843
17844 2004-08-25 13:20  pbartok
17845
17846         * Control.cs:
17847           - Control now properly passes the ambient background color to child
17848             controls
17849
17850 2004-08-25 13:20  jordi
17851
17852         * ScrollBar.cs: small bug fix regarding bar position
17853
17854 2004-08-25 12:33  pbartok
17855
17856         * Timer.cs:
17857           - Now only calls SetTimer or KillTimer if the enabled state has
17858           changed
17859
17860 2004-08-25 12:33  pbartok
17861
17862         * XplatUIWin32.cs:
17863           - Fixed timer handling, now seems to work
17864           - Improved error message for window creation
17865
17866 2004-08-25 12:32  pbartok
17867
17868         * Control.cs:
17869           - Fixed generation of MouseUp message
17870
17871 2004-08-25 12:29  jordi
17872
17873         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
17874           and fixes for progressbar
17875
17876 2004-08-24 18:43  ravindra
17877
17878         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
17879           in ToolBar control.
17880
17881 2004-08-24 17:15  pbartok
17882
17883         * Panel.cs:
17884           - Added #region
17885           - Added missing events
17886           - Alphabetized
17887
17888 2004-08-24 17:14  pbartok
17889
17890         * StatusBar.cs, PictureBox.cs:
17891           - Now uses Control's CreateParams
17892
17893 2004-08-24 16:36  pbartok
17894
17895         * XplatUIX11.cs:
17896           - Fixed background color handling
17897           - Fixed sending of enter/leave events on a grab
17898
17899 2004-08-24 16:35  pbartok
17900
17901         * X11Structs.cs:
17902           - Refined definitions for CrossingEvent
17903
17904 2004-08-24 12:37  jordi
17905
17906         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
17907           formmating, methods signature, and adds missing events
17908
17909 2004-08-24 12:24  jordi
17910
17911         * Control.cs: fire OnEnabledChanged event
17912
17913 2004-08-24 11:17  pbartok
17914
17915         * XplatUIWin32.cs:
17916           - Implemented SetTimer() and KillTimer()
17917
17918 2004-08-24 11:16  pbartok
17919
17920         * XplatUIX11.cs:
17921           - Now uses Remove instead of Add to kill the timer
17922
17923 2004-08-24 10:16  jackson
17924
17925         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
17926           picture boxes in the theme now. Draw picture box borders and obey
17927           sizing modes
17928
17929 2004-08-24 05:49  jackson
17930
17931         * Timer.cs: Remove top secret debugging code
17932
17933 2004-08-24 05:34  jackson
17934
17935         * PictureBox.cs: Temp hack to make picture boxes draw their full
17936           image
17937
17938 2004-08-24 05:29  jackson
17939
17940         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17941           XplatUIX11.cs: Move timers to the driver level. On X they are
17942           queued by the driver and checked on idle.
17943
17944 2004-08-24 01:07  jackson
17945
17946         * XplatUIX11.cs: Use a queue for async messages instead of passing
17947           them as ClientMessages since that was totally broken. Also simply
17948           check for events and return an idle message if none are found. This
17949           gives us an idle handler, and prevents deadlocking when no messages
17950           are in the queue.
17951
17952 2004-08-23 18:19  ravindra
17953
17954         * XplatUIWin32.cs: Removed the unwanted destructor.
17955
17956 2004-08-23 17:27  pbartok
17957
17958         * ButtonBase.cs:
17959           - Finishing touches. Works now, just needs some optimizations.
17960
17961 2004-08-23 16:53  jordi
17962
17963         * ScrollBar.cs: small fix
17964
17965 2004-08-23 16:45  pbartok
17966
17967         * Application.cs:
17968           - Removed debug output
17969           - Simplifications
17970
17971 2004-08-23 16:43  jordi
17972
17973         * ScrollBar.cs: [no log message]
17974
17975 2004-08-23 16:10  pbartok
17976
17977         * Form.cs:
17978           - Fixed handling of WM_CLOSE message
17979           - Removed debug output
17980
17981 2004-08-23 16:09  pbartok
17982
17983         * Application.cs:
17984           - Added handling of Idle event
17985           - Added handling of form closing
17986           - Fixed reporting of MessageLoop property
17987           - Removed some unneeded code, should provide a bit of a speedup
17988
17989 2004-08-23 15:22  pbartok
17990
17991         * Control.cs:
17992           - Added InitLayout() method
17993           - Added code to properly perform layout when Anchor or Dock property
17994             is changed
17995           - Changed 'interpretation' of ResumeLayout. MS seems to have a
17996             LAMESPEC, tried to do it in a way that makes sense
17997
17998 2004-08-23 14:10  jordi
17999
18000         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
18001           properties and methods
18002
18003 2004-08-23 13:55  pbartok
18004
18005         * Control.cs:
18006           - Properly fixed Jordi's last fix
18007           - Now uses Cursor's Position property instead of calling XplatUI
18008           directly
18009
18010 2004-08-23 13:44  jordi
18011
18012         * PaintEventHandler.cs: Adding missing attribute
18013
18014 2004-08-23 13:39  pbartok
18015
18016         * Cursor.cs:
18017           - Implemented Position property
18018
18019 2004-08-23 13:39  pbartok
18020
18021         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18022           - Added method to move mouse cursor
18023
18024 2004-08-23 13:39  pbartok
18025
18026         * XplatUIX11.cs:
18027           - Fixed setting of background color
18028           - Added method to move mouse cursor
18029
18030 2004-08-23 13:16  jordi
18031
18032         * Control.cs: avoids null exception
18033
18034 2004-08-22 17:46  jackson
18035
18036         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
18037           PictureBox
18038
18039 2004-08-22 17:40  jackson
18040
18041         * XplatUIX11.cs: Add some missing locks
18042
18043 2004-08-22 15:10  pbartok
18044
18045         * Control.cs, Form.cs:
18046           - Removed OverlappedWindow style from Control, instead it's default
18047             now is child
18048           - Made form windows OverlappedWindow by default
18049
18050 2004-08-22 13:34  jackson
18051
18052         * ScrollBar.cs: Update the position through the Value property so
18053           the OnValueChanged event is raised.
18054
18055 2004-08-22 12:04  pbartok
18056
18057         * SWF.csproj:
18058           - Added Cursor.cs and UserControl.cs
18059
18060 2004-08-22 12:03  pbartok
18061
18062         * Cursor.cs:
18063           - Started implementation, not usable yet
18064
18065 2004-08-22 12:00  pbartok
18066
18067         * UserControl.cs:
18068           - Implemented UserControl (complete)
18069
18070 2004-08-21 19:20  ravindra
18071
18072         * ToolBar.cs: Correcting the formatting mess of VS.NET.
18073
18074 2004-08-21 18:49  ravindra
18075
18076         * ToolBar.cs: Probably this completes the missing attributes in
18077           toolbar control.
18078
18079 2004-08-21 18:03  ravindra
18080
18081         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
18082           Fixed toolbar control signatures.
18083
18084 2004-08-21 16:32  pbartok
18085
18086         * LinkLabel.cs:
18087           - Signature Fixes
18088
18089 2004-08-21 16:30  pbartok
18090
18091         * Label.cs:
18092           - Signature fixes
18093
18094 2004-08-21 16:19  pbartok
18095
18096         * Control.cs, Label.cs:
18097           - Signature fixes
18098
18099 2004-08-21 15:57  pbartok
18100
18101         * ButtonBase.cs:
18102           - Added loads of debug output for development
18103           - Fixed typo in method name
18104
18105 2004-08-21 15:52  pbartok
18106
18107         * ToolBarButtonClickEventArgs.cs:
18108           - Added missing base class
18109
18110 2004-08-21 14:53  pbartok
18111
18112         * Control.cs:
18113           - Updated to match new GrabWindow signature
18114
18115 2004-08-21 14:51  pbartok
18116
18117         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18118           - Added method to get default display size
18119
18120 2004-08-21 14:23  pbartok
18121
18122         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18123           - Added method to query current grab state
18124           - Added argument to allow confining a grab to a window
18125
18126 2004-08-21 14:22  pbartok
18127
18128         * Keys.cs:
18129           - Added [Flags] attribute so that modifiers can be used in bitwise
18130           ops
18131
18132 2004-08-21 14:21  pbartok
18133
18134         * TrackBar.cs, ScrollBar.cs:
18135           - Replaced direct XplatUI calls with their Control counterpart
18136
18137 2004-08-21 13:32  pbartok
18138
18139         * Control.cs:
18140           - Implemented Created property
18141
18142 2004-08-21 13:28  pbartok
18143
18144         * Control.cs:
18145           - Implemented ContainsFocus
18146
18147 2004-08-21 13:26  pbartok
18148
18149         * Control.cs:
18150           - Implemented CausesValidation
18151
18152 2004-08-21 13:21  pbartok
18153
18154         * Control.cs:
18155           - Implemented CanFocus
18156           - Implemented CanSelect
18157           - Implemented Capture
18158
18159 2004-08-21 12:35  pbartok
18160
18161         * XplatUIWin32.cs:
18162           - Fixed bug with Async message handling
18163           - Implemented getting the ModifierKeys
18164
18165 2004-08-21 12:32  jackson
18166
18167         * AsyncMethodResult.cs: Make sure we have the mutex before we
18168           release it. Fixes BeginInvoke on windows
18169
18170 2004-08-21 11:31  pbartok
18171
18172         * XplatUIWin32.cs, XplatUIX11.cs:
18173           - Drivers now return proper mouse state
18174
18175 2004-08-21 10:54  jackson
18176
18177         * Control.cs: Implement EndInvoke
18178
18179 2004-08-21 10:48  jackson
18180
18181         * Timer.cs: Remove unneeded finalizer
18182
18183 2004-08-20 19:52  ravindra
18184
18185         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
18186           in mouse event handling in the ToolBar control.
18187
18188 2004-08-20 19:50  ravindra
18189
18190         * ImageList.cs: Changed draw method to use the arguments passed in
18191           to draw the image.
18192
18193 2004-08-20 18:58  pbartok
18194
18195         * XplatUIStructs.cs:
18196           - Added private message for async communication
18197
18198 2004-08-20 17:38  ravindra
18199
18200         * Control.cs: Made RightToLeft property virtual and removed a
18201           Console.WriteLine.
18202
18203 2004-08-20 14:39  jordi
18204
18205         * ThemeGtk.cs: use style_attach
18206
18207 2004-08-20 14:39  pbartok
18208
18209         * XplatUIWin32.cs:
18210           - Added jackson's Async code from X11 to Win32
18211
18212 2004-08-20 14:09  pbartok
18213
18214         * SWF.csproj:
18215           - Added all new files
18216
18217 2004-08-20 14:09  pbartok
18218
18219         * Control.cs:
18220           - Added call to set window background color
18221
18222 2004-08-20 14:03  pbartok
18223
18224         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18225           - Added method for setting the window background
18226
18227 2004-08-20 14:02  pbartok
18228
18229         * XplatUIWin32.cs:
18230           - Added method for setting the background color
18231           - Added handling for erasing the window background
18232
18233 2004-08-20 13:45  jordi
18234
18235         * TrackBar.cs: fixes timer, new properties and methods
18236
18237 2004-08-20 13:34  jackson
18238
18239         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
18240           correct thread
18241
18242 2004-08-20 13:22  jackson
18243
18244         * Timer.cs: Timer Tick events are now handed through Controls Async
18245           mechanism so the callbacks are executed in the same thread as X
18246
18247 2004-08-20 13:19  jackson
18248
18249         * XplatUIDriver.cs: Expose functionality to send async messages
18250           through the driver
18251
18252 2004-08-20 13:18  jackson
18253
18254         * Control.cs: Implement Begininvoke
18255
18256 2004-08-20 13:14  jackson
18257
18258         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
18259           messages through the driver
18260
18261 2004-08-20 13:12  jackson
18262
18263         * XplatUIX11.cs: Lock before all X operations. Also added Async
18264           method functionality through XSendEvent
18265
18266 2004-08-20 13:11  jackson
18267
18268         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
18269           This will screw up on 64 bit systems)
18270
18271 2004-08-20 13:10  jackson
18272
18273         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
18274           Async messages through X/Win32
18275
18276 2004-08-19 19:39  pbartok
18277
18278         * XplatUIX11.cs:
18279           - Updated code to match new HandleData.DeviceContext type
18280
18281 2004-08-19 19:38  pbartok
18282
18283         * HandleData.cs:
18284           - Made DeviceContext a generic object to allow usage from various
18285           drivers
18286           - Added support for queueing Windows messages
18287
18288 2004-08-19 19:37  pbartok
18289
18290         * XplatUIWin32.cs:
18291           - Added generation of MouseEnter, MouseLeave and MouseHover events
18292           - Added cleanup on EndPaint
18293
18294 2004-08-19 19:17  pbartok
18295
18296         * Control.cs:
18297           - Added handling of WM_MOUSEHOVER
18298           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
18299           code
18300
18301 2004-08-19 18:55  jordi
18302
18303         * ThemeGtk.cs: fixes button order
18304
18305 2004-08-19 18:12  jordi
18306
18307         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
18308
18309 2004-08-19 17:09  pbartok
18310
18311         * Control.cs:
18312           - Added Right property
18313           - Added RightToLeft property
18314
18315 2004-08-19 16:27  jordi
18316
18317         * ThemeGtk.cs: experimental GTK theme support
18318
18319 2004-08-19 16:26  jordi
18320
18321         * ITheme.cs, Theme.cs: move themes from an interface to a class
18322
18323 2004-08-19 16:25  jordi
18324
18325         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
18326           theme enhancaments
18327
18328 2004-08-19 16:04  pbartok
18329
18330         * XplatUIX11.cs:
18331           - Added colormap basics
18332           - Added a way to re-initialize with a different display handle
18333           - Fixed setting of the window background color
18334           - Added various X11 imports related to colors and colormaps
18335
18336 2004-08-19 15:51  pbartok
18337
18338         * X11Structs.cs:
18339           - Removed packing hints (Paolo suggested this a while back)
18340           - fixed colormap type
18341           - Added default Atom types
18342           - Added Screen and color structs and enums
18343
18344 2004-08-19 15:39  pbartok
18345
18346         * ImageList.cs:
18347           - Added missing Draw() method
18348           - Added missing RecreateHandle event
18349
18350 2004-08-19 15:30  pbartok
18351
18352         * Form.cs:
18353           - Added handling of WM_CLOSE
18354
18355 2004-08-18 13:16  jordi
18356
18357         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
18358           a table
18359
18360 2004-08-18 09:56  jordi
18361
18362         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
18363
18364 2004-08-17 15:31  ravindra
18365
18366         * SWF.csproj: Updated project.
18367
18368 2004-08-17 15:25  pbartok
18369
18370         * Control.cs:
18371           - Drawing improvement; don't call UpdateBounds if we are not visible
18372             (or have been minimized)
18373
18374 2004-08-17 15:24  pbartok
18375
18376         * XplatUIWin32.cs:
18377           - Finished IsVisible
18378           - Added Win32GetWindowPlacement
18379
18380 2004-08-17 15:08  jackson
18381
18382         * Panel.cs: Initial checkin of the Panel
18383
18384 2004-08-17 14:25  pbartok
18385
18386         * Control.cs:
18387           - Fixed broken handling of default window sizes
18388
18389 2004-08-17 13:29  jackson
18390
18391         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
18392           has a large startup time.
18393
18394 2004-08-17 10:25  jackson
18395
18396         * HandleData.cs: union areas properly
18397
18398 2004-08-17 10:12  jackson
18399
18400         * HandleData.cs: union areas properly
18401
18402 2004-08-16 20:00  ravindra
18403
18404         * ToolBar.cs, ToolBarButton.cs: Added attributes.
18405
18406 2004-08-16 18:48  ravindra
18407
18408         * ToolBar.cs: Added attributes.
18409
18410 2004-08-16 17:17  ravindra
18411
18412         * SWF.csproj: Updated project.
18413
18414 2004-08-16 17:16  jackson
18415
18416         * XplatUIX11.cs: Check for more expose events before sending a
18417           WM_PAINT so they can all be grouped together. This makes dragging a
18418           window across another window redraw in a sane way.
18419
18420 2004-08-16 15:47  pbartok
18421
18422         * Control.cs:
18423           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
18424             support OnMouseEnter/Leave()
18425           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
18426             exposure handling
18427
18428 2004-08-16 15:46  pbartok
18429
18430         * XplatUIStructs.cs, XplatUIX11.cs:
18431           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
18432           OnMouseEnter/Leave()
18433
18434 2004-08-16 15:34  jackson
18435
18436         * XplatUIX11.cs: Group multiple expose events in HandleData, make
18437           sure messages get the message field set to WM_NULL if they are not
18438           handled.
18439
18440 2004-08-16 15:24  jackson
18441
18442         * HandleData.cs: HandleData is used for storing message information
18443           for window handles
18444
18445 2004-08-15 17:23  ravindra
18446
18447         * ColorDepth.cs: Added attribute.
18448
18449 2004-08-15 17:23  ravindra
18450
18451         * SWF.csproj: Updated project for ToolBar Control.
18452
18453 2004-08-15 17:20  ravindra
18454
18455         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
18456           control and also dos2unix format.
18457
18458 2004-08-15 17:13  ravindra
18459
18460         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
18461           ToolBarButtonClickEventArgs.cs,
18462           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
18463           ToolBarTextAlign.cs: First Implementation of ToolBar control.
18464
18465 2004-08-15 15:31  pbartok
18466
18467         * ButtonBase.cs:
18468           - First (mostly) working version
18469
18470 2004-08-13 16:15  pbartok
18471
18472         * Control.cs:
18473           - Fixed Anchor default
18474
18475 2004-08-13 15:43  pbartok
18476
18477         * Control.cs:
18478           - Changed GetCursorPos signature
18479
18480 2004-08-13 15:42  pbartok
18481
18482         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18483           - Changed signature for GetCursorPos
18484
18485 2004-08-13 15:25  pbartok
18486
18487         * XplatUIX11.cs:
18488           - Cleanup
18489           - Fixed resizing/exposure handling
18490
18491 2004-08-13 15:22  jordi
18492
18493         * ThemeWin32Classic.cs: removes redundant code and fixes issues
18494           with tickposition
18495
18496 2004-08-13 14:55  jordi
18497
18498         * TrackBar.cs: change from wndproc to events
18499
18500 2004-08-13 13:00  jordi
18501
18502         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18503           XplatUIX11.cs: implements PointToClient (ScreenToClient)
18504
18505 2004-08-13 12:53  pbartok
18506
18507         * XplatUIWin32.cs:
18508           - Changed GetWindowPos to also provide client area size
18509           - Fixed broken prototypes for several win32 functions
18510
18511 2004-08-13 12:53  pbartok
18512
18513         * XplatUI.cs, XplatUIDriver.cs:
18514           - Changed GetWindowPos to also provide client area size
18515
18516 2004-08-13 12:52  pbartok
18517
18518         * XplatUIX11.cs:
18519           - Added generation of WM_POSCHANGED
18520           - Changed GetWindowPos to also provide client area size
18521
18522 2004-08-13 12:52  pbartok
18523
18524         * Control.cs:
18525           - Added Dispose() and destructor
18526           - Fixed resizing and bounds calculation
18527           - Fixed Layout
18528           - Added memory savings for invisible windows
18529
18530 2004-08-13 12:46  jordi
18531
18532         * TrackBar.cs: adds timer and grap window
18533
18534 2004-08-13 10:25  jackson
18535
18536         * Timer.cs: SWF Timer
18537
18538 2004-08-12 16:59  pbartok
18539
18540         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18541           - Implemented method to get current mouse position
18542
18543 2004-08-12 14:29  jordi
18544
18545         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
18546           enhancement, fix mouse problems, highli thumb, etc
18547
18548 2004-08-12 13:31  pbartok
18549
18550         * Control.cs:
18551           - Fixed Anchoring bugs
18552
18553 2004-08-12 13:01  jackson
18554
18555         * StatusBar.cs: Don't forget things
18556
18557 2004-08-12 12:54  jackson
18558
18559         * ThemeWin32Classic.cs: Handle owner draw status bars
18560
18561 2004-08-12 12:54  jackson
18562
18563         * StatusBar.cs: Implement missing properties, events, and methods.
18564           Handle mouse clicking
18565
18566 2004-08-12 10:19  jackson
18567
18568         * StatusBarPanelClickEventArgs.cs,
18569           StatusBarPanelClickEventHandler.cs: Classes for handling status
18570           bar panel click events
18571
18572 2004-08-12 10:10  jackson
18573
18574         * Control.cs: Add missing properties
18575
18576 2004-08-12 09:46  pbartok
18577
18578         * BindingsManagerBase.cs:
18579           - Name changed to BindingManagerBase.cs
18580
18581 2004-08-12 09:25  jordi
18582
18583         * ScrollableControl.cs: calls ctrlbase instead of exeception
18584
18585 2004-08-11 16:28  pbartok
18586
18587         * InputLanguageChangingEventArgs.cs:
18588           - Never check in before compiling. Fixes the last check-in
18589
18590 2004-08-11 16:26  pbartok
18591
18592         * InputLanguageChangingEventArgs.cs:
18593           - More signature fixes
18594
18595 2004-08-11 16:20  pbartok
18596
18597         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
18598           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
18599           ImageListStreamer.cs, InputLanguage.cs,
18600           InputLanguageChangedEventArgs.cs,
18601           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
18602           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
18603           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
18604           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18605           - Signature fixes
18606
18607 2004-08-11 16:16  pbartok
18608
18609         * Application.cs:
18610           - Fixed Signature
18611           - Added .Net 1.1 method
18612
18613 2004-08-11 15:25  pbartok
18614
18615         * SWF.csproj:
18616           - Fixed BindingManagerBase.cs filename
18617
18618 2004-08-11 15:22  pbartok
18619
18620         * BindingManagerBase.cs:
18621           - Was checked in with wrong filename
18622
18623 2004-08-11 14:50  pbartok
18624
18625         * SWF.csproj:
18626           - Updated
18627
18628 2004-08-11 13:41  jordi
18629
18630         * XplatUIWin32.cs: Fixes ClientRect
18631
18632 2004-08-11 13:19  pbartok
18633
18634         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18635           XplatUIX11.cs:
18636           - We had SetWindowPos and MoveWindow to set window positions and
18637             size, removed MoveWindow. We have GetWindowPos, so it made sense to
18638             keep SetWindowPos as matching counterpart
18639           - Added some X11 sanity checking
18640
18641 2004-08-11 12:59  pbartok
18642
18643         * Control.cs:
18644           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
18645             (It seems that SetBounds is just a front for SetBoundsCore and
18646              SetBoundsCore updates the underlying window system and
18647              UpdateBounds is responsible for updating the variables associated
18648              with the Control and sending the events)
18649           - Major cleanup of Size handling; we now have two sizes, client_size
18650             and bounds. Bounds defines the window with decorations, client_size
18651             without them.
18652
18653 2004-08-11 12:55  pbartok
18654
18655         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18656           - Added method to calculate difference between decorated window and
18657             raw client area
18658
18659 2004-08-11 12:54  pbartok
18660
18661         * Label.cs:
18662           - Forcing redraw on resize
18663
18664 2004-08-11 11:43  pbartok
18665
18666         * ImageList.cs:
18667           - Removed disposing of the actual images when the list is disposed
18668
18669 2004-08-11 09:13  pbartok
18670
18671         * Control.cs:
18672           - Now properly reparents windows
18673
18674 2004-08-11 08:37  pbartok
18675
18676         * Control.cs:
18677           - Duh!
18678
18679 2004-08-11 07:47  pbartok
18680
18681         * Control.cs:
18682           - Rewrote the collection stuff. Might not be as fast now, not
18683             keeping the number of children around and accessible directly, but
18684             it's more straightforward
18685
18686 2004-08-11 07:44  pbartok
18687
18688         * AccessibleObject.cs:
18689           - Fixed to match ControlCollection rewrite
18690
18691 2004-08-11 07:43  pbartok
18692
18693         * ImageList.cs:
18694           - Added missing creation of the collection list
18695
18696 2004-08-10 20:08  jackson
18697
18698         * StatusBar.cs: Get the paint message from WndProc
18699
18700 2004-08-10 19:31  jackson
18701
18702         * ThemeWin32Classic.cs: Create Brushes as little as possible
18703
18704 2004-08-10 19:20  jackson
18705
18706         * UICues.cs: Add Flags attribute
18707
18708 2004-08-10 19:19  jackson
18709
18710         * StatusBarPanel.cs: Signature cleanup
18711
18712 2004-08-10 19:10  jackson
18713
18714         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
18715           Initial implementation of status bar item drawing
18716
18717 2004-08-10 17:27  jordi
18718
18719         * TrackBar.cs: add missing methods, properties, and restructure to
18720           hide extra ones
18721
18722 2004-08-10 16:24  jackson
18723
18724         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
18725           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
18726           attribute
18727
18728 2004-08-10 13:21  jordi
18729
18730         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
18731           enhancements and standarize on win colors defaults
18732
18733 2004-08-10 12:52  jackson
18734
18735         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
18736           ThemeWin32Classic.cs: Implement DrawItem functionality
18737
18738 2004-08-10 12:47  jordi
18739
18740         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
18741
18742 2004-08-10 12:32  jordi
18743
18744         * Control.cs: throw ontextchange event
18745
18746 2004-08-10 11:43  pbartok
18747
18748         * Control.cs:
18749           - Added more to the still unfinished Dock/Anchor layout code
18750
18751 2004-08-10 11:39  pbartok
18752
18753         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18754           - Added GetWindowPos method
18755
18756 2004-08-10 11:36  pbartok
18757
18758         * XplatUIWin32.cs:
18759           - Implemented several methods
18760
18761 2004-08-10 09:47  jackson
18762
18763         * TrackBar.cs: Allow control to handle buffering
18764
18765 2004-08-10 09:41  jackson
18766
18767         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
18768
18769 2004-08-10 09:24  jackson
18770
18771         * Label.cs, LinkLabel.cs: Let Control handle buffering.
18772
18773 2004-08-10 09:09  jackson
18774
18775         * StatusBar.cs: Let Control handle all the buffering.
18776
18777 2004-08-10 09:08  jackson
18778
18779         * Control.cs: Control will now handle the buffering code, so each
18780           control does not have to implement this.
18781
18782 2004-08-10 08:34  jackson
18783
18784         * XplatUIDriver.cs: Use default colors from the theme
18785
18786 2004-08-09 17:12  pbartok
18787
18788         * ImageList.cs:
18789           - Fixed several bugs Ravindra pointed out
18790
18791 2004-08-09 16:11  pbartok
18792
18793         * Control.cs:
18794           - Added incomplete dock layout code
18795           - Added support for mouse wheel
18796
18797 2004-08-09 16:09  pbartok
18798
18799         * XplatUIX11.cs:
18800           - Added handling for middle and right mousebutton
18801           - Added handling for mouse wheel
18802           - Added handling for key state and mouse state and position
18803           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
18804           messages
18805
18806 2004-08-09 15:40  jackson
18807
18808         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
18809           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
18810           checkin
18811
18812 2004-08-09 15:37  jackson
18813
18814         * StatusBar.cs: Initial implementation of StatusBar
18815
18816 2004-08-09 15:36  jackson
18817
18818         * ITheme.cs: Add support for drawing status bar and getting status
18819           bar item sizes
18820
18821 2004-08-09 15:35  pbartok
18822
18823         * MouseButtons.cs:
18824           - Fixed values
18825
18826 2004-08-09 15:34  jackson
18827
18828         * ThemeWin32Classic.cs: Add support for drawing status bar and get
18829           status bar item sizes
18830
18831 2004-08-09 15:21  jackson
18832
18833         * ThemeWin32Classic.cs: Use known colors for default control
18834           colours
18835
18836 2004-08-09 15:12  jackson
18837
18838         * ThemeWin32Classic.cs: Make the default font static, it is static
18839           in control so this doesn't change functionality and creating fonts
18840           is sloooooow.
18841
18842 2004-08-09 14:56  pbartok
18843
18844         * X11Structs.cs:
18845           - Added GrabMode enum
18846
18847 2004-08-09 14:55  pbartok
18848
18849         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18850           - Removed Run method, was only required for initial development
18851
18852 2004-08-09 14:51  pbartok
18853
18854         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18855           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
18856           capture
18857
18858 2004-08-09 13:48  pbartok
18859
18860         * XplatUIX11.cs:
18861           - Fixed default sizing for child windows
18862
18863 2004-08-09 12:56  pbartok
18864
18865         * XplatUIX11.cs:
18866           - Added generation of WM_DESTROY message
18867           - Added handling of window manager induced shutdown
18868
18869 2004-08-09 11:31  jackson
18870
18871         * ThemeWin32Classic.cs: New names for control properties
18872
18873 2004-08-09 11:25  jackson
18874
18875         * Control.cs: Use new color names
18876
18877 2004-08-09 11:02  jackson
18878
18879         * XplatUI.cs: Get default window properties from the theme
18880
18881 2004-08-09 11:01  jackson
18882
18883         * ITheme.cs: The theme engine now controls default window
18884           properties
18885
18886 2004-08-09 11:00  jackson
18887
18888         * ThemeWin32Classic.cs: Add default window color properties
18889
18890 2004-08-09 10:17  jackson
18891
18892         * ThemeWin32Classic.cs: Use correct default back color
18893
18894 2004-08-09 10:05  jackson
18895
18896         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
18897           the theme now.
18898
18899 2004-08-09 09:56  jackson
18900
18901         * XplatUI.cs: Remove defaults, these are handled by the theme now.
18902
18903 2004-08-09 09:54  jackson
18904
18905         * Control.cs: Get default properties from the theme.
18906
18907 2004-08-09 09:53  jackson
18908
18909         * ITheme.cs: Themes now handle default control properties
18910
18911 2004-08-09 09:53  jackson
18912
18913         * ThemeWin32Classic.cs: Themes now handle default control
18914           properties so coloring will be consistent
18915
18916 2004-08-08 16:54  jordi
18917
18918         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
18919
18920 2004-08-08 15:08  jordi
18921
18922         * XplatUIX11.cs: fixes keyboard crash
18923
18924 2004-08-08 13:47  jordi
18925
18926         * Label.cs: add cvs header info
18927
18928 2004-08-08 12:09  jackson
18929
18930         * ThemeWin32Classic.cs: Add pen_buttonface
18931
18932 2004-08-08 11:52  jordi
18933
18934         * Label.cs, LinkLabel.cs: [no log message]
18935
18936 2004-08-08 11:34  jordi
18937
18938         * ThemeWin32Classic.cs: Use Windows Standard Colours
18939
18940 2004-08-07 17:32  jordi
18941
18942         * TrackBar.cs: throw exceptions of invalid enums values
18943
18944 2004-08-07 17:31  jordi
18945
18946         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
18947           draw method name
18948
18949 2004-08-07 16:56  jackson
18950
18951         * HorizontalAlignment.cs: Initial checkin
18952
18953 2004-08-07 13:16  jordi
18954
18955         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
18956           methods
18957
18958 2004-08-07 13:05  jordi
18959
18960         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
18961           GetSysColor defines
18962
18963 2004-08-06 18:01  pbartok
18964
18965         * ThemeWin32Classic.cs:
18966           - Fixed some rounding issues with float/int
18967
18968 2004-08-06 18:00  jackson
18969
18970         * DockStyle.cs, AnchorStyles.cs:
18971
18972                   Add flags and serializable attributes.
18973
18974 2004-08-06 17:46  pbartok
18975
18976         * XplatUIX11.cs:
18977           - Implemented GetParent
18978
18979 2004-08-06 17:18  pbartok
18980
18981         * TrackBar.cs:
18982           - Fixed some rounding issues with float/int
18983
18984 2004-08-06 17:17  pbartok
18985
18986         * X11Structs.cs, XplatUIX11.cs:
18987           - Fixed Refresh and Invalidate
18988
18989 2004-08-06 15:30  pbartok
18990
18991         * Control.cs, X11Structs.cs, XplatUIX11.cs:
18992           - Fixed recursive loop when resizing
18993           - Improved/fixed redrawing on expose messages
18994
18995 2004-08-06 09:53  jordi
18996
18997         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
18998           keyboard navigation
18999
19000 2004-08-06 08:02  pbartok
19001
19002         * X11Structs.cs, XplatUIX11.cs:
19003           - Fixed reparenting
19004           - Fixed window border creation
19005
19006 2004-08-05 15:38  pbartok
19007
19008         * XplatUIX11.cs:
19009           - Attempted fix for reparenting problems
19010
19011 2004-08-04 15:14  pbartok
19012
19013         * Control.cs:
19014           - Fixed Invalidation bug (calculated wrong client area)
19015           - Added ClientSize setter
19016
19017 2004-08-04 15:13  pbartok
19018
19019         * Form.cs:
19020           - Added AutoScale properties
19021
19022 2004-08-04 15:13  pbartok
19023
19024         * SWF.csproj:
19025           - Added latest files
19026
19027 2004-08-04 14:11  pbartok
19028
19029         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19030           XplatUIX11.cs:
19031           - Added Invalidate handling
19032
19033 2004-08-03 17:09  jordi
19034
19035         * XplatUIDriver.cs: fixes spelling mistake
19036
19037 2004-07-27 09:53  jordi
19038
19039         * TrackBar.cs: fixes trackbar events, def classname, methods
19040           signature
19041
19042 2004-07-27 09:29  jordi
19043
19044         * ScrollBar.cs: fixes scrollbar events
19045
19046 2004-07-27 04:38  jordi
19047
19048         * Control.cs: changes to be able to run winforms samples
19049
19050 2004-07-26 11:42  jordi
19051
19052         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
19053           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
19054
19055 2004-07-26 05:41  jordi
19056
19057         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
19058           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
19059           implementation
19060
19061 2004-07-22 09:22  jordi
19062
19063         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
19064           check link overlapping, implement events, and fixes
19065
19066 2004-07-21 10:28  jordi
19067
19068         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
19069
19070 2004-07-21 10:19  jordi
19071
19072         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
19073           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
19074           LinkLabelLinkClickedEventArgs.cs,
19075           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
19076           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
19077           implementation
19078
19079 2004-07-19 13:09  jordi
19080
19081         * Control.cs, Label.cs: label control re-written: added missing
19082           functionlity, events, and properties
19083
19084 2004-07-19 10:49  jordi
19085
19086         * Control.cs: fixes SetBounds logic
19087
19088 2004-07-19 01:29  jordi
19089
19090         * Control.cs: Call RefreshWindow only if the window has created
19091
19092 2004-07-15 14:05  pbartok
19093
19094         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
19095           - Implemented ImageList and ImageList.ImageCollection classes
19096           - Added ColorDepth enumeration
19097           - Updated SWF VS.Net project
19098
19099 2004-07-15 11:06  jordi
19100
19101         * XplatUIStructs.cs: added MsgButons enum
19102
19103 2004-07-15 11:03  jordi
19104
19105         * Control.cs: added basic mouse handeling events
19106
19107 2004-07-15 03:38  jordi
19108
19109         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
19110           Vertical TrackBar control implementation
19111
19112 2004-07-13 09:33  jordi
19113
19114         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
19115
19116 2004-07-13 09:31  jordi
19117
19118         * Control.cs, Form.cs: commit: new properties and fixes form size
19119           problems
19120
19121 2004-07-09 14:13  miguel
19122
19123         * ProgressBar.cs: Spelling
19124
19125 2004-07-09 11:25  pbartok
19126
19127         * ProgressBar.cs:
19128           - Removed usage of Rectangle for drawing. Miguel pointed out it's
19129           faster
19130
19131 2004-07-09 11:17  miguel
19132
19133         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
19134
19135                 * ProgressBar.cs: Fixed spelling for `block'
19136
19137                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
19138                 style guidelines.
19139
19140                 Avoid using the += on rect.X, that exposed a bug in the compiler.
19141
19142 2004-07-08 23:21  pbartok
19143
19144         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
19145           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
19146           BaseCollection.cs, Binding.cs, BindingContext.cs,
19147           BindingMemberInfo.cs, BindingsCollection.cs,
19148           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
19149           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
19150           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
19151           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
19152           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
19153           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
19154           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
19155           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
19156           FrameStyle.cs, GiveFeedbackEventArgs.cs,
19157           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
19158           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
19159           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
19160           InputLanguageChangedEventArgs.cs,
19161           InputLanguageChangedEventHandler.cs,
19162           InputLanguageChangingEventArgs.cs,
19163           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
19164           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
19165           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
19166           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
19167           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
19168           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
19169           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
19170           QueryAccessibilityHelpEventArgs.cs,
19171           QueryAccessibilityHelpEventHandler.cs,
19172           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
19173           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
19174           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
19175           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
19176           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
19177           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
19178           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
19179           XplatUIX11.cs, lang.cs:
19180           - Initial check-in
19181