2006-11-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2
3         * Theme.cs:
4         * ThemeWin32Classic.cs:
5         - Added a property WindowBorderFont to enable themeing
6           of mdi child windows' Text.
7           
8 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9
10         * InternalWindowManager.cs:
11         * Form.cs:
12         * MdiClient.cs:
13         * MdiWindowManager.cs: 
14         - If mdi child is maximized, set mdi parent's
15           text to "Parent - [Child]". Fixes #79770.
16         - If there is any maximized mdi child windows, only the active 
17           window (and any new windows) is maximized, the rest are normal.
18         - On a WindowState change only save mdi child's window bounds 
19           if the old window state was normal. Fixes #79774.
20         - The scroll bars are now calculated on hopefully all
21           necessary events. Fixed #79771 / #79844->6 / #79906.
22         - MdiClient.SizeScrollBars() now takes into account docked 
23           controls in the parent when calculating available space.
24         - InternalWindowManager now always repaints the entire title
25           area. Fixes #79844->1/4/5.
26         - Added RequestNCRecalc on mdi child windowstate changes.
27           Fixes #79772.
28
29 2006-11-20  Mike Kestner  <mkestner@novell.com>
30
31         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
32         in the MouseUp handler of the listbox and move the return handling
33         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
34
35 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
36
37         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
38
39 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
40
41         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
42           working in 1.2.x anymore. So, updated.
43
44 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
45
46         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
47         NumberGroupSeparator of current culture instead of assuming en-US.
48         Fixed bug #79967.
49
50 2006-11-17  Mike Kestner  <mkestner@novell.com>
51
52         * Control.cs: Add the concept of implicit bounds setting so that
53         dock/undock round trips preserve explicitly set size/locations.
54         Fixes #79313.
55
56 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
57
58         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
59           can't handle those filters. (Fixes bug #79961)
60
61 2006-11-17  Chris Toshok  <toshok@ximian.com>
62
63         [ fixes the exit/crashes associated with #79835.  it's clearly
64         suboptimal though, we need to figure out a better way to solve
65         this. ]
66         
67         * PrintPreviewControl.cs: deal with the new invalid printer
68         exceptions.
69
70         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
71         and return false (so CommonDialog.ShowDialog doesn't actually show
72         the form.)
73
74         * PrintDialog.cs: enable/disable the Ok button depending on
75         whether or not the printer is valid.
76
77         * CommonDialog.cs (ShowDialog): only actually show the form if
78         RunDialog returns true.
79
80 2006-11-17  Jackson Harper  <jackson@ximian.com>
81
82         * TextControl.cs: When soft splitting a line, mark it as a soft
83         split line. Also carry over the current line break to the next
84         line.
85
86 2006-11-17  Chris Toshok  <toshok@ximian.com>
87
88         * XplatUIX11.cs: when scrolling a window with an invalid area, we
89         only want to shift the part of the invalid area that overlaps the
90         area we're scrolling.  we also don't want to clear the invalid
91         area unless the invalid area was entirely contained within the
92         scrolling area.
93
94 2006-11-16  Chris Toshok  <toshok@ximian.com>
95
96         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
97         also make sure to free the memory returned by XGetWindowProperty
98         in GetText().
99
100         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
101
102 2006-11-16  Chris Toshok  <toshok@ximian.com>
103
104         * XplatUI.cs: add a new super secret way to get at the totally
105         unsupported X11 backend.
106
107 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
108
109         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
110
111 2006-11-16  Jackson Harper  <jackson@ximian.com>
112
113         * TreeView.cs: Allow more explicit setting of top node position
114         for scrollbars. Slower algo, but more accurate.
115         - CollapseAll should maintain the current top node.
116         * TextBoxBase.cs: When positioning the caret, use the line, pos
117         method, since the x, y method does not grab the correct tag, and
118         the caret height never gets set correctly. (Maybe I should just do
119         away with the caret having its own height, and always use the
120         carets current tag for height).
121
122 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
123
124         [Fixes 79778, 79923]
125
126         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
127         Parent to the FosterParent instead.
128
129 2006-11-16  Jackson Harper  <jackson@ximian.com>
130
131         * TreeView.cs: Need to recalc the topnode when we expand or
132         collapse. The scrolling methods can't handle this on their own,
133         since they use differences between the last scroll position, and
134         those difference get completely messed up since we are expanding
135         nodes.  This problem should probably be fixed in the scrolling
136         methods, so they can figure out exactly where they are, but this
137         will slow things down a little.
138         * ThemeWin32Classic.cs: Special case for groupboxes with empty
139         strings, makes nunit-gui look a lot nicer.
140
141 2006-11-16  Chris Toshok  <toshok@ximian.com>
142
143         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
144         the broken multithreaded event handling we have in here.  File
145         this entry under "Why we should move to the new X11 backend".
146
147         Any thread can make it into UpdateMessageQueue, which gets events
148         from the X socket - some of which could belong to hwnds being
149         managed by a different thread.  We can also have multiple threads
150         in UpdateMessageQueue at the same time, with each one reading from
151         the X socket.  This leads to many problems, with the following
152         solutions:
153
154         We can't use hwnd.Queue.Enqueue anywhere in here and must use
155         EnqueueLocked.
156
157         The MotionNotify compression we do can't work across threads
158         (without locking the entire queue, perhaps) since we call
159         hwnd.Queue.Peek, so we just punt and don't compress motion events
160         unless the owning thread is the one which got the X event.
161
162         ConfigureNotify is another fun one, since it modifies the hwnd's
163         bounds and then enqueues the event.  We add a lock to Hwnd which
164         is held when setting configure_pending to true (and enqueuing the
165         event).
166
167         There is a race wrt the wake socket.  we need to make sure that
168         only 1 thread is waiting on that socket, or else a thread could
169         sleep waiting for data that never comes.  It's difficult (but not
170         impossible) to make happen, because it seems to require something
171         like the following:
172
173             1. Thread 1 polls on wake_receive
174         
175             2. poll returns saying there's data to be read on
176                wake_receive.
177         
178             3. Thread 2 polls on wake_receive and immediately returns
179                saying there's data to be read.
180
181             4. Thread 2 reads the wakeup byte from wake_receive
182
183             5. Thread 1 attempts to read the wakeup byte from
184                wake_receive.
185
186             6. Thread 2 exits (due to a form closing, perhaps).
187
188             7. Thread 1 blocks forever.
189         
190         Fun, eh?
191
192         Fixing the Expose handling isn't done yet, and the races inherent
193         in that piece of code are responsible for the drawing mistakes you
194         see when generating expose events in a MT app (like NPlot).  This
195         one is the likely to be the hardest to bandaid, and it doesn't
196         appear to cause anything but drawing problems.  The other issues
197         caused apps to exit or hang.
198
199         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
200         called from a different thread than the one that should be calling
201         these functions.
202
203         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
204
205 2006-11-15  Chris Toshok  <toshok@ximian.com>
206
207         * Application.cs: null out the context's MainForm when we exit
208         RunLoop.  Fixes a newly checked in unit test as well as the last
209         ODE from bug #79933.
210
211 2006-11-15  Chris Toshok  <toshok@ximian.com>
212
213         * Form.cs (set_Owner): allow a null value so we can clear the
214         form's owner.
215         (Dispose): set all our owned_form's Owner properties to null, and
216         clear the owned_forms collection.
217         (WM_CLOSE): clean up this a little bit.. still not right though.
218
219         * ApplicationContext.cs: OnMainFormClosed should only call
220         ExitThreadCore if the main form isn't recreating.  Fixes unit
221         test.
222
223 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
224
225         [Fixes 78346]
226
227         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
228
229 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
230
231         [Fixes 79433]
232
233         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
234         keep popup window types from stealing focus from the main form
235         on Windows.
236
237         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
238
239         * MenuAPI.cs: Set above flag to true.
240
241 2006-11-15  Chris Toshok  <toshok@ximian.com>
242
243         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
244         the button being released is not in wParam.
245
246 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
247
248         * Form.cs: Add the released button to MouseEventArgs.Button
249         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
250         on Win32.
251
252 2006-11-15  Chris Toshok  <toshok@ximian.com>
253
254         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
255         GetText().  untested because it's unused in our implementation.
256         Control.Text always caches the text, even if
257         ControlStyles.CacheText is not set.
258
259         fixes bug #79939.
260
261 2006-11-15  Chris Toshok  <toshok@ximian.com>
262
263         [ fixes #79933 ]
264         
265         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
266         message.  no hiding, no disposing.
267
268         in the WM_CLOSE handler, hide the form if it's modal.
269
270 2006-11-15  Chris Toshok  <toshok@ximian.com>
271
272         * XplatUIX11.cs: use AddExpose instead of sending a message.
273         fixes textbox border drawing.
274
275 2006-11-15  Chris Toshok  <toshok@ximian.com>
276
277         * PropertyGridView.cs: keep from crashing on mouse move/down when
278         the property grid is empty.
279
280 2006-11-14  Jackson Harper  <jackson@ximian.com>
281
282         * TextControl.cs: Make PageUp and PageDown more like the MS
283         versions.
284         * TextBoxBase.cs: When we set the text property position the
285         cursor at the beginning of the document.
286
287 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
288
289         * Form.cs: if a mdi child's WindowState has changed
290         before it's creation, it would display wrong control
291         buttons.
292         
293 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
294
295         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
296           (Fixes bug #79927)
297
298 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
299
300         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
301         the window gets to paint its borders even if the window is
302         getting smaller.
303         
304         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
305         otherwise the old control buttons would still be painted 
306         if the window gets bigger.
307         
308         * PaintEventArgs.cs: add an internal method so that the clip 
309         rectangle can be changed.
310         
311 2006-11-13  Chris Toshok  <toshok@ximian.com>
312
313         [ fixes bug #79745 ]
314         
315         * NotifyIcon.cs: lots of cleanup.
316
317         * X11Structs.cs: add an enum for XEMBED messages.
318
319         * XplatUIX11.cs: reindent one of the giant switch statements, it
320         was taking up an additional tab stop, and this file is already way
321         too wide for my laptop's screen.
322
323         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
324         we get it, resize the hwnd to the WMNormalHints max_width/height.
325
326 2006-11-13  Jackson Harper  <jackson@ximian.com>
327
328         * TextBoxBase.cs: Compute the value changes for the mouse wheel
329         teh simple way.
330
331 2006-11-13  Chris Toshok  <toshok@ximian.com>
332
333         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
334         #79898.  force a reference to the Region to stick around so the
335         unmanaged object isn't collected (rendering our handle in the MSG
336         stale).
337
338 2006-11-13  Chris Toshok  <toshok@ximian.com>
339
340         * XplatUIX11.cs: fix #79917 for window managers which support
341
342         using XStoreName on the raw utf8, and we need to convert to
343         COMPOUND_TEXT if it's non-latin1.
344
345 2006-11-13  Chris Toshok  <toshok@ximian.com>
346
347         * Form.cs (set_DialogResult): we need to set closing to false if
348         we're setting our result to None.  fixes bug #79908.
349
350 2006-11-13  Jackson Harper  <jackson@ximian.com>
351
352         * TextControl.cs: When formatting text, compute the adjusted tag
353         lengths correctly, using FindTag for the end tag instead of trying
354         to figure it out outselves.
355         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
356         the item, ItemHeight doesn't work, because trees with large
357         imagelists use those for their height
358         * TreeView.cs: ActualItemHeight factors in the image height
359         - compute left edge of checkboxes correctly
360         - when expanding/collapsing move the bottom down one pixel, so we
361         aren't moving part of the node
362
363 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
364
365         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
366         stack in PaintEventStart so that it won't get disposed by the gc
367         before reaching PaintEventEnd.
368
369 2006-11-13  Jackson Harper  <jackson@ximian.com>
370
371         * TextBoxBase.cs: Don't select the word if we are on a line with
372         no text.
373         - We don't need to position the caret on mouse up, since the mouse
374         move handler should be doing this
375         - When double clicking a blank line, the caret is advanced to the
376         next line.
377
378 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
379
380         * TreeNodeCollection.cs: Avoid duplicating indexer code.
381
382 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
383
384         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
385         Fixes part of bug #79910.
386
387 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
388
389         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
390           (bug #79903). Some minor string updates to match ms.
391
392 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
393
394         * FileDialog.cs: Don't add an extension if the filename
395           already ends with that extension.
396
397 2006-11-10  Jackson Harper  <jackson@ximian.com>
398
399         * TreeView.cs: Use the currently highlighted node for the
400         BeforeSelect event.
401         * TextBoxBase.cs: There is no need to expand selection on
402         MouseMove.
403         - CanUndo means 'is there any undo operations', not 'is undo
404         allowed on this textcontrol. Fixed ClearUndo unit test.
405
406 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
407
408         * Button.cs: only perform click when button is Selectable (so as 
409         not to activate default buttons when they're disabled)
410         
411         * Control.cs: Rewrite of the SelectNextControl and related 
412         methods. HandleClick now selects next control if the current one
413         is being disabled.
414         
415         * Form.cs: OnActivated selects next active control only if Load 
416         has already occurred. If Load hasn't run, there's no point in 
417         selecting here, Load might change the state of controls.
418         
419         * FocusTest.cs: Tests marked as working again for these fixes
420
421 2006-11-10  Chris Toshok  <toshok@ximian.com>
422
423         * XplatUIX11.cs: a couple of fixes.
424
425         - use XInternAtoms with almost all the atoms we need to register,
426         instead of many, many calls to XInternAtom.  should help a bit on
427         startup time, at the expense of making the code look a little
428         worse.
429
430         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
431         isn't reparented (which seems to be a clue that we're running fon
432         compiz) and they have an Owner form.  This fixes the tool windows
433         in paint.net when running under compiz.
434
435         - when setting the opacity of a window, support both the case
436         where the window has been reparented and also when it hasn't been.
437         Since compiz/beryl doesn't seem to reparent windows, and these are
438         the only window managers which support translucency, I'm not sure
439         why we need the hwnd.reparented case at all.. but leave it in.
440         now we get translucent windows in paint.net under compiz/beryl.
441
442 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
443
444         * FileDialog.cs: Always return the value for FilterIndex that
445           was set. Internally convert it to values that make sense.
446
447 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
448         
449         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
450
451 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
452
453         * Toolbar.cs: Change default value of DropDownArrows to true, the 
454         signature still using false to make it compatible with MS but the 
455         initial value is true. Fixes #79855.
456
457 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
458
459         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
460           only available on Linux.
461
462 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
463
464         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
465         reduce number of calls to redraw method during toolbar creation.
466
467 2006-11-09  Mike Kestner  <mkestner@novell.com>
468
469         * ListView.cs : raise SelectedIndexChanged when an item is selected
470         programmatically via the Item.Selected property.  Gert's nice 
471         ListViewSelectedIndexChanged test fixture now runs clean.
472
473 2006-11-09  Mike Kestner  <mkestner@novell.com>
474
475         * ListView.cs : raise SelectedIndexChanged when a selected item is
476         removed from the item collection using Remove or RemoveAt.
477
478 2006-11-09  Mike Kestner  <mkestner@novell.com>
479
480         * ListView.cs : raise SelectedIndexChanged once per selected item
481         for compat with MS.  Fixes #79849+.
482
483 2006-11-09  Chris Toshok  <toshok@ximian.com>
484
485         * TabControl.cs: initialize row_count to 0, and set it to 1 when
486         we need to (if we have any tab pages).  Fixes unit test.
487
488 2006-11-09  Chris Toshok  <toshok@ximian.com>
489
490         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
491         width is 0, not 3.  Fixes a unit test.
492
493 2006-11-09  Mike Kestner  <mkestner@novell.com>
494
495         * ListView.cs : use Implicit scrollbars so that focus isn't 
496         stolen from the listview when they are clicked. Fixes #79850.
497
498 2006-11-09  Chris Toshok  <toshok@ximian.com>
499
500         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
501         have a root item.  Fixes #79879.
502
503 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
504
505         * FileDialog.cs:
506           - Fix ToString ()
507           - An ArgumentException is now thrown if a wrong filter
508             is applied (matches ms). The previous filter doesn't change
509             anymore if an exception is thrown.
510           - Changing the FileName property also affects FileNames
511         * ColorDialog.cs: The length of the CustomColors array is always
512           16. It doesn't matter if we use a smaller array or null to update
513           or change the custom colors property.
514         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
515           for RootFolder if we get a undefined value.
516
517 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
518
519         * StatusBarPanel.cs: 
520         - Width is set to MinWidth if Width is smaller than
521         MinWidth. Fixes #79842.
522         - MinWidth now always overrides Width (MSDN says MinWidth
523         is set to Width when AutoSize = None, but they do not 
524         behave like that).
525         - Style has now the the correct default value.
526         
527 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
528  
529         * TrackBar.cs: 
530         - The control is completely invalidated on 
531         Got/LostFocus to draw the focus rectangle correctly.
532         - When AutoSize then height is always 45 (width for 
533         vertical controls).
534         
535         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
536         on the mouse when moved and it doesn't move when grabbed
537         until the mouse moves as well. Also fixed some wrong 
538         calculations when clicking on the thumb (control thought
539         click was outside of thumb and didn't grab it).
540         Fixes some of the issues in #79718.
541
542 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
543
544         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
545
546 2006-11-08  Chris Toshok  <toshok@ximian.com>
547
548         * PropertyGridView.cs: only call ToggleValue if the item is not
549         readonly.
550
551 2006-11-08  Jackson Harper  <jackson@ximian.com>
552
553         * TextBoxBase.cs: The RichTextBox and textbox have very different
554         word selection methods.  Implement the textbox's simple word
555         selection here, and let the RichTextBox override and provide it's
556         own.
557         - Don't do extra selection on mouseup
558         * RichTextBox.cs: Use the documents word selection algorithm, I
559         think ideally, this function will be pulled into the
560         RichTextBox.cs code someday.
561
562 2006-11-08  Chris Toshok  <toshok@ximian.com>
563
564         * RootGridEntry.cs: new class to represent GridItemType.Root.
565
566         * CategoryGridEntry.cs: reformat, and add boilerplate.
567         
568         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
569         returns the UI parent anyway, and we need special handling to
570         implement the GetTarget method in the face of it.  Also, implement
571         Select().
572
573         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
574         a root grid item, and use that instead of PropertyGrid.grid_items.
575         Also, make use of TypeConverters (and add limitted support for
576         ICustomTypeDescriptors) when initially populating the grid.
577         Arrays now show up more or less properly.
578
579 2006-11-08  Chris Toshok  <toshok@ximian.com>
580
581         * Application.cs: set the modal dialog to non modal after we close
582         it.  Fixes bug #79866.
583
584 2006-11-08  Jackson Harper  <jackson@ximian.com>
585
586         * TextControl.cs: When combining lines carry over the line end
587         style from the end line.
588         - Invalidate the selected area when setting it, if it is visible.
589         * TextBoxBase.cs: Only rich text box can do full line selects.
590         - Make sure to set the cursor position when there is a click,
591         otherwise two clicks in separate areas could cause a large chunk
592         to be selected.
593
594 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
595
596         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
597         Fixes #79863.
598
599 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
600
601         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
602         time. Remove tooltips when ToolButton click events.  Fixes #79856.
603
604 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
605
606         * MenuAPI.cs: Ignore right click for menu actions and fixes
607         menu border when clicked.  Fixes #79846.
608
609 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
610
611         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
612         MouseState after create wParam for message, this fixes mouse button 
613         equal none in mouse up events.
614         
615 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
616
617         * Control.cs : Focus() now calls Select to set the Container's
618         Active Control and to give it focus. To avoid infinite recursion
619         (because ActiveControl also calls Focus at one point), a check 
620         is made in Focus with the help of a new internal variable
621         is_focusing.
622
623 2006-11-07  Mike Kestner  <mkestner@novell.com>
624
625         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
626         if there's a selection.  Fixes #79849.
627
628 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
629
630         * PropertyGrid.cs: Avoid fixed height of help description label.
631         Fixes part of bug #79829.
632
633 2006-11-07  Chris Toshok  <toshok@ximian.com>
634
635         * XplatUIX11.cs: fix #79790 again, by using the
636         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
637
638 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
639
640         * ToolBar.cs: Fix left click checking.
641
642 2006-11-07  Chris Toshok  <toshok@ximian.com>
643
644         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
645
646 2006-11-07  Chris Toshok  <toshok@ximian.com>
647
648         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
649         PropertyManager unit tests.
650
651         * PropertyManager.cs: make property_name internal.
652
653 2006-11-07  Chris Toshok  <toshok@ximian.com>
654
655         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
656         pass a unit test.  Also, don't set image_index to anything in
657         response to setting the ImageList property.
658
659 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
660
661         * ToolBar.cs: Ignore click events when mouse button is not a
662         left button, only accepts other button for dropdown menus.  
663         Fixes #79854.
664
665 2006-11-07  Chris Toshok  <toshok@ximian.com>
666
667         * DataGrid.cs: make the back and parent row buttons a little less
668         ugly.
669
670 2006-11-07  Jackson Harper  <jackson@ximian.com>
671
672         * TextBoxBase.cs: When converting to Text don't put line breaks in
673         for soft line breaks.
674         * TextControl.cs: There is an initial "fake" line in the document,
675         this is now a soft break line, so that an extra line feed doesn't
676         get added to the end of documents.
677
678 2006-11-07  Chris Toshok  <toshok@ximian.com>
679
680         [ fix bug #79778 ]
681         
682         * CurrencyManager.cs: if the list is readonly, don't bother
683         checking if IBindingList.AllowNew is true.
684
685         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
686         for non-DataRowView datasources..  or rather, make it not crash.
687         (DataGridPaintRelationRow): make sure we limit the row painting to
688         the area not covered by the row header, and make our cell width at
689         least large enough to cover the relation area.  This allows grids
690         that have relations but no rows to render correctly.
691         (DataGridPaintRowContents): same type of changes here.
692         (SetDataSource): move back to always calling
693         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
694         navigating back through relations.
695         (HitTest): handle the case where we have no cells but have
696         relations.  Right now we generate a hit in cell 0 of whatever the
697         row is, not sure if this is strictly correct, but it works for our
698         purposes.
699         
700         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
701         bother doing anything.
702
703 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
704
705         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
706         early version of StatusStrip.  Not responsible for eaten
707         application or firstborn children.
708
709 2006-11-06  Chris Toshok  <toshok@ximian.com>
710
711         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
712         call GetTabRect with a -1 index.  Fixes #79847.
713
714 2006-11-06  Jackson Harper  <jackson@ximian.com>
715
716         * TreeNodeCollection.cs: Update scrollbars after clearing.
717
718 2006-11-06  Chris Toshok  <toshok@ximian.com>
719
720         * NumericUpDown.cs: fix the ToString method for some unit test
721         love.
722
723 2006-11-06  Chris Toshok  <toshok@ximian.com>
724
725         * PropertyGrid.cs:
726         - set the initial SelectedGridItem if we can.
727
728         - Exclude non-mergable properties only if we're merging > 1
729         object.  Merging 1 object isn't really merging, obviously.
730
731         - Handle PropertySort.NoSort just like Alphabetical, which is
732         wrong of course, but at least gets things on the screen.
733         
734         * PropertyGridView.cs:
735         - Add method "FindFirstItem" which finds the first property grid
736         item, so we can select it by default.
737
738         - make use of GridEntry.CanResetValue.
739
740         - Don't call RedrawBelowItemOnExpansion here anymore, the
741         individual GridEntry's will do that.
742
743         - Remove the ITypeDescriptorContextImpl internal class.
744         
745         * GridEntry.cs:
746         - this class needs to implement ITypeDescriptorContext, as it's
747         what MS's PropertyDescriptorGridEntry does, which means we can
748         remove the ITypeDescriptorContextImpl internal class from
749         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
750
751         - keep a reference to our PropertyGridView, and move the call to
752         RedrawBelowItemOnExpansion here from PGV.  This means
753         programmaticly setting Expanded actually does something visible.
754
755         - add a CanResetValue() function which takes into account our
756         possibly multiple "selected_objects" in the merged case.  Shifting
757         PropertyGridView to use this method fixes another unreported
758         crasher found running the test for #79829.
759
760         - when Top or Bounds is updated, make sure the PropertyGridTextBox
761         is updated to reflect this.
762
763         * CategoryGridEntry.cs: the ctor takes the PGV now.
764         
765 2006-11-06  Jackson Harper  <jackson@ximian.com>
766
767         * TextControl.cs: These are 1 based.
768         * TextBoxBase.cs: When setting the selected text, don't change the
769         selected text tags, this is done by ReplaceText, just position the
770         cursor at the end of the new text.
771
772 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
773
774         * ListView.cs: Allow label edit only when, when LabelEdit is
775           set to true.
776
777 2006-11-06  Jackson Harper  <jackson@ximian.com>
778
779         * TextControl.cs: If a suitable wrapping position isn't found,
780         just wrap right in the middle of a word.
781
782 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
783
784         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
785           bug #79820.
786
787 2006-11-06  Jackson Harper  <jackson@ximian.com>
788
789         * TreeView.cs: Can't use the VisibleCount property when setting
790         scrollbar heights, because this doesn't take into account whether
791         or not the horz scrollbar just came visible.
792
793 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
794
795         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
796         activated.  Fixes #79369, #79832.
797
798 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
799
800         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
801           had to remove support for links that point to a directory. FileInfo
802           returns no usefull information (means, the directory they point to)
803           for such links. Replaced some empty string ("") with String.Empty.
804
805 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
806
807         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
808         NullReferenceException when attempting to remove node that is not in
809         collection. Throw NullReferenceException when null is passed to 
810         Remove. Allow first element of the collection to be removed. Fixes
811         bug #79831.  In GetEnumerator ().Current return null if positioned 
812         before the first element of the collection. In GetEnumerator ().Reset,
813         position before first element of the collection.
814
815 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
816
817         * PropertyGrid.cs: To match MS, remove default title and description
818         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
819         buttons.
820
821 2006-11-04  Chris Toshok  <toshok@ximian.com>
822
823         * Theme.cs: add a Clamp method, just for kicks.
824
825         * ThemeWin32Classic.cs: clamp all color components to [0..255].
826
827 2006-11-04  Chris Toshok  <toshok@ximian.com>
828
829         * Form.cs: if the form isn't visible, Close() does nothing.
830
831 2006-11-03  Chris Toshok  <toshok@ximian.com>
832
833         * Form.cs (Close): if the form is modal, don't Dispose of it, only
834         Hide it.
835         (WndProc): don't Dispose after handling the WM_CLOSE message.
836
837         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
838         them as such, instead of using casts from Control to Form.  Also,
839         don't Dispose of the modal dialog when we fall out of the loop -
840         Close() it instead.
841
842         fixes bug #79813.
843
844 2006-11-03  Chris Toshok  <toshok@ximian.com>
845
846         * Control.cs (Dispose): only go through the dispose thing if we're
847         @disposing, and we haven't already been disposed.  Fixes bug
848         #79814.
849
850         * Form.cs: no reason to call "base.Dispose()" here instead of
851         "Dispose()".
852
853 2006-11-03  Mike Kestner  <mkestner@novell.com>
854
855         * ComboBox.cs : use ToString instead of casts in AddItem for
856         sorting functionality.  Fixes #79812.
857
858 2006-11-03  Chris Toshok  <toshok@ximian.com>
859
860         * Application.cs: pave the way for actually using the thread
861         exception dialog.  it's ifdefed out at the moment.
862
863 2006-11-03  Chris Toshok  <toshok@ximian.com>
864
865         * ThreadExceptionDialog.cs: until we get a better layout, actually
866         hide the details textbox and label when we shouldn't see them.
867
868 2006-11-03  Jackson Harper  <jackson@ximian.com>
869
870         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
871         multiline textboxes anymore.  This method also determines the
872         width/height of a textboxes canvas area.
873         - Sorta a revert of the last patch.  For multiline just position
874         the controls, then bail.  This way the scrollbar width won't be
875         altered.
876
877 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
878
879         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
880         it dont need.  Fixes #79537.
881
882 2006-11-02  Jackson Harper  <jackson@ximian.com>
883
884         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
885         send the status after firing the DndOver event.
886
887 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
888
889         * TrackBar.cs: Now orientation only switches height / width if
890         the control's handle is created (Win32 does it like this). Also 
891         fixed a typo in ToString() for a test to pass, changed the 
892         exception thrown in set_LargeChange and set_SmallChange to 
893         match Win32 behaviour, and added TrackBar tests to the unit 
894         tests.
895
896 2006-11-02  Chris Toshok  <toshok@ximian.com>
897
898         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
899         not _NET_WM_STATE_NO_TASKBAR.
900
901 2006-11-02  Jackson Harper  <jackson@ximian.com>
902
903         * TextControl.cs: Increment count by one, since in the update view
904         count - 1 is used.
905
906 2006-11-02  Jackson Harper  <jackson@ximian.com>
907
908         * TextBoxBase.cs: Use client rectangle not bounds for checking if
909         the mouse is in the client rectangle (duh).
910
911 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
912         
913         * TrackBar.cs: Fixed trackbar jumping around when clicking
914         on it - the trackbar was not detecting correctly at which
915         side of the thumb the click was done. (fixes #79718)
916
917 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
918
919         * ListBox.cs: scroll visible area when change SelectedIndex to
920         a non visible area.  Fixes #79481.
921
922 2006-11-01  Jackson Harper  <jackson@ximian.com>
923
924         * TextControl.cs: When replacing the selection move the selection
925         start/end/anchor to the end of the new text.
926
927 2006-11-01  Jackson Harper  <jackson@ximian.com>
928
929         * XplatUIWin32.cs: When setting the parent change the controls
930         visibility to it's visibility flag, not to it's old parents
931         visibility (.Visible walks the parent chain).
932
933 2006-11-01  Chris Toshok  <toshok@ximian.com>
934
935         * XplatUIX11.cs: revert the #79790 fix, as the simple.
936         XSetTransientForHint fix breaks paint .net's tool windows.  more
937         work needed for that one.
938
939 2006-11-01  Chris Toshok  <toshok@ximian.com>
940
941         * ScrollBar.cs: throw ArgumentException instead of Exception in
942         LargeChange/SmallChange setters.  fixes unit tests.
943
944 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
945
946         * ContainerControl.cs: reverted rev.67183 (which was itself
947         a reversion of rev.66853... eh).
948         
949         * Control.cs: Fixes Reflector hang by changing Focus() call
950         to what it was before rev.66643 (calling Select() here sets 
951         ActiveControl, which in some situations calls back Focus and 
952         eventually does a stack overflow). Temp fix.    
953         Changes to GetNextControl() to not look for children to select when
954         parent cannot be selectable (so it looks for siblings instead)  
955         
956 2006-10-31  Mike Kestner  <mkestner@novell.com>
957
958         * CheckedListBox.cs : off by one error in returned index from
959         ObjectCollection.Add.  Fixes #79758.
960
961 2006-10-31  Chris Toshok  <toshok@ximian.com>
962
963         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
964         calls for the textbox/spinner, to keep from recursing to the point
965         where we crash.  Fixes #79760.
966
967 2006-10-31  Chris Toshok  <toshok@ximian.com>
968
969         * ListControl.cs (set_SelectedValue): don't throw exceptions on
970         null/"" value, just return.  matches ms's behavior and fixes some
971         failing tests.
972
973 2006-10-31  Chris Toshok  <toshok@ximian.com>
974
975         * Control.cs (set_Capture): make a logic a little easier to
976         follow.
977
978         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
979         if it's being destroyed.  A necessary fix surely, but a bandaid
980         also, to fix the stuck capture problem in bug #78413.
981
982 2006-10-31  Chris Toshok  <toshok@ximian.com>
983
984         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
985         convention of clearing hwnd.ClientRect when we set the
986         width/height (so it'll be recalculated by Hwnd).
987
988 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
989
990         * ContainerControl.cs: reversed Contains check from
991         ActiveControl due to hanging problems. This fix
992         partly regresses #79667 (button does not have
993         initial focus), so this might be a symptom for 
994         a larger parenting problem (set_ActiveControl
995         is being called but the child control does
996         not have the parent set yet?)   
997         
998 2006-10-31  Mike Kestner  <mkestner@novell.com>
999
1000         * MenuAPI.cs : fix keynav when menu is click activated.
1001
1002 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
1003
1004         * ToolStrip*: Version 0.2.
1005
1006         * MenuStrip.cs: Version 0.1.
1007
1008         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
1009
1010 2006-10-30  Chris Toshok  <toshok@ximian.com>
1011
1012         [ fixes the oversized notify icon issue in bug #79745 ]
1013         
1014         * NotifyIcon.cs: scale the icon down to the size we're given by
1015         the XplatUI layer (this would be faster if we did it once instead
1016         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
1017         since it's never invoked.
1018
1019         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
1020         pixels high by default, so let's hardcode our systray icon to that
1021         size.  The SYSTEM_TRAY protocol should really have a way for
1022         client apps to query for the correct icon size.. but oh well.  A
1023         couple of patches to deal with the screwy client_window ==
1024         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
1025         instance, and also make sure we don't XSelectInput twice).
1026
1027 2006-10-30  Chris Toshok  <toshok@ximian.com>
1028
1029         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
1030         recreating forms.  Control recreation is the bane of my existence.
1031         Fix it in a way that keeps everyone happy.
1032
1033 2006-10-30  Chris Toshok  <toshok@ximian.com>
1034
1035         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
1036         just non-CHILD ones.  otherwise sometimes scrollbars end up with
1037         client_windows not being resized to the proper size (ReportBuilder
1038         shows this extremely well).
1039
1040 2006-10-30  Chris Toshok  <toshok@ximian.com>
1041
1042         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
1043         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
1044         showing up in the gnome taskbar.  Fixes bug #79790.
1045
1046 2006-10-30  Chris Toshok  <toshok@ximian.com>
1047
1048         * ApplicationContext.cs: guard against a NRE.
1049
1050         * Application.cs: null out the old MainForm for the context, so we
1051         don't try to use it again once it's disposed.  Fixes bug #79783.
1052
1053 2006-10-30  Chris Toshok  <toshok@ximian.com>
1054
1055         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
1056         BindingContext, set the data source directly, otherwise do the
1057         lazy approach - the actual ListManager will be created when we get
1058         a BindingContext. Fixes bug #79700.
1059
1060 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1061
1062         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
1063           XplatUIX11.cs: Remove old 2 parameter SetVisible.
1064
1065         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
1066
1067 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1068
1069         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
1070         of SetVisible that allows a window to be shown, but not activated.
1071         This is needed on Windows for MenuStrip, and can probably be used
1072         with MainMenu and ComboBox to fix the focus stealing issues on
1073         Windows.
1074
1075         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
1076
1077 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
1078
1079         * PictureBox.cs: Fix the output of the ToString method.
1080
1081 2006-10-29  Chris Toshok  <toshok@ximian.com>
1082
1083         * Control.cs (get_TopLevelControl): fix bug #79781.
1084
1085 2006-10-29  Chris Toshok  <toshok@ximian.com>
1086
1087         * ListControl.cs (set_DataSource): throw Exception here, not
1088         ArgumentException, to match MS behavior.
1089
1090 2006-10-29  Chris Toshok  <toshok@ximian.com>
1091
1092         * Form.cs: remove the try-catch's around calls to GetWindowState.
1093         We can just check the return value.
1094
1095         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
1096         Instead return -1.
1097
1098         * XplatUI.cs: Add note about additional return value for
1099         GetWindowState.
1100
1101 2006-10-29  Chris Toshok  <toshok@ximian.com>
1102
1103         * Control.cs (CreateHandle): when we create our handle, we also
1104         create the handles of our child controls.  Fixes one of the
1105         Control unit tests (CH11).
1106
1107 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1108
1109         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
1110
1111 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1112
1113         * ThemeClearlooks.cs: A little speedup.
1114
1115 2006-10-27  Chris Toshok  <toshok@ximian.com>
1116
1117         * Control.cs: implement Control.FromChildHandle in a way that
1118         matches the docs (and fixes the failed test.)
1119
1120 2006-10-27  Chris Toshok  <toshok@ximian.com>
1121
1122         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
1123         comments).
1124
1125         * DataGrid.cs: implement ResetForeColor such that the tests
1126         succeed.
1127         
1128 2006-10-27  Chris Toshok  <toshok@ximian.com>
1129
1130         * ToolBarButton.cs: setting text/tooltiptext to null results in it
1131         being set to "".  Fixes bug #79759.
1132
1133 2006-10-27  Jackson Harper  <jackson@ximian.com>
1134
1135         * TextControl.cs: We need to clear the entire selection area when
1136         setting the start, otherwise multiline selections are still
1137         visible.
1138
1139 2006-10-26  Chris Toshok  <toshok@ximian.com>
1140
1141         * PropertyGridView.cs: 
1142
1143         - ifdef all the code specific to the double
1144         buffer case, and provide some alternatives in the non-doublebuffer
1145         code, which makes heavy use of XplatUI.ScrollWindow to move things
1146         around without having to invalidate (and cause flicker).  There
1147         are still some drawing problems in the non-doublebuffered case, so
1148         DOUBLEBUFFER is defined by default.
1149
1150         - Fix the way dropdowns are handled.  now we explicitly watch for
1151         the events which might cause the dropdown to close, and break out
1152         of the nested event loop there.  This gets rid of all Capture
1153         code, at the expense of the Msg special casing.  Seems to work,
1154         though, and fixes bug #79743.
1155
1156 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
1157         * Control.cs: SetIsRecreating now recreates implicitly added
1158         child controls as well. Finally fixes #79629. The flag passed to 
1159         SetIsRecreating has also been removed since it wasn't used.
1160         
1161 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1162
1163         * PageSetupDialog.cs: Clean some code, fix some bits, 
1164         add some checks, and add a printer sub-dialog.
1165
1166 2006-10-26  Chris Toshok  <toshok@ximian.com>
1167
1168         * PropertyGrid.cs: make set_SelectedObject call
1169         set_SelectedObjects, and move the duplicate logic to the
1170         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
1171
1172         * PropertyGridView.cs: hide the textbox when we get a
1173         SelectedObjectsChanged event.
1174
1175         Fixes bug #79748.
1176
1177 2006-10-26  Chris Toshok  <toshok@ximian.com>
1178
1179         * PropertyGridView.cs: deal with the type converter not supporting
1180         GetStandardValues() or GetStandardValues() returning null, which
1181         is does in the default case.  Fixes #79742.
1182
1183 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1184
1185         * CheckedListBox.cs: nunit no longer crashes when selecting 
1186         Project/Edit menu option
1187         
1188 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1189
1190         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
1191         is no menu selected. fixes #79739
1192
1193 2006-10-25  Chris Toshok  <toshok@ximian.com>
1194
1195         * PropertyGridView.cs: factor out the splitter invalidation code
1196         into the SplitterPercent setter, and for kicks implement the
1197         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
1198         amount in either direction.
1199
1200 2006-10-25  Chris Toshok  <toshok@ximian.com>
1201
1202         * PropertyGridView.cs: do some cleanup of the brush used to draw
1203         text - read only fields should be grayed out.  not sure how to do
1204         this with the textbox, though.  but the textbox's should also be
1205         readonly now at least.  Also, hide/show the textbox when resizing
1206         the control.
1207         
1208         * CursorConverter.cs: use System.Reflection when getting the
1209         properties of Cursors, as TypeDescriptor.GetProperties isn't
1210         returning static properties.
1211
1212 2006-10-25  Chris Toshok  <toshok@ximian.com>
1213
1214         * PropertyGridView.cs: factor out the up/down handling, and reuse
1215         it for page up/down.  also add End/Home support.
1216
1217 2006-10-25  Chris Toshok  <toshok@ximian.com>
1218
1219         * PropertyGridView.cs:
1220
1221         - ensure the selected grid item is visible in the scrolled area,
1222         fixes bug #79572.
1223
1224         - fix Keys.Down handling when you're on the last item in the
1225         propertygrid.
1226
1227 2006-10-25  Mike Kestner  <mkestner@novell.com>
1228
1229         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
1230         clicks too.  Fixes #79725.
1231
1232 2006-10-24  Chris Toshok  <toshok@ximian.com>
1233
1234         * PropertyGrid.cs: use property.Converter instead of
1235         TypeDescriptor.GetConverter(property.PropertyType), so we catch
1236         TypeConverters declared on the property as well as on the
1237         PropertyType.  Fixes bug #79678.
1238
1239 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
1240
1241         * MimeIcon.cs, Mime.cs:
1242           Fallback to the default platform handler if no shared mime info
1243           stuff exists (fixes #79693).
1244
1245 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1246         * ContainerControl.cs: Incorrect contains check in ActiveControl 
1247         from previous fix (duh).
1248
1249 2006-10-20  Chris Toshok  <toshok@ximian.com>
1250
1251         * PropertyGridView.cs: the dropdown should be MIN(number of items
1252         in list, 15).  Fixes #79551.
1253
1254 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1255         Fixes #79384, #79394, #79652, #79667
1256         * Application.cs: 
1257         
1258         - Modal windows are now destroyed in the proper order for windows
1259         
1260         * ContainerControl.cs:
1261         
1262         - ActiveControl setter has more conditions on when to return:
1263                 - if we're reselecting the active control, but it actually
1264                 didn't have focus (window hidden or some such), it runs
1265                 - if the active control being selected doesn't actually 
1266                 exist in the container, it returns
1267         
1268         * Form.cs
1269         
1270         - The ShowDialog now gets the current form as the owner when
1271         invoking without parameters, and correctly activates the owner 
1272         when returning
1273         
1274         * MessageBox.cs
1275         
1276         - MessageBox now catches the Escape key to exit
1277
1278 2006-10-20  Chris Toshok  <toshok@ximian.com>
1279
1280         * PropertyGridView.cs: fix a number of issues (bug #78565, and
1281         most of bug #79676):
1282
1283         - you can navigate around the property grid with the arrow keys.
1284
1285         - the dropdown is sized properly when the pg has a vertical
1286         scrollbar.
1287
1288         - fix the indentation for subentries, and properly select the
1289         entire label rect.
1290
1291         - fix the gray bar's drawing (only draw it to the last element,
1292         not for the height of the control.  Also make sure we draw that
1293         last horizontal grid line.
1294
1295         - use the same mechanism the datagrid uses wrt the editing textbox
1296         when scrolling/resizing/etc.  Namely, we hide it first, do the
1297         operation, then show it again (if it's still visible).
1298         
1299         - aggressively remove a lot of unnecessary refreshes (and also
1300         calls to Invalidate(). call more limited variants, and only redraw
1301         what we need.)
1302         
1303         * PropertyGrid.cs:
1304
1305         - when we're populating the merged collection, fill in the UI
1306         parent with either the passed in item, or the category item we
1307         create.
1308
1309         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
1310
1311         * GridItem.cs: drop some fully qualified names.
1312         
1313         * GridEntry.cs: add a "UIParent", which is basically the parent
1314         treenode.
1315
1316         * GridItemCollection.cs: add an IndexOf method.
1317
1318 2006-10-20  Mike Kestner  <mkestner@novell.com>
1319
1320         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
1321         a working win32 NC invalidation mechanism, we can't invalidate
1322         menus.  [Fixes #79705]
1323
1324 2006-10-20  Mike Kestner  <mkestner@novell.com>
1325
1326         * ListBox.cs : don't update the VScrollbar if the list is empty,
1327         just hide it.  [Fixes #79692]
1328
1329 2006-10-20  Jackson Harper  <jackson@ximian.com>
1330
1331         * RichTextBox.cs: Handle some special chars better, and don't skip
1332         the entire group when we encounter a special char that we don't
1333         handle correctly.
1334
1335 2006-10-18  Chris Toshok  <toshok@ximian.com>
1336
1337         * PropertyGridView.cs: address a number of issues from bug #79676,
1338         mostly of the cosmetic variety.
1339
1340         - The highlight rectangle for indented items not extends all the
1341         way to the left.
1342
1343         - Indented items aren't indented so much.
1344
1345         - the dropdown is properly sized width-wise if the pg has a
1346         vertical scrollbar.
1347
1348 2006-10-18  Chris Toshok  <toshok@ximian.com>
1349
1350         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
1351         systray stuff is rather convoluted to begin with.
1352
1353         systray icons are a single window for some reason (that I haven't
1354         figured out yet), and for them, client_window == whole_window.
1355         Given the way the tests are structured elsewhere to determine
1356         which paints are pending (client vs. nc), that situation will
1357         always yield PAINT, not NCPAINT.  So, if we have a pending
1358         nc_expose and no pending expose, remove the hwnd from the paint
1359         queue, and also set nc_expose_pending to false, to keep us from
1360         blocking further expose's adding the hwnd to the paint queue.
1361
1362         phew.  like i said, a rather convoluted change.  Fixes the
1363         notifyicon repaint issues in bug #79645.
1364
1365 2006-10-18  Chris Toshok  <toshok@ximian.com>
1366
1367         * Form.cs: when getting the backcolor of the form, don't get
1368         base.BackColor, as this allows parents to influence the background
1369         color.  This breaks mdi forms.  Instead, if the background_color
1370         is empty, return the default.
1371
1372 2006-10-18  Chris Toshok  <toshok@ximian.com>
1373
1374         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
1375         to being private instead of internal static.
1376
1377         * Control.cs: remove all the stupid ParentWaitingOnRecreation
1378         crap, it wasn't working for more deeply nested controls anyway,
1379         and we already have the is_recreating flag - use that instead.
1380         Before calling DestroyHandle in RecreateHandle, recurse through
1381         the control tree setting it to true.  this returns the recreate
1382         code to much of its original simplicity, while now guaranteeing we
1383         actually recreate everything we're supposed to.  This change gets
1384         fyireporting actually showing mdi children.
1385
1386 2006-10-17  Chris Toshok  <toshok@ximian.com>
1387
1388         * Form.cs: remove some debug spew, and collapse some duplicate
1389         code at the end of SetClientSizeCore.
1390
1391         * XplatUIX11.cs: 
1392         - add some more debug spew here too wrt Destroy handling.
1393         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
1394         in Control's handling of WM_DESTROY.
1395         - Remove the handling of zombie window DestroyNotifies from the
1396         event loop - we don't need it.  Now the only DestroyNotifies we
1397         actually handle are ones generated by X.
1398         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
1399         match gtk's (functioning) handling of this. This keep metacity
1400         from leaving droppings in the form of wm borders with no window
1401         contents all over the place.
1402
1403         * Control.cs:
1404         - add a bunch of debug spew wrt control recreation.
1405         - fix a bug where we weren't tracking Visible properly on
1406         recreated hwnds.
1407         - fixed the WM_PAINT double buffer handling to support re-entrant
1408         calls (yes, i know it's gross, but it's happening to us).
1409
1410 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1411         * ThemeWin32Classic.cs: changed drawing of selected days
1412         to make them look better.
1413
1414 2006-10-16  Chris Toshok  <toshok@ximian.com>
1415
1416         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
1417         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
1418
1419         * XplatUIX11.cs: move away from using hwnd.client_dc and
1420         hwnd.non_client_dc and on to a stack of dc's (and in window's
1421         case, PAINTSTRUCT's), so we can deal with nested Paint calls
1422         without puking or not disposing of Graphics objects.
1423
1424         * XplatUIOSX.cs: same.
1425
1426         * XplatUIWin32.cs: same.
1427
1428 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1429
1430         * FileDialog.cs: Don't call on_directory_changed inside
1431           OnSelectedIndexChanged (it changes the SelectedIndex too).
1432           Instead move it to OnSelectionChangeCommitted.
1433
1434 2006-10-13  Chris Toshok  <toshok@ximian.com>
1435
1436         * XplatUIX11.cs: more Destroy work.  the current code does the
1437         following things, in order:
1438
1439         1. Enumerates all handles of all controls at or below the one
1440         being destroyed, in pre-order.  As it is doing this, it marks the
1441         handles as zombie and clears all references to them.
1442         
1443         2. calls XDestroyWindow on the window passed in.
1444
1445         3. SendMessage's WM_DESTROY to all he handles in the accumulated
1446         list.
1447
1448 2006-10-13  Chris Toshok  <toshok@ximian.com>
1449
1450         * XplatUIX11.cs: set hwnd.zombie to true before calling
1451         SendMessage (WM_DESTROY).  this keeps us from marking the new
1452         window a zombie, and also keeps us from calling sendmessage at
1453         all.
1454
1455 2006-10-13  Jackson Harper  <jackson@ximian.com>
1456
1457         * TextControl.cs: Do not show the caret and selection at the same
1458         time.  Reduces ugliness by 35%.
1459
1460 2006-10-13  Chris Toshok  <toshok@ximian.com>
1461
1462         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
1463         zombie after we do the recursive call, so we actually do call
1464         SendMessage on the children controls.
1465         (GetMessage): if we find a pending paint event for a zombie hwnd,
1466         remove the hwnd from the paint queue, or else it will always be
1467         there (and we'll effectively loop infinitely)
1468
1469 2006-10-13  Mike Kestner  <mkestner@novell.com>
1470
1471         * MenuItem.cs : add Selected format under keynav too.
1472         Fixes #79528.
1473
1474 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
1475
1476         * PropertyGrid.cs: Fixed some NRE's and small difference between our
1477         implementation and that of MS.
1478
1479 2006-10-13  Chris Toshok  <toshok@ximian.com>
1480
1481         * Control.cs (OnInvalidated) only futz with the invalid_region if
1482         the control is double buffered.  this fixes the apparent hang in
1483         the ListView unit tests.  Someone needs to make the
1484         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
1485
1486 2006-10-13  Chris Toshok  <toshok@ximian.com>
1487
1488         * PropertyGridView.cs:
1489
1490         - do a little refactoring so that only one place calls
1491         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
1492         else call that.  Also make it Refresh, since there are redraw bugs
1493         otherwise (we should take a look at that...)
1494
1495         - do a little more refactoring work to share the body of code
1496         involved with the drop down.  it was duplicated in the code
1497         dealing with the listbox handling and in the code dealing with the
1498         UITypeEditors.
1499
1500         - add a Capture to the dropdown form's control once it's
1501         displayed, and add a MouseDown handler that checks to make sure
1502         the position is inside the control.  If it's not, close the
1503         dropdown.  This fixes #78190.
1504
1505         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
1506         if the value is different than the initial value.
1507         
1508 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
1509
1510         * Control.cs: see #78650
1511         - Fixed GetNextControl for several cases:
1512                 - Changed FindFlatForward to return 
1513                 correct sibling control when more than one
1514                 control has same TabIndex as the currently 
1515                 focused one.
1516                 - Changed FindFlatBackward to loop children
1517                 from last to first and apply same logic as in
1518                 FindFlatForward
1519                 - Changed FindControlForward to search for
1520                 children when control is not a container
1521                 but has children, or search for siblings if
1522                 control is a container...
1523                 - Changed FindControlBackward   to continue
1524                 searching for child controls when hitting 
1525                 Panel-like parents
1526                 
1527         - Fixed Focus method to update ActiveControl
1528         (FocusTest.FocusSetsActive failure)
1529         
1530         * TabControl.cs:
1531         - Focus rectangle now refreshes when gaining
1532         or losing focus
1533         - Removed grab for Tab key on IsInputKey that 
1534         was keeping tab navigation from working (#78650)
1535
1536 2006-10-13  Chris Toshok  <toshok@ximian.com>
1537
1538         * PropertyGridView.cs:
1539         - Rewrite SetPropertyValue to loop over SelectedGridItem's
1540         SelectedObjects.
1541
1542         - Deal with GridItem.Value == null a few places.
1543
1544         * PropertyGrid.cs: 
1545         - replace the PopulateGridItemCollection with a pair of methods
1546         which compute the intersection of all the properties in the
1547         SelectedObjects array.  Fixes #79615.
1548
1549         - Throw ArgumentException from set_SelectedObjects if there's a
1550         null in the array.
1551
1552         - Add GetTarget method which can be used to traverse up the
1553         GridItem.Parent chain.  It depends on the assumption that
1554         selected_objects for different GridEntries are always in the same
1555         order (a safe assumption).  Use this method and loop over all the
1556         selected objects in the entry when calling RemoveValueChanged and
1557         AddValueChanged.
1558         
1559         * GridEntry.cs: Make this handle multiple selected objects.
1560         .Value returns null if not all the selected objects share the same
1561         value.
1562
1563 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
1564         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
1565           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
1566           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
1567           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
1568           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
1569         add additional functionality.
1570
1571 2006-10-12  Mike Kestner  <mkestner@novell.com>
1572
1573         * ErrorProvider.cs : new ToolTipWindow ctor sig.
1574         * HelpProvider.cs : new ToolTipWindow ctor sig.
1575         * ToolTip.cs : remove ToolTip param from Window sig since it is
1576         not used.
1577         * ToolBar.cs : add tooltip support.  Fixes #79565.
1578
1579 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1580
1581         * ComboBox.cs: move the events in set_SelectedIndex to 
1582         after the call to HighlightIndex in order to avoid 
1583         possible recursion and subsequent problems with the call
1584         to HighlightIndex and include a range check in 
1585         set_HighlightIndex. Fixes #79588
1586         
1587 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1588
1589         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
1590         to ui thread's settings instead of sunday. 
1591         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
1592
1593 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1594
1595         * DateTimePicker.cs
1596         * MonthCalendar.cs
1597         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
1598         and implement missing functionality (selecting different parts 
1599         of the date and edit them individually with the keyboard).
1600         
1601 2006-10-11  Chris Toshok  <toshok@ximian.com>
1602
1603         * Control.cs (OnInvalidated): fix NRE relating to last change.
1604
1605 2006-10-11  Chris Toshok  <toshok@ximian.com>
1606
1607         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
1608         atoms in _NET_WM_STATE here if the window is maximized.  We need
1609         to do this because we're *replacing* the existing _NET_WM_STATE
1610         property, so those atoms will be lost otherwise, and any further
1611         call to GetWindowState will return Normal for a window which is
1612         actually maximized.  Fixes #79338.
1613
1614 2006-10-11  Jackson Harper  <jackson@ximian.com>
1615
1616         * TextControl.cs: Special case for setting selection end to
1617         selection start, we basically kill the anchor.
1618         - some todo comments.
1619
1620 2006-10-11  Chris Toshok  <toshok@ximian.com>
1621
1622         * Control.cs: switch to using an "invalid_region" to track which
1623         parts of the image buffer need updating.  This is more code than
1624         the simple fix from r66532.  That version just attempted to always
1625         fill the entire buffer on redraw, which turns out to be
1626         inefficient when invalidating small rectangles.  This version
1627         simply adds the invalid rectangle to the invalid region.  When we
1628         get any WM_PAINT message we see if it can be filled using the
1629         image buffer, and if it can't (if the paint event's clip rectangle
1630         is visible in the invalid region) we first fill the image buffer.
1631         So, the image buffer is still a cache, we just fill it lazily.
1632
1633         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
1634         need it any longer.
1635
1636 2006-10-11  Chris Toshok  <toshok@ximian.com>
1637
1638         * XplatUIX11.cs (SetWindowPos): we need to update both position as
1639         well as size after calling XMoveResizeWindow.  This keeps us from
1640         ignoring future SetWindowPos calls.  Fixes the disappearing
1641         DateTimePicker in the ToolBarDockExample from bug #72499.
1642
1643 2006-10-11  Chris Toshok  <toshok@ximian.com>
1644
1645         * TextBoxBase.cs: reorder things a bit when it comes to
1646         resizing-causing-recalculation.  we were recalculating the
1647         document when our position was changed, which shouldn't happen.
1648         We only care about size changes.  Clear up some more redundant
1649         recalculation calls while I'm at it.  This makes the toolbar dock
1650         example snappy when you're just dragging toolbars around (since it
1651         causes a relayout whenever you move one.)
1652
1653 2006-10-11  Chris Toshok  <toshok@ximian.com>
1654
1655         * ToolBarButton.cs (get_Rectangle): this only returns
1656         Rectangle.Empty if Visible == false, or Parent == null.
1657         Parent.Visible doesn't matter.
1658
1659 2006-10-10  Chris Toshok  <toshok@ximian.com>
1660
1661         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
1662         by .net 1.1, so switch to an internal method instead.
1663
1664 2006-10-10  Chris Toshok  <toshok@ximian.com>
1665
1666         * Control.cs (WM_PAINT): when a control is double buffered we draw
1667         initially to the ImageBuffer and then copy from there.  But when a
1668         parent control which has child controls is double buffered, the
1669         initial drawing doesn't encompass the entire ClientRectangle of
1670         the parent control, so we end up with uninitialized bits (this is
1671         easily seen by dragging the top toolbar in
1672         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
1673         manually set the ClipRectangle of the paint_event (only the one we
1674         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
1675         of the nastiness in bug #72499.
1676
1677         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
1678         which we use in Control.cs's WM_PAINT handling.
1679
1680 2006-10-10  Jackson Harper  <jackson@ximian.com>
1681
1682         * TextBoxBase.cs: Finish off the autoscrolling stuff.
1683
1684 2006-10-10  Chris Toshok  <toshok@ximian.com>
1685
1686         * Cursor.cs: Apply a slightly different patch to the one suggested
1687         in #79609.
1688
1689 2006-10-10  Jackson Harper  <jackson@ximian.com>
1690
1691         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
1692         not the parent form.
1693         * TextControl.cs: use difference in old line count vs new count to
1694         calculate how many lines were added, this takes into account soft
1695         line breaks properly.
1696
1697 2006-10-10  Chris Toshok  <toshok@ximian.com>
1698
1699         * LinkLabel.cs: don't call MeasureCharacterRanges against a
1700         rectangle located at 0,0 and the size of the text.  Use
1701         ClientRectangle instead.  This fixes rendering of non-left aligned
1702         link labels.
1703
1704 2006-10-10  Jackson Harper  <jackson@ximian.com>
1705
1706         * TextBoxBase.cs: When we set the selection start position the
1707         caret.
1708         * TextControl.cs: Need to update the caret when we decrement it to
1709         zero.
1710         - Make sure that the selection_visible flag gets reset to false if
1711         the selection isn't visible.  Before this you could get it set to
1712         visible by changing the selection start, then changing the end to
1713         equal the start.
1714
1715 2006-10-09  Jackson Harper  <jackson@ximian.com>
1716
1717         * TreeView.cs: Don't update scrollbars when we aren't visible.
1718         * TreeNodeCollection.cs: Only need to update scrollbars if being
1719         added to an expanded visible node or the root node.
1720
1721 2006-10-09  Chris Toshok  <toshok@ximian.com>
1722
1723         * XplatUIX11.cs (SendMessage): fix NRE.
1724
1725 2006-10-09  Jackson Harper  <jackson@ximian.com>
1726
1727         * TextBoxBase.cs: Implement horizontal autoscrolling.
1728         * TextControl.cs: Add a movement types that allows moving forward
1729         and backwards without wrapping.
1730
1731 2006-10-09  Mike Kestner  <mkestner@novell.com>
1732
1733         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
1734         with focus "expansion" of labels.  Fixes #79532 and then some.
1735         * ThemeWin32Classic.cs : add LineLimit to ListView label format
1736         when wrapping.
1737
1738 2006-10-09  Jackson Harper  <jackson@ximian.com>
1739
1740         * TextBoxBase.cs: Set the default max values to MaxValue since
1741         we use the scrollbar for autoscrolling and the default value is
1742         100.  If we don't do this the caret won't keep up with typing
1743         after about 18 characters.
1744         * TextControl.cs: Make sure the selection is offset by the
1745         viewport x.  This fixes selection when using auto scrolling.
1746
1747 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
1748         
1749         * Form.cs: The active control should be selected after the 
1750         OnLoad so that any child control initialization that affects
1751         the selection is done. Fixes #79406
1752
1753 2006-10-06  Chris Toshok  <toshok@ximian.com>
1754
1755         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
1756         to have no evil effects.
1757
1758         - Stop selecting StructureNotifyMask on non-toplevel windows.
1759
1760           The only way children should be resized is by using the SWF api,
1761           and we already send WM_WINDOWPOSCHANGED messages in those cases.
1762           Toplevel windows can be interacted with via the window manager,
1763           and so we keep the input mask there.
1764
1765           The other event StructureNotifyMask gives us (that we care
1766           about) is DestroyNotify.  The code is already structured such
1767           that it assumes we won't be getting a DestroyNotify event for
1768           the window we pass to XDestroyWindow (which is what
1769           StructureNotifyMask is supposed to guarantee.)  So, that code
1770           shouldn't be affected by this either.
1771
1772         - Stop selecting VisibilityChangeMask altogether.
1773
1774           We weren't doing anything with the resulting events anyway.
1775         
1776         This vastly reduces the number of X requests and events we see
1777         when resizing/laying out a large ui.
1778
1779 2006-10-06  Chris Toshok  <toshok@ximian.com>
1780
1781         * ScrollableControl.cs (DisplayRectangle): we need to take into
1782         account the DockPadding regardless of whether or not auto_scroll
1783         == true.  rework this slightly to this effect, and fix bug #79606,
1784         and part of #72499 (you can now see the drag handles and drag
1785         toolbars around).
1786
1787 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
1788
1789         * ListViewItem.cs: Collections of selected and checked items are now
1790         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
1791         we mark the collection "dirty".
1792         * ListView.cs: Marked collections readonly. Modified UpdateSelection
1793         to only clear SelectedItems when a new item is selected and MultiSelect
1794         is enabled. CheckedItems and SelectedItems now subscribe to Changed
1795         event of ListViewItemCollection, and mark its list dirty whenever
1796         that event is fire. This allows us to return selected/checked items 
1797         in the same order as they are in the Items collection. This matches
1798         the MS behavior.
1799
1800 2006-10-06  Chris Toshok  <toshok@ximian.com>
1801
1802         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
1803         right mouse clicks.  Fixes bug #79593.
1804
1805 2006-10-06  Chris Toshok  <toshok@ximian.com>
1806
1807         * Splitter.cs: doh, fix splitters that don't want to cancel the
1808         movement when you drag them.  Also, impose the limits on the
1809         values we send to the SplitterMovingEvent.  Fixes #79598.
1810
1811 2006-10-06  Jackson Harper  <jackson@ximian.com>
1812
1813         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
1814         since we use this for auto scrolling also.
1815
1816 2006-10-05  Chris Toshok  <toshok@ximian.com>
1817
1818         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
1819         beginning to think that most datagrid column types don't need this
1820         method.  Fixes bug #79392.
1821
1822 2006-10-05  Chris Toshok  <toshok@ximian.com>
1823
1824         * DataGrid.cs: move back to a more lazy scheme for creating the
1825         CurrencyManager, so we aren't updating it every time you set
1826         either DataSource or DataMember.  Also, don't call
1827         RecreateDataGridRows if the currency manager hasn't changed.
1828
1829 2006-10-05  Chris Toshok  <toshok@ximian.com>
1830
1831         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
1832         emitted, SelectedIndex should already be updated.  Fixes bug
1833         #78929.
1834
1835 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
1836
1837         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
1838           ToolStripTextBox.cs: Initial commit.
1839         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
1840
1841 2006-10-05  Jackson Harper  <jackson@ximian.com>
1842
1843         * TabControl.cs: We need to invalidate the tab control area when
1844         new ones are added (duh).
1845
1846 2006-10-03  Chris Toshok  <toshok@ximian.com>
1847
1848         * Form.cs (ProcessDialogKey): if the focused control is in this
1849         form and is a button, call its PerformClick method here.  Fixes
1850         #79534.
1851
1852 2006-10-04  Jackson Harper  <jackson@ximian.com>
1853
1854         * TabPage.cs: Ignore setting of Visible, and add an internal
1855         method for setting the controls visibility.  TabPage's Visible
1856         property is a little strange on MS, this seems to make us
1857         compatible, and fixes cases where people set all the tab pages to
1858         visible.
1859         * TabControl.cs: Use the new internal setting on tab pages
1860         visibility.
1861
1862 2006-10-03  Mike Kestner  <mkestner@novell.com>
1863
1864         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
1865
1866 2006-10-03  Mike Kestner  <mkestner@novell.com>
1867
1868         * ListView.cs : use is_visible instead of Visible to check if 
1869         scrollbars should be placed/sized.  Also some max_wrap_width
1870         love for LargeIcon view.  [Fixes #79533]
1871
1872 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1873
1874         * TextControl.cs :
1875           Make set_TextAlign() do actually update the align. Fixed #78403.
1876
1877 2006-10-03  Chris Toshok  <toshok@ximian.com>
1878
1879         * DataGrid.cs: fix a crash when switching datasources if the
1880         vertical scrollbar is at someplace other than Value = 0.  Also,
1881         reduce the number of recalculation passes we do in SetDataSource
1882         from 2 to 1.
1883
1884 2006-10-03  Jackson Harper  <jackson@ximian.com>
1885
1886         * TextBoxBase.cs: Move the if value the same bail check up, we
1887         don't want to empty the document if it is already empty, this
1888         seems to severly mess up the caret.  TODO: I should probably fix
1889         the empty statement to update teh caret somehow.
1890
1891 2006-10-03  Chris Toshok  <toshok@ximian.com>
1892
1893         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
1894         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
1895         reflection, an internal row type, properties on said type, etc.)
1896         will work with our datagrid.  Fixes #79531.
1897
1898 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1899
1900         * FileDialog.cs: Don't crash if a path is not accessible
1901           (System.UnauthorizedAccessException). Fixes #79569.
1902         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
1903           a ':' too. Return unknown icon for those paths/files.
1904
1905 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
1906
1907         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
1908         GetContainerControl returns null.
1909
1910 2006-10-02  Chris Toshok  <toshok@ximian.com>
1911
1912         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
1913         call to XGetWindowAttributes instead of "handle".  fixes an X
1914         error using notifyicon after the NotifyIconWindow to Form base
1915         class switch.
1916
1917 2006-10-02  Chris Toshok  <toshok@ximian.com>
1918
1919         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
1920         server grab and looping we need to do to get down to the most
1921         deeply nested child window.
1922         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
1923         QueryPointer again after the WarpPointer so we can generate a
1924         proper (fake) MotionNotify event to be enqueued in the destination
1925         window's queue.
1926         (GetCursorPos): call QueryPointer.
1927
1928         Fixes #79556.
1929
1930 2006-10-02  Jackson Harper  <jackson@ximian.com>
1931
1932         * NotifyIcon.cs: Derive the notify icon from a form, so things
1933         like FindForm work on it.
1934         - Swallow the WM_CONTEXTMENU message, since that is generated on
1935         mouse down, and context menu is a mouse up kinda guy.  I believe
1936         the correct fix here is probably to make the notify icon entirely
1937         NC area, but this seems to work fine for anyone not manipulating
1938         WndProc.
1939
1940 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
1941
1942         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
1943           ToolStripItemCollection.cs, ToolStripLabel.cs,
1944           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
1945           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
1946           Initial implementation.
1947         * TextRenderer.cs: Provide padding to MeasureText.
1948
1949 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
1950
1951         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
1952         of ButtonBaseAccessibleObject. Fix bug #79552.
1953
1954 2006-10-02  Jackson Harper  <jackson@ximian.com>
1955
1956         * MdiWindowManager.cs: When maximizing use the containers client
1957         rect, not it's bounds, so nc area is accounted correctly.
1958         - Use the parent form's size for the menu position, since the
1959         client isn't always the full form size.
1960
1961 2006-10-01  Chris Toshok  <toshok@ximian.com>
1962
1963         * ScrollableControl.cs: make sure neither right_edge or
1964         bottom_edge are < 0, since they're used as LargeChange for the
1965         horiz/vert scrollbars respectively.  Fixes #79539.
1966
1967 2006-10-01  Chris Toshok  <toshok@ximian.com>
1968
1969         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
1970         the xplatuix11 code can cause us to destroy/recreate our handle.
1971
1972         * XplatUIX11.cs
1973         (SystrayAdd):
1974         - this code can be invoked many times for the same Hwnd.  Make
1975           sure we only destroy the client window once (the first time this
1976           method is called).  This fixes bug #79544.
1977         - Remove the call to the improperly bound XSync.  why we had two
1978           bindings to this, I will never know, but this call resulted in
1979           events being discarded from the queue(!).
1980         - correct a misunderstanding of _XEMBED_INFO - the second atom is
1981           not our current state but the state we wish to be in.  So, 0 if
1982           we don't want to be mapped.  Change it to 1.
1983         (SystrayRemove): The XEMBED spec makes mention of the fact that
1984         gtk doesn't support the reparent of client windows away from the
1985         embedder.  Looking at gtksocket-x11.c seems to agree with this.
1986         The only avenue we have for removing systray icons is to destroy
1987         them.  We don't want the handle to go away for good, though, so
1988         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
1989         #79545.
1990         
1991 2006-10-01  Chris Toshok  <toshok@ximian.com>
1992
1993         * Form.cs (WndProc): inline the native_enabled variable usage into
1994         the cases in which it's used.  Fixes #79536.
1995
1996 2006-09-29  Mike Kestner  <mkestner@novell.com>
1997
1998         * ListView.cs : toggle the selection state for ctrl clicks in 
1999         multiselect mode. [Fixes #79417]
2000
2001 2006-09-29  Mike Kestner  <mkestner@novell.com>
2002
2003         * ListView.cs : kill CanMultiSelect and refactor the selection
2004         code to support multiselection in the absence of mod keys. Steal
2005         arrow/home/end keys by overriding InternalPreProcessMessage to
2006         restore regressed keynav behavior.
2007         [Fixes #79416]
2008
2009 2006-09-29  Jackson Harper  <jackson@ximian.com>
2010
2011         * MdiClient.cs: Repaint the titlebars when the active window is
2012         changed.
2013
2014 2006-09-29  Chris Toshok  <toshok@ximian.com>
2015
2016         * Application.cs: when entering a runloop with a modal, make sure
2017         the hwnd is enabled.  Fixes #79480.
2018
2019 2006-09-29  Chris Toshok  <toshok@ximian.com>
2020
2021         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
2022         when ListManager.CanAddRows == false, bump us back one.
2023
2024         * DataGridColumnStyle.cs (ParentReadOnly): remove the
2025         listmanager.CanAddRows check.  This makes ArrayLists uneditable
2026         using a datagrid, which is not right.
2027         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
2028         is an IEditable, but call property_descriptor.SetValue regardless.
2029         fixes #79435.
2030
2031 2006-09-29  Chris Toshok  <toshok@ximian.com>
2032
2033         * DataGridBoolColumn.cs: we need to test equality in the face of
2034         possible null values (as is the case with the default NullValue).
2035         This patch keeps us from crashing in that case.
2036
2037 2006-09-29  Jackson Harper  <jackson@ximian.com>
2038
2039         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
2040         here, since it will get called for every node collection in the
2041         tree. This is now done in the treeview once the sorting is
2042         finished.
2043         * TreeView.cs: Recalculate the visible order, and update the
2044         scrollbars after sorting, set the top nope to the root so that the
2045         recalc actually works.
2046
2047 2006-09-29  Chris Toshok  <toshok@ximian.com>
2048
2049         * LinkLabel.cs: more handling of the default link collection in
2050         the face of LinkArea manipulation.  The default link collection
2051         contains 1 element (start=0,length=-1).  If the user sets LinkArea
2052         to anything and the links collection is the default, clear it.
2053         Then only add the link if its nonempty.  Fixes #79518.
2054
2055 2006-09-29  Chris Toshok  <toshok@ximian.com>
2056
2057         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
2058         piece correctly when we hit a '\n'.  Fixes #79517.
2059
2060 2006-09-29  Chris Toshok  <toshok@ximian.com>
2061
2062         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
2063         change the binding of gdk_init_check to take two IntPtr's, and
2064         pass IntPtr.Zero for both of them.  Fixes #79520.
2065
2066 2006-09-29  Mike Kestner  <mkestner@novell.com>
2067
2068         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
2069         [Fixes #78779]
2070
2071 2006-09-28  Jackson Harper  <jackson@ximian.com>
2072
2073         * XplatUIX11.cs: When translating NC messages make sure we go from
2074         whole window to screen, not client window to screen.
2075         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
2076         method doesn't exist
2077         - Skip over controls that aren't forms when arranging.
2078
2079 2006-09-28  Jackson Harper  <jackson@ximian.com>
2080
2081         * XplatUIWin32.cs: Clip the rect to the parent window.
2082         * XplatUIStructs.cs: Add clipping modes struct.
2083         * InternalWindowManager.cs: New private method that factors title
2084         bar heights in when calculating the pos of an NC mouse message.
2085         - Use SendMessage to force a paint when the form's size is changed
2086         instead of painting the decorations immediately.
2087         - Don't let the NC button click messages get to DefWndProc,
2088         because they will attempt to handle windowing themself, and this
2089         messes up z-order (it will put them in front of the scrollbars).
2090         * XplatUIX11.cs: Make sure that we don't reset window managers if
2091         we already have one (ie the window is an MDI window).
2092
2093 2006-09-28  Chris Toshok  <toshok@ximian.com>
2094
2095         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
2096         menu code really needs going over.
2097
2098 2006-09-27  Chris Toshok  <toshok@ximian.com>
2099
2100         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
2101         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
2102         window is maximizable.  So, we need to make sure that even if we
2103         clear the border/wm frame of those functions, they're still
2104         available (basically, we remove the decoration without removing
2105         the function).  Half the fix for #79338.
2106
2107 2006-09-27  Chris Toshok  <toshok@ximian.com>
2108
2109         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
2110         Fixes bug #79515.
2111
2112 2006-09-27  Chris Toshok  <toshok@ximian.com>
2113
2114         * Splitter.cs: reorder things a bit so that we don't actually
2115         draw/move the splitter until after calling OnSplitterMoving.  This
2116         lets users cancel/disallow the movement by explicitly setting
2117         event.SplitX/SplitY.  Fixes #79372.
2118
2119 2006-09-27  Jackson Harper  <jackson@ximian.com>
2120
2121         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
2122         because it is most likely on a window being destroyed, and that
2123         will give us an X11 error.
2124
2125 2006-09-27  Chris Toshok  <toshok@ximian.com>
2126
2127         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
2128         the dropdown button now toggles between showing and hiding the
2129         dropdown.  Also, get rid of dropdown_form_showing and just use
2130         dropdown_form.Visible.  We still don't do a grab, but I'll leave
2131         that part to someone who has handled Capture-fu before.
2132
2133 2006-09-27  Chris Toshok  <toshok@ximian.com>
2134
2135         * DataGrid.cs: return false if alt isn't pressed when '0' is
2136         pressed.  this keeps the '0' key from being swallowed, and fixes
2137         bug #79350.
2138
2139 2006-09-27  Chris Toshok  <toshok@ximian.com>
2140
2141         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
2142         Calling Refresh (in response to a scrollbar event) screws up the
2143         scrollbar painting.  Fixes bug #78923.
2144
2145 2006-09-27  Chris Toshok  <toshok@ximian.com>
2146
2147         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
2148         then insert into hashtable" blocks threadsafe.
2149
2150 2006-09-27  Chris Toshok  <toshok@ximian.com>
2151
2152         * MessageBox.cs (CreateParams): the styles should be |'ed with our
2153         baseclass's, since otherwise the
2154         ControlBox/MinimizeBox/MaximizeBox assignments above have no
2155         effect.  This gets the close button back in messageboxes.
2156
2157 2006-09-27  Chris Toshok  <toshok@ximian.com>
2158
2159         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
2160         flag, not just != 0.  this makes flags that are actually multiple
2161         bits (like WS_CAPTION) work.  fixes bug #79508.
2162
2163 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
2164
2165         * PageSetupDialog.cs: add support for getting and settings the 
2166         paper size, source and orientation.
2167
2168 2006-09-26  Chris Toshok  <toshok@ximian.com>
2169
2170         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
2171         and caption == "", we need to remove the resize handles as well as
2172         the title bar.
2173
2174         * Control.cs (set_Text): turns out that setting Text on a form
2175         should change the WM styles on the window, since if ControlBox ==
2176         false, the only way to get a window border is to have a non-""
2177         Text property.  check winforms/forms/text.cs for an example.  so,
2178         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
2179         update both window styles and title.  This fixes a lot of dialogs
2180         (including the preferences dialog in MonoCalendar.)
2181
2182 2006-09-26  Chris Toshok  <toshok@ximian.com>
2183
2184         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
2185         control isn't a Form), call Win32ShowWindow to hide the window,
2186         but don't update the control Visible property.  When we reparent
2187         back to a parent control, call SetVisible in order for the
2188         window's visibility to be reinstated.
2189
2190         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
2191         the FosterParent.
2192
2193         * Control.cs (ControlCollection.Remove): remove that value.Hide()
2194         call for good, since it breaks MonoCalendar (and other things I'm
2195         sure.) Also, set all_controls to null *after* the owner calls,
2196         which end up regenerating it.
2197         (ChangeParent): allow new_parent to be == null, passing
2198         IntPtr.Zero down to XplatUI.
2199
2200         this fixes #79294 the right way.
2201
2202 2006-09-26  Mike Kestner  <mkestner@novell.com>
2203
2204         * GridEntry.cs : internal SetParent method.
2205         * PropertyGrid.cs : attach to property changed on the proper
2206         target if we have a hierarchical grid with subobjects. Setup
2207         GridItem.Parent for hierarchical items.
2208         * PropertyGridView.cs : Set value on the correct target for
2209         hierarchical grids. [Fixes #78903]
2210
2211 2006-09-26  Chris Toshok  <toshok@ximian.com>
2212
2213         * Control.cs (ChildNeedsRecreating): this should return true if
2214         either we're being recreated and the child is in our list, or our
2215         parent is waiting for our recreation.
2216
2217 2006-09-26  Chris Toshok  <toshok@ximian.com>
2218
2219         * Control.cs (ControlCollection.Remove): reinstate the
2220         value.Hide() call as suggested in bug #79294.
2221
2222 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
2223
2224         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
2225         coordinates (versus a relative move).
2226
2227 2006-09-26  Chris Toshok  <toshok@ximian.com>
2228
2229         * Control.cs: rework child recreation a little bit.  It turns out
2230         that we race between the DestroyNotify the WM_DESTROY message.  If
2231         the parent gets its DestroyNotify before the child gets the
2232         WM_DESTROY message, the child ends up not recreating (since the
2233         parent finishes its recreation on DestroyNotify, and the child
2234         checks ParentIsRecreating.)
2235
2236         So, instead we store off a list of all the child controls which
2237         need to be recreated when the parent control starts to recreate
2238         itself.  Then, when child controls get their WM_DESTROY message we
2239         check to see if they're in the parent's pending recreation list,
2240         and if so, we recreate.  This removes all dependency on ordering
2241         from the code and fixes the initial MonoCalendar upgrade dialog.
2242         
2243 2006-09-26  Jackson Harper  <jackson@ximian.com>
2244
2245         * TextControl.cs: Use the Line to get the length of the line,
2246         since soft line breaks can change the end line.
2247
2248 2006-09-26  Chris Toshok  <toshok@ximian.com>
2249
2250         * Control.cs (ControlCollection.AddImplicit): don't add the
2251         control again if it's already in one of our lists.  This keeps us
2252         from adding controls over and over again for comboboxes when their
2253         handle gets recreated (as the combobox adds implicit controls in
2254         OnHandleCreated).  Fixes the X11 errors in bug #79480.
2255
2256 2006-09-26  Jackson Harper  <jackson@ximian.com>
2257
2258         * TextControl.cs: When deleting characters make sure that any
2259         orphaned zero lengthed tags get deleted.
2260         - Fix ToString for zero lengthed tags.
2261
2262 2006-09-25  Jackson Harper  <jackson@ximian.com>
2263
2264         * TextControl.cs: When getting a tag at the location there can be
2265         multiple tags at the same spot, these are 0-lengthed tags that
2266         appear when extra formatting has been stuck in a location.  We
2267         need to pull out the last of these 0 lengthed tags.
2268
2269 2006-09-25  Jackson Harper  <jackson@ximian.com>
2270
2271         * TextControl.cs: Fix print out in debug method.
2272         * TextBoxBase.cs: When text is set bail if we are setting to the
2273         previous value.
2274         
2275 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
2276
2277         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
2278           It is now possible to change the selected index in a FontXXXListBox
2279           with the up and down arrow keys from the FontXXXTextBoxes.
2280           Also, send the FontXXXTextBox mouse wheel event to the corresponding
2281           FontXXXListBoxes to match ms.
2282
2283 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
2284
2285         * SystemInformation.cs: Return a clone of the theme's MenuFont because
2286         anyone can dispose it, anytime. All other properties returns enums, 
2287         structs or basic types so they don't need such tricks.
2288
2289 2006-09-22  Jackson Harper  <jackson@ximian.com>
2290
2291         * XplatUI.cs:
2292         * XplatUIWin32.cs:
2293         * Clipboard.cs:
2294         * DataFormats.cs:
2295         * XplatUIOSX.cs:
2296         * XplatUIDriver.cs: Update interface to add a primary selection
2297         flag, so the driver can use the primary selection buffer if
2298         needed.
2299         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
2300
2301         * RichTextBox.cs: We need to supply the data object to paste now
2302         (so we can choose to supply CLIPBOARD or PRIMARY).
2303         * TextBoxBase.cs: Supply data object to paste (see above).
2304         - Middle click uses the primary selection data object.
2305         
2306 2006-09-21  Chris Toshok  <toshok@ximian.com>
2307
2308         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
2309         of SetWMStyles.  It's still a rat's nest and is largely
2310         order-dependent which I dislike immensely.  This also fixes the X
2311         button disappearing from toplevel forms.
2312
2313 2006-09-21  Mike Kestner <mkestner@novell.com>
2314
2315         * ListBox.cs: move Jordi's click/dblclick raising code to the
2316         mouse up handler.
2317
2318 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
2319
2320         * ListBox.cs: Fixes 79450
2321
2322 2006-09-21  Mike Kestner <mkestner@novell.com>
2323
2324         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
2325         to deal with people updating the TreeNodeCollection after the tree
2326         is disposed.  "Fixes" 79330.
2327
2328 2006-09-20  Jackson Harper <jackson@ximian.com>
2329
2330         * TextControl.cs: Push the cursor record onto the undo stack
2331         before the delete action. This fixes 78651.
2332
2333 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
2334
2335         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
2336         CreateParams. Fixes 79329.
2337
2338 2006-09-19  Chris Toshok  <toshok@ximian.com>
2339
2340         * XplatUIX11.cs: a couple of blanket code massage passes to clean
2341         things up a bit.  First, get rid of the NetAtoms array (and the NA
2342         enum), and just embed the atoms as static fields.  Also, add a
2343         couple of functions (StyleSet and ExStyleSet) to clean up all the
2344         bitmask testing of styles.
2345
2346         * X11Structs.cs: remove the NA enum, not needed anymore.
2347         
2348 2006-09-19  Chris Toshok  <toshok@ximian.com>
2349
2350         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
2351         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
2352         added cleanup to get MessageBox titles appearing again, which were
2353         broken by my earlier fix for caption-less/ControlBox-less windows.
2354
2355 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
2356
2357         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
2358           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
2359           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
2360           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
2361           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
2362           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
2363           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
2364           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
2365           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
2366           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
2367           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
2368             Inital import.
2369         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
2370           ToolStripButton.cs: Stubs needed for above.
2371         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
2372
2373 2006-09-15  Chris Toshok  <toshok@ximian.com>
2374
2375         * XplatUIX11.cs:
2376         - make the MessageQueues hashtable Synchronized.
2377         
2378         - SendMessage: if the Hwnd is owned by a different thread, use the
2379         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
2380         thread.  Fixes bug #79201.
2381
2382 2006-09-15  Chris Toshok  <toshok@ximian.com>
2383
2384         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
2385         ControlBox == false, we disallow maximize/minimize/close.  If the
2386         form Caption is "" we also disallow move (and get rid of the Title
2387         decoration).  Unfortunately, regardless of how things are set,
2388         we're stuck with the Title and WM menu.
2389
2390 2006-09-15  Chris Toshok  <toshok@ximian.com>
2391
2392         * Application.cs: add locking around the static message_filters
2393         ArrayList, part of #79196.
2394
2395 2006-09-15  Chris Toshok  <toshok@ximian.com>
2396
2397         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
2398         Form.ControlBox == false, the window has no titlebar nor resize
2399         handles.  fixes bug #79368.
2400
2401 2006-09-15  Chris Toshok  <toshok@ximian.com>
2402
2403         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
2404         >= 0.  Fixes bug #79370.
2405
2406 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
2407         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
2408         * Control.cs:
2409             Add properties: LayoutEngine, Margin, DefaultMargin.
2410             Add method: GetPreferredSize.
2411             Move layout logic from PerformLayout to layout engines. 
2412
2413 2006-09-13  Chris Toshok  <toshok@ximian.com>
2414
2415         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
2416         fix for #79326 broke #78718, so this change addresses that.
2417
2418         - in SendWMDestroyMessages remove the call to
2419         CleanupCachedWindows, since we might be recreating the control and
2420         need to maintain the references to right Hwnd handles.  Also, set
2421         the zombie flag to true for each of the children in the hierarchy
2422         instead of calling hwnd.Dispose.  This will cause GetMessage to
2423         ignore all events for the window except for DestroyNotify.
2424
2425         - In GetMessage, ignore messages except for DestroyNotify for
2426         zombie hwnds.
2427         
2428         * Control.cs: revert the is_recreating fix from the last
2429         ChangeLog.  It's definitely "right", but it breaks switching from
2430         an MDI form to a non-MDI form.  Will need to revisit that.
2431
2432         * Hwnd.cs: add a zombie flag, which means "the
2433         client_window/whole_window handles are invalid, but we're waiting
2434         for the DestroyNotify event to come in for them".  Set the flag to
2435         false explicitly if setting WholeWindow/ClientWindow, and also
2436         when Disposing.
2437         
2438 2006-09-13  Chris Toshok  <toshok@ximian.com>
2439
2440         * XplatUIX11.cs: rework window destruction slightly.
2441
2442         - when destroying the windows associated with a control, we don't
2443         need 2 separate XDestroyWindow calls.  Just the one for the
2444         whole_window (or for client_window if whole_window is somehow
2445         IntPtr.Zero -- can this happen?) is enough.
2446
2447         - reworked SendWMDestroyMessages slightly, so we always dispose
2448         the child control hwnd's after sending the messages.
2449         
2450         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
2451         the two places it was used (one was even using hwnd.Handle and the
2452         other hwnd.client_window.  ugh), adding another call in
2453         SendWMDestroyMessages.  We need this new call because now the
2454         DestroyNotify events in the queue will be ignored for the child
2455         controls (as their hwnd's were disposed, and the window id's
2456         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
2457
2458         - this fixes bug #79326.
2459
2460 2006-09-13  Chris Toshok  <toshok@ximian.com>
2461
2462         * Control.cs: don't always set is_recreating to false at the end
2463         of RecreateHandle, since sometimes we're not done (and won't be
2464         until WndProc handles the WM_DESTROY message).  Also, set
2465         is_recreating to false in the WM_DESTROY handling code.  Part of
2466         the fix for bug #79326.
2467
2468 2006-09-13  Miguel de Icaza  <miguel@novell.com>
2469
2470         * X11DesktopColors.cs: Start the droppage of debugging messages.
2471
2472         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
2473
2474 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
2475
2476         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
2477
2478 2006-09-12  Chris Toshok  <toshok@ximian.com>
2479
2480         * DataGrid.cs (get_ListManager): if the list_manager is null, try
2481         to create it using SetDataSource.  Fixes bug #79151.
2482
2483 2006-09-11  Chris Toshok  <toshok@ximian.com>
2484
2485         * XEventQueue.cs: add a DispatchIdle property.
2486
2487         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
2488         either the queue is null, or the queue has DispatchIdle set to
2489         true.
2490         (DoEvents): set queue.DispatchIdle to false around the
2491         peek/translate/dispatch message loop in this method.  This keeps
2492         Application.Doevents from emitting idle events.  Part of the fix
2493         for #78823.
2494
2495 2006-09-11  Chris Toshok  <toshok@ximian.com>
2496
2497         * DataGrid.cs (set_DataSource): make this work for both the
2498         winforms/datagrid test and ReportBuilder.  It seems as though when
2499         we've created a ListManager (or maybe it's if we have a
2500         BindingContext?), when we set the DataSource it clears the
2501         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
2502         #79333.
2503
2504 2006-09-11  Chris Toshok  <toshok@ximian.com>
2505
2506         * XplatUIX11.cs: deal with queue being null, which happens in all
2507         the Clipboard functions.  Fixes one of the two problems mentioned
2508         in #78612.
2509
2510 2006-09-11  Chris Toshok  <toshok@ximian.com>
2511
2512         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
2513         button on various spots (including outside the menu) works closer
2514         to MS, and doesn't crash.  Fixes #79343.
2515
2516 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
2517
2518         * ListView.cs: Do not initialize item_sorter in init. To match MS,
2519         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
2520         and the internal comparer is set. When a new ListViewItemSorter is set,
2521         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
2522         was specified. No further processing is necessary if SortOrder is set
2523         to it's current value. If Sorting is modified to None, and View is
2524         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
2525         (either custom or our internal ItemComparer) to null, on 1.0 profile
2526         only set item_sorter to null if its our internal IComparer. If Sorting
2527         is modified to Ascending or Descending, then use our internal IComparer
2528         if none is set, and if the current IComparer is our internal one then:
2529         on 2.0 profile always replace it with one for new Sorting, and on 1.0
2530         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
2531         Enum.IsDefined to verify whether a valid View value is specified in
2532         its setter. Automatically sort listview items when listview is
2533         created. In Sort, do nothing if ListView is not yet created, or if
2534         no item_sorter is set (no Sorting was set, Sorting was explicitly set
2535         to None or ListViewItemSorter was set to null). Added Sort overload
2536         taking a bool to indicate whether the ListView should be redrawn when
2537         items are sorted (we use this in ListViewItemCollection to avoid double
2538         redraws). Modified our internal IComparer to take the sort order into
2539         account. In Add and AddRange methods of ListViewItemCollection, also
2540         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
2541         view), but use overload with noredraw option to avoid double redraw.
2542         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
2543         true when View is Tile, and do the same when attempting to set View to
2544         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
2545         for selected/checked indices, as it involves overhead when sorting is
2546         done while these collections are not used all that often. Instead
2547         we'll build the indices on demand. Modified IList implementation of
2548         CheckedIndexCollection to use public methods if object is int.
2549         Modified CheckedListViewItemCollection to hide checked items if
2550         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
2551         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
2552         IList implementation in SelectedIndexCollection to use public methods
2553         if object is int. Modified SelectedListViewItemCollection to hide
2554         selected items if listview is not yet created.
2555         * ListViewItem.cs: CheckedIndices list no longer needs to be
2556         maintained separately (see ListView changes). Also clone font, fixes
2557         test failure.
2558
2559 2006-09-11  Mike Kestner  <mkestner@novell.com>
2560
2561         * ComboBox.cs: if we are updating the contents of the currently
2562         selected index, refresh the control or the textbox selection.
2563         [Fixes #79066]
2564
2565 2006-09-11  Mike Kestner  <mkestner@novell.com>
2566
2567         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
2568         the 'specified' logic has been moved there.  This seems like a bug 
2569         in Control.cs, since our current SetBoundsCore completely ignores 
2570         the specified parameter.  Peter's commit seems to indicate that is 
2571         the way the MS control implementation works.  [Fixes #79325]
2572
2573 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
2574
2575         * XplatUI.cs: Set default_class_name to be composed
2576         of current domain id. This allows MWF to be loaded in multiple
2577         domains on Win32.
2578
2579 2006-09-09  Miguel de Icaza  <miguel@novell.com>
2580
2581         * X11Keyboard.cs: If we are unable to obtain the input method, do
2582         not call CreateXic to create the input context.   Should fix
2583         #78944/79276.
2584
2585 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
2586
2587         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
2588           Simplified gnome support by adding more pinvokes to get the
2589           icon for a file or mime type.
2590
2591 2006-09-08  Jackson Harper  <jackson@ximian.com>
2592
2593         * MenuAPI.cs: Deslect popup context menu items before closing the
2594         window, so that you don't see the previously selected item
2595         selected when you reopen the menu.
2596         * TextControl.cs: Update the cursor position even if we don't have
2597         focus.  This fixes typing in things like the ComboBox.  I'm not
2598         totally sure we should always set the visibility if we don't have
2599         focus, but couldn't find any corner cases where the cursor showed
2600         up when it shouldn't.
2601
2602 2006-09-08  Chris Toshok  <toshok@ximian.com>
2603
2604         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
2605         our arrays are length 256.  & 0xff before indexing.  Fixes the
2606         crash in bug #78077.
2607         
2608 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2609
2610         * ThemeWin32Classic.cs: 
2611         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
2612         is true. Handle that check box too.
2613
2614 2006-09-07  Chris Toshok  <toshok@ximian.com>
2615
2616         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
2617         79244.
2618
2619 2006-09-07  Chris Toshok  <toshok@ximian.com>
2620
2621         * Control.cs: in set_BackColor only do the work if
2622         background_color != value.
2623
2624         * XplatUIX11.cs: move the clearing of invalid areas (both client
2625         and nc) to the same block of code where we set (nc_)expose_pending
2626         to false.  That is, move it from PaintEventEnd to PaintEventStart,
2627         so things that cause invalidates from within OnPaint will trigger
2628         another call to OnPaint.  Fixes bug #79262.
2629
2630 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
2631
2632         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
2633         * FileDialog.cs: Fix typo
2634
2635 2006-09-07  Jackson Harper  <jackson@ximian.com>
2636
2637         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
2638         for tab pages if they have any.
2639
2640 2006-09-06  Mike Kestner  <mkestner@novell.com>
2641
2642         * Splitter.cs: use the "current" rect when finishing drag handle
2643         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
2644
2645 2006-09-06  Mike Kestner  <mkestner@novell.com>
2646
2647         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
2648         support offset splitters. [Fixes #79298]
2649
2650 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
2651
2652         * Mime.cs: Fixed a bug that could override the global mime type
2653           result.
2654
2655 2006-09-05  Jackson Harper  <jackson@ximian.com>
2656
2657         * TabControl.cs: Better calculation method for setting the slider
2658         pos. Prevents crashes on really wide tabs.
2659         - Draw Image on tab pages if an image list is used.
2660
2661 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2662
2663         * MonthCalendar.cs: When Font changes, the Size should be
2664         updated to fit the new font's space requirements.
2665
2666 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
2667
2668         * ListBox.cs: If the items are cleared with Items.Clear set
2669           top_index to 0.
2670
2671 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2672
2673         * MonthCalendar.cs: Handle arrow keys as input keys. Also
2674         fire DateChanged event instead of DateSelected event when
2675         the date was changed by keyboard interaction.
2676
2677 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2678
2679         * DateTimePicker.cs: Handle DateChanged for the associated
2680         month_calendar control, and set month_calendar.Font from 
2681         OnFontChanged method, as well as resize the height of the
2682         control when needed. Make PreferredHeight proportional.
2683
2684 2006-09-01  Chris Toshok  <toshok@ximian.com>
2685
2686         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
2687         properties.
2688
2689         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
2690
2691 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
2692
2693         * FileDialog.cs: Set ClientSize instead of window size, to allow space
2694           for decorations (Fixes #79219)
2695
2696 2006-09-01  Mike Kestner  <mkestner@novell.com>
2697
2698         * ComboBox.cs: first stab at sorting plus some selection handling
2699         fixes to bring us more in line with MS behavior.  Also switches back
2700         to index based selection.  Alternative patches for index-based 
2701         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
2702         and latency@gmx.de on bug 78848.  I assume they were similar to this
2703         code I've had simmering in my tree forever.
2704         [Fixes #78848]
2705
2706 2006-09-01  Chris Toshok  <toshok@ximian.com>
2707
2708         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
2709         when setting list position guard against ending up with a -1 index
2710         (the other part of the fix for #78812).  Should probably make sure
2711         we don't need the analogous fix in the ItemDeleted case.
2712
2713         * DataGrid.cs:
2714         - in SetDataSource, work around the fact that the way
2715         OnBindingContextChanged is invoked will cause us to re-enter this
2716         method.  I'll remove the hack once I investigate
2717         OnBindingContextChanged.
2718
2719         - fix the logic in set_DataSource and set_DataMember (basically
2720         what to do if the other of the two is null.)
2721         
2722         - in OnListManagerItemChanged, we need to take into account the
2723         edit row when deciding whether or not to call RecreateDataGridRows
2724         (part of the fix for #78812).
2725
2726 2006-09-01  Jackson Harper  <jackson@ximian.com>
2727
2728         * Splitter.cs: Don't do anything if there is no control to affect
2729         (prevents us from crashing in weird tet cases).
2730         * TreeView.cs: Bounding box for the mouse movement reverting
2731         focus/selection back to previously selected node.  This matches
2732         MS, and makes the tree a lot more useable.
2733         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
2734         use clipping so they are not drawn.  This fixes when the control
2735         is set to have a transparent background, or if it was over an
2736         image.
2737
2738 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
2739
2740         * MimeIcon.cs: Improved handling for reading default icons when
2741           using gnome (2.16 made it necessary). Check and read svg icons
2742           first, then 48x48 and then 32x32 icons.
2743
2744 2006-08-31  Chris Toshok  <toshok@ximian.com>
2745
2746         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
2747         visible.
2748
2749         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
2750         ProcessKeyPreview.  Fixes part of #77806.
2751
2752         * DataGrid.cs: big patch.
2753
2754         - revert the queueing up of DataSource/DataMember if inside
2755         BeginInit/EndInit calls.  That's not the way the datagrid achieves
2756         its delayed databinding.  Instead, call SetDataSource in
2757         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
2758         #78811.
2759
2760         - Also, it wasn't mentioned in #78811, but the test case exhibits
2761         behavior that was lacking in our datagrid implementation - Columns
2762         that have mapping names that don't exist in the datasource's
2763         properties aren't shown.  Yuck.  To fix this I added the bound
2764         field to the column style, and basically any calculation to figure
2765         out anything about columns uses a loop to find the bound columns.
2766         still need to investigate if I can cache an array of the bound
2767         columns or if the indices must be the same.
2768
2769         - When setting CurrentCell, we no longer abort if the cell being
2770         edited was in the add row.  This fixes the other part of #77806.
2771
2772         - The new code also fixes #78807.
2773         
2774         * ThemeWin32Classic.cs: perpetrate the same disgusting
2775         column.bound field hack, and only render bound fields.
2776
2777 2006-08-31  Chris Toshok  <toshok@ximian.com>
2778
2779         * DataGridColumnStyle.cs: add bound field.  this field is true if
2780         the datasource has a property corresponding to the mapping name.
2781
2782         * DataGridTableStyle.cs: set the bound field on the column styles
2783         depending on whether or not we have a column for that property.
2784
2785 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
2786
2787         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
2788           splitter control (fixes #79228)
2789
2790 2006-08-31  Chris Toshok  <toshok@ximian.com>
2791
2792         * DataGridColumnStyle.cs: we need to delay the assignment of
2793         property descriptor until the last possible moment due to the lazy
2794         databinding stuff in the datagrid.  Also, fix the exceptions
2795         thrown by CheckValidDataSource to match MS.
2796
2797 2006-08-31  Jackson Harper  <jackson@ximian.com>
2798
2799         * Form.cs: When activated select the active control, if there is
2800         no active control, we select the first control.
2801         * XplatUIX11.cs: If there is no focus control when we get a
2802         FocusIn event, find the toplevel form and activate it.  This
2803         occurs when you popup a window, it becomes the focus window, then
2804         you close that window, giving focus back to the main window.
2805
2806 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2807
2808         * MonthCalendar.cs: 
2809         * ThemeWin32Classic.cs: Cache Font in bold style, as well
2810         as StringFormat with Center alignments in MonthCalendar,
2811         instead of creating new ones when drawing the control. 
2812         Also, draw the month name in bold style.
2813
2814 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
2815
2816         * Control.cs:
2817           - PerformLayout(): It would seem MS performs the fill even if the 
2818             control is not visible (part of #79218 fix)
2819           - ResetBackColor(): Use the setter to reset the color, to allow
2820             overriders to catch the change.
2821         * Form.cs:
2822           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
2823           - CreateHandle(): dito (part of $79218 fix)
2824           - Don't set an icon if we have a dialog
2825         * ScrollableControl.cs:
2826           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
2827           - ScrollIntoView(): No need to scroll if control is already visible
2828             (resolves fixme and fixes #79218)
2829
2830 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2831
2832         * MonthCalendar.cs: Change proportions in SingleMonthSize
2833         to match the aspect of the original control.
2834
2835 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
2836
2837         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
2838           get updated when they get maximized.
2839
2840 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
2841
2842         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
2843
2844 2006-08-29  Chris Toshok  <toshok@ximian.com>
2845
2846         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
2847
2848 2006-08-29  Jackson Harper  <jackson@ximian.com>
2849
2850         * TreeView.cs: Need to track selected node and highlighted node,
2851         they aren't always the same thing, when the mouse is down on a
2852         node it is hilighted, but not selected yet.
2853         - Do the HideSelection stuff right
2854         - Need to focus on rbutton mouse down. And redraw selection when
2855         right click is mouse upped.
2856
2857 2006-08-29  Mike Kestner  <mkestner@novell.com>
2858
2859         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
2860         when SubItems.Count < Columns.Count.  [Fixes #79167]
2861
2862 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
2863
2864         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
2865
2866 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
2867
2868         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
2869           from X. Only send based on ConfigureNotify if we don't have the
2870           correct location in hwnd (if the window manager moved us)
2871
2872 2006-08-28  Mike Kestner  <mkestner@novell.com>
2873
2874         * ListView.cs: remove a TODO. 
2875         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
2876         [Fixes ListView part of #79166]
2877
2878 2006-08-28  Mike Kestner  <mkestner@novell.com>
2879
2880         * ListView.cs: move wheel handler to parent since it is focused
2881         instead of the item_control now.  [Fixes #79177]
2882
2883 2006-08-28  Mike Kestner  <mkestner@novell.com>
2884
2885         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
2886         when the control is focused. [Fixes #79171]
2887
2888 2006-08-28  Mike Kestner  <mkestner@novell.com>
2889
2890         * ListView.cs: size the item and header controls for empty and
2891         unscrollable views.
2892         * ThemeWin32Classic.cs: draw disabled backgrounds.
2893         [Fixes #79187]
2894
2895 2006-08-28  Chris Toshok  <toshok@ximian.com>
2896
2897         * Form.cs: remove unused "active_form" static field.
2898
2899         * Hwnd.cs: lock around accesses to static windows collection.
2900
2901         * Application.cs: lock threads in Exit ().
2902
2903 2006-08-28  Chris Toshok  <toshok@ximian.com>
2904
2905         * NativeWindow.cs: lock around accesses to window_collection.
2906         
2907 2006-08-28  Chris Toshok  <toshok@ximian.com>
2908
2909         * Control.cs: err, fix this the right way, by locking on controls
2910         when using it.  not by making it synchronized.
2911
2912 2006-08-28  Chris Toshok  <toshok@ximian.com>
2913
2914         * Control.cs: make the static "controls" field synchronized, as it
2915         gets updated from multiple threads.
2916
2917 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2918
2919         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
2920           Prevent other threads from exiting when calling thread sets quit state.
2921         * XEventQueue.cs: Added PostQuitState property
2922
2923 2006-08-27  Chris Toshok  <toshok@ximian.com>
2924
2925         * AsyncMethodData.cs: add a slot for the window handle.
2926
2927         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
2928         window (the destination control's window, not the foster window).
2929
2930         * Control.cs (BeginInvokeInternal): store the window's handle in
2931         the AsyncMethodData.
2932         
2933
2934 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2935
2936         * XplatUIX11.cs:
2937           - PostQuitMessage: Removed resetting S.D display handle, we might have
2938             another loop started after calling PostQuitMessage (Fixes #79119)
2939           - Created destructor to reset S.D handle
2940
2941 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
2942
2943         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
2944
2945 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2946
2947         * TextControl.cs (Insert): Update the caret position even if we don't
2948           have a handle yet, just don't call the driver in that case.
2949         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
2950           to the end of the new selection text (Fixes #79184)
2951
2952 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2953
2954         * Form.cs (Activate): Only activate if the handle is created)
2955         * Control.c:
2956           - Mark window as invisible when it's disposed
2957           - Check if window handle is created when setting window visible, 
2958             instead of relying just on the is_created variable
2959           - Check if object is disposed when creating the control (Fixes #79155)
2960
2961 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2962
2963         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
2964           when allowing layout again. Otherwise we re-generate the anchoring 
2965           distance to the border again and actually alter what the user wanted
2966           This is ugly, it'd be better if we used DisplayRectangle instead of
2967           ClientRectangle for Control.UpdateDistances, but that causes us to
2968           have other problems (initial anchoring positons would be wrong)
2969           (Fixes #78835)
2970
2971 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2972
2973         * Control.cs:
2974           - The size and location setters shouldn't go directly to 
2975             SetBoundsCore, but to SetBounds, which triggers layout on the
2976             parent, then calls SetBoundsCore. (Related to fix for #78835)
2977           - SetBounds: Moved actual location update code into this function
2978             from SetBoundsCore, to match MS. Added call to PerformLayout if
2979             we have a parent (to trigger resizing of anchored parents if the 
2980             child size has changed (see testcase for #78835) 
2981         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
2982           new control code
2983         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
2984
2985 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2986
2987         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
2988           System.Drawing when a toplevel window gets closed; there might
2989           be other toplevel windows belonging to the same app (Fixes #78052)
2990
2991 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
2992
2993         * FileDialog.cs: After reading FileDialog settings from mwf_config
2994           use Desktop prefix only if a real folder doesn't exist anymore.
2995         * FontDialog.cs: Added char sets.
2996           It is now possible to select the font, size or style with the
2997           textboxes.
2998
2999 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
3000
3001         * PrintPreviewDialog.cs: Use assembly name constants.
3002
3003 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3004
3005         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
3006           scrollbar from whacking it's buttons)
3007
3008 2006-08-24  Chris Toshok  <toshok@ximian.com>
3009
3010         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
3011         in this patch (aggregating setting Left/Top/Width/Height to
3012         setting Bounds on the scrollbars), but the crux of the fix is in
3013         Recalculate, where we scroll by the remaining scroll_position if
3014         we're hiding a scrollbar.  The 2*$5 reward in the comment is
3015         serious.
3016
3017 2006-08-24  Jackson Harper  <jackson@ximian.com>
3018
3019         * MdiClient.cs:
3020         * MdiWindowManager.cs: If the form is made a non-mdi window we
3021         need to remove the form closed event so that closing forms works
3022         correctly.
3023
3024 2006-08-24  Jackson Harper  <jackson@ximian.com>
3025
3026         * Control.cs: Make IsRecreating internal so that the driver can
3027         check it
3028         - Temporarily remove the Hide when controls are removed, its
3029         making a whole bunch of things not work because visibility isn't
3030         getting reset elsewhere correctly
3031         * Form.cs: Need to do a full handle recreation when the mdi parent
3032         is set.
3033         * XplatUIX11.cs: If we are recreating handles don't dispose the
3034         HWNDs.  What was happening is the handles were being recreated in
3035         SendWMDestroyMessages, but then flow continued on in that method
3036         and destroyed the new handles.
3037
3038 2006-08-23  Jackson Harper  <jackson@ximian.com>
3039
3040         * Form.cs: MdiClient is always at the back of the bus
3041         * Control.cs: When the order of items in the collection is changed
3042         we need to reset the all_controls array
3043         - do the same sorta setup thats done when adding a control when a
3044         control is set on the collection.
3045
3046 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3047
3048         * TextBoxBase.cs (get_Text): Return an empty array if our document
3049           is empty (fixes #79052)
3050
3051 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3052
3053         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
3054           on WM_SYSCHAR messages (fixes #79053)
3055
3056 2006-08-23  Chris Toshok  <toshok@ximian.com>
3057
3058         * DataGrid.cs: fix flickering when scrolling vertically.
3059
3060 2006-08-23  Chris Toshok  <toshok@ximian.com>
3061
3062         * DataGrid.cs (EndEdit): only invalidate the row header when we
3063         need to.
3064
3065 2006-08-23  Chris Toshok  <toshok@ximian.com>
3066
3067         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
3068         methods.  fixes the flicker when scrolling around.
3069
3070 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3071
3072         * FileDialog.cs: Making sure the control is created before we get a 
3073           chance to use it with BeginInvoke (Fixes #79096)
3074
3075 2006-08-23  Chris Toshok  <toshok@ximian.com>
3076
3077         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
3078         width to use when painting the rows.
3079
3080 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3081
3082         * TextBoxBase.cs:
3083           - Throw ArgumentException if a negative value is passed to SelectionLength
3084           - Update the selection end if start is moved. end needs to be always
3085             after start. (Fixes #79095)
3086           - Track selection length; MS keeps the selection length even if start
3087             is changed; reset on all other operations affection selection
3088
3089 2006-08-22  Jackson Harper  <jackson@ximian.com>
3090
3091         * TreeView.cs: Make sure both scrollbars get displayed and sized
3092         correctly when the other bar is visible.
3093         - Use the original clip rectangle for checking if the area between
3094         the two scrollbars is visible, not the viewport adjusted clipping
3095         rectangle.
3096
3097 2006-08-22  Jackson Harper  <jackson@ximian.com>
3098
3099         * Binding.cs: We don't use IsBinding because it requires the
3100         control to be created, which really shouldn't be necessary just to
3101         set a property on the control.
3102
3103 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3104
3105         * ComboBox.cs: Some CB.ObjectCollection methods must throw
3106         ArgumentNullReferenceException when the argument is null.
3107
3108 2006-08-21  Jackson Harper  <jackson@ximian.com>
3109
3110         * Timer.cs: Track the thread that the timer is started in (NOT
3111         CREATED), this way messages for it will only be triggered on its
3112         queue.
3113         * XEventQueue.cs: Track the timers here, this makes timers per
3114         thread, like MS.
3115         * XplatUIX11.cs: The timers are moved to the XEventQueue.
3116
3117 2006-08-19  Chris Toshok  <toshok@ximian.com>
3118
3119         * XplatUIX11.cs: after further communication with pdb, we get the
3120         best of both worlds.  SetZOrder working for un-Mapped windows, and
3121         no X errors for un-mapped windows.
3122
3123 2006-08-19  Chris Toshok  <toshok@ximian.com>
3124
3125         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
3126         as it was causing pdn toolbars to not have the correct stacking.
3127
3128 2006-08-18  Mike Kestner  <mkestner@novell.com> 
3129
3130         * ListView.cs : guard against negative ClientArea.Width in scrollbar
3131         calculation.  Not sure why control should ever be setting a negative
3132         width though.  Fixes #78931.
3133
3134 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3135
3136         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
3137         null items in ObjectCollection class.
3138         * ListBox.cs.: Likewise.
3139
3140 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
3141
3142         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
3143           as the base method in ThemeWin32Classic should work fine.
3144           Fixed bug #78607.
3145
3146 2006-08-18  Jackson Harper  <jackson@ximian.com>
3147
3148         * Binding.cs: When validating if the value entered doesn't convert
3149         properly reset to the old value.
3150         * RadioButton.cs: Don't fire click when we get focus.
3151
3152 2006-08-18  Jackson Harper  <jackson@ximian.com>
3153
3154         * FileDialog.cs: Paint the selection on the directory combobox the
3155         same way as on MS. 
3156
3157 2006-08-17  Jackson Harper  <jackson@ximian.com>
3158
3159         * ErrorProvider.cs: Don't allow the error control to be selected.
3160         * Control.cs: Don't send the SetFocus messages, the control
3161         activation will do this, and if we do it blindly here validation
3162         does not work.
3163
3164 2006-08-17  Jackson Harper  <jackson@ximian.com>
3165
3166         * Control.cs:
3167         * ContainerControl.cs: Make validation events fire in the correct
3168         order.  TODO: For some reason the first validation event is not
3169         getting fired.
3170
3171 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3172
3173         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
3174
3175 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3176
3177         * ComboBox.cs : implement scroll wheel support for popped-down
3178         state. Fixes #78945. 
3179
3180 2006-08-17  Jackson Harper  <jackson@ximian.com>
3181
3182         * TreeView.cs: Specify treeview actions (old patch that didn't get
3183         committed for some reason).
3184         - Don't let the mouse wheel scroll us too far.  Just want to make
3185         the bottom node visible, not scroll it all the ways to the top.
3186
3187 2006-08-17  Jackson Harper  <jackson@ximian.com>
3188
3189         * XplatUIX11.cs: Mouse wheel events go to the focused window.
3190
3191 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3192
3193         * ComboBox.cs : don't do mouseover selection in simple mode.
3194
3195 2006-08-16  Jackson Harper  <jackson@ximian.com>
3196
3197         * Form.cs: Fire the closing events for all the mdi child windows
3198         when a window is closed.  If the cancel args are set to true, the
3199         main window still gets the event fired, but it doesn't not close.
3200         * MdiWindowManager.cs: Do this closing cleanup in a Closed
3201         handler, instead of when the button is clicked, so cancelling the
3202         close works correctly.
3203         * ComboBox.cs: Send the mouse down to the scrollbar.
3204
3205 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3206
3207         * ListBox.cs: When passing 'null' to SelectedItem,
3208         set SelectedIndex to -1, to unselect items. This is the
3209         observed behaviour in .Net.
3210
3211 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
3212
3213         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
3214           MS flags saying there won't be any. (fixes #78800)
3215         * Control.cs (HandleClick): Made virtual
3216
3217 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3218
3219         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
3220           cultures. Fixed bug #78399.
3221
3222 2006-08-16  Jackson Harper  <jackson@ximian.com>
3223
3224         * Form.cs: Use the MdiClients MdiChildren property to access
3225         MdiChildren instead of creating the array from the child controls.
3226         * MdiClient.cs: Maintain a separate array of the mdi children, so
3227         that insertion order is maintained when the Z-order is changed.
3228
3229 2006-08-16  Mike Kestner  <mkestner@novell.com> 
3230
3231         * ListView.cs : add an ItemComparer and default to it for sorting.
3232         Fixes #79076, but sorting needs a complete overhaul to be compat with
3233         MS.
3234
3235 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3236
3237         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
3238
3239 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3240
3241         * Hwnd.cs (Mapped): Properly traverse the tree
3242
3243 2006-08-15  Chris Toshok  <toshok@ximian.com>
3244
3245         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
3246         pass manager.Current.GetType() to ParseData.  It has to be the
3247         property type.  So, hold off doing the ParseData until we're in
3248         SetPropertyValue where we know the type.  This fixes the crash in
3249         #78821 but the textbox is still empty.
3250
3251 2006-08-15  Chris Toshok  <toshok@ximian.com>
3252
3253         * DataGrid.cs:
3254         - when we're scrolling, only call Edit() again if the
3255         current cell is still unobscured. Fixes bug #78927.
3256         - when handling mousedown on a cell, ensure the cell is visible
3257         before calling Edit.
3258         - remove the properties from DataGridRow, and remove the
3259         DataGridParentRow class altogether.
3260         
3261
3262 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3263
3264         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
3265           fire OnTextChanged by ourselves. There's no point calling base,
3266           we don't set the base value anywhere else. Fixes #78773.
3267
3268 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3269
3270         * ListBox.cs: Call CollectionChanged when modifying
3271         an item from Items indexer, to update the actual items
3272         in the list box.
3273
3274 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3275
3276         * PrintDialog.cs: Small fixes for focus and a pair of checks,
3277         to match .Net behaviour.
3278
3279 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3280
3281         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
3282
3283 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3284
3285         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
3286
3287 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3288
3289         * MessageBox.cs: Prevent potential NRE exception.
3290         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
3291
3292 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3293
3294         * MessageBox.cs: Calculate the owner of a messagebox, also make
3295           it topmost. Fixes #78753
3296
3297 2006-08-14  Chris Toshok  <toshok@ximian.com>
3298
3299         * XplatUIX11.cs: A couple of fixes so that metacity will let us
3300         programmatically move windows.  first, set the PPosition hint as
3301         well as the USPosition hint.  Second include some code from pdb
3302         that sets the window type to NORMAL when we set the transient for
3303         hint.  This is because, in the absence of a window type, metacity
3304         thinks any window with TransientFor set is a dialog, and refuses
3305         to let us move it programmatically.  fascists.
3306
3307 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3308
3309         * XplatUIX11.cs: When setting normal hints, take into consideration
3310           an different hints previously set so we don't delete them (fixes #78866)
3311
3312 2006-08-12  Chris Toshok  <toshok@ximian.com>
3313
3314         * ToolBarButton.cs: make Layout return a boolean, if something to
3315         do with the button's layout changed.
3316
3317         * ToolBar.cs:
3318         - add another parameter to Redraw, @force, which all existing
3319           calls set to true.
3320         - make the Layout function return a boolean which is true if the
3321           layout has actually changed.  Redraw now uses this (and @force)
3322           to determine when to invalidate.  At present the only place
3323           where @force can be false is the call from OnResize, when
3324           background_image == null.  So, resizing a toolbar when the
3325           layout doesn't change results in no drawing.
3326
3327 2006-08-12  Chris Toshok  <toshok@ximian.com>
3328
3329         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
3330         the VScrollBar and HScrollbar reversed.  oops.
3331
3332         * DataGrid.cs: fix the logic that assigns sizes to the implicit
3333         scrollbars.  we were assigning them twice (once in
3334         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
3335         therefore causing two scrollbar resizes (and redraws?) to happen
3336         per grid resize.
3337
3338 2006-08-12  Chris Toshok  <toshok@ximian.com>
3339
3340         * ToolBarButton.cs: redraw the entire button if the theme tells us
3341         to.
3342
3343         * Theme.cs: add ToolBarInvalidateEntireButton.
3344
3345         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
3346         buttons, just the border.
3347
3348         * ThemeNice.cs: redraw the entire toolbar button since we need to
3349         draw the highlight image.
3350
3351         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
3352         we need to redraw the entire button (not just the border).
3353
3354 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3355
3356         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
3357           for vertical bars. Fixes the mismatches shown by #78513
3358
3359 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
3360
3361         * FileDialog.cs: If a saved/remembered path doesn't exist
3362           anymore, fall back to "Desktop".
3363
3364 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3365
3366         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
3367           parent. It's apparently legal to not have one
3368         * XplatUIX11.cs:
3369           - SetZOrder: Don't try to set Z-Order on an unmapped window
3370           - CreateWindow: 0,0 are legal coordinates for a window. don't move
3371             it unless the coordinates are negative
3372
3373 2006-08-10  Mike Kestner  <mkestner@novell.com>
3374
3375         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
3376         when setting to null per msdn docs.  Fixes #78854.
3377
3378 2006-08-10  Chris Toshok  <toshok@ximian.com>
3379
3380         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
3381         flickering by setting a clip rectangle on the Graphics when we
3382         need to redraw just a particular menuitem.  Also, rename "OnClick"
3383         to "OnMouseDown" to reflect what it actually is.
3384         
3385         * Form.cs: track the OnMouseDown change.
3386
3387 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
3388
3389         * CommonDialog.cs: Properly inherit the CreateParams from the form
3390           and only change what we need. Fixes #78865
3391
3392 2006-08-10  Chris Toshok  <toshok@ximian.com>
3393
3394         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
3395         flickering in flat mode (and most of the flickering in general) by
3396         only invalidating the button border (and not the entire rectangle)
3397         when the state changes.  A couple of cases still flicker:
3398         ToggleButtons, and the dropdown arrow case when the user mouse
3399         ups.
3400
3401 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
3402
3403         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
3404           for german keyboards. Numlock state shouldn't affect the behaviour
3405           of the Del key. Fixes bug #78291.
3406
3407 2006-08-10  Chris Toshok  <toshok@ximian.com>
3408
3409         * ListControl.cs: remove the items.Clear line from BindDataItems,
3410         as this is the first thing done by both subclasses in their
3411         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
3412         passed -1, refresh the list.  This gets databinding working when
3413         the datasource is set on the list before the datasource is
3414         populated (as in wf-apps/ReportBuilder.)
3415
3416         * ComboBox.cs: remove the argument to BindDataItems.  This call
3417         should really go away, and be initiated by the ListControl code.
3418
3419         * ListBox.cs: same.
3420
3421 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3422
3423         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
3424           if no data is in the document when the control is displayed
3425
3426 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
3427
3428         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
3429           yes (fixes #78806)
3430         * TextControl.cs: 
3431           - PositionCaret: Allow positioning of caret but don't call methods 
3432             requiring a handle if the window isn't created yet
3433           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
3434           - owner_HandleCreated: Don't position the caret, just update it's 
3435             location. User might have already set a different position
3436
3437 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3438
3439         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
3440           windows. Screws up the returned coordinates for child windows. 
3441           Fixes #78825. I'm hoping this doesn't break something, since the
3442           code was explicitly put in 8 months ago, but no bug was attached.
3443           Menus still seem to work properly.
3444
3445 2006-08-08  Chris Toshok  <toshok@ximian.com>
3446
3447         * DataGrid.cs: make BeginInit/EndInit actually do what they're
3448         supposed to do - delay data binding until the EndInit call.  Also,
3449         make the table style collection's CollectionChangeAction.Refresh
3450         work properly.
3451
3452         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
3453         (with action = Refresh) when a consituent table's MappingName is
3454         changed.
3455
3456 2006-08-08  Chris Toshok  <toshok@ximian.com>
3457
3458         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
3459         Invalidate, since changing the text can change the size of the all
3460         toolbar buttons.
3461
3462 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3463
3464         * Form.cs (AddOwnedForm): Still need to add the form to our listif
3465           we don't have it yet
3466
3467 2006-08-08  Chris Toshok  <toshok@ximian.com>
3468
3469         * PrintControllerWithStatusDialog.cs: don't .Close() the status
3470         dialog, as this causes X errors later on, since we actually
3471         destroy the window.  Instead, .Hide() it.
3472
3473 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3474
3475         * ComboBox.cs: Added focus reflection for popup window
3476         * XplatUIX11.cs: 
3477           - Removed transient setting for non-app windows for now, not sure it
3478             was needed
3479           - Fixed logic checking if we have captions when deciding 
3480             override_redirect, WS_CAPTION is two bits and a 0 check was not
3481             sufficient
3482           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
3483             complicated
3484         * Form.cs: 
3485           - AddOwnedForm: Don't just add the form to the list, call the property
3486             to ensure the driver is informed about the ownership as well
3487           - CreateHandle: Set the TopMost status in the driver if we have an owner
3488         * XplatUI.cs: Fixed debug statement
3489
3490 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
3491         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3492           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
3493           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
3494           TrackBarRenderer.cs: Make constructor private.
3495         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
3496         * ProfessionalColorTable.cs: Make properties virtual.
3497
3498 2006-08-06  Duncan Mak  <duncan@novell.com>
3499
3500         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
3501         is not changing.
3502
3503 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3504         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3505           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
3506           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
3507           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
3508           Initial import of new 2.0 classes.
3509
3510 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3511         * Application.cs: Add 2.0 VisualStyles properties.
3512
3513 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3514         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3515           XplatUIX11.cs: Create property to allow access to existing private
3516           variable "themes_enabled"
3517
3518 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3519
3520         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
3521         file size, as otherwise our class libraries fail using windows. Fixes
3522         bug #78759.
3523
3524 2006-08-04  Jackson Harper  <jackson@ximian.com>
3525
3526         * Form.cs:
3527         * XplatUIX11.cs: Move the toolwindow window manager creation into
3528         the X11 driver, this way on win32 we can let windows create/handle
3529         the toolwindows.
3530
3531 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3532
3533         * PrintDialog.cs: Remove some redundant checks, add some others,
3534         clean some code, and move the focus to the text boxes when the
3535         values are incorrect.
3536
3537 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
3538
3539         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
3540
3541 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3542
3543         * NumericUpDown.cs: Setting the Minimum and Maximum is now
3544           handled correctly. Fixes bug #79001.
3545
3546 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3547
3548         * PrintDialog.cs: The "Copies" numeric up down must have
3549         set the Minimum property to 1; only if the value is bigger
3550         than 1, activate "Collate" check box. This is the behaviour of .Net.
3551         Also modify the Document elements only if it is not null.
3552
3553 2006-08-03  Jackson Harper  <jackson@ximian.com>
3554
3555         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
3556         length. (We have a larger array then actual node count).
3557                 
3558 2006-08-03  Jackson Harper  <jackson@ximian.com>
3559
3560         * ComboBox.cs: Don't show selection by default.
3561         - The SelectAll isn't needed here, since the focus code should do
3562         that
3563         - DDL style lists to manual selection drawing, so when they
3564         get/lose focus they have to invalidate.
3565
3566 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
3567
3568         * TextBoxBase.cs: Don't always show all selections by default.
3569
3570 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
3571         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
3572           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
3573           Fixed various typos.
3574
3575 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3576
3577         * Control.cs: Removing the controls in a ControlCollection with
3578           Clear now hides the controls as expected. Fixes bug #78804. 
3579
3580 2006-08-03  Jackson Harper  <jackson@ximian.com>
3581
3582         * Control.cs: Revert previous focus patch, it breaks reflector.
3583
3584 2006-08-03  Jackson Harper  <jackson@ximian.com>
3585
3586         * ComboBox.cs: Cleanup selection and focus with the combobox.
3587         This also eliminates some duplicated keyboard code, since now
3588         everything is handled by the main class.
3589         - Make list selection work on mouse up instead of down, to match
3590         MS.
3591
3592 2006-08-02  Jackson Harper  <jackson@ximian.com>
3593
3594         * Control.cs: Setting focus needs to go through the whole
3595         selection mechanism.
3596
3597 2006-08-02  Chris Toshok  <toshok@ximian.com>
3598
3599         * PrintPreviewDialog.cs: change MinimumSize to use
3600         base.MinimumSize so it works.
3601
3602 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
3603
3604         * TextControl.cs:
3605           - UpdateCaret: Added sanity check in case caret isn't defined yet
3606           - Line.Delete: Now updating selection and caret markers if we're
3607             transfering a node (Properly fixes #78323)
3608           - SetSelectionEnd: Added sanity check
3609         * TextBoxBase.cs: Removed broken attempt to fix #78323
3610
3611 2006-08-01  Chris Toshok  <toshok@ximian.com>
3612
3613         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
3614         Close() call is handled in Form, not here.
3615
3616 2006-08-01  Chris Toshok  <toshok@ximian.com>
3617
3618         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
3619         layout/rendering.
3620
3621         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
3622         for sizes < 100% zoom.  The code now aggressively attempts to keep
3623         from calling document.Print (), and tries not to use the scaling
3624         g.DrawImage whenever possible (it still does if you scale to >
3625         100%, since usually that involves huge images).
3626
3627         * PrintPreviewControl.cs: hook up the close button.
3628
3629 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
3630         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
3631           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
3632           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
3633           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
3634           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
3635           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
3636           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
3637           Removed [Serializable] for 2.0 Event Handlers.
3638
3639 2006-07-31  Jackson Harper  <jackson@ximian.com>
3640
3641         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
3642         * TextControl.cs: Uncomment out the body of this method.
3643
3644 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
3645
3646         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
3647           standard cursors.
3648
3649 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3650
3651         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
3652           that embed TextBox and need selections visible even if textbox is not
3653           focused to enforce that behaviour.
3654         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
3655           selection drawing
3656
3657 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3658
3659         * TextControl.cs:
3660           - Added new SetSelectionStart/SetSelectionEnd overloads
3661           - Fixed viewport width assignment to be accurate
3662           - Adjusted alignment line shift calculations to allow cursor on right
3663             aligned lines to be always visible at the right border (like MS)
3664         * TextBoxBase.cs:
3665           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
3666           - TextBoxBase_SizeChanged: recalculating canvas on size changes
3667           - CalculateScrollBars: Use ViewPort size instead of window size, to
3668             properly consider space occupied by the border and scrollbars 
3669             (Fixes #78661)
3670           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
3671             calculations; no longer leaves artifacts
3672           - CaretMoved: Adjusted window scrolling to match MS and fixed several
3673             calculation bugs (Still missing right/center align calculations)
3674
3675 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
3676
3677         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
3678           use of both scroll rect and clip rect, as they do the same.
3679
3680 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3681
3682         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
3683           in the event handler (fixes #78912)
3684
3685 2006-07-31  Chris Toshok  <toshok@ximian.com>
3686
3687         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
3688         grid.ListManager.Count, since grid.ListManager might be null.
3689         This of course begs the question "why are we drawing rows for a
3690         grid with no list manager (and therefor no rows)?"  Fixes the
3691         crash in bug #78929.
3692
3693 2006-07-31  Chris Toshok  <toshok@ximian.com>
3694
3695         * RelatedPropertyManager.cs: Don't always chain up to the parent
3696         ctor.  instead, call SetDataSource if the parent's position is !=
3697         -1.  Fixes the crash in #78822.
3698
3699 2006-07-31  Chris Toshok  <toshok@ximian.com>
3700
3701         * DataGrid.cs (get_ListManager): use field instead of property
3702         accessors for datasource and datamember.
3703         (RowsCount): make internal again.
3704         (OnMouseDown): end edits before resizing columns/rows.
3705         (OnMouseUp): restart edits after resizing columns/rows.
3706
3707 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
3708
3709         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
3710           This fixes the situation where the last set cursor is displayed
3711           whenever the mouse is over scrollbars.
3712
3713 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3714
3715         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
3716         Document properties, as well as initial values.
3717
3718 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
3719
3720         * XplatUIWin32.cs (SetBorderStyle): Setting both border
3721           and ClientEdge results in a 3-pixel border, which is
3722           wrong.
3723
3724 2006-07-28  Jackson Harper  <jackson@ximian.com>
3725
3726         * TreeNodeCollection.cs: Fix the clear method.
3727         - Fix the Shrink also
3728
3729 2006-07-27  Jackson Harper  <jackson@ximian.com>
3730
3731         * TreeView.cs: Make sure the visible order is computed when we
3732         attempt to size the scrollbars (for trees that mess with the
3733         scrolling when they shouldn't.
3734         - Make sure to give the scrollbars valid values.
3735
3736 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3737
3738         * XplatUIX11.cs: Move motion compression code to where it
3739           has less performance impact
3740
3741 2006-07-26  Jackson Harper  <jackson@ximian.com>
3742
3743         * UpDownBase.cs: When the control is selected make the child
3744         controls non selectable, so that a click on them won't do a
3745         focus/unfocus cycle.
3746         - Don't give focus to the text box when the spinner is selected.
3747         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
3748
3749 2006-07-26  Chris Toshok  <toshok@ximian.com>
3750
3751         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
3752         satisfied with this solution.  If the bitmaps are small, we should
3753         just cache them in the PrintPreviewDialog and draw them here.
3754         Also, the layout is broken for the 2-up and 3-up cases.
3755
3756         * Theme.cs: add PrintPReviewControlPaint.
3757
3758         * PrintPreviewDialog.cs: first pass implementation.
3759
3760         * PrintPreviewControl.cs: first pass implementation.  No
3761         scrollbars yet.
3762
3763         * PrintDialog.cs: only validate fields if that particular portion
3764         of the UI is enabled.  Also, set the document's controller to a
3765         PrintControllerWithStatusDialog wrapping the document's print
3766         controller.
3767
3768         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
3769         bring up a SaveFileDialog (i hope we don't want to match the
3770         behavior of the crappy windows file entry) and set the
3771         PrinterSettings.PrintFileName accordingly.
3772
3773 2006-07-26  Jackson Harper  <jackson@ximian.com>
3774
3775         * ContainerControl.cs: Add a field that disables auto selecting
3776         the next control in a container when the container is activated.
3777         * UpDownBase.cs: Don't select the text box when the up down is
3778         selected.
3779
3780 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3781
3782         * XEventQueue.cs: Added methods for peeking (used for compression
3783           of successive events)
3784         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
3785           mouse move events (fixes #78732)
3786
3787 2006-07-25  Jackson Harper  <jackson@ximian.com>
3788
3789         * UpDownBase.cs: Use an internal class for the textbox so that we
3790         can control focus.  the updown control should always have focus,
3791         if either the text area or the buttons are clicked.
3792         - Send the key messages to the textbox, since it never actually
3793         has focus
3794         - Activate and decativate the textbox caret.
3795
3796 2006-07-24  Jackson Harper  <jackson@ximian.com>
3797
3798         * Control.cs: Use the directed select when selecting a control,
3799         this way the container controls override will get called and the
3800         whole ActiveControl chain will get triggered.  TODO: probably need
3801         to make sure this gets done everywhere instead of the old
3802         Select(Control).
3803         * ContainerControl.cs: Implement the directed Select method to
3804         find and activate the correct child control.    
3805         
3806 2006-07-22  Mike Kestner  <mkestner@novell.com>
3807
3808         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
3809         menu handling code so that clicks without a grab work too.
3810         [Fixes #78914]
3811
3812 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
3813
3814         * FileDialog.cs: Enable the BackButton when dirstack has one element.
3815           Added some small optimizations.
3816
3817 2006-07-21  Matt Hargett  <matt@use.net>
3818
3819         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
3820
3821 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
3822
3823         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
3824           tests pass and match MS in some strange border cases.
3825
3826 2006-07-21  Chris Toshok  <toshok@ximian.com>
3827
3828         * ThemeWin32Classic.cs: handle drawing of the relation links and
3829         parent row buttons.
3830
3831         * Theme.cs: change args to DataGridPaintParentRow.
3832
3833         * DataGrid.cs: Don't use controls for the relation links and
3834         parent buttons, so we have to handle all their interactions in
3835         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
3836         when we're navigating through child tables, so we can reinstate
3837         selection, expanded state, current cell, etc.
3838
3839 2006-07-20  Chris Toshok  <toshok@ximian.com>
3840
3841         * ToolBar.cs: When we redraw a button, for whatever reason,
3842         there's no reason to redraw the entire toolbar.  Also, don't call
3843         Control.Refresh from within Redraw, as it's much heavier than
3844         Invalidate (which is really what we want).
3845
3846 2006-07-20  Chris Toshok  <toshok@ximian.com>
3847
3848         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
3849         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
3850         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
3851         traces from within a debug IBindingList datasource
3852         (in mono/winforms/datagrid) for *days*, I've finally gotten things
3853         to work in a similar fashion.
3854
3855 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3856
3857         * ListBox.cs: Don't call Sort () when setting 
3858         the Sorted property to false (avoid an unnecessary sort).
3859
3860 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3861
3862         * ListControl.cs: DataSource should throw an ArgumentException
3863         instead of a normal exception when the argument is not of the 
3864         correct type.
3865
3866 2006-07-20  Mike Kestner  <mkestner@novell.com>
3867
3868         * Control.cs: add InternalPreProcessMessage to allow us to steal
3869         key events before MWF gets its paws on them.  Adapted from a
3870         suggestion by eno.
3871         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
3872         up/down/left/right navigation. Override the new internal control
3873         method to steal the events since they never make it to WndProc.
3874         * ToolBarButton.cs: don't worry about pushed when setting hilight
3875         since the drawing code prefers pushed to hilight. Invalidate on 
3876         Hilight changes. Fixes #78547 and #78525.
3877
3878 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3879
3880         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
3881           the canvas size. Fixes #78868
3882
3883 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
3884
3885         * Splitter.cs: Track requested split position until first layout
3886           is performed. Fixes #78871
3887
3888 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3889
3890         * Application.cs: Removed code that forces 1.x for the version
3891           number if the version started with 0. Not sure why that code was
3892           there and I couldn't find any bugs that indicated we needed it.
3893           Fixes #78869
3894
3895 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
3896
3897         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
3898           ResetDefaults(), just write some output to the console until it's
3899           implemented. Fixes bug #78907 for now. Eliminated two warnings.
3900
3901 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
3902
3903         * PropertyGridView.cs: set StartPosition of drop down forms
3904         so they appear in correct initial spot.  Fixes #78190.
3905
3906 2006-07-19  Mike Kestner  <mkestner@novell.com>
3907
3908         * ThemeWin32Classic.cs: use parent background color when drawing
3909         flat toolbars.  Restructure the conditionals to make sure non-flat
3910         non-Divider toolbars are filled too.  Fixes #78837.
3911
3912 2006-07-19  Mike Kestner  <mkestner@novell.com>
3913
3914         * ListBox.cs: Sort on collection changes even if the handle
3915         isn't created yet.  Fixes #78813.
3916
3917 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3918
3919         * ListControl.cs: DisplayMember should never be null,
3920         and now we assign String.Empty when null is passed to it (this
3921         is the .Net way).
3922
3923 2006-07-17  Mike Kestner  <mkestner@novell.com>
3924
3925         * ListViewItem.cs: restructure Font and subitem Font handling 
3926         to hold a specific font and refer back to owner on null.
3927         Fixes #78761.
3928
3929 2006-07-17  Mike Kestner  <mkestner@novell.com>
3930
3931         * ToolBar.cs: bandaid for side-effect of previous patch which was
3932         discarding explicit heights for non-AutoSize toolbars.  Need to
3933         extend my format tester to deal with AutoSize=false. Fixes #78864.
3934
3935 2006-07-15  Jackson Harper  <jackson@ximian.com>
3936
3937         * LabelEditTextBox.cs:
3938         * TreeView.cs: Use a new LabelEdit class for node editing, this
3939         class automatically 'closes' itself when it gets the enter key or
3940         loses focus.
3941         - Use the client rectangle when setting the trees scrollbars, so
3942         border style is taken into account.
3943         
3944 2006-07-14  Jackson Harper  <jackson@ximian.com>
3945
3946         * TreeNode.cs:
3947         * TreeView.cs: Make the editing work similar to MSs, firing the
3948         events correctly and ending edits correctly.
3949
3950 2006-07-14  Mike Kestner  <mkestner@novell.com>
3951
3952         * ToolBarButton.cs:
3953         * ToolBar.cs: layout restructuring and redraw enhancements to support
3954         formatting changes gracefully, like setting TextAlign, ImageList, 
3955         ButtonSize, and Appearance.  Handles explicit button sizing quirks
3956         of the MS controls.  Things like flat toolbars ignoring button size
3957         but becoming constant sized at the largest button's size.  Normal
3958         toolbars with an image set cannot be shrunk smaller than the image,
3959         but text can be clipped/ignored.
3960         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
3961         is zero.  Seems like DrawString should be smart enough to not put
3962         anything on screen though. Also trim labels and ellipsize at the char
3963         boundary, not word.
3964         Fixes #78711 and #78483.
3965
3966 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3967
3968         * FolderBrowserDialog.cs: Disable "New Folder" button and
3969           "New Folder" contextmenu menuitem if a folder like "My Computer"
3970           is selected.
3971
3972 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3973
3974         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
3975         * FolderBrowserDialog.cs:
3976           - Use MWFConfig to store and read size and position settings
3977           - Added code to create a new folder (button or context menu).
3978             Use TreeView labeledit to change the name of the new folder.
3979
3980 2006-07-14  Jackson Harper  <jackson@ximian.com>
3981
3982         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
3983         when the tree is scrolled we end editing.
3984
3985 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3986
3987         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
3988           Down arrows
3989
3990 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
3991
3992         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
3993         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
3994         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
3995         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
3996         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
3997         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
3998         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
3999         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
4000         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
4001         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
4002         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
4003         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
4004         ListViewItemSelectionChangedEventHandler.cs,
4005         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
4006         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
4007         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
4008         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
4009         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
4010         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
4011         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
4012         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
4013         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
4014         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
4015         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
4016         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
4017         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
4018         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
4019         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
4020         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
4021         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
4022         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
4023         WebBrowserNavigatingEventHandler.cs, 
4024         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
4025
4026 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
4027
4028         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
4029         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
4030         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
4031         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
4032         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
4033         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
4034         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
4035         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
4036         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
4037         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
4038         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
4039         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
4040         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
4041         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
4042         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
4043         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
4044         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
4045         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
4046         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
4047         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
4048         ListViewItemStates.cs, MaskFormat.cs: Added
4049
4050 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
4051
4052         * PropertyGridView.cs: Fix keyboard navigation of drop down.
4053         Patch from eno for bug 78558.
4054         
4055 2006-07-13  Jackson Harper  <jackson@ximian.com>
4056
4057         * TreeView.cs: When an edit is finished make sure that the
4058         selected node is visible.
4059         - When setting the top/bottom use the scrollbars is_visible, so
4060         everything will be set correctly even if the tree isn't visible
4061         yet.
4062
4063 2006-07-13  Jackson Harper  <jackson@ximian.com>
4064
4065         * ComboBox.cs: Revert the item->index part of my previous patch.
4066         * TreeView.cs: Use LostFocus instead of Leave for detecting when
4067         the edit box has lost focus (duh).
4068         - Just make the edit box not visible when we get return, that will
4069         take the focus, which will call EndEdit
4070         * TreeNode.cs When we start editing, notify the treeview.
4071
4072 2006-07-12  Jackson Harper  <jackson@ximian.com>
4073
4074         * ComboBox.cs: Clear out old items before setting the item list.
4075         This prevents databound controls from having their items added
4076         twice.
4077         - Switch the combobox to use indices whereever possible instead of
4078         using Item's.  This allows usto navigate through lists that have
4079         more then one item with the same string value (ie a, b, b, a).
4080         - Scroll the listboxes scrollbar when a non visible item is
4081         highlighted
4082         - Allow keypress to cycle through all the possible values. For
4083         example if you have b1, b2, b3 and hold down the B key all the
4084         values will be cycled through.
4085         
4086 2006-07-12  Jackson Harper  <jackson@ximian.com>
4087
4088         * TextBoxBase.cs:
4089         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
4090         this using the internal methods.
4091         * Control.cs: Add OnGotFocusInternal.  A new method that allows
4092         controls to "override" OnGotFocus and change focus behavior if
4093         needed.
4094         - Same thing for LostFocus
4095         * ComboBox.cs: Pass off focus to the text control properly.
4096
4097 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
4098
4099         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
4100         * FolderBrowserDialog.cs: Almost a complete rewrite.
4101           - Better support for Environment.Specialfolders
4102           - Added support for MWFVFS
4103           - Made setting SelectedPath work
4104
4105 2006-07-12  Jackson Harper  <jackson@ximian.com>
4106
4107         * Control.cs: Optimze getting all the controls.
4108
4109 2006-07-11  Jackson Harper  <jackson@ximian.com>
4110
4111         * ContainerControl.cs: Override SETFOCUS in the container control,
4112         so that it is not selected on mouse click.
4113
4114 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
4115
4116         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
4117           Hopefully we will have a better way once all of focus is complete.
4118
4119 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
4120
4121         * ThemeWin32Classic.cs: Commented out some debug code and fixed
4122           a compile error with csc.
4123
4124 2006-07-11  Jackson Harper  <jackson@ximian.com>
4125
4126         * Control.cs: When hiding a control only select the next control
4127         if the current control was focused.
4128         - Don't handle enter/leave when setting/killing focus, this is
4129         done by the container control.
4130         - Remove is_selected, it's not needed anymore.
4131         - Add utility methods for selecting a child control, and for
4132         firing the Enter/Leave events.
4133         * ContainerControl.cs: When a control is activated fire the
4134         enter/leave events.
4135         - Don't wrap when processing the tab key, so that focus can be
4136         moved outside of the container.
4137         - Use the correct active control
4138
4139 2006-07-11  Jackson Harper  <jackson@ximian.com>
4140
4141         * ComboBox.cs: Remove some debug code that was blinding me.
4142         * UpDownBase.cs: These controls actually aren't implicit, they are
4143         visible to the user.
4144
4145 2006-07-10  Chris Toshok  <toshok@ximian.com>
4146
4147         * DataGrid.cs: move back to the is_adding boolean field.  god i
4148         hate this is_editing/is_adding/is_changing stuff.
4149
4150 2006-07-10  Chris Toshok  <toshok@ximian.com>
4151
4152         * DataGridTableStyle.cs: just check if the property type is bool.
4153         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
4154         Don't use CanRenderType.
4155
4156         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
4157         if our text == NullText.  Remove CanRenderType.
4158
4159         * DataGridBoolColumn.cs: nuke CanRenderType.
4160
4161         * DataGrid.cs: reenable some code to end the current edit inside
4162         of set_CurrentCell.  This fixes the other 1.1.16 regression.
4163         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
4164         Also, remove the visible_row_count arg from CalcRowHeaders, since
4165         we don't need to worry about the actual height of the area.
4166
4167 2006-07-10  Chris Toshok  <toshok@ximian.com>
4168
4169         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
4170         mode, just return.
4171
4172         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
4173         the real sense of the IsInEditOrNavigateMode property (true =
4174         navigate, false = edit).  Also, update OnKeyPress to reflect this.
4175
4176         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
4177         column style exists, we still need to set its property descriptor
4178         to match up with our list manager.
4179
4180 2006-07-10  Chris Toshok  <toshok@ximian.com>
4181
4182         * ThemeWin32Classic.cs: implement the new row/header painting
4183         approach.  The parent row painting will likely go away and
4184         replaced with label controls, but the rest seems to work ok (and
4185         efficiently).
4186
4187         * Theme.cs: change the way we draw datagrid rows.  we don't draw
4188         the row headers as a block now.  Instead we draw them in the
4189         normal draw-row loop.  Add some calls for drawing parent rows and
4190         relation rows.
4191
4192         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
4193         a default table style.  Set the defaults from ThemeEngine.Current,
4194         not SystemColors.  Fix lots of misc issues with property setters.
4195
4196         * DataGrid.cs: move loads of style information out of this class
4197         as it's being duplicated with DataGridTableStyle.  keep track of a
4198         special DataGridTableStyle for the properties we used to mirror
4199         here.  Switch all the style properties to access this table style
4200         instead of instance fields of this class.  Also add a internal
4201         class to represent parent rows (more needs to be stored here, like
4202         the selection state from the parent table, as well as the
4203         expansion state.)  Also, for datasources with relations, do the
4204         right thing for collapse/expand, and add support for the
4205         navigation/parent row buttons.
4206
4207         Lastly, fix the crash in the 1.1.16 build.
4208
4209         * GridTableStylesCollection.cs: make the explicit interface
4210         implementations call the class's methods as opposed to duplicating
4211         them.
4212
4213         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
4214         0 so the text doesn't jump around when we move the cursor.
4215
4216 2006-07-10  Jackson Harper  <jackson@ximian.com>
4217
4218         * TextBoxBase.cs:
4219         * ListBox.cs: Match MS's ToString (this makes debugging focus
4220         stuff infinitely easier).
4221
4222 2006-07-10  Jackson Harper  <jackson@ximian.com>
4223
4224         * Control.cs (SelectNextControl): When checking the control's
4225         parent use this instead of ctrl.parent so that null can be passed
4226         to SelectNextControl. (I have unit tests for this).
4227         - Remove unused var.
4228
4229 2006-07-10  Chris Toshok  <toshok@ximian.com>
4230
4231         * CurrencyManager.cs: correct one regression, the removal of the
4232         finalType field.  Also, add a MonoTODO on CanAddRows, implement
4233         Refresh() correctly, and fix some event emission in
4234         ListChangedHandler.
4235
4236 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4237
4238         * FileDialog.cs: Don't use brackets for new folders if they exist
4239           under *nix. Instead use -(number of existing folders +1).
4240
4241 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4242
4243         * FileDialog.cs:
4244           - Fixed really nasty bug #78771
4245           - Don't block the whole GUI when reading directories with a lot of
4246             entries. Use an other thread instead and call BeginInvoke to
4247             update the ListView in MWFFileView
4248
4249 2006-07-07  Chris Toshok  <toshok@ximian.com>
4250
4251         * Control.cs (Dispose): release any Capture when disposing.
4252
4253 2006-07-07  Chris Toshok  <toshok@ximian.com>
4254
4255         * LinkLabel.cs (Select): if we chain up to the parent, set
4256         focused_index to -1 so we'll search for the first available link
4257         the next time the user tabs into us.  Also, if the direction is
4258         backward and focused_index == -1, start the search from the last
4259         element.
4260
4261 2006-07-07  Chris Toshok  <toshok@ximian.com>
4262
4263         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
4264         is beyond the end of the text, don't do anything.
4265         (CreateLinkPieces): set our ControlStyles.Selectable based on
4266         whether or not we have any links.
4267         (Link.Invalidate): use a loop instead of foreach.
4268         (Link.set_Start): null out owner.sorted_links so it'll be
4269         recreated by CreateLinkPieces.
4270
4271 2006-07-06  Chris Toshok  <toshok@ximian.com>
4272
4273         * LinkLabel.cs: revert the SetStyle change.
4274
4275 2006-07-06  Chris Toshok  <toshok@ximian.com>
4276
4277         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
4278         (OnEnableChanged): s/Refresh/Invalidate
4279         (OnGotFocus): if we have a focused index already, refocus it (so
4280         if we mouse out/in to the window it'll focus the right link).
4281         (OnKeyDown): move the tab handling out of here.
4282         (OnLostFocus): don't set focused_index to -1, so we can refocus it
4283         when we lose focus.
4284         (OnMouseDown): don't Capture here - Control handles it.  Also,
4285         focus the active link.
4286         (OnMouseUp): don't deal with Capture.
4287         (OnPaintBackgroundInternal): remove.
4288         (OnTextAlignChanged): CreateLinkPieces before calling the
4289         superclass's method.
4290         (OnTextChanged): call CreateLinkPieces before calling superclass's
4291         method.
4292         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
4293         move around.
4294         (Select): implement this, moving the selection between different
4295         links, and call parent.SelectNextControl if we don't have another
4296         link to focus in the given direction.
4297         (CreateLinkPieces): call Invalidate instead of Refresh.
4298         
4299 2006-07-06  Chris Toshok  <toshok@ximian.com>
4300
4301         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
4302         new LinkLabel internals.
4303
4304         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
4305         over pieces looking for active/focused/etc links.  also, deal with
4306         runs of text (and links) with embedded \n's in them, and use
4307         MeasureCharacterRanges instead of MeasureString to figure out the
4308         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
4309         two-step.
4310
4311 2006-07-04  Jackson Harper  <jackson@ximian.com>
4312
4313         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
4314         XKB or key auto repeat, do it manually.  Without key auto repeat,
4315         when a key is held down we get key press, key release, key press,
4316         key release, ... with auto repeat we get key press, key press, key
4317         press ..., and then a release when the key is actually released.
4318
4319 2006-07-03  Jackson Harper  <jackson@ximian.com>
4320
4321         * TabControl.cs:
4322         * ThemeWin32Classic.cs: Tabs do not obey normal background color
4323         rules, they are always control color regardless of the background
4324         color.
4325
4326 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
4327
4328         * FileDialog.cs: Added internal class MWFConfig.
4329           Removed Registry support and replaced it with support for the new
4330           MWFConfig class. See MWFConfig comments for more information.
4331
4332 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
4333
4334         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
4335           rectangle. Added some patches from eno from bug #78490 and fixed
4336           the arrow position for small up and down CPDrawScrollButtons.
4337
4338 2006-06-30  Jackson Harper  <jackson@ximian.com>
4339
4340         * InternalWindowManager.cs: Remove some debug code.
4341         * Form.cs: When an MdiParent is set to null, the window is
4342         "detatched" and becomes a normal window.
4343         * MdiClient.cs: Don't bring the new child form to the front until
4344         it is activated (setting it as active does this), this makes the
4345         previously active forms titlebar get redrawn as inactive.
4346
4347 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
4348
4349         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
4350           with later controls
4351
4352 2006-06-29  Mike Kestner  <mkestner@novell.com>
4353
4354         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
4355         arrow in keynav state.  Fixes #78682.
4356
4357 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4358
4359         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
4360           order (fixes #78393)
4361
4362 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
4363
4364         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
4365           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
4366           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
4367           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
4368           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
4369           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
4370           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
4371           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
4372           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
4373           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
4374           enumerations (FlagsAttribute, SerializableAttribute, added/removed
4375           values)
4376
4377 2006-06-28  Mike Kestner  <mkestner@novell.com>
4378
4379         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
4380
4381 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4382
4383         * PropertyGrid.cs,
4384           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
4385           item lines from other area (It also makes BackColor consistent and
4386           compatible with .NET). Fixed bug #78564.
4387
4388 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
4389
4390         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
4391         Patch from Eno for #78555.
4392
4393 2006-06-27  Chris Toshok  <toshok@ximian.com>
4394
4395         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
4396
4397         * DataGridColumnStyle.cs: same.
4398
4399         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
4400         
4401         * DataGridDrawingLogic.cs: nuke.
4402
4403 2006-06-27  Chris Toshok  <toshok@ximian.com>
4404
4405         * DataGridTableStyle.cs: clean up the constructors, and build the
4406         list of child relations for this table.  I have no idea if this is
4407         where we should be doing it (it probably isn't), but since we're
4408         already iterating over the properties..
4409
4410         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
4411         struct and array for keeping track of row information, similar to
4412         what's shown in a hack on
4413         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
4414
4415         * Theme.cs: be consistent about the naming of DataGrid methods,
4416         prefering ColumnWidths and RowHeights over columnsWidths and
4417         RowsHeights.
4418
4419         * ThemeWin32Classic.cs: same, and also add support for variable
4420         sized rows (and the +/- expansion icons for related rows).
4421
4422 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4423
4424         * TextBoxBase.cs: Applied Eno's patch from #78660
4425
4426 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4427
4428         * Form.cs (ScaleCore): We don't want to scale our form if it's
4429           state is minimized or maximized, but we still need to scale our
4430           child windows. Also, added try/finally block to ensure layout
4431           gets reset (Fixes #78697)
4432
4433 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4434
4435         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
4436
4437 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4438
4439         * Form.cs: Fixed c+p error and added check to resize form if minimum
4440           size is bigger than current size (Fixes #78709)
4441
4442 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
4443
4444         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
4445
4446 2006-06-26  Mike Kestner  <mkestner@novell.com>
4447
4448         * ComboBox.cs: only do Keypress handling in the combo when there  
4449         are items in the collection. Fixes #78710.
4450
4451 2006-06-26  Chris Toshok  <toshok@ximian.com>
4452
4453         * Binding.cs: make this work bi-directionally.  also, clear up
4454         other mixups between Push/Pull Data (e.g. we're supposed to pull
4455         data when validating).
4456
4457         * BindingManagerBase.cs: trim some fully qualified collection
4458         types.
4459
4460         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
4461
4462 2006-06-23  Chris Toshok  <toshok@ximian.com>
4463
4464         * PropertyManager.cs: It appears (according to the unit tests)
4465         that PropertyManager doesn't use
4466         PropertyDescriptor.AddValueChanged to track propery value changes
4467         in its datasource, but uses the same scheme as Binding, where it
4468         looks for a <Property>Changed event and binds to it.
4469
4470         Also, according to the docs, IsSuspended always returns false for
4471         a property manager with a non-null datasource.
4472
4473 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
4474
4475         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
4476           need to update the actual DialogResult. (Fixes #78613)
4477
4478 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
4479
4480         * Form.cs (ShowDialog): Release any captures before running the
4481           new message pump (fixes #78680)
4482
4483 2006-06-22  Mike Kestner  <mkestner@novell.com>
4484
4485         * ListView.cs: Layout column widths properly in details mode even 
4486         if HeaderStyle.None is set.  Fixes #78691.
4487
4488 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
4489
4490         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
4491
4492 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
4493
4494         * Control.cs (ContainsFocus): Using new driver method to get focused
4495           window, instead of trying to use internal tracking var, which can
4496           recursion issues (Fixes #78685)
4497         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4498           XplatUIWin32.cs: Added GetFocus method to return focused window
4499
4500 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4501
4502         * ColorDialog.cs: when the mouse button is pressed inside the color
4503         matrix, don't let the cursor move out of it until the button is
4504         released, which is the behavior on windows. Changed 'colours' by
4505         'colors' to use the same word consistently.
4506
4507 2006-06-21  Chris Toshok  <toshok@ximian.com>
4508
4509         * DataGrid.cs: add in some basic navigation stuff (navigating to a
4510         child relation and back, using a stack).  Also, remove
4511         GetDataSource and the code that calls it - it's not needed.  Also,
4512         track CurrencyManager.ListName's removal.
4513
4514 2006-06-21  Chris Toshok  <toshok@ximian.com>
4515
4516         * CurrencyManager.cs: push some of the original type checking from
4517         BindingContext.CreateBindingManager to here, and remove some of
4518         the finalType stuff.  Need more tests to make sure I've got the
4519         ListName part right, and we might need more in SetDataSource.
4520
4521         * PropertyManager.cs: add a ctor that takes just the datasource,
4522         and no property name.  Make SetDataSource work with a null
4523         property_name, and make Current return the data_source if the
4524         property descriptor is null.  this makes 'string foo = "hi";
4525         BindingContext[foo].Current' return "hi" as it should.
4526
4527         * RelatedCurrencyManager.cs: make this code more generic - there's
4528         no reason the parent manager has to be CurrencyManager, and
4529         there's no reason to pass the DataRelation.  It suffices to use a
4530         BindingManagerBase and PropetyDescriptor.
4531
4532         * RelatedPropertyManager.cs: make a similar change here.
4533         
4534         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
4535         flower I knew it could be.
4536
4537 2006-06-20  Chris Toshok  <toshok@ximian.com>
4538
4539         * PropertyManager.cs: the PropertyChangedHandler is invoked when
4540         data in the source has changed and we need to update the control,
4541         so s/PullData/PushData.
4542
4543         * CurrencyManager.cs: Refresh is meant to update the control from
4544         data in the datasource.  So, s/PullData/PushData.
4545
4546         * BindingContext.cs: add more ugliness (we weren't handling the
4547         case where data_source = DataTable and data_member = column_name).
4548
4549         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
4550         from the perspective of the datasource.  PullData pulls from the
4551         control, PushData pushes to the control.
4552
4553 2006-06-20  Chris Toshok  <toshok@ximian.com>
4554
4555         * BindingContext.cs: rewrite the CreateBindingManager code to
4556         handle navigation paths more or less properly.  This could
4557         definitely stand some more work, in particular to push the
4558         recursion up to the toplevel.  But that relies on fixes in other
4559         places (System.Data comes to mind).
4560
4561         Also, move to a flat hashtable (and encode the twolevel nature of
4562         the dictionary into the hash key).  This lets us implement the
4563         IEnumerable.GetEnumerator method.
4564
4565         * RelatedCurrencyManager.cs: new class.  Update our view based on
4566         our relation and our parent CurrencyManager's position.
4567
4568         * CurrencyManager.cs: split out some logic from the ctor into
4569         SetView, so it can be called from the new RelatedCurrencyManager
4570         subclass.
4571
4572         * RelatedPropertyManager.cs: new class.  Update our datasource
4573         based on the position of our parent CurrencyManager.
4574
4575         * PropertyManager.cs: split out some logic from the ctor into
4576         SetDataSource, so it can be called from the new RelatedDataSource
4577         subclass.  Also, make the Current getter return the value
4578         of the PropertyDescriptor, not the data_source.
4579
4580         * Binding.cs: no need to duplicate the string splitting code here.
4581
4582 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4583
4584         * Control.cs:
4585           - set_Enabled: OnEnabledChanged is not called if the inherited state 
4586             of the control is not altered, even though  we might be changing the
4587             internal state of the control (#78458)
4588           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
4589             OnEnabledChanged, to allow easy altering of any child window state
4590           - OnEnabledChanged: Added code to enable/disable driver window state
4591           - OnParentEnabledChanged: Instead of firing the event, call 
4592             OnEnabledChanged, which will fire the event and also a) set driver
4593             window state and pass the enabled state to any grandchildren (#78458)
4594
4595 2006-06-19  Jackson Harper  <jackson@ximian.com>
4596
4597         * InternalWindowManager.cs: We don't set the cursor explicitly
4598         thats done via the response to NCHITTESTs.
4599         - Don't need to adjust for titlebar heights anymore, the
4600         coordinates are coming in the correct coordinates now (see peters
4601         last patch).
4602
4603
4604 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4605
4606         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
4607           being translated relative to whole window, instead of client window.
4608           That caused broken offsets on mouseclick (and caused gas for our
4609           InternalWindowManager)
4610
4611 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4612
4613         * TextControl.cs:
4614           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
4615           - Undo(): Added replay of cursor move on DeleteChars action; added
4616             calling Undo() again if a recorded cursor move is invalid (to
4617             ensure that some action is performed on Undo)
4618         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
4619
4620 2006-06-16  Jackson Harper  <jackson@ximian.com>
4621
4622         * MdiClient.cs: Instead of just sizing maximized windows when
4623         there is a resize we also have to adjust the Y of minimized
4624         windows, so they stay pinned to the bottom of the mdi container.
4625         - Eliminate separate tracking of the active control, we can just
4626         get this from the controls collection.
4627         - Paint the decorations for the newly activated titlebar so we get
4628         a pretty blue bar.
4629         * InternalWindowManager.cs:
4630         * ThemeWin32Classic.cs: Minimized windows get all three buttons
4631         even if they are a tool window.
4632         
4633 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4634
4635         * TextControl.cs (Undo): Handle non-existent cursor locations in the
4636           undo buffer, these can happen when text was deleted and the cursor
4637           was recorded first. Since we will also have a recorded cursor
4638           after the delete this is not an issue. (Fixes #78651)
4639
4640 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
4641
4642         * AccessibleObject.cs: Remove dependence on Control.is_selected;
4643           instead properly track control states internally (allows us to
4644           remove is_selected from Control)
4645
4646 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4647
4648         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
4649         whose width is not a multiple of 8.
4650
4651 2006-06-13  Jackson Harper  <jackson@ximian.com>
4652
4653         * MdiClient.cs:  Only maximize the next child if the current one
4654         is maximized.
4655
4656 2006-06-13  Chris Toshok  <toshok@ximian.com>
4657
4658         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
4659         modified.  Also, guard against grid or grid_drawing being null in
4660         Invalidate.
4661
4662         * DataGrid.cs: Reformat tons of getters/setters.  In the
4663         DataMember setter, just call SetNewDataSource instead of
4664         duplicating some of its functionality.  In SetNewDataSource, don't
4665         check ListManager for null, since the property getter creates the
4666         object if needed.
4667
4668         * DataGridTableStyle.cs: don't set TableStyle or call
4669         SetDataGridInternal on the column here, it's done in
4670         GridColumnStylesCollection.Add.
4671
4672         * GridColumnStylesCollection.cs: fix all the explicit interface
4673         implementations to just call our methods.  Nuke AddInternal() and
4674         move the body of it to Add().  Also, add a call to
4675         column.SetDataGridInternal to Add().
4676
4677         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
4678         base()+duplicate code.  Also, use the Format property instead of
4679         format to generate an Invalidate ala MS.  Lastly, create the
4680         textbox here, unconditionally.
4681         (set_Format): call Invalidate.
4682         (get_TextBox): no need to call EnsureTextBox.
4683         (Commit): remove the message box.
4684         (Edit) remove the call to EnsureTextBox.
4685         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
4686         (EnterNullValue): no need to check textbox for null.
4687         (HideEditBox): no need to check textbox for null.
4688         (SetDataGridInColumn): add the textbox to the grid's controls.
4689         (EnsureTextBox): nuke.
4690         
4691 2006-06-13  Jackson Harper  <jackson@ximian.com>
4692
4693         * MdiWindowManager.cs: Hook up to the maximized menus paint event
4694         and redraw the buttons when needed. Unhook when the window is
4695         unmaximized.
4696         * MainMenu.cs: Add an internal Paint event, the mdi window manager
4697         needs this so that it can redraw its buttons when the menu is
4698         repainted.
4699         * InternalWindowManager.cs:
4700         * Form.cs: The method order has changed for DrawMaximizedButtons,
4701         so that it can be a PaintEventHandler.
4702         
4703 2006-06-13  Jackson Harper  <jackson@ximian.com>
4704
4705         * MdiClient.cs: When we close a maximized mdi window, the next mdi
4706         window is activated and maximized, even if it wasn't before.
4707         - When  a new window is activated repaint the decorations of the
4708         old one, so that it no longer has the Active "look" (the blue
4709         titlebar).
4710         * InternalWindowManager.cs: Open up CreateButtons to base classes
4711         so they can recreate the buttons on state changes.
4712         - If a window is maximized give it all three buttons
4713         * MdiWindowManager.cs: Create the titlebar buttons when the state
4714         is changed, this is needed because a toolwindow will not have all
4715         three buttons until it is maximized.
4716
4717 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
4718
4719         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
4720           Fixed bug #78609.
4721
4722 2006-06-12  Jackson Harper  <jackson@ximian.com>
4723
4724         * KeysConverter.cs: Make sure we handle the Ctrl special case
4725         if its the only key.
4726         
4727 2006-06-12  Jackson Harper  <jackson@ximian.com>
4728
4729         * Theme.cs: Add a method to get the size of a managed window
4730         toolbar button.
4731         * InternalWindowManager.cs: Remove the ButtonSize property, this
4732         should be retrieved from the theme.
4733         * MdiWindowManager.cs: Get the button size from the theme
4734         * ThemeWin32Classic.cs: Make the method to get the managed window
4735         titlebar button size public.
4736         - Handle the different button sizes of maximized toolwindows
4737         (should match any maximized window).
4738         - Get the titlebar height from the theme, not the WM (which gets
4739         it from the theme).
4740
4741 2006-06-12  Jackson Harper  <jackson@ximian.com>
4742
4743         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
4744         event down to the mdi window manager.
4745         - Expose some extra stuff to base classes
4746         - Make sure to end the Capture on an NC Mouse up, so that we can
4747         get double clicks properly, and the sizing doens't stick.
4748         - When doing PointToClient contain it in the workable desktop
4749         area, this prevents windows from changing size when the cursor is
4750         pulled outside of the working area while sizing.
4751         * MdiWindowManager.cs: When we get a double click maximize the
4752         window.
4753         - Reset the cursor after handling mode changes.
4754
4755 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
4756
4757         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
4758           current desktop, instead of just assuming a 0, 0 origin. This
4759           is needed for our internal window manager, to know the top
4760           margin of the desktop
4761
4762 2006-06-12  Chris Toshok  <toshok@ximian.com>
4763
4764         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
4765         we need this to get rid of the selected background in the bool
4766         column.
4767         (CancelEditing): move the ConcedeFocus call to above the Abort
4768         call.  Also, set is_changing to false and invalidate the row
4769         header if we were changing before.
4770         (ProcessKeyPreviewInternal): remove, since noone outside this
4771         class calls it anymore.  Roll the code into ProcessKeyPreview.
4772         (EndEdit): remove the internal version.
4773         (InvalidateCurrentRowHeader): make private.
4774
4775         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
4776         Keys.Escape handling (and with it the last call to
4777         DataGrid.EndEdit from outside the class.)
4778
4779
4780 2006-06-12  Chris Toshok  <toshok@ximian.com>
4781
4782         * DataGridTextBox.cs (.ctor): isedit defaults to false.
4783         (OnKeyPress): set isedit to true.
4784         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
4785         already handled by the grid.
4786
4787         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
4788         right.  ugh.
4789         (set_DataSource): SetDataSource always returns true, so stop
4790         putting it in an if statement.
4791         (EndEdit): get rid of some {}'s
4792         (ProcessGridKey): return true in case Keys.Escape.
4793         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
4794         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
4795         PositionChanged, stopped connecting to CurrentChanged.
4796         (GetDataSource): simplify this a bunch.
4797         (SetDataSource): change return type from bool to void.
4798         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
4799         to this, and make sure we don't set ListManager.Position inside
4800         set_CurrentCell.
4801         (OnListManagerItemChanged): if we're passed an actual index,
4802         redraw that row.
4803
4804         * CurrencyManager.cs (set_Position): don't call PullData here.
4805
4806 2006-06-09  Jackson Harper  <jackson@ximian.com>
4807
4808         * TreeNode.cs:  Recalculate the visible order before doing the
4809         Expand/Collapse Below calls, because those calls generate an
4810         expose.
4811         - Reduce calls to the TreeView property, which is mildly expensive
4812         by using a local var.
4813         * Form.cs: Layout the MDI child windows when creating the parent
4814         form.
4815         - Don't use the internal constructor anymore
4816         * MdiClient.cs: use the parent form width/height (if available)
4817         when laying out the child windows, we do this because the
4818         mdiclient isn't docked yet when the initial layout is done.
4819         - Don't need an internal constructor anymore.
4820
4821 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4822
4823         * FileDialog.cs: handle access errors when trying to create a folder
4824         or changing to a directory. No need to initialize out parameters.
4825
4826 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4827
4828         * FileDialog.cs: Append a number when creating a new folder if the
4829           folder already exists (use parenthesis instead of square brackets)
4830
4831 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4832
4833         * FileDialog.cs:
4834           - Disabled registry support for windows and added better registry
4835             error checking for other systems (need to investigate why it
4836             works perfectly on my system)
4837           - If a folder already exist show an error MessageBox instead of
4838             trying to create an indexed name.
4839           - Fixed a non intentional typo.
4840
4841 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4842
4843         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
4844
4845 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4846
4847         * FileDialog.cs: When creating a new folder don't crash if the
4848           folder already exists.
4849
4850 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4851
4852         * FileDialog.cs: Allmost a complete rewrite.
4853           - added a "virtual" file system that handles the differences
4854             between unix and windows file systems (especially the directory
4855             structure). Moved most of the directory and file handling code
4856             into the vfs.
4857             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
4858             UnixFileSystem and FSEntry.
4859           - Recently used folder/directory, size, location and used file names
4860             (file name ComboBox) are now stored in the registry and get read
4861             before the dialog shows up (fixes part 6 of bug #78446).
4862           - Creation of new folders/directories is now possible (context menu
4863             or ToolBar). Added TextEntryDialog for this that fills in the gap
4864             until ListView.LabelEdit works.
4865           - Fixed cursor handling (bug #78527) and focus handling for
4866             PopupButtonPanel
4867           - Various "Search in" ComboBox enhancements. The content of the
4868             dropdown listbox now almost matches ms.
4869           - Changed the behaviour when the user switches to SpecialFolder
4870             Recent to show the ListView in View.Details.
4871           - Beside using the ToolBar to change the View property of the
4872             file ListView it is now possible to use the context menu too.
4873
4874 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4875
4876         * ComboBox.cs: Don't create a new ObjectCollection when an item
4877           gets inserted. Just insert the item in the existing object_items
4878           ArrayList.
4879
4880 2006-06-08  Jackson Harper  <jackson@ximian.com>
4881
4882         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
4883         that the treeview and root node checks are done also, this fixes a
4884         regression i caused in the unit tests.
4885
4886 2006-06-07  Wade Berrier <wberrier@novell.com> 
4887
4888         * RichTextBox.cs: More ISO8859-1 -> unicode
4889
4890 2006-06-07  Mike Kestner  <mkestner@novell.com>
4891
4892         * ComboBox.cs : use items to hold highlight/selection so that
4893         collection insertions don't require synchronization.
4894
4895 2006-06-07  Jackson Harper  <jackson@ximian.com>
4896
4897         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
4898         routine.  We now always keep the sized edge at the cursor instead
4899         of computing movement and adjusting rects.  There is one buglet
4900         with this method though when the cursor is moved over area that
4901         the window can not expand too (such as the toolbars on the desktop).
4902
4903 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4904
4905         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
4906         here. Fixes crash on startup in AlbumSurfer.
4907
4908 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
4909
4910         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
4911           values
4912
4913 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4914
4915         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
4916         statement to avoid calling XNextEvent which will block if another thread
4917         took the event that we were expecting. Fixes bug #78605.
4918
4919 2006-06-07  Mike Kestner  <mkestner@novell.com>
4920
4921         * ListView.cs : isolated checkbox clicking from the selection logic.
4922         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
4923
4924 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4925
4926         * Form.cs: Check that the value passed to Form.DialogResult
4927         is a valid enum value.
4928
4929 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4930
4931         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
4932         Computer'. Clicking it in the network view goes to 'My Computer'.
4933         Added CIFS filesystem type. Display the mount point of filesystems.
4934         Avoid duplicate mount points (happens for me with CIFS);
4935
4936 2006-06-06  Jackson Harper  <jackson@ximian.com>
4937
4938         * InternalWindowManager.cs: Draw the maximized windows buttons
4939         when resizing.
4940
4941 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4942
4943         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
4944         all other dialogs. Fixes bug #78585.
4945
4946 2006-06-06  Mike Kestner  <mkestner@novell.com>
4947
4948         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
4949         Only invalidate checkbox on checkstate changes to avoid flicker.
4950         * ListBox.cs : avoid unselect/select when clicking selected item.
4951         avoid reselection flicker for already multiselected items.
4952         Fixes #78382.
4953
4954 2006-06-06  Jackson Harper  <jackson@ximian.com>
4955
4956         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
4957         the parent form so that the menu is removed if needed.
4958
4959 2006-06-06  Mike Kestner  <mkestner@novell.com>
4960
4961         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
4962         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
4963
4964 2006-06-06  Mike Kestner  <mkestner@novell.com>
4965
4966         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
4967
4968
4969 2006-06-06  Jackson Harper  <jackson@ximian.com>
4970
4971         * Control.cs: Use the property (instead of the field) to get the
4972         default cursor so it is instantiated correctly.
4973         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
4974         resizes so we need to manually repaint the window decorations here.
4975         - Set the titlebar button locations as soon as they are created,
4976         otherwise they are not set correctly on win32.
4977         
4978 2006-06-06  Chris Toshok  <toshok@ximian.com>
4979
4980         * CurrencyManager.cs (set_Position): call PullData before
4981         OnCurrentChanged.
4982         (AddNew): after calling IBindingList.AddNew, update our
4983         listposition, and call OnCurrentChanged/OnPositionChanged (without
4984         calling PullData).
4985         (OnCurrentChanged): remove the call to PullData from here.
4986         (OnItemChanged): remove the call to PushData from here.
4987         (OnPositionChanged): change the test from == null to != null to
4988         match the other methods.
4989         (ListChangedHandler): the grossest part of the patch.  Implement
4990         this such that it passes the unit tests in CurrencyManagerTest and
4991         the output more or less matches that of MS's implementation.
4992  
4993 2006-06-06  Mike Kestner  <mkestner@novell.com>
4994
4995         * ListView.cs : only update check state on single click.
4996         * ThemeWin32Classic.cs : fix focus drawing for details view without
4997         fullrowselect.  Fixes #78454.
4998         * XplatUIX11.cs : fix for double click emission.
4999
5000 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5001
5002         * PropertyGridView.cs : Applied Atsushi's patch to fix
5003         font dialog bug  (#78197).
5004
5005 2006-06-05  Jackson Harper  <jackson@ximian.com>
5006
5007         * TreeNode.cs: Compute the next node for expanding/collapsing
5008         correctly. We now factor in nodes without a NextNode
5009         correctly. (Fixes somes cases in nunit-gui).
5010         * InternalWindowManager.cs: Set the bounds when updating the
5011         virtual position of a tool window.
5012         
5013 2006-06-05  Chris Toshok  <toshok@ximian.com>
5014
5015         * DataGrid.cs: rename cached_currencymgr to list_manager.
5016         (set_CurrentCell): move SetCurrentCell code here, and clean it up
5017         some.
5018         (CurrentRow, CurrentColumn): single accessors so we can make the
5019         cursor movement code a lot easier to understand.
5020         (CurrentRowIndex): implement this in terms of CurrentRow.
5021         (BeginEdit): clean this up a bit.
5022         (CancelEditing): sort out the is_editing/is_changing/is_adding
5023         stuff a little.
5024         (EndEdit): minor changes.
5025         (OnKeyDown): add a comment about a (most likely) unnecessary
5026         check.
5027         (OnMouseDown): cancel editing when we click on a row header.  And
5028         use the CurrentRow setter, not CurrentCell.
5029         (ProcessDialogKey): directly call ProcessGridKey.
5030         (UpdateSelectionAfterCursorMove): factor out this common block of
5031         code (it's used everywhere that we move the cursor by updating row
5032         or column).
5033         (ProcessGridKey): pretty substantial overhaul.  Use the
5034         CurrentRow/CurrentColumn properties to make the code a lot more
5035         readable.  Only use the CurrentCell property when we have to
5036         modify both row and column at once.  Tab behavior is still broken,
5037         and Delete is untested.
5038         (Select): if we have no selected rows, set selection_start to
5039         @row.
5040         (EditCurrentCell): rename EditCell this.  It was only ever invoked
5041         with CurrentCell as the arg, so drop the arg and rename it.
5042
5043         * DataGridColumnStyle.cs: clean up the constructors a little, and
5044         drop CommonConstructor().
5045
5046         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
5047         actually get notified when the user hits it.
5048         (ProcessKeyMessage): *substantially* simplify this method.
5049         There's no reason (that I can see) for the textbox to be making
5050         calls into the datagrid at all.  Remove all of them but the ones
5051         for Enter handling.  those will take some more work.
5052
5053         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
5054         calling HideEditBox.
5055         (HideEditBox): if we have an active textbox, render it invisible
5056         without causing a re-layout of the datagrid.
5057
5058 2006-06-05  Mike Kestner  <mkestner@novell.com>
5059
5060         * ListView.cs : fix NRE crasher when focuseditem is cleared by
5061         collection changes by resetting it to Items[0].  Fixes #78587.
5062
5063 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5064
5065         * MessageBox.cs: if the height of the text is larger than the icon_size,
5066         use that. Fixes bug #78575.
5067
5068 2006-06-05  Jackson Harper  <jackson@ximian.com>
5069
5070         * TreeView.cs: Fix line drawing when scrolling.  To do this each
5071         node is basically responsible for drawing its entire horizontal
5072         area.  When drawing a node it draws its parent node lines if
5073         needed.
5074         - Adjust the clip area to the viewport rectangle
5075         - Fix Left/Right key handling to match MS. (It expand/collapses
5076         and moves to parents/first child but does not move selection to
5077         sibling nodes).
5078         - Fix SetTop to work with new bound calculation code
5079         - When scrollbars are no longer needed we need to reset scrolling
5080         vars and recalculate the visible order so the redraw is correct
5081         * TreeNode.cs: We can't expand/collapse nodes with no children.
5082
5083 2006-06-03  John Luke  <john.luke@gmail.com> 
5084
5085         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
5086         so the colors work without dev packages
5087         
5088 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
5089
5090         * Control.cs 
5091           - Select: Implemented to just use activate. Seems to match MS 
5092             behaviour closest. Documented to only do actual control walking 
5093             based on it's parameters if in a container control so I moved 
5094             the code there.
5095           - Removed selection check logic from our internal Select() method
5096         * ContainerControl.cs:
5097           - Select: Moved selection logic from Control here, since MS documents
5098             that containers obey the bool arguments. No longer calling base
5099
5100 2006-06-02  Jackson Harper  <jackson@ximian.com>
5101
5102         * TreeView.cs: If the selected node isn't changed when we get
5103         focus update the previously selected node so that we see the
5104         selection box.
5105
5106 2006-06-02  Mike Kestner  <mkestner@novell.com>
5107
5108         * ComboBox.cs: restructure grab and general mouse event handling.
5109         Make the composite control raise mouse events like it was a single
5110         control for leaves/enters/motion/up/down events.  fix dropdown list
5111         coordinate mangling and refactor it into the scrollbar subclass to
5112         reduce code duplication.  Fixes #78282 #78361 and #78457.
5113
5114 2006-06-02  Mike Kestner  <mkestner@novell.com>
5115
5116         * ScrollBar.cs: remove Capture setting/clearing, as it happens
5117         automatically in the Control.WndProc.
5118
5119 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5120
5121         * FileDialog.cs: fix crash when running SharpChess, which sets the
5122         FilterIndex to 2 with only one Filter.
5123
5124 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5125
5126         * ToolBar.cs: add SizeSpecified property.
5127         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
5128         try to figure out our real size, otherwise fallback to what the
5129         container says.
5130
5131 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5132
5133         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
5134         * Control.cs (WndProc): MS always calls the DefWndProc to pass
5135           up the event
5136
5137 2006-06-01  Mike Kestner  <mkestner@novell.com>
5138
5139         * ListView.cs: revamp the focus management in ListView.  It still
5140         causes churn of LostFocus/GotFocus emissions on clicks, but it's
5141         better than not handling focus at all.  Will revisit when pdb feels
5142         the general focus handling is solid.  Fixes #78526.
5143
5144 2006-06-01  Jackson Harper  <jackson@ximian.com>
5145
5146         * TreeView.cs: Set the default border style in the constructor.
5147         - Move painting to use OnPaintInternal instead of capturing
5148         WM_PAINT, this is the correct way of doing things
5149         - UpdateBelow shouldn't invalidate the scrollbar area
5150         - Cap the top on update below in case the node was above the top
5151         of the viewport rectangle.
5152         - ExpandBelow and Collapse below need to obey Begin/End Update.
5153         * TreeNode.cs: Make is_expanded internal so the treenode
5154         collection can change it without firing the whole event chain.
5155         * TreeNodeCollection.cs: When clearing all the child nodes make
5156         sure to recalc the visible order.
5157         - Improve algo for remove the top node
5158
5159 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5160
5161         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
5162           SendMessage directly calling window procedures, which in turn might
5163           call SetFocus()
5164
5165 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
5166
5167         * Control.cs: Don't handle WM_SETFOCUS if the same window already
5168           has focus (works around X11 sending a FocusIn after our SetFocus)
5169         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
5170
5171 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
5172
5173         * Mime.cs: Fix for the NET_2_0 build.
5174           NameValueCollection needs StringComparer now.
5175
5176 2006-05-31  Chris Toshok  <toshok@ximian.com>
5177
5178         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
5179         return (via an out parameter) the starting X of the column.
5180         (UpdateVisibleColumn): track change to FromPixelToColumn.
5181         (HitTest): add a ColumnResize case here.
5182         (DrawResizeLine): new function, probably poorly named.
5183
5184         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
5185         only need to keep one reference.
5186         (set_ListManager): same.
5187         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
5188         Also, add support for HitTestType.ColumnResize.
5189         (OnMouseMove): add column resize behavior here, and change the
5190         cursor to the correct one as we move around the datagrid.
5191         (OnMouseUp): terminate the column resize if we're resizing.
5192         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
5193         for the current cell.
5194         (ConnectListManagerEvents): use cached_currencymgr.
5195         (DisconnectListManagerEvents): fill this in, using
5196         cached_currencymgr.
5197         (SetCurrentCell): remove cached_currencymgr_events handling.
5198         (SetDataMember): only call DisconnectListManagerEvents if
5199         cached_currencymgr is != null.
5200         (SetDataSource): same.
5201         (OnListManagerCurrentChanged): cached_currencymgr_events ->
5202         cached_currencymgr.
5203
5204 2006-05-31  Jackson Harper  <jackson@ximian.com>
5205
5206         * BindingManagerBase.cs: Remove somedebug code that creeped into
5207         SVN.
5208         * TreeNode.cs: We get the indent level dynamically right now, so
5209         don't track it as a member.
5210         * TreeNodeCollection.cs: Make sure all nodes added to the list
5211         have parents, treeviews/topnodes setup properly.
5212         - Don't attempt to track indent level.
5213
5214 2006-05-30  Jackson Harper  <jackson@ximian.com>
5215
5216         * BindingContext.cs: Create the currency manager tables here.
5217         This allows us to more easily create null tables (when bad data
5218         members are used), and more easily create related currency
5219         managers.
5220         * CurrencyManager.cs: All the table creation stuff is done by the
5221         binding context now.
5222         - Current should throw an exception if listposition is -1.
5223         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
5224         been bound yet.
5225
5226 2006-05-30  Mike Kestner  <mkestner@novell.com>
5227
5228         * ListView.cs: allow reexpansion of zero-width column headers.
5229         Fixes #78528.
5230
5231 2006-05-28  Chris Toshok  <toshok@ximian.com>
5232
5233         * CurrencyManager.cs (get_Current): after the late binding
5234         listposition = -1 fix, we need to guard against it here and return
5235         null, otherwise we raise an exception (which is swallowed
5236         elsewhere, and breaks datagrid databinding.)
5237
5238 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5239
5240         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
5241           than WM_SYSKEY, don't throw if get something unexpected (#78507)
5242
5243 2006-05-26  Jackson Harper  <jackson@ximian.com>
5244
5245         * ControlPaint.cs:
5246         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
5247         values, it's faster and it's all we care about (we don't care if
5248         the names aren't equal).
5249         * KeyboardLayouts.cs: Eliminate some dead code.
5250         - Lazy init things
5251         * X11Keyboard.cs: Lazy init keyboard detection.
5252         - Cleanup access modifiers a little.
5253
5254 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5255
5256         * XplatUIX11.cs: Once again, attempting to get layout just right.
5257
5258 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
5259
5260         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
5261           the sizes of each link section, that will result in sizes that
5262           match DrawString's layout (Fixes #78391)
5263
5264 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
5265
5266         * FileDialog.cs: If AddExtension property is true autocomplete the
5267           extensions in SaveFileDialog correctly. Fixes bug #78453.
5268           Set MyNetwork and MyComputer to "C:\" for windows. This should
5269           fix part 8 of bug #78446 for now.
5270
5271 2006-05-26  Chris Toshok  <toshok@ximian.com>
5272
5273         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
5274         invalidate the current row header if we need to, but presumably
5275         we'll invalidate the row corrsponding to the bounds or
5276         editingControl.
5277         (GridHScrolled): switch back to this method, as it's part of the
5278         public api.  *sigh*.
5279         (GridVScrolled): same.
5280         (OnMouseWheel): hack up something that more or less works.  Call
5281         GridHScrolled/GridVScrolled directly, instead of duplicating much
5282         of their code here.
5283         (EnsureCellVisibility): reinstate a bunch of this code, since we
5284         can't just set the scrollbar Value and expect to do all the work
5285         in the ValueChanged handler.  Also, Call Update() after scrolling
5286         in one direction so the other XplatX11.ScrollWindow call has the
5287         proper stuff in the proper places.
5288         (EditCell): set is_editing to true before calling .Edit.
5289
5290         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
5291         don't bother comparing first.
5292         (OnKeyPress): call grid.ColumnStartedEditing before calling
5293         base.OnKeyPress.  this will set is_changing and invalidate the row
5294         header if necessary.
5295         (ProcessKeyMessage): for WM_CHAR messages, call
5296         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
5297         and WM_KEYDOWN.
5298         
5299         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
5300         it's done in the DataGrid.
5301         (NextState): call grid.ColumnStartedEditing, which takes care of
5302         invalidating the row header (and setting is_changing).
5303
5304         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
5305         here.  it's done in the DataGrid.
5306
5307 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5308
5309         * Control.cs: allow changing the cursor when the mouse position is
5310         out of bounds but Capture is set.
5311         * LinkLabel.cs: handle the case when the mouse button is pressed on the
5312         linklabel but released somewhere else.
5313
5314 2006-05-25  Jackson Harper  <jackson@ximian.com>
5315
5316         * TreeView.cs: When we get focus if there is no selected node make
5317         it the top node
5318         - Remove some uneeded setup code from Draw.
5319         * TreeNodeCollection.cs: If the tree doesn't have a top node when
5320         a new node is inserted make the new node the top.
5321         * XplatUIX11.cs:
5322         * Timer.cs: Use Utc time so that no local time zone stuff needs to
5323         be used (should be faster).
5324         
5325 2006-05-25  Chris Toshok  <toshok@ximian.com>
5326
5327         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
5328         problem with the last commit.
5329
5330 2006-05-25  Chris Toshok  <toshok@ximian.com>
5331
5332         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
5333         need the invalidate call here, while scrolling right-to-left via
5334         the left arrow key (i.e. moving the editing cell while scrolling).
5335
5336         * DataGrid.cs (.ctor): remove the initialization of
5337         ctrl_pressed/shift_pressed.  We no longer track them using key
5338         up/down handlers, but by using Control.ModifierKeys.  Also, switch
5339         to using ValueChanged handlers on the scrollbars instead of
5340         Scrolled event handlers.  This simplifies a bunch of the scrolling
5341         code.
5342         (GridHValueChanged): rename from GridHScrolled, and change it to
5343         work with the new event args.
5344         (GridVValueChanged): same.
5345         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
5346         (OnMouseWheel): actually scroll the datagrid.  Don't change the
5347         selected cell.
5348         (ProcessGridKey): correct all the keyboard navigation stuff I
5349         could find.  Ctrl up/down/left/right/home/end work now.
5350         (EnsureCellVisibility): correct method name spelling.  Also,
5351         simplify this a touch by not explicitly calling the
5352         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
5353         scrollbar value.
5354         (OnKeyUpDG): no need for this method now.
5355         
5356 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5357
5358         * LinkLabel.cs: display the OverrideCursor when hovering the label.
5359         Fixes bug #78392.
5360
5361 2006-05-25  Chris Toshok  <toshok@ximian.com>
5362
5363         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
5364         r61019.
5365
5366 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5367
5368         * Application.cs: Moved setting of is_modal and closing to before
5369           we create the control, to allow the event handlers called as a
5370           result of creation affect closing. Also removed Gonzalo's previous
5371           change to setting DialogResult, the behaviour has been moved to 
5372           Form.ShowDialog()
5373         * Form.cs: 
5374           - ShowDialog(): Removed explicit creation of the form, let RunLoop
5375             handle it instead
5376           - ShowDialog(): If no dialog result is set, we need to return Cancel
5377           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
5378             the close is cancelled
5379
5380 2006-05-25  Jackson Harper  <jackson@ximian.com>
5381
5382         * StatusBar.cs: We only need to update the sizes of the other
5383         panels when we have auto size contents.  Also we are only updating
5384         the contents of the panel, not the borders, so compensate for the
5385         border width (TODO: get this width from the theme somehow).
5386         * TreeView.cs: Scrollable is true by default
5387         - Use invalidate instead of refresh where needed
5388         - Factor the scrollable value into scrollbar updating
5389         - Update the scrollbars if the Scrollable property is altered
5390         - Update the selected node if its ImageIndex is changed
5391         - Handle null nodes in UpdateNode (mainly so we don't have to
5392         check if selected is null when updating it
5393         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
5394         are factored into the visible count
5395         - Use VisibleCount for clarity in the code
5396         - When the font is changed we need to recurse through all the
5397         nodes and invalidate their sizes
5398         
5399 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5400
5401         * Application.cs: set the DialogResult to fixed when the main form is
5402         hidden or destroyed while being modal.
5403
5404 2006-05-25  Miguel de Icaza  <miguel@novell.com>
5405
5406         * Theme.cs: Use Tangoified messagebox icons. 
5407
5408         (GetSizedResourceImage): Also cope with width = 0 and do not
5409         trigger a warning in that case (0 means "give me your icon from
5410         the resouce, no special size needed).
5411
5412 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5413
5414         * Application.cs: Leave runloop if the the main modal form is 
5415           hidden (fixes #78484)
5416
5417 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5418
5419         * BindingContext.cs : reject null datasource in Contains() and
5420           Item[].
5421         * CurrencyManager.cs : check data_member validity when data_source
5422           is dataset. When it is late binding, the initial position is -1.
5423
5424 2006-05-24  Jackson Harper  <jackson@ximian.com>
5425
5426         * TreeNodeCollection.cs: Dont't recalculate the visible order on
5427         inserted nodes that aren't visible.  This changes the
5428         max_visible_order which confuses scrollbar settings.
5429         - Use the enumerator to get the prev node instead of duplicating
5430         code.
5431         * TreeView.cs: Use new method for setting scrollbar values
5432         - Don't set the bounds every time the scrollbar is updated
5433         - When updating below the root node use an invalidate instead of a
5434         refresh to prevent the child controls (scrollbars) from being
5435         refreshed. (UpdateBelow still needs to be reworked anyways).
5436         - Reenable SetBottom now that visible orders are set correctly,
5437         added some debug code incase we ever get bad values there again.
5438         - Set the scrollbar max to 2 less then the max value, this
5439         compensates for the max value being one above the node count, and
5440         for scrollbars adding one extra "notch".
5441         - When drawing image nodes if there is an imagelist we draw the
5442         first image in the list if the supplied image index is out of the
5443         image list's bounds.
5444         
5445 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5446
5447         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
5448           we receive a size change from the WM (Fixes #78503)
5449
5450 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
5451
5452         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
5453           rectangle (Fixes #78501)
5454
5455 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5456
5457         * ButtonBase.cs: 
5458           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
5459             as a bitfield.
5460           - Fixed MouseMove to no longer switch pressed state unless the left
5461             mouse button is pressed. Atsushi provided the original patch (#78485)
5462           
5463 2006-05-24  Jackson Harper  <jackson@ximian.com>
5464
5465         * ScrollBar.cs: New internal methods that allow us to change a
5466         couple values on the scrollbar (the most common case is maximum
5467         and large change) without getting multiple invalidates.
5468
5469 2006-05-24  Chris Toshok  <toshok@ximian.com>
5470
5471         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
5472         (Edit): save off the original state in oldState, and set
5473         grid.is_editing to true.
5474         (OnKeyDown): abort editing if escape is pressed.  also, call
5475         NextState if space is pressed.
5476         (OnMouseDown): call NextState.
5477         (NextState): factor out shared code from OnKeyDown and OnMouseDown
5478         here.  Also, only invalidate the row header once (on the initial
5479         is_changing switch) to save on redraws.
5480
5481 2006-05-24  Chris Toshok  <toshok@ximian.com>
5482
5483         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
5484         if the value in the cell is different than it was before.  This
5485         keeps us from triggering a layout when we move around a datarid
5486         with a highlighted cell.
5487         (Edit): suspend layout when creating/positining the text box, and
5488         resume passing false so we don't ever actually re-layout.
5489         (ReleaseHostedControl): same.
5490         (EnsureTextBox): reformat slightly, and set WordWrap to false.
5491
5492         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
5493         control-key sequences should go to the datagrid - remove that
5494         lock.  Also, modify the conditions under which we move between
5495         cells when moving the cursor within a cell, and remove the "this"
5496         and "base" from field accesses.  We weren't even consistent, given
5497         they all were in the base class.
5498
5499 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
5500
5501         * Binding.cs : (.ctor)
5502           An obvious NRE fix for BindingTest.CtorNullTest().
5503
5504 2006-05-23  Chris Toshok  <toshok@ximian.com>
5505
5506         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
5507         them between lines.  This fixes some quirks editing cells in the
5508         datagrid.
5509
5510 2006-05-23  Jackson Harper  <jackson@ximian.com>
5511
5512         * TreeView.cs: Use begin/end update when doing expand/collapse all
5513         so that we don't get flicker on the scrollbar.
5514
5515 2006-05-23  Jackson Harper  <jackson@ximian.com>
5516
5517         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
5518         treenode calculations to be independant of the painting code. To
5519         do this nodes track a visible order which is calculated by the
5520         treeview.
5521         - Call new methods for expanding/collapsing nodes.  These methods
5522         use scrollwindow so we don't have to update everything below the
5523         node.
5524         * TreeView.cs: Refactored drawing and scrolling code.  We don't
5525         need to update nodes when drawing anymore or calculate scrollbar
5526         stuff.
5527         - Added new methods for expanding/collapsing nodes. These methods
5528         use ScrollWindow so as to not have to redraw all the nodes below.
5529         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
5530         we add/remove nodes or sort.
5531         - Handle removing the selected and the top node properly.
5532
5533 2006-05-23  Chris Toshok  <toshok@ximian.com>
5534
5535         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
5536         maybe this should actually happen in the datagrid code?
5537         (EndEdit): no need to invalidate anything, given that
5538         ReleaseHostedControl causes the datagrid to relayout, which
5539         invalidates everything anyway.
5540
5541         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
5542         in SetCurrentCell).
5543         (set_SelectionBackColor): call InvalidateSelection instead of
5544         Refresh.
5545         (set_SelectionForeColor): same.
5546         (BeginEdit): Flesh this out a bit.
5547         (CancelEditing): only do any of this if we're editing/adding.
5548         (EndEdit): same.
5549         (OnMouseDown): there's no need to cancel editing here, it's done
5550         in SetCurrentCell.
5551         (SetCurrentCell): only invalidate the current row header if it's a
5552         different row than the new one.
5553         (ShiftSelection): fix this to work like MS does.
5554         (ResetSelection): factor out the invalidation of selected_rows to
5555         InvalidateSelection.
5556         (SetDataSource): cancel any editing that's going on.
5557
5558         * DataGridColumnStyle.cs
5559         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
5560         call the non-interface version.
5561
5562         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
5563         header rectangle with the clip rectangle so we don't redraw the
5564         entire header for just a small area.  Gets rid of the last flicker
5565         when horizontally scrolling.
5566         (DataGridPaintRow): same.
5567
5568 2006-05-23  Mike Kestner  <mkestner@novell.com>
5569
5570         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
5571         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
5572         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
5573         Critical bug report.
5574
5575 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5576
5577         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
5578           and this fixes #78493
5579
5580 2006-05-23  Miguel de Icaza  <miguel@novell.com>
5581
5582         * Theme.cs (GetSizedResourceImage): Scale images if the proper
5583         size is not found.  
5584         
5585         * FileDialog.cs: Do not change the background for the side bar as
5586         it wont work nicely with the theme, and also reduces the artifacts
5587         in rendering the icons (which I want to fix too).
5588
5589         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
5590         resources, not resgen resources. 
5591
5592         (PlatformDefaultHandler): Pull images using the new API.
5593
5594 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5595
5596         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
5597           a reference to the hwnd and will not remove it unless there are
5598           no pending exposures (fixes #78341)
5599         * XplatUI.cs: Improved debug
5600
5601 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
5602
5603         * MenuAPI.cs : don't handle OnClick event when it was not the left
5604           button. Fixed bug #78487.
5605
5606 2006-05-23  Mike Kestner  <mkestner@novell.com>
5607
5608         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
5609         prefer submenus to the top menu for item lookup, to avoid popping down
5610         top-row items.
5611
5612 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
5613
5614         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
5615           Graphics.FillRectangle as the visual results are really bad (even
5616           on win). We now draw perfect arrows (and perfect shadows when the
5617           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
5618           Pen.DashPattern to draw the dots of each line.
5619
5620 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
5621
5622         * FileDialog.cs: Update the filename combobox when navigating through
5623           the ListView with the cursor keys. Fixes part 7 of bug #78446.
5624
5625 2006-05-22  Mike Kestner  <mkestner@novell.com>
5626
5627         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
5628         Fixes #78463.
5629
5630 2006-05-22  Mike Kestner  <mkestner@novell.com>
5631
5632         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
5633         requests. Fix a misspelled parameter and a copy paste exception error
5634         in Select.
5635
5636 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
5637
5638         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
5639           to get the same width/height (5/13) on X11 as the default font has on
5640           win32. This means that our DefaultFont emSize is smaller than the 
5641           the MS SWF equivalent (even thought the width/height stays the same)
5642
5643 2006-05-20  Jackson Harper  <jackson@ximian.com>
5644
5645         * MdiClient.cs:
5646         * MdiWindowManager.cs:
5647         * InternalWindowManager.cs: Make sure to use the border width from
5648         the theme.
5649
5650 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
5651
5652         * PrintDialog.cs: Implements printer details
5653
5654 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
5655
5656         * FileDialog.cs: Added focus handling for PopupButtonPanel.
5657           Fixes part 1 and 2 of bug #78446
5658
5659 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
5660
5661         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
5662           instead of sticking to the first ever calculated value
5663
5664 2006-05-19  Mike Kestner  <mkestner@novell.com>
5665
5666         * ComboBox.cs: fix mouse motion selection to use MousePosition and
5667         PointToClient, since Capture is set. Fixes #78344.
5668
5669 2006-05-19  Mike Kestner  <mkestner@novell.com>
5670
5671         * ListView.cs: match MS behavior in Details view where items are not
5672         drawn if Columns.Count == 0. 
5673         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
5674         Use a separate pen to draw the check, since changing the width affects
5675         the box as well.  Fixes #78454.
5676
5677 2006-05-18  Miguel de Icaza  <miguel@novell.com>
5678
5679         * ListView.cs: ArgumentOutOfRangeException, single versions of the
5680         exception should throw the name of the invalid argument.
5681
5682         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
5683         there are no files listed. 
5684
5685 2006-05-18  Jackson Harper  <jackson@ximian.com>
5686
5687         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
5688         up.
5689
5690 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5691
5692         * Control.cs: Brought back our old UpdateZOrder method as a private
5693           function and switched our calls from UpdateZOrder to the new one.
5694           This fixes the Paint.Net canvas disappearing bug.
5695
5696 2006-05-18  Jackson Harper  <jackson@ximian.com>
5697
5698         * Theme.cs:
5699         * ThemeWin32Classic.cs:
5700         * InternalWindowManager.cs: Move the drawing into the theme,
5701         expose everything the theme should need from the window manager.
5702
5703 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5704
5705         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
5706           from the call to NativeWindow to avoid walking up the parent chain
5707           further than needed (speeds up setting cursors and avoids setting
5708           the wrong cursor if a parent has another cursor defined)
5709         * Cursor.cs: When loading an icon as cursor, MS uses the center of
5710           the icon as hotspot, not what's contained as hotspot in the icon
5711           file. This fixes the perceived drawing offset seen with Paint.Net
5712         
5713 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5714
5715         * XplatUIX11.cs: 
5716           - Store the calculated rectangle in Hwnd object and use it when 
5717             setting the client size
5718           - Force Toolwindows to always be type Dock, to ensure they're on top
5719
5720 2006-05-18  Mike Kestner  <mkestner@novell.com>
5721
5722         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
5723         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
5724         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
5725         Substantial refactoring to remove confusing nested classes. Coding
5726         standard and Get+Set->property refactorings.  Shift to index based
5727         highlighting in ComboListBox instead of constantly using IndexOf and
5728         Items[]. Add invalidations on resize for DropDownList to fix ugliness
5729         in FileDialog growth.  Draw borders manually since Simple mode needs
5730         to look like two independent controls.  Make listbox border
5731         conditional to DropDownStyle.  Improved OwnerDraw support.
5732
5733 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
5734
5735         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
5736         Don't set the disposed graphics to null, so we can throw the "right"
5737         exception if the graphics is reused later (added a flag to avoid 
5738         double disposing). Some behaviours are different under 2.0 and are
5739         filled under bug #78448.
5740
5741 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5742
5743         * Control.cs: When double-buffering is enabled, we need to reset
5744           our graphics context between paint calls. Otherwise, any 
5745           transformations and other alterations on the context will 
5746           become cumulative (#77734)
5747
5748 2006-05-18  Mike Kestner  <mkestner@novell.com>
5749
5750         * ListView.cs: do focused item selection like MS on clicks. 
5751         Rework focus handling for ItemControl so LostFocus invalidates as
5752         well.
5753         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
5754         the ListView ItemControl has focus.
5755
5756 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
5757
5758         * XplatUIX11.cs: If client_window ends up being width or height zero
5759           due to border settings, move it off window inside whole_window (#78433)
5760
5761 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5762
5763         * Mime.cs: Shrink the mime file cache correctly.
5764
5765 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5766
5767         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
5768
5769 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5770
5771         * XplatUIX11.cs (AddExpose): More sanity checks
5772
5773 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5774
5775         * XplatUIX11.cs:
5776           - AddExpose: Don't add expose ranges outside the size of our
5777             window
5778           - Cast opacity values to Int32 to avoid crashes with certain
5779             values
5780           - Added disabled code paths that protect against illegal cross-
5781             thread painting (Developers.exe)
5782
5783 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5784
5785         * ProgressBar.cs: Invalidate the control when it's resized
5786           since block size is based on control size. (#78388)
5787
5788 2006-05-16  Miguel de Icaza  <miguel@novell.com>
5789
5790         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
5791         of setting the incoming argument to the "reset" value, we set the
5792         this.datamember to string.empty (before we were invalidating the
5793         incoming data).   
5794
5795         Fixes 78420
5796
5797 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5798
5799         * Form.cs: Only apply transparency settings after the form
5800           is created. (Fixes #77800)
5801
5802 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5803
5804         * ApplicationContext.cs: Grab the HandleDestroyed event so
5805           we know when to fire OnMainFormClosed 
5806
5807 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5808
5809         * Application.cs: Introduced sub-class to allow tracking of
5810           threads and centralized triggering of the event mess for
5811           ThreadExit, AppExit, etc..  (#76156)
5812
5813 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
5814
5815         * MimeIcon.cs:
5816           - Do not return a null icon index value for a mime subclass.
5817             Instead try the main mime type class too.
5818           - Seems that some newer distributions don't have a link to some
5819             gnome default icons anymore. So check the default gnome dir too.
5820           
5821
5822 2006-05-16  Jackson Harper  <jackson@ximian.com>
5823
5824         * MdiClient.cs: Don't paint the parent background image if we have
5825         our own background image.
5826
5827 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5828
5829         * Control.cs:
5830           - PerformLayout: Do not shrink space filled by DockStyle.Fill
5831             controls, all filled controls are supposed to overlap (#78080)
5832           - UpdateZOrder is supposed to update the control's z-order in the
5833             parent's z-order chain. Fixed to behave like that
5834           - BringToFront: Removed obsolete code
5835           - SendToBack: Simplyfied
5836           - SetChildIndex: Trigger layout calculations when Z-order changes
5837             since layout is done by z-order
5838
5839 2006-05-16  Chris Toshok  <toshok@ximian.com>
5840
5841         [ fixes bug #78410 ]
5842         * DataGrid.cs (set_AlternatingBackColor): use
5843         grid_drawing.InvalidateCells instead of Refresh().
5844         (set_BackColor): call grid_drawing.InvalidateCells.
5845         (set_BackgroundColor): use Invalidate instead of Refresh.
5846
5847         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
5848         invalidate the cell area.
5849
5850 2006-05-15  Chris Toshok  <toshok@ximian.com>
5851
5852         [ fixes bug #78011 ]
5853         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
5854         on to DataGridPaintRow.
5855         (DataGridPaintRow): take a clip argument, and only draw the cells
5856         which intersect it.  same with the not_usedarea.
5857
5858         * Theme.cs (DataGridPaintRow) add @clip parameter.
5859
5860         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
5861         XplatUI.ScrollWindow.
5862         (ScrollToRow): same.
5863
5864         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
5865         with last column which was causing a gray swath to appear with the
5866         XplatUI.ScrollWindow code.
5867
5868 2006-05-15  Chris Toshok  <toshok@ximian.com>
5869
5870         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
5871         use XplatUI.ScrollWindow.
5872         (VerticalScrollEvent): use XplatUI.ScrollWindow.
5873
5874 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
5875
5876         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
5877
5878 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5879
5880         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
5881           file since there are no equivalent X11 cursors
5882
5883 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5884
5885         * MonthCalendar.cs : DateTimePicker should reflect selected date
5886           on mouse*up*, not mouse*down*. Fixed originally reported part of
5887           bug #76474.
5888
5889 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5890
5891         * TabControl.cs : When argument index is equal or more than tab
5892           count, just ignore. Fixed bug #78395.
5893
5894 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5895
5896         * Control.cs: Dispose all child controls when control is diposed (#78394)
5897
5898 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5899
5900         * ColorDialog.cs: Finally it is possible to select the color with
5901           the text boxes
5902
5903 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5904
5905         * PrintDialog.cs: Fix typo
5906
5907 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5908
5909         * PrintDialog.cs: PrintDialog is not resizable
5910         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
5911           color. Made some ToolBar drawing methods protected virtual.
5912
5913 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
5914
5915         * PrintDialog.cs: Implementation of the PrintDialog
5916
5917 2006-05-12  Chris Toshok  <toshok@ximian.com>
5918
5919         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
5920         thumb, instead use MoveThumb.  This has the side effect of making
5921         most of the other thumb moving machinery use MoveThumb as well.
5922         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
5923         need to actually invalidate the rectangle where the new thumb will
5924         go.
5925         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
5926         We force an Update() after, so it's not as fast as it could be,
5927         but at least there's zero flicker and no droppings.
5928         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
5929         (UpdateThumbPos): add another argument (dirty), which says whether
5930         or not to calculate/add dirty regions which we later invalidate.
5931         For cases where we know we're going to use MoveThumb, we pass
5932         false for this.  Otherwise, pass true.
5933
5934 2006-05-12  Jackson Harper  <jackson@ximian.com>
5935
5936         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
5937         the status bar.
5938         
5939 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
5940
5941         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
5942           and GetClipRegion methods and UserClipWontExposeParent property.
5943         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
5944           overriding UserClipWontExposeParent property, setting to false, since
5945           Win32 handles the required expose messages to draw our clipped parent
5946           areas internally
5947         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
5948           PaintEventStart to set the user clip region if set.
5949         * Control.cs: 
5950           - Now internally tracking the Region for the control since we need to
5951             store it if the handle is not yet created and only set it when it
5952             becomes created. Before setting the region forced handle creation
5953           - Added code to draw the parents underneath a user-clipped region
5954         * Hwnd.cs: Added UserClip property
5955
5956 2006-05-12  Chris Toshok  <toshok@ximian.com>
5957
5958         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
5959         (set_Maximum): same.
5960         (set_Minimum): same.
5961         (set_SmallChange): same.
5962         (OnMouseUpSB): remove the call to refresh when releasing the
5963         thumb.  We shouldn't need it.
5964         
5965 2006-05-12  Miguel de Icaza  <miguel@novell.com>
5966
5967         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
5968         AutoSize set to None, we do not need to relayout everything, we
5969         just need to invalidate the current region.
5970
5971         (Draw): Do not draw the entire ClientArea, just redraw the
5972         clip area being passed.
5973
5974         * MdiClient.cs: Make MdiClient constructor with the Form argument
5975         internal. 
5976
5977 2006-05-12  Jackson Harper  <jackson@ximian.com>
5978
5979         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
5980         parents background image,  but strangely not their own.
5981         - (DrawStatusBarPanel): Take into account horizontal alignment
5982         when drawing the strings and icons.
5983
5984 2006-05-12  Mike Kestner  <mkestner@novell.com>
5985
5986         * ListBox.cs: avoid invalidations for focus when the collection is
5987         empty. 
5988
5989 2006-05-12  Chris Toshok  <toshok@ximian.com>
5990
5991         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
5992         invalidate the entire thumb area.  Call InvalidateDirty which
5993         limits the redraw to the thumb itself and surrounding pixels.
5994
5995         * XplatUIX11.cs (ScrollWindow): optimize copying.
5996         
5997 2006-05-12  Chris Toshok  <toshok@ximian.com>
5998
5999         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
6000         Figure out the positioning/layout in a single pass instead of
6001         multiple recursive invocations.  Speeds up the initial display of
6002         the data grid.  Also, make many things private that were
6003         originally public but unused outside this class.
6004
6005 2006-05-11  Jackson Harper  <jackson@ximian.com>
6006
6007         * MdiClient.cs: Improved layout code.
6008
6009 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
6010
6011         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
6012           not SelectedObject.
6013
6014 2006-05-11  Chris Toshok  <toshok@ximian.com>
6015
6016         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
6017         union of that will always be {0,0,width,height}.
6018
6019 2006-05-11  Jackson Harper  <jackson@ximian.com>
6020
6021         * Form.cs: Match MS's DefaultSize for forms (they must have
6022         changed the size in sp2).
6023
6024 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6025
6026         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
6027
6028 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6029
6030         * TextControl.cs : Fixed bug #78109. This incorrect position
6031           comparison caused crash on automatic line split.
6032         * TextBoxBase.cs : reduce duplicate code.
6033
6034 2006-05-10  Jackson Harper  <jackson@ximian.com>
6035
6036         * MdiClient.cs: Active form is only sent to the back when using
6037         the Next form functionality, when a form is clicked the current
6038         active shouldn't be sent to the back.
6039         - Layout the mdi windows when the container is first made visible.
6040         * Form.cs: Give the MdiClient a ref to the containing form when we
6041         create it.
6042         
6043 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6044
6045         * LinkLabel.cs : link_font could be uninitialized, so populate one
6046           before actual use. Fixed bug #78340.
6047
6048 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6049
6050         * XplatUIX11.cs : clipboard format native value is IntPtr.
6051           Fixed bug #78283.
6052
6053 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6054
6055         * Control.cs: 
6056           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
6057             which is passed up the parent chain by DefWndProc
6058           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
6059             to DefWndProc (#77956)
6060         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
6061
6062 2006-05-10  Jackson Harper  <jackson@ximian.com>
6063
6064         * MdiClient.cs: We need to remove the controls from the mdi
6065         collection, when we close the window.
6066         * MdiWindowManager.cs: Special handling of closing mdi windows.
6067         * InternalWindowManager.cs: Make the close method virtual so the
6068         mdi window manager can handle it specially.
6069
6070 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
6071
6072         * DataGrid.cs:
6073           - Recalculate grid when the data source has changed
6074           - Matches styles provided by user from all data sources types
6075         * DataGridTableStyle.cs: For columns that provided by the user set the
6076         with the preferred value is there was unassigned.
6077         * CurrencyManager.cs: throw OnItemChanged event
6078
6079 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
6080
6081         * PictureBox.cs: Don't animate until handle is created. Start animation
6082           when handle is created.
6083
6084 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6085
6086         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
6087           current codebase.
6088         * XEventQueue.cs: We don't need to provide the extra info
6089
6090 2006-05-10  Jackson Harper  <jackson@ximian.com>
6091
6092         * MdiClient.cs: If the mdi clients parent form has a background
6093         image set, we draw that background image for the mdi area's
6094         background.
6095
6096 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6097
6098         * TextBoxBase.cs: Set IBeam cursor (#78347)
6099
6100 2006-05-10  Mike Kestner  <mkestner@novell.com>
6101
6102         * ToolBar.cs: fix some text padding issues with ButtonSize
6103         calculation. Update the default size to match MS documentation.
6104         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
6105         button size. Fixes #78296.
6106
6107 2006-05-10  Mike Kestner  <mkestner@novell.com>
6108
6109         * ListBox.cs: use is_visible for scrollbar positioning in case the
6110         control isn't on screen yet.  Fix off by one with Right vs Width
6111         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
6112         
6113 2006-05-10  Jackson Harper  <jackson@ximian.com>
6114
6115         * X11Dnd.cs: Drop to a control with another control on top of it.
6116         * ToolBar.cs: Work on a copy of the buttons list, so that it can
6117         be modified in click handlers. TODO: Look for similar problems in
6118         other controls.
6119
6120 2006-05-09  Jackson Harper  <jackson@ximian.com>
6121
6122         * Form.cs: Window managers need the old window state when setting
6123         window state now.
6124         * InternalWindowManager.cs: Allow the base mdi window manager to
6125         handle more of the MDI only stuff (like maximize buttons).
6126         * MdiWindowManager.cs: Fix some snafus in changing the window
6127         state.  Add all the menu functionality, for both popup and
6128         maximized menus.
6129         * MdiClient.cs: When a new form is selected the currently
6130         activated form is sent to the back, this matches MS.
6131         - Implement a new method to activate the next mdi child window.
6132
6133 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
6134
6135         * Control.cs: 
6136           - Added new InternalCapture method to allow controls to prevent
6137             the capture behaviour on the click handlers
6138           - Switched to use InternalCapture
6139         * ComboBox.cs:
6140           - Using InternalCapture to prevent mouse captures from being released
6141             on mouse button release (Fixes #78100)
6142         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
6143           returns Form borders if a caption is present. (Fixes #78310)
6144
6145 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
6146
6147         * TreeNode.cs: Changed serialization .ctor to not require every field
6148           to be present. (#78265)
6149         * OwnerDrawPropertyBag.cs: Added serialization .ctor
6150
6151 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
6152
6153         * MimeIcon.cs: for is faster than foreach for strings.
6154
6155 2006-05-05  Mike Kestner  <mkestner@novell.com>
6156
6157         * CheckedListBox.cs: update check handling code to not use selected.
6158         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
6159         behavior for visual feedback, motion response, shift/ctrl handling,
6160         and properly deal with all 4 selection modes. Updates to bounds
6161         handling logic.  Add scroll wheel support. [Fixes #77842]
6162
6163 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6164
6165         * ListView.cs:
6166           - Moved adding of Implicit controls into .ctor. That way, subsequent
6167             creation of the controls will not cause them to think they are 
6168             toplevel windows (fixes #78200 header problem)
6169           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
6170           - Switched visibility setting of header control to use internal field
6171             to avoid triggering handle creation
6172           - Now checking if handle is created before causing a refresh when items
6173             are added (This makes us now match handle creation time with MS)
6174         * Splitter.cs: Removed loading of private splitter cursor, switched to
6175           Cursors version now that that is loading the right ones
6176         * Cursors.cs: Load proper splitter cursors from resources
6177         * Cursor.cs: Added second method of loading resource cursors for the 
6178           VS.Net users amongst us
6179
6180 2006-05-05  Mike Kestner  <mkestner@novell.com>
6181
6182         * ListView.cs: give header_control a minimum size based on the
6183         ListView size.
6184
6185 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6186
6187         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
6188           window seems to do that with metacity, so set that type. (#78120)
6189
6190 2006-05-05  Mike Kestner  <mkestner@novell.com>
6191
6192         * ListViewItem.cs: fix Details mode checkbox layout bug.
6193         * ThemeWin32Classic.cs: draw a ListView column header for unused space
6194         at the end of the header, if it exists. [Fixes for #78200]
6195
6196 2006-05-04  Jackson Harper  <jackson@ximian.com>
6197
6198         * MdiClient.cs: Add a helper property to get the container form.
6199         * MdiWindowManager.cs: We have to make sure to use the menu origin
6200         when drawing the icons and buttons, this fixes maximized window
6201         icons/buttons on win32.
6202         * InternalWindowManager.cs: Reset the restore captions when a
6203         window goes from Maximized to Minimized and vice versa. Move the
6204         DrawMaximizedButtons into the MdiWindowManager source, tool
6205         windows can't be maximized. NOTE: This could use a little
6206         refactoring if time ever permits.
6207         
6208 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6209
6210         * TextBox.cs: Add MWFCategoryAttributes
6211         * TextBoxBase.cs: Add MWFCategoryAttributes
6212         * Form.cs: Add MWFCategoryAttributes
6213
6214 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6215
6216         * Control.cs: Add MWFCategoryAttributes
6217         * ScrollableControl.cs: Add MWFCategoryAttributes
6218
6219 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
6220
6221         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
6222           Divider is true. Fix a little glitch in PropertyToolBar
6223           drawing code
6224
6225 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
6226
6227         * Control.cs:
6228           - Dispose: Call base.Dispose, this causes the disposed event
6229             to be fired (and probably other, more important stuff)
6230           - SetVisibleCore: Set is_visible to true after creating the
6231             window so that the window still gets created invisible (if
6232             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
6233             to generate a WM_ACTIVE message
6234         * Form.cs: Call Dispose when we want to destroy the window, instead of
6235           just destroying the handle (Dispose will do that for us)
6236         * XplatUIX11.cs:
6237           - RootWindow also needs a queue, so we can properly process the
6238             property change events from RootWindow (like Activate)
6239           - Generatic synthetic WM_ACTIVE message when the active window is
6240             being destroyed
6241
6242 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6243
6244         * LinkLabel.cs: Trigger a recalc of our label dimensions when
6245           bounds are changed
6246
6247 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
6248
6249         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
6250           for determining width and height (image might not be assigned if
6251           we're drawing an imagelist)
6252
6253 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6254
6255         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
6256         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
6257           height from system
6258         * Theme.cs: No longer returns hardcoded menu height, instead calls
6259           new driver method
6260         * Form.cs (OnLoad): Scaling happens before triggering Load events 
6261           on MS (# 78257)
6262
6263 2006-05-01  Mike Kestner  <mkestner@novell.com>
6264
6265         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
6266
6267 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
6268
6269         * TextBoxBase.cs: Removed Fixme
6270         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
6271
6272 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
6273
6274         * XplatUIX11.cs:
6275           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
6276             the rectangle relative to the parent, considering borders. We
6277             don't really want that.
6278           - ScrollWindow: Fixed warning to be more understandable
6279         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
6280           scrollbars and scroll only the visible area
6281         * RichTextBox.cs: Removed debug output
6282
6283 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6284
6285         * NumericUpDown.cs (Text): Just use base
6286         * UpDownBase.cs: Ensure txtView is created before using it
6287
6288 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6289
6290         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
6291           casting to IntPtr to avoid 64bit overflow errors
6292
6293 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6294
6295         * Control.cs:
6296           - AllowDrop: Don't force handle creation.
6297           - CreateHandle: Added call to tell driver if we're allowed to drop
6298
6299 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6300
6301         * FileDialog.cs: Remember the last directory not only for the
6302           current instance but also for new FileDialog instances.
6303
6304 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6305         
6306         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
6307           broke sending async messages
6308
6309 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6310
6311         * XplatUIX11.cs:
6312           - ScrollWindow: Fixed method. We finally generate expose events again
6313             for scrolled areas. This was causing 'garbage' when scrolling
6314             textbox and other controls that used ScrollWindow
6315           - Switched from using the regular queue for paint events to the MS 
6316             model of 'generating' paint events when the queue is empty.
6317             We use the new XQueueEvent.Paint subclass to store which windows
6318             need painting.
6319           - AddExpose now takes the x/y/width/height of the exposed area
6320             and inserts the window into the paint queue if not already there
6321           - InvalidateWholeWindow: Switched to use new AddExpose method
6322           - UpdateMessageQueue: Added which queue to monitor for paint events
6323           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
6324             the unlikely case nothing above handles it. We reset the expose
6325             pending states to get them off the queue.
6326           - GetMessage: Now pulls a paint event if no other events are in the
6327             queue
6328           - Invalidate: Switched to new AddExpose method
6329           - PeekMessage: Updated to understand pending paint events
6330           - UpdateWindow: Fixed logic bug. We were only updating if the window
6331             didn't need updating. Also switched to sending WM_PAINT directly,
6332             like MS does.
6333         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
6334           and random access Remove(). The random access is needed to handle
6335           UpdateWindow() where a WM_PAINT is sent directly without accessing
6336           the queue.
6337         * ScrollBar.cs: Added Update() calls to cause immediate updates to
6338           allow for better feedback when scrolling. Scrollbars are small and
6339           the immediate update should make it 'feel' more responsive without
6340           slowing things down. ScrollBar still needs it's invaliate logic
6341           updated to not always invalidate the whole bar on certain changes.
6342
6343 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6344
6345         * Control.cs:
6346         (BackColor): if the control does not support a transparent background,
6347         return the default backcolor when the parent backcolor is transparent.
6348
6349 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
6350
6351         * Application.cs: Updated to new StartLoop/GetMessage API
6352         * RichTextBox.cs: Provide some output on RTF parsing errors
6353         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
6354           new queue_id argument to GetMessage and PeekMessage to allow faster
6355           handling of per-thread queues in drivers.
6356         * Hwnd.cs: Added Queue tracking and property
6357         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
6358         * XEventQueue.cs: Added thread trackingA
6359         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
6360         * XplatUIX11.cs:
6361           - Implemented new per-thread queue
6362           - GetMessage: Fixed return/break behaviour on several cases. We were
6363             returning stale messages in some cases, instead of just processing
6364             the next message
6365
6366 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6367
6368         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
6369
6370 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
6371
6372         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
6373           fixed off-by-one comparisons between Width/Height and Right/Bottom.
6374
6375 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6376
6377         * PropertyGridView.cs: Fix drop down width.
6378
6379 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6380
6381         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
6382           a mess in DrawToolBar, so I removed one of them.
6383
6384 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6385
6386         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
6387           needed (clip). Otherwise we get artifacts.
6388
6389 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6390
6391         * FixedSizeTextBox.cs: Added constructor to allow specifying which
6392           dimension is fixed
6393         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
6394           and switched FixedSizeTextBox to only be fixed vertical (#78116)
6395         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
6396           if it matches the scale base font (avoids unneeded scaling)
6397
6398 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6399
6400         * X11DesktopColors.cs: One gtk_init_check should be enough
6401
6402 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
6403
6404         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
6405           match MS behaviour
6406
6407 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6408
6409         * TextBoxBase.cs: 
6410           - Generate OnTextChanged for Backspace even if we're only deleting
6411             the current selection
6412           - When setting the Text property, only select all text if the
6413             control does not have focus when it is being set. Otherwise
6414             just place the cursor at the beginning of the control
6415
6416 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6417
6418         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
6419           Added a little helper to draw PropertyGrid ToolBar with a different
6420           border and a different BackColor.
6421         * PropertyGrid.cs: Some background parts didn't get painted with the
6422           correct background color. Added a class that helps us to draw the
6423           correct border for PropertyGridView and a class that helps us to
6424           draw ToolBars with a different backcolor
6425         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
6426
6427 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
6428
6429         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
6430         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
6431
6432 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6433
6434         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
6435           into the palette entries. Also, since we're working on a copy
6436           we needed to copy the palette back onto the bitmap.
6437         * Cursor.cs: Same fix as XplatUIWin32.cs.
6438
6439 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
6440
6441         * ImageListStreamer.cs: Need to read the var (or we're off)
6442
6443 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6444
6445         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
6446           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
6447           TextBoxBase.cs: Unused var fixes
6448         * AxHost.cs: Small 2.0 fix
6449         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
6450           as it seems that is what at least Metacity expects. This will make
6451           icons show up on 64bit platforms. We still have some 64bit size
6452           issues, though, since the startup app window size still won't match.
6453
6454 2006-04-25  Mike Kestner  <mkestner@novell.com>
6455
6456         * *.cs: cleanup newly reported exception var unused warnings.
6457
6458 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6459
6460         * ThemeWin32Classic.cs: Button image alignment now matches exactly
6461           ms
6462
6463 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6464
6465         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
6466           image. The image position is always the same, no matter if the
6467           button is pressed or not.
6468
6469 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6470
6471         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
6472           selection and set the correct filename for SaveFileDialog.
6473           Patch by Emery Conrad.
6474
6475 2006-04-24  Mike Kestner  <mkestner@novell.com>
6476
6477         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
6478         check for item.X outside the ClientRect instead of item.Y. Fixes
6479         #78151.
6480
6481 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6482
6483         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
6484         trust that value blindly and do some sanity check. Fixes bug #77814.
6485
6486 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6487
6488         * ImageListStreamer.cs: save the mask as a 1bpp image.
6489
6490 2006-04-21  Mike Kestner  <mkestner@novell.com>
6491
6492         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
6493         pass Checked and Indeterminate to the Theme Engine. Improve
6494         encapsulation with ListBox.
6495         * ListBox.cs: Keep a StringFormat instead of calculating it every item
6496         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
6497         nested types.  Move all CheckState functionality to CheckedListBox.
6498         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
6499         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
6500         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
6501         single base list. Fix scrollbar sizing and placement to mirror MS.
6502         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
6503         used.
6504         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
6505         for CheckedListBox by using new DrawItemState info.  Center the
6506         checkboxes on the items. Use new StringFormat property.
6507
6508 2006-04-18  Jackson Harper  <jackson@ximian.com>
6509
6510         * Form.cs: MdiChildren don't do default locations the same way as
6511         regular forms.  This prevents a crash when trying to position the
6512         mdi windows.
6513
6514 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
6515
6516         * PropertyGridTextBox.cs: Formatting, copyright
6517         * PropertiesTab.cs: Formatting
6518         * PropertyGrid.cs: Formatting
6519         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
6520           click toggling of values
6521           
6522 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
6523
6524         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
6525         * Control.cs (.ctor): verify_thread_handle is static, don't reset
6526           every time a control is created
6527         * Application.cs: Removed obsolete EnableRTLMirroring method
6528
6529 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
6530
6531         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
6532         SelectedIndex to -1. Fixes bug #78121.
6533
6534 2006-04-17  Jackson Harper  <jackson@ximian.com>
6535
6536         * Binding.cs: Handle null values for Current and BindingContext.
6537         This occurs when binding is a little delayed.
6538         * CurrencyManager.cs: return null for Current when there are no
6539         items in the list.
6540         - Hookup to the listchanged event on the DataView and update
6541         bindings when the list is changed.  This fixes late binding of
6542         controls.
6543
6544 2006-04-17  Jackson Harper  <jackson@ximian.com>
6545
6546         * X11Dnd.cs:
6547         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
6548         Ringenbach.
6549
6550 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
6551
6552         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
6553           place
6554         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
6555           with the correct ButtonState
6556
6557 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
6558
6559         * XplatUIX11.cs: Improved distinguishing between window types to
6560           tell the WM a type closer to what the app wants (Fixes #78107)
6561
6562 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6563
6564         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
6565           GrabHandle
6566
6567 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6568
6569         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
6570           drawing code to reflect the size grip changes
6571
6572 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6573
6574         * ImageListStreamer.cs: fix handling of the mask that follows the main
6575         bitmap when deserializing and serialize it properly. The generated mask
6576         should better be a 1bpp image, but I'll do that later.
6577
6578 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6579
6580         * FileDialog.cs: Show something in the DirComboBox on *nix if the
6581           path doesn't fit into some of our Current.Places
6582
6583 2006-04-13  Jackson Harper  <jackson@ximian.com>
6584
6585         * ComboBox.cs: Use borders instead of drawing our own decorations,
6586         try to obey correct rules for heights.
6587         * Theme.cs:
6588         * ThemeNice.cs:
6589         * ThemeClearLooks.cs:
6590         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
6591         this is now handled by borders.
6592         - Remove unused DrawListBoxDecorationSize method.
6593         
6594 2006-04-13  Mike Kestner  <mkestner@novell.com>
6595
6596         * MenuAPI.cs: null guarding for the disbled click check fixes crash
6597         reported by Alex.
6598
6599 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6600
6601         * ThemeWin32Classic.cs: 
6602           - Fixed CPDrawStringDisabled
6603           - Corrected drawing of disabled menu items
6604           - Fixed drawing of disabled radio buttons (bug #78095)
6605           - Draw check in a disabled CheckBox with color ControlDark 
6606
6607 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6608
6609         * Form.cs: Use the provided width when calculating the menu size;
6610           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
6611           and ClientSize.Width won't be updated yet
6612         * Application.cs: Use Visible instead of Show() to make form visible,
6613           this way we create the handle later and menusize is considered
6614
6615 2006-04-12  Mike Kestner  <mkestner@novell.com>
6616
6617         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
6618         reporting.
6619
6620 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6621
6622         * TextBox.cs: Implemented context menu
6623
6624 2006-04-12  Mike Kestner  <mkestner@novell.com>
6625
6626         * ListView.cs: implement box selection. fixes #77838.
6627         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
6628
6629 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6630
6631         * XplatUIX11.cs: Added setting of window type when transient window
6632           is created (metacity would move it otherwise)
6633         * X11Structs.cs: Added WINDOW_TYPE atoms
6634         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
6635           background (the control is Opaque but still wants transparent
6636           backgrounds)
6637
6638 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6639
6640         * Control.cs: Added OnPaintBackgroundInternal to allow controls
6641           that set Opaque but don't mean it (like all ButtonBase-derived
6642           controls) to still draw their background
6643         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
6644           the background
6645
6646 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6647
6648         * Control.cs (PaintControlBackground): Set the graphics object
6649           on our PaintEvent to null to prevent it from being disposed
6650           when the PaintEvent gets disposed
6651
6652 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
6653
6654         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
6655         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
6656
6657 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6658
6659         * Control.cs: 
6660           - Added transparency check to BackColor property. Transparent
6661             backgrounds are only allowed if the control styles permit it
6662           - Added recursive painting of parent control background and
6663             foreground if a control with a transparent backcolor is drawn
6664             (Thanks to Tim Ringenback for providing his 'hack' as a base
6665              for this patch) Fixes #77985 and #78026.
6666           - Added Opaque style check before calling OnPaintBackground, no
6667             need to draw the background if the control is opaque
6668           - Removed ControlAccessibleObject owner variable (inherited from
6669             base, no need to define again)
6670           - Added some documentation links explaining the drawing events
6671             and styles
6672
6673 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6674
6675         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
6676           that the affected control is the located at the left border of our
6677           parent (Fixes #77936)
6678
6679 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6680
6681         * TextBoxBase.cs: When rendering disabled or readonly controls,
6682           draw the background with 'Control' instead of 'Window' color as
6683           long as the user hasn't specifically set a color
6684
6685 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6686
6687         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
6688           since that won't be updated if the user types text (only if it's
6689           programatically set)
6690
6691 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6692
6693         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
6694           layout changes do to app-triggered resizes will have the proper
6695           display rectangle for layout
6696
6697 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
6698
6699         * ThemeWin32Classic.cs:
6700           - Make use of the SystemBrushes and SystemPens wherever possible
6701           - Corrected some highlight colors
6702           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
6703             drawing
6704         * Theme.cs: Added Empty field to CPColor struct
6705
6706 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6707
6708         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
6709           is displayed when calculating the display rectangle. Thanks to Mike
6710           for teaching me the err of my ways.
6711
6712 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
6713
6714         * ScrollableControl.cs:
6715           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
6716             (instead of 0,0) and we now return the real width/height instead of
6717             just the clientrectangle, adjusted for padding. The rectangle is
6718             now cached and created by the new CalculateDisplayRectangle method.
6719           - Created new CalculateDisplayRectange method, which basically does
6720             what get_DisplayRectangle() did originally, but now using the 
6721             right edge instead of DisplayRectangle to determine the size of
6722             our scrollbars
6723           - get_Canvas(): Fixed it to properly calculate canvas for 
6724             right/bottom controls which seem to be placed to the right/bottom
6725             of any controls that have a fixed location
6726           - Removed TODO that's taken care of
6727           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
6728             and SetDisplayRectLocation according to new MSDN2 docs
6729           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
6730             event when that is called, this is added for compatibility
6731           - ScrollControlIntoView(): Implemented.
6732           - Switched scrollbars to be implicit, they shouldn't be selectable
6733         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
6734           call it when the active control is set/changed
6735         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
6736         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
6737           implicit_control variable (used for native Win32 message generation)
6738         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
6739           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
6740         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
6741         * XplatUIStructs.cs: Added ScrollBarCommands enum
6742
6743 2006-04-10  Jackson Harper  <jackson@ximian.com>
6744
6745         * ButtonBase.cs:
6746         * CheckedListBox.cs:
6747         * ComboBox.cs:
6748         * DataGrid.cs:
6749         * DataGridView.cs:
6750         * Form.cs:
6751         * GroupBox.cs:
6752         * ListBox.cs:
6753         * PrintPreviewControl.cs:
6754         * ProgressBar.cs:
6755         * PropertyGrid.cs:
6756         * Splitter.cs:
6757         * StatusBar.cs:
6758         * TrackBar.cs:
6759         * UpDownBase.cs: Fixup base event overrides.
6760         
6761 2006-04-06  Mike Kestner  <mkestner@novell.com>
6762
6763         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
6764         all user-initiated value changes to min <= value <= max-thumbsz+1.
6765         (set_Value): check for vert/horiz when calculating new thumb position.
6766         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
6767         like MS does.
6768         (OnMouseMoveSB): refactor the thumb dragging code and refine
6769         invalidation logic to reduce flicker.
6770         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
6771         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
6772         (UpdateThumbPosition): small code readability cleanup
6773
6774 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
6775
6776         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
6777           different
6778
6779 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6780
6781         * ThemeNice.cs: Use a better graphics effect when a button is pressed
6782
6783 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6784
6785         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
6786         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
6787           This dramatically reduces the number of Pen.Dispose calls. 
6788           Where possible call ResPool methods only once instead of calling it
6789           over and over again (for example for the same color).
6790
6791 2006-04-06  Mike Kestner  <mkestner@novell.com>
6792
6793         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
6794         Also remove an unused private field on the collection. Fixes #77972.
6795
6796 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6797
6798         * ThemeNice.cs: Added ToolBar drawing code
6799
6800 2006-04-06  Mike Kestner  <mkestner@novell.com>
6801
6802         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
6803         I'm assuming that means we need to look up the toplevel for the
6804         provided control. Fixes the crash trace in #77911 but exposes another
6805         crash in some strange reflection usage in NDocGui.
6806
6807 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6808
6809         * ThemeNice.cs: Gave it a little silver touch and added Images
6810           method
6811         * FontDialog.cs: FontDialog is not resizable
6812         * FileDialg.cs: Added SizeGripStyle.Show
6813
6814 2006-04-05  Jackson Harper  <jackson@ximian.com>
6815
6816         * KeyboardLayouts.cs: Remove warning.
6817
6818 2006-04-05  Jackson Harper  <jackson@ximian.com>
6819
6820         * Control.cs: Enable OnPaintInternal so we can use it for drawing
6821         all of our controls instead of Paint +=.
6822         * ListBox.cs:
6823         * ListView.cs:
6824         * MenuAPI.cs:
6825         * MessageBox.cs:
6826         * NotifyIcon.cs:
6827         * ProgressBar.cs:
6828         * ScrollBar.cs:
6829         * Splitter.cs:
6830         * StatusBar.cs:
6831         * TabControl.cs:
6832         * TextBoxBase.cs:
6833         * ToolBar.cs:
6834         * TrackBar.cs:
6835         * UpDownBase.cs:
6836         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
6837         use OnPaintInternal. Remove Width/Height and Visible checks in
6838         paint handler, this is done at a higher level now.
6839         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
6840         * PaintEventArgs.cs: Add a handled flag so controls that don't
6841         want anymore painting after OnPaintInternal can make sure OnPaint
6842         isn't called.
6843
6844 2006-04-05  Mike Kestner  <mkestner@novell.com>
6845
6846         * Form.cs: fix the menu WndProc hacks to respect the native enabled
6847         state of the form, so that we don't process events when Modal dialogs
6848         are up. Fixes #77922.
6849
6850 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
6851
6852         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
6853           checking is done.
6854
6855 2006-04-05  Mike Kestner  <mkestner@novell.com>
6856
6857         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
6858
6859 2006-04-05  Mike Kestner  <mkestner@novell.com>
6860
6861         * ListView.cs (HeaderMouseMove): null guarding for the over column
6862         when setting up the drag_to_index.  Fixes #78015.
6863
6864 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
6865
6866         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
6867           in the taskbar. Transient windows seem to accomplish that.
6868
6869 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
6870
6871         * Form.cs:
6872           - Re-enabled CreateParams.X/Y code for FormStartPosition
6873           - Added code for manual placement when creating the Control
6874           - Incomplete patch to treat MDI forms differently when
6875             setting the ClientSizeCore. (Still need to figure out handling
6876             x/y coords there)
6877         * XplatUIX11.cs:
6878           - When we're explicitly setting the X/Y position of a non-Child
6879             window, let the WM know. Metacity really wants this.
6880
6881 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6882
6883         * ThemeNice.cs: Added CPDrawButton
6884
6885 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6886
6887         * ThemeNice.cs: Changed the color for focused buttons and activated
6888           the arrows for small scroll buttons.
6889
6890 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6891
6892         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
6893           anymore. Changed some method modifiers to protected (virtual)
6894         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
6895           changes
6896         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
6897           Updated drawing of menus, buttons and progressbars; added
6898           CPDrawBorder3D 
6899
6900 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6901
6902         * ImageListStreamer.cs: implemented serialization/deserialization
6903         of the images.
6904
6905 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
6906
6907         * ThemeWin32Classic.cs:
6908           - Removed all the DrawFrameControl stuff; CPDrawButton,
6909             CPDrawCheckBox and CPDrawRadioButton are now handled directly
6910             inside the methods
6911           - Updated and corrected the drawing code of CPDrawButton,
6912             CPDrawCheckBox and CPDrawRadioButton to better match ms
6913           - Updated theme checkbox and radiobutton code to use the CP*
6914             methods
6915
6916 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6917
6918         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
6919           bug is fixed
6920
6921 2006-03-31  Jackson Harper  <jackson@ximian.com>
6922
6923         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
6924         sometimes.
6925         * UpDownBase.cs: Don't CreateGraphics manually, use a
6926         Refresh. Ideally we would invalidate the correct areas here.
6927
6928 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6929
6930         * XplatUIX11.cs: 
6931           - We now track the mapping state of windows. If a window (or 
6932             one of it's parents) is not mapped we no longer permit
6933             WM_PAINT messages to be generated since we'd otherwise get 
6934             lots of BadMatch X errors. Jackson did all the work figuring
6935             out the problem.
6936           - Destroying the caret if the window it's contained in is 
6937             destroyed. Can't use regular DestroyCaret method since it
6938             might fall into a drawing function (trying to remove the
6939             caret) and with that generate new BadMatch errors. Again,
6940             Jackson tracked this down.
6941           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
6942             make sure we send the messages to all windows. (The old code
6943             would send the WM_DESTROY to the window, and then all child
6944             windows would be 'gone' because the WM_DESTROY handle lookup
6945             would no longer find the destroyed window)
6946         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
6947         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
6948
6949 2006-03-31  Jackson Harper  <jackson@ximian.com>
6950
6951         * ScrollableControl.cs: Dont recalc if we are not visible.
6952
6953 2006-03-31  Mike Kestner  <mkestner@novell.com>
6954
6955         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
6956         the visibility branch.
6957
6958 2006-03-31  Jackson Harper  <jackson@ximian.com>
6959
6960         * ScrollBar.cs: Cap values when incrementing/decrementing.
6961
6962 2006-03-31  Mike Kestner  <mkestner@novell.com>
6963
6964         * MenuAPI.cs: setup menu.tracker for popup/context menus.
6965         * ToolTip.cs: guard against timer expirations with no active control.
6966         Not sure why it happened.
6967
6968 2006-03-31  Mike Kestner  <mkestner@novell.com>
6969
6970         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
6971         text.
6972         * ToolTip.cs: Position the tooltip based on where the cursor is at
6973         popup time, not at MouseEnter time.  Add a Down state so that we don't
6974         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
6975         positioning offset. Lookup DisplaySize at positioning time, since it
6976         can theoretically change during invocation.
6977         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
6978         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
6979
6980 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6981
6982         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
6983           Fixes behaviour when the Text property of the box is String.Empty
6984
6985 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
6986
6987         * XplatUIX11.cs: Only send mouseleave for our client windows, not
6988           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
6989           a window)
6990
6991 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6992
6993         * FileDialog.cs: Visual enhancement for the popup buttons in 
6994           PopupButtonPanel
6995
6996 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6997
6998         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
6999           code
7000
7001 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
7002
7003         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
7004           highlighted menu items to match ms
7005
7006 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
7007
7008         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
7009
7010 2006-03-30  Mike Kestner  <mkestner@novell.com>
7011
7012         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
7013         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
7014         go active to account for HotLight to Selected transition.
7015         * MenuItem.cs: add internal Selected prop. Fill out the Status
7016         property by calculating it from item info. Add HotLight,
7017         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
7018
7019 2006-03-30  Mike Kestner  <mkestner@novell.com>
7020
7021         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
7022
7023 2006-03-29  Jackson Harper  <jackson@ximian.com>
7024
7025         * Form.cs: Implement TODO.
7026
7027 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
7028
7029         * PrintPreviewDialog.cs: Implemented missing methods and events; still
7030           missing proper dialog setup in the constructor
7031
7032 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
7033
7034         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
7035         * Control.cs:
7036           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
7037           - Fixed ResetBindings and removed TODO
7038           - Added check for cross-thread calls to get_Handle()
7039           - Added Marshaller attribute for set_Font to satisfy class status
7040         * FontDialog.cs: Removed TODOs that seemed implemented
7041         * UpDownBase.cs: Removed unneeded TODO and Fixme
7042         * MessageBox.cs: Implemented support for Default button and removed TODO
7043         * FileDialog.cs: Removed obsolete TODO
7044         * DomainUpDown.cs: Removed obsolete TODO
7045         * ButtonBase.cs: Removed obsolete TODO
7046         * XplatUIWin32.cs: Removed obsolete TODO
7047         * Form.cs:
7048           - Removed obsolete TODO
7049           - Calling CheckAcceptButton when the acceptbutton is changed to allow
7050             internal status updates
7051           - Making sure the active control is selected when the control is created
7052         * CurrencyManager.cs: Removed obsolete TODO
7053
7054 2006-03-29  Mike Kestner  <mkestner@novell.com>
7055
7056         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
7057         of PrintPreviewDialog and RichTextBox.
7058
7059 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7060
7061         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
7062           DarkDark, Light and LightLight colors for a specific color
7063         * ThemeWin32Classic.cs:
7064           - Use Button drawing code to draw RadioButtons and CheckBoxes with
7065             Appearance = Button 
7066           - Make use of the new ResPool helper CPColor
7067           - Draw ProgressBar and StatusBar with correct 3D borders
7068
7069 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7070
7071         * ColorDialog.cs: Return selected color. Fixes bug #77940.
7072
7073 2006-03-28  Mike Kestner  <mkestner@novell.com>
7074
7075         * ListView.cs: fix Icon layout to plan for scrollbar widths when
7076         calculating col/row counts.
7077
7078 2006-03-28  Mike Kestner  <mkestner@novell.com>
7079
7080         * ColumnHeader.cs:
7081         * ListView.cs:
7082         * ListViewItem.cs:
7083         * Menu.cs: 
7084         switch to explicit interface method implementation for some methods
7085         corcompare identifies as inconsistent with MS.
7086
7087 2006-03-28  Mike Kestner  <mkestner@novell.com>
7088
7089         * MainMenu.cs: 
7090         * Menu.cs:
7091         add a few missing methods from the class status output.
7092
7093 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
7094
7095         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
7096           correct.
7097
7098 2006-03-28  Mike Kestner  <mkestner@novell.com>
7099
7100         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
7101
7102 2006-03-27  Mike Kestner  <mkestner@novell.com>
7103
7104         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
7105         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
7106
7107 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
7108
7109         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
7110
7111 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7112
7113         * ThemeWin32Classic.cs:
7114           - GroupBox: Inserted a little gap between the text and the lines
7115             on the right side
7116           - Made the code in CPDrawBorder3D more readable
7117           - Corrected the drawing location of the up and down arrows in 
7118             CPDrawScrollButton
7119
7120 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7121
7122         * ControlPaint.cs: Corrected line widths in DrawBorder for
7123           ButtonBorderStyle Inset and Outset
7124
7125 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7126
7127         * ThemeWin32Classic.cs:
7128           - Rewrote the totally broken CPDrawBorder3D method. That was
7129             one of the main problems for the terrific ThemeWin32Classic
7130             look
7131           - Updated and corrected Button drawing
7132           - Correct the dimensions of the SizeGrip to match ms ones
7133           - Removed a small drawing glitch in DrawComboBoxEditDecorations
7134         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
7135           Border3DStyle.Sunken to match ms.
7136
7137 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7138
7139         * ThemeWin32Classic.cs: First small part of the "de-uglify
7140           ThemeWin32Classic" effort, SizeGrip
7141
7142 2006-03-24  Jackson Harper  <jackson@ximian.com>
7143
7144         * XplatUIX11.cs: Give a max idle time of one second, this matches
7145         MS and forces an Idle event every second when there are no other
7146         events in the queue.
7147
7148 2006-03-24  Mike Kestner  <mkestner@novell.com>
7149
7150         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
7151         * ListView.Item.cs: fix layout issues with null image lists and images
7152         smaller than checkbox size.
7153         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
7154         mode like MS does.  It's weird, but consistent.  ;-)
7155         Fixes #77890.
7156
7157 2006-03-24  Mike Kestner  <mkestner@novell.com>
7158
7159         * ListView.cs: Scroll wheel support for the item control.  Fixes
7160         #77839.
7161
7162 2006-03-23  Jackson Harper  <jackson@ximian.com>
7163
7164         * ScrollableControl.cs: Special case negative sized areas, not
7165         zero.
7166         * MonthCalendar.cs: Save the rect of the clicked date so we can
7167         use it for invalidation.
7168         - Try to cut down on the number of invalidates
7169         - Invalidate the rect the mouse is over and was over when moving
7170         the mouse, so we get the focus box following the cursor.
7171
7172 2006-03-23  Mike Kestner  <mkestner@novell.com>
7173
7174         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
7175         focus rectangle drawing. Fixes #77835.
7176
7177 2006-03-23  Mike Kestner  <mkestner@novell.com>
7178
7179         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
7180         the if and else if and reverting back to the original == check on the
7181         None conditional.
7182
7183 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7184
7185         * FontDialog.cs: Update the example panel if the selected index of
7186           the fontListBox changes.
7187
7188 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7189
7190         * FileDialog.cs: Make FileDialog remember which directory it was in
7191           last in the same execution.
7192
7193 2006-03-22  Mike Kestner  <mkestner@novell.com>
7194
7195         * FileDialog.cs: make the DropDownMenu on the toolbar display
7196         RadioChecks since they are mutually exclusive and that's what MS does.
7197
7198 2006-03-22  Mike Kestner  <mkestner@novell.com>
7199
7200         * Theme.cs: add Color param to CPDrawMenuGlyph.
7201         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
7202         checks and radio marks and arrows are visible on highlighted items.
7203         * ControlPaint.cs: update to use new Theme signature.
7204
7205 2006-03-22  Mike Kestner  <mkestner@novell.com>
7206
7207         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
7208         is active. Fixes #77870.
7209
7210 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7211
7212         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
7213           to be focused/selected after startup
7214
7215 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7216
7217         * ColorDialog.cs: 
7218           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
7219             CustomColors and ShowHelp properties
7220           - Some internal rewrites to get better results when using the
7221             ColorMatrix
7222
7223 2006-03-22  Mike Kestner  <mkestner@novell.com>
7224
7225         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
7226         HoverSelection.  Fixes #77836.
7227
7228 2006-03-22  Mike Kestner  <mkestner@novell.com>
7229
7230         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
7231         ToggleButtons.  (De)Sensitize the Back button around a stack count of
7232         1, not 0.  Update ButtonSize based on a pixel count of the win32
7233         control.  Adjust the toolbar size/location for new button size.
7234
7235 2006-03-22  Jackson Harper  <jackson@ximian.com>
7236
7237         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
7238         true.
7239         * ScrollBar.cs: When doing increments and decrements we need to
7240         set the Value property so that ValueChanged gets raised. A
7241         possible optimization here would be to make an internal SetValue
7242         that doesn't invalidate immediately.
7243         * ToolTip.cs: Tooltips get added to their container (when
7244         supplied) so they get disposed when the container is disposed.
7245         - Don't create tooltips for String.Empty. This prevents all these
7246         little 2-3 pixel windows from showing up when running nunit-gui
7247         and driving me mad.
7248         * Form.cs: Don't set topmost when setting the owner if the handles
7249         haven't been created yet.  The topmost set will happen when the
7250         handles are created.
7251
7252 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
7253
7254         * XplatUIX11.cs:
7255           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
7256           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
7257             visible (to allow them to recalculate their sizes)
7258
7259 2006-03-21  Mike Kestner  <mkestner@novell.com>
7260
7261         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
7262         methods. Removed a ton of redundant code.  Still not really happy with
7263         the border rendering, but I think that's mainly because of the
7264         ControlDarkDark being black instead of a dark grey. Depending on how 
7265         close we want to be, we might want to revisit those color choices.
7266         Among the new features added during the refactor were DropDownArrow
7267         pressed rendering, Disabled image rendering.  Proper flat appearance
7268         boundary rendering.  Removed the Divider and Wrapping dividers since I
7269         can't figure out any combination of themes and conditions to make the
7270         MS control draw a horizontal line on a toolbar despite what the
7271         Divider property docs indicate.
7272         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
7273         conditions and incorrect layout.  Updated to coding standard.
7274         * ToolBarButton.cs: refactored layout and positioning code from
7275         ToolBar to here.  Invalidate wherever possible instead of forcing
7276         redraws of the whole toolbar. 
7277         (Known remaining issues: explicit ButtonSize smaller than provided
7278         images.)
7279
7280 2006-03-21  Mike Kestner  <mkestner@novell.com>
7281
7282         * ContextMenu.cs (Show): use the position parameter instead of just
7283         showing at the MousePosition.
7284
7285 2006-03-21  Jackson Harper  <jackson@ximian.com>
7286
7287         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
7288         control handle this.
7289         * TreeNodeCollection.cs: If we are clearing the root node we need
7290         to reset top_node so calcs can still happen.
7291         * ThemeWin32Classic.cs: This is a Flags so we need to check
7292         properly.
7293         
7294 2006-03-21  Jackson Harper  <jackson@ximian.com>
7295
7296         * DataGrid.cs: Create columns when the binding context has been
7297         changed.
7298         * X11Structs.cs: Keysyms are uints.
7299         - Add size to fix build.
7300
7301 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
7302
7303         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7304           XplatUIOSX.cs: 
7305           - Added ResetMouseHover method to allow controls to retrigger
7306             hovering if they need it more than once
7307           - Implemented MouseHoverTime and MouseHoverSize properties
7308         * Timer.cs: Start() must reset the interval
7309         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
7310           properties
7311
7312 2006-03-21  Jackson Harper  <jackson@ximian.com>
7313
7314         * X11Keyboard.cs: improved layout detection. Move the nonchar
7315         tables into this file.
7316         * KeyboardLayouts.cs: Move the tables into resource files.
7317
7318 2006-03-21  Mike Kestner  <mkestner@novell.com>
7319
7320         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
7321
7322 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
7323
7324         * Mime.cs: Various speed optimizations. Looking up mime types
7325           is now 2 times faster than before
7326
7327 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
7328
7329         * CreateParams.cs: Added internal menu field
7330         * Control.cs: 
7331           - Switched call order for UpdateBounds; now we always call
7332             the one that also takes ClientSize, and we're calculating the 
7333             client size via driver method in the others. The previous
7334             method of tracking client size by difference wasn't working
7335             for forms where even the starting client size wouldn't match
7336             the overall form size (due to borders) (Part of fix for #77729)
7337           - CreateParams(): Do not use parent.Handle unless the handle is
7338             already created. Causes havoc with Nexxia and throws off our
7339             creation of controls
7340         * XplatUIX11.cs:
7341           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
7342           - Switched handling of ConfigureNotify over to new PerformNCCalc 
7343             method (consolidates code)
7344           - Changed RequestNCRecalc to use new PerformNCCalc method
7345           - Added calls to RequestNCRecalc when menus and borders are changed
7346             to allow app to set NC size. (Part of fix for #77729) This matches
7347             when MS send a WM_NCRECALC on Win32 windows.
7348           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
7349             (Part of fix for #77729). This matches what MS does, they also
7350             send that message when the form is made visible.
7351           - XException.GetMessage: Improved usability of X errors by including
7352             a translation of the window into Hwnd and Control class
7353           - Improved debug info for window creation, reparenting and destruction
7354           - Created helper method WindowIsMapped() [Currently not used]
7355         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
7356         * Form.cs:
7357           - CreateParams: Now setting our menu on the new internal menu field
7358           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
7359             avoid calculating the same property twice
7360         * Hwnd.cs:
7361           - Improved usability of ToString() for debugging purposes
7362           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
7363             determine the height of the menu, instead of just the font. This
7364             required to also create a graphics context and to keep a bmp 
7365             around (for performance reasons)
7366
7367 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
7368
7369         * MenuAPI.cs: Added OnMouseUp method
7370         * Form.cs:
7371           - Now remembering the requested client size, avoids size errors
7372           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
7373             instead of base if the menu is active. This is required due to
7374             control now capturing and releasing on down/up and it would
7375             prematurely release our menu capture
7376
7377 2006-03-17  Jackson Harper  <jackson@ximian.com>
7378
7379         * KeyboardLayouts.cs: Add the czech layouts.
7380
7381 2006-03-16  Jackson Harper  <jackson@ximian.com>
7382
7383         * Control.cs: Use the viewport space when sizing not the controls
7384         client size, so things like ScrollableControl that effect the
7385         viewport size (when scrollbars are added) are computed correctly.
7386         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
7387         of ManagerEntrys.
7388         - Handle creating BindingManagers for null data sources.
7389         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
7390         source, otherwise when rows are added they are added to the 'fake'
7391         datasource and we will crash when trying to set the position in
7392         those rows.
7393         - Use Implicit scrollbars on the datagrid so they arent
7394         selectable.
7395         
7396 2006-03-16  Jackson Harper  <jackson@ximian.com>
7397
7398         * Binding.cs:
7399         * InternalWindowManager.cs:
7400         * MdiWindowManager.cs:
7401         * X11Keyboard.cs: I really want Mike to love me again (fix
7402         compiler warnings).
7403
7404 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
7405
7406         * DataGrid.cs:
7407           - OnMouseDown: Switch to editing mode when clicking on the cell
7408                          even if we're clicking on the cell that's currently 
7409                          selected
7410           - ProcessGridKey: Left/Right now wrap like MS.Net does
7411           - ProcessGridKey: Tab now knows to add a new row when tab is
7412                             pressed in the cell of the last column of the 
7413                             last row
7414           - ProcessGridKey: Enter now adds another row  if pressed in the last
7415                             row and selectes the new row, same column cell
7416           - ProcessGridKey: Home/End navigate columns, not rows, like 
7417                             originally implemented
7418           - Broke ProcessKeyPreview code out into an extra Internal method
7419             so it can be called from the edit code
7420         * DataGridTextBox.cs (ProcessKeyMessage):
7421           - Switched to accept Tab keypresses
7422           - Added F2 handling to allow jumping to the end of the edited cell
7423           - Added logic to allow moving caret left/right inside edited cell
7424             and making the edited cell jump when the caret hits cell borders
7425           - Tab and Enter are now passed to the datagrid after being handled
7426         * TextBoxBase.cs:
7427           - Removed capture code now that Control handles it
7428           - set_SelectionStart now ensures caret is visible
7429
7430 2006-03-16  Jackson Harper  <jackson@ximian.com>
7431
7432         * TrackBar.cs: Debackwards the increment/decrement for handling
7433         mouse clicks on the bar with vertical trackbars.
7434         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
7435         bottom to match MS.
7436
7437 2006-03-16  Mike Kestner  <mkestner@novell.com>
7438
7439         * ListView.cs: make shift/ctrl keyboard and mouse selection 
7440         consistent with the MS control. Fix a bug in
7441         SelectedListViewItemCollection.Clear that was pissing me off for the
7442         better part of a day because the collection was being altered
7443         underneath us as we walked the list.
7444
7445 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
7446
7447         * Control.cs: Not sure how we could miss this so long, but it seems
7448           that MS.Net has Capture set all the way from before calling 
7449           OnMouseDown through sending the mouse events until after
7450           OnMouseUp. This will fix DataGrid's selection being set to end
7451           at the location of the MouseUp.
7452
7453 2006-03-15  Jackson Harper  <jackson@ximian.com>
7454
7455         * BindingContext.cs: Check the binding after its added so that it
7456           can initialize the binding managers and hookup to events.
7457         * Binding.cs: Data members seem to sometimes include rows/cols in
7458           the format Row.Column we now take this into account.
7459           - Hookup to the position changed event so we can update the
7460           control when the position has changed in the data set.
7461         * CurrencyManager.cs: Take into account the row/col naming
7462           convention when creating dataset tables.
7463         * BindingContext.cs: Using a newer better way of storing
7464           datasource/datamember pairs.  Hopefully this better matches MS for
7465           looking up binding managers.
7466
7467
7468 2006-03-15  Jackson Harper  <jackson@ximian.com>
7469
7470         * BindingContext.cs: The currency manager needs the data member
7471         name, if the member is a data set we use the name to find the
7472         correct table.
7473         * CurrencyManager.cs: When creating the list prefer an IList over
7474         an IListSource.
7475         - Attempt to create a DataTable from a DataSet (TODO: might need
7476         some better error checking here, although MS doesn't seem to have much)
7477         - If we have a DataTable create a view and use it as our list.
7478
7479 2006-03-15  Mike Kestner  <mkestner@novell.com>
7480
7481         * ListView.cs: keep a matrix of the icon mode layout to facilitate
7482         keyboard navigation. Support Up/Down/Left/Right selection correctly
7483         for all 4 View modes.
7484         * ListViewItem.cs: add internal row/col fields for icon layouts.
7485
7486 2006-03-15  Jackson Harper  <jackson@ximian.com>
7487
7488         * TabControl.cs: Redraw the tabs when we resize so their newly
7489         calculated sizes are drawn on screen.
7490         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
7491         composite characters.
7492         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
7493         - filter events so that composite characters can be created
7494         patches by peter
7495         * X11Structs.cs: Add XIMProperties enum.
7496
7497 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7498
7499         * Control.cs (BringToFront, SendToBack): Don't use window or handle
7500           unless it's created
7501
7502 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7503
7504         * Control.cs (PerformLayout): We don't need to consider visiblity
7505           for anchoring, only for docking. This fixes 'whacky' alignment
7506           in listbox and other controls that use implicit scrollbars after
7507           the previous PerformLayout patch
7508         * ListBox.cs: Switched to use implicit scrollbars
7509           
7510 2006-03-14  Mike Kestner  <mkestner@novell.com>
7511
7512         * ToolBar.cs: 
7513         * VScrollBar.cs:
7514         - chain up the "new event" overrides to base and use
7515         OnEvent to raise them.  Part of fix for bug #76509.
7516
7517 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
7518
7519         * FileDialog.cs: Do not select an item in the parent directory
7520           on backspace
7521
7522 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7523
7524         * Control.cs (PerformLayout): It would seem that we considered
7525           invisible windows for our layout. Not quite the right thing
7526           to do. Now we don't any longer, thereby fixing bug #76889.
7527
7528 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7529
7530         * Control.cs (CanFocus): I goofed. A control can have focus 
7531           even though it's not selectable. Made it match MS docs.
7532
7533 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7534
7535         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
7536           center by default (fixes #76895)
7537         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
7538           all uses of Border3DSides.All with the explicit ORd together
7539           Left|Right|Top|Bottom because I assume that nobody was aware 
7540           that All also implies a center fill. Most places I checked had
7541           a fill right above.
7542         * ProgressBarStyle.cs: Added
7543
7544 2006-03-13  Mike Kestner  <mkestner@novell.com>
7545
7546         * ListView.cs: fix breakage in drag shadow header positioning 
7547         from Peter's csc compilation fix.
7548
7549 2006-03-13  Mike Kestner  <mkestner@novell.com>
7550
7551         * ListView.cs: fix NRE produced by backspacing twice in a focused
7552         FileDialog.
7553
7554 2006-03-13  Mike Kestner  <mkestner@novell.com>
7555
7556         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
7557
7558 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7559
7560         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
7561           be changed
7562         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
7563           the allowed size before making programmatic size changes
7564
7565 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
7566
7567         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
7568           set, metacity is broken and will still use the emty sizes in 
7569           the struct. (Fix for #77089)
7570
7571 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7572
7573         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
7574           WindowExStyles and marked both enums as Flags
7575         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
7576           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
7577           to match WindowStyles split
7578         * XplatUIX11.cs:
7579           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
7580           - Updated to match WindowStyles split
7581         * XplatUIWin32.cs:
7582           - Fixed FosterParent creation, was using ExStyle on the Style field
7583             (This should help with Popup focus issues)
7584           - Updated to match WindowStyles split
7585
7586 2006-03-13  Jackson Harper  <jackson@ximian.com>
7587
7588         * MdiWindowManager.cs: Use the system menu height. Fixes some
7589         strange sizing issues.
7590
7591 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7592
7593         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
7594         * TextBoxBase.cs:
7595           - Scroll to caret after inserting text (#77672)
7596           - Make scroll range one pixel higher, fixes off-by-one error (and
7597             makes underlines visible on the last line)
7598
7599 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
7600
7601         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
7602           the keyboard state from being stuck with keys in 'pressed' state when
7603           focus is switched away via keyboard
7604         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
7605           reset the keyboard if no X11 KeyUp events are expected to come
7606         * X11Structs.cs: Switched type of Visible to bool to match driver
7607
7608 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7609
7610         * TextControl.cs:
7611           - Switched caret to be just 1 pixel wide, matches MS and looks less
7612             clunky
7613           - Moved caret display 1 pixel down from the top of the control
7614             to improve view
7615           - InsertCharAtCharet: Update the selection start if moving the caret
7616             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
7617           - No longer always creating the caret when the caret methods are
7618             called. Only the actual ShowCaret/HideCaret will do that now
7619           - Only setting caret visible if the owner control has focus
7620           - UpdateView: Added invalidation-shortcut logic for center and right 
7621             aligned text. Previously we'd update all according to the left
7622             logic which caused drawing errors. Also fixed height of invalidated
7623             areas, now properly invalidating the whole area (was off-by-one)
7624           - owner_HandleCreated: Always generate the document when the
7625             handle is created; this ensures that 
7626         * TextBoxBase.cs:
7627           - Fixed situation where caret would disappear under the right
7628             window border, also improved scrolling behaviour on left-
7629             aligned textboxes
7630           - Fixed right-aligned textboxes to have a border to the
7631             right instead of the caret being under the right border
7632         * XplatUIX11.cs:
7633           - Switched from 'nested' to simple visible/not visible tracking 
7634             for caret (part of fix for #77671)
7635           - No longer passing through translated FocusIn/FocusOut messages
7636             since we were notifying too often and the wrong windows. Instead
7637             we just notify our focussed window of receiving or loosing focus
7638         * XplatUIWin32.cs: Switched from 'nested' show/hide 
7639           counting for caret to simple visible yes/no behaviour (part of 
7640           fix for #77671)
7641
7642 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7643
7644         * Mime.cs: Remove debug code...
7645
7646 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7647
7648         * MimeGenerated.cs: Removed
7649         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
7650           and subclasses) from /usr/(local/)share/mime and
7651           $HOME/.local/share/mime.
7652
7653 2006-03-10  Jackson Harper  <jackson@ximian.com>
7654
7655         * MdiWindowManager.cs: Recalc the NC area when a window is
7656         maximized/restored so that the menu area is drawn on forms that
7657         don't have a menu.
7658
7659 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7660
7661         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7662           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
7663           us to force a WM_NCCALCRESIZE message being sent. This is needed
7664           for MDI maximizing.
7665
7666 2006-03-10  Jackson Harper  <jackson@ximian.com>
7667
7668         * Form.cs: We need to use the ActiveMenu when calculating menu
7669         height.
7670         - Fix nullref when the window manager hasn't been created yet.
7671         * Control.cs: Fix nullref when we try to bring a control to the
7672         front that has no parent.
7673         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
7674         height.
7675         - Add a dummy item to the maximized menu so it always has the
7676         correct height. Otherwise when there are no menus we don't get our
7677         icon and buttons.
7678         
7679
7680 2006-03-10  Jackson Harper  <jackson@ximian.com>
7681
7682         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
7683         stuff.
7684         * Form.cs: Make the window_state internal so the window managers
7685         can track it.
7686         - When an MDI child is maximized let its window manager create the
7687         main menu (so it can add its icon).
7688         - Notify the window managers of state changes
7689         - Let the window manager paint its buttons and handle button
7690         clicks on the menu when it is maximized.
7691         * InternalWindowManager.cs: Move the prev_bounds into the mdi
7692         window manager, since tool windows don't use it, only mdi windows.
7693         - Tell the main form that we don't want it to handle NCPAINT
7694         itself to avoid extra painting.
7695         - Handle clicks on a maximized windows menu.
7696         - Handle window state changes
7697         - Handle minimize/maximize clicks correctly by setting the window state.
7698         * MdiWindowManager.cs: Add an icon menu that (the menu you get
7699         when clicking on the forms icon).
7700         - New method to create a forms maximized menu. This is its normal
7701         menu + an icon.
7702         - Handle window state changes.
7703         - Handle sizing of maximized windows.  Maximized windows are just
7704         drawn bigger then the parent visible area. All controls are still
7705         there, they are just outside the visible area (this matches windows).
7706         * MdiClient.cs: No scrollbars when a child window is maximized.
7707         - Let the children windows figure out how big they should be when
7708         sizing maximized windows.
7709         - Implement a version of ArrangeIconicWindows somewhat similar to
7710         Windows version.  There are some little differences, but I don't
7711         think any app will rely on the layout of minimized mdi windows.
7712
7713 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7714
7715         * Padding.cs: Several fixes to allow compiling with csc 2.0
7716
7717 2006-03-09  Jackson Harper  <jackson@ximian.com>
7718
7719         * Menu.cs:
7720         * MenuItem.cs: Cheap hack so we can add items to the list without
7721         the events being raised.  This allows adding mdi items during
7722         drawing. TODO: Should probably find a better time to add the items.
7723
7724 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7725
7726         * ThemeWin32Classic.cs:
7727           - CheckBox_DrawText: Added logic to not wrap if not enough space
7728             is available (Fix for bug #77727)
7729           - RadioButton_DrawText: Added logic not to wrap if not enough
7730             space is available (Fix for bug #77727). Also removed some
7731             duplicate code, DrawString always drawing the regular text
7732             before hitting the if statement.
7733
7734 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
7735
7736         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
7737
7738 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7739
7740         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
7741         * ContainerControl.cs: Partial implementation of some 2.0 scaling
7742           methods. Moved the new 2.0 properties into alphabetical order with
7743           other properties and added MonoTODO tags
7744
7745 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7746
7747         * AutoScaleMode.cs: Added. Fix build.
7748
7749 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7750
7751         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7752           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
7753           and was requiring premature handle creation for calls from above
7754         * Form.cs, Control.cs: Removed handle arguments from calls to
7755           CalculateClientRect()
7756
7757 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7758
7759         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
7760           drag_column.column_rect is MarshalByRef and can't be used that way
7761
7762 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7763
7764         * AxHost.cs: Added deserialization constructor for 
7765           AxHost+State (fixes 77743)
7766
7767 2006-03-09  Mike Kestner  <mkestner@novell.com>
7768
7769         * ListView.cs: 
7770         - Added column drag reordering for details view.
7771         - fixed behavior when mouse is dragged off column and
7772         AllowColumnReorder is false.
7773         * ColumnHeader.cs: clone the format too in Clone.
7774         * Theme.cs: add DrawListViewHeaderDragDetails method.
7775         * ThemeWin32Classic.cs:
7776         - impl new method for drawing drag column shadows and targets.
7777         - support column offset for details mode in DrawListViewItem.
7778
7779 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7780
7781         * TextControl.cs: Reset the char_count when the document is cleared
7782           (Fixes bug reported on mono-winforms mailing list)
7783
7784 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7785
7786         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
7787           of calling base we simply process the key ourselves, since both
7788           DefWindowProc and the handled method would set m.Result. 
7789           (Fixes #77732)
7790
7791 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7792
7793         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
7794           method also moves the window; instead implemented a copy of
7795           Control.ScaleCore (Part of fix for #77456)
7796         * TextBoxBase.cs: 
7797           - Created new CreateGraphicsInternal method to allow providing
7798             a graphics context when no handle is created without triggering
7799             handle creation. (Part of fix for #77456)
7800           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7801         * TextControl.cs: 
7802           - Switched Constructor to require TextBoxBase instead of Control (to
7803             allow uncast access to CreateGraphicsInternal)
7804           - Safeguarded use of owner.Handle property. No longer accessing it
7805             unless the handle is already created.
7806           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7807           - Now triggering a recalc when owning control becomes visible
7808         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
7809           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
7810           premature handle creation (Part of fix for #77456)
7811         * Control.cs:
7812           - We now only destroy our double-buffering buffers when the
7813             control is resized or disposed, but not when visibility
7814             changes. (The code even re-created them twice every time)
7815           - Now requiring a redraw of the buffer on visibility changes
7816             (fixes bug 77654 part 2)
7817           - Not passing OnParentVisibleChanged up unless the control
7818             is visible
7819           - CanFocus: Fixed to match MS documentation
7820           - Focus: Fixed to return actual focus state and to check if
7821             setting focus is legal before setting it
7822
7823 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
7824
7825         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
7826           when to draw focus rectangle by looking at parent focus and
7827           selected state instead. This fixes TabPages on Linux sometimes
7828           having none or multiple focus rectangles.
7829         * XplatUIX11.cs (SetFocus): 
7830           - Don't set the focus if the same window already has focus
7831           - Use SendMessage instead of PostMessage (like it's Win32
7832             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
7833             to match MS behaviour
7834         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
7835           are not selectable.
7836
7837 2006-03-07  Jackson Harper  <jackson@ximian.com>
7838
7839         * PictureBox.cs: Revert line I accidently committed last week.
7840
7841 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7842
7843         * Control.cs: 
7844           - Added new IsRecreating and ParentIsRecreating properties to
7845             allow testing if RecreateHandle has been called on ourselves
7846             or one of our parents
7847           - WndProc(WM_DESTROY): If our control handle is being recreated
7848             we immediately need to create the handle when receiving the
7849             destroy, that way our child windows find a valid parent handle
7850             when they themselves are being recreated upon WM_DESTROY receipt
7851             (fix for bug #77654 part 1)
7852         * XplatUIX11.cs:
7853           - DestroyWindow: WM_DESTROY must be sent to our own window before
7854             notifying any child windows. MS documents that child windows
7855             are still valid when WM_DESTROY is received. (Control now relies on
7856             this behaviour)
7857           - Added some fine-grain debug options
7858
7859 2006-03-06  Jackson Harper  <jackson@ximian.com>
7860
7861         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
7862         box and base calculations off this.
7863         * MdiChildContext.cs:
7864         * MdiWindowManager.cs: Don't need to ensure scrollbars here
7865         anymore.
7866         
7867 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
7868
7869         * Splitter.cs: In situations where the affected control is added
7870           to the parent's control list after the splitter, we would not
7871           populate affected. Now we try populating it on mousedown, if
7872           it's not already set, and force it to be re-set whenever our
7873           parent changes.
7874
7875 2006-03-03  Matt Hargett  <matt@use.net>
7876
7877         * Control.cs: implement Control.Padding
7878         * Padding.cs: -Padding.All returns -1 when constructing with the
7879         implicit default ctor
7880         -Padding.ToString() matches MS.NET
7881         * ContainerControl.cs: implement
7882         ContainerControl.AutoScaleDimensions
7883         * ListControl.cs: implement ListControl.FormattingEnabled
7884         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
7885         * ButtonBase.cs:
7886         * TabPage.cs: Implement UseVisualStyleBackColor.
7887         * PictureBox.cs: Implement PictureBox.InitialImage.
7888
7889 2006-03-03  Mike Kestner  <mkestner@novell.com>
7890
7891         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
7892         event declarations to proxy to base event.
7893         * ListViewItem.cs: update to use ItemControl.
7894         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
7895         * ThemeWin32Classic.cs: update to new ListView theme API and fix
7896         column header label rendering for 0 width columns.
7897
7898 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
7899
7900         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
7901           that causes the control to be created. Fixes #77476.
7902
7903 2006-03-02  Jackson Harper  <jackson@ximian.com>
7904
7905         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
7906         expose_pending.
7907
7908 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
7909
7910         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
7911           passed in for the EventArgs (fixes #77690)
7912
7913 2006-03-01  Jackson Harper  <jackson@ximian.com>
7914
7915         * ScrollBar.cs: Refresh afterbeing resized.
7916
7917 2006-02-28  Mike Kestner  <mkestner@novell.com>
7918
7919         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
7920         Clean up a tracker compile warning.
7921         * MenuItem.cs: add internal PerformPopup method.
7922         [Fixes #77457]
7923
7924 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7925
7926         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
7927           implicit expose) when the text is set to null
7928
7929 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
7930
7931         * RichTextBox.cs (FlushText): When newline is true, we always
7932           need to split the line, even if no text is on it and we may
7933           never eat newlines. (Fixes #77669)
7934
7935 2006-02-28  Mike Kestner  <mkestner@novell.com>
7936
7937         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
7938         and set Selected instead.
7939         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
7940         collections.
7941
7942 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7943
7944         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
7945
7946 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
7947
7948         * FontDialog.cs:
7949           - Got rid of the panel. All controls are now directly added to
7950             the dialog form
7951           - It is now possible to set a font with the Font property
7952           - MinSize and MaxSize property do now what they should
7953           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
7954           - Searching and selecting a font with the font textbox works now,
7955             the same applies to the style and size textbox
7956           - Draw the correct 3D border in the example panel
7957           - Fixed a little mem leak (unused fonts didn't get disposed)
7958           - Many other internal updates/rewrites...
7959           - Fix typo
7960
7961 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7962
7963         * TextControl.cs: 
7964           - InsertRTFFromStream: Added 'number of characters inserted' argument
7965           - set_SelectedRTF: Now using the number of characters to calculate
7966             the new location for the selection and cursor (x/y cannot be used
7967             due to potentially already wrapped text)
7968
7969 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
7970
7971         * TextControl.cs: Added property and implemented means to allow 
7972           disabling recalculation of a document (can be used to speed up
7973           multiple inserts and is needed to make RTF inserts predictable, see
7974           bug #77659)
7975         * RichTextBox.cs: Using the new NoRecalc property of Document to
7976           keep x/y insert locations predictable. Also makes it faster inserting
7977           large chunks of RTF
7978
7979 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7980
7981         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
7982           it's easier for a child control to handle the other messages without
7983           having to duplicate the special functionality
7984         * TextBoxBase.cs
7985           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
7986             code to handle processing the key ourselves, in order to get 
7987             access to the result of KeyEventArgs.Handled. We now only call 
7988             ProcessKey if they key hasn't been handled already. Fixes #77526.
7989           - set_Text: If null or empty string is given, just clear the 
7990             document. Fixes part of #77526
7991
7992 2006-02-27  Jackson Harper  <jackson@ximian.com>
7993
7994         * SizeGrip.cs: Paint the background color before painting the grip
7995         so things look right.
7996         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
7997
7998 2006-02-27  Mike Kestner  <mkestner@novell.com>
7999
8000         * ListView.cs:
8001           - Restructure layout and invalidation model to remove a ton of
8002           flicker from the control and speed up performance in general.
8003           - Add manual column resize, flickers like crazy, but I already have
8004           some ideas on how I'll fix that. (#76822)
8005           - Merge the three Icon-based views into a single layout method.
8006           - Move item selection interaction logic from the item since 
8007           interaction with the collections is more appropriate to the view.
8008           - Deselection on non-item clicks.
8009         * ListViewItem.cs:
8010           - Encapsulate most of the layout. Add some internal props to trigger
8011           layout.  Move to a model where Items invalidate themselves instead
8012           of just invalidating the whole control every time something changes.
8013           - Invalidate on Text/Caption changes.
8014           - switch to an offset based layout model to avoid having to absolute
8015           position every element on item moves.
8016           - correct checkbox layout to conform to MS layout.
8017         * ThemeWin32Classic.cs:
8018           - refactor some column header drawing code.
8019           - fix string justification for column headers (#76821)
8020           - make SmallIcon labels top justified for compat with MS impl.
8021         * ThemeClearlooks.cs:
8022           - adjust to new ListViewItem internal checkbox bounds api.
8023
8024 2006-02-27  Jackson Harper  <jackson@ximian.com>
8025
8026         * Control.cs:  Change where implicit controls fall in the zorder.
8027         They are now on top of all children.
8028         - Synced AddImplicit code with Add
8029         - Removed unused enumerator.
8030         * SizeGrip.cs: Remove the TODO as its been TODONE.
8031
8032 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
8033
8034         * TextControl.cs(Insert): Combine the last lines unless the insertion
8035           string ends with \n\n, otherwise we leave one line too many (Fixes
8036           something I noticed with the testapp for #77526; the bug itself was
8037           already fixed in the previous checkin)
8038
8039 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
8040
8041         * RichTextBox.cs:
8042           - SelectionColor and SelectionFont methods no longer set absolute
8043             styles. Instead, the keep font or color respectively (This 
8044             resolves a long-standing FIXME in the code)
8045           - When flushing RTF text, the insert code now considers text trailing
8046             behind the insertion point (Fixes the bug where when replacing
8047             the selected text via SelectedRTF the remainder of the line behind 
8048             the selection would stay on the first insertion line)
8049         * TextBoxBase.cs:
8050           - AppendText now updates the selection points after inserting text
8051           - AppendText now ensures that the last tag (sometimes 0-length) of
8052             the document is used for the style information (Fixes part of 
8053             bug #77220)
8054         * TextControl.cs:
8055           - Created new FontDefiniton class to allow describing partial style
8056             changes
8057           - StreamLine() now takes a lines argument, to allow it to decide
8058             whether an encountered zero-length tag is the last in the document
8059             (which must be kept to not loose the font/color contained in it,
8060             for later appends)
8061           - Created Combine() and Split() methods for Marker structs, to 
8062             support marker updates due to reformatted documents (soft line
8063             wraps)
8064           - Implemented Document.CaretTag setter
8065           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
8066             of the last line (Not the cause, but also exposed by bug #77220)
8067           - Added LineTag argument to InsertString method, to allow callers
8068             to force a certain tag to be used (required to force use of the
8069             trailing zero-length tag of a document)
8070           - Now updating markers in Combine(), to avoid stale tag markers
8071           - Added some method descriptions to aid maintenance
8072           - Implemented new FormatText concept, allowing additive/subtractive
8073             formatting by only specifying the components that are to be 
8074             changed. This was needed for resolving the RTB.SelectedColor/
8075             RTB.SelectedFont fixmes
8076           - Added Break() support method to allow breaking up linetags (used
8077             for partial formatting)
8078           - Added GenerateTextFormat() method. It is used for partial 
8079             formatting and allows to generate a full font/color from given
8080             attributes and an existing tag.
8081
8082 2006-02-26  Jackson Harper  <jackson@ximian.com>
8083
8084         * XplatUIX11.cs:  Use the correct caption height.
8085         - Translate hittest coordinates to screen coords to match MS.
8086         * XplatUIWin32.cs: When we create MDI windows we need to reset
8087         some of the style flags, so we get a nice blank window, and can
8088         draw all the decorations ourselves.
8089         - Set a clipping rectangle on the non client paint event, the
8090         window manager drawing code needs one.
8091         * Form.cs: The window manager needs to know when the window state
8092         has been updated.
8093         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
8094         don't need to factor in border and title sizes in these
8095         methods. TODO: Remove the args and fix the call points.
8096         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
8097         properly.
8098         - Let the driver set the cursors.
8099         - Improve active window handling
8100         - Correct sizes for title bars and buttons.
8101         - Match MS drawing better
8102         * MdiWindowManager.cs: We don't need to handle border style
8103         updates specially anymore.
8104         - Check for scrollbars when windows are done moving
8105         - Handle Active properly.
8106         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
8107         correctly. I am spewing the exception though, so we don't hide the
8108         bugs.
8109         
8110 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
8111
8112         * DataGridViewRowPostPaintEventArgs.cs,
8113           DataGridViewCellPaintingEventArgs.cs,
8114           DataGridViewRowCollection.cs,
8115           DataGridViewRowPrePaintEventArgs.cs,
8116           DataGridViewCell.cs: Clear a few warnings and implement a few
8117           exceptions that should be thrown.
8118
8119 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8120
8121         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
8122           'inheriting' our parent's (non-default) cursor. (Part of
8123            the fix for #77479)
8124
8125 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
8126
8127         * XplatUIX11.cs: Fixed cast to make csc happy
8128
8129 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8130
8131         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
8132           it's for the client area (part of fix for #77479 and needed
8133           for MDI window cursor handling)
8134         * XplatUIX11.cs
8135           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
8136             the appropriate default cursors and also passing the message
8137             up the parent chain 
8138           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
8139             for non-client areas
8140
8141 2006-02-15  Jackson Harper  <jackson@ximian.com>
8142
8143         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
8144         is a real MDI window
8145
8146 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
8147
8148         * X11DesktopColors.cs: Instead of checking the desktop session
8149           string for "KDE" check if it starts with "KDE"
8150
8151 2006-02-10  Jackson Harper  <jackson@ximian.com>
8152
8153         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
8154         systems).
8155
8156 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8157
8158         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
8159           errors
8160         * ColorDialog.cs:
8161           - Got rid of the panel. All controls are now directly added to
8162             the dialog form
8163           - Changed to mono coding style
8164
8165 2006-02-10  Jackson Harper  <jackson@ximian.com>
8166
8167         * InternalWindowManager.cs: We don't need the set visibility to
8168         false hack anymore now that peter has written beautiful shutdown
8169         code.
8170
8171 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
8172
8173         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
8174           where already explicitly destroyed
8175
8176 2006-02-10  Jackson Harper  <jackson@ximian.com>
8177
8178         * MdiClient.cs: Handle the case where windows are too high or to
8179         the left and we need scrollbars.
8180
8181 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8182
8183         * MimeIcon.cs: Added some icons
8184         * FileDialog.cs:
8185           - Fixed bug #77477
8186           - Got rid of the panel. All controls are now directly added to
8187             the dialog form
8188           - Changed to mono coding style
8189           - On Linux "My Computer" and "My Network" will now show some
8190             more usefull information. A new class, MasterMount, gathers
8191             this information from /proc/mount. Updated MWFFileView to make
8192             use of this information
8193           - Fixed a bug that caused FileDialog to crash when
8194             ".recently_used" file had a zero size
8195           - FilterIndex does now what it should
8196           - Some Refactoring
8197         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
8198             FileDialog changes
8199
8200 2006-02-09  Jackson Harper  <jackson@ximian.com>
8201
8202         * ComboBox.cs: Don't touch if null.
8203
8204 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
8205
8206         * Cursor.cs: 64bit safeness fix
8207         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
8208
8209 2006-02-09  Jackson Harper  <jackson@ximian.com>
8210
8211         * Form.cs: If a form is made into an MDI form update the styles so
8212         all the props can get set correctly.
8213         - Kill the mdi_container when we dont need it anymore.
8214         * InternalWindowManager.cs: Add missing NOT
8215
8216 2006-02-08  Jackson Harper  <jackson@ximian.com>
8217
8218         * InternalWindowManager.cs: Respek clipping when drawing MDi
8219         decorations.
8220
8221 2006-02-08  Jackson Harper  <jackson@ximian.com>
8222
8223         * Hwnd.cs: Add bits to track non client expose events.
8224         * XplatUIX11.cs: Track non client expose events on the hwnd. This
8225         gives us a proper invalid rect and will allow for some nice
8226         optimizations with NC client drawing
8227         - MDI windows are children windows, so move their style handling
8228         into the child window block.
8229         * InternalWindowManager.cs: Remove a state reset that was
8230         getting invoked at the wrong time. Fixes managed windows getting
8231         into a 'stuck' captured state.
8232
8233 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8234
8235         * TextControl.cs (Document.ctor): Now initializing 
8236           selection_anchor. Fixes #77493
8237
8238 2006-02-07  Jackson Harper  <jackson@ximian.com>
8239
8240         * TrackBar.cs: The increment/decrements were backwards.
8241
8242 2006-02-07  Mike Kestner  <mkestner@novell.com>
8243
8244         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
8245         to the instance itself.
8246
8247 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8248
8249         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
8250           on ulongs and pointers, the size differs between 32bit and 64bit
8251           systems. 
8252
8253 2006-02-07  Mike Kestner  <mkestner@novell.com>
8254
8255         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
8256         for 64 bit platforms to work around a metacity bug. 
8257
8258 2006-02-07  Jackson Harper  <jackson@ximian.com>
8259
8260         * TrackBar.cs: Process the input keys we need, and hookup to
8261         KeyDown instead of using WndProc, so we get key messages.
8262
8263 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
8264
8265         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
8266           machine we're on. 
8267         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
8268           we need to translate the XdndVersion atoms array before sending it
8269
8270 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
8271
8272         * XplatUIX11.cs: 
8273           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
8274             number of bits for the property, not the number of bytes. The
8275             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
8276             but would not crash since it specified 8 bits instead of 4 bits)
8277           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
8278             defined as XID -> long in the C headers)
8279           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
8280             references since those are now IntPtr to begin with
8281           - Switched all Atom.XXX 'int' casts to IntPtr casts
8282           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
8283           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
8284           - Added XChangeActivePointerGrab DllImport (for X11DnD)
8285         * X11Structs.cs:
8286           - Changed 'int' type for Atoms in XEvent structures to IntPtr
8287           - Changed atom in HoverStruct to be IntPtr
8288         * X11DnD.cs:
8289           - Removed local DllImports, switched code to use those from XplatUIX11
8290           - Removed/fixed casts related to the switch of Atom to be a IntPtr
8291
8292 2006-02-06  Mike Kestner  <mkestner@novell.com>
8293
8294         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
8295         method signatures in the import region.  There may still be some
8296         lingering struct marshaling issues, as I didn't drill down into those.
8297         Yet.
8298
8299 2006-02-06  Jackson Harper  <jackson@ximian.com>
8300
8301         * ComboBox.cs: Dont manually set the top_item, this is computed
8302         when the scrollbar position is set.
8303
8304 2006-02-06  Mike Kestner  <mkestner@novell.com>
8305
8306         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
8307         startup crashes on amd64.  There's other fixes needed.  All pinvoke
8308         usage of Atom needs to be mapped to IntPtr for example.  And there are
8309         likely other int/long issues to be addressed.
8310
8311 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
8312
8313         * FileDialog.cs: One more...
8314
8315 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8316
8317         * FileDialog.cs: Next try
8318
8319 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8320
8321         * FileDialog.cs: First part of fix for #77464
8322
8323 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8324
8325         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
8326           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
8327           AcceptButton border drawing.
8328
8329 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
8330
8331         * Form.cs: Moved positioning of form after auto scaling is applied,
8332           otherwise it would possibly use wrong form size.
8333
8334 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
8335
8336         * Control.cs (RecreateHandle): No need to re-create any child
8337           controls, the child windows will get destroyed automatically by
8338           the windowing system or driver, and re-created when the handle
8339           is being accessed the first time. Fixes #77456
8340         * Form.cs: No longer setting the form to closing if the handle is 
8341           being recreated. This seems like the right thing to do, don't
8342           have a bug or testcase for this, though.
8343
8344 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8345
8346         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
8347           controls to avoid unwanted side effects
8348
8349 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
8350
8351         * Control.cs: 
8352           - ScaleCore needs to scale the bounds, not the ClientSize of the 
8353             control. Fixes #77416.
8354           - DefaultSize is 0,0 for control
8355         * TextBoxBase.cs: 
8356           - DefaultSize is 100, 20
8357           - SetBoundsCore: Now enforcing the height, no matter if the provided
8358             height is more or less than the preferred one, as long as AutoSize
8359             is on
8360         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
8361
8362 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8363
8364         * Control.cs:
8365           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
8366             call unless both performLayout is true *and* we have a pending
8367             layout change
8368           - ResumeLayout: MS does not completely nest Suspend and Resume,
8369             they bottom out at 0, fixed our code to match that.
8370           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
8371             SetBoundsCore, we were updating even when we shouldn't. This fixes
8372             swf-anchors mis-anchoring when resizing the app fast and lots.
8373           - UpdateDistances: Now only setting the left and top distance if 
8374             we have a parent and are not suspended, this is based on
8375             a suggestion by Don Edvaldson in bug #77355.
8376           - OnVisibleChanged: Fixed logic when to create the control. We may
8377             not create the control if we have no parent or if it's not visible;
8378             switched to using Visible property instead of is_visible field 
8379             since the property also considers parent states. This fixes a bug
8380             when starting Paint.Net
8381
8382 2006-02-02  Jackson Harper  <jackson@ximian.com>
8383
8384         * Form.cs: If the forms handle hasn't been created yet don't call
8385         into xplatui to make it top most, just set the topmost flag on the
8386         form in CreateParams
8387         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
8388
8389 2006-02-01  Jackson Harper  <jackson@ximian.com>
8390
8391         * ScrollableControl.cs: Refactored the Recalculate method a
8392         little, this wasn't handling all the variants of bottom and right
8393         bars needed to be added and added/removed based on their
8394         counterparts being added/removed (which changes the drawable
8395         size). Also we special case client widths and heights of 0 and
8396         don't add the scrollbar for those.
8397
8398 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
8399
8400         * XplatUIX11.cs: 
8401           - Added method to get AbsoluteGeometry(); currently unused, but might
8402             be used in the future, if we try again to figure out toplevel
8403             coordinates with some more crappy window managers
8404           - Added FrameExtents() method to retrieve the WM set decoration size
8405           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
8406             to deal with at least KDE, FVWM and metacity (Fixes #77092)
8407         * Hwnd.cs: 
8408           - Added whacky_wm tracking var for metacity
8409           - Added logic to have default menu height if the actual menu height
8410             has not yet been calculated (part of fix for #77426)
8411         * Form.cs: Keep track whether client size has been set and re-set 
8412           it if a menu is added/removed afterwards (Fixes #77426)
8413
8414 2006-01-31  Jackson Harper  <jackson@ximian.com>
8415
8416         * Control.cs: When a new Site is set on the component attempt to
8417         pull the AmbientProperties from it.
8418
8419 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
8420
8421         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
8422           in the background of the owning form. Fixes #77332
8423
8424 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8425
8426         * MimeIcon.cs: Fix for #77409
8427
8428 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8429
8430         * XplatUIX11GTK.cs: Initial import
8431
8432 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
8433
8434         * FixedSizeTextBox: fixes class signature
8435
8436 2006-01-30  Jackson Harper  <jackson@ximian.com>
8437
8438         * FixedSizeTextBox.cs: New internal class that represents a
8439         textBox that will not be scaled.
8440         * TreeView.cs:
8441         * ComboBox.cs:
8442         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
8443         standard TextBox.
8444                 
8445 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
8446
8447         * XplatUIX11.cs: Retrieve default screen number instead of
8448           assuming 0. Attempted fix for #77318
8449
8450 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
8451
8452         * XplatUIWin32.cs: 
8453           - GetWindowPos: When a window is parented by FosterParent, use 
8454             the desktop instead of FosterParent as the base to get coordinates
8455           - CreateWindow: Don't make FosterParent the parent window for Popups
8456             if we don't want a taskbar entry, Popups automatically don't get one
8457         * Hwnd.cs: Need to call remove to actually remove the key from the
8458           hash table
8459
8460 2006-01-30  Mike Kestner  <mkestner@novell.com>
8461
8462         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
8463
8464 2006-01-30  Jackson Harper  <jackson@ximian.com>
8465
8466         * TreeView.cs:
8467         * TreeNode.cs: Raise events no matter how the treenode is
8468         checked. Patch by Don Edvalson.
8469
8470 2006-01-30  Jackson Harper  <jackson@ximian.com>
8471
8472         * TreeNode.cs: Signature fix.
8473
8474 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
8475
8476         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
8477
8478 2006-01-20  Mike Kestner  <mkestner@novell.com>
8479
8480         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
8481         event forwarding when menus are active.
8482         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
8483         Most of the patch is pdb's with a little rework.
8484
8485 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8486
8487         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
8488           Removed GetMenuDC and ReleaseMenuDC methods; replaced
8489           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
8490         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
8491         * InternalWindowManager.cs: Added use of PaintEventStart/End to
8492           handling of WM_NCPAINT message, now passing the PaintEventArgs to
8493           the PaintWindowDecorations method
8494         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
8495         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
8496         * MenuAPI.cs: Made tracker window invisible
8497         * XplatUIWin32.cs:
8498           - Removed GetMenuDC and ReleaseMenuDC methods
8499           - Implemented the client=false path for PaintEventStart and
8500             PaintEventEnd
8501
8502 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8503
8504         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
8505         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
8506           styles
8507         * Form.cs: 
8508           - MaximizeBox, MinimizeBox: Recreate the handle when setting
8509             the style
8510           - CreateParams: Reworked the styles to match MS look'n'feel,
8511             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
8512             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
8513
8514 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8515
8516         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
8517           window is not mapped, since otherwise every form that's being 
8518           created is considered minimized, which is wrong.
8519         * Form.cs: Catching the exception and returning our internal value
8520           instead
8521
8522 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8523
8524         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
8525           SetWindowMinMax() to have means to tell the driver about the minimum,
8526           maximum and maximized state window sizes. (Part of the fix for #76485)
8527         * Form.cs:
8528           - Implemented tracking of minimum and maximum window size, now calling
8529             new SetWindowMinMax() driver method to tell the driver (Part of the
8530             fix for #76485)
8531           - Finished handling of WM_GETMINMAXINFO method, now setting all values
8532             (Completes fix for #76485)
8533           - Calling new SetWindowMinMax driver method when the handle for a 
8534             form is created, to make sure the driver knows about it even if
8535             the values have been set before the window was created
8536           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
8537             to avoid messing up our anchoring calculations (partial fix
8538             for #77355)
8539         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
8540         * XplatUIX11.cs:
8541           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
8542           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
8543             (and presumably other freedesktop.org compliant WMs). Left the
8544             assumption unmapped=minimized, needed for SetVisible to work.
8545           - Now setting the window state when creating windows
8546           - Fixed SetVisible to consider/set the window state when mapping
8547             a Form. We cannot set the state before it's mapped, and we cannot
8548             use Form.WindowState once it's mapped (since it would ask the
8549             driver and get 'normal'. Therefore, we grab the state before
8550             mapping, map, and then set state.
8551           - Implmemented SetWindowMinMax method; Metacity does not seem to
8552             honor the ZoomHints, though.
8553         * XplatUIWin32.cs:
8554           - Removed MINMAXINFO (moved to XplatUIStructs)
8555           - Added SetWindowMinMax stub (on Win32 the only way to set that
8556             information is in response to the WM_GETMINMAXINFO message, which
8557             is handled in Form.cs)
8558           - Added logic to SetVisible to set the proper window state when a 
8559             form is made visible (fixes #75720)
8560
8561 2006-01-26  Jackson Harper  <jackson@ximian.com>
8562
8563         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
8564         same way we handle them with Invoke.
8565
8566 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
8567
8568         * Form.cs:
8569           - Added tracking of window state so CreateParams can return
8570             the appropriate style
8571           - Moved setting of WS_CAPTION style in CreateParams to allow
8572             styles without caption
8573         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
8574           control if the TextBox property is accessed. Fixes #77345
8575         * Control.cs:
8576           - get_Created: now uses is_disposed and is_created to determine
8577             return value (suggested by Jackson)
8578           - CreateHandle: No longer exits if the handle is being recreated
8579           - RecreateHandle: If the handle is not yet created call the 
8580             appropriate method to create either control or handle. If the
8581             control is already created CreateHandle will simply exit instead
8582             of just creating the handle
8583         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
8584           now SendMessage WM_DESTROY directly to the control when DestroyWindow
8585           is called.
8586         * XplatUIX11.cs: 
8587           - When DestroyWindow is called, instead of waiting for the 
8588             DestroyNotification from X11, we directly post it to the WndProc
8589             and immediately dispose the hwnd object.
8590             Same applies to DestroyChildWindows, and this obsoletes the
8591             expose_pending tracking. Contrary to Win32 behaviour we destroy our
8592             child windows before our own, to avoid X11 errors.
8593           - Removed the direct sending of WM_PAINT on UpdateWindow
8594         * XplatUIWin32.cs:
8595           - Reworked DoEvents and GetMessage to allow access to internal queue
8596             even when trying non-blocking access to the queue.  Fixes #77335. 
8597             Based on a patch suggestion by Don Edvalson. The new private
8598             GetMessage can now also be used as a backend for a PeekMessage
8599             frontend version.
8600         * XplatUI.cs: Improved debug output for CreateWindow
8601
8602 2006-01-25  Jackson Harper  <jackson@ximian.com>
8603
8604         * Help.cs: Allow param to be null. Patch by Don Edvalson.
8605
8606 2006-01-24  Jackson Harper  <jackson@ximian.com>
8607
8608         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
8609         when we have a MaxDropItems lower then the selected index.
8610
8611 2006-01-24  Jackson Harper  <jackson@ximian.com>
8612
8613         * Control.cs: Don't allow selection of non visible controls, allow
8614         selection of controls without parents.
8615
8616 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8617
8618         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
8619         * DataGridDrawingLogic.cs: Add editing row only when is necessary
8620
8621 2006-01-23  Jackson Harper  <jackson@ximian.com>
8622
8623         * UpDownBase.cs: Make the textbox handle all the selection and
8624         tabbing. This fixes tabing to updown controls.
8625
8626 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8627
8628         * TextBoxBase.cs: fixes exception thown the object was null
8629
8630 2006-01-23  Jackson Harper  <jackson@ximian.com>
8631
8632         * ButtonBase.cs: Just use the base CreateParams. They set
8633         visibility and enabled correctly.
8634         * ComboBox.cs:
8635         * TrackBar.cs:
8636         * MonthCalendar.cs: Lets let the base set as much of the
8637         createparams as possible so we don't have duplicate code all over
8638         the place.
8639
8640 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
8641
8642         * ThemeGtk.cs: Added TrackBar and some experimental code to
8643           get double buffering back
8644
8645 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
8646
8647         * DataGrid.cs: Allows row number set internally higher than the last
8648         when creating a new row. Restores the editing functionality.
8649
8650 2006-01-20  Mike Kestner  <mkestner@novell.com>
8651
8652         * MimeIcon.cs: delay Image creation until the icons are accessed
8653         instead of creating 190 scaled images on GnomeHandler startup.
8654
8655 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
8656
8657         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
8658           first call base before processing the event. Fixes #77279
8659
8660 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
8661
8662         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
8663           that the stride for the GDI bitmap would match the stride of
8664           a DIB or a Cursor.
8665
8666 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
8667
8668         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
8669
8670 2006-01-19  Jackson Harper  <jackson@ximian.com>
8671
8672         * ComboBox.cs: Hookup the text controls keydown event so we get
8673         those when the text control has the focus.
8674
8675 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8676
8677         * Label.cs: Now using the base events instead of defining new ones;
8678           this allows us to just call the base properties without having to
8679           duplicate all base property logic 
8680
8681 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8682
8683         * Label.cs: A label by default is not a tabstop (Fixes one of our
8684           failing nunit tests)
8685
8686 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8687
8688         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
8689         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
8690
8691 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8692
8693         * Cursor.cs: Reimplemented creating cursor bitmaps without using
8694           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
8695           This fixes #77218
8696         * XplatUIWin32.cs: 
8697           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
8698             constructor creates images that can't be saved. Part of the fix
8699             for #76103
8700           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
8701           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
8702             bug fix for handling window state in forms properly)
8703
8704 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8705
8706         * ThemeGtk.cs: Simplify ScrollBar drawing
8707
8708 2006-01-18  Jackson Harper  <jackson@ximian.com>
8709
8710         * Splitter.cs: Set the default dock style for the splitter control
8711         in the constructor.
8712
8713 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8714
8715         * ThemeGtk.cs: Corrected StateType and ShadowType for
8716           gtk_paint_box
8717
8718 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8719
8720         * Control.cs: Make use of Theme.DoubleBufferingSupported
8721         * ThemeGtk.cs:
8722           - Added drawing for flat style buttons
8723           - Added ScrollBar drawing
8724
8725 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8726
8727         * ThemeClearlooks.cs: Removed some unneeded code.
8728         * ThemeGtk.cs: First part of ThemeGtk enhancements.
8729
8730 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8731
8732         * LinkLabel.cs: We need to update the hover drawing when
8733           leaving the control as well.
8734
8735 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
8736
8737         * DataGrid.cs: Clicking on non empty areas in the columns
8738            area was giving an exception
8739
8740 2006-01-17  Jackson Harper  <jackson@ximian.com>
8741
8742         * ThemeWin32Classic.cs:
8743         * ListView.cs: Do not draw/clip the headers when the header style
8744         is None.
8745
8746 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8747
8748         * DataGrid.cs: Fixes 77260
8749         
8750 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8751
8752         * DataGrid.cs: Clicking on a column on a empty grid was giving
8753           an exception
8754
8755 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8756
8757         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
8758           or any keypress will crash the grid.
8759
8760 2006-01-17  Mike Kestner  <mkestner@novell.com>
8761
8762         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
8763         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
8764         invisible/previously-visible items.
8765         [Fixes #76909]
8766
8767 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
8768
8769         * ThemeClearlooks.cs:
8770         - Added CL_Draw_Button method; now other theme controls that are 
8771           not derived from button or do not have a button can draw buttons
8772           too
8773         - Updated ComboBox drawing
8774         - Beautified RadioButton drawing
8775         - Corrected drawing of bottom and left tabs
8776         - Beautified DateTimePicker and MonthCalendar
8777         - Added CPDrawButton and CPDrawRadioButton
8778
8779 2006-01-16  Jackson Harper  <jackson@ximian.com>
8780
8781         * ComboBox.cs: Set the initial value of the scrollbar to the
8782         current index. Reduce the numbers of refreshs and IndexOfs called.
8783
8784 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
8785
8786         * FileDialog.cs: When the file listview is focused hitting the
8787           backspace key moves the fileview to the parent directory
8788
8789 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8790
8791         * Form.cs: 
8792           - Added RecreateHandle call when changing taskbar visibility to 
8793             trigger reparenting in Win32 driver (Fixes #75719)
8794           - If a window has minimize or maximize buttons, it cannot have
8795             a help button
8796         * XplatUIWin32.cs:
8797           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
8798             the toplevel form with FosterParent (A toolwindow not on the
8799             taskbar) (Fixes #75719)
8800           - Made FosterParent a toolwindow
8801
8802 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8803
8804         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
8805
8806 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8807
8808         * ToolTip.cs: If SetToolTip is called from a control and the mouse
8809           is currently over that control, make sure that tooltip_window.Text
8810           gets updated
8811
8812 2006-01-13  Mike Kestner  <mkestner@novell.com>
8813
8814         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
8815
8816 2006-01-13  Jackson Harper  <jackson@ximian.com>
8817
8818         * TreeView.cs: On MS GetNodeAt never actually factors in the X
8819         value passed.  Also redraw the selected node when we recieve
8820         focus, so tabbing between trees works correctly.
8821
8822 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8823
8824         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
8825           ~/.gconf/%gconf-tree.xml, so use
8826           .gconf/desktop/gnome/interface/%gconf.xml
8827
8828 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8829
8830         * TextControl.cs: Draw text in gray if control is disabled
8831
8832 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8833
8834         * TreeView.cs: Draw the focus rectangle outside the highlight, to
8835           make sure it's always visible. Fixes #76680.
8836
8837 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8838
8839         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
8840
8841 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
8842
8843         * PageSetupDialog.cs: Added.
8844         * PrintDialog.cs: Attributes.
8845         * PrintPreviewControl.cs: Updates.
8846         * PrintPreviewDialog.cs: Updates.
8847         
8848 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8849
8850         * Control.cs: Undid my selection check fix, since it's not needed
8851         * TextBoxBase.cs:
8852           - Now considering the presence of hscroll/vscroll when sizing
8853             vscroll/hscroll respectively. Fixed bug #77077
8854           - Added Left/Up/Down/Right to IsInputKey list to prevent
8855             ContainerControl from stealing them. This fixes what I broke
8856             with my last checkin.
8857
8858 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
8859
8860         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
8861           I finally understand how the property can be set without a setter :-)
8862
8863 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8864
8865         * Application.cs:
8866           - Switched RunLoop to use static Message.Create to create a 
8867             Message object
8868           - Added PreProcessMessage call in runloop for keyboard events; this
8869             is part of the fix for #77219, I overlooked this originally in the
8870             MSDN doc for PreProcessMessage
8871         * Control.cs:
8872           - Removed call to PreProcessMessage from handling of keyboard 
8873             messages; it's supposed to be done in the message pump
8874           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
8875             per MSDN documentation.
8876           - IsInputChar: All chars are input chars by default; removed the 
8877             parent calling chain, MS does not document that
8878           - PreProcessMessage: If IsInputChar is true, we want to return false
8879             to allow dispatching of the message
8880           - When selecting the next control, now also check that we're not
8881             selecting ourselves again and therefore return a false positive.
8882         * TextBoxBase.cs:
8883           - Tried to match return values for IsInputKey and ProcessDialogKey
8884             to what MS returns; moved processing of our special keys outside
8885             ProcessDialogKey since MS does not seem to return true on those.
8886           - Moved code that previously was in ProcessDialogKey into new private
8887             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
8888           - Reworked handling of WM_CHAR to not have to duplicate code from
8889             Control.cs anymore, instead we simply call down to base.
8890            
8891 2006-01-12  Jackson Harper  <jackson@ximian.com>
8892
8893         * ComboBox.cs: We always need to refresh the text area when
8894         EndUpdate is called. Fixes the combobox in the file dialog.
8895         * Control.cs: Don't create the creator_thread until the controls
8896         handle is created.  Also in InvokeRequired we check if the
8897         creator_thread is null. This gives the effect of InvokeRequired
8898         returning true if the controls handle is not created yet, and
8899         matches MS.
8900
8901 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8902
8903         * XplatUI.cs:
8904           - Added StartLoop() driver method. This is used to allow drivers to
8905             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
8906             loop for a particular thread
8907           - Added EndLoop() driver method. This is called once the message
8908             pump for the thread is shut down
8909           - Added SupportsTransparency method to allow the driver to indicate
8910             opacity support for windows
8911         * Form.cs:
8912           - Removed TODO attribute, completed AllowTransparency property
8913           - Added documented logic to Opacity
8914         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
8915           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
8916           versions of CompatibleTextRendering
8917         * X11Structs.cs: Added opacity atom to our atom enumeration
8918         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
8919           of a form might be set before it's reparented by the WM, and we need
8920           the opacity value without calling up to Form)
8921         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
8922           SupportsTransparency() driver methods
8923         * Application.cs: Now calling StartLoop and EndLoop driver methods
8924         * XplatUIX11.cs:
8925           - Added opacity atom registration
8926           - Added StartLoop()/EndLoop() methods. They're empty right now but
8927             will need to get implemented when we switch to a per-thread queue
8928           - Implemented SupportsTransparency() method
8929           - Implemented SetWindowTransparency() method
8930           - Added support for setting the opacity value when a window is
8931             reparented (since the opacity needs to be set on the WM frame)
8932         * XplatUIOSX.cs, XplatUIWin32.cs:
8933           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
8934
8935 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8936
8937         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
8938
8939 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8940
8941         * FileDialog.cs: Added ToolTip for MWFFileView
8942         * MimeIcon.cs: Rewrote GnomeHandler.
8943           - Get currently used gnome icon theme from
8944             ($HOME)/.gconf/%gconf-tree.xml
8945           - Make use of inherited icon themes
8946           - Support SVG icon themes like Tango via librsvg
8947
8948 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8949
8950         Revert's Jackson's revert which broke 2.0 builds.   Fix both
8951         builds. 
8952         
8953         * Application.cs: Move the use_compatible_text_rendering outside
8954         the NET_2_0 define.  If we ever need to use the
8955         use_compatible_text_rendering on the individual controls they will
8956         access the variable from the common shared code paths.
8957
8958 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8959
8960         * XplatUI.cs:
8961           - Added more granular debug options
8962           - Added method to print both window text and id
8963           - Switched debug output to use new Window() debug method
8964           - Added IsEnabled() driver method
8965           - Added EnableWindow() driver method
8966         * Form.cs:
8967           - Removed end_modal; no longer needed, new loop handles termination
8968             via 'closing' variable
8969           - If form is modal, setting DialogResult will now initiate loop
8970             termination via 'closing' variable
8971           - Added support for is_enabled/WS_DISABLED to CreateParams
8972           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
8973             does all the work
8974           - Removed code that's now in RunLoop from ShowDialog()
8975           - Added various documented sanity checks to ShowDialog()
8976           - Added handling of WM_DESTROY message; we set 'closing' on getting
8977             the message to indicate the message pump to terminate
8978           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
8979             send by the Application.ExitThread method. (We send the message
8980             to destroy the window after all other events have been
8981             processed through the queue, instead of destroying the handle 
8982             directly)
8983           - Moved code from Close() method to WM_CLOSE handler; added logic
8984             to only send close-related events if the form is not displayed
8985             modal
8986         * Splitter.cs (..ctor): Fixed typo in resource name
8987         * Control.cs:
8988           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
8989             brush now
8990           - set_Cursor: Now only setting calling into XplatUI if the handle for
8991             the control is already created; this avoids implict handle creation
8992             or crashes if it's not created
8993           - set_Enabled: Now setting the enabled state via the new driver method
8994             instead of just tracking it
8995           - CreateParams: Added logic to set WS_DISABLED based on enabled state
8996           - CreateControl: Reordered event firing and method calls to more
8997             closely fire events in the order MS does. Now setting the
8998             enabled state in the driver when creating the control.
8999           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
9000             match MS order
9001         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
9002           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
9003         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
9004         * Hwnd.cs:
9005           - Added tracking of window enabled state (get_Enabled/set_Enabled)
9006           - Added EnabledHwnd property to easily allow a driver to find the
9007             handle of the first enabled window in the parent chain (this is
9008             used by drivers to pass up input events of disabled windows)
9009         * XplatUIDriver.cs: Added IsEnabled() method
9010         * Application.cs:
9011           - Removed crude and obsolete exiting tracking variable
9012           - Removed internal ModalRun(); replaced by RunLoop()
9013           - Implemented private CloseForms() method to allow closing all 
9014             windows owned by a particular (or all) threads
9015           - Exit() now properly closes all windows without forcing the message
9016             pump to quit
9017           - Removed obsolete InternalExit() method
9018           - Changed Run() methods to use new RunLoop() message pump
9019           - Implemented new RunLoop() method for both modal and non-modal forms
9020         * CommonDialog.cs:
9021           - get_CreateParams: Added setting of WS_DISABLED
9022           - Simplified ShowDialog(); now all the work is done in RunLoop(),
9023             invoked via Form.ShowDialog()
9024         * NativeWindow.cs: We don't remove the window from the collection when
9025           the handle is destroyed; there might still be messages for it in the
9026           queue (mainly the resulting WM_DESTROY); instead it will be removed
9027           when Control calls InvalidateHandle in the WM_DESTROY handler
9028         * XplatUIX11.cs:
9029           - CreateWindow: Added logic to handle the WS_DISABLED window style
9030           - EnableWindow: Implemented based on Hwnd.Enabled
9031           - GetMessage: Reset PostQuitState so the method can be called again
9032           - Implemented support for disabled windows (passing messages to the
9033             first enabled parent) in handling all input messages
9034           - Added optimizations for handling Expose events
9035           - Implemeted new driver method IsEnabled()
9036           - Now always resetting paint pending tracking vars when we start paint
9037           - Re-implemented UpdateWindow via just sending a WM_PAINT message
9038         * XplatUIOSX.cs: Added IsEnabled method stub
9039         * XplatUIWin32.cs: Implemented new IsEnabled() method
9040
9041 2006-01-11  Jackson Harper  <jackson@ximian.com>
9042
9043         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9044         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
9045         variables a little.
9046         * ColorDialog.cs: Clear out the old form before adding the new
9047         panel.  
9048
9049 2006-01-11  Jackson Harper  <jackson@ximian.com>
9050
9051         * X11Dnd.cs: Make sure to add all the text formats when adding
9052         strings to the data object.
9053         * TreeNodeCollection.cs: When adding to a sorted tree we need to
9054         do some redrawing too.  Also change the UpdateNode to an
9055         UpdateBelow so the newly added node gets painted.
9056         
9057 2006-01-11  Miguel de Icaza  <miguel@novell.com>
9058
9059         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9060         LinkLabel.cs, PropertyGrid.cs: Implement the
9061         UseCompatibleTextRendering property for 2.x
9062
9063         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
9064
9065 2006-01-11  Jackson Harper  <jackson@ximian.com>
9066
9067         * TreeView.cs: Use the property for setting the selected node so
9068         the correct events get raised.
9069         * TreeNode.cs: Update the tree when the fore/back colours of a
9070         node are set.
9071
9072 2006-01-10  Jackson Harper  <jackson@ximian.com>
9073
9074         * TreeView.cs: Allow setting SelectedNode to null.
9075
9076 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9077
9078         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
9079
9080 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9081
9082         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
9083
9084 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9085
9086         * PrintDialog.cs: Added attributes and set default property values.
9087
9088 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9089
9090         * PrintControllerWithStatusDialog.cs: 
9091         Added PrintControllerWithStatusDialog.
9092
9093 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9094
9095         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
9096         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
9097
9098 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9099
9100         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
9101
9102 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9103
9104         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
9105         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
9106
9107 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9108
9109         * MimeIcon.cs: Added internal class SVGUtil.
9110
9111 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9112
9113         * FileDialog.cs: Don't crash if there are two files with the
9114           same name but different locations.
9115
9116 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
9117
9118         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
9119         dates across multiple month grids. Used to not highlight entire 
9120         month, but does now.
9121         
9122 2006-01-06  Jackson Harper  <jackson@ximian.com>
9123
9124         * MonthCalendar.cs: Removed DoEvents call to prevent a running
9125         message loop. Change timer intervals to numbers that seem more
9126         natural.
9127
9128 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
9129
9130         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
9131           object for location info since screen object is now implemented.
9132
9133 2006-01-05  Jackson Harper  <jackson@ximian.com>
9134
9135         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
9136         * AsyncMethodResult.cs: We no longer use a WeakReference for the
9137         AsyncMethodResult, this is because we ALWAYS want the
9138         ManualResetEvent to get set.
9139         * Control.cs: When disposing use an async invoke to call shutdown
9140         code, so that thigns don't block on the finalizer thread.  Also
9141         check if we even have a message loop before trying to send
9142         messages, if we don't then don't bother sending messages.
9143         - No more weak references for async methods
9144         * XplatUIDriver.cs: No more weak references for async methods.
9145
9146 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9147
9148         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
9149           returns two FontFamily with the same name
9150
9151 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9152
9153         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
9154           drawing disabled text. Instead using the ColorGrayText color
9155
9156 2006-01-04  Jackson Harper  <jackson@ximian.com>
9157
9158         * TreeNode.cs: redraw the node when its image index is changed.
9159
9160 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9161
9162         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
9163           time I checked there are no others like it.
9164
9165 2006-01-04  Jackson Harper  <jackson@ximian.com>
9166
9167         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
9168         this gives the behavoir I was looking for.
9169         * Control.cs: Special case Invoking EventHandlers, this matches MS
9170         and fixes part of bug #76326.
9171
9172 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9173
9174         * ThemeClearlooks.cs, FileDialog.cs:
9175           - Reflect the latest Theme class changes
9176           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
9177             with DateTime
9178             
9179 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9180
9181         * Theme.cs: Cache UI resource images and resize them if needed
9182
9183 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9184
9185         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
9186           is called. This fixes the crash in Nexxia when setting the font
9187           attributes in the chat. [However, RTF needs a look-over to make sure
9188           that all SelectionXXX methods handle the special case that selection
9189           is empty and therefore the change must be applied to all text starting
9190           at the cursor/selection start]
9191
9192 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
9193
9194         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9195           XplatUIOSX.cs: Added SendMessage and PostMessage methods
9196         * X11Keyboard.cs: Switched to new way of calling PostMessage
9197
9198 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9199
9200         * Theme.cs: Added theme interface for images to allow the theme to
9201           control what images are used for things like FileDialog, MessageBox
9202           icons, etc.
9203         * MessageBox.cs: Now uses the new Theme icon/image interfaces
9204
9205 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
9206
9207         * FileDialog.cs:
9208           - Removed some dead code
9209           - Opening a recently used file does work now
9210           - Small UI enhancements
9211           - Refactoring
9212
9213 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9214
9215         * FileDialog.cs: Forgot too add __MonoCS__
9216
9217 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9218
9219         * FileDialog.cs: We are able to read recently used files now let's
9220           go on and write them.
9221
9222 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
9223
9224         * FileDialog.cs: Breathe some life into "last open"/"recently used"
9225           button
9226         * MimeIcon.cs: Do a check for the top level media type also
9227
9228 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9229
9230         * ThemeClearlooks.cs:
9231           - Added CPDrawStringDisabled
9232           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
9233             some chars if the text doesn't fit into text_rect
9234           - DrawListViewItem: If View = View.LargeIcon center the image;
9235             rewrote the drawing of ListViewItem.Text if View = 
9236             View.LargeIcon
9237
9238 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9239
9240         * MimeIcon.cs: Use default KDE icon theme if there is no
9241           "48x48" directory for the current icon theme, fixes #77114
9242         * Mime.cs: Disable not working and actually not used code. 
9243         * ThemeWin32Classic.cs:
9244           - Replace "new SolidBrush" in GetControlBackBrush and
9245             GetControlForeBrush with ResPool.GetSolidBrush
9246           - Changed DrawListViewItem from private to protected virtual
9247         * FileDialog.cs:
9248           - Added form.MaximizeBox = true
9249           - Don't throw an exception if there is a broken symbolic link
9250
9251 2005-12-23  Jackson Harper  <jackson@ximian.com>
9252
9253         * TabControl.cs: Give the panels focus, keyboard navigation is
9254         fixed so this works correctly now.
9255         - We need these key events also.
9256         * ToolBar.cs: Remove some of the poor mans double buffering.
9257         
9258 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
9259
9260         * ComboBox.cs: The internal TextBox now returns the focus.
9261
9262 2005-12-23  Jackson Harper  <jackson@ximian.com>
9263
9264         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
9265
9266 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9267
9268         * Control.cs: Removed debug code
9269         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
9270           implicit children
9271
9272 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
9273
9274         * Control.cs: When creating the control, update the Z-order after
9275           all it's children are created, too. (Fixes nexxia not showing
9276           picturebox bug)
9277
9278 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9279
9280         * Control.cs: Do not update the anchoring distances if layout is
9281           suspended, instead do it once layout is resumed
9282
9283 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
9284
9285         * Control.cs: 
9286           - After many hours of debugging, for both Jackson and
9287             myself, it turns out that it helps to set the parent of a control
9288             if you want to actually see it onscreen. In the spirit of that
9289             discovery, we're now setting the parent of the control and
9290             it's children when the control's handle is created. This fix
9291             will make Lutz Roeder's Reflector run happily. 
9292           - now just creating the handle instead of the whole control when
9293             getting a graphics context for the control.
9294
9295 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9296
9297         * ScrollableControl.cs: When calculating the canvas, don't consider
9298           the scrollbar widths. Instead, predict if horizontal scrollbar
9299           will affect canvas when deciding on vertical display and vice versa.
9300
9301 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9302
9303         * RichTextBox.cs: Set default RTF font for documents that don't
9304           have a font table (Fixes #77076)
9305
9306 2005-12-22  Jackson Harper  <jackson@ximian.com>
9307
9308         * TextBoxBase.cs: It's difficult to do, but you can have an empty
9309         clipboard. This prevents a NullRef in that case.
9310         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
9311         clipboard. PRIMARY is for the currently selected text only. (We
9312         should implement PRIMARY at some point.
9313
9314 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9315
9316         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
9317           a Unicode function with a structure that was defined in Ansi way.
9318           This fixes #76942.
9319
9320 2005-12-21  Jackson Harper  <jackson@ximian.com>
9321
9322         * StatusBar.cs: Statusbar handles its fore/back colours on it's
9323         on. Because thats how it rolls. (and this avoids it using ambient
9324         colours).
9325         * ThemeWin32Classic.cs: Use the proper back color for filling.
9326         * Menu.cs: Use the system menu bar color for drawing menu
9327         bars. Using the window back color will bring ambient colours into
9328         the picture.
9329
9330 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
9331
9332         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
9333           Bitmaps were created and not disposed.
9334
9335 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9336
9337         * Control.cs (CreateControl): Don't do anything if the control is
9338           already created, otherwise we'd fire the OnCreated event more than
9339           once
9340
9341 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9342
9343         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
9344           will always match. Instead return -1. Fixes #76464.
9345
9346 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9347
9348         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
9349           neither the beginning nor the end of the line (Fixes bug #76479)
9350
9351 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9352
9353         * Control.cs:
9354           - ControlNativeWindow.ControlFromHandle(): Now handling situation
9355             where handle is invalid
9356           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
9357             instead of slower linear search
9358         * NativeWindow.cs: Don't remove the window from the hashtable until
9359           after the driver has destroyed it (since the driver might use
9360           Control.FromHandle to lookup the control object
9361         * Hwnd.cs: Added DestroyPending property to track if a window is 
9362           already destroyed as far as the driver is concerned and only hasn't
9363           yet notified the control
9364         * XplatUIX11.cs:
9365           - Activate(): Check if the window is still valid before using the 
9366             handle
9367           - Implemented DestroyChildWindow() method to mark child windows as
9368             destroyed when a window is destroyed. This prevents situations 
9369             where we might call an X method based on queued events for a
9370             window that already has been destroyed but we haven't yet pulled
9371             the destroy method from the queue.
9372           - Added a call to the new DestroyChildWindow() method to the drivers
9373             DestroyWindow code. Also now marking the destroyed window itself
9374             as pending
9375
9376 2005-12-20  Jackson Harper  <jackson@ximian.com>
9377
9378         * StatusBar.cs:
9379         * StatusBarPanel.cs: Don't calculate panel sizes on draw
9380         anymore. Just do them when needed, also track the rects of panels
9381         so that we can optimize refreshing more in the future.
9382
9383 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
9384
9385         * ColorDialog.cs: Fixed focus drawing in small color controls
9386
9387 2005-12-19  Jackson Harper  <jackson@ximian.com>
9388
9389         * InternalWindowManager.cs:
9390         * MdiWindowManager.cs: Cleanup some coordinate system changes so
9391         moving windows works properly.
9392
9393 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
9394
9395         * Control.cs: 
9396           - Removed call to InitLayout() from SetBoundsCore(); doc says
9397             it's only called when a control is added to a container
9398           - Split InitLayout logic, moved to separate UpdateDistances() method
9399             since we need to perform those calculations more often than just
9400             when adding the control to a container. (Needed to fix #77022)
9401           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
9402           - Reduced the OnBindingContextChanged events count, don't send them
9403             unless the control is created, we still aren't totally matching
9404             MS, but I can't quite figure out some of their rules
9405
9406 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9407
9408         * ThemeClearlooks.cs: Corrected distance between ProgressBar
9409           stripes
9410
9411 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9412
9413         * ThemeClearlooks.cs:
9414           - Updated ProgressBar drawing
9415           - Corrected drawing of ScrollBars and scroll buttons
9416           - Some temporary fixes for minor pixel artefacts
9417
9418 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
9419
9420         * Control.cs:
9421           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
9422             cause events to be sent in the same order as MS does.
9423           - Added ChangeParent() method to trigger various OnXXXChanged events
9424             that need to be fired when a parent changes (This is a reworking
9425             of the patch from r54254, with the X11 errors fixed)
9426           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
9427             since on MS we get OnLayoutChanged events when calling Clear()
9428           - Changed Enabled property to consider parent state as well, if a
9429             parent is not enabled, the control will not be either
9430           - Changed Parent property to simply call Controls.Add() since that
9431             now does all the work required, this way we avoid code duplication
9432           - Threw in a few OnBindingsContextChanged calls to try and match
9433             when MS sends them. We seem to send a few too many, though.
9434           - Added call to CreateControl when adding the control to a parent.
9435             We were never calling CreateControl. Still needs some work, in
9436             some places we treat HandleCreated and ControlCreated as equal, 
9437             which is wrong
9438           - Removed obsolete commented out code from UpdateZOrder()
9439
9440 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9441
9442         * ThemeClearlooks.cs: Updated TrackBar drawing.
9443
9444 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9445
9446         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
9447
9448 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9449
9450         * FileDialog.cs: Add the Help button and the open readonly
9451           checkbox only if needed
9452
9453 2005-12-16  Jackson Harper  <jackson@ximian.com>
9454
9455         * Control.cs: Make sure we have an active menu before trying to
9456         process commands on it. Prevents menu-less forms from crashing
9457         when Alt is pressed.
9458         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
9459         Dieter Bremes.
9460         * RichTextBox.cs: Expand statement to help out gmcs and fix the
9461         2.0 build.
9462
9463 2005-12-16  Jackson Harper  <jackson@ximian.com>
9464
9465         * InternalWindowManager.cs: Don't translate tool windows screen
9466         coordinates. This fixes windows 'bouncing' around when being moved.
9467
9468 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9469
9470         * TextBoxBase.cs:
9471           - MaxLength now treats 2^31-1 equal to unlimited length (this is
9472             not quite MS compatible, MS uses that number only for single line
9473             and 2^32-1 for multi-line, but I figure it won't hurt keeping
9474             the limit at 2GB)
9475           - Now enforcing the MaxLength limit when entering characters
9476           - Added argument to internal Paste() method to track if it's called
9477             from programatically or via keyboard, since keyboard driven pastes
9478             need to enforce max-length
9479           - Added logic to Paste to only paste as many chars as MaxLength 
9480             allows
9481         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
9482         * TextControl.cs:
9483           - Added Length property to return number of characters in document
9484           - Added private CharCount property which only tracks actual chars
9485             in the document (no linefeeds) and fires event when CharCount
9486             changes
9487           - Added tracking of character count to all methods that alter it
9488           - Added LengthChanged event to allow applications to subscribe
9489             to any changes to the document
9490
9491 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9492
9493         * TextBox.cs: 
9494           - Removed local password_char field (moved to TextBoxBase)
9495           - Now setting the document's password var when password is
9496             set
9497         * TextBoxBase.cs:
9498           - Added password_char field (needed here so MultiLine can
9499             access it)
9500           - Added logic to MultiLine property setter to set the document's
9501             variable when password display is allowed
9502           - Removed debug code and made some debug code conditional
9503         * TextControl.cs:
9504           - Added RecalculatePasswordLine() method to handle special password
9505             char only lines
9506           - Added PasswordChar property, also added related tracking vars
9507           - Draw() method now uses local text var for grabbing text to draw,
9508             this var is set to line.text unless we're doing password display,
9509             then it is set to the pre-generated all-password-chars line
9510           - Added calling RecalculatePasswordLine() method for password lines
9511
9512 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9513
9514         * Hwnd.cs: 
9515           - Added Reparented property to allow tracking of Window Manager
9516             reparenting actions (which affect X/Y calculations of toplevel 
9517             windows)
9518           - Made ToString() print window handles in hex
9519         * XplatUIX11.cs:
9520           - AddConfigureNotify(): Now uses reparented state off Hwnd to
9521             determine if X/Y needs offsetting
9522           - AddConfigureNotify(): Fixed offset calculations
9523           - Now adds ReparentNotify messages into the queue
9524           - Now processes ReparentNotify messages and causes a 
9525             WM_WINDOWPOSCHANGED message to be sent upstream if a window
9526             is reparented (as most likely it's X/Y coordinates are changed
9527             due to that)
9528
9529 2005-12-14  Jackson Harper  <jackson@ximian.com>
9530
9531         * XplatUIX11.cs: Tool windows still need to respek focus.
9532
9533 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9534
9535         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
9536           have a working release
9537
9538 2005-12-13  Jackson Harper  <jackson@ximian.com>
9539
9540         * Form.cs: Update styles after setting the border style regardless
9541         of whether or not the window is using a window manager.
9542
9543 2005-12-13  Jackson Harper  <jackson@ximian.com>
9544
9545         * Form.cs: We now hook into an internal window manager instead of just an
9546         MDI subsystem, this is so we can have properly behaving tool windows.
9547         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
9548         * InternalWindowManager.cs: New internal class that acts as a
9549         window manager for tool windows and as a base for mdi windows.
9550         * MdiWindowManager.cs: New class that acts as a window manager for
9551         mdi windows.
9552
9553 2005-12-12  Jackson Harper  <jackson@ximian.com>
9554
9555         * Control.cs: Updates so we match behavoir for for implicit
9556         controls. Fixes explosions in MDI.
9557
9558 2005-12-12  Jackson Harper  <jackson@ximian.com>
9559
9560         * Control.cs: Implement Invalidate (Region).
9561
9562 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
9563
9564         * Control.cs: 
9565           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
9566             the same events as MS does. MS fires events for each property 
9567             except, for unknown reasons, Cursor, when the control is reparented. 
9568             I can't seem to totally match add/remove since MS also fires some 
9569             VisibleChanged events, which makes no sense. Consolidated the
9570             parenting code into a separate method so it can be called from
9571             both Add and Remove. set_Parent no longer needs any special logic
9572             as it calls the parent's add method which implicitly fires
9573             all events
9574           - Removed some obsolete code and debug output
9575           - Enabled state is inherited from parents, if this is enabled
9576
9577 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
9578
9579         * Form.cs: Removed commented out code
9580
9581 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
9582
9583         * Control.cs:
9584           - Added internal version of Invoke, with additional argument 
9585             indicating if we're calling it from a Dispose() handler. That
9586             way we can avoid BeginInvoke throwing an exception if we're
9587             calling for an already destroyed window.
9588           - Added a dispose argument to BeginInvokeInternal, and made the
9589             check if a valid window handle chain exists conditional on
9590             it not being a dispose call
9591           - Removed code in DestroyHandle to destroy our children. Since we
9592             now handle the WM_DESTROY message we will catch all our children
9593             being destroyed.
9594           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
9595         * Form.cs:
9596           - Added a field to track the application context of the form.
9597           - No need to set closing variable as response to WM_CLOSE, instead
9598             we destroy the window. We also call PostQuitMessage if the form
9599             has an application context (which makes it the main app form,
9600             which, when closed terminates the app)
9601         * XplatUI.cs:
9602           - Dropped Exit() method, it's naming was confusing
9603           - Added PostQuitMessage() which causes GetMessage to return false
9604             once the message queue is empty
9605         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
9606           PostQuitMessage()
9607         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
9608           no longer a valid XplatUI method, but left it in since it's used
9609           internally. Added empty PostQuitMessage() method.
9610         * MenuAPI.cs: Replaced call to Exit() with call to
9611           PostQuitMessage, even though this is probably no longer needed.
9612         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
9613         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
9614         * Application.cs:
9615           - Replaced call to XplatUI.Exit() with PostQuitMessage()
9616           - Removed old debug code that would call XplatUI for exception
9617             display, enabled standard exception handling (Still not enabled
9618             though, until NativeWindow's ExternalExceptionHandler define
9619             is removed
9620         * NativeWindow.cs:
9621           - Added internal method to allow control to update NativeWindow
9622             after a window has been destroyed
9623           - Added handling of already destroyed windows when calling i
9624             DestroyWindow
9625           - Added removal of handle from list on ReleaseHandle
9626         * XplatUIX11.cs:
9627           - Dropped GetMessageResult var and related code
9628           - Added PostQuitState to field to track if PostQuitMessage has been
9629             called
9630           - Dropped Exit() method
9631           - Added PostQuitMessage() method
9632           - GetMessage now will return false if PostQuitState is set and no
9633             more messages are in the queue.
9634           - Expose handler will no longer generate WM_PAINT messages if we are
9635             in PostQuitState since it's very likely any windows have already
9636             been destroyed, and since Hwnd won't get updated until we have
9637             processed the DestroyNotify we'd be causing X errors.
9638         
9639 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9640
9641         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
9642           Thanks to Mike for pointing out the err of my ways.
9643
9644 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9645
9646         * Control.cs(PreProcessMessage): Moved menu handling back, but
9647           after all other key handling, to match MS (who handles Menu in
9648           DefWndProc)
9649         * Menu.cs (WndProc): Removed my brainfart
9650
9651 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9652
9653         * Control.cs(PreProcessMessage): Removed special menu handling 
9654         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
9655
9656 2005-12-07  Mike Kestner  <mkestner@novell.com>
9657
9658         * Control.cs : special case SYSKEYUP so that we can adjust keynav
9659         state according in tracker.
9660         * Menu.cs : promote tracker field to base class and provide a tracker
9661         lookup capability.  Add/Remove shortcuts dynamically if the top menu
9662         has a tracker. Unparent items that are removed from the collection.
9663         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
9664         * Theme*.cs: add always_show_hotkeys field to support configurability
9665         of mnemonic display.  win32 doesn't show mnemonics until Alt is
9666         pressed.
9667
9668 2005-12-07  Jackson Harper  <jackson@ximian.com>
9669
9670         * MdiChildContext.cs: Use Control.ResetCursor.
9671         * Control.cs: ResetCursor needs to set the property so that the
9672         correct XplatUI call gets made.
9673
9674 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9675
9676         * Control.cs: More fixes to make our key events match MS. We
9677           were not setting the modifier state on KeyData, and we were
9678           not generating any events when Alt was pressed with a key
9679           since handling of WM_SYSxxx was missing for the OnKey methods.
9680
9681 2005-12-07  Jackson Harper  <jackson@ximian.com>
9682
9683         * MdiChildContext.cs: reenable the sizing code.
9684         - When the mouse leaves a window reset its cursor.
9685
9686 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9687
9688         * ThemeClearlooks.cs: Reflect latest Hwnd changes
9689
9690 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9691
9692         * Hwnd.cs: Now using the theme 3d bordersize to calculate
9693           widths of Fixed3D borders
9694
9695 2005-12-07  Jackson Harper  <jackson@ximian.com>
9696
9697         * MdiClient.cs: Fix warnings. Earn Mike's love.
9698
9699 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9700
9701         * ThemeClearlooks.cs:
9702           - Adjusted mouse over button color
9703           - Added first parts of CheckBox drawing
9704           - Added correct color for selected text background
9705           - Fixed ComboBox drawing
9706           - Added CPDrawBorder3D and CPDrawBorder
9707
9708 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9709
9710         * XplatUIX11.cs: Added call to XBell for AudibleAlert
9711
9712 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
9713
9714         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9715           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
9716           alert users via sound. We could add an enum arg with different
9717           types of alerts in the future
9718
9719 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9720
9721         * Control.cs: Fix behaviour problems pointed out by Mike
9722
9723 2005-12-05  Mike Kestner  <mkestner@novell.com>
9724
9725         * StatusBarPanel.cs: add Invalidate method and hook it into all the
9726         prop setters.  Calls parent.Refresh for now, but could be maybe be
9727         optimized with an internal method on StatusBar at some point.
9728         [Fixes #76513]
9729
9730 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
9731
9732         * RichTextBox.cs: Implemented get_SelectionColor
9733
9734 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
9735
9736         * ThemeClearlooks.cs:
9737           - Removed dead code
9738           - Draw black button border only if button is Form.AcceptButton
9739           - Draw correct button color for pressed RadioButton if the mouse 
9740             has entered the button
9741           - Updated ProgressBar drawing!
9742           - Updated CPDrawSizeGrip drawing
9743           - Updated StatusBarPanel drawing
9744
9745 2005-12-05  Mike Kestner  <mkestner@novell.com>
9746
9747         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
9748         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
9749
9750 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
9751
9752         * ThemeClearlooks.cs: Initial check-in, activate with
9753           export MONO_THEME=clearlooks
9754         * ThemeEngine.cs: Added ThemeClearlooks
9755
9756 2005-12-03  Mike Kestner  <mkestner@novell.com>
9757
9758         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
9759         [Fixes #76897]
9760
9761 2005-12-02  Jackson Harper  <jackson@ximian.com>
9762
9763         * Form.cs: If the child form has no menu the default main menu is
9764         used as the active menu.
9765
9766 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
9767
9768         * ListBox.cs: Check if any items exist before trying to resolve 
9769           coordinates into items
9770
9771 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9772
9773         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
9774           as the second color for the background hatch
9775
9776 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9777
9778         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
9779         * RichTextBox.cs: FormatText position arguments are 1-based, now making
9780           sure that what we pass to FormatText is always 1-based. Fixes #76885
9781
9782 2005-11-29  Miguel de Icaza  <miguel@novell.com>
9783
9784         * NumericUpDown.cs (EndInit): When we are done initializing,
9785         reflect any updates on the UI.
9786
9787 2005-12-02  Jackson Harper  <jackson@ximian.com>
9788
9789         * ImplicitHScrollBar.cs:
9790         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
9791         their container controls.
9792         * TreeView.cs: Use the new implicit scrollbars.
9793
9794 2005-12-02  Jackson Harper  <jackson@ximian.com>
9795
9796         * TreeView.cs: Make top_node internal so the TreeNodeCollections
9797         can play with it.
9798         * TreeNodeCollection.cs: If we remove the topnode we need to
9799         update topnode to the next node in line.
9800         - When clearing nodes go through the same process as removing
9801         them, so they get depareneted and checked if they are top node.
9802
9803 2005-12-01  Jackson Harper  <jackson@ximian.com>
9804
9805         * TreeView.cs: When imagelists are used the image area is
9806         selectable as well as the text.
9807         - If there are no selected nodes select the first one.
9808         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
9809         so don't do it more then we need to.
9810
9811 2005-12-01  Jackson Harper  <jackson@ximian.com>
9812
9813         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
9814         that arrows can be scaled.
9815
9816 2005-12-01  Jackson Harper  <jackson@ximian.com>
9817
9818         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
9819         fail. Patch by Dieter Bremes
9820
9821 2005-11-30  Jackson Harper  <jackson@ximian.com>
9822
9823         * Form.cs: Property is 2.0 only
9824         * PrintDialog.cs: Signature fix.
9825
9826 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9827
9828         * TextControl.cs: 
9829           - No longer artificially moves text 2 pixels down (now that we have
9830             borders this is no longer needed)
9831           - Added calcs for left, hanging and right indent
9832
9833 2005-11-23  Mike Kestner  <mkestner@novell.com>
9834
9835         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
9836
9837 2005-11-30  Jackson Harper  <jackson@ximian.com>
9838
9839         * MdiChildContext.cs: Set the cloned menus forms, as these don't
9840         get cloned as part of CloneMenu ().
9841         * Menu.cs: Make sure the parent of the items get set correctly
9842         when they are added.  And the owners are notified of the changes.
9843         * Form.cs: Create an ActiveMenu property, so that when MDI is used
9844         we can change the menu being displayed/handled by the form without
9845         changing the menu assosciated with the form.
9846         - Don't let Mdi children draw/handle menus.
9847         
9848 2005-11-30  Jackson Harper  <jackson@ximian.com>
9849
9850         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
9851         a MenuChanged event. Just to make the API a little more
9852         consistent.
9853         * MainMenu.cs:
9854         * MenuItem.cs: Use the new OnMenuChanged
9855         * MdiChildContext.cs: Handle menu merging.
9856         * Form.cs: Implement MergedMenu.
9857         
9858 2005-11-30  Jackson Harper  <jackson@ximian.com>
9859
9860         * Menu.cs: We were misusing Add. Add goes behind the specified
9861         index according to the docs, and does not replace the specified
9862         index. So I added an Insert method.
9863
9864 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9865
9866         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
9867           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
9868           is for Jackson
9869         * RichTextBox.cs: Added calls to base for DnD events
9870
9871 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
9872
9873         * TextControl.cs:
9874           - Fixed drag-selection related crash; style fixes
9875           - Implemented undo class
9876             o Implemented method to capture document state for specified
9877               range in document tree
9878             o Implemented method to restore captured document state
9879             o Implemented cursor tracking
9880             o Implemented basic undo stack
9881           - Added undo cursor tracking to methods altering cursor location
9882           - Added undo tracking to selection deletion (still missing
9883             other text-altering hookups)
9884         * RichTextBox.cs:
9885           - Added SelectionLength property
9886           - Implemented CanPaste()
9887           - Implemented Paste()
9888           - Added missing protected methods
9889           - Fixed RTF->Document conversion; now uses font index 0 and color 
9890             index 0 as the default font for the parsed text
9891           - Fixed RTF<->Document font size translation
9892           - Fixed RTF generation, now properly handles cross-tag boundaries
9893             for single line selection
9894           - No longer always appends blank line to generated RTF
9895           - Removed TODOs
9896           - Added missing attributes
9897           - Hooked up undo-related methods
9898         * TextBoxBase.cs:
9899           - Implemented Copy()
9900           - Implemented Paste()
9901           - Implemented Cut()
9902           - Fixed caret mis-behaviour on backspace across line-boundaries
9903
9904 2005-11-29  Jackson Harper  <jackson@ximian.com>
9905
9906         * MdiClient.cs: Add a method for activating mdi children. Very
9907         basic right now. I imagine someday it might need more girth.
9908         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
9909         children windows names are added to the menu item.
9910         * ThemeWin32Classic.cs: Draw the arrow if the item is an
9911         mdilist. This happens regardless of whether or not there are any
9912         mdi windows to see in the list, and according to my tests happens
9913         before the items are even added. Also happens if there isn't even
9914         an mdi client to get windows from.
9915
9916 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
9917
9918         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
9919         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
9920
9921 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
9922
9923         * DataGridTableStyle.cs:
9924           - Create always the styles for the missing columns even if they are
9925             provided by the user (not default table style)
9926         * DataGrid.cs:
9927           - Fixes bug 76770
9928           - Fixes SetDataBinding (always re-attach source)
9929           - Fixes SetNewDataSource (only clear styles if they are not for 
9930             this source)
9931          -  Expands OnTableStylesCollectionChanged to handle style refresh 
9932             and remove properly
9933
9934 2005-11-29  Jackson Harper  <jackson@ximian.com>
9935
9936         * FileDialog.cs: Implement missing bits, remove some dead
9937         code.
9938         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
9939         creation of the panel so that the options set on the dialog are
9940         seen when the panel is created.
9941         * TreeView.cs: raise a click when items are clicked.
9942         
9943 2005-11-29  Jackson Harper  <jackson@ximian.com>
9944
9945         * MdiClient.cs: Pass some signature methods through to base.
9946
9947 2005-11-28  Jackson Harper  <jackson@ximian.com>
9948
9949         * ListView.cs: Raise the click event when items are clicked.
9950
9951 2005-11-28  Jackson Harper  <jackson@ximian.com>
9952
9953         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
9954         a nullref.
9955
9956 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
9957
9958         * ThemeNice.cs: - Removed 1 pixel bitmaps
9959           - Use SmoothingMode.AntiAlias where it makes sense
9960             (ScrollButton arrow for example)
9961           - Enhanced Button focus drawing
9962           - Fixed ComboBox drawing (no artefacts anymore, focus
9963             rectangle is back again, reduced size of ComboButton, etc.)
9964           - Fixed RadioButton focus drawing for Appearence.Button
9965           - Slight ScrollButton redesign
9966           - Some LinearGradientBrush size fixes
9967           - GroupBoxes have now rounded edges
9968           - Fixed StatusBar drawing
9969
9970 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
9971
9972         * ThemeNice.cs: - Remove dead code
9973           - use correct background colors for menus, etc.
9974           - Fake pixel drawing with 1 pixel bitmaps
9975
9976 2005-11-24  Jackson Harper  <jackson@ximian.com>
9977
9978         * MdiClient.cs: Size the scrollbars when resizing the window.
9979         - Resize the maximized windows when the client is resized
9980         * Form.cs: Make the child context available
9981         
9982 2005-11-23  Jackson Harper  <jackson@ximian.com>
9983
9984         * MdiChildContext.cs: Don't size windows if they are maximized.
9985
9986 2005-11-23  Mike Kestner  <mkestner@novell.com>
9987
9988         * ContextMenu.cs: use MenuTracker.
9989         * Control.cs: remove menu handle usage.
9990         * Form.cs: remove menu handle usage.
9991         * Hwnd.cs: remove menu handle usage.
9992         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
9993         motion and clicks to the new Tracker handlers.
9994         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
9995         and handle usage.
9996         * MenuAPI.cs: refactored to combine popup and menubar event handling.
9997         Killed the MENU and MENUITEM data types and associated collections
9998         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
9999         MenuTracker class that exposes the leftovers from the old MenuAPI
10000         static methods. Restructured Capture handling so that only one grab is
10001         done for the entire menu hierarchy instead of handing off grabs to
10002         submenus. Tracker now has an invisible control to Capture when active.
10003         * MenuItem.cs: add sizing accessors, kill Create
10004         and handle usage.
10005         * Theme.cs: remove menu handle and MENU(ITEM) usage.
10006         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
10007         MENU(ITEM). remove menu handle usage, use Menu directly.
10008         * XplatUIDriver.cs: remove menu handle usage.
10009         * XplatUIOSX.cs: remove menu handle usage.
10010         * XplatUIWin32.cs: remove menu handle usage.
10011         * XplatUIX11.cs: remove menu handle usage.
10012
10013 2005-11-22  Jackson Harper  <jackson@ximian.com>
10014
10015         * Hwnd.cs: Don't compute the menu size for
10016         DefaultClientRectangle.
10017         - Reenable menu sizes being computed for GetClienRectangle.
10018         * Form.cs: Remove comment of trechery
10019         
10020 2005-11-22  Jackson Harper  <jackson@ximian.com>
10021
10022         * Hwnd.cs: The adjustments for the menu bar are made when it is
10023         attached to the form.
10024
10025 2005-11-19  Jackson Harper  <jackson@ximian.com>
10026
10027         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
10028         (just like on windows).
10029
10030 2005-11-19  Jackson Harper  <jackson@ximian.com>
10031
10032         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
10033         use real buttons anymore because they are in non client area. The
10034         one TODO here is that I need to somehow invalidate a section of
10035         the non client area.
10036
10037 2005-11-18  Jackson Harper  <jackson@ximian.com>
10038
10039         * Control.cs: Put the enum check back in now that MDI doesnt have
10040         to use this to set border styles.
10041         * Form.cs: Only set mdi child windows borders if the handle has
10042         been created.
10043         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
10044         this directly on to the driver.
10045         - Get the move start position before adjusting for the titlebar
10046         height, this fixes the windows "skipping" when they are first
10047         moved.
10048
10049 2005-11-18  Jackson Harper  <jackson@ximian.com>
10050
10051         * XplatUIX11.cs: Just compute the mdi borders separately as they
10052         don't totally match up with normal form borders.
10053
10054 2005-11-18  Jackson Harper  <jackson@ximian.com>
10055
10056         * Control.cs: Set WS_ styles for borders, so that the driver does
10057         not have to retrieve the control instance to figure out what kind
10058         of borders it should have.
10059         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
10060         driver can know its an mdi child easily.
10061         * XplatUIX11.cs: Get the border styles and whether the window is
10062         MDI from the Styles and ExStyles params instead of having to get a
10063         control. This prevents a chicken and egg problem.       
10064
10065 2005-11-18  Jackson Harper  <jackson@ximian.com>
10066
10067         * MdiClient.cs: Fix typo so scrollbars show up correctly.
10068
10069 2005-11-18  Jackson Harper  <jackson@ximian.com>
10070
10071         * MdiClient.cs: Calculate when to add and remove scrollbars
10072         correctly.
10073         * MdiChildContext.cs: Adjust the y position to take the titlebar
10074         into account.
10075         - No height for FormBorderStyle.None
10076
10077 2005-11-18  Jackson Harper  <jackson@ximian.com>
10078
10079         * Control.cs: Allow non enum values to be used for
10080         InternalBorderStyle.  MDI does this to set a special border style.
10081         - New utility methods for converting points to/from client coords
10082         - Add the newly created control to the Controls collection before
10083         updating its style. This way UpdateStyle can walk the control
10084         heirarchy to find the control if needed.
10085         so I don't need to create a new Point object all the time.
10086         * Form.cs: Let MDI windows handle their border styles.
10087         - Set styles on MDI windows so the correct title style is derived.
10088         * MdiChildContext.cs: Move all the painting and window handling
10089         into the non client area.
10090         - Use correct sizing and put correct buttons on frames based on
10091         the FormBorderStyle.
10092         - Notify the mdi client about scrolling
10093         - Need to handle the buttons ourselves now, because they are all
10094         in non client areas and we can't add controls there.
10095         * MdiClient.cs: Halfway to scrolling, this implementation is
10096         somewhat broken though, we need to check to make sure other
10097         windows aren't causing scrolling before removing the bars. Also
10098         the bars need to be drawn on top, maybe I can switch implicit
10099         controls to be on top.
10100         * Hwnd.cs: caption_height and tool_caption_height are now
10101         properties of an hwnd, this way they can be set by the driver
10102         based on the type of window they are.  In X11 the window manager
10103         handles the decorations so caption_height is zero unless its an
10104         MDI window.
10105         - Add 3 pixel borders for MDI windows (0xFFFF).
10106         - Get rid of some code duplication, have DefaultClientRectanle
10107         just call GetClientRectangle.
10108         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
10109         Hwnd now.
10110         - Set border styles differently for mdi windows.
10111         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
10112         Hwnd now.
10113         
10114 2005-11-15  Mike Kestner  <mkestner@novell.com>
10115
10116         * Menu.cs: when adding an item to the collection, if item is already 
10117         parented, remove it from the parent.
10118
10119 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
10120
10121         * X11DesktopColors.cs: Added KDE support
10122
10123 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
10124
10125         * XplatUIWin32.cs: 
10126           - Clipboard methods now can translate Rtf format
10127           - No longer removes clipboard contents whenever a new format is added
10128             to allow placing multiple formats on the clipboard
10129         * Clipboard.cs: Clipboard now supports getting a IDataObject and
10130           will place all formats contained in it onto the clipboard. Also
10131           now cleans the clipboard before placing a new object onto it
10132         * RichTextBox.cs:
10133           - Implemented set_Rtf
10134           - Implemented set_SelectedRtf
10135           - Created InsertRTFFromStream() method to allow single code base
10136             for all properties and methods that insert RTF into document
10137           - Removed debug output
10138         * TextControl.cs:
10139           - Fixed Delete(int) to fix up line numbers
10140           - Fixed ReplaceSelection to combine start and end line
10141           - Fixed serious DeleteChars bug that would leave the document tree
10142             broken
10143           - Improved DumpTree with several logic checks to detect broken
10144             document trees
10145           - Removed debug lines
10146           - Fixed Caret.WordForward/WordBack moving code, now always also 
10147             updates caret.tag (fixes crash when word-selecting across tag
10148             boundaries via keyboard)
10149           - Added Insert() method for inserting multiline text into documents
10150           - Fixed DeleteChars() calculation errors that would cause a broken
10151             tag chain with multiple tag lines
10152           - DeleteChars() no longer crashes on multi-tag lines if not all tags
10153           - Split() no longer moves caret if split is at caret location
10154           - ReplaceSelection() now updates the cursor and re-displays it
10155           - ReplaceSelection() now uses new Insert() method to avoid code
10156             duplication
10157           - FormatText() can now handle formatting partial lines
10158         * TextBoxBase.cs:
10159           - Append now uses new TextControl.Insert() method (this avoids 
10160             duplicate code)
10161           - Implemented Ctrl-X (Cut) (
10162           - Implemented Ctrl-C (Copy)
10163           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
10164             regeneration when pasting text; roundtripping Copy&Paste within
10165             edit control still fails due to some calculation bugs in GenerateRTF)
10166           - The Delete key will now remove the current selection if it is visible
10167         * TextBox.cs: Removed debug lines
10168         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
10169           driver to be initialized and can't therefore be done via a static ctor)
10170
10171 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
10172
10173         * TextControl.cs: Added backend code for finding char arrays and strings
10174         * TextBoxBase.cs:
10175           - Added mouse wheel scroll support
10176           - Added support for VScroll and HScroll events
10177         * RichTextBox.cs:
10178           - Implemented all seven Find() variants
10179           - Implemented GetCharFromPosition()
10180           - Implemented GetCharIndexFromPosition()
10181           - Implemented GetLineFromIndex()
10182           - Implemented GetPositionFromCharIndex();
10183           - Implemented SaveFile for PlainText and UnicodeText
10184           - Fixed set_Font, now setting a new font applies that font to
10185             the whole document
10186           - Implemented generic Document to RTF converter
10187           - Implemented SaveFile for RichText format (still missing unicode
10188             conversion for non-ansi chars)
10189           - Implemented get_Rtf
10190           - Implemented get_SelectedRtf
10191
10192 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
10193
10194         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
10195           to allow any captures to be released before triggering OnClick. This
10196           way a click handler may capture the mouse without interference.
10197         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
10198           This way we send them even though X may not allow a grab (if the window
10199           isn't visible, for example)
10200
10201 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
10202
10203         * DataGridViewRowEventArgs.cs: DataGridView implementation
10204         * DataGridViewElement.cs: DataGridView implementation
10205         * DataGridViewComboBoxCell.cs: DataGridView implementation
10206         * DataGridViewDataErrorContexts.cs: DataGridView implementation
10207         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
10208         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
10209         * ImageLayout.cs: DataGridView implementation
10210         * DataGridViewComboBoxColumn.cs: DataGridView implementation
10211         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
10212         * DataGridViewSelectionMode.cs: DataGridView implementation
10213         * IDataGridViewEditingControl.cs: DataGridView implementation
10214         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
10215         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
10216         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
10217         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
10218         * DataGridViewColumnSortMode.cs: DataGridView implementation
10219         * DataGridView.cs: DataGridView implementation
10220         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
10221         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
10222         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
10223         * Padding.cs: DataGridView implementation
10224         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
10225         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
10226         * DataGridViewRowEventHandler.cs: DataGridView implementation
10227         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
10228         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
10229         * DataGridViewButtonCell.cs: DataGridView implementation
10230         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
10231         * DataGridViewEditMode.cs: DataGridView implementation
10232         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
10233         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
10234         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
10235         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
10236         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
10237         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
10238         * DataGridViewCellEventHandler.cs: DataGridView implementation
10239         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
10240         * DataGridViewCellStyleConverter.cs: DataGridView implementation
10241         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
10242         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
10243         * DataGridViewColumnEventArgs.cs: DataGridView implementation
10244         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
10245         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
10246         * QuestionEventArgs.cs: DataGridView implementation
10247         * IDataGridViewEditingCell.cs: DataGridView implementation
10248         * DataGridViewTriState.cs: DataGridView implementation
10249         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
10250         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
10251         * DataGridViewColumnCollection.cs: DataGridView implementation
10252         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
10253         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
10254         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
10255         * DataGridViewColumn.cs: DataGridView implementation
10256         * DataGridViewCellBorderStyle.cs: DataGridView implementation
10257         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
10258         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
10259         * DataGridViewRow.cs: DataGridView implementation
10260         * DataGridViewImageCellLayout.cs: DataGridView implementation
10261         * DataGridViewImageCell.cs: DataGridView implementation
10262         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
10263         * DataGridViewCheckBoxCell.cs: DataGridView implementation
10264         * DataGridViewHeaderCell.cs: DataGridView implementation
10265         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
10266         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
10267         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
10268         * DataGridViewTextBoxColumn.cs: DataGridView implementation
10269         * QuestionEventHandler.cs: DataGridView implementation
10270         * DataGridViewCellStyleScopes.cs: DataGridView implementation
10271         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
10272         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
10273         * DataGridViewCell.cs: DataGridView implementation
10274         * DataGridViewCellEventArgs.cs: DataGridView implementation
10275         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
10276         * DataGridViewCellStyle.cs: DataGridView implementation
10277         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
10278         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
10279         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
10280         * TextFormatFlags.cs: DataGridView implementation
10281         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
10282         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
10283         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
10284         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
10285         * DataGridViewButtonColumn.cs: DataGridView implementation
10286         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
10287         * HandledMouseEventArgs.cs: DataGridView implementation
10288         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
10289         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
10290         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
10291         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
10292         * DataGridViewRowCollection.cs: DataGridView implementation
10293         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
10294         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
10295         * DataGridViewHitTestType.cs: DataGridView implementation
10296         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
10297         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
10298         * DataGridViewColumnEventHandler.cs: DataGridView implementation
10299         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
10300         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
10301         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
10302         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
10303         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
10304         * DataGridViewContentAlignment.cs: DataGridView implementation
10305         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
10306         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
10307         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
10308         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
10309         * DataGridViewPaintParts.cs: DataGridView implementation
10310         * DataGridViewCellCollection.cs: DataGridView implementation
10311         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
10312         * DataGridViewImageColumn.cs: DataGridView implementation
10313         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
10314         * DataGridViewElementStates.cs: DataGridView implementation
10315         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
10316         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
10317         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
10318         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
10319         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
10320         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
10321         * DataGridViewRowHeaderCell.cs: DataGridView implementation
10322         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
10323         * DataGridViewTextBoxCell.cs: DataGridView implementation
10324         * DataGridViewBand.cs: DataGridView implementation
10325         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
10326         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
10327         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
10328         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
10329         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
10330         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
10331         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
10332         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
10333         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
10334         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
10335         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
10336
10337 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
10338
10339         * ThemeWin32Classic.cs: 
10340           - Draw the outside focus rectangle around buttons
10341           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
10342             doesn't use end caps for every dash of a line anymore. This
10343             workaround ignores the forecolor.
10344
10345 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
10346
10347         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
10348           endian safe.
10349
10350 2005-11-07  Jackson Harper  <jackson@ximian.com>
10351
10352         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
10353
10354 2005-11-07  Jackson Harper  <jackson@ximian.com>
10355
10356         * ScrollableControl.cs: Calculate the maximum and change vars
10357         (more) correctly so that scrollbars appear as a sensible size.
10358
10359 2005-11-04  Jackson Harper  <jackson@ximian.com>
10360
10361         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
10362         collection.
10363         * TreeView.cs: When the tree is sorted null out the top_node so
10364         that it is recalculated.
10365         - Use dotted lines instead of dashed lines to match MS better.
10366
10367 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
10368
10369         * ListView.cs: 
10370           - Implements key search for items. Useful when browsing files with FileDialog
10371           - When changing view mode or when clear the items reset scrollbar positions
10372
10373 2005-11-04  Jackson Harper  <jackson@ximian.com>
10374
10375         * CurrencyManager.cs: Implement the MetaDataChanged event, the
10376         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
10377         as to what the method may do as there is no real way of creating a
10378         derived CurrencyManager and calling the method. 
10379
10380 2005-11-03  Jackson Harper  <jackson@ximian.com>
10381
10382         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
10383         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
10384         method which seems to just be used internally to refresh the tabs.
10385
10386 2005-11-03  Jackson Harper  <jackson@ximian.com>
10387
10388         * TabControl.cs: Implement the remove method. Fix some broken
10389         comments.
10390
10391 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10392
10393         * DateTimePicker.cs:
10394           - Added missing DateTimePickerAccessibleObject class
10395           - Added missing events
10396           - Added OnFontChanged method
10397         * Form.cs: Added missing attributes
10398         * TreeView.cs: Added missing attributes
10399
10400 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
10401
10402         * GridItemCollection.cs: Fix signatures
10403
10404 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10405
10406         * XplatUI.cs: Updated build rev/date
10407         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
10408           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
10409         * Application.cs: Trigger context-specific ExitThread events
10410
10411 2005-11-03  Jackson Harper  <jackson@ximian.com>
10412
10413         * Menu.cs:
10414         * MainMenu.cs:
10415         * GridTableStylesCollection.cs:
10416         * Timer.cs:
10417         * TabPage.cs:
10418         * HelpProvider.cs:
10419         * StatusBar.cs:
10420         * MonthCalendar.cs: Signature fixes
10421
10422 2005-11-03  Jackson Harper  <jackson@ximian.com>
10423
10424         * TreeNodeCollection.cs: Remove should not be virtual.
10425         * TreeView.cs: Implement the last of the missing methods.
10426
10427 2005-11-03  Jackson Harper  <jackson@ximian.com>
10428
10429         * TreeNodeConverter.cs: Implement to get off my class-status back.
10430
10431 2005-11-03  Jackson Harper  <jackson@ximian.com>
10432
10433         * TreeView.cs: Hookup the bits for drag and drop.
10434         * TreeNode.cs: Don't cache the tree_view or index anymore, now
10435         that nodes can be moved from tree to tree easily this just causes
10436         all sorts of problems.
10437         * TreeNodeCollection: Don't need to give treenodes an index and
10438         treeview anymore when they are added, these are computed on the
10439         fly. Also make sure to remove a node before its added.
10440
10441 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10442
10443         * TextControl.cs:
10444           - Added CaretSelection enum
10445           - Added comparison methods to Marker struct, makes selection code
10446             more readable
10447           - Added SelectionStart and SelectionEnd as 'moveable' location for
10448             the CaretDirection enum and handler
10449           - Added selection_prev variable to track optimized invalidation for
10450             word and line selection
10451           - Added SelectionVisible property (returns true if there is a valid 
10452             selection)
10453           - Switched CaretHasFocus to only display the caret if there is no
10454             visible selection
10455           - Avoiding StringBuilder.ToString to retrieve a single char, instead
10456             using the direct character index; should be much faster
10457           - Added various conditional debug statements
10458           - Fixed invalidation calculation for selection ranges
10459           - Added ExpandSelection() method to support word and line selection
10460           - Switched SetSelectionToCaret to use new Marker compare overloads
10461           - Added central IsWordSeparator() method to determine word 
10462             separators/whitespace and FindWordSeparator() to streamline common
10463             usage of IsWordSeparator()
10464         * TextBoxBase.cs:
10465           - Removed unneeded grabbed variable, it was just mirroring
10466             Control.Capture
10467           - No longer firing OnTextChanged event when Text setter is called,
10468             since the base will fire the event for us
10469           - Added handling of Ctrl-Up/Down selection
10470           - Added handling of Shift-Cursorkey selection
10471           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
10472             words
10473           - Added handling of Shift and Ctrl-Shift-Home/End selection
10474           - Removed some debug output
10475           - Added handling for single/double/tripple-click to place caret/
10476             select word/select line respectively (Fixes bug #76031)
10477           - Added support for drag expansion of word/line selection
10478         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
10479           current selection
10480
10481 2005-11-02  Jackson Harper  <jackson@ximian.com>
10482
10483         * X11Dnd.cs: If the drag is going to and from a MWF window just
10484         copy the data instead of sending it out through the X Selection
10485         mechanism.
10486
10487 2005-11-02  Jackson Harper  <jackson@ximian.com>
10488
10489         * X11Dnd.cs:
10490         * XplatUIX11.cs: When in a drag we don't want motion notify
10491         messages to get passed on to the other controls. This prevents
10492         mouse move messages from showing up in the drag source.
10493
10494 2005-11-02  Jackson Harper  <jackson@ximian.com>
10495
10496         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
10497         the correct button is release to end a drag.
10498         * XplatUIX11.cs: Make the button state internal so the drag system
10499         can access it.  Dragging needs to know about all button releases,
10500         not just left button.
10501
10502 2005-11-02  Miguel de Icaza  <miguel@novell.com>
10503
10504         * Form.cs (Icon): If the icon is null, reset the icon to the
10505         default value. 
10506
10507         * Cursor.cs: When writing the AND-mask bitmap do not include the
10508         number of colors, but hardcode those to two (black and white),
10509         fixes the loading of color cursors (Paint Dot Net).
10510
10511         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
10512         turn off autoscaling.
10513
10514         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
10515
10516 2005-11-02  Jackson Harper  <jackson@ximian.com>
10517
10518         * X11Dnd.cs: Make sure to send a status message if the pointer
10519         enters a control that can not accept a drop, otherwise the cursor
10520         isn't updated correctly. Also tried to compress the lines of code
10521         a bit.
10522
10523 2005-11-02  Jackson Harper  <jackson@ximian.com>
10524
10525         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
10526         set actions correctly.  This isn't perfect as XDND and win32 have
10527         some differences on how you allow actions. I'll clear this up by
10528         adding a path for drag from MWF to MWF windows.
10529         * XplatUIX11.cs: Hook into the dnd system.
10530
10531 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
10532
10533         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
10534         previously shown but they are no longer need it. Very obvious when 
10535         browsing files with FileDialog.
10536
10537 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
10538
10539         * Control.cs: We always need to call OnPaintBackground. We pretty much
10540           ignore AllPaintingInWmPaint and always do the painting there, whether 
10541           it's set or not, since we always ignore the WM_ERASEBKGND message 
10542           (which we don't generate on X11). This fixes #76616.
10543         * Panel.cs: Removed unneeded background painting. This happens properly
10544           in Control.cs already
10545
10546 2005-10-31  Mike Kestner  <mkestner@novell.com>
10547
10548         * Menu.cs: Add items to collection before setting their index.
10549         * MenuItem.cs : add range checking with ArgumentException like MS.
10550         [Fixes #76510]
10551
10552 2005-10-31  Jackson Harper  <jackson@ximian.com>
10553
10554         * ListBox.cs: Invalidate if the area is visible at all not just
10555         contained in the visible rect. Fixes unselection of semi visible
10556         items.
10557
10558 2005-10-31  Jackson Harper  <jackson@ximian.com>
10559
10560         * Control.cs: Consistently name the dnd methods. Make them
10561         internal so we can override them to match some MS behavoir
10562         internally.
10563         * Win32DnD.cs: Use the new consistent names.
10564
10565 2005-10-31  Jackson Harper  <jackson@ximian.com>
10566
10567         * TreeView.cs: Don't draw the selected node when we lose focus.
10568
10569 2005-10-31  Jackson Harper  <jackson@ximian.com>
10570
10571         * X11Dnd.cs: We still need to reset the state even though a full
10572         reset isn't being done, otherwise status's still get sent all over
10573         the place.
10574
10575 2005-10-31  Jackson Harper  <jackson@ximian.com>
10576
10577         * Control.cs: Make the dnd_aware flag internal so the dnd
10578         subsystem can check it. Catch exceptions thrown in dnd handlers to
10579         match MS behavoir.
10580         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
10581         * X11Dnd.cs: Handle null data in the converters. Set the XDND
10582         version when sending a XdndEnter. Use the control/hwnd dnd_aware
10583         flags to reduce the number of dnd enters/status's sent.
10584
10585 2005-10-31  Jackson Harper  <jackson@ximian.com>
10586
10587         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
10588
10589 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
10590
10591         * PictureBox.cs: Fixes 76512
10592
10593 2005-10-28  Jackson Harper  <jackson@ximian.com>
10594
10595         * X11Dnd.cs: Early implementation to support winforms being a drag
10596         source for data on X11. Also restructured the converters so they
10597         can go both ways now.
10598         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
10599         
10600 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
10601
10602         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
10603           clipboard requests
10604
10605 2005-10-27  Jackson Harper  <jackson@ximian.com>
10606
10607         * TreeNode.cs: Implement serialization so my DnD examples will work.
10608
10609 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
10610
10611         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
10612           TreeView.cs: Don't dispose objects that are not owned.
10613           
10614 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
10615
10616         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
10617           should retrieve the current cursor and report that, but XplatUI
10618           doesn't (yet) have an interface for that (and I'm not sure I even
10619           can, on X11)
10620         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
10621           until any message loop processing is done (and the WM_SETCURSOR
10622           replaces the cursor to the proper one)
10623         * XplatUIX11.cs: 
10624           - Fixed override behaviour, we can't set the cursor globally on X11, 
10625             just for our windows.
10626           - Invalidating the System.Drawing X11 display handle when we are
10627             shutting down
10628         * Control.cs: Fix to make csc happy
10629
10630 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
10631
10632         * TextBoxBase.cs: 
10633           - get_Text: Add last line (without trailing newline) to returned
10634             value (Fixes 76212)
10635           - get_TextLength: Count last line in returned length
10636           - ToString: Call Text property instead of duplicating code
10637
10638 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
10639
10640         * ImageList.cs: Dispose ImageAttributes objects.
10641
10642 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10643
10644         * ImageList.cs: Use attribute constructors with less arguments where
10645           possible.
10646
10647 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10648
10649         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
10650           Use typeof instead of strings when assembly is referenced. Added
10651           some more comments.
10652
10653 2005-10-21  Jackson Harper  <jackson@ximian.com>
10654
10655         * ListView.cs: Raise a double click event. Also tried to somewhat
10656         fix when the selectedindexchanged event is raised. Its still
10657         broken though.
10658
10659 2005-10-21  Jackson Harper  <jackson@ximian.com>
10660
10661         * TreeView.cs: New method to invalidate the plus minus area of a
10662         node without invalidating the whole node (maybe this can be used
10663         in some more places).
10664         * TreeNodeCollection.cs: When adding to an empty node we need to
10665         invalidate its plus minus area so the little block shows up.
10666         
10667 2005-10-21  Jackson Harper  <jackson@ximian.com>
10668
10669         * TreeView.cs: Make sure that when we invalidate a node the bounds
10670         are big enough to cover the selected box and the focus
10671         rectangle. Use a different colour for the lines connecting nodes
10672         so they show up with all themes.
10673
10674 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10675
10676         * NativeWindow.cs: Don't call anything that could call into the driver,
10677           we might be on a different thread.
10678
10679 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
10680
10681         * Control.cs(Dispose): Since Dispose might run on a different thread,
10682           make sure that we call methods that could call into the driver via
10683           invoke, to avoid thread issues
10684
10685 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10686
10687         * XplatUI.cs: Removed finalizer
10688         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
10689           not allowing to be called on the finalizer thread.
10690
10691 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
10692
10693         * ImageList.cs:
10694           - Reverted r51889 and r51891.
10695           - Added ImageListItem class that stores unmodified image items and image
10696             properties required to create list images until handle is created.
10697           - Added AddItem and moved image creation logic to AddItemInternal.
10698           - Added CreateHandle method that creates images based on unmodified items.
10699           - Added DestroyHandle that changes state to store unmodified items.
10700           - Add and AddStrip methods no more create handle.
10701           - ReduceColorDepth has no return value.
10702           - Dispose destroys handle.
10703           - Modified other methods to reflect the above changes.
10704           - Implemented key support.
10705           - Added profile 2.0 members and attributes.
10706           - Added private Reset and ShouldSerialize methods that provide the same
10707             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
10708             them as they are private.
10709           - Added some more comments about implementation details.
10710
10711 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10712
10713         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
10714
10715 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10716
10717         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
10718
10719 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10720
10721         * DataGridDrawingLogic.cs: Fixes column hit calcultation
10722         * DataGridColumnStyle.cs: Remove debug message
10723
10724 2005-10-20  Jackson Harper  <jackson@ximian.com>
10725
10726         * TreeView.cs: We can always get input keys regardless of whether
10727         or not editing is enabled. They are used for navigation.
10728
10729 2005-10-20  Jackson Harper  <jackson@ximian.com>
10730
10731         * TreeNode.cs: Use the viewport rect for determining if a node
10732         needs to be moved for visibility. Don't use Begin/End edit. This
10733         calls a full refresh when its done.
10734         * TreeView.cs: New SetBottom works correctly.  Make the viewport
10735         rect property internal so the treenodes can see it. When clicking
10736         on a node we need to ensure that its visible because it might just
10737         be partly visible when clicked.
10738
10739 2005-10-20  Jackson Harper  <jackson@ximian.com>
10740
10741         * TreeNodeCollection.cs: Remove debug code.
10742
10743 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10744
10745         * Datagrid.cs: Implements column sorting in Datagrid
10746         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
10747
10748 2005-10-20  Jackson Harper  <jackson@ximian.com>
10749
10750         * TreeNodeCollection.cs: Remove items properly. Update the correct
10751         area after removing them.
10752
10753 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10754
10755         * Datagrid.cs: Should not call base.OnPaintBackground
10756
10757 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10758
10759         * XplatUIX11.cs (GetMessage):
10760           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
10761             window instead of client window
10762           - Now properly calculates NC_xBUTTONUP message coordinates
10763           - ScreenToMenu now properly calculates it's coordinates of whole 
10764             window, since menus are in the whole window, not in the client
10765             window
10766           - Added WholeToScreen coordinate translation method
10767
10768 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
10769
10770         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
10771           want to return a message, loop back to the beginning of the function
10772           and grab the next real message to process instead.
10773
10774 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10775
10776         * Splitter.cs: Properly set limits if no filler control is used
10777
10778 2005-10-19  Jackson Harper  <jackson@ximian.com>
10779
10780         * ColorDialog.cs: Don't show the help button if it is not enabled
10781         instead of disabling it (this is what MS does). Don't create the
10782         panel until the dialog is run, otherwise the vars (such as
10783         ShowHelp) are not set yet.
10784
10785 2005-10-19  Jackson Harper  <jackson@ximian.com>
10786
10787         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
10788         are reduced when adding nodes.
10789         * TreeNode.cs:
10790         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
10791         tree.
10792         
10793 2005-10-19  Jackson Harper  <jackson@ximian.com>
10794
10795         * FolderBrowserDialog.cs: End editing our treeview so the window
10796         actually gets refreshed.
10797
10798 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10799
10800         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
10801           Obsoleted handling of WM_ERASEBKGND, now always draws our background
10802           inside of WM_PAINT
10803
10804 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10805
10806         * MenuAPI.cs: Returns after Hidding window
10807         * XplatUIX11.cs: Added TODO found while debugging menu issues
10808
10809 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10810
10811         * XplatUIX11.cs: Do not re-map the whole window when it's size
10812           becomes non-zero unless it's supposed to be actually visible
10813
10814 2005-10-18  Jackson Harper  <jackson@ximian.com>
10815
10816         * TreeView.cs: We don't need to keep a count anymore.
10817         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
10818         use the Grow method.
10819
10820 2005-10-18  Jackson Harper  <jackson@ximian.com>
10821
10822         * TreeNodeCollection.cs: Insert is not supported on arrays, so
10823         implement it manually here.
10824
10825 2005-10-18  Jackson Harper  <jackson@ximian.com>
10826
10827         * ImageList.cs: Dont kill the list when the colour depth is
10828         changed, just change the colour depth of all the images.
10829         - Same goes for setting the image size. Just resize them all
10830         instead of killing the list softly.
10831
10832 2005-10-18  Jackson Harper  <jackson@ximian.com>
10833
10834         * Control.cs: Don't invalidate empty rectangles.
10835
10836 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10837
10838         * ListViewItem.cs:
10839           - Adds checked item to the Checked/Item lists (where empty before)
10840           - Do not add items to the Selected lists if they are already present
10841         * ListView.cs:
10842           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
10843           - When deleting items make sure that we delete them for the Selected
10844           and Checked list also.
10845
10846 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10847
10848         * Label.cs: Dispose objects no longer used
10849         * ThemeWin32Classic.cs: Dispose objects no longer used
10850
10851 2005-10-18  Jackson Harper  <jackson@ximian.com>
10852
10853         * TabControl.cs: Don't refresh the whole control when the tabs are
10854         scrolled, we just need to refresh the tab area.
10855
10856 2005-10-17  Jackson Harper  <jackson@ximian.com>
10857
10858         * XplatUIX11.cs: Compress code a little bit. Only calculate the
10859         after handle when we need it.
10860
10861 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10862
10863         * Control.cs: When the parent size changes, recalculate anchor 
10864           positions. Partial fix for #76462
10865
10866 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10867
10868         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
10869           drawn. Fixes #76462
10870
10871 2005-10-17  Jackson Harper  <jackson@ximian.com>
10872
10873         * MonthCalendar.cs: Don't create the numeric up down until our
10874         handle is created. Otherwise our handle is created in the
10875         constructor and we don't know if we are a WS_CHILD or WS_POPUP
10876         yet.
10877
10878 2005-10-17  Jackson Harper  <jackson@ximian.com>
10879
10880         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
10881         correctly.
10882
10883 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10884         * TreeNode.cs : small logical fix (was using local var instead of field)
10885         
10886 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10887
10888         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
10889
10890 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10891
10892         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
10893
10894 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
10895
10896         * Control.cs: 
10897           - Re-implemented anchoring code. My first version was really broken.
10898             This fixes bug #76033. Unlike the previous implementation we will
10899             no longer have round errors since all numbers are calculated from
10900             scratch every time. Removed various anchor-related obsolete vars.
10901           - InitLayout no longer causes layout event firing and layout to be 
10902             performed
10903
10904 2005-10-16  Jackson Harper  <jackson@ximian.com>
10905
10906         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
10907         which was broken).
10908
10909 2005-10-16  Jackson Harper  <jackson@ximian.com>
10910
10911         * TabControl.cs: Remove debug code.
10912
10913 2005-10-16  Jackson Harper  <jackson@ximian.com>
10914
10915         * XEventQueue.cs: Increase the default queue size (very simple
10916         apps needed to grow the queue).
10917         * Hwnd.cs: No finalizer so we don't need to suppress
10918         finalization. Compute the invalid area manually so a new rectangle
10919         does not newto be created.
10920         * ScrollableControl.cs: Don't set any params (otherwise visibility
10921         isn't set correctly).
10922         * MdiChildContext.cs: New constructor takes the mdi parent so it
10923         doesn't have to be computed and avoids a crash on windows. Draw
10924         the window icon properly, and allow the text to be seen.
10925         * Form.cs: Use new MdiChildContext constructor. Make sure the
10926         child context isn't null in wndproc.
10927         * TabControl.cs: Don't set focus, this is muddling keyboard
10928         behavoir. Expand the tab rows when a window size increase will
10929         allow extra tabs to be seen. Don't allow tabs smaller than the
10930         width of a window to be scrolled out of view.
10931         * TreeNode.cs:
10932         * TreeView.cs: Use measure string to calculate a nodes width, the
10933         width is cached and only updated when the text or the font is
10934         changed. Don't check for expand/collapse clicks on the first level
10935         nodes if root lines are disabled.
10936         
10937 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
10938
10939         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
10940
10941 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10942
10943         * DataGridBoolColumn.cs: fixes warning
10944
10945 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10946
10947         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
10948         to match more to match more precisely the MS Net behavior
10949
10950 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10951
10952         * Hwnd.cs: Added field to track if window is mapped
10953         * XplatUIX11.cs: 
10954           - Unmap windows if they become 0-size, re-map when 
10955             they are >0 again; fixes #76035
10956           - Re-set our error handler after initializing X11Desktop
10957             to override any error handlers Gtk or whatever was called
10958             may have set.
10959
10960 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10961
10962         * CheckedListBox.cs: Removed unused vars
10963         * ListView.cs: Fixed signatures
10964         * RichTextBox.cs: Removed unused vars
10965         * TextBoxBase.cs: Removed unused vars
10966         * XplatUIWin32.cs: Removed unused vars
10967         * XplatUIX11.cs: Removed unused vars
10968         * XplatUI.cs: Updated version and date to latest published
10969
10970 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10971
10972         * Cursor.cs: Added private .ctor to work around a bug in
10973           resourceset (Thanks to Geoff Norton for the help on this)
10974         * SplitterEventArgs.cs: Made fields accessible so we don't
10975           waste boatloads of objects and can reuse the same one
10976           in Splitter
10977         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
10978           any captions and borders when generating screen coordinates
10979         * Splitter.cs: Reimplemented control, now fully complete, uses
10980           rubberband drawing, supports and obeys all properties, has
10981           proper cursors
10982
10983 2005-10-13  Miguel de Icaza  <miguel@novell.com>
10984
10985         * Form.cs (Form): Setup default values for autoscale and
10986         autoscale_base_size;  Make these instance variables, not static
10987         variables. 
10988
10989         (OnLoad): on the first load, adjust the size of the form.
10990
10991 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10992
10993         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
10994           width argument to DrawReversibleRectangle()
10995         * XplatUIWin32.cs, XplatUIX11.cs: 
10996           - Implemented width for DrawReversibleRectangle()
10997           - Added logic to DrawReversibleRectangle that recognizes a zero
10998             width or height and only draws a line in that situation
10999         
11000 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
11001
11002         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
11003         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
11004         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
11005           method (it uses our FosterParent window to get a graphics context)
11006
11007 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
11008
11009         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
11010           and SetWindowBackground methods
11011         * Control.cs:
11012           - Setting proper ControlStyles
11013           - We no longer call XplatUI.SetWindowBackground and XplatUI.
11014             EraseWindowBackground, instead we draw the window background
11015             ourselves in PaintControlBackground. This behaviour is
11016             required to match MS, where, when OnPaintBackground is not
11017             called, the background is not drawn.
11018           - Removed unneeded Refresh() in set_Text
11019         * Hwnd.cs: Dropped the ErasePending support. No longer needed
11020         * XplatUIX11.cs:
11021           - Created DeriveStyles method to translate from CreateParams to
11022             FormBorderStyle and TitleStyle, also handles BorderStyle (which
11023             matches FormBorderStyle enum values)
11024           - Consolidated SetHwndStyles and CalculateWindowRect border/title
11025             style calculations into single DeriveStyles method
11026           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
11027             from redrawing the whole window on any resize or expose.
11028           - Fixed CreateWindow usage of SetWindowValuemask. Before not
11029             all styles were applied to our whole/client window appropriately
11030           - Removed EraseWindowBackground() and SetWindowBackground() methods
11031           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
11032             no longer clear/redraw the background through X
11033           - Removed handling of erase_pending bit, we have no use for it (or
11034             so it seems)
11035         * XplatUIOSX.cs:
11036           - Removed generation and handling of WM_ERASEBKGND message
11037           - Removed EraseWindowBackground() and SetWindowBackground() methods
11038           - Removed handling of hwnd.ErasePending flag
11039         * XplatUIWin32.cs:
11040           - Removed EraseWindowBackground() and SetWindowBackground() methods
11041           - We no longer call EraseWindowBackground on PaintEventStart, we 
11042             ignore the fErase flag, erasing is handled in Control in the
11043             background handler
11044         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
11045           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
11046           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
11047           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
11048           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
11049           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
11050           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
11051
11052 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
11053
11054         * PropertyGrids.cs: Get sub properties
11055         * PropertyGridView.cs: Fix drawing code
11056
11057 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11058
11059         * ListBox.cs: Fixes 76383
11060
11061 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11062
11063         * DataGridTextBoxColumn.cs: Sets location and size before attachment
11064         * ThemeWin32Classic.cs: Fixes border drawing and calculations
11065         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
11066
11067
11068 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11069
11070         * ComboBox.cs: Fixes border drawing
11071
11072 2005-10-10  Miguel de Icaza  <miguel@novell.com>
11073
11074         * MimeIcon.cs: Ignore errors if the file can not be read.
11075
11076 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11077
11078         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
11079          - Fixed border calculations
11080          - Fixed horizontal scrolling in single column listboxes
11081          - Fixed drawing issues
11082
11083 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
11084
11085         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
11086           FormBorderStyle enum
11087         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
11088           code to determine FormBorderStyles from CreateParams
11089         * Form.cs:
11090           - Fixed bug where we'd set the wrong window styles if we were
11091             not creating an MDI window
11092           - Added call to XplatUI.SetBorderStyle when form borders are set
11093         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
11094         * Hwnd.cs:
11095           - Removed obsolete edge style
11096           - Switched from BorderStyle to FormBorderStyle
11097         
11098 2005-10-10  Jackson Harper  <jackson@ximian.com>
11099
11100         * Form.cs: Use the property to get the window handle instead of
11101         accessing it directly. Prevents a null reference exception.
11102
11103 2005-10-10  Jackson Harper  <jackson@ximian.com>
11104
11105         * TreeView.cs: Don't adjust the rect given to DrawString now that
11106         our libgdiplus draws correctly.
11107
11108 2005-10-08  Jackson Harper  <jackson@ximian.com>
11109
11110         * TreeView.cs: Don't try to find the clicked on node if there are
11111         no nodes in the tree.
11112
11113 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11114
11115         * RichTextBox.cs:
11116
11117           restore
11118
11119 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11120
11121         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
11122           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
11123           ErrorProvider.cs:
11124           Use ResPool for brushes and dispose System.Drawing objects that
11125           are not used anymore.
11126
11127 2005-10-07  Jackson Harper  <jackson@ximian.com>
11128
11129         * MdiChildContext.cs: Use the new borders instead of drawing them
11130         ourselves.
11131
11132 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11133
11134         * Calling UpdateBounds after changing the window's BorderStyle 
11135         since the style can change the ClientSize
11136
11137 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11138
11139         * Control.cs: Made PaintControlBackground virtual
11140         * Panel.cs: Overriding PaintControlBackground instead of using paint
11141           event; paint event method was interfering with 'real' users of the
11142           event.
11143
11144 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11145
11146         * ThemeWin32Classic.cs: remove border drawing since it is handled
11147         by the base control class now and was causing double border drawing.
11148
11149 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11150
11151         * Panel.cs: Redraw our background on paint. Not a pretty solution,
11152           but it does seem to match MS behaviour. This fixes bug #75324
11153
11154 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11155
11156         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
11157           somewhat hackish looking
11158
11159 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11160
11161         * TextBoxBase.cs:
11162           - We now accept Enter even if AcceptEnter is false, if the containing
11163             form does not have an AcceptButton configured (fixes bug #76355)
11164           - Calculations are now fixed to no longer use Width/Height, but
11165             ClientSize.Width/Height, since we now support borders (this was
11166             a result of fixing borders and therefore bug #76166)
11167           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
11168             true (fixes bug #76354)
11169         
11170 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11171
11172         * Control.cs: 
11173           - Defaulting BorderStyle and setting it in XplatUI when our window 
11174             is created
11175           - Added enum check to InternalBorderStyle setter
11176         * XplatUIX11.cs: 
11177           - Added drawing of window borders
11178           - Now properly calculates WM decorations offset for toplevel 
11179             windows (fixes bug #74763)
11180         * XplatUIWin32.cs: 
11181           - Implemented BorderStyles for windows (we're letting win32 draw 
11182             the border for us)
11183           - Fixed the signature for SetWindowLong
11184         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
11185           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
11186           setting borders
11187         * UpDownBase.cs: Remove drawing of borders, this is handled by
11188           the driver, outside the client area
11189         * ListView.cs: Removed bogus border calculations. The control should
11190           be oblivious to borders, since those are not part of the client
11191           area. 
11192         * X11DesktopColors.cs: Commented out (currently) unneeded variables
11193         * ThemeWin32Classic.cs: Removed border calculations from ListView 
11194           drawing code
11195
11196 2005-10-06  Jackson Harper  <jackson@ximian.com>
11197
11198         * MdiChildContext.cs: Clear out the old virtual position remove
11199         all the unneeded calls to CreateGraphics.
11200
11201 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11202
11203         * TextControl.cs: Use proper color for highlighted text; fixes #76350
11204
11205 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11206
11207         * Form.cs: 
11208           - Added loading and setting of our new default icon
11209           - Only set icon if window is already created
11210
11211 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11212
11213         * Label.cs:
11214           - Do not explicitly set the foreground and background colors, to
11215             allow inheriting from parents (fixes #76302)
11216           - Use Control's InternalBorderStyle property to deal with borders
11217
11218 2005-10-06  Jackson Harper  <jackson@ximian.com>
11219
11220         * MdiChildContext.cs: Use the new xplatui function to draw a
11221         reversible rect.
11222
11223 2005-10-06  Jackson Harper  <jackson@ximian.com>
11224
11225         * Form.cs: Add the parent before creating the child context cause
11226         we need the parent when setting up the child.
11227
11228 2005-10-06  Jackson Harper  <jackson@ximian.com>
11229
11230         * FolderBrowserDialog.cs: redo the tree population code so a
11231         second thread isn't used. Should be a lot faster and more stable
11232         now.
11233
11234 2005-10-05  Jackson Harper  <jackson@ximian.com>
11235
11236         * TreeView.cs: There are no expand/collapse boxes if the node has
11237         no children.
11238
11239 2005-10-05  Jackson Harper  <jackson@ximian.com>
11240
11241         * X11DesktopColors.cs: Get menu colours for the gtk theme.
11242
11243 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
11244
11245         * FileDialog.cs: Fix InitialDirectory
11246
11247 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11248
11249         * ComboBox.cs:
11250                 - Fixes changing between styles
11251                 - Fixes simple mode
11252                 - Fixes last item crashing when navigating with keyboard
11253
11254 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11255
11256         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
11257
11258 2005-10-05  Jackson Harper  <jackson@ximian.com>
11259
11260         * TreeView.cs: If updating the root node do a full refresh.
11261         * TreeNode.cs: The root node should be expanded by default. Also
11262         added a utility prop to tell if we are the root node.
11263         * TreeNodeCollection.cs: Only refresh if the node we are being
11264         added to is expanded. Also added a comment on a potential
11265         optimization.
11266         
11267 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
11268
11269         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
11270           in dispose method. Fixes #76330
11271
11272 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
11273
11274         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
11275
11276                 - Implements vertical and horizontal scrolling using XplatUI
11277                 - Fixes keyboard navagation
11278                 - Fixes EnsureVisible
11279                 - Drawing fixes
11280                 - Handles and draws focus properly
11281
11282
11283 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
11284
11285         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
11286           Create handle. NET_2_0: Destroy handle when value is null.
11287
11288 2005-10-03  Jackson Harper  <jackson@ximian.com>
11289
11290         * ScrollBar.cs: My last scrollbar patch was broken. This is a
11291         revert and a new patch to prevent the thumb from refreshing so
11292         much.
11293
11294 2005-10-02  Jackson Harper  <jackson@ximian.com>
11295
11296         * ScrollBar.cs: Don't update position if it hasn't actually
11297         changed. This occurs when you hold down the increment/decrement
11298         buttons and the thumb gets to the max/min.
11299
11300 2005-10-01  Jackson Harper  <jackson@ximian.com>
11301
11302         * Form.cs:
11303         * MdiChildContext.cs:
11304         * MdiClient.cs: Implement ActiveMdiChild in Form.
11305
11306 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
11307
11308         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
11309
11310 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
11311
11312         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
11313           be found
11314
11315 2005-09-30  Jackson Harper  <jackson@ximian.com>
11316
11317         * ListBox.cs: Don't do a full refresh unless some data has
11318         actually changed.
11319
11320 2005-09-30  Jackson Harper  <jackson@ximian.com>
11321
11322         * TreeView.cs: Make sure that the checkboxes size is factored in
11323         even when not visible.
11324
11325 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11326
11327         * FileDialog.cs: Fix Jordi's build break
11328
11329 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11330
11331         * FileDialog.cs: 
11332                 - Use standard the Windows colours for the combobox as espected
11333                 - Dispose objects that use resouces when no longer need them
11334
11335 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11336
11337         * X11DesktopColors.cs: Initial incomplete implementation
11338         * XplatUIX11.cs: Added call to initialize X11DesktopColors
11339
11340 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
11341
11342         * Theme.cs: 
11343           - Switched Theme color names to match the names defined in 
11344             System.Drawing.KnownColors. Life's hard enough, no need to make 
11345             it harder.
11346           - Added setters to all theme color properties so themes can set
11347             their color schemes. The setters also propagate the color changes
11348             to System.Drawing.KnownColors via reflection
11349         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
11350           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
11351           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
11352           use the new, more logical theme color names
11353         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
11354           post-NT colors
11355         * ThemeWin32Classic.cs:
11356           - Removed code to set the old classic Windows colors. Instead it
11357             now relies on the colors returned by System.Drawing.KnownColors
11358             which will be either modern static colors (Unix) or colors
11359             read from the user's configuration (Win32)
11360           - Updated to use the new, more logical theme color names
11361           - Switched DataGrid drawing code to use only Theme colors instead of
11362             a mix of System.Drawing.KnownColors and Theme colors
11363           - DrawFrameControl(): Removed code that fills the button area, the
11364             fill would overwrite any previous fill done by a control. This
11365             fixes bug #75338 
11366           - Added DrawReversibleRectangle() stub
11367         * ScrollableControl.cs: Set visible state to false when scrollbars
11368           are removed (pdn fix)
11369         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
11370           DrawReversibleRectangle() method to allow drawing primitive 
11371           'rubber bands'
11372         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
11373
11374 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11375
11376         * ImageList.cs: Add(Icon): Create handle.
11377
11378 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11379
11380         * ListView.cs:
11381         * ThemeWin32Classic.cs:
11382                 - Fixes detail mode
11383                 - Sets clippings
11384                 - Issues with drawing
11385
11386 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11387
11388         * ImageList.cs: Moved RecreateHandle back to ImageList as event
11389           source has to be the ImageList.
11390
11391 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11392
11393         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
11394
11395 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11396
11397         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
11398
11399 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11400
11401         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
11402
11403 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
11404         * GridItem.cs: Fixed TODOs
11405         * GridItemCollection.cs: Added ICollection interface
11406
11407 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11408
11409         * ImageList.cs: Resize icons when needed.
11410
11411 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
11412
11413         * ListViewItem.cs
11414                 - Fixes GetBounds and returns on screen rects
11415         * ListView.cs:
11416                 - Fixes vertical and horzintal scrolling of items
11417         * ThemeWin32Classic.cs:
11418                 - Fixes drawing
11419                 
11420 2005-09-29  Raja R Harinath  <harinath@gmail.com>
11421
11422         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
11423
11424 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
11425
11426         * ImageList.cs: Added comments about handle creation. Moved Handle,
11427           HandleCreated and OnRecreateHandle implementations to ImageCollection.
11428           Handle is created in Add methods.
11429
11430 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11431          
11432         * DataGridDrawingLogic.cs: 
11433                 - Takes rows into account on Colum calculations
11434                 - Returns the column when clickig
11435         * DataGrid.cs:
11436                 - Fixes default HitTestInfo values
11437                 - Fixes HitTestInfo.ToString
11438                 - Fixes ResetBackColor          
11439         
11440 2005-09-28  Jackson Harper  <jackson@ximian.com>
11441
11442         * MdiChildContext.cs: Obey rules for fixed sized windows (no
11443         sizing or cursor changes). Also added some temp code to draw the
11444         titlebars text (Makes dev a little easier).
11445
11446 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11447
11448         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
11449
11450 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11451          
11452         * ListBox.cs: Fixes bug 76253
11453
11454 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11455
11456         * ImageList.cs: Added comments about the current implementation. Added
11457           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
11458           Format32bppArgb to preserve transparency and can use Graphics.FromImage
11459           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
11460           with Bitmap.LockBits for better performance. Revised the whole file to
11461           match MS.NET behaviour and provide better performance. Non-public
11462           interface members are calling public members even when they throw
11463           NotSupportedException for better maintainability. Moved ColorDepth,
11464           ImageSize, ImageStream and TransparentColor implementations to
11465           ImageCollection for better performance as these properties are not used
11466           by ImageList.
11467         * ImageListStreamer.cs: Added a new internal constructor that takes an
11468           ImageList.ImageCollection and serializes Images based on
11469           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
11470           match ImageList property name.
11471
11472 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
11473
11474         * ListBox.cs: Fixes IndexFromPoint for last item
11475
11476 2005-09-27  Jackson Harper  <jackson@ximian.com>
11477
11478         * Form.cs: Set the position of new mdi children correctly.
11479
11480 2005-09-27  Jackson Harper  <jackson@ximian.com>
11481
11482         * MdiClient.cs: New mdi children need to be added to the back of
11483         the controls collection so the zorder is set correctly. Also add a
11484         count of all the child windows that have been created.
11485
11486 2005-09-27  Jackson Harper  <jackson@ximian.com>
11487
11488         * Form.cs (CreateParams): Setup MDI forms correctly.
11489
11490 2005-09-27  Jackson Harper  <jackson@ximian.com>
11491
11492         * MdiChildContext.cs:
11493         * MonthCalendar.cs:
11494         * UpDownBase.cs:
11495         * ListBox.cs:
11496         * ListView.cs:
11497         * TextBoxBase.cs:
11498         * TreeView.cs:
11499         * ScrollableControl.cs:
11500         * ComboBox.cs: Add implicit controls using the new implict control
11501         functionality in ControlCollection. Also try to block multiple
11502         control add in a suspend/resume layout to save some cycles.
11503         
11504 2005-09-27  Jackson Harper  <jackson@ximian.com>
11505
11506         * Control.cs: Add functionality to the controls collection to add
11507         'implicit controls' these are controls that are created by the
11508         containing control but should not be exposed to the user. Such as
11509         scrollbars in the treeview.
11510         * Form.cs: The list var of the ControlsCollection is no longer
11511         available because of the potential of implicit controls getting
11512         ignored by someone accessing the list directly.
11513
11514 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
11515
11516         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
11517           loose it's parent. (Fixed bug introduced in r49103 when we added
11518           setting the child parent to null on Remove)
11519
11520 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
11521
11522         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
11523         * Splitter.cs: Added missing attributes for BorderStyle property.
11524         * TextBoxBase.cs: Marked Calculate* methods internal.
11525         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
11526         MS.NET.
11527
11528 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
11529          
11530         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
11531
11532 2005-09-25  Jackson Harper  <jackson@ximian.com>
11533
11534         * TreeView.cs: Update the node bounds correctly regardless of
11535         whether the node is visible.
11536
11537 2005-09-25  Jackson Harper  <jackson@ximian.com>
11538
11539         * ImageList.cs: Don't dispose the image after it is added to the
11540         image list. Only reformat images that need to be resized.
11541
11542 2005-09-25  Jackson Harper  <jackson@ximian.com>
11543
11544         * ImageList.cs: Don't set the format when changing the image.
11545
11546 2005-09-25  Jackson Harper  <jackson@ximian.com>
11547
11548         * TreeView.cs: We can't just assume the node has a font. Use the
11549         treeviews font if no node font is available.
11550
11551 2005-09-25  Jackson Harper  <jackson@ximian.com>
11552
11553         * TreeView.cs: Allow the scrollbars to be reset with negative
11554         values.
11555         - Don't add scrollbars to negative sized windows.
11556
11557 2005-09-23  Jackson Harper  <jackson@ximian.com>
11558
11559         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
11560         old Mono.Posix. Also remove some stray code that shouldn't have
11561         been committed.
11562
11563 2005-09-23  Jackson Harper  <jackson@ximian.com>
11564
11565         * TreeView.cs: Attempt at proper sizing of the horizontal
11566         scrollbar. Also don't resize the scrollbars unless they are
11567         visible.
11568
11569 2005-09-23  Jackson Harper  <jackson@ximian.com>
11570
11571         * TreeView.cs: We don't need to expand the invalid area when the
11572         selection changes, as this is all drawn in the node's bounding
11573         box. The area needs to be expanded (previous typo was contracting
11574         it) when the focus rect moves.
11575
11576 2005-09-23  Jackson Harper  <jackson@ximian.com>
11577
11578         * TreeView.cs: Display the selection box under the correct
11579         circumstances. We were rendering white text with no selection box
11580         before.
11581
11582 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
11583
11584         * TextControl.cs(Split): Now updates selection start/end if it points 
11585           into a line that's being split. Fixes a FIXME and bug #75258
11586
11587 2005-09-23  Jackson Harper  <jackson@ximian.com>
11588
11589         * Binding.cs:
11590         * ListControl.cs: Don't use the path when retrieving binding
11591         managers from the binding context. My bat sense tells me that the
11592         path is only used on insertion.
11593
11594 2005-09-22  Jackson Harper  <jackson@ximian.com>
11595
11596         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
11597
11598 2005-09-22  Jackson Harper  <jackson@ximian.com>
11599
11600         * Splitter.cs: There are special cursors used for splitting.
11601         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
11602
11603 2005-09-22  Jackson Harper  <jackson@ximian.com>
11604
11605         * Splitter.cs: Change the cursor appropriately when the splitter
11606         is moused over, so the user actually knows there is a splitter
11607         there.
11608
11609 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11610
11611        * Label.cs : Fix ToString method to give same output as MS.NET
11612
11613 2005-09-22  Jackson Harper  <jackson@ximian.com>
11614
11615         * TreeView.cs: Create the scrollbars when the handle is created
11616         and add them right away, just make them invisble. Also account for
11617         the window being shrunk vertically to the point that the vert
11618         scrollbar needs to be added.
11619         - Remove some 0.5 adjustments to get around anti aliasing issues.
11620         
11621 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
11622          
11623         * MainMenu.cs: Fixes default value
11624         * MenuItem.cs: Fixes default value
11625
11626 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
11627
11628         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
11629
11630 2005-09-21  Jackson Harper  <jackson@ximian.com>
11631
11632         * Control.cs: Don't try to set the border style on the window if
11633         it hasn't been created. When the window is created the border
11634         style will be used.
11635
11636 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11637
11638         * Control.cs (Update): Don't call XplatUI if we don't have a
11639           window handle yet
11640
11641 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11642
11643         * ContainerControl.cs: Instead of throwing an exception, print
11644           a one-time warning about Validate not being implemented
11645         * XplatUIWin32.cs: Removed debug output
11646
11647 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11648
11649         * Control.cs: Only set XplatUI background if we expect the windowing
11650           system to handle the background. This stops controls that draw their
11651           own background from flickering
11652
11653         * XplatUIX11.cs: Support custom visuals and colormaps for window 
11654           creation. This allows, amongst other things, using MWF X11 windows 
11655           with OpenGL.
11656
11657 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11658
11659         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
11660           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
11661           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
11662           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
11663           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
11664           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
11665           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
11666           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
11667           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
11668           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
11669           GridColumnStylesCollection.cs, 
11670           IDataGridColumnStyleEditingNotificationService.cs,
11671           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
11672           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
11673           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
11674           TreeNodeCollection.cs, AmbientProperties.cs, 
11675           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11676           DataObject.cs, ErrorProvider.cs, Splitter.cs,
11677           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
11678           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
11679           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
11680           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
11681           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
11682           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
11683           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
11684           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
11685           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
11686           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
11687           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
11688           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
11689           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
11690           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
11691           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
11692           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
11693           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
11694           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
11695           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
11696           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
11697           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
11698           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
11699           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
11700           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
11701           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
11702           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
11703           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
11704           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
11705           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
11706           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
11707           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
11708           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
11709           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
11710           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
11711           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
11712
11713 2005-09-21  Jackson Harper  <jackson@ximian.com>
11714
11715         * TreeNode.cs: Call Before/After Expand not Collapse when
11716         expanding.
11717
11718 2005-09-20  Jackson Harper  <jackson@ximian.com>
11719         
11720         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
11721
11722 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11723          
11724         * ListViewItem.cs:
11725                 - Fixes bug 76120
11726                 - Fixes proper storing of subitems
11727                 - Fixes not updated items
11728
11729 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
11730
11731         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
11732           things if our window handle isn't created yet. Also disabled 
11733           debug for TextBoxBase
11734
11735 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
11736
11737         * MenuAPI.cs: Remove filtering of events to allow menu usage
11738
11739 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11740
11741         * Cursor.cs: Allow null to be passed to Cursor.Current.
11742
11743 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
11744
11745         * ThemeWin32Classic.cs:
11746           - Change some private methods/fields to protected virtual so that 
11747             they can be accessed and overriden in derived classes
11748           - First refactoring of some methods. Derived themes now don't 
11749             need to duplicate the complete code from ThemeWin32Classic
11750         * ThemeNice.cs:
11751           - Added nice StatusBar
11752           - Derive from ThemeWin32Classic and not Theme
11753           - Removed duplicate ThemeWin32Classic code
11754
11755 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11756
11757         * Control.cs (ControlCollection.Add): If the value null is passed
11758         the control is ignored. 
11759
11760         Optimize this loop.
11761
11762 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
11763
11764         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
11765           PostQuitMessage state.
11766         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
11767
11768 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
11769
11770         * Application.cs: Our constructor will never get called, move 
11771           initialization to fields; fixes bug #75933
11772
11773 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11774
11775         * FileDialog.cs :
11776                 - Allow files to be selected properly using file name
11777                 combo box.
11778                 - Add ability to change diretory (absolute / relative)
11779                 using file name combo box.
11780
11781 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11782          
11783         * ListBox.cs: 
11784                 - Fixes Multicolumn listboxes item wrong calculations
11785                 - Allows to click when only one item is in the listbox
11786                 - Fixes crash when no items using keyboard navigation
11787
11788 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
11789
11790         * ComboBox.cs: Reverted almost everything from the latest patch which
11791           broke ComboBox
11792
11793 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
11794         
11795         * ToolTip.cs:
11796                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
11797         * ComboBox.cs:
11798                 - When DropDownStyle is Simple, it does not show scrollbar 
11799                 to the last item of the list.
11800                 - When DropDownStyle is Simple, it crashed when the list was 
11801                 scrolled down with the down cursor key.
11802                 - Fixed a bug that when DropDownStyle is DropDownList, the 
11803                 selected item was not shown.
11804                 - The position of the selected item was not preserved when 
11805                 the next dropdown happened.
11806         * ThemeWin32Classic.cs:
11807                 - Items were wrapped at the right end.
11808         * CheckedListBox.cs:
11809                 - Fixed Add method
11810         * ListBox.cs:
11811                 - Items should be fully shown.
11812                 - When resizing and vertical scrollbar disappeared, the item 
11813                 of index 0 should be on the top of the list.
11814                 - GetItemRectangle should consider the size of ver. scrollbar
11815         * StatusBar.cs:
11816                 - SizingGrip area should not be allocated when it is not 
11817                 displayed.
11818                 - Now it reflects MinWidth of the containing panel and 
11819                 fixed a crash that happens when its width becomes so small.
11820
11821 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11822
11823         * CheckedListBox.cs: Fixes bug 76028
11824         * ListBox.cs: Fixes bug 76028
11825
11826 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11827
11828         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
11829         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
11830
11831 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
11832
11833         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
11834
11835 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11836
11837         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
11838
11839 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11840
11841         * IRootGridEntry.cs: Added
11842         * PropertyGridCommands.cs: Added
11843         * PropertiesTab.cs: Added missing methods and property
11844         * PropertyGridView.cs: Made class internal
11845         * PropertyGridTextBox.cs: Made class internal
11846
11847 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11848
11849         * MimeIcon.cs: Try to check some other environment variables
11850           if "DESKTOP_SESSION" returns "default"
11851
11852 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11853
11854         * ThemeNice.cs: Corrected background colors (e.g. menus)
11855         * ColorDialog.cs: Use correct background colors for controls
11856
11857 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11858
11859         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
11860
11861 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
11862
11863         * RichTextBox.cs: Added initial implementation
11864         * lang.cs: Removed. Was accidentally checked in long time ago
11865         * TODO: Removed. Contents were obsolete
11866
11867 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11868                                                                                 
11869         * PropertiesTab.cs : Added
11870
11871 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11872                                                                                 
11873         * PropertyGrid.cs : Update
11874         * PropertyGridView.cs : Update
11875         * System.Windows.Forms.resx : Added images and strings
11876
11877 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
11878
11879         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
11880  
11881 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
11882
11883         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
11884           a busy loop right after the Ungrab the X11 display is otherwise 
11885           blocked
11886
11887 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
11888
11889         * ThemeWin32Classic.cs: Optimise the use of clipping
11890
11891 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
11892
11893         * DataGrid.cs: fixes recursion bug
11894
11895 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
11896
11897         * ThemeNice.cs: 
11898           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
11899           - Cleanup
11900
11901 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
11902
11903         * ThemeNice.cs: Draw nice ProgressBars
11904
11905 2005-09-01  Miguel de Icaza  <miguel@novell.com>
11906
11907         * VScrollBar.cs: Another buglet found by Aaron's tool. 
11908
11909         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
11910         bug finder.
11911
11912 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
11913
11914         * ThemeNice.cs:
11915           - Added nicer menu drawing
11916           - Updated DrawTab
11917           - some refactoring
11918
11919 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11920
11921         * CreateParams.cs (ToString): Made output match MS
11922         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
11923             handle is already created (to avoid forcing window creation)
11924         * XplatUIX11.cs: Set window text to caption after creating window,
11925           in case Text was set before window was created
11926         * Form.cs: Use this.Text instead of a static string as caption
11927
11928 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11929
11930         * NotifyIcon.cs: Don't set the window to visible; this screws
11931           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
11932           OnPaint without a bitmap)
11933         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
11934           happen very often anyway; we could add the check to the WM_PAINT 
11935           event generation code
11936
11937 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11938
11939         * NotifyIcon.cs: Fill the icon area with a background color, to 
11940           avoid 'residue' when transparent icons are drawn
11941         * XplatUIX11.cs:
11942           - Handle whole_window == client_window when destroying windows
11943           - SystrayAdd(): Set client_window to whole_window value to
11944             get mouse and other events passed to NotifyIcon
11945
11946 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11947
11948         * Form.cs: Set proper default for Opacity property
11949         * NotifyIcon.cs:
11950           - ShowSystray(): Don't bother creating telling the OS
11951             about the systray item if no icon is provided
11952           - Now handles WM_NCPAINT message to deal with whole/client window
11953             split
11954           - Create window as visible to not get caught by Expose optimization
11955         * Hwnd.cs: Removed debug message
11956         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
11957           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
11958             PaintEventStart/End to use new client argument
11959         * TextBoxBase.cs:
11960           - Commented out debug messages
11961           - Switched PaintEventStart/End to use new client argument
11962         * XplatUI.cs: Added client window bool to PaintEventStart()/
11963           PaintEventEnd() calls, to support drawing in non-client areas
11964         * XplatUIDriver.cs: 
11965           - Added client window bool to PaintEventStart()/PaintEventEnd() 
11966             calls, to support drawing in non-client areas
11967           - Added conditional compile to allow using MWF BeginInvoke 
11968             on MS runtime
11969         * XplatUIX11.cs:
11970           - Added some conditional debug output
11971           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
11972             whole/client window split
11973           - Implemented handling of client argument to PaintEventStart()/End()
11974         * Control.cs:
11975           - Throw exception if BeginInvoke() is called and the window handle
11976             or one of the window's parent handles is not created
11977           - Added conditional compile to allow using MWF BeginInvoke on
11978             MS runtime
11979           - get_Parent(): Only sets parent if handle is created. This avoids
11980             forcing window handle creation when parent is set.
11981           - Now fires Layout and Parent changed events in proper order
11982           - Switched to use Handle instead of window.Handle for Z-Order setting,
11983             the get_Parent() patch above causes us to possibly get null for 'window'
11984           - Implemented handling of client argument to PaintEventStart()/End()
11985           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
11986             default handling)
11987           - Now sends a Refresh() to all child windows when Refresh() is called
11988
11989 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
11990
11991         * Form.cs: Added (non-functional) Opacity property
11992         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
11993
11994 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
11995         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
11996           use export MONO_THEME=nice to activate it.
11997           Currently supported controls:
11998           - Button
11999           - ComboBox
12000           - ScrollBar
12001           - TabControl (TabAlignment.Top only, other will follow)
12002         * ThemeEngine.cs: Add theme nice
12003         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
12004           if enabled
12005
12006 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
12007
12008         * Splitter.cs: Resize docked control and its neighbor.
12009
12010 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12011         -- Making Windows with Menus layout correctly --
12012         * Form.cs : The first leg of the fix
12013                 Menu setter - adjust Client Size as needed to make space for the menu
12014                 SetClientSizeCore - doesn't call base version to be able to pass the 
12015                         menu handle to XplatUI.CalculateWindowRect
12016         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
12017         * XplatUIX11.cs: The critical second leg of the fix
12018                 GetWindowPos needs to use a recalculated client_rect
12019                 so that resizing the window doesn't break layout of child controls. 
12020                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
12021                 Lots of \t\n killed
12022
12023 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12024
12025         * Label.cs: Now properly recalculates width and height on Font and Text
12026           changes if AutoSize is set
12027
12028 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12029         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
12030
12031 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
12032
12033         * ImageList.cs: Makes ToString method compatible with MS
12034
12035 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
12036
12037         * MenuAPI.cs: fixes bug 75716
12038
12039 2005-08-11 Umadevi S <sumadevi@novell.com>
12040         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
12041
12042 2005-08-11 Umadevi S <sumadevi@novell.com>
12043         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
12044
12045 2005-08-10  Umadevi S <sumadevi@novell.com>
12046         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
12047
12048 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
12049
12050         * Menu.cs: fixes bug 75700
12051         * MenuAPI.cs: fixes navigation issues
12052
12053 2005-08-09  Umadevi S <sumadevi@novell.com>
12054         * CheckedListBox.cs - simple fix for GetItemChecked.
12055
12056 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
12057
12058         * ComboBox.cs: Serveral fixes
12059         * ListBox.cs: Serveral fixes
12060
12061 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12062
12063         * ComboBox.cs: Fixes FindString methods and GetItemHeight
12064         * ListBox.cs: Fixes FindString methods
12065
12066 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12067
12068         * DataGrid.cs: fixes bugs exposed by new tests
12069
12070 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
12071
12072         * Mime.cs: Compile Mono assembly references only if compiling
12073           with Mono (Allows to build with VS.Net again)
12074
12075 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
12076
12077         * Control.cs (PaintControlBackground): Draw background image
12078         corrrectly.
12079         (CheckForIllegalCrossThreadCalls): Stubbed.
12080         
12081         * Form.cs (OnCreateControl): Center when should be centered.
12082         
12083         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
12084
12085 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
12086
12087         * Binding.cs: Binding to properties should be case unsensitive
12088
12089 2005-07-18 vlindos@nucleusys.com
12090
12091         * DataGrid.cs: fixes setmember order
12092
12093 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
12094
12095         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
12096         * FileDialog.cs: FileDialog is now resizable and uses the new
12097           MimeIconEngine
12098
12099 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
12100
12101         * DataGridTextBoxColumn.cs: default value
12102         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
12103         * GridTableStylesCollection.cs: fixes checking MappingName
12104         * DataGridDrawingLogic.cs: fixes drawing logic issues
12105         * DataSourceHelper.cs: rewritten to make compatible with more data sources
12106         * DataGrid.cs: fixes    
12107
12108 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
12109
12110         * MimeGenerated.cs: Use case sensitive comparer for
12111           NameValueCollections
12112
12113 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
12114
12115         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
12116         * ThemeWin32Classic.cs: bug fixes, code refactoring
12117         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
12118         * DataGrid.cs: bug fixes, code refactoring
12119         * DataGridTextBox.cs: bug fixes, code refactoring
12120         * DataGridColumnStyle.cs:  bug fixes, code refactoring
12121         * Theme.cs:  bug fixes, code refactoring
12122
12123 2005-07-01  Peter Bartok  <pbartok@novell.com> 
12124
12125         * TextControl.cs: Quick fix for the reported crash on ColorDialog
12126           and other text box usage
12127
12128 2005-07-01  Jackson Harper  <jackson@ximian.com>
12129
12130         * TabControl.cs: Make sure the bottom of the tab covers the pages
12131         border.
12132
12133 2005-06-30  Peter Bartok  <pbartok@novell.com> 
12134
12135         * Form.cs (ShowDialog): Assign owner of the dialog
12136         * TextBoxBase.cs: Always refresh caret size when deleting, caret
12137           might have been moved to a tag with different height
12138
12139 2005-06-30  Jackson Harper  <jackson@ximian.com>
12140
12141         * Form.cs: Don't create an infinite loop when setting focus
12142         * MenuItem.cs: Don't dirty the parents if we don't have any
12143
12144 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
12145
12146         * LibSupport.cs: Rename
12147
12148 2005-06-29  Peter Bartok  <pbartok@novell.com>
12149
12150         * TextBoxBase.cs: Re-align caret after deleting a character
12151         * TextControl.cs:
12152           - DeleteChars(): Ensure that tag covers the provided position
12153           - StreamLine(): Drop reference for dropped tag
12154
12155 2005-06-29  Peter Bartok  <pbartok@novell.com> 
12156
12157         * TextControl.cs: 
12158           - Selections now work properly, anchoring at the initial location
12159             and properly extending in either direction (SetSelectionToCaret(),
12160             SetSelectionStart() and SetSelectionEnd())
12161           - No longer redraws the whole control on selection change, now
12162             calculates delta between previous and new selection and only
12163             invalidates/redraws that area
12164           - Fixed FindPos() math off-by-one errors
12165           - Changed DeleteChars() to verify the provided tag covers the
12166             provided position, selections may have a tag that doesn't cover
12167             the position if the selection is at a tag border
12168           - Fixed off-by-one errors in DeleteChars()
12169           - Added missing streamlining check in DeleteChars() to remove
12170             zero-length tags
12171           - Implemented Invalidate() method, now properly calculates exposures
12172             between two given lines/positions
12173           - Implemented SetSelection()
12174           - Obsoleted and removed FixupSelection()
12175           - Improved RecalculateDocument() logic, removing code duplication
12176
12177 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12178
12179         * LibSupport.cs: changes to match different input/output arguments.
12180
12181 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12182
12183         * LibSupport.cs: added libsupport.so init routine.
12184
12185 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
12186         
12187         * ControlBindingsCollection.cs
12188                 - Throws an exception on null datasource when adding
12189                 - Checks for duplicated bindings when adding
12190
12191 2005-06-28  Jackson Harper  <jackson@ximian.com>
12192
12193         * TreeView.cs (OnKeyDown): Support left and right properly
12194         (navigates as well as expanding and collapsing.
12195         - Add support for Multiply, this expands all the selected nodes
12196         children.
12197         - Fix some tabbing.
12198
12199 2005-06-28  Jackson Harper  <jackson@ximian.com>
12200
12201         * TreeView.cs: Implement keyboard navigation, currently supports,
12202         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
12203         support for toggling checkboxes with the space bar.
12204
12205 2005-06-28  Jackson Harper  <jackson@ximian.com>
12206
12207         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
12208         tree.
12209
12210 2005-06-28  Jackson Harper  <jackson@ximian.com>
12211
12212         * TreeView.cs: Add missing event.
12213
12214 2005-06-27  Peter Bartok  <pbartok@novell.com> 
12215
12216         * TextControl.cs:
12217           - Made line ending size configurable (now allows for counting 
12218             lineendings as \n or \r\n)
12219           - Added margin to viewport to keep caret visible on right side
12220           - Fixed translation routines for line/pos to documentpos to consider
12221             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
12222           - Fixed some line-endings to be unix style
12223           - Fixed Document.FormatText to perform it's calculations 1-based
12224           - Added descriptions for a few methods that might otherwise get 
12225             used wrong
12226           - Added NOTE section with some basic conventions to remember at 
12227             the top of the file
12228           - Major fixup for RichTextBox selection drawing:
12229             * Fixed crashes when multiple tags on a single line were selected
12230             * fixed selection box drawing not overlaying text
12231             * fixed bogus offset calculation for tags not starting at index 1
12232             * Switched behaviour from using multiple Substrings of a 
12233               StringBuilder.ToString() to using multiple 
12234               StringBuilder.ToString(start, length) statements, hoping this is
12235               faster (kept original version commented out in the code, in case
12236               original version was faster)
12237         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
12238           alignment != Left
12239         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
12240           call it as well
12241
12242 2005-06-27  Jackson Harper  <jackson@ximian.com>
12243
12244         * TabControl.cs: Move to the left and right with the arrow
12245         keys. These keys don't cycle beyond first and last like
12246         tab. Refresh all the tabs when scrolling them to the left or
12247         right.
12248
12249 2005-06-27  Jackson Harper  <jackson@ximian.com>
12250
12251         * TabControl.cs:
12252           - ToString: Added method
12253           - CreateParams: Remove TODO and comment
12254           - OnKeyDown: Cycle through bounds properly.
12255           - SelectedIndex: Scroll to the right or left if we need to
12256           display the newly selected tab.
12257
12258 2005-06-23  Jackson Harper  <jackson@ximian.com>
12259
12260         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
12261         set.
12262
12263 2005-06-23  Jackson Harper  <jackson@ximian.com>
12264
12265         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
12266         CTRL-SHIFT-TAB, and HOME, END are there any others?
12267
12268 2005-06-23  Jackson Harper  <jackson@ximian.com>
12269
12270         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
12271
12272 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12273         
12274         * DataGridTextBoxColumn.cs: fixes and enhancements
12275         * ThemeWin32Classic.cs: fixes and enhancements
12276         * DataGridBoolColumn.cs:  fixes and enhancements
12277         * DataGridDrawingLogic.cs:  fixes and enhancements
12278         * CurrencyManager.cs: fixes and enhancements
12279         * DataGrid.cs: fixes and enhancements
12280         * DataGridColumnStyle.cs:  fixes and enhancements
12281
12282 2005-06-22  Jackson Harper  <jackson@ximian.com>
12283
12284         * TabControl.cs: Add some missing methods that just call into the
12285         base. Make the TabPageCollection's IList interface behave in the
12286         same manner as the MS implementation.
12287
12288 2005-06-22  Peter Bartok  <pbartok@novell.com> 
12289
12290         * TextControl.cs: Added sanity check
12291         * TextBoxBase.cs: 
12292           - Fixed wrapping behaviour, don't set wrap on single line controls
12293             (this fixes the breakage of colordialog introduced in an earlier
12294              checkin)
12295           - Added rudimentary support for autoscrolling right-aligned controls
12296             (still needs fixing, also, center alignment scroll is missing)
12297
12298 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12299         
12300         * ScrollBar.cs: Fixes thumbpos on Maximum values
12301
12302 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
12303         
12304         * PropertyGridView.cs: Pass context information to UITypeEditors 
12305
12306 2005-06-21  Peter Bartok  <pbartok@novell.com> 
12307
12308         * TextBoxBase.cs:
12309           - Now calling PositionCaret with absolute space coordinates
12310           - Enabled vertical scrolling
12311           - Better tracking of scrollbar changes, tied into WidthChange
12312             event
12313           - Improved cursor tracking
12314           - Removed debug output
12315         * TextControl.cs:
12316           - PositionCaret coordinates are now works in absolute space, not 
12317             the canvas
12318           - Improved tracking of document size
12319           - Added events for width and height changes
12320
12321 2005-06-21  Peter Bartok  <pbartok@novell.com>
12322
12323         * Form.cs: Set focus to active control when form is activated
12324         * TextControl.cs: 
12325           - Added word-wrap functionality to RecalculateLine() 
12326           - Added some short function descriptions for VS.Net to aid in
12327             writing dependent controls
12328           - Added Caret property, returning the current coords of the caret
12329           - Added ViewPortWidth and ViewPortHeight properties
12330           - Added Wrap property
12331           - Added CaretMoved event
12332           - Removed some old debug code
12333           - Split() can now create soft splits
12334           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
12335           - Added method to format existing text
12336           - Fixed size/alignment calculations to use viewport
12337           - RecalculateDocument now can handle changing line-numbers while
12338             calculating lines
12339
12340         * TextBox.cs:
12341           - Added some wrap logic, we don't wrap if alignment is not left
12342           - Added casts for scrollbar var, base class switched types to
12343             also support RichTextBoxA
12344           - Implemented handling of scrollbar visibility flags
12345
12346         * TextBoxBase.cs:
12347           - Switched scrollbars type to RichTextBoxScrollBars to support
12348             RichTextBox
12349           - Added tracking of canvas width/height
12350           - Switched scrollbars to be not selectable (to keep focus on text)
12351           - Added central CalculateDocument() method to handle all redraw
12352             requirements
12353           - Added ReadOnly support
12354           - Added WordWrap support
12355           - Fixed handling of Enter key (we now treat it as a DialogKey)
12356           - Fixed caret positioning when h or v scroll is not zero
12357           - Fixed placing/generation of vertical scrollbar
12358           - Added CalculateScrollBars() method to allow updating scrollbar
12359             limits and visibility
12360           - Fixed handling of horizontal scroll
12361           - Added handling of vertical scroll
12362           - Implemented auto-'jump' when caret moves to close to a left or
12363             right border and there is text to be scrolled into view (currently
12364             there's the potential for a stack overflow, until a bug in
12365             scrollbar is fixed)
12366
12367 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
12368         
12369         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
12370
12371 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
12372
12373         * Mime.cs:
12374         - added inodes.
12375         - return application/x-zerosize for files with size zero
12376           (if no extension pattern matches).
12377         - check matches collection for strings too.
12378         - return only the first mime type if the name value
12379           collection has more than one mime type.
12380
12381 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
12382         
12383         * PropertyGrid.cs: Cleaned up some TODOs
12384         * PropertyGridView.cs: Added support for UITypeEditors
12385
12386 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12387         
12388         * DataGrid.cs: clears cached value
12389
12390 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12391
12392         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
12393         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
12394         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
12395         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
12396         
12397 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
12398
12399         * ThemeWin32Classic.cs: fixes colour
12400
12401 2005-06-15  Peter Bartok  <pbartok@novell.com>
12402
12403         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
12404         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
12405         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
12406         * Control.cs: Added some MWFCategory and MWFDescription attributes
12407         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
12408
12409 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
12410
12411         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
12412         usage
12413
12414 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
12415
12416         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
12417         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
12418         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
12419         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
12420         * DataGrid.cs: default datagrid settings for Default Styles, fixes
12421         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
12422
12423 2005-06-13  Jackson Harper  <jackson@ximian.com>
12424
12425         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
12426         isn't printed when the user enables dropping. (X11 does accept
12427         drops).
12428         
12429 2005-06-13  Jackson Harper  <jackson@ximian.com>
12430
12431         * TreeView.cs: Remove some TODOS.
12432
12433 2005-06-13  Jackson Harper  <jackson@ximian.com>
12434
12435         * Form.cs: Hook into the mdi framework.
12436         * MdiClient.cs: Use the base control collections add method so
12437         parents get setup correctly. Set the default back colour and dock
12438         style.
12439         * MdiChildContext.cs: New class, this bad actor handles an
12440         instance of an MDI window. Right now there is only basic
12441         support. You can drag, close, and resize windows. Minimize and
12442         Maximize are partially implemented.
12443
12444 2005-06-13  Jackson Harper  <jackson@ximian.com>
12445
12446         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
12447         freaky when both vals are negative. NOTE: There are probably other
12448         places in XplatUIX11 that this needs to be done.
12449
12450 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
12451
12452         * DataGrid.cs: implement missing methods, move KeyboardNavigation
12453         * DataGridColumnStyle.cs: fixes signature
12454
12455 2005-06-12  Jackson Harper  <jackson@ximian.com>
12456
12457         * XplatUIX11.cs: Use sizing cursors similar to the ones on
12458         windows.
12459
12460 2005-06-11  Jackson Harper  <jackson@ximian.com>
12461
12462         * StatusBarPanel.cs: Signature cleanups. Implement
12463         BeginInit/EndInit.
12464
12465 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
12466
12467         * DataGridTextBoxColumn.cs: Honors aligment
12468         * GridColumnStylesCollection.cs: Contains is case unsensitive
12469         * GridTableStylesCollection.cs: several fixes
12470         * DataGridTableStyle.cs: default column creation
12471         * DataGridDrawingLogic.cs: fixes
12472         * CurrencyManager.cs: ListName property
12473         * DataGrid.cs: multiple styles support
12474         * DataGridColumnStyle.cs: fixes
12475         
12476
12477 2005-06-10  Peter Bartok  <pbartok@novell.com>
12478
12479         * Control.cs(Select): Moved SetFocus call to avoid potential
12480           loops if controls change the active control when getting focus
12481         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
12482           the up/down buttons
12483
12484 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
12485
12486         * ImageListConverter.cs: Implemented
12487
12488 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12489
12490         * MonthCalendar.cs: Wired in NumericUpDown control for year
12491
12492 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12493
12494         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
12495           DoubleClick events, since they are not meant to be fired.
12496
12497 2005-06-09  Peter Bartok  <pbartok@novell.com>
12498
12499         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
12500           Jonathan's standalone controls into MWF, implemented missing
12501           events, attributes and methods; added xxxAccessible classes
12502         * AccessibleObject.cs: Made fields internal so other classes
12503           can change them if needed
12504
12505 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
12506
12507         * UpDownBase.cs: Complete implementation
12508         * NumericUpDown.cs: Complete implementation
12509         * DomainUpDown.cs: Complete implementation
12510
12511 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
12512
12513         * DataGridTextBoxColumn.cs: drawing fixes
12514         * DataGridCell.cs: fixes ToString method to match MSNet
12515         * DataGridTableStyle.cs: fixes
12516         * DataGridBoolColumn.cs: fixes, drawing
12517         * DataGridDrawingLogic.cs: fixes, new methods
12518         * DataGridTextBox.cs: Keyboard and fixes
12519         * DataGrid.cs:
12520                 - Keyboard navigation
12521                 - Scrolling fixes
12522                 - Row selection (single, multiple, deletion, etc)
12523                 - Lots of fixes
12524         
12525 2005-06-07  Jackson Harper  <jackson@ximian.com>
12526
12527         * ThemeWin32Classic.cs: Clear the background area when drawing
12528         buttons.
12529
12530 2005-06-06  Peter Bartok  <pbartok@novell.com>
12531
12532         * ImageListStreamer.cs: Fixed signature for GetData
12533         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
12534         * ComboBox.cs:
12535           - Added missing ChildAccessibleObject class
12536           - Added missing OnXXXFocus overrides, switched to using those
12537             instead of the event handler
12538         * Control.cs:
12539           - Added Parent property for ControlAccessibleObject
12540           - Fixed signatures
12541           - Fixed attributes
12542           - Added ResetBindings()
12543         * ListBindingConverter.cs: Implemented some methods
12544         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
12545         * ImageList.cs: Implemented basic handle scheme, removed TODOs
12546         * ContainerControl.cs: Fixed signature, now subscribing to the
12547           ControlRemoved event instead of overriding the handler, LAMESPEC
12548         * CurrencyManager.cs: Added missing attribute
12549         * MonthCalendar.cs: Added missing properties
12550
12551 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12552
12553         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
12554         
12555 2005-06-06  Gaurav Vaish and Ankit Jain
12556
12557         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
12558         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
12559         
12560 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12561
12562         * Control.cs: fixes CreateParams Width / Height.
12563
12564 2005-06-05  Peter Bartok  <pbartok@novell.com>
12565
12566         * Win32DnD.cs: Removed compilation warnings
12567
12568 2005-06-05  Peter Bartok  <pbartok@novell.com>
12569
12570         * Control.cs (CreateParams): Since we don't know if one of the
12571           properties we use is overridden, lets make sure if we fail accessing
12572           we continue with a backup plan
12573
12574 2005-06-05  Peter Bartok  <pbartok@novell.com>
12575
12576         * Win32DnD.cs:
12577           - Removed debug output
12578           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
12579             struct
12580           - Plugged resource leak
12581         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
12582           MS size
12583
12584 2005-06-05  Peter Bartok  <pbartok@novell.com>
12585
12586         * XplatUIWin32.cs: Removed DnD code
12587         * Win32DnD.cs: Implemented drop source and drop target functionality
12588
12589 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12590
12591         * UpDownBase.cs: remove duplicate addition of event, enable some code
12592         that was commented out.
12593         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
12594         Validate input when a key is pressed. It works fine now for every
12595         combination of Hexadecimal. Only missing some drawing love when sharing
12596         space with other controls.
12597
12598 2005-06-04  Peter Bartok  <pbartok@novell.com>
12599
12600         * Control.cs:
12601           - We need to pass a window for DragDrop, so enable callback events
12602           - Added DnD callback events when being a DragSource
12603         * XplatUI.cs (StartDrag): Added window handle argument
12604         * XplatUIDriver.cs (StartDrag): Added window handle argument
12605         * QueryContinueDragEventArgs: Made fields internally accessible so
12606           drivers can set them
12607         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
12608           can set them
12609
12610 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
12611
12612         * DataGridTextBoxColumn.cs: column text editing
12613         * DataGridTableStyle.cs: Respect columns styles created by the user
12614         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
12615         * DataGridBoolColumn.cs: bool column editing
12616         * DataGrid.cs: fixes to scrolling, properties, etc
12617         * DataGridTextBox.cs: handle keyboard
12618         * DataGridColumnStyle.cs: fixes
12619
12620 2005-06-02  Jackson Harper  <jackson@ximian.com>
12621
12622         * ImageListStreamer.cs: Somewhat broken implementation of
12623         GetObjectData. The RLE needs some work to match MS properly.
12624
12625 2005-06-02  Jackson Harper  <jackson@ximian.com>
12626
12627         * X11Dnd.cs: Attempting to keep at least one file in MWF
12628         monostyled.
12629
12630 2005-06-02  Peter Bartok  <pbartok@novell.com>
12631
12632         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
12633           that way
12634
12635 2005-06-02  Peter Bartok  <pbartok@novell.com>
12636
12637         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
12638         * XplatUI.cs: Added DoDragDrop() method
12639         * XplatUIDriver.cs: Added DoDragDrop() method
12640
12641 2005-06-02  Jackson Harper  <jackson@ximian.com>
12642
12643         * Splitter.cs: Implement BorderStyle.
12644
12645 2005-06-02  Jackson Harper  <jackson@ximian.com>
12646
12647         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
12648         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
12649         X11 using XDND.
12650
12651 2005-06-02  Peter Bartok  <pbartok@novell.com>
12652
12653         * DataObject.cs:
12654           - Added Data setter
12655           - Fixed broken insertion code for SetData, now also
12656             overwrites any existing entry of the same format name
12657         * Hwnd.cs: Added list of pointers that automatically gets
12658           freed when the window is disposed
12659         * XplatUI.cs: Call driver initialization method when loading
12660           a driver
12661         * Control.cs:
12662           - OnDragLeave takes EventArgs, not DragEventArgs
12663           - Added setting of WS_EX_ACCEPTFILES style when dropping is
12664             supported
12665           - Forces style update when drop state changes
12666         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
12667           not perfect since we cannot (yet) call the IDataObject.GetData()
12668           method, we keep getting 0x80004005 error, dunno why)
12669
12670 2005-06-02  Peter Bartok  <pbartok@novell.com>
12671
12672         * DragEventArgs.cs: Make fields internal so we can cache the
12673           object and re-set the fields from XplatUI
12674
12675 2005-06-02  Jackson Harper  <jackson@ximian.com>
12676
12677         * Control.cs: Add some internal methods so the DnD subsystem can
12678         raise DnD events. Also call into the driver when AllowDrop is set.
12679         * XplatUI.cs:
12680         * XplatUIDriver.cs: New method for setting whether or not a window
12681         is allowed to accept drag and drop messages.
12682                 
12683 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
12684         
12685         * ScrollBar.cs: Make sure that values sent in Scroll events
12686         are always between Maximum and Minimum.
12687
12688 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
12689
12690         * Menu.cs: Call MenuChanged when menuitem visibility has been
12691         changed.
12692         * MenuItem.cs: Rebuild menu when item is (not) visible.
12693         * MainMenu.cs: MainMenu has special MenuChanged.
12694         * Theme.cs: Caption and FrameBorderSize are not fixed.
12695         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
12696         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
12697         * XplatUIX11.cs,
12698         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
12699         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
12700
12701 2005-05-30  Jackson Harper  <jackson@ximian.com>
12702
12703         * DataFormat.cs: We can't statically initialize this stuff because
12704         it calls into the xplatui and could create a loop. So we lazy init
12705         it.
12706
12707 2005-05-28  Jackson Harper  <jackson@ximian.com>
12708
12709         * Control.cs: Proper implementation of Product(Name/Version).
12710
12711 2005-05-27  Jackson Harper  <jackson@ximian.com>
12712
12713         * DataObject.cs: Dont crash if no data is found.
12714
12715 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
12716         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
12717                 as per status page, guessing it should be set to true
12718
12719 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
12720
12721         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
12722         * DataGridTableStyle.cs: set proper formatting text, def header text
12723         * ThemeWin32Classic.cs: new themable paramaters
12724         * DataGridBoolColumn.cs: paint check box, get data, fixes
12725         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
12726         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
12727         * DataGridColumnStyle.cs: fixes
12728         * Theme.cs: new themable paramaters
12729                 
12730 2005-05-26  Peter Bartok  <pbartok@novell.com>
12731
12732         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
12733
12734 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12735         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
12736
12737 2005-05-24  Peter Bartok  <pbartok@novell.com>
12738
12739         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
12740           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
12741           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
12742           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
12743           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
12744           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
12745           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
12746           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
12747           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
12748           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
12749           missing attributes, etc
12750         * DataGridPreferredColumnWidthTypeConverter.cs: Added
12751
12752 2005-05-24  Peter Bartok  <pbartok@novell.com>
12753
12754         * Help.cs: Added, implemented trivial functions, throws up MessageBox
12755           when user tries to get help
12756         * DataObject.cs, DataFormats.cs, LinkArea.cs,
12757           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
12758           to suppress warnings
12759         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
12760           avoid unreachable code warning
12761
12762 2005-05-20  Peter Bartok  <pbartok@novell.com>
12763
12764         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
12765
12766 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12767
12768         * DataGridTextBoxColumn.cs: Basic painting methods
12769         * DataGridTableStyle.cs: Set table style in the column
12770         * ThemeWin32Classic.cs: Use Theme for colors
12771         * DataGridDrawingLogic.cs: Implement more drawing
12772         * DataGrid.cs: drawing, theming, enhacements, fixes
12773         * DataGridColumnStyle.cs: fixes, drawing
12774         * Theme.cs: theming for Datagrid
12775
12776 2005-05-20  Peter Bartok  <pbartok@novell.com>
12777
12778         * Cursor.cs: Implemented GetObjectData() method
12779
12780 2005-05-20  Peter Bartok  <pbartok@novell.com>
12781
12782         * Cursors.cs: Added setting of cursor name
12783         * Cursor.cs:
12784           - Implemented constructors
12785           - Implemented Draw and DrawStretched
12786           - Implemented Current property
12787           - Implemented == and != operators
12788           - Implemented Dispose()
12789           - Implemented ToString
12790           - Added missing attributes
12791         * XplatUIX11.cs:
12792           - Added missing reset for OverrideCursor when DoEvents is called
12793           - Fixed creation of cursor, logic was wrong
12794         * XplatUIWin32.cs:
12795           - Added missing reset for OverrideCursor when DoEvents is called
12796           - Fixed creation of cursor, bit arrays were swapped
12797         * Clipboard.cs: Removed obsolete MonoTODO attribute
12798
12799 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12800
12801         * ComboBox.cs: fixes OnSelectedItemChanged
12802         * ControlBindingsCollection.cs: fixes item range check
12803
12804 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12805
12806         * UpDownBase.cs:
12807                 - Calc preferred height properly
12808                 - Implement missing properties
12809                 
12810         * NumericUpDown.cs: Implement missing events
12811
12812 2005-05-19  Jackson Harper  <jackson@ximian.com>
12813
12814         * TabControl.cs: New method that resizes the tab pages before
12815         redrawing them. This as needed as the control is double buffered
12816         and sizing will not be recalculated unless ResizeTabPages is
12817         called.
12818         * TabPage.cs: Set base.Text instead of Text in the constructor so
12819         that UpdateOwner does not get called. Use the new Redraw method of
12820         TabControl instead of Refresh so the sizing is recalculated.
12821         * ThemeWin32Classic.cs: Draw the text for button tabs.
12822
12823 2005-05-19  Jackson Harper  <jackson@ximian.com>
12824
12825         * Control.cs: Paint control background images. Fix typo where
12826         PaintControlBackground was not getting called correctly.
12827
12828 2005-05-19  Peter Bartok  <pbartok@novell.com>
12829
12830         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
12831           I can investigate, apparently I broke FileDialog
12832
12833 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
12834
12835         * AxHost.cs: Some simple properties.
12836         * Control.cs: window must be accessible after ctor.
12837         * Form.cs: Added TransparencyKey property.
12838         * TextBoxBase.cs: Implemented Clear. Text property can be null.
12839         * XplatUIWin32.cs: SetBorderStyle implemented.
12840
12841 2005-05-18  Peter Bartok  <pbartok@novell.com>
12842
12843         * DataObject.cs: Entries are not global but particular to the
12844           DataObject, now it behaves that way
12845         * XplatUIWin32.cs: Implemented Clipboard methods
12846         * Clipboard.cs: Implemented
12847         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
12848         * XplatUIOSX.cs: Updated to final clipboard prototypes
12849         * XplatUIX11.cs: Implemented Clipboard methods
12850         * XplatUIDriver.cs: Updated to final clipboard prototypes
12851         * XplatUIStructs.cs:
12852           - Added BITMAPINFOHEADER struct
12853           - Added ClipboardFormats enum
12854         * X11Structs.cs:
12855           - Added ClipboardStruct
12856           - Added Atom enum items for clipboard types
12857           - Fixed atom types for Selection event structures
12858         * DataFormats.cs:
12859           - Added internal properties and methods for drivers to enumerate
12860             all known formats
12861           - Switched initialization method to allow drivers to assign their
12862             own IDs even for the MS predefined clipboard IDs
12863         * XplatUI.cs: Updated to final clipboard interface
12864
12865 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12866         * PropertyGridView.cs: Fixed compiler warnings.
12867
12868 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12869         * PropertyGrid.cs: Added some event calls
12870         * PropertyGridView.cs: Change drawing code to use double buffering
12871         * PropertyGridTextBox.cs: Changed Text property name
12872         * GridItem.cs: Added Bounds property.
12873         * GridEntry.cs: Added Bounds property.
12874
12875 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
12876
12877         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
12878         since GetType() may not return the correct type if the object is
12879         a remoting proxy.
12880
12881 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
12882
12883         * TreeNodeCollection.cs: fixes get/set item ranges
12884         
12885 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12886
12887         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
12888                 
12889 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12890
12891         * ComboBox.cs: Fix item range comparation
12892         * ListView.cs: Fix item range comparation
12893
12894 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12895
12896         * FontDialog.cs:
12897           - Clear example panel when OnPaint is called
12898           - Better solution for displaying the example panel text
12899           - Select default indexes in the ListBoxes
12900
12901 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12902
12903         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
12904
12905 2005-05-11  Peter Bartok  <pbartok@novell.com>
12906
12907         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
12908         * SelectionRangeConverter.cs: Implemented
12909         * PropertyGrid.cs: Fixed attribute value
12910         * Control.cs:
12911           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
12912           - Added Sebastien Pouliot's CAS Stack Propagation fixes
12913         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
12914           that's common to all drivers. First methods to go there are
12915           Sebastien Pouliot's CAS Stack Propagation helper methods
12916         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
12917           Sebastien Pouliot for CAS Stack Propagation
12918
12919 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12920
12921         * OSXStructs.cs:
12922           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
12923
12924 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
12925
12926         * DataGridTextBoxColumn.cs: fixed some members
12927         * GridColumnStylesCollection.cs: indexed column is case insensitive
12928         * DataGridTableStyle.cs: fixes
12929         * ThemeWin32Classic.cs: add new theme parameter
12930         * Theme.cs: add new theme parameter
12931         * DataGridDrawingLogic.cs: Datagrid's drawing logic
12932         * DataGrid.cs: fixes, new internal properties, etc.
12933         * DataGridColumnStyle.cs: allows to set grid value
12934         *
12935
12936 2005-05-10  Peter Bartok  <pbartok@novell.com>
12937
12938         * AccessibleObject.cs:
12939           - Removed MonoTODO attribute on help, method is correct
12940           - Fixed Bounds property
12941         * AxHost.cs: Moved MonoTODO
12942         * ButtonBase.cs: Now setting AccessibleObject properties
12943         * RadioButton.cs: Setting proper AccessibleObject role
12944         * CheckBox.cs: Setting proper AccessibleObject role
12945         * ControlBindingsCollection.cs: Added properties, methods and attributes
12946         * DataFormats.cs: Fixed awkward internal API, and changed to enable
12947           userdefined DataFormats.Format items as well
12948         * ListControl.cs: Removed data_member from the public eye
12949         * OpenFileDialog.cs:
12950           - Made class sealed
12951           - Added missing attributes
12952         * SaveFileDialog.cs: Added missing attributes
12953         * ImageListStreamer.cs: Fixed code that caused warnings
12954         * LinkLabel.cs: Removed unreachable code
12955         * TreeView.cs: Fixed code that caused warnings
12956         * PropertyGridView.cs: Fixed code that caused warnings
12957         * GridColumnStylesCollection.cs: Added missing attributes
12958         * GridTableStylesCollection: Added missing attribute
12959         * PropertyManager: Added .ctor
12960         * SecurityIDType: Added
12961         * DataObject.cs: Implemented class
12962         * LinkArea.cs: Added missing attribute
12963
12964 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
12965
12966         * RadioButton.cs: call base method to allow to fire OnClick event
12967         * UpDownBase.cs: OnMouseUp call base method
12968         * CheckedListBox.cs: call base method before returning
12969         * TrackBar.cs: call base method before returning
12970         
12971
12972 2005-05-10  Peter Bartok  <pbartok@novell.com>
12973
12974         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
12975           for messages
12976
12977 2005-05-10  Peter Bartok  <pbartok@novell.com>
12978
12979         * DataFormats.cs: Implemented
12980         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
12981           XplatUIX11.cs: Added Clipboard APIs
12982         * XplatUIWin32.cs: Implemented Clipboard APIs
12983         * FolderBrowserDialog.cs: Added missing event, attributes
12984
12985 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
12986
12987         * CheckBox.cs: call base method to allow to fire OnClick event
12988
12989 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
12990
12991         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
12992
12993 2005-05-06  Peter Bartok  <pbartok@novell.com>
12994
12995         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
12996         * Screen.cs: Implemented
12997         * HelpNavigator.cs: Added
12998         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
12999           property
13000         * HelpProvider.cs: Implemented all we can do until we have a CHM
13001           help library (which means that "What's This" does work now)
13002
13003 2005-05-06  Jackson Harper  <jackson@ximian.com>
13004
13005         * XplatUIX11.cs: Fix waking up the main loop.
13006                 
13007 2005-05-05  Peter Bartok  <pbartok@novell.com>
13008
13009         * XplatUI.cs: Updated revision
13010         * Form.cs: Removed enless loop
13011         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
13012         * Label.cs (OnPaint): Added call to base.OnPaint()
13013         * ToolTip.cs: Made ToolTipWindow reusable for other controls
13014         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
13015         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
13016         * AxHost.cs: Added
13017         * ButtonBase.cs: Moved base.OnPaint() call to end of method
13018         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
13019           to ToolTip.ToolTipWindow for drawing and size methods; this allows
13020           reuse of ToolTipWindow by other controls
13021         * SizeGrip.cs: Moved base.OnPaint() call to end of method
13022         * XplatUIX11.cs: Now clipping drawing area (experimental)
13023         * PictureBox.cs: Moved base.OnPaint() call to end of method
13024         * Theme.cs: Fixed ToolTip abstracts to match new format
13025         * ErrorProvider.cs: Implemented
13026
13027 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
13028
13029         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
13030         * LinkLabel.cs:
13031                 - Adds cursors
13032                 - Handles focus
13033                 - Implements LinkBehavior
13034                 - Fixes many issues
13035
13036 2005-05-03  Jackson Harper  <jackson@ximian.com>
13037
13038         * ListView.cs: Calculate the scrollbar positioning on resize and
13039         paint, so they get put in the correct place.
13040
13041 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
13042
13043         * ColorDialogs.cs: The small color panels are now handled by
13044           SmallColorControl. This fixes drawing of the focus rectangle
13045           and adds a 3D border.
13046
13047 2005-05-03  Peter Bartok  <pbartok@novell.com>
13048
13049         * Control.cs: Modified version of Jonathan Chamber's fix for
13050           double-buffering
13051
13052 2005-05-03  Jackson Harper  <jackson@ximian.com>
13053
13054         * ListView.cs: Remove redraw variable. Control now handles whether
13055         or not a redraw needs to be done, and will only raise the paint
13056         event if redrawing is needed.
13057
13058 2005-05-03  Jackson Harper  <jackson@ximian.com>
13059
13060         * Splitter.cs: No decorations for the splitter form. Cache the
13061         hatch brush.
13062
13063 2005-05-03  Jackson Harper  <jackson@ximian.com>
13064
13065         * TreeView.cs: Use dashed lines to connect nodes. Use the
13066         ControlPaint method for drawing the focus rect instead of doing
13067         that in treeview.
13068
13069 2005-05-02  Peter Bartok  <pbartok@novell.com>
13070
13071         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
13072
13073 2005-04-29  Jackson Harper  <jackson@ximian.com>
13074
13075         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
13076         entire image buffer. Just clear the clipping rectangle.
13077
13078 2005-04-29  Jackson Harper  <jackson@ximian.com>
13079
13080         * ThemeWin32Classic.cs: Don't draw list view items that are
13081         outside the clipping rectangle.
13082
13083 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
13084
13085         * ListBox.cs: added horizontal item scroll
13086
13087 2005-04-29  Jackson Harper  <jackson@ximian.com>
13088
13089         * ThemeWin32Classic.cs: Remove some old debug code that was
13090         causing flicker with the new double buffering code.
13091
13092 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
13093
13094         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
13095         behave like combobox and comboboxlist (still not sure if this is
13096         correct though).
13097
13098 2005-04-28  Jackson Harper  <jackson@ximian.com>
13099
13100         * ThemeWin32Classic.cs: Don't fill the middle of progress
13101         bars. This fills areas outside of the clip bounds that don't need
13102         to be filled.
13103
13104 2005-04-28  Jackson Harper  <jackson@ximian.com>
13105
13106         * Control.cs: Don't expose functionality to touch the image buffers.
13107         * ProgressBar.cs:
13108         * ListView.cs: We do not need to (and no longer can) manipulate
13109         the image buffers directly. All of this is handled by Control.
13110
13111 2005-04-28  Peter Bartok  <pbartok@novell.com>
13112
13113         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13114           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
13115           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
13116
13117 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13118
13119         * Combobox:
13120                 - Adjust control's height for non-simple comboboxes (bug fix)
13121                 - Remove dead code
13122         * MenuAPI.cs: remove unused var
13123         * ScrollBar.cs: remove unsed var
13124                  
13125         * ListBox.cs: unselect items when clearing
13126
13127 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13128
13129         * ListControl.cs: honors OnPositionChanged and default Selected Item
13130         * ListBox.cs: unselect items when clearing
13131
13132 2005-04-27  Jackson Harper  <jackson@ximian.com>
13133
13134         * X11Keyboard.cs: Initialize a default keyboard and give a warning
13135         if a "correct" keyboard is not found. This will make us not crash,
13136         but might give some users bad keyboard layouts...seems to be the
13137         same thing rewind does.
13138
13139 2005-04-27  Jackson Harper  <jackson@ximian.com>
13140
13141         * BindingManagerBase.cs: Attach the current/position changed
13142         handlers to their respective events.
13143
13144 2005-04-27  Jackson Harper  <jackson@ximian.com>
13145
13146         * Control.cs: Make sure that the first WM_PAINT does a full draw,
13147         not just a blit.
13148         * ThemeWin32Classic.cs: Don't fill the background for picture
13149         boxes. This could overright user drawing.
13150         * ComboBox.cs: Just fill the clipping rect not the entire client
13151         rect when drawing the background. This prevents pieces of the
13152         image buffer from getting overwritten and is theoretically faster.
13153
13154 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
13155
13156         * ComboBox.cs: Databinding support fixes, fire missing events
13157         * ListControl.cs: implement missing methods and properties, fixes
13158         * ThemeWin32Classic.cs: Databiding support on Drawing
13159         * CheckedListBox.cs: Databinding support fixes, fire missing events
13160         * ListBox.cs: Databinding support fixes, fire missing events
13161         
13162 2005-04-25  Peter Bartok  <pbartok@novell.com>
13163
13164         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
13165
13166 2005-04-25  Jackson Harper  <jackson@ximian.com>
13167
13168         * TreeView.cs: Use the horizontal scrollbars height not width when
13169         determining how much of the client area is available.
13170
13171 2005-04-25  Jackson Harper  <jackson@ximian.com>
13172
13173         * Control.cs: Double buffering is handled differently now. As per
13174         the spec, the extra buffer is created in the WM_PAINT message and
13175         passed down to the control's drawing code.
13176         * GroupBox.cs:
13177         * Label.cs:
13178         * CheckBox.cs:
13179         * ProgressBar.cs:
13180         * RadioButton.cs:
13181         * ColorDialog.cs:
13182         * ComboBox.cs:
13183         * PropertyGridView.cs:
13184         * UpDownBase.cs:
13185         * MessageBox.cs:
13186         * MenuAPI.cs:
13187         * ListView.cs:
13188         * ButtonBase.cs:
13189         * SizeGrip.cs:
13190         * ScrollBar.cs:
13191         * ListBox.cs:
13192         * TrackBar.cs:
13193         * ToolBar.cs:
13194         * PictureBox.cs:
13195         * DateTimePicker.cs:
13196         * StatusBar.cs:
13197         * TreeView.cs: Update to new double buffering system.
13198         * MonthCalendar.cs: Uncomment block, as Capture is now
13199         working. Update to new double buffering
13200         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
13201         * PaintEventArgs.cs: New internal method allows us to set the
13202         graphics object. This is used for double buffering.
13203         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
13204         rectangle. The internal paint_area var has been removed from
13205         StatusBar. The clipping rect should be used instead.
13206         * Theme.cs: Give the PictureBox drawing method a clipping rect.
13207         * TabPage.cs: The RefreshTabs method was removed, so just call the
13208         tab controls Refresh method now.
13209         * TabControl.cs: Update to new double buffering. Make sure the
13210         handle is created before sizing the tab pages, otherwise we will
13211         get stuck in a loop.
13212
13213 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
13214
13215         * LinkLabel.cs: Fix typo, bug #74719; patch
13216           from Borja Sanchez Zamorano
13217
13218 2005-04-22  Jackson Harper  <jackson@ximian.com>
13219
13220         * TreeNode.cs: Implement Handle stuff.
13221         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
13222
13223 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
13224
13225         * DataGridTextBoxColumn.cs: call base constructors, fixes
13226         * GridColumnStylesCollection.cs: missing events, methods, and functionality
13227         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
13228         * DataGridTableStyle.cs: implements create default column styles
13229         * DataGridBoolColumn.cs: which types can handle
13230         * DataGrid.cs: missing methods, fixes, new functionality
13231         * DataGridColumnStyle.cs: fixes
13232
13233 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
13234         * FolderBrowserDialog.cs:
13235         - Use a thread to fill the TreeView
13236         - Adjusted some sizes
13237
13238 2005-04-19  Peter Bartok  <pbartok@novell.com>
13239
13240         * LinkLabel.cs: (Re-)create the pieces when setting the Text
13241           property. Fixes #74360.
13242
13243 2005-04-19  Jackson Harper  <jackson@ximian.com>
13244
13245         * XEventQueue.cs: Lock when getting the lockqueue size.
13246         * PictureBox.cs: Call base OnPaint
13247         
13248 2005-04-19  Peter Bartok  <pbartok@novell.com>
13249
13250         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
13251           messages were no longer being processed (this broke BeginInvoke)
13252
13253           
13254 2005-04-18  Jackson Harper  <jackson@ximian.com>
13255
13256         * TreeView.cs: buglet that caused node images to get drawn
13257         regardless of whether or not they were in the clipping rectangle.
13258
13259 2005-04-18  Jackson Harper  <jackson@ximian.com>
13260
13261         * CurrencyManager.cs: There are four rules for GetItemProperties:
13262         - If the type is an array use the element type of the array
13263         - If the type is a typed list, use the type
13264         - If the list contains an Item property that is not an object, use
13265         that property
13266         - use the first element of the list if there are any elements in
13267         the list.
13268         
13269 2005-04-17  Jackson Harper  <jackson@ximian.oom>
13270
13271         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
13272         click. This handles offsets for scrolling properly and reduces
13273         memory. Also fixed GetNode to not offset now that TopNode works
13274         properly.
13275         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
13276         
13277 2005-04-17  Jackson Harper  <jackson@ximian.com>
13278
13279         * CursorConverter.cs: Initial implementation.
13280
13281 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13282
13283         * ListControl.cs: work towards complex data binding support on ListControl
13284         * CurrencyManager.cs: work towards complex data binding support on ListControl
13285         * ListBox.cs: work towards complex data binding support on ListControl
13286
13287
13288 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13289
13290         * GridTableStylesCollection.cs: fixes name and constructor
13291         * DataGridTableStyle.cs: fixes
13292         * DataGridBoolColumn.cs: fixes names and constructors
13293         * DataGrid.cs: define methods and properties. Some init implementations
13294         * DataGridCell.cs: define methods and properties. Some init implementations
13295         * GridTablesFactory.cs: Define methods and properties
13296
13297 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
13298
13299         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
13300         graphics port changes.  We still want the coordinates in global screen
13301         coordinates.
13302
13303 2005-04-14  Jackson Harper  <jackson@ximian.com>
13304
13305         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
13306         check plus minus or checkbox clicks unless those features are enabled.
13307
13308 2005-04-14  Jackson Harper  <jackson@ximian.com>
13309
13310         * TreeView.cs: Add methods for setting the top and bottom visible
13311         nodes. TreeNode::EnsureVisible uses these methods.
13312         * TreeNode.cs: Implement EnsureVisible
13313
13314 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
13315
13316         * Form.cs: Pospone menu assignation if the window has not been created yet
13317         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
13318         size and position
13319
13320 2005-04-12  Jackson Harper  <jackson@ximian.com>
13321
13322         * TreeView.cs: Set the TopNode properly when scrolling
13323         occurs. This has the added benifit of reducing the amount of
13324         walking that needs to be done when drawing. Also removed an old
13325         misleading TODO.
13326         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
13327         
13328 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
13329
13330         * Timer.cs: fixes interval setting when the timer is already enabled
13331         
13332 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
13333
13334         * FolderBrowserDialog.cs: First approach
13335
13336 2005-04-09  Peter Bartok  <pbartok@novell.com>
13337
13338         * FolderBrowserDialog: Added
13339
13340 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
13341
13342         * LinkLabel.cs: move drawing code into the theme
13343         * ThemeWin32Classic.cs: drawing code and painting background bugfix
13344         * Theme.cs: define DrawLinkLabel method
13345
13346 2005-04-05  Jackson Harper  <jackson@ximian.com>
13347
13348         * BindingContext.cs: Use weak references so these bad actors don't
13349         stay alive longer then they need to.
13350
13351 2005-04-05  Jackson Harper  <jackson@ximian.com>
13352
13353         * ListControl.cs: Basic implementation of complex databinding.
13354         * ComboBox.cs:
13355         * ListBox.cs: Add calls to ListControl databinding methods.
13356
13357 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
13358
13359         * FileDialog.cs:
13360           - Don't change PopupButtonState to Normal when the
13361             PopupButton gets pressed several times.
13362           - Renamed ButtonPanel to PopupButtonPanel
13363
13364 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
13365
13366         * ColorDialog.cs: Use cached objects instead of creating them
13367         * LinkLabel.cs: Use cached objects instead of creating them
13368         * Splitter.cs: Use cached objects instead of creating them
13369         * FontDialog.cs: Use cached objects instead of creating them
13370         * PropertyGridView.cs: Use cached objects instead of creating them
13371         * MessageBox.cs: Use cached objects instead of creating them
13372         * FileDialog.cs: Use cached objects instead of creating them
13373         * ThemeWin32Classic.cs: Use cached objects instead of creating them
13374         * TreeView.cs: Use cached objects instead of creating them
13375         
13376 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
13377
13378         * Control.cs: use Equals to compare the font since no == op
13379         * ScrollBar.cs: use Equals to compare the font since no == op
13380
13381 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
13382
13383         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
13384
13385 2005-04-01  Jackson Harper  <jackson@ximian.com>
13386
13387         * Binding.cs: Implement IsBinding.
13388         * BindingManagerBase.cs:
13389         * PropertyManager.cs:
13390         * CurrencyManager.cs: Add IsSuspended property.
13391
13392 2005-04-01  Jackson Harper  <jackson@ximian.com>
13393
13394         * Binding.cs: Had some IsAssignableFrom calls backwards.
13395
13396 2005-04-01  Jackson Harper  <jackson@ximian.com>
13397
13398         * Binding.cs: Handle null data members when pulling data.
13399         * PropertyManager.cs: Handle the data member being a property that
13400         does not exist.
13401
13402 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13403
13404         * DataGridTextBoxColumn.cs: fixes signature
13405         * DataGrid.cs: calls right constructor
13406
13407 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13408
13409         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
13410         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
13411         * GridTableStylesCollection.cs: implements GridTableStylesCollection
13412         * DataGridTableStyle.cs: implements DataGridTableStyle
13413         * DataGridBoolColumn.cs: implements DataGridBoolColumn
13414         * DataGridTextBox.cs: implements DataGridTextBox
13415         * DataGridColumnStyle.cs: implements DataGridColumnStyle
13416
13417 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
13418
13419         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
13420
13421 2005-03-29  Peter Bartok  <pbartok@novell.com>
13422
13423         * Application.cs:
13424           - Properly implemented CompanyName property
13425           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
13426             returns a path that includes CompanyName, ProductName and
13427             Version (fixes bug #70330)
13428
13429 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
13430
13431         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
13432           fixes bug #72588.
13433
13434 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13435
13436         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
13437         
13438           - Added ReadOnly CheckBox
13439           - Further refactoring: moved some code from Open-/SaveFileDialog
13440             to FileDialog
13441
13442 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13443
13444         * OpenFileDialog.cs: Fixed CheckFileExists
13445         * FileDialog.cs:
13446           Moved FileView and DirComboBox outside FileDialog class.
13447           They can now be used outside FileDialog
13448
13449 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13450
13451         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
13452         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
13453
13454 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13455
13456         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13457           - Added missing CreatePrompt property in SaveDialog
13458           - Overall SaveDialog handling should be better now
13459           - Added non standard ShowHiddenFiles property
13460           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
13461           - Added InitialDirectory and RestoreDirectory support
13462
13463 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
13464
13465         * FileDialog.cs: Made dirComboBox usable
13466
13467 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
13468
13469         * FileDialog.cs: Added Filter support (case sensitiv)
13470
13471 2005-03-24  Jackson Harper  <jackson@ximian.com>
13472
13473         * TabControl.cs: Need a couple more pixels for the lines.
13474
13475 2005-03-23  Jackson Harper  <jackson@ximian.com>
13476
13477         * TabControl.cs: Give the tab page focus when it is selected.
13478
13479 2005-03-23  Jackson Harper  <jackson@ximian.com>
13480
13481         * TabControl.cs: Account for the drawing of tabs borders when
13482         invalidating. If the slider was clicked dont do click detection on
13483         the tabs.
13484
13485 2005-03-23  Jackson Harper  <jackson@ximian.com>
13486
13487         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
13488
13489 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
13490
13491         * CategoryGridEntry.cs: Added
13492         * GridItem.cs: Added helper properties
13493         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
13494         * GridEntry.cs: Updated code for collection
13495         * PropertyGrid.cs: Cleaned up some formatting
13496         * PropertyGridView.cs: Added drop down functionality for enums.
13497         * GridItemCollection.cs: Added enumerator logic
13498         * PropertyGridEntry.cs: Added
13499
13500 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13501
13502         * FileDialog.cs:
13503           - Removed unnecessary commented code
13504           - Fixed handling for entering the filename manually in the combobox
13505
13506 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13507
13508         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
13509
13510 2005-03-18  Peter Bartok  <pbartok@novell.com>
13511
13512         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
13513           them being touching the border
13514
13515 2005-03-18  Peter Bartok  <pbartok@novell.com>
13516
13517         * TextControl.cs: Quick hack to center text better
13518
13519 2005-03-18  Peter Bartok  <pbartok@novell.com>
13520
13521         * ControlPaint.cs:
13522           - Don't throw NotImplemented exceptions, just print a notice once
13523             instead (requested by Miguel). This makes running existing SWF
13524             apps a bit easier
13525         * Control.cs:
13526           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
13527           - Added context menu trigger on right click
13528         * Panel.cs: Trigger invalidate on resize
13529         * StatusBar.cs:
13530           - Removed old double-buffer drawing
13531           - Added ResizeRedraw style to force proper update of statusbar
13532         * ListView.cs:
13533           - Removed debug output
13534         * ThemeWin32Classic.cs:
13535           - Fixed drawing of status bar, now draws Text property if there
13536             are no defined panels
13537
13538 2005-03-18  Jackson Harper  <jackson@ximian.com>
13539
13540         * ImageList.cs: When the image stream is set pull all the images
13541         from it.
13542         * ImageListStreamer.cs: Implement reading image list streams.
13543
13544 2005-03-18  Peter Bartok  <pbartok@novell.com>
13545
13546         * ThemeWin32Classic.cs (DrawPictureBox):
13547           - Fixed calculations for centered drawing
13548           - Fixed drawing for normal mode, not scaling the image on normal
13549
13550 2005-03-18  Peter Bartok  <pbartok@novell.com>
13551
13552         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
13553           textbox
13554         * FileDialog.cs:
13555           - Made Open/Save button the accept button for FileDialog
13556           - Tied the cancel button to the IButtonControl cancel button
13557           - Save/Open now properly builds the pathname
13558           - Now handles user-entered text
13559           - Preventing crash on right-click if no item is selected
13560           - Fixed Text property, now uses contents of textbox
13561           - Fixed SelectedText property, now just returns the text part that
13562             is selected in the text box
13563
13564 2005-03-18  Jackson Harper  <jackson@ximian.com>
13565
13566         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
13567         rect, make sure to de-adjust the interior rect after drawing the
13568         tab text.
13569
13570 2005-03-18  Peter Bartok  <pbartok@novell.com>
13571
13572         * MenuAPI.cs: Remove menu *before* executing selected action to
13573           prevent the menu from 'hanging around'
13574           
13575 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
13576
13577         * XplatUIOSX.cs: Implemented WorkingArea property
13578
13579 2005-03-17  Peter Bartok  <pbartok@novell.com>
13580
13581         * XplatUIX11.cs: Fixed menu coord calculations
13582         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
13583           for calculating offsets
13584
13585 2005-03-17  Peter Bartok  <pbartok@novell.com>
13586
13587         * Hwnd.cs: Do not consider menu presence for default client
13588           rectangle location/size
13589         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
13590           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
13591           translation functions
13592         * FileDialog.cs: Fixed (what I presume is a) typo
13593
13594 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
13595
13596         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
13597           X access (avoids X-Async errors)
13598
13599 2005-03-16  Jackson Harper  <jackson@ximian.com>
13600
13601         * TabControl.cs: Raise the SelectedIndexChanged event.
13602
13603 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
13604
13605         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13606           - Removed vertical ToolBar and replaced it with a custom panel
13607             (desktop and home button already work)
13608           - Added Help button (some controls get resized or relocated then)
13609           - Draw correct text depending on Open or Save.
13610           - Fixed some typos...
13611
13612 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
13613
13614         * ScrollBar.cs:
13615           - Only change Maximum and Minimum when need it (bug fix)
13616
13617 2005-03-15  Peter Bartok  <pbartok@novell.com>
13618
13619         * Form.cs: Use Handle for icon, to trigger creation if
13620           the window does not yet exist
13621         * Control.cs:
13622           - CanSelect: Slight performance improvement
13623           - Focus(): Preventing possible recursion
13624           - Invalidate(): Removed ControlStyle based clear flag setting
13625           - WM_PAINT: fixed logic for calling OnPaintBackground
13626           - WM_ERASEBKGND: Fixed logic, added call to new driver method
13627             EraseWindowBackground if the control doesn't paint background
13628         * XplatUIWin32.cs:
13629           - Moved EraseWindowBackground() method to internal methods
13630           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
13631             is sent via SendMessage on BeginPaint call on Win32
13632         * XplatUIX11.cs:
13633           - Added EraseWindowBackground() method
13634           - No longer sends WM_ERASEBKGND on .Expose, but on call to
13635             PaintEventStart, which more closely matches Win32 behaviour
13636           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
13637           - Fixed SetFocus() to properly deal with client and whole windows
13638         * Hwnd.cs: Added ErasePending property
13639         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
13640         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
13641
13642 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
13643
13644         * XplatUIOSX.cs:
13645           - Fix hard loop when timers exist.
13646           - Fix bugs with middle and right click for 3 button mice.
13647
13648 2005-03-11  Peter Bartok  <pbartok@novell.com>
13649
13650         * XplatUIX11.cs:
13651           - get_WorkingArea: Need to call X directly, GetWindowPos only
13652             returns cached data now
13653           - Added sanity check to GetWindowPos hwnd usage
13654
13655 2005-03-11  Jackson Harper  <jackson@ximian.com>
13656
13657         * BindingManagerBase.cs: This method isn't used anymore as
13658         PullData now updates the data in the control.
13659
13660 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
13661
13662         * Form.cs: fixes menu drawing on X11
13663         * MenuAPI.cs:  fixes menu drawing on X11
13664
13665 2005-03-11  Peter Bartok  <pbartok@novell.com>
13666
13667         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
13668           from Jonathan Gilbert; should fix bug #73606
13669         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
13670           in Screen coordinates. Thanks, Jordi.
13671         * Form.cs: Added missing attribute
13672
13673 2005-03-11  Peter Bartok  <pbartok@novell.com>
13674
13675         * Form.cs:
13676           - Rudimentary Mdi support
13677           - Removed outdated FormParent code
13678           - Implemented lots of missing properties and methods, still missing
13679             transparency support
13680           - Added missing attributes
13681           - Implemented support for MaximumBounds
13682           - Added firing of various events
13683         * XplatUI.cs: Added SetIcon() method
13684         * XplatUIDriver.cs: Added SetIcon() abstract
13685         * XplatUIOSX.cs: Stubbed out SetIcon() method
13686         * XplatUIX11.cs:
13687           - Implemented SetIcon() support
13688           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
13689           - Switched to unix line endings
13690         * XplatUIWin32.cs:
13691           - Made POINT internal so for can access it as part of MINMAX
13692           - Implemented SetIcon() support
13693           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
13694             native Mdi support again, might have to go managed)
13695         * Control.cs: Now fires the StyleChanged event
13696         * MdiClient.cs: Added; still mostly empty
13697
13698 2005-03-10  Peter Bartok  <pbartok@novell.com>
13699
13700         * SaveFileDialog.cs: Added emtpy file
13701
13702 2005-03-08  Peter Bartok  <pbartok@novell.com>
13703
13704         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
13705           in turn triggers OnCreateContro) when creating a handle for the
13706           first time.
13707         * TextControl.cs: Fixed endless loop in certain cases when
13708           replacing the current selection
13709
13710 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
13711
13712         * ScrollBar.cs:
13713           - Honors NewValue changes in Scroll events allowing apps to change it
13714           - Adds First and Last Scroll events
13715           - Fixes Thumb events
13716
13717 2005-03-07  Peter Bartok  <pbartok@novell.com>
13718
13719         * Hwnd.cs: Added DefaultClientRectangle property
13720         * XplatUI.cs: Now using the X11 driver Where() method, which provides
13721           more detailed debug information
13722         * XplatUIX11.cs:
13723           - Fixed size-change feedback loop, where we would pull an old size
13724             off the queue and mistakenly change our window's size to an
13725             earlier value
13726           - Now compressing ConfigureNotify events, to reduce looping and
13727             redraw issues
13728         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
13729           is called
13730
13731 2005-03-07  Jackson Harper  <jackson@ximian.com>
13732
13733         * Binding.cs: Push data pushes from data -> property. Check if the
13734         property is readonly when attempting to set it.
13735
13736 2005-03-07  Jackson Harper  <jackson@ximian.com>
13737
13738         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
13739         instead of IsSubclassOf. Pulling data now sets the value on the
13740         control.
13741         * PropertyManager.cs:
13742         * CurrencyManager.cs: Just need to pull data when updating now,
13743         because PullData will set the value on the control.
13744
13745 2005-03-04  Jackson Harper  <jackson@ximian.com>
13746
13747         * Binding.cs: Implement data type parsing and converting on pulled
13748         data. TODO: Are there more ways the data can be converted?
13749
13750 2005-03-04  Jackson Harper  <jackson@ximian.com>
13751
13752         * Binding.cs: Support <Property>IsNull checks. Also bind to the
13753         controls Validating method so we can repull the data when the
13754         control loses focus.
13755
13756 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
13757
13758         * ColumnHeader.cs:
13759           - Fixes null string format
13760           
13761         * ListView.cs:
13762           - Adds enum type checks
13763           - Fixes redrawing and recalc need after changing some properties
13764           - Fixes on focus_item set after the event
13765           - Fixes adding columns after the control has been created
13766           
13767         * ThemeWin32Classic.cs:
13768           - Fixes CheckBox focus rectangle
13769           - Fixes ColumnHeader drawing
13770
13771
13772 2005-03-03  Jackson Harper  <jackson@ximian.com>
13773
13774         * Binding.cs: Bind to <Property>Changed events so we can detect
13775         when properties are changed and update the data.
13776
13777 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
13778
13779         * ImageList.cs:
13780           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
13781           - Fixes ImageList constructor with ImageList container
13782           - Fixes image scaling (wrong parameters at DrawImage)
13783
13784 2005-02-02  Jackson Harper  <jackson@ximian.com>
13785
13786         * Binding.cs: Make property searches case-insensitive. Eliminate
13787         some duplicated code.
13788
13789 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
13790
13791         * ComboBox.cs:
13792                 - Handle focus event
13793                 - Fix scrollbar events
13794                 - Discard highlighted item if remove it
13795                 - Fixes SelectedItem with strings
13796
13797 2005-03-01  Peter Bartok  <pbartok@novell.com>
13798
13799         * Control.cs:
13800           - Fixed Visible property, now follows (once again) parent chain
13801             to return false if any control in the chain is visible=false
13802           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
13803           - Fixed several places where is_visible instead of Visible was used
13804           - Implemented FIXME related to focus selection when setting focused
13805             control to be invisible
13806
13807         * XplatUIWin32.cs: Now using proper method to find out if window is
13808           visible. Thanks to Jordi for pointing it out
13809
13810 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
13811
13812         * ComboBox.cs: show/hide scrollbar instead of creating it
13813
13814 2005-02-27  Jackson Harper  <jackson@ximian.com>
13815
13816         * CurrencyManager.cs: Add PositionChanged stuff.
13817
13818 2005-02-27  Peter Bartok  <pbartok@novell.com>
13819
13820         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
13821         * XplatUIOSX.cs: Added GetMenuOrigin() stub
13822         * XplatUIWin32.cs: Implemented GetMenuOrigin()
13823         * XplatUIX11.cs:
13824           - Implemented GetMenuDC()
13825           - Implemented GetMenuOrigin()
13826           - Implemented ReleaseMenuDC()
13827           - Implemented generation of WM_NCPAINT message
13828           - Implemented generation and handling of WM_NCCALCSIZE message
13829         * Form.cs: Added debug helper message for Jordi's menu work
13830         * Hwnd.cs:
13831           - Modified ClientRect property; added setter, fixed getter to handle
13832             setting of ClientRect
13833           - Added MenuOrigin property
13834
13835 2005-02-26  Peter Bartok  <pbartok@novell.com>
13836
13837         * XplatUIX11.cs:
13838           - Destroys the caret if a window that's being destroyed contains it
13839           - Ignores expose events coming from the X11 queue for windows that
13840             already are destroyed
13841           - Now uses the proper variable for handling DestroyNotify, before we
13842             marked the wrong window as destroyed
13843           - Improved/added some debug output
13844
13845 2005-02-26  Peter Bartok  <pbartok@novell.com>
13846
13847         * X11Keyboard.cs: Fixes to work on 64bit systems
13848
13849 2005-02-26  Peter Bartok  <pbartok@novell.com>
13850
13851         * Control.cs:
13852           - Now calling OnHandleDestroyed from DestroyHandle()
13853             instead of Dispose()
13854           - Removed bogus call to controls.Remove() from DestroyHandle()
13855
13856 2005-02-26  Peter Bartok  <pbartok@novell.com>
13857
13858         * Control.cs: Properly destroy child windows when our handle is
13859           destroyed
13860
13861 2005-02-25  Peter Bartok  <pbartok@novell.com>
13862
13863         * XplatUI.cs:
13864           - Added 'DriverDebug' define to allow tracing XplatUI API calls
13865           - Alphabetized Static Methods and Subclasses
13866
13867         * XplatUIX11.cs:
13868           - Added XException class to allow custom handling of X11 exceptions
13869           - Created custom X11 error handler, tied into XException class
13870           - Added support for MONO_XEXCEPTIONS env var to allow the user
13871             to either throw an exception on X errors or continue running
13872             after displaying the error
13873           - Added handling of DestroyNotify message
13874           - Added handler for CreateNotify message (still disabled)
13875           - Improved (tried to at least) Where method to provide file and lineno
13876         * X11Structs.cs:
13877           - Added XErrorHandler delegate
13878           - Added XRequest enumeration (to suppor translation of errors)
13879
13880 2005-02-25  Jackson Harper  <jackson@ximian.com>
13881
13882         * PropertyManager.cs: Implement editing features
13883         * CurrencyManager.cs:
13884         * Binding.cs: First attempt at UpdateIsBinding
13885         * BindingManagerBase.cs: Call UpdateIsBinding before
13886         pushing/pulling data.
13887
13888 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
13889
13890         * MenuAPI.cs: Respect disabled items
13891         * ThemeWin32Classic.cs
13892                 - Caches ImageAttributes creation for DrawImageDisabled
13893                 - Fixes vertical menu line drawing
13894                 - Draws disabled arrows in disable menu items
13895
13896 2005-02-24  Peter Bartok  <pbartok@novell.com>
13897
13898         * Hwnd.cs:
13899           - Added UserData property to allow associating arbitrary objects
13900             with the handle
13901           - Fixed leak; now removing Hwnd references from static windows array
13902         * XplatUIWin32.cs:
13903           - Fixed Graphics leak in PaintEventEnd
13904           - Removed usage of HandleData, switched over to Hwnd class
13905         * HandleData.cs: Removed, obsoleted by Hwnd.cs
13906
13907 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13908
13909         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
13910         * ScrollBar.cs: Fixes bug
13911         * TrackBar.cs: removes death code, clipping, mimize refreshes,
13912          keyboard navigation enhancements
13913
13914 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13915
13916         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
13917         * GroupBox.cs: Add control styles
13918         * Label.cs: Add control styles
13919         * UpDownBase.cs: Add control styles
13920         * ListBox.cs: Add control styles
13921         * XplatUIWin32.cs: Fixes wrong parameter order
13922
13923
13924 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
13925
13926         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
13927
13928 2005-02-23  Jackson Harper  <jackson@ximian.com>
13929
13930         * PropertyManager.cs: Implement property binding. This doesn't
13931         seem to work yet though as (I think) there are some bugs in
13932         System.ComponentModel.PropertyDescriptor.
13933         * BindingContext.cs: Use new PropertyManager constructor.
13934
13935 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
13936
13937         * ProgressBar.cs: use clip region in ProgressBar
13938         * ThemeWin32Classic.cs: use clip region in ProgressBar
13939
13940 2004-02-22  Jackson Harper  <jackson@ximian.com>
13941
13942         * BindingsCollection.cs: Remove some debug code.
13943
13944 2005-02-22  Jackson Harper  <jackson@ximian.com>
13945
13946         * BindingContext.cs:
13947         * ControlBindingsCollection.cs:
13948         * CurrencyManager.cs:
13949         * Binding.cs:
13950         * BindingManagerBase.cs: Initial implementation
13951         * BindingsCollection.cs: Add an internal contains method that the
13952         BindingManagerBase uses to ensure bindings aren't added twice to
13953         the collection.
13954         * PropertyManager.cs: Stubbed out.
13955         * Control.cs:
13956         * ContainerControl.cs: Hook up databinding
13957         
13958 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
13959
13960         * XplatUIOSX.cs:
13961           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
13962           Fixed Invalidate/Update chain.
13963           Fixed tons of other minor bugs (this is almost a complete rewrite).
13964
13965 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
13966
13967         * ComboBox.cs: do subcontrol creation when the control is created
13968
13969 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13970
13971         * Label.cs: fixes image drawing (image and imagelist)
13972         * ThemeWin32Classic.cs: cache brushes
13973         
13974 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13975
13976         * Form.cs: Move menu drawing code to Theme class
13977         * ComboBox.cs: Move ComboBox drawing code to Theme class
13978         * MenuItem.cs: Move menu drawing code to Theme class
13979         * MenuAPI.cs: Move menu drawing code to Theme class
13980         * ThemeWin32Classic.cs: New methods
13981         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
13982         * ListBox.cs: Move Listbox drawing code to Theme class
13983         * Theme.cs: New methods
13984
13985 2005-02-20  Peter Bartok  <pbartok@novell.com>
13986
13987         * Control.cs:
13988           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
13989             only process mnemonics on those)
13990           - Fixed event sequence for key handling; first calling
13991             ProcessKeyEventArgs now
13992         * TextBoxBase.cs:
13993           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
13994             for processing non-character keys
13995           - Fixed WM_CHAR to generate proper event sequence before processing
13996         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
13997           generation
13998
13999 2005-02-19  Peter Bartok  <pbartok@novell.com>
14000
14001         * UserControl.cs: Added TextChanged event; added attributes
14002         * SizeGrip.cs: Implemented resizing and optional display of grip
14003         * Form.cs: Fixed attribute
14004         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14005           Changed meaning of ScrollWindow bool argument; instead of the
14006           clear attribute (which will be true usually anyway), it gives the
14007           option of moving child controls as well.
14008         * XplatUIX11.cs:
14009           - Changed to match new ScrollWindow argument
14010           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
14011             now handles the implicit parent window a WM puts around us
14012         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
14013           to work)
14014         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
14015         * TreeView.cs: Adjusted to new ScrollWindow arguments
14016
14017 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
14018
14019         * Form.cs: Menu integration with non-client area
14020         * MenuItem.cs: Menu integration with non-client area
14021         * MenuAPI.cs: Menu integration with non-client area
14022
14023 2005-02-18  Peter Bartok  <pbartok@novell.com>
14024
14025         * MethodInvoker.cs: Added
14026         * MdiLayout.cs: Added
14027         * SendKeys.cs: Started implementation
14028         * ErrorIconAlignment.cs: Added
14029
14030 2005-02-18  Peter Bartok  <pbartok@novell.com>
14031
14032         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
14033         * Form.cs: Added handling for Menu-related Non-client messages
14034
14035 2005-02-17  Peter Bartok  <pbartok@novell.com>
14036
14037         * UpDownBase.cs: Fixed typo, compilation errors
14038         * DomainUpDown.cs: Fixed attribute value
14039
14040 2005-02-16  Miguel de Icaza  <miguel@novell.com>
14041
14042         * UpDownBase.cs: Attach entry events.
14043         Propagate events.
14044         Add ForeColor property, Focused, InterceptArrowKeys (interception
14045         does not work yet).
14046
14047 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
14048
14049         * Form.cs:
14050                 - Redraw non client are on Setmenu
14051                 - Calc proper menu starting point
14052
14053 2005-02-17  Peter Bartok  <pbartok@novell.com>
14054
14055         * Application.cs: Fixed message_filter check
14056
14057 2005-02-17  Peter Bartok  <pbartok@novell.com>
14058
14059         * Application.cs: Now calls registered message filters
14060         * DockStyle.cs: Fixed attribute
14061         * Form.cs: Fixed attribute
14062         * Menu.cs: Fixed attribute
14063         * ToolTip.cs: Fixed attribute
14064         * TreeNode.cs: Added missing attributes and arranged in regions
14065         * PropertyGrid.cs: Fixed signatures
14066         * TreeNodeCollection.cs: Added attributes
14067         * Splitter.cs: Added missing attributes; arranged into regions
14068         * TabPage.cs: Added missing attributes; arranged into regions
14069         * TextBoxBase.cs: Added missing attributes
14070         * TextBox.cs: Added missing attributes
14071         * ArrangeDirection.cs: Added missing attributes
14072         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
14073         * ToolBarButton.cs: Fixed attributes
14074         * AnchorStyles.cs: Fixed attribute
14075         * TrackBar.cs: Fixed attributes
14076         * TabControl.cs: Added missing attributes and arranged into regions
14077         * ToolBar.cs: Fixed attribute
14078         * StatusBar.cs: Fixed signature, organized into regions and added
14079           attributes
14080         * StatusBarPanel.cs: Fixed attributes
14081         * ContentsResizedEventArgs.cs: Implemented
14082         * ContentsResizedEventHandler.cs: Implemented
14083         * DateBoldEventArgs.cs: Implemented
14084         * DateBoldEventHandler.cs: Implemented
14085         * UpDownEventArgs.cs: Implemented
14086         * UpDownEventHandler.cs: Implemented
14087         
14088 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
14089
14090         * Form.cs: first Menu NC refactoring
14091         * MenuAPI.cs: first Menu NC refactoring
14092         
14093 2005-02-16  Peter Bartok  <pbartok@novell.com>
14094
14095         * ImeMode.cs: Added missing attributes
14096         * Menu.cs: Fixed attribute
14097         * GroupBox.cs: Fixed attribute
14098         * Label.cs: Fixed attribute
14099         * ColorDialog.cs (RunDialog): Removed TODO attribute
14100         * ComboBox.cs: Fixed attributes
14101         * ListControl.cs: Added missing attributes
14102         * PropertyGrid.cs: Fixed attributes
14103         * Control.cs: Fixed attributes
14104         * ListViewItem.cs: Added TypeConverter attribute
14105         * NotifyIcon.cs: Fixed attributes
14106         * ListView.cs: Fixed attributes
14107         * ButtonBase.cs: Fixed attribute
14108         * ImageList.cs: Added missing attributes
14109         * ContainerControl.cs: Fixed signature
14110         * CheckedListBox.cs: Fixed attribute; added missing attributes
14111         * Panel.cs: Fixed attributes
14112         * PropertyTabChangedEventArgs.cs: Added missing attribute
14113         * PropertyValueChangedEventArgs.cs: Added missing attribute
14114         * Binding.cs: Fixed attribute
14115         * ListViewItemConverter: Implemented ListViewSubItemConverter class
14116         * ListBox.cs: Fixed attribute; added missing attributes;
14117         * ScrollableControl.cs: Added missing attributes
14118         * PictureBox.cs: Added missing attributes; implemented missing property
14119         * DateTimePicker.cs: Added missing attributes
14120         * Theme.cs (ToolWindowCaptionHeight): Fixed type
14121         * MonthCalendar.cs: Fixed attributes
14122         * StatusBarPanel.cs: Added missing attributes
14123         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
14124
14125 2005-02-16  Peter Bartok  <pbartok@novell.com>
14126
14127         * TextBoxBase.cs: The previous method to enforce height yet remember
14128           the requested high was less than ideal, this is an attempt to do
14129           it better.
14130         * Control.cs: Added comment about possible problem
14131         * Copyright: Updated format
14132         * GridItemType.cs: Fixed swapped values
14133
14134 2005-02-15  Jackson Harper  <jackson@ximian.com>
14135
14136         * BaseCollection.cs: Use property so we never access an
14137         uninitialized list. Also initialize the list in the property.
14138
14139 2005-02-15  Peter Bartok  <pbartok@novell.com>
14140
14141         * GroupBox.cs (ProcessMnemonic): Implemented
14142         * Label.cs (ProcessMnemonic): Implemented
14143         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
14144           hotkeys
14145
14146 2005-02-15  Peter Bartok  <pbartok@novell.com>
14147
14148         * RadioButton.cs (ProcessMnemonic): Implemented
14149         * CheckBox.cs (ProcessMnemonic): Implemented
14150         * Control.cs:
14151           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
14152             handling
14153           - Added internal method to allow calling ProcessMnemonic from other
14154             controls
14155         * ContainerControl.cs:
14156           - Started support for handling validation chain handling
14157           - Implemented ProcessMnemonic support
14158           - Added Select() call to Active, to make sure the active control
14159             receives focus
14160         * Form.cs: Setting toplevel flag for Forms (this was lost in the
14161           FormParent rewrite)
14162         * ThemeWin32Classic.cs:
14163           - DrawCheckBox(): Fixed stringformat to show hotkeys
14164           - DrawRadioButton(): Fixed stringformat to show hotkeys
14165         * CommonDialog.cs: Removed WndProc override, not needed
14166
14167 2005-02-14  Peter Bartok  <pbartok@novell.com>
14168
14169         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
14170           missed those in the rewrite
14171
14172 2005-02-14  Miguel de Icaza  <miguel@novell.com>
14173
14174         * NumericUpDown.cs (Increment, ToString): Add.
14175         (DecimalPlaces): implement.
14176         
14177         Add attributes.
14178         
14179         * UpDownBase.cs: Add the designer attributes.
14180
14181 2005-02-13  Peter Bartok  <pbartok@novell.com>
14182
14183         * Panel.cs: Removed border_style, now in Control
14184         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
14185           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
14186
14187 2005-02-13  Peter Bartok  <pbartok@novell.com>
14188
14189         * MouseButtons.cs: Added missing attributes
14190         * XplatUIStructs.cs: Added enumeration for title styles
14191         * LeftRightAlignment.cs: Added missing attributes
14192         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
14193           it compatible with Graphics.FromHwnd()
14194         * SelectedGridItemChangedEventArgs.cs: Fixed property type
14195         * Keys.cs: Added missing attributes
14196         * SelectionRange.cs: Added missing attributes
14197         * SelectionRangeConverter.cs: Added
14198         * XplatUI.cs:
14199           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
14200             ReleaseMenuDC methods
14201           - Renamed ReleaseWindow to UngrabWindow
14202           - Added proper startup notice to allow version identification
14203         * Form.cs:
14204           - Added missing attributes
14205           - Removed FormParent concept
14206         * Label.cs: Removed border_style field, now in Control
14207         * RadioButton.cs: Now properly selects RadioButton when focus is
14208           received
14209         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
14210         * Control.cs:
14211           - Added missing attributes
14212           - Added borderstyle handling
14213           - Removed FormParent concept support
14214           - Fixed calls to XplatUI to match changed APIs
14215           - Fixed bug that would case us to use disposed Graphics objects
14216           - Removed unneeded internal methods
14217           - PerformLayout(): Fixed to handle DockStyle.Fill properly
14218           - SelectNextControl(): Fixed to properly check common parents
14219         * TextBoxBase.cs: Removed border_style field (now in Control)
14220         * MessageBox.cs:
14221           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
14222             fixed calculations for form size
14223           - Added support for localized strings and icons
14224           - Improved form size calculations, added border
14225         * ListView.cs: Removed border_style field (now in Control)
14226         * X11Structs.cs: Moved several structs from X11 driver here
14227         * X11Keyboard.cs: Changed debug message
14228         * Application.cs: Removed FormParent concept support
14229         * CommonDialog.cs:
14230           - Resetting end_modal flag
14231           - Removed FormParent concept support
14232         * NativeWindow.cs: Removed FormParent concept support
14233         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
14234           Client area and Non-Client whole window to allow support for WM_NC
14235           messages
14236         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
14237           prevent using it until it supports Hwnd as per Geoff Norton's request
14238         * ToolBar.cs: Fixed drawing, was not doing proper drawing
14239         * PictureBox.cs: Removed border_style field, now in Control
14240         * XplatUIWin32.cs: Added new driver methods
14241
14242 2005-02-12  Peter Bartok  <pbartok@novell.com>
14243
14244         * OpacityConverter.cs: Implemented
14245         * Hwnd.cs: Internal class to support drivers that need to emulate
14246           client area/non-client area window behaviour
14247
14248 2005-02-11  Peter Bartok  <pbartok@novell.com>
14249
14250         * KeysConverter.cs: Implemented
14251
14252 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
14253
14254         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
14255         * LinkLabel: Added missing attributes
14256         * MainMenu.cs: fixes ToString
14257         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
14258         * ListBox.cs: fixes event position
14259         * TrackBar.cs: adds missing attributes and events
14260         
14261 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
14262
14263         * MenuItem.cs: Use SystemInformation and bug fixes
14264         * MenuAPI.cs: Use SystemInformation and bug fixes
14265
14266 2005-02-09  Jackson Harper  <jackson@ximian.com>
14267
14268         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
14269         their keystate otherwise things like VK_MENU get stuck "on".
14270
14271 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
14272
14273         * ListBox.cs: Fixes AddRange bug
14274         
14275 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
14276
14277         * ProgressBar.cs
14278                 - Add missing attributes
14279                 - Add missing method
14280                 
14281         * CheckedListBox.cs: Added missing attributes
14282                 - Add missing attributes
14283                 - Remove extra method
14284         
14285         * ComboBox.cs: Added missing attributes
14286         * VScrollBar.cs: Added missing attributes
14287         * ScrollBar.cs:  Added missing attributes
14288         * ListBox.cs: Fixes signature, add missing consts
14289         * LinkArea.cs:   Added missing attributes
14290         
14291
14292 2005-02-08  Peter Bartok  <pbartok@novell.com>
14293
14294         * Menu.cs: Added missing attributes
14295         * MainMenu.cs: Added missing attributes
14296         * GroupBox.cs: Added missing attributes
14297         * Label.cs: Added missing attributes
14298         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
14299         * ColorDialog.cs:
14300           - Added Instance and Options properties
14301           - Added missing attributes
14302         * Cursor.cs: Made Serializable
14303         * NotifyIcon: Added missing attributes
14304         * MenuItem.cs: Added missing attributes
14305         * TextBoxBase.cs: Implemented AppendText() and Select() methods
14306         * Panel.cs: Added Missing attributes
14307         * MonthCalendar.cs: Fixed CreateParams
14308
14309 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14310         
14311         * LinkLabel.cs:
14312                 - Fixes signature
14313                 - Fixes issues with links
14314                 - Adds the class attributes
14315
14316 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14317         
14318         * ComboBox.cs:
14319                 - Fixes button when no items available in dropdown
14320                 - Fixes repainting problems
14321                 - Adds the class attributes
14322                 
14323 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14324
14325         * XplatUIOSX.cs: Detect the menu bar and title bar height from
14326         the current theme.  Cache these on startup.
14327
14328 2005-02-07  Jackson Harper  <jackson@ximian.com>
14329
14330         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
14331         the scrollbar buttons when they are depressed.
14332
14333 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14334
14335         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
14336         Get the display size from the main displayid.  We currently dont
14337         support multiple display configurations.
14338
14339 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14340
14341         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
14342
14343 2005-02-07  Miguel de Icaza  <miguel@novell.com>
14344
14345         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
14346
14347 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
14348
14349         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
14350
14351 2005-02-04  Jackson Harper  <jackson@ximian.com>
14352
14353         * ThemeWin32Classic.cs: Respect the clipping rect when
14354         drawing. Only fill the intersection of clips and rects so there
14355         isn't a lot of large fills.
14356         * ScrollBar.cs: Pass the correct clipping rect to the theme
14357         engine. Remove some debug code.
14358
14359 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
14360         
14361         * DateTimePicker.cs:
14362                 - Fixed crash on DateTime.Parse, use Constructor instead
14363
14364 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14365         
14366         * MenuItem.cs:
14367         * MenuAPI.cs:
14368                 - Owner draw support (MeasureItem and DrawItem)
14369
14370 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14371         
14372         *  Menu.cs:
14373                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
14374                 - Fixes MenuItems.Add range
14375         * MenuItem.cs:
14376                 - MergeMenu and Clone and CloneMenu functions
14377
14378 2005-02-03  Jackson Harper  <jackson@ximian.com>
14379
14380         * ScrollBar.cs: Make abstract
14381         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
14382         is abstract.
14383
14384 2005-02-03  Jackson Harper  <jackson@ximian.com>
14385
14386         * ScrollBar.cs: First part of my scrollbar fixups. This removes
14387         all the unneeded refreshes and uses invalidates with properly
14388         computed rects.
14389
14390 2005-02-03  Peter Bartok  <pbartok@novell.com>
14391
14392         * ComponentModel.cs: Added
14393         * IDataGridEditingService.cs: Added
14394         * Timer.cs: Added missing attributes
14395         * ToolTip.cs: Added missing attributes
14396
14397 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14398
14399         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
14400
14401 2005-02-03  Peter Bartok  <pbartok@novell.com>
14402
14403         * ListBox.cs: Added missing attributes
14404
14405 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
14406         
14407         * ListBox.cs:
14408                 - Fixes font height after font change
14409                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
14410                 
14411 2005-02-02  Peter Bartok  <pbartok@novell.com>
14412
14413         * HandleData.cs: Introduced static methods to allow class
14414           to be more self-contained and track it's own HandleData objects
14415         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
14416           HandleData to use new static methods
14417
14418 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
14419
14420         * Combobox.cs:
14421                 - Fixes default size and PreferredHeight
14422                 - Missing events
14423                 - ObjectCollection.Insert implementation
14424                 
14425         * ListControl.cs
14426                 - Fixes signature
14427         * ListBox.cs:
14428                 - Several fixes
14429                 - ObjectCollection.Insert implementation
14430                 - No selection after clean
14431                 - Small fixes
14432
14433 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14434
14435         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
14436
14437 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
14438
14439         * Combobox.cs:
14440                 - Caches ItemHeight calculation for OwnerDrawVariable
14441                 - Handles dropdown properly
14442                 - Fixes several minor bugs
14443
14444 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14445
14446         * ListBox.cs:
14447                 - Fixes 71946 and 71950
14448                 - Fixes changing Multicolumn on the fly
14449                 - Fixes keyboard navigation on Multicolumn listboxes
14450
14451 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14452         
14453         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
14454         crash reporter log.
14455
14456 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14457
14458         * XplatUIOSX.cs: Allow applications to actually exit.
14459
14460 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14461
14462         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
14463         their parent at creation time rather than lazily later.  Fixes a major
14464         regression we were experiencing.
14465
14466 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14467
14468         * ThemeWin32Classic.cs: more date time picker painting fixes
14469         * DateTimePicker.cs: more monthcalendar drop down fixes
14470         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
14471
14472 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14473
14474         * ScrollBar.cs:
14475                 - When moving the thumb going outside the control should stop the moving
14476                 - Adds the firing of missing events
14477                 - Fixes no button show if Size is not specified
14478                 - End / Home keys for keyboard navigation
14479
14480 2005-01-30  Peter Bartok  <pbartok@novell.com>
14481
14482         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
14483           sanity check to prevent theoretical loop
14484         * XplatUIWin32.cs (SetVisible): Removed debug output
14485         * XplatUIX11.cs (SystrayChange): Added sanity check
14486         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
14487         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
14488           behaviour, valid until the X11 client window rewrite is done
14489         * TextBox.cs (ctor): Setting proper default foreground and background
14490           colors
14491
14492 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
14493
14494         * Theme: Added DrawDateTimePicker to interface
14495         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
14496         * DateTimePicker.cs: Created (still needs keys and painting code)
14497         * DateTimePickerFormat.cs: added
14498         * MonthCalendar.cs: fixed CreateParams for popup window mode
14499           
14500 2005-01-29  Peter Bartok  <pbartok@novell.com>
14501
14502         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
14503           this should also the calculations for ligher/darker
14504         * Theme.cs: Fixed defaults for ScrollBar widths/heights
14505
14506 2005-01-29  Peter Bartok  <pbartok@novell.com>
14507
14508         * ArrangeDirection.cs: Added
14509         * ArrangeStartingPositon.cs: Added
14510         * SystemInformation.cs: Implemented
14511         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14512           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
14513           used by SystemInformation class
14514         * X11Strucs.cs: Added XSizeHints structure
14515         * MenuAPI.cs:
14516           - Fixed CreateParams to make sure the menu window is always visible
14517           - TrackPopupMenu: Added check to make sure we don't draw the
14518             menu offscreen
14519
14520 2005-01-29  Peter Bartok  <pbartok@novell.com>
14521
14522         * HandleData.cs: Added method for altering invalid area
14523         * TextBoxBase.cs: Implemented TextLength
14524
14525 2005-01-28  Peter Bartok  <pbartok@novell.com>
14526
14527         * XplatUIX11.cs: Improvement over last patch, not sending
14528           the WM_PAINT directly anymore, instead we scroll any pending
14529           exposed areas and let the system pick out the WM_PAINT later
14530
14531 2005-01-28  Peter Bartok  <pbartok@novell.com>
14532
14533         * SWF.csproj: Deleted, no longer used. Instead,
14534           Managed.Windows.Forms/SWF.csproj should be used
14535         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
14536           directly, to avoid a potential race condition with the next
14537           scroll
14538
14539 2005-01-28  Peter Bartok  <pbartok@novell.com>
14540
14541         * XplatUI.cs: Made class internal
14542
14543 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
14544
14545         * CheckedListBox.cs:
14546                 - Draw focus
14547                 - Fixed Drawing
14548                 - Missing methods and events
14549
14550 2005-01-27  Peter Bartok  <pbartok@novell.com>
14551
14552         * Application.cs (Run): Don't use form if we don't have one
14553
14554 2005-01-27  Peter Bartok  <pbartok@novell.com>
14555
14556         * TextBoxBase.cs (get_Lines): Fixed index off by one error
14557
14558 2005-01-27  Peter Bartok  <pbartok@novell.com>
14559
14560         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
14561         * GridItem.cs: Added; Patch by Jonathan S. Chambers
14562         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
14563         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
14564         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
14565         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
14566         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14567         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14568         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14569         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14570         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14571         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14572
14573 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14574
14575         * Combobox.cs:
14576                 - Draw focus on Simple Combobox
14577                 - Fixes drawing issues
14578                 - fixes 71834
14579
14580 2005-01-27  Peter Bartok  <pbartok@novell.com>
14581
14582         * Form.cs:
14583           - Place window in default location, instead of hardcoded 0/0
14584           - Send initial LocationChanged event
14585         * Control.cs:
14586           - UpdateBounds after creation to find out where the WM placed us
14587           - Make sure that if the ParentForm changes location the Form
14588             is notified
14589         * XplatUIX11.cs: XGetGeometry will not return the coords relative
14590             to the root, but to whatever the WM placed around us.
14591             Translate to root coordinates before returning toplevel
14592             coordinates
14593         * XplatUIWin32.cs: Removed debug output
14594         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
14595           flag to GetWindowPos, to allow translation of coordinates on X11
14596
14597 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14598
14599         * ListBox.cs: connect LostFocus Event
14600
14601 2005-01-27  Peter Bartok  <pbartok@novell.com>
14602
14603         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14604           XplatUIX11.cs: Extended the Systray API
14605         * Form.cs: Removed debug output
14606         * Application.cs: Fixed focus assignment, always need to call
14607           XplatUI.Activate() since Form.Activate() has rules that may
14608           prevent activation
14609         * NotifyIcon.cs: Should be complete now
14610         * ToolTip.cs: Worked around possible timer bug
14611
14612 2005-01-27  Jackson Harper  <jackson@ximian.com>
14613
14614         * TabControl.cs:
14615         - Only invalidate the effected tabs when the
14616         selected index changes. This reduces drawing and gets rid of some
14617         flicker.
14618         - Only refresh if the tabs need to be shifted, otherwise only
14619         invalidate the slider button.
14620         - On windows the tabs are not filled to right if the slider is
14621         visible.
14622         
14623 2005-01-27  Jackson Harper  <jackson@ximian.com>
14624
14625         * TabControl.cs: Only refresh on mouseup if we are showing the
14626         slider. Also only invalidate the button whose state has changed.
14627
14628 2005-01-26  Peter Bartok  <pbartok@novell.com>
14629
14630         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
14631         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
14632           and SystrayRemove() methods
14633         * XplatUIOSX.cs: Stubbed Systray methods
14634         * XplatUIX11.cs:
14635           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
14636             methods
14637           - Fixed broken XChangeProperty calls (marshalling messed up things)
14638         * X11Structs.cs: Added enums and structs required for Size hinting
14639         * NotifyIcon.cs: Added & implemented
14640
14641 2005-01-26  Jackson Harper  <jackson@ximian.com>
14642
14643         * TabControl.cs: Space vertically layed out tabs properly.
14644
14645 2005-01-26  Peter Bartok  <pbartok@novell.com>
14646
14647         * Form.cs (CreateClientParams): Always set the location to 0,0
14648           since we're a child window.
14649
14650         * Control.cs (SetVisibleCore): Always explicitly setting the location
14651           of a toplevel window, apparently X11 doesn't like to move windows
14652           while they're not mapped.
14653
14654 2005-01-26  Jackson Harper  <jackson@ximian.com>
14655
14656         * TabControl.cs: Implement FillToRight size mode with vertically
14657         rendered tabs.
14658
14659 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14660
14661         * ControlPaint.cs, ThemeWin32Classic.cs
14662                 - Fixes DrawFocusRectangle
14663
14664 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14665
14666         * MenuAPI.cs:
14667                 - MenuBar tracking only starts when item is first clicked
14668                 - Fixes menu hidding for multiple subitems
14669                 - Unselect item in MenuBar when item Executed
14670                 - Fixes bug 71495
14671
14672 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
14673
14674         * ListControl.cs:
14675                 - IsInputKey for ListBox
14676         * ListBox.cs:
14677                 - Focus item
14678                 - Shift and Control item selection
14679                 - Implement SelectionMode.MultiExtended
14680                 - Fixes RightToLeft
14681         * ComboBox.cs:
14682                 - IsInputKey implemented
14683                 - Do not generate OnTextChangedEdit on internal txt changes
14684                 
14685 2005-01-23  Peter Bartok  <pbartok@novell.com>
14686
14687         * AccessibleObject.cs: Partially implemented Select()
14688         * MonthCalendar.cs: Added missing attributes and events
14689         * Form.cs: Fixed CreateParams behaviour, now controls derived from
14690           form can properly override CreateParams.
14691         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14692           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
14693           Control performs Invalidate & Update
14694         * NativeWindow (CreateHandle): Added special handling for Form
14695           and Form.FormParent classes to allow overriding of From.CreateParams
14696         * Control.cs:
14697           - ControlNativeWindow: Renamed 'control' variable to more intuitive
14698             name 'owner'
14699           - ControlNativeWindow: Added Owner property
14700           - Removed usage of Refresh() on property changes, changed into
14701             Invalidate(), we need to wait until the queue is processed for
14702             updates, direct calls might cause problems if not all vars for
14703             Paint are initialized
14704           - Added call to UpdateStyles() when creating the window, to set any
14705             styles that CreateWindow might have ignored.
14706           - Added support for Form CreateParent overrides to UpdateStyles()
14707         * MessageBox.cs: Removed no longer needed FormParent override stuff,
14708           CreateParams are now properly overridable
14709         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
14710           CreateParams are now properly overridable
14711
14712 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
14713
14714         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
14715         OnTextBoxChanged.
14716
14717         Capture LostFocus and OnTextBoxChanged.  The later introduces a
14718         recursive invocation that I have not figured out yet.
14719
14720         Reset the timer when not using (it was accumulating).
14721
14722
14723         (OnTextBoxChanged): Set UserEdit to true here to track whether the
14724         user has made changes that require validation.
14725
14726         Reset changing to avoid loops.
14727
14728 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
14729
14730         * NumericUpDown.cs: Display value at startup.
14731
14732         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
14733         ValidateEditText.
14734
14735         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
14736         filled in.  Added some basic parsing of text.
14737
14738         Still missing the OnXXX method overrides, and figuring out the
14739         events that must be emitted.
14740
14741         * UpDownBase.cs: Handle UserEdit on the Text property.
14742         
14743 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
14744
14745         * ComboBox.cs:
14746           - Fixes IntegralHeight
14747           - ToString method
14748
14749 2005-01-21  Jackson Harper  <jackson@ximian.com>
14750
14751         * TabControl.cs: Set the SelectedIndex property when SelectedTab
14752         is set so that the page visibility is updated and the tabs are
14753         sized correctly.
14754
14755 2005-01-21  Jackson Harper  <jackson@ximian.com>
14756
14757         * TabControl.cs: Use cliping rectangle for blitting. Give the
14758         theme the clipping rect so we can do clipping while
14759         drawing. Remove some debug code.
14760
14761 2005-01-21  Jackson Harper  <jackson@ximian.com>
14762
14763         * TabPage.cs: Add a new method so tab pages can force the tab
14764         control to recalculate the tab page sizes.
14765         * TabControl.cs: UpdateOwner needs to make the tab control recalc
14766         sizes.
14767
14768 2005-01-20  Jackson Harper  <jackson@ximian.com>
14769
14770         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
14771
14772 2005-01-20  Jackson Harper  <jackson@ximian.com>
14773
14774         * TreeView.cs: Set the bounds for nodes properly. They were
14775         getting screwed up when checkboxes were not enabled, but images
14776         were.
14777
14778 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
14779
14780         * ListBox.cs:
14781                 - Owner draw support
14782                 - Fixes
14783                 
14784 2005-01-20  Jackson Harper  <jackson@ximian.com>
14785
14786         * XplatUIStructs.cs: More misc keys
14787         * X11Keyboard.cs: Ignore some control keys.
14788
14789 2005-01-20  Jackson Harper  <jackson@ximian.com>
14790
14791         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
14792         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
14793
14794 2005-01-19  Peter Bartok  <pbartok@novell.com>
14795
14796         * Control.cs: Un-selecting the control when it is loosing focus
14797
14798 2005-01-19  Jackson Harper  <jackson@ximian.com>
14799
14800         * TreeView.cs: Hook up to the text controls leave event so we can
14801         end editing when the users clicks outside the text box.
14802         
14803 2005-01-19  Jackson Harper  <jackson@ximian.com>
14804
14805         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
14806         get set in the conversion array.
14807
14808 2005-01-19  Peter Bartok  <pbartok@novell.com>
14809
14810         * Application.cs (ModalRun): Added a call to CreateControl to ensure
14811           focus is properly set
14812         * Button.cs:
14813           - Added missing attributes
14814           - removed styles, those are already set in the base class
14815         * ButtonBase.cs:
14816           - Added missing attributes
14817           - Added clip window styles
14818         * CheckBox.cs: Added missing attributes
14819         * CommonDialog.cs:
14820           - FormParentWindow.CreateParams: Added required clip styles
14821         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
14822           also filters modifier keys
14823         * MessageBox.cs:
14824           - Added assignment of Accept and Cancel button to enable Enter
14825             and Esc keys in MessageBox dialogs
14826           - FormParentWindow.CreateParams: Added required clip styles
14827         * RadioButton.cs: Added missing attributes
14828         * TextControl.cs: No longer draws selection if control does not
14829           have focus
14830         * TextBoxBase.cs:
14831           - Now draws simple rectangle around test area to make it obvious
14832             there's a control. This is a hack until we properly support borders
14833           - A few simple fixes to support selections better, now erases selected
14834             text when typing, and resets selection when using movement keys
14835
14836 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14837
14838         * UpDownBase.cs: Added some new properties.
14839
14840         * DomainUpDown.cs: Implement a lot to get my test working.
14841
14842 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14843
14844         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
14845
14846 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14847
14848         * OSXStructs (WindowAttributes): Fixed csc complaints
14849
14850 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14851
14852         * XplayUIOSX.cs:
14853           OSXStructs.cs: Initial refactor to move enums and consts into
14854           OSXStructs and use them in the driver for greater readability.
14855
14856 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14857
14858         * XplatUIOSX.cs: Initial support for Standard Cursors.
14859         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
14860
14861 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
14862
14863         * ComboBox.cs: ability to change style when the ctrl is already
14864         created, missing methods and events, bug fixes, signature fixes
14865
14866 2005-01-19  Peter Bartok  <pbartok@novell.com>
14867
14868         * Cursors.cs (ctor): Added ctor to fix signature
14869
14870 2005-01-18  Peter Bartok  <pbartok@novell.com>
14871
14872         * Button.cs: Implemented DoubleClick event
14873         * ButtonBase.cs:
14874           - Fixed keyboard handling to behave like MS, where the press of
14875             Spacebar is equivalent to a mousedown, and the key release is
14876             equivalent to mouseup. Now a spacebar push will give the same
14877             visual feedback like a mouse click.
14878           - Added missing attributes
14879           - Added ImeModeChanged event
14880           - Added support for generating DoubleClick event for derived classes
14881         * CheckBox.cs:
14882           - Implemented DoubleClick event
14883           - Added missing attributes
14884         * CommonDialog.cs: Added missing attribute
14885         * ContextMenu.cs: Added missing attributes
14886         * RadioButton.cs:
14887           - AutoChecked buttons do not allow to be unselected when clicked
14888             (otherwise we might end up with no selected buttons in a group)
14889           - Added missing attributes
14890           - Implemented DoubleClickEvent
14891         * ThreadExceptionDialog.cs: Enabled TextBox code
14892
14893 2005-01-18  Peter Bartok  <pbartok@novell.com>
14894
14895         * Form.cs: Removed debug output
14896         * Button.cs: Added support for DoubleClick method
14897
14898 2005-01-18  Peter Bartok  <pbartok@novell.com>
14899
14900         * Form.cs:
14901           - Added method to parent window that allows triggering size
14902             calculations when a menu is added/removed
14903           - set_Menu: Cleaned up mess from early days of Form and Control,
14904             now properly triggers a recalc when a menu is added/removed
14905           - Added case to select form itself as focused form if no child
14906             controls exist
14907           - Added PerformLayout call when showing dialog, to ensure properly
14908             placed controls
14909         * Control.cs:
14910           - Select(): Made internal so Form can access it
14911           - Focus(): Only call Xplat layer if required (avoids loop), and sets
14912             status
14913         * Application.cs (Run): Removed hack and calls PerformLayout instead
14914           to trigger calculation when Form becomes visible
14915
14916 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
14917
14918         * ComboBox.cs: fixes for ownerdraw
14919
14920 2005-01-18  Peter Bartok  <pbartok@novell.com>
14921
14922         * TextControl.cs:
14923           - Sentinel is no longer static, each Document gets it's own, this
14924             avoids locking or alternatively overwrite problems when more
14925             than one text control is used simultaneously.
14926           - Switched to use Hilight and HilightText brushes for text selection
14927
14928         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
14929
14930 2005-01-18  Peter Bartok  <pbartok@novell.com>
14931
14932         * Control.cs:
14933           - Hooked up the following events:
14934                 o ControlAdded
14935                 o ControlRemoved
14936                 o HandleDestroyed
14937                 o ImeModeChanged
14938                 o ParentChanged
14939                 o TabStopChanged
14940                 o Invalidated
14941                 o SystemColorsChanged
14942                 o ParentFontChanged
14943                 o Move
14944           - Removed debug output
14945           - Added a call to the current theme's ResetDefaults when a color change
14946             is detected
14947         * Form.cs: Now setting the proper ImeMode
14948         * Theme.cs: Defined a method to force recreation of cached resources
14949           and rereading of system defaults (ResetDefaults())
14950         * ThemeWin32Classic.cs: Added ResetDefaults() stub
14951
14952 2005-01-17  Peter Bartok  <pbartok@novell.com>
14953
14954         * Control.cs: Added missing attributes
14955
14956 2005-01-17  Jackson Harper  <jackson@ximian.com>
14957
14958         * TreeNode.cs: Implement editing. Add missing properties selected
14959         and visible.
14960         * TreeView.cs: Implement node editing. Also some fixes to use
14961         Invalidate (invalid area) instead of Refresh when selecting.
14962
14963 2005-01-17  Peter Bartok  <pbartok@novell.com>
14964
14965         * Control.cs:
14966           - Implemented InvokeGotFocus() method
14967           - Implemented InvokeLostFocus() method
14968           - Implemented InvokePaint() method
14969           - Implemented InvokePaintBackground() method
14970           - Implemented InvokeClick() method
14971           - Implemented FindForm() method
14972           - Implemented RectangleToClient() method
14973           - Implemented ClientToRectangle() method
14974           - Implemented ResetBackColor() method
14975           - Implemented ResetCursor() method
14976           - Implemented ResetFont() method
14977           - Implemented ResteForeColor() method
14978           - Implemented ResetImeMode() method
14979           - Implemented ResetLeftToRight() method
14980           - Implemented ResetText() method
14981           - Implemented Scale() methods
14982           - Implemented ScaleCore() method
14983           - Implemented Update() method
14984           - Removed unused variables
14985           - Stubbed AccessibilityNotifyClients and
14986             ControlAccessibleObject.NotifyClients() methods (dunno what to do
14987             with those yet)
14988           - Now setting proper default for RightToLeft property
14989           - Fixed bug in SetClientSizeCore that would cause windows to get
14990             really big
14991           - Now sending Click/DoubleClick events
14992           - Now selecting controls when left mouse button is clicked on
14993             selectable control
14994         * AccessibleEvents.cs: Added
14995         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
14996         * XplatUIOSX.cs: Stubbed UpdateWindow() method
14997         * XplatUIWin32.cs: Implemented UpdateWindow() method
14998         * XplatUIX11.cs: Implemented UpdateWindow() method
14999         * Form.cs: Removed stray semicolon causing CS0162 warning
15000         * ThemeWin32Classic.cs: Fixed unused variable warnings
15001         * ScrollableControl.cs: Now calls base method for ScaleCore
15002         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
15003           style to avoid interference with internal click handler (which is
15004           different than standard Control click handling)
15005         * RadioButton.cs:
15006           - Now unchecks all sibling radio buttons when control is
15007             selected (Fixes #68756)
15008           - Removed internal tabstop variable, using the one inherited from
15009             Control
15010
15011 2005-01-17  Jackson Harper  <jackson@ximian.com>
15012
15013         * NavigateEventArgs.cs: Fix base type.
15014         * LinkLabel.cs: Sig fix
15015         
15016 2005-01-17  Jackson Harper  <jackson@ximian.com>
15017
15018         * TreeView.cs: Only invalidate the effected nodes bounds when
15019         selecting nodes.
15020
15021 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15022
15023         * XplatUIWin32.cs: fixes Win32 marshaling
15024         * XplatUIX11.cs: fixes method signature
15025
15026 2005-01-17  Peter Bartok  <pbartok@novell.com>
15027
15028         * XplatUIX11.cs: Clean up resources when we no longer need them
15029
15030 2005-01-17  Peter Bartok  <pbartok@novell.com>
15031
15032         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
15033           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
15034           and DestroyCursor() methods.
15035         * Cursor.cs: Partially implemented, now supports standard cursors;
15036           still contains some debug code
15037         * Cursors.cs: Implemented class
15038         * Control.cs:
15039           - WndProc(): Added handling of WM_SETCURSOR message, setting the
15040             appropriate cursor
15041           - Implemented Cursor property
15042           - Replaced break; with return; more straightforwar and possibly
15043             faster
15044           - Now properly setting the result for WM_HELP
15045         * X11Structs.cs: Added CursorFontShape enum
15046         * XplatUIStructs.cs:
15047           - Added StdCursor enum (to support DefineStdCursor() method)
15048           - Added HitTest enum (to support sending WM_SETCURSOR message)
15049         * XplatUIX11.cs:
15050           - Now sends the WM_SETCURSOR message
15051           - Implemented new cursor methods
15052         * XplatUIOSX.cs: Stubbed new cursor methods
15053         * XplatUIWin32.cs:
15054           - Implemented new cursor methods
15055           - Added GetSystemMetrics function and associated enumeration
15056
15057 2005-01-15  Peter Bartok  <pbartok@novell.com>
15058
15059         * Control.cs:
15060           - WndProc(): Now handles EnableNotifyMessage
15061           - SelectNextControl(): Fixed bug where if no child or sibling
15062             controls exist we looped endlessly
15063
15064 2005-01-14  Jackson Harper  <jackson@ximian.com>
15065
15066         * TreeView.cs: Recalculate the tab pages when a new one is added
15067         so that the proper bounding rects are created.
15068
15069 2005-01-14  Jackson Harper  <jackson@ximian.com>
15070
15071         * TreeView.cs: Draw a gray box instead of a grip in the lower
15072         right hand corner when there are both horizontal and vertical
15073         scroll bars.
15074
15075 2005-01-14  Jackson Harper  <jackson@ximian.com>
15076
15077         * Control.cs: When erasing backgrounds use FromHwnd instead of
15078         FromHdc when there is a NULL wparam. This occurs on the X driver.
15079         * XplatUIX11.cs: Set the wparam to NULL.
15080
15081 2005-01-13  Jackson Harper  <jackson@ximian.com>
15082
15083         * PictureBox.cs: Implement missing methods (except ToString, need
15084         to test that on windows) and events. When visibility is changed we
15085         need to redraw the image because the buffers are killed. When size
15086         is changed refresh if the sizemode needs it.
15087
15088 2005-01-13  Peter Bartok  <pbartok@novell.com>
15089
15090         * Control.cs (SelectNextControl): Was using wrong method to select
15091           a control
15092
15093 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15094
15095         * ComboBox.cs: fixes dropstyle
15096
15097 2005-01-13  Peter Bartok  <pbartok@novell.com>
15098
15099         * Form.cs:
15100           - Implemented Select() override
15101           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
15102           - Now sets keyboard focus on startup
15103         * Control.cs (SelectNextControl): Now properly handles directed=true
15104         * TextBoxBase.cs:
15105           - WndProc: Now passes tab key on to base if AcceptTabChar=false
15106           - Added (really bad) focus rectangle (mostly for testing)
15107         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
15108           to enforce redraw on focus changes
15109         * ContainerControl.cs:
15110           - Fixed detection of Shift-Tab key presses
15111           - Fixed traversal with arrow keys
15112         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
15113           gonna keep this or if it's complete yet
15114         
15115 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15116
15117         * ComboBox.cs: missing properties, fixes
15118
15119 2005-01-13  Peter Bartok  <pbartok@novell.com>
15120
15121         * Panel.cs (ctor): Setting Selectable window style to off
15122         * Splitter.cs (ctor): Setting Selectable window style to off
15123         * GroupBox.cs (ctor): Setting Selectable window style to off
15124         * Label.cs (ctor): Setting Selectable window style to off
15125
15126 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
15127
15128         * UpDownBase.cs (InitTimer): If the timer has been already
15129         created, enable it.
15130
15131         Use a TextBox instead of a Label.
15132
15133 2005-01-12  Jackson Harper  <jackson@ximian.com>
15134
15135         * TreeView.cs: Refresh the tree after sorting the nodes. Always
15136         draw the connecting node lines (when ShowLines is true).
15137         * TreeNode.cs: The nodes index can now be updated. This is used
15138         when a node collection is sorted.
15139         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
15140         insert or an existing unsorted node collection can be sorted.
15141         
15142 2005-01-12  Peter Bartok  <pbartok@novell.com>
15143
15144         * ContainerControl.cs: Implemented ProcessDialogKeys()
15145
15146 2005-01-12  Peter Bartok  <pbartok@novell.com>
15147
15148         * Control.cs:
15149           - Implemented SelectNextControl() method
15150           - Several focus related bug fixes
15151           - Fixed Docking calculations to match MS documentation and
15152             behaviour
15153
15154 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
15155
15156         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
15157         bug fixes
15158
15159 2005-01-12  Peter Bartok  <pbartok@novell.com>
15160
15161         * Control.cs:
15162           - Fixed broken Contains() method
15163           - Implemented GetNextControl() method. Finally. This is the pre-
15164             requisite for focus handling.
15165
15166 2005-01-12  Peter Bartok  <pbartok@novell.com>
15167
15168         * OSXStrucs.cs: Added
15169
15170 2005-01-12  Peter Bartok  <pbartok@novell.com>
15171
15172         * XplatUIWin32.cs:
15173           - Removed PeekMessageFlags
15174           - Implemented SetWindowStyle() method
15175         * XplatUIStructs.cs: Added PeekMessageFlags
15176         * X11Structs: Added missing border_width field to XWindowChanges struct
15177         * XplatUIX11.cs:
15178           - PeekMessage: Now throws exception if flags which are not yet
15179             supported are passed
15180           - Implemented SetWindowStyle() method
15181           - Fixed SetZOrder to handle AfterHwnd properly
15182         * XplatUI.cs: Added SetWindowStyle() method
15183         * XplatUIDriver.cs: Added SetWindowStyle() abstract
15184         * Control.cs:
15185           - Implemented UpdateStyles() method
15186           - Implemented UpdateZOrder() method
15187         * XplatUIOSX.cs: Added SetWindowStyle() stub
15188
15189 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
15190
15191         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
15192         button mouse).
15193
15194
15195 2005-01-11  Jackson Harper  <jackson@ximian.com>
15196
15197         * TreeView.cs: Still need to draw lines to siblings even if out of
15198         the current node is out of the clip.
15199
15200 2005-01-11  Jackson Harper  <jackson@ximian.com>
15201
15202         * TreeView.cs: When setting the hbar/vbar/grip position use
15203         SetBounds so that perform layout is only called once. Also suspend
15204         and resume layout so layout is only done once for all controls.
15205         - Removed some debug fluff
15206         * SizeGrip.cs: Call base implmentation in overriding methods.
15207         - When visibility is changed the drawing buffers are killed so we
15208         need to redraw.
15209
15210 2005-01-11  Jackson Harper  <jackson@ximian.com>
15211
15212         * TreeView.cs: Calculate the open node count while drawing. This
15213         saves us an entire tree traversal for every paint operation. Use
15214         a member var for the open node count so less vars are passed around.
15215
15216 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
15217
15218         * MonthCalendar.cs:
15219         - fixed selection to use mousemove, not mouse polling on timer
15220         * ThemeWin32Classic.cs
15221         - removed redundant unused variable "no_more_content"
15222         
15223 2005-01-11  Peter Bartok  <pbartok@novell.com>
15224
15225         * XplatUIX11.cs (DoEvents): Needs to return when no more events
15226           are pending, so it now calls PeekMessage instead of GetMessage;
15227           implemented a incomplete version of PeekMessage
15228         
15229 2005-01-11  Peter Bartok  <pbartok@novell.com>
15230
15231         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
15232           I18n issues
15233         * TextBoxBase.cs: Added sending of TextChanged event
15234
15235 2005-01-10  Jackson Harper  <jackson@ximian.com>
15236
15237         * TreeView.cs: Try not to draw outside the clipping rectangle on
15238         each node element.
15239
15240 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
15241
15242         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
15243
15244 2005-01-10  Jackson Harper  <jackson@ximian.com>
15245
15246         * TreeView.cs:
15247         - Implement fast scrolling. Now only the newly
15248         exposed nodes are drawn and the old image is moved using the
15249         XplatUI::ScrollWindow method.
15250         - Factor in height of nodes when calculating whether or not the
15251         node is in the clipping rect.
15252
15253 2005-01-10  Jackson Harper  <jackson@ximian.com>
15254
15255         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
15256
15257 2005-01-10  Peter Bartok  <pbartok@novell.com>
15258
15259         * Application.cs: Added temporary hack to resolve all our resize
15260           required issues on startup. This will get fixed properly at
15261           some point in the future
15262
15263 2005-01-10  Jackson Harper  <jackson@ximian.com>
15264
15265         * SizeGrip.cs: New internal class that is used as a sizing
15266         grip control...hence the name.
15267
15268 2005-01-10  Peter Bartok  <pbartok@novell.com>
15269
15270         * Control.cs: Implemented proper TabIndex handling, now assigning
15271           a tabindex when a control is added to a container
15272         * GroupBox.cs (ctor): Now sets the Container style bit, required
15273           for Control.GetNextControl()
15274
15275 2005-01-09  Jackson Harper  <jackson@ximian.com>
15276
15277         * TextBoxBase.cs: Clear window when scrolling (fixes build).
15278
15279 2005-01-09  Peter Bartok <pbartok@novell.com>
15280
15281         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
15282           XplatUIX11.cs: Added ability to control ScrollWindow expose and
15283           an overload for ScrollWindow to allow only scrolling a rectangle
15284
15285 2005-01-09  Peter Bartok <pbartok@novell.com>
15286
15287         * Form.cs:
15288           - Implemented SetDesktopBounds method
15289           - Implemented SetDesktopLocation method
15290
15291 2005-01-08  Jackson Harper  <jackson@ximian.com>
15292
15293         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
15294         the node count has changed, this removes to VScroll::Refresh calls
15295         when drawing.
15296
15297 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
15298
15299         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
15300
15301 2005-01-07  Jackson Harper  <jackson@ximian.com>
15302
15303         * TreeNode.cs: Just update the single node when it is
15304         checked. Don't refresh after toggling, the Expand/Collapse already
15305         handles this.
15306         * TreeView.cs: Respect clipping a little more when drawing. Try
15307         not to redraw things that don't need to be redrawn. Just hide the
15308         scrollbars when they are no longer needed instead of removing
15309         them, so they don't have to be created again and again.
15310         
15311 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
15312
15313         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
15314         coordinates to window space to place the caret properly, FIXED.
15315         Implement GetWindowState & SetWindowState
15316
15317 2005-01-06  Peter Bartok <pbartok@novell.com>
15318
15319         * Form.cs:
15320           - Implemented ClientSize property
15321           - Implemented DesktopBounds property
15322           - Implemented DesktopLocation property
15323           - Implemented IsRestrictedWindow property
15324           - Implemented Size property
15325           - Implemented TopLevel property
15326           - Implemented FormWindowState property
15327         * Control.cs:
15328           - Implemented GetTopLevel() method
15329           - Implemented SetTopLevel() method
15330         * X11Structs.cs (Atom):
15331           - Added AnyPropertyType definition
15332           - Added MapState definiton and updated XWindowAttribute struct
15333         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
15334         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
15335         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
15336         * XplatUIWin32.cs:
15337           - Implemented GetWindowState() and SetWindowState() methods
15338           - Fixed Win32GetWindowLong return type
15339         * XplatUIX11.cs:
15340           - Introduced central function for sending NET_WM messages
15341           - Implemented GetWindowState() and SetWindowState() methods
15342         * TextBoxBase.cs (set_Lines):
15343           - Now uses Foreground color for text added via Text property (Duh!)
15344           - Added code to remember programmatically requested size (fixes
15345             behaviour when Multiline is set after Size)
15346           - Added AutoSize logic
15347
15348 2005-01-06  Jackson Harper  <jackson@ximian.com>
15349
15350         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
15351
15352 2005-01-06  Jackson Harper  <jackson@ximian.com>
15353
15354         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
15355         set to less then 0.
15356
15357 2005-01-06  Jackson Harper  <jackson@ximian.com>
15358
15359         * ScrollableControl.cs: Lazy init the scrollbars.
15360         
15361 2005-01-06  Jackson Harper  <jackson@ximian.com>
15362
15363         * Theme.cs: Speed up getting pens and solid brushes, by using
15364         their ARGB as a hash instead of tostring and not calling Contains.
15365
15366 2005-01-06  Peter Bartok <pbartok@novell.com>
15367
15368         * Form.cs:
15369           - Implemented OnActivated and OnDeactivate event trigger
15370           - Implemented Activate() method
15371           - Fixed ShowDialog() to activate the form that was active before
15372             the dialog was shown
15373         * XplatUIX11.cs:
15374           - Added global active_window var that tracks the currently active
15375             X11 window
15376           - Now always grabs Property changes from the root window to always
15377             catch changes on the active window property
15378           - Added code to PropertyNotify handler to send Active/Inactive
15379             messages when state changes. This puts X11 and Win32 en par on
15380             WM_ACTIVATE notifications (except for double notifications when
15381             the user clicks away from our modal window to another one of our
15382             windows)
15383
15384 2005-01-05  Jackson Harper  <jackson@ximian.com>
15385
15386         * ImageList.cs: Implment ctor
15387
15388 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15389
15390         * XplatUIOSX.cs: Implement Activate/SetTopmost
15391
15392 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15393
15394         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
15395
15396 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15397
15398         * XplatUIOSX.cs: Implement GetActive/SetFocus.
15399
15400 2005-01-05  Peter Bartok <pbartok@novell.com>
15401
15402         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
15403           XplatUIOSX.cs: Added GetActive method to return the currently
15404           active window for the application (or null, if none is active)
15405         * Form.cs:
15406           - Implemented ActiveForm
15407           - Commented out owner assignment for modal dialogs (causes problems
15408             on Win32, since the owner will be disabled)
15409           - Reworked some Active/Focus handling (still incomplete)
15410         * CommonDialog.cs: Commented out owner assignment for modal dialogs
15411           (causes problems on Win32, since the owner will be disabled)
15412         * IWin32Window: Added ComVisible attribute
15413
15414 2005-01-05  Peter Bartok <pbartok@novell.com>
15415
15416         * ToolTip.cs (WndProc): Enable setting focus now that we have the
15417           required XplatUI functions.
15418
15419 2005-01-05  Peter Bartok <pbartok@novell.com>
15420
15421         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
15422           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
15423           to implement focus and activation handling; still incomplete and
15424           with debug output
15425
15426 2005-01-04  Peter Bartok <pbartok@novell.com>
15427
15428         * TextBoxBase.cs: Changed access level for Document property to
15429           match switch to internal for TextControl
15430
15431 2005-01-04  Peter Bartok <pbartok@novell.com>
15432
15433         * AccessibleObject: Added ComVisible attribute
15434
15435 2005-01-04  Jackson Harper  <jackson@ximian.com>
15436
15437         * X11Keyboard.cs: Remove unneeded var.
15438
15439 2005-01-04  Jackson Harper  <jackson@ximian.com>
15440
15441         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
15442         but PAINT.
15443         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
15444         ClientMessage. This makes apps exit cleanly (more often).
15445         
15446 2005-01-04  Jackson Harper  <jackson@ximian.com>
15447
15448         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
15449         handling focus, return correct colors and fonts,
15450         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
15451         handle selection, horizontal scrolling, and mouse interaction.
15452
15453 2005-01-04  Peter Bartok <pbartok@novell.com>
15454
15455         * ICommandExecutor.cs: Added
15456         * IDataGridColumnStyleEditingNotificationService.cs: Added
15457         * IFeatureSupport.cs: Added
15458         * IFileReaderService.cs: Added
15459         * IDataObject.cs: Added ComVisible attribute
15460         * AmbientProperties.cs: Added
15461         * BaseCollection.cs: Added missing attributes
15462         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
15463         * BaseCollection.cs: Added missing attributes
15464         * Binding.cs: Added TypeConverter attribute
15465         * BindingContext.cs: Added DefaultEvent attribute
15466         * BindingsCollection.cs: Added DefaultEvent attribute
15467         * Button.cs: Added DefaultValue attribute
15468         * DragEventArgs.cs: Added ComVisible attribute
15469         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
15470         * KeyEventArgs.cs: Added ComVisible attribute
15471         * KeyPressEventArgs.cs: Added ComVisible attribute
15472         * MouseEventArgs.cs: Added ComVisible attribute
15473         * NavigateEventArgs.cs: Added
15474         * NavigateEventHandler.cs: Added
15475         * FeatureSupport.cs: Added
15476         * OSFeature.cs: Added
15477         * Theme.cs: Added abstract Version property to support OSFeature
15478         * ThemeWin32Classic.cs: Added Version property to
15479           support OSFeature.Themes
15480         * ProgressBar.cs: Removed OnPaintBackground override, not required since
15481           the proper styles to avoid background drawing are set, also doesn't
15482           match MS signature
15483         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
15484         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
15485         * ScrollEventArgs.cs: Added ComVisible attribute
15486         * SplitterEventArgs.cs: Added ComVisible attribute
15487         * AccessibleSelection.cs: Added Flags attribute
15488         * Appearance.cs: Added ComVisible attribute
15489         * Border3DSide.cs: Added ComVisible attribute
15490         * Border3DStyle.cs: Added ComVisible attribute
15491         * BorderStyle.cs: Added ComVisible attribute
15492         * DragAction.cs: Added ComVisible attribute
15493         * ErrorBlinkStyle.cs: Added
15494         * ScrollEventType.cs: Added ComVisible attribute
15495         * AnchorStyles.cs: Added Editor attribute
15496         * DockStyle.cs: Added Editor attribute
15497         * HorizontalAlignment.cs: Added ComVisible attribute
15498         * HelpEventArgs.cs: Added ComVisible attribute
15499         * PaintEventArgs.cs: Added IDisposable
15500
15501 2005-01-04  Peter Bartok <pbartok@novell.com>
15502
15503         * TextControl.cs: Switched Line, LineTag and Document classes to
15504           internal
15505
15506 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15507
15508         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
15509         Simple mode, fixes, IntegralHeight, etc.
15510
15511 2005-01-04  Peter Bartok <pbartok@novell.com>
15512
15513         * TextBoxBase.cs: Using proper font variable now
15514
15515 2005-01-04  Peter Bartok <pbartok@novell.com>
15516
15517         * Form.cs (ShowDialog): Set parent to owner, if provided
15518         * GroupBox.cs: Removed unused vars
15519         * TextControl.cs:
15520           - Added GetHashCode() for Document and LineTag classes
15521           - Removed unused variables
15522           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
15523             to allow translation between continuous char position and line/pos
15524         * CheckBox.cs: Removed vars that are provided by base class
15525         * RadioButton.cs: Removed vars that are provided by base class, added
15526           new keyword where required
15527         * LinkLabel.cs: Added new keyword where required
15528         * Control.cs (WndProc): Removed unused variable
15529         * TextBoxBase.cs:
15530           - Finished SelectionLength property
15531           - Implemented SelectionStart property
15532           - Implemented Text property
15533           - Removed unused vars
15534         * MessageBox.cs: Added new keyword where required
15535         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
15536           WndProc signature
15537         * MenuAPI.cs: Added new keyword where required
15538         * ButtonBase.cs: Removed vars that are provided by base class, added
15539           new keyword where required
15540         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
15541           argument to double, to allow compiling with csc 2.0 (Atsushi ran
15542           into this)
15543         * Application.cs (Run): Now triggers the ThreadExit event
15544         * CommonDialog.cs: Added new keyword where required; now properly sets
15545           parent (owner) for dialog
15546         * XplatUIX11.cs: Commented out unused vars
15547         * StatusBar.cs: Fixed signature for Text property
15548         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
15549
15550 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15551
15552         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
15553         TrackBar.cs, MonthCalendar.cs: remove unused vars
15554
15555 2005-01-03  Jackson Harper  <jackson@ximian.com>
15556
15557         * ThemeWin32Classic.cs:
15558         * X11Keyboard.cs: Remove unused vars.
15559
15560 2005-01-03  Peter Bartok  <pbartok@novell.com>
15561
15562         * TextBox.cs:
15563           - set_Text: Tied into TextControl
15564           - set_TextAlignment: Tied into TextControl
15565         * TextControl.cs:
15566           - Added alignment properties and implemented alignment handling
15567             and drawing (still has a bug, not generating proper expose events)
15568           - Added new Line() constructor to allow passing the line alignment
15569           - Fixed selection setting, properly handling end<start now
15570           - Added aligment considerations to RecalculateDocument()
15571         * TextBoxBase.cs:
15572           - Now properly enforces control height for single line controls
15573           - Added support for CharacterCasing
15574           - Added IsInputKey override
15575           - Fixed Keys.Enter logic
15576           - Added SetBoundsCore override
15577           - Fixed mouse selection handling
15578
15579 2005-01-03  Jackson Harper  <jackson@ximian.com>
15580
15581         * TreeView.cs:
15582           - Collapse and uncheck all nodes when CheckBoxes is disabled.
15583           - Checkboxes are always aligned to the bottom of the node,
15584           regardless of item height.
15585           - Use the node bounds to draw the text so we can center it when
15586           the item height is greater then the font height.
15587           - Node::Bounds are only the text part of the node.
15588         * TreeNode.cs: New method to combine collapsing and unchecking all
15589           nodes recursively.
15590
15591 2005-01-02  Jackson Harper  <jackson@ximian.com>
15592
15593         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
15594         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
15595         tree when a check is changed. TODO: Only refresh the checked node.
15596
15597 2004-12-30  Jackson Harper  <jackson@ximian.com>
15598
15599         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
15600         * TreeNode.cs: When collapsing make sure to never collapse the
15601         root node.
15602
15603 2004-12-29  Jackson Harper  <jackson@ximian.com>
15604
15605         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
15606         
15607 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
15608
15609         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
15610
15611 2004-12-28  Peter Bartok  <pbartok@novell.com>
15612
15613         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
15614           not yet assigned
15615
15616 2004-12-28  Peter Bartok  <pbartok@novell.com>
15617
15618         * Control.cs (WndProc): Added WM_HELP handler, now generates
15619           HelpRequested event
15620         * Form.cs: Added HelpButton property and required support code
15621         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
15622
15623 2004-12-28  Peter Bartok  <pbartok@novell.com>
15624
15625         * CommonDialog.cs:
15626           - Made DialogForm.owner variable internal
15627           - Added check to ensure owner form is set before setting
15628             owner properties in CreateParams
15629
15630 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
15631
15632         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
15633           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
15634           GetCursorPos.  Fix major visibility issues.  Rework the windowing
15635           system to support borderless/titleless windows (implements menus).
15636           Fix GetWindowPos.  Implement initial background color support for
15637           views.
15638
15639 2004-12-28  Peter Bartok  <pbartok@novell.com>
15640
15641         * Form.cs (get_CreateParams): Make sure we have an owner before using
15642           the owner variable. Implement proper default if no owner exists
15643
15644 2004-12-28  Peter Bartok  <pbartok@novell.com>
15645
15646         * In preparation for making Managed.Windows.Forms the default build target
15647           for System.Windows.Forms, the following stubbed files were added.
15648           Dialogs are currently being implemented by contributors and are only
15649           short-term place holders.
15650         * ColorDialog.cs: Initial check-in (minmal stub)
15651         * DataGrid.cs: Initial check-in (minimal stub)
15652         * DataGridLineStyle.cs: Initial check-in (minimal stub)
15653         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
15654         * DataGridTableStyle.cs: Initial check-in (minimal stub)
15655         * FontDialog.cs: Initial check-in (minimal stub)
15656         * FileDialog.cs: Initial check-in (minimal stub)
15657         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
15658         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
15659         * OpenFileDialog: Initial check-in (minimal stub)
15660         * IComponentEditorPageSite.cs: Initial check-in
15661         * Splitter.cs: Initial check-in (for Jackson)
15662         * SplitterEventArgs.cs: Initial check-in (for Jackson)
15663         * SplitterEventHandler.cs: Initial check-in (for Jackson)
15664         * TextBox.cs: Initial check-in; still needs some wiring to
15665           TextControl backend
15666         * Form.cs: Implemented ControlBox property
15667         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
15668         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
15669         * TextControl.cs: Added selection functionality; added todo header
15670         * TextBoxBase.cs:
15671           - Implemented Lines property
15672           - Implemented TextHeight property
15673           - Implemented SelectedText property
15674           - Implemented SelectionLength property
15675           - Implemented SelectAll method
15676           - Implemented ToString method
15677           - Removed and cleaned up some debug code
15678           - Implemented (still buggy) mouse text selection
15679
15680 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
15681
15682         * ComboBox.cs: Complete DropDownList implementation, fixes.
15683
15684 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
15685
15686         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
15687         * ComboBoxStyle.cs: ComboBoxStyle enum
15688         * ComboBox.cs: Initial work on ComboBox control
15689
15690 2004-12-21  Peter Bartok  <pbartok@novell.com>
15691
15692         * Control.cs (ctor, CreateParams): Moved setting of is_visible
15693           forward so that anything that creates a window gets the default,
15694           also no longer uses Visible property in CreateParams to avoid
15695           walking up the parent chain and possibly get the wrong visible
15696           status. Fixed IsVisible to no longer walk up to the parent.
15697
15698 2004-12-21  Peter Bartok  <pbartok@novell.com>
15699
15700         * Form.cs (ShowDialog): Unset modality for the proper window
15701  
15702 2004-12-20  Peter Bartok  <pbartok@novell.com>
15703
15704         * CommonDialog.cs: Initial check-in
15705
15706 2004-12-20  Peter Bartok  <pbartok@novell.com>
15707
15708         * Control.cs (Visible): Now uses the parent window instead of the
15709           client area window for the property
15710
15711         * Form.cs
15712           - ShowDialog(): Now uses the proper window for modality
15713           - The default visibility state for the form parent is now false. This
15714             will prevent the user from seeing all the changes to the form and
15715             its controls before the application hits Application.Run()
15716           - Removed some stale commented out code
15717
15718         * NativeWindow.cs:
15719           - Added FindWindow() method to have a method to check for existence
15720             of a window handle
15721           - Added ability to override default exception handling (for example
15722             when debugging with VS.Net; to do this the ExternalExceptionHandler
15723             define must be set
15724           - Removed some useless debug output
15725
15726         * XplatUIX11.cs:
15727           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
15728             not working as expected
15729           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
15730             property to allow switching back to the modal window if focus is
15731             given to another one of our windows (Application Modal)
15732           - Now only sets override_redirect if we create a window
15733             without WS_CAPTION
15734           - Moved EventMask selection before mapping of newly created window
15735             so we can catch the map event as well
15736           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
15737           - Added various Atom related DllImports
15738           - Implemented Exit() method
15739           - .ctor() : No longer shows window if WS_VISIBLE is not defined
15740             in the CreateParams
15741
15742         * MessageBox.cs: Now properly deals with the FormParent window by
15743           providing an override the FormParent CreateParams property to
15744           set as POPUP instead of OVERLAPPED window.
15745
15746 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15747
15748         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
15749         Minor code cleanup.
15750
15751 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15752         
15753         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
15754
15755 2004-12-18  Peter Bartok  <pbartok@novell.com>
15756
15757         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
15758           implementing SetModal() method
15759
15760 2004-12-18  Peter Bartok  <pbartok@novell.com>
15761
15762         * X11Structs.cs (XGCValues): Fixed type of function element
15763         * XplatUI.cs: Added ScrollWindow() method
15764         * XplatUIDriver.cs: Added ScrollWindow() abstract
15765         * XplatUIWin32.cs: Implemented ScrollWindow() method
15766         * XplatUIX11.cs: Implemented ScrollWindow() method
15767         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
15768
15769 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15770
15771         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
15772         Some more keyboard support (INCOMPLETE)
15773
15774 2004-12-17  Peter Bartok  <pbartok@novell.com>
15775
15776         * TextControl.cs:
15777         - Added color attribute to line tags.
15778         - Added color argument to all functions dealing with tags
15779         - Added color argument support to various functions
15780         - Fixed miss-calculation of baseline/shift in certain circumstances
15781
15782         * TextBoxBase.cs: Added new color option to test code
15783
15784 2004-12-17  Jackson Harper  <jackson@ximian.com>
15785
15786         * TreeNode.cs:
15787         * MonthCalendar.cs: Signature fixes
15788
15789 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15790
15791         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
15792         keyboard event moved it.  Create a new graphics context for each paint resolves this
15793
15794 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15795
15796         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
15797         Make caret exist and go blink blink.  Initial keyboard support.
15798         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
15799         works.
15800
15801 2004-12-17  Jackson Harper  <jackson@ximian.com>
15802
15803         * XplatUIStructs.cs: Updated set of virtual keycodes.
15804         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
15805
15806 2004-12-17  Jackson Harper  <jackson@ximian.com>
15807
15808         * XplatUIX11.cs: Prune old keyboard code.
15809
15810 2004-12-17  Jackson Harper  <jackson@ximian.com>
15811
15812         * XplatUIX11.cs: When generating mouse wparams get the modifier
15813         keys from the ModifierKeys property.
15814
15815 2004-12-17  Jackson Harper  <jackson@ximian.com>
15816
15817         * X11Keyboard.cs: Send up/down input when generating
15818         messages. Remove some unused vars.
15819
15820 2004-12-17  Jackson Harper  <jackson@ximian.com>
15821
15822         * TabControl.cs:
15823         * TreeView.cs: get rid of warnings.
15824
15825 2004-12-17  Jackson Harper  <jackson@ximian.com>
15826
15827         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
15828
15829 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
15830
15831         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
15832           CheckedListBox.cs: Implementation
15833
15834 2004-12-17  Peter Bartok  <pbartok@novell.com>
15835
15836         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
15837
15838 2004-12-16  Peter Bartok  <pbartok@novell.com>
15839
15840         * TextControl.cs:
15841           - InsertCharAtCaret(): Fixed start pos fixup
15842           - CaretLine_get: No longer derives the line from the tag, the tag
15843             could be stale if lines in the document have been added or deleted
15844           - RebalanceAfterDelete(): Fixed bug in balancing code
15845           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
15846           - Line.Streamline(): Now can also elminate leading empty tags
15847           - DumpTree(): Added a few more tests and prevented exception on
15848             uninitialized data
15849           - Added Debug section for Combining lines
15850           - Delete(): Now copies all remaining properties of a line
15851           
15852         * TextBoxBase.cs:
15853           - Left mousebutton now sets the caret (and middle button still acts
15854             as formatting tester, which must go away soon)
15855           - Added Debug section for Deleting/Combining lines
15856           - Fixed calculations for UpdateView after Combining lines
15857
15858 2004-12-16  Peter Bartok  <pbartok@novell.com>
15859
15860         * TextControl.cs: Now properly aligns text on a baseline, using the
15861           new XplatUI.GetFontMetrics() method. Simplified several calculations
15862         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
15863           defined
15864
15865 2004-12-16  Peter Bartok  <pbartok@novell.com>
15866
15867         * XplatUI.cs: Added GetFontMetrics() method
15868         * XplatUIDriver.cs: Added GetFontMetrics() abstract
15869         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
15870           into libgdiplus, our private GetFontMetrics function
15871         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
15872         * XplatUIWin32.cs: Implemented GetFontMetrics() method
15873
15874 2004-12-16  Jackson Harper  <jackson@ximain.com>
15875
15876         * XplatUIStruct.cs: Add enum for dead keys
15877         * X11Keyboard.cs: Map and unmap dead keys.
15878
15879 2004-12-16  Jackson Harper  <jackson@ximian.com>
15880
15881         * X11Keyboard.cs: Detect and use the num lock mask.
15882
15883 2004-12-16  Peter Bartok  <pbartok@novell.com>
15884
15885         * Control.cs (CreateGraphics): Added check to make sure the
15886           handle of the window exists before calling Graphics.FromHwnd()
15887
15888 2004-12-16  Peter Bartok  <pbartok@novell.com>
15889
15890         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
15891           contains a lot of code that's not supposed to be there for the
15892           real thing, but required for developing/testing the textbox
15893           backend.
15894
15895 2004-12-16  Peter Bartok  <pbartok@novell.com>
15896
15897         * TextControl.cs:
15898         - Fixed Streamline method
15899         - Added FindTag method to Line
15900         - Added DumpTree method for debugging
15901         - Added DecrementLines() method for deleting lines
15902         - Fixed UpdateView to update the cursor to end-of-line on single-line
15903           updates
15904         - Added PositionCaret() method
15905         - Fixed MoveCaret(LineDown) to move into the last line, too
15906         - Added InsertChar overload
15907         - Fixed InsertChar tag offset calculations
15908         - Added DeleteChar() method
15909         - Added Combine() method for folding lines
15910         - Fixed Delete() method, no longer allocates wasted Line object and
15911           now copies all properties when swapping nodes
15912         - Delete() method now updates document line counter
15913
15914 2004-12-15  Jackson Harper  <jackson@ximian.com>
15915
15916         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
15917         * X11Keyboard.cs: Expose the currently selected modifier keys
15918         through a property.
15919
15920 2004-12-15  Peter Bartok  <pbartok@novell.com>
15921
15922         * TextControl.cs: Initial check-in. Still incomplete
15923
15924 2004-12-15  Jackson Harper  <jackson@ximian.com>
15925
15926         * TreeNode.cs:
15927         * TreeView.cs: Fix build on csc (second time today ;-))
15928
15929 2004-12-15  Jackson Harper  <jackson@ximian.com>
15930
15931         * TreeView.cs: Store the treenodes plus/minus box bounds when it
15932         is calculated and use this for click testing.
15933         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
15934
15935 2004-12-15  Jackson Harper  <jackson@ximian.com>
15936
15937         * TreeView.cs: Pass the nodes image index to the image list when
15938         drawing that image.
15939
15940 2004-12-15  Jackson Harper  <jackson@ximian.com>
15941
15942         * X11Keyboard.cs: Set messages hwnd.
15943         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
15944         post_message calls.
15945
15946 2004-12-15  Jackson Harper  <jackson@ximian.com>
15947
15948         * X11Keyboard.cs: Fix to compile with csc.
15949         
15950 2004-12-15  Jackson Harper  <jackson@ximian.com>
15951
15952         * X11Structs.cs: Add key mask values
15953         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
15954         * X11Keyboard.cs: New file - Extrapolates and interpolates key
15955         down/up foo into WM_CHAR foo
15956         * KeyboardLayouts.cs: Common keyboard layouts
15957         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
15958         post messages into the main queue.
15959
15960 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
15961
15962         * Button.cs: implement ProcessMnemonic
15963         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
15964           brushes everytime
15965         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
15966         * ButtonBase.cs: Show HotkeyPrefix (not the &)
15967
15968 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
15969         
15970         * MonthCalendar.cs: Implemented click-hold for next/previous month
15971           and date selection
15972           
15973 2004-12-11  Peter Bartok  <pbartok@novell.com>
15974
15975         * X11Structs.cs:
15976           - Added XKeyboardState (moved from XplatUIX11.cs)
15977           - Added XCreateGC related enums and structures
15978           - Added GXFunction for XSetFunction
15979
15980         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
15981
15982         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
15983           CaretVisible() calls
15984
15985         * ToolTip.cs: Added code to prevent stealing focus from app windows
15986
15987         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
15988           DestroyCaret, SetCaretPos and CaretVisible)
15989
15990         * XplatUIX11.cs:
15991           - Added implementation for caret functions
15992           - Moved hover variables into a struct, to make it a bit easier
15993             on the eyes and to debug
15994           - Removed XKeyboardState (moved to XplatUIX11.cs)
15995           - Moved Keyboard properties into the properties region
15996
15997         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
15998           call to get a graphics context for our control
15999
16000         * XplatUIOSX.cs: Added empty overrides for the new caret functions
16001
16002         * TreeView.cs: Fixed bug. No matter what color was set it would always
16003           return SystemColors.Window
16004
16005         * XplatUIWin32.cs: Implemented caret overrides
16006
16007 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
16008
16009         * ListBox.cs: fire events, implement missing methods and properties,
16010         sorting.
16011
16012 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
16013
16014         * MonthCalendar.cs: invalidation bug fixing
16015         * ThemeWin32Classic.cs: paint fixing
16016
16017 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
16018
16019         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
16020         prepare the CGContextRef there now.
16021
16022 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
16023
16024         * MonthCalendar.cs:
16025           - optimisationL only invalidate areas that have changed
16026         * ThemeWin32Classic.cs:
16027           - only paint parts that intersect with clip_area
16028
16029 2004-12-09  Peter Bartok  <pbartok@novell.com>
16030
16031         * Application.cs: Undid changes from r37004 which cause problems
16032         on X11
16033
16034 2004-12-09  Ravindra  <rkumar@novell.com>
16035
16036         * ToolBar.cs: Added support for displaying ContextMenu
16037         attached to a button on ToolBar.
16038         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
16039         property.
16040
16041 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16042
16043         * Label.cs: autosize works in text change and removes unnecessary
16044         invalidate
16045
16046 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16047
16048         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
16049         remove warnings
16050
16051 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
16052
16053         * XplatUIOSX.cs: Added mouse move/click/grab support
16054         Remove some debugging WriteLines not needed anymore.
16055         Add window resizing/positioning.
16056         Fix visibility on reparenting.
16057
16058 2004-12-08  Peter Bartok  <pbartok@novell.com>
16059
16060         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
16061
16062 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
16063
16064         * XplatUIOSX.cs: Initial checkin
16065         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
16066
16067 2004-12-03  Ravindra <rkumar@novell.com>
16068
16069         * ListView.cs: Added some keybindings and fixed scrolling.
16070         ScrollBars listen to ValueChanged event instead of Scroll
16071         Event. This would let us take care of all changes being
16072         done in the scrollbars' values programmatically or manually.
16073         * ListView.cs (CanMultiselect): Added a check for shift key.
16074         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
16075         * ListViewItem.cs (Clone): Fixed. We need to make a copy
16076         of ListViewSubItemCollection as well.
16077
16078 2004-12-06  Peter Bartok <pbartok@novell.com>
16079
16080         * Control.cs (Parent): Added check and exception to prevent
16081         circular parenting
16082
16083 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
16084
16085         * ListBox.cs: implemented clipping, selection single and multiple,
16086         bug fixing
16087
16088 2004-12-03  Ravindra <rkumar@novell.com>
16089
16090         * ListView.cs (ListView_KeyDown):
16091         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
16092         when CTRL key is pressed.
16093         * ListViewItem.cs (Selected): Fixed setting the property.
16094
16095 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16096
16097         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
16098
16099         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
16100         MinimizeBox, ShowInTaskbar, TopMost properties.
16101
16102         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
16103         will be implemented).
16104
16105 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16106
16107         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
16108
16109         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
16110         tests.
16111         
16112         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
16113         
16114         * TreeView.cs: BackColor is Colors.Window.
16115
16116 2004-12-01  Jackson Harper  <jackson@ximian.com>
16117
16118         * TreeView.cs: When resizing the tree if the user is making it
16119         smaller we don't get expose events, so we need to handle adding
16120         the horizontal scrollbar in the size changed handler as well as
16121         the expose handler.
16122
16123 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
16124
16125         * DrawItemState.cs: fixes wrong enum values
16126
16127 2004-12-01  Jackson Harper  <jackson@ximian.com>
16128
16129         * TreeView.cs: Resize the hbar as well as the vbar on resize.
16130
16131 2004-12-01  Jackson Harper  <jackson@ximian.com>
16132
16133         * NodeLabelEditEventArgs.cs:
16134         * NodeLabelEditEventHandler.cs:
16135         * OpenTreeNodeEnumerator.cs:
16136         * TreeNode.cs:
16137         * TreeNodeCollection.cs:
16138         * TreeView.cs:
16139         * TreeViewAction.cs:
16140         * TreeViewCancelEventArgs.cs:
16141         * TreeViewCancelEventHandler.cs:
16142         * TreeViewEventArgs.cs:
16143         * TreeViewEventHandler.cs: Initial implementation.
16144
16145 2004-12-01  Ravindra <rkumar@novell.com>
16146
16147         * ListView.cs (CalculateListView): Fixed scrolling related
16148         calculations. Also, removed some debug statements from other
16149         places.
16150         * ListViewItem.cs: Changed access to 'selected' instance variable
16151         from private to internal.
16152         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
16153
16154 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
16155
16156         * ThemeWin32Classic.cs: remove cache of brush and pens for
16157         specific controls and use the global system, fixes scrollbutton
16158         bugs (for small sizes, disabled, etc)
16159         
16160         * ScrollBar.cs: does not show the thumb for very small controls
16161         (as MS) and allow smaller buttons that the regular size
16162
16163 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
16164
16165         * UpDownBase.cs: Add abstract methods for the interface.
16166         Add new virtual methods (need to be hooked up to TextEntry when it
16167         exists).
16168         Add override methods for most features.
16169         Computes the size, forces the height of the text entry.
16170
16171         * NumericUpDown.cs: Put here the current testing code.
16172
16173         * Set eol-style property on all files that do not have mixed line
16174         endings, to minimize the future problems.  There are still a few
16175         files with mixed endings, and someone should choose whether they
16176         want to move it or not.
16177
16178 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
16179
16180         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
16181         System.Colors
16182         
16183 2004-11-30  Ravindra <rkumar@novell.com>
16184
16185         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
16186         drawing and replaced use of SystemColors by theme colors.
16187         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
16188         * ListView.cs (ListViewItemCollection.Add): Throw exception when
16189         same ListViewItem is being added more than once.
16190
16191 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
16192
16193         * MonthCalendar.cs:
16194           - ControlStyles love to make the control not flicker
16195           
16196 2004-11-30  Peter Bartok  <pbartok@novell.com>
16197
16198         * CharacterCasing.cs: Added
16199
16200 2004-11-29  Peter Bartok  <pbartok@novell.com>
16201
16202         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16203           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
16204           I am removing these files as they conflict with already completed
16205           work. While it is fantastic to get contributions to MWF, I
16206           respectfully ask that everyone please coordinate their contributions
16207           through mono-winforms-list or #mono-winforms at this time. We're
16208           explicitly avoiding stubbing and don't want controls that don't have
16209           their basic functionality implemented in svn. Please also see
16210           http://www.mono-project.com/contributing/winforms.html
16211
16212
16213 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
16214
16215         * Application.cs (ModalRun): Don't hang after exit.
16216
16217         * Theme.cs: New TreeViewDefaultSize property.
16218
16219         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
16220         with less hardcoded SystemColors constant.
16221         Implemented TreeViewDefaultSize.
16222
16223         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16224         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
16225
16226
16227 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
16228
16229         * MonthCalendar.cs:
16230           - Fix NextMonthDate and PrevMonthDate click moving calendar
16231
16232 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16233
16234         * MonthCalendar.cs:
16235           - Fix usage of ScrollChange Property when scrolling months
16236
16237 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
16238
16239         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
16240          - Fixes menu destroying
16241          - Support adding and removing items on already created menus
16242
16243 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16244
16245         * MonthCalendar.cs:
16246           - Re-worked all bolded dates handling to match win32
16247         * ThemeWin32Classic.cs:
16248           - Fixed rendering with bolded dates
16249
16250 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
16251
16252         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
16253         - Horizontal scroolbar
16254         - Multicolumn
16255         - Fixes
16256
16257
16258 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
16259
16260         * MonthCalendar.cs:
16261           - Fix Usage of MaxSelectionCount from SelectionRange
16262           - Fixed Shift + Cursor Selection
16263           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
16264           - Fixed normal cursor selection to be compat with win32
16265           - Fixed Shift + Mouse Click selection
16266
16267 2004-11-24  Peter Bartok <pbartok@novell.com>
16268
16269         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
16270         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
16271         * XplatUIX11.cs:
16272           - CreatedKeyBoardMsg now updates keystate with Alt key
16273           - Added workaround for timer crash to CheckTimers, Jackson will
16274             develop a proper fix and check in later
16275           - Implemented DispatchMessage
16276           - Removed calling the native window proc from GetMessage (call
16277             now moved to DispatchMessage)
16278
16279         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
16280           the keydata (Fixes bug #69831)
16281
16282         * XplatUIWin32.cs:
16283           - (DispatchMessage): Switched to return IntPtr
16284           - Added DllImport for SetFocus
16285
16286 2004-11-24  Ravindra <rkumar@novell.com>
16287
16288         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
16289         background drawing.
16290         * ListViewItem.cs: Fixed various properties, calculations
16291         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
16292         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
16293         and some internal properties. Fixed MouseDown handler and Paint
16294         method.
16295
16296 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16297
16298         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
16299
16300 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16301
16302         * ContainerControl.cs: correct accidental check in of local changes
16303
16304 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16305
16306         * ThemeWin32Classic.cs:
16307                 - Fixed Drawing Last month in grid (sometimes not showing)
16308         * MonthCalendar.cs:
16309                 - Fixed title width calculation bug (makeing title small)
16310
16311 2004-11-23  Peter Bartok <pbartok@novell.com>
16312
16313         * XplatUIX11.cs:
16314           - Added generation of WM_MOUSEHOVER event
16315           - Added missing assignment of async_method atom
16316           - Fixed WM_ERASEBKGND; now only redraws the exposed area
16317
16318 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16319
16320         * ThemeWin32Classic.cs:
16321                 - Fixed Drawing of today circle when showtodaycircle not set
16322                 - fixed drawing of first and last month in the grid (gay dates)
16323         * MonthCalendar.cs:
16324                 - Fixed Drawing of today circle
16325                 - Fixed drawing of grady dates
16326                 - Fixed HitTest for today link when ShowToday set to false
16327                 - Fixed DefaultSize to obey ShowToday
16328
16329 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16330
16331         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
16332         * System.Windows.Forms/Theme.cs
16333         * MonthCalendar.cs: added for MonthCalendar
16334         * SelectionRange.cs: added for MonthCalendar
16335         * Day.cs: added for MonthCalendar: added for MonthCalendar
16336         * DateRangeEventArgs.cs: added for MonthCalendar
16337         * DateRangeEventHandler.cs: added for MonthCalendar
16338
16339 2004-11-22  Ravindra <rkumar@novell.com>
16340
16341         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
16342         property.
16343
16344 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
16345
16346         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
16347         event handler.
16348         
16349         * NumericUpDown.cs: Added new implementation.
16350         * UpDownBase.cs: Added new implementation.
16351
16352         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
16353         implementations.
16354         
16355         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
16356         implementations.
16357
16358         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
16359         methods.
16360
16361 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
16362
16363         * Timer.cs  (Dispose): Should call the base dispose when
16364         overriding.
16365
16366 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16367
16368         * ScrollBar.cs: updates thumb position when max, min or increment
16369         is changed
16370
16371 2004-11-21  Ravindra <rkumar@novell.com>
16372
16373         * ListView.cs: Implemented item selection, activation and
16374         column header style. Fixed properties to do a redraw, if
16375         required. Added support for MouseHover, DoubleClick, KeyDown
16376         and KeyUp event handling and some minor fixes.
16377         * ListViewItem.cs: Fixed constructor.
16378         * ThemeWin32Classic.cs: Improved drawing for ListView.
16379
16380 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16381
16382         * ThemeWin32Classic.cs: initial listbox drawing code
16383         * DrawMode.cs: new enumerator
16384         * ListControl.cs: stubbed class
16385         * ListBox.cs: initial implementation
16386         * Theme.cs: new methods definitions
16387         * SelectionMode.cs: new enumerator
16388
16389 2004-11-17  Peter Bartok  <pbartok@novell.com>
16390
16391         * XplatUIWin32.cs: Added double-click events to the class style
16392         * Control.cs (WndProc):
16393           - Added handling of click-count to MouseDown/ MouseUp events.
16394           - Added handling of middle and right mouse buttons
16395           - Removed old debug code
16396
16397 2004-11-17  Jackson Harper  <jackson@ximian.com>
16398
16399         * XplatUIX11.cs: Use the new Mono.Unix namespace.
16400
16401 2004-11-17  Ravindra <rkumar@novell.com>
16402
16403         * ListView.cs: Added event handling for MouseMove/Up/Down.
16404         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
16405         * ThemeWin32Classic.cs: We need to clear the graphics context and
16406         draw column header in a proper state.
16407
16408
16409 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
16410
16411         *  Menu.cs: fixes signature
16412
16413 2004-11-16  Peter Bartok  <pbartok@novell.com>
16414
16415         * XplatUIX11.cs (GetMessage): Implemented generation of
16416           double click mouse messages
16417
16418 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
16419
16420         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
16421         not by menu
16422
16423 2004-11-11  Peter Bartok  <pbartok@novell.com>
16424
16425         * HandleData.cs: Added Visible property
16426         * XplatUIX11.cs (IsVisible): Now uses Visible property from
16427           HandleData
16428         * XplatUIX11.cs: Removed old debug leftovers
16429         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
16430         * Control.cs (WndProc): Removed old debug leftovers,
16431           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
16432           needed WM_SIZE handling
16433
16434 2004-11-11  Jackson Harper  <jackson@ximian.com>
16435
16436         * OwnerDrawPropertyBag.cs:
16437         * TreeViewImageIndexConverter.cs: Initial implementation
16438
16439 2004-11-10  Jackson Harper  <jackson@ximian.com>
16440
16441         * ThemeWin32Classic.cs:
16442         * TabControl.cs: instead of moving tabs by the slider pos just
16443         start drawing at the tab that is offset by the slider. This way
16444         scrolling always moves by exactly one tab.
16445
16446 2004-11-10  Jackson Harper  <jackson@ximian.com>
16447
16448         * TabControl.cs: You can only scroll left when the slider has
16449         already ben moved right.
16450         
16451 2004-11-10  Jackson Harper  <jackson@ximian.com>
16452
16453         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
16454         the clip area.
16455         
16456 2004-11-10  Jackson Harper  <jackson@ximian.com>
16457
16458         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
16459         clip area.
16460         
16461 2004-11-09  Jackson Harper  <jackson@ximian.com>
16462
16463         * TabControl.cs (CalcXPos): New helper method so we can determine
16464         the proper place to start drawing vertical tabs.
16465         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
16466         
16467 2004-11-09  Jackson Harper  <jackson@ximian.com>
16468
16469         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
16470         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
16471         and Bottom, left and right are illegal values for this and
16472         multiline is enabled when the alignment is set to left or right.
16473         (DrawTab): Each alignment block should draw the text itself now
16474         because Left requires special love. Also add rendering for Left
16475         aligned tabs.
16476         
16477 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
16478
16479         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
16480         does not destroy the windows, removes debugging messages
16481
16482 2004-11-09  jba  <jba-mono@optusnet.com.au>
16483
16484         * ThemeWin32Classic.cs
16485         (DrawButtonBase): Fix verticle text rect clipping in windows
16486         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16487         rendering and incorrect text rect clipping
16488         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16489         rendering and incorrect text rect clipping
16490         
16491 2004-11-08  Jackson Harper  <jackson@ximian.com>
16492
16493         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
16494         bottom when they are bottom aligned so the bottoms of the tabs get
16495         displayed.
16496         * TabControl.cs (DropRow): Move rows up instead of down when the
16497         tab control is bottom aligned.
16498
16499 2004-11-08 13:59  pbartok
16500
16501         * XplatUIX11.cs:
16502           - Added handling for various window styles
16503           - Added handling for popup windows
16504           - Added SetTopmost handling
16505
16506 2004-11-08 13:55  pbartok
16507
16508         * XplatUIWin32.cs:
16509           - Added argument to SetTopmost method
16510           - Fixed broken ClientToScreen function
16511
16512 2004-11-08 13:53  pbartok
16513
16514         * XplatUIStructs.cs:
16515           - Added missing WS_EX styles
16516
16517 2004-11-08 13:53  pbartok
16518
16519         * XplatUI.cs, XplatUIDriver.cs:
16520           - Added argument to SetTopmost
16521
16522 2004-11-08 13:52  pbartok
16523
16524         * X11Structs.cs:
16525           - Added XSetWindowAttributes structure
16526           - Improved XWindowAttributes structure
16527           - Added SetWindowValuemask enum
16528           - Added window creation arguments enum
16529           - Added gravity enum
16530           - Added Motif hints structure
16531           - Added various Motif flags and enums
16532           - Added PropertyMode enum for property functions
16533
16534 2004-11-08 13:50  pbartok
16535
16536         * Form.cs:
16537           - Fixed arguments for updated SetTopmost method
16538
16539 2004-11-08 13:49  pbartok
16540
16541         * ToolTip.cs:
16542           - Fixed arguments for updated SetTopmost function
16543           - Fixed usage of PointToClient
16544
16545 2004-11-08 13:44  pbartok
16546
16547         * MenuAPI.cs:
16548           - Added Clipping of children and siblings
16549
16550 2004-11-08 13:41  pbartok
16551
16552         * MainMenu.cs:
16553           - Removed SetMenuBarWindow call. We do this in Form.cs
16554
16555 2004-11-08 13:40  jackson
16556
16557         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
16558           scrolling jimmi in the correct location with bottom aligned tabs
16559
16560 2004-11-08 13:36  pbartok
16561
16562         * ContainerControl.cs:
16563           - Implemented BindingContext
16564           - Implemented ParentForm
16565
16566 2004-11-08 12:46  jackson
16567
16568         * TabControl.cs: Put bottom rendered tabs in the right location
16569
16570 2004-11-08 07:15  jordi
16571
16572         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
16573           removes dead code
16574
16575 2004-11-05 17:30  jackson
16576
16577         * TabControl.cs: When selected tabs are expanded make sure they
16578           don't go beyond the edges of the tab control
16579
16580 2004-11-05 14:57  jackson
16581
16582         * TabControl.cs: Reset show_slider so if the control is resized to
16583           a size where it is no longer needed it's not displayed anymore
16584
16585 2004-11-05 13:16  jackson
16586
16587         * TabControl.cs: Make tab pages non visible when added to the
16588           control
16589
16590 2004-11-05 12:42  jackson
16591
16592         * TabControl.cs: Implement SizeMode.FillToRight
16593
16594 2004-11-05 12:16  jackson
16595
16596         * Control.cs: Do not call CreateHandle if the handle is already
16597           created
16598
16599 2004-11-05 11:46  jackson
16600
16601         * TabControl.cs: Remove superflous call to CalcTabRows
16602
16603 2004-11-05 09:07  jackson
16604
16605         * XplatUIX11.cs: Update for Mono.Posix changes
16606
16607 2004-11-05 07:00  ravindra
16608
16609         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
16610           scrolling.
16611
16612 2004-11-04 22:47  jba
16613
16614         * ThemeWin32Classic.cs:
16615           - Fix Button rendering for FlatStyle = Flat or Popup
16616           - Fix RadioButton and CheckBox rendering when Appearance = Button
16617             (normal and flatstyle).
16618           - Correct outer rectangle color when drawing focus rectangle
16619           - Adjust button bounds to be 1 px smaller when focused
16620           - Make button not draw sunken 3d border when pushed (windows compat)
16621           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
16622           - Offset the text in RadioButton and Checkbox when being rendered as
16623           a button.
16624           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
16625           radiobuttons
16626           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
16627           - Fixed disabled text rendering for normally rendered radiobuttons
16628
16629 2004-11-04 10:26  jackson
16630
16631         * TabControl.cs: Recalculate tab rows when resizing
16632
16633 2004-11-04 07:47  jordi
16634
16635         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
16636           collection completion, drawing issues, missing features
16637
16638 2004-11-04 05:03  ravindra
16639
16640         * ScrollBar.cs:
16641                 - We need to recalculate the Thumb area when
16642                 LargeChange/maximum/minimum values are changed.
16643           - We set the 'pos' in UpdatePos() method to minimum, if it's less
16644                 than minimum. This is required to handle the case if large_change is
16645                 more than max, and use LargeChange property instead of large_change
16646                 variable.
16647           - We return max+1 when large_change is more than max, like MS does.
16648
16649 2004-11-04 04:29  ravindra
16650
16651         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
16652                 - Changed default value signatures (prefixed all with ListView).
16653                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
16654                 ListView.
16655           - Fixed calculations for ListViewItem and implemented Clone()
16656           method.
16657
16658 2004-11-04 04:26  ravindra
16659
16660         * Theme.cs, ThemeWin32Classic.cs:
16661                 - Changed default ListView values signatures (prefixed all with
16662                 ListView).
16663           - Fixed default size values for VScrollBar and HScrollBar.
16664                 - Fixed DrawListViewItem method.
16665
16666 2004-11-04 04:05  ravindra
16667
16668         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
16669
16670 2004-11-04 04:04  ravindra
16671
16672         * ImageList.cs: Implemented the missing overload for Draw method.
16673
16674 2004-11-03 19:29  jackson
16675
16676         * TabControl.cs: Handle dropping rows on selection properly
16677
16678 2004-11-03 11:59  jackson
16679
16680         * TabControl.cs: remove debug code
16681
16682 2004-11-03 11:52  jackson
16683
16684         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
16685           the scrolly widgerywoo
16686
16687 2004-11-02 13:52  jackson
16688
16689         * TabControl.cs: Resize the tab pages and tabs when the tab control
16690           is resized
16691
16692 2004-11-02 13:40  jackson
16693
16694         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
16695           selected tab to the bottom
16696
16697 2004-11-02 13:39  jackson
16698
16699         * TabPage.cs: Store the tab pages row
16700
16701 2004-11-02 12:33  jordi
16702
16703         * MenuItem.cs: fixes handle creation
16704
16705 2004-11-02 11:42  jackson
16706
16707         * TabControl.cs: signature fix
16708
16709 2004-11-02 08:56  jackson
16710
16711         * TabControl.cs: Calculate whether the tab is on an edge properly.
16712           Remove top secret debugging code
16713
16714 2004-11-01 19:57  jackson
16715
16716         * TabControl.cs: Add click handling, and proper sizing
16717
16718 2004-11-01 19:47  jackson
16719
16720         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
16721           tab controls
16722
16723 2004-11-01 19:39  jackson
16724
16725         * TabPage.cs: add internal property to store the bounds of a tab
16726           page
16727
16728 2004-10-30 04:23  ravindra
16729
16730         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
16731           values.
16732
16733 2004-10-30 04:21  ravindra
16734
16735         * ListView.cs, ListViewItem.cs: Added support for scrolling and
16736           fixed calculations.
16737
16738 2004-10-30 03:06  pbartok
16739
16740         * XplatUIX11.cs:
16741           - Removed extension of DllImported libs
16742
16743 2004-10-29 09:55  jordi
16744
16745         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
16746           navigation, itemcollection completion, menu fixes
16747
16748 2004-10-27 22:58  pbartok
16749
16750         * XplatUIX11.cs:
16751           - Now throws a nice error message when no X display could be opened
16752
16753 2004-10-26 13:51  jordi
16754
16755         * ListView.cs: removes warning
16756
16757 2004-10-26 03:55  ravindra
16758
16759         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
16760           ThemeWin32Classic.cs: Some formatting for my last checkins.
16761
16762 2004-10-26 03:36  ravindra
16763
16764         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
16765           control and default values.
16766
16767 2004-10-26 03:35  ravindra
16768
16769         * Theme.cs: Added some default values for ListView control.
16770
16771 2004-10-26 03:33  ravindra
16772
16773         * ToolBar.cs: ToolBar should use the user specified button size, if
16774           there is any. Added a size_specified flag for the same.
16775
16776 2004-10-26 03:33  ravindra
16777
16778         * ColumnHeader.cs: Added some internal members and calculations for
16779           ColumnHeader.
16780
16781 2004-10-26 03:32  ravindra
16782
16783         * ListViewItem.cs: Calculations for ListViewItem.
16784
16785 2004-10-26 03:31  ravindra
16786
16787         * ListView.cs: Added some internal members and calculations for
16788           ListView.
16789
16790 2004-10-22 13:31  jordi
16791
16792         * MenuAPI.cs: speedup menus drawing
16793
16794 2004-10-22 13:16  jackson
16795
16796         * XplatUIX11.cs: Make sure to update exposed regions when adding an
16797           expose event
16798
16799 2004-10-22 11:49  jackson
16800
16801         * Control.cs: oops
16802
16803 2004-10-22 11:41  jackson
16804
16805         * Control.cs: Check to see if the window should have its background
16806           repainted by X when drawing.
16807
16808 2004-10-22 11:31  jackson
16809
16810         * XplatUIX11.cs: When invalidating areas only use XClearArea if
16811           clear is true, this way we do not get flicker from X repainting the
16812           background
16813
16814 2004-10-22 11:28  jackson
16815
16816         * XEventQueue.cs: Queue properly
16817
16818 2004-10-21 09:38  jackson
16819
16820         * XEventQueue.cs: Fix access modifier
16821
16822 2004-10-21 09:36  jackson
16823
16824         * XEventQueue.cs: Don't loose messages
16825
16826 2004-10-21 09:22  jackson
16827
16828         * XEventQueue.cs: Don't loose messages
16829
16830 2004-10-20 04:15  jordi
16831
16832         * BootMode.cs: enum need it by SystemInfo
16833
16834 2004-10-19 21:58  pbartok
16835
16836         * XplatUIWin32.cs:
16837           - Small sanity check
16838
16839 2004-10-19 21:56  pbartok
16840
16841         * Form.cs:
16842           - Added private FormParentWindow class which acts as the container
16843             for our form and as the non-client area where menus are drawn
16844           - Added/Moved required tie-ins to Jordi's menus
16845           - Fixed/Implemented the FormStartPosition functionality
16846
16847 2004-10-19 21:52  pbartok
16848
16849         * Control.cs:
16850           - Removed unneeded locals
16851           - Added code to all size and location properties to understand and
16852             deal with the parent container of Form
16853
16854 2004-10-19 21:33  pbartok
16855
16856         * Application.cs:
16857           - Fixed to deal with new Form subclasses for menus
16858
16859 2004-10-19 17:48  jackson
16860
16861         * XEventQueue.cs: commit correct version of file
16862
16863 2004-10-19 16:50  jackson
16864
16865         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
16866
16867 2004-10-19 16:15  jordi
16868
16869         * MenuAPI.cs: MenuBarCalcSize returns the height
16870
16871 2004-10-19 08:31  pbartok
16872
16873         * Control.cs:
16874           - Added missing call to PreProcessMessage before calling OnXXXKey
16875           methods
16876
16877 2004-10-19 00:04  ravindra
16878
16879         * ToolTip.cs: Fixed constructor.
16880
16881 2004-10-18 09:31  jordi
16882
16883         * MenuAPI.cs: menuitems in menubars do not have shortcuts
16884
16885 2004-10-18 09:26  jordi
16886
16887         * MenuItem.cs: fixes MenuItem class signature
16888
16889 2004-10-18 08:56  jordi
16890
16891         * MenuAPI.cs: prevents windows from showing in the taskbar
16892
16893 2004-10-18 00:28  ravindra
16894
16895         * ToolTip.cs: Suppressed a warning message.
16896
16897 2004-10-18 00:27  ravindra
16898
16899         * Control.cs: Default value of visible property must be true.
16900
16901 2004-10-17 23:19  pbartok
16902
16903         * ToolTip.cs:
16904           - Complete implementation
16905
16906 2004-10-17 23:19  pbartok
16907
16908         * XplatUIX11.cs:
16909           - Added EnableWindow method
16910           - Added SetModal stub
16911           - Added generation of WM_ACTIVATE message (still needs testing)
16912           - Added SetTopMost stub
16913           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
16914
16915 2004-10-17 23:17  pbartok
16916
16917         * XplatUIWin32.cs:
16918           - Removed VirtualKeys to XplatUIStructs
16919           - Implemented SetTopMost method
16920           - Implemented EnableWindow method
16921           - Bugfix in ScreenToClient()
16922           - Bugfixes in ClientToScreen()
16923
16924 2004-10-17 22:51  pbartok
16925
16926         * XplatUIStructs.cs:
16927           - Added WS_EX styles to WindowStyles enumeration
16928
16929 2004-10-17 22:50  pbartok
16930
16931         * XplatUI.cs, XplatUIDriver.cs:
16932           - Added method for enabling/disabling windows
16933           - Added method for setting window modality
16934           - Added method for setting topmost window
16935
16936 2004-10-17 22:49  pbartok
16937
16938         * ThemeWin32Classic.cs:
16939           - Added ToolTip drawing code
16940
16941 2004-10-17 22:49  pbartok
16942
16943         * Theme.cs:
16944           - Added ToolTip abstracts
16945
16946 2004-10-17 22:47  pbartok
16947
16948         * Form.cs:
16949           - Fixed Form.ControlCollection to handle owner relations
16950           - Added Owner/OwnedForms handling
16951           - Implemented Z-Ordering for owned forms
16952           - Removed unneeded private overload of ShowDialog
16953           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
16954             so I hope)
16955           - Fixed Close(), had wrong default
16956           - Added firing of OnLoad event
16957           - Added some commented out debug code for Ownership handling
16958
16959 2004-10-17 22:16  pbartok
16960
16961         * Control.cs:
16962           - Fixed/implemented flat list of controls
16963
16964 2004-10-17 22:14  pbartok
16965
16966         * Application.cs:
16967           - Added code to simulate modal dialogs on Win32
16968
16969 2004-10-17 16:11  jordi
16970
16971         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
16972           mouse event
16973
16974 2004-10-17 13:39  jordi
16975
16976         * MenuAPI.cs: menu drawing fixes
16977
16978 2004-10-15 09:10  ravindra
16979
16980         * StructFormat.cs: General Enum.
16981
16982 2004-10-15 09:09  ravindra
16983
16984         * SizeGripStyle.cs: Enum for Form.
16985
16986 2004-10-15 09:08  ravindra
16987
16988         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
16989           in Theme for ListView.
16990
16991 2004-10-15 09:06  ravindra
16992
16993         * ColumnHeader.cs: Flushing some formatting changes.
16994
16995 2004-10-15 09:05  ravindra
16996
16997         * ListViewItem.cs: Implemented GetBounds method and fixed coding
16998           style.
16999
17000 2004-10-15 09:03  ravindra
17001
17002         * ListView.cs: Implemented Paint method and fixed coding style.
17003
17004 2004-10-15 07:34  jordi
17005
17006         * MenuAPI.cs: fix for X11
17007
17008 2004-10-15 07:32  ravindra
17009
17010         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
17011                 - Renamed Paint() method to Draw() for clarity. Also, moved
17012                 DrawImage() to OnPaint().
17013
17014 2004-10-15 07:25  ravindra
17015
17016         * CheckBox.cs, RadioButton.cs:
17017                 - Removed Redraw (), we get it from ButtonBase.
17018                 - Implemented Paint (), to do class specific painting.
17019
17020 2004-10-15 07:16  ravindra
17021
17022         * ButtonBase.cs:
17023                 - Redraw () is not virtual now.
17024                 - Added an internal virtual method Paint (), so that
17025                 derived classes can do their painting on their own.
17026                 - Modified OnPaint () to call Paint ().
17027
17028 2004-10-15 06:43  jordi
17029
17030         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
17031           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
17032
17033 2004-10-15 00:30  ravindra
17034
17035         * MessageBox.cs:
17036                 - MessageBox on windows does not have min/max buttons.
17037                 This change in CreateParams fixes this on Windows. We
17038                 still need to implement this windowstyle behavior in
17039                 our X11 driver.
17040
17041 2004-10-14 05:14  ravindra
17042
17043         * ToolBar.cs:
17044                 - Changed Redraw () to do a Refresh () always.
17045                 - Fixed the MouseMove event handling when mouse is pressed,
17046                 ie drag event handling.
17047                 - Replaced the usage of ToolBarButton.Pressed property to
17048                 ToolBarButton.pressed internal variable.
17049
17050 2004-10-14 05:10  ravindra
17051
17052         * ToolBarButton.cs:
17053                 - Added an internal member 'inside' to handle mouse move
17054                 with mouse pressed ie mouse drag event.
17055                 - Changed 'Pressed' property to return true only when
17056                 'inside' and 'pressed' are both true.
17057                 - Some coding style love.
17058
17059 2004-10-14 00:17  ravindra
17060
17061         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
17062           public method.
17063
17064 2004-10-14 00:15  ravindra
17065
17066         * ButtonBase.cs: Redraw () related improvements.
17067
17068 2004-10-14 00:14  ravindra
17069
17070         * MessageBox.cs: Moved InitFormSize () out of Paint method and
17071           removed unnecessary calls to Button.Show () method.
17072
17073 2004-10-13 17:50  pbartok
17074
17075         * XplatUIX11.cs:
17076           - Formatting fix
17077           - Removed destroying of window until we solve the problem of X
17078             destroying the window before us on shutdown
17079
17080 2004-10-13 16:32  pbartok
17081
17082         * ButtonBase.cs:
17083           - Now Redraws on MouseUp for FlatStyle Flat and Popup
17084
17085 2004-10-13 14:18  pbartok
17086
17087         * XplatUIX11.cs:
17088           - Added code to destroy the X window
17089
17090 2004-10-13 14:18  pbartok
17091
17092         * XplatUIWin32.cs:
17093           - Added code to destroy a window
17094
17095 2004-10-13 14:12  pbartok
17096
17097         * ButtonBase.cs:
17098           - Added the Redraw on Resize that got dropped in the last rev
17099
17100 2004-10-13 09:06  pbartok
17101
17102         * ThemeWin32Classic.cs:
17103           - Path from John BouAntoun:
17104             * Fix check rendering (centre correctly for normal style, offset
17105               correctly for FlatStyle).
17106             * Fix border color usage (use backcolor) for FlatStyle.Popup
17107             * Use checkbox.Capture instead of checkbox.is_pressed when
17108               rendering flatstyle states.
17109
17110 2004-10-12 21:48  pbartok
17111
17112         * ThemeWin32Classic.cs:
17113           - Removed all occurences of SystemColors and replaced them with the
17114             matching theme color
17115
17116 2004-10-12 21:41  pbartok
17117
17118         * ThemeWin32Classic.cs:
17119           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
17120             him using the function for flatstyle drawing
17121           - Changed functions to use the new version of CPDrawBorder3D
17122
17123 2004-10-12 21:15  pbartok
17124
17125         * ControlPaint.cs:
17126           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
17127             match MS documentation. They need to return defined colors if the
17128             passed color matches the configured control color. Thanks to John
17129             BouAntoun for pointing this out.
17130
17131 2004-10-12 20:57  pbartok
17132
17133         * Control.cs:
17134           - Fix from John BouAntoun: Raise ForeColorChanged event when text
17135             color is changed
17136
17137 2004-10-12 20:46  pbartok
17138
17139         * CheckBox.cs:
17140           - Fix from John BouAntoun: Now properly sets the Appearance property
17141
17142 2004-10-12 20:45  pbartok
17143
17144         * ThemeWin32Classic.cs:
17145           - Fixes from John BouAntoun: now handles forecolors and backcolors
17146             for flatstyle rendered controls much better; It also fixes normal
17147             checkbox rendering when pushed or disabled.
17148
17149 2004-10-08 02:50  jordi
17150
17151         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
17152           work
17153
17154 2004-10-07 08:56  jordi
17155
17156         * ThemeWin32Classic.cs: Removes deletion of cached brushes
17157
17158 2004-10-06 03:59  jordi
17159
17160         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
17161           XplatUIWin32.cs: removes warnings from compilation
17162
17163 2004-10-05 12:23  jackson
17164
17165         * RadioButton.cs: Fix ctor
17166
17167 2004-10-05 11:10  pbartok
17168
17169         * MessageBox.cs:
17170           - Partial implementation by Benjamin Dasnois
17171
17172 2004-10-05 10:15  jackson
17173
17174         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
17175           by John BouAntoun
17176
17177 2004-10-05 03:07  ravindra
17178
17179         * ToolBar.cs:
17180                 - Removed a private method, Draw ().
17181                 - Fixed the ButtonDropDown event handling.
17182                 - Fixed MouseMove event handling.
17183
17184 2004-10-05 03:04  ravindra
17185
17186         * ThemeWin32Classic.cs:
17187                 - Added DrawListView method and ListViewDefaultSize property.
17188                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
17189                 - Changed DOS style CRLF to Unix format (dos2unix).
17190
17191 2004-10-05 03:03  ravindra
17192
17193         * Theme.cs:
17194                 - Added DrawListView method and ListViewDefaultSize property.
17195
17196 2004-10-05 02:42  ravindra
17197
17198         * ToolBarButton.cs: Added an internal member dd_pressed to handle
17199           clicks on DropDown arrow.
17200
17201 2004-10-04 22:56  jackson
17202
17203         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
17204           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
17205           Control handle the buffers, derived classes should not have to
17206           CreateBuffers themselves.
17207
17208 2004-10-04 21:20  jackson
17209
17210         * StatusBar.cs: The control handles resizing the buffers now.
17211
17212 2004-10-04 21:18  jackson
17213
17214         * Control.cs: When resizing the buffers should be invalidated. This
17215           should be handled in Control not in derived classes.
17216
17217 2004-10-04 14:45  jackson
17218
17219         * TabPage.cs: oops
17220
17221 2004-10-04 02:14  pbartok
17222
17223         * LeftRightAlignment.cs:
17224           - Initial check-in
17225
17226 2004-10-04 01:09  jordi
17227
17228         * ThemeWin32Classic.cs: fixes right button position causing right
17229           button not showing on horizontal scrollbars
17230
17231 2004-10-02 13:12  pbartok
17232
17233         * XplatUIX11.cs:
17234           - Simplified the Invalidate method by using an X call instead of
17235             generating the expose ourselves
17236           - Added an expose when the window background is changed
17237           - Implemented ClientToScreen method
17238
17239 2004-10-02 13:08  pbartok
17240
17241         * XplatUIWin32.cs:
17242           - Added Win32EnableWindow method (test for implementing modal
17243           dialogs)
17244           - Added ClientToScreen method and imports
17245
17246 2004-10-02 13:07  pbartok
17247
17248         * XplatUI.cs, XplatUIDriver.cs:
17249           - Added ClientToScreen coordinate translation method
17250
17251 2004-10-02 13:06  pbartok
17252
17253         * KeyPressEventArgs.cs:
17254           - Fixed access level for constructor
17255
17256 2004-10-02 13:06  pbartok
17257
17258         * NativeWindow.cs:
17259           - Changed access level for the window_collection hash table
17260
17261 2004-10-02 13:05  pbartok
17262
17263         * Form.cs:
17264           - Added KeyPreview property
17265           - Added Menu property (still incomplete, pending Jordi's menu work)
17266           - Implemented ProcessCmdKey
17267           - Implemented ProcessDialogKey
17268           - Implemented ProcessKeyPreview
17269
17270 2004-10-02 13:02  pbartok
17271
17272         * Control.cs:
17273           - Added private method to get the Control object from the window
17274           handle
17275           - Implemented ContextMenu property
17276           - Implemented PointToScreen
17277           - Implemented PreProcessMessage
17278           - Implemented IsInputChar
17279           - Implemented IsInputKey
17280           - Implemented ProcessCmdKey
17281           - Completed ProcessKeyEventArgs
17282           - Fixed message loop to call the proper chain of functions on key
17283           events
17284           - Implemented ProcessDialogChar
17285           - Implemented ProcessDialogKey
17286           - Implemented ProcessKeyMessage
17287           - Implemented ProcessKeyPreview
17288           - Added RaiseDragEvent stub (MS internal method)
17289           - Added RaiseKeyEvent stub (MS internal method)
17290           - Added RaiseMouseEvent stub (MS Internal method)
17291           - Added RaisePaintEvent stub (MS Internal method)
17292           - Added ResetMouseEventArgs stub (MS Internal method)
17293           - Implemented RtlTranslateAlignment
17294           - Implemented RtlTranslateContent
17295           - Implemented RtlTranslateHorizontal
17296           - Implemented RtlTranslateLeftRight
17297           - Added generation of KeyPress event
17298
17299 2004-10-02 05:57  ravindra
17300
17301         * ListViewItem.cs: Added attributes.
17302
17303 2004-10-02 05:32  ravindra
17304
17305         * ListView.cs: Added attributes.
17306
17307 2004-10-01 11:53  jackson
17308
17309         * Form.cs: Implement the Close method so work on MessageBox can
17310           continue.
17311
17312 2004-09-30 14:06  pbartok
17313
17314         * XplatUIX11.cs:
17315           - Bug fixes
17316
17317 2004-09-30 11:34  jackson
17318
17319         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
17320
17321 2004-09-30 07:26  ravindra
17322
17323         * ListViewItemConverter.cs: Converter for ListViewItem.
17324
17325 2004-09-30 07:26  ravindra
17326
17327         * SortOrder.cs: Enum for ListView control.
17328
17329 2004-09-30 07:25  ravindra
17330
17331         * ColumnHeader.cs: Supporting class for ListView control.
17332
17333 2004-09-30 07:24  ravindra
17334
17335         * ListView.cs, ListViewItem.cs: Initial implementation.
17336
17337 2004-09-30 07:20  ravindra
17338
17339         * ItemActivation.cs: Enum for ListView Control.
17340
17341 2004-09-29 20:29  pbartok
17342
17343         * XplatUIX11.cs:
17344           - Added lookup of pixel value for background color; tries to get a
17345             color 'close' to the requested color, it avoids having to create a
17346             colormap.  Depending on the display this could mean the used color
17347             is slightly off the desired color. Might have to change it to a more
17348             resource intensive colormap approach, but it will work as a
17349           workaround to avoid red screens.
17350
17351 2004-09-29 14:27  jackson
17352
17353         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
17354
17355 2004-09-28 12:44  pbartok
17356
17357         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
17358           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
17359           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
17360           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
17361           TrackBar.cs, VScrollBar.cs:
17362           - Streamlined Theme interfaces:
17363             * Each DrawXXX method for a control now is passed the object for
17364               the control to be drawn in order to allow accessing any state the
17365               theme might require
17366
17367             * ControlPaint methods for the theme now have a CP prefix to avoid
17368               name clashes with the Draw methods for controls
17369
17370             * Every control now retrieves it's DefaultSize from the current
17371             theme
17372
17373 2004-09-28 12:17  jackson
17374
17375         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
17376           drawing
17377
17378 2004-09-24 14:57  jackson
17379
17380         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
17381           Gives us a nice little performance boost.
17382
17383 2004-09-24 12:02  jackson
17384
17385         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
17386           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
17387           Control and supporting classes. Initial checkin
17388
17389 2004-09-23 13:08  jackson
17390
17391         * Form.cs: Temp build fixage
17392
17393 2004-09-23 01:39  ravindra
17394
17395         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
17396           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
17397           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
17398           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
17399           EventHandlers needed by ListView Control.
17400
17401 2004-09-22 14:12  pbartok
17402
17403         * ScrollableControl.cs:
17404           - Implemented DockPadding property
17405           - Implemented AutoScroll property
17406           - Implemented AutoScrollMargin property
17407           - Implemented AutoScrollMinSize property
17408           - Implemented AutoScrollPosition property
17409           - Implemented DisplayRectangle property (still incomplete)
17410           - Implemented CreateParams property
17411           - Implemented HScroll property
17412           - Implemented VScroll property
17413           - Implemented OnVisibleChanged property
17414
17415 2004-09-22 14:09  pbartok
17416
17417         * Form.cs:
17418           - Added Form.ControllCollection class
17419           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
17420             RemoveOwnedForm (still incomplete, missing on-top and common
17421             minimize/maximize behaviour)
17422           - Added StartPosition property (still incomplete, does not use when
17423             creating the form)
17424           - Added ShowDialog() methods (still incomplete, missing forcing the
17425             dialog modal)
17426
17427 2004-09-22 14:05  pbartok
17428
17429         * Application.cs:
17430           - Added message loop for modal dialogs
17431
17432 2004-09-22 14:02  pbartok
17433
17434         * GroupBox.cs:
17435           - Fixed wrong types for events
17436
17437 2004-09-22 14:00  pbartok
17438
17439         * Shortcut.cs, FormWindowState.cs:
17440           - Fixed wrong values
17441
17442 2004-09-22 12:01  jackson
17443
17444         * Control.cs: Text is never null
17445
17446 2004-09-20 22:14  pbartok
17447
17448         * XplatUIWin32.cs:
17449           - Fixed accessibility level for Idle handler
17450
17451 2004-09-20 18:54  jackson
17452
17453         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17454           XplatUIX11.cs: New message loop that uses poll so we don't get a
17455           busy loop
17456
17457 2004-09-17 10:43  pbartok
17458
17459         * ScrollBar.cs:
17460           - Fixed behaviour of arrow buttons. Now properly behaves like
17461             Buttons (and like Microsoft's scrollbar arrow buttons)
17462
17463 2004-09-17 10:14  pbartok
17464
17465         * ScrollBar.cs:
17466           - Added missing release of keyboard/mouse capture
17467
17468 2004-09-17 06:18  jordi
17469
17470         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
17471           Theme.cs: Very early menu support
17472
17473 2004-09-16 17:45  pbartok
17474
17475         * XplatUIWin32.cs:
17476           - Fixed sending a window to the front
17477           - Added overload for SetWindowPos to avoid casting
17478
17479 2004-09-16 17:44  pbartok
17480
17481         * Control.cs:
17482           - Added SendToBack and BringToFront methods
17483
17484 2004-09-16 07:00  ravindra
17485
17486         * Copyright: Added Novell URL.
17487
17488 2004-09-16 07:00  ravindra
17489
17490         * ToolBar.cs: Invalidate should be done before redrawing.
17491
17492 2004-09-15 21:19  ravindra
17493
17494         * ColumnHeaderStyle.cs: Enum for ListView Control.
17495
17496 2004-09-15 21:18  ravindra
17497
17498         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
17499           ListView Control.
17500
17501 2004-09-13 18:26  jackson
17502
17503         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
17504           properly
17505
17506 2004-09-13 18:13  jackson
17507
17508         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
17509           a second thread and post messages into the main threads message
17510           queue. This makes timing much more consistent. Both win2K and XP
17511           have a minimum timer value of 15 milliseconds, so we now do this
17512           too.
17513
17514 2004-09-13 15:18  pbartok
17515
17516         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17517           XplatUIX11.cs:
17518           - Added Z-Ordering methods
17519
17520 2004-09-13 10:56  pbartok
17521
17522         * Form.cs:
17523           - Fixed #region names
17524           - Moved properties and methods into their proper #regions
17525
17526 2004-09-13 10:51  pbartok
17527
17528         * Form.cs:
17529           - Added Accept and CancelButton properties
17530           - Added ProcessDialogKey() method
17531
17532 2004-09-13 08:18  pbartok
17533
17534         * IWindowTarget.cs:
17535           - Initial check-in
17536
17537 2004-09-10 21:50  pbartok
17538
17539         * Control.cs:
17540           - Added DoDragDrop() [incomplete]
17541           - Properly implemented 'Visible' handling
17542           - Added SetVisibleCore()
17543           - Implemented FindChildAtPoint()
17544           - Implemented GetContainerControl()
17545           - Implemented Hide()
17546
17547 2004-09-10 19:28  pbartok
17548
17549         * Control.cs:
17550           - Moved methods into their appropriate #regions
17551           - Reordered methods within regions alphabetically
17552
17553 2004-09-10 18:57  pbartok
17554
17555         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17556           - Added method to retrieve text from window
17557
17558 2004-09-10 18:56  pbartok
17559
17560         * Control.cs:
17561           - Moved some internal functions into the internal region
17562           - Implemented FontHeight
17563           - Implemented RenderRightToLeft
17564           - Implemented ResizeRedraw
17565           - Implemented ShowFocusCues
17566           - Implemented ShowKeyboardCues
17567           - Implemented FromChildHandle
17568           - Implemented FromHandle
17569           - Implemented IsMnemonic
17570           - Implemented ReflectMessage
17571           - All public and protected Static Methods are now complete
17572
17573 2004-09-10 16:54  pbartok
17574
17575         * Control.cs:
17576           - Implemented remaining missing public instance properties
17577           - Alphabetized some out of order properties
17578
17579 2004-09-10 05:51  ravindra
17580
17581         * PictureBox.cs: Added a check for null image.
17582
17583 2004-09-10 00:59  jordi
17584
17585         * GroupBox.cs: remove cvs tag
17586
17587 2004-09-09 05:25  ravindra
17588
17589         * ToolBar.cs: Make redraw accessible from ToolBarButton.
17590
17591 2004-09-09 05:23  ravindra
17592
17593         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
17594           parent redraw.
17595
17596 2004-09-09 02:28  pbartok
17597
17598         * ThemeWin32Classic.cs:
17599           - Improve disabled string look
17600
17601 2004-09-09 01:15  jordi
17602
17603         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
17604           args and handler
17605
17606 2004-09-08 23:56  ravindra
17607
17608         * ItemBoundsPortion.cs: It's enum, not a class!
17609
17610 2004-09-08 23:47  ravindra
17611
17612         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
17613           Enums for Form.
17614
17615 2004-09-08 21:13  ravindra
17616
17617         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
17618           ListView control.
17619
17620 2004-09-08 21:03  ravindra
17621
17622         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
17623           avoid crash.
17624
17625 2004-09-08 21:01  ravindra
17626
17627         * ScrollableControl.cs: Removed unreachable code.
17628
17629 2004-09-08 06:45  jordi
17630
17631         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
17632
17633 2004-09-08 01:00  jackson
17634
17635         * XplatUIX11.cs: Only run the timers when updating the message
17636           queue. This effectively gives X messages a higher priority then
17637           timer messages. Timers still need love though
17638
17639 2004-09-07 14:01  jackson
17640
17641         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
17642           this for us and the handle is no longer valid.
17643
17644 2004-09-07 13:59  jackson
17645
17646         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
17647           loop that manages to not crash. TODO: Add poll and cleanup timers
17648
17649 2004-09-07 11:12  jordi
17650
17651         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
17652
17653 2004-09-07 03:40  jordi
17654
17655         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
17656           fixes, methods, multiple links
17657
17658 2004-09-06 06:55  jordi
17659
17660         * Control.cs: Caches ClientRectangle rectangle value
17661
17662 2004-09-05 02:03  jordi
17663
17664         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
17665           certain situations
17666
17667 2004-09-04 11:10  jordi
17668
17669         * Label.cs: Refresh when font changed
17670
17671 2004-09-02 16:24  pbartok
17672
17673         * Control.cs:
17674           - Added sanity check to creation of double buffer bitmap
17675
17676 2004-09-02 16:24  pbartok
17677
17678         * ButtonBase.cs:
17679           - Fixed selection of text color
17680           - Fixed handling of resize event; now properly recreates double
17681             buffering bitmap
17682           - Added missing assignment of TextAlignment
17683           - Added proper default for TextAlignment
17684
17685 2004-09-02 14:26  pbartok
17686
17687         * RadioButton.cs:
17688           - Added missing RadioButton.RadioButtonAccessibleObject class
17689
17690 2004-09-02 14:26  pbartok
17691
17692         * Control.cs:
17693           - Added missing Control.ControlAccessibleObject class
17694           - Started to implement Select()ion mechanisms, still very incomplete
17695
17696 2004-09-02 14:25  pbartok
17697
17698         * AccessibleObject.cs:
17699           - Added missing methods
17700
17701 2004-09-02 14:23  pbartok
17702
17703         * AccessibleNavigation.cs, AccessibleSelection.cs:
17704           - Initial check-in
17705
17706 2004-09-02 10:32  jordi
17707
17708         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
17709           pool for pens, brushes, and hatchbruses
17710
17711 2004-09-01 15:30  jackson
17712
17713         * StatusBar.cs: Fix typo
17714
17715 2004-09-01 14:44  pbartok
17716
17717         * RadioButton.cs:
17718           - Fixed state
17719
17720 2004-09-01 14:39  pbartok
17721
17722         * Button.cs, RadioButton.cs:
17723           - Functional initial check-in
17724
17725 2004-09-01 14:01  pbartok
17726
17727         * CheckBox.cs:
17728           - Added missing default
17729           - Added missing region mark
17730
17731 2004-09-01 09:10  jordi
17732
17733         * Label.cs: fixes method signatures, new methods, events, fixes
17734           autosize
17735
17736 2004-09-01 07:19  jordi
17737
17738         * Control.cs: Init string variables with an empty object
17739
17740 2004-09-01 04:20  jordi
17741
17742         * Control.cs: fires OnFontChanged event
17743
17744 2004-08-31 20:07  pbartok
17745
17746         * ButtonBase.cs:
17747           - Enabled display of strings
17748
17749 2004-08-31 20:05  pbartok
17750
17751         * Form.cs:
17752           - Added (partial) implementation of DialogResult; rest needs to be
17753             implemented when the modal loop code is done
17754
17755 2004-08-31 19:55  pbartok
17756
17757         * CheckBox.cs:
17758           - Fixed to match the removal of the needs_redraw concept
17759
17760 2004-08-31 19:55  pbartok
17761
17762         * ButtonBase.cs:
17763           - Removed the rather odd split between 'needs redraw' and redrawing
17764           - Now handles the events that require regeneration (ambient
17765             properties and size)
17766
17767 2004-08-31 19:41  pbartok
17768
17769         * Control.cs:
17770           - Added firing of BackColorChanged event
17771           - Added TopLevelControl property
17772           - Fixed handling of WM_ERASEBKGRND message
17773
17774 2004-08-31 12:49  pbartok
17775
17776         * ButtonBase.cs:
17777           - Removed debug
17778           - Minor fixes
17779
17780 2004-08-31 12:48  pbartok
17781
17782         * CheckBox.cs:
17783           - Finished (famous last words)
17784
17785 2004-08-31 04:35  jordi
17786
17787         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
17788           scrolling bugs, adds new methods
17789
17790 2004-08-30 14:42  pbartok
17791
17792         * CheckBox.cs:
17793           - Implemented CheckBox drawing code
17794
17795 2004-08-30 14:42  pbartok
17796
17797         * ButtonBase.cs:
17798           - Made Redraw() and CheckRedraw() virtual
17799           - Improved mouse up/down/move logic to properly track buttons
17800
17801 2004-08-30 09:44  pbartok
17802
17803         * CheckBox.cs:
17804           - Updated to fix broken build. Not complete yet.
17805
17806 2004-08-30 09:28  pbartok
17807
17808         * CheckState.cs:
17809           - Initial checkin
17810
17811 2004-08-30 09:17  pbartok
17812
17813         * Appearance.cs:
17814           - Initial check-in
17815
17816 2004-08-27 16:12  ravindra
17817
17818         * ToolBarButton.cs: Added TypeConverter attribute.
17819
17820 2004-08-27 16:07  ravindra
17821
17822         * ImageIndexConverter.cs: Implemented.
17823
17824 2004-08-27 14:17  pbartok
17825
17826         * Control.cs:
17827           - Removed unneeded stack vars
17828           - First attempt to fix sizing issues when layout is suspended
17829
17830 2004-08-25 15:35  jordi
17831
17832         * ScrollBar.cs: more fixes to scrollbar
17833
17834 2004-08-25 14:04  ravindra
17835
17836         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
17837           Added the missing divider code and grip for ToolBar Control.
17838
17839 2004-08-25 13:20  pbartok
17840
17841         * Control.cs:
17842           - Control now properly passes the ambient background color to child
17843             controls
17844
17845 2004-08-25 13:20  jordi
17846
17847         * ScrollBar.cs: small bug fix regarding bar position
17848
17849 2004-08-25 12:33  pbartok
17850
17851         * Timer.cs:
17852           - Now only calls SetTimer or KillTimer if the enabled state has
17853           changed
17854
17855 2004-08-25 12:33  pbartok
17856
17857         * XplatUIWin32.cs:
17858           - Fixed timer handling, now seems to work
17859           - Improved error message for window creation
17860
17861 2004-08-25 12:32  pbartok
17862
17863         * Control.cs:
17864           - Fixed generation of MouseUp message
17865
17866 2004-08-25 12:29  jordi
17867
17868         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
17869           and fixes for progressbar
17870
17871 2004-08-24 18:43  ravindra
17872
17873         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
17874           in ToolBar control.
17875
17876 2004-08-24 17:15  pbartok
17877
17878         * Panel.cs:
17879           - Added #region
17880           - Added missing events
17881           - Alphabetized
17882
17883 2004-08-24 17:14  pbartok
17884
17885         * StatusBar.cs, PictureBox.cs:
17886           - Now uses Control's CreateParams
17887
17888 2004-08-24 16:36  pbartok
17889
17890         * XplatUIX11.cs:
17891           - Fixed background color handling
17892           - Fixed sending of enter/leave events on a grab
17893
17894 2004-08-24 16:35  pbartok
17895
17896         * X11Structs.cs:
17897           - Refined definitions for CrossingEvent
17898
17899 2004-08-24 12:37  jordi
17900
17901         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
17902           formmating, methods signature, and adds missing events
17903
17904 2004-08-24 12:24  jordi
17905
17906         * Control.cs: fire OnEnabledChanged event
17907
17908 2004-08-24 11:17  pbartok
17909
17910         * XplatUIWin32.cs:
17911           - Implemented SetTimer() and KillTimer()
17912
17913 2004-08-24 11:16  pbartok
17914
17915         * XplatUIX11.cs:
17916           - Now uses Remove instead of Add to kill the timer
17917
17918 2004-08-24 10:16  jackson
17919
17920         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
17921           picture boxes in the theme now. Draw picture box borders and obey
17922           sizing modes
17923
17924 2004-08-24 05:49  jackson
17925
17926         * Timer.cs: Remove top secret debugging code
17927
17928 2004-08-24 05:34  jackson
17929
17930         * PictureBox.cs: Temp hack to make picture boxes draw their full
17931           image
17932
17933 2004-08-24 05:29  jackson
17934
17935         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17936           XplatUIX11.cs: Move timers to the driver level. On X they are
17937           queued by the driver and checked on idle.
17938
17939 2004-08-24 01:07  jackson
17940
17941         * XplatUIX11.cs: Use a queue for async messages instead of passing
17942           them as ClientMessages since that was totally broken. Also simply
17943           check for events and return an idle message if none are found. This
17944           gives us an idle handler, and prevents deadlocking when no messages
17945           are in the queue.
17946
17947 2004-08-23 18:19  ravindra
17948
17949         * XplatUIWin32.cs: Removed the unwanted destructor.
17950
17951 2004-08-23 17:27  pbartok
17952
17953         * ButtonBase.cs:
17954           - Finishing touches. Works now, just needs some optimizations.
17955
17956 2004-08-23 16:53  jordi
17957
17958         * ScrollBar.cs: small fix
17959
17960 2004-08-23 16:45  pbartok
17961
17962         * Application.cs:
17963           - Removed debug output
17964           - Simplifications
17965
17966 2004-08-23 16:43  jordi
17967
17968         * ScrollBar.cs: [no log message]
17969
17970 2004-08-23 16:10  pbartok
17971
17972         * Form.cs:
17973           - Fixed handling of WM_CLOSE message
17974           - Removed debug output
17975
17976 2004-08-23 16:09  pbartok
17977
17978         * Application.cs:
17979           - Added handling of Idle event
17980           - Added handling of form closing
17981           - Fixed reporting of MessageLoop property
17982           - Removed some unneeded code, should provide a bit of a speedup
17983
17984 2004-08-23 15:22  pbartok
17985
17986         * Control.cs:
17987           - Added InitLayout() method
17988           - Added code to properly perform layout when Anchor or Dock property
17989             is changed
17990           - Changed 'interpretation' of ResumeLayout. MS seems to have a
17991             LAMESPEC, tried to do it in a way that makes sense
17992
17993 2004-08-23 14:10  jordi
17994
17995         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
17996           properties and methods
17997
17998 2004-08-23 13:55  pbartok
17999
18000         * Control.cs:
18001           - Properly fixed Jordi's last fix
18002           - Now uses Cursor's Position property instead of calling XplatUI
18003           directly
18004
18005 2004-08-23 13:44  jordi
18006
18007         * PaintEventHandler.cs: Adding missing attribute
18008
18009 2004-08-23 13:39  pbartok
18010
18011         * Cursor.cs:
18012           - Implemented Position property
18013
18014 2004-08-23 13:39  pbartok
18015
18016         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18017           - Added method to move mouse cursor
18018
18019 2004-08-23 13:39  pbartok
18020
18021         * XplatUIX11.cs:
18022           - Fixed setting of background color
18023           - Added method to move mouse cursor
18024
18025 2004-08-23 13:16  jordi
18026
18027         * Control.cs: avoids null exception
18028
18029 2004-08-22 17:46  jackson
18030
18031         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
18032           PictureBox
18033
18034 2004-08-22 17:40  jackson
18035
18036         * XplatUIX11.cs: Add some missing locks
18037
18038 2004-08-22 15:10  pbartok
18039
18040         * Control.cs, Form.cs:
18041           - Removed OverlappedWindow style from Control, instead it's default
18042             now is child
18043           - Made form windows OverlappedWindow by default
18044
18045 2004-08-22 13:34  jackson
18046
18047         * ScrollBar.cs: Update the position through the Value property so
18048           the OnValueChanged event is raised.
18049
18050 2004-08-22 12:04  pbartok
18051
18052         * SWF.csproj:
18053           - Added Cursor.cs and UserControl.cs
18054
18055 2004-08-22 12:03  pbartok
18056
18057         * Cursor.cs:
18058           - Started implementation, not usable yet
18059
18060 2004-08-22 12:00  pbartok
18061
18062         * UserControl.cs:
18063           - Implemented UserControl (complete)
18064
18065 2004-08-21 19:20  ravindra
18066
18067         * ToolBar.cs: Correcting the formatting mess of VS.NET.
18068
18069 2004-08-21 18:49  ravindra
18070
18071         * ToolBar.cs: Probably this completes the missing attributes in
18072           toolbar control.
18073
18074 2004-08-21 18:03  ravindra
18075
18076         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
18077           Fixed toolbar control signatures.
18078
18079 2004-08-21 16:32  pbartok
18080
18081         * LinkLabel.cs:
18082           - Signature Fixes
18083
18084 2004-08-21 16:30  pbartok
18085
18086         * Label.cs:
18087           - Signature fixes
18088
18089 2004-08-21 16:19  pbartok
18090
18091         * Control.cs, Label.cs:
18092           - Signature fixes
18093
18094 2004-08-21 15:57  pbartok
18095
18096         * ButtonBase.cs:
18097           - Added loads of debug output for development
18098           - Fixed typo in method name
18099
18100 2004-08-21 15:52  pbartok
18101
18102         * ToolBarButtonClickEventArgs.cs:
18103           - Added missing base class
18104
18105 2004-08-21 14:53  pbartok
18106
18107         * Control.cs:
18108           - Updated to match new GrabWindow signature
18109
18110 2004-08-21 14:51  pbartok
18111
18112         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18113           - Added method to get default display size
18114
18115 2004-08-21 14:23  pbartok
18116
18117         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18118           - Added method to query current grab state
18119           - Added argument to allow confining a grab to a window
18120
18121 2004-08-21 14:22  pbartok
18122
18123         * Keys.cs:
18124           - Added [Flags] attribute so that modifiers can be used in bitwise
18125           ops
18126
18127 2004-08-21 14:21  pbartok
18128
18129         * TrackBar.cs, ScrollBar.cs:
18130           - Replaced direct XplatUI calls with their Control counterpart
18131
18132 2004-08-21 13:32  pbartok
18133
18134         * Control.cs:
18135           - Implemented Created property
18136
18137 2004-08-21 13:28  pbartok
18138
18139         * Control.cs:
18140           - Implemented ContainsFocus
18141
18142 2004-08-21 13:26  pbartok
18143
18144         * Control.cs:
18145           - Implemented CausesValidation
18146
18147 2004-08-21 13:21  pbartok
18148
18149         * Control.cs:
18150           - Implemented CanFocus
18151           - Implemented CanSelect
18152           - Implemented Capture
18153
18154 2004-08-21 12:35  pbartok
18155
18156         * XplatUIWin32.cs:
18157           - Fixed bug with Async message handling
18158           - Implemented getting the ModifierKeys
18159
18160 2004-08-21 12:32  jackson
18161
18162         * AsyncMethodResult.cs: Make sure we have the mutex before we
18163           release it. Fixes BeginInvoke on windows
18164
18165 2004-08-21 11:31  pbartok
18166
18167         * XplatUIWin32.cs, XplatUIX11.cs:
18168           - Drivers now return proper mouse state
18169
18170 2004-08-21 10:54  jackson
18171
18172         * Control.cs: Implement EndInvoke
18173
18174 2004-08-21 10:48  jackson
18175
18176         * Timer.cs: Remove unneeded finalizer
18177
18178 2004-08-20 19:52  ravindra
18179
18180         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
18181           in mouse event handling in the ToolBar control.
18182
18183 2004-08-20 19:50  ravindra
18184
18185         * ImageList.cs: Changed draw method to use the arguments passed in
18186           to draw the image.
18187
18188 2004-08-20 18:58  pbartok
18189
18190         * XplatUIStructs.cs:
18191           - Added private message for async communication
18192
18193 2004-08-20 17:38  ravindra
18194
18195         * Control.cs: Made RightToLeft property virtual and removed a
18196           Console.WriteLine.
18197
18198 2004-08-20 14:39  jordi
18199
18200         * ThemeGtk.cs: use style_attach
18201
18202 2004-08-20 14:39  pbartok
18203
18204         * XplatUIWin32.cs:
18205           - Added jackson's Async code from X11 to Win32
18206
18207 2004-08-20 14:09  pbartok
18208
18209         * SWF.csproj:
18210           - Added all new files
18211
18212 2004-08-20 14:09  pbartok
18213
18214         * Control.cs:
18215           - Added call to set window background color
18216
18217 2004-08-20 14:03  pbartok
18218
18219         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18220           - Added method for setting the window background
18221
18222 2004-08-20 14:02  pbartok
18223
18224         * XplatUIWin32.cs:
18225           - Added method for setting the background color
18226           - Added handling for erasing the window background
18227
18228 2004-08-20 13:45  jordi
18229
18230         * TrackBar.cs: fixes timer, new properties and methods
18231
18232 2004-08-20 13:34  jackson
18233
18234         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
18235           correct thread
18236
18237 2004-08-20 13:22  jackson
18238
18239         * Timer.cs: Timer Tick events are now handed through Controls Async
18240           mechanism so the callbacks are executed in the same thread as X
18241
18242 2004-08-20 13:19  jackson
18243
18244         * XplatUIDriver.cs: Expose functionality to send async messages
18245           through the driver
18246
18247 2004-08-20 13:18  jackson
18248
18249         * Control.cs: Implement Begininvoke
18250
18251 2004-08-20 13:14  jackson
18252
18253         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
18254           messages through the driver
18255
18256 2004-08-20 13:12  jackson
18257
18258         * XplatUIX11.cs: Lock before all X operations. Also added Async
18259           method functionality through XSendEvent
18260
18261 2004-08-20 13:11  jackson
18262
18263         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
18264           This will screw up on 64 bit systems)
18265
18266 2004-08-20 13:10  jackson
18267
18268         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
18269           Async messages through X/Win32
18270
18271 2004-08-19 19:39  pbartok
18272
18273         * XplatUIX11.cs:
18274           - Updated code to match new HandleData.DeviceContext type
18275
18276 2004-08-19 19:38  pbartok
18277
18278         * HandleData.cs:
18279           - Made DeviceContext a generic object to allow usage from various
18280           drivers
18281           - Added support for queueing Windows messages
18282
18283 2004-08-19 19:37  pbartok
18284
18285         * XplatUIWin32.cs:
18286           - Added generation of MouseEnter, MouseLeave and MouseHover events
18287           - Added cleanup on EndPaint
18288
18289 2004-08-19 19:17  pbartok
18290
18291         * Control.cs:
18292           - Added handling of WM_MOUSEHOVER
18293           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
18294           code
18295
18296 2004-08-19 18:55  jordi
18297
18298         * ThemeGtk.cs: fixes button order
18299
18300 2004-08-19 18:12  jordi
18301
18302         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
18303
18304 2004-08-19 17:09  pbartok
18305
18306         * Control.cs:
18307           - Added Right property
18308           - Added RightToLeft property
18309
18310 2004-08-19 16:27  jordi
18311
18312         * ThemeGtk.cs: experimental GTK theme support
18313
18314 2004-08-19 16:26  jordi
18315
18316         * ITheme.cs, Theme.cs: move themes from an interface to a class
18317
18318 2004-08-19 16:25  jordi
18319
18320         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
18321           theme enhancaments
18322
18323 2004-08-19 16:04  pbartok
18324
18325         * XplatUIX11.cs:
18326           - Added colormap basics
18327           - Added a way to re-initialize with a different display handle
18328           - Fixed setting of the window background color
18329           - Added various X11 imports related to colors and colormaps
18330
18331 2004-08-19 15:51  pbartok
18332
18333         * X11Structs.cs:
18334           - Removed packing hints (Paolo suggested this a while back)
18335           - fixed colormap type
18336           - Added default Atom types
18337           - Added Screen and color structs and enums
18338
18339 2004-08-19 15:39  pbartok
18340
18341         * ImageList.cs:
18342           - Added missing Draw() method
18343           - Added missing RecreateHandle event
18344
18345 2004-08-19 15:30  pbartok
18346
18347         * Form.cs:
18348           - Added handling of WM_CLOSE
18349
18350 2004-08-18 13:16  jordi
18351
18352         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
18353           a table
18354
18355 2004-08-18 09:56  jordi
18356
18357         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
18358
18359 2004-08-17 15:31  ravindra
18360
18361         * SWF.csproj: Updated project.
18362
18363 2004-08-17 15:25  pbartok
18364
18365         * Control.cs:
18366           - Drawing improvement; don't call UpdateBounds if we are not visible
18367             (or have been minimized)
18368
18369 2004-08-17 15:24  pbartok
18370
18371         * XplatUIWin32.cs:
18372           - Finished IsVisible
18373           - Added Win32GetWindowPlacement
18374
18375 2004-08-17 15:08  jackson
18376
18377         * Panel.cs: Initial checkin of the Panel
18378
18379 2004-08-17 14:25  pbartok
18380
18381         * Control.cs:
18382           - Fixed broken handling of default window sizes
18383
18384 2004-08-17 13:29  jackson
18385
18386         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
18387           has a large startup time.
18388
18389 2004-08-17 10:25  jackson
18390
18391         * HandleData.cs: union areas properly
18392
18393 2004-08-17 10:12  jackson
18394
18395         * HandleData.cs: union areas properly
18396
18397 2004-08-16 20:00  ravindra
18398
18399         * ToolBar.cs, ToolBarButton.cs: Added attributes.
18400
18401 2004-08-16 18:48  ravindra
18402
18403         * ToolBar.cs: Added attributes.
18404
18405 2004-08-16 17:17  ravindra
18406
18407         * SWF.csproj: Updated project.
18408
18409 2004-08-16 17:16  jackson
18410
18411         * XplatUIX11.cs: Check for more expose events before sending a
18412           WM_PAINT so they can all be grouped together. This makes dragging a
18413           window across another window redraw in a sane way.
18414
18415 2004-08-16 15:47  pbartok
18416
18417         * Control.cs:
18418           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
18419             support OnMouseEnter/Leave()
18420           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
18421             exposure handling
18422
18423 2004-08-16 15:46  pbartok
18424
18425         * XplatUIStructs.cs, XplatUIX11.cs:
18426           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
18427           OnMouseEnter/Leave()
18428
18429 2004-08-16 15:34  jackson
18430
18431         * XplatUIX11.cs: Group multiple expose events in HandleData, make
18432           sure messages get the message field set to WM_NULL if they are not
18433           handled.
18434
18435 2004-08-16 15:24  jackson
18436
18437         * HandleData.cs: HandleData is used for storing message information
18438           for window handles
18439
18440 2004-08-15 17:23  ravindra
18441
18442         * ColorDepth.cs: Added attribute.
18443
18444 2004-08-15 17:23  ravindra
18445
18446         * SWF.csproj: Updated project for ToolBar Control.
18447
18448 2004-08-15 17:20  ravindra
18449
18450         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
18451           control and also dos2unix format.
18452
18453 2004-08-15 17:13  ravindra
18454
18455         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
18456           ToolBarButtonClickEventArgs.cs,
18457           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
18458           ToolBarTextAlign.cs: First Implementation of ToolBar control.
18459
18460 2004-08-15 15:31  pbartok
18461
18462         * ButtonBase.cs:
18463           - First (mostly) working version
18464
18465 2004-08-13 16:15  pbartok
18466
18467         * Control.cs:
18468           - Fixed Anchor default
18469
18470 2004-08-13 15:43  pbartok
18471
18472         * Control.cs:
18473           - Changed GetCursorPos signature
18474
18475 2004-08-13 15:42  pbartok
18476
18477         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18478           - Changed signature for GetCursorPos
18479
18480 2004-08-13 15:25  pbartok
18481
18482         * XplatUIX11.cs:
18483           - Cleanup
18484           - Fixed resizing/exposure handling
18485
18486 2004-08-13 15:22  jordi
18487
18488         * ThemeWin32Classic.cs: removes redundant code and fixes issues
18489           with tickposition
18490
18491 2004-08-13 14:55  jordi
18492
18493         * TrackBar.cs: change from wndproc to events
18494
18495 2004-08-13 13:00  jordi
18496
18497         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18498           XplatUIX11.cs: implements PointToClient (ScreenToClient)
18499
18500 2004-08-13 12:53  pbartok
18501
18502         * XplatUIWin32.cs:
18503           - Changed GetWindowPos to also provide client area size
18504           - Fixed broken prototypes for several win32 functions
18505
18506 2004-08-13 12:53  pbartok
18507
18508         * XplatUI.cs, XplatUIDriver.cs:
18509           - Changed GetWindowPos to also provide client area size
18510
18511 2004-08-13 12:52  pbartok
18512
18513         * XplatUIX11.cs:
18514           - Added generation of WM_POSCHANGED
18515           - Changed GetWindowPos to also provide client area size
18516
18517 2004-08-13 12:52  pbartok
18518
18519         * Control.cs:
18520           - Added Dispose() and destructor
18521           - Fixed resizing and bounds calculation
18522           - Fixed Layout
18523           - Added memory savings for invisible windows
18524
18525 2004-08-13 12:46  jordi
18526
18527         * TrackBar.cs: adds timer and grap window
18528
18529 2004-08-13 10:25  jackson
18530
18531         * Timer.cs: SWF Timer
18532
18533 2004-08-12 16:59  pbartok
18534
18535         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18536           - Implemented method to get current mouse position
18537
18538 2004-08-12 14:29  jordi
18539
18540         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
18541           enhancement, fix mouse problems, highli thumb, etc
18542
18543 2004-08-12 13:31  pbartok
18544
18545         * Control.cs:
18546           - Fixed Anchoring bugs
18547
18548 2004-08-12 13:01  jackson
18549
18550         * StatusBar.cs: Don't forget things
18551
18552 2004-08-12 12:54  jackson
18553
18554         * ThemeWin32Classic.cs: Handle owner draw status bars
18555
18556 2004-08-12 12:54  jackson
18557
18558         * StatusBar.cs: Implement missing properties, events, and methods.
18559           Handle mouse clicking
18560
18561 2004-08-12 10:19  jackson
18562
18563         * StatusBarPanelClickEventArgs.cs,
18564           StatusBarPanelClickEventHandler.cs: Classes for handling status
18565           bar panel click events
18566
18567 2004-08-12 10:10  jackson
18568
18569         * Control.cs: Add missing properties
18570
18571 2004-08-12 09:46  pbartok
18572
18573         * BindingsManagerBase.cs:
18574           - Name changed to BindingManagerBase.cs
18575
18576 2004-08-12 09:25  jordi
18577
18578         * ScrollableControl.cs: calls ctrlbase instead of exeception
18579
18580 2004-08-11 16:28  pbartok
18581
18582         * InputLanguageChangingEventArgs.cs:
18583           - Never check in before compiling. Fixes the last check-in
18584
18585 2004-08-11 16:26  pbartok
18586
18587         * InputLanguageChangingEventArgs.cs:
18588           - More signature fixes
18589
18590 2004-08-11 16:20  pbartok
18591
18592         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
18593           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
18594           ImageListStreamer.cs, InputLanguage.cs,
18595           InputLanguageChangedEventArgs.cs,
18596           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
18597           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
18598           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
18599           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18600           - Signature fixes
18601
18602 2004-08-11 16:16  pbartok
18603
18604         * Application.cs:
18605           - Fixed Signature
18606           - Added .Net 1.1 method
18607
18608 2004-08-11 15:25  pbartok
18609
18610         * SWF.csproj:
18611           - Fixed BindingManagerBase.cs filename
18612
18613 2004-08-11 15:22  pbartok
18614
18615         * BindingManagerBase.cs:
18616           - Was checked in with wrong filename
18617
18618 2004-08-11 14:50  pbartok
18619
18620         * SWF.csproj:
18621           - Updated
18622
18623 2004-08-11 13:41  jordi
18624
18625         * XplatUIWin32.cs: Fixes ClientRect
18626
18627 2004-08-11 13:19  pbartok
18628
18629         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18630           XplatUIX11.cs:
18631           - We had SetWindowPos and MoveWindow to set window positions and
18632             size, removed MoveWindow. We have GetWindowPos, so it made sense to
18633             keep SetWindowPos as matching counterpart
18634           - Added some X11 sanity checking
18635
18636 2004-08-11 12:59  pbartok
18637
18638         * Control.cs:
18639           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
18640             (It seems that SetBounds is just a front for SetBoundsCore and
18641              SetBoundsCore updates the underlying window system and
18642              UpdateBounds is responsible for updating the variables associated
18643              with the Control and sending the events)
18644           - Major cleanup of Size handling; we now have two sizes, client_size
18645             and bounds. Bounds defines the window with decorations, client_size
18646             without them.
18647
18648 2004-08-11 12:55  pbartok
18649
18650         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18651           - Added method to calculate difference between decorated window and
18652             raw client area
18653
18654 2004-08-11 12:54  pbartok
18655
18656         * Label.cs:
18657           - Forcing redraw on resize
18658
18659 2004-08-11 11:43  pbartok
18660
18661         * ImageList.cs:
18662           - Removed disposing of the actual images when the list is disposed
18663
18664 2004-08-11 09:13  pbartok
18665
18666         * Control.cs:
18667           - Now properly reparents windows
18668
18669 2004-08-11 08:37  pbartok
18670
18671         * Control.cs:
18672           - Duh!
18673
18674 2004-08-11 07:47  pbartok
18675
18676         * Control.cs:
18677           - Rewrote the collection stuff. Might not be as fast now, not
18678             keeping the number of children around and accessible directly, but
18679             it's more straightforward
18680
18681 2004-08-11 07:44  pbartok
18682
18683         * AccessibleObject.cs:
18684           - Fixed to match ControlCollection rewrite
18685
18686 2004-08-11 07:43  pbartok
18687
18688         * ImageList.cs:
18689           - Added missing creation of the collection list
18690
18691 2004-08-10 20:08  jackson
18692
18693         * StatusBar.cs: Get the paint message from WndProc
18694
18695 2004-08-10 19:31  jackson
18696
18697         * ThemeWin32Classic.cs: Create Brushes as little as possible
18698
18699 2004-08-10 19:20  jackson
18700
18701         * UICues.cs: Add Flags attribute
18702
18703 2004-08-10 19:19  jackson
18704
18705         * StatusBarPanel.cs: Signature cleanup
18706
18707 2004-08-10 19:10  jackson
18708
18709         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
18710           Initial implementation of status bar item drawing
18711
18712 2004-08-10 17:27  jordi
18713
18714         * TrackBar.cs: add missing methods, properties, and restructure to
18715           hide extra ones
18716
18717 2004-08-10 16:24  jackson
18718
18719         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
18720           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
18721           attribute
18722
18723 2004-08-10 13:21  jordi
18724
18725         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
18726           enhancements and standarize on win colors defaults
18727
18728 2004-08-10 12:52  jackson
18729
18730         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
18731           ThemeWin32Classic.cs: Implement DrawItem functionality
18732
18733 2004-08-10 12:47  jordi
18734
18735         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
18736
18737 2004-08-10 12:32  jordi
18738
18739         * Control.cs: throw ontextchange event
18740
18741 2004-08-10 11:43  pbartok
18742
18743         * Control.cs:
18744           - Added more to the still unfinished Dock/Anchor layout code
18745
18746 2004-08-10 11:39  pbartok
18747
18748         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18749           - Added GetWindowPos method
18750
18751 2004-08-10 11:36  pbartok
18752
18753         * XplatUIWin32.cs:
18754           - Implemented several methods
18755
18756 2004-08-10 09:47  jackson
18757
18758         * TrackBar.cs: Allow control to handle buffering
18759
18760 2004-08-10 09:41  jackson
18761
18762         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
18763
18764 2004-08-10 09:24  jackson
18765
18766         * Label.cs, LinkLabel.cs: Let Control handle buffering.
18767
18768 2004-08-10 09:09  jackson
18769
18770         * StatusBar.cs: Let Control handle all the buffering.
18771
18772 2004-08-10 09:08  jackson
18773
18774         * Control.cs: Control will now handle the buffering code, so each
18775           control does not have to implement this.
18776
18777 2004-08-10 08:34  jackson
18778
18779         * XplatUIDriver.cs: Use default colors from the theme
18780
18781 2004-08-09 17:12  pbartok
18782
18783         * ImageList.cs:
18784           - Fixed several bugs Ravindra pointed out
18785
18786 2004-08-09 16:11  pbartok
18787
18788         * Control.cs:
18789           - Added incomplete dock layout code
18790           - Added support for mouse wheel
18791
18792 2004-08-09 16:09  pbartok
18793
18794         * XplatUIX11.cs:
18795           - Added handling for middle and right mousebutton
18796           - Added handling for mouse wheel
18797           - Added handling for key state and mouse state and position
18798           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
18799           messages
18800
18801 2004-08-09 15:40  jackson
18802
18803         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
18804           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
18805           checkin
18806
18807 2004-08-09 15:37  jackson
18808
18809         * StatusBar.cs: Initial implementation of StatusBar
18810
18811 2004-08-09 15:36  jackson
18812
18813         * ITheme.cs: Add support for drawing status bar and getting status
18814           bar item sizes
18815
18816 2004-08-09 15:35  pbartok
18817
18818         * MouseButtons.cs:
18819           - Fixed values
18820
18821 2004-08-09 15:34  jackson
18822
18823         * ThemeWin32Classic.cs: Add support for drawing status bar and get
18824           status bar item sizes
18825
18826 2004-08-09 15:21  jackson
18827
18828         * ThemeWin32Classic.cs: Use known colors for default control
18829           colours
18830
18831 2004-08-09 15:12  jackson
18832
18833         * ThemeWin32Classic.cs: Make the default font static, it is static
18834           in control so this doesn't change functionality and creating fonts
18835           is sloooooow.
18836
18837 2004-08-09 14:56  pbartok
18838
18839         * X11Structs.cs:
18840           - Added GrabMode enum
18841
18842 2004-08-09 14:55  pbartok
18843
18844         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18845           - Removed Run method, was only required for initial development
18846
18847 2004-08-09 14:51  pbartok
18848
18849         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18850           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
18851           capture
18852
18853 2004-08-09 13:48  pbartok
18854
18855         * XplatUIX11.cs:
18856           - Fixed default sizing for child windows
18857
18858 2004-08-09 12:56  pbartok
18859
18860         * XplatUIX11.cs:
18861           - Added generation of WM_DESTROY message
18862           - Added handling of window manager induced shutdown
18863
18864 2004-08-09 11:31  jackson
18865
18866         * ThemeWin32Classic.cs: New names for control properties
18867
18868 2004-08-09 11:25  jackson
18869
18870         * Control.cs: Use new color names
18871
18872 2004-08-09 11:02  jackson
18873
18874         * XplatUI.cs: Get default window properties from the theme
18875
18876 2004-08-09 11:01  jackson
18877
18878         * ITheme.cs: The theme engine now controls default window
18879           properties
18880
18881 2004-08-09 11:00  jackson
18882
18883         * ThemeWin32Classic.cs: Add default window color properties
18884
18885 2004-08-09 10:17  jackson
18886
18887         * ThemeWin32Classic.cs: Use correct default back color
18888
18889 2004-08-09 10:05  jackson
18890
18891         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
18892           the theme now.
18893
18894 2004-08-09 09:56  jackson
18895
18896         * XplatUI.cs: Remove defaults, these are handled by the theme now.
18897
18898 2004-08-09 09:54  jackson
18899
18900         * Control.cs: Get default properties from the theme.
18901
18902 2004-08-09 09:53  jackson
18903
18904         * ITheme.cs: Themes now handle default control properties
18905
18906 2004-08-09 09:53  jackson
18907
18908         * ThemeWin32Classic.cs: Themes now handle default control
18909           properties so coloring will be consistent
18910
18911 2004-08-08 16:54  jordi
18912
18913         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
18914
18915 2004-08-08 15:08  jordi
18916
18917         * XplatUIX11.cs: fixes keyboard crash
18918
18919 2004-08-08 13:47  jordi
18920
18921         * Label.cs: add cvs header info
18922
18923 2004-08-08 12:09  jackson
18924
18925         * ThemeWin32Classic.cs: Add pen_buttonface
18926
18927 2004-08-08 11:52  jordi
18928
18929         * Label.cs, LinkLabel.cs: [no log message]
18930
18931 2004-08-08 11:34  jordi
18932
18933         * ThemeWin32Classic.cs: Use Windows Standard Colours
18934
18935 2004-08-07 17:32  jordi
18936
18937         * TrackBar.cs: throw exceptions of invalid enums values
18938
18939 2004-08-07 17:31  jordi
18940
18941         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
18942           draw method name
18943
18944 2004-08-07 16:56  jackson
18945
18946         * HorizontalAlignment.cs: Initial checkin
18947
18948 2004-08-07 13:16  jordi
18949
18950         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
18951           methods
18952
18953 2004-08-07 13:05  jordi
18954
18955         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
18956           GetSysColor defines
18957
18958 2004-08-06 18:01  pbartok
18959
18960         * ThemeWin32Classic.cs:
18961           - Fixed some rounding issues with float/int
18962
18963 2004-08-06 18:00  jackson
18964
18965         * DockStyle.cs, AnchorStyles.cs:
18966
18967                   Add flags and serializable attributes.
18968
18969 2004-08-06 17:46  pbartok
18970
18971         * XplatUIX11.cs:
18972           - Implemented GetParent
18973
18974 2004-08-06 17:18  pbartok
18975
18976         * TrackBar.cs:
18977           - Fixed some rounding issues with float/int
18978
18979 2004-08-06 17:17  pbartok
18980
18981         * X11Structs.cs, XplatUIX11.cs:
18982           - Fixed Refresh and Invalidate
18983
18984 2004-08-06 15:30  pbartok
18985
18986         * Control.cs, X11Structs.cs, XplatUIX11.cs:
18987           - Fixed recursive loop when resizing
18988           - Improved/fixed redrawing on expose messages
18989
18990 2004-08-06 09:53  jordi
18991
18992         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
18993           keyboard navigation
18994
18995 2004-08-06 08:02  pbartok
18996
18997         * X11Structs.cs, XplatUIX11.cs:
18998           - Fixed reparenting
18999           - Fixed window border creation
19000
19001 2004-08-05 15:38  pbartok
19002
19003         * XplatUIX11.cs:
19004           - Attempted fix for reparenting problems
19005
19006 2004-08-04 15:14  pbartok
19007
19008         * Control.cs:
19009           - Fixed Invalidation bug (calculated wrong client area)
19010           - Added ClientSize setter
19011
19012 2004-08-04 15:13  pbartok
19013
19014         * Form.cs:
19015           - Added AutoScale properties
19016
19017 2004-08-04 15:13  pbartok
19018
19019         * SWF.csproj:
19020           - Added latest files
19021
19022 2004-08-04 14:11  pbartok
19023
19024         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19025           XplatUIX11.cs:
19026           - Added Invalidate handling
19027
19028 2004-08-03 17:09  jordi
19029
19030         * XplatUIDriver.cs: fixes spelling mistake
19031
19032 2004-07-27 09:53  jordi
19033
19034         * TrackBar.cs: fixes trackbar events, def classname, methods
19035           signature
19036
19037 2004-07-27 09:29  jordi
19038
19039         * ScrollBar.cs: fixes scrollbar events
19040
19041 2004-07-27 04:38  jordi
19042
19043         * Control.cs: changes to be able to run winforms samples
19044
19045 2004-07-26 11:42  jordi
19046
19047         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
19048           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
19049
19050 2004-07-26 05:41  jordi
19051
19052         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
19053           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
19054           implementation
19055
19056 2004-07-22 09:22  jordi
19057
19058         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
19059           check link overlapping, implement events, and fixes
19060
19061 2004-07-21 10:28  jordi
19062
19063         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
19064
19065 2004-07-21 10:19  jordi
19066
19067         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
19068           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
19069           LinkLabelLinkClickedEventArgs.cs,
19070           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
19071           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
19072           implementation
19073
19074 2004-07-19 13:09  jordi
19075
19076         * Control.cs, Label.cs: label control re-written: added missing
19077           functionlity, events, and properties
19078
19079 2004-07-19 10:49  jordi
19080
19081         * Control.cs: fixes SetBounds logic
19082
19083 2004-07-19 01:29  jordi
19084
19085         * Control.cs: Call RefreshWindow only if the window has created
19086
19087 2004-07-15 14:05  pbartok
19088
19089         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
19090           - Implemented ImageList and ImageList.ImageCollection classes
19091           - Added ColorDepth enumeration
19092           - Updated SWF VS.Net project
19093
19094 2004-07-15 11:06  jordi
19095
19096         * XplatUIStructs.cs: added MsgButons enum
19097
19098 2004-07-15 11:03  jordi
19099
19100         * Control.cs: added basic mouse handeling events
19101
19102 2004-07-15 03:38  jordi
19103
19104         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
19105           Vertical TrackBar control implementation
19106
19107 2004-07-13 09:33  jordi
19108
19109         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
19110
19111 2004-07-13 09:31  jordi
19112
19113         * Control.cs, Form.cs: commit: new properties and fixes form size
19114           problems
19115
19116 2004-07-09 14:13  miguel
19117
19118         * ProgressBar.cs: Spelling
19119
19120 2004-07-09 11:25  pbartok
19121
19122         * ProgressBar.cs:
19123           - Removed usage of Rectangle for drawing. Miguel pointed out it's
19124           faster
19125
19126 2004-07-09 11:17  miguel
19127
19128         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
19129
19130                 * ProgressBar.cs: Fixed spelling for `block'
19131
19132                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
19133                 style guidelines.
19134
19135                 Avoid using the += on rect.X, that exposed a bug in the compiler.
19136
19137 2004-07-08 23:21  pbartok
19138
19139         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
19140           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
19141           BaseCollection.cs, Binding.cs, BindingContext.cs,
19142           BindingMemberInfo.cs, BindingsCollection.cs,
19143           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
19144           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
19145           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
19146           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
19147           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
19148           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
19149           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
19150           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
19151           FrameStyle.cs, GiveFeedbackEventArgs.cs,
19152           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
19153           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
19154           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
19155           InputLanguageChangedEventArgs.cs,
19156           InputLanguageChangedEventHandler.cs,
19157           InputLanguageChangingEventArgs.cs,
19158           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
19159           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
19160           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
19161           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
19162           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
19163           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
19164           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
19165           QueryAccessibilityHelpEventArgs.cs,
19166           QueryAccessibilityHelpEventHandler.cs,
19167           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
19168           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
19169           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
19170           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
19171           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
19172           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
19173           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
19174           XplatUIX11.cs, lang.cs:
19175           - Initial check-in
19176