Set default value for TabStop to false
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
2
3         * ToolBar.cs: Set default value for TabStop to false in
4         constructor, it fixes remaining behavior of bug #79863.
5
6 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7
8         * MdiWindowManager.cs:
9         * InternalWindowManager.cs:
10         - Moved a few methods specific to Mdi from 
11         InternalWindowManager to MdiWindowManager.
12         Fixes #79996.
13         
14 2006-11-21  Chris Toshok  <toshok@ximian.com>
15
16         * XplatUIOSX.cs: stub out InvalidateNC.
17
18         * XplatUIWin32.cs: implement InvalidateNC using the call I found
19         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
20
21         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
22
23         * XplatUIDriver.cs: add InvalidateNC abstract method.
24
25         * XplatUI.cs: add InvalidateNC.
26
27 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
28
29         * ToolBar.cs: Invalidate complete button area when pressed status 
30         was changed.
31         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
32         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
33         by 1 when button is pressed.
34
35 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
36
37         * ToolButton.cs: Invalidate middle of DropDown button when
38         ToolBar theres DropDownArrows.
39         * ThemeWin32Classic.cs: Change position of DropDown arrow and
40         fix DropDown drawing operations.
41
42 2006-11-20  Chris Toshok  <toshok@ximian.com>
43
44         * NativeWindow.cs: fix the formatting of functions ('{' on the
45         following line), and enable the thread exception dialog.
46
47         * Application.cs: remove the duplicate exception catching from
48         here.
49
50 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
51
52         * Toolbar.cs: Triggers button click event when click on icon
53         of dropdown ToolBarButton. Fixes #79912.
54         
55 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
56
57         * Theme.cs:
58         * ThemeWin32Classic.cs:
59         - Added a property WindowBorderFont to enable themeing
60           of mdi child windows' Text.
61           
62 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
63
64         * InternalWindowManager.cs:
65         * Form.cs:
66         * MdiClient.cs:
67         * MdiWindowManager.cs: 
68         - If mdi child is maximized, set mdi parent's
69           text to "Parent - [Child]". Fixes #79770.
70         - If there is any maximized mdi child windows, only the active 
71           window (and any new windows) is maximized, the rest are normal.
72         - On a WindowState change only save mdi child's window bounds 
73           if the old window state was normal. Fixes #79774.
74         - The scroll bars are now calculated on hopefully all
75           necessary events. Fixed #79771 / #79844->6 / #79906.
76         - MdiClient.SizeScrollBars() now takes into account docked 
77           controls in the parent when calculating available space.
78         - InternalWindowManager now always repaints the entire title
79           area. Fixes #79844->1/4/5.
80         - Added RequestNCRecalc on mdi child windowstate changes.
81           Fixes #79772.
82
83 2006-11-20  Mike Kestner  <mkestner@novell.com>
84
85         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
86         in the MouseUp handler of the listbox and move the return handling
87         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
88
89 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
90
91         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
92
93 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
94
95         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
96           working in 1.2.x anymore. So, updated.
97
98 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
99
100         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
101         NumberGroupSeparator of current culture instead of assuming en-US.
102         Fixed bug #79967.
103
104 2006-11-17  Mike Kestner  <mkestner@novell.com>
105
106         * Control.cs: Add the concept of implicit bounds setting so that
107         dock/undock round trips preserve explicitly set size/locations.
108         Fixes #79313.
109
110 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
111
112         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
113           can't handle those filters. (Fixes bug #79961)
114
115 2006-11-17  Chris Toshok  <toshok@ximian.com>
116
117         [ fixes the exit/crashes associated with #79835.  it's clearly
118         suboptimal though, we need to figure out a better way to solve
119         this. ]
120         
121         * PrintPreviewControl.cs: deal with the new invalid printer
122         exceptions.
123
124         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
125         and return false (so CommonDialog.ShowDialog doesn't actually show
126         the form.)
127
128         * PrintDialog.cs: enable/disable the Ok button depending on
129         whether or not the printer is valid.
130
131         * CommonDialog.cs (ShowDialog): only actually show the form if
132         RunDialog returns true.
133
134 2006-11-17  Jackson Harper  <jackson@ximian.com>
135
136         * TextControl.cs: When soft splitting a line, mark it as a soft
137         split line. Also carry over the current line break to the next
138         line.
139
140 2006-11-17  Chris Toshok  <toshok@ximian.com>
141
142         * XplatUIX11.cs: when scrolling a window with an invalid area, we
143         only want to shift the part of the invalid area that overlaps the
144         area we're scrolling.  we also don't want to clear the invalid
145         area unless the invalid area was entirely contained within the
146         scrolling area.
147
148 2006-11-16  Chris Toshok  <toshok@ximian.com>
149
150         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
151         also make sure to free the memory returned by XGetWindowProperty
152         in GetText().
153
154         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
155
156 2006-11-16  Chris Toshok  <toshok@ximian.com>
157
158         * XplatUI.cs: add a new super secret way to get at the totally
159         unsupported X11 backend.
160
161 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
162
163         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
164
165 2006-11-16  Jackson Harper  <jackson@ximian.com>
166
167         * TreeView.cs: Allow more explicit setting of top node position
168         for scrollbars. Slower algo, but more accurate.
169         - CollapseAll should maintain the current top node.
170         * TextBoxBase.cs: When positioning the caret, use the line, pos
171         method, since the x, y method does not grab the correct tag, and
172         the caret height never gets set correctly. (Maybe I should just do
173         away with the caret having its own height, and always use the
174         carets current tag for height).
175
176 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
177
178         [Fixes 79778, 79923]
179
180         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
181         Parent to the FosterParent instead.
182
183 2006-11-16  Jackson Harper  <jackson@ximian.com>
184
185         * TreeView.cs: Need to recalc the topnode when we expand or
186         collapse. The scrolling methods can't handle this on their own,
187         since they use differences between the last scroll position, and
188         those difference get completely messed up since we are expanding
189         nodes.  This problem should probably be fixed in the scrolling
190         methods, so they can figure out exactly where they are, but this
191         will slow things down a little.
192         * ThemeWin32Classic.cs: Special case for groupboxes with empty
193         strings, makes nunit-gui look a lot nicer.
194
195 2006-11-16  Chris Toshok  <toshok@ximian.com>
196
197         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
198         the broken multithreaded event handling we have in here.  File
199         this entry under "Why we should move to the new X11 backend".
200
201         Any thread can make it into UpdateMessageQueue, which gets events
202         from the X socket - some of which could belong to hwnds being
203         managed by a different thread.  We can also have multiple threads
204         in UpdateMessageQueue at the same time, with each one reading from
205         the X socket.  This leads to many problems, with the following
206         solutions:
207
208         We can't use hwnd.Queue.Enqueue anywhere in here and must use
209         EnqueueLocked.
210
211         The MotionNotify compression we do can't work across threads
212         (without locking the entire queue, perhaps) since we call
213         hwnd.Queue.Peek, so we just punt and don't compress motion events
214         unless the owning thread is the one which got the X event.
215
216         ConfigureNotify is another fun one, since it modifies the hwnd's
217         bounds and then enqueues the event.  We add a lock to Hwnd which
218         is held when setting configure_pending to true (and enqueuing the
219         event).
220
221         There is a race wrt the wake socket.  we need to make sure that
222         only 1 thread is waiting on that socket, or else a thread could
223         sleep waiting for data that never comes.  It's difficult (but not
224         impossible) to make happen, because it seems to require something
225         like the following:
226
227             1. Thread 1 polls on wake_receive
228         
229             2. poll returns saying there's data to be read on
230                wake_receive.
231         
232             3. Thread 2 polls on wake_receive and immediately returns
233                saying there's data to be read.
234
235             4. Thread 2 reads the wakeup byte from wake_receive
236
237             5. Thread 1 attempts to read the wakeup byte from
238                wake_receive.
239
240             6. Thread 2 exits (due to a form closing, perhaps).
241
242             7. Thread 1 blocks forever.
243         
244         Fun, eh?
245
246         Fixing the Expose handling isn't done yet, and the races inherent
247         in that piece of code are responsible for the drawing mistakes you
248         see when generating expose events in a MT app (like NPlot).  This
249         one is the likely to be the hardest to bandaid, and it doesn't
250         appear to cause anything but drawing problems.  The other issues
251         caused apps to exit or hang.
252
253         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
254         called from a different thread than the one that should be calling
255         these functions.
256
257         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
258
259 2006-11-15  Chris Toshok  <toshok@ximian.com>
260
261         * Application.cs: null out the context's MainForm when we exit
262         RunLoop.  Fixes a newly checked in unit test as well as the last
263         ODE from bug #79933.
264
265 2006-11-15  Chris Toshok  <toshok@ximian.com>
266
267         * Form.cs (set_Owner): allow a null value so we can clear the
268         form's owner.
269         (Dispose): set all our owned_form's Owner properties to null, and
270         clear the owned_forms collection.
271         (WM_CLOSE): clean up this a little bit.. still not right though.
272
273         * ApplicationContext.cs: OnMainFormClosed should only call
274         ExitThreadCore if the main form isn't recreating.  Fixes unit
275         test.
276
277 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
278
279         [Fixes 78346]
280
281         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
282
283 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
284
285         [Fixes 79433]
286
287         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
288         keep popup window types from stealing focus from the main form
289         on Windows.
290
291         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
292
293         * MenuAPI.cs: Set above flag to true.
294
295 2006-11-15  Chris Toshok  <toshok@ximian.com>
296
297         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
298         the button being released is not in wParam.
299
300 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
301
302         * Form.cs: Add the released button to MouseEventArgs.Button
303         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
304         on Win32.
305
306 2006-11-15  Chris Toshok  <toshok@ximian.com>
307
308         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
309         GetText().  untested because it's unused in our implementation.
310         Control.Text always caches the text, even if
311         ControlStyles.CacheText is not set.
312
313         fixes bug #79939.
314
315 2006-11-15  Chris Toshok  <toshok@ximian.com>
316
317         [ fixes #79933 ]
318         
319         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
320         message.  no hiding, no disposing.
321
322         in the WM_CLOSE handler, hide the form if it's modal.
323
324 2006-11-15  Chris Toshok  <toshok@ximian.com>
325
326         * XplatUIX11.cs: use AddExpose instead of sending a message.
327         fixes textbox border drawing.
328
329 2006-11-15  Chris Toshok  <toshok@ximian.com>
330
331         * PropertyGridView.cs: keep from crashing on mouse move/down when
332         the property grid is empty.
333
334 2006-11-14  Jackson Harper  <jackson@ximian.com>
335
336         * TextControl.cs: Make PageUp and PageDown more like the MS
337         versions.
338         * TextBoxBase.cs: When we set the text property position the
339         cursor at the beginning of the document.
340
341 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
342
343         * Form.cs: if a mdi child's WindowState has changed
344         before it's creation, it would display wrong control
345         buttons.
346         
347 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
348
349         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
350           (Fixes bug #79927)
351
352 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
353
354         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
355         the window gets to paint its borders even if the window is
356         getting smaller.
357         
358         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
359         otherwise the old control buttons would still be painted 
360         if the window gets bigger.
361         
362         * PaintEventArgs.cs: add an internal method so that the clip 
363         rectangle can be changed.
364         
365 2006-11-13  Chris Toshok  <toshok@ximian.com>
366
367         [ fixes bug #79745 ]
368         
369         * NotifyIcon.cs: lots of cleanup.
370
371         * X11Structs.cs: add an enum for XEMBED messages.
372
373         * XplatUIX11.cs: reindent one of the giant switch statements, it
374         was taking up an additional tab stop, and this file is already way
375         too wide for my laptop's screen.
376
377         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
378         we get it, resize the hwnd to the WMNormalHints max_width/height.
379
380 2006-11-13  Jackson Harper  <jackson@ximian.com>
381
382         * TextBoxBase.cs: Compute the value changes for the mouse wheel
383         teh simple way.
384
385 2006-11-13  Chris Toshok  <toshok@ximian.com>
386
387         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
388         #79898.  force a reference to the Region to stick around so the
389         unmanaged object isn't collected (rendering our handle in the MSG
390         stale).
391
392 2006-11-13  Chris Toshok  <toshok@ximian.com>
393
394         * XplatUIX11.cs: fix #79917 for window managers which support
395
396         using XStoreName on the raw utf8, and we need to convert to
397         COMPOUND_TEXT if it's non-latin1.
398
399 2006-11-13  Chris Toshok  <toshok@ximian.com>
400
401         * Form.cs (set_DialogResult): we need to set closing to false if
402         we're setting our result to None.  fixes bug #79908.
403
404 2006-11-13  Jackson Harper  <jackson@ximian.com>
405
406         * TextControl.cs: When formatting text, compute the adjusted tag
407         lengths correctly, using FindTag for the end tag instead of trying
408         to figure it out outselves.
409         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
410         the item, ItemHeight doesn't work, because trees with large
411         imagelists use those for their height
412         * TreeView.cs: ActualItemHeight factors in the image height
413         - compute left edge of checkboxes correctly
414         - when expanding/collapsing move the bottom down one pixel, so we
415         aren't moving part of the node
416
417 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
418
419         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
420         stack in PaintEventStart so that it won't get disposed by the gc
421         before reaching PaintEventEnd.
422
423 2006-11-13  Jackson Harper  <jackson@ximian.com>
424
425         * TextBoxBase.cs: Don't select the word if we are on a line with
426         no text.
427         - We don't need to position the caret on mouse up, since the mouse
428         move handler should be doing this
429         - When double clicking a blank line, the caret is advanced to the
430         next line.
431
432 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
433
434         * TreeNodeCollection.cs: Avoid duplicating indexer code.
435
436 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
437
438         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
439         Fixes part of bug #79910.
440
441 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
442
443         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
444           (bug #79903). Some minor string updates to match ms.
445
446 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
447
448         * FileDialog.cs: Don't add an extension if the filename
449           already ends with that extension.
450
451 2006-11-10  Jackson Harper  <jackson@ximian.com>
452
453         * TreeView.cs: Use the currently highlighted node for the
454         BeforeSelect event.
455         * TextBoxBase.cs: There is no need to expand selection on
456         MouseMove.
457         - CanUndo means 'is there any undo operations', not 'is undo
458         allowed on this textcontrol. Fixed ClearUndo unit test.
459
460 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
461
462         * Button.cs: only perform click when button is Selectable (so as 
463         not to activate default buttons when they're disabled)
464         
465         * Control.cs: Rewrite of the SelectNextControl and related 
466         methods. HandleClick now selects next control if the current one
467         is being disabled.
468         
469         * Form.cs: OnActivated selects next active control only if Load 
470         has already occurred. If Load hasn't run, there's no point in 
471         selecting here, Load might change the state of controls.
472         
473         * FocusTest.cs: Tests marked as working again for these fixes
474
475 2006-11-10  Chris Toshok  <toshok@ximian.com>
476
477         * XplatUIX11.cs: a couple of fixes.
478
479         - use XInternAtoms with almost all the atoms we need to register,
480         instead of many, many calls to XInternAtom.  should help a bit on
481         startup time, at the expense of making the code look a little
482         worse.
483
484         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
485         isn't reparented (which seems to be a clue that we're running fon
486         compiz) and they have an Owner form.  This fixes the tool windows
487         in paint.net when running under compiz.
488
489         - when setting the opacity of a window, support both the case
490         where the window has been reparented and also when it hasn't been.
491         Since compiz/beryl doesn't seem to reparent windows, and these are
492         the only window managers which support translucency, I'm not sure
493         why we need the hwnd.reparented case at all.. but leave it in.
494         now we get translucent windows in paint.net under compiz/beryl.
495
496 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
497
498         * FileDialog.cs: Always return the value for FilterIndex that
499           was set. Internally convert it to values that make sense.
500
501 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
502         
503         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
504
505 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
506
507         * Toolbar.cs: Change default value of DropDownArrows to true, the 
508         signature still using false to make it compatible with MS but the 
509         initial value is true. Fixes #79855.
510
511 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
512
513         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
514           only available on Linux.
515
516 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
517
518         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
519         reduce number of calls to redraw method during toolbar creation.
520
521 2006-11-09  Mike Kestner  <mkestner@novell.com>
522
523         * ListView.cs : raise SelectedIndexChanged when an item is selected
524         programmatically via the Item.Selected property.  Gert's nice 
525         ListViewSelectedIndexChanged test fixture now runs clean.
526
527 2006-11-09  Mike Kestner  <mkestner@novell.com>
528
529         * ListView.cs : raise SelectedIndexChanged when a selected item is
530         removed from the item collection using Remove or RemoveAt.
531
532 2006-11-09  Mike Kestner  <mkestner@novell.com>
533
534         * ListView.cs : raise SelectedIndexChanged once per selected item
535         for compat with MS.  Fixes #79849+.
536
537 2006-11-09  Chris Toshok  <toshok@ximian.com>
538
539         * TabControl.cs: initialize row_count to 0, and set it to 1 when
540         we need to (if we have any tab pages).  Fixes unit test.
541
542 2006-11-09  Chris Toshok  <toshok@ximian.com>
543
544         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
545         width is 0, not 3.  Fixes a unit test.
546
547 2006-11-09  Mike Kestner  <mkestner@novell.com>
548
549         * ListView.cs : use Implicit scrollbars so that focus isn't 
550         stolen from the listview when they are clicked. Fixes #79850.
551
552 2006-11-09  Chris Toshok  <toshok@ximian.com>
553
554         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
555         have a root item.  Fixes #79879.
556
557 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
558
559         * FileDialog.cs:
560           - Fix ToString ()
561           - An ArgumentException is now thrown if a wrong filter
562             is applied (matches ms). The previous filter doesn't change
563             anymore if an exception is thrown.
564           - Changing the FileName property also affects FileNames
565         * ColorDialog.cs: The length of the CustomColors array is always
566           16. It doesn't matter if we use a smaller array or null to update
567           or change the custom colors property.
568         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
569           for RootFolder if we get a undefined value.
570
571 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
572
573         * StatusBarPanel.cs: 
574         - Width is set to MinWidth if Width is smaller than
575         MinWidth. Fixes #79842.
576         - MinWidth now always overrides Width (MSDN says MinWidth
577         is set to Width when AutoSize = None, but they do not 
578         behave like that).
579         - Style has now the the correct default value.
580         
581 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
582  
583         * TrackBar.cs: 
584         - The control is completely invalidated on 
585         Got/LostFocus to draw the focus rectangle correctly.
586         - When AutoSize then height is always 45 (width for 
587         vertical controls).
588         
589         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
590         on the mouse when moved and it doesn't move when grabbed
591         until the mouse moves as well. Also fixed some wrong 
592         calculations when clicking on the thumb (control thought
593         click was outside of thumb and didn't grab it).
594         Fixes some of the issues in #79718.
595
596 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
597
598         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
599
600 2006-11-08  Chris Toshok  <toshok@ximian.com>
601
602         * PropertyGridView.cs: only call ToggleValue if the item is not
603         readonly.
604
605 2006-11-08  Jackson Harper  <jackson@ximian.com>
606
607         * TextBoxBase.cs: The RichTextBox and textbox have very different
608         word selection methods.  Implement the textbox's simple word
609         selection here, and let the RichTextBox override and provide it's
610         own.
611         - Don't do extra selection on mouseup
612         * RichTextBox.cs: Use the documents word selection algorithm, I
613         think ideally, this function will be pulled into the
614         RichTextBox.cs code someday.
615
616 2006-11-08  Chris Toshok  <toshok@ximian.com>
617
618         * RootGridEntry.cs: new class to represent GridItemType.Root.
619
620         * CategoryGridEntry.cs: reformat, and add boilerplate.
621         
622         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
623         returns the UI parent anyway, and we need special handling to
624         implement the GetTarget method in the face of it.  Also, implement
625         Select().
626
627         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
628         a root grid item, and use that instead of PropertyGrid.grid_items.
629         Also, make use of TypeConverters (and add limitted support for
630         ICustomTypeDescriptors) when initially populating the grid.
631         Arrays now show up more or less properly.
632
633 2006-11-08  Chris Toshok  <toshok@ximian.com>
634
635         * Application.cs: set the modal dialog to non modal after we close
636         it.  Fixes bug #79866.
637
638 2006-11-08  Jackson Harper  <jackson@ximian.com>
639
640         * TextControl.cs: When combining lines carry over the line end
641         style from the end line.
642         - Invalidate the selected area when setting it, if it is visible.
643         * TextBoxBase.cs: Only rich text box can do full line selects.
644         - Make sure to set the cursor position when there is a click,
645         otherwise two clicks in separate areas could cause a large chunk
646         to be selected.
647
648 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
649
650         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
651         Fixes #79863.
652
653 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
654
655         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
656         time. Remove tooltips when ToolButton click events.  Fixes #79856.
657
658 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
659
660         * MenuAPI.cs: Ignore right click for menu actions and fixes
661         menu border when clicked.  Fixes #79846.
662
663 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
664
665         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
666         MouseState after create wParam for message, this fixes mouse button 
667         equal none in mouse up events.
668         
669 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
670
671         * Control.cs : Focus() now calls Select to set the Container's
672         Active Control and to give it focus. To avoid infinite recursion
673         (because ActiveControl also calls Focus at one point), a check 
674         is made in Focus with the help of a new internal variable
675         is_focusing.
676
677 2006-11-07  Mike Kestner  <mkestner@novell.com>
678
679         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
680         if there's a selection.  Fixes #79849.
681
682 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
683
684         * PropertyGrid.cs: Avoid fixed height of help description label.
685         Fixes part of bug #79829.
686
687 2006-11-07  Chris Toshok  <toshok@ximian.com>
688
689         * XplatUIX11.cs: fix #79790 again, by using the
690         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
691
692 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
693
694         * ToolBar.cs: Fix left click checking.
695
696 2006-11-07  Chris Toshok  <toshok@ximian.com>
697
698         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
699
700 2006-11-07  Chris Toshok  <toshok@ximian.com>
701
702         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
703         PropertyManager unit tests.
704
705         * PropertyManager.cs: make property_name internal.
706
707 2006-11-07  Chris Toshok  <toshok@ximian.com>
708
709         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
710         pass a unit test.  Also, don't set image_index to anything in
711         response to setting the ImageList property.
712
713 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
714
715         * ToolBar.cs: Ignore click events when mouse button is not a
716         left button, only accepts other button for dropdown menus.  
717         Fixes #79854.
718
719 2006-11-07  Chris Toshok  <toshok@ximian.com>
720
721         * DataGrid.cs: make the back and parent row buttons a little less
722         ugly.
723
724 2006-11-07  Jackson Harper  <jackson@ximian.com>
725
726         * TextBoxBase.cs: When converting to Text don't put line breaks in
727         for soft line breaks.
728         * TextControl.cs: There is an initial "fake" line in the document,
729         this is now a soft break line, so that an extra line feed doesn't
730         get added to the end of documents.
731
732 2006-11-07  Chris Toshok  <toshok@ximian.com>
733
734         [ fix bug #79778 ]
735         
736         * CurrencyManager.cs: if the list is readonly, don't bother
737         checking if IBindingList.AllowNew is true.
738
739         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
740         for non-DataRowView datasources..  or rather, make it not crash.
741         (DataGridPaintRelationRow): make sure we limit the row painting to
742         the area not covered by the row header, and make our cell width at
743         least large enough to cover the relation area.  This allows grids
744         that have relations but no rows to render correctly.
745         (DataGridPaintRowContents): same type of changes here.
746         (SetDataSource): move back to always calling
747         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
748         navigating back through relations.
749         (HitTest): handle the case where we have no cells but have
750         relations.  Right now we generate a hit in cell 0 of whatever the
751         row is, not sure if this is strictly correct, but it works for our
752         purposes.
753         
754         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
755         bother doing anything.
756
757 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
758
759         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
760         early version of StatusStrip.  Not responsible for eaten
761         application or firstborn children.
762
763 2006-11-06  Chris Toshok  <toshok@ximian.com>
764
765         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
766         call GetTabRect with a -1 index.  Fixes #79847.
767
768 2006-11-06  Jackson Harper  <jackson@ximian.com>
769
770         * TreeNodeCollection.cs: Update scrollbars after clearing.
771
772 2006-11-06  Chris Toshok  <toshok@ximian.com>
773
774         * NumericUpDown.cs: fix the ToString method for some unit test
775         love.
776
777 2006-11-06  Chris Toshok  <toshok@ximian.com>
778
779         * PropertyGrid.cs:
780         - set the initial SelectedGridItem if we can.
781
782         - Exclude non-mergable properties only if we're merging > 1
783         object.  Merging 1 object isn't really merging, obviously.
784
785         - Handle PropertySort.NoSort just like Alphabetical, which is
786         wrong of course, but at least gets things on the screen.
787         
788         * PropertyGridView.cs:
789         - Add method "FindFirstItem" which finds the first property grid
790         item, so we can select it by default.
791
792         - make use of GridEntry.CanResetValue.
793
794         - Don't call RedrawBelowItemOnExpansion here anymore, the
795         individual GridEntry's will do that.
796
797         - Remove the ITypeDescriptorContextImpl internal class.
798         
799         * GridEntry.cs:
800         - this class needs to implement ITypeDescriptorContext, as it's
801         what MS's PropertyDescriptorGridEntry does, which means we can
802         remove the ITypeDescriptorContextImpl internal class from
803         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
804
805         - keep a reference to our PropertyGridView, and move the call to
806         RedrawBelowItemOnExpansion here from PGV.  This means
807         programmaticly setting Expanded actually does something visible.
808
809         - add a CanResetValue() function which takes into account our
810         possibly multiple "selected_objects" in the merged case.  Shifting
811         PropertyGridView to use this method fixes another unreported
812         crasher found running the test for #79829.
813
814         - when Top or Bounds is updated, make sure the PropertyGridTextBox
815         is updated to reflect this.
816
817         * CategoryGridEntry.cs: the ctor takes the PGV now.
818         
819 2006-11-06  Jackson Harper  <jackson@ximian.com>
820
821         * TextControl.cs: These are 1 based.
822         * TextBoxBase.cs: When setting the selected text, don't change the
823         selected text tags, this is done by ReplaceText, just position the
824         cursor at the end of the new text.
825
826 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
827
828         * ListView.cs: Allow label edit only when, when LabelEdit is
829           set to true.
830
831 2006-11-06  Jackson Harper  <jackson@ximian.com>
832
833         * TextControl.cs: If a suitable wrapping position isn't found,
834         just wrap right in the middle of a word.
835
836 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
837
838         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
839           bug #79820.
840
841 2006-11-06  Jackson Harper  <jackson@ximian.com>
842
843         * TreeView.cs: Can't use the VisibleCount property when setting
844         scrollbar heights, because this doesn't take into account whether
845         or not the horz scrollbar just came visible.
846
847 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
848
849         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
850         activated.  Fixes #79369, #79832.
851
852 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
853
854         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
855           had to remove support for links that point to a directory. FileInfo
856           returns no usefull information (means, the directory they point to)
857           for such links. Replaced some empty string ("") with String.Empty.
858
859 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
860
861         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
862         NullReferenceException when attempting to remove node that is not in
863         collection. Throw NullReferenceException when null is passed to 
864         Remove. Allow first element of the collection to be removed. Fixes
865         bug #79831.  In GetEnumerator ().Current return null if positioned 
866         before the first element of the collection. In GetEnumerator ().Reset,
867         position before first element of the collection.
868
869 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
870
871         * PropertyGrid.cs: To match MS, remove default title and description
872         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
873         buttons.
874
875 2006-11-04  Chris Toshok  <toshok@ximian.com>
876
877         * Theme.cs: add a Clamp method, just for kicks.
878
879         * ThemeWin32Classic.cs: clamp all color components to [0..255].
880
881 2006-11-04  Chris Toshok  <toshok@ximian.com>
882
883         * Form.cs: if the form isn't visible, Close() does nothing.
884
885 2006-11-03  Chris Toshok  <toshok@ximian.com>
886
887         * Form.cs (Close): if the form is modal, don't Dispose of it, only
888         Hide it.
889         (WndProc): don't Dispose after handling the WM_CLOSE message.
890
891         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
892         them as such, instead of using casts from Control to Form.  Also,
893         don't Dispose of the modal dialog when we fall out of the loop -
894         Close() it instead.
895
896         fixes bug #79813.
897
898 2006-11-03  Chris Toshok  <toshok@ximian.com>
899
900         * Control.cs (Dispose): only go through the dispose thing if we're
901         @disposing, and we haven't already been disposed.  Fixes bug
902         #79814.
903
904         * Form.cs: no reason to call "base.Dispose()" here instead of
905         "Dispose()".
906
907 2006-11-03  Mike Kestner  <mkestner@novell.com>
908
909         * ComboBox.cs : use ToString instead of casts in AddItem for
910         sorting functionality.  Fixes #79812.
911
912 2006-11-03  Chris Toshok  <toshok@ximian.com>
913
914         * Application.cs: pave the way for actually using the thread
915         exception dialog.  it's ifdefed out at the moment.
916
917 2006-11-03  Chris Toshok  <toshok@ximian.com>
918
919         * ThreadExceptionDialog.cs: until we get a better layout, actually
920         hide the details textbox and label when we shouldn't see them.
921
922 2006-11-03  Jackson Harper  <jackson@ximian.com>
923
924         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
925         multiline textboxes anymore.  This method also determines the
926         width/height of a textboxes canvas area.
927         - Sorta a revert of the last patch.  For multiline just position
928         the controls, then bail.  This way the scrollbar width won't be
929         altered.
930
931 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
932
933         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
934         it dont need.  Fixes #79537.
935
936 2006-11-02  Jackson Harper  <jackson@ximian.com>
937
938         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
939         send the status after firing the DndOver event.
940
941 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
942
943         * TrackBar.cs: Now orientation only switches height / width if
944         the control's handle is created (Win32 does it like this). Also 
945         fixed a typo in ToString() for a test to pass, changed the 
946         exception thrown in set_LargeChange and set_SmallChange to 
947         match Win32 behaviour, and added TrackBar tests to the unit 
948         tests.
949
950 2006-11-02  Chris Toshok  <toshok@ximian.com>
951
952         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
953         not _NET_WM_STATE_NO_TASKBAR.
954
955 2006-11-02  Jackson Harper  <jackson@ximian.com>
956
957         * TextControl.cs: Increment count by one, since in the update view
958         count - 1 is used.
959
960 2006-11-02  Jackson Harper  <jackson@ximian.com>
961
962         * TextBoxBase.cs: Use client rectangle not bounds for checking if
963         the mouse is in the client rectangle (duh).
964
965 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
966         
967         * TrackBar.cs: Fixed trackbar jumping around when clicking
968         on it - the trackbar was not detecting correctly at which
969         side of the thumb the click was done. (fixes #79718)
970
971 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
972
973         * ListBox.cs: scroll visible area when change SelectedIndex to
974         a non visible area.  Fixes #79481.
975
976 2006-11-01  Jackson Harper  <jackson@ximian.com>
977
978         * TextControl.cs: When replacing the selection move the selection
979         start/end/anchor to the end of the new text.
980
981 2006-11-01  Jackson Harper  <jackson@ximian.com>
982
983         * XplatUIWin32.cs: When setting the parent change the controls
984         visibility to it's visibility flag, not to it's old parents
985         visibility (.Visible walks the parent chain).
986
987 2006-11-01  Chris Toshok  <toshok@ximian.com>
988
989         * XplatUIX11.cs: revert the #79790 fix, as the simple.
990         XSetTransientForHint fix breaks paint .net's tool windows.  more
991         work needed for that one.
992
993 2006-11-01  Chris Toshok  <toshok@ximian.com>
994
995         * ScrollBar.cs: throw ArgumentException instead of Exception in
996         LargeChange/SmallChange setters.  fixes unit tests.
997
998 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
999
1000         * ContainerControl.cs: reverted rev.67183 (which was itself
1001         a reversion of rev.66853... eh).
1002         
1003         * Control.cs: Fixes Reflector hang by changing Focus() call
1004         to what it was before rev.66643 (calling Select() here sets 
1005         ActiveControl, which in some situations calls back Focus and 
1006         eventually does a stack overflow). Temp fix.    
1007         Changes to GetNextControl() to not look for children to select when
1008         parent cannot be selectable (so it looks for siblings instead)  
1009         
1010 2006-10-31  Mike Kestner  <mkestner@novell.com>
1011
1012         * CheckedListBox.cs : off by one error in returned index from
1013         ObjectCollection.Add.  Fixes #79758.
1014
1015 2006-10-31  Chris Toshok  <toshok@ximian.com>
1016
1017         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
1018         calls for the textbox/spinner, to keep from recursing to the point
1019         where we crash.  Fixes #79760.
1020
1021 2006-10-31  Chris Toshok  <toshok@ximian.com>
1022
1023         * ListControl.cs (set_SelectedValue): don't throw exceptions on
1024         null/"" value, just return.  matches ms's behavior and fixes some
1025         failing tests.
1026
1027 2006-10-31  Chris Toshok  <toshok@ximian.com>
1028
1029         * Control.cs (set_Capture): make a logic a little easier to
1030         follow.
1031
1032         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
1033         if it's being destroyed.  A necessary fix surely, but a bandaid
1034         also, to fix the stuck capture problem in bug #78413.
1035
1036 2006-10-31  Chris Toshok  <toshok@ximian.com>
1037
1038         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
1039         convention of clearing hwnd.ClientRect when we set the
1040         width/height (so it'll be recalculated by Hwnd).
1041
1042 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
1043
1044         * ContainerControl.cs: reversed Contains check from
1045         ActiveControl due to hanging problems. This fix
1046         partly regresses #79667 (button does not have
1047         initial focus), so this might be a symptom for 
1048         a larger parenting problem (set_ActiveControl
1049         is being called but the child control does
1050         not have the parent set yet?)   
1051         
1052 2006-10-31  Mike Kestner  <mkestner@novell.com>
1053
1054         * MenuAPI.cs : fix keynav when menu is click activated.
1055
1056 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
1057
1058         * ToolStrip*: Version 0.2.
1059
1060         * MenuStrip.cs: Version 0.1.
1061
1062         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
1063
1064 2006-10-30  Chris Toshok  <toshok@ximian.com>
1065
1066         [ fixes the oversized notify icon issue in bug #79745 ]
1067         
1068         * NotifyIcon.cs: scale the icon down to the size we're given by
1069         the XplatUI layer (this would be faster if we did it once instead
1070         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
1071         since it's never invoked.
1072
1073         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
1074         pixels high by default, so let's hardcode our systray icon to that
1075         size.  The SYSTEM_TRAY protocol should really have a way for
1076         client apps to query for the correct icon size.. but oh well.  A
1077         couple of patches to deal with the screwy client_window ==
1078         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
1079         instance, and also make sure we don't XSelectInput twice).
1080
1081 2006-10-30  Chris Toshok  <toshok@ximian.com>
1082
1083         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
1084         recreating forms.  Control recreation is the bane of my existence.
1085         Fix it in a way that keeps everyone happy.
1086
1087 2006-10-30  Chris Toshok  <toshok@ximian.com>
1088
1089         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
1090         just non-CHILD ones.  otherwise sometimes scrollbars end up with
1091         client_windows not being resized to the proper size (ReportBuilder
1092         shows this extremely well).
1093
1094 2006-10-30  Chris Toshok  <toshok@ximian.com>
1095
1096         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
1097         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
1098         showing up in the gnome taskbar.  Fixes bug #79790.
1099
1100 2006-10-30  Chris Toshok  <toshok@ximian.com>
1101
1102         * ApplicationContext.cs: guard against a NRE.
1103
1104         * Application.cs: null out the old MainForm for the context, so we
1105         don't try to use it again once it's disposed.  Fixes bug #79783.
1106
1107 2006-10-30  Chris Toshok  <toshok@ximian.com>
1108
1109         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
1110         BindingContext, set the data source directly, otherwise do the
1111         lazy approach - the actual ListManager will be created when we get
1112         a BindingContext. Fixes bug #79700.
1113
1114 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1115
1116         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
1117           XplatUIX11.cs: Remove old 2 parameter SetVisible.
1118
1119         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
1120
1121 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
1122
1123         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
1124         of SetVisible that allows a window to be shown, but not activated.
1125         This is needed on Windows for MenuStrip, and can probably be used
1126         with MainMenu and ComboBox to fix the focus stealing issues on
1127         Windows.
1128
1129         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
1130
1131 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
1132
1133         * PictureBox.cs: Fix the output of the ToString method.
1134
1135 2006-10-29  Chris Toshok  <toshok@ximian.com>
1136
1137         * Control.cs (get_TopLevelControl): fix bug #79781.
1138
1139 2006-10-29  Chris Toshok  <toshok@ximian.com>
1140
1141         * ListControl.cs (set_DataSource): throw Exception here, not
1142         ArgumentException, to match MS behavior.
1143
1144 2006-10-29  Chris Toshok  <toshok@ximian.com>
1145
1146         * Form.cs: remove the try-catch's around calls to GetWindowState.
1147         We can just check the return value.
1148
1149         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
1150         Instead return -1.
1151
1152         * XplatUI.cs: Add note about additional return value for
1153         GetWindowState.
1154
1155 2006-10-29  Chris Toshok  <toshok@ximian.com>
1156
1157         * Control.cs (CreateHandle): when we create our handle, we also
1158         create the handles of our child controls.  Fixes one of the
1159         Control unit tests (CH11).
1160
1161 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1162
1163         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
1164
1165 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
1166
1167         * ThemeClearlooks.cs: A little speedup.
1168
1169 2006-10-27  Chris Toshok  <toshok@ximian.com>
1170
1171         * Control.cs: implement Control.FromChildHandle in a way that
1172         matches the docs (and fixes the failed test.)
1173
1174 2006-10-27  Chris Toshok  <toshok@ximian.com>
1175
1176         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
1177         comments).
1178
1179         * DataGrid.cs: implement ResetForeColor such that the tests
1180         succeed.
1181         
1182 2006-10-27  Chris Toshok  <toshok@ximian.com>
1183
1184         * ToolBarButton.cs: setting text/tooltiptext to null results in it
1185         being set to "".  Fixes bug #79759.
1186
1187 2006-10-27  Jackson Harper  <jackson@ximian.com>
1188
1189         * TextControl.cs: We need to clear the entire selection area when
1190         setting the start, otherwise multiline selections are still
1191         visible.
1192
1193 2006-10-26  Chris Toshok  <toshok@ximian.com>
1194
1195         * PropertyGridView.cs: 
1196
1197         - ifdef all the code specific to the double
1198         buffer case, and provide some alternatives in the non-doublebuffer
1199         code, which makes heavy use of XplatUI.ScrollWindow to move things
1200         around without having to invalidate (and cause flicker).  There
1201         are still some drawing problems in the non-doublebuffered case, so
1202         DOUBLEBUFFER is defined by default.
1203
1204         - Fix the way dropdowns are handled.  now we explicitly watch for
1205         the events which might cause the dropdown to close, and break out
1206         of the nested event loop there.  This gets rid of all Capture
1207         code, at the expense of the Msg special casing.  Seems to work,
1208         though, and fixes bug #79743.
1209
1210 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
1211         * Control.cs: SetIsRecreating now recreates implicitly added
1212         child controls as well. Finally fixes #79629. The flag passed to 
1213         SetIsRecreating has also been removed since it wasn't used.
1214         
1215 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1216
1217         * PageSetupDialog.cs: Clean some code, fix some bits, 
1218         add some checks, and add a printer sub-dialog.
1219
1220 2006-10-26  Chris Toshok  <toshok@ximian.com>
1221
1222         * PropertyGrid.cs: make set_SelectedObject call
1223         set_SelectedObjects, and move the duplicate logic to the
1224         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
1225
1226         * PropertyGridView.cs: hide the textbox when we get a
1227         SelectedObjectsChanged event.
1228
1229         Fixes bug #79748.
1230
1231 2006-10-26  Chris Toshok  <toshok@ximian.com>
1232
1233         * PropertyGridView.cs: deal with the type converter not supporting
1234         GetStandardValues() or GetStandardValues() returning null, which
1235         is does in the default case.  Fixes #79742.
1236
1237 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1238
1239         * CheckedListBox.cs: nunit no longer crashes when selecting 
1240         Project/Edit menu option
1241         
1242 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
1243
1244         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
1245         is no menu selected. fixes #79739
1246
1247 2006-10-25  Chris Toshok  <toshok@ximian.com>
1248
1249         * PropertyGridView.cs: factor out the splitter invalidation code
1250         into the SplitterPercent setter, and for kicks implement the
1251         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
1252         amount in either direction.
1253
1254 2006-10-25  Chris Toshok  <toshok@ximian.com>
1255
1256         * PropertyGridView.cs: do some cleanup of the brush used to draw
1257         text - read only fields should be grayed out.  not sure how to do
1258         this with the textbox, though.  but the textbox's should also be
1259         readonly now at least.  Also, hide/show the textbox when resizing
1260         the control.
1261         
1262         * CursorConverter.cs: use System.Reflection when getting the
1263         properties of Cursors, as TypeDescriptor.GetProperties isn't
1264         returning static properties.
1265
1266 2006-10-25  Chris Toshok  <toshok@ximian.com>
1267
1268         * PropertyGridView.cs: factor out the up/down handling, and reuse
1269         it for page up/down.  also add End/Home support.
1270
1271 2006-10-25  Chris Toshok  <toshok@ximian.com>
1272
1273         * PropertyGridView.cs:
1274
1275         - ensure the selected grid item is visible in the scrolled area,
1276         fixes bug #79572.
1277
1278         - fix Keys.Down handling when you're on the last item in the
1279         propertygrid.
1280
1281 2006-10-25  Mike Kestner  <mkestner@novell.com>
1282
1283         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
1284         clicks too.  Fixes #79725.
1285
1286 2006-10-24  Chris Toshok  <toshok@ximian.com>
1287
1288         * PropertyGrid.cs: use property.Converter instead of
1289         TypeDescriptor.GetConverter(property.PropertyType), so we catch
1290         TypeConverters declared on the property as well as on the
1291         PropertyType.  Fixes bug #79678.
1292
1293 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
1294
1295         * MimeIcon.cs, Mime.cs:
1296           Fallback to the default platform handler if no shared mime info
1297           stuff exists (fixes #79693).
1298
1299 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1300         * ContainerControl.cs: Incorrect contains check in ActiveControl 
1301         from previous fix (duh).
1302
1303 2006-10-20  Chris Toshok  <toshok@ximian.com>
1304
1305         * PropertyGridView.cs: the dropdown should be MIN(number of items
1306         in list, 15).  Fixes #79551.
1307
1308 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
1309         Fixes #79384, #79394, #79652, #79667
1310         * Application.cs: 
1311         
1312         - Modal windows are now destroyed in the proper order for windows
1313         
1314         * ContainerControl.cs:
1315         
1316         - ActiveControl setter has more conditions on when to return:
1317                 - if we're reselecting the active control, but it actually
1318                 didn't have focus (window hidden or some such), it runs
1319                 - if the active control being selected doesn't actually 
1320                 exist in the container, it returns
1321         
1322         * Form.cs
1323         
1324         - The ShowDialog now gets the current form as the owner when
1325         invoking without parameters, and correctly activates the owner 
1326         when returning
1327         
1328         * MessageBox.cs
1329         
1330         - MessageBox now catches the Escape key to exit
1331
1332 2006-10-20  Chris Toshok  <toshok@ximian.com>
1333
1334         * PropertyGridView.cs: fix a number of issues (bug #78565, and
1335         most of bug #79676):
1336
1337         - you can navigate around the property grid with the arrow keys.
1338
1339         - the dropdown is sized properly when the pg has a vertical
1340         scrollbar.
1341
1342         - fix the indentation for subentries, and properly select the
1343         entire label rect.
1344
1345         - fix the gray bar's drawing (only draw it to the last element,
1346         not for the height of the control.  Also make sure we draw that
1347         last horizontal grid line.
1348
1349         - use the same mechanism the datagrid uses wrt the editing textbox
1350         when scrolling/resizing/etc.  Namely, we hide it first, do the
1351         operation, then show it again (if it's still visible).
1352         
1353         - aggressively remove a lot of unnecessary refreshes (and also
1354         calls to Invalidate(). call more limited variants, and only redraw
1355         what we need.)
1356         
1357         * PropertyGrid.cs:
1358
1359         - when we're populating the merged collection, fill in the UI
1360         parent with either the passed in item, or the category item we
1361         create.
1362
1363         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
1364
1365         * GridItem.cs: drop some fully qualified names.
1366         
1367         * GridEntry.cs: add a "UIParent", which is basically the parent
1368         treenode.
1369
1370         * GridItemCollection.cs: add an IndexOf method.
1371
1372 2006-10-20  Mike Kestner  <mkestner@novell.com>
1373
1374         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
1375         a working win32 NC invalidation mechanism, we can't invalidate
1376         menus.  [Fixes #79705]
1377
1378 2006-10-20  Mike Kestner  <mkestner@novell.com>
1379
1380         * ListBox.cs : don't update the VScrollbar if the list is empty,
1381         just hide it.  [Fixes #79692]
1382
1383 2006-10-20  Jackson Harper  <jackson@ximian.com>
1384
1385         * RichTextBox.cs: Handle some special chars better, and don't skip
1386         the entire group when we encounter a special char that we don't
1387         handle correctly.
1388
1389 2006-10-18  Chris Toshok  <toshok@ximian.com>
1390
1391         * PropertyGridView.cs: address a number of issues from bug #79676,
1392         mostly of the cosmetic variety.
1393
1394         - The highlight rectangle for indented items not extends all the
1395         way to the left.
1396
1397         - Indented items aren't indented so much.
1398
1399         - the dropdown is properly sized width-wise if the pg has a
1400         vertical scrollbar.
1401
1402 2006-10-18  Chris Toshok  <toshok@ximian.com>
1403
1404         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
1405         systray stuff is rather convoluted to begin with.
1406
1407         systray icons are a single window for some reason (that I haven't
1408         figured out yet), and for them, client_window == whole_window.
1409         Given the way the tests are structured elsewhere to determine
1410         which paints are pending (client vs. nc), that situation will
1411         always yield PAINT, not NCPAINT.  So, if we have a pending
1412         nc_expose and no pending expose, remove the hwnd from the paint
1413         queue, and also set nc_expose_pending to false, to keep us from
1414         blocking further expose's adding the hwnd to the paint queue.
1415
1416         phew.  like i said, a rather convoluted change.  Fixes the
1417         notifyicon repaint issues in bug #79645.
1418
1419 2006-10-18  Chris Toshok  <toshok@ximian.com>
1420
1421         * Form.cs: when getting the backcolor of the form, don't get
1422         base.BackColor, as this allows parents to influence the background
1423         color.  This breaks mdi forms.  Instead, if the background_color
1424         is empty, return the default.
1425
1426 2006-10-18  Chris Toshok  <toshok@ximian.com>
1427
1428         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
1429         to being private instead of internal static.
1430
1431         * Control.cs: remove all the stupid ParentWaitingOnRecreation
1432         crap, it wasn't working for more deeply nested controls anyway,
1433         and we already have the is_recreating flag - use that instead.
1434         Before calling DestroyHandle in RecreateHandle, recurse through
1435         the control tree setting it to true.  this returns the recreate
1436         code to much of its original simplicity, while now guaranteeing we
1437         actually recreate everything we're supposed to.  This change gets
1438         fyireporting actually showing mdi children.
1439
1440 2006-10-17  Chris Toshok  <toshok@ximian.com>
1441
1442         * Form.cs: remove some debug spew, and collapse some duplicate
1443         code at the end of SetClientSizeCore.
1444
1445         * XplatUIX11.cs: 
1446         - add some more debug spew here too wrt Destroy handling.
1447         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
1448         in Control's handling of WM_DESTROY.
1449         - Remove the handling of zombie window DestroyNotifies from the
1450         event loop - we don't need it.  Now the only DestroyNotifies we
1451         actually handle are ones generated by X.
1452         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
1453         match gtk's (functioning) handling of this. This keep metacity
1454         from leaving droppings in the form of wm borders with no window
1455         contents all over the place.
1456
1457         * Control.cs:
1458         - add a bunch of debug spew wrt control recreation.
1459         - fix a bug where we weren't tracking Visible properly on
1460         recreated hwnds.
1461         - fixed the WM_PAINT double buffer handling to support re-entrant
1462         calls (yes, i know it's gross, but it's happening to us).
1463
1464 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1465         * ThemeWin32Classic.cs: changed drawing of selected days
1466         to make them look better.
1467
1468 2006-10-16  Chris Toshok  <toshok@ximian.com>
1469
1470         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
1471         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
1472
1473         * XplatUIX11.cs: move away from using hwnd.client_dc and
1474         hwnd.non_client_dc and on to a stack of dc's (and in window's
1475         case, PAINTSTRUCT's), so we can deal with nested Paint calls
1476         without puking or not disposing of Graphics objects.
1477
1478         * XplatUIOSX.cs: same.
1479
1480         * XplatUIWin32.cs: same.
1481
1482 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1483
1484         * FileDialog.cs: Don't call on_directory_changed inside
1485           OnSelectedIndexChanged (it changes the SelectedIndex too).
1486           Instead move it to OnSelectionChangeCommitted.
1487
1488 2006-10-13  Chris Toshok  <toshok@ximian.com>
1489
1490         * XplatUIX11.cs: more Destroy work.  the current code does the
1491         following things, in order:
1492
1493         1. Enumerates all handles of all controls at or below the one
1494         being destroyed, in pre-order.  As it is doing this, it marks the
1495         handles as zombie and clears all references to them.
1496         
1497         2. calls XDestroyWindow on the window passed in.
1498
1499         3. SendMessage's WM_DESTROY to all he handles in the accumulated
1500         list.
1501
1502 2006-10-13  Chris Toshok  <toshok@ximian.com>
1503
1504         * XplatUIX11.cs: set hwnd.zombie to true before calling
1505         SendMessage (WM_DESTROY).  this keeps us from marking the new
1506         window a zombie, and also keeps us from calling sendmessage at
1507         all.
1508
1509 2006-10-13  Jackson Harper  <jackson@ximian.com>
1510
1511         * TextControl.cs: Do not show the caret and selection at the same
1512         time.  Reduces ugliness by 35%.
1513
1514 2006-10-13  Chris Toshok  <toshok@ximian.com>
1515
1516         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
1517         zombie after we do the recursive call, so we actually do call
1518         SendMessage on the children controls.
1519         (GetMessage): if we find a pending paint event for a zombie hwnd,
1520         remove the hwnd from the paint queue, or else it will always be
1521         there (and we'll effectively loop infinitely)
1522
1523 2006-10-13  Mike Kestner  <mkestner@novell.com>
1524
1525         * MenuItem.cs : add Selected format under keynav too.
1526         Fixes #79528.
1527
1528 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
1529
1530         * PropertyGrid.cs: Fixed some NRE's and small difference between our
1531         implementation and that of MS.
1532
1533 2006-10-13  Chris Toshok  <toshok@ximian.com>
1534
1535         * Control.cs (OnInvalidated) only futz with the invalid_region if
1536         the control is double buffered.  this fixes the apparent hang in
1537         the ListView unit tests.  Someone needs to make the
1538         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
1539
1540 2006-10-13  Chris Toshok  <toshok@ximian.com>
1541
1542         * PropertyGridView.cs:
1543
1544         - do a little refactoring so that only one place calls
1545         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
1546         else call that.  Also make it Refresh, since there are redraw bugs
1547         otherwise (we should take a look at that...)
1548
1549         - do a little more refactoring work to share the body of code
1550         involved with the drop down.  it was duplicated in the code
1551         dealing with the listbox handling and in the code dealing with the
1552         UITypeEditors.
1553
1554         - add a Capture to the dropdown form's control once it's
1555         displayed, and add a MouseDown handler that checks to make sure
1556         the position is inside the control.  If it's not, close the
1557         dropdown.  This fixes #78190.
1558
1559         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
1560         if the value is different than the initial value.
1561         
1562 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
1563
1564         * Control.cs: see #78650
1565         - Fixed GetNextControl for several cases:
1566                 - Changed FindFlatForward to return 
1567                 correct sibling control when more than one
1568                 control has same TabIndex as the currently 
1569                 focused one.
1570                 - Changed FindFlatBackward to loop children
1571                 from last to first and apply same logic as in
1572                 FindFlatForward
1573                 - Changed FindControlForward to search for
1574                 children when control is not a container
1575                 but has children, or search for siblings if
1576                 control is a container...
1577                 - Changed FindControlBackward   to continue
1578                 searching for child controls when hitting 
1579                 Panel-like parents
1580                 
1581         - Fixed Focus method to update ActiveControl
1582         (FocusTest.FocusSetsActive failure)
1583         
1584         * TabControl.cs:
1585         - Focus rectangle now refreshes when gaining
1586         or losing focus
1587         - Removed grab for Tab key on IsInputKey that 
1588         was keeping tab navigation from working (#78650)
1589
1590 2006-10-13  Chris Toshok  <toshok@ximian.com>
1591
1592         * PropertyGridView.cs:
1593         - Rewrite SetPropertyValue to loop over SelectedGridItem's
1594         SelectedObjects.
1595
1596         - Deal with GridItem.Value == null a few places.
1597
1598         * PropertyGrid.cs: 
1599         - replace the PopulateGridItemCollection with a pair of methods
1600         which compute the intersection of all the properties in the
1601         SelectedObjects array.  Fixes #79615.
1602
1603         - Throw ArgumentException from set_SelectedObjects if there's a
1604         null in the array.
1605
1606         - Add GetTarget method which can be used to traverse up the
1607         GridItem.Parent chain.  It depends on the assumption that
1608         selected_objects for different GridEntries are always in the same
1609         order (a safe assumption).  Use this method and loop over all the
1610         selected objects in the entry when calling RemoveValueChanged and
1611         AddValueChanged.
1612         
1613         * GridEntry.cs: Make this handle multiple selected objects.
1614         .Value returns null if not all the selected objects share the same
1615         value.
1616
1617 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
1618         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
1619           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
1620           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
1621           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
1622           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
1623         add additional functionality.
1624
1625 2006-10-12  Mike Kestner  <mkestner@novell.com>
1626
1627         * ErrorProvider.cs : new ToolTipWindow ctor sig.
1628         * HelpProvider.cs : new ToolTipWindow ctor sig.
1629         * ToolTip.cs : remove ToolTip param from Window sig since it is
1630         not used.
1631         * ToolBar.cs : add tooltip support.  Fixes #79565.
1632
1633 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1634
1635         * ComboBox.cs: move the events in set_SelectedIndex to 
1636         after the call to HighlightIndex in order to avoid 
1637         possible recursion and subsequent problems with the call
1638         to HighlightIndex and include a range check in 
1639         set_HighlightIndex. Fixes #79588
1640         
1641 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1642
1643         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
1644         to ui thread's settings instead of sunday. 
1645         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
1646
1647 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1648
1649         * DateTimePicker.cs
1650         * MonthCalendar.cs
1651         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
1652         and implement missing functionality (selecting different parts 
1653         of the date and edit them individually with the keyboard).
1654         
1655 2006-10-11  Chris Toshok  <toshok@ximian.com>
1656
1657         * Control.cs (OnInvalidated): fix NRE relating to last change.
1658
1659 2006-10-11  Chris Toshok  <toshok@ximian.com>
1660
1661         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
1662         atoms in _NET_WM_STATE here if the window is maximized.  We need
1663         to do this because we're *replacing* the existing _NET_WM_STATE
1664         property, so those atoms will be lost otherwise, and any further
1665         call to GetWindowState will return Normal for a window which is
1666         actually maximized.  Fixes #79338.
1667
1668 2006-10-11  Jackson Harper  <jackson@ximian.com>
1669
1670         * TextControl.cs: Special case for setting selection end to
1671         selection start, we basically kill the anchor.
1672         - some todo comments.
1673
1674 2006-10-11  Chris Toshok  <toshok@ximian.com>
1675
1676         * Control.cs: switch to using an "invalid_region" to track which
1677         parts of the image buffer need updating.  This is more code than
1678         the simple fix from r66532.  That version just attempted to always
1679         fill the entire buffer on redraw, which turns out to be
1680         inefficient when invalidating small rectangles.  This version
1681         simply adds the invalid rectangle to the invalid region.  When we
1682         get any WM_PAINT message we see if it can be filled using the
1683         image buffer, and if it can't (if the paint event's clip rectangle
1684         is visible in the invalid region) we first fill the image buffer.
1685         So, the image buffer is still a cache, we just fill it lazily.
1686
1687         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
1688         need it any longer.
1689
1690 2006-10-11  Chris Toshok  <toshok@ximian.com>
1691
1692         * XplatUIX11.cs (SetWindowPos): we need to update both position as
1693         well as size after calling XMoveResizeWindow.  This keeps us from
1694         ignoring future SetWindowPos calls.  Fixes the disappearing
1695         DateTimePicker in the ToolBarDockExample from bug #72499.
1696
1697 2006-10-11  Chris Toshok  <toshok@ximian.com>
1698
1699         * TextBoxBase.cs: reorder things a bit when it comes to
1700         resizing-causing-recalculation.  we were recalculating the
1701         document when our position was changed, which shouldn't happen.
1702         We only care about size changes.  Clear up some more redundant
1703         recalculation calls while I'm at it.  This makes the toolbar dock
1704         example snappy when you're just dragging toolbars around (since it
1705         causes a relayout whenever you move one.)
1706
1707 2006-10-11  Chris Toshok  <toshok@ximian.com>
1708
1709         * ToolBarButton.cs (get_Rectangle): this only returns
1710         Rectangle.Empty if Visible == false, or Parent == null.
1711         Parent.Visible doesn't matter.
1712
1713 2006-10-10  Chris Toshok  <toshok@ximian.com>
1714
1715         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
1716         by .net 1.1, so switch to an internal method instead.
1717
1718 2006-10-10  Chris Toshok  <toshok@ximian.com>
1719
1720         * Control.cs (WM_PAINT): when a control is double buffered we draw
1721         initially to the ImageBuffer and then copy from there.  But when a
1722         parent control which has child controls is double buffered, the
1723         initial drawing doesn't encompass the entire ClientRectangle of
1724         the parent control, so we end up with uninitialized bits (this is
1725         easily seen by dragging the top toolbar in
1726         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
1727         manually set the ClipRectangle of the paint_event (only the one we
1728         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
1729         of the nastiness in bug #72499.
1730
1731         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
1732         which we use in Control.cs's WM_PAINT handling.
1733
1734 2006-10-10  Jackson Harper  <jackson@ximian.com>
1735
1736         * TextBoxBase.cs: Finish off the autoscrolling stuff.
1737
1738 2006-10-10  Chris Toshok  <toshok@ximian.com>
1739
1740         * Cursor.cs: Apply a slightly different patch to the one suggested
1741         in #79609.
1742
1743 2006-10-10  Jackson Harper  <jackson@ximian.com>
1744
1745         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
1746         not the parent form.
1747         * TextControl.cs: use difference in old line count vs new count to
1748         calculate how many lines were added, this takes into account soft
1749         line breaks properly.
1750
1751 2006-10-10  Chris Toshok  <toshok@ximian.com>
1752
1753         * LinkLabel.cs: don't call MeasureCharacterRanges against a
1754         rectangle located at 0,0 and the size of the text.  Use
1755         ClientRectangle instead.  This fixes rendering of non-left aligned
1756         link labels.
1757
1758 2006-10-10  Jackson Harper  <jackson@ximian.com>
1759
1760         * TextBoxBase.cs: When we set the selection start position the
1761         caret.
1762         * TextControl.cs: Need to update the caret when we decrement it to
1763         zero.
1764         - Make sure that the selection_visible flag gets reset to false if
1765         the selection isn't visible.  Before this you could get it set to
1766         visible by changing the selection start, then changing the end to
1767         equal the start.
1768
1769 2006-10-09  Jackson Harper  <jackson@ximian.com>
1770
1771         * TreeView.cs: Don't update scrollbars when we aren't visible.
1772         * TreeNodeCollection.cs: Only need to update scrollbars if being
1773         added to an expanded visible node or the root node.
1774
1775 2006-10-09  Chris Toshok  <toshok@ximian.com>
1776
1777         * XplatUIX11.cs (SendMessage): fix NRE.
1778
1779 2006-10-09  Jackson Harper  <jackson@ximian.com>
1780
1781         * TextBoxBase.cs: Implement horizontal autoscrolling.
1782         * TextControl.cs: Add a movement types that allows moving forward
1783         and backwards without wrapping.
1784
1785 2006-10-09  Mike Kestner  <mkestner@novell.com>
1786
1787         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
1788         with focus "expansion" of labels.  Fixes #79532 and then some.
1789         * ThemeWin32Classic.cs : add LineLimit to ListView label format
1790         when wrapping.
1791
1792 2006-10-09  Jackson Harper  <jackson@ximian.com>
1793
1794         * TextBoxBase.cs: Set the default max values to MaxValue since
1795         we use the scrollbar for autoscrolling and the default value is
1796         100.  If we don't do this the caret won't keep up with typing
1797         after about 18 characters.
1798         * TextControl.cs: Make sure the selection is offset by the
1799         viewport x.  This fixes selection when using auto scrolling.
1800
1801 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
1802         
1803         * Form.cs: The active control should be selected after the 
1804         OnLoad so that any child control initialization that affects
1805         the selection is done. Fixes #79406
1806
1807 2006-10-06  Chris Toshok  <toshok@ximian.com>
1808
1809         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
1810         to have no evil effects.
1811
1812         - Stop selecting StructureNotifyMask on non-toplevel windows.
1813
1814           The only way children should be resized is by using the SWF api,
1815           and we already send WM_WINDOWPOSCHANGED messages in those cases.
1816           Toplevel windows can be interacted with via the window manager,
1817           and so we keep the input mask there.
1818
1819           The other event StructureNotifyMask gives us (that we care
1820           about) is DestroyNotify.  The code is already structured such
1821           that it assumes we won't be getting a DestroyNotify event for
1822           the window we pass to XDestroyWindow (which is what
1823           StructureNotifyMask is supposed to guarantee.)  So, that code
1824           shouldn't be affected by this either.
1825
1826         - Stop selecting VisibilityChangeMask altogether.
1827
1828           We weren't doing anything with the resulting events anyway.
1829         
1830         This vastly reduces the number of X requests and events we see
1831         when resizing/laying out a large ui.
1832
1833 2006-10-06  Chris Toshok  <toshok@ximian.com>
1834
1835         * ScrollableControl.cs (DisplayRectangle): we need to take into
1836         account the DockPadding regardless of whether or not auto_scroll
1837         == true.  rework this slightly to this effect, and fix bug #79606,
1838         and part of #72499 (you can now see the drag handles and drag
1839         toolbars around).
1840
1841 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
1842
1843         * ListViewItem.cs: Collections of selected and checked items are now
1844         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
1845         we mark the collection "dirty".
1846         * ListView.cs: Marked collections readonly. Modified UpdateSelection
1847         to only clear SelectedItems when a new item is selected and MultiSelect
1848         is enabled. CheckedItems and SelectedItems now subscribe to Changed
1849         event of ListViewItemCollection, and mark its list dirty whenever
1850         that event is fire. This allows us to return selected/checked items 
1851         in the same order as they are in the Items collection. This matches
1852         the MS behavior.
1853
1854 2006-10-06  Chris Toshok  <toshok@ximian.com>
1855
1856         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
1857         right mouse clicks.  Fixes bug #79593.
1858
1859 2006-10-06  Chris Toshok  <toshok@ximian.com>
1860
1861         * Splitter.cs: doh, fix splitters that don't want to cancel the
1862         movement when you drag them.  Also, impose the limits on the
1863         values we send to the SplitterMovingEvent.  Fixes #79598.
1864
1865 2006-10-06  Jackson Harper  <jackson@ximian.com>
1866
1867         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
1868         since we use this for auto scrolling also.
1869
1870 2006-10-05  Chris Toshok  <toshok@ximian.com>
1871
1872         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
1873         beginning to think that most datagrid column types don't need this
1874         method.  Fixes bug #79392.
1875
1876 2006-10-05  Chris Toshok  <toshok@ximian.com>
1877
1878         * DataGrid.cs: move back to a more lazy scheme for creating the
1879         CurrencyManager, so we aren't updating it every time you set
1880         either DataSource or DataMember.  Also, don't call
1881         RecreateDataGridRows if the currency manager hasn't changed.
1882
1883 2006-10-05  Chris Toshok  <toshok@ximian.com>
1884
1885         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
1886         emitted, SelectedIndex should already be updated.  Fixes bug
1887         #78929.
1888
1889 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
1890
1891         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
1892           ToolStripTextBox.cs: Initial commit.
1893         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
1894
1895 2006-10-05  Jackson Harper  <jackson@ximian.com>
1896
1897         * TabControl.cs: We need to invalidate the tab control area when
1898         new ones are added (duh).
1899
1900 2006-10-03  Chris Toshok  <toshok@ximian.com>
1901
1902         * Form.cs (ProcessDialogKey): if the focused control is in this
1903         form and is a button, call its PerformClick method here.  Fixes
1904         #79534.
1905
1906 2006-10-04  Jackson Harper  <jackson@ximian.com>
1907
1908         * TabPage.cs: Ignore setting of Visible, and add an internal
1909         method for setting the controls visibility.  TabPage's Visible
1910         property is a little strange on MS, this seems to make us
1911         compatible, and fixes cases where people set all the tab pages to
1912         visible.
1913         * TabControl.cs: Use the new internal setting on tab pages
1914         visibility.
1915
1916 2006-10-03  Mike Kestner  <mkestner@novell.com>
1917
1918         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
1919
1920 2006-10-03  Mike Kestner  <mkestner@novell.com>
1921
1922         * ListView.cs : use is_visible instead of Visible to check if 
1923         scrollbars should be placed/sized.  Also some max_wrap_width
1924         love for LargeIcon view.  [Fixes #79533]
1925
1926 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1927
1928         * TextControl.cs :
1929           Make set_TextAlign() do actually update the align. Fixed #78403.
1930
1931 2006-10-03  Chris Toshok  <toshok@ximian.com>
1932
1933         * DataGrid.cs: fix a crash when switching datasources if the
1934         vertical scrollbar is at someplace other than Value = 0.  Also,
1935         reduce the number of recalculation passes we do in SetDataSource
1936         from 2 to 1.
1937
1938 2006-10-03  Jackson Harper  <jackson@ximian.com>
1939
1940         * TextBoxBase.cs: Move the if value the same bail check up, we
1941         don't want to empty the document if it is already empty, this
1942         seems to severly mess up the caret.  TODO: I should probably fix
1943         the empty statement to update teh caret somehow.
1944
1945 2006-10-03  Chris Toshok  <toshok@ximian.com>
1946
1947         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
1948         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
1949         reflection, an internal row type, properties on said type, etc.)
1950         will work with our datagrid.  Fixes #79531.
1951
1952 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1953
1954         * FileDialog.cs: Don't crash if a path is not accessible
1955           (System.UnauthorizedAccessException). Fixes #79569.
1956         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
1957           a ':' too. Return unknown icon for those paths/files.
1958
1959 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
1960
1961         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
1962         GetContainerControl returns null.
1963
1964 2006-10-02  Chris Toshok  <toshok@ximian.com>
1965
1966         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
1967         call to XGetWindowAttributes instead of "handle".  fixes an X
1968         error using notifyicon after the NotifyIconWindow to Form base
1969         class switch.
1970
1971 2006-10-02  Chris Toshok  <toshok@ximian.com>
1972
1973         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
1974         server grab and looping we need to do to get down to the most
1975         deeply nested child window.
1976         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
1977         QueryPointer again after the WarpPointer so we can generate a
1978         proper (fake) MotionNotify event to be enqueued in the destination
1979         window's queue.
1980         (GetCursorPos): call QueryPointer.
1981
1982         Fixes #79556.
1983
1984 2006-10-02  Jackson Harper  <jackson@ximian.com>
1985
1986         * NotifyIcon.cs: Derive the notify icon from a form, so things
1987         like FindForm work on it.
1988         - Swallow the WM_CONTEXTMENU message, since that is generated on
1989         mouse down, and context menu is a mouse up kinda guy.  I believe
1990         the correct fix here is probably to make the notify icon entirely
1991         NC area, but this seems to work fine for anyone not manipulating
1992         WndProc.
1993
1994 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
1995
1996         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
1997           ToolStripItemCollection.cs, ToolStripLabel.cs,
1998           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
1999           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
2000           Initial implementation.
2001         * TextRenderer.cs: Provide padding to MeasureText.
2002
2003 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
2004
2005         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
2006         of ButtonBaseAccessibleObject. Fix bug #79552.
2007
2008 2006-10-02  Jackson Harper  <jackson@ximian.com>
2009
2010         * MdiWindowManager.cs: When maximizing use the containers client
2011         rect, not it's bounds, so nc area is accounted correctly.
2012         - Use the parent form's size for the menu position, since the
2013         client isn't always the full form size.
2014
2015 2006-10-01  Chris Toshok  <toshok@ximian.com>
2016
2017         * ScrollableControl.cs: make sure neither right_edge or
2018         bottom_edge are < 0, since they're used as LargeChange for the
2019         horiz/vert scrollbars respectively.  Fixes #79539.
2020
2021 2006-10-01  Chris Toshok  <toshok@ximian.com>
2022
2023         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
2024         the xplatuix11 code can cause us to destroy/recreate our handle.
2025
2026         * XplatUIX11.cs
2027         (SystrayAdd):
2028         - this code can be invoked many times for the same Hwnd.  Make
2029           sure we only destroy the client window once (the first time this
2030           method is called).  This fixes bug #79544.
2031         - Remove the call to the improperly bound XSync.  why we had two
2032           bindings to this, I will never know, but this call resulted in
2033           events being discarded from the queue(!).
2034         - correct a misunderstanding of _XEMBED_INFO - the second atom is
2035           not our current state but the state we wish to be in.  So, 0 if
2036           we don't want to be mapped.  Change it to 1.
2037         (SystrayRemove): The XEMBED spec makes mention of the fact that
2038         gtk doesn't support the reparent of client windows away from the
2039         embedder.  Looking at gtksocket-x11.c seems to agree with this.
2040         The only avenue we have for removing systray icons is to destroy
2041         them.  We don't want the handle to go away for good, though, so
2042         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
2043         #79545.
2044         
2045 2006-10-01  Chris Toshok  <toshok@ximian.com>
2046
2047         * Form.cs (WndProc): inline the native_enabled variable usage into
2048         the cases in which it's used.  Fixes #79536.
2049
2050 2006-09-29  Mike Kestner  <mkestner@novell.com>
2051
2052         * ListView.cs : toggle the selection state for ctrl clicks in 
2053         multiselect mode. [Fixes #79417]
2054
2055 2006-09-29  Mike Kestner  <mkestner@novell.com>
2056
2057         * ListView.cs : kill CanMultiSelect and refactor the selection
2058         code to support multiselection in the absence of mod keys. Steal
2059         arrow/home/end keys by overriding InternalPreProcessMessage to
2060         restore regressed keynav behavior.
2061         [Fixes #79416]
2062
2063 2006-09-29  Jackson Harper  <jackson@ximian.com>
2064
2065         * MdiClient.cs: Repaint the titlebars when the active window is
2066         changed.
2067
2068 2006-09-29  Chris Toshok  <toshok@ximian.com>
2069
2070         * Application.cs: when entering a runloop with a modal, make sure
2071         the hwnd is enabled.  Fixes #79480.
2072
2073 2006-09-29  Chris Toshok  <toshok@ximian.com>
2074
2075         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
2076         when ListManager.CanAddRows == false, bump us back one.
2077
2078         * DataGridColumnStyle.cs (ParentReadOnly): remove the
2079         listmanager.CanAddRows check.  This makes ArrayLists uneditable
2080         using a datagrid, which is not right.
2081         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
2082         is an IEditable, but call property_descriptor.SetValue regardless.
2083         fixes #79435.
2084
2085 2006-09-29  Chris Toshok  <toshok@ximian.com>
2086
2087         * DataGridBoolColumn.cs: we need to test equality in the face of
2088         possible null values (as is the case with the default NullValue).
2089         This patch keeps us from crashing in that case.
2090
2091 2006-09-29  Jackson Harper  <jackson@ximian.com>
2092
2093         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
2094         here, since it will get called for every node collection in the
2095         tree. This is now done in the treeview once the sorting is
2096         finished.
2097         * TreeView.cs: Recalculate the visible order, and update the
2098         scrollbars after sorting, set the top nope to the root so that the
2099         recalc actually works.
2100
2101 2006-09-29  Chris Toshok  <toshok@ximian.com>
2102
2103         * LinkLabel.cs: more handling of the default link collection in
2104         the face of LinkArea manipulation.  The default link collection
2105         contains 1 element (start=0,length=-1).  If the user sets LinkArea
2106         to anything and the links collection is the default, clear it.
2107         Then only add the link if its nonempty.  Fixes #79518.
2108
2109 2006-09-29  Chris Toshok  <toshok@ximian.com>
2110
2111         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
2112         piece correctly when we hit a '\n'.  Fixes #79517.
2113
2114 2006-09-29  Chris Toshok  <toshok@ximian.com>
2115
2116         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
2117         change the binding of gdk_init_check to take two IntPtr's, and
2118         pass IntPtr.Zero for both of them.  Fixes #79520.
2119
2120 2006-09-29  Mike Kestner  <mkestner@novell.com>
2121
2122         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
2123         [Fixes #78779]
2124
2125 2006-09-28  Jackson Harper  <jackson@ximian.com>
2126
2127         * XplatUIX11.cs: When translating NC messages make sure we go from
2128         whole window to screen, not client window to screen.
2129         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
2130         method doesn't exist
2131         - Skip over controls that aren't forms when arranging.
2132
2133 2006-09-28  Jackson Harper  <jackson@ximian.com>
2134
2135         * XplatUIWin32.cs: Clip the rect to the parent window.
2136         * XplatUIStructs.cs: Add clipping modes struct.
2137         * InternalWindowManager.cs: New private method that factors title
2138         bar heights in when calculating the pos of an NC mouse message.
2139         - Use SendMessage to force a paint when the form's size is changed
2140         instead of painting the decorations immediately.
2141         - Don't let the NC button click messages get to DefWndProc,
2142         because they will attempt to handle windowing themself, and this
2143         messes up z-order (it will put them in front of the scrollbars).
2144         * XplatUIX11.cs: Make sure that we don't reset window managers if
2145         we already have one (ie the window is an MDI window).
2146
2147 2006-09-28  Chris Toshok  <toshok@ximian.com>
2148
2149         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
2150         menu code really needs going over.
2151
2152 2006-09-27  Chris Toshok  <toshok@ximian.com>
2153
2154         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
2155         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
2156         window is maximizable.  So, we need to make sure that even if we
2157         clear the border/wm frame of those functions, they're still
2158         available (basically, we remove the decoration without removing
2159         the function).  Half the fix for #79338.
2160
2161 2006-09-27  Chris Toshok  <toshok@ximian.com>
2162
2163         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
2164         Fixes bug #79515.
2165
2166 2006-09-27  Chris Toshok  <toshok@ximian.com>
2167
2168         * Splitter.cs: reorder things a bit so that we don't actually
2169         draw/move the splitter until after calling OnSplitterMoving.  This
2170         lets users cancel/disallow the movement by explicitly setting
2171         event.SplitX/SplitY.  Fixes #79372.
2172
2173 2006-09-27  Jackson Harper  <jackson@ximian.com>
2174
2175         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
2176         because it is most likely on a window being destroyed, and that
2177         will give us an X11 error.
2178
2179 2006-09-27  Chris Toshok  <toshok@ximian.com>
2180
2181         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
2182         the dropdown button now toggles between showing and hiding the
2183         dropdown.  Also, get rid of dropdown_form_showing and just use
2184         dropdown_form.Visible.  We still don't do a grab, but I'll leave
2185         that part to someone who has handled Capture-fu before.
2186
2187 2006-09-27  Chris Toshok  <toshok@ximian.com>
2188
2189         * DataGrid.cs: return false if alt isn't pressed when '0' is
2190         pressed.  this keeps the '0' key from being swallowed, and fixes
2191         bug #79350.
2192
2193 2006-09-27  Chris Toshok  <toshok@ximian.com>
2194
2195         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
2196         Calling Refresh (in response to a scrollbar event) screws up the
2197         scrollbar painting.  Fixes bug #78923.
2198
2199 2006-09-27  Chris Toshok  <toshok@ximian.com>
2200
2201         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
2202         then insert into hashtable" blocks threadsafe.
2203
2204 2006-09-27  Chris Toshok  <toshok@ximian.com>
2205
2206         * MessageBox.cs (CreateParams): the styles should be |'ed with our
2207         baseclass's, since otherwise the
2208         ControlBox/MinimizeBox/MaximizeBox assignments above have no
2209         effect.  This gets the close button back in messageboxes.
2210
2211 2006-09-27  Chris Toshok  <toshok@ximian.com>
2212
2213         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
2214         flag, not just != 0.  this makes flags that are actually multiple
2215         bits (like WS_CAPTION) work.  fixes bug #79508.
2216
2217 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
2218
2219         * PageSetupDialog.cs: add support for getting and settings the 
2220         paper size, source and orientation.
2221
2222 2006-09-26  Chris Toshok  <toshok@ximian.com>
2223
2224         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
2225         and caption == "", we need to remove the resize handles as well as
2226         the title bar.
2227
2228         * Control.cs (set_Text): turns out that setting Text on a form
2229         should change the WM styles on the window, since if ControlBox ==
2230         false, the only way to get a window border is to have a non-""
2231         Text property.  check winforms/forms/text.cs for an example.  so,
2232         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
2233         update both window styles and title.  This fixes a lot of dialogs
2234         (including the preferences dialog in MonoCalendar.)
2235
2236 2006-09-26  Chris Toshok  <toshok@ximian.com>
2237
2238         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
2239         control isn't a Form), call Win32ShowWindow to hide the window,
2240         but don't update the control Visible property.  When we reparent
2241         back to a parent control, call SetVisible in order for the
2242         window's visibility to be reinstated.
2243
2244         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
2245         the FosterParent.
2246
2247         * Control.cs (ControlCollection.Remove): remove that value.Hide()
2248         call for good, since it breaks MonoCalendar (and other things I'm
2249         sure.) Also, set all_controls to null *after* the owner calls,
2250         which end up regenerating it.
2251         (ChangeParent): allow new_parent to be == null, passing
2252         IntPtr.Zero down to XplatUI.
2253
2254         this fixes #79294 the right way.
2255
2256 2006-09-26  Mike Kestner  <mkestner@novell.com>
2257
2258         * GridEntry.cs : internal SetParent method.
2259         * PropertyGrid.cs : attach to property changed on the proper
2260         target if we have a hierarchical grid with subobjects. Setup
2261         GridItem.Parent for hierarchical items.
2262         * PropertyGridView.cs : Set value on the correct target for
2263         hierarchical grids. [Fixes #78903]
2264
2265 2006-09-26  Chris Toshok  <toshok@ximian.com>
2266
2267         * Control.cs (ChildNeedsRecreating): this should return true if
2268         either we're being recreated and the child is in our list, or our
2269         parent is waiting for our recreation.
2270
2271 2006-09-26  Chris Toshok  <toshok@ximian.com>
2272
2273         * Control.cs (ControlCollection.Remove): reinstate the
2274         value.Hide() call as suggested in bug #79294.
2275
2276 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
2277
2278         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
2279         coordinates (versus a relative move).
2280
2281 2006-09-26  Chris Toshok  <toshok@ximian.com>
2282
2283         * Control.cs: rework child recreation a little bit.  It turns out
2284         that we race between the DestroyNotify the WM_DESTROY message.  If
2285         the parent gets its DestroyNotify before the child gets the
2286         WM_DESTROY message, the child ends up not recreating (since the
2287         parent finishes its recreation on DestroyNotify, and the child
2288         checks ParentIsRecreating.)
2289
2290         So, instead we store off a list of all the child controls which
2291         need to be recreated when the parent control starts to recreate
2292         itself.  Then, when child controls get their WM_DESTROY message we
2293         check to see if they're in the parent's pending recreation list,
2294         and if so, we recreate.  This removes all dependency on ordering
2295         from the code and fixes the initial MonoCalendar upgrade dialog.
2296         
2297 2006-09-26  Jackson Harper  <jackson@ximian.com>
2298
2299         * TextControl.cs: Use the Line to get the length of the line,
2300         since soft line breaks can change the end line.
2301
2302 2006-09-26  Chris Toshok  <toshok@ximian.com>
2303
2304         * Control.cs (ControlCollection.AddImplicit): don't add the
2305         control again if it's already in one of our lists.  This keeps us
2306         from adding controls over and over again for comboboxes when their
2307         handle gets recreated (as the combobox adds implicit controls in
2308         OnHandleCreated).  Fixes the X11 errors in bug #79480.
2309
2310 2006-09-26  Jackson Harper  <jackson@ximian.com>
2311
2312         * TextControl.cs: When deleting characters make sure that any
2313         orphaned zero lengthed tags get deleted.
2314         - Fix ToString for zero lengthed tags.
2315
2316 2006-09-25  Jackson Harper  <jackson@ximian.com>
2317
2318         * TextControl.cs: When getting a tag at the location there can be
2319         multiple tags at the same spot, these are 0-lengthed tags that
2320         appear when extra formatting has been stuck in a location.  We
2321         need to pull out the last of these 0 lengthed tags.
2322
2323 2006-09-25  Jackson Harper  <jackson@ximian.com>
2324
2325         * TextControl.cs: Fix print out in debug method.
2326         * TextBoxBase.cs: When text is set bail if we are setting to the
2327         previous value.
2328         
2329 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
2330
2331         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
2332           It is now possible to change the selected index in a FontXXXListBox
2333           with the up and down arrow keys from the FontXXXTextBoxes.
2334           Also, send the FontXXXTextBox mouse wheel event to the corresponding
2335           FontXXXListBoxes to match ms.
2336
2337 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
2338
2339         * SystemInformation.cs: Return a clone of the theme's MenuFont because
2340         anyone can dispose it, anytime. All other properties returns enums, 
2341         structs or basic types so they don't need such tricks.
2342
2343 2006-09-22  Jackson Harper  <jackson@ximian.com>
2344
2345         * XplatUI.cs:
2346         * XplatUIWin32.cs:
2347         * Clipboard.cs:
2348         * DataFormats.cs:
2349         * XplatUIOSX.cs:
2350         * XplatUIDriver.cs: Update interface to add a primary selection
2351         flag, so the driver can use the primary selection buffer if
2352         needed.
2353         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
2354
2355         * RichTextBox.cs: We need to supply the data object to paste now
2356         (so we can choose to supply CLIPBOARD or PRIMARY).
2357         * TextBoxBase.cs: Supply data object to paste (see above).
2358         - Middle click uses the primary selection data object.
2359         
2360 2006-09-21  Chris Toshok  <toshok@ximian.com>
2361
2362         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
2363         of SetWMStyles.  It's still a rat's nest and is largely
2364         order-dependent which I dislike immensely.  This also fixes the X
2365         button disappearing from toplevel forms.
2366
2367 2006-09-21  Mike Kestner <mkestner@novell.com>
2368
2369         * ListBox.cs: move Jordi's click/dblclick raising code to the
2370         mouse up handler.
2371
2372 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
2373
2374         * ListBox.cs: Fixes 79450
2375
2376 2006-09-21  Mike Kestner <mkestner@novell.com>
2377
2378         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
2379         to deal with people updating the TreeNodeCollection after the tree
2380         is disposed.  "Fixes" 79330.
2381
2382 2006-09-20  Jackson Harper <jackson@ximian.com>
2383
2384         * TextControl.cs: Push the cursor record onto the undo stack
2385         before the delete action. This fixes 78651.
2386
2387 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
2388
2389         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
2390         CreateParams. Fixes 79329.
2391
2392 2006-09-19  Chris Toshok  <toshok@ximian.com>
2393
2394         * XplatUIX11.cs: a couple of blanket code massage passes to clean
2395         things up a bit.  First, get rid of the NetAtoms array (and the NA
2396         enum), and just embed the atoms as static fields.  Also, add a
2397         couple of functions (StyleSet and ExStyleSet) to clean up all the
2398         bitmask testing of styles.
2399
2400         * X11Structs.cs: remove the NA enum, not needed anymore.
2401         
2402 2006-09-19  Chris Toshok  <toshok@ximian.com>
2403
2404         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
2405         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
2406         added cleanup to get MessageBox titles appearing again, which were
2407         broken by my earlier fix for caption-less/ControlBox-less windows.
2408
2409 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
2410
2411         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
2412           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
2413           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
2414           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
2415           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
2416           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
2417           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
2418           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
2419           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
2420           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
2421           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
2422             Inital import.
2423         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
2424           ToolStripButton.cs: Stubs needed for above.
2425         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
2426
2427 2006-09-15  Chris Toshok  <toshok@ximian.com>
2428
2429         * XplatUIX11.cs:
2430         - make the MessageQueues hashtable Synchronized.
2431         
2432         - SendMessage: if the Hwnd is owned by a different thread, use the
2433         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
2434         thread.  Fixes bug #79201.
2435
2436 2006-09-15  Chris Toshok  <toshok@ximian.com>
2437
2438         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
2439         ControlBox == false, we disallow maximize/minimize/close.  If the
2440         form Caption is "" we also disallow move (and get rid of the Title
2441         decoration).  Unfortunately, regardless of how things are set,
2442         we're stuck with the Title and WM menu.
2443
2444 2006-09-15  Chris Toshok  <toshok@ximian.com>
2445
2446         * Application.cs: add locking around the static message_filters
2447         ArrayList, part of #79196.
2448
2449 2006-09-15  Chris Toshok  <toshok@ximian.com>
2450
2451         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
2452         Form.ControlBox == false, the window has no titlebar nor resize
2453         handles.  fixes bug #79368.
2454
2455 2006-09-15  Chris Toshok  <toshok@ximian.com>
2456
2457         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
2458         >= 0.  Fixes bug #79370.
2459
2460 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
2461         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
2462         * Control.cs:
2463             Add properties: LayoutEngine, Margin, DefaultMargin.
2464             Add method: GetPreferredSize.
2465             Move layout logic from PerformLayout to layout engines. 
2466
2467 2006-09-13  Chris Toshok  <toshok@ximian.com>
2468
2469         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
2470         fix for #79326 broke #78718, so this change addresses that.
2471
2472         - in SendWMDestroyMessages remove the call to
2473         CleanupCachedWindows, since we might be recreating the control and
2474         need to maintain the references to right Hwnd handles.  Also, set
2475         the zombie flag to true for each of the children in the hierarchy
2476         instead of calling hwnd.Dispose.  This will cause GetMessage to
2477         ignore all events for the window except for DestroyNotify.
2478
2479         - In GetMessage, ignore messages except for DestroyNotify for
2480         zombie hwnds.
2481         
2482         * Control.cs: revert the is_recreating fix from the last
2483         ChangeLog.  It's definitely "right", but it breaks switching from
2484         an MDI form to a non-MDI form.  Will need to revisit that.
2485
2486         * Hwnd.cs: add a zombie flag, which means "the
2487         client_window/whole_window handles are invalid, but we're waiting
2488         for the DestroyNotify event to come in for them".  Set the flag to
2489         false explicitly if setting WholeWindow/ClientWindow, and also
2490         when Disposing.
2491         
2492 2006-09-13  Chris Toshok  <toshok@ximian.com>
2493
2494         * XplatUIX11.cs: rework window destruction slightly.
2495
2496         - when destroying the windows associated with a control, we don't
2497         need 2 separate XDestroyWindow calls.  Just the one for the
2498         whole_window (or for client_window if whole_window is somehow
2499         IntPtr.Zero -- can this happen?) is enough.
2500
2501         - reworked SendWMDestroyMessages slightly, so we always dispose
2502         the child control hwnd's after sending the messages.
2503         
2504         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
2505         the two places it was used (one was even using hwnd.Handle and the
2506         other hwnd.client_window.  ugh), adding another call in
2507         SendWMDestroyMessages.  We need this new call because now the
2508         DestroyNotify events in the queue will be ignored for the child
2509         controls (as their hwnd's were disposed, and the window id's
2510         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
2511
2512         - this fixes bug #79326.
2513
2514 2006-09-13  Chris Toshok  <toshok@ximian.com>
2515
2516         * Control.cs: don't always set is_recreating to false at the end
2517         of RecreateHandle, since sometimes we're not done (and won't be
2518         until WndProc handles the WM_DESTROY message).  Also, set
2519         is_recreating to false in the WM_DESTROY handling code.  Part of
2520         the fix for bug #79326.
2521
2522 2006-09-13  Miguel de Icaza  <miguel@novell.com>
2523
2524         * X11DesktopColors.cs: Start the droppage of debugging messages.
2525
2526         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
2527
2528 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
2529
2530         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
2531
2532 2006-09-12  Chris Toshok  <toshok@ximian.com>
2533
2534         * DataGrid.cs (get_ListManager): if the list_manager is null, try
2535         to create it using SetDataSource.  Fixes bug #79151.
2536
2537 2006-09-11  Chris Toshok  <toshok@ximian.com>
2538
2539         * XEventQueue.cs: add a DispatchIdle property.
2540
2541         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
2542         either the queue is null, or the queue has DispatchIdle set to
2543         true.
2544         (DoEvents): set queue.DispatchIdle to false around the
2545         peek/translate/dispatch message loop in this method.  This keeps
2546         Application.Doevents from emitting idle events.  Part of the fix
2547         for #78823.
2548
2549 2006-09-11  Chris Toshok  <toshok@ximian.com>
2550
2551         * DataGrid.cs (set_DataSource): make this work for both the
2552         winforms/datagrid test and ReportBuilder.  It seems as though when
2553         we've created a ListManager (or maybe it's if we have a
2554         BindingContext?), when we set the DataSource it clears the
2555         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
2556         #79333.
2557
2558 2006-09-11  Chris Toshok  <toshok@ximian.com>
2559
2560         * XplatUIX11.cs: deal with queue being null, which happens in all
2561         the Clipboard functions.  Fixes one of the two problems mentioned
2562         in #78612.
2563
2564 2006-09-11  Chris Toshok  <toshok@ximian.com>
2565
2566         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
2567         button on various spots (including outside the menu) works closer
2568         to MS, and doesn't crash.  Fixes #79343.
2569
2570 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
2571
2572         * ListView.cs: Do not initialize item_sorter in init. To match MS,
2573         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
2574         and the internal comparer is set. When a new ListViewItemSorter is set,
2575         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
2576         was specified. No further processing is necessary if SortOrder is set
2577         to it's current value. If Sorting is modified to None, and View is
2578         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
2579         (either custom or our internal ItemComparer) to null, on 1.0 profile
2580         only set item_sorter to null if its our internal IComparer. If Sorting
2581         is modified to Ascending or Descending, then use our internal IComparer
2582         if none is set, and if the current IComparer is our internal one then:
2583         on 2.0 profile always replace it with one for new Sorting, and on 1.0
2584         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
2585         Enum.IsDefined to verify whether a valid View value is specified in
2586         its setter. Automatically sort listview items when listview is
2587         created. In Sort, do nothing if ListView is not yet created, or if
2588         no item_sorter is set (no Sorting was set, Sorting was explicitly set
2589         to None or ListViewItemSorter was set to null). Added Sort overload
2590         taking a bool to indicate whether the ListView should be redrawn when
2591         items are sorted (we use this in ListViewItemCollection to avoid double
2592         redraws). Modified our internal IComparer to take the sort order into
2593         account. In Add and AddRange methods of ListViewItemCollection, also
2594         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
2595         view), but use overload with noredraw option to avoid double redraw.
2596         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
2597         true when View is Tile, and do the same when attempting to set View to
2598         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
2599         for selected/checked indices, as it involves overhead when sorting is
2600         done while these collections are not used all that often. Instead
2601         we'll build the indices on demand. Modified IList implementation of
2602         CheckedIndexCollection to use public methods if object is int.
2603         Modified CheckedListViewItemCollection to hide checked items if
2604         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
2605         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
2606         IList implementation in SelectedIndexCollection to use public methods
2607         if object is int. Modified SelectedListViewItemCollection to hide
2608         selected items if listview is not yet created.
2609         * ListViewItem.cs: CheckedIndices list no longer needs to be
2610         maintained separately (see ListView changes). Also clone font, fixes
2611         test failure.
2612
2613 2006-09-11  Mike Kestner  <mkestner@novell.com>
2614
2615         * ComboBox.cs: if we are updating the contents of the currently
2616         selected index, refresh the control or the textbox selection.
2617         [Fixes #79066]
2618
2619 2006-09-11  Mike Kestner  <mkestner@novell.com>
2620
2621         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
2622         the 'specified' logic has been moved there.  This seems like a bug 
2623         in Control.cs, since our current SetBoundsCore completely ignores 
2624         the specified parameter.  Peter's commit seems to indicate that is 
2625         the way the MS control implementation works.  [Fixes #79325]
2626
2627 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
2628
2629         * XplatUI.cs: Set default_class_name to be composed
2630         of current domain id. This allows MWF to be loaded in multiple
2631         domains on Win32.
2632
2633 2006-09-09  Miguel de Icaza  <miguel@novell.com>
2634
2635         * X11Keyboard.cs: If we are unable to obtain the input method, do
2636         not call CreateXic to create the input context.   Should fix
2637         #78944/79276.
2638
2639 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
2640
2641         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
2642           Simplified gnome support by adding more pinvokes to get the
2643           icon for a file or mime type.
2644
2645 2006-09-08  Jackson Harper  <jackson@ximian.com>
2646
2647         * MenuAPI.cs: Deslect popup context menu items before closing the
2648         window, so that you don't see the previously selected item
2649         selected when you reopen the menu.
2650         * TextControl.cs: Update the cursor position even if we don't have
2651         focus.  This fixes typing in things like the ComboBox.  I'm not
2652         totally sure we should always set the visibility if we don't have
2653         focus, but couldn't find any corner cases where the cursor showed
2654         up when it shouldn't.
2655
2656 2006-09-08  Chris Toshok  <toshok@ximian.com>
2657
2658         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
2659         our arrays are length 256.  & 0xff before indexing.  Fixes the
2660         crash in bug #78077.
2661         
2662 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2663
2664         * ThemeWin32Classic.cs: 
2665         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
2666         is true. Handle that check box too.
2667
2668 2006-09-07  Chris Toshok  <toshok@ximian.com>
2669
2670         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
2671         79244.
2672
2673 2006-09-07  Chris Toshok  <toshok@ximian.com>
2674
2675         * Control.cs: in set_BackColor only do the work if
2676         background_color != value.
2677
2678         * XplatUIX11.cs: move the clearing of invalid areas (both client
2679         and nc) to the same block of code where we set (nc_)expose_pending
2680         to false.  That is, move it from PaintEventEnd to PaintEventStart,
2681         so things that cause invalidates from within OnPaint will trigger
2682         another call to OnPaint.  Fixes bug #79262.
2683
2684 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
2685
2686         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
2687         * FileDialog.cs: Fix typo
2688
2689 2006-09-07  Jackson Harper  <jackson@ximian.com>
2690
2691         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
2692         for tab pages if they have any.
2693
2694 2006-09-06  Mike Kestner  <mkestner@novell.com>
2695
2696         * Splitter.cs: use the "current" rect when finishing drag handle
2697         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
2698
2699 2006-09-06  Mike Kestner  <mkestner@novell.com>
2700
2701         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
2702         support offset splitters. [Fixes #79298]
2703
2704 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
2705
2706         * Mime.cs: Fixed a bug that could override the global mime type
2707           result.
2708
2709 2006-09-05  Jackson Harper  <jackson@ximian.com>
2710
2711         * TabControl.cs: Better calculation method for setting the slider
2712         pos. Prevents crashes on really wide tabs.
2713         - Draw Image on tab pages if an image list is used.
2714
2715 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2716
2717         * MonthCalendar.cs: When Font changes, the Size should be
2718         updated to fit the new font's space requirements.
2719
2720 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
2721
2722         * ListBox.cs: If the items are cleared with Items.Clear set
2723           top_index to 0.
2724
2725 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2726
2727         * MonthCalendar.cs: Handle arrow keys as input keys. Also
2728         fire DateChanged event instead of DateSelected event when
2729         the date was changed by keyboard interaction.
2730
2731 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2732
2733         * DateTimePicker.cs: Handle DateChanged for the associated
2734         month_calendar control, and set month_calendar.Font from 
2735         OnFontChanged method, as well as resize the height of the
2736         control when needed. Make PreferredHeight proportional.
2737
2738 2006-09-01  Chris Toshok  <toshok@ximian.com>
2739
2740         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
2741         properties.
2742
2743         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
2744
2745 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
2746
2747         * FileDialog.cs: Set ClientSize instead of window size, to allow space
2748           for decorations (Fixes #79219)
2749
2750 2006-09-01  Mike Kestner  <mkestner@novell.com>
2751
2752         * ComboBox.cs: first stab at sorting plus some selection handling
2753         fixes to bring us more in line with MS behavior.  Also switches back
2754         to index based selection.  Alternative patches for index-based 
2755         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
2756         and latency@gmx.de on bug 78848.  I assume they were similar to this
2757         code I've had simmering in my tree forever.
2758         [Fixes #78848]
2759
2760 2006-09-01  Chris Toshok  <toshok@ximian.com>
2761
2762         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
2763         when setting list position guard against ending up with a -1 index
2764         (the other part of the fix for #78812).  Should probably make sure
2765         we don't need the analogous fix in the ItemDeleted case.
2766
2767         * DataGrid.cs:
2768         - in SetDataSource, work around the fact that the way
2769         OnBindingContextChanged is invoked will cause us to re-enter this
2770         method.  I'll remove the hack once I investigate
2771         OnBindingContextChanged.
2772
2773         - fix the logic in set_DataSource and set_DataMember (basically
2774         what to do if the other of the two is null.)
2775         
2776         - in OnListManagerItemChanged, we need to take into account the
2777         edit row when deciding whether or not to call RecreateDataGridRows
2778         (part of the fix for #78812).
2779
2780 2006-09-01  Jackson Harper  <jackson@ximian.com>
2781
2782         * Splitter.cs: Don't do anything if there is no control to affect
2783         (prevents us from crashing in weird tet cases).
2784         * TreeView.cs: Bounding box for the mouse movement reverting
2785         focus/selection back to previously selected node.  This matches
2786         MS, and makes the tree a lot more useable.
2787         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
2788         use clipping so they are not drawn.  This fixes when the control
2789         is set to have a transparent background, or if it was over an
2790         image.
2791
2792 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
2793
2794         * MimeIcon.cs: Improved handling for reading default icons when
2795           using gnome (2.16 made it necessary). Check and read svg icons
2796           first, then 48x48 and then 32x32 icons.
2797
2798 2006-08-31  Chris Toshok  <toshok@ximian.com>
2799
2800         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
2801         visible.
2802
2803         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
2804         ProcessKeyPreview.  Fixes part of #77806.
2805
2806         * DataGrid.cs: big patch.
2807
2808         - revert the queueing up of DataSource/DataMember if inside
2809         BeginInit/EndInit calls.  That's not the way the datagrid achieves
2810         its delayed databinding.  Instead, call SetDataSource in
2811         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
2812         #78811.
2813
2814         - Also, it wasn't mentioned in #78811, but the test case exhibits
2815         behavior that was lacking in our datagrid implementation - Columns
2816         that have mapping names that don't exist in the datasource's
2817         properties aren't shown.  Yuck.  To fix this I added the bound
2818         field to the column style, and basically any calculation to figure
2819         out anything about columns uses a loop to find the bound columns.
2820         still need to investigate if I can cache an array of the bound
2821         columns or if the indices must be the same.
2822
2823         - When setting CurrentCell, we no longer abort if the cell being
2824         edited was in the add row.  This fixes the other part of #77806.
2825
2826         - The new code also fixes #78807.
2827         
2828         * ThemeWin32Classic.cs: perpetrate the same disgusting
2829         column.bound field hack, and only render bound fields.
2830
2831 2006-08-31  Chris Toshok  <toshok@ximian.com>
2832
2833         * DataGridColumnStyle.cs: add bound field.  this field is true if
2834         the datasource has a property corresponding to the mapping name.
2835
2836         * DataGridTableStyle.cs: set the bound field on the column styles
2837         depending on whether or not we have a column for that property.
2838
2839 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
2840
2841         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
2842           splitter control (fixes #79228)
2843
2844 2006-08-31  Chris Toshok  <toshok@ximian.com>
2845
2846         * DataGridColumnStyle.cs: we need to delay the assignment of
2847         property descriptor until the last possible moment due to the lazy
2848         databinding stuff in the datagrid.  Also, fix the exceptions
2849         thrown by CheckValidDataSource to match MS.
2850
2851 2006-08-31  Jackson Harper  <jackson@ximian.com>
2852
2853         * Form.cs: When activated select the active control, if there is
2854         no active control, we select the first control.
2855         * XplatUIX11.cs: If there is no focus control when we get a
2856         FocusIn event, find the toplevel form and activate it.  This
2857         occurs when you popup a window, it becomes the focus window, then
2858         you close that window, giving focus back to the main window.
2859
2860 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2861
2862         * MonthCalendar.cs: 
2863         * ThemeWin32Classic.cs: Cache Font in bold style, as well
2864         as StringFormat with Center alignments in MonthCalendar,
2865         instead of creating new ones when drawing the control. 
2866         Also, draw the month name in bold style.
2867
2868 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
2869
2870         * Control.cs:
2871           - PerformLayout(): It would seem MS performs the fill even if the 
2872             control is not visible (part of #79218 fix)
2873           - ResetBackColor(): Use the setter to reset the color, to allow
2874             overriders to catch the change.
2875         * Form.cs:
2876           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
2877           - CreateHandle(): dito (part of $79218 fix)
2878           - Don't set an icon if we have a dialog
2879         * ScrollableControl.cs:
2880           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
2881           - ScrollIntoView(): No need to scroll if control is already visible
2882             (resolves fixme and fixes #79218)
2883
2884 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2885
2886         * MonthCalendar.cs: Change proportions in SingleMonthSize
2887         to match the aspect of the original control.
2888
2889 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
2890
2891         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
2892           get updated when they get maximized.
2893
2894 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
2895
2896         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
2897
2898 2006-08-29  Chris Toshok  <toshok@ximian.com>
2899
2900         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
2901
2902 2006-08-29  Jackson Harper  <jackson@ximian.com>
2903
2904         * TreeView.cs: Need to track selected node and highlighted node,
2905         they aren't always the same thing, when the mouse is down on a
2906         node it is hilighted, but not selected yet.
2907         - Do the HideSelection stuff right
2908         - Need to focus on rbutton mouse down. And redraw selection when
2909         right click is mouse upped.
2910
2911 2006-08-29  Mike Kestner  <mkestner@novell.com>
2912
2913         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
2914         when SubItems.Count < Columns.Count.  [Fixes #79167]
2915
2916 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
2917
2918         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
2919
2920 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
2921
2922         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
2923           from X. Only send based on ConfigureNotify if we don't have the
2924           correct location in hwnd (if the window manager moved us)
2925
2926 2006-08-28  Mike Kestner  <mkestner@novell.com>
2927
2928         * ListView.cs: remove a TODO. 
2929         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
2930         [Fixes ListView part of #79166]
2931
2932 2006-08-28  Mike Kestner  <mkestner@novell.com>
2933
2934         * ListView.cs: move wheel handler to parent since it is focused
2935         instead of the item_control now.  [Fixes #79177]
2936
2937 2006-08-28  Mike Kestner  <mkestner@novell.com>
2938
2939         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
2940         when the control is focused. [Fixes #79171]
2941
2942 2006-08-28  Mike Kestner  <mkestner@novell.com>
2943
2944         * ListView.cs: size the item and header controls for empty and
2945         unscrollable views.
2946         * ThemeWin32Classic.cs: draw disabled backgrounds.
2947         [Fixes #79187]
2948
2949 2006-08-28  Chris Toshok  <toshok@ximian.com>
2950
2951         * Form.cs: remove unused "active_form" static field.
2952
2953         * Hwnd.cs: lock around accesses to static windows collection.
2954
2955         * Application.cs: lock threads in Exit ().
2956
2957 2006-08-28  Chris Toshok  <toshok@ximian.com>
2958
2959         * NativeWindow.cs: lock around accesses to window_collection.
2960         
2961 2006-08-28  Chris Toshok  <toshok@ximian.com>
2962
2963         * Control.cs: err, fix this the right way, by locking on controls
2964         when using it.  not by making it synchronized.
2965
2966 2006-08-28  Chris Toshok  <toshok@ximian.com>
2967
2968         * Control.cs: make the static "controls" field synchronized, as it
2969         gets updated from multiple threads.
2970
2971 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2972
2973         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
2974           Prevent other threads from exiting when calling thread sets quit state.
2975         * XEventQueue.cs: Added PostQuitState property
2976
2977 2006-08-27  Chris Toshok  <toshok@ximian.com>
2978
2979         * AsyncMethodData.cs: add a slot for the window handle.
2980
2981         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
2982         window (the destination control's window, not the foster window).
2983
2984         * Control.cs (BeginInvokeInternal): store the window's handle in
2985         the AsyncMethodData.
2986         
2987
2988 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2989
2990         * XplatUIX11.cs:
2991           - PostQuitMessage: Removed resetting S.D display handle, we might have
2992             another loop started after calling PostQuitMessage (Fixes #79119)
2993           - Created destructor to reset S.D handle
2994
2995 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
2996
2997         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
2998
2999 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3000
3001         * TextControl.cs (Insert): Update the caret position even if we don't
3002           have a handle yet, just don't call the driver in that case.
3003         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
3004           to the end of the new selection text (Fixes #79184)
3005
3006 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3007
3008         * Form.cs (Activate): Only activate if the handle is created)
3009         * Control.c:
3010           - Mark window as invisible when it's disposed
3011           - Check if window handle is created when setting window visible, 
3012             instead of relying just on the is_created variable
3013           - Check if object is disposed when creating the control (Fixes #79155)
3014
3015 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3016
3017         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
3018           when allowing layout again. Otherwise we re-generate the anchoring 
3019           distance to the border again and actually alter what the user wanted
3020           This is ugly, it'd be better if we used DisplayRectangle instead of
3021           ClientRectangle for Control.UpdateDistances, but that causes us to
3022           have other problems (initial anchoring positons would be wrong)
3023           (Fixes #78835)
3024
3025 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3026
3027         * Control.cs:
3028           - The size and location setters shouldn't go directly to 
3029             SetBoundsCore, but to SetBounds, which triggers layout on the
3030             parent, then calls SetBoundsCore. (Related to fix for #78835)
3031           - SetBounds: Moved actual location update code into this function
3032             from SetBoundsCore, to match MS. Added call to PerformLayout if
3033             we have a parent (to trigger resizing of anchored parents if the 
3034             child size has changed (see testcase for #78835) 
3035         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
3036           new control code
3037         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
3038
3039 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3040
3041         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
3042           System.Drawing when a toplevel window gets closed; there might
3043           be other toplevel windows belonging to the same app (Fixes #78052)
3044
3045 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
3046
3047         * FileDialog.cs: After reading FileDialog settings from mwf_config
3048           use Desktop prefix only if a real folder doesn't exist anymore.
3049         * FontDialog.cs: Added char sets.
3050           It is now possible to select the font, size or style with the
3051           textboxes.
3052
3053 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
3054
3055         * PrintPreviewDialog.cs: Use assembly name constants.
3056
3057 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3058
3059         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
3060           scrollbar from whacking it's buttons)
3061
3062 2006-08-24  Chris Toshok  <toshok@ximian.com>
3063
3064         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
3065         in this patch (aggregating setting Left/Top/Width/Height to
3066         setting Bounds on the scrollbars), but the crux of the fix is in
3067         Recalculate, where we scroll by the remaining scroll_position if
3068         we're hiding a scrollbar.  The 2*$5 reward in the comment is
3069         serious.
3070
3071 2006-08-24  Jackson Harper  <jackson@ximian.com>
3072
3073         * MdiClient.cs:
3074         * MdiWindowManager.cs: If the form is made a non-mdi window we
3075         need to remove the form closed event so that closing forms works
3076         correctly.
3077
3078 2006-08-24  Jackson Harper  <jackson@ximian.com>
3079
3080         * Control.cs: Make IsRecreating internal so that the driver can
3081         check it
3082         - Temporarily remove the Hide when controls are removed, its
3083         making a whole bunch of things not work because visibility isn't
3084         getting reset elsewhere correctly
3085         * Form.cs: Need to do a full handle recreation when the mdi parent
3086         is set.
3087         * XplatUIX11.cs: If we are recreating handles don't dispose the
3088         HWNDs.  What was happening is the handles were being recreated in
3089         SendWMDestroyMessages, but then flow continued on in that method
3090         and destroyed the new handles.
3091
3092 2006-08-23  Jackson Harper  <jackson@ximian.com>
3093
3094         * Form.cs: MdiClient is always at the back of the bus
3095         * Control.cs: When the order of items in the collection is changed
3096         we need to reset the all_controls array
3097         - do the same sorta setup thats done when adding a control when a
3098         control is set on the collection.
3099
3100 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
3101
3102         * TextBoxBase.cs (get_Text): Return an empty array if our document
3103           is empty (fixes #79052)
3104
3105 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3106
3107         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
3108           on WM_SYSCHAR messages (fixes #79053)
3109
3110 2006-08-23  Chris Toshok  <toshok@ximian.com>
3111
3112         * DataGrid.cs: fix flickering when scrolling vertically.
3113
3114 2006-08-23  Chris Toshok  <toshok@ximian.com>
3115
3116         * DataGrid.cs (EndEdit): only invalidate the row header when we
3117         need to.
3118
3119 2006-08-23  Chris Toshok  <toshok@ximian.com>
3120
3121         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
3122         methods.  fixes the flicker when scrolling around.
3123
3124 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3125
3126         * FileDialog.cs: Making sure the control is created before we get a 
3127           chance to use it with BeginInvoke (Fixes #79096)
3128
3129 2006-08-23  Chris Toshok  <toshok@ximian.com>
3130
3131         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
3132         width to use when painting the rows.
3133
3134 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
3135
3136         * TextBoxBase.cs:
3137           - Throw ArgumentException if a negative value is passed to SelectionLength
3138           - Update the selection end if start is moved. end needs to be always
3139             after start. (Fixes #79095)
3140           - Track selection length; MS keeps the selection length even if start
3141             is changed; reset on all other operations affection selection
3142
3143 2006-08-22  Jackson Harper  <jackson@ximian.com>
3144
3145         * TreeView.cs: Make sure both scrollbars get displayed and sized
3146         correctly when the other bar is visible.
3147         - Use the original clip rectangle for checking if the area between
3148         the two scrollbars is visible, not the viewport adjusted clipping
3149         rectangle.
3150
3151 2006-08-22  Jackson Harper  <jackson@ximian.com>
3152
3153         * Binding.cs: We don't use IsBinding because it requires the
3154         control to be created, which really shouldn't be necessary just to
3155         set a property on the control.
3156
3157 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3158
3159         * ComboBox.cs: Some CB.ObjectCollection methods must throw
3160         ArgumentNullReferenceException when the argument is null.
3161
3162 2006-08-21  Jackson Harper  <jackson@ximian.com>
3163
3164         * Timer.cs: Track the thread that the timer is started in (NOT
3165         CREATED), this way messages for it will only be triggered on its
3166         queue.
3167         * XEventQueue.cs: Track the timers here, this makes timers per
3168         thread, like MS.
3169         * XplatUIX11.cs: The timers are moved to the XEventQueue.
3170
3171 2006-08-19  Chris Toshok  <toshok@ximian.com>
3172
3173         * XplatUIX11.cs: after further communication with pdb, we get the
3174         best of both worlds.  SetZOrder working for un-Mapped windows, and
3175         no X errors for un-mapped windows.
3176
3177 2006-08-19  Chris Toshok  <toshok@ximian.com>
3178
3179         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
3180         as it was causing pdn toolbars to not have the correct stacking.
3181
3182 2006-08-18  Mike Kestner  <mkestner@novell.com> 
3183
3184         * ListView.cs : guard against negative ClientArea.Width in scrollbar
3185         calculation.  Not sure why control should ever be setting a negative
3186         width though.  Fixes #78931.
3187
3188 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3189
3190         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
3191         null items in ObjectCollection class.
3192         * ListBox.cs.: Likewise.
3193
3194 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
3195
3196         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
3197           as the base method in ThemeWin32Classic should work fine.
3198           Fixed bug #78607.
3199
3200 2006-08-18  Jackson Harper  <jackson@ximian.com>
3201
3202         * Binding.cs: When validating if the value entered doesn't convert
3203         properly reset to the old value.
3204         * RadioButton.cs: Don't fire click when we get focus.
3205
3206 2006-08-18  Jackson Harper  <jackson@ximian.com>
3207
3208         * FileDialog.cs: Paint the selection on the directory combobox the
3209         same way as on MS. 
3210
3211 2006-08-17  Jackson Harper  <jackson@ximian.com>
3212
3213         * ErrorProvider.cs: Don't allow the error control to be selected.
3214         * Control.cs: Don't send the SetFocus messages, the control
3215         activation will do this, and if we do it blindly here validation
3216         does not work.
3217
3218 2006-08-17  Jackson Harper  <jackson@ximian.com>
3219
3220         * Control.cs:
3221         * ContainerControl.cs: Make validation events fire in the correct
3222         order.  TODO: For some reason the first validation event is not
3223         getting fired.
3224
3225 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3226
3227         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
3228
3229 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3230
3231         * ComboBox.cs : implement scroll wheel support for popped-down
3232         state. Fixes #78945. 
3233
3234 2006-08-17  Jackson Harper  <jackson@ximian.com>
3235
3236         * TreeView.cs: Specify treeview actions (old patch that didn't get
3237         committed for some reason).
3238         - Don't let the mouse wheel scroll us too far.  Just want to make
3239         the bottom node visible, not scroll it all the ways to the top.
3240
3241 2006-08-17  Jackson Harper  <jackson@ximian.com>
3242
3243         * XplatUIX11.cs: Mouse wheel events go to the focused window.
3244
3245 2006-08-17  Mike Kestner  <mkestner@novell.com> 
3246
3247         * ComboBox.cs : don't do mouseover selection in simple mode.
3248
3249 2006-08-16  Jackson Harper  <jackson@ximian.com>
3250
3251         * Form.cs: Fire the closing events for all the mdi child windows
3252         when a window is closed.  If the cancel args are set to true, the
3253         main window still gets the event fired, but it doesn't not close.
3254         * MdiWindowManager.cs: Do this closing cleanup in a Closed
3255         handler, instead of when the button is clicked, so cancelling the
3256         close works correctly.
3257         * ComboBox.cs: Send the mouse down to the scrollbar.
3258
3259 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3260
3261         * ListBox.cs: When passing 'null' to SelectedItem,
3262         set SelectedIndex to -1, to unselect items. This is the
3263         observed behaviour in .Net.
3264
3265 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
3266
3267         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
3268           MS flags saying there won't be any. (fixes #78800)
3269         * Control.cs (HandleClick): Made virtual
3270
3271 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3272
3273         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
3274           cultures. Fixed bug #78399.
3275
3276 2006-08-16  Jackson Harper  <jackson@ximian.com>
3277
3278         * Form.cs: Use the MdiClients MdiChildren property to access
3279         MdiChildren instead of creating the array from the child controls.
3280         * MdiClient.cs: Maintain a separate array of the mdi children, so
3281         that insertion order is maintained when the Z-order is changed.
3282
3283 2006-08-16  Mike Kestner  <mkestner@novell.com> 
3284
3285         * ListView.cs : add an ItemComparer and default to it for sorting.
3286         Fixes #79076, but sorting needs a complete overhaul to be compat with
3287         MS.
3288
3289 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3290
3291         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
3292
3293 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3294
3295         * Hwnd.cs (Mapped): Properly traverse the tree
3296
3297 2006-08-15  Chris Toshok  <toshok@ximian.com>
3298
3299         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
3300         pass manager.Current.GetType() to ParseData.  It has to be the
3301         property type.  So, hold off doing the ParseData until we're in
3302         SetPropertyValue where we know the type.  This fixes the crash in
3303         #78821 but the textbox is still empty.
3304
3305 2006-08-15  Chris Toshok  <toshok@ximian.com>
3306
3307         * DataGrid.cs:
3308         - when we're scrolling, only call Edit() again if the
3309         current cell is still unobscured. Fixes bug #78927.
3310         - when handling mousedown on a cell, ensure the cell is visible
3311         before calling Edit.
3312         - remove the properties from DataGridRow, and remove the
3313         DataGridParentRow class altogether.
3314         
3315
3316 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3317
3318         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
3319           fire OnTextChanged by ourselves. There's no point calling base,
3320           we don't set the base value anywhere else. Fixes #78773.
3321
3322 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3323
3324         * ListBox.cs: Call CollectionChanged when modifying
3325         an item from Items indexer, to update the actual items
3326         in the list box.
3327
3328 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3329
3330         * PrintDialog.cs: Small fixes for focus and a pair of checks,
3331         to match .Net behaviour.
3332
3333 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3334
3335         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
3336
3337 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
3338
3339         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
3340
3341 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
3342
3343         * MessageBox.cs: Prevent potential NRE exception.
3344         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
3345
3346 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3347
3348         * MessageBox.cs: Calculate the owner of a messagebox, also make
3349           it topmost. Fixes #78753
3350
3351 2006-08-14  Chris Toshok  <toshok@ximian.com>
3352
3353         * XplatUIX11.cs: A couple of fixes so that metacity will let us
3354         programmatically move windows.  first, set the PPosition hint as
3355         well as the USPosition hint.  Second include some code from pdb
3356         that sets the window type to NORMAL when we set the transient for
3357         hint.  This is because, in the absence of a window type, metacity
3358         thinks any window with TransientFor set is a dialog, and refuses
3359         to let us move it programmatically.  fascists.
3360
3361 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
3362
3363         * XplatUIX11.cs: When setting normal hints, take into consideration
3364           an different hints previously set so we don't delete them (fixes #78866)
3365
3366 2006-08-12  Chris Toshok  <toshok@ximian.com>
3367
3368         * ToolBarButton.cs: make Layout return a boolean, if something to
3369         do with the button's layout changed.
3370
3371         * ToolBar.cs:
3372         - add another parameter to Redraw, @force, which all existing
3373           calls set to true.
3374         - make the Layout function return a boolean which is true if the
3375           layout has actually changed.  Redraw now uses this (and @force)
3376           to determine when to invalidate.  At present the only place
3377           where @force can be false is the call from OnResize, when
3378           background_image == null.  So, resizing a toolbar when the
3379           layout doesn't change results in no drawing.
3380
3381 2006-08-12  Chris Toshok  <toshok@ximian.com>
3382
3383         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
3384         the VScrollBar and HScrollbar reversed.  oops.
3385
3386         * DataGrid.cs: fix the logic that assigns sizes to the implicit
3387         scrollbars.  we were assigning them twice (once in
3388         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
3389         therefore causing two scrollbar resizes (and redraws?) to happen
3390         per grid resize.
3391
3392 2006-08-12  Chris Toshok  <toshok@ximian.com>
3393
3394         * ToolBarButton.cs: redraw the entire button if the theme tells us
3395         to.
3396
3397         * Theme.cs: add ToolBarInvalidateEntireButton.
3398
3399         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
3400         buttons, just the border.
3401
3402         * ThemeNice.cs: redraw the entire toolbar button since we need to
3403         draw the highlight image.
3404
3405         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
3406         we need to redraw the entire button (not just the border).
3407
3408 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3409
3410         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
3411           for vertical bars. Fixes the mismatches shown by #78513
3412
3413 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
3414
3415         * FileDialog.cs: If a saved/remembered path doesn't exist
3416           anymore, fall back to "Desktop".
3417
3418 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
3419
3420         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
3421           parent. It's apparently legal to not have one
3422         * XplatUIX11.cs:
3423           - SetZOrder: Don't try to set Z-Order on an unmapped window
3424           - CreateWindow: 0,0 are legal coordinates for a window. don't move
3425             it unless the coordinates are negative
3426
3427 2006-08-10  Mike Kestner  <mkestner@novell.com>
3428
3429         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
3430         when setting to null per msdn docs.  Fixes #78854.
3431
3432 2006-08-10  Chris Toshok  <toshok@ximian.com>
3433
3434         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
3435         flickering by setting a clip rectangle on the Graphics when we
3436         need to redraw just a particular menuitem.  Also, rename "OnClick"
3437         to "OnMouseDown" to reflect what it actually is.
3438         
3439         * Form.cs: track the OnMouseDown change.
3440
3441 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
3442
3443         * CommonDialog.cs: Properly inherit the CreateParams from the form
3444           and only change what we need. Fixes #78865
3445
3446 2006-08-10  Chris Toshok  <toshok@ximian.com>
3447
3448         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
3449         flickering in flat mode (and most of the flickering in general) by
3450         only invalidating the button border (and not the entire rectangle)
3451         when the state changes.  A couple of cases still flicker:
3452         ToggleButtons, and the dropdown arrow case when the user mouse
3453         ups.
3454
3455 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
3456
3457         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
3458           for german keyboards. Numlock state shouldn't affect the behaviour
3459           of the Del key. Fixes bug #78291.
3460
3461 2006-08-10  Chris Toshok  <toshok@ximian.com>
3462
3463         * ListControl.cs: remove the items.Clear line from BindDataItems,
3464         as this is the first thing done by both subclasses in their
3465         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
3466         passed -1, refresh the list.  This gets databinding working when
3467         the datasource is set on the list before the datasource is
3468         populated (as in wf-apps/ReportBuilder.)
3469
3470         * ComboBox.cs: remove the argument to BindDataItems.  This call
3471         should really go away, and be initiated by the ListControl code.
3472
3473         * ListBox.cs: same.
3474
3475 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3476
3477         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
3478           if no data is in the document when the control is displayed
3479
3480 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
3481
3482         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
3483           yes (fixes #78806)
3484         * TextControl.cs: 
3485           - PositionCaret: Allow positioning of caret but don't call methods 
3486             requiring a handle if the window isn't created yet
3487           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
3488           - owner_HandleCreated: Don't position the caret, just update it's 
3489             location. User might have already set a different position
3490
3491 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
3492
3493         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
3494           windows. Screws up the returned coordinates for child windows. 
3495           Fixes #78825. I'm hoping this doesn't break something, since the
3496           code was explicitly put in 8 months ago, but no bug was attached.
3497           Menus still seem to work properly.
3498
3499 2006-08-08  Chris Toshok  <toshok@ximian.com>
3500
3501         * DataGrid.cs: make BeginInit/EndInit actually do what they're
3502         supposed to do - delay data binding until the EndInit call.  Also,
3503         make the table style collection's CollectionChangeAction.Refresh
3504         work properly.
3505
3506         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
3507         (with action = Refresh) when a consituent table's MappingName is
3508         changed.
3509
3510 2006-08-08  Chris Toshok  <toshok@ximian.com>
3511
3512         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
3513         Invalidate, since changing the text can change the size of the all
3514         toolbar buttons.
3515
3516 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3517
3518         * Form.cs (AddOwnedForm): Still need to add the form to our listif
3519           we don't have it yet
3520
3521 2006-08-08  Chris Toshok  <toshok@ximian.com>
3522
3523         * PrintControllerWithStatusDialog.cs: don't .Close() the status
3524         dialog, as this causes X errors later on, since we actually
3525         destroy the window.  Instead, .Hide() it.
3526
3527 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3528
3529         * ComboBox.cs: Added focus reflection for popup window
3530         * XplatUIX11.cs: 
3531           - Removed transient setting for non-app windows for now, not sure it
3532             was needed
3533           - Fixed logic checking if we have captions when deciding 
3534             override_redirect, WS_CAPTION is two bits and a 0 check was not
3535             sufficient
3536           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
3537             complicated
3538         * Form.cs: 
3539           - AddOwnedForm: Don't just add the form to the list, call the property
3540             to ensure the driver is informed about the ownership as well
3541           - CreateHandle: Set the TopMost status in the driver if we have an owner
3542         * XplatUI.cs: Fixed debug statement
3543
3544 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
3545         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3546           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
3547           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
3548           TrackBarRenderer.cs: Make constructor private.
3549         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
3550         * ProfessionalColorTable.cs: Make properties virtual.
3551
3552 2006-08-06  Duncan Mak  <duncan@novell.com>
3553
3554         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
3555         is not changing.
3556
3557 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3558         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3559           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
3560           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
3561           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
3562           Initial import of new 2.0 classes.
3563
3564 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3565         * Application.cs: Add 2.0 VisualStyles properties.
3566
3567 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3568         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3569           XplatUIX11.cs: Create property to allow access to existing private
3570           variable "themes_enabled"
3571
3572 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3573
3574         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
3575         file size, as otherwise our class libraries fail using windows. Fixes
3576         bug #78759.
3577
3578 2006-08-04  Jackson Harper  <jackson@ximian.com>
3579
3580         * Form.cs:
3581         * XplatUIX11.cs: Move the toolwindow window manager creation into
3582         the X11 driver, this way on win32 we can let windows create/handle
3583         the toolwindows.
3584
3585 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3586
3587         * PrintDialog.cs: Remove some redundant checks, add some others,
3588         clean some code, and move the focus to the text boxes when the
3589         values are incorrect.
3590
3591 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
3592
3593         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
3594
3595 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3596
3597         * NumericUpDown.cs: Setting the Minimum and Maximum is now
3598           handled correctly. Fixes bug #79001.
3599
3600 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3601
3602         * PrintDialog.cs: The "Copies" numeric up down must have
3603         set the Minimum property to 1; only if the value is bigger
3604         than 1, activate "Collate" check box. This is the behaviour of .Net.
3605         Also modify the Document elements only if it is not null.
3606
3607 2006-08-03  Jackson Harper  <jackson@ximian.com>
3608
3609         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
3610         length. (We have a larger array then actual node count).
3611                 
3612 2006-08-03  Jackson Harper  <jackson@ximian.com>
3613
3614         * ComboBox.cs: Don't show selection by default.
3615         - The SelectAll isn't needed here, since the focus code should do
3616         that
3617         - DDL style lists to manual selection drawing, so when they
3618         get/lose focus they have to invalidate.
3619
3620 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
3621
3622         * TextBoxBase.cs: Don't always show all selections by default.
3623
3624 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
3625         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
3626           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
3627           Fixed various typos.
3628
3629 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3630
3631         * Control.cs: Removing the controls in a ControlCollection with
3632           Clear now hides the controls as expected. Fixes bug #78804. 
3633
3634 2006-08-03  Jackson Harper  <jackson@ximian.com>
3635
3636         * Control.cs: Revert previous focus patch, it breaks reflector.
3637
3638 2006-08-03  Jackson Harper  <jackson@ximian.com>
3639
3640         * ComboBox.cs: Cleanup selection and focus with the combobox.
3641         This also eliminates some duplicated keyboard code, since now
3642         everything is handled by the main class.
3643         - Make list selection work on mouse up instead of down, to match
3644         MS.
3645
3646 2006-08-02  Jackson Harper  <jackson@ximian.com>
3647
3648         * Control.cs: Setting focus needs to go through the whole
3649         selection mechanism.
3650
3651 2006-08-02  Chris Toshok  <toshok@ximian.com>
3652
3653         * PrintPreviewDialog.cs: change MinimumSize to use
3654         base.MinimumSize so it works.
3655
3656 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
3657
3658         * TextControl.cs:
3659           - UpdateCaret: Added sanity check in case caret isn't defined yet
3660           - Line.Delete: Now updating selection and caret markers if we're
3661             transfering a node (Properly fixes #78323)
3662           - SetSelectionEnd: Added sanity check
3663         * TextBoxBase.cs: Removed broken attempt to fix #78323
3664
3665 2006-08-01  Chris Toshok  <toshok@ximian.com>
3666
3667         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
3668         Close() call is handled in Form, not here.
3669
3670 2006-08-01  Chris Toshok  <toshok@ximian.com>
3671
3672         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
3673         layout/rendering.
3674
3675         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
3676         for sizes < 100% zoom.  The code now aggressively attempts to keep
3677         from calling document.Print (), and tries not to use the scaling
3678         g.DrawImage whenever possible (it still does if you scale to >
3679         100%, since usually that involves huge images).
3680
3681         * PrintPreviewControl.cs: hook up the close button.
3682
3683 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
3684         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
3685           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
3686           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
3687           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
3688           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
3689           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
3690           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
3691           Removed [Serializable] for 2.0 Event Handlers.
3692
3693 2006-07-31  Jackson Harper  <jackson@ximian.com>
3694
3695         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
3696         * TextControl.cs: Uncomment out the body of this method.
3697
3698 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
3699
3700         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
3701           standard cursors.
3702
3703 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3704
3705         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
3706           that embed TextBox and need selections visible even if textbox is not
3707           focused to enforce that behaviour.
3708         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
3709           selection drawing
3710
3711 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3712
3713         * TextControl.cs:
3714           - Added new SetSelectionStart/SetSelectionEnd overloads
3715           - Fixed viewport width assignment to be accurate
3716           - Adjusted alignment line shift calculations to allow cursor on right
3717             aligned lines to be always visible at the right border (like MS)
3718         * TextBoxBase.cs:
3719           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
3720           - TextBoxBase_SizeChanged: recalculating canvas on size changes
3721           - CalculateScrollBars: Use ViewPort size instead of window size, to
3722             properly consider space occupied by the border and scrollbars 
3723             (Fixes #78661)
3724           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
3725             calculations; no longer leaves artifacts
3726           - CaretMoved: Adjusted window scrolling to match MS and fixed several
3727             calculation bugs (Still missing right/center align calculations)
3728
3729 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
3730
3731         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
3732           use of both scroll rect and clip rect, as they do the same.
3733
3734 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3735
3736         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
3737           in the event handler (fixes #78912)
3738
3739 2006-07-31  Chris Toshok  <toshok@ximian.com>
3740
3741         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
3742         grid.ListManager.Count, since grid.ListManager might be null.
3743         This of course begs the question "why are we drawing rows for a
3744         grid with no list manager (and therefor no rows)?"  Fixes the
3745         crash in bug #78929.
3746
3747 2006-07-31  Chris Toshok  <toshok@ximian.com>
3748
3749         * RelatedPropertyManager.cs: Don't always chain up to the parent
3750         ctor.  instead, call SetDataSource if the parent's position is !=
3751         -1.  Fixes the crash in #78822.
3752
3753 2006-07-31  Chris Toshok  <toshok@ximian.com>
3754
3755         * DataGrid.cs (get_ListManager): use field instead of property
3756         accessors for datasource and datamember.
3757         (RowsCount): make internal again.
3758         (OnMouseDown): end edits before resizing columns/rows.
3759         (OnMouseUp): restart edits after resizing columns/rows.
3760
3761 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
3762
3763         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
3764           This fixes the situation where the last set cursor is displayed
3765           whenever the mouse is over scrollbars.
3766
3767 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3768
3769         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
3770         Document properties, as well as initial values.
3771
3772 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
3773
3774         * XplatUIWin32.cs (SetBorderStyle): Setting both border
3775           and ClientEdge results in a 3-pixel border, which is
3776           wrong.
3777
3778 2006-07-28  Jackson Harper  <jackson@ximian.com>
3779
3780         * TreeNodeCollection.cs: Fix the clear method.
3781         - Fix the Shrink also
3782
3783 2006-07-27  Jackson Harper  <jackson@ximian.com>
3784
3785         * TreeView.cs: Make sure the visible order is computed when we
3786         attempt to size the scrollbars (for trees that mess with the
3787         scrolling when they shouldn't.
3788         - Make sure to give the scrollbars valid values.
3789
3790 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3791
3792         * XplatUIX11.cs: Move motion compression code to where it
3793           has less performance impact
3794
3795 2006-07-26  Jackson Harper  <jackson@ximian.com>
3796
3797         * UpDownBase.cs: When the control is selected make the child
3798         controls non selectable, so that a click on them won't do a
3799         focus/unfocus cycle.
3800         - Don't give focus to the text box when the spinner is selected.
3801         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
3802
3803 2006-07-26  Chris Toshok  <toshok@ximian.com>
3804
3805         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
3806         satisfied with this solution.  If the bitmaps are small, we should
3807         just cache them in the PrintPreviewDialog and draw them here.
3808         Also, the layout is broken for the 2-up and 3-up cases.
3809
3810         * Theme.cs: add PrintPReviewControlPaint.
3811
3812         * PrintPreviewDialog.cs: first pass implementation.
3813
3814         * PrintPreviewControl.cs: first pass implementation.  No
3815         scrollbars yet.
3816
3817         * PrintDialog.cs: only validate fields if that particular portion
3818         of the UI is enabled.  Also, set the document's controller to a
3819         PrintControllerWithStatusDialog wrapping the document's print
3820         controller.
3821
3822         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
3823         bring up a SaveFileDialog (i hope we don't want to match the
3824         behavior of the crappy windows file entry) and set the
3825         PrinterSettings.PrintFileName accordingly.
3826
3827 2006-07-26  Jackson Harper  <jackson@ximian.com>
3828
3829         * ContainerControl.cs: Add a field that disables auto selecting
3830         the next control in a container when the container is activated.
3831         * UpDownBase.cs: Don't select the text box when the up down is
3832         selected.
3833
3834 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3835
3836         * XEventQueue.cs: Added methods for peeking (used for compression
3837           of successive events)
3838         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
3839           mouse move events (fixes #78732)
3840
3841 2006-07-25  Jackson Harper  <jackson@ximian.com>
3842
3843         * UpDownBase.cs: Use an internal class for the textbox so that we
3844         can control focus.  the updown control should always have focus,
3845         if either the text area or the buttons are clicked.
3846         - Send the key messages to the textbox, since it never actually
3847         has focus
3848         - Activate and decativate the textbox caret.
3849
3850 2006-07-24  Jackson Harper  <jackson@ximian.com>
3851
3852         * Control.cs: Use the directed select when selecting a control,
3853         this way the container controls override will get called and the
3854         whole ActiveControl chain will get triggered.  TODO: probably need
3855         to make sure this gets done everywhere instead of the old
3856         Select(Control).
3857         * ContainerControl.cs: Implement the directed Select method to
3858         find and activate the correct child control.    
3859         
3860 2006-07-22  Mike Kestner  <mkestner@novell.com>
3861
3862         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
3863         menu handling code so that clicks without a grab work too.
3864         [Fixes #78914]
3865
3866 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
3867
3868         * FileDialog.cs: Enable the BackButton when dirstack has one element.
3869           Added some small optimizations.
3870
3871 2006-07-21  Matt Hargett  <matt@use.net>
3872
3873         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
3874
3875 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
3876
3877         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
3878           tests pass and match MS in some strange border cases.
3879
3880 2006-07-21  Chris Toshok  <toshok@ximian.com>
3881
3882         * ThemeWin32Classic.cs: handle drawing of the relation links and
3883         parent row buttons.
3884
3885         * Theme.cs: change args to DataGridPaintParentRow.
3886
3887         * DataGrid.cs: Don't use controls for the relation links and
3888         parent buttons, so we have to handle all their interactions in
3889         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
3890         when we're navigating through child tables, so we can reinstate
3891         selection, expanded state, current cell, etc.
3892
3893 2006-07-20  Chris Toshok  <toshok@ximian.com>
3894
3895         * ToolBar.cs: When we redraw a button, for whatever reason,
3896         there's no reason to redraw the entire toolbar.  Also, don't call
3897         Control.Refresh from within Redraw, as it's much heavier than
3898         Invalidate (which is really what we want).
3899
3900 2006-07-20  Chris Toshok  <toshok@ximian.com>
3901
3902         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
3903         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
3904         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
3905         traces from within a debug IBindingList datasource
3906         (in mono/winforms/datagrid) for *days*, I've finally gotten things
3907         to work in a similar fashion.
3908
3909 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3910
3911         * ListBox.cs: Don't call Sort () when setting 
3912         the Sorted property to false (avoid an unnecessary sort).
3913
3914 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3915
3916         * ListControl.cs: DataSource should throw an ArgumentException
3917         instead of a normal exception when the argument is not of the 
3918         correct type.
3919
3920 2006-07-20  Mike Kestner  <mkestner@novell.com>
3921
3922         * Control.cs: add InternalPreProcessMessage to allow us to steal
3923         key events before MWF gets its paws on them.  Adapted from a
3924         suggestion by eno.
3925         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
3926         up/down/left/right navigation. Override the new internal control
3927         method to steal the events since they never make it to WndProc.
3928         * ToolBarButton.cs: don't worry about pushed when setting hilight
3929         since the drawing code prefers pushed to hilight. Invalidate on 
3930         Hilight changes. Fixes #78547 and #78525.
3931
3932 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3933
3934         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
3935           the canvas size. Fixes #78868
3936
3937 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
3938
3939         * Splitter.cs: Track requested split position until first layout
3940           is performed. Fixes #78871
3941
3942 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3943
3944         * Application.cs: Removed code that forces 1.x for the version
3945           number if the version started with 0. Not sure why that code was
3946           there and I couldn't find any bugs that indicated we needed it.
3947           Fixes #78869
3948
3949 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
3950
3951         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
3952           ResetDefaults(), just write some output to the console until it's
3953           implemented. Fixes bug #78907 for now. Eliminated two warnings.
3954
3955 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
3956
3957         * PropertyGridView.cs: set StartPosition of drop down forms
3958         so they appear in correct initial spot.  Fixes #78190.
3959
3960 2006-07-19  Mike Kestner  <mkestner@novell.com>
3961
3962         * ThemeWin32Classic.cs: use parent background color when drawing
3963         flat toolbars.  Restructure the conditionals to make sure non-flat
3964         non-Divider toolbars are filled too.  Fixes #78837.
3965
3966 2006-07-19  Mike Kestner  <mkestner@novell.com>
3967
3968         * ListBox.cs: Sort on collection changes even if the handle
3969         isn't created yet.  Fixes #78813.
3970
3971 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3972
3973         * ListControl.cs: DisplayMember should never be null,
3974         and now we assign String.Empty when null is passed to it (this
3975         is the .Net way).
3976
3977 2006-07-17  Mike Kestner  <mkestner@novell.com>
3978
3979         * ListViewItem.cs: restructure Font and subitem Font handling 
3980         to hold a specific font and refer back to owner on null.
3981         Fixes #78761.
3982
3983 2006-07-17  Mike Kestner  <mkestner@novell.com>
3984
3985         * ToolBar.cs: bandaid for side-effect of previous patch which was
3986         discarding explicit heights for non-AutoSize toolbars.  Need to
3987         extend my format tester to deal with AutoSize=false. Fixes #78864.
3988
3989 2006-07-15  Jackson Harper  <jackson@ximian.com>
3990
3991         * LabelEditTextBox.cs:
3992         * TreeView.cs: Use a new LabelEdit class for node editing, this
3993         class automatically 'closes' itself when it gets the enter key or
3994         loses focus.
3995         - Use the client rectangle when setting the trees scrollbars, so
3996         border style is taken into account.
3997         
3998 2006-07-14  Jackson Harper  <jackson@ximian.com>
3999
4000         * TreeNode.cs:
4001         * TreeView.cs: Make the editing work similar to MSs, firing the
4002         events correctly and ending edits correctly.
4003
4004 2006-07-14  Mike Kestner  <mkestner@novell.com>
4005
4006         * ToolBarButton.cs:
4007         * ToolBar.cs: layout restructuring and redraw enhancements to support
4008         formatting changes gracefully, like setting TextAlign, ImageList, 
4009         ButtonSize, and Appearance.  Handles explicit button sizing quirks
4010         of the MS controls.  Things like flat toolbars ignoring button size
4011         but becoming constant sized at the largest button's size.  Normal
4012         toolbars with an image set cannot be shrunk smaller than the image,
4013         but text can be clipped/ignored.
4014         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
4015         is zero.  Seems like DrawString should be smart enough to not put
4016         anything on screen though. Also trim labels and ellipsize at the char
4017         boundary, not word.
4018         Fixes #78711 and #78483.
4019
4020 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
4021
4022         * FolderBrowserDialog.cs: Disable "New Folder" button and
4023           "New Folder" contextmenu menuitem if a folder like "My Computer"
4024           is selected.
4025
4026 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
4027
4028         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
4029         * FolderBrowserDialog.cs:
4030           - Use MWFConfig to store and read size and position settings
4031           - Added code to create a new folder (button or context menu).
4032             Use TreeView labeledit to change the name of the new folder.
4033
4034 2006-07-14  Jackson Harper  <jackson@ximian.com>
4035
4036         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
4037         when the tree is scrolled we end editing.
4038
4039 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
4040
4041         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
4042           Down arrows
4043
4044 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
4045
4046         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
4047         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
4048         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
4049         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
4050         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
4051         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
4052         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
4053         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
4054         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
4055         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
4056         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
4057         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
4058         ListViewItemSelectionChangedEventHandler.cs,
4059         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
4060         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
4061         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
4062         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
4063         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
4064         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
4065         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
4066         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
4067         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
4068         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
4069         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
4070         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
4071         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
4072         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
4073         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
4074         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
4075         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
4076         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
4077         WebBrowserNavigatingEventHandler.cs, 
4078         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
4079
4080 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
4081
4082         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
4083         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
4084         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
4085         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
4086         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
4087         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
4088         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
4089         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
4090         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
4091         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
4092         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
4093         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
4094         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
4095         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
4096         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
4097         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
4098         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
4099         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
4100         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
4101         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
4102         ListViewItemStates.cs, MaskFormat.cs: Added
4103
4104 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
4105
4106         * PropertyGridView.cs: Fix keyboard navigation of drop down.
4107         Patch from eno for bug 78558.
4108         
4109 2006-07-13  Jackson Harper  <jackson@ximian.com>
4110
4111         * TreeView.cs: When an edit is finished make sure that the
4112         selected node is visible.
4113         - When setting the top/bottom use the scrollbars is_visible, so
4114         everything will be set correctly even if the tree isn't visible
4115         yet.
4116
4117 2006-07-13  Jackson Harper  <jackson@ximian.com>
4118
4119         * ComboBox.cs: Revert the item->index part of my previous patch.
4120         * TreeView.cs: Use LostFocus instead of Leave for detecting when
4121         the edit box has lost focus (duh).
4122         - Just make the edit box not visible when we get return, that will
4123         take the focus, which will call EndEdit
4124         * TreeNode.cs When we start editing, notify the treeview.
4125
4126 2006-07-12  Jackson Harper  <jackson@ximian.com>
4127
4128         * ComboBox.cs: Clear out old items before setting the item list.
4129         This prevents databound controls from having their items added
4130         twice.
4131         - Switch the combobox to use indices whereever possible instead of
4132         using Item's.  This allows usto navigate through lists that have
4133         more then one item with the same string value (ie a, b, b, a).
4134         - Scroll the listboxes scrollbar when a non visible item is
4135         highlighted
4136         - Allow keypress to cycle through all the possible values. For
4137         example if you have b1, b2, b3 and hold down the B key all the
4138         values will be cycled through.
4139         
4140 2006-07-12  Jackson Harper  <jackson@ximian.com>
4141
4142         * TextBoxBase.cs:
4143         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
4144         this using the internal methods.
4145         * Control.cs: Add OnGotFocusInternal.  A new method that allows
4146         controls to "override" OnGotFocus and change focus behavior if
4147         needed.
4148         - Same thing for LostFocus
4149         * ComboBox.cs: Pass off focus to the text control properly.
4150
4151 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
4152
4153         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
4154         * FolderBrowserDialog.cs: Almost a complete rewrite.
4155           - Better support for Environment.Specialfolders
4156           - Added support for MWFVFS
4157           - Made setting SelectedPath work
4158
4159 2006-07-12  Jackson Harper  <jackson@ximian.com>
4160
4161         * Control.cs: Optimze getting all the controls.
4162
4163 2006-07-11  Jackson Harper  <jackson@ximian.com>
4164
4165         * ContainerControl.cs: Override SETFOCUS in the container control,
4166         so that it is not selected on mouse click.
4167
4168 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
4169
4170         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
4171           Hopefully we will have a better way once all of focus is complete.
4172
4173 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
4174
4175         * ThemeWin32Classic.cs: Commented out some debug code and fixed
4176           a compile error with csc.
4177
4178 2006-07-11  Jackson Harper  <jackson@ximian.com>
4179
4180         * Control.cs: When hiding a control only select the next control
4181         if the current control was focused.
4182         - Don't handle enter/leave when setting/killing focus, this is
4183         done by the container control.
4184         - Remove is_selected, it's not needed anymore.
4185         - Add utility methods for selecting a child control, and for
4186         firing the Enter/Leave events.
4187         * ContainerControl.cs: When a control is activated fire the
4188         enter/leave events.
4189         - Don't wrap when processing the tab key, so that focus can be
4190         moved outside of the container.
4191         - Use the correct active control
4192
4193 2006-07-11  Jackson Harper  <jackson@ximian.com>
4194
4195         * ComboBox.cs: Remove some debug code that was blinding me.
4196         * UpDownBase.cs: These controls actually aren't implicit, they are
4197         visible to the user.
4198
4199 2006-07-10  Chris Toshok  <toshok@ximian.com>
4200
4201         * DataGrid.cs: move back to the is_adding boolean field.  god i
4202         hate this is_editing/is_adding/is_changing stuff.
4203
4204 2006-07-10  Chris Toshok  <toshok@ximian.com>
4205
4206         * DataGridTableStyle.cs: just check if the property type is bool.
4207         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
4208         Don't use CanRenderType.
4209
4210         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
4211         if our text == NullText.  Remove CanRenderType.
4212
4213         * DataGridBoolColumn.cs: nuke CanRenderType.
4214
4215         * DataGrid.cs: reenable some code to end the current edit inside
4216         of set_CurrentCell.  This fixes the other 1.1.16 regression.
4217         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
4218         Also, remove the visible_row_count arg from CalcRowHeaders, since
4219         we don't need to worry about the actual height of the area.
4220
4221 2006-07-10  Chris Toshok  <toshok@ximian.com>
4222
4223         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
4224         mode, just return.
4225
4226         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
4227         the real sense of the IsInEditOrNavigateMode property (true =
4228         navigate, false = edit).  Also, update OnKeyPress to reflect this.
4229
4230         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
4231         column style exists, we still need to set its property descriptor
4232         to match up with our list manager.
4233
4234 2006-07-10  Chris Toshok  <toshok@ximian.com>
4235
4236         * ThemeWin32Classic.cs: implement the new row/header painting
4237         approach.  The parent row painting will likely go away and
4238         replaced with label controls, but the rest seems to work ok (and
4239         efficiently).
4240
4241         * Theme.cs: change the way we draw datagrid rows.  we don't draw
4242         the row headers as a block now.  Instead we draw them in the
4243         normal draw-row loop.  Add some calls for drawing parent rows and
4244         relation rows.
4245
4246         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
4247         a default table style.  Set the defaults from ThemeEngine.Current,
4248         not SystemColors.  Fix lots of misc issues with property setters.
4249
4250         * DataGrid.cs: move loads of style information out of this class
4251         as it's being duplicated with DataGridTableStyle.  keep track of a
4252         special DataGridTableStyle for the properties we used to mirror
4253         here.  Switch all the style properties to access this table style
4254         instead of instance fields of this class.  Also add a internal
4255         class to represent parent rows (more needs to be stored here, like
4256         the selection state from the parent table, as well as the
4257         expansion state.)  Also, for datasources with relations, do the
4258         right thing for collapse/expand, and add support for the
4259         navigation/parent row buttons.
4260
4261         Lastly, fix the crash in the 1.1.16 build.
4262
4263         * GridTableStylesCollection.cs: make the explicit interface
4264         implementations call the class's methods as opposed to duplicating
4265         them.
4266
4267         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
4268         0 so the text doesn't jump around when we move the cursor.
4269
4270 2006-07-10  Jackson Harper  <jackson@ximian.com>
4271
4272         * TextBoxBase.cs:
4273         * ListBox.cs: Match MS's ToString (this makes debugging focus
4274         stuff infinitely easier).
4275
4276 2006-07-10  Jackson Harper  <jackson@ximian.com>
4277
4278         * Control.cs (SelectNextControl): When checking the control's
4279         parent use this instead of ctrl.parent so that null can be passed
4280         to SelectNextControl. (I have unit tests for this).
4281         - Remove unused var.
4282
4283 2006-07-10  Chris Toshok  <toshok@ximian.com>
4284
4285         * CurrencyManager.cs: correct one regression, the removal of the
4286         finalType field.  Also, add a MonoTODO on CanAddRows, implement
4287         Refresh() correctly, and fix some event emission in
4288         ListChangedHandler.
4289
4290 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4291
4292         * FileDialog.cs: Don't use brackets for new folders if they exist
4293           under *nix. Instead use -(number of existing folders +1).
4294
4295 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
4296
4297         * FileDialog.cs:
4298           - Fixed really nasty bug #78771
4299           - Don't block the whole GUI when reading directories with a lot of
4300             entries. Use an other thread instead and call BeginInvoke to
4301             update the ListView in MWFFileView
4302
4303 2006-07-07  Chris Toshok  <toshok@ximian.com>
4304
4305         * Control.cs (Dispose): release any Capture when disposing.
4306
4307 2006-07-07  Chris Toshok  <toshok@ximian.com>
4308
4309         * LinkLabel.cs (Select): if we chain up to the parent, set
4310         focused_index to -1 so we'll search for the first available link
4311         the next time the user tabs into us.  Also, if the direction is
4312         backward and focused_index == -1, start the search from the last
4313         element.
4314
4315 2006-07-07  Chris Toshok  <toshok@ximian.com>
4316
4317         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
4318         is beyond the end of the text, don't do anything.
4319         (CreateLinkPieces): set our ControlStyles.Selectable based on
4320         whether or not we have any links.
4321         (Link.Invalidate): use a loop instead of foreach.
4322         (Link.set_Start): null out owner.sorted_links so it'll be
4323         recreated by CreateLinkPieces.
4324
4325 2006-07-06  Chris Toshok  <toshok@ximian.com>
4326
4327         * LinkLabel.cs: revert the SetStyle change.
4328
4329 2006-07-06  Chris Toshok  <toshok@ximian.com>
4330
4331         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
4332         (OnEnableChanged): s/Refresh/Invalidate
4333         (OnGotFocus): if we have a focused index already, refocus it (so
4334         if we mouse out/in to the window it'll focus the right link).
4335         (OnKeyDown): move the tab handling out of here.
4336         (OnLostFocus): don't set focused_index to -1, so we can refocus it
4337         when we lose focus.
4338         (OnMouseDown): don't Capture here - Control handles it.  Also,
4339         focus the active link.
4340         (OnMouseUp): don't deal with Capture.
4341         (OnPaintBackgroundInternal): remove.
4342         (OnTextAlignChanged): CreateLinkPieces before calling the
4343         superclass's method.
4344         (OnTextChanged): call CreateLinkPieces before calling superclass's
4345         method.
4346         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
4347         move around.
4348         (Select): implement this, moving the selection between different
4349         links, and call parent.SelectNextControl if we don't have another
4350         link to focus in the given direction.
4351         (CreateLinkPieces): call Invalidate instead of Refresh.
4352         
4353 2006-07-06  Chris Toshok  <toshok@ximian.com>
4354
4355         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
4356         new LinkLabel internals.
4357
4358         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
4359         over pieces looking for active/focused/etc links.  also, deal with
4360         runs of text (and links) with embedded \n's in them, and use
4361         MeasureCharacterRanges instead of MeasureString to figure out the
4362         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
4363         two-step.
4364
4365 2006-07-04  Jackson Harper  <jackson@ximian.com>
4366
4367         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
4368         XKB or key auto repeat, do it manually.  Without key auto repeat,
4369         when a key is held down we get key press, key release, key press,
4370         key release, ... with auto repeat we get key press, key press, key
4371         press ..., and then a release when the key is actually released.
4372
4373 2006-07-03  Jackson Harper  <jackson@ximian.com>
4374
4375         * TabControl.cs:
4376         * ThemeWin32Classic.cs: Tabs do not obey normal background color
4377         rules, they are always control color regardless of the background
4378         color.
4379
4380 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
4381
4382         * FileDialog.cs: Added internal class MWFConfig.
4383           Removed Registry support and replaced it with support for the new
4384           MWFConfig class. See MWFConfig comments for more information.
4385
4386 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
4387
4388         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
4389           rectangle. Added some patches from eno from bug #78490 and fixed
4390           the arrow position for small up and down CPDrawScrollButtons.
4391
4392 2006-06-30  Jackson Harper  <jackson@ximian.com>
4393
4394         * InternalWindowManager.cs: Remove some debug code.
4395         * Form.cs: When an MdiParent is set to null, the window is
4396         "detatched" and becomes a normal window.
4397         * MdiClient.cs: Don't bring the new child form to the front until
4398         it is activated (setting it as active does this), this makes the
4399         previously active forms titlebar get redrawn as inactive.
4400
4401 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
4402
4403         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
4404           with later controls
4405
4406 2006-06-29  Mike Kestner  <mkestner@novell.com>
4407
4408         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
4409         arrow in keynav state.  Fixes #78682.
4410
4411 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4412
4413         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
4414           order (fixes #78393)
4415
4416 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
4417
4418         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
4419           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
4420           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
4421           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
4422           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
4423           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
4424           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
4425           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
4426           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
4427           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
4428           enumerations (FlagsAttribute, SerializableAttribute, added/removed
4429           values)
4430
4431 2006-06-28  Mike Kestner  <mkestner@novell.com>
4432
4433         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
4434
4435 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
4436
4437         * PropertyGrid.cs,
4438           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
4439           item lines from other area (It also makes BackColor consistent and
4440           compatible with .NET). Fixed bug #78564.
4441
4442 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
4443
4444         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
4445         Patch from Eno for #78555.
4446
4447 2006-06-27  Chris Toshok  <toshok@ximian.com>
4448
4449         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
4450
4451         * DataGridColumnStyle.cs: same.
4452
4453         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
4454         
4455         * DataGridDrawingLogic.cs: nuke.
4456
4457 2006-06-27  Chris Toshok  <toshok@ximian.com>
4458
4459         * DataGridTableStyle.cs: clean up the constructors, and build the
4460         list of child relations for this table.  I have no idea if this is
4461         where we should be doing it (it probably isn't), but since we're
4462         already iterating over the properties..
4463
4464         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
4465         struct and array for keeping track of row information, similar to
4466         what's shown in a hack on
4467         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
4468
4469         * Theme.cs: be consistent about the naming of DataGrid methods,
4470         prefering ColumnWidths and RowHeights over columnsWidths and
4471         RowsHeights.
4472
4473         * ThemeWin32Classic.cs: same, and also add support for variable
4474         sized rows (and the +/- expansion icons for related rows).
4475
4476 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4477
4478         * TextBoxBase.cs: Applied Eno's patch from #78660
4479
4480 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4481
4482         * Form.cs (ScaleCore): We don't want to scale our form if it's
4483           state is minimized or maximized, but we still need to scale our
4484           child windows. Also, added try/finally block to ensure layout
4485           gets reset (Fixes #78697)
4486
4487 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
4488
4489         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
4490
4491 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
4492
4493         * Form.cs: Fixed c+p error and added check to resize form if minimum
4494           size is bigger than current size (Fixes #78709)
4495
4496 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
4497
4498         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
4499
4500 2006-06-26  Mike Kestner  <mkestner@novell.com>
4501
4502         * ComboBox.cs: only do Keypress handling in the combo when there  
4503         are items in the collection. Fixes #78710.
4504
4505 2006-06-26  Chris Toshok  <toshok@ximian.com>
4506
4507         * Binding.cs: make this work bi-directionally.  also, clear up
4508         other mixups between Push/Pull Data (e.g. we're supposed to pull
4509         data when validating).
4510
4511         * BindingManagerBase.cs: trim some fully qualified collection
4512         types.
4513
4514         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
4515
4516 2006-06-23  Chris Toshok  <toshok@ximian.com>
4517
4518         * PropertyManager.cs: It appears (according to the unit tests)
4519         that PropertyManager doesn't use
4520         PropertyDescriptor.AddValueChanged to track propery value changes
4521         in its datasource, but uses the same scheme as Binding, where it
4522         looks for a <Property>Changed event and binds to it.
4523
4524         Also, according to the docs, IsSuspended always returns false for
4525         a property manager with a non-null datasource.
4526
4527 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
4528
4529         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
4530           need to update the actual DialogResult. (Fixes #78613)
4531
4532 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
4533
4534         * Form.cs (ShowDialog): Release any captures before running the
4535           new message pump (fixes #78680)
4536
4537 2006-06-22  Mike Kestner  <mkestner@novell.com>
4538
4539         * ListView.cs: Layout column widths properly in details mode even 
4540         if HeaderStyle.None is set.  Fixes #78691.
4541
4542 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
4543
4544         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
4545
4546 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
4547
4548         * Control.cs (ContainsFocus): Using new driver method to get focused
4549           window, instead of trying to use internal tracking var, which can
4550           recursion issues (Fixes #78685)
4551         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4552           XplatUIWin32.cs: Added GetFocus method to return focused window
4553
4554 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4555
4556         * ColorDialog.cs: when the mouse button is pressed inside the color
4557         matrix, don't let the cursor move out of it until the button is
4558         released, which is the behavior on windows. Changed 'colours' by
4559         'colors' to use the same word consistently.
4560
4561 2006-06-21  Chris Toshok  <toshok@ximian.com>
4562
4563         * DataGrid.cs: add in some basic navigation stuff (navigating to a
4564         child relation and back, using a stack).  Also, remove
4565         GetDataSource and the code that calls it - it's not needed.  Also,
4566         track CurrencyManager.ListName's removal.
4567
4568 2006-06-21  Chris Toshok  <toshok@ximian.com>
4569
4570         * CurrencyManager.cs: push some of the original type checking from
4571         BindingContext.CreateBindingManager to here, and remove some of
4572         the finalType stuff.  Need more tests to make sure I've got the
4573         ListName part right, and we might need more in SetDataSource.
4574
4575         * PropertyManager.cs: add a ctor that takes just the datasource,
4576         and no property name.  Make SetDataSource work with a null
4577         property_name, and make Current return the data_source if the
4578         property descriptor is null.  this makes 'string foo = "hi";
4579         BindingContext[foo].Current' return "hi" as it should.
4580
4581         * RelatedCurrencyManager.cs: make this code more generic - there's
4582         no reason the parent manager has to be CurrencyManager, and
4583         there's no reason to pass the DataRelation.  It suffices to use a
4584         BindingManagerBase and PropetyDescriptor.
4585
4586         * RelatedPropertyManager.cs: make a similar change here.
4587         
4588         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
4589         flower I knew it could be.
4590
4591 2006-06-20  Chris Toshok  <toshok@ximian.com>
4592
4593         * PropertyManager.cs: the PropertyChangedHandler is invoked when
4594         data in the source has changed and we need to update the control,
4595         so s/PullData/PushData.
4596
4597         * CurrencyManager.cs: Refresh is meant to update the control from
4598         data in the datasource.  So, s/PullData/PushData.
4599
4600         * BindingContext.cs: add more ugliness (we weren't handling the
4601         case where data_source = DataTable and data_member = column_name).
4602
4603         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
4604         from the perspective of the datasource.  PullData pulls from the
4605         control, PushData pushes to the control.
4606
4607 2006-06-20  Chris Toshok  <toshok@ximian.com>
4608
4609         * BindingContext.cs: rewrite the CreateBindingManager code to
4610         handle navigation paths more or less properly.  This could
4611         definitely stand some more work, in particular to push the
4612         recursion up to the toplevel.  But that relies on fixes in other
4613         places (System.Data comes to mind).
4614
4615         Also, move to a flat hashtable (and encode the twolevel nature of
4616         the dictionary into the hash key).  This lets us implement the
4617         IEnumerable.GetEnumerator method.
4618
4619         * RelatedCurrencyManager.cs: new class.  Update our view based on
4620         our relation and our parent CurrencyManager's position.
4621
4622         * CurrencyManager.cs: split out some logic from the ctor into
4623         SetView, so it can be called from the new RelatedCurrencyManager
4624         subclass.
4625
4626         * RelatedPropertyManager.cs: new class.  Update our datasource
4627         based on the position of our parent CurrencyManager.
4628
4629         * PropertyManager.cs: split out some logic from the ctor into
4630         SetDataSource, so it can be called from the new RelatedDataSource
4631         subclass.  Also, make the Current getter return the value
4632         of the PropertyDescriptor, not the data_source.
4633
4634         * Binding.cs: no need to duplicate the string splitting code here.
4635
4636 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4637
4638         * Control.cs:
4639           - set_Enabled: OnEnabledChanged is not called if the inherited state 
4640             of the control is not altered, even though  we might be changing the
4641             internal state of the control (#78458)
4642           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
4643             OnEnabledChanged, to allow easy altering of any child window state
4644           - OnEnabledChanged: Added code to enable/disable driver window state
4645           - OnParentEnabledChanged: Instead of firing the event, call 
4646             OnEnabledChanged, which will fire the event and also a) set driver
4647             window state and pass the enabled state to any grandchildren (#78458)
4648
4649 2006-06-19  Jackson Harper  <jackson@ximian.com>
4650
4651         * InternalWindowManager.cs: We don't set the cursor explicitly
4652         thats done via the response to NCHITTESTs.
4653         - Don't need to adjust for titlebar heights anymore, the
4654         coordinates are coming in the correct coordinates now (see peters
4655         last patch).
4656
4657
4658 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4659
4660         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
4661           being translated relative to whole window, instead of client window.
4662           That caused broken offsets on mouseclick (and caused gas for our
4663           InternalWindowManager)
4664
4665 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4666
4667         * TextControl.cs:
4668           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
4669           - Undo(): Added replay of cursor move on DeleteChars action; added
4670             calling Undo() again if a recorded cursor move is invalid (to
4671             ensure that some action is performed on Undo)
4672         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
4673
4674 2006-06-16  Jackson Harper  <jackson@ximian.com>
4675
4676         * MdiClient.cs: Instead of just sizing maximized windows when
4677         there is a resize we also have to adjust the Y of minimized
4678         windows, so they stay pinned to the bottom of the mdi container.
4679         - Eliminate separate tracking of the active control, we can just
4680         get this from the controls collection.
4681         - Paint the decorations for the newly activated titlebar so we get
4682         a pretty blue bar.
4683         * InternalWindowManager.cs:
4684         * ThemeWin32Classic.cs: Minimized windows get all three buttons
4685         even if they are a tool window.
4686         
4687 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4688
4689         * TextControl.cs (Undo): Handle non-existent cursor locations in the
4690           undo buffer, these can happen when text was deleted and the cursor
4691           was recorded first. Since we will also have a recorded cursor
4692           after the delete this is not an issue. (Fixes #78651)
4693
4694 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
4695
4696         * AccessibleObject.cs: Remove dependence on Control.is_selected;
4697           instead properly track control states internally (allows us to
4698           remove is_selected from Control)
4699
4700 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4701
4702         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
4703         whose width is not a multiple of 8.
4704
4705 2006-06-13  Jackson Harper  <jackson@ximian.com>
4706
4707         * MdiClient.cs:  Only maximize the next child if the current one
4708         is maximized.
4709
4710 2006-06-13  Chris Toshok  <toshok@ximian.com>
4711
4712         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
4713         modified.  Also, guard against grid or grid_drawing being null in
4714         Invalidate.
4715
4716         * DataGrid.cs: Reformat tons of getters/setters.  In the
4717         DataMember setter, just call SetNewDataSource instead of
4718         duplicating some of its functionality.  In SetNewDataSource, don't
4719         check ListManager for null, since the property getter creates the
4720         object if needed.
4721
4722         * DataGridTableStyle.cs: don't set TableStyle or call
4723         SetDataGridInternal on the column here, it's done in
4724         GridColumnStylesCollection.Add.
4725
4726         * GridColumnStylesCollection.cs: fix all the explicit interface
4727         implementations to just call our methods.  Nuke AddInternal() and
4728         move the body of it to Add().  Also, add a call to
4729         column.SetDataGridInternal to Add().
4730
4731         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
4732         base()+duplicate code.  Also, use the Format property instead of
4733         format to generate an Invalidate ala MS.  Lastly, create the
4734         textbox here, unconditionally.
4735         (set_Format): call Invalidate.
4736         (get_TextBox): no need to call EnsureTextBox.
4737         (Commit): remove the message box.
4738         (Edit) remove the call to EnsureTextBox.
4739         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
4740         (EnterNullValue): no need to check textbox for null.
4741         (HideEditBox): no need to check textbox for null.
4742         (SetDataGridInColumn): add the textbox to the grid's controls.
4743         (EnsureTextBox): nuke.
4744         
4745 2006-06-13  Jackson Harper  <jackson@ximian.com>
4746
4747         * MdiWindowManager.cs: Hook up to the maximized menus paint event
4748         and redraw the buttons when needed. Unhook when the window is
4749         unmaximized.
4750         * MainMenu.cs: Add an internal Paint event, the mdi window manager
4751         needs this so that it can redraw its buttons when the menu is
4752         repainted.
4753         * InternalWindowManager.cs:
4754         * Form.cs: The method order has changed for DrawMaximizedButtons,
4755         so that it can be a PaintEventHandler.
4756         
4757 2006-06-13  Jackson Harper  <jackson@ximian.com>
4758
4759         * MdiClient.cs: When we close a maximized mdi window, the next mdi
4760         window is activated and maximized, even if it wasn't before.
4761         - When  a new window is activated repaint the decorations of the
4762         old one, so that it no longer has the Active "look" (the blue
4763         titlebar).
4764         * InternalWindowManager.cs: Open up CreateButtons to base classes
4765         so they can recreate the buttons on state changes.
4766         - If a window is maximized give it all three buttons
4767         * MdiWindowManager.cs: Create the titlebar buttons when the state
4768         is changed, this is needed because a toolwindow will not have all
4769         three buttons until it is maximized.
4770
4771 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
4772
4773         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
4774           Fixed bug #78609.
4775
4776 2006-06-12  Jackson Harper  <jackson@ximian.com>
4777
4778         * KeysConverter.cs: Make sure we handle the Ctrl special case
4779         if its the only key.
4780         
4781 2006-06-12  Jackson Harper  <jackson@ximian.com>
4782
4783         * Theme.cs: Add a method to get the size of a managed window
4784         toolbar button.
4785         * InternalWindowManager.cs: Remove the ButtonSize property, this
4786         should be retrieved from the theme.
4787         * MdiWindowManager.cs: Get the button size from the theme
4788         * ThemeWin32Classic.cs: Make the method to get the managed window
4789         titlebar button size public.
4790         - Handle the different button sizes of maximized toolwindows
4791         (should match any maximized window).
4792         - Get the titlebar height from the theme, not the WM (which gets
4793         it from the theme).
4794
4795 2006-06-12  Jackson Harper  <jackson@ximian.com>
4796
4797         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
4798         event down to the mdi window manager.
4799         - Expose some extra stuff to base classes
4800         - Make sure to end the Capture on an NC Mouse up, so that we can
4801         get double clicks properly, and the sizing doens't stick.
4802         - When doing PointToClient contain it in the workable desktop
4803         area, this prevents windows from changing size when the cursor is
4804         pulled outside of the working area while sizing.
4805         * MdiWindowManager.cs: When we get a double click maximize the
4806         window.
4807         - Reset the cursor after handling mode changes.
4808
4809 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
4810
4811         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
4812           current desktop, instead of just assuming a 0, 0 origin. This
4813           is needed for our internal window manager, to know the top
4814           margin of the desktop
4815
4816 2006-06-12  Chris Toshok  <toshok@ximian.com>
4817
4818         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
4819         we need this to get rid of the selected background in the bool
4820         column.
4821         (CancelEditing): move the ConcedeFocus call to above the Abort
4822         call.  Also, set is_changing to false and invalidate the row
4823         header if we were changing before.
4824         (ProcessKeyPreviewInternal): remove, since noone outside this
4825         class calls it anymore.  Roll the code into ProcessKeyPreview.
4826         (EndEdit): remove the internal version.
4827         (InvalidateCurrentRowHeader): make private.
4828
4829         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
4830         Keys.Escape handling (and with it the last call to
4831         DataGrid.EndEdit from outside the class.)
4832
4833
4834 2006-06-12  Chris Toshok  <toshok@ximian.com>
4835
4836         * DataGridTextBox.cs (.ctor): isedit defaults to false.
4837         (OnKeyPress): set isedit to true.
4838         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
4839         already handled by the grid.
4840
4841         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
4842         right.  ugh.
4843         (set_DataSource): SetDataSource always returns true, so stop
4844         putting it in an if statement.
4845         (EndEdit): get rid of some {}'s
4846         (ProcessGridKey): return true in case Keys.Escape.
4847         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
4848         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
4849         PositionChanged, stopped connecting to CurrentChanged.
4850         (GetDataSource): simplify this a bunch.
4851         (SetDataSource): change return type from bool to void.
4852         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
4853         to this, and make sure we don't set ListManager.Position inside
4854         set_CurrentCell.
4855         (OnListManagerItemChanged): if we're passed an actual index,
4856         redraw that row.
4857
4858         * CurrencyManager.cs (set_Position): don't call PullData here.
4859
4860 2006-06-09  Jackson Harper  <jackson@ximian.com>
4861
4862         * TreeNode.cs:  Recalculate the visible order before doing the
4863         Expand/Collapse Below calls, because those calls generate an
4864         expose.
4865         - Reduce calls to the TreeView property, which is mildly expensive
4866         by using a local var.
4867         * Form.cs: Layout the MDI child windows when creating the parent
4868         form.
4869         - Don't use the internal constructor anymore
4870         * MdiClient.cs: use the parent form width/height (if available)
4871         when laying out the child windows, we do this because the
4872         mdiclient isn't docked yet when the initial layout is done.
4873         - Don't need an internal constructor anymore.
4874
4875 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4876
4877         * FileDialog.cs: handle access errors when trying to create a folder
4878         or changing to a directory. No need to initialize out parameters.
4879
4880 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4881
4882         * FileDialog.cs: Append a number when creating a new folder if the
4883           folder already exists (use parenthesis instead of square brackets)
4884
4885 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4886
4887         * FileDialog.cs:
4888           - Disabled registry support for windows and added better registry
4889             error checking for other systems (need to investigate why it
4890             works perfectly on my system)
4891           - If a folder already exist show an error MessageBox instead of
4892             trying to create an indexed name.
4893           - Fixed a non intentional typo.
4894
4895 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4896
4897         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
4898
4899 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4900
4901         * FileDialog.cs: When creating a new folder don't crash if the
4902           folder already exists.
4903
4904 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4905
4906         * FileDialog.cs: Allmost a complete rewrite.
4907           - added a "virtual" file system that handles the differences
4908             between unix and windows file systems (especially the directory
4909             structure). Moved most of the directory and file handling code
4910             into the vfs.
4911             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
4912             UnixFileSystem and FSEntry.
4913           - Recently used folder/directory, size, location and used file names
4914             (file name ComboBox) are now stored in the registry and get read
4915             before the dialog shows up (fixes part 6 of bug #78446).
4916           - Creation of new folders/directories is now possible (context menu
4917             or ToolBar). Added TextEntryDialog for this that fills in the gap
4918             until ListView.LabelEdit works.
4919           - Fixed cursor handling (bug #78527) and focus handling for
4920             PopupButtonPanel
4921           - Various "Search in" ComboBox enhancements. The content of the
4922             dropdown listbox now almost matches ms.
4923           - Changed the behaviour when the user switches to SpecialFolder
4924             Recent to show the ListView in View.Details.
4925           - Beside using the ToolBar to change the View property of the
4926             file ListView it is now possible to use the context menu too.
4927
4928 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4929
4930         * ComboBox.cs: Don't create a new ObjectCollection when an item
4931           gets inserted. Just insert the item in the existing object_items
4932           ArrayList.
4933
4934 2006-06-08  Jackson Harper  <jackson@ximian.com>
4935
4936         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
4937         that the treeview and root node checks are done also, this fixes a
4938         regression i caused in the unit tests.
4939
4940 2006-06-07  Wade Berrier <wberrier@novell.com> 
4941
4942         * RichTextBox.cs: More ISO8859-1 -> unicode
4943
4944 2006-06-07  Mike Kestner  <mkestner@novell.com>
4945
4946         * ComboBox.cs : use items to hold highlight/selection so that
4947         collection insertions don't require synchronization.
4948
4949 2006-06-07  Jackson Harper  <jackson@ximian.com>
4950
4951         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
4952         routine.  We now always keep the sized edge at the cursor instead
4953         of computing movement and adjusting rects.  There is one buglet
4954         with this method though when the cursor is moved over area that
4955         the window can not expand too (such as the toolbars on the desktop).
4956
4957 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4958
4959         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
4960         here. Fixes crash on startup in AlbumSurfer.
4961
4962 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
4963
4964         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
4965           values
4966
4967 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4968
4969         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
4970         statement to avoid calling XNextEvent which will block if another thread
4971         took the event that we were expecting. Fixes bug #78605.
4972
4973 2006-06-07  Mike Kestner  <mkestner@novell.com>
4974
4975         * ListView.cs : isolated checkbox clicking from the selection logic.
4976         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
4977
4978 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4979
4980         * Form.cs: Check that the value passed to Form.DialogResult
4981         is a valid enum value.
4982
4983 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4984
4985         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
4986         Computer'. Clicking it in the network view goes to 'My Computer'.
4987         Added CIFS filesystem type. Display the mount point of filesystems.
4988         Avoid duplicate mount points (happens for me with CIFS);
4989
4990 2006-06-06  Jackson Harper  <jackson@ximian.com>
4991
4992         * InternalWindowManager.cs: Draw the maximized windows buttons
4993         when resizing.
4994
4995 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4996
4997         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
4998         all other dialogs. Fixes bug #78585.
4999
5000 2006-06-06  Mike Kestner  <mkestner@novell.com>
5001
5002         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
5003         Only invalidate checkbox on checkstate changes to avoid flicker.
5004         * ListBox.cs : avoid unselect/select when clicking selected item.
5005         avoid reselection flicker for already multiselected items.
5006         Fixes #78382.
5007
5008 2006-06-06  Jackson Harper  <jackson@ximian.com>
5009
5010         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
5011         the parent form so that the menu is removed if needed.
5012
5013 2006-06-06  Mike Kestner  <mkestner@novell.com>
5014
5015         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
5016         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
5017
5018 2006-06-06  Mike Kestner  <mkestner@novell.com>
5019
5020         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
5021
5022
5023 2006-06-06  Jackson Harper  <jackson@ximian.com>
5024
5025         * Control.cs: Use the property (instead of the field) to get the
5026         default cursor so it is instantiated correctly.
5027         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
5028         resizes so we need to manually repaint the window decorations here.
5029         - Set the titlebar button locations as soon as they are created,
5030         otherwise they are not set correctly on win32.
5031         
5032 2006-06-06  Chris Toshok  <toshok@ximian.com>
5033
5034         * CurrencyManager.cs (set_Position): call PullData before
5035         OnCurrentChanged.
5036         (AddNew): after calling IBindingList.AddNew, update our
5037         listposition, and call OnCurrentChanged/OnPositionChanged (without
5038         calling PullData).
5039         (OnCurrentChanged): remove the call to PullData from here.
5040         (OnItemChanged): remove the call to PushData from here.
5041         (OnPositionChanged): change the test from == null to != null to
5042         match the other methods.
5043         (ListChangedHandler): the grossest part of the patch.  Implement
5044         this such that it passes the unit tests in CurrencyManagerTest and
5045         the output more or less matches that of MS's implementation.
5046  
5047 2006-06-06  Mike Kestner  <mkestner@novell.com>
5048
5049         * ListView.cs : only update check state on single click.
5050         * ThemeWin32Classic.cs : fix focus drawing for details view without
5051         fullrowselect.  Fixes #78454.
5052         * XplatUIX11.cs : fix for double click emission.
5053
5054 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5055
5056         * PropertyGridView.cs : Applied Atsushi's patch to fix
5057         font dialog bug  (#78197).
5058
5059 2006-06-05  Jackson Harper  <jackson@ximian.com>
5060
5061         * TreeNode.cs: Compute the next node for expanding/collapsing
5062         correctly. We now factor in nodes without a NextNode
5063         correctly. (Fixes somes cases in nunit-gui).
5064         * InternalWindowManager.cs: Set the bounds when updating the
5065         virtual position of a tool window.
5066         
5067 2006-06-05  Chris Toshok  <toshok@ximian.com>
5068
5069         * DataGrid.cs: rename cached_currencymgr to list_manager.
5070         (set_CurrentCell): move SetCurrentCell code here, and clean it up
5071         some.
5072         (CurrentRow, CurrentColumn): single accessors so we can make the
5073         cursor movement code a lot easier to understand.
5074         (CurrentRowIndex): implement this in terms of CurrentRow.
5075         (BeginEdit): clean this up a bit.
5076         (CancelEditing): sort out the is_editing/is_changing/is_adding
5077         stuff a little.
5078         (EndEdit): minor changes.
5079         (OnKeyDown): add a comment about a (most likely) unnecessary
5080         check.
5081         (OnMouseDown): cancel editing when we click on a row header.  And
5082         use the CurrentRow setter, not CurrentCell.
5083         (ProcessDialogKey): directly call ProcessGridKey.
5084         (UpdateSelectionAfterCursorMove): factor out this common block of
5085         code (it's used everywhere that we move the cursor by updating row
5086         or column).
5087         (ProcessGridKey): pretty substantial overhaul.  Use the
5088         CurrentRow/CurrentColumn properties to make the code a lot more
5089         readable.  Only use the CurrentCell property when we have to
5090         modify both row and column at once.  Tab behavior is still broken,
5091         and Delete is untested.
5092         (Select): if we have no selected rows, set selection_start to
5093         @row.
5094         (EditCurrentCell): rename EditCell this.  It was only ever invoked
5095         with CurrentCell as the arg, so drop the arg and rename it.
5096
5097         * DataGridColumnStyle.cs: clean up the constructors a little, and
5098         drop CommonConstructor().
5099
5100         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
5101         actually get notified when the user hits it.
5102         (ProcessKeyMessage): *substantially* simplify this method.
5103         There's no reason (that I can see) for the textbox to be making
5104         calls into the datagrid at all.  Remove all of them but the ones
5105         for Enter handling.  those will take some more work.
5106
5107         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
5108         calling HideEditBox.
5109         (HideEditBox): if we have an active textbox, render it invisible
5110         without causing a re-layout of the datagrid.
5111
5112 2006-06-05  Mike Kestner  <mkestner@novell.com>
5113
5114         * ListView.cs : fix NRE crasher when focuseditem is cleared by
5115         collection changes by resetting it to Items[0].  Fixes #78587.
5116
5117 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5118
5119         * MessageBox.cs: if the height of the text is larger than the icon_size,
5120         use that. Fixes bug #78575.
5121
5122 2006-06-05  Jackson Harper  <jackson@ximian.com>
5123
5124         * TreeView.cs: Fix line drawing when scrolling.  To do this each
5125         node is basically responsible for drawing its entire horizontal
5126         area.  When drawing a node it draws its parent node lines if
5127         needed.
5128         - Adjust the clip area to the viewport rectangle
5129         - Fix Left/Right key handling to match MS. (It expand/collapses
5130         and moves to parents/first child but does not move selection to
5131         sibling nodes).
5132         - Fix SetTop to work with new bound calculation code
5133         - When scrollbars are no longer needed we need to reset scrolling
5134         vars and recalculate the visible order so the redraw is correct
5135         * TreeNode.cs: We can't expand/collapse nodes with no children.
5136
5137 2006-06-03  John Luke  <john.luke@gmail.com> 
5138
5139         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
5140         so the colors work without dev packages
5141         
5142 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
5143
5144         * Control.cs 
5145           - Select: Implemented to just use activate. Seems to match MS 
5146             behaviour closest. Documented to only do actual control walking 
5147             based on it's parameters if in a container control so I moved 
5148             the code there.
5149           - Removed selection check logic from our internal Select() method
5150         * ContainerControl.cs:
5151           - Select: Moved selection logic from Control here, since MS documents
5152             that containers obey the bool arguments. No longer calling base
5153
5154 2006-06-02  Jackson Harper  <jackson@ximian.com>
5155
5156         * TreeView.cs: If the selected node isn't changed when we get
5157         focus update the previously selected node so that we see the
5158         selection box.
5159
5160 2006-06-02  Mike Kestner  <mkestner@novell.com>
5161
5162         * ComboBox.cs: restructure grab and general mouse event handling.
5163         Make the composite control raise mouse events like it was a single
5164         control for leaves/enters/motion/up/down events.  fix dropdown list
5165         coordinate mangling and refactor it into the scrollbar subclass to
5166         reduce code duplication.  Fixes #78282 #78361 and #78457.
5167
5168 2006-06-02  Mike Kestner  <mkestner@novell.com>
5169
5170         * ScrollBar.cs: remove Capture setting/clearing, as it happens
5171         automatically in the Control.WndProc.
5172
5173 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5174
5175         * FileDialog.cs: fix crash when running SharpChess, which sets the
5176         FilterIndex to 2 with only one Filter.
5177
5178 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5179
5180         * ToolBar.cs: add SizeSpecified property.
5181         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
5182         try to figure out our real size, otherwise fallback to what the
5183         container says.
5184
5185 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5186
5187         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
5188         * Control.cs (WndProc): MS always calls the DefWndProc to pass
5189           up the event
5190
5191 2006-06-01  Mike Kestner  <mkestner@novell.com>
5192
5193         * ListView.cs: revamp the focus management in ListView.  It still
5194         causes churn of LostFocus/GotFocus emissions on clicks, but it's
5195         better than not handling focus at all.  Will revisit when pdb feels
5196         the general focus handling is solid.  Fixes #78526.
5197
5198 2006-06-01  Jackson Harper  <jackson@ximian.com>
5199
5200         * TreeView.cs: Set the default border style in the constructor.
5201         - Move painting to use OnPaintInternal instead of capturing
5202         WM_PAINT, this is the correct way of doing things
5203         - UpdateBelow shouldn't invalidate the scrollbar area
5204         - Cap the top on update below in case the node was above the top
5205         of the viewport rectangle.
5206         - ExpandBelow and Collapse below need to obey Begin/End Update.
5207         * TreeNode.cs: Make is_expanded internal so the treenode
5208         collection can change it without firing the whole event chain.
5209         * TreeNodeCollection.cs: When clearing all the child nodes make
5210         sure to recalc the visible order.
5211         - Improve algo for remove the top node
5212
5213 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
5214
5215         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
5216           SendMessage directly calling window procedures, which in turn might
5217           call SetFocus()
5218
5219 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
5220
5221         * Control.cs: Don't handle WM_SETFOCUS if the same window already
5222           has focus (works around X11 sending a FocusIn after our SetFocus)
5223         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
5224
5225 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
5226
5227         * Mime.cs: Fix for the NET_2_0 build.
5228           NameValueCollection needs StringComparer now.
5229
5230 2006-05-31  Chris Toshok  <toshok@ximian.com>
5231
5232         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
5233         return (via an out parameter) the starting X of the column.
5234         (UpdateVisibleColumn): track change to FromPixelToColumn.
5235         (HitTest): add a ColumnResize case here.
5236         (DrawResizeLine): new function, probably poorly named.
5237
5238         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
5239         only need to keep one reference.
5240         (set_ListManager): same.
5241         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
5242         Also, add support for HitTestType.ColumnResize.
5243         (OnMouseMove): add column resize behavior here, and change the
5244         cursor to the correct one as we move around the datagrid.
5245         (OnMouseUp): terminate the column resize if we're resizing.
5246         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
5247         for the current cell.
5248         (ConnectListManagerEvents): use cached_currencymgr.
5249         (DisconnectListManagerEvents): fill this in, using
5250         cached_currencymgr.
5251         (SetCurrentCell): remove cached_currencymgr_events handling.
5252         (SetDataMember): only call DisconnectListManagerEvents if
5253         cached_currencymgr is != null.
5254         (SetDataSource): same.
5255         (OnListManagerCurrentChanged): cached_currencymgr_events ->
5256         cached_currencymgr.
5257
5258 2006-05-31  Jackson Harper  <jackson@ximian.com>
5259
5260         * BindingManagerBase.cs: Remove somedebug code that creeped into
5261         SVN.
5262         * TreeNode.cs: We get the indent level dynamically right now, so
5263         don't track it as a member.
5264         * TreeNodeCollection.cs: Make sure all nodes added to the list
5265         have parents, treeviews/topnodes setup properly.
5266         - Don't attempt to track indent level.
5267
5268 2006-05-30  Jackson Harper  <jackson@ximian.com>
5269
5270         * BindingContext.cs: Create the currency manager tables here.
5271         This allows us to more easily create null tables (when bad data
5272         members are used), and more easily create related currency
5273         managers.
5274         * CurrencyManager.cs: All the table creation stuff is done by the
5275         binding context now.
5276         - Current should throw an exception if listposition is -1.
5277         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
5278         been bound yet.
5279
5280 2006-05-30  Mike Kestner  <mkestner@novell.com>
5281
5282         * ListView.cs: allow reexpansion of zero-width column headers.
5283         Fixes #78528.
5284
5285 2006-05-28  Chris Toshok  <toshok@ximian.com>
5286
5287         * CurrencyManager.cs (get_Current): after the late binding
5288         listposition = -1 fix, we need to guard against it here and return
5289         null, otherwise we raise an exception (which is swallowed
5290         elsewhere, and breaks datagrid databinding.)
5291
5292 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5293
5294         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
5295           than WM_SYSKEY, don't throw if get something unexpected (#78507)
5296
5297 2006-05-26  Jackson Harper  <jackson@ximian.com>
5298
5299         * ControlPaint.cs:
5300         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
5301         values, it's faster and it's all we care about (we don't care if
5302         the names aren't equal).
5303         * KeyboardLayouts.cs: Eliminate some dead code.
5304         - Lazy init things
5305         * X11Keyboard.cs: Lazy init keyboard detection.
5306         - Cleanup access modifiers a little.
5307
5308 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
5309
5310         * XplatUIX11.cs: Once again, attempting to get layout just right.
5311
5312 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
5313
5314         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
5315           the sizes of each link section, that will result in sizes that
5316           match DrawString's layout (Fixes #78391)
5317
5318 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
5319
5320         * FileDialog.cs: If AddExtension property is true autocomplete the
5321           extensions in SaveFileDialog correctly. Fixes bug #78453.
5322           Set MyNetwork and MyComputer to "C:\" for windows. This should
5323           fix part 8 of bug #78446 for now.
5324
5325 2006-05-26  Chris Toshok  <toshok@ximian.com>
5326
5327         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
5328         invalidate the current row header if we need to, but presumably
5329         we'll invalidate the row corrsponding to the bounds or
5330         editingControl.
5331         (GridHScrolled): switch back to this method, as it's part of the
5332         public api.  *sigh*.
5333         (GridVScrolled): same.
5334         (OnMouseWheel): hack up something that more or less works.  Call
5335         GridHScrolled/GridVScrolled directly, instead of duplicating much
5336         of their code here.
5337         (EnsureCellVisibility): reinstate a bunch of this code, since we
5338         can't just set the scrollbar Value and expect to do all the work
5339         in the ValueChanged handler.  Also, Call Update() after scrolling
5340         in one direction so the other XplatX11.ScrollWindow call has the
5341         proper stuff in the proper places.
5342         (EditCell): set is_editing to true before calling .Edit.
5343
5344         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
5345         don't bother comparing first.
5346         (OnKeyPress): call grid.ColumnStartedEditing before calling
5347         base.OnKeyPress.  this will set is_changing and invalidate the row
5348         header if necessary.
5349         (ProcessKeyMessage): for WM_CHAR messages, call
5350         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
5351         and WM_KEYDOWN.
5352         
5353         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
5354         it's done in the DataGrid.
5355         (NextState): call grid.ColumnStartedEditing, which takes care of
5356         invalidating the row header (and setting is_changing).
5357
5358         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
5359         here.  it's done in the DataGrid.
5360
5361 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5362
5363         * Control.cs: allow changing the cursor when the mouse position is
5364         out of bounds but Capture is set.
5365         * LinkLabel.cs: handle the case when the mouse button is pressed on the
5366         linklabel but released somewhere else.
5367
5368 2006-05-25  Jackson Harper  <jackson@ximian.com>
5369
5370         * TreeView.cs: When we get focus if there is no selected node make
5371         it the top node
5372         - Remove some uneeded setup code from Draw.
5373         * TreeNodeCollection.cs: If the tree doesn't have a top node when
5374         a new node is inserted make the new node the top.
5375         * XplatUIX11.cs:
5376         * Timer.cs: Use Utc time so that no local time zone stuff needs to
5377         be used (should be faster).
5378         
5379 2006-05-25  Chris Toshok  <toshok@ximian.com>
5380
5381         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
5382         problem with the last commit.
5383
5384 2006-05-25  Chris Toshok  <toshok@ximian.com>
5385
5386         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
5387         need the invalidate call here, while scrolling right-to-left via
5388         the left arrow key (i.e. moving the editing cell while scrolling).
5389
5390         * DataGrid.cs (.ctor): remove the initialization of
5391         ctrl_pressed/shift_pressed.  We no longer track them using key
5392         up/down handlers, but by using Control.ModifierKeys.  Also, switch
5393         to using ValueChanged handlers on the scrollbars instead of
5394         Scrolled event handlers.  This simplifies a bunch of the scrolling
5395         code.
5396         (GridHValueChanged): rename from GridHScrolled, and change it to
5397         work with the new event args.
5398         (GridVValueChanged): same.
5399         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
5400         (OnMouseWheel): actually scroll the datagrid.  Don't change the
5401         selected cell.
5402         (ProcessGridKey): correct all the keyboard navigation stuff I
5403         could find.  Ctrl up/down/left/right/home/end work now.
5404         (EnsureCellVisibility): correct method name spelling.  Also,
5405         simplify this a touch by not explicitly calling the
5406         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
5407         scrollbar value.
5408         (OnKeyUpDG): no need for this method now.
5409         
5410 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5411
5412         * LinkLabel.cs: display the OverrideCursor when hovering the label.
5413         Fixes bug #78392.
5414
5415 2006-05-25  Chris Toshok  <toshok@ximian.com>
5416
5417         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
5418         r61019.
5419
5420 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5421
5422         * Application.cs: Moved setting of is_modal and closing to before
5423           we create the control, to allow the event handlers called as a
5424           result of creation affect closing. Also removed Gonzalo's previous
5425           change to setting DialogResult, the behaviour has been moved to 
5426           Form.ShowDialog()
5427         * Form.cs: 
5428           - ShowDialog(): Removed explicit creation of the form, let RunLoop
5429             handle it instead
5430           - ShowDialog(): If no dialog result is set, we need to return Cancel
5431           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
5432             the close is cancelled
5433
5434 2006-05-25  Jackson Harper  <jackson@ximian.com>
5435
5436         * StatusBar.cs: We only need to update the sizes of the other
5437         panels when we have auto size contents.  Also we are only updating
5438         the contents of the panel, not the borders, so compensate for the
5439         border width (TODO: get this width from the theme somehow).
5440         * TreeView.cs: Scrollable is true by default
5441         - Use invalidate instead of refresh where needed
5442         - Factor the scrollable value into scrollbar updating
5443         - Update the scrollbars if the Scrollable property is altered
5444         - Update the selected node if its ImageIndex is changed
5445         - Handle null nodes in UpdateNode (mainly so we don't have to
5446         check if selected is null when updating it
5447         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
5448         are factored into the visible count
5449         - Use VisibleCount for clarity in the code
5450         - When the font is changed we need to recurse through all the
5451         nodes and invalidate their sizes
5452         
5453 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5454
5455         * Application.cs: set the DialogResult to fixed when the main form is
5456         hidden or destroyed while being modal.
5457
5458 2006-05-25  Miguel de Icaza  <miguel@novell.com>
5459
5460         * Theme.cs: Use Tangoified messagebox icons. 
5461
5462         (GetSizedResourceImage): Also cope with width = 0 and do not
5463         trigger a warning in that case (0 means "give me your icon from
5464         the resouce, no special size needed).
5465
5466 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
5467
5468         * Application.cs: Leave runloop if the the main modal form is 
5469           hidden (fixes #78484)
5470
5471 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5472
5473         * BindingContext.cs : reject null datasource in Contains() and
5474           Item[].
5475         * CurrencyManager.cs : check data_member validity when data_source
5476           is dataset. When it is late binding, the initial position is -1.
5477
5478 2006-05-24  Jackson Harper  <jackson@ximian.com>
5479
5480         * TreeNodeCollection.cs: Dont't recalculate the visible order on
5481         inserted nodes that aren't visible.  This changes the
5482         max_visible_order which confuses scrollbar settings.
5483         - Use the enumerator to get the prev node instead of duplicating
5484         code.
5485         * TreeView.cs: Use new method for setting scrollbar values
5486         - Don't set the bounds every time the scrollbar is updated
5487         - When updating below the root node use an invalidate instead of a
5488         refresh to prevent the child controls (scrollbars) from being
5489         refreshed. (UpdateBelow still needs to be reworked anyways).
5490         - Reenable SetBottom now that visible orders are set correctly,
5491         added some debug code incase we ever get bad values there again.
5492         - Set the scrollbar max to 2 less then the max value, this
5493         compensates for the max value being one above the node count, and
5494         for scrollbars adding one extra "notch".
5495         - When drawing image nodes if there is an imagelist we draw the
5496         first image in the list if the supplied image index is out of the
5497         image list's bounds.
5498         
5499 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5500
5501         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
5502           we receive a size change from the WM (Fixes #78503)
5503
5504 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
5505
5506         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
5507           rectangle (Fixes #78501)
5508
5509 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5510
5511         * ButtonBase.cs: 
5512           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
5513             as a bitfield.
5514           - Fixed MouseMove to no longer switch pressed state unless the left
5515             mouse button is pressed. Atsushi provided the original patch (#78485)
5516           
5517 2006-05-24  Jackson Harper  <jackson@ximian.com>
5518
5519         * ScrollBar.cs: New internal methods that allow us to change a
5520         couple values on the scrollbar (the most common case is maximum
5521         and large change) without getting multiple invalidates.
5522
5523 2006-05-24  Chris Toshok  <toshok@ximian.com>
5524
5525         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
5526         (Edit): save off the original state in oldState, and set
5527         grid.is_editing to true.
5528         (OnKeyDown): abort editing if escape is pressed.  also, call
5529         NextState if space is pressed.
5530         (OnMouseDown): call NextState.
5531         (NextState): factor out shared code from OnKeyDown and OnMouseDown
5532         here.  Also, only invalidate the row header once (on the initial
5533         is_changing switch) to save on redraws.
5534
5535 2006-05-24  Chris Toshok  <toshok@ximian.com>
5536
5537         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
5538         if the value in the cell is different than it was before.  This
5539         keeps us from triggering a layout when we move around a datarid
5540         with a highlighted cell.
5541         (Edit): suspend layout when creating/positining the text box, and
5542         resume passing false so we don't ever actually re-layout.
5543         (ReleaseHostedControl): same.
5544         (EnsureTextBox): reformat slightly, and set WordWrap to false.
5545
5546         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
5547         control-key sequences should go to the datagrid - remove that
5548         lock.  Also, modify the conditions under which we move between
5549         cells when moving the cursor within a cell, and remove the "this"
5550         and "base" from field accesses.  We weren't even consistent, given
5551         they all were in the base class.
5552
5553 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
5554
5555         * Binding.cs : (.ctor)
5556           An obvious NRE fix for BindingTest.CtorNullTest().
5557
5558 2006-05-23  Chris Toshok  <toshok@ximian.com>
5559
5560         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
5561         them between lines.  This fixes some quirks editing cells in the
5562         datagrid.
5563
5564 2006-05-23  Jackson Harper  <jackson@ximian.com>
5565
5566         * TreeView.cs: Use begin/end update when doing expand/collapse all
5567         so that we don't get flicker on the scrollbar.
5568
5569 2006-05-23  Jackson Harper  <jackson@ximian.com>
5570
5571         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
5572         treenode calculations to be independant of the painting code. To
5573         do this nodes track a visible order which is calculated by the
5574         treeview.
5575         - Call new methods for expanding/collapsing nodes.  These methods
5576         use scrollwindow so we don't have to update everything below the
5577         node.
5578         * TreeView.cs: Refactored drawing and scrolling code.  We don't
5579         need to update nodes when drawing anymore or calculate scrollbar
5580         stuff.
5581         - Added new methods for expanding/collapsing nodes. These methods
5582         use ScrollWindow so as to not have to redraw all the nodes below.
5583         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
5584         we add/remove nodes or sort.
5585         - Handle removing the selected and the top node properly.
5586
5587 2006-05-23  Chris Toshok  <toshok@ximian.com>
5588
5589         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
5590         maybe this should actually happen in the datagrid code?
5591         (EndEdit): no need to invalidate anything, given that
5592         ReleaseHostedControl causes the datagrid to relayout, which
5593         invalidates everything anyway.
5594
5595         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
5596         in SetCurrentCell).
5597         (set_SelectionBackColor): call InvalidateSelection instead of
5598         Refresh.
5599         (set_SelectionForeColor): same.
5600         (BeginEdit): Flesh this out a bit.
5601         (CancelEditing): only do any of this if we're editing/adding.
5602         (EndEdit): same.
5603         (OnMouseDown): there's no need to cancel editing here, it's done
5604         in SetCurrentCell.
5605         (SetCurrentCell): only invalidate the current row header if it's a
5606         different row than the new one.
5607         (ShiftSelection): fix this to work like MS does.
5608         (ResetSelection): factor out the invalidation of selected_rows to
5609         InvalidateSelection.
5610         (SetDataSource): cancel any editing that's going on.
5611
5612         * DataGridColumnStyle.cs
5613         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
5614         call the non-interface version.
5615
5616         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
5617         header rectangle with the clip rectangle so we don't redraw the
5618         entire header for just a small area.  Gets rid of the last flicker
5619         when horizontally scrolling.
5620         (DataGridPaintRow): same.
5621
5622 2006-05-23  Mike Kestner  <mkestner@novell.com>
5623
5624         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
5625         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
5626         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
5627         Critical bug report.
5628
5629 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5630
5631         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
5632           and this fixes #78493
5633
5634 2006-05-23  Miguel de Icaza  <miguel@novell.com>
5635
5636         * Theme.cs (GetSizedResourceImage): Scale images if the proper
5637         size is not found.  
5638         
5639         * FileDialog.cs: Do not change the background for the side bar as
5640         it wont work nicely with the theme, and also reduces the artifacts
5641         in rendering the icons (which I want to fix too).
5642
5643         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
5644         resources, not resgen resources. 
5645
5646         (PlatformDefaultHandler): Pull images using the new API.
5647
5648 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5649
5650         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
5651           a reference to the hwnd and will not remove it unless there are
5652           no pending exposures (fixes #78341)
5653         * XplatUI.cs: Improved debug
5654
5655 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
5656
5657         * MenuAPI.cs : don't handle OnClick event when it was not the left
5658           button. Fixed bug #78487.
5659
5660 2006-05-23  Mike Kestner  <mkestner@novell.com>
5661
5662         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
5663         prefer submenus to the top menu for item lookup, to avoid popping down
5664         top-row items.
5665
5666 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
5667
5668         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
5669           Graphics.FillRectangle as the visual results are really bad (even
5670           on win). We now draw perfect arrows (and perfect shadows when the
5671           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
5672           Pen.DashPattern to draw the dots of each line.
5673
5674 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
5675
5676         * FileDialog.cs: Update the filename combobox when navigating through
5677           the ListView with the cursor keys. Fixes part 7 of bug #78446.
5678
5679 2006-05-22  Mike Kestner  <mkestner@novell.com>
5680
5681         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
5682         Fixes #78463.
5683
5684 2006-05-22  Mike Kestner  <mkestner@novell.com>
5685
5686         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
5687         requests. Fix a misspelled parameter and a copy paste exception error
5688         in Select.
5689
5690 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
5691
5692         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
5693           to get the same width/height (5/13) on X11 as the default font has on
5694           win32. This means that our DefaultFont emSize is smaller than the 
5695           the MS SWF equivalent (even thought the width/height stays the same)
5696
5697 2006-05-20  Jackson Harper  <jackson@ximian.com>
5698
5699         * MdiClient.cs:
5700         * MdiWindowManager.cs:
5701         * InternalWindowManager.cs: Make sure to use the border width from
5702         the theme.
5703
5704 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
5705
5706         * PrintDialog.cs: Implements printer details
5707
5708 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
5709
5710         * FileDialog.cs: Added focus handling for PopupButtonPanel.
5711           Fixes part 1 and 2 of bug #78446
5712
5713 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
5714
5715         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
5716           instead of sticking to the first ever calculated value
5717
5718 2006-05-19  Mike Kestner  <mkestner@novell.com>
5719
5720         * ComboBox.cs: fix mouse motion selection to use MousePosition and
5721         PointToClient, since Capture is set. Fixes #78344.
5722
5723 2006-05-19  Mike Kestner  <mkestner@novell.com>
5724
5725         * ListView.cs: match MS behavior in Details view where items are not
5726         drawn if Columns.Count == 0. 
5727         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
5728         Use a separate pen to draw the check, since changing the width affects
5729         the box as well.  Fixes #78454.
5730
5731 2006-05-18  Miguel de Icaza  <miguel@novell.com>
5732
5733         * ListView.cs: ArgumentOutOfRangeException, single versions of the
5734         exception should throw the name of the invalid argument.
5735
5736         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
5737         there are no files listed. 
5738
5739 2006-05-18  Jackson Harper  <jackson@ximian.com>
5740
5741         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
5742         up.
5743
5744 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5745
5746         * Control.cs: Brought back our old UpdateZOrder method as a private
5747           function and switched our calls from UpdateZOrder to the new one.
5748           This fixes the Paint.Net canvas disappearing bug.
5749
5750 2006-05-18  Jackson Harper  <jackson@ximian.com>
5751
5752         * Theme.cs:
5753         * ThemeWin32Classic.cs:
5754         * InternalWindowManager.cs: Move the drawing into the theme,
5755         expose everything the theme should need from the window manager.
5756
5757 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5758
5759         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
5760           from the call to NativeWindow to avoid walking up the parent chain
5761           further than needed (speeds up setting cursors and avoids setting
5762           the wrong cursor if a parent has another cursor defined)
5763         * Cursor.cs: When loading an icon as cursor, MS uses the center of
5764           the icon as hotspot, not what's contained as hotspot in the icon
5765           file. This fixes the perceived drawing offset seen with Paint.Net
5766         
5767 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5768
5769         * XplatUIX11.cs: 
5770           - Store the calculated rectangle in Hwnd object and use it when 
5771             setting the client size
5772           - Force Toolwindows to always be type Dock, to ensure they're on top
5773
5774 2006-05-18  Mike Kestner  <mkestner@novell.com>
5775
5776         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
5777         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
5778         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
5779         Substantial refactoring to remove confusing nested classes. Coding
5780         standard and Get+Set->property refactorings.  Shift to index based
5781         highlighting in ComboListBox instead of constantly using IndexOf and
5782         Items[]. Add invalidations on resize for DropDownList to fix ugliness
5783         in FileDialog growth.  Draw borders manually since Simple mode needs
5784         to look like two independent controls.  Make listbox border
5785         conditional to DropDownStyle.  Improved OwnerDraw support.
5786
5787 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
5788
5789         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
5790         Don't set the disposed graphics to null, so we can throw the "right"
5791         exception if the graphics is reused later (added a flag to avoid 
5792         double disposing). Some behaviours are different under 2.0 and are
5793         filled under bug #78448.
5794
5795 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5796
5797         * Control.cs: When double-buffering is enabled, we need to reset
5798           our graphics context between paint calls. Otherwise, any 
5799           transformations and other alterations on the context will 
5800           become cumulative (#77734)
5801
5802 2006-05-18  Mike Kestner  <mkestner@novell.com>
5803
5804         * ListView.cs: do focused item selection like MS on clicks. 
5805         Rework focus handling for ItemControl so LostFocus invalidates as
5806         well.
5807         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
5808         the ListView ItemControl has focus.
5809
5810 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
5811
5812         * XplatUIX11.cs: If client_window ends up being width or height zero
5813           due to border settings, move it off window inside whole_window (#78433)
5814
5815 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5816
5817         * Mime.cs: Shrink the mime file cache correctly.
5818
5819 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5820
5821         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
5822
5823 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5824
5825         * XplatUIX11.cs (AddExpose): More sanity checks
5826
5827 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5828
5829         * XplatUIX11.cs:
5830           - AddExpose: Don't add expose ranges outside the size of our
5831             window
5832           - Cast opacity values to Int32 to avoid crashes with certain
5833             values
5834           - Added disabled code paths that protect against illegal cross-
5835             thread painting (Developers.exe)
5836
5837 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5838
5839         * ProgressBar.cs: Invalidate the control when it's resized
5840           since block size is based on control size. (#78388)
5841
5842 2006-05-16  Miguel de Icaza  <miguel@novell.com>
5843
5844         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
5845         of setting the incoming argument to the "reset" value, we set the
5846         this.datamember to string.empty (before we were invalidating the
5847         incoming data).   
5848
5849         Fixes 78420
5850
5851 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5852
5853         * Form.cs: Only apply transparency settings after the form
5854           is created. (Fixes #77800)
5855
5856 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5857
5858         * ApplicationContext.cs: Grab the HandleDestroyed event so
5859           we know when to fire OnMainFormClosed 
5860
5861 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5862
5863         * Application.cs: Introduced sub-class to allow tracking of
5864           threads and centralized triggering of the event mess for
5865           ThreadExit, AppExit, etc..  (#76156)
5866
5867 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
5868
5869         * MimeIcon.cs:
5870           - Do not return a null icon index value for a mime subclass.
5871             Instead try the main mime type class too.
5872           - Seems that some newer distributions don't have a link to some
5873             gnome default icons anymore. So check the default gnome dir too.
5874           
5875
5876 2006-05-16  Jackson Harper  <jackson@ximian.com>
5877
5878         * MdiClient.cs: Don't paint the parent background image if we have
5879         our own background image.
5880
5881 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5882
5883         * Control.cs:
5884           - PerformLayout: Do not shrink space filled by DockStyle.Fill
5885             controls, all filled controls are supposed to overlap (#78080)
5886           - UpdateZOrder is supposed to update the control's z-order in the
5887             parent's z-order chain. Fixed to behave like that
5888           - BringToFront: Removed obsolete code
5889           - SendToBack: Simplyfied
5890           - SetChildIndex: Trigger layout calculations when Z-order changes
5891             since layout is done by z-order
5892
5893 2006-05-16  Chris Toshok  <toshok@ximian.com>
5894
5895         [ fixes bug #78410 ]
5896         * DataGrid.cs (set_AlternatingBackColor): use
5897         grid_drawing.InvalidateCells instead of Refresh().
5898         (set_BackColor): call grid_drawing.InvalidateCells.
5899         (set_BackgroundColor): use Invalidate instead of Refresh.
5900
5901         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
5902         invalidate the cell area.
5903
5904 2006-05-15  Chris Toshok  <toshok@ximian.com>
5905
5906         [ fixes bug #78011 ]
5907         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
5908         on to DataGridPaintRow.
5909         (DataGridPaintRow): take a clip argument, and only draw the cells
5910         which intersect it.  same with the not_usedarea.
5911
5912         * Theme.cs (DataGridPaintRow) add @clip parameter.
5913
5914         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
5915         XplatUI.ScrollWindow.
5916         (ScrollToRow): same.
5917
5918         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
5919         with last column which was causing a gray swath to appear with the
5920         XplatUI.ScrollWindow code.
5921
5922 2006-05-15  Chris Toshok  <toshok@ximian.com>
5923
5924         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
5925         use XplatUI.ScrollWindow.
5926         (VerticalScrollEvent): use XplatUI.ScrollWindow.
5927
5928 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
5929
5930         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
5931
5932 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5933
5934         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
5935           file since there are no equivalent X11 cursors
5936
5937 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5938
5939         * MonthCalendar.cs : DateTimePicker should reflect selected date
5940           on mouse*up*, not mouse*down*. Fixed originally reported part of
5941           bug #76474.
5942
5943 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5944
5945         * TabControl.cs : When argument index is equal or more than tab
5946           count, just ignore. Fixed bug #78395.
5947
5948 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5949
5950         * Control.cs: Dispose all child controls when control is diposed (#78394)
5951
5952 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5953
5954         * ColorDialog.cs: Finally it is possible to select the color with
5955           the text boxes
5956
5957 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5958
5959         * PrintDialog.cs: Fix typo
5960
5961 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5962
5963         * PrintDialog.cs: PrintDialog is not resizable
5964         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
5965           color. Made some ToolBar drawing methods protected virtual.
5966
5967 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
5968
5969         * PrintDialog.cs: Implementation of the PrintDialog
5970
5971 2006-05-12  Chris Toshok  <toshok@ximian.com>
5972
5973         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
5974         thumb, instead use MoveThumb.  This has the side effect of making
5975         most of the other thumb moving machinery use MoveThumb as well.
5976         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
5977         need to actually invalidate the rectangle where the new thumb will
5978         go.
5979         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
5980         We force an Update() after, so it's not as fast as it could be,
5981         but at least there's zero flicker and no droppings.
5982         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
5983         (UpdateThumbPos): add another argument (dirty), which says whether
5984         or not to calculate/add dirty regions which we later invalidate.
5985         For cases where we know we're going to use MoveThumb, we pass
5986         false for this.  Otherwise, pass true.
5987
5988 2006-05-12  Jackson Harper  <jackson@ximian.com>
5989
5990         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
5991         the status bar.
5992         
5993 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
5994
5995         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
5996           and GetClipRegion methods and UserClipWontExposeParent property.
5997         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
5998           overriding UserClipWontExposeParent property, setting to false, since
5999           Win32 handles the required expose messages to draw our clipped parent
6000           areas internally
6001         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
6002           PaintEventStart to set the user clip region if set.
6003         * Control.cs: 
6004           - Now internally tracking the Region for the control since we need to
6005             store it if the handle is not yet created and only set it when it
6006             becomes created. Before setting the region forced handle creation
6007           - Added code to draw the parents underneath a user-clipped region
6008         * Hwnd.cs: Added UserClip property
6009
6010 2006-05-12  Chris Toshok  <toshok@ximian.com>
6011
6012         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
6013         (set_Maximum): same.
6014         (set_Minimum): same.
6015         (set_SmallChange): same.
6016         (OnMouseUpSB): remove the call to refresh when releasing the
6017         thumb.  We shouldn't need it.
6018         
6019 2006-05-12  Miguel de Icaza  <miguel@novell.com>
6020
6021         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
6022         AutoSize set to None, we do not need to relayout everything, we
6023         just need to invalidate the current region.
6024
6025         (Draw): Do not draw the entire ClientArea, just redraw the
6026         clip area being passed.
6027
6028         * MdiClient.cs: Make MdiClient constructor with the Form argument
6029         internal. 
6030
6031 2006-05-12  Jackson Harper  <jackson@ximian.com>
6032
6033         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
6034         parents background image,  but strangely not their own.
6035         - (DrawStatusBarPanel): Take into account horizontal alignment
6036         when drawing the strings and icons.
6037
6038 2006-05-12  Mike Kestner  <mkestner@novell.com>
6039
6040         * ListBox.cs: avoid invalidations for focus when the collection is
6041         empty. 
6042
6043 2006-05-12  Chris Toshok  <toshok@ximian.com>
6044
6045         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
6046         invalidate the entire thumb area.  Call InvalidateDirty which
6047         limits the redraw to the thumb itself and surrounding pixels.
6048
6049         * XplatUIX11.cs (ScrollWindow): optimize copying.
6050         
6051 2006-05-12  Chris Toshok  <toshok@ximian.com>
6052
6053         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
6054         Figure out the positioning/layout in a single pass instead of
6055         multiple recursive invocations.  Speeds up the initial display of
6056         the data grid.  Also, make many things private that were
6057         originally public but unused outside this class.
6058
6059 2006-05-11  Jackson Harper  <jackson@ximian.com>
6060
6061         * MdiClient.cs: Improved layout code.
6062
6063 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
6064
6065         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
6066           not SelectedObject.
6067
6068 2006-05-11  Chris Toshok  <toshok@ximian.com>
6069
6070         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
6071         union of that will always be {0,0,width,height}.
6072
6073 2006-05-11  Jackson Harper  <jackson@ximian.com>
6074
6075         * Form.cs: Match MS's DefaultSize for forms (they must have
6076         changed the size in sp2).
6077
6078 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6079
6080         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
6081
6082 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
6083
6084         * TextControl.cs : Fixed bug #78109. This incorrect position
6085           comparison caused crash on automatic line split.
6086         * TextBoxBase.cs : reduce duplicate code.
6087
6088 2006-05-10  Jackson Harper  <jackson@ximian.com>
6089
6090         * MdiClient.cs: Active form is only sent to the back when using
6091         the Next form functionality, when a form is clicked the current
6092         active shouldn't be sent to the back.
6093         - Layout the mdi windows when the container is first made visible.
6094         * Form.cs: Give the MdiClient a ref to the containing form when we
6095         create it.
6096         
6097 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6098
6099         * LinkLabel.cs : link_font could be uninitialized, so populate one
6100           before actual use. Fixed bug #78340.
6101
6102 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
6103
6104         * XplatUIX11.cs : clipboard format native value is IntPtr.
6105           Fixed bug #78283.
6106
6107 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6108
6109         * Control.cs: 
6110           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
6111             which is passed up the parent chain by DefWndProc
6112           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
6113             to DefWndProc (#77956)
6114         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
6115
6116 2006-05-10  Jackson Harper  <jackson@ximian.com>
6117
6118         * MdiClient.cs: We need to remove the controls from the mdi
6119         collection, when we close the window.
6120         * MdiWindowManager.cs: Special handling of closing mdi windows.
6121         * InternalWindowManager.cs: Make the close method virtual so the
6122         mdi window manager can handle it specially.
6123
6124 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
6125
6126         * DataGrid.cs:
6127           - Recalculate grid when the data source has changed
6128           - Matches styles provided by user from all data sources types
6129         * DataGridTableStyle.cs: For columns that provided by the user set the
6130         with the preferred value is there was unassigned.
6131         * CurrencyManager.cs: throw OnItemChanged event
6132
6133 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
6134
6135         * PictureBox.cs: Don't animate until handle is created. Start animation
6136           when handle is created.
6137
6138 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6139
6140         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
6141           current codebase.
6142         * XEventQueue.cs: We don't need to provide the extra info
6143
6144 2006-05-10  Jackson Harper  <jackson@ximian.com>
6145
6146         * MdiClient.cs: If the mdi clients parent form has a background
6147         image set, we draw that background image for the mdi area's
6148         background.
6149
6150 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
6151
6152         * TextBoxBase.cs: Set IBeam cursor (#78347)
6153
6154 2006-05-10  Mike Kestner  <mkestner@novell.com>
6155
6156         * ToolBar.cs: fix some text padding issues with ButtonSize
6157         calculation. Update the default size to match MS documentation.
6158         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
6159         button size. Fixes #78296.
6160
6161 2006-05-10  Mike Kestner  <mkestner@novell.com>
6162
6163         * ListBox.cs: use is_visible for scrollbar positioning in case the
6164         control isn't on screen yet.  Fix off by one with Right vs Width
6165         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
6166         
6167 2006-05-10  Jackson Harper  <jackson@ximian.com>
6168
6169         * X11Dnd.cs: Drop to a control with another control on top of it.
6170         * ToolBar.cs: Work on a copy of the buttons list, so that it can
6171         be modified in click handlers. TODO: Look for similar problems in
6172         other controls.
6173
6174 2006-05-09  Jackson Harper  <jackson@ximian.com>
6175
6176         * Form.cs: Window managers need the old window state when setting
6177         window state now.
6178         * InternalWindowManager.cs: Allow the base mdi window manager to
6179         handle more of the MDI only stuff (like maximize buttons).
6180         * MdiWindowManager.cs: Fix some snafus in changing the window
6181         state.  Add all the menu functionality, for both popup and
6182         maximized menus.
6183         * MdiClient.cs: When a new form is selected the currently
6184         activated form is sent to the back, this matches MS.
6185         - Implement a new method to activate the next mdi child window.
6186
6187 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
6188
6189         * Control.cs: 
6190           - Added new InternalCapture method to allow controls to prevent
6191             the capture behaviour on the click handlers
6192           - Switched to use InternalCapture
6193         * ComboBox.cs:
6194           - Using InternalCapture to prevent mouse captures from being released
6195             on mouse button release (Fixes #78100)
6196         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
6197           returns Form borders if a caption is present. (Fixes #78310)
6198
6199 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
6200
6201         * TreeNode.cs: Changed serialization .ctor to not require every field
6202           to be present. (#78265)
6203         * OwnerDrawPropertyBag.cs: Added serialization .ctor
6204
6205 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
6206
6207         * MimeIcon.cs: for is faster than foreach for strings.
6208
6209 2006-05-05  Mike Kestner  <mkestner@novell.com>
6210
6211         * CheckedListBox.cs: update check handling code to not use selected.
6212         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
6213         behavior for visual feedback, motion response, shift/ctrl handling,
6214         and properly deal with all 4 selection modes. Updates to bounds
6215         handling logic.  Add scroll wheel support. [Fixes #77842]
6216
6217 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6218
6219         * ListView.cs:
6220           - Moved adding of Implicit controls into .ctor. That way, subsequent
6221             creation of the controls will not cause them to think they are 
6222             toplevel windows (fixes #78200 header problem)
6223           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
6224           - Switched visibility setting of header control to use internal field
6225             to avoid triggering handle creation
6226           - Now checking if handle is created before causing a refresh when items
6227             are added (This makes us now match handle creation time with MS)
6228         * Splitter.cs: Removed loading of private splitter cursor, switched to
6229           Cursors version now that that is loading the right ones
6230         * Cursors.cs: Load proper splitter cursors from resources
6231         * Cursor.cs: Added second method of loading resource cursors for the 
6232           VS.Net users amongst us
6233
6234 2006-05-05  Mike Kestner  <mkestner@novell.com>
6235
6236         * ListView.cs: give header_control a minimum size based on the
6237         ListView size.
6238
6239 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
6240
6241         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
6242           window seems to do that with metacity, so set that type. (#78120)
6243
6244 2006-05-05  Mike Kestner  <mkestner@novell.com>
6245
6246         * ListViewItem.cs: fix Details mode checkbox layout bug.
6247         * ThemeWin32Classic.cs: draw a ListView column header for unused space
6248         at the end of the header, if it exists. [Fixes for #78200]
6249
6250 2006-05-04  Jackson Harper  <jackson@ximian.com>
6251
6252         * MdiClient.cs: Add a helper property to get the container form.
6253         * MdiWindowManager.cs: We have to make sure to use the menu origin
6254         when drawing the icons and buttons, this fixes maximized window
6255         icons/buttons on win32.
6256         * InternalWindowManager.cs: Reset the restore captions when a
6257         window goes from Maximized to Minimized and vice versa. Move the
6258         DrawMaximizedButtons into the MdiWindowManager source, tool
6259         windows can't be maximized. NOTE: This could use a little
6260         refactoring if time ever permits.
6261         
6262 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6263
6264         * TextBox.cs: Add MWFCategoryAttributes
6265         * TextBoxBase.cs: Add MWFCategoryAttributes
6266         * Form.cs: Add MWFCategoryAttributes
6267
6268 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6269
6270         * Control.cs: Add MWFCategoryAttributes
6271         * ScrollableControl.cs: Add MWFCategoryAttributes
6272
6273 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
6274
6275         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
6276           Divider is true. Fix a little glitch in PropertyToolBar
6277           drawing code
6278
6279 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
6280
6281         * Control.cs:
6282           - Dispose: Call base.Dispose, this causes the disposed event
6283             to be fired (and probably other, more important stuff)
6284           - SetVisibleCore: Set is_visible to true after creating the
6285             window so that the window still gets created invisible (if
6286             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
6287             to generate a WM_ACTIVE message
6288         * Form.cs: Call Dispose when we want to destroy the window, instead of
6289           just destroying the handle (Dispose will do that for us)
6290         * XplatUIX11.cs:
6291           - RootWindow also needs a queue, so we can properly process the
6292             property change events from RootWindow (like Activate)
6293           - Generatic synthetic WM_ACTIVE message when the active window is
6294             being destroyed
6295
6296 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6297
6298         * LinkLabel.cs: Trigger a recalc of our label dimensions when
6299           bounds are changed
6300
6301 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
6302
6303         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
6304           for determining width and height (image might not be assigned if
6305           we're drawing an imagelist)
6306
6307 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
6308
6309         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
6310         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
6311           height from system
6312         * Theme.cs: No longer returns hardcoded menu height, instead calls
6313           new driver method
6314         * Form.cs (OnLoad): Scaling happens before triggering Load events 
6315           on MS (# 78257)
6316
6317 2006-05-01  Mike Kestner  <mkestner@novell.com>
6318
6319         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
6320
6321 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
6322
6323         * TextBoxBase.cs: Removed Fixme
6324         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
6325
6326 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
6327
6328         * XplatUIX11.cs:
6329           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
6330             the rectangle relative to the parent, considering borders. We
6331             don't really want that.
6332           - ScrollWindow: Fixed warning to be more understandable
6333         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
6334           scrollbars and scroll only the visible area
6335         * RichTextBox.cs: Removed debug output
6336
6337 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6338
6339         * NumericUpDown.cs (Text): Just use base
6340         * UpDownBase.cs: Ensure txtView is created before using it
6341
6342 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6343
6344         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
6345           casting to IntPtr to avoid 64bit overflow errors
6346
6347 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6348
6349         * Control.cs:
6350           - AllowDrop: Don't force handle creation.
6351           - CreateHandle: Added call to tell driver if we're allowed to drop
6352
6353 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6354
6355         * FileDialog.cs: Remember the last directory not only for the
6356           current instance but also for new FileDialog instances.
6357
6358 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
6359         
6360         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
6361           broke sending async messages
6362
6363 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
6364
6365         * XplatUIX11.cs:
6366           - ScrollWindow: Fixed method. We finally generate expose events again
6367             for scrolled areas. This was causing 'garbage' when scrolling
6368             textbox and other controls that used ScrollWindow
6369           - Switched from using the regular queue for paint events to the MS 
6370             model of 'generating' paint events when the queue is empty.
6371             We use the new XQueueEvent.Paint subclass to store which windows
6372             need painting.
6373           - AddExpose now takes the x/y/width/height of the exposed area
6374             and inserts the window into the paint queue if not already there
6375           - InvalidateWholeWindow: Switched to use new AddExpose method
6376           - UpdateMessageQueue: Added which queue to monitor for paint events
6377           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
6378             the unlikely case nothing above handles it. We reset the expose
6379             pending states to get them off the queue.
6380           - GetMessage: Now pulls a paint event if no other events are in the
6381             queue
6382           - Invalidate: Switched to new AddExpose method
6383           - PeekMessage: Updated to understand pending paint events
6384           - UpdateWindow: Fixed logic bug. We were only updating if the window
6385             didn't need updating. Also switched to sending WM_PAINT directly,
6386             like MS does.
6387         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
6388           and random access Remove(). The random access is needed to handle
6389           UpdateWindow() where a WM_PAINT is sent directly without accessing
6390           the queue.
6391         * ScrollBar.cs: Added Update() calls to cause immediate updates to
6392           allow for better feedback when scrolling. Scrollbars are small and
6393           the immediate update should make it 'feel' more responsive without
6394           slowing things down. ScrollBar still needs it's invaliate logic
6395           updated to not always invalidate the whole bar on certain changes.
6396
6397 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6398
6399         * Control.cs:
6400         (BackColor): if the control does not support a transparent background,
6401         return the default backcolor when the parent backcolor is transparent.
6402
6403 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
6404
6405         * Application.cs: Updated to new StartLoop/GetMessage API
6406         * RichTextBox.cs: Provide some output on RTF parsing errors
6407         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
6408           new queue_id argument to GetMessage and PeekMessage to allow faster
6409           handling of per-thread queues in drivers.
6410         * Hwnd.cs: Added Queue tracking and property
6411         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
6412         * XEventQueue.cs: Added thread trackingA
6413         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
6414         * XplatUIX11.cs:
6415           - Implemented new per-thread queue
6416           - GetMessage: Fixed return/break behaviour on several cases. We were
6417             returning stale messages in some cases, instead of just processing
6418             the next message
6419
6420 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6421
6422         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
6423
6424 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
6425
6426         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
6427           fixed off-by-one comparisons between Width/Height and Right/Bottom.
6428
6429 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
6430
6431         * PropertyGridView.cs: Fix drop down width.
6432
6433 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6434
6435         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
6436           a mess in DrawToolBar, so I removed one of them.
6437
6438 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
6439
6440         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
6441           needed (clip). Otherwise we get artifacts.
6442
6443 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6444
6445         * FixedSizeTextBox.cs: Added constructor to allow specifying which
6446           dimension is fixed
6447         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
6448           and switched FixedSizeTextBox to only be fixed vertical (#78116)
6449         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
6450           if it matches the scale base font (avoids unneeded scaling)
6451
6452 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6453
6454         * X11DesktopColors.cs: One gtk_init_check should be enough
6455
6456 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
6457
6458         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
6459           match MS behaviour
6460
6461 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
6462
6463         * TextBoxBase.cs: 
6464           - Generate OnTextChanged for Backspace even if we're only deleting
6465             the current selection
6466           - When setting the Text property, only select all text if the
6467             control does not have focus when it is being set. Otherwise
6468             just place the cursor at the beginning of the control
6469
6470 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
6471
6472         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
6473           Added a little helper to draw PropertyGrid ToolBar with a different
6474           border and a different BackColor.
6475         * PropertyGrid.cs: Some background parts didn't get painted with the
6476           correct background color. Added a class that helps us to draw the
6477           correct border for PropertyGridView and a class that helps us to
6478           draw ToolBars with a different backcolor
6479         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
6480
6481 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
6482
6483         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
6484         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
6485
6486 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6487
6488         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
6489           into the palette entries. Also, since we're working on a copy
6490           we needed to copy the palette back onto the bitmap.
6491         * Cursor.cs: Same fix as XplatUIWin32.cs.
6492
6493 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
6494
6495         * ImageListStreamer.cs: Need to read the var (or we're off)
6496
6497 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
6498
6499         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
6500           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
6501           TextBoxBase.cs: Unused var fixes
6502         * AxHost.cs: Small 2.0 fix
6503         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
6504           as it seems that is what at least Metacity expects. This will make
6505           icons show up on 64bit platforms. We still have some 64bit size
6506           issues, though, since the startup app window size still won't match.
6507
6508 2006-04-25  Mike Kestner  <mkestner@novell.com>
6509
6510         * *.cs: cleanup newly reported exception var unused warnings.
6511
6512 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6513
6514         * ThemeWin32Classic.cs: Button image alignment now matches exactly
6515           ms
6516
6517 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6518
6519         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
6520           image. The image position is always the same, no matter if the
6521           button is pressed or not.
6522
6523 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6524
6525         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
6526           selection and set the correct filename for SaveFileDialog.
6527           Patch by Emery Conrad.
6528
6529 2006-04-24  Mike Kestner  <mkestner@novell.com>
6530
6531         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
6532         check for item.X outside the ClientRect instead of item.Y. Fixes
6533         #78151.
6534
6535 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6536
6537         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
6538         trust that value blindly and do some sanity check. Fixes bug #77814.
6539
6540 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6541
6542         * ImageListStreamer.cs: save the mask as a 1bpp image.
6543
6544 2006-04-21  Mike Kestner  <mkestner@novell.com>
6545
6546         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
6547         pass Checked and Indeterminate to the Theme Engine. Improve
6548         encapsulation with ListBox.
6549         * ListBox.cs: Keep a StringFormat instead of calculating it every item
6550         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
6551         nested types.  Move all CheckState functionality to CheckedListBox.
6552         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
6553         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
6554         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
6555         single base list. Fix scrollbar sizing and placement to mirror MS.
6556         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
6557         used.
6558         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
6559         for CheckedListBox by using new DrawItemState info.  Center the
6560         checkboxes on the items. Use new StringFormat property.
6561
6562 2006-04-18  Jackson Harper  <jackson@ximian.com>
6563
6564         * Form.cs: MdiChildren don't do default locations the same way as
6565         regular forms.  This prevents a crash when trying to position the
6566         mdi windows.
6567
6568 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
6569
6570         * PropertyGridTextBox.cs: Formatting, copyright
6571         * PropertiesTab.cs: Formatting
6572         * PropertyGrid.cs: Formatting
6573         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
6574           click toggling of values
6575           
6576 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
6577
6578         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
6579         * Control.cs (.ctor): verify_thread_handle is static, don't reset
6580           every time a control is created
6581         * Application.cs: Removed obsolete EnableRTLMirroring method
6582
6583 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
6584
6585         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
6586         SelectedIndex to -1. Fixes bug #78121.
6587
6588 2006-04-17  Jackson Harper  <jackson@ximian.com>
6589
6590         * Binding.cs: Handle null values for Current and BindingContext.
6591         This occurs when binding is a little delayed.
6592         * CurrencyManager.cs: return null for Current when there are no
6593         items in the list.
6594         - Hookup to the listchanged event on the DataView and update
6595         bindings when the list is changed.  This fixes late binding of
6596         controls.
6597
6598 2006-04-17  Jackson Harper  <jackson@ximian.com>
6599
6600         * X11Dnd.cs:
6601         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
6602         Ringenbach.
6603
6604 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
6605
6606         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
6607           place
6608         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
6609           with the correct ButtonState
6610
6611 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
6612
6613         * XplatUIX11.cs: Improved distinguishing between window types to
6614           tell the WM a type closer to what the app wants (Fixes #78107)
6615
6616 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6617
6618         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
6619           GrabHandle
6620
6621 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6622
6623         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
6624           drawing code to reflect the size grip changes
6625
6626 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6627
6628         * ImageListStreamer.cs: fix handling of the mask that follows the main
6629         bitmap when deserializing and serialize it properly. The generated mask
6630         should better be a 1bpp image, but I'll do that later.
6631
6632 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6633
6634         * FileDialog.cs: Show something in the DirComboBox on *nix if the
6635           path doesn't fit into some of our Current.Places
6636
6637 2006-04-13  Jackson Harper  <jackson@ximian.com>
6638
6639         * ComboBox.cs: Use borders instead of drawing our own decorations,
6640         try to obey correct rules for heights.
6641         * Theme.cs:
6642         * ThemeNice.cs:
6643         * ThemeClearLooks.cs:
6644         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
6645         this is now handled by borders.
6646         - Remove unused DrawListBoxDecorationSize method.
6647         
6648 2006-04-13  Mike Kestner  <mkestner@novell.com>
6649
6650         * MenuAPI.cs: null guarding for the disbled click check fixes crash
6651         reported by Alex.
6652
6653 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6654
6655         * ThemeWin32Classic.cs: 
6656           - Fixed CPDrawStringDisabled
6657           - Corrected drawing of disabled menu items
6658           - Fixed drawing of disabled radio buttons (bug #78095)
6659           - Draw check in a disabled CheckBox with color ControlDark 
6660
6661 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6662
6663         * Form.cs: Use the provided width when calculating the menu size;
6664           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
6665           and ClientSize.Width won't be updated yet
6666         * Application.cs: Use Visible instead of Show() to make form visible,
6667           this way we create the handle later and menusize is considered
6668
6669 2006-04-12  Mike Kestner  <mkestner@novell.com>
6670
6671         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
6672         reporting.
6673
6674 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6675
6676         * TextBox.cs: Implemented context menu
6677
6678 2006-04-12  Mike Kestner  <mkestner@novell.com>
6679
6680         * ListView.cs: implement box selection. fixes #77838.
6681         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
6682
6683 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6684
6685         * XplatUIX11.cs: Added setting of window type when transient window
6686           is created (metacity would move it otherwise)
6687         * X11Structs.cs: Added WINDOW_TYPE atoms
6688         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
6689           background (the control is Opaque but still wants transparent
6690           backgrounds)
6691
6692 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6693
6694         * Control.cs: Added OnPaintBackgroundInternal to allow controls
6695           that set Opaque but don't mean it (like all ButtonBase-derived
6696           controls) to still draw their background
6697         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
6698           the background
6699
6700 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6701
6702         * Control.cs (PaintControlBackground): Set the graphics object
6703           on our PaintEvent to null to prevent it from being disposed
6704           when the PaintEvent gets disposed
6705
6706 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
6707
6708         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
6709         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
6710
6711 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6712
6713         * Control.cs: 
6714           - Added transparency check to BackColor property. Transparent
6715             backgrounds are only allowed if the control styles permit it
6716           - Added recursive painting of parent control background and
6717             foreground if a control with a transparent backcolor is drawn
6718             (Thanks to Tim Ringenback for providing his 'hack' as a base
6719              for this patch) Fixes #77985 and #78026.
6720           - Added Opaque style check before calling OnPaintBackground, no
6721             need to draw the background if the control is opaque
6722           - Removed ControlAccessibleObject owner variable (inherited from
6723             base, no need to define again)
6724           - Added some documentation links explaining the drawing events
6725             and styles
6726
6727 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6728
6729         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
6730           that the affected control is the located at the left border of our
6731           parent (Fixes #77936)
6732
6733 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6734
6735         * TextBoxBase.cs: When rendering disabled or readonly controls,
6736           draw the background with 'Control' instead of 'Window' color as
6737           long as the user hasn't specifically set a color
6738
6739 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6740
6741         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
6742           since that won't be updated if the user types text (only if it's
6743           programatically set)
6744
6745 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6746
6747         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
6748           layout changes do to app-triggered resizes will have the proper
6749           display rectangle for layout
6750
6751 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
6752
6753         * ThemeWin32Classic.cs:
6754           - Make use of the SystemBrushes and SystemPens wherever possible
6755           - Corrected some highlight colors
6756           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
6757             drawing
6758         * Theme.cs: Added Empty field to CPColor struct
6759
6760 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6761
6762         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
6763           is displayed when calculating the display rectangle. Thanks to Mike
6764           for teaching me the err of my ways.
6765
6766 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
6767
6768         * ScrollableControl.cs:
6769           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
6770             (instead of 0,0) and we now return the real width/height instead of
6771             just the clientrectangle, adjusted for padding. The rectangle is
6772             now cached and created by the new CalculateDisplayRectangle method.
6773           - Created new CalculateDisplayRectange method, which basically does
6774             what get_DisplayRectangle() did originally, but now using the 
6775             right edge instead of DisplayRectangle to determine the size of
6776             our scrollbars
6777           - get_Canvas(): Fixed it to properly calculate canvas for 
6778             right/bottom controls which seem to be placed to the right/bottom
6779             of any controls that have a fixed location
6780           - Removed TODO that's taken care of
6781           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
6782             and SetDisplayRectLocation according to new MSDN2 docs
6783           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
6784             event when that is called, this is added for compatibility
6785           - ScrollControlIntoView(): Implemented.
6786           - Switched scrollbars to be implicit, they shouldn't be selectable
6787         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
6788           call it when the active control is set/changed
6789         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
6790         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
6791           implicit_control variable (used for native Win32 message generation)
6792         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
6793           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
6794         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
6795         * XplatUIStructs.cs: Added ScrollBarCommands enum
6796
6797 2006-04-10  Jackson Harper  <jackson@ximian.com>
6798
6799         * ButtonBase.cs:
6800         * CheckedListBox.cs:
6801         * ComboBox.cs:
6802         * DataGrid.cs:
6803         * DataGridView.cs:
6804         * Form.cs:
6805         * GroupBox.cs:
6806         * ListBox.cs:
6807         * PrintPreviewControl.cs:
6808         * ProgressBar.cs:
6809         * PropertyGrid.cs:
6810         * Splitter.cs:
6811         * StatusBar.cs:
6812         * TrackBar.cs:
6813         * UpDownBase.cs: Fixup base event overrides.
6814         
6815 2006-04-06  Mike Kestner  <mkestner@novell.com>
6816
6817         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
6818         all user-initiated value changes to min <= value <= max-thumbsz+1.
6819         (set_Value): check for vert/horiz when calculating new thumb position.
6820         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
6821         like MS does.
6822         (OnMouseMoveSB): refactor the thumb dragging code and refine
6823         invalidation logic to reduce flicker.
6824         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
6825         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
6826         (UpdateThumbPosition): small code readability cleanup
6827
6828 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
6829
6830         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
6831           different
6832
6833 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6834
6835         * ThemeNice.cs: Use a better graphics effect when a button is pressed
6836
6837 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6838
6839         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
6840         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
6841           This dramatically reduces the number of Pen.Dispose calls. 
6842           Where possible call ResPool methods only once instead of calling it
6843           over and over again (for example for the same color).
6844
6845 2006-04-06  Mike Kestner  <mkestner@novell.com>
6846
6847         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
6848         Also remove an unused private field on the collection. Fixes #77972.
6849
6850 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6851
6852         * ThemeNice.cs: Added ToolBar drawing code
6853
6854 2006-04-06  Mike Kestner  <mkestner@novell.com>
6855
6856         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
6857         I'm assuming that means we need to look up the toplevel for the
6858         provided control. Fixes the crash trace in #77911 but exposes another
6859         crash in some strange reflection usage in NDocGui.
6860
6861 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6862
6863         * ThemeNice.cs: Gave it a little silver touch and added Images
6864           method
6865         * FontDialog.cs: FontDialog is not resizable
6866         * FileDialg.cs: Added SizeGripStyle.Show
6867
6868 2006-04-05  Jackson Harper  <jackson@ximian.com>
6869
6870         * KeyboardLayouts.cs: Remove warning.
6871
6872 2006-04-05  Jackson Harper  <jackson@ximian.com>
6873
6874         * Control.cs: Enable OnPaintInternal so we can use it for drawing
6875         all of our controls instead of Paint +=.
6876         * ListBox.cs:
6877         * ListView.cs:
6878         * MenuAPI.cs:
6879         * MessageBox.cs:
6880         * NotifyIcon.cs:
6881         * ProgressBar.cs:
6882         * ScrollBar.cs:
6883         * Splitter.cs:
6884         * StatusBar.cs:
6885         * TabControl.cs:
6886         * TextBoxBase.cs:
6887         * ToolBar.cs:
6888         * TrackBar.cs:
6889         * UpDownBase.cs:
6890         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
6891         use OnPaintInternal. Remove Width/Height and Visible checks in
6892         paint handler, this is done at a higher level now.
6893         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
6894         * PaintEventArgs.cs: Add a handled flag so controls that don't
6895         want anymore painting after OnPaintInternal can make sure OnPaint
6896         isn't called.
6897
6898 2006-04-05  Mike Kestner  <mkestner@novell.com>
6899
6900         * Form.cs: fix the menu WndProc hacks to respect the native enabled
6901         state of the form, so that we don't process events when Modal dialogs
6902         are up. Fixes #77922.
6903
6904 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
6905
6906         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
6907           checking is done.
6908
6909 2006-04-05  Mike Kestner  <mkestner@novell.com>
6910
6911         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
6912
6913 2006-04-05  Mike Kestner  <mkestner@novell.com>
6914
6915         * ListView.cs (HeaderMouseMove): null guarding for the over column
6916         when setting up the drag_to_index.  Fixes #78015.
6917
6918 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
6919
6920         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
6921           in the taskbar. Transient windows seem to accomplish that.
6922
6923 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
6924
6925         * Form.cs:
6926           - Re-enabled CreateParams.X/Y code for FormStartPosition
6927           - Added code for manual placement when creating the Control
6928           - Incomplete patch to treat MDI forms differently when
6929             setting the ClientSizeCore. (Still need to figure out handling
6930             x/y coords there)
6931         * XplatUIX11.cs:
6932           - When we're explicitly setting the X/Y position of a non-Child
6933             window, let the WM know. Metacity really wants this.
6934
6935 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6936
6937         * ThemeNice.cs: Added CPDrawButton
6938
6939 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6940
6941         * ThemeNice.cs: Changed the color for focused buttons and activated
6942           the arrows for small scroll buttons.
6943
6944 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6945
6946         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
6947           anymore. Changed some method modifiers to protected (virtual)
6948         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
6949           changes
6950         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
6951           Updated drawing of menus, buttons and progressbars; added
6952           CPDrawBorder3D 
6953
6954 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6955
6956         * ImageListStreamer.cs: implemented serialization/deserialization
6957         of the images.
6958
6959 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
6960
6961         * ThemeWin32Classic.cs:
6962           - Removed all the DrawFrameControl stuff; CPDrawButton,
6963             CPDrawCheckBox and CPDrawRadioButton are now handled directly
6964             inside the methods
6965           - Updated and corrected the drawing code of CPDrawButton,
6966             CPDrawCheckBox and CPDrawRadioButton to better match ms
6967           - Updated theme checkbox and radiobutton code to use the CP*
6968             methods
6969
6970 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6971
6972         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
6973           bug is fixed
6974
6975 2006-03-31  Jackson Harper  <jackson@ximian.com>
6976
6977         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
6978         sometimes.
6979         * UpDownBase.cs: Don't CreateGraphics manually, use a
6980         Refresh. Ideally we would invalidate the correct areas here.
6981
6982 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6983
6984         * XplatUIX11.cs: 
6985           - We now track the mapping state of windows. If a window (or 
6986             one of it's parents) is not mapped we no longer permit
6987             WM_PAINT messages to be generated since we'd otherwise get 
6988             lots of BadMatch X errors. Jackson did all the work figuring
6989             out the problem.
6990           - Destroying the caret if the window it's contained in is 
6991             destroyed. Can't use regular DestroyCaret method since it
6992             might fall into a drawing function (trying to remove the
6993             caret) and with that generate new BadMatch errors. Again,
6994             Jackson tracked this down.
6995           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
6996             make sure we send the messages to all windows. (The old code
6997             would send the WM_DESTROY to the window, and then all child
6998             windows would be 'gone' because the WM_DESTROY handle lookup
6999             would no longer find the destroyed window)
7000         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
7001         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
7002
7003 2006-03-31  Jackson Harper  <jackson@ximian.com>
7004
7005         * ScrollableControl.cs: Dont recalc if we are not visible.
7006
7007 2006-03-31  Mike Kestner  <mkestner@novell.com>
7008
7009         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
7010         the visibility branch.
7011
7012 2006-03-31  Jackson Harper  <jackson@ximian.com>
7013
7014         * ScrollBar.cs: Cap values when incrementing/decrementing.
7015
7016 2006-03-31  Mike Kestner  <mkestner@novell.com>
7017
7018         * MenuAPI.cs: setup menu.tracker for popup/context menus.
7019         * ToolTip.cs: guard against timer expirations with no active control.
7020         Not sure why it happened.
7021
7022 2006-03-31  Mike Kestner  <mkestner@novell.com>
7023
7024         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
7025         text.
7026         * ToolTip.cs: Position the tooltip based on where the cursor is at
7027         popup time, not at MouseEnter time.  Add a Down state so that we don't
7028         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
7029         positioning offset. Lookup DisplaySize at positioning time, since it
7030         can theoretically change during invocation.
7031         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
7032         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
7033
7034 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
7035
7036         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
7037           Fixes behaviour when the Text property of the box is String.Empty
7038
7039 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
7040
7041         * XplatUIX11.cs: Only send mouseleave for our client windows, not
7042           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
7043           a window)
7044
7045 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
7046
7047         * FileDialog.cs: Visual enhancement for the popup buttons in 
7048           PopupButtonPanel
7049
7050 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
7051
7052         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
7053           code
7054
7055 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
7056
7057         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
7058           highlighted menu items to match ms
7059
7060 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
7061
7062         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
7063
7064 2006-03-30  Mike Kestner  <mkestner@novell.com>
7065
7066         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
7067         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
7068         go active to account for HotLight to Selected transition.
7069         * MenuItem.cs: add internal Selected prop. Fill out the Status
7070         property by calculating it from item info. Add HotLight,
7071         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
7072
7073 2006-03-30  Mike Kestner  <mkestner@novell.com>
7074
7075         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
7076
7077 2006-03-29  Jackson Harper  <jackson@ximian.com>
7078
7079         * Form.cs: Implement TODO.
7080
7081 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
7082
7083         * PrintPreviewDialog.cs: Implemented missing methods and events; still
7084           missing proper dialog setup in the constructor
7085
7086 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
7087
7088         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
7089         * Control.cs:
7090           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
7091           - Fixed ResetBindings and removed TODO
7092           - Added check for cross-thread calls to get_Handle()
7093           - Added Marshaller attribute for set_Font to satisfy class status
7094         * FontDialog.cs: Removed TODOs that seemed implemented
7095         * UpDownBase.cs: Removed unneeded TODO and Fixme
7096         * MessageBox.cs: Implemented support for Default button and removed TODO
7097         * FileDialog.cs: Removed obsolete TODO
7098         * DomainUpDown.cs: Removed obsolete TODO
7099         * ButtonBase.cs: Removed obsolete TODO
7100         * XplatUIWin32.cs: Removed obsolete TODO
7101         * Form.cs:
7102           - Removed obsolete TODO
7103           - Calling CheckAcceptButton when the acceptbutton is changed to allow
7104             internal status updates
7105           - Making sure the active control is selected when the control is created
7106         * CurrencyManager.cs: Removed obsolete TODO
7107
7108 2006-03-29  Mike Kestner  <mkestner@novell.com>
7109
7110         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
7111         of PrintPreviewDialog and RichTextBox.
7112
7113 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7114
7115         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
7116           DarkDark, Light and LightLight colors for a specific color
7117         * ThemeWin32Classic.cs:
7118           - Use Button drawing code to draw RadioButtons and CheckBoxes with
7119             Appearance = Button 
7120           - Make use of the new ResPool helper CPColor
7121           - Draw ProgressBar and StatusBar with correct 3D borders
7122
7123 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
7124
7125         * ColorDialog.cs: Return selected color. Fixes bug #77940.
7126
7127 2006-03-28  Mike Kestner  <mkestner@novell.com>
7128
7129         * ListView.cs: fix Icon layout to plan for scrollbar widths when
7130         calculating col/row counts.
7131
7132 2006-03-28  Mike Kestner  <mkestner@novell.com>
7133
7134         * ColumnHeader.cs:
7135         * ListView.cs:
7136         * ListViewItem.cs:
7137         * Menu.cs: 
7138         switch to explicit interface method implementation for some methods
7139         corcompare identifies as inconsistent with MS.
7140
7141 2006-03-28  Mike Kestner  <mkestner@novell.com>
7142
7143         * MainMenu.cs: 
7144         * Menu.cs:
7145         add a few missing methods from the class status output.
7146
7147 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
7148
7149         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
7150           correct.
7151
7152 2006-03-28  Mike Kestner  <mkestner@novell.com>
7153
7154         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
7155
7156 2006-03-27  Mike Kestner  <mkestner@novell.com>
7157
7158         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
7159         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
7160
7161 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
7162
7163         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
7164
7165 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7166
7167         * ThemeWin32Classic.cs:
7168           - GroupBox: Inserted a little gap between the text and the lines
7169             on the right side
7170           - Made the code in CPDrawBorder3D more readable
7171           - Corrected the drawing location of the up and down arrows in 
7172             CPDrawScrollButton
7173
7174 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7175
7176         * ControlPaint.cs: Corrected line widths in DrawBorder for
7177           ButtonBorderStyle Inset and Outset
7178
7179 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7180
7181         * ThemeWin32Classic.cs:
7182           - Rewrote the totally broken CPDrawBorder3D method. That was
7183             one of the main problems for the terrific ThemeWin32Classic
7184             look
7185           - Updated and corrected Button drawing
7186           - Correct the dimensions of the SizeGrip to match ms ones
7187           - Removed a small drawing glitch in DrawComboBoxEditDecorations
7188         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
7189           Border3DStyle.Sunken to match ms.
7190
7191 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
7192
7193         * ThemeWin32Classic.cs: First small part of the "de-uglify
7194           ThemeWin32Classic" effort, SizeGrip
7195
7196 2006-03-24  Jackson Harper  <jackson@ximian.com>
7197
7198         * XplatUIX11.cs: Give a max idle time of one second, this matches
7199         MS and forces an Idle event every second when there are no other
7200         events in the queue.
7201
7202 2006-03-24  Mike Kestner  <mkestner@novell.com>
7203
7204         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
7205         * ListView.Item.cs: fix layout issues with null image lists and images
7206         smaller than checkbox size.
7207         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
7208         mode like MS does.  It's weird, but consistent.  ;-)
7209         Fixes #77890.
7210
7211 2006-03-24  Mike Kestner  <mkestner@novell.com>
7212
7213         * ListView.cs: Scroll wheel support for the item control.  Fixes
7214         #77839.
7215
7216 2006-03-23  Jackson Harper  <jackson@ximian.com>
7217
7218         * ScrollableControl.cs: Special case negative sized areas, not
7219         zero.
7220         * MonthCalendar.cs: Save the rect of the clicked date so we can
7221         use it for invalidation.
7222         - Try to cut down on the number of invalidates
7223         - Invalidate the rect the mouse is over and was over when moving
7224         the mouse, so we get the focus box following the cursor.
7225
7226 2006-03-23  Mike Kestner  <mkestner@novell.com>
7227
7228         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
7229         focus rectangle drawing. Fixes #77835.
7230
7231 2006-03-23  Mike Kestner  <mkestner@novell.com>
7232
7233         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
7234         the if and else if and reverting back to the original == check on the
7235         None conditional.
7236
7237 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7238
7239         * FontDialog.cs: Update the example panel if the selected index of
7240           the fontListBox changes.
7241
7242 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
7243
7244         * FileDialog.cs: Make FileDialog remember which directory it was in
7245           last in the same execution.
7246
7247 2006-03-22  Mike Kestner  <mkestner@novell.com>
7248
7249         * FileDialog.cs: make the DropDownMenu on the toolbar display
7250         RadioChecks since they are mutually exclusive and that's what MS does.
7251
7252 2006-03-22  Mike Kestner  <mkestner@novell.com>
7253
7254         * Theme.cs: add Color param to CPDrawMenuGlyph.
7255         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
7256         checks and radio marks and arrows are visible on highlighted items.
7257         * ControlPaint.cs: update to use new Theme signature.
7258
7259 2006-03-22  Mike Kestner  <mkestner@novell.com>
7260
7261         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
7262         is active. Fixes #77870.
7263
7264 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7265
7266         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
7267           to be focused/selected after startup
7268
7269 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
7270
7271         * ColorDialog.cs: 
7272           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
7273             CustomColors and ShowHelp properties
7274           - Some internal rewrites to get better results when using the
7275             ColorMatrix
7276
7277 2006-03-22  Mike Kestner  <mkestner@novell.com>
7278
7279         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
7280         HoverSelection.  Fixes #77836.
7281
7282 2006-03-22  Mike Kestner  <mkestner@novell.com>
7283
7284         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
7285         ToggleButtons.  (De)Sensitize the Back button around a stack count of
7286         1, not 0.  Update ButtonSize based on a pixel count of the win32
7287         control.  Adjust the toolbar size/location for new button size.
7288
7289 2006-03-22  Jackson Harper  <jackson@ximian.com>
7290
7291         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
7292         true.
7293         * ScrollBar.cs: When doing increments and decrements we need to
7294         set the Value property so that ValueChanged gets raised. A
7295         possible optimization here would be to make an internal SetValue
7296         that doesn't invalidate immediately.
7297         * ToolTip.cs: Tooltips get added to their container (when
7298         supplied) so they get disposed when the container is disposed.
7299         - Don't create tooltips for String.Empty. This prevents all these
7300         little 2-3 pixel windows from showing up when running nunit-gui
7301         and driving me mad.
7302         * Form.cs: Don't set topmost when setting the owner if the handles
7303         haven't been created yet.  The topmost set will happen when the
7304         handles are created.
7305
7306 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
7307
7308         * XplatUIX11.cs:
7309           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
7310           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
7311             visible (to allow them to recalculate their sizes)
7312
7313 2006-03-21  Mike Kestner  <mkestner@novell.com>
7314
7315         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
7316         methods. Removed a ton of redundant code.  Still not really happy with
7317         the border rendering, but I think that's mainly because of the
7318         ControlDarkDark being black instead of a dark grey. Depending on how 
7319         close we want to be, we might want to revisit those color choices.
7320         Among the new features added during the refactor were DropDownArrow
7321         pressed rendering, Disabled image rendering.  Proper flat appearance
7322         boundary rendering.  Removed the Divider and Wrapping dividers since I
7323         can't figure out any combination of themes and conditions to make the
7324         MS control draw a horizontal line on a toolbar despite what the
7325         Divider property docs indicate.
7326         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
7327         conditions and incorrect layout.  Updated to coding standard.
7328         * ToolBarButton.cs: refactored layout and positioning code from
7329         ToolBar to here.  Invalidate wherever possible instead of forcing
7330         redraws of the whole toolbar. 
7331         (Known remaining issues: explicit ButtonSize smaller than provided
7332         images.)
7333
7334 2006-03-21  Mike Kestner  <mkestner@novell.com>
7335
7336         * ContextMenu.cs (Show): use the position parameter instead of just
7337         showing at the MousePosition.
7338
7339 2006-03-21  Jackson Harper  <jackson@ximian.com>
7340
7341         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
7342         control handle this.
7343         * TreeNodeCollection.cs: If we are clearing the root node we need
7344         to reset top_node so calcs can still happen.
7345         * ThemeWin32Classic.cs: This is a Flags so we need to check
7346         properly.
7347         
7348 2006-03-21  Jackson Harper  <jackson@ximian.com>
7349
7350         * DataGrid.cs: Create columns when the binding context has been
7351         changed.
7352         * X11Structs.cs: Keysyms are uints.
7353         - Add size to fix build.
7354
7355 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
7356
7357         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7358           XplatUIOSX.cs: 
7359           - Added ResetMouseHover method to allow controls to retrigger
7360             hovering if they need it more than once
7361           - Implemented MouseHoverTime and MouseHoverSize properties
7362         * Timer.cs: Start() must reset the interval
7363         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
7364           properties
7365
7366 2006-03-21  Jackson Harper  <jackson@ximian.com>
7367
7368         * X11Keyboard.cs: improved layout detection. Move the nonchar
7369         tables into this file.
7370         * KeyboardLayouts.cs: Move the tables into resource files.
7371
7372 2006-03-21  Mike Kestner  <mkestner@novell.com>
7373
7374         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
7375
7376 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
7377
7378         * Mime.cs: Various speed optimizations. Looking up mime types
7379           is now 2 times faster than before
7380
7381 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
7382
7383         * CreateParams.cs: Added internal menu field
7384         * Control.cs: 
7385           - Switched call order for UpdateBounds; now we always call
7386             the one that also takes ClientSize, and we're calculating the 
7387             client size via driver method in the others. The previous
7388             method of tracking client size by difference wasn't working
7389             for forms where even the starting client size wouldn't match
7390             the overall form size (due to borders) (Part of fix for #77729)
7391           - CreateParams(): Do not use parent.Handle unless the handle is
7392             already created. Causes havoc with Nexxia and throws off our
7393             creation of controls
7394         * XplatUIX11.cs:
7395           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
7396           - Switched handling of ConfigureNotify over to new PerformNCCalc 
7397             method (consolidates code)
7398           - Changed RequestNCRecalc to use new PerformNCCalc method
7399           - Added calls to RequestNCRecalc when menus and borders are changed
7400             to allow app to set NC size. (Part of fix for #77729) This matches
7401             when MS send a WM_NCRECALC on Win32 windows.
7402           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
7403             (Part of fix for #77729). This matches what MS does, they also
7404             send that message when the form is made visible.
7405           - XException.GetMessage: Improved usability of X errors by including
7406             a translation of the window into Hwnd and Control class
7407           - Improved debug info for window creation, reparenting and destruction
7408           - Created helper method WindowIsMapped() [Currently not used]
7409         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
7410         * Form.cs:
7411           - CreateParams: Now setting our menu on the new internal menu field
7412           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
7413             avoid calculating the same property twice
7414         * Hwnd.cs:
7415           - Improved usability of ToString() for debugging purposes
7416           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
7417             determine the height of the menu, instead of just the font. This
7418             required to also create a graphics context and to keep a bmp 
7419             around (for performance reasons)
7420
7421 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
7422
7423         * MenuAPI.cs: Added OnMouseUp method
7424         * Form.cs:
7425           - Now remembering the requested client size, avoids size errors
7426           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
7427             instead of base if the menu is active. This is required due to
7428             control now capturing and releasing on down/up and it would
7429             prematurely release our menu capture
7430
7431 2006-03-17  Jackson Harper  <jackson@ximian.com>
7432
7433         * KeyboardLayouts.cs: Add the czech layouts.
7434
7435 2006-03-16  Jackson Harper  <jackson@ximian.com>
7436
7437         * Control.cs: Use the viewport space when sizing not the controls
7438         client size, so things like ScrollableControl that effect the
7439         viewport size (when scrollbars are added) are computed correctly.
7440         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
7441         of ManagerEntrys.
7442         - Handle creating BindingManagers for null data sources.
7443         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
7444         source, otherwise when rows are added they are added to the 'fake'
7445         datasource and we will crash when trying to set the position in
7446         those rows.
7447         - Use Implicit scrollbars on the datagrid so they arent
7448         selectable.
7449         
7450 2006-03-16  Jackson Harper  <jackson@ximian.com>
7451
7452         * Binding.cs:
7453         * InternalWindowManager.cs:
7454         * MdiWindowManager.cs:
7455         * X11Keyboard.cs: I really want Mike to love me again (fix
7456         compiler warnings).
7457
7458 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
7459
7460         * DataGrid.cs:
7461           - OnMouseDown: Switch to editing mode when clicking on the cell
7462                          even if we're clicking on the cell that's currently 
7463                          selected
7464           - ProcessGridKey: Left/Right now wrap like MS.Net does
7465           - ProcessGridKey: Tab now knows to add a new row when tab is
7466                             pressed in the cell of the last column of the 
7467                             last row
7468           - ProcessGridKey: Enter now adds another row  if pressed in the last
7469                             row and selectes the new row, same column cell
7470           - ProcessGridKey: Home/End navigate columns, not rows, like 
7471                             originally implemented
7472           - Broke ProcessKeyPreview code out into an extra Internal method
7473             so it can be called from the edit code
7474         * DataGridTextBox.cs (ProcessKeyMessage):
7475           - Switched to accept Tab keypresses
7476           - Added F2 handling to allow jumping to the end of the edited cell
7477           - Added logic to allow moving caret left/right inside edited cell
7478             and making the edited cell jump when the caret hits cell borders
7479           - Tab and Enter are now passed to the datagrid after being handled
7480         * TextBoxBase.cs:
7481           - Removed capture code now that Control handles it
7482           - set_SelectionStart now ensures caret is visible
7483
7484 2006-03-16  Jackson Harper  <jackson@ximian.com>
7485
7486         * TrackBar.cs: Debackwards the increment/decrement for handling
7487         mouse clicks on the bar with vertical trackbars.
7488         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
7489         bottom to match MS.
7490
7491 2006-03-16  Mike Kestner  <mkestner@novell.com>
7492
7493         * ListView.cs: make shift/ctrl keyboard and mouse selection 
7494         consistent with the MS control. Fix a bug in
7495         SelectedListViewItemCollection.Clear that was pissing me off for the
7496         better part of a day because the collection was being altered
7497         underneath us as we walked the list.
7498
7499 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
7500
7501         * Control.cs: Not sure how we could miss this so long, but it seems
7502           that MS.Net has Capture set all the way from before calling 
7503           OnMouseDown through sending the mouse events until after
7504           OnMouseUp. This will fix DataGrid's selection being set to end
7505           at the location of the MouseUp.
7506
7507 2006-03-15  Jackson Harper  <jackson@ximian.com>
7508
7509         * BindingContext.cs: Check the binding after its added so that it
7510           can initialize the binding managers and hookup to events.
7511         * Binding.cs: Data members seem to sometimes include rows/cols in
7512           the format Row.Column we now take this into account.
7513           - Hookup to the position changed event so we can update the
7514           control when the position has changed in the data set.
7515         * CurrencyManager.cs: Take into account the row/col naming
7516           convention when creating dataset tables.
7517         * BindingContext.cs: Using a newer better way of storing
7518           datasource/datamember pairs.  Hopefully this better matches MS for
7519           looking up binding managers.
7520
7521
7522 2006-03-15  Jackson Harper  <jackson@ximian.com>
7523
7524         * BindingContext.cs: The currency manager needs the data member
7525         name, if the member is a data set we use the name to find the
7526         correct table.
7527         * CurrencyManager.cs: When creating the list prefer an IList over
7528         an IListSource.
7529         - Attempt to create a DataTable from a DataSet (TODO: might need
7530         some better error checking here, although MS doesn't seem to have much)
7531         - If we have a DataTable create a view and use it as our list.
7532
7533 2006-03-15  Mike Kestner  <mkestner@novell.com>
7534
7535         * ListView.cs: keep a matrix of the icon mode layout to facilitate
7536         keyboard navigation. Support Up/Down/Left/Right selection correctly
7537         for all 4 View modes.
7538         * ListViewItem.cs: add internal row/col fields for icon layouts.
7539
7540 2006-03-15  Jackson Harper  <jackson@ximian.com>
7541
7542         * TabControl.cs: Redraw the tabs when we resize so their newly
7543         calculated sizes are drawn on screen.
7544         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
7545         composite characters.
7546         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
7547         - filter events so that composite characters can be created
7548         patches by peter
7549         * X11Structs.cs: Add XIMProperties enum.
7550
7551 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7552
7553         * Control.cs (BringToFront, SendToBack): Don't use window or handle
7554           unless it's created
7555
7556 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7557
7558         * Control.cs (PerformLayout): We don't need to consider visiblity
7559           for anchoring, only for docking. This fixes 'whacky' alignment
7560           in listbox and other controls that use implicit scrollbars after
7561           the previous PerformLayout patch
7562         * ListBox.cs: Switched to use implicit scrollbars
7563           
7564 2006-03-14  Mike Kestner  <mkestner@novell.com>
7565
7566         * ToolBar.cs: 
7567         * VScrollBar.cs:
7568         - chain up the "new event" overrides to base and use
7569         OnEvent to raise them.  Part of fix for bug #76509.
7570
7571 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
7572
7573         * FileDialog.cs: Do not select an item in the parent directory
7574           on backspace
7575
7576 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7577
7578         * Control.cs (PerformLayout): It would seem that we considered
7579           invisible windows for our layout. Not quite the right thing
7580           to do. Now we don't any longer, thereby fixing bug #76889.
7581
7582 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7583
7584         * Control.cs (CanFocus): I goofed. A control can have focus 
7585           even though it's not selectable. Made it match MS docs.
7586
7587 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7588
7589         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
7590           center by default (fixes #76895)
7591         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
7592           all uses of Border3DSides.All with the explicit ORd together
7593           Left|Right|Top|Bottom because I assume that nobody was aware 
7594           that All also implies a center fill. Most places I checked had
7595           a fill right above.
7596         * ProgressBarStyle.cs: Added
7597
7598 2006-03-13  Mike Kestner  <mkestner@novell.com>
7599
7600         * ListView.cs: fix breakage in drag shadow header positioning 
7601         from Peter's csc compilation fix.
7602
7603 2006-03-13  Mike Kestner  <mkestner@novell.com>
7604
7605         * ListView.cs: fix NRE produced by backspacing twice in a focused
7606         FileDialog.
7607
7608 2006-03-13  Mike Kestner  <mkestner@novell.com>
7609
7610         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
7611
7612 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7613
7614         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
7615           be changed
7616         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
7617           the allowed size before making programmatic size changes
7618
7619 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
7620
7621         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
7622           set, metacity is broken and will still use the emty sizes in 
7623           the struct. (Fix for #77089)
7624
7625 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7626
7627         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
7628           WindowExStyles and marked both enums as Flags
7629         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
7630           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
7631           to match WindowStyles split
7632         * XplatUIX11.cs:
7633           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
7634           - Updated to match WindowStyles split
7635         * XplatUIWin32.cs:
7636           - Fixed FosterParent creation, was using ExStyle on the Style field
7637             (This should help with Popup focus issues)
7638           - Updated to match WindowStyles split
7639
7640 2006-03-13  Jackson Harper  <jackson@ximian.com>
7641
7642         * MdiWindowManager.cs: Use the system menu height. Fixes some
7643         strange sizing issues.
7644
7645 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7646
7647         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
7648         * TextBoxBase.cs:
7649           - Scroll to caret after inserting text (#77672)
7650           - Make scroll range one pixel higher, fixes off-by-one error (and
7651             makes underlines visible on the last line)
7652
7653 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
7654
7655         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
7656           the keyboard state from being stuck with keys in 'pressed' state when
7657           focus is switched away via keyboard
7658         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
7659           reset the keyboard if no X11 KeyUp events are expected to come
7660         * X11Structs.cs: Switched type of Visible to bool to match driver
7661
7662 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7663
7664         * TextControl.cs:
7665           - Switched caret to be just 1 pixel wide, matches MS and looks less
7666             clunky
7667           - Moved caret display 1 pixel down from the top of the control
7668             to improve view
7669           - InsertCharAtCharet: Update the selection start if moving the caret
7670             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
7671           - No longer always creating the caret when the caret methods are
7672             called. Only the actual ShowCaret/HideCaret will do that now
7673           - Only setting caret visible if the owner control has focus
7674           - UpdateView: Added invalidation-shortcut logic for center and right 
7675             aligned text. Previously we'd update all according to the left
7676             logic which caused drawing errors. Also fixed height of invalidated
7677             areas, now properly invalidating the whole area (was off-by-one)
7678           - owner_HandleCreated: Always generate the document when the
7679             handle is created; this ensures that 
7680         * TextBoxBase.cs:
7681           - Fixed situation where caret would disappear under the right
7682             window border, also improved scrolling behaviour on left-
7683             aligned textboxes
7684           - Fixed right-aligned textboxes to have a border to the
7685             right instead of the caret being under the right border
7686         * XplatUIX11.cs:
7687           - Switched from 'nested' to simple visible/not visible tracking 
7688             for caret (part of fix for #77671)
7689           - No longer passing through translated FocusIn/FocusOut messages
7690             since we were notifying too often and the wrong windows. Instead
7691             we just notify our focussed window of receiving or loosing focus
7692         * XplatUIWin32.cs: Switched from 'nested' show/hide 
7693           counting for caret to simple visible yes/no behaviour (part of 
7694           fix for #77671)
7695
7696 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7697
7698         * Mime.cs: Remove debug code...
7699
7700 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7701
7702         * MimeGenerated.cs: Removed
7703         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
7704           and subclasses) from /usr/(local/)share/mime and
7705           $HOME/.local/share/mime.
7706
7707 2006-03-10  Jackson Harper  <jackson@ximian.com>
7708
7709         * MdiWindowManager.cs: Recalc the NC area when a window is
7710         maximized/restored so that the menu area is drawn on forms that
7711         don't have a menu.
7712
7713 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7714
7715         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7716           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
7717           us to force a WM_NCCALCRESIZE message being sent. This is needed
7718           for MDI maximizing.
7719
7720 2006-03-10  Jackson Harper  <jackson@ximian.com>
7721
7722         * Form.cs: We need to use the ActiveMenu when calculating menu
7723         height.
7724         - Fix nullref when the window manager hasn't been created yet.
7725         * Control.cs: Fix nullref when we try to bring a control to the
7726         front that has no parent.
7727         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
7728         height.
7729         - Add a dummy item to the maximized menu so it always has the
7730         correct height. Otherwise when there are no menus we don't get our
7731         icon and buttons.
7732         
7733
7734 2006-03-10  Jackson Harper  <jackson@ximian.com>
7735
7736         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
7737         stuff.
7738         * Form.cs: Make the window_state internal so the window managers
7739         can track it.
7740         - When an MDI child is maximized let its window manager create the
7741         main menu (so it can add its icon).
7742         - Notify the window managers of state changes
7743         - Let the window manager paint its buttons and handle button
7744         clicks on the menu when it is maximized.
7745         * InternalWindowManager.cs: Move the prev_bounds into the mdi
7746         window manager, since tool windows don't use it, only mdi windows.
7747         - Tell the main form that we don't want it to handle NCPAINT
7748         itself to avoid extra painting.
7749         - Handle clicks on a maximized windows menu.
7750         - Handle window state changes
7751         - Handle minimize/maximize clicks correctly by setting the window state.
7752         * MdiWindowManager.cs: Add an icon menu that (the menu you get
7753         when clicking on the forms icon).
7754         - New method to create a forms maximized menu. This is its normal
7755         menu + an icon.
7756         - Handle window state changes.
7757         - Handle sizing of maximized windows.  Maximized windows are just
7758         drawn bigger then the parent visible area. All controls are still
7759         there, they are just outside the visible area (this matches windows).
7760         * MdiClient.cs: No scrollbars when a child window is maximized.
7761         - Let the children windows figure out how big they should be when
7762         sizing maximized windows.
7763         - Implement a version of ArrangeIconicWindows somewhat similar to
7764         Windows version.  There are some little differences, but I don't
7765         think any app will rely on the layout of minimized mdi windows.
7766
7767 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7768
7769         * Padding.cs: Several fixes to allow compiling with csc 2.0
7770
7771 2006-03-09  Jackson Harper  <jackson@ximian.com>
7772
7773         * Menu.cs:
7774         * MenuItem.cs: Cheap hack so we can add items to the list without
7775         the events being raised.  This allows adding mdi items during
7776         drawing. TODO: Should probably find a better time to add the items.
7777
7778 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7779
7780         * ThemeWin32Classic.cs:
7781           - CheckBox_DrawText: Added logic to not wrap if not enough space
7782             is available (Fix for bug #77727)
7783           - RadioButton_DrawText: Added logic not to wrap if not enough
7784             space is available (Fix for bug #77727). Also removed some
7785             duplicate code, DrawString always drawing the regular text
7786             before hitting the if statement.
7787
7788 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
7789
7790         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
7791
7792 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7793
7794         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
7795         * ContainerControl.cs: Partial implementation of some 2.0 scaling
7796           methods. Moved the new 2.0 properties into alphabetical order with
7797           other properties and added MonoTODO tags
7798
7799 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7800
7801         * AutoScaleMode.cs: Added. Fix build.
7802
7803 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7804
7805         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7806           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
7807           and was requiring premature handle creation for calls from above
7808         * Form.cs, Control.cs: Removed handle arguments from calls to
7809           CalculateClientRect()
7810
7811 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7812
7813         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
7814           drag_column.column_rect is MarshalByRef and can't be used that way
7815
7816 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7817
7818         * AxHost.cs: Added deserialization constructor for 
7819           AxHost+State (fixes 77743)
7820
7821 2006-03-09  Mike Kestner  <mkestner@novell.com>
7822
7823         * ListView.cs: 
7824         - Added column drag reordering for details view.
7825         - fixed behavior when mouse is dragged off column and
7826         AllowColumnReorder is false.
7827         * ColumnHeader.cs: clone the format too in Clone.
7828         * Theme.cs: add DrawListViewHeaderDragDetails method.
7829         * ThemeWin32Classic.cs:
7830         - impl new method for drawing drag column shadows and targets.
7831         - support column offset for details mode in DrawListViewItem.
7832
7833 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7834
7835         * TextControl.cs: Reset the char_count when the document is cleared
7836           (Fixes bug reported on mono-winforms mailing list)
7837
7838 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7839
7840         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
7841           of calling base we simply process the key ourselves, since both
7842           DefWindowProc and the handled method would set m.Result. 
7843           (Fixes #77732)
7844
7845 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7846
7847         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
7848           method also moves the window; instead implemented a copy of
7849           Control.ScaleCore (Part of fix for #77456)
7850         * TextBoxBase.cs: 
7851           - Created new CreateGraphicsInternal method to allow providing
7852             a graphics context when no handle is created without triggering
7853             handle creation. (Part of fix for #77456)
7854           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7855         * TextControl.cs: 
7856           - Switched Constructor to require TextBoxBase instead of Control (to
7857             allow uncast access to CreateGraphicsInternal)
7858           - Safeguarded use of owner.Handle property. No longer accessing it
7859             unless the handle is already created.
7860           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7861           - Now triggering a recalc when owning control becomes visible
7862         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
7863           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
7864           premature handle creation (Part of fix for #77456)
7865         * Control.cs:
7866           - We now only destroy our double-buffering buffers when the
7867             control is resized or disposed, but not when visibility
7868             changes. (The code even re-created them twice every time)
7869           - Now requiring a redraw of the buffer on visibility changes
7870             (fixes bug 77654 part 2)
7871           - Not passing OnParentVisibleChanged up unless the control
7872             is visible
7873           - CanFocus: Fixed to match MS documentation
7874           - Focus: Fixed to return actual focus state and to check if
7875             setting focus is legal before setting it
7876
7877 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
7878
7879         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
7880           when to draw focus rectangle by looking at parent focus and
7881           selected state instead. This fixes TabPages on Linux sometimes
7882           having none or multiple focus rectangles.
7883         * XplatUIX11.cs (SetFocus): 
7884           - Don't set the focus if the same window already has focus
7885           - Use SendMessage instead of PostMessage (like it's Win32
7886             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
7887             to match MS behaviour
7888         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
7889           are not selectable.
7890
7891 2006-03-07  Jackson Harper  <jackson@ximian.com>
7892
7893         * PictureBox.cs: Revert line I accidently committed last week.
7894
7895 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7896
7897         * Control.cs: 
7898           - Added new IsRecreating and ParentIsRecreating properties to
7899             allow testing if RecreateHandle has been called on ourselves
7900             or one of our parents
7901           - WndProc(WM_DESTROY): If our control handle is being recreated
7902             we immediately need to create the handle when receiving the
7903             destroy, that way our child windows find a valid parent handle
7904             when they themselves are being recreated upon WM_DESTROY receipt
7905             (fix for bug #77654 part 1)
7906         * XplatUIX11.cs:
7907           - DestroyWindow: WM_DESTROY must be sent to our own window before
7908             notifying any child windows. MS documents that child windows
7909             are still valid when WM_DESTROY is received. (Control now relies on
7910             this behaviour)
7911           - Added some fine-grain debug options
7912
7913 2006-03-06  Jackson Harper  <jackson@ximian.com>
7914
7915         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
7916         box and base calculations off this.
7917         * MdiChildContext.cs:
7918         * MdiWindowManager.cs: Don't need to ensure scrollbars here
7919         anymore.
7920         
7921 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
7922
7923         * Splitter.cs: In situations where the affected control is added
7924           to the parent's control list after the splitter, we would not
7925           populate affected. Now we try populating it on mousedown, if
7926           it's not already set, and force it to be re-set whenever our
7927           parent changes.
7928
7929 2006-03-03  Matt Hargett  <matt@use.net>
7930
7931         * Control.cs: implement Control.Padding
7932         * Padding.cs: -Padding.All returns -1 when constructing with the
7933         implicit default ctor
7934         -Padding.ToString() matches MS.NET
7935         * ContainerControl.cs: implement
7936         ContainerControl.AutoScaleDimensions
7937         * ListControl.cs: implement ListControl.FormattingEnabled
7938         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
7939         * ButtonBase.cs:
7940         * TabPage.cs: Implement UseVisualStyleBackColor.
7941         * PictureBox.cs: Implement PictureBox.InitialImage.
7942
7943 2006-03-03  Mike Kestner  <mkestner@novell.com>
7944
7945         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
7946         event declarations to proxy to base event.
7947         * ListViewItem.cs: update to use ItemControl.
7948         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
7949         * ThemeWin32Classic.cs: update to new ListView theme API and fix
7950         column header label rendering for 0 width columns.
7951
7952 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
7953
7954         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
7955           that causes the control to be created. Fixes #77476.
7956
7957 2006-03-02  Jackson Harper  <jackson@ximian.com>
7958
7959         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
7960         expose_pending.
7961
7962 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
7963
7964         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
7965           passed in for the EventArgs (fixes #77690)
7966
7967 2006-03-01  Jackson Harper  <jackson@ximian.com>
7968
7969         * ScrollBar.cs: Refresh afterbeing resized.
7970
7971 2006-02-28  Mike Kestner  <mkestner@novell.com>
7972
7973         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
7974         Clean up a tracker compile warning.
7975         * MenuItem.cs: add internal PerformPopup method.
7976         [Fixes #77457]
7977
7978 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7979
7980         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
7981           implicit expose) when the text is set to null
7982
7983 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
7984
7985         * RichTextBox.cs (FlushText): When newline is true, we always
7986           need to split the line, even if no text is on it and we may
7987           never eat newlines. (Fixes #77669)
7988
7989 2006-02-28  Mike Kestner  <mkestner@novell.com>
7990
7991         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
7992         and set Selected instead.
7993         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
7994         collections.
7995
7996 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7997
7998         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
7999
8000 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
8001
8002         * FontDialog.cs:
8003           - Got rid of the panel. All controls are now directly added to
8004             the dialog form
8005           - It is now possible to set a font with the Font property
8006           - MinSize and MaxSize property do now what they should
8007           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
8008           - Searching and selecting a font with the font textbox works now,
8009             the same applies to the style and size textbox
8010           - Draw the correct 3D border in the example panel
8011           - Fixed a little mem leak (unused fonts didn't get disposed)
8012           - Many other internal updates/rewrites...
8013           - Fix typo
8014
8015 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
8016
8017         * TextControl.cs: 
8018           - InsertRTFFromStream: Added 'number of characters inserted' argument
8019           - set_SelectedRTF: Now using the number of characters to calculate
8020             the new location for the selection and cursor (x/y cannot be used
8021             due to potentially already wrapped text)
8022
8023 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
8024
8025         * TextControl.cs: Added property and implemented means to allow 
8026           disabling recalculation of a document (can be used to speed up
8027           multiple inserts and is needed to make RTF inserts predictable, see
8028           bug #77659)
8029         * RichTextBox.cs: Using the new NoRecalc property of Document to
8030           keep x/y insert locations predictable. Also makes it faster inserting
8031           large chunks of RTF
8032
8033 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
8034
8035         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
8036           it's easier for a child control to handle the other messages without
8037           having to duplicate the special functionality
8038         * TextBoxBase.cs
8039           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
8040             code to handle processing the key ourselves, in order to get 
8041             access to the result of KeyEventArgs.Handled. We now only call 
8042             ProcessKey if they key hasn't been handled already. Fixes #77526.
8043           - set_Text: If null or empty string is given, just clear the 
8044             document. Fixes part of #77526
8045
8046 2006-02-27  Jackson Harper  <jackson@ximian.com>
8047
8048         * SizeGrip.cs: Paint the background color before painting the grip
8049         so things look right.
8050         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
8051
8052 2006-02-27  Mike Kestner  <mkestner@novell.com>
8053
8054         * ListView.cs:
8055           - Restructure layout and invalidation model to remove a ton of
8056           flicker from the control and speed up performance in general.
8057           - Add manual column resize, flickers like crazy, but I already have
8058           some ideas on how I'll fix that. (#76822)
8059           - Merge the three Icon-based views into a single layout method.
8060           - Move item selection interaction logic from the item since 
8061           interaction with the collections is more appropriate to the view.
8062           - Deselection on non-item clicks.
8063         * ListViewItem.cs:
8064           - Encapsulate most of the layout. Add some internal props to trigger
8065           layout.  Move to a model where Items invalidate themselves instead
8066           of just invalidating the whole control every time something changes.
8067           - Invalidate on Text/Caption changes.
8068           - switch to an offset based layout model to avoid having to absolute
8069           position every element on item moves.
8070           - correct checkbox layout to conform to MS layout.
8071         * ThemeWin32Classic.cs:
8072           - refactor some column header drawing code.
8073           - fix string justification for column headers (#76821)
8074           - make SmallIcon labels top justified for compat with MS impl.
8075         * ThemeClearlooks.cs:
8076           - adjust to new ListViewItem internal checkbox bounds api.
8077
8078 2006-02-27  Jackson Harper  <jackson@ximian.com>
8079
8080         * Control.cs:  Change where implicit controls fall in the zorder.
8081         They are now on top of all children.
8082         - Synced AddImplicit code with Add
8083         - Removed unused enumerator.
8084         * SizeGrip.cs: Remove the TODO as its been TODONE.
8085
8086 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
8087
8088         * TextControl.cs(Insert): Combine the last lines unless the insertion
8089           string ends with \n\n, otherwise we leave one line too many (Fixes
8090           something I noticed with the testapp for #77526; the bug itself was
8091           already fixed in the previous checkin)
8092
8093 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
8094
8095         * RichTextBox.cs:
8096           - SelectionColor and SelectionFont methods no longer set absolute
8097             styles. Instead, the keep font or color respectively (This 
8098             resolves a long-standing FIXME in the code)
8099           - When flushing RTF text, the insert code now considers text trailing
8100             behind the insertion point (Fixes the bug where when replacing
8101             the selected text via SelectedRTF the remainder of the line behind 
8102             the selection would stay on the first insertion line)
8103         * TextBoxBase.cs:
8104           - AppendText now updates the selection points after inserting text
8105           - AppendText now ensures that the last tag (sometimes 0-length) of
8106             the document is used for the style information (Fixes part of 
8107             bug #77220)
8108         * TextControl.cs:
8109           - Created new FontDefiniton class to allow describing partial style
8110             changes
8111           - StreamLine() now takes a lines argument, to allow it to decide
8112             whether an encountered zero-length tag is the last in the document
8113             (which must be kept to not loose the font/color contained in it,
8114             for later appends)
8115           - Created Combine() and Split() methods for Marker structs, to 
8116             support marker updates due to reformatted documents (soft line
8117             wraps)
8118           - Implemented Document.CaretTag setter
8119           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
8120             of the last line (Not the cause, but also exposed by bug #77220)
8121           - Added LineTag argument to InsertString method, to allow callers
8122             to force a certain tag to be used (required to force use of the
8123             trailing zero-length tag of a document)
8124           - Now updating markers in Combine(), to avoid stale tag markers
8125           - Added some method descriptions to aid maintenance
8126           - Implemented new FormatText concept, allowing additive/subtractive
8127             formatting by only specifying the components that are to be 
8128             changed. This was needed for resolving the RTB.SelectedColor/
8129             RTB.SelectedFont fixmes
8130           - Added Break() support method to allow breaking up linetags (used
8131             for partial formatting)
8132           - Added GenerateTextFormat() method. It is used for partial 
8133             formatting and allows to generate a full font/color from given
8134             attributes and an existing tag.
8135
8136 2006-02-26  Jackson Harper  <jackson@ximian.com>
8137
8138         * XplatUIX11.cs:  Use the correct caption height.
8139         - Translate hittest coordinates to screen coords to match MS.
8140         * XplatUIWin32.cs: When we create MDI windows we need to reset
8141         some of the style flags, so we get a nice blank window, and can
8142         draw all the decorations ourselves.
8143         - Set a clipping rectangle on the non client paint event, the
8144         window manager drawing code needs one.
8145         * Form.cs: The window manager needs to know when the window state
8146         has been updated.
8147         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
8148         don't need to factor in border and title sizes in these
8149         methods. TODO: Remove the args and fix the call points.
8150         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
8151         properly.
8152         - Let the driver set the cursors.
8153         - Improve active window handling
8154         - Correct sizes for title bars and buttons.
8155         - Match MS drawing better
8156         * MdiWindowManager.cs: We don't need to handle border style
8157         updates specially anymore.
8158         - Check for scrollbars when windows are done moving
8159         - Handle Active properly.
8160         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
8161         correctly. I am spewing the exception though, so we don't hide the
8162         bugs.
8163         
8164 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
8165
8166         * DataGridViewRowPostPaintEventArgs.cs,
8167           DataGridViewCellPaintingEventArgs.cs,
8168           DataGridViewRowCollection.cs,
8169           DataGridViewRowPrePaintEventArgs.cs,
8170           DataGridViewCell.cs: Clear a few warnings and implement a few
8171           exceptions that should be thrown.
8172
8173 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8174
8175         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
8176           'inheriting' our parent's (non-default) cursor. (Part of
8177            the fix for #77479)
8178
8179 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
8180
8181         * XplatUIX11.cs: Fixed cast to make csc happy
8182
8183 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
8184
8185         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
8186           it's for the client area (part of fix for #77479 and needed
8187           for MDI window cursor handling)
8188         * XplatUIX11.cs
8189           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
8190             the appropriate default cursors and also passing the message
8191             up the parent chain 
8192           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
8193             for non-client areas
8194
8195 2006-02-15  Jackson Harper  <jackson@ximian.com>
8196
8197         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
8198         is a real MDI window
8199
8200 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
8201
8202         * X11DesktopColors.cs: Instead of checking the desktop session
8203           string for "KDE" check if it starts with "KDE"
8204
8205 2006-02-10  Jackson Harper  <jackson@ximian.com>
8206
8207         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
8208         systems).
8209
8210 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8211
8212         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
8213           errors
8214         * ColorDialog.cs:
8215           - Got rid of the panel. All controls are now directly added to
8216             the dialog form
8217           - Changed to mono coding style
8218
8219 2006-02-10  Jackson Harper  <jackson@ximian.com>
8220
8221         * InternalWindowManager.cs: We don't need the set visibility to
8222         false hack anymore now that peter has written beautiful shutdown
8223         code.
8224
8225 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
8226
8227         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
8228           where already explicitly destroyed
8229
8230 2006-02-10  Jackson Harper  <jackson@ximian.com>
8231
8232         * MdiClient.cs: Handle the case where windows are too high or to
8233         the left and we need scrollbars.
8234
8235 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
8236
8237         * MimeIcon.cs: Added some icons
8238         * FileDialog.cs:
8239           - Fixed bug #77477
8240           - Got rid of the panel. All controls are now directly added to
8241             the dialog form
8242           - Changed to mono coding style
8243           - On Linux "My Computer" and "My Network" will now show some
8244             more usefull information. A new class, MasterMount, gathers
8245             this information from /proc/mount. Updated MWFFileView to make
8246             use of this information
8247           - Fixed a bug that caused FileDialog to crash when
8248             ".recently_used" file had a zero size
8249           - FilterIndex does now what it should
8250           - Some Refactoring
8251         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
8252             FileDialog changes
8253
8254 2006-02-09  Jackson Harper  <jackson@ximian.com>
8255
8256         * ComboBox.cs: Don't touch if null.
8257
8258 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
8259
8260         * Cursor.cs: 64bit safeness fix
8261         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
8262
8263 2006-02-09  Jackson Harper  <jackson@ximian.com>
8264
8265         * Form.cs: If a form is made into an MDI form update the styles so
8266         all the props can get set correctly.
8267         - Kill the mdi_container when we dont need it anymore.
8268         * InternalWindowManager.cs: Add missing NOT
8269
8270 2006-02-08  Jackson Harper  <jackson@ximian.com>
8271
8272         * InternalWindowManager.cs: Respek clipping when drawing MDi
8273         decorations.
8274
8275 2006-02-08  Jackson Harper  <jackson@ximian.com>
8276
8277         * Hwnd.cs: Add bits to track non client expose events.
8278         * XplatUIX11.cs: Track non client expose events on the hwnd. This
8279         gives us a proper invalid rect and will allow for some nice
8280         optimizations with NC client drawing
8281         - MDI windows are children windows, so move their style handling
8282         into the child window block.
8283         * InternalWindowManager.cs: Remove a state reset that was
8284         getting invoked at the wrong time. Fixes managed windows getting
8285         into a 'stuck' captured state.
8286
8287 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8288
8289         * TextControl.cs (Document.ctor): Now initializing 
8290           selection_anchor. Fixes #77493
8291
8292 2006-02-07  Jackson Harper  <jackson@ximian.com>
8293
8294         * TrackBar.cs: The increment/decrements were backwards.
8295
8296 2006-02-07  Mike Kestner  <mkestner@novell.com>
8297
8298         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
8299         to the instance itself.
8300
8301 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
8302
8303         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
8304           on ulongs and pointers, the size differs between 32bit and 64bit
8305           systems. 
8306
8307 2006-02-07  Mike Kestner  <mkestner@novell.com>
8308
8309         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
8310         for 64 bit platforms to work around a metacity bug. 
8311
8312 2006-02-07  Jackson Harper  <jackson@ximian.com>
8313
8314         * TrackBar.cs: Process the input keys we need, and hookup to
8315         KeyDown instead of using WndProc, so we get key messages.
8316
8317 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
8318
8319         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
8320           machine we're on. 
8321         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
8322           we need to translate the XdndVersion atoms array before sending it
8323
8324 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
8325
8326         * XplatUIX11.cs: 
8327           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
8328             number of bits for the property, not the number of bytes. The
8329             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
8330             but would not crash since it specified 8 bits instead of 4 bits)
8331           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
8332             defined as XID -> long in the C headers)
8333           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
8334             references since those are now IntPtr to begin with
8335           - Switched all Atom.XXX 'int' casts to IntPtr casts
8336           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
8337           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
8338           - Added XChangeActivePointerGrab DllImport (for X11DnD)
8339         * X11Structs.cs:
8340           - Changed 'int' type for Atoms in XEvent structures to IntPtr
8341           - Changed atom in HoverStruct to be IntPtr
8342         * X11DnD.cs:
8343           - Removed local DllImports, switched code to use those from XplatUIX11
8344           - Removed/fixed casts related to the switch of Atom to be a IntPtr
8345
8346 2006-02-06  Mike Kestner  <mkestner@novell.com>
8347
8348         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
8349         method signatures in the import region.  There may still be some
8350         lingering struct marshaling issues, as I didn't drill down into those.
8351         Yet.
8352
8353 2006-02-06  Jackson Harper  <jackson@ximian.com>
8354
8355         * ComboBox.cs: Dont manually set the top_item, this is computed
8356         when the scrollbar position is set.
8357
8358 2006-02-06  Mike Kestner  <mkestner@novell.com>
8359
8360         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
8361         startup crashes on amd64.  There's other fixes needed.  All pinvoke
8362         usage of Atom needs to be mapped to IntPtr for example.  And there are
8363         likely other int/long issues to be addressed.
8364
8365 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
8366
8367         * FileDialog.cs: One more...
8368
8369 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8370
8371         * FileDialog.cs: Next try
8372
8373 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8374
8375         * FileDialog.cs: First part of fix for #77464
8376
8377 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
8378
8379         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
8380           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
8381           AcceptButton border drawing.
8382
8383 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
8384
8385         * Form.cs: Moved positioning of form after auto scaling is applied,
8386           otherwise it would possibly use wrong form size.
8387
8388 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
8389
8390         * Control.cs (RecreateHandle): No need to re-create any child
8391           controls, the child windows will get destroyed automatically by
8392           the windowing system or driver, and re-created when the handle
8393           is being accessed the first time. Fixes #77456
8394         * Form.cs: No longer setting the form to closing if the handle is 
8395           being recreated. This seems like the right thing to do, don't
8396           have a bug or testcase for this, though.
8397
8398 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8399
8400         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
8401           controls to avoid unwanted side effects
8402
8403 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
8404
8405         * Control.cs: 
8406           - ScaleCore needs to scale the bounds, not the ClientSize of the 
8407             control. Fixes #77416.
8408           - DefaultSize is 0,0 for control
8409         * TextBoxBase.cs: 
8410           - DefaultSize is 100, 20
8411           - SetBoundsCore: Now enforcing the height, no matter if the provided
8412             height is more or less than the preferred one, as long as AutoSize
8413             is on
8414         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
8415
8416 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
8417
8418         * Control.cs:
8419           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
8420             call unless both performLayout is true *and* we have a pending
8421             layout change
8422           - ResumeLayout: MS does not completely nest Suspend and Resume,
8423             they bottom out at 0, fixed our code to match that.
8424           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
8425             SetBoundsCore, we were updating even when we shouldn't. This fixes
8426             swf-anchors mis-anchoring when resizing the app fast and lots.
8427           - UpdateDistances: Now only setting the left and top distance if 
8428             we have a parent and are not suspended, this is based on
8429             a suggestion by Don Edvaldson in bug #77355.
8430           - OnVisibleChanged: Fixed logic when to create the control. We may
8431             not create the control if we have no parent or if it's not visible;
8432             switched to using Visible property instead of is_visible field 
8433             since the property also considers parent states. This fixes a bug
8434             when starting Paint.Net
8435
8436 2006-02-02  Jackson Harper  <jackson@ximian.com>
8437
8438         * Form.cs: If the forms handle hasn't been created yet don't call
8439         into xplatui to make it top most, just set the topmost flag on the
8440         form in CreateParams
8441         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
8442
8443 2006-02-01  Jackson Harper  <jackson@ximian.com>
8444
8445         * ScrollableControl.cs: Refactored the Recalculate method a
8446         little, this wasn't handling all the variants of bottom and right
8447         bars needed to be added and added/removed based on their
8448         counterparts being added/removed (which changes the drawable
8449         size). Also we special case client widths and heights of 0 and
8450         don't add the scrollbar for those.
8451
8452 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
8453
8454         * XplatUIX11.cs: 
8455           - Added method to get AbsoluteGeometry(); currently unused, but might
8456             be used in the future, if we try again to figure out toplevel
8457             coordinates with some more crappy window managers
8458           - Added FrameExtents() method to retrieve the WM set decoration size
8459           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
8460             to deal with at least KDE, FVWM and metacity (Fixes #77092)
8461         * Hwnd.cs: 
8462           - Added whacky_wm tracking var for metacity
8463           - Added logic to have default menu height if the actual menu height
8464             has not yet been calculated (part of fix for #77426)
8465         * Form.cs: Keep track whether client size has been set and re-set 
8466           it if a menu is added/removed afterwards (Fixes #77426)
8467
8468 2006-01-31  Jackson Harper  <jackson@ximian.com>
8469
8470         * Control.cs: When a new Site is set on the component attempt to
8471         pull the AmbientProperties from it.
8472
8473 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
8474
8475         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
8476           in the background of the owning form. Fixes #77332
8477
8478 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8479
8480         * MimeIcon.cs: Fix for #77409
8481
8482 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
8483
8484         * XplatUIX11GTK.cs: Initial import
8485
8486 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
8487
8488         * FixedSizeTextBox: fixes class signature
8489
8490 2006-01-30  Jackson Harper  <jackson@ximian.com>
8491
8492         * FixedSizeTextBox.cs: New internal class that represents a
8493         textBox that will not be scaled.
8494         * TreeView.cs:
8495         * ComboBox.cs:
8496         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
8497         standard TextBox.
8498                 
8499 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
8500
8501         * XplatUIX11.cs: Retrieve default screen number instead of
8502           assuming 0. Attempted fix for #77318
8503
8504 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
8505
8506         * XplatUIWin32.cs: 
8507           - GetWindowPos: When a window is parented by FosterParent, use 
8508             the desktop instead of FosterParent as the base to get coordinates
8509           - CreateWindow: Don't make FosterParent the parent window for Popups
8510             if we don't want a taskbar entry, Popups automatically don't get one
8511         * Hwnd.cs: Need to call remove to actually remove the key from the
8512           hash table
8513
8514 2006-01-30  Mike Kestner  <mkestner@novell.com>
8515
8516         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
8517
8518 2006-01-30  Jackson Harper  <jackson@ximian.com>
8519
8520         * TreeView.cs:
8521         * TreeNode.cs: Raise events no matter how the treenode is
8522         checked. Patch by Don Edvalson.
8523
8524 2006-01-30  Jackson Harper  <jackson@ximian.com>
8525
8526         * TreeNode.cs: Signature fix.
8527
8528 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
8529
8530         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
8531
8532 2006-01-20  Mike Kestner  <mkestner@novell.com>
8533
8534         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
8535         event forwarding when menus are active.
8536         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
8537         Most of the patch is pdb's with a little rework.
8538
8539 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8540
8541         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
8542           Removed GetMenuDC and ReleaseMenuDC methods; replaced
8543           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
8544         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
8545         * InternalWindowManager.cs: Added use of PaintEventStart/End to
8546           handling of WM_NCPAINT message, now passing the PaintEventArgs to
8547           the PaintWindowDecorations method
8548         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
8549         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
8550         * MenuAPI.cs: Made tracker window invisible
8551         * XplatUIWin32.cs:
8552           - Removed GetMenuDC and ReleaseMenuDC methods
8553           - Implemented the client=false path for PaintEventStart and
8554             PaintEventEnd
8555
8556 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8557
8558         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
8559         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
8560           styles
8561         * Form.cs: 
8562           - MaximizeBox, MinimizeBox: Recreate the handle when setting
8563             the style
8564           - CreateParams: Reworked the styles to match MS look'n'feel,
8565             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
8566             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
8567
8568 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8569
8570         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
8571           window is not mapped, since otherwise every form that's being 
8572           created is considered minimized, which is wrong.
8573         * Form.cs: Catching the exception and returning our internal value
8574           instead
8575
8576 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8577
8578         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
8579           SetWindowMinMax() to have means to tell the driver about the minimum,
8580           maximum and maximized state window sizes. (Part of the fix for #76485)
8581         * Form.cs:
8582           - Implemented tracking of minimum and maximum window size, now calling
8583             new SetWindowMinMax() driver method to tell the driver (Part of the
8584             fix for #76485)
8585           - Finished handling of WM_GETMINMAXINFO method, now setting all values
8586             (Completes fix for #76485)
8587           - Calling new SetWindowMinMax driver method when the handle for a 
8588             form is created, to make sure the driver knows about it even if
8589             the values have been set before the window was created
8590           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
8591             to avoid messing up our anchoring calculations (partial fix
8592             for #77355)
8593         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
8594         * XplatUIX11.cs:
8595           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
8596           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
8597             (and presumably other freedesktop.org compliant WMs). Left the
8598             assumption unmapped=minimized, needed for SetVisible to work.
8599           - Now setting the window state when creating windows
8600           - Fixed SetVisible to consider/set the window state when mapping
8601             a Form. We cannot set the state before it's mapped, and we cannot
8602             use Form.WindowState once it's mapped (since it would ask the
8603             driver and get 'normal'. Therefore, we grab the state before
8604             mapping, map, and then set state.
8605           - Implmemented SetWindowMinMax method; Metacity does not seem to
8606             honor the ZoomHints, though.
8607         * XplatUIWin32.cs:
8608           - Removed MINMAXINFO (moved to XplatUIStructs)
8609           - Added SetWindowMinMax stub (on Win32 the only way to set that
8610             information is in response to the WM_GETMINMAXINFO message, which
8611             is handled in Form.cs)
8612           - Added logic to SetVisible to set the proper window state when a 
8613             form is made visible (fixes #75720)
8614
8615 2006-01-26  Jackson Harper  <jackson@ximian.com>
8616
8617         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
8618         same way we handle them with Invoke.
8619
8620 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
8621
8622         * Form.cs:
8623           - Added tracking of window state so CreateParams can return
8624             the appropriate style
8625           - Moved setting of WS_CAPTION style in CreateParams to allow
8626             styles without caption
8627         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
8628           control if the TextBox property is accessed. Fixes #77345
8629         * Control.cs:
8630           - get_Created: now uses is_disposed and is_created to determine
8631             return value (suggested by Jackson)
8632           - CreateHandle: No longer exits if the handle is being recreated
8633           - RecreateHandle: If the handle is not yet created call the 
8634             appropriate method to create either control or handle. If the
8635             control is already created CreateHandle will simply exit instead
8636             of just creating the handle
8637         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
8638           now SendMessage WM_DESTROY directly to the control when DestroyWindow
8639           is called.
8640         * XplatUIX11.cs: 
8641           - When DestroyWindow is called, instead of waiting for the 
8642             DestroyNotification from X11, we directly post it to the WndProc
8643             and immediately dispose the hwnd object.
8644             Same applies to DestroyChildWindows, and this obsoletes the
8645             expose_pending tracking. Contrary to Win32 behaviour we destroy our
8646             child windows before our own, to avoid X11 errors.
8647           - Removed the direct sending of WM_PAINT on UpdateWindow
8648         * XplatUIWin32.cs:
8649           - Reworked DoEvents and GetMessage to allow access to internal queue
8650             even when trying non-blocking access to the queue.  Fixes #77335. 
8651             Based on a patch suggestion by Don Edvalson. The new private
8652             GetMessage can now also be used as a backend for a PeekMessage
8653             frontend version.
8654         * XplatUI.cs: Improved debug output for CreateWindow
8655
8656 2006-01-25  Jackson Harper  <jackson@ximian.com>
8657
8658         * Help.cs: Allow param to be null. Patch by Don Edvalson.
8659
8660 2006-01-24  Jackson Harper  <jackson@ximian.com>
8661
8662         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
8663         when we have a MaxDropItems lower then the selected index.
8664
8665 2006-01-24  Jackson Harper  <jackson@ximian.com>
8666
8667         * Control.cs: Don't allow selection of non visible controls, allow
8668         selection of controls without parents.
8669
8670 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8671
8672         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
8673         * DataGridDrawingLogic.cs: Add editing row only when is necessary
8674
8675 2006-01-23  Jackson Harper  <jackson@ximian.com>
8676
8677         * UpDownBase.cs: Make the textbox handle all the selection and
8678         tabbing. This fixes tabing to updown controls.
8679
8680 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8681
8682         * TextBoxBase.cs: fixes exception thown the object was null
8683
8684 2006-01-23  Jackson Harper  <jackson@ximian.com>
8685
8686         * ButtonBase.cs: Just use the base CreateParams. They set
8687         visibility and enabled correctly.
8688         * ComboBox.cs:
8689         * TrackBar.cs:
8690         * MonthCalendar.cs: Lets let the base set as much of the
8691         createparams as possible so we don't have duplicate code all over
8692         the place.
8693
8694 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
8695
8696         * ThemeGtk.cs: Added TrackBar and some experimental code to
8697           get double buffering back
8698
8699 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
8700
8701         * DataGrid.cs: Allows row number set internally higher than the last
8702         when creating a new row. Restores the editing functionality.
8703
8704 2006-01-20  Mike Kestner  <mkestner@novell.com>
8705
8706         * MimeIcon.cs: delay Image creation until the icons are accessed
8707         instead of creating 190 scaled images on GnomeHandler startup.
8708
8709 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
8710
8711         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
8712           first call base before processing the event. Fixes #77279
8713
8714 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
8715
8716         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
8717           that the stride for the GDI bitmap would match the stride of
8718           a DIB or a Cursor.
8719
8720 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
8721
8722         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
8723
8724 2006-01-19  Jackson Harper  <jackson@ximian.com>
8725
8726         * ComboBox.cs: Hookup the text controls keydown event so we get
8727         those when the text control has the focus.
8728
8729 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8730
8731         * Label.cs: Now using the base events instead of defining new ones;
8732           this allows us to just call the base properties without having to
8733           duplicate all base property logic 
8734
8735 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8736
8737         * Label.cs: A label by default is not a tabstop (Fixes one of our
8738           failing nunit tests)
8739
8740 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8741
8742         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
8743         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
8744
8745 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8746
8747         * Cursor.cs: Reimplemented creating cursor bitmaps without using
8748           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
8749           This fixes #77218
8750         * XplatUIWin32.cs: 
8751           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
8752             constructor creates images that can't be saved. Part of the fix
8753             for #76103
8754           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
8755           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
8756             bug fix for handling window state in forms properly)
8757
8758 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8759
8760         * ThemeGtk.cs: Simplify ScrollBar drawing
8761
8762 2006-01-18  Jackson Harper  <jackson@ximian.com>
8763
8764         * Splitter.cs: Set the default dock style for the splitter control
8765         in the constructor.
8766
8767 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8768
8769         * ThemeGtk.cs: Corrected StateType and ShadowType for
8770           gtk_paint_box
8771
8772 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8773
8774         * Control.cs: Make use of Theme.DoubleBufferingSupported
8775         * ThemeGtk.cs:
8776           - Added drawing for flat style buttons
8777           - Added ScrollBar drawing
8778
8779 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8780
8781         * ThemeClearlooks.cs: Removed some unneeded code.
8782         * ThemeGtk.cs: First part of ThemeGtk enhancements.
8783
8784 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8785
8786         * LinkLabel.cs: We need to update the hover drawing when
8787           leaving the control as well.
8788
8789 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
8790
8791         * DataGrid.cs: Clicking on non empty areas in the columns
8792            area was giving an exception
8793
8794 2006-01-17  Jackson Harper  <jackson@ximian.com>
8795
8796         * ThemeWin32Classic.cs:
8797         * ListView.cs: Do not draw/clip the headers when the header style
8798         is None.
8799
8800 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8801
8802         * DataGrid.cs: Fixes 77260
8803         
8804 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8805
8806         * DataGrid.cs: Clicking on a column on a empty grid was giving
8807           an exception
8808
8809 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8810
8811         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
8812           or any keypress will crash the grid.
8813
8814 2006-01-17  Mike Kestner  <mkestner@novell.com>
8815
8816         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
8817         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
8818         invisible/previously-visible items.
8819         [Fixes #76909]
8820
8821 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
8822
8823         * ThemeClearlooks.cs:
8824         - Added CL_Draw_Button method; now other theme controls that are 
8825           not derived from button or do not have a button can draw buttons
8826           too
8827         - Updated ComboBox drawing
8828         - Beautified RadioButton drawing
8829         - Corrected drawing of bottom and left tabs
8830         - Beautified DateTimePicker and MonthCalendar
8831         - Added CPDrawButton and CPDrawRadioButton
8832
8833 2006-01-16  Jackson Harper  <jackson@ximian.com>
8834
8835         * ComboBox.cs: Set the initial value of the scrollbar to the
8836         current index. Reduce the numbers of refreshs and IndexOfs called.
8837
8838 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
8839
8840         * FileDialog.cs: When the file listview is focused hitting the
8841           backspace key moves the fileview to the parent directory
8842
8843 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8844
8845         * Form.cs: 
8846           - Added RecreateHandle call when changing taskbar visibility to 
8847             trigger reparenting in Win32 driver (Fixes #75719)
8848           - If a window has minimize or maximize buttons, it cannot have
8849             a help button
8850         * XplatUIWin32.cs:
8851           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
8852             the toplevel form with FosterParent (A toolwindow not on the
8853             taskbar) (Fixes #75719)
8854           - Made FosterParent a toolwindow
8855
8856 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8857
8858         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
8859
8860 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8861
8862         * ToolTip.cs: If SetToolTip is called from a control and the mouse
8863           is currently over that control, make sure that tooltip_window.Text
8864           gets updated
8865
8866 2006-01-13  Mike Kestner  <mkestner@novell.com>
8867
8868         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
8869
8870 2006-01-13  Jackson Harper  <jackson@ximian.com>
8871
8872         * TreeView.cs: On MS GetNodeAt never actually factors in the X
8873         value passed.  Also redraw the selected node when we recieve
8874         focus, so tabbing between trees works correctly.
8875
8876 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8877
8878         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
8879           ~/.gconf/%gconf-tree.xml, so use
8880           .gconf/desktop/gnome/interface/%gconf.xml
8881
8882 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8883
8884         * TextControl.cs: Draw text in gray if control is disabled
8885
8886 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8887
8888         * TreeView.cs: Draw the focus rectangle outside the highlight, to
8889           make sure it's always visible. Fixes #76680.
8890
8891 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8892
8893         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
8894
8895 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
8896
8897         * PageSetupDialog.cs: Added.
8898         * PrintDialog.cs: Attributes.
8899         * PrintPreviewControl.cs: Updates.
8900         * PrintPreviewDialog.cs: Updates.
8901         
8902 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8903
8904         * Control.cs: Undid my selection check fix, since it's not needed
8905         * TextBoxBase.cs:
8906           - Now considering the presence of hscroll/vscroll when sizing
8907             vscroll/hscroll respectively. Fixed bug #77077
8908           - Added Left/Up/Down/Right to IsInputKey list to prevent
8909             ContainerControl from stealing them. This fixes what I broke
8910             with my last checkin.
8911
8912 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
8913
8914         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
8915           I finally understand how the property can be set without a setter :-)
8916
8917 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8918
8919         * Application.cs:
8920           - Switched RunLoop to use static Message.Create to create a 
8921             Message object
8922           - Added PreProcessMessage call in runloop for keyboard events; this
8923             is part of the fix for #77219, I overlooked this originally in the
8924             MSDN doc for PreProcessMessage
8925         * Control.cs:
8926           - Removed call to PreProcessMessage from handling of keyboard 
8927             messages; it's supposed to be done in the message pump
8928           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
8929             per MSDN documentation.
8930           - IsInputChar: All chars are input chars by default; removed the 
8931             parent calling chain, MS does not document that
8932           - PreProcessMessage: If IsInputChar is true, we want to return false
8933             to allow dispatching of the message
8934           - When selecting the next control, now also check that we're not
8935             selecting ourselves again and therefore return a false positive.
8936         * TextBoxBase.cs:
8937           - Tried to match return values for IsInputKey and ProcessDialogKey
8938             to what MS returns; moved processing of our special keys outside
8939             ProcessDialogKey since MS does not seem to return true on those.
8940           - Moved code that previously was in ProcessDialogKey into new private
8941             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
8942           - Reworked handling of WM_CHAR to not have to duplicate code from
8943             Control.cs anymore, instead we simply call down to base.
8944            
8945 2006-01-12  Jackson Harper  <jackson@ximian.com>
8946
8947         * ComboBox.cs: We always need to refresh the text area when
8948         EndUpdate is called. Fixes the combobox in the file dialog.
8949         * Control.cs: Don't create the creator_thread until the controls
8950         handle is created.  Also in InvokeRequired we check if the
8951         creator_thread is null. This gives the effect of InvokeRequired
8952         returning true if the controls handle is not created yet, and
8953         matches MS.
8954
8955 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8956
8957         * XplatUI.cs:
8958           - Added StartLoop() driver method. This is used to allow drivers to
8959             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
8960             loop for a particular thread
8961           - Added EndLoop() driver method. This is called once the message
8962             pump for the thread is shut down
8963           - Added SupportsTransparency method to allow the driver to indicate
8964             opacity support for windows
8965         * Form.cs:
8966           - Removed TODO attribute, completed AllowTransparency property
8967           - Added documented logic to Opacity
8968         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
8969           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
8970           versions of CompatibleTextRendering
8971         * X11Structs.cs: Added opacity atom to our atom enumeration
8972         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
8973           of a form might be set before it's reparented by the WM, and we need
8974           the opacity value without calling up to Form)
8975         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
8976           SupportsTransparency() driver methods
8977         * Application.cs: Now calling StartLoop and EndLoop driver methods
8978         * XplatUIX11.cs:
8979           - Added opacity atom registration
8980           - Added StartLoop()/EndLoop() methods. They're empty right now but
8981             will need to get implemented when we switch to a per-thread queue
8982           - Implemented SupportsTransparency() method
8983           - Implemented SetWindowTransparency() method
8984           - Added support for setting the opacity value when a window is
8985             reparented (since the opacity needs to be set on the WM frame)
8986         * XplatUIOSX.cs, XplatUIWin32.cs:
8987           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
8988
8989 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8990
8991         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
8992
8993 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8994
8995         * FileDialog.cs: Added ToolTip for MWFFileView
8996         * MimeIcon.cs: Rewrote GnomeHandler.
8997           - Get currently used gnome icon theme from
8998             ($HOME)/.gconf/%gconf-tree.xml
8999           - Make use of inherited icon themes
9000           - Support SVG icon themes like Tango via librsvg
9001
9002 2006-01-12  Miguel de Icaza  <miguel@novell.com>
9003
9004         Revert's Jackson's revert which broke 2.0 builds.   Fix both
9005         builds. 
9006         
9007         * Application.cs: Move the use_compatible_text_rendering outside
9008         the NET_2_0 define.  If we ever need to use the
9009         use_compatible_text_rendering on the individual controls they will
9010         access the variable from the common shared code paths.
9011
9012 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
9013
9014         * XplatUI.cs:
9015           - Added more granular debug options
9016           - Added method to print both window text and id
9017           - Switched debug output to use new Window() debug method
9018           - Added IsEnabled() driver method
9019           - Added EnableWindow() driver method
9020         * Form.cs:
9021           - Removed end_modal; no longer needed, new loop handles termination
9022             via 'closing' variable
9023           - If form is modal, setting DialogResult will now initiate loop
9024             termination via 'closing' variable
9025           - Added support for is_enabled/WS_DISABLED to CreateParams
9026           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
9027             does all the work
9028           - Removed code that's now in RunLoop from ShowDialog()
9029           - Added various documented sanity checks to ShowDialog()
9030           - Added handling of WM_DESTROY message; we set 'closing' on getting
9031             the message to indicate the message pump to terminate
9032           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
9033             send by the Application.ExitThread method. (We send the message
9034             to destroy the window after all other events have been
9035             processed through the queue, instead of destroying the handle 
9036             directly)
9037           - Moved code from Close() method to WM_CLOSE handler; added logic
9038             to only send close-related events if the form is not displayed
9039             modal
9040         * Splitter.cs (..ctor): Fixed typo in resource name
9041         * Control.cs:
9042           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
9043             brush now
9044           - set_Cursor: Now only setting calling into XplatUI if the handle for
9045             the control is already created; this avoids implict handle creation
9046             or crashes if it's not created
9047           - set_Enabled: Now setting the enabled state via the new driver method
9048             instead of just tracking it
9049           - CreateParams: Added logic to set WS_DISABLED based on enabled state
9050           - CreateControl: Reordered event firing and method calls to more
9051             closely fire events in the order MS does. Now setting the
9052             enabled state in the driver when creating the control.
9053           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
9054             match MS order
9055         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
9056           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
9057         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
9058         * Hwnd.cs:
9059           - Added tracking of window enabled state (get_Enabled/set_Enabled)
9060           - Added EnabledHwnd property to easily allow a driver to find the
9061             handle of the first enabled window in the parent chain (this is
9062             used by drivers to pass up input events of disabled windows)
9063         * XplatUIDriver.cs: Added IsEnabled() method
9064         * Application.cs:
9065           - Removed crude and obsolete exiting tracking variable
9066           - Removed internal ModalRun(); replaced by RunLoop()
9067           - Implemented private CloseForms() method to allow closing all 
9068             windows owned by a particular (or all) threads
9069           - Exit() now properly closes all windows without forcing the message
9070             pump to quit
9071           - Removed obsolete InternalExit() method
9072           - Changed Run() methods to use new RunLoop() message pump
9073           - Implemented new RunLoop() method for both modal and non-modal forms
9074         * CommonDialog.cs:
9075           - get_CreateParams: Added setting of WS_DISABLED
9076           - Simplified ShowDialog(); now all the work is done in RunLoop(),
9077             invoked via Form.ShowDialog()
9078         * NativeWindow.cs: We don't remove the window from the collection when
9079           the handle is destroyed; there might still be messages for it in the
9080           queue (mainly the resulting WM_DESTROY); instead it will be removed
9081           when Control calls InvalidateHandle in the WM_DESTROY handler
9082         * XplatUIX11.cs:
9083           - CreateWindow: Added logic to handle the WS_DISABLED window style
9084           - EnableWindow: Implemented based on Hwnd.Enabled
9085           - GetMessage: Reset PostQuitState so the method can be called again
9086           - Implemented support for disabled windows (passing messages to the
9087             first enabled parent) in handling all input messages
9088           - Added optimizations for handling Expose events
9089           - Implemeted new driver method IsEnabled()
9090           - Now always resetting paint pending tracking vars when we start paint
9091           - Re-implemented UpdateWindow via just sending a WM_PAINT message
9092         * XplatUIOSX.cs: Added IsEnabled method stub
9093         * XplatUIWin32.cs: Implemented new IsEnabled() method
9094
9095 2006-01-11  Jackson Harper  <jackson@ximian.com>
9096
9097         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9098         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
9099         variables a little.
9100         * ColorDialog.cs: Clear out the old form before adding the new
9101         panel.  
9102
9103 2006-01-11  Jackson Harper  <jackson@ximian.com>
9104
9105         * X11Dnd.cs: Make sure to add all the text formats when adding
9106         strings to the data object.
9107         * TreeNodeCollection.cs: When adding to a sorted tree we need to
9108         do some redrawing too.  Also change the UpdateNode to an
9109         UpdateBelow so the newly added node gets painted.
9110         
9111 2006-01-11  Miguel de Icaza  <miguel@novell.com>
9112
9113         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
9114         LinkLabel.cs, PropertyGrid.cs: Implement the
9115         UseCompatibleTextRendering property for 2.x
9116
9117         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
9118
9119 2006-01-11  Jackson Harper  <jackson@ximian.com>
9120
9121         * TreeView.cs: Use the property for setting the selected node so
9122         the correct events get raised.
9123         * TreeNode.cs: Update the tree when the fore/back colours of a
9124         node are set.
9125
9126 2006-01-10  Jackson Harper  <jackson@ximian.com>
9127
9128         * TreeView.cs: Allow setting SelectedNode to null.
9129
9130 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9131
9132         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
9133
9134 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9135
9136         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
9137
9138 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9139
9140         * PrintDialog.cs: Added attributes and set default property values.
9141
9142 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9143
9144         * PrintControllerWithStatusDialog.cs: 
9145         Added PrintControllerWithStatusDialog.
9146
9147 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9148
9149         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
9150         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
9151
9152 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
9153
9154         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
9155
9156 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9157
9158         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
9159         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
9160
9161 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9162
9163         * MimeIcon.cs: Added internal class SVGUtil.
9164
9165 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
9166
9167         * FileDialog.cs: Don't crash if there are two files with the
9168           same name but different locations.
9169
9170 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
9171
9172         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
9173         dates across multiple month grids. Used to not highlight entire 
9174         month, but does now.
9175         
9176 2006-01-06  Jackson Harper  <jackson@ximian.com>
9177
9178         * MonthCalendar.cs: Removed DoEvents call to prevent a running
9179         message loop. Change timer intervals to numbers that seem more
9180         natural.
9181
9182 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
9183
9184         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
9185           object for location info since screen object is now implemented.
9186
9187 2006-01-05  Jackson Harper  <jackson@ximian.com>
9188
9189         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
9190         * AsyncMethodResult.cs: We no longer use a WeakReference for the
9191         AsyncMethodResult, this is because we ALWAYS want the
9192         ManualResetEvent to get set.
9193         * Control.cs: When disposing use an async invoke to call shutdown
9194         code, so that thigns don't block on the finalizer thread.  Also
9195         check if we even have a message loop before trying to send
9196         messages, if we don't then don't bother sending messages.
9197         - No more weak references for async methods
9198         * XplatUIDriver.cs: No more weak references for async methods.
9199
9200 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9201
9202         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
9203           returns two FontFamily with the same name
9204
9205 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9206
9207         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
9208           drawing disabled text. Instead using the ColorGrayText color
9209
9210 2006-01-04  Jackson Harper  <jackson@ximian.com>
9211
9212         * TreeNode.cs: redraw the node when its image index is changed.
9213
9214 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
9215
9216         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
9217           time I checked there are no others like it.
9218
9219 2006-01-04  Jackson Harper  <jackson@ximian.com>
9220
9221         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
9222         this gives the behavoir I was looking for.
9223         * Control.cs: Special case Invoking EventHandlers, this matches MS
9224         and fixes part of bug #76326.
9225
9226 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9227
9228         * ThemeClearlooks.cs, FileDialog.cs:
9229           - Reflect the latest Theme class changes
9230           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
9231             with DateTime
9232             
9233 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
9234
9235         * Theme.cs: Cache UI resource images and resize them if needed
9236
9237 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9238
9239         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
9240           is called. This fixes the crash in Nexxia when setting the font
9241           attributes in the chat. [However, RTF needs a look-over to make sure
9242           that all SelectionXXX methods handle the special case that selection
9243           is empty and therefore the change must be applied to all text starting
9244           at the cursor/selection start]
9245
9246 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
9247
9248         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9249           XplatUIOSX.cs: Added SendMessage and PostMessage methods
9250         * X11Keyboard.cs: Switched to new way of calling PostMessage
9251
9252 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
9253
9254         * Theme.cs: Added theme interface for images to allow the theme to
9255           control what images are used for things like FileDialog, MessageBox
9256           icons, etc.
9257         * MessageBox.cs: Now uses the new Theme icon/image interfaces
9258
9259 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
9260
9261         * FileDialog.cs:
9262           - Removed some dead code
9263           - Opening a recently used file does work now
9264           - Small UI enhancements
9265           - Refactoring
9266
9267 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9268
9269         * FileDialog.cs: Forgot too add __MonoCS__
9270
9271 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
9272
9273         * FileDialog.cs: We are able to read recently used files now let's
9274           go on and write them.
9275
9276 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
9277
9278         * FileDialog.cs: Breathe some life into "last open"/"recently used"
9279           button
9280         * MimeIcon.cs: Do a check for the top level media type also
9281
9282 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9283
9284         * ThemeClearlooks.cs:
9285           - Added CPDrawStringDisabled
9286           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
9287             some chars if the text doesn't fit into text_rect
9288           - DrawListViewItem: If View = View.LargeIcon center the image;
9289             rewrote the drawing of ListViewItem.Text if View = 
9290             View.LargeIcon
9291
9292 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
9293
9294         * MimeIcon.cs: Use default KDE icon theme if there is no
9295           "48x48" directory for the current icon theme, fixes #77114
9296         * Mime.cs: Disable not working and actually not used code. 
9297         * ThemeWin32Classic.cs:
9298           - Replace "new SolidBrush" in GetControlBackBrush and
9299             GetControlForeBrush with ResPool.GetSolidBrush
9300           - Changed DrawListViewItem from private to protected virtual
9301         * FileDialog.cs:
9302           - Added form.MaximizeBox = true
9303           - Don't throw an exception if there is a broken symbolic link
9304
9305 2005-12-23  Jackson Harper  <jackson@ximian.com>
9306
9307         * TabControl.cs: Give the panels focus, keyboard navigation is
9308         fixed so this works correctly now.
9309         - We need these key events also.
9310         * ToolBar.cs: Remove some of the poor mans double buffering.
9311         
9312 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
9313
9314         * ComboBox.cs: The internal TextBox now returns the focus.
9315
9316 2005-12-23  Jackson Harper  <jackson@ximian.com>
9317
9318         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
9319
9320 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9321
9322         * Control.cs: Removed debug code
9323         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
9324           implicit children
9325
9326 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
9327
9328         * Control.cs: When creating the control, update the Z-order after
9329           all it's children are created, too. (Fixes nexxia not showing
9330           picturebox bug)
9331
9332 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
9333
9334         * Control.cs: Do not update the anchoring distances if layout is
9335           suspended, instead do it once layout is resumed
9336
9337 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
9338
9339         * Control.cs: 
9340           - After many hours of debugging, for both Jackson and
9341             myself, it turns out that it helps to set the parent of a control
9342             if you want to actually see it onscreen. In the spirit of that
9343             discovery, we're now setting the parent of the control and
9344             it's children when the control's handle is created. This fix
9345             will make Lutz Roeder's Reflector run happily. 
9346           - now just creating the handle instead of the whole control when
9347             getting a graphics context for the control.
9348
9349 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9350
9351         * ScrollableControl.cs: When calculating the canvas, don't consider
9352           the scrollbar widths. Instead, predict if horizontal scrollbar
9353           will affect canvas when deciding on vertical display and vice versa.
9354
9355 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
9356
9357         * RichTextBox.cs: Set default RTF font for documents that don't
9358           have a font table (Fixes #77076)
9359
9360 2005-12-22  Jackson Harper  <jackson@ximian.com>
9361
9362         * TextBoxBase.cs: It's difficult to do, but you can have an empty
9363         clipboard. This prevents a NullRef in that case.
9364         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
9365         clipboard. PRIMARY is for the currently selected text only. (We
9366         should implement PRIMARY at some point.
9367
9368 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9369
9370         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
9371           a Unicode function with a structure that was defined in Ansi way.
9372           This fixes #76942.
9373
9374 2005-12-21  Jackson Harper  <jackson@ximian.com>
9375
9376         * StatusBar.cs: Statusbar handles its fore/back colours on it's
9377         on. Because thats how it rolls. (and this avoids it using ambient
9378         colours).
9379         * ThemeWin32Classic.cs: Use the proper back color for filling.
9380         * Menu.cs: Use the system menu bar color for drawing menu
9381         bars. Using the window back color will bring ambient colours into
9382         the picture.
9383
9384 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
9385
9386         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
9387           Bitmaps were created and not disposed.
9388
9389 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9390
9391         * Control.cs (CreateControl): Don't do anything if the control is
9392           already created, otherwise we'd fire the OnCreated event more than
9393           once
9394
9395 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9396
9397         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
9398           will always match. Instead return -1. Fixes #76464.
9399
9400 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
9401
9402         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
9403           neither the beginning nor the end of the line (Fixes bug #76479)
9404
9405 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
9406
9407         * Control.cs:
9408           - ControlNativeWindow.ControlFromHandle(): Now handling situation
9409             where handle is invalid
9410           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
9411             instead of slower linear search
9412         * NativeWindow.cs: Don't remove the window from the hashtable until
9413           after the driver has destroyed it (since the driver might use
9414           Control.FromHandle to lookup the control object
9415         * Hwnd.cs: Added DestroyPending property to track if a window is 
9416           already destroyed as far as the driver is concerned and only hasn't
9417           yet notified the control
9418         * XplatUIX11.cs:
9419           - Activate(): Check if the window is still valid before using the 
9420             handle
9421           - Implemented DestroyChildWindow() method to mark child windows as
9422             destroyed when a window is destroyed. This prevents situations 
9423             where we might call an X method based on queued events for a
9424             window that already has been destroyed but we haven't yet pulled
9425             the destroy method from the queue.
9426           - Added a call to the new DestroyChildWindow() method to the drivers
9427             DestroyWindow code. Also now marking the destroyed window itself
9428             as pending
9429
9430 2005-12-20  Jackson Harper  <jackson@ximian.com>
9431
9432         * StatusBar.cs:
9433         * StatusBarPanel.cs: Don't calculate panel sizes on draw
9434         anymore. Just do them when needed, also track the rects of panels
9435         so that we can optimize refreshing more in the future.
9436
9437 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
9438
9439         * ColorDialog.cs: Fixed focus drawing in small color controls
9440
9441 2005-12-19  Jackson Harper  <jackson@ximian.com>
9442
9443         * InternalWindowManager.cs:
9444         * MdiWindowManager.cs: Cleanup some coordinate system changes so
9445         moving windows works properly.
9446
9447 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
9448
9449         * Control.cs: 
9450           - Removed call to InitLayout() from SetBoundsCore(); doc says
9451             it's only called when a control is added to a container
9452           - Split InitLayout logic, moved to separate UpdateDistances() method
9453             since we need to perform those calculations more often than just
9454             when adding the control to a container. (Needed to fix #77022)
9455           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
9456           - Reduced the OnBindingContextChanged events count, don't send them
9457             unless the control is created, we still aren't totally matching
9458             MS, but I can't quite figure out some of their rules
9459
9460 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9461
9462         * ThemeClearlooks.cs: Corrected distance between ProgressBar
9463           stripes
9464
9465 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9466
9467         * ThemeClearlooks.cs:
9468           - Updated ProgressBar drawing
9469           - Corrected drawing of ScrollBars and scroll buttons
9470           - Some temporary fixes for minor pixel artefacts
9471
9472 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
9473
9474         * Control.cs:
9475           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
9476             cause events to be sent in the same order as MS does.
9477           - Added ChangeParent() method to trigger various OnXXXChanged events
9478             that need to be fired when a parent changes (This is a reworking
9479             of the patch from r54254, with the X11 errors fixed)
9480           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
9481             since on MS we get OnLayoutChanged events when calling Clear()
9482           - Changed Enabled property to consider parent state as well, if a
9483             parent is not enabled, the control will not be either
9484           - Changed Parent property to simply call Controls.Add() since that
9485             now does all the work required, this way we avoid code duplication
9486           - Threw in a few OnBindingsContextChanged calls to try and match
9487             when MS sends them. We seem to send a few too many, though.
9488           - Added call to CreateControl when adding the control to a parent.
9489             We were never calling CreateControl. Still needs some work, in
9490             some places we treat HandleCreated and ControlCreated as equal, 
9491             which is wrong
9492           - Removed obsolete commented out code from UpdateZOrder()
9493
9494 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
9495
9496         * ThemeClearlooks.cs: Updated TrackBar drawing.
9497
9498 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9499
9500         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
9501
9502 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9503
9504         * FileDialog.cs: Add the Help button and the open readonly
9505           checkbox only if needed
9506
9507 2005-12-16  Jackson Harper  <jackson@ximian.com>
9508
9509         * Control.cs: Make sure we have an active menu before trying to
9510         process commands on it. Prevents menu-less forms from crashing
9511         when Alt is pressed.
9512         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
9513         Dieter Bremes.
9514         * RichTextBox.cs: Expand statement to help out gmcs and fix the
9515         2.0 build.
9516
9517 2005-12-16  Jackson Harper  <jackson@ximian.com>
9518
9519         * InternalWindowManager.cs: Don't translate tool windows screen
9520         coordinates. This fixes windows 'bouncing' around when being moved.
9521
9522 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9523
9524         * TextBoxBase.cs:
9525           - MaxLength now treats 2^31-1 equal to unlimited length (this is
9526             not quite MS compatible, MS uses that number only for single line
9527             and 2^32-1 for multi-line, but I figure it won't hurt keeping
9528             the limit at 2GB)
9529           - Now enforcing the MaxLength limit when entering characters
9530           - Added argument to internal Paste() method to track if it's called
9531             from programatically or via keyboard, since keyboard driven pastes
9532             need to enforce max-length
9533           - Added logic to Paste to only paste as many chars as MaxLength 
9534             allows
9535         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
9536         * TextControl.cs:
9537           - Added Length property to return number of characters in document
9538           - Added private CharCount property which only tracks actual chars
9539             in the document (no linefeeds) and fires event when CharCount
9540             changes
9541           - Added tracking of character count to all methods that alter it
9542           - Added LengthChanged event to allow applications to subscribe
9543             to any changes to the document
9544
9545 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9546
9547         * TextBox.cs: 
9548           - Removed local password_char field (moved to TextBoxBase)
9549           - Now setting the document's password var when password is
9550             set
9551         * TextBoxBase.cs:
9552           - Added password_char field (needed here so MultiLine can
9553             access it)
9554           - Added logic to MultiLine property setter to set the document's
9555             variable when password display is allowed
9556           - Removed debug code and made some debug code conditional
9557         * TextControl.cs:
9558           - Added RecalculatePasswordLine() method to handle special password
9559             char only lines
9560           - Added PasswordChar property, also added related tracking vars
9561           - Draw() method now uses local text var for grabbing text to draw,
9562             this var is set to line.text unless we're doing password display,
9563             then it is set to the pre-generated all-password-chars line
9564           - Added calling RecalculatePasswordLine() method for password lines
9565
9566 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9567
9568         * Hwnd.cs: 
9569           - Added Reparented property to allow tracking of Window Manager
9570             reparenting actions (which affect X/Y calculations of toplevel 
9571             windows)
9572           - Made ToString() print window handles in hex
9573         * XplatUIX11.cs:
9574           - AddConfigureNotify(): Now uses reparented state off Hwnd to
9575             determine if X/Y needs offsetting
9576           - AddConfigureNotify(): Fixed offset calculations
9577           - Now adds ReparentNotify messages into the queue
9578           - Now processes ReparentNotify messages and causes a 
9579             WM_WINDOWPOSCHANGED message to be sent upstream if a window
9580             is reparented (as most likely it's X/Y coordinates are changed
9581             due to that)
9582
9583 2005-12-14  Jackson Harper  <jackson@ximian.com>
9584
9585         * XplatUIX11.cs: Tool windows still need to respek focus.
9586
9587 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9588
9589         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
9590           have a working release
9591
9592 2005-12-13  Jackson Harper  <jackson@ximian.com>
9593
9594         * Form.cs: Update styles after setting the border style regardless
9595         of whether or not the window is using a window manager.
9596
9597 2005-12-13  Jackson Harper  <jackson@ximian.com>
9598
9599         * Form.cs: We now hook into an internal window manager instead of just an
9600         MDI subsystem, this is so we can have properly behaving tool windows.
9601         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
9602         * InternalWindowManager.cs: New internal class that acts as a
9603         window manager for tool windows and as a base for mdi windows.
9604         * MdiWindowManager.cs: New class that acts as a window manager for
9605         mdi windows.
9606
9607 2005-12-12  Jackson Harper  <jackson@ximian.com>
9608
9609         * Control.cs: Updates so we match behavoir for for implicit
9610         controls. Fixes explosions in MDI.
9611
9612 2005-12-12  Jackson Harper  <jackson@ximian.com>
9613
9614         * Control.cs: Implement Invalidate (Region).
9615
9616 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
9617
9618         * Control.cs: 
9619           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
9620             the same events as MS does. MS fires events for each property 
9621             except, for unknown reasons, Cursor, when the control is reparented. 
9622             I can't seem to totally match add/remove since MS also fires some 
9623             VisibleChanged events, which makes no sense. Consolidated the
9624             parenting code into a separate method so it can be called from
9625             both Add and Remove. set_Parent no longer needs any special logic
9626             as it calls the parent's add method which implicitly fires
9627             all events
9628           - Removed some obsolete code and debug output
9629           - Enabled state is inherited from parents, if this is enabled
9630
9631 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
9632
9633         * Form.cs: Removed commented out code
9634
9635 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
9636
9637         * Control.cs:
9638           - Added internal version of Invoke, with additional argument 
9639             indicating if we're calling it from a Dispose() handler. That
9640             way we can avoid BeginInvoke throwing an exception if we're
9641             calling for an already destroyed window.
9642           - Added a dispose argument to BeginInvokeInternal, and made the
9643             check if a valid window handle chain exists conditional on
9644             it not being a dispose call
9645           - Removed code in DestroyHandle to destroy our children. Since we
9646             now handle the WM_DESTROY message we will catch all our children
9647             being destroyed.
9648           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
9649         * Form.cs:
9650           - Added a field to track the application context of the form.
9651           - No need to set closing variable as response to WM_CLOSE, instead
9652             we destroy the window. We also call PostQuitMessage if the form
9653             has an application context (which makes it the main app form,
9654             which, when closed terminates the app)
9655         * XplatUI.cs:
9656           - Dropped Exit() method, it's naming was confusing
9657           - Added PostQuitMessage() which causes GetMessage to return false
9658             once the message queue is empty
9659         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
9660           PostQuitMessage()
9661         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
9662           no longer a valid XplatUI method, but left it in since it's used
9663           internally. Added empty PostQuitMessage() method.
9664         * MenuAPI.cs: Replaced call to Exit() with call to
9665           PostQuitMessage, even though this is probably no longer needed.
9666         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
9667         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
9668         * Application.cs:
9669           - Replaced call to XplatUI.Exit() with PostQuitMessage()
9670           - Removed old debug code that would call XplatUI for exception
9671             display, enabled standard exception handling (Still not enabled
9672             though, until NativeWindow's ExternalExceptionHandler define
9673             is removed
9674         * NativeWindow.cs:
9675           - Added internal method to allow control to update NativeWindow
9676             after a window has been destroyed
9677           - Added handling of already destroyed windows when calling i
9678             DestroyWindow
9679           - Added removal of handle from list on ReleaseHandle
9680         * XplatUIX11.cs:
9681           - Dropped GetMessageResult var and related code
9682           - Added PostQuitState to field to track if PostQuitMessage has been
9683             called
9684           - Dropped Exit() method
9685           - Added PostQuitMessage() method
9686           - GetMessage now will return false if PostQuitState is set and no
9687             more messages are in the queue.
9688           - Expose handler will no longer generate WM_PAINT messages if we are
9689             in PostQuitState since it's very likely any windows have already
9690             been destroyed, and since Hwnd won't get updated until we have
9691             processed the DestroyNotify we'd be causing X errors.
9692         
9693 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9694
9695         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
9696           Thanks to Mike for pointing out the err of my ways.
9697
9698 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9699
9700         * Control.cs(PreProcessMessage): Moved menu handling back, but
9701           after all other key handling, to match MS (who handles Menu in
9702           DefWndProc)
9703         * Menu.cs (WndProc): Removed my brainfart
9704
9705 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9706
9707         * Control.cs(PreProcessMessage): Removed special menu handling 
9708         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
9709
9710 2005-12-07  Mike Kestner  <mkestner@novell.com>
9711
9712         * Control.cs : special case SYSKEYUP so that we can adjust keynav
9713         state according in tracker.
9714         * Menu.cs : promote tracker field to base class and provide a tracker
9715         lookup capability.  Add/Remove shortcuts dynamically if the top menu
9716         has a tracker. Unparent items that are removed from the collection.
9717         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
9718         * Theme*.cs: add always_show_hotkeys field to support configurability
9719         of mnemonic display.  win32 doesn't show mnemonics until Alt is
9720         pressed.
9721
9722 2005-12-07  Jackson Harper  <jackson@ximian.com>
9723
9724         * MdiChildContext.cs: Use Control.ResetCursor.
9725         * Control.cs: ResetCursor needs to set the property so that the
9726         correct XplatUI call gets made.
9727
9728 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9729
9730         * Control.cs: More fixes to make our key events match MS. We
9731           were not setting the modifier state on KeyData, and we were
9732           not generating any events when Alt was pressed with a key
9733           since handling of WM_SYSxxx was missing for the OnKey methods.
9734
9735 2005-12-07  Jackson Harper  <jackson@ximian.com>
9736
9737         * MdiChildContext.cs: reenable the sizing code.
9738         - When the mouse leaves a window reset its cursor.
9739
9740 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9741
9742         * ThemeClearlooks.cs: Reflect latest Hwnd changes
9743
9744 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9745
9746         * Hwnd.cs: Now using the theme 3d bordersize to calculate
9747           widths of Fixed3D borders
9748
9749 2005-12-07  Jackson Harper  <jackson@ximian.com>
9750
9751         * MdiClient.cs: Fix warnings. Earn Mike's love.
9752
9753 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9754
9755         * ThemeClearlooks.cs:
9756           - Adjusted mouse over button color
9757           - Added first parts of CheckBox drawing
9758           - Added correct color for selected text background
9759           - Fixed ComboBox drawing
9760           - Added CPDrawBorder3D and CPDrawBorder
9761
9762 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9763
9764         * XplatUIX11.cs: Added call to XBell for AudibleAlert
9765
9766 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
9767
9768         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9769           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
9770           alert users via sound. We could add an enum arg with different
9771           types of alerts in the future
9772
9773 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9774
9775         * Control.cs: Fix behaviour problems pointed out by Mike
9776
9777 2005-12-05  Mike Kestner  <mkestner@novell.com>
9778
9779         * StatusBarPanel.cs: add Invalidate method and hook it into all the
9780         prop setters.  Calls parent.Refresh for now, but could be maybe be
9781         optimized with an internal method on StatusBar at some point.
9782         [Fixes #76513]
9783
9784 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
9785
9786         * RichTextBox.cs: Implemented get_SelectionColor
9787
9788 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
9789
9790         * ThemeClearlooks.cs:
9791           - Removed dead code
9792           - Draw black button border only if button is Form.AcceptButton
9793           - Draw correct button color for pressed RadioButton if the mouse 
9794             has entered the button
9795           - Updated ProgressBar drawing!
9796           - Updated CPDrawSizeGrip drawing
9797           - Updated StatusBarPanel drawing
9798
9799 2005-12-05  Mike Kestner  <mkestner@novell.com>
9800
9801         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
9802         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
9803
9804 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
9805
9806         * ThemeClearlooks.cs: Initial check-in, activate with
9807           export MONO_THEME=clearlooks
9808         * ThemeEngine.cs: Added ThemeClearlooks
9809
9810 2005-12-03  Mike Kestner  <mkestner@novell.com>
9811
9812         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
9813         [Fixes #76897]
9814
9815 2005-12-02  Jackson Harper  <jackson@ximian.com>
9816
9817         * Form.cs: If the child form has no menu the default main menu is
9818         used as the active menu.
9819
9820 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
9821
9822         * ListBox.cs: Check if any items exist before trying to resolve 
9823           coordinates into items
9824
9825 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9826
9827         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
9828           as the second color for the background hatch
9829
9830 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9831
9832         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
9833         * RichTextBox.cs: FormatText position arguments are 1-based, now making
9834           sure that what we pass to FormatText is always 1-based. Fixes #76885
9835
9836 2005-11-29  Miguel de Icaza  <miguel@novell.com>
9837
9838         * NumericUpDown.cs (EndInit): When we are done initializing,
9839         reflect any updates on the UI.
9840
9841 2005-12-02  Jackson Harper  <jackson@ximian.com>
9842
9843         * ImplicitHScrollBar.cs:
9844         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
9845         their container controls.
9846         * TreeView.cs: Use the new implicit scrollbars.
9847
9848 2005-12-02  Jackson Harper  <jackson@ximian.com>
9849
9850         * TreeView.cs: Make top_node internal so the TreeNodeCollections
9851         can play with it.
9852         * TreeNodeCollection.cs: If we remove the topnode we need to
9853         update topnode to the next node in line.
9854         - When clearing nodes go through the same process as removing
9855         them, so they get depareneted and checked if they are top node.
9856
9857 2005-12-01  Jackson Harper  <jackson@ximian.com>
9858
9859         * TreeView.cs: When imagelists are used the image area is
9860         selectable as well as the text.
9861         - If there are no selected nodes select the first one.
9862         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
9863         so don't do it more then we need to.
9864
9865 2005-12-01  Jackson Harper  <jackson@ximian.com>
9866
9867         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
9868         that arrows can be scaled.
9869
9870 2005-12-01  Jackson Harper  <jackson@ximian.com>
9871
9872         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
9873         fail. Patch by Dieter Bremes
9874
9875 2005-11-30  Jackson Harper  <jackson@ximian.com>
9876
9877         * Form.cs: Property is 2.0 only
9878         * PrintDialog.cs: Signature fix.
9879
9880 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9881
9882         * TextControl.cs: 
9883           - No longer artificially moves text 2 pixels down (now that we have
9884             borders this is no longer needed)
9885           - Added calcs for left, hanging and right indent
9886
9887 2005-11-23  Mike Kestner  <mkestner@novell.com>
9888
9889         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
9890
9891 2005-11-30  Jackson Harper  <jackson@ximian.com>
9892
9893         * MdiChildContext.cs: Set the cloned menus forms, as these don't
9894         get cloned as part of CloneMenu ().
9895         * Menu.cs: Make sure the parent of the items get set correctly
9896         when they are added.  And the owners are notified of the changes.
9897         * Form.cs: Create an ActiveMenu property, so that when MDI is used
9898         we can change the menu being displayed/handled by the form without
9899         changing the menu assosciated with the form.
9900         - Don't let Mdi children draw/handle menus.
9901         
9902 2005-11-30  Jackson Harper  <jackson@ximian.com>
9903
9904         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
9905         a MenuChanged event. Just to make the API a little more
9906         consistent.
9907         * MainMenu.cs:
9908         * MenuItem.cs: Use the new OnMenuChanged
9909         * MdiChildContext.cs: Handle menu merging.
9910         * Form.cs: Implement MergedMenu.
9911         
9912 2005-11-30  Jackson Harper  <jackson@ximian.com>
9913
9914         * Menu.cs: We were misusing Add. Add goes behind the specified
9915         index according to the docs, and does not replace the specified
9916         index. So I added an Insert method.
9917
9918 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9919
9920         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
9921           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
9922           is for Jackson
9923         * RichTextBox.cs: Added calls to base for DnD events
9924
9925 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
9926
9927         * TextControl.cs:
9928           - Fixed drag-selection related crash; style fixes
9929           - Implemented undo class
9930             o Implemented method to capture document state for specified
9931               range in document tree
9932             o Implemented method to restore captured document state
9933             o Implemented cursor tracking
9934             o Implemented basic undo stack
9935           - Added undo cursor tracking to methods altering cursor location
9936           - Added undo tracking to selection deletion (still missing
9937             other text-altering hookups)
9938         * RichTextBox.cs:
9939           - Added SelectionLength property
9940           - Implemented CanPaste()
9941           - Implemented Paste()
9942           - Added missing protected methods
9943           - Fixed RTF->Document conversion; now uses font index 0 and color 
9944             index 0 as the default font for the parsed text
9945           - Fixed RTF<->Document font size translation
9946           - Fixed RTF generation, now properly handles cross-tag boundaries
9947             for single line selection
9948           - No longer always appends blank line to generated RTF
9949           - Removed TODOs
9950           - Added missing attributes
9951           - Hooked up undo-related methods
9952         * TextBoxBase.cs:
9953           - Implemented Copy()
9954           - Implemented Paste()
9955           - Implemented Cut()
9956           - Fixed caret mis-behaviour on backspace across line-boundaries
9957
9958 2005-11-29  Jackson Harper  <jackson@ximian.com>
9959
9960         * MdiClient.cs: Add a method for activating mdi children. Very
9961         basic right now. I imagine someday it might need more girth.
9962         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
9963         children windows names are added to the menu item.
9964         * ThemeWin32Classic.cs: Draw the arrow if the item is an
9965         mdilist. This happens regardless of whether or not there are any
9966         mdi windows to see in the list, and according to my tests happens
9967         before the items are even added. Also happens if there isn't even
9968         an mdi client to get windows from.
9969
9970 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
9971
9972         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
9973         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
9974
9975 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
9976
9977         * DataGridTableStyle.cs:
9978           - Create always the styles for the missing columns even if they are
9979             provided by the user (not default table style)
9980         * DataGrid.cs:
9981           - Fixes bug 76770
9982           - Fixes SetDataBinding (always re-attach source)
9983           - Fixes SetNewDataSource (only clear styles if they are not for 
9984             this source)
9985          -  Expands OnTableStylesCollectionChanged to handle style refresh 
9986             and remove properly
9987
9988 2005-11-29  Jackson Harper  <jackson@ximian.com>
9989
9990         * FileDialog.cs: Implement missing bits, remove some dead
9991         code.
9992         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
9993         creation of the panel so that the options set on the dialog are
9994         seen when the panel is created.
9995         * TreeView.cs: raise a click when items are clicked.
9996         
9997 2005-11-29  Jackson Harper  <jackson@ximian.com>
9998
9999         * MdiClient.cs: Pass some signature methods through to base.
10000
10001 2005-11-28  Jackson Harper  <jackson@ximian.com>
10002
10003         * ListView.cs: Raise the click event when items are clicked.
10004
10005 2005-11-28  Jackson Harper  <jackson@ximian.com>
10006
10007         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
10008         a nullref.
10009
10010 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
10011
10012         * ThemeNice.cs: - Removed 1 pixel bitmaps
10013           - Use SmoothingMode.AntiAlias where it makes sense
10014             (ScrollButton arrow for example)
10015           - Enhanced Button focus drawing
10016           - Fixed ComboBox drawing (no artefacts anymore, focus
10017             rectangle is back again, reduced size of ComboButton, etc.)
10018           - Fixed RadioButton focus drawing for Appearence.Button
10019           - Slight ScrollButton redesign
10020           - Some LinearGradientBrush size fixes
10021           - GroupBoxes have now rounded edges
10022           - Fixed StatusBar drawing
10023
10024 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
10025
10026         * ThemeNice.cs: - Remove dead code
10027           - use correct background colors for menus, etc.
10028           - Fake pixel drawing with 1 pixel bitmaps
10029
10030 2005-11-24  Jackson Harper  <jackson@ximian.com>
10031
10032         * MdiClient.cs: Size the scrollbars when resizing the window.
10033         - Resize the maximized windows when the client is resized
10034         * Form.cs: Make the child context available
10035         
10036 2005-11-23  Jackson Harper  <jackson@ximian.com>
10037
10038         * MdiChildContext.cs: Don't size windows if they are maximized.
10039
10040 2005-11-23  Mike Kestner  <mkestner@novell.com>
10041
10042         * ContextMenu.cs: use MenuTracker.
10043         * Control.cs: remove menu handle usage.
10044         * Form.cs: remove menu handle usage.
10045         * Hwnd.cs: remove menu handle usage.
10046         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
10047         motion and clicks to the new Tracker handlers.
10048         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
10049         and handle usage.
10050         * MenuAPI.cs: refactored to combine popup and menubar event handling.
10051         Killed the MENU and MENUITEM data types and associated collections
10052         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
10053         MenuTracker class that exposes the leftovers from the old MenuAPI
10054         static methods. Restructured Capture handling so that only one grab is
10055         done for the entire menu hierarchy instead of handing off grabs to
10056         submenus. Tracker now has an invisible control to Capture when active.
10057         * MenuItem.cs: add sizing accessors, kill Create
10058         and handle usage.
10059         * Theme.cs: remove menu handle and MENU(ITEM) usage.
10060         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
10061         MENU(ITEM). remove menu handle usage, use Menu directly.
10062         * XplatUIDriver.cs: remove menu handle usage.
10063         * XplatUIOSX.cs: remove menu handle usage.
10064         * XplatUIWin32.cs: remove menu handle usage.
10065         * XplatUIX11.cs: remove menu handle usage.
10066
10067 2005-11-22  Jackson Harper  <jackson@ximian.com>
10068
10069         * Hwnd.cs: Don't compute the menu size for
10070         DefaultClientRectangle.
10071         - Reenable menu sizes being computed for GetClienRectangle.
10072         * Form.cs: Remove comment of trechery
10073         
10074 2005-11-22  Jackson Harper  <jackson@ximian.com>
10075
10076         * Hwnd.cs: The adjustments for the menu bar are made when it is
10077         attached to the form.
10078
10079 2005-11-19  Jackson Harper  <jackson@ximian.com>
10080
10081         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
10082         (just like on windows).
10083
10084 2005-11-19  Jackson Harper  <jackson@ximian.com>
10085
10086         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
10087         use real buttons anymore because they are in non client area. The
10088         one TODO here is that I need to somehow invalidate a section of
10089         the non client area.
10090
10091 2005-11-18  Jackson Harper  <jackson@ximian.com>
10092
10093         * Control.cs: Put the enum check back in now that MDI doesnt have
10094         to use this to set border styles.
10095         * Form.cs: Only set mdi child windows borders if the handle has
10096         been created.
10097         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
10098         this directly on to the driver.
10099         - Get the move start position before adjusting for the titlebar
10100         height, this fixes the windows "skipping" when they are first
10101         moved.
10102
10103 2005-11-18  Jackson Harper  <jackson@ximian.com>
10104
10105         * XplatUIX11.cs: Just compute the mdi borders separately as they
10106         don't totally match up with normal form borders.
10107
10108 2005-11-18  Jackson Harper  <jackson@ximian.com>
10109
10110         * Control.cs: Set WS_ styles for borders, so that the driver does
10111         not have to retrieve the control instance to figure out what kind
10112         of borders it should have.
10113         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
10114         driver can know its an mdi child easily.
10115         * XplatUIX11.cs: Get the border styles and whether the window is
10116         MDI from the Styles and ExStyles params instead of having to get a
10117         control. This prevents a chicken and egg problem.       
10118
10119 2005-11-18  Jackson Harper  <jackson@ximian.com>
10120
10121         * MdiClient.cs: Fix typo so scrollbars show up correctly.
10122
10123 2005-11-18  Jackson Harper  <jackson@ximian.com>
10124
10125         * MdiClient.cs: Calculate when to add and remove scrollbars
10126         correctly.
10127         * MdiChildContext.cs: Adjust the y position to take the titlebar
10128         into account.
10129         - No height for FormBorderStyle.None
10130
10131 2005-11-18  Jackson Harper  <jackson@ximian.com>
10132
10133         * Control.cs: Allow non enum values to be used for
10134         InternalBorderStyle.  MDI does this to set a special border style.
10135         - New utility methods for converting points to/from client coords
10136         - Add the newly created control to the Controls collection before
10137         updating its style. This way UpdateStyle can walk the control
10138         heirarchy to find the control if needed.
10139         so I don't need to create a new Point object all the time.
10140         * Form.cs: Let MDI windows handle their border styles.
10141         - Set styles on MDI windows so the correct title style is derived.
10142         * MdiChildContext.cs: Move all the painting and window handling
10143         into the non client area.
10144         - Use correct sizing and put correct buttons on frames based on
10145         the FormBorderStyle.
10146         - Notify the mdi client about scrolling
10147         - Need to handle the buttons ourselves now, because they are all
10148         in non client areas and we can't add controls there.
10149         * MdiClient.cs: Halfway to scrolling, this implementation is
10150         somewhat broken though, we need to check to make sure other
10151         windows aren't causing scrolling before removing the bars. Also
10152         the bars need to be drawn on top, maybe I can switch implicit
10153         controls to be on top.
10154         * Hwnd.cs: caption_height and tool_caption_height are now
10155         properties of an hwnd, this way they can be set by the driver
10156         based on the type of window they are.  In X11 the window manager
10157         handles the decorations so caption_height is zero unless its an
10158         MDI window.
10159         - Add 3 pixel borders for MDI windows (0xFFFF).
10160         - Get rid of some code duplication, have DefaultClientRectanle
10161         just call GetClientRectangle.
10162         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
10163         Hwnd now.
10164         - Set border styles differently for mdi windows.
10165         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
10166         Hwnd now.
10167         
10168 2005-11-15  Mike Kestner  <mkestner@novell.com>
10169
10170         * Menu.cs: when adding an item to the collection, if item is already 
10171         parented, remove it from the parent.
10172
10173 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
10174
10175         * X11DesktopColors.cs: Added KDE support
10176
10177 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
10178
10179         * XplatUIWin32.cs: 
10180           - Clipboard methods now can translate Rtf format
10181           - No longer removes clipboard contents whenever a new format is added
10182             to allow placing multiple formats on the clipboard
10183         * Clipboard.cs: Clipboard now supports getting a IDataObject and
10184           will place all formats contained in it onto the clipboard. Also
10185           now cleans the clipboard before placing a new object onto it
10186         * RichTextBox.cs:
10187           - Implemented set_Rtf
10188           - Implemented set_SelectedRtf
10189           - Created InsertRTFFromStream() method to allow single code base
10190             for all properties and methods that insert RTF into document
10191           - Removed debug output
10192         * TextControl.cs:
10193           - Fixed Delete(int) to fix up line numbers
10194           - Fixed ReplaceSelection to combine start and end line
10195           - Fixed serious DeleteChars bug that would leave the document tree
10196             broken
10197           - Improved DumpTree with several logic checks to detect broken
10198             document trees
10199           - Removed debug lines
10200           - Fixed Caret.WordForward/WordBack moving code, now always also 
10201             updates caret.tag (fixes crash when word-selecting across tag
10202             boundaries via keyboard)
10203           - Added Insert() method for inserting multiline text into documents
10204           - Fixed DeleteChars() calculation errors that would cause a broken
10205             tag chain with multiple tag lines
10206           - DeleteChars() no longer crashes on multi-tag lines if not all tags
10207           - Split() no longer moves caret if split is at caret location
10208           - ReplaceSelection() now updates the cursor and re-displays it
10209           - ReplaceSelection() now uses new Insert() method to avoid code
10210             duplication
10211           - FormatText() can now handle formatting partial lines
10212         * TextBoxBase.cs:
10213           - Append now uses new TextControl.Insert() method (this avoids 
10214             duplicate code)
10215           - Implemented Ctrl-X (Cut) (
10216           - Implemented Ctrl-C (Copy)
10217           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
10218             regeneration when pasting text; roundtripping Copy&Paste within
10219             edit control still fails due to some calculation bugs in GenerateRTF)
10220           - The Delete key will now remove the current selection if it is visible
10221         * TextBox.cs: Removed debug lines
10222         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
10223           driver to be initialized and can't therefore be done via a static ctor)
10224
10225 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
10226
10227         * TextControl.cs: Added backend code for finding char arrays and strings
10228         * TextBoxBase.cs:
10229           - Added mouse wheel scroll support
10230           - Added support for VScroll and HScroll events
10231         * RichTextBox.cs:
10232           - Implemented all seven Find() variants
10233           - Implemented GetCharFromPosition()
10234           - Implemented GetCharIndexFromPosition()
10235           - Implemented GetLineFromIndex()
10236           - Implemented GetPositionFromCharIndex();
10237           - Implemented SaveFile for PlainText and UnicodeText
10238           - Fixed set_Font, now setting a new font applies that font to
10239             the whole document
10240           - Implemented generic Document to RTF converter
10241           - Implemented SaveFile for RichText format (still missing unicode
10242             conversion for non-ansi chars)
10243           - Implemented get_Rtf
10244           - Implemented get_SelectedRtf
10245
10246 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
10247
10248         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
10249           to allow any captures to be released before triggering OnClick. This
10250           way a click handler may capture the mouse without interference.
10251         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
10252           This way we send them even though X may not allow a grab (if the window
10253           isn't visible, for example)
10254
10255 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
10256
10257         * DataGridViewRowEventArgs.cs: DataGridView implementation
10258         * DataGridViewElement.cs: DataGridView implementation
10259         * DataGridViewComboBoxCell.cs: DataGridView implementation
10260         * DataGridViewDataErrorContexts.cs: DataGridView implementation
10261         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
10262         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
10263         * ImageLayout.cs: DataGridView implementation
10264         * DataGridViewComboBoxColumn.cs: DataGridView implementation
10265         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
10266         * DataGridViewSelectionMode.cs: DataGridView implementation
10267         * IDataGridViewEditingControl.cs: DataGridView implementation
10268         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
10269         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
10270         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
10271         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
10272         * DataGridViewColumnSortMode.cs: DataGridView implementation
10273         * DataGridView.cs: DataGridView implementation
10274         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
10275         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
10276         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
10277         * Padding.cs: DataGridView implementation
10278         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
10279         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
10280         * DataGridViewRowEventHandler.cs: DataGridView implementation
10281         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
10282         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
10283         * DataGridViewButtonCell.cs: DataGridView implementation
10284         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
10285         * DataGridViewEditMode.cs: DataGridView implementation
10286         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
10287         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
10288         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
10289         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
10290         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
10291         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
10292         * DataGridViewCellEventHandler.cs: DataGridView implementation
10293         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
10294         * DataGridViewCellStyleConverter.cs: DataGridView implementation
10295         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
10296         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
10297         * DataGridViewColumnEventArgs.cs: DataGridView implementation
10298         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
10299         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
10300         * QuestionEventArgs.cs: DataGridView implementation
10301         * IDataGridViewEditingCell.cs: DataGridView implementation
10302         * DataGridViewTriState.cs: DataGridView implementation
10303         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
10304         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
10305         * DataGridViewColumnCollection.cs: DataGridView implementation
10306         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
10307         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
10308         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
10309         * DataGridViewColumn.cs: DataGridView implementation
10310         * DataGridViewCellBorderStyle.cs: DataGridView implementation
10311         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
10312         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
10313         * DataGridViewRow.cs: DataGridView implementation
10314         * DataGridViewImageCellLayout.cs: DataGridView implementation
10315         * DataGridViewImageCell.cs: DataGridView implementation
10316         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
10317         * DataGridViewCheckBoxCell.cs: DataGridView implementation
10318         * DataGridViewHeaderCell.cs: DataGridView implementation
10319         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
10320         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
10321         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
10322         * DataGridViewTextBoxColumn.cs: DataGridView implementation
10323         * QuestionEventHandler.cs: DataGridView implementation
10324         * DataGridViewCellStyleScopes.cs: DataGridView implementation
10325         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
10326         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
10327         * DataGridViewCell.cs: DataGridView implementation
10328         * DataGridViewCellEventArgs.cs: DataGridView implementation
10329         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
10330         * DataGridViewCellStyle.cs: DataGridView implementation
10331         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
10332         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
10333         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
10334         * TextFormatFlags.cs: DataGridView implementation
10335         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
10336         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
10337         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
10338         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
10339         * DataGridViewButtonColumn.cs: DataGridView implementation
10340         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
10341         * HandledMouseEventArgs.cs: DataGridView implementation
10342         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
10343         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
10344         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
10345         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
10346         * DataGridViewRowCollection.cs: DataGridView implementation
10347         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
10348         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
10349         * DataGridViewHitTestType.cs: DataGridView implementation
10350         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
10351         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
10352         * DataGridViewColumnEventHandler.cs: DataGridView implementation
10353         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
10354         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
10355         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
10356         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
10357         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
10358         * DataGridViewContentAlignment.cs: DataGridView implementation
10359         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
10360         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
10361         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
10362         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
10363         * DataGridViewPaintParts.cs: DataGridView implementation
10364         * DataGridViewCellCollection.cs: DataGridView implementation
10365         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
10366         * DataGridViewImageColumn.cs: DataGridView implementation
10367         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
10368         * DataGridViewElementStates.cs: DataGridView implementation
10369         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
10370         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
10371         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
10372         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
10373         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
10374         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
10375         * DataGridViewRowHeaderCell.cs: DataGridView implementation
10376         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
10377         * DataGridViewTextBoxCell.cs: DataGridView implementation
10378         * DataGridViewBand.cs: DataGridView implementation
10379         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
10380         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
10381         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
10382         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
10383         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
10384         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
10385         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
10386         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
10387         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
10388         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
10389         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
10390
10391 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
10392
10393         * ThemeWin32Classic.cs: 
10394           - Draw the outside focus rectangle around buttons
10395           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
10396             doesn't use end caps for every dash of a line anymore. This
10397             workaround ignores the forecolor.
10398
10399 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
10400
10401         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
10402           endian safe.
10403
10404 2005-11-07  Jackson Harper  <jackson@ximian.com>
10405
10406         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
10407
10408 2005-11-07  Jackson Harper  <jackson@ximian.com>
10409
10410         * ScrollableControl.cs: Calculate the maximum and change vars
10411         (more) correctly so that scrollbars appear as a sensible size.
10412
10413 2005-11-04  Jackson Harper  <jackson@ximian.com>
10414
10415         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
10416         collection.
10417         * TreeView.cs: When the tree is sorted null out the top_node so
10418         that it is recalculated.
10419         - Use dotted lines instead of dashed lines to match MS better.
10420
10421 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
10422
10423         * ListView.cs: 
10424           - Implements key search for items. Useful when browsing files with FileDialog
10425           - When changing view mode or when clear the items reset scrollbar positions
10426
10427 2005-11-04  Jackson Harper  <jackson@ximian.com>
10428
10429         * CurrencyManager.cs: Implement the MetaDataChanged event, the
10430         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
10431         as to what the method may do as there is no real way of creating a
10432         derived CurrencyManager and calling the method. 
10433
10434 2005-11-03  Jackson Harper  <jackson@ximian.com>
10435
10436         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
10437         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
10438         method which seems to just be used internally to refresh the tabs.
10439
10440 2005-11-03  Jackson Harper  <jackson@ximian.com>
10441
10442         * TabControl.cs: Implement the remove method. Fix some broken
10443         comments.
10444
10445 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10446
10447         * DateTimePicker.cs:
10448           - Added missing DateTimePickerAccessibleObject class
10449           - Added missing events
10450           - Added OnFontChanged method
10451         * Form.cs: Added missing attributes
10452         * TreeView.cs: Added missing attributes
10453
10454 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
10455
10456         * GridItemCollection.cs: Fix signatures
10457
10458 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10459
10460         * XplatUI.cs: Updated build rev/date
10461         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
10462           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
10463         * Application.cs: Trigger context-specific ExitThread events
10464
10465 2005-11-03  Jackson Harper  <jackson@ximian.com>
10466
10467         * Menu.cs:
10468         * MainMenu.cs:
10469         * GridTableStylesCollection.cs:
10470         * Timer.cs:
10471         * TabPage.cs:
10472         * HelpProvider.cs:
10473         * StatusBar.cs:
10474         * MonthCalendar.cs: Signature fixes
10475
10476 2005-11-03  Jackson Harper  <jackson@ximian.com>
10477
10478         * TreeNodeCollection.cs: Remove should not be virtual.
10479         * TreeView.cs: Implement the last of the missing methods.
10480
10481 2005-11-03  Jackson Harper  <jackson@ximian.com>
10482
10483         * TreeNodeConverter.cs: Implement to get off my class-status back.
10484
10485 2005-11-03  Jackson Harper  <jackson@ximian.com>
10486
10487         * TreeView.cs: Hookup the bits for drag and drop.
10488         * TreeNode.cs: Don't cache the tree_view or index anymore, now
10489         that nodes can be moved from tree to tree easily this just causes
10490         all sorts of problems.
10491         * TreeNodeCollection: Don't need to give treenodes an index and
10492         treeview anymore when they are added, these are computed on the
10493         fly. Also make sure to remove a node before its added.
10494
10495 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
10496
10497         * TextControl.cs:
10498           - Added CaretSelection enum
10499           - Added comparison methods to Marker struct, makes selection code
10500             more readable
10501           - Added SelectionStart and SelectionEnd as 'moveable' location for
10502             the CaretDirection enum and handler
10503           - Added selection_prev variable to track optimized invalidation for
10504             word and line selection
10505           - Added SelectionVisible property (returns true if there is a valid 
10506             selection)
10507           - Switched CaretHasFocus to only display the caret if there is no
10508             visible selection
10509           - Avoiding StringBuilder.ToString to retrieve a single char, instead
10510             using the direct character index; should be much faster
10511           - Added various conditional debug statements
10512           - Fixed invalidation calculation for selection ranges
10513           - Added ExpandSelection() method to support word and line selection
10514           - Switched SetSelectionToCaret to use new Marker compare overloads
10515           - Added central IsWordSeparator() method to determine word 
10516             separators/whitespace and FindWordSeparator() to streamline common
10517             usage of IsWordSeparator()
10518         * TextBoxBase.cs:
10519           - Removed unneeded grabbed variable, it was just mirroring
10520             Control.Capture
10521           - No longer firing OnTextChanged event when Text setter is called,
10522             since the base will fire the event for us
10523           - Added handling of Ctrl-Up/Down selection
10524           - Added handling of Shift-Cursorkey selection
10525           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
10526             words
10527           - Added handling of Shift and Ctrl-Shift-Home/End selection
10528           - Removed some debug output
10529           - Added handling for single/double/tripple-click to place caret/
10530             select word/select line respectively (Fixes bug #76031)
10531           - Added support for drag expansion of word/line selection
10532         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
10533           current selection
10534
10535 2005-11-02  Jackson Harper  <jackson@ximian.com>
10536
10537         * X11Dnd.cs: If the drag is going to and from a MWF window just
10538         copy the data instead of sending it out through the X Selection
10539         mechanism.
10540
10541 2005-11-02  Jackson Harper  <jackson@ximian.com>
10542
10543         * X11Dnd.cs:
10544         * XplatUIX11.cs: When in a drag we don't want motion notify
10545         messages to get passed on to the other controls. This prevents
10546         mouse move messages from showing up in the drag source.
10547
10548 2005-11-02  Jackson Harper  <jackson@ximian.com>
10549
10550         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
10551         the correct button is release to end a drag.
10552         * XplatUIX11.cs: Make the button state internal so the drag system
10553         can access it.  Dragging needs to know about all button releases,
10554         not just left button.
10555
10556 2005-11-02  Miguel de Icaza  <miguel@novell.com>
10557
10558         * Form.cs (Icon): If the icon is null, reset the icon to the
10559         default value. 
10560
10561         * Cursor.cs: When writing the AND-mask bitmap do not include the
10562         number of colors, but hardcode those to two (black and white),
10563         fixes the loading of color cursors (Paint Dot Net).
10564
10565         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
10566         turn off autoscaling.
10567
10568         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
10569
10570 2005-11-02  Jackson Harper  <jackson@ximian.com>
10571
10572         * X11Dnd.cs: Make sure to send a status message if the pointer
10573         enters a control that can not accept a drop, otherwise the cursor
10574         isn't updated correctly. Also tried to compress the lines of code
10575         a bit.
10576
10577 2005-11-02  Jackson Harper  <jackson@ximian.com>
10578
10579         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
10580         set actions correctly.  This isn't perfect as XDND and win32 have
10581         some differences on how you allow actions. I'll clear this up by
10582         adding a path for drag from MWF to MWF windows.
10583         * XplatUIX11.cs: Hook into the dnd system.
10584
10585 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
10586
10587         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
10588         previously shown but they are no longer need it. Very obvious when 
10589         browsing files with FileDialog.
10590
10591 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
10592
10593         * Control.cs: We always need to call OnPaintBackground. We pretty much
10594           ignore AllPaintingInWmPaint and always do the painting there, whether 
10595           it's set or not, since we always ignore the WM_ERASEBKGND message 
10596           (which we don't generate on X11). This fixes #76616.
10597         * Panel.cs: Removed unneeded background painting. This happens properly
10598           in Control.cs already
10599
10600 2005-10-31  Mike Kestner  <mkestner@novell.com>
10601
10602         * Menu.cs: Add items to collection before setting their index.
10603         * MenuItem.cs : add range checking with ArgumentException like MS.
10604         [Fixes #76510]
10605
10606 2005-10-31  Jackson Harper  <jackson@ximian.com>
10607
10608         * ListBox.cs: Invalidate if the area is visible at all not just
10609         contained in the visible rect. Fixes unselection of semi visible
10610         items.
10611
10612 2005-10-31  Jackson Harper  <jackson@ximian.com>
10613
10614         * Control.cs: Consistently name the dnd methods. Make them
10615         internal so we can override them to match some MS behavoir
10616         internally.
10617         * Win32DnD.cs: Use the new consistent names.
10618
10619 2005-10-31  Jackson Harper  <jackson@ximian.com>
10620
10621         * TreeView.cs: Don't draw the selected node when we lose focus.
10622
10623 2005-10-31  Jackson Harper  <jackson@ximian.com>
10624
10625         * X11Dnd.cs: We still need to reset the state even though a full
10626         reset isn't being done, otherwise status's still get sent all over
10627         the place.
10628
10629 2005-10-31  Jackson Harper  <jackson@ximian.com>
10630
10631         * Control.cs: Make the dnd_aware flag internal so the dnd
10632         subsystem can check it. Catch exceptions thrown in dnd handlers to
10633         match MS behavoir.
10634         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
10635         * X11Dnd.cs: Handle null data in the converters. Set the XDND
10636         version when sending a XdndEnter. Use the control/hwnd dnd_aware
10637         flags to reduce the number of dnd enters/status's sent.
10638
10639 2005-10-31  Jackson Harper  <jackson@ximian.com>
10640
10641         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
10642
10643 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
10644
10645         * PictureBox.cs: Fixes 76512
10646
10647 2005-10-28  Jackson Harper  <jackson@ximian.com>
10648
10649         * X11Dnd.cs: Early implementation to support winforms being a drag
10650         source for data on X11. Also restructured the converters so they
10651         can go both ways now.
10652         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
10653         
10654 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
10655
10656         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
10657           clipboard requests
10658
10659 2005-10-27  Jackson Harper  <jackson@ximian.com>
10660
10661         * TreeNode.cs: Implement serialization so my DnD examples will work.
10662
10663 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
10664
10665         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
10666           TreeView.cs: Don't dispose objects that are not owned.
10667           
10668 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
10669
10670         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
10671           should retrieve the current cursor and report that, but XplatUI
10672           doesn't (yet) have an interface for that (and I'm not sure I even
10673           can, on X11)
10674         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
10675           until any message loop processing is done (and the WM_SETCURSOR
10676           replaces the cursor to the proper one)
10677         * XplatUIX11.cs: 
10678           - Fixed override behaviour, we can't set the cursor globally on X11, 
10679             just for our windows.
10680           - Invalidating the System.Drawing X11 display handle when we are
10681             shutting down
10682         * Control.cs: Fix to make csc happy
10683
10684 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
10685
10686         * TextBoxBase.cs: 
10687           - get_Text: Add last line (without trailing newline) to returned
10688             value (Fixes 76212)
10689           - get_TextLength: Count last line in returned length
10690           - ToString: Call Text property instead of duplicating code
10691
10692 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
10693
10694         * ImageList.cs: Dispose ImageAttributes objects.
10695
10696 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10697
10698         * ImageList.cs: Use attribute constructors with less arguments where
10699           possible.
10700
10701 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10702
10703         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
10704           Use typeof instead of strings when assembly is referenced. Added
10705           some more comments.
10706
10707 2005-10-21  Jackson Harper  <jackson@ximian.com>
10708
10709         * ListView.cs: Raise a double click event. Also tried to somewhat
10710         fix when the selectedindexchanged event is raised. Its still
10711         broken though.
10712
10713 2005-10-21  Jackson Harper  <jackson@ximian.com>
10714
10715         * TreeView.cs: New method to invalidate the plus minus area of a
10716         node without invalidating the whole node (maybe this can be used
10717         in some more places).
10718         * TreeNodeCollection.cs: When adding to an empty node we need to
10719         invalidate its plus minus area so the little block shows up.
10720         
10721 2005-10-21  Jackson Harper  <jackson@ximian.com>
10722
10723         * TreeView.cs: Make sure that when we invalidate a node the bounds
10724         are big enough to cover the selected box and the focus
10725         rectangle. Use a different colour for the lines connecting nodes
10726         so they show up with all themes.
10727
10728 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10729
10730         * NativeWindow.cs: Don't call anything that could call into the driver,
10731           we might be on a different thread.
10732
10733 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
10734
10735         * Control.cs(Dispose): Since Dispose might run on a different thread,
10736           make sure that we call methods that could call into the driver via
10737           invoke, to avoid thread issues
10738
10739 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10740
10741         * XplatUI.cs: Removed finalizer
10742         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
10743           not allowing to be called on the finalizer thread.
10744
10745 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
10746
10747         * ImageList.cs:
10748           - Reverted r51889 and r51891.
10749           - Added ImageListItem class that stores unmodified image items and image
10750             properties required to create list images until handle is created.
10751           - Added AddItem and moved image creation logic to AddItemInternal.
10752           - Added CreateHandle method that creates images based on unmodified items.
10753           - Added DestroyHandle that changes state to store unmodified items.
10754           - Add and AddStrip methods no more create handle.
10755           - ReduceColorDepth has no return value.
10756           - Dispose destroys handle.
10757           - Modified other methods to reflect the above changes.
10758           - Implemented key support.
10759           - Added profile 2.0 members and attributes.
10760           - Added private Reset and ShouldSerialize methods that provide the same
10761             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
10762             them as they are private.
10763           - Added some more comments about implementation details.
10764
10765 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10766
10767         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
10768
10769 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10770
10771         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
10772
10773 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10774
10775         * DataGridDrawingLogic.cs: Fixes column hit calcultation
10776         * DataGridColumnStyle.cs: Remove debug message
10777
10778 2005-10-20  Jackson Harper  <jackson@ximian.com>
10779
10780         * TreeView.cs: We can always get input keys regardless of whether
10781         or not editing is enabled. They are used for navigation.
10782
10783 2005-10-20  Jackson Harper  <jackson@ximian.com>
10784
10785         * TreeNode.cs: Use the viewport rect for determining if a node
10786         needs to be moved for visibility. Don't use Begin/End edit. This
10787         calls a full refresh when its done.
10788         * TreeView.cs: New SetBottom works correctly.  Make the viewport
10789         rect property internal so the treenodes can see it. When clicking
10790         on a node we need to ensure that its visible because it might just
10791         be partly visible when clicked.
10792
10793 2005-10-20  Jackson Harper  <jackson@ximian.com>
10794
10795         * TreeNodeCollection.cs: Remove debug code.
10796
10797 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10798
10799         * Datagrid.cs: Implements column sorting in Datagrid
10800         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
10801
10802 2005-10-20  Jackson Harper  <jackson@ximian.com>
10803
10804         * TreeNodeCollection.cs: Remove items properly. Update the correct
10805         area after removing them.
10806
10807 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10808
10809         * Datagrid.cs: Should not call base.OnPaintBackground
10810
10811 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10812
10813         * XplatUIX11.cs (GetMessage):
10814           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
10815             window instead of client window
10816           - Now properly calculates NC_xBUTTONUP message coordinates
10817           - ScreenToMenu now properly calculates it's coordinates of whole 
10818             window, since menus are in the whole window, not in the client
10819             window
10820           - Added WholeToScreen coordinate translation method
10821
10822 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
10823
10824         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
10825           want to return a message, loop back to the beginning of the function
10826           and grab the next real message to process instead.
10827
10828 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10829
10830         * Splitter.cs: Properly set limits if no filler control is used
10831
10832 2005-10-19  Jackson Harper  <jackson@ximian.com>
10833
10834         * ColorDialog.cs: Don't show the help button if it is not enabled
10835         instead of disabling it (this is what MS does). Don't create the
10836         panel until the dialog is run, otherwise the vars (such as
10837         ShowHelp) are not set yet.
10838
10839 2005-10-19  Jackson Harper  <jackson@ximian.com>
10840
10841         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
10842         are reduced when adding nodes.
10843         * TreeNode.cs:
10844         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
10845         tree.
10846         
10847 2005-10-19  Jackson Harper  <jackson@ximian.com>
10848
10849         * FolderBrowserDialog.cs: End editing our treeview so the window
10850         actually gets refreshed.
10851
10852 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10853
10854         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
10855           Obsoleted handling of WM_ERASEBKGND, now always draws our background
10856           inside of WM_PAINT
10857
10858 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10859
10860         * MenuAPI.cs: Returns after Hidding window
10861         * XplatUIX11.cs: Added TODO found while debugging menu issues
10862
10863 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10864
10865         * XplatUIX11.cs: Do not re-map the whole window when it's size
10866           becomes non-zero unless it's supposed to be actually visible
10867
10868 2005-10-18  Jackson Harper  <jackson@ximian.com>
10869
10870         * TreeView.cs: We don't need to keep a count anymore.
10871         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
10872         use the Grow method.
10873
10874 2005-10-18  Jackson Harper  <jackson@ximian.com>
10875
10876         * TreeNodeCollection.cs: Insert is not supported on arrays, so
10877         implement it manually here.
10878
10879 2005-10-18  Jackson Harper  <jackson@ximian.com>
10880
10881         * ImageList.cs: Dont kill the list when the colour depth is
10882         changed, just change the colour depth of all the images.
10883         - Same goes for setting the image size. Just resize them all
10884         instead of killing the list softly.
10885
10886 2005-10-18  Jackson Harper  <jackson@ximian.com>
10887
10888         * Control.cs: Don't invalidate empty rectangles.
10889
10890 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10891
10892         * ListViewItem.cs:
10893           - Adds checked item to the Checked/Item lists (where empty before)
10894           - Do not add items to the Selected lists if they are already present
10895         * ListView.cs:
10896           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
10897           - When deleting items make sure that we delete them for the Selected
10898           and Checked list also.
10899
10900 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10901
10902         * Label.cs: Dispose objects no longer used
10903         * ThemeWin32Classic.cs: Dispose objects no longer used
10904
10905 2005-10-18  Jackson Harper  <jackson@ximian.com>
10906
10907         * TabControl.cs: Don't refresh the whole control when the tabs are
10908         scrolled, we just need to refresh the tab area.
10909
10910 2005-10-17  Jackson Harper  <jackson@ximian.com>
10911
10912         * XplatUIX11.cs: Compress code a little bit. Only calculate the
10913         after handle when we need it.
10914
10915 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10916
10917         * Control.cs: When the parent size changes, recalculate anchor 
10918           positions. Partial fix for #76462
10919
10920 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10921
10922         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
10923           drawn. Fixes #76462
10924
10925 2005-10-17  Jackson Harper  <jackson@ximian.com>
10926
10927         * MonthCalendar.cs: Don't create the numeric up down until our
10928         handle is created. Otherwise our handle is created in the
10929         constructor and we don't know if we are a WS_CHILD or WS_POPUP
10930         yet.
10931
10932 2005-10-17  Jackson Harper  <jackson@ximian.com>
10933
10934         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
10935         correctly.
10936
10937 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10938         * TreeNode.cs : small logical fix (was using local var instead of field)
10939         
10940 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10941
10942         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
10943
10944 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10945
10946         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
10947
10948 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
10949
10950         * Control.cs: 
10951           - Re-implemented anchoring code. My first version was really broken.
10952             This fixes bug #76033. Unlike the previous implementation we will
10953             no longer have round errors since all numbers are calculated from
10954             scratch every time. Removed various anchor-related obsolete vars.
10955           - InitLayout no longer causes layout event firing and layout to be 
10956             performed
10957
10958 2005-10-16  Jackson Harper  <jackson@ximian.com>
10959
10960         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
10961         which was broken).
10962
10963 2005-10-16  Jackson Harper  <jackson@ximian.com>
10964
10965         * TabControl.cs: Remove debug code.
10966
10967 2005-10-16  Jackson Harper  <jackson@ximian.com>
10968
10969         * XEventQueue.cs: Increase the default queue size (very simple
10970         apps needed to grow the queue).
10971         * Hwnd.cs: No finalizer so we don't need to suppress
10972         finalization. Compute the invalid area manually so a new rectangle
10973         does not newto be created.
10974         * ScrollableControl.cs: Don't set any params (otherwise visibility
10975         isn't set correctly).
10976         * MdiChildContext.cs: New constructor takes the mdi parent so it
10977         doesn't have to be computed and avoids a crash on windows. Draw
10978         the window icon properly, and allow the text to be seen.
10979         * Form.cs: Use new MdiChildContext constructor. Make sure the
10980         child context isn't null in wndproc.
10981         * TabControl.cs: Don't set focus, this is muddling keyboard
10982         behavoir. Expand the tab rows when a window size increase will
10983         allow extra tabs to be seen. Don't allow tabs smaller than the
10984         width of a window to be scrolled out of view.
10985         * TreeNode.cs:
10986         * TreeView.cs: Use measure string to calculate a nodes width, the
10987         width is cached and only updated when the text or the font is
10988         changed. Don't check for expand/collapse clicks on the first level
10989         nodes if root lines are disabled.
10990         
10991 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
10992
10993         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
10994
10995 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10996
10997         * DataGridBoolColumn.cs: fixes warning
10998
10999 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
11000
11001         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
11002         to match more to match more precisely the MS Net behavior
11003
11004 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
11005
11006         * Hwnd.cs: Added field to track if window is mapped
11007         * XplatUIX11.cs: 
11008           - Unmap windows if they become 0-size, re-map when 
11009             they are >0 again; fixes #76035
11010           - Re-set our error handler after initializing X11Desktop
11011             to override any error handlers Gtk or whatever was called
11012             may have set.
11013
11014 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
11015
11016         * CheckedListBox.cs: Removed unused vars
11017         * ListView.cs: Fixed signatures
11018         * RichTextBox.cs: Removed unused vars
11019         * TextBoxBase.cs: Removed unused vars
11020         * XplatUIWin32.cs: Removed unused vars
11021         * XplatUIX11.cs: Removed unused vars
11022         * XplatUI.cs: Updated version and date to latest published
11023
11024 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
11025
11026         * Cursor.cs: Added private .ctor to work around a bug in
11027           resourceset (Thanks to Geoff Norton for the help on this)
11028         * SplitterEventArgs.cs: Made fields accessible so we don't
11029           waste boatloads of objects and can reuse the same one
11030           in Splitter
11031         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
11032           any captions and borders when generating screen coordinates
11033         * Splitter.cs: Reimplemented control, now fully complete, uses
11034           rubberband drawing, supports and obeys all properties, has
11035           proper cursors
11036
11037 2005-10-13  Miguel de Icaza  <miguel@novell.com>
11038
11039         * Form.cs (Form): Setup default values for autoscale and
11040         autoscale_base_size;  Make these instance variables, not static
11041         variables. 
11042
11043         (OnLoad): on the first load, adjust the size of the form.
11044
11045 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
11046
11047         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
11048           width argument to DrawReversibleRectangle()
11049         * XplatUIWin32.cs, XplatUIX11.cs: 
11050           - Implemented width for DrawReversibleRectangle()
11051           - Added logic to DrawReversibleRectangle that recognizes a zero
11052             width or height and only draws a line in that situation
11053         
11054 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
11055
11056         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
11057         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
11058         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
11059           method (it uses our FosterParent window to get a graphics context)
11060
11061 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
11062
11063         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
11064           and SetWindowBackground methods
11065         * Control.cs:
11066           - Setting proper ControlStyles
11067           - We no longer call XplatUI.SetWindowBackground and XplatUI.
11068             EraseWindowBackground, instead we draw the window background
11069             ourselves in PaintControlBackground. This behaviour is
11070             required to match MS, where, when OnPaintBackground is not
11071             called, the background is not drawn.
11072           - Removed unneeded Refresh() in set_Text
11073         * Hwnd.cs: Dropped the ErasePending support. No longer needed
11074         * XplatUIX11.cs:
11075           - Created DeriveStyles method to translate from CreateParams to
11076             FormBorderStyle and TitleStyle, also handles BorderStyle (which
11077             matches FormBorderStyle enum values)
11078           - Consolidated SetHwndStyles and CalculateWindowRect border/title
11079             style calculations into single DeriveStyles method
11080           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
11081             from redrawing the whole window on any resize or expose.
11082           - Fixed CreateWindow usage of SetWindowValuemask. Before not
11083             all styles were applied to our whole/client window appropriately
11084           - Removed EraseWindowBackground() and SetWindowBackground() methods
11085           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
11086             no longer clear/redraw the background through X
11087           - Removed handling of erase_pending bit, we have no use for it (or
11088             so it seems)
11089         * XplatUIOSX.cs:
11090           - Removed generation and handling of WM_ERASEBKGND message
11091           - Removed EraseWindowBackground() and SetWindowBackground() methods
11092           - Removed handling of hwnd.ErasePending flag
11093         * XplatUIWin32.cs:
11094           - Removed EraseWindowBackground() and SetWindowBackground() methods
11095           - We no longer call EraseWindowBackground on PaintEventStart, we 
11096             ignore the fErase flag, erasing is handled in Control in the
11097             background handler
11098         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
11099           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
11100           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
11101           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
11102           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
11103           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
11104           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
11105
11106 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
11107
11108         * PropertyGrids.cs: Get sub properties
11109         * PropertyGridView.cs: Fix drawing code
11110
11111 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11112
11113         * ListBox.cs: Fixes 76383
11114
11115 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11116
11117         * DataGridTextBoxColumn.cs: Sets location and size before attachment
11118         * ThemeWin32Classic.cs: Fixes border drawing and calculations
11119         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
11120
11121
11122 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11123
11124         * ComboBox.cs: Fixes border drawing
11125
11126 2005-10-10  Miguel de Icaza  <miguel@novell.com>
11127
11128         * MimeIcon.cs: Ignore errors if the file can not be read.
11129
11130 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
11131
11132         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
11133          - Fixed border calculations
11134          - Fixed horizontal scrolling in single column listboxes
11135          - Fixed drawing issues
11136
11137 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
11138
11139         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
11140           FormBorderStyle enum
11141         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
11142           code to determine FormBorderStyles from CreateParams
11143         * Form.cs:
11144           - Fixed bug where we'd set the wrong window styles if we were
11145             not creating an MDI window
11146           - Added call to XplatUI.SetBorderStyle when form borders are set
11147         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
11148         * Hwnd.cs:
11149           - Removed obsolete edge style
11150           - Switched from BorderStyle to FormBorderStyle
11151         
11152 2005-10-10  Jackson Harper  <jackson@ximian.com>
11153
11154         * Form.cs: Use the property to get the window handle instead of
11155         accessing it directly. Prevents a null reference exception.
11156
11157 2005-10-10  Jackson Harper  <jackson@ximian.com>
11158
11159         * TreeView.cs: Don't adjust the rect given to DrawString now that
11160         our libgdiplus draws correctly.
11161
11162 2005-10-08  Jackson Harper  <jackson@ximian.com>
11163
11164         * TreeView.cs: Don't try to find the clicked on node if there are
11165         no nodes in the tree.
11166
11167 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11168
11169         * RichTextBox.cs:
11170
11171           restore
11172
11173 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
11174
11175         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
11176           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
11177           ErrorProvider.cs:
11178           Use ResPool for brushes and dispose System.Drawing objects that
11179           are not used anymore.
11180
11181 2005-10-07  Jackson Harper  <jackson@ximian.com>
11182
11183         * MdiChildContext.cs: Use the new borders instead of drawing them
11184         ourselves.
11185
11186 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11187
11188         * Calling UpdateBounds after changing the window's BorderStyle 
11189         since the style can change the ClientSize
11190
11191 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11192
11193         * Control.cs: Made PaintControlBackground virtual
11194         * Panel.cs: Overriding PaintControlBackground instead of using paint
11195           event; paint event method was interfering with 'real' users of the
11196           event.
11197
11198 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
11199
11200         * ThemeWin32Classic.cs: remove border drawing since it is handled
11201         by the base control class now and was causing double border drawing.
11202
11203 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11204
11205         * Panel.cs: Redraw our background on paint. Not a pretty solution,
11206           but it does seem to match MS behaviour. This fixes bug #75324
11207
11208 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11209
11210         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
11211           somewhat hackish looking
11212
11213 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11214
11215         * TextBoxBase.cs:
11216           - We now accept Enter even if AcceptEnter is false, if the containing
11217             form does not have an AcceptButton configured (fixes bug #76355)
11218           - Calculations are now fixed to no longer use Width/Height, but
11219             ClientSize.Width/Height, since we now support borders (this was
11220             a result of fixing borders and therefore bug #76166)
11221           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
11222             true (fixes bug #76354)
11223         
11224 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11225
11226         * Control.cs: 
11227           - Defaulting BorderStyle and setting it in XplatUI when our window 
11228             is created
11229           - Added enum check to InternalBorderStyle setter
11230         * XplatUIX11.cs: 
11231           - Added drawing of window borders
11232           - Now properly calculates WM decorations offset for toplevel 
11233             windows (fixes bug #74763)
11234         * XplatUIWin32.cs: 
11235           - Implemented BorderStyles for windows (we're letting win32 draw 
11236             the border for us)
11237           - Fixed the signature for SetWindowLong
11238         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
11239           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
11240           setting borders
11241         * UpDownBase.cs: Remove drawing of borders, this is handled by
11242           the driver, outside the client area
11243         * ListView.cs: Removed bogus border calculations. The control should
11244           be oblivious to borders, since those are not part of the client
11245           area. 
11246         * X11DesktopColors.cs: Commented out (currently) unneeded variables
11247         * ThemeWin32Classic.cs: Removed border calculations from ListView 
11248           drawing code
11249
11250 2005-10-06  Jackson Harper  <jackson@ximian.com>
11251
11252         * MdiChildContext.cs: Clear out the old virtual position remove
11253         all the unneeded calls to CreateGraphics.
11254
11255 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11256
11257         * TextControl.cs: Use proper color for highlighted text; fixes #76350
11258
11259 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
11260
11261         * Form.cs: 
11262           - Added loading and setting of our new default icon
11263           - Only set icon if window is already created
11264
11265 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
11266
11267         * Label.cs:
11268           - Do not explicitly set the foreground and background colors, to
11269             allow inheriting from parents (fixes #76302)
11270           - Use Control's InternalBorderStyle property to deal with borders
11271
11272 2005-10-06  Jackson Harper  <jackson@ximian.com>
11273
11274         * MdiChildContext.cs: Use the new xplatui function to draw a
11275         reversible rect.
11276
11277 2005-10-06  Jackson Harper  <jackson@ximian.com>
11278
11279         * Form.cs: Add the parent before creating the child context cause
11280         we need the parent when setting up the child.
11281
11282 2005-10-06  Jackson Harper  <jackson@ximian.com>
11283
11284         * FolderBrowserDialog.cs: redo the tree population code so a
11285         second thread isn't used. Should be a lot faster and more stable
11286         now.
11287
11288 2005-10-05  Jackson Harper  <jackson@ximian.com>
11289
11290         * TreeView.cs: There are no expand/collapse boxes if the node has
11291         no children.
11292
11293 2005-10-05  Jackson Harper  <jackson@ximian.com>
11294
11295         * X11DesktopColors.cs: Get menu colours for the gtk theme.
11296
11297 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
11298
11299         * FileDialog.cs: Fix InitialDirectory
11300
11301 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11302
11303         * ComboBox.cs:
11304                 - Fixes changing between styles
11305                 - Fixes simple mode
11306                 - Fixes last item crashing when navigating with keyboard
11307
11308 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
11309
11310         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
11311
11312 2005-10-05  Jackson Harper  <jackson@ximian.com>
11313
11314         * TreeView.cs: If updating the root node do a full refresh.
11315         * TreeNode.cs: The root node should be expanded by default. Also
11316         added a utility prop to tell if we are the root node.
11317         * TreeNodeCollection.cs: Only refresh if the node we are being
11318         added to is expanded. Also added a comment on a potential
11319         optimization.
11320         
11321 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
11322
11323         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
11324           in dispose method. Fixes #76330
11325
11326 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
11327
11328         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
11329
11330                 - Implements vertical and horizontal scrolling using XplatUI
11331                 - Fixes keyboard navagation
11332                 - Fixes EnsureVisible
11333                 - Drawing fixes
11334                 - Handles and draws focus properly
11335
11336
11337 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
11338
11339         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
11340           Create handle. NET_2_0: Destroy handle when value is null.
11341
11342 2005-10-03  Jackson Harper  <jackson@ximian.com>
11343
11344         * ScrollBar.cs: My last scrollbar patch was broken. This is a
11345         revert and a new patch to prevent the thumb from refreshing so
11346         much.
11347
11348 2005-10-02  Jackson Harper  <jackson@ximian.com>
11349
11350         * ScrollBar.cs: Don't update position if it hasn't actually
11351         changed. This occurs when you hold down the increment/decrement
11352         buttons and the thumb gets to the max/min.
11353
11354 2005-10-01  Jackson Harper  <jackson@ximian.com>
11355
11356         * Form.cs:
11357         * MdiChildContext.cs:
11358         * MdiClient.cs: Implement ActiveMdiChild in Form.
11359
11360 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
11361
11362         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
11363
11364 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
11365
11366         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
11367           be found
11368
11369 2005-09-30  Jackson Harper  <jackson@ximian.com>
11370
11371         * ListBox.cs: Don't do a full refresh unless some data has
11372         actually changed.
11373
11374 2005-09-30  Jackson Harper  <jackson@ximian.com>
11375
11376         * TreeView.cs: Make sure that the checkboxes size is factored in
11377         even when not visible.
11378
11379 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11380
11381         * FileDialog.cs: Fix Jordi's build break
11382
11383 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11384
11385         * FileDialog.cs: 
11386                 - Use standard the Windows colours for the combobox as espected
11387                 - Dispose objects that use resouces when no longer need them
11388
11389 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
11390
11391         * X11DesktopColors.cs: Initial incomplete implementation
11392         * XplatUIX11.cs: Added call to initialize X11DesktopColors
11393
11394 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
11395
11396         * Theme.cs: 
11397           - Switched Theme color names to match the names defined in 
11398             System.Drawing.KnownColors. Life's hard enough, no need to make 
11399             it harder.
11400           - Added setters to all theme color properties so themes can set
11401             their color schemes. The setters also propagate the color changes
11402             to System.Drawing.KnownColors via reflection
11403         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
11404           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
11405           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
11406           use the new, more logical theme color names
11407         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
11408           post-NT colors
11409         * ThemeWin32Classic.cs:
11410           - Removed code to set the old classic Windows colors. Instead it
11411             now relies on the colors returned by System.Drawing.KnownColors
11412             which will be either modern static colors (Unix) or colors
11413             read from the user's configuration (Win32)
11414           - Updated to use the new, more logical theme color names
11415           - Switched DataGrid drawing code to use only Theme colors instead of
11416             a mix of System.Drawing.KnownColors and Theme colors
11417           - DrawFrameControl(): Removed code that fills the button area, the
11418             fill would overwrite any previous fill done by a control. This
11419             fixes bug #75338 
11420           - Added DrawReversibleRectangle() stub
11421         * ScrollableControl.cs: Set visible state to false when scrollbars
11422           are removed (pdn fix)
11423         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
11424           DrawReversibleRectangle() method to allow drawing primitive 
11425           'rubber bands'
11426         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
11427
11428 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11429
11430         * ImageList.cs: Add(Icon): Create handle.
11431
11432 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
11433
11434         * ListView.cs:
11435         * ThemeWin32Classic.cs:
11436                 - Fixes detail mode
11437                 - Sets clippings
11438                 - Issues with drawing
11439
11440 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11441
11442         * ImageList.cs: Moved RecreateHandle back to ImageList as event
11443           source has to be the ImageList.
11444
11445 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11446
11447         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
11448
11449 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11450
11451         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
11452
11453 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11454
11455         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
11456
11457 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
11458         * GridItem.cs: Fixed TODOs
11459         * GridItemCollection.cs: Added ICollection interface
11460
11461 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
11462
11463         * ImageList.cs: Resize icons when needed.
11464
11465 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
11466
11467         * ListViewItem.cs
11468                 - Fixes GetBounds and returns on screen rects
11469         * ListView.cs:
11470                 - Fixes vertical and horzintal scrolling of items
11471         * ThemeWin32Classic.cs:
11472                 - Fixes drawing
11473                 
11474 2005-09-29  Raja R Harinath  <harinath@gmail.com>
11475
11476         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
11477
11478 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
11479
11480         * ImageList.cs: Added comments about handle creation. Moved Handle,
11481           HandleCreated and OnRecreateHandle implementations to ImageCollection.
11482           Handle is created in Add methods.
11483
11484 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11485          
11486         * DataGridDrawingLogic.cs: 
11487                 - Takes rows into account on Colum calculations
11488                 - Returns the column when clickig
11489         * DataGrid.cs:
11490                 - Fixes default HitTestInfo values
11491                 - Fixes HitTestInfo.ToString
11492                 - Fixes ResetBackColor          
11493         
11494 2005-09-28  Jackson Harper  <jackson@ximian.com>
11495
11496         * MdiChildContext.cs: Obey rules for fixed sized windows (no
11497         sizing or cursor changes). Also added some temp code to draw the
11498         titlebars text (Makes dev a little easier).
11499
11500 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11501
11502         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
11503
11504 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11505          
11506         * ListBox.cs: Fixes bug 76253
11507
11508 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11509
11510         * ImageList.cs: Added comments about the current implementation. Added
11511           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
11512           Format32bppArgb to preserve transparency and can use Graphics.FromImage
11513           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
11514           with Bitmap.LockBits for better performance. Revised the whole file to
11515           match MS.NET behaviour and provide better performance. Non-public
11516           interface members are calling public members even when they throw
11517           NotSupportedException for better maintainability. Moved ColorDepth,
11518           ImageSize, ImageStream and TransparentColor implementations to
11519           ImageCollection for better performance as these properties are not used
11520           by ImageList.
11521         * ImageListStreamer.cs: Added a new internal constructor that takes an
11522           ImageList.ImageCollection and serializes Images based on
11523           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
11524           match ImageList property name.
11525
11526 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
11527
11528         * ListBox.cs: Fixes IndexFromPoint for last item
11529
11530 2005-09-27  Jackson Harper  <jackson@ximian.com>
11531
11532         * Form.cs: Set the position of new mdi children correctly.
11533
11534 2005-09-27  Jackson Harper  <jackson@ximian.com>
11535
11536         * MdiClient.cs: New mdi children need to be added to the back of
11537         the controls collection so the zorder is set correctly. Also add a
11538         count of all the child windows that have been created.
11539
11540 2005-09-27  Jackson Harper  <jackson@ximian.com>
11541
11542         * Form.cs (CreateParams): Setup MDI forms correctly.
11543
11544 2005-09-27  Jackson Harper  <jackson@ximian.com>
11545
11546         * MdiChildContext.cs:
11547         * MonthCalendar.cs:
11548         * UpDownBase.cs:
11549         * ListBox.cs:
11550         * ListView.cs:
11551         * TextBoxBase.cs:
11552         * TreeView.cs:
11553         * ScrollableControl.cs:
11554         * ComboBox.cs: Add implicit controls using the new implict control
11555         functionality in ControlCollection. Also try to block multiple
11556         control add in a suspend/resume layout to save some cycles.
11557         
11558 2005-09-27  Jackson Harper  <jackson@ximian.com>
11559
11560         * Control.cs: Add functionality to the controls collection to add
11561         'implicit controls' these are controls that are created by the
11562         containing control but should not be exposed to the user. Such as
11563         scrollbars in the treeview.
11564         * Form.cs: The list var of the ControlsCollection is no longer
11565         available because of the potential of implicit controls getting
11566         ignored by someone accessing the list directly.
11567
11568 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
11569
11570         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
11571           loose it's parent. (Fixed bug introduced in r49103 when we added
11572           setting the child parent to null on Remove)
11573
11574 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
11575
11576         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
11577         * Splitter.cs: Added missing attributes for BorderStyle property.
11578         * TextBoxBase.cs: Marked Calculate* methods internal.
11579         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
11580         MS.NET.
11581
11582 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
11583          
11584         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
11585
11586 2005-09-25  Jackson Harper  <jackson@ximian.com>
11587
11588         * TreeView.cs: Update the node bounds correctly regardless of
11589         whether the node is visible.
11590
11591 2005-09-25  Jackson Harper  <jackson@ximian.com>
11592
11593         * ImageList.cs: Don't dispose the image after it is added to the
11594         image list. Only reformat images that need to be resized.
11595
11596 2005-09-25  Jackson Harper  <jackson@ximian.com>
11597
11598         * ImageList.cs: Don't set the format when changing the image.
11599
11600 2005-09-25  Jackson Harper  <jackson@ximian.com>
11601
11602         * TreeView.cs: We can't just assume the node has a font. Use the
11603         treeviews font if no node font is available.
11604
11605 2005-09-25  Jackson Harper  <jackson@ximian.com>
11606
11607         * TreeView.cs: Allow the scrollbars to be reset with negative
11608         values.
11609         - Don't add scrollbars to negative sized windows.
11610
11611 2005-09-23  Jackson Harper  <jackson@ximian.com>
11612
11613         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
11614         old Mono.Posix. Also remove some stray code that shouldn't have
11615         been committed.
11616
11617 2005-09-23  Jackson Harper  <jackson@ximian.com>
11618
11619         * TreeView.cs: Attempt at proper sizing of the horizontal
11620         scrollbar. Also don't resize the scrollbars unless they are
11621         visible.
11622
11623 2005-09-23  Jackson Harper  <jackson@ximian.com>
11624
11625         * TreeView.cs: We don't need to expand the invalid area when the
11626         selection changes, as this is all drawn in the node's bounding
11627         box. The area needs to be expanded (previous typo was contracting
11628         it) when the focus rect moves.
11629
11630 2005-09-23  Jackson Harper  <jackson@ximian.com>
11631
11632         * TreeView.cs: Display the selection box under the correct
11633         circumstances. We were rendering white text with no selection box
11634         before.
11635
11636 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
11637
11638         * TextControl.cs(Split): Now updates selection start/end if it points 
11639           into a line that's being split. Fixes a FIXME and bug #75258
11640
11641 2005-09-23  Jackson Harper  <jackson@ximian.com>
11642
11643         * Binding.cs:
11644         * ListControl.cs: Don't use the path when retrieving binding
11645         managers from the binding context. My bat sense tells me that the
11646         path is only used on insertion.
11647
11648 2005-09-22  Jackson Harper  <jackson@ximian.com>
11649
11650         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
11651
11652 2005-09-22  Jackson Harper  <jackson@ximian.com>
11653
11654         * Splitter.cs: There are special cursors used for splitting.
11655         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
11656
11657 2005-09-22  Jackson Harper  <jackson@ximian.com>
11658
11659         * Splitter.cs: Change the cursor appropriately when the splitter
11660         is moused over, so the user actually knows there is a splitter
11661         there.
11662
11663 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11664
11665        * Label.cs : Fix ToString method to give same output as MS.NET
11666
11667 2005-09-22  Jackson Harper  <jackson@ximian.com>
11668
11669         * TreeView.cs: Create the scrollbars when the handle is created
11670         and add them right away, just make them invisble. Also account for
11671         the window being shrunk vertically to the point that the vert
11672         scrollbar needs to be added.
11673         - Remove some 0.5 adjustments to get around anti aliasing issues.
11674         
11675 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
11676          
11677         * MainMenu.cs: Fixes default value
11678         * MenuItem.cs: Fixes default value
11679
11680 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
11681
11682         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
11683
11684 2005-09-21  Jackson Harper  <jackson@ximian.com>
11685
11686         * Control.cs: Don't try to set the border style on the window if
11687         it hasn't been created. When the window is created the border
11688         style will be used.
11689
11690 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11691
11692         * Control.cs (Update): Don't call XplatUI if we don't have a
11693           window handle yet
11694
11695 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11696
11697         * ContainerControl.cs: Instead of throwing an exception, print
11698           a one-time warning about Validate not being implemented
11699         * XplatUIWin32.cs: Removed debug output
11700
11701 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11702
11703         * Control.cs: Only set XplatUI background if we expect the windowing
11704           system to handle the background. This stops controls that draw their
11705           own background from flickering
11706
11707         * XplatUIX11.cs: Support custom visuals and colormaps for window 
11708           creation. This allows, amongst other things, using MWF X11 windows 
11709           with OpenGL.
11710
11711 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11712
11713         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
11714           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
11715           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
11716           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
11717           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
11718           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
11719           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
11720           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
11721           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
11722           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
11723           GridColumnStylesCollection.cs, 
11724           IDataGridColumnStyleEditingNotificationService.cs,
11725           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
11726           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
11727           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
11728           TreeNodeCollection.cs, AmbientProperties.cs, 
11729           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11730           DataObject.cs, ErrorProvider.cs, Splitter.cs,
11731           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
11732           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
11733           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
11734           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
11735           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
11736           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
11737           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
11738           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
11739           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
11740           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
11741           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
11742           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
11743           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
11744           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
11745           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
11746           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
11747           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
11748           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
11749           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
11750           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
11751           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
11752           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
11753           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
11754           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
11755           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
11756           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
11757           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
11758           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
11759           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
11760           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
11761           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
11762           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
11763           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
11764           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
11765           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
11766
11767 2005-09-21  Jackson Harper  <jackson@ximian.com>
11768
11769         * TreeNode.cs: Call Before/After Expand not Collapse when
11770         expanding.
11771
11772 2005-09-20  Jackson Harper  <jackson@ximian.com>
11773         
11774         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
11775
11776 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11777          
11778         * ListViewItem.cs:
11779                 - Fixes bug 76120
11780                 - Fixes proper storing of subitems
11781                 - Fixes not updated items
11782
11783 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
11784
11785         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
11786           things if our window handle isn't created yet. Also disabled 
11787           debug for TextBoxBase
11788
11789 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
11790
11791         * MenuAPI.cs: Remove filtering of events to allow menu usage
11792
11793 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11794
11795         * Cursor.cs: Allow null to be passed to Cursor.Current.
11796
11797 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
11798
11799         * ThemeWin32Classic.cs:
11800           - Change some private methods/fields to protected virtual so that 
11801             they can be accessed and overriden in derived classes
11802           - First refactoring of some methods. Derived themes now don't 
11803             need to duplicate the complete code from ThemeWin32Classic
11804         * ThemeNice.cs:
11805           - Added nice StatusBar
11806           - Derive from ThemeWin32Classic and not Theme
11807           - Removed duplicate ThemeWin32Classic code
11808
11809 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11810
11811         * Control.cs (ControlCollection.Add): If the value null is passed
11812         the control is ignored. 
11813
11814         Optimize this loop.
11815
11816 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
11817
11818         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
11819           PostQuitMessage state.
11820         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
11821
11822 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
11823
11824         * Application.cs: Our constructor will never get called, move 
11825           initialization to fields; fixes bug #75933
11826
11827 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11828
11829         * FileDialog.cs :
11830                 - Allow files to be selected properly using file name
11831                 combo box.
11832                 - Add ability to change diretory (absolute / relative)
11833                 using file name combo box.
11834
11835 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11836          
11837         * ListBox.cs: 
11838                 - Fixes Multicolumn listboxes item wrong calculations
11839                 - Allows to click when only one item is in the listbox
11840                 - Fixes crash when no items using keyboard navigation
11841
11842 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
11843
11844         * ComboBox.cs: Reverted almost everything from the latest patch which
11845           broke ComboBox
11846
11847 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
11848         
11849         * ToolTip.cs:
11850                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
11851         * ComboBox.cs:
11852                 - When DropDownStyle is Simple, it does not show scrollbar 
11853                 to the last item of the list.
11854                 - When DropDownStyle is Simple, it crashed when the list was 
11855                 scrolled down with the down cursor key.
11856                 - Fixed a bug that when DropDownStyle is DropDownList, the 
11857                 selected item was not shown.
11858                 - The position of the selected item was not preserved when 
11859                 the next dropdown happened.
11860         * ThemeWin32Classic.cs:
11861                 - Items were wrapped at the right end.
11862         * CheckedListBox.cs:
11863                 - Fixed Add method
11864         * ListBox.cs:
11865                 - Items should be fully shown.
11866                 - When resizing and vertical scrollbar disappeared, the item 
11867                 of index 0 should be on the top of the list.
11868                 - GetItemRectangle should consider the size of ver. scrollbar
11869         * StatusBar.cs:
11870                 - SizingGrip area should not be allocated when it is not 
11871                 displayed.
11872                 - Now it reflects MinWidth of the containing panel and 
11873                 fixed a crash that happens when its width becomes so small.
11874
11875 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11876
11877         * CheckedListBox.cs: Fixes bug 76028
11878         * ListBox.cs: Fixes bug 76028
11879
11880 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11881
11882         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
11883         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
11884
11885 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
11886
11887         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
11888
11889 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11890
11891         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
11892
11893 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11894
11895         * IRootGridEntry.cs: Added
11896         * PropertyGridCommands.cs: Added
11897         * PropertiesTab.cs: Added missing methods and property
11898         * PropertyGridView.cs: Made class internal
11899         * PropertyGridTextBox.cs: Made class internal
11900
11901 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11902
11903         * MimeIcon.cs: Try to check some other environment variables
11904           if "DESKTOP_SESSION" returns "default"
11905
11906 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11907
11908         * ThemeNice.cs: Corrected background colors (e.g. menus)
11909         * ColorDialog.cs: Use correct background colors for controls
11910
11911 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11912
11913         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
11914
11915 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
11916
11917         * RichTextBox.cs: Added initial implementation
11918         * lang.cs: Removed. Was accidentally checked in long time ago
11919         * TODO: Removed. Contents were obsolete
11920
11921 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11922                                                                                 
11923         * PropertiesTab.cs : Added
11924
11925 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11926                                                                                 
11927         * PropertyGrid.cs : Update
11928         * PropertyGridView.cs : Update
11929         * System.Windows.Forms.resx : Added images and strings
11930
11931 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
11932
11933         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
11934  
11935 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
11936
11937         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
11938           a busy loop right after the Ungrab the X11 display is otherwise 
11939           blocked
11940
11941 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
11942
11943         * ThemeWin32Classic.cs: Optimise the use of clipping
11944
11945 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
11946
11947         * DataGrid.cs: fixes recursion bug
11948
11949 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
11950
11951         * ThemeNice.cs: 
11952           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
11953           - Cleanup
11954
11955 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
11956
11957         * ThemeNice.cs: Draw nice ProgressBars
11958
11959 2005-09-01  Miguel de Icaza  <miguel@novell.com>
11960
11961         * VScrollBar.cs: Another buglet found by Aaron's tool. 
11962
11963         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
11964         bug finder.
11965
11966 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
11967
11968         * ThemeNice.cs:
11969           - Added nicer menu drawing
11970           - Updated DrawTab
11971           - some refactoring
11972
11973 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11974
11975         * CreateParams.cs (ToString): Made output match MS
11976         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
11977             handle is already created (to avoid forcing window creation)
11978         * XplatUIX11.cs: Set window text to caption after creating window,
11979           in case Text was set before window was created
11980         * Form.cs: Use this.Text instead of a static string as caption
11981
11982 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11983
11984         * NotifyIcon.cs: Don't set the window to visible; this screws
11985           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
11986           OnPaint without a bitmap)
11987         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
11988           happen very often anyway; we could add the check to the WM_PAINT 
11989           event generation code
11990
11991 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11992
11993         * NotifyIcon.cs: Fill the icon area with a background color, to 
11994           avoid 'residue' when transparent icons are drawn
11995         * XplatUIX11.cs:
11996           - Handle whole_window == client_window when destroying windows
11997           - SystrayAdd(): Set client_window to whole_window value to
11998             get mouse and other events passed to NotifyIcon
11999
12000 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
12001
12002         * Form.cs: Set proper default for Opacity property
12003         * NotifyIcon.cs:
12004           - ShowSystray(): Don't bother creating telling the OS
12005             about the systray item if no icon is provided
12006           - Now handles WM_NCPAINT message to deal with whole/client window
12007             split
12008           - Create window as visible to not get caught by Expose optimization
12009         * Hwnd.cs: Removed debug message
12010         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
12011           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
12012             PaintEventStart/End to use new client argument
12013         * TextBoxBase.cs:
12014           - Commented out debug messages
12015           - Switched PaintEventStart/End to use new client argument
12016         * XplatUI.cs: Added client window bool to PaintEventStart()/
12017           PaintEventEnd() calls, to support drawing in non-client areas
12018         * XplatUIDriver.cs: 
12019           - Added client window bool to PaintEventStart()/PaintEventEnd() 
12020             calls, to support drawing in non-client areas
12021           - Added conditional compile to allow using MWF BeginInvoke 
12022             on MS runtime
12023         * XplatUIX11.cs:
12024           - Added some conditional debug output
12025           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
12026             whole/client window split
12027           - Implemented handling of client argument to PaintEventStart()/End()
12028         * Control.cs:
12029           - Throw exception if BeginInvoke() is called and the window handle
12030             or one of the window's parent handles is not created
12031           - Added conditional compile to allow using MWF BeginInvoke on
12032             MS runtime
12033           - get_Parent(): Only sets parent if handle is created. This avoids
12034             forcing window handle creation when parent is set.
12035           - Now fires Layout and Parent changed events in proper order
12036           - Switched to use Handle instead of window.Handle for Z-Order setting,
12037             the get_Parent() patch above causes us to possibly get null for 'window'
12038           - Implemented handling of client argument to PaintEventStart()/End()
12039           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
12040             default handling)
12041           - Now sends a Refresh() to all child windows when Refresh() is called
12042
12043 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
12044
12045         * Form.cs: Added (non-functional) Opacity property
12046         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
12047
12048 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
12049         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
12050           use export MONO_THEME=nice to activate it.
12051           Currently supported controls:
12052           - Button
12053           - ComboBox
12054           - ScrollBar
12055           - TabControl (TabAlignment.Top only, other will follow)
12056         * ThemeEngine.cs: Add theme nice
12057         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
12058           if enabled
12059
12060 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
12061
12062         * Splitter.cs: Resize docked control and its neighbor.
12063
12064 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12065         -- Making Windows with Menus layout correctly --
12066         * Form.cs : The first leg of the fix
12067                 Menu setter - adjust Client Size as needed to make space for the menu
12068                 SetClientSizeCore - doesn't call base version to be able to pass the 
12069                         menu handle to XplatUI.CalculateWindowRect
12070         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
12071         * XplatUIX11.cs: The critical second leg of the fix
12072                 GetWindowPos needs to use a recalculated client_rect
12073                 so that resizing the window doesn't break layout of child controls. 
12074                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
12075                 Lots of \t\n killed
12076
12077 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12078
12079         * Label.cs: Now properly recalculates width and height on Font and Text
12080           changes if AutoSize is set
12081
12082 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12083         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
12084
12085 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
12086
12087         * ImageList.cs: Makes ToString method compatible with MS
12088
12089 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
12090
12091         * MenuAPI.cs: fixes bug 75716
12092
12093 2005-08-11 Umadevi S <sumadevi@novell.com>
12094         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
12095
12096 2005-08-11 Umadevi S <sumadevi@novell.com>
12097         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
12098
12099 2005-08-10  Umadevi S <sumadevi@novell.com>
12100         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
12101
12102 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
12103
12104         * Menu.cs: fixes bug 75700
12105         * MenuAPI.cs: fixes navigation issues
12106
12107 2005-08-09  Umadevi S <sumadevi@novell.com>
12108         * CheckedListBox.cs - simple fix for GetItemChecked.
12109
12110 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
12111
12112         * ComboBox.cs: Serveral fixes
12113         * ListBox.cs: Serveral fixes
12114
12115 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12116
12117         * ComboBox.cs: Fixes FindString methods and GetItemHeight
12118         * ListBox.cs: Fixes FindString methods
12119
12120 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
12121
12122         * DataGrid.cs: fixes bugs exposed by new tests
12123
12124 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
12125
12126         * Mime.cs: Compile Mono assembly references only if compiling
12127           with Mono (Allows to build with VS.Net again)
12128
12129 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
12130
12131         * Control.cs (PaintControlBackground): Draw background image
12132         corrrectly.
12133         (CheckForIllegalCrossThreadCalls): Stubbed.
12134         
12135         * Form.cs (OnCreateControl): Center when should be centered.
12136         
12137         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
12138
12139 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
12140
12141         * Binding.cs: Binding to properties should be case unsensitive
12142
12143 2005-07-18 vlindos@nucleusys.com
12144
12145         * DataGrid.cs: fixes setmember order
12146
12147 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
12148
12149         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
12150         * FileDialog.cs: FileDialog is now resizable and uses the new
12151           MimeIconEngine
12152
12153 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
12154
12155         * DataGridTextBoxColumn.cs: default value
12156         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
12157         * GridTableStylesCollection.cs: fixes checking MappingName
12158         * DataGridDrawingLogic.cs: fixes drawing logic issues
12159         * DataSourceHelper.cs: rewritten to make compatible with more data sources
12160         * DataGrid.cs: fixes    
12161
12162 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
12163
12164         * MimeGenerated.cs: Use case sensitive comparer for
12165           NameValueCollections
12166
12167 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
12168
12169         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
12170         * ThemeWin32Classic.cs: bug fixes, code refactoring
12171         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
12172         * DataGrid.cs: bug fixes, code refactoring
12173         * DataGridTextBox.cs: bug fixes, code refactoring
12174         * DataGridColumnStyle.cs:  bug fixes, code refactoring
12175         * Theme.cs:  bug fixes, code refactoring
12176
12177 2005-07-01  Peter Bartok  <pbartok@novell.com> 
12178
12179         * TextControl.cs: Quick fix for the reported crash on ColorDialog
12180           and other text box usage
12181
12182 2005-07-01  Jackson Harper  <jackson@ximian.com>
12183
12184         * TabControl.cs: Make sure the bottom of the tab covers the pages
12185         border.
12186
12187 2005-06-30  Peter Bartok  <pbartok@novell.com> 
12188
12189         * Form.cs (ShowDialog): Assign owner of the dialog
12190         * TextBoxBase.cs: Always refresh caret size when deleting, caret
12191           might have been moved to a tag with different height
12192
12193 2005-06-30  Jackson Harper  <jackson@ximian.com>
12194
12195         * Form.cs: Don't create an infinite loop when setting focus
12196         * MenuItem.cs: Don't dirty the parents if we don't have any
12197
12198 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
12199
12200         * LibSupport.cs: Rename
12201
12202 2005-06-29  Peter Bartok  <pbartok@novell.com>
12203
12204         * TextBoxBase.cs: Re-align caret after deleting a character
12205         * TextControl.cs:
12206           - DeleteChars(): Ensure that tag covers the provided position
12207           - StreamLine(): Drop reference for dropped tag
12208
12209 2005-06-29  Peter Bartok  <pbartok@novell.com> 
12210
12211         * TextControl.cs: 
12212           - Selections now work properly, anchoring at the initial location
12213             and properly extending in either direction (SetSelectionToCaret(),
12214             SetSelectionStart() and SetSelectionEnd())
12215           - No longer redraws the whole control on selection change, now
12216             calculates delta between previous and new selection and only
12217             invalidates/redraws that area
12218           - Fixed FindPos() math off-by-one errors
12219           - Changed DeleteChars() to verify the provided tag covers the
12220             provided position, selections may have a tag that doesn't cover
12221             the position if the selection is at a tag border
12222           - Fixed off-by-one errors in DeleteChars()
12223           - Added missing streamlining check in DeleteChars() to remove
12224             zero-length tags
12225           - Implemented Invalidate() method, now properly calculates exposures
12226             between two given lines/positions
12227           - Implemented SetSelection()
12228           - Obsoleted and removed FixupSelection()
12229           - Improved RecalculateDocument() logic, removing code duplication
12230
12231 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12232
12233         * LibSupport.cs: changes to match different input/output arguments.
12234
12235 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12236
12237         * LibSupport.cs: added libsupport.so init routine.
12238
12239 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
12240         
12241         * ControlBindingsCollection.cs
12242                 - Throws an exception on null datasource when adding
12243                 - Checks for duplicated bindings when adding
12244
12245 2005-06-28  Jackson Harper  <jackson@ximian.com>
12246
12247         * TreeView.cs (OnKeyDown): Support left and right properly
12248         (navigates as well as expanding and collapsing.
12249         - Add support for Multiply, this expands all the selected nodes
12250         children.
12251         - Fix some tabbing.
12252
12253 2005-06-28  Jackson Harper  <jackson@ximian.com>
12254
12255         * TreeView.cs: Implement keyboard navigation, currently supports,
12256         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
12257         support for toggling checkboxes with the space bar.
12258
12259 2005-06-28  Jackson Harper  <jackson@ximian.com>
12260
12261         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
12262         tree.
12263
12264 2005-06-28  Jackson Harper  <jackson@ximian.com>
12265
12266         * TreeView.cs: Add missing event.
12267
12268 2005-06-27  Peter Bartok  <pbartok@novell.com> 
12269
12270         * TextControl.cs:
12271           - Made line ending size configurable (now allows for counting 
12272             lineendings as \n or \r\n)
12273           - Added margin to viewport to keep caret visible on right side
12274           - Fixed translation routines for line/pos to documentpos to consider
12275             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
12276           - Fixed some line-endings to be unix style
12277           - Fixed Document.FormatText to perform it's calculations 1-based
12278           - Added descriptions for a few methods that might otherwise get 
12279             used wrong
12280           - Added NOTE section with some basic conventions to remember at 
12281             the top of the file
12282           - Major fixup for RichTextBox selection drawing:
12283             * Fixed crashes when multiple tags on a single line were selected
12284             * fixed selection box drawing not overlaying text
12285             * fixed bogus offset calculation for tags not starting at index 1
12286             * Switched behaviour from using multiple Substrings of a 
12287               StringBuilder.ToString() to using multiple 
12288               StringBuilder.ToString(start, length) statements, hoping this is
12289               faster (kept original version commented out in the code, in case
12290               original version was faster)
12291         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
12292           alignment != Left
12293         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
12294           call it as well
12295
12296 2005-06-27  Jackson Harper  <jackson@ximian.com>
12297
12298         * TabControl.cs: Move to the left and right with the arrow
12299         keys. These keys don't cycle beyond first and last like
12300         tab. Refresh all the tabs when scrolling them to the left or
12301         right.
12302
12303 2005-06-27  Jackson Harper  <jackson@ximian.com>
12304
12305         * TabControl.cs:
12306           - ToString: Added method
12307           - CreateParams: Remove TODO and comment
12308           - OnKeyDown: Cycle through bounds properly.
12309           - SelectedIndex: Scroll to the right or left if we need to
12310           display the newly selected tab.
12311
12312 2005-06-23  Jackson Harper  <jackson@ximian.com>
12313
12314         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
12315         set.
12316
12317 2005-06-23  Jackson Harper  <jackson@ximian.com>
12318
12319         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
12320         CTRL-SHIFT-TAB, and HOME, END are there any others?
12321
12322 2005-06-23  Jackson Harper  <jackson@ximian.com>
12323
12324         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
12325
12326 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12327         
12328         * DataGridTextBoxColumn.cs: fixes and enhancements
12329         * ThemeWin32Classic.cs: fixes and enhancements
12330         * DataGridBoolColumn.cs:  fixes and enhancements
12331         * DataGridDrawingLogic.cs:  fixes and enhancements
12332         * CurrencyManager.cs: fixes and enhancements
12333         * DataGrid.cs: fixes and enhancements
12334         * DataGridColumnStyle.cs:  fixes and enhancements
12335
12336 2005-06-22  Jackson Harper  <jackson@ximian.com>
12337
12338         * TabControl.cs: Add some missing methods that just call into the
12339         base. Make the TabPageCollection's IList interface behave in the
12340         same manner as the MS implementation.
12341
12342 2005-06-22  Peter Bartok  <pbartok@novell.com> 
12343
12344         * TextControl.cs: Added sanity check
12345         * TextBoxBase.cs: 
12346           - Fixed wrapping behaviour, don't set wrap on single line controls
12347             (this fixes the breakage of colordialog introduced in an earlier
12348              checkin)
12349           - Added rudimentary support for autoscrolling right-aligned controls
12350             (still needs fixing, also, center alignment scroll is missing)
12351
12352 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
12353         
12354         * ScrollBar.cs: Fixes thumbpos on Maximum values
12355
12356 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
12357         
12358         * PropertyGridView.cs: Pass context information to UITypeEditors 
12359
12360 2005-06-21  Peter Bartok  <pbartok@novell.com> 
12361
12362         * TextBoxBase.cs:
12363           - Now calling PositionCaret with absolute space coordinates
12364           - Enabled vertical scrolling
12365           - Better tracking of scrollbar changes, tied into WidthChange
12366             event
12367           - Improved cursor tracking
12368           - Removed debug output
12369         * TextControl.cs:
12370           - PositionCaret coordinates are now works in absolute space, not 
12371             the canvas
12372           - Improved tracking of document size
12373           - Added events for width and height changes
12374
12375 2005-06-21  Peter Bartok  <pbartok@novell.com>
12376
12377         * Form.cs: Set focus to active control when form is activated
12378         * TextControl.cs: 
12379           - Added word-wrap functionality to RecalculateLine() 
12380           - Added some short function descriptions for VS.Net to aid in
12381             writing dependent controls
12382           - Added Caret property, returning the current coords of the caret
12383           - Added ViewPortWidth and ViewPortHeight properties
12384           - Added Wrap property
12385           - Added CaretMoved event
12386           - Removed some old debug code
12387           - Split() can now create soft splits
12388           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
12389           - Added method to format existing text
12390           - Fixed size/alignment calculations to use viewport
12391           - RecalculateDocument now can handle changing line-numbers while
12392             calculating lines
12393
12394         * TextBox.cs:
12395           - Added some wrap logic, we don't wrap if alignment is not left
12396           - Added casts for scrollbar var, base class switched types to
12397             also support RichTextBoxA
12398           - Implemented handling of scrollbar visibility flags
12399
12400         * TextBoxBase.cs:
12401           - Switched scrollbars type to RichTextBoxScrollBars to support
12402             RichTextBox
12403           - Added tracking of canvas width/height
12404           - Switched scrollbars to be not selectable (to keep focus on text)
12405           - Added central CalculateDocument() method to handle all redraw
12406             requirements
12407           - Added ReadOnly support
12408           - Added WordWrap support
12409           - Fixed handling of Enter key (we now treat it as a DialogKey)
12410           - Fixed caret positioning when h or v scroll is not zero
12411           - Fixed placing/generation of vertical scrollbar
12412           - Added CalculateScrollBars() method to allow updating scrollbar
12413             limits and visibility
12414           - Fixed handling of horizontal scroll
12415           - Added handling of vertical scroll
12416           - Implemented auto-'jump' when caret moves to close to a left or
12417             right border and there is text to be scrolled into view (currently
12418             there's the potential for a stack overflow, until a bug in
12419             scrollbar is fixed)
12420
12421 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
12422         
12423         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
12424
12425 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
12426
12427         * Mime.cs:
12428         - added inodes.
12429         - return application/x-zerosize for files with size zero
12430           (if no extension pattern matches).
12431         - check matches collection for strings too.
12432         - return only the first mime type if the name value
12433           collection has more than one mime type.
12434
12435 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
12436         
12437         * PropertyGrid.cs: Cleaned up some TODOs
12438         * PropertyGridView.cs: Added support for UITypeEditors
12439
12440 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12441         
12442         * DataGrid.cs: clears cached value
12443
12444 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
12445
12446         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
12447         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
12448         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
12449         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
12450         
12451 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
12452
12453         * ThemeWin32Classic.cs: fixes colour
12454
12455 2005-06-15  Peter Bartok  <pbartok@novell.com>
12456
12457         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
12458         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
12459         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
12460         * Control.cs: Added some MWFCategory and MWFDescription attributes
12461         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
12462
12463 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
12464
12465         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
12466         usage
12467
12468 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
12469
12470         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
12471         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
12472         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
12473         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
12474         * DataGrid.cs: default datagrid settings for Default Styles, fixes
12475         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
12476
12477 2005-06-13  Jackson Harper  <jackson@ximian.com>
12478
12479         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
12480         isn't printed when the user enables dropping. (X11 does accept
12481         drops).
12482         
12483 2005-06-13  Jackson Harper  <jackson@ximian.com>
12484
12485         * TreeView.cs: Remove some TODOS.
12486
12487 2005-06-13  Jackson Harper  <jackson@ximian.com>
12488
12489         * Form.cs: Hook into the mdi framework.
12490         * MdiClient.cs: Use the base control collections add method so
12491         parents get setup correctly. Set the default back colour and dock
12492         style.
12493         * MdiChildContext.cs: New class, this bad actor handles an
12494         instance of an MDI window. Right now there is only basic
12495         support. You can drag, close, and resize windows. Minimize and
12496         Maximize are partially implemented.
12497
12498 2005-06-13  Jackson Harper  <jackson@ximian.com>
12499
12500         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
12501         freaky when both vals are negative. NOTE: There are probably other
12502         places in XplatUIX11 that this needs to be done.
12503
12504 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
12505
12506         * DataGrid.cs: implement missing methods, move KeyboardNavigation
12507         * DataGridColumnStyle.cs: fixes signature
12508
12509 2005-06-12  Jackson Harper  <jackson@ximian.com>
12510
12511         * XplatUIX11.cs: Use sizing cursors similar to the ones on
12512         windows.
12513
12514 2005-06-11  Jackson Harper  <jackson@ximian.com>
12515
12516         * StatusBarPanel.cs: Signature cleanups. Implement
12517         BeginInit/EndInit.
12518
12519 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
12520
12521         * DataGridTextBoxColumn.cs: Honors aligment
12522         * GridColumnStylesCollection.cs: Contains is case unsensitive
12523         * GridTableStylesCollection.cs: several fixes
12524         * DataGridTableStyle.cs: default column creation
12525         * DataGridDrawingLogic.cs: fixes
12526         * CurrencyManager.cs: ListName property
12527         * DataGrid.cs: multiple styles support
12528         * DataGridColumnStyle.cs: fixes
12529         
12530
12531 2005-06-10  Peter Bartok  <pbartok@novell.com>
12532
12533         * Control.cs(Select): Moved SetFocus call to avoid potential
12534           loops if controls change the active control when getting focus
12535         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
12536           the up/down buttons
12537
12538 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
12539
12540         * ImageListConverter.cs: Implemented
12541
12542 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12543
12544         * MonthCalendar.cs: Wired in NumericUpDown control for year
12545
12546 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12547
12548         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
12549           DoubleClick events, since they are not meant to be fired.
12550
12551 2005-06-09  Peter Bartok  <pbartok@novell.com>
12552
12553         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
12554           Jonathan's standalone controls into MWF, implemented missing
12555           events, attributes and methods; added xxxAccessible classes
12556         * AccessibleObject.cs: Made fields internal so other classes
12557           can change them if needed
12558
12559 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
12560
12561         * UpDownBase.cs: Complete implementation
12562         * NumericUpDown.cs: Complete implementation
12563         * DomainUpDown.cs: Complete implementation
12564
12565 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
12566
12567         * DataGridTextBoxColumn.cs: drawing fixes
12568         * DataGridCell.cs: fixes ToString method to match MSNet
12569         * DataGridTableStyle.cs: fixes
12570         * DataGridBoolColumn.cs: fixes, drawing
12571         * DataGridDrawingLogic.cs: fixes, new methods
12572         * DataGridTextBox.cs: Keyboard and fixes
12573         * DataGrid.cs:
12574                 - Keyboard navigation
12575                 - Scrolling fixes
12576                 - Row selection (single, multiple, deletion, etc)
12577                 - Lots of fixes
12578         
12579 2005-06-07  Jackson Harper  <jackson@ximian.com>
12580
12581         * ThemeWin32Classic.cs: Clear the background area when drawing
12582         buttons.
12583
12584 2005-06-06  Peter Bartok  <pbartok@novell.com>
12585
12586         * ImageListStreamer.cs: Fixed signature for GetData
12587         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
12588         * ComboBox.cs:
12589           - Added missing ChildAccessibleObject class
12590           - Added missing OnXXXFocus overrides, switched to using those
12591             instead of the event handler
12592         * Control.cs:
12593           - Added Parent property for ControlAccessibleObject
12594           - Fixed signatures
12595           - Fixed attributes
12596           - Added ResetBindings()
12597         * ListBindingConverter.cs: Implemented some methods
12598         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
12599         * ImageList.cs: Implemented basic handle scheme, removed TODOs
12600         * ContainerControl.cs: Fixed signature, now subscribing to the
12601           ControlRemoved event instead of overriding the handler, LAMESPEC
12602         * CurrencyManager.cs: Added missing attribute
12603         * MonthCalendar.cs: Added missing properties
12604
12605 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12606
12607         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
12608         
12609 2005-06-06  Gaurav Vaish and Ankit Jain
12610
12611         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
12612         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
12613         
12614 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12615
12616         * Control.cs: fixes CreateParams Width / Height.
12617
12618 2005-06-05  Peter Bartok  <pbartok@novell.com>
12619
12620         * Win32DnD.cs: Removed compilation warnings
12621
12622 2005-06-05  Peter Bartok  <pbartok@novell.com>
12623
12624         * Control.cs (CreateParams): Since we don't know if one of the
12625           properties we use is overridden, lets make sure if we fail accessing
12626           we continue with a backup plan
12627
12628 2005-06-05  Peter Bartok  <pbartok@novell.com>
12629
12630         * Win32DnD.cs:
12631           - Removed debug output
12632           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
12633             struct
12634           - Plugged resource leak
12635         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
12636           MS size
12637
12638 2005-06-05  Peter Bartok  <pbartok@novell.com>
12639
12640         * XplatUIWin32.cs: Removed DnD code
12641         * Win32DnD.cs: Implemented drop source and drop target functionality
12642
12643 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12644
12645         * UpDownBase.cs: remove duplicate addition of event, enable some code
12646         that was commented out.
12647         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
12648         Validate input when a key is pressed. It works fine now for every
12649         combination of Hexadecimal. Only missing some drawing love when sharing
12650         space with other controls.
12651
12652 2005-06-04  Peter Bartok  <pbartok@novell.com>
12653
12654         * Control.cs:
12655           - We need to pass a window for DragDrop, so enable callback events
12656           - Added DnD callback events when being a DragSource
12657         * XplatUI.cs (StartDrag): Added window handle argument
12658         * XplatUIDriver.cs (StartDrag): Added window handle argument
12659         * QueryContinueDragEventArgs: Made fields internally accessible so
12660           drivers can set them
12661         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
12662           can set them
12663
12664 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
12665
12666         * DataGridTextBoxColumn.cs: column text editing
12667         * DataGridTableStyle.cs: Respect columns styles created by the user
12668         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
12669         * DataGridBoolColumn.cs: bool column editing
12670         * DataGrid.cs: fixes to scrolling, properties, etc
12671         * DataGridTextBox.cs: handle keyboard
12672         * DataGridColumnStyle.cs: fixes
12673
12674 2005-06-02  Jackson Harper  <jackson@ximian.com>
12675
12676         * ImageListStreamer.cs: Somewhat broken implementation of
12677         GetObjectData. The RLE needs some work to match MS properly.
12678
12679 2005-06-02  Jackson Harper  <jackson@ximian.com>
12680
12681         * X11Dnd.cs: Attempting to keep at least one file in MWF
12682         monostyled.
12683
12684 2005-06-02  Peter Bartok  <pbartok@novell.com>
12685
12686         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
12687           that way
12688
12689 2005-06-02  Peter Bartok  <pbartok@novell.com>
12690
12691         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
12692         * XplatUI.cs: Added DoDragDrop() method
12693         * XplatUIDriver.cs: Added DoDragDrop() method
12694
12695 2005-06-02  Jackson Harper  <jackson@ximian.com>
12696
12697         * Splitter.cs: Implement BorderStyle.
12698
12699 2005-06-02  Jackson Harper  <jackson@ximian.com>
12700
12701         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
12702         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
12703         X11 using XDND.
12704
12705 2005-06-02  Peter Bartok  <pbartok@novell.com>
12706
12707         * DataObject.cs:
12708           - Added Data setter
12709           - Fixed broken insertion code for SetData, now also
12710             overwrites any existing entry of the same format name
12711         * Hwnd.cs: Added list of pointers that automatically gets
12712           freed when the window is disposed
12713         * XplatUI.cs: Call driver initialization method when loading
12714           a driver
12715         * Control.cs:
12716           - OnDragLeave takes EventArgs, not DragEventArgs
12717           - Added setting of WS_EX_ACCEPTFILES style when dropping is
12718             supported
12719           - Forces style update when drop state changes
12720         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
12721           not perfect since we cannot (yet) call the IDataObject.GetData()
12722           method, we keep getting 0x80004005 error, dunno why)
12723
12724 2005-06-02  Peter Bartok  <pbartok@novell.com>
12725
12726         * DragEventArgs.cs: Make fields internal so we can cache the
12727           object and re-set the fields from XplatUI
12728
12729 2005-06-02  Jackson Harper  <jackson@ximian.com>
12730
12731         * Control.cs: Add some internal methods so the DnD subsystem can
12732         raise DnD events. Also call into the driver when AllowDrop is set.
12733         * XplatUI.cs:
12734         * XplatUIDriver.cs: New method for setting whether or not a window
12735         is allowed to accept drag and drop messages.
12736                 
12737 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
12738         
12739         * ScrollBar.cs: Make sure that values sent in Scroll events
12740         are always between Maximum and Minimum.
12741
12742 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
12743
12744         * Menu.cs: Call MenuChanged when menuitem visibility has been
12745         changed.
12746         * MenuItem.cs: Rebuild menu when item is (not) visible.
12747         * MainMenu.cs: MainMenu has special MenuChanged.
12748         * Theme.cs: Caption and FrameBorderSize are not fixed.
12749         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
12750         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
12751         * XplatUIX11.cs,
12752         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
12753         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
12754
12755 2005-05-30  Jackson Harper  <jackson@ximian.com>
12756
12757         * DataFormat.cs: We can't statically initialize this stuff because
12758         it calls into the xplatui and could create a loop. So we lazy init
12759         it.
12760
12761 2005-05-28  Jackson Harper  <jackson@ximian.com>
12762
12763         * Control.cs: Proper implementation of Product(Name/Version).
12764
12765 2005-05-27  Jackson Harper  <jackson@ximian.com>
12766
12767         * DataObject.cs: Dont crash if no data is found.
12768
12769 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
12770         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
12771                 as per status page, guessing it should be set to true
12772
12773 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
12774
12775         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
12776         * DataGridTableStyle.cs: set proper formatting text, def header text
12777         * ThemeWin32Classic.cs: new themable paramaters
12778         * DataGridBoolColumn.cs: paint check box, get data, fixes
12779         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
12780         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
12781         * DataGridColumnStyle.cs: fixes
12782         * Theme.cs: new themable paramaters
12783                 
12784 2005-05-26  Peter Bartok  <pbartok@novell.com>
12785
12786         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
12787
12788 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12789         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
12790
12791 2005-05-24  Peter Bartok  <pbartok@novell.com>
12792
12793         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
12794           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
12795           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
12796           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
12797           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
12798           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
12799           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
12800           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
12801           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
12802           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
12803           missing attributes, etc
12804         * DataGridPreferredColumnWidthTypeConverter.cs: Added
12805
12806 2005-05-24  Peter Bartok  <pbartok@novell.com>
12807
12808         * Help.cs: Added, implemented trivial functions, throws up MessageBox
12809           when user tries to get help
12810         * DataObject.cs, DataFormats.cs, LinkArea.cs,
12811           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
12812           to suppress warnings
12813         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
12814           avoid unreachable code warning
12815
12816 2005-05-20  Peter Bartok  <pbartok@novell.com>
12817
12818         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
12819
12820 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12821
12822         * DataGridTextBoxColumn.cs: Basic painting methods
12823         * DataGridTableStyle.cs: Set table style in the column
12824         * ThemeWin32Classic.cs: Use Theme for colors
12825         * DataGridDrawingLogic.cs: Implement more drawing
12826         * DataGrid.cs: drawing, theming, enhacements, fixes
12827         * DataGridColumnStyle.cs: fixes, drawing
12828         * Theme.cs: theming for Datagrid
12829
12830 2005-05-20  Peter Bartok  <pbartok@novell.com>
12831
12832         * Cursor.cs: Implemented GetObjectData() method
12833
12834 2005-05-20  Peter Bartok  <pbartok@novell.com>
12835
12836         * Cursors.cs: Added setting of cursor name
12837         * Cursor.cs:
12838           - Implemented constructors
12839           - Implemented Draw and DrawStretched
12840           - Implemented Current property
12841           - Implemented == and != operators
12842           - Implemented Dispose()
12843           - Implemented ToString
12844           - Added missing attributes
12845         * XplatUIX11.cs:
12846           - Added missing reset for OverrideCursor when DoEvents is called
12847           - Fixed creation of cursor, logic was wrong
12848         * XplatUIWin32.cs:
12849           - Added missing reset for OverrideCursor when DoEvents is called
12850           - Fixed creation of cursor, bit arrays were swapped
12851         * Clipboard.cs: Removed obsolete MonoTODO attribute
12852
12853 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12854
12855         * ComboBox.cs: fixes OnSelectedItemChanged
12856         * ControlBindingsCollection.cs: fixes item range check
12857
12858 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12859
12860         * UpDownBase.cs:
12861                 - Calc preferred height properly
12862                 - Implement missing properties
12863                 
12864         * NumericUpDown.cs: Implement missing events
12865
12866 2005-05-19  Jackson Harper  <jackson@ximian.com>
12867
12868         * TabControl.cs: New method that resizes the tab pages before
12869         redrawing them. This as needed as the control is double buffered
12870         and sizing will not be recalculated unless ResizeTabPages is
12871         called.
12872         * TabPage.cs: Set base.Text instead of Text in the constructor so
12873         that UpdateOwner does not get called. Use the new Redraw method of
12874         TabControl instead of Refresh so the sizing is recalculated.
12875         * ThemeWin32Classic.cs: Draw the text for button tabs.
12876
12877 2005-05-19  Jackson Harper  <jackson@ximian.com>
12878
12879         * Control.cs: Paint control background images. Fix typo where
12880         PaintControlBackground was not getting called correctly.
12881
12882 2005-05-19  Peter Bartok  <pbartok@novell.com>
12883
12884         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
12885           I can investigate, apparently I broke FileDialog
12886
12887 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
12888
12889         * AxHost.cs: Some simple properties.
12890         * Control.cs: window must be accessible after ctor.
12891         * Form.cs: Added TransparencyKey property.
12892         * TextBoxBase.cs: Implemented Clear. Text property can be null.
12893         * XplatUIWin32.cs: SetBorderStyle implemented.
12894
12895 2005-05-18  Peter Bartok  <pbartok@novell.com>
12896
12897         * DataObject.cs: Entries are not global but particular to the
12898           DataObject, now it behaves that way
12899         * XplatUIWin32.cs: Implemented Clipboard methods
12900         * Clipboard.cs: Implemented
12901         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
12902         * XplatUIOSX.cs: Updated to final clipboard prototypes
12903         * XplatUIX11.cs: Implemented Clipboard methods
12904         * XplatUIDriver.cs: Updated to final clipboard prototypes
12905         * XplatUIStructs.cs:
12906           - Added BITMAPINFOHEADER struct
12907           - Added ClipboardFormats enum
12908         * X11Structs.cs:
12909           - Added ClipboardStruct
12910           - Added Atom enum items for clipboard types
12911           - Fixed atom types for Selection event structures
12912         * DataFormats.cs:
12913           - Added internal properties and methods for drivers to enumerate
12914             all known formats
12915           - Switched initialization method to allow drivers to assign their
12916             own IDs even for the MS predefined clipboard IDs
12917         * XplatUI.cs: Updated to final clipboard interface
12918
12919 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12920         * PropertyGridView.cs: Fixed compiler warnings.
12921
12922 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12923         * PropertyGrid.cs: Added some event calls
12924         * PropertyGridView.cs: Change drawing code to use double buffering
12925         * PropertyGridTextBox.cs: Changed Text property name
12926         * GridItem.cs: Added Bounds property.
12927         * GridEntry.cs: Added Bounds property.
12928
12929 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
12930
12931         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
12932         since GetType() may not return the correct type if the object is
12933         a remoting proxy.
12934
12935 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
12936
12937         * TreeNodeCollection.cs: fixes get/set item ranges
12938         
12939 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12940
12941         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
12942                 
12943 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12944
12945         * ComboBox.cs: Fix item range comparation
12946         * ListView.cs: Fix item range comparation
12947
12948 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12949
12950         * FontDialog.cs:
12951           - Clear example panel when OnPaint is called
12952           - Better solution for displaying the example panel text
12953           - Select default indexes in the ListBoxes
12954
12955 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12956
12957         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
12958
12959 2005-05-11  Peter Bartok  <pbartok@novell.com>
12960
12961         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
12962         * SelectionRangeConverter.cs: Implemented
12963         * PropertyGrid.cs: Fixed attribute value
12964         * Control.cs:
12965           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
12966           - Added Sebastien Pouliot's CAS Stack Propagation fixes
12967         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
12968           that's common to all drivers. First methods to go there are
12969           Sebastien Pouliot's CAS Stack Propagation helper methods
12970         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
12971           Sebastien Pouliot for CAS Stack Propagation
12972
12973 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12974
12975         * OSXStructs.cs:
12976           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
12977
12978 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
12979
12980         * DataGridTextBoxColumn.cs: fixed some members
12981         * GridColumnStylesCollection.cs: indexed column is case insensitive
12982         * DataGridTableStyle.cs: fixes
12983         * ThemeWin32Classic.cs: add new theme parameter
12984         * Theme.cs: add new theme parameter
12985         * DataGridDrawingLogic.cs: Datagrid's drawing logic
12986         * DataGrid.cs: fixes, new internal properties, etc.
12987         * DataGridColumnStyle.cs: allows to set grid value
12988         *
12989
12990 2005-05-10  Peter Bartok  <pbartok@novell.com>
12991
12992         * AccessibleObject.cs:
12993           - Removed MonoTODO attribute on help, method is correct
12994           - Fixed Bounds property
12995         * AxHost.cs: Moved MonoTODO
12996         * ButtonBase.cs: Now setting AccessibleObject properties
12997         * RadioButton.cs: Setting proper AccessibleObject role
12998         * CheckBox.cs: Setting proper AccessibleObject role
12999         * ControlBindingsCollection.cs: Added properties, methods and attributes
13000         * DataFormats.cs: Fixed awkward internal API, and changed to enable
13001           userdefined DataFormats.Format items as well
13002         * ListControl.cs: Removed data_member from the public eye
13003         * OpenFileDialog.cs:
13004           - Made class sealed
13005           - Added missing attributes
13006         * SaveFileDialog.cs: Added missing attributes
13007         * ImageListStreamer.cs: Fixed code that caused warnings
13008         * LinkLabel.cs: Removed unreachable code
13009         * TreeView.cs: Fixed code that caused warnings
13010         * PropertyGridView.cs: Fixed code that caused warnings
13011         * GridColumnStylesCollection.cs: Added missing attributes
13012         * GridTableStylesCollection: Added missing attribute
13013         * PropertyManager: Added .ctor
13014         * SecurityIDType: Added
13015         * DataObject.cs: Implemented class
13016         * LinkArea.cs: Added missing attribute
13017
13018 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
13019
13020         * RadioButton.cs: call base method to allow to fire OnClick event
13021         * UpDownBase.cs: OnMouseUp call base method
13022         * CheckedListBox.cs: call base method before returning
13023         * TrackBar.cs: call base method before returning
13024         
13025
13026 2005-05-10  Peter Bartok  <pbartok@novell.com>
13027
13028         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
13029           for messages
13030
13031 2005-05-10  Peter Bartok  <pbartok@novell.com>
13032
13033         * DataFormats.cs: Implemented
13034         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
13035           XplatUIX11.cs: Added Clipboard APIs
13036         * XplatUIWin32.cs: Implemented Clipboard APIs
13037         * FolderBrowserDialog.cs: Added missing event, attributes
13038
13039 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
13040
13041         * CheckBox.cs: call base method to allow to fire OnClick event
13042
13043 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
13044
13045         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
13046
13047 2005-05-06  Peter Bartok  <pbartok@novell.com>
13048
13049         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
13050         * Screen.cs: Implemented
13051         * HelpNavigator.cs: Added
13052         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
13053           property
13054         * HelpProvider.cs: Implemented all we can do until we have a CHM
13055           help library (which means that "What's This" does work now)
13056
13057 2005-05-06  Jackson Harper  <jackson@ximian.com>
13058
13059         * XplatUIX11.cs: Fix waking up the main loop.
13060                 
13061 2005-05-05  Peter Bartok  <pbartok@novell.com>
13062
13063         * XplatUI.cs: Updated revision
13064         * Form.cs: Removed enless loop
13065         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
13066         * Label.cs (OnPaint): Added call to base.OnPaint()
13067         * ToolTip.cs: Made ToolTipWindow reusable for other controls
13068         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
13069         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
13070         * AxHost.cs: Added
13071         * ButtonBase.cs: Moved base.OnPaint() call to end of method
13072         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
13073           to ToolTip.ToolTipWindow for drawing and size methods; this allows
13074           reuse of ToolTipWindow by other controls
13075         * SizeGrip.cs: Moved base.OnPaint() call to end of method
13076         * XplatUIX11.cs: Now clipping drawing area (experimental)
13077         * PictureBox.cs: Moved base.OnPaint() call to end of method
13078         * Theme.cs: Fixed ToolTip abstracts to match new format
13079         * ErrorProvider.cs: Implemented
13080
13081 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
13082
13083         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
13084         * LinkLabel.cs:
13085                 - Adds cursors
13086                 - Handles focus
13087                 - Implements LinkBehavior
13088                 - Fixes many issues
13089
13090 2005-05-03  Jackson Harper  <jackson@ximian.com>
13091
13092         * ListView.cs: Calculate the scrollbar positioning on resize and
13093         paint, so they get put in the correct place.
13094
13095 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
13096
13097         * ColorDialogs.cs: The small color panels are now handled by
13098           SmallColorControl. This fixes drawing of the focus rectangle
13099           and adds a 3D border.
13100
13101 2005-05-03  Peter Bartok  <pbartok@novell.com>
13102
13103         * Control.cs: Modified version of Jonathan Chamber's fix for
13104           double-buffering
13105
13106 2005-05-03  Jackson Harper  <jackson@ximian.com>
13107
13108         * ListView.cs: Remove redraw variable. Control now handles whether
13109         or not a redraw needs to be done, and will only raise the paint
13110         event if redrawing is needed.
13111
13112 2005-05-03  Jackson Harper  <jackson@ximian.com>
13113
13114         * Splitter.cs: No decorations for the splitter form. Cache the
13115         hatch brush.
13116
13117 2005-05-03  Jackson Harper  <jackson@ximian.com>
13118
13119         * TreeView.cs: Use dashed lines to connect nodes. Use the
13120         ControlPaint method for drawing the focus rect instead of doing
13121         that in treeview.
13122
13123 2005-05-02  Peter Bartok  <pbartok@novell.com>
13124
13125         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
13126
13127 2005-04-29  Jackson Harper  <jackson@ximian.com>
13128
13129         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
13130         entire image buffer. Just clear the clipping rectangle.
13131
13132 2005-04-29  Jackson Harper  <jackson@ximian.com>
13133
13134         * ThemeWin32Classic.cs: Don't draw list view items that are
13135         outside the clipping rectangle.
13136
13137 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
13138
13139         * ListBox.cs: added horizontal item scroll
13140
13141 2005-04-29  Jackson Harper  <jackson@ximian.com>
13142
13143         * ThemeWin32Classic.cs: Remove some old debug code that was
13144         causing flicker with the new double buffering code.
13145
13146 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
13147
13148         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
13149         behave like combobox and comboboxlist (still not sure if this is
13150         correct though).
13151
13152 2005-04-28  Jackson Harper  <jackson@ximian.com>
13153
13154         * ThemeWin32Classic.cs: Don't fill the middle of progress
13155         bars. This fills areas outside of the clip bounds that don't need
13156         to be filled.
13157
13158 2005-04-28  Jackson Harper  <jackson@ximian.com>
13159
13160         * Control.cs: Don't expose functionality to touch the image buffers.
13161         * ProgressBar.cs:
13162         * ListView.cs: We do not need to (and no longer can) manipulate
13163         the image buffers directly. All of this is handled by Control.
13164
13165 2005-04-28  Peter Bartok  <pbartok@novell.com>
13166
13167         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13168           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
13169           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
13170
13171 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13172
13173         * Combobox:
13174                 - Adjust control's height for non-simple comboboxes (bug fix)
13175                 - Remove dead code
13176         * MenuAPI.cs: remove unused var
13177         * ScrollBar.cs: remove unsed var
13178                  
13179         * ListBox.cs: unselect items when clearing
13180
13181 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
13182
13183         * ListControl.cs: honors OnPositionChanged and default Selected Item
13184         * ListBox.cs: unselect items when clearing
13185
13186 2005-04-27  Jackson Harper  <jackson@ximian.com>
13187
13188         * X11Keyboard.cs: Initialize a default keyboard and give a warning
13189         if a "correct" keyboard is not found. This will make us not crash,
13190         but might give some users bad keyboard layouts...seems to be the
13191         same thing rewind does.
13192
13193 2005-04-27  Jackson Harper  <jackson@ximian.com>
13194
13195         * BindingManagerBase.cs: Attach the current/position changed
13196         handlers to their respective events.
13197
13198 2005-04-27  Jackson Harper  <jackson@ximian.com>
13199
13200         * Control.cs: Make sure that the first WM_PAINT does a full draw,
13201         not just a blit.
13202         * ThemeWin32Classic.cs: Don't fill the background for picture
13203         boxes. This could overright user drawing.
13204         * ComboBox.cs: Just fill the clipping rect not the entire client
13205         rect when drawing the background. This prevents pieces of the
13206         image buffer from getting overwritten and is theoretically faster.
13207
13208 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
13209
13210         * ComboBox.cs: Databinding support fixes, fire missing events
13211         * ListControl.cs: implement missing methods and properties, fixes
13212         * ThemeWin32Classic.cs: Databiding support on Drawing
13213         * CheckedListBox.cs: Databinding support fixes, fire missing events
13214         * ListBox.cs: Databinding support fixes, fire missing events
13215         
13216 2005-04-25  Peter Bartok  <pbartok@novell.com>
13217
13218         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
13219
13220 2005-04-25  Jackson Harper  <jackson@ximian.com>
13221
13222         * TreeView.cs: Use the horizontal scrollbars height not width when
13223         determining how much of the client area is available.
13224
13225 2005-04-25  Jackson Harper  <jackson@ximian.com>
13226
13227         * Control.cs: Double buffering is handled differently now. As per
13228         the spec, the extra buffer is created in the WM_PAINT message and
13229         passed down to the control's drawing code.
13230         * GroupBox.cs:
13231         * Label.cs:
13232         * CheckBox.cs:
13233         * ProgressBar.cs:
13234         * RadioButton.cs:
13235         * ColorDialog.cs:
13236         * ComboBox.cs:
13237         * PropertyGridView.cs:
13238         * UpDownBase.cs:
13239         * MessageBox.cs:
13240         * MenuAPI.cs:
13241         * ListView.cs:
13242         * ButtonBase.cs:
13243         * SizeGrip.cs:
13244         * ScrollBar.cs:
13245         * ListBox.cs:
13246         * TrackBar.cs:
13247         * ToolBar.cs:
13248         * PictureBox.cs:
13249         * DateTimePicker.cs:
13250         * StatusBar.cs:
13251         * TreeView.cs: Update to new double buffering system.
13252         * MonthCalendar.cs: Uncomment block, as Capture is now
13253         working. Update to new double buffering
13254         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
13255         * PaintEventArgs.cs: New internal method allows us to set the
13256         graphics object. This is used for double buffering.
13257         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
13258         rectangle. The internal paint_area var has been removed from
13259         StatusBar. The clipping rect should be used instead.
13260         * Theme.cs: Give the PictureBox drawing method a clipping rect.
13261         * TabPage.cs: The RefreshTabs method was removed, so just call the
13262         tab controls Refresh method now.
13263         * TabControl.cs: Update to new double buffering. Make sure the
13264         handle is created before sizing the tab pages, otherwise we will
13265         get stuck in a loop.
13266
13267 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
13268
13269         * LinkLabel.cs: Fix typo, bug #74719; patch
13270           from Borja Sanchez Zamorano
13271
13272 2005-04-22  Jackson Harper  <jackson@ximian.com>
13273
13274         * TreeNode.cs: Implement Handle stuff.
13275         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
13276
13277 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
13278
13279         * DataGridTextBoxColumn.cs: call base constructors, fixes
13280         * GridColumnStylesCollection.cs: missing events, methods, and functionality
13281         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
13282         * DataGridTableStyle.cs: implements create default column styles
13283         * DataGridBoolColumn.cs: which types can handle
13284         * DataGrid.cs: missing methods, fixes, new functionality
13285         * DataGridColumnStyle.cs: fixes
13286
13287 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
13288         * FolderBrowserDialog.cs:
13289         - Use a thread to fill the TreeView
13290         - Adjusted some sizes
13291
13292 2005-04-19  Peter Bartok  <pbartok@novell.com>
13293
13294         * LinkLabel.cs: (Re-)create the pieces when setting the Text
13295           property. Fixes #74360.
13296
13297 2005-04-19  Jackson Harper  <jackson@ximian.com>
13298
13299         * XEventQueue.cs: Lock when getting the lockqueue size.
13300         * PictureBox.cs: Call base OnPaint
13301         
13302 2005-04-19  Peter Bartok  <pbartok@novell.com>
13303
13304         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
13305           messages were no longer being processed (this broke BeginInvoke)
13306
13307           
13308 2005-04-18  Jackson Harper  <jackson@ximian.com>
13309
13310         * TreeView.cs: buglet that caused node images to get drawn
13311         regardless of whether or not they were in the clipping rectangle.
13312
13313 2005-04-18  Jackson Harper  <jackson@ximian.com>
13314
13315         * CurrencyManager.cs: There are four rules for GetItemProperties:
13316         - If the type is an array use the element type of the array
13317         - If the type is a typed list, use the type
13318         - If the list contains an Item property that is not an object, use
13319         that property
13320         - use the first element of the list if there are any elements in
13321         the list.
13322         
13323 2005-04-17  Jackson Harper  <jackson@ximian.oom>
13324
13325         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
13326         click. This handles offsets for scrolling properly and reduces
13327         memory. Also fixed GetNode to not offset now that TopNode works
13328         properly.
13329         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
13330         
13331 2005-04-17  Jackson Harper  <jackson@ximian.com>
13332
13333         * CursorConverter.cs: Initial implementation.
13334
13335 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13336
13337         * ListControl.cs: work towards complex data binding support on ListControl
13338         * CurrencyManager.cs: work towards complex data binding support on ListControl
13339         * ListBox.cs: work towards complex data binding support on ListControl
13340
13341
13342 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
13343
13344         * GridTableStylesCollection.cs: fixes name and constructor
13345         * DataGridTableStyle.cs: fixes
13346         * DataGridBoolColumn.cs: fixes names and constructors
13347         * DataGrid.cs: define methods and properties. Some init implementations
13348         * DataGridCell.cs: define methods and properties. Some init implementations
13349         * GridTablesFactory.cs: Define methods and properties
13350
13351 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
13352
13353         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
13354         graphics port changes.  We still want the coordinates in global screen
13355         coordinates.
13356
13357 2005-04-14  Jackson Harper  <jackson@ximian.com>
13358
13359         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
13360         check plus minus or checkbox clicks unless those features are enabled.
13361
13362 2005-04-14  Jackson Harper  <jackson@ximian.com>
13363
13364         * TreeView.cs: Add methods for setting the top and bottom visible
13365         nodes. TreeNode::EnsureVisible uses these methods.
13366         * TreeNode.cs: Implement EnsureVisible
13367
13368 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
13369
13370         * Form.cs: Pospone menu assignation if the window has not been created yet
13371         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
13372         size and position
13373
13374 2005-04-12  Jackson Harper  <jackson@ximian.com>
13375
13376         * TreeView.cs: Set the TopNode properly when scrolling
13377         occurs. This has the added benifit of reducing the amount of
13378         walking that needs to be done when drawing. Also removed an old
13379         misleading TODO.
13380         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
13381         
13382 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
13383
13384         * Timer.cs: fixes interval setting when the timer is already enabled
13385         
13386 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
13387
13388         * FolderBrowserDialog.cs: First approach
13389
13390 2005-04-09  Peter Bartok  <pbartok@novell.com>
13391
13392         * FolderBrowserDialog: Added
13393
13394 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
13395
13396         * LinkLabel.cs: move drawing code into the theme
13397         * ThemeWin32Classic.cs: drawing code and painting background bugfix
13398         * Theme.cs: define DrawLinkLabel method
13399
13400 2005-04-05  Jackson Harper  <jackson@ximian.com>
13401
13402         * BindingContext.cs: Use weak references so these bad actors don't
13403         stay alive longer then they need to.
13404
13405 2005-04-05  Jackson Harper  <jackson@ximian.com>
13406
13407         * ListControl.cs: Basic implementation of complex databinding.
13408         * ComboBox.cs:
13409         * ListBox.cs: Add calls to ListControl databinding methods.
13410
13411 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
13412
13413         * FileDialog.cs:
13414           - Don't change PopupButtonState to Normal when the
13415             PopupButton gets pressed several times.
13416           - Renamed ButtonPanel to PopupButtonPanel
13417
13418 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
13419
13420         * ColorDialog.cs: Use cached objects instead of creating them
13421         * LinkLabel.cs: Use cached objects instead of creating them
13422         * Splitter.cs: Use cached objects instead of creating them
13423         * FontDialog.cs: Use cached objects instead of creating them
13424         * PropertyGridView.cs: Use cached objects instead of creating them
13425         * MessageBox.cs: Use cached objects instead of creating them
13426         * FileDialog.cs: Use cached objects instead of creating them
13427         * ThemeWin32Classic.cs: Use cached objects instead of creating them
13428         * TreeView.cs: Use cached objects instead of creating them
13429         
13430 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
13431
13432         * Control.cs: use Equals to compare the font since no == op
13433         * ScrollBar.cs: use Equals to compare the font since no == op
13434
13435 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
13436
13437         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
13438
13439 2005-04-01  Jackson Harper  <jackson@ximian.com>
13440
13441         * Binding.cs: Implement IsBinding.
13442         * BindingManagerBase.cs:
13443         * PropertyManager.cs:
13444         * CurrencyManager.cs: Add IsSuspended property.
13445
13446 2005-04-01  Jackson Harper  <jackson@ximian.com>
13447
13448         * Binding.cs: Had some IsAssignableFrom calls backwards.
13449
13450 2005-04-01  Jackson Harper  <jackson@ximian.com>
13451
13452         * Binding.cs: Handle null data members when pulling data.
13453         * PropertyManager.cs: Handle the data member being a property that
13454         does not exist.
13455
13456 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13457
13458         * DataGridTextBoxColumn.cs: fixes signature
13459         * DataGrid.cs: calls right constructor
13460
13461 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
13462
13463         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
13464         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
13465         * GridTableStylesCollection.cs: implements GridTableStylesCollection
13466         * DataGridTableStyle.cs: implements DataGridTableStyle
13467         * DataGridBoolColumn.cs: implements DataGridBoolColumn
13468         * DataGridTextBox.cs: implements DataGridTextBox
13469         * DataGridColumnStyle.cs: implements DataGridColumnStyle
13470
13471 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
13472
13473         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
13474
13475 2005-03-29  Peter Bartok  <pbartok@novell.com>
13476
13477         * Application.cs:
13478           - Properly implemented CompanyName property
13479           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
13480             returns a path that includes CompanyName, ProductName and
13481             Version (fixes bug #70330)
13482
13483 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
13484
13485         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
13486           fixes bug #72588.
13487
13488 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13489
13490         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
13491         
13492           - Added ReadOnly CheckBox
13493           - Further refactoring: moved some code from Open-/SaveFileDialog
13494             to FileDialog
13495
13496 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
13497
13498         * OpenFileDialog.cs: Fixed CheckFileExists
13499         * FileDialog.cs:
13500           Moved FileView and DirComboBox outside FileDialog class.
13501           They can now be used outside FileDialog
13502
13503 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13504
13505         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
13506         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
13507
13508 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13509
13510         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13511           - Added missing CreatePrompt property in SaveDialog
13512           - Overall SaveDialog handling should be better now
13513           - Added non standard ShowHiddenFiles property
13514           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
13515           - Added InitialDirectory and RestoreDirectory support
13516
13517 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
13518
13519         * FileDialog.cs: Made dirComboBox usable
13520
13521 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
13522
13523         * FileDialog.cs: Added Filter support (case sensitiv)
13524
13525 2005-03-24  Jackson Harper  <jackson@ximian.com>
13526
13527         * TabControl.cs: Need a couple more pixels for the lines.
13528
13529 2005-03-23  Jackson Harper  <jackson@ximian.com>
13530
13531         * TabControl.cs: Give the tab page focus when it is selected.
13532
13533 2005-03-23  Jackson Harper  <jackson@ximian.com>
13534
13535         * TabControl.cs: Account for the drawing of tabs borders when
13536         invalidating. If the slider was clicked dont do click detection on
13537         the tabs.
13538
13539 2005-03-23  Jackson Harper  <jackson@ximian.com>
13540
13541         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
13542
13543 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
13544
13545         * CategoryGridEntry.cs: Added
13546         * GridItem.cs: Added helper properties
13547         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
13548         * GridEntry.cs: Updated code for collection
13549         * PropertyGrid.cs: Cleaned up some formatting
13550         * PropertyGridView.cs: Added drop down functionality for enums.
13551         * GridItemCollection.cs: Added enumerator logic
13552         * PropertyGridEntry.cs: Added
13553
13554 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13555
13556         * FileDialog.cs:
13557           - Removed unnecessary commented code
13558           - Fixed handling for entering the filename manually in the combobox
13559
13560 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13561
13562         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
13563
13564 2005-03-18  Peter Bartok  <pbartok@novell.com>
13565
13566         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
13567           them being touching the border
13568
13569 2005-03-18  Peter Bartok  <pbartok@novell.com>
13570
13571         * TextControl.cs: Quick hack to center text better
13572
13573 2005-03-18  Peter Bartok  <pbartok@novell.com>
13574
13575         * ControlPaint.cs:
13576           - Don't throw NotImplemented exceptions, just print a notice once
13577             instead (requested by Miguel). This makes running existing SWF
13578             apps a bit easier
13579         * Control.cs:
13580           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
13581           - Added context menu trigger on right click
13582         * Panel.cs: Trigger invalidate on resize
13583         * StatusBar.cs:
13584           - Removed old double-buffer drawing
13585           - Added ResizeRedraw style to force proper update of statusbar
13586         * ListView.cs:
13587           - Removed debug output
13588         * ThemeWin32Classic.cs:
13589           - Fixed drawing of status bar, now draws Text property if there
13590             are no defined panels
13591
13592 2005-03-18  Jackson Harper  <jackson@ximian.com>
13593
13594         * ImageList.cs: When the image stream is set pull all the images
13595         from it.
13596         * ImageListStreamer.cs: Implement reading image list streams.
13597
13598 2005-03-18  Peter Bartok  <pbartok@novell.com>
13599
13600         * ThemeWin32Classic.cs (DrawPictureBox):
13601           - Fixed calculations for centered drawing
13602           - Fixed drawing for normal mode, not scaling the image on normal
13603
13604 2005-03-18  Peter Bartok  <pbartok@novell.com>
13605
13606         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
13607           textbox
13608         * FileDialog.cs:
13609           - Made Open/Save button the accept button for FileDialog
13610           - Tied the cancel button to the IButtonControl cancel button
13611           - Save/Open now properly builds the pathname
13612           - Now handles user-entered text
13613           - Preventing crash on right-click if no item is selected
13614           - Fixed Text property, now uses contents of textbox
13615           - Fixed SelectedText property, now just returns the text part that
13616             is selected in the text box
13617
13618 2005-03-18  Jackson Harper  <jackson@ximian.com>
13619
13620         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
13621         rect, make sure to de-adjust the interior rect after drawing the
13622         tab text.
13623
13624 2005-03-18  Peter Bartok  <pbartok@novell.com>
13625
13626         * MenuAPI.cs: Remove menu *before* executing selected action to
13627           prevent the menu from 'hanging around'
13628           
13629 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
13630
13631         * XplatUIOSX.cs: Implemented WorkingArea property
13632
13633 2005-03-17  Peter Bartok  <pbartok@novell.com>
13634
13635         * XplatUIX11.cs: Fixed menu coord calculations
13636         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
13637           for calculating offsets
13638
13639 2005-03-17  Peter Bartok  <pbartok@novell.com>
13640
13641         * Hwnd.cs: Do not consider menu presence for default client
13642           rectangle location/size
13643         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
13644           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
13645           translation functions
13646         * FileDialog.cs: Fixed (what I presume is a) typo
13647
13648 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
13649
13650         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
13651           X access (avoids X-Async errors)
13652
13653 2005-03-16  Jackson Harper  <jackson@ximian.com>
13654
13655         * TabControl.cs: Raise the SelectedIndexChanged event.
13656
13657 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
13658
13659         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13660           - Removed vertical ToolBar and replaced it with a custom panel
13661             (desktop and home button already work)
13662           - Added Help button (some controls get resized or relocated then)
13663           - Draw correct text depending on Open or Save.
13664           - Fixed some typos...
13665
13666 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
13667
13668         * ScrollBar.cs:
13669           - Only change Maximum and Minimum when need it (bug fix)
13670
13671 2005-03-15  Peter Bartok  <pbartok@novell.com>
13672
13673         * Form.cs: Use Handle for icon, to trigger creation if
13674           the window does not yet exist
13675         * Control.cs:
13676           - CanSelect: Slight performance improvement
13677           - Focus(): Preventing possible recursion
13678           - Invalidate(): Removed ControlStyle based clear flag setting
13679           - WM_PAINT: fixed logic for calling OnPaintBackground
13680           - WM_ERASEBKGND: Fixed logic, added call to new driver method
13681             EraseWindowBackground if the control doesn't paint background
13682         * XplatUIWin32.cs:
13683           - Moved EraseWindowBackground() method to internal methods
13684           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
13685             is sent via SendMessage on BeginPaint call on Win32
13686         * XplatUIX11.cs:
13687           - Added EraseWindowBackground() method
13688           - No longer sends WM_ERASEBKGND on .Expose, but on call to
13689             PaintEventStart, which more closely matches Win32 behaviour
13690           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
13691           - Fixed SetFocus() to properly deal with client and whole windows
13692         * Hwnd.cs: Added ErasePending property
13693         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
13694         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
13695
13696 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
13697
13698         * XplatUIOSX.cs:
13699           - Fix hard loop when timers exist.
13700           - Fix bugs with middle and right click for 3 button mice.
13701
13702 2005-03-11  Peter Bartok  <pbartok@novell.com>
13703
13704         * XplatUIX11.cs:
13705           - get_WorkingArea: Need to call X directly, GetWindowPos only
13706             returns cached data now
13707           - Added sanity check to GetWindowPos hwnd usage
13708
13709 2005-03-11  Jackson Harper  <jackson@ximian.com>
13710
13711         * BindingManagerBase.cs: This method isn't used anymore as
13712         PullData now updates the data in the control.
13713
13714 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
13715
13716         * Form.cs: fixes menu drawing on X11
13717         * MenuAPI.cs:  fixes menu drawing on X11
13718
13719 2005-03-11  Peter Bartok  <pbartok@novell.com>
13720
13721         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
13722           from Jonathan Gilbert; should fix bug #73606
13723         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
13724           in Screen coordinates. Thanks, Jordi.
13725         * Form.cs: Added missing attribute
13726
13727 2005-03-11  Peter Bartok  <pbartok@novell.com>
13728
13729         * Form.cs:
13730           - Rudimentary Mdi support
13731           - Removed outdated FormParent code
13732           - Implemented lots of missing properties and methods, still missing
13733             transparency support
13734           - Added missing attributes
13735           - Implemented support for MaximumBounds
13736           - Added firing of various events
13737         * XplatUI.cs: Added SetIcon() method
13738         * XplatUIDriver.cs: Added SetIcon() abstract
13739         * XplatUIOSX.cs: Stubbed out SetIcon() method
13740         * XplatUIX11.cs:
13741           - Implemented SetIcon() support
13742           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
13743           - Switched to unix line endings
13744         * XplatUIWin32.cs:
13745           - Made POINT internal so for can access it as part of MINMAX
13746           - Implemented SetIcon() support
13747           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
13748             native Mdi support again, might have to go managed)
13749         * Control.cs: Now fires the StyleChanged event
13750         * MdiClient.cs: Added; still mostly empty
13751
13752 2005-03-10  Peter Bartok  <pbartok@novell.com>
13753
13754         * SaveFileDialog.cs: Added emtpy file
13755
13756 2005-03-08  Peter Bartok  <pbartok@novell.com>
13757
13758         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
13759           in turn triggers OnCreateContro) when creating a handle for the
13760           first time.
13761         * TextControl.cs: Fixed endless loop in certain cases when
13762           replacing the current selection
13763
13764 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
13765
13766         * ScrollBar.cs:
13767           - Honors NewValue changes in Scroll events allowing apps to change it
13768           - Adds First and Last Scroll events
13769           - Fixes Thumb events
13770
13771 2005-03-07  Peter Bartok  <pbartok@novell.com>
13772
13773         * Hwnd.cs: Added DefaultClientRectangle property
13774         * XplatUI.cs: Now using the X11 driver Where() method, which provides
13775           more detailed debug information
13776         * XplatUIX11.cs:
13777           - Fixed size-change feedback loop, where we would pull an old size
13778             off the queue and mistakenly change our window's size to an
13779             earlier value
13780           - Now compressing ConfigureNotify events, to reduce looping and
13781             redraw issues
13782         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
13783           is called
13784
13785 2005-03-07  Jackson Harper  <jackson@ximian.com>
13786
13787         * Binding.cs: Push data pushes from data -> property. Check if the
13788         property is readonly when attempting to set it.
13789
13790 2005-03-07  Jackson Harper  <jackson@ximian.com>
13791
13792         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
13793         instead of IsSubclassOf. Pulling data now sets the value on the
13794         control.
13795         * PropertyManager.cs:
13796         * CurrencyManager.cs: Just need to pull data when updating now,
13797         because PullData will set the value on the control.
13798
13799 2005-03-04  Jackson Harper  <jackson@ximian.com>
13800
13801         * Binding.cs: Implement data type parsing and converting on pulled
13802         data. TODO: Are there more ways the data can be converted?
13803
13804 2005-03-04  Jackson Harper  <jackson@ximian.com>
13805
13806         * Binding.cs: Support <Property>IsNull checks. Also bind to the
13807         controls Validating method so we can repull the data when the
13808         control loses focus.
13809
13810 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
13811
13812         * ColumnHeader.cs:
13813           - Fixes null string format
13814           
13815         * ListView.cs:
13816           - Adds enum type checks
13817           - Fixes redrawing and recalc need after changing some properties
13818           - Fixes on focus_item set after the event
13819           - Fixes adding columns after the control has been created
13820           
13821         * ThemeWin32Classic.cs:
13822           - Fixes CheckBox focus rectangle
13823           - Fixes ColumnHeader drawing
13824
13825
13826 2005-03-03  Jackson Harper  <jackson@ximian.com>
13827
13828         * Binding.cs: Bind to <Property>Changed events so we can detect
13829         when properties are changed and update the data.
13830
13831 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
13832
13833         * ImageList.cs:
13834           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
13835           - Fixes ImageList constructor with ImageList container
13836           - Fixes image scaling (wrong parameters at DrawImage)
13837
13838 2005-02-02  Jackson Harper  <jackson@ximian.com>
13839
13840         * Binding.cs: Make property searches case-insensitive. Eliminate
13841         some duplicated code.
13842
13843 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
13844
13845         * ComboBox.cs:
13846                 - Handle focus event
13847                 - Fix scrollbar events
13848                 - Discard highlighted item if remove it
13849                 - Fixes SelectedItem with strings
13850
13851 2005-03-01  Peter Bartok  <pbartok@novell.com>
13852
13853         * Control.cs:
13854           - Fixed Visible property, now follows (once again) parent chain
13855             to return false if any control in the chain is visible=false
13856           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
13857           - Fixed several places where is_visible instead of Visible was used
13858           - Implemented FIXME related to focus selection when setting focused
13859             control to be invisible
13860
13861         * XplatUIWin32.cs: Now using proper method to find out if window is
13862           visible. Thanks to Jordi for pointing it out
13863
13864 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
13865
13866         * ComboBox.cs: show/hide scrollbar instead of creating it
13867
13868 2005-02-27  Jackson Harper  <jackson@ximian.com>
13869
13870         * CurrencyManager.cs: Add PositionChanged stuff.
13871
13872 2005-02-27  Peter Bartok  <pbartok@novell.com>
13873
13874         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
13875         * XplatUIOSX.cs: Added GetMenuOrigin() stub
13876         * XplatUIWin32.cs: Implemented GetMenuOrigin()
13877         * XplatUIX11.cs:
13878           - Implemented GetMenuDC()
13879           - Implemented GetMenuOrigin()
13880           - Implemented ReleaseMenuDC()
13881           - Implemented generation of WM_NCPAINT message
13882           - Implemented generation and handling of WM_NCCALCSIZE message
13883         * Form.cs: Added debug helper message for Jordi's menu work
13884         * Hwnd.cs:
13885           - Modified ClientRect property; added setter, fixed getter to handle
13886             setting of ClientRect
13887           - Added MenuOrigin property
13888
13889 2005-02-26  Peter Bartok  <pbartok@novell.com>
13890
13891         * XplatUIX11.cs:
13892           - Destroys the caret if a window that's being destroyed contains it
13893           - Ignores expose events coming from the X11 queue for windows that
13894             already are destroyed
13895           - Now uses the proper variable for handling DestroyNotify, before we
13896             marked the wrong window as destroyed
13897           - Improved/added some debug output
13898
13899 2005-02-26  Peter Bartok  <pbartok@novell.com>
13900
13901         * X11Keyboard.cs: Fixes to work on 64bit systems
13902
13903 2005-02-26  Peter Bartok  <pbartok@novell.com>
13904
13905         * Control.cs:
13906           - Now calling OnHandleDestroyed from DestroyHandle()
13907             instead of Dispose()
13908           - Removed bogus call to controls.Remove() from DestroyHandle()
13909
13910 2005-02-26  Peter Bartok  <pbartok@novell.com>
13911
13912         * Control.cs: Properly destroy child windows when our handle is
13913           destroyed
13914
13915 2005-02-25  Peter Bartok  <pbartok@novell.com>
13916
13917         * XplatUI.cs:
13918           - Added 'DriverDebug' define to allow tracing XplatUI API calls
13919           - Alphabetized Static Methods and Subclasses
13920
13921         * XplatUIX11.cs:
13922           - Added XException class to allow custom handling of X11 exceptions
13923           - Created custom X11 error handler, tied into XException class
13924           - Added support for MONO_XEXCEPTIONS env var to allow the user
13925             to either throw an exception on X errors or continue running
13926             after displaying the error
13927           - Added handling of DestroyNotify message
13928           - Added handler for CreateNotify message (still disabled)
13929           - Improved (tried to at least) Where method to provide file and lineno
13930         * X11Structs.cs:
13931           - Added XErrorHandler delegate
13932           - Added XRequest enumeration (to suppor translation of errors)
13933
13934 2005-02-25  Jackson Harper  <jackson@ximian.com>
13935
13936         * PropertyManager.cs: Implement editing features
13937         * CurrencyManager.cs:
13938         * Binding.cs: First attempt at UpdateIsBinding
13939         * BindingManagerBase.cs: Call UpdateIsBinding before
13940         pushing/pulling data.
13941
13942 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
13943
13944         * MenuAPI.cs: Respect disabled items
13945         * ThemeWin32Classic.cs
13946                 - Caches ImageAttributes creation for DrawImageDisabled
13947                 - Fixes vertical menu line drawing
13948                 - Draws disabled arrows in disable menu items
13949
13950 2005-02-24  Peter Bartok  <pbartok@novell.com>
13951
13952         * Hwnd.cs:
13953           - Added UserData property to allow associating arbitrary objects
13954             with the handle
13955           - Fixed leak; now removing Hwnd references from static windows array
13956         * XplatUIWin32.cs:
13957           - Fixed Graphics leak in PaintEventEnd
13958           - Removed usage of HandleData, switched over to Hwnd class
13959         * HandleData.cs: Removed, obsoleted by Hwnd.cs
13960
13961 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13962
13963         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
13964         * ScrollBar.cs: Fixes bug
13965         * TrackBar.cs: removes death code, clipping, mimize refreshes,
13966          keyboard navigation enhancements
13967
13968 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13969
13970         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
13971         * GroupBox.cs: Add control styles
13972         * Label.cs: Add control styles
13973         * UpDownBase.cs: Add control styles
13974         * ListBox.cs: Add control styles
13975         * XplatUIWin32.cs: Fixes wrong parameter order
13976
13977
13978 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
13979
13980         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
13981
13982 2005-02-23  Jackson Harper  <jackson@ximian.com>
13983
13984         * PropertyManager.cs: Implement property binding. This doesn't
13985         seem to work yet though as (I think) there are some bugs in
13986         System.ComponentModel.PropertyDescriptor.
13987         * BindingContext.cs: Use new PropertyManager constructor.
13988
13989 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
13990
13991         * ProgressBar.cs: use clip region in ProgressBar
13992         * ThemeWin32Classic.cs: use clip region in ProgressBar
13993
13994 2004-02-22  Jackson Harper  <jackson@ximian.com>
13995
13996         * BindingsCollection.cs: Remove some debug code.
13997
13998 2005-02-22  Jackson Harper  <jackson@ximian.com>
13999
14000         * BindingContext.cs:
14001         * ControlBindingsCollection.cs:
14002         * CurrencyManager.cs:
14003         * Binding.cs:
14004         * BindingManagerBase.cs: Initial implementation
14005         * BindingsCollection.cs: Add an internal contains method that the
14006         BindingManagerBase uses to ensure bindings aren't added twice to
14007         the collection.
14008         * PropertyManager.cs: Stubbed out.
14009         * Control.cs:
14010         * ContainerControl.cs: Hook up databinding
14011         
14012 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
14013
14014         * XplatUIOSX.cs:
14015           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
14016           Fixed Invalidate/Update chain.
14017           Fixed tons of other minor bugs (this is almost a complete rewrite).
14018
14019 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
14020
14021         * ComboBox.cs: do subcontrol creation when the control is created
14022
14023 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
14024
14025         * Label.cs: fixes image drawing (image and imagelist)
14026         * ThemeWin32Classic.cs: cache brushes
14027         
14028 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
14029
14030         * Form.cs: Move menu drawing code to Theme class
14031         * ComboBox.cs: Move ComboBox drawing code to Theme class
14032         * MenuItem.cs: Move menu drawing code to Theme class
14033         * MenuAPI.cs: Move menu drawing code to Theme class
14034         * ThemeWin32Classic.cs: New methods
14035         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
14036         * ListBox.cs: Move Listbox drawing code to Theme class
14037         * Theme.cs: New methods
14038
14039 2005-02-20  Peter Bartok  <pbartok@novell.com>
14040
14041         * Control.cs:
14042           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
14043             only process mnemonics on those)
14044           - Fixed event sequence for key handling; first calling
14045             ProcessKeyEventArgs now
14046         * TextBoxBase.cs:
14047           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
14048             for processing non-character keys
14049           - Fixed WM_CHAR to generate proper event sequence before processing
14050         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
14051           generation
14052
14053 2005-02-19  Peter Bartok  <pbartok@novell.com>
14054
14055         * UserControl.cs: Added TextChanged event; added attributes
14056         * SizeGrip.cs: Implemented resizing and optional display of grip
14057         * Form.cs: Fixed attribute
14058         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14059           Changed meaning of ScrollWindow bool argument; instead of the
14060           clear attribute (which will be true usually anyway), it gives the
14061           option of moving child controls as well.
14062         * XplatUIX11.cs:
14063           - Changed to match new ScrollWindow argument
14064           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
14065             now handles the implicit parent window a WM puts around us
14066         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
14067           to work)
14068         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
14069         * TreeView.cs: Adjusted to new ScrollWindow arguments
14070
14071 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
14072
14073         * Form.cs: Menu integration with non-client area
14074         * MenuItem.cs: Menu integration with non-client area
14075         * MenuAPI.cs: Menu integration with non-client area
14076
14077 2005-02-18  Peter Bartok  <pbartok@novell.com>
14078
14079         * MethodInvoker.cs: Added
14080         * MdiLayout.cs: Added
14081         * SendKeys.cs: Started implementation
14082         * ErrorIconAlignment.cs: Added
14083
14084 2005-02-18  Peter Bartok  <pbartok@novell.com>
14085
14086         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
14087         * Form.cs: Added handling for Menu-related Non-client messages
14088
14089 2005-02-17  Peter Bartok  <pbartok@novell.com>
14090
14091         * UpDownBase.cs: Fixed typo, compilation errors
14092         * DomainUpDown.cs: Fixed attribute value
14093
14094 2005-02-16  Miguel de Icaza  <miguel@novell.com>
14095
14096         * UpDownBase.cs: Attach entry events.
14097         Propagate events.
14098         Add ForeColor property, Focused, InterceptArrowKeys (interception
14099         does not work yet).
14100
14101 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
14102
14103         * Form.cs:
14104                 - Redraw non client are on Setmenu
14105                 - Calc proper menu starting point
14106
14107 2005-02-17  Peter Bartok  <pbartok@novell.com>
14108
14109         * Application.cs: Fixed message_filter check
14110
14111 2005-02-17  Peter Bartok  <pbartok@novell.com>
14112
14113         * Application.cs: Now calls registered message filters
14114         * DockStyle.cs: Fixed attribute
14115         * Form.cs: Fixed attribute
14116         * Menu.cs: Fixed attribute
14117         * ToolTip.cs: Fixed attribute
14118         * TreeNode.cs: Added missing attributes and arranged in regions
14119         * PropertyGrid.cs: Fixed signatures
14120         * TreeNodeCollection.cs: Added attributes
14121         * Splitter.cs: Added missing attributes; arranged into regions
14122         * TabPage.cs: Added missing attributes; arranged into regions
14123         * TextBoxBase.cs: Added missing attributes
14124         * TextBox.cs: Added missing attributes
14125         * ArrangeDirection.cs: Added missing attributes
14126         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
14127         * ToolBarButton.cs: Fixed attributes
14128         * AnchorStyles.cs: Fixed attribute
14129         * TrackBar.cs: Fixed attributes
14130         * TabControl.cs: Added missing attributes and arranged into regions
14131         * ToolBar.cs: Fixed attribute
14132         * StatusBar.cs: Fixed signature, organized into regions and added
14133           attributes
14134         * StatusBarPanel.cs: Fixed attributes
14135         * ContentsResizedEventArgs.cs: Implemented
14136         * ContentsResizedEventHandler.cs: Implemented
14137         * DateBoldEventArgs.cs: Implemented
14138         * DateBoldEventHandler.cs: Implemented
14139         * UpDownEventArgs.cs: Implemented
14140         * UpDownEventHandler.cs: Implemented
14141         
14142 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
14143
14144         * Form.cs: first Menu NC refactoring
14145         * MenuAPI.cs: first Menu NC refactoring
14146         
14147 2005-02-16  Peter Bartok  <pbartok@novell.com>
14148
14149         * ImeMode.cs: Added missing attributes
14150         * Menu.cs: Fixed attribute
14151         * GroupBox.cs: Fixed attribute
14152         * Label.cs: Fixed attribute
14153         * ColorDialog.cs (RunDialog): Removed TODO attribute
14154         * ComboBox.cs: Fixed attributes
14155         * ListControl.cs: Added missing attributes
14156         * PropertyGrid.cs: Fixed attributes
14157         * Control.cs: Fixed attributes
14158         * ListViewItem.cs: Added TypeConverter attribute
14159         * NotifyIcon.cs: Fixed attributes
14160         * ListView.cs: Fixed attributes
14161         * ButtonBase.cs: Fixed attribute
14162         * ImageList.cs: Added missing attributes
14163         * ContainerControl.cs: Fixed signature
14164         * CheckedListBox.cs: Fixed attribute; added missing attributes
14165         * Panel.cs: Fixed attributes
14166         * PropertyTabChangedEventArgs.cs: Added missing attribute
14167         * PropertyValueChangedEventArgs.cs: Added missing attribute
14168         * Binding.cs: Fixed attribute
14169         * ListViewItemConverter: Implemented ListViewSubItemConverter class
14170         * ListBox.cs: Fixed attribute; added missing attributes;
14171         * ScrollableControl.cs: Added missing attributes
14172         * PictureBox.cs: Added missing attributes; implemented missing property
14173         * DateTimePicker.cs: Added missing attributes
14174         * Theme.cs (ToolWindowCaptionHeight): Fixed type
14175         * MonthCalendar.cs: Fixed attributes
14176         * StatusBarPanel.cs: Added missing attributes
14177         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
14178
14179 2005-02-16  Peter Bartok  <pbartok@novell.com>
14180
14181         * TextBoxBase.cs: The previous method to enforce height yet remember
14182           the requested high was less than ideal, this is an attempt to do
14183           it better.
14184         * Control.cs: Added comment about possible problem
14185         * Copyright: Updated format
14186         * GridItemType.cs: Fixed swapped values
14187
14188 2005-02-15  Jackson Harper  <jackson@ximian.com>
14189
14190         * BaseCollection.cs: Use property so we never access an
14191         uninitialized list. Also initialize the list in the property.
14192
14193 2005-02-15  Peter Bartok  <pbartok@novell.com>
14194
14195         * GroupBox.cs (ProcessMnemonic): Implemented
14196         * Label.cs (ProcessMnemonic): Implemented
14197         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
14198           hotkeys
14199
14200 2005-02-15  Peter Bartok  <pbartok@novell.com>
14201
14202         * RadioButton.cs (ProcessMnemonic): Implemented
14203         * CheckBox.cs (ProcessMnemonic): Implemented
14204         * Control.cs:
14205           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
14206             handling
14207           - Added internal method to allow calling ProcessMnemonic from other
14208             controls
14209         * ContainerControl.cs:
14210           - Started support for handling validation chain handling
14211           - Implemented ProcessMnemonic support
14212           - Added Select() call to Active, to make sure the active control
14213             receives focus
14214         * Form.cs: Setting toplevel flag for Forms (this was lost in the
14215           FormParent rewrite)
14216         * ThemeWin32Classic.cs:
14217           - DrawCheckBox(): Fixed stringformat to show hotkeys
14218           - DrawRadioButton(): Fixed stringformat to show hotkeys
14219         * CommonDialog.cs: Removed WndProc override, not needed
14220
14221 2005-02-14  Peter Bartok  <pbartok@novell.com>
14222
14223         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
14224           missed those in the rewrite
14225
14226 2005-02-14  Miguel de Icaza  <miguel@novell.com>
14227
14228         * NumericUpDown.cs (Increment, ToString): Add.
14229         (DecimalPlaces): implement.
14230         
14231         Add attributes.
14232         
14233         * UpDownBase.cs: Add the designer attributes.
14234
14235 2005-02-13  Peter Bartok  <pbartok@novell.com>
14236
14237         * Panel.cs: Removed border_style, now in Control
14238         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
14239           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
14240
14241 2005-02-13  Peter Bartok  <pbartok@novell.com>
14242
14243         * MouseButtons.cs: Added missing attributes
14244         * XplatUIStructs.cs: Added enumeration for title styles
14245         * LeftRightAlignment.cs: Added missing attributes
14246         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
14247           it compatible with Graphics.FromHwnd()
14248         * SelectedGridItemChangedEventArgs.cs: Fixed property type
14249         * Keys.cs: Added missing attributes
14250         * SelectionRange.cs: Added missing attributes
14251         * SelectionRangeConverter.cs: Added
14252         * XplatUI.cs:
14253           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
14254             ReleaseMenuDC methods
14255           - Renamed ReleaseWindow to UngrabWindow
14256           - Added proper startup notice to allow version identification
14257         * Form.cs:
14258           - Added missing attributes
14259           - Removed FormParent concept
14260         * Label.cs: Removed border_style field, now in Control
14261         * RadioButton.cs: Now properly selects RadioButton when focus is
14262           received
14263         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
14264         * Control.cs:
14265           - Added missing attributes
14266           - Added borderstyle handling
14267           - Removed FormParent concept support
14268           - Fixed calls to XplatUI to match changed APIs
14269           - Fixed bug that would case us to use disposed Graphics objects
14270           - Removed unneeded internal methods
14271           - PerformLayout(): Fixed to handle DockStyle.Fill properly
14272           - SelectNextControl(): Fixed to properly check common parents
14273         * TextBoxBase.cs: Removed border_style field (now in Control)
14274         * MessageBox.cs:
14275           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
14276             fixed calculations for form size
14277           - Added support for localized strings and icons
14278           - Improved form size calculations, added border
14279         * ListView.cs: Removed border_style field (now in Control)
14280         * X11Structs.cs: Moved several structs from X11 driver here
14281         * X11Keyboard.cs: Changed debug message
14282         * Application.cs: Removed FormParent concept support
14283         * CommonDialog.cs:
14284           - Resetting end_modal flag
14285           - Removed FormParent concept support
14286         * NativeWindow.cs: Removed FormParent concept support
14287         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
14288           Client area and Non-Client whole window to allow support for WM_NC
14289           messages
14290         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
14291           prevent using it until it supports Hwnd as per Geoff Norton's request
14292         * ToolBar.cs: Fixed drawing, was not doing proper drawing
14293         * PictureBox.cs: Removed border_style field, now in Control
14294         * XplatUIWin32.cs: Added new driver methods
14295
14296 2005-02-12  Peter Bartok  <pbartok@novell.com>
14297
14298         * OpacityConverter.cs: Implemented
14299         * Hwnd.cs: Internal class to support drivers that need to emulate
14300           client area/non-client area window behaviour
14301
14302 2005-02-11  Peter Bartok  <pbartok@novell.com>
14303
14304         * KeysConverter.cs: Implemented
14305
14306 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
14307
14308         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
14309         * LinkLabel: Added missing attributes
14310         * MainMenu.cs: fixes ToString
14311         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
14312         * ListBox.cs: fixes event position
14313         * TrackBar.cs: adds missing attributes and events
14314         
14315 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
14316
14317         * MenuItem.cs: Use SystemInformation and bug fixes
14318         * MenuAPI.cs: Use SystemInformation and bug fixes
14319
14320 2005-02-09  Jackson Harper  <jackson@ximian.com>
14321
14322         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
14323         their keystate otherwise things like VK_MENU get stuck "on".
14324
14325 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
14326
14327         * ListBox.cs: Fixes AddRange bug
14328         
14329 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
14330
14331         * ProgressBar.cs
14332                 - Add missing attributes
14333                 - Add missing method
14334                 
14335         * CheckedListBox.cs: Added missing attributes
14336                 - Add missing attributes
14337                 - Remove extra method
14338         
14339         * ComboBox.cs: Added missing attributes
14340         * VScrollBar.cs: Added missing attributes
14341         * ScrollBar.cs:  Added missing attributes
14342         * ListBox.cs: Fixes signature, add missing consts
14343         * LinkArea.cs:   Added missing attributes
14344         
14345
14346 2005-02-08  Peter Bartok  <pbartok@novell.com>
14347
14348         * Menu.cs: Added missing attributes
14349         * MainMenu.cs: Added missing attributes
14350         * GroupBox.cs: Added missing attributes
14351         * Label.cs: Added missing attributes
14352         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
14353         * ColorDialog.cs:
14354           - Added Instance and Options properties
14355           - Added missing attributes
14356         * Cursor.cs: Made Serializable
14357         * NotifyIcon: Added missing attributes
14358         * MenuItem.cs: Added missing attributes
14359         * TextBoxBase.cs: Implemented AppendText() and Select() methods
14360         * Panel.cs: Added Missing attributes
14361         * MonthCalendar.cs: Fixed CreateParams
14362
14363 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14364         
14365         * LinkLabel.cs:
14366                 - Fixes signature
14367                 - Fixes issues with links
14368                 - Adds the class attributes
14369
14370 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
14371         
14372         * ComboBox.cs:
14373                 - Fixes button when no items available in dropdown
14374                 - Fixes repainting problems
14375                 - Adds the class attributes
14376                 
14377 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14378
14379         * XplatUIOSX.cs: Detect the menu bar and title bar height from
14380         the current theme.  Cache these on startup.
14381
14382 2005-02-07  Jackson Harper  <jackson@ximian.com>
14383
14384         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
14385         the scrollbar buttons when they are depressed.
14386
14387 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14388
14389         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
14390         Get the display size from the main displayid.  We currently dont
14391         support multiple display configurations.
14392
14393 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
14394
14395         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
14396
14397 2005-02-07  Miguel de Icaza  <miguel@novell.com>
14398
14399         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
14400
14401 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
14402
14403         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
14404
14405 2005-02-04  Jackson Harper  <jackson@ximian.com>
14406
14407         * ThemeWin32Classic.cs: Respect the clipping rect when
14408         drawing. Only fill the intersection of clips and rects so there
14409         isn't a lot of large fills.
14410         * ScrollBar.cs: Pass the correct clipping rect to the theme
14411         engine. Remove some debug code.
14412
14413 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
14414         
14415         * DateTimePicker.cs:
14416                 - Fixed crash on DateTime.Parse, use Constructor instead
14417
14418 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14419         
14420         * MenuItem.cs:
14421         * MenuAPI.cs:
14422                 - Owner draw support (MeasureItem and DrawItem)
14423
14424 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
14425         
14426         *  Menu.cs:
14427                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
14428                 - Fixes MenuItems.Add range
14429         * MenuItem.cs:
14430                 - MergeMenu and Clone and CloneMenu functions
14431
14432 2005-02-03  Jackson Harper  <jackson@ximian.com>
14433
14434         * ScrollBar.cs: Make abstract
14435         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
14436         is abstract.
14437
14438 2005-02-03  Jackson Harper  <jackson@ximian.com>
14439
14440         * ScrollBar.cs: First part of my scrollbar fixups. This removes
14441         all the unneeded refreshes and uses invalidates with properly
14442         computed rects.
14443
14444 2005-02-03  Peter Bartok  <pbartok@novell.com>
14445
14446         * ComponentModel.cs: Added
14447         * IDataGridEditingService.cs: Added
14448         * Timer.cs: Added missing attributes
14449         * ToolTip.cs: Added missing attributes
14450
14451 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14452
14453         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
14454
14455 2005-02-03  Peter Bartok  <pbartok@novell.com>
14456
14457         * ListBox.cs: Added missing attributes
14458
14459 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
14460         
14461         * ListBox.cs:
14462                 - Fixes font height after font change
14463                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
14464                 
14465 2005-02-02  Peter Bartok  <pbartok@novell.com>
14466
14467         * HandleData.cs: Introduced static methods to allow class
14468           to be more self-contained and track it's own HandleData objects
14469         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
14470           HandleData to use new static methods
14471
14472 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
14473
14474         * Combobox.cs:
14475                 - Fixes default size and PreferredHeight
14476                 - Missing events
14477                 - ObjectCollection.Insert implementation
14478                 
14479         * ListControl.cs
14480                 - Fixes signature
14481         * ListBox.cs:
14482                 - Several fixes
14483                 - ObjectCollection.Insert implementation
14484                 - No selection after clean
14485                 - Small fixes
14486
14487 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14488
14489         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
14490
14491 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
14492
14493         * Combobox.cs:
14494                 - Caches ItemHeight calculation for OwnerDrawVariable
14495                 - Handles dropdown properly
14496                 - Fixes several minor bugs
14497
14498 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14499
14500         * ListBox.cs:
14501                 - Fixes 71946 and 71950
14502                 - Fixes changing Multicolumn on the fly
14503                 - Fixes keyboard navigation on Multicolumn listboxes
14504
14505 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14506         
14507         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
14508         crash reporter log.
14509
14510 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14511
14512         * XplatUIOSX.cs: Allow applications to actually exit.
14513
14514 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14515
14516         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
14517         their parent at creation time rather than lazily later.  Fixes a major
14518         regression we were experiencing.
14519
14520 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14521
14522         * ThemeWin32Classic.cs: more date time picker painting fixes
14523         * DateTimePicker.cs: more monthcalendar drop down fixes
14524         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
14525
14526 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14527
14528         * ScrollBar.cs:
14529                 - When moving the thumb going outside the control should stop the moving
14530                 - Adds the firing of missing events
14531                 - Fixes no button show if Size is not specified
14532                 - End / Home keys for keyboard navigation
14533
14534 2005-01-30  Peter Bartok  <pbartok@novell.com>
14535
14536         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
14537           sanity check to prevent theoretical loop
14538         * XplatUIWin32.cs (SetVisible): Removed debug output
14539         * XplatUIX11.cs (SystrayChange): Added sanity check
14540         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
14541         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
14542           behaviour, valid until the X11 client window rewrite is done
14543         * TextBox.cs (ctor): Setting proper default foreground and background
14544           colors
14545
14546 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
14547
14548         * Theme: Added DrawDateTimePicker to interface
14549         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
14550         * DateTimePicker.cs: Created (still needs keys and painting code)
14551         * DateTimePickerFormat.cs: added
14552         * MonthCalendar.cs: fixed CreateParams for popup window mode
14553           
14554 2005-01-29  Peter Bartok  <pbartok@novell.com>
14555
14556         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
14557           this should also the calculations for ligher/darker
14558         * Theme.cs: Fixed defaults for ScrollBar widths/heights
14559
14560 2005-01-29  Peter Bartok  <pbartok@novell.com>
14561
14562         * ArrangeDirection.cs: Added
14563         * ArrangeStartingPositon.cs: Added
14564         * SystemInformation.cs: Implemented
14565         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14566           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
14567           used by SystemInformation class
14568         * X11Strucs.cs: Added XSizeHints structure
14569         * MenuAPI.cs:
14570           - Fixed CreateParams to make sure the menu window is always visible
14571           - TrackPopupMenu: Added check to make sure we don't draw the
14572             menu offscreen
14573
14574 2005-01-29  Peter Bartok  <pbartok@novell.com>
14575
14576         * HandleData.cs: Added method for altering invalid area
14577         * TextBoxBase.cs: Implemented TextLength
14578
14579 2005-01-28  Peter Bartok  <pbartok@novell.com>
14580
14581         * XplatUIX11.cs: Improvement over last patch, not sending
14582           the WM_PAINT directly anymore, instead we scroll any pending
14583           exposed areas and let the system pick out the WM_PAINT later
14584
14585 2005-01-28  Peter Bartok  <pbartok@novell.com>
14586
14587         * SWF.csproj: Deleted, no longer used. Instead,
14588           Managed.Windows.Forms/SWF.csproj should be used
14589         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
14590           directly, to avoid a potential race condition with the next
14591           scroll
14592
14593 2005-01-28  Peter Bartok  <pbartok@novell.com>
14594
14595         * XplatUI.cs: Made class internal
14596
14597 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
14598
14599         * CheckedListBox.cs:
14600                 - Draw focus
14601                 - Fixed Drawing
14602                 - Missing methods and events
14603
14604 2005-01-27  Peter Bartok  <pbartok@novell.com>
14605
14606         * Application.cs (Run): Don't use form if we don't have one
14607
14608 2005-01-27  Peter Bartok  <pbartok@novell.com>
14609
14610         * TextBoxBase.cs (get_Lines): Fixed index off by one error
14611
14612 2005-01-27  Peter Bartok  <pbartok@novell.com>
14613
14614         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
14615         * GridItem.cs: Added; Patch by Jonathan S. Chambers
14616         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
14617         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
14618         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
14619         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
14620         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14621         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14622         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14623         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14624         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14625         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14626
14627 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14628
14629         * Combobox.cs:
14630                 - Draw focus on Simple Combobox
14631                 - Fixes drawing issues
14632                 - fixes 71834
14633
14634 2005-01-27  Peter Bartok  <pbartok@novell.com>
14635
14636         * Form.cs:
14637           - Place window in default location, instead of hardcoded 0/0
14638           - Send initial LocationChanged event
14639         * Control.cs:
14640           - UpdateBounds after creation to find out where the WM placed us
14641           - Make sure that if the ParentForm changes location the Form
14642             is notified
14643         * XplatUIX11.cs: XGetGeometry will not return the coords relative
14644             to the root, but to whatever the WM placed around us.
14645             Translate to root coordinates before returning toplevel
14646             coordinates
14647         * XplatUIWin32.cs: Removed debug output
14648         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
14649           flag to GetWindowPos, to allow translation of coordinates on X11
14650
14651 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14652
14653         * ListBox.cs: connect LostFocus Event
14654
14655 2005-01-27  Peter Bartok  <pbartok@novell.com>
14656
14657         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14658           XplatUIX11.cs: Extended the Systray API
14659         * Form.cs: Removed debug output
14660         * Application.cs: Fixed focus assignment, always need to call
14661           XplatUI.Activate() since Form.Activate() has rules that may
14662           prevent activation
14663         * NotifyIcon.cs: Should be complete now
14664         * ToolTip.cs: Worked around possible timer bug
14665
14666 2005-01-27  Jackson Harper  <jackson@ximian.com>
14667
14668         * TabControl.cs:
14669         - Only invalidate the effected tabs when the
14670         selected index changes. This reduces drawing and gets rid of some
14671         flicker.
14672         - Only refresh if the tabs need to be shifted, otherwise only
14673         invalidate the slider button.
14674         - On windows the tabs are not filled to right if the slider is
14675         visible.
14676         
14677 2005-01-27  Jackson Harper  <jackson@ximian.com>
14678
14679         * TabControl.cs: Only refresh on mouseup if we are showing the
14680         slider. Also only invalidate the button whose state has changed.
14681
14682 2005-01-26  Peter Bartok  <pbartok@novell.com>
14683
14684         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
14685         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
14686           and SystrayRemove() methods
14687         * XplatUIOSX.cs: Stubbed Systray methods
14688         * XplatUIX11.cs:
14689           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
14690             methods
14691           - Fixed broken XChangeProperty calls (marshalling messed up things)
14692         * X11Structs.cs: Added enums and structs required for Size hinting
14693         * NotifyIcon.cs: Added & implemented
14694
14695 2005-01-26  Jackson Harper  <jackson@ximian.com>
14696
14697         * TabControl.cs: Space vertically layed out tabs properly.
14698
14699 2005-01-26  Peter Bartok  <pbartok@novell.com>
14700
14701         * Form.cs (CreateClientParams): Always set the location to 0,0
14702           since we're a child window.
14703
14704         * Control.cs (SetVisibleCore): Always explicitly setting the location
14705           of a toplevel window, apparently X11 doesn't like to move windows
14706           while they're not mapped.
14707
14708 2005-01-26  Jackson Harper  <jackson@ximian.com>
14709
14710         * TabControl.cs: Implement FillToRight size mode with vertically
14711         rendered tabs.
14712
14713 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14714
14715         * ControlPaint.cs, ThemeWin32Classic.cs
14716                 - Fixes DrawFocusRectangle
14717
14718 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14719
14720         * MenuAPI.cs:
14721                 - MenuBar tracking only starts when item is first clicked
14722                 - Fixes menu hidding for multiple subitems
14723                 - Unselect item in MenuBar when item Executed
14724                 - Fixes bug 71495
14725
14726 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
14727
14728         * ListControl.cs:
14729                 - IsInputKey for ListBox
14730         * ListBox.cs:
14731                 - Focus item
14732                 - Shift and Control item selection
14733                 - Implement SelectionMode.MultiExtended
14734                 - Fixes RightToLeft
14735         * ComboBox.cs:
14736                 - IsInputKey implemented
14737                 - Do not generate OnTextChangedEdit on internal txt changes
14738                 
14739 2005-01-23  Peter Bartok  <pbartok@novell.com>
14740
14741         * AccessibleObject.cs: Partially implemented Select()
14742         * MonthCalendar.cs: Added missing attributes and events
14743         * Form.cs: Fixed CreateParams behaviour, now controls derived from
14744           form can properly override CreateParams.
14745         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14746           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
14747           Control performs Invalidate & Update
14748         * NativeWindow (CreateHandle): Added special handling for Form
14749           and Form.FormParent classes to allow overriding of From.CreateParams
14750         * Control.cs:
14751           - ControlNativeWindow: Renamed 'control' variable to more intuitive
14752             name 'owner'
14753           - ControlNativeWindow: Added Owner property
14754           - Removed usage of Refresh() on property changes, changed into
14755             Invalidate(), we need to wait until the queue is processed for
14756             updates, direct calls might cause problems if not all vars for
14757             Paint are initialized
14758           - Added call to UpdateStyles() when creating the window, to set any
14759             styles that CreateWindow might have ignored.
14760           - Added support for Form CreateParent overrides to UpdateStyles()
14761         * MessageBox.cs: Removed no longer needed FormParent override stuff,
14762           CreateParams are now properly overridable
14763         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
14764           CreateParams are now properly overridable
14765
14766 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
14767
14768         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
14769         OnTextBoxChanged.
14770
14771         Capture LostFocus and OnTextBoxChanged.  The later introduces a
14772         recursive invocation that I have not figured out yet.
14773
14774         Reset the timer when not using (it was accumulating).
14775
14776
14777         (OnTextBoxChanged): Set UserEdit to true here to track whether the
14778         user has made changes that require validation.
14779
14780         Reset changing to avoid loops.
14781
14782 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
14783
14784         * NumericUpDown.cs: Display value at startup.
14785
14786         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
14787         ValidateEditText.
14788
14789         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
14790         filled in.  Added some basic parsing of text.
14791
14792         Still missing the OnXXX method overrides, and figuring out the
14793         events that must be emitted.
14794
14795         * UpDownBase.cs: Handle UserEdit on the Text property.
14796         
14797 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
14798
14799         * ComboBox.cs:
14800           - Fixes IntegralHeight
14801           - ToString method
14802
14803 2005-01-21  Jackson Harper  <jackson@ximian.com>
14804
14805         * TabControl.cs: Set the SelectedIndex property when SelectedTab
14806         is set so that the page visibility is updated and the tabs are
14807         sized correctly.
14808
14809 2005-01-21  Jackson Harper  <jackson@ximian.com>
14810
14811         * TabControl.cs: Use cliping rectangle for blitting. Give the
14812         theme the clipping rect so we can do clipping while
14813         drawing. Remove some debug code.
14814
14815 2005-01-21  Jackson Harper  <jackson@ximian.com>
14816
14817         * TabPage.cs: Add a new method so tab pages can force the tab
14818         control to recalculate the tab page sizes.
14819         * TabControl.cs: UpdateOwner needs to make the tab control recalc
14820         sizes.
14821
14822 2005-01-20  Jackson Harper  <jackson@ximian.com>
14823
14824         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
14825
14826 2005-01-20  Jackson Harper  <jackson@ximian.com>
14827
14828         * TreeView.cs: Set the bounds for nodes properly. They were
14829         getting screwed up when checkboxes were not enabled, but images
14830         were.
14831
14832 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
14833
14834         * ListBox.cs:
14835                 - Owner draw support
14836                 - Fixes
14837                 
14838 2005-01-20  Jackson Harper  <jackson@ximian.com>
14839
14840         * XplatUIStructs.cs: More misc keys
14841         * X11Keyboard.cs: Ignore some control keys.
14842
14843 2005-01-20  Jackson Harper  <jackson@ximian.com>
14844
14845         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
14846         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
14847
14848 2005-01-19  Peter Bartok  <pbartok@novell.com>
14849
14850         * Control.cs: Un-selecting the control when it is loosing focus
14851
14852 2005-01-19  Jackson Harper  <jackson@ximian.com>
14853
14854         * TreeView.cs: Hook up to the text controls leave event so we can
14855         end editing when the users clicks outside the text box.
14856         
14857 2005-01-19  Jackson Harper  <jackson@ximian.com>
14858
14859         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
14860         get set in the conversion array.
14861
14862 2005-01-19  Peter Bartok  <pbartok@novell.com>
14863
14864         * Application.cs (ModalRun): Added a call to CreateControl to ensure
14865           focus is properly set
14866         * Button.cs:
14867           - Added missing attributes
14868           - removed styles, those are already set in the base class
14869         * ButtonBase.cs:
14870           - Added missing attributes
14871           - Added clip window styles
14872         * CheckBox.cs: Added missing attributes
14873         * CommonDialog.cs:
14874           - FormParentWindow.CreateParams: Added required clip styles
14875         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
14876           also filters modifier keys
14877         * MessageBox.cs:
14878           - Added assignment of Accept and Cancel button to enable Enter
14879             and Esc keys in MessageBox dialogs
14880           - FormParentWindow.CreateParams: Added required clip styles
14881         * RadioButton.cs: Added missing attributes
14882         * TextControl.cs: No longer draws selection if control does not
14883           have focus
14884         * TextBoxBase.cs:
14885           - Now draws simple rectangle around test area to make it obvious
14886             there's a control. This is a hack until we properly support borders
14887           - A few simple fixes to support selections better, now erases selected
14888             text when typing, and resets selection when using movement keys
14889
14890 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14891
14892         * UpDownBase.cs: Added some new properties.
14893
14894         * DomainUpDown.cs: Implement a lot to get my test working.
14895
14896 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14897
14898         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
14899
14900 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14901
14902         * OSXStructs (WindowAttributes): Fixed csc complaints
14903
14904 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14905
14906         * XplayUIOSX.cs:
14907           OSXStructs.cs: Initial refactor to move enums and consts into
14908           OSXStructs and use them in the driver for greater readability.
14909
14910 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14911
14912         * XplatUIOSX.cs: Initial support for Standard Cursors.
14913         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
14914
14915 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
14916
14917         * ComboBox.cs: ability to change style when the ctrl is already
14918         created, missing methods and events, bug fixes, signature fixes
14919
14920 2005-01-19  Peter Bartok  <pbartok@novell.com>
14921
14922         * Cursors.cs (ctor): Added ctor to fix signature
14923
14924 2005-01-18  Peter Bartok  <pbartok@novell.com>
14925
14926         * Button.cs: Implemented DoubleClick event
14927         * ButtonBase.cs:
14928           - Fixed keyboard handling to behave like MS, where the press of
14929             Spacebar is equivalent to a mousedown, and the key release is
14930             equivalent to mouseup. Now a spacebar push will give the same
14931             visual feedback like a mouse click.
14932           - Added missing attributes
14933           - Added ImeModeChanged event
14934           - Added support for generating DoubleClick event for derived classes
14935         * CheckBox.cs:
14936           - Implemented DoubleClick event
14937           - Added missing attributes
14938         * CommonDialog.cs: Added missing attribute
14939         * ContextMenu.cs: Added missing attributes
14940         * RadioButton.cs:
14941           - AutoChecked buttons do not allow to be unselected when clicked
14942             (otherwise we might end up with no selected buttons in a group)
14943           - Added missing attributes
14944           - Implemented DoubleClickEvent
14945         * ThreadExceptionDialog.cs: Enabled TextBox code
14946
14947 2005-01-18  Peter Bartok  <pbartok@novell.com>
14948
14949         * Form.cs: Removed debug output
14950         * Button.cs: Added support for DoubleClick method
14951
14952 2005-01-18  Peter Bartok  <pbartok@novell.com>
14953
14954         * Form.cs:
14955           - Added method to parent window that allows triggering size
14956             calculations when a menu is added/removed
14957           - set_Menu: Cleaned up mess from early days of Form and Control,
14958             now properly triggers a recalc when a menu is added/removed
14959           - Added case to select form itself as focused form if no child
14960             controls exist
14961           - Added PerformLayout call when showing dialog, to ensure properly
14962             placed controls
14963         * Control.cs:
14964           - Select(): Made internal so Form can access it
14965           - Focus(): Only call Xplat layer if required (avoids loop), and sets
14966             status
14967         * Application.cs (Run): Removed hack and calls PerformLayout instead
14968           to trigger calculation when Form becomes visible
14969
14970 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
14971
14972         * ComboBox.cs: fixes for ownerdraw
14973
14974 2005-01-18  Peter Bartok  <pbartok@novell.com>
14975
14976         * TextControl.cs:
14977           - Sentinel is no longer static, each Document gets it's own, this
14978             avoids locking or alternatively overwrite problems when more
14979             than one text control is used simultaneously.
14980           - Switched to use Hilight and HilightText brushes for text selection
14981
14982         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
14983
14984 2005-01-18  Peter Bartok  <pbartok@novell.com>
14985
14986         * Control.cs:
14987           - Hooked up the following events:
14988                 o ControlAdded
14989                 o ControlRemoved
14990                 o HandleDestroyed
14991                 o ImeModeChanged
14992                 o ParentChanged
14993                 o TabStopChanged
14994                 o Invalidated
14995                 o SystemColorsChanged
14996                 o ParentFontChanged
14997                 o Move
14998           - Removed debug output
14999           - Added a call to the current theme's ResetDefaults when a color change
15000             is detected
15001         * Form.cs: Now setting the proper ImeMode
15002         * Theme.cs: Defined a method to force recreation of cached resources
15003           and rereading of system defaults (ResetDefaults())
15004         * ThemeWin32Classic.cs: Added ResetDefaults() stub
15005
15006 2005-01-17  Peter Bartok  <pbartok@novell.com>
15007
15008         * Control.cs: Added missing attributes
15009
15010 2005-01-17  Jackson Harper  <jackson@ximian.com>
15011
15012         * TreeNode.cs: Implement editing. Add missing properties selected
15013         and visible.
15014         * TreeView.cs: Implement node editing. Also some fixes to use
15015         Invalidate (invalid area) instead of Refresh when selecting.
15016
15017 2005-01-17  Peter Bartok  <pbartok@novell.com>
15018
15019         * Control.cs:
15020           - Implemented InvokeGotFocus() method
15021           - Implemented InvokeLostFocus() method
15022           - Implemented InvokePaint() method
15023           - Implemented InvokePaintBackground() method
15024           - Implemented InvokeClick() method
15025           - Implemented FindForm() method
15026           - Implemented RectangleToClient() method
15027           - Implemented ClientToRectangle() method
15028           - Implemented ResetBackColor() method
15029           - Implemented ResetCursor() method
15030           - Implemented ResetFont() method
15031           - Implemented ResteForeColor() method
15032           - Implemented ResetImeMode() method
15033           - Implemented ResetLeftToRight() method
15034           - Implemented ResetText() method
15035           - Implemented Scale() methods
15036           - Implemented ScaleCore() method
15037           - Implemented Update() method
15038           - Removed unused variables
15039           - Stubbed AccessibilityNotifyClients and
15040             ControlAccessibleObject.NotifyClients() methods (dunno what to do
15041             with those yet)
15042           - Now setting proper default for RightToLeft property
15043           - Fixed bug in SetClientSizeCore that would cause windows to get
15044             really big
15045           - Now sending Click/DoubleClick events
15046           - Now selecting controls when left mouse button is clicked on
15047             selectable control
15048         * AccessibleEvents.cs: Added
15049         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
15050         * XplatUIOSX.cs: Stubbed UpdateWindow() method
15051         * XplatUIWin32.cs: Implemented UpdateWindow() method
15052         * XplatUIX11.cs: Implemented UpdateWindow() method
15053         * Form.cs: Removed stray semicolon causing CS0162 warning
15054         * ThemeWin32Classic.cs: Fixed unused variable warnings
15055         * ScrollableControl.cs: Now calls base method for ScaleCore
15056         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
15057           style to avoid interference with internal click handler (which is
15058           different than standard Control click handling)
15059         * RadioButton.cs:
15060           - Now unchecks all sibling radio buttons when control is
15061             selected (Fixes #68756)
15062           - Removed internal tabstop variable, using the one inherited from
15063             Control
15064
15065 2005-01-17  Jackson Harper  <jackson@ximian.com>
15066
15067         * NavigateEventArgs.cs: Fix base type.
15068         * LinkLabel.cs: Sig fix
15069         
15070 2005-01-17  Jackson Harper  <jackson@ximian.com>
15071
15072         * TreeView.cs: Only invalidate the effected nodes bounds when
15073         selecting nodes.
15074
15075 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15076
15077         * XplatUIWin32.cs: fixes Win32 marshaling
15078         * XplatUIX11.cs: fixes method signature
15079
15080 2005-01-17  Peter Bartok  <pbartok@novell.com>
15081
15082         * XplatUIX11.cs: Clean up resources when we no longer need them
15083
15084 2005-01-17  Peter Bartok  <pbartok@novell.com>
15085
15086         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
15087           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
15088           and DestroyCursor() methods.
15089         * Cursor.cs: Partially implemented, now supports standard cursors;
15090           still contains some debug code
15091         * Cursors.cs: Implemented class
15092         * Control.cs:
15093           - WndProc(): Added handling of WM_SETCURSOR message, setting the
15094             appropriate cursor
15095           - Implemented Cursor property
15096           - Replaced break; with return; more straightforwar and possibly
15097             faster
15098           - Now properly setting the result for WM_HELP
15099         * X11Structs.cs: Added CursorFontShape enum
15100         * XplatUIStructs.cs:
15101           - Added StdCursor enum (to support DefineStdCursor() method)
15102           - Added HitTest enum (to support sending WM_SETCURSOR message)
15103         * XplatUIX11.cs:
15104           - Now sends the WM_SETCURSOR message
15105           - Implemented new cursor methods
15106         * XplatUIOSX.cs: Stubbed new cursor methods
15107         * XplatUIWin32.cs:
15108           - Implemented new cursor methods
15109           - Added GetSystemMetrics function and associated enumeration
15110
15111 2005-01-15  Peter Bartok  <pbartok@novell.com>
15112
15113         * Control.cs:
15114           - WndProc(): Now handles EnableNotifyMessage
15115           - SelectNextControl(): Fixed bug where if no child or sibling
15116             controls exist we looped endlessly
15117
15118 2005-01-14  Jackson Harper  <jackson@ximian.com>
15119
15120         * TreeView.cs: Recalculate the tab pages when a new one is added
15121         so that the proper bounding rects are created.
15122
15123 2005-01-14  Jackson Harper  <jackson@ximian.com>
15124
15125         * TreeView.cs: Draw a gray box instead of a grip in the lower
15126         right hand corner when there are both horizontal and vertical
15127         scroll bars.
15128
15129 2005-01-14  Jackson Harper  <jackson@ximian.com>
15130
15131         * Control.cs: When erasing backgrounds use FromHwnd instead of
15132         FromHdc when there is a NULL wparam. This occurs on the X driver.
15133         * XplatUIX11.cs: Set the wparam to NULL.
15134
15135 2005-01-13  Jackson Harper  <jackson@ximian.com>
15136
15137         * PictureBox.cs: Implement missing methods (except ToString, need
15138         to test that on windows) and events. When visibility is changed we
15139         need to redraw the image because the buffers are killed. When size
15140         is changed refresh if the sizemode needs it.
15141
15142 2005-01-13  Peter Bartok  <pbartok@novell.com>
15143
15144         * Control.cs (SelectNextControl): Was using wrong method to select
15145           a control
15146
15147 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15148
15149         * ComboBox.cs: fixes dropstyle
15150
15151 2005-01-13  Peter Bartok  <pbartok@novell.com>
15152
15153         * Form.cs:
15154           - Implemented Select() override
15155           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
15156           - Now sets keyboard focus on startup
15157         * Control.cs (SelectNextControl): Now properly handles directed=true
15158         * TextBoxBase.cs:
15159           - WndProc: Now passes tab key on to base if AcceptTabChar=false
15160           - Added (really bad) focus rectangle (mostly for testing)
15161         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
15162           to enforce redraw on focus changes
15163         * ContainerControl.cs:
15164           - Fixed detection of Shift-Tab key presses
15165           - Fixed traversal with arrow keys
15166         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
15167           gonna keep this or if it's complete yet
15168         
15169 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
15170
15171         * ComboBox.cs: missing properties, fixes
15172
15173 2005-01-13  Peter Bartok  <pbartok@novell.com>
15174
15175         * Panel.cs (ctor): Setting Selectable window style to off
15176         * Splitter.cs (ctor): Setting Selectable window style to off
15177         * GroupBox.cs (ctor): Setting Selectable window style to off
15178         * Label.cs (ctor): Setting Selectable window style to off
15179
15180 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
15181
15182         * UpDownBase.cs (InitTimer): If the timer has been already
15183         created, enable it.
15184
15185         Use a TextBox instead of a Label.
15186
15187 2005-01-12  Jackson Harper  <jackson@ximian.com>
15188
15189         * TreeView.cs: Refresh the tree after sorting the nodes. Always
15190         draw the connecting node lines (when ShowLines is true).
15191         * TreeNode.cs: The nodes index can now be updated. This is used
15192         when a node collection is sorted.
15193         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
15194         insert or an existing unsorted node collection can be sorted.
15195         
15196 2005-01-12  Peter Bartok  <pbartok@novell.com>
15197
15198         * ContainerControl.cs: Implemented ProcessDialogKeys()
15199
15200 2005-01-12  Peter Bartok  <pbartok@novell.com>
15201
15202         * Control.cs:
15203           - Implemented SelectNextControl() method
15204           - Several focus related bug fixes
15205           - Fixed Docking calculations to match MS documentation and
15206             behaviour
15207
15208 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
15209
15210         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
15211         bug fixes
15212
15213 2005-01-12  Peter Bartok  <pbartok@novell.com>
15214
15215         * Control.cs:
15216           - Fixed broken Contains() method
15217           - Implemented GetNextControl() method. Finally. This is the pre-
15218             requisite for focus handling.
15219
15220 2005-01-12  Peter Bartok  <pbartok@novell.com>
15221
15222         * OSXStrucs.cs: Added
15223
15224 2005-01-12  Peter Bartok  <pbartok@novell.com>
15225
15226         * XplatUIWin32.cs:
15227           - Removed PeekMessageFlags
15228           - Implemented SetWindowStyle() method
15229         * XplatUIStructs.cs: Added PeekMessageFlags
15230         * X11Structs: Added missing border_width field to XWindowChanges struct
15231         * XplatUIX11.cs:
15232           - PeekMessage: Now throws exception if flags which are not yet
15233             supported are passed
15234           - Implemented SetWindowStyle() method
15235           - Fixed SetZOrder to handle AfterHwnd properly
15236         * XplatUI.cs: Added SetWindowStyle() method
15237         * XplatUIDriver.cs: Added SetWindowStyle() abstract
15238         * Control.cs:
15239           - Implemented UpdateStyles() method
15240           - Implemented UpdateZOrder() method
15241         * XplatUIOSX.cs: Added SetWindowStyle() stub
15242
15243 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
15244
15245         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
15246         button mouse).
15247
15248
15249 2005-01-11  Jackson Harper  <jackson@ximian.com>
15250
15251         * TreeView.cs: Still need to draw lines to siblings even if out of
15252         the current node is out of the clip.
15253
15254 2005-01-11  Jackson Harper  <jackson@ximian.com>
15255
15256         * TreeView.cs: When setting the hbar/vbar/grip position use
15257         SetBounds so that perform layout is only called once. Also suspend
15258         and resume layout so layout is only done once for all controls.
15259         - Removed some debug fluff
15260         * SizeGrip.cs: Call base implmentation in overriding methods.
15261         - When visibility is changed the drawing buffers are killed so we
15262         need to redraw.
15263
15264 2005-01-11  Jackson Harper  <jackson@ximian.com>
15265
15266         * TreeView.cs: Calculate the open node count while drawing. This
15267         saves us an entire tree traversal for every paint operation. Use
15268         a member var for the open node count so less vars are passed around.
15269
15270 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
15271
15272         * MonthCalendar.cs:
15273         - fixed selection to use mousemove, not mouse polling on timer
15274         * ThemeWin32Classic.cs
15275         - removed redundant unused variable "no_more_content"
15276         
15277 2005-01-11  Peter Bartok  <pbartok@novell.com>
15278
15279         * XplatUIX11.cs (DoEvents): Needs to return when no more events
15280           are pending, so it now calls PeekMessage instead of GetMessage;
15281           implemented a incomplete version of PeekMessage
15282         
15283 2005-01-11  Peter Bartok  <pbartok@novell.com>
15284
15285         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
15286           I18n issues
15287         * TextBoxBase.cs: Added sending of TextChanged event
15288
15289 2005-01-10  Jackson Harper  <jackson@ximian.com>
15290
15291         * TreeView.cs: Try not to draw outside the clipping rectangle on
15292         each node element.
15293
15294 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
15295
15296         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
15297
15298 2005-01-10  Jackson Harper  <jackson@ximian.com>
15299
15300         * TreeView.cs:
15301         - Implement fast scrolling. Now only the newly
15302         exposed nodes are drawn and the old image is moved using the
15303         XplatUI::ScrollWindow method.
15304         - Factor in height of nodes when calculating whether or not the
15305         node is in the clipping rect.
15306
15307 2005-01-10  Jackson Harper  <jackson@ximian.com>
15308
15309         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
15310
15311 2005-01-10  Peter Bartok  <pbartok@novell.com>
15312
15313         * Application.cs: Added temporary hack to resolve all our resize
15314           required issues on startup. This will get fixed properly at
15315           some point in the future
15316
15317 2005-01-10  Jackson Harper  <jackson@ximian.com>
15318
15319         * SizeGrip.cs: New internal class that is used as a sizing
15320         grip control...hence the name.
15321
15322 2005-01-10  Peter Bartok  <pbartok@novell.com>
15323
15324         * Control.cs: Implemented proper TabIndex handling, now assigning
15325           a tabindex when a control is added to a container
15326         * GroupBox.cs (ctor): Now sets the Container style bit, required
15327           for Control.GetNextControl()
15328
15329 2005-01-09  Jackson Harper  <jackson@ximian.com>
15330
15331         * TextBoxBase.cs: Clear window when scrolling (fixes build).
15332
15333 2005-01-09  Peter Bartok <pbartok@novell.com>
15334
15335         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
15336           XplatUIX11.cs: Added ability to control ScrollWindow expose and
15337           an overload for ScrollWindow to allow only scrolling a rectangle
15338
15339 2005-01-09  Peter Bartok <pbartok@novell.com>
15340
15341         * Form.cs:
15342           - Implemented SetDesktopBounds method
15343           - Implemented SetDesktopLocation method
15344
15345 2005-01-08  Jackson Harper  <jackson@ximian.com>
15346
15347         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
15348         the node count has changed, this removes to VScroll::Refresh calls
15349         when drawing.
15350
15351 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
15352
15353         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
15354
15355 2005-01-07  Jackson Harper  <jackson@ximian.com>
15356
15357         * TreeNode.cs: Just update the single node when it is
15358         checked. Don't refresh after toggling, the Expand/Collapse already
15359         handles this.
15360         * TreeView.cs: Respect clipping a little more when drawing. Try
15361         not to redraw things that don't need to be redrawn. Just hide the
15362         scrollbars when they are no longer needed instead of removing
15363         them, so they don't have to be created again and again.
15364         
15365 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
15366
15367         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
15368         coordinates to window space to place the caret properly, FIXED.
15369         Implement GetWindowState & SetWindowState
15370
15371 2005-01-06  Peter Bartok <pbartok@novell.com>
15372
15373         * Form.cs:
15374           - Implemented ClientSize property
15375           - Implemented DesktopBounds property
15376           - Implemented DesktopLocation property
15377           - Implemented IsRestrictedWindow property
15378           - Implemented Size property
15379           - Implemented TopLevel property
15380           - Implemented FormWindowState property
15381         * Control.cs:
15382           - Implemented GetTopLevel() method
15383           - Implemented SetTopLevel() method
15384         * X11Structs.cs (Atom):
15385           - Added AnyPropertyType definition
15386           - Added MapState definiton and updated XWindowAttribute struct
15387         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
15388         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
15389         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
15390         * XplatUIWin32.cs:
15391           - Implemented GetWindowState() and SetWindowState() methods
15392           - Fixed Win32GetWindowLong return type
15393         * XplatUIX11.cs:
15394           - Introduced central function for sending NET_WM messages
15395           - Implemented GetWindowState() and SetWindowState() methods
15396         * TextBoxBase.cs (set_Lines):
15397           - Now uses Foreground color for text added via Text property (Duh!)
15398           - Added code to remember programmatically requested size (fixes
15399             behaviour when Multiline is set after Size)
15400           - Added AutoSize logic
15401
15402 2005-01-06  Jackson Harper  <jackson@ximian.com>
15403
15404         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
15405
15406 2005-01-06  Jackson Harper  <jackson@ximian.com>
15407
15408         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
15409         set to less then 0.
15410
15411 2005-01-06  Jackson Harper  <jackson@ximian.com>
15412
15413         * ScrollableControl.cs: Lazy init the scrollbars.
15414         
15415 2005-01-06  Jackson Harper  <jackson@ximian.com>
15416
15417         * Theme.cs: Speed up getting pens and solid brushes, by using
15418         their ARGB as a hash instead of tostring and not calling Contains.
15419
15420 2005-01-06  Peter Bartok <pbartok@novell.com>
15421
15422         * Form.cs:
15423           - Implemented OnActivated and OnDeactivate event trigger
15424           - Implemented Activate() method
15425           - Fixed ShowDialog() to activate the form that was active before
15426             the dialog was shown
15427         * XplatUIX11.cs:
15428           - Added global active_window var that tracks the currently active
15429             X11 window
15430           - Now always grabs Property changes from the root window to always
15431             catch changes on the active window property
15432           - Added code to PropertyNotify handler to send Active/Inactive
15433             messages when state changes. This puts X11 and Win32 en par on
15434             WM_ACTIVATE notifications (except for double notifications when
15435             the user clicks away from our modal window to another one of our
15436             windows)
15437
15438 2005-01-05  Jackson Harper  <jackson@ximian.com>
15439
15440         * ImageList.cs: Implment ctor
15441
15442 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15443
15444         * XplatUIOSX.cs: Implement Activate/SetTopmost
15445
15446 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15447
15448         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
15449
15450 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
15451
15452         * XplatUIOSX.cs: Implement GetActive/SetFocus.
15453
15454 2005-01-05  Peter Bartok <pbartok@novell.com>
15455
15456         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
15457           XplatUIOSX.cs: Added GetActive method to return the currently
15458           active window for the application (or null, if none is active)
15459         * Form.cs:
15460           - Implemented ActiveForm
15461           - Commented out owner assignment for modal dialogs (causes problems
15462             on Win32, since the owner will be disabled)
15463           - Reworked some Active/Focus handling (still incomplete)
15464         * CommonDialog.cs: Commented out owner assignment for modal dialogs
15465           (causes problems on Win32, since the owner will be disabled)
15466         * IWin32Window: Added ComVisible attribute
15467
15468 2005-01-05  Peter Bartok <pbartok@novell.com>
15469
15470         * ToolTip.cs (WndProc): Enable setting focus now that we have the
15471           required XplatUI functions.
15472
15473 2005-01-05  Peter Bartok <pbartok@novell.com>
15474
15475         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
15476           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
15477           to implement focus and activation handling; still incomplete and
15478           with debug output
15479
15480 2005-01-04  Peter Bartok <pbartok@novell.com>
15481
15482         * TextBoxBase.cs: Changed access level for Document property to
15483           match switch to internal for TextControl
15484
15485 2005-01-04  Peter Bartok <pbartok@novell.com>
15486
15487         * AccessibleObject: Added ComVisible attribute
15488
15489 2005-01-04  Jackson Harper  <jackson@ximian.com>
15490
15491         * X11Keyboard.cs: Remove unneeded var.
15492
15493 2005-01-04  Jackson Harper  <jackson@ximian.com>
15494
15495         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
15496         but PAINT.
15497         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
15498         ClientMessage. This makes apps exit cleanly (more often).
15499         
15500 2005-01-04  Jackson Harper  <jackson@ximian.com>
15501
15502         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
15503         handling focus, return correct colors and fonts,
15504         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
15505         handle selection, horizontal scrolling, and mouse interaction.
15506
15507 2005-01-04  Peter Bartok <pbartok@novell.com>
15508
15509         * ICommandExecutor.cs: Added
15510         * IDataGridColumnStyleEditingNotificationService.cs: Added
15511         * IFeatureSupport.cs: Added
15512         * IFileReaderService.cs: Added
15513         * IDataObject.cs: Added ComVisible attribute
15514         * AmbientProperties.cs: Added
15515         * BaseCollection.cs: Added missing attributes
15516         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
15517         * BaseCollection.cs: Added missing attributes
15518         * Binding.cs: Added TypeConverter attribute
15519         * BindingContext.cs: Added DefaultEvent attribute
15520         * BindingsCollection.cs: Added DefaultEvent attribute
15521         * Button.cs: Added DefaultValue attribute
15522         * DragEventArgs.cs: Added ComVisible attribute
15523         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
15524         * KeyEventArgs.cs: Added ComVisible attribute
15525         * KeyPressEventArgs.cs: Added ComVisible attribute
15526         * MouseEventArgs.cs: Added ComVisible attribute
15527         * NavigateEventArgs.cs: Added
15528         * NavigateEventHandler.cs: Added
15529         * FeatureSupport.cs: Added
15530         * OSFeature.cs: Added
15531         * Theme.cs: Added abstract Version property to support OSFeature
15532         * ThemeWin32Classic.cs: Added Version property to
15533           support OSFeature.Themes
15534         * ProgressBar.cs: Removed OnPaintBackground override, not required since
15535           the proper styles to avoid background drawing are set, also doesn't
15536           match MS signature
15537         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
15538         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
15539         * ScrollEventArgs.cs: Added ComVisible attribute
15540         * SplitterEventArgs.cs: Added ComVisible attribute
15541         * AccessibleSelection.cs: Added Flags attribute
15542         * Appearance.cs: Added ComVisible attribute
15543         * Border3DSide.cs: Added ComVisible attribute
15544         * Border3DStyle.cs: Added ComVisible attribute
15545         * BorderStyle.cs: Added ComVisible attribute
15546         * DragAction.cs: Added ComVisible attribute
15547         * ErrorBlinkStyle.cs: Added
15548         * ScrollEventType.cs: Added ComVisible attribute
15549         * AnchorStyles.cs: Added Editor attribute
15550         * DockStyle.cs: Added Editor attribute
15551         * HorizontalAlignment.cs: Added ComVisible attribute
15552         * HelpEventArgs.cs: Added ComVisible attribute
15553         * PaintEventArgs.cs: Added IDisposable
15554
15555 2005-01-04  Peter Bartok <pbartok@novell.com>
15556
15557         * TextControl.cs: Switched Line, LineTag and Document classes to
15558           internal
15559
15560 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15561
15562         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
15563         Simple mode, fixes, IntegralHeight, etc.
15564
15565 2005-01-04  Peter Bartok <pbartok@novell.com>
15566
15567         * TextBoxBase.cs: Using proper font variable now
15568
15569 2005-01-04  Peter Bartok <pbartok@novell.com>
15570
15571         * Form.cs (ShowDialog): Set parent to owner, if provided
15572         * GroupBox.cs: Removed unused vars
15573         * TextControl.cs:
15574           - Added GetHashCode() for Document and LineTag classes
15575           - Removed unused variables
15576           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
15577             to allow translation between continuous char position and line/pos
15578         * CheckBox.cs: Removed vars that are provided by base class
15579         * RadioButton.cs: Removed vars that are provided by base class, added
15580           new keyword where required
15581         * LinkLabel.cs: Added new keyword where required
15582         * Control.cs (WndProc): Removed unused variable
15583         * TextBoxBase.cs:
15584           - Finished SelectionLength property
15585           - Implemented SelectionStart property
15586           - Implemented Text property
15587           - Removed unused vars
15588         * MessageBox.cs: Added new keyword where required
15589         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
15590           WndProc signature
15591         * MenuAPI.cs: Added new keyword where required
15592         * ButtonBase.cs: Removed vars that are provided by base class, added
15593           new keyword where required
15594         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
15595           argument to double, to allow compiling with csc 2.0 (Atsushi ran
15596           into this)
15597         * Application.cs (Run): Now triggers the ThreadExit event
15598         * CommonDialog.cs: Added new keyword where required; now properly sets
15599           parent (owner) for dialog
15600         * XplatUIX11.cs: Commented out unused vars
15601         * StatusBar.cs: Fixed signature for Text property
15602         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
15603
15604 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15605
15606         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
15607         TrackBar.cs, MonthCalendar.cs: remove unused vars
15608
15609 2005-01-03  Jackson Harper  <jackson@ximian.com>
15610
15611         * ThemeWin32Classic.cs:
15612         * X11Keyboard.cs: Remove unused vars.
15613
15614 2005-01-03  Peter Bartok  <pbartok@novell.com>
15615
15616         * TextBox.cs:
15617           - set_Text: Tied into TextControl
15618           - set_TextAlignment: Tied into TextControl
15619         * TextControl.cs:
15620           - Added alignment properties and implemented alignment handling
15621             and drawing (still has a bug, not generating proper expose events)
15622           - Added new Line() constructor to allow passing the line alignment
15623           - Fixed selection setting, properly handling end<start now
15624           - Added aligment considerations to RecalculateDocument()
15625         * TextBoxBase.cs:
15626           - Now properly enforces control height for single line controls
15627           - Added support for CharacterCasing
15628           - Added IsInputKey override
15629           - Fixed Keys.Enter logic
15630           - Added SetBoundsCore override
15631           - Fixed mouse selection handling
15632
15633 2005-01-03  Jackson Harper  <jackson@ximian.com>
15634
15635         * TreeView.cs:
15636           - Collapse and uncheck all nodes when CheckBoxes is disabled.
15637           - Checkboxes are always aligned to the bottom of the node,
15638           regardless of item height.
15639           - Use the node bounds to draw the text so we can center it when
15640           the item height is greater then the font height.
15641           - Node::Bounds are only the text part of the node.
15642         * TreeNode.cs: New method to combine collapsing and unchecking all
15643           nodes recursively.
15644
15645 2005-01-02  Jackson Harper  <jackson@ximian.com>
15646
15647         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
15648         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
15649         tree when a check is changed. TODO: Only refresh the checked node.
15650
15651 2004-12-30  Jackson Harper  <jackson@ximian.com>
15652
15653         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
15654         * TreeNode.cs: When collapsing make sure to never collapse the
15655         root node.
15656
15657 2004-12-29  Jackson Harper  <jackson@ximian.com>
15658
15659         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
15660         
15661 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
15662
15663         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
15664
15665 2004-12-28  Peter Bartok  <pbartok@novell.com>
15666
15667         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
15668           not yet assigned
15669
15670 2004-12-28  Peter Bartok  <pbartok@novell.com>
15671
15672         * Control.cs (WndProc): Added WM_HELP handler, now generates
15673           HelpRequested event
15674         * Form.cs: Added HelpButton property and required support code
15675         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
15676
15677 2004-12-28  Peter Bartok  <pbartok@novell.com>
15678
15679         * CommonDialog.cs:
15680           - Made DialogForm.owner variable internal
15681           - Added check to ensure owner form is set before setting
15682             owner properties in CreateParams
15683
15684 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
15685
15686         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
15687           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
15688           GetCursorPos.  Fix major visibility issues.  Rework the windowing
15689           system to support borderless/titleless windows (implements menus).
15690           Fix GetWindowPos.  Implement initial background color support for
15691           views.
15692
15693 2004-12-28  Peter Bartok  <pbartok@novell.com>
15694
15695         * Form.cs (get_CreateParams): Make sure we have an owner before using
15696           the owner variable. Implement proper default if no owner exists
15697
15698 2004-12-28  Peter Bartok  <pbartok@novell.com>
15699
15700         * In preparation for making Managed.Windows.Forms the default build target
15701           for System.Windows.Forms, the following stubbed files were added.
15702           Dialogs are currently being implemented by contributors and are only
15703           short-term place holders.
15704         * ColorDialog.cs: Initial check-in (minmal stub)
15705         * DataGrid.cs: Initial check-in (minimal stub)
15706         * DataGridLineStyle.cs: Initial check-in (minimal stub)
15707         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
15708         * DataGridTableStyle.cs: Initial check-in (minimal stub)
15709         * FontDialog.cs: Initial check-in (minimal stub)
15710         * FileDialog.cs: Initial check-in (minimal stub)
15711         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
15712         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
15713         * OpenFileDialog: Initial check-in (minimal stub)
15714         * IComponentEditorPageSite.cs: Initial check-in
15715         * Splitter.cs: Initial check-in (for Jackson)
15716         * SplitterEventArgs.cs: Initial check-in (for Jackson)
15717         * SplitterEventHandler.cs: Initial check-in (for Jackson)
15718         * TextBox.cs: Initial check-in; still needs some wiring to
15719           TextControl backend
15720         * Form.cs: Implemented ControlBox property
15721         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
15722         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
15723         * TextControl.cs: Added selection functionality; added todo header
15724         * TextBoxBase.cs:
15725           - Implemented Lines property
15726           - Implemented TextHeight property
15727           - Implemented SelectedText property
15728           - Implemented SelectionLength property
15729           - Implemented SelectAll method
15730           - Implemented ToString method
15731           - Removed and cleaned up some debug code
15732           - Implemented (still buggy) mouse text selection
15733
15734 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
15735
15736         * ComboBox.cs: Complete DropDownList implementation, fixes.
15737
15738 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
15739
15740         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
15741         * ComboBoxStyle.cs: ComboBoxStyle enum
15742         * ComboBox.cs: Initial work on ComboBox control
15743
15744 2004-12-21  Peter Bartok  <pbartok@novell.com>
15745
15746         * Control.cs (ctor, CreateParams): Moved setting of is_visible
15747           forward so that anything that creates a window gets the default,
15748           also no longer uses Visible property in CreateParams to avoid
15749           walking up the parent chain and possibly get the wrong visible
15750           status. Fixed IsVisible to no longer walk up to the parent.
15751
15752 2004-12-21  Peter Bartok  <pbartok@novell.com>
15753
15754         * Form.cs (ShowDialog): Unset modality for the proper window
15755  
15756 2004-12-20  Peter Bartok  <pbartok@novell.com>
15757
15758         * CommonDialog.cs: Initial check-in
15759
15760 2004-12-20  Peter Bartok  <pbartok@novell.com>
15761
15762         * Control.cs (Visible): Now uses the parent window instead of the
15763           client area window for the property
15764
15765         * Form.cs
15766           - ShowDialog(): Now uses the proper window for modality
15767           - The default visibility state for the form parent is now false. This
15768             will prevent the user from seeing all the changes to the form and
15769             its controls before the application hits Application.Run()
15770           - Removed some stale commented out code
15771
15772         * NativeWindow.cs:
15773           - Added FindWindow() method to have a method to check for existence
15774             of a window handle
15775           - Added ability to override default exception handling (for example
15776             when debugging with VS.Net; to do this the ExternalExceptionHandler
15777             define must be set
15778           - Removed some useless debug output
15779
15780         * XplatUIX11.cs:
15781           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
15782             not working as expected
15783           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
15784             property to allow switching back to the modal window if focus is
15785             given to another one of our windows (Application Modal)
15786           - Now only sets override_redirect if we create a window
15787             without WS_CAPTION
15788           - Moved EventMask selection before mapping of newly created window
15789             so we can catch the map event as well
15790           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
15791           - Added various Atom related DllImports
15792           - Implemented Exit() method
15793           - .ctor() : No longer shows window if WS_VISIBLE is not defined
15794             in the CreateParams
15795
15796         * MessageBox.cs: Now properly deals with the FormParent window by
15797           providing an override the FormParent CreateParams property to
15798           set as POPUP instead of OVERLAPPED window.
15799
15800 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15801
15802         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
15803         Minor code cleanup.
15804
15805 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15806         
15807         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
15808
15809 2004-12-18  Peter Bartok  <pbartok@novell.com>
15810
15811         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
15812           implementing SetModal() method
15813
15814 2004-12-18  Peter Bartok  <pbartok@novell.com>
15815
15816         * X11Structs.cs (XGCValues): Fixed type of function element
15817         * XplatUI.cs: Added ScrollWindow() method
15818         * XplatUIDriver.cs: Added ScrollWindow() abstract
15819         * XplatUIWin32.cs: Implemented ScrollWindow() method
15820         * XplatUIX11.cs: Implemented ScrollWindow() method
15821         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
15822
15823 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15824
15825         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
15826         Some more keyboard support (INCOMPLETE)
15827
15828 2004-12-17  Peter Bartok  <pbartok@novell.com>
15829
15830         * TextControl.cs:
15831         - Added color attribute to line tags.
15832         - Added color argument to all functions dealing with tags
15833         - Added color argument support to various functions
15834         - Fixed miss-calculation of baseline/shift in certain circumstances
15835
15836         * TextBoxBase.cs: Added new color option to test code
15837
15838 2004-12-17  Jackson Harper  <jackson@ximian.com>
15839
15840         * TreeNode.cs:
15841         * MonthCalendar.cs: Signature fixes
15842
15843 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15844
15845         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
15846         keyboard event moved it.  Create a new graphics context for each paint resolves this
15847
15848 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15849
15850         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
15851         Make caret exist and go blink blink.  Initial keyboard support.
15852         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
15853         works.
15854
15855 2004-12-17  Jackson Harper  <jackson@ximian.com>
15856
15857         * XplatUIStructs.cs: Updated set of virtual keycodes.
15858         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
15859
15860 2004-12-17  Jackson Harper  <jackson@ximian.com>
15861
15862         * XplatUIX11.cs: Prune old keyboard code.
15863
15864 2004-12-17  Jackson Harper  <jackson@ximian.com>
15865
15866         * XplatUIX11.cs: When generating mouse wparams get the modifier
15867         keys from the ModifierKeys property.
15868
15869 2004-12-17  Jackson Harper  <jackson@ximian.com>
15870
15871         * X11Keyboard.cs: Send up/down input when generating
15872         messages. Remove some unused vars.
15873
15874 2004-12-17  Jackson Harper  <jackson@ximian.com>
15875
15876         * TabControl.cs:
15877         * TreeView.cs: get rid of warnings.
15878
15879 2004-12-17  Jackson Harper  <jackson@ximian.com>
15880
15881         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
15882
15883 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
15884
15885         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
15886           CheckedListBox.cs: Implementation
15887
15888 2004-12-17  Peter Bartok  <pbartok@novell.com>
15889
15890         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
15891
15892 2004-12-16  Peter Bartok  <pbartok@novell.com>
15893
15894         * TextControl.cs:
15895           - InsertCharAtCaret(): Fixed start pos fixup
15896           - CaretLine_get: No longer derives the line from the tag, the tag
15897             could be stale if lines in the document have been added or deleted
15898           - RebalanceAfterDelete(): Fixed bug in balancing code
15899           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
15900           - Line.Streamline(): Now can also elminate leading empty tags
15901           - DumpTree(): Added a few more tests and prevented exception on
15902             uninitialized data
15903           - Added Debug section for Combining lines
15904           - Delete(): Now copies all remaining properties of a line
15905           
15906         * TextBoxBase.cs:
15907           - Left mousebutton now sets the caret (and middle button still acts
15908             as formatting tester, which must go away soon)
15909           - Added Debug section for Deleting/Combining lines
15910           - Fixed calculations for UpdateView after Combining lines
15911
15912 2004-12-16  Peter Bartok  <pbartok@novell.com>
15913
15914         * TextControl.cs: Now properly aligns text on a baseline, using the
15915           new XplatUI.GetFontMetrics() method. Simplified several calculations
15916         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
15917           defined
15918
15919 2004-12-16  Peter Bartok  <pbartok@novell.com>
15920
15921         * XplatUI.cs: Added GetFontMetrics() method
15922         * XplatUIDriver.cs: Added GetFontMetrics() abstract
15923         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
15924           into libgdiplus, our private GetFontMetrics function
15925         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
15926         * XplatUIWin32.cs: Implemented GetFontMetrics() method
15927
15928 2004-12-16  Jackson Harper  <jackson@ximain.com>
15929
15930         * XplatUIStruct.cs: Add enum for dead keys
15931         * X11Keyboard.cs: Map and unmap dead keys.
15932
15933 2004-12-16  Jackson Harper  <jackson@ximian.com>
15934
15935         * X11Keyboard.cs: Detect and use the num lock mask.
15936
15937 2004-12-16  Peter Bartok  <pbartok@novell.com>
15938
15939         * Control.cs (CreateGraphics): Added check to make sure the
15940           handle of the window exists before calling Graphics.FromHwnd()
15941
15942 2004-12-16  Peter Bartok  <pbartok@novell.com>
15943
15944         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
15945           contains a lot of code that's not supposed to be there for the
15946           real thing, but required for developing/testing the textbox
15947           backend.
15948
15949 2004-12-16  Peter Bartok  <pbartok@novell.com>
15950
15951         * TextControl.cs:
15952         - Fixed Streamline method
15953         - Added FindTag method to Line
15954         - Added DumpTree method for debugging
15955         - Added DecrementLines() method for deleting lines
15956         - Fixed UpdateView to update the cursor to end-of-line on single-line
15957           updates
15958         - Added PositionCaret() method
15959         - Fixed MoveCaret(LineDown) to move into the last line, too
15960         - Added InsertChar overload
15961         - Fixed InsertChar tag offset calculations
15962         - Added DeleteChar() method
15963         - Added Combine() method for folding lines
15964         - Fixed Delete() method, no longer allocates wasted Line object and
15965           now copies all properties when swapping nodes
15966         - Delete() method now updates document line counter
15967
15968 2004-12-15  Jackson Harper  <jackson@ximian.com>
15969
15970         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
15971         * X11Keyboard.cs: Expose the currently selected modifier keys
15972         through a property.
15973
15974 2004-12-15  Peter Bartok  <pbartok@novell.com>
15975
15976         * TextControl.cs: Initial check-in. Still incomplete
15977
15978 2004-12-15  Jackson Harper  <jackson@ximian.com>
15979
15980         * TreeNode.cs:
15981         * TreeView.cs: Fix build on csc (second time today ;-))
15982
15983 2004-12-15  Jackson Harper  <jackson@ximian.com>
15984
15985         * TreeView.cs: Store the treenodes plus/minus box bounds when it
15986         is calculated and use this for click testing.
15987         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
15988
15989 2004-12-15  Jackson Harper  <jackson@ximian.com>
15990
15991         * TreeView.cs: Pass the nodes image index to the image list when
15992         drawing that image.
15993
15994 2004-12-15  Jackson Harper  <jackson@ximian.com>
15995
15996         * X11Keyboard.cs: Set messages hwnd.
15997         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
15998         post_message calls.
15999
16000 2004-12-15  Jackson Harper  <jackson@ximian.com>
16001
16002         * X11Keyboard.cs: Fix to compile with csc.
16003         
16004 2004-12-15  Jackson Harper  <jackson@ximian.com>
16005
16006         * X11Structs.cs: Add key mask values
16007         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
16008         * X11Keyboard.cs: New file - Extrapolates and interpolates key
16009         down/up foo into WM_CHAR foo
16010         * KeyboardLayouts.cs: Common keyboard layouts
16011         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
16012         post messages into the main queue.
16013
16014 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
16015
16016         * Button.cs: implement ProcessMnemonic
16017         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
16018           brushes everytime
16019         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
16020         * ButtonBase.cs: Show HotkeyPrefix (not the &)
16021
16022 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
16023         
16024         * MonthCalendar.cs: Implemented click-hold for next/previous month
16025           and date selection
16026           
16027 2004-12-11  Peter Bartok  <pbartok@novell.com>
16028
16029         * X11Structs.cs:
16030           - Added XKeyboardState (moved from XplatUIX11.cs)
16031           - Added XCreateGC related enums and structures
16032           - Added GXFunction for XSetFunction
16033
16034         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
16035
16036         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
16037           CaretVisible() calls
16038
16039         * ToolTip.cs: Added code to prevent stealing focus from app windows
16040
16041         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
16042           DestroyCaret, SetCaretPos and CaretVisible)
16043
16044         * XplatUIX11.cs:
16045           - Added implementation for caret functions
16046           - Moved hover variables into a struct, to make it a bit easier
16047             on the eyes and to debug
16048           - Removed XKeyboardState (moved to XplatUIX11.cs)
16049           - Moved Keyboard properties into the properties region
16050
16051         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
16052           call to get a graphics context for our control
16053
16054         * XplatUIOSX.cs: Added empty overrides for the new caret functions
16055
16056         * TreeView.cs: Fixed bug. No matter what color was set it would always
16057           return SystemColors.Window
16058
16059         * XplatUIWin32.cs: Implemented caret overrides
16060
16061 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
16062
16063         * ListBox.cs: fire events, implement missing methods and properties,
16064         sorting.
16065
16066 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
16067
16068         * MonthCalendar.cs: invalidation bug fixing
16069         * ThemeWin32Classic.cs: paint fixing
16070
16071 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
16072
16073         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
16074         prepare the CGContextRef there now.
16075
16076 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
16077
16078         * MonthCalendar.cs:
16079           - optimisationL only invalidate areas that have changed
16080         * ThemeWin32Classic.cs:
16081           - only paint parts that intersect with clip_area
16082
16083 2004-12-09  Peter Bartok  <pbartok@novell.com>
16084
16085         * Application.cs: Undid changes from r37004 which cause problems
16086         on X11
16087
16088 2004-12-09  Ravindra  <rkumar@novell.com>
16089
16090         * ToolBar.cs: Added support for displaying ContextMenu
16091         attached to a button on ToolBar.
16092         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
16093         property.
16094
16095 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16096
16097         * Label.cs: autosize works in text change and removes unnecessary
16098         invalidate
16099
16100 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
16101
16102         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
16103         remove warnings
16104
16105 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
16106
16107         * XplatUIOSX.cs: Added mouse move/click/grab support
16108         Remove some debugging WriteLines not needed anymore.
16109         Add window resizing/positioning.
16110         Fix visibility on reparenting.
16111
16112 2004-12-08  Peter Bartok  <pbartok@novell.com>
16113
16114         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
16115
16116 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
16117
16118         * XplatUIOSX.cs: Initial checkin
16119         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
16120
16121 2004-12-03  Ravindra <rkumar@novell.com>
16122
16123         * ListView.cs: Added some keybindings and fixed scrolling.
16124         ScrollBars listen to ValueChanged event instead of Scroll
16125         Event. This would let us take care of all changes being
16126         done in the scrollbars' values programmatically or manually.
16127         * ListView.cs (CanMultiselect): Added a check for shift key.
16128         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
16129         * ListViewItem.cs (Clone): Fixed. We need to make a copy
16130         of ListViewSubItemCollection as well.
16131
16132 2004-12-06  Peter Bartok <pbartok@novell.com>
16133
16134         * Control.cs (Parent): Added check and exception to prevent
16135         circular parenting
16136
16137 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
16138
16139         * ListBox.cs: implemented clipping, selection single and multiple,
16140         bug fixing
16141
16142 2004-12-03  Ravindra <rkumar@novell.com>
16143
16144         * ListView.cs (ListView_KeyDown):
16145         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
16146         when CTRL key is pressed.
16147         * ListViewItem.cs (Selected): Fixed setting the property.
16148
16149 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16150
16151         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
16152
16153         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
16154         MinimizeBox, ShowInTaskbar, TopMost properties.
16155
16156         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
16157         will be implemented).
16158
16159 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
16160
16161         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
16162
16163         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
16164         tests.
16165         
16166         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
16167         
16168         * TreeView.cs: BackColor is Colors.Window.
16169
16170 2004-12-01  Jackson Harper  <jackson@ximian.com>
16171
16172         * TreeView.cs: When resizing the tree if the user is making it
16173         smaller we don't get expose events, so we need to handle adding
16174         the horizontal scrollbar in the size changed handler as well as
16175         the expose handler.
16176
16177 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
16178
16179         * DrawItemState.cs: fixes wrong enum values
16180
16181 2004-12-01  Jackson Harper  <jackson@ximian.com>
16182
16183         * TreeView.cs: Resize the hbar as well as the vbar on resize.
16184
16185 2004-12-01  Jackson Harper  <jackson@ximian.com>
16186
16187         * NodeLabelEditEventArgs.cs:
16188         * NodeLabelEditEventHandler.cs:
16189         * OpenTreeNodeEnumerator.cs:
16190         * TreeNode.cs:
16191         * TreeNodeCollection.cs:
16192         * TreeView.cs:
16193         * TreeViewAction.cs:
16194         * TreeViewCancelEventArgs.cs:
16195         * TreeViewCancelEventHandler.cs:
16196         * TreeViewEventArgs.cs:
16197         * TreeViewEventHandler.cs: Initial implementation.
16198
16199 2004-12-01  Ravindra <rkumar@novell.com>
16200
16201         * ListView.cs (CalculateListView): Fixed scrolling related
16202         calculations. Also, removed some debug statements from other
16203         places.
16204         * ListViewItem.cs: Changed access to 'selected' instance variable
16205         from private to internal.
16206         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
16207
16208 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
16209
16210         * ThemeWin32Classic.cs: remove cache of brush and pens for
16211         specific controls and use the global system, fixes scrollbutton
16212         bugs (for small sizes, disabled, etc)
16213         
16214         * ScrollBar.cs: does not show the thumb for very small controls
16215         (as MS) and allow smaller buttons that the regular size
16216
16217 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
16218
16219         * UpDownBase.cs: Add abstract methods for the interface.
16220         Add new virtual methods (need to be hooked up to TextEntry when it
16221         exists).
16222         Add override methods for most features.
16223         Computes the size, forces the height of the text entry.
16224
16225         * NumericUpDown.cs: Put here the current testing code.
16226
16227         * Set eol-style property on all files that do not have mixed line
16228         endings, to minimize the future problems.  There are still a few
16229         files with mixed endings, and someone should choose whether they
16230         want to move it or not.
16231
16232 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
16233
16234         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
16235         System.Colors
16236         
16237 2004-11-30  Ravindra <rkumar@novell.com>
16238
16239         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
16240         drawing and replaced use of SystemColors by theme colors.
16241         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
16242         * ListView.cs (ListViewItemCollection.Add): Throw exception when
16243         same ListViewItem is being added more than once.
16244
16245 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
16246
16247         * MonthCalendar.cs:
16248           - ControlStyles love to make the control not flicker
16249           
16250 2004-11-30  Peter Bartok  <pbartok@novell.com>
16251
16252         * CharacterCasing.cs: Added
16253
16254 2004-11-29  Peter Bartok  <pbartok@novell.com>
16255
16256         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16257           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
16258           I am removing these files as they conflict with already completed
16259           work. While it is fantastic to get contributions to MWF, I
16260           respectfully ask that everyone please coordinate their contributions
16261           through mono-winforms-list or #mono-winforms at this time. We're
16262           explicitly avoiding stubbing and don't want controls that don't have
16263           their basic functionality implemented in svn. Please also see
16264           http://www.mono-project.com/contributing/winforms.html
16265
16266
16267 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
16268
16269         * Application.cs (ModalRun): Don't hang after exit.
16270
16271         * Theme.cs: New TreeViewDefaultSize property.
16272
16273         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
16274         with less hardcoded SystemColors constant.
16275         Implemented TreeViewDefaultSize.
16276
16277         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
16278         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
16279
16280
16281 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
16282
16283         * MonthCalendar.cs:
16284           - Fix NextMonthDate and PrevMonthDate click moving calendar
16285
16286 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16287
16288         * MonthCalendar.cs:
16289           - Fix usage of ScrollChange Property when scrolling months
16290
16291 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
16292
16293         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
16294          - Fixes menu destroying
16295          - Support adding and removing items on already created menus
16296
16297 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
16298
16299         * MonthCalendar.cs:
16300           - Re-worked all bolded dates handling to match win32
16301         * ThemeWin32Classic.cs:
16302           - Fixed rendering with bolded dates
16303
16304 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
16305
16306         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
16307         - Horizontal scroolbar
16308         - Multicolumn
16309         - Fixes
16310
16311
16312 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
16313
16314         * MonthCalendar.cs:
16315           - Fix Usage of MaxSelectionCount from SelectionRange
16316           - Fixed Shift + Cursor Selection
16317           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
16318           - Fixed normal cursor selection to be compat with win32
16319           - Fixed Shift + Mouse Click selection
16320
16321 2004-11-24  Peter Bartok <pbartok@novell.com>
16322
16323         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
16324         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
16325         * XplatUIX11.cs:
16326           - CreatedKeyBoardMsg now updates keystate with Alt key
16327           - Added workaround for timer crash to CheckTimers, Jackson will
16328             develop a proper fix and check in later
16329           - Implemented DispatchMessage
16330           - Removed calling the native window proc from GetMessage (call
16331             now moved to DispatchMessage)
16332
16333         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
16334           the keydata (Fixes bug #69831)
16335
16336         * XplatUIWin32.cs:
16337           - (DispatchMessage): Switched to return IntPtr
16338           - Added DllImport for SetFocus
16339
16340 2004-11-24  Ravindra <rkumar@novell.com>
16341
16342         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
16343         background drawing.
16344         * ListViewItem.cs: Fixed various properties, calculations
16345         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
16346         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
16347         and some internal properties. Fixed MouseDown handler and Paint
16348         method.
16349
16350 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16351
16352         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
16353
16354 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16355
16356         * ContainerControl.cs: correct accidental check in of local changes
16357
16358 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
16359
16360         * ThemeWin32Classic.cs:
16361                 - Fixed Drawing Last month in grid (sometimes not showing)
16362         * MonthCalendar.cs:
16363                 - Fixed title width calculation bug (makeing title small)
16364
16365 2004-11-23  Peter Bartok <pbartok@novell.com>
16366
16367         * XplatUIX11.cs:
16368           - Added generation of WM_MOUSEHOVER event
16369           - Added missing assignment of async_method atom
16370           - Fixed WM_ERASEBKGND; now only redraws the exposed area
16371
16372 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16373
16374         * ThemeWin32Classic.cs:
16375                 - Fixed Drawing of today circle when showtodaycircle not set
16376                 - fixed drawing of first and last month in the grid (gay dates)
16377         * MonthCalendar.cs:
16378                 - Fixed Drawing of today circle
16379                 - Fixed drawing of grady dates
16380                 - Fixed HitTest for today link when ShowToday set to false
16381                 - Fixed DefaultSize to obey ShowToday
16382
16383 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
16384
16385         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
16386         * System.Windows.Forms/Theme.cs
16387         * MonthCalendar.cs: added for MonthCalendar
16388         * SelectionRange.cs: added for MonthCalendar
16389         * Day.cs: added for MonthCalendar: added for MonthCalendar
16390         * DateRangeEventArgs.cs: added for MonthCalendar
16391         * DateRangeEventHandler.cs: added for MonthCalendar
16392
16393 2004-11-22  Ravindra <rkumar@novell.com>
16394
16395         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
16396         property.
16397
16398 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
16399
16400         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
16401         event handler.
16402         
16403         * NumericUpDown.cs: Added new implementation.
16404         * UpDownBase.cs: Added new implementation.
16405
16406         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
16407         implementations.
16408         
16409         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
16410         implementations.
16411
16412         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
16413         methods.
16414
16415 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
16416
16417         * Timer.cs  (Dispose): Should call the base dispose when
16418         overriding.
16419
16420 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16421
16422         * ScrollBar.cs: updates thumb position when max, min or increment
16423         is changed
16424
16425 2004-11-21  Ravindra <rkumar@novell.com>
16426
16427         * ListView.cs: Implemented item selection, activation and
16428         column header style. Fixed properties to do a redraw, if
16429         required. Added support for MouseHover, DoubleClick, KeyDown
16430         and KeyUp event handling and some minor fixes.
16431         * ListViewItem.cs: Fixed constructor.
16432         * ThemeWin32Classic.cs: Improved drawing for ListView.
16433
16434 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
16435
16436         * ThemeWin32Classic.cs: initial listbox drawing code
16437         * DrawMode.cs: new enumerator
16438         * ListControl.cs: stubbed class
16439         * ListBox.cs: initial implementation
16440         * Theme.cs: new methods definitions
16441         * SelectionMode.cs: new enumerator
16442
16443 2004-11-17  Peter Bartok  <pbartok@novell.com>
16444
16445         * XplatUIWin32.cs: Added double-click events to the class style
16446         * Control.cs (WndProc):
16447           - Added handling of click-count to MouseDown/ MouseUp events.
16448           - Added handling of middle and right mouse buttons
16449           - Removed old debug code
16450
16451 2004-11-17  Jackson Harper  <jackson@ximian.com>
16452
16453         * XplatUIX11.cs: Use the new Mono.Unix namespace.
16454
16455 2004-11-17  Ravindra <rkumar@novell.com>
16456
16457         * ListView.cs: Added event handling for MouseMove/Up/Down.
16458         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
16459         * ThemeWin32Classic.cs: We need to clear the graphics context and
16460         draw column header in a proper state.
16461
16462
16463 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
16464
16465         *  Menu.cs: fixes signature
16466
16467 2004-11-16  Peter Bartok  <pbartok@novell.com>
16468
16469         * XplatUIX11.cs (GetMessage): Implemented generation of
16470           double click mouse messages
16471
16472 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
16473
16474         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
16475         not by menu
16476
16477 2004-11-11  Peter Bartok  <pbartok@novell.com>
16478
16479         * HandleData.cs: Added Visible property
16480         * XplatUIX11.cs (IsVisible): Now uses Visible property from
16481           HandleData
16482         * XplatUIX11.cs: Removed old debug leftovers
16483         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
16484         * Control.cs (WndProc): Removed old debug leftovers,
16485           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
16486           needed WM_SIZE handling
16487
16488 2004-11-11  Jackson Harper  <jackson@ximian.com>
16489
16490         * OwnerDrawPropertyBag.cs:
16491         * TreeViewImageIndexConverter.cs: Initial implementation
16492
16493 2004-11-10  Jackson Harper  <jackson@ximian.com>
16494
16495         * ThemeWin32Classic.cs:
16496         * TabControl.cs: instead of moving tabs by the slider pos just
16497         start drawing at the tab that is offset by the slider. This way
16498         scrolling always moves by exactly one tab.
16499
16500 2004-11-10  Jackson Harper  <jackson@ximian.com>
16501
16502         * TabControl.cs: You can only scroll left when the slider has
16503         already ben moved right.
16504         
16505 2004-11-10  Jackson Harper  <jackson@ximian.com>
16506
16507         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
16508         the clip area.
16509         
16510 2004-11-10  Jackson Harper  <jackson@ximian.com>
16511
16512         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
16513         clip area.
16514         
16515 2004-11-09  Jackson Harper  <jackson@ximian.com>
16516
16517         * TabControl.cs (CalcXPos): New helper method so we can determine
16518         the proper place to start drawing vertical tabs.
16519         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
16520         
16521 2004-11-09  Jackson Harper  <jackson@ximian.com>
16522
16523         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
16524         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
16525         and Bottom, left and right are illegal values for this and
16526         multiline is enabled when the alignment is set to left or right.
16527         (DrawTab): Each alignment block should draw the text itself now
16528         because Left requires special love. Also add rendering for Left
16529         aligned tabs.
16530         
16531 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
16532
16533         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
16534         does not destroy the windows, removes debugging messages
16535
16536 2004-11-09  jba  <jba-mono@optusnet.com.au>
16537
16538         * ThemeWin32Classic.cs
16539         (DrawButtonBase): Fix verticle text rect clipping in windows
16540         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16541         rendering and incorrect text rect clipping
16542         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16543         rendering and incorrect text rect clipping
16544         
16545 2004-11-08  Jackson Harper  <jackson@ximian.com>
16546
16547         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
16548         bottom when they are bottom aligned so the bottoms of the tabs get
16549         displayed.
16550         * TabControl.cs (DropRow): Move rows up instead of down when the
16551         tab control is bottom aligned.
16552
16553 2004-11-08 13:59  pbartok
16554
16555         * XplatUIX11.cs:
16556           - Added handling for various window styles
16557           - Added handling for popup windows
16558           - Added SetTopmost handling
16559
16560 2004-11-08 13:55  pbartok
16561
16562         * XplatUIWin32.cs:
16563           - Added argument to SetTopmost method
16564           - Fixed broken ClientToScreen function
16565
16566 2004-11-08 13:53  pbartok
16567
16568         * XplatUIStructs.cs:
16569           - Added missing WS_EX styles
16570
16571 2004-11-08 13:53  pbartok
16572
16573         * XplatUI.cs, XplatUIDriver.cs:
16574           - Added argument to SetTopmost
16575
16576 2004-11-08 13:52  pbartok
16577
16578         * X11Structs.cs:
16579           - Added XSetWindowAttributes structure
16580           - Improved XWindowAttributes structure
16581           - Added SetWindowValuemask enum
16582           - Added window creation arguments enum
16583           - Added gravity enum
16584           - Added Motif hints structure
16585           - Added various Motif flags and enums
16586           - Added PropertyMode enum for property functions
16587
16588 2004-11-08 13:50  pbartok
16589
16590         * Form.cs:
16591           - Fixed arguments for updated SetTopmost method
16592
16593 2004-11-08 13:49  pbartok
16594
16595         * ToolTip.cs:
16596           - Fixed arguments for updated SetTopmost function
16597           - Fixed usage of PointToClient
16598
16599 2004-11-08 13:44  pbartok
16600
16601         * MenuAPI.cs:
16602           - Added Clipping of children and siblings
16603
16604 2004-11-08 13:41  pbartok
16605
16606         * MainMenu.cs:
16607           - Removed SetMenuBarWindow call. We do this in Form.cs
16608
16609 2004-11-08 13:40  jackson
16610
16611         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
16612           scrolling jimmi in the correct location with bottom aligned tabs
16613
16614 2004-11-08 13:36  pbartok
16615
16616         * ContainerControl.cs:
16617           - Implemented BindingContext
16618           - Implemented ParentForm
16619
16620 2004-11-08 12:46  jackson
16621
16622         * TabControl.cs: Put bottom rendered tabs in the right location
16623
16624 2004-11-08 07:15  jordi
16625
16626         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
16627           removes dead code
16628
16629 2004-11-05 17:30  jackson
16630
16631         * TabControl.cs: When selected tabs are expanded make sure they
16632           don't go beyond the edges of the tab control
16633
16634 2004-11-05 14:57  jackson
16635
16636         * TabControl.cs: Reset show_slider so if the control is resized to
16637           a size where it is no longer needed it's not displayed anymore
16638
16639 2004-11-05 13:16  jackson
16640
16641         * TabControl.cs: Make tab pages non visible when added to the
16642           control
16643
16644 2004-11-05 12:42  jackson
16645
16646         * TabControl.cs: Implement SizeMode.FillToRight
16647
16648 2004-11-05 12:16  jackson
16649
16650         * Control.cs: Do not call CreateHandle if the handle is already
16651           created
16652
16653 2004-11-05 11:46  jackson
16654
16655         * TabControl.cs: Remove superflous call to CalcTabRows
16656
16657 2004-11-05 09:07  jackson
16658
16659         * XplatUIX11.cs: Update for Mono.Posix changes
16660
16661 2004-11-05 07:00  ravindra
16662
16663         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
16664           scrolling.
16665
16666 2004-11-04 22:47  jba
16667
16668         * ThemeWin32Classic.cs:
16669           - Fix Button rendering for FlatStyle = Flat or Popup
16670           - Fix RadioButton and CheckBox rendering when Appearance = Button
16671             (normal and flatstyle).
16672           - Correct outer rectangle color when drawing focus rectangle
16673           - Adjust button bounds to be 1 px smaller when focused
16674           - Make button not draw sunken 3d border when pushed (windows compat)
16675           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
16676           - Offset the text in RadioButton and Checkbox when being rendered as
16677           a button.
16678           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
16679           radiobuttons
16680           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
16681           - Fixed disabled text rendering for normally rendered radiobuttons
16682
16683 2004-11-04 10:26  jackson
16684
16685         * TabControl.cs: Recalculate tab rows when resizing
16686
16687 2004-11-04 07:47  jordi
16688
16689         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
16690           collection completion, drawing issues, missing features
16691
16692 2004-11-04 05:03  ravindra
16693
16694         * ScrollBar.cs:
16695                 - We need to recalculate the Thumb area when
16696                 LargeChange/maximum/minimum values are changed.
16697           - We set the 'pos' in UpdatePos() method to minimum, if it's less
16698                 than minimum. This is required to handle the case if large_change is
16699                 more than max, and use LargeChange property instead of large_change
16700                 variable.
16701           - We return max+1 when large_change is more than max, like MS does.
16702
16703 2004-11-04 04:29  ravindra
16704
16705         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
16706                 - Changed default value signatures (prefixed all with ListView).
16707                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
16708                 ListView.
16709           - Fixed calculations for ListViewItem and implemented Clone()
16710           method.
16711
16712 2004-11-04 04:26  ravindra
16713
16714         * Theme.cs, ThemeWin32Classic.cs:
16715                 - Changed default ListView values signatures (prefixed all with
16716                 ListView).
16717           - Fixed default size values for VScrollBar and HScrollBar.
16718                 - Fixed DrawListViewItem method.
16719
16720 2004-11-04 04:05  ravindra
16721
16722         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
16723
16724 2004-11-04 04:04  ravindra
16725
16726         * ImageList.cs: Implemented the missing overload for Draw method.
16727
16728 2004-11-03 19:29  jackson
16729
16730         * TabControl.cs: Handle dropping rows on selection properly
16731
16732 2004-11-03 11:59  jackson
16733
16734         * TabControl.cs: remove debug code
16735
16736 2004-11-03 11:52  jackson
16737
16738         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
16739           the scrolly widgerywoo
16740
16741 2004-11-02 13:52  jackson
16742
16743         * TabControl.cs: Resize the tab pages and tabs when the tab control
16744           is resized
16745
16746 2004-11-02 13:40  jackson
16747
16748         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
16749           selected tab to the bottom
16750
16751 2004-11-02 13:39  jackson
16752
16753         * TabPage.cs: Store the tab pages row
16754
16755 2004-11-02 12:33  jordi
16756
16757         * MenuItem.cs: fixes handle creation
16758
16759 2004-11-02 11:42  jackson
16760
16761         * TabControl.cs: signature fix
16762
16763 2004-11-02 08:56  jackson
16764
16765         * TabControl.cs: Calculate whether the tab is on an edge properly.
16766           Remove top secret debugging code
16767
16768 2004-11-01 19:57  jackson
16769
16770         * TabControl.cs: Add click handling, and proper sizing
16771
16772 2004-11-01 19:47  jackson
16773
16774         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
16775           tab controls
16776
16777 2004-11-01 19:39  jackson
16778
16779         * TabPage.cs: add internal property to store the bounds of a tab
16780           page
16781
16782 2004-10-30 04:23  ravindra
16783
16784         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
16785           values.
16786
16787 2004-10-30 04:21  ravindra
16788
16789         * ListView.cs, ListViewItem.cs: Added support for scrolling and
16790           fixed calculations.
16791
16792 2004-10-30 03:06  pbartok
16793
16794         * XplatUIX11.cs:
16795           - Removed extension of DllImported libs
16796
16797 2004-10-29 09:55  jordi
16798
16799         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
16800           navigation, itemcollection completion, menu fixes
16801
16802 2004-10-27 22:58  pbartok
16803
16804         * XplatUIX11.cs:
16805           - Now throws a nice error message when no X display could be opened
16806
16807 2004-10-26 13:51  jordi
16808
16809         * ListView.cs: removes warning
16810
16811 2004-10-26 03:55  ravindra
16812
16813         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
16814           ThemeWin32Classic.cs: Some formatting for my last checkins.
16815
16816 2004-10-26 03:36  ravindra
16817
16818         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
16819           control and default values.
16820
16821 2004-10-26 03:35  ravindra
16822
16823         * Theme.cs: Added some default values for ListView control.
16824
16825 2004-10-26 03:33  ravindra
16826
16827         * ToolBar.cs: ToolBar should use the user specified button size, if
16828           there is any. Added a size_specified flag for the same.
16829
16830 2004-10-26 03:33  ravindra
16831
16832         * ColumnHeader.cs: Added some internal members and calculations for
16833           ColumnHeader.
16834
16835 2004-10-26 03:32  ravindra
16836
16837         * ListViewItem.cs: Calculations for ListViewItem.
16838
16839 2004-10-26 03:31  ravindra
16840
16841         * ListView.cs: Added some internal members and calculations for
16842           ListView.
16843
16844 2004-10-22 13:31  jordi
16845
16846         * MenuAPI.cs: speedup menus drawing
16847
16848 2004-10-22 13:16  jackson
16849
16850         * XplatUIX11.cs: Make sure to update exposed regions when adding an
16851           expose event
16852
16853 2004-10-22 11:49  jackson
16854
16855         * Control.cs: oops
16856
16857 2004-10-22 11:41  jackson
16858
16859         * Control.cs: Check to see if the window should have its background
16860           repainted by X when drawing.
16861
16862 2004-10-22 11:31  jackson
16863
16864         * XplatUIX11.cs: When invalidating areas only use XClearArea if
16865           clear is true, this way we do not get flicker from X repainting the
16866           background
16867
16868 2004-10-22 11:28  jackson
16869
16870         * XEventQueue.cs: Queue properly
16871
16872 2004-10-21 09:38  jackson
16873
16874         * XEventQueue.cs: Fix access modifier
16875
16876 2004-10-21 09:36  jackson
16877
16878         * XEventQueue.cs: Don't loose messages
16879
16880 2004-10-21 09:22  jackson
16881
16882         * XEventQueue.cs: Don't loose messages
16883
16884 2004-10-20 04:15  jordi
16885
16886         * BootMode.cs: enum need it by SystemInfo
16887
16888 2004-10-19 21:58  pbartok
16889
16890         * XplatUIWin32.cs:
16891           - Small sanity check
16892
16893 2004-10-19 21:56  pbartok
16894
16895         * Form.cs:
16896           - Added private FormParentWindow class which acts as the container
16897             for our form and as the non-client area where menus are drawn
16898           - Added/Moved required tie-ins to Jordi's menus
16899           - Fixed/Implemented the FormStartPosition functionality
16900
16901 2004-10-19 21:52  pbartok
16902
16903         * Control.cs:
16904           - Removed unneeded locals
16905           - Added code to all size and location properties to understand and
16906             deal with the parent container of Form
16907
16908 2004-10-19 21:33  pbartok
16909
16910         * Application.cs:
16911           - Fixed to deal with new Form subclasses for menus
16912
16913 2004-10-19 17:48  jackson
16914
16915         * XEventQueue.cs: commit correct version of file
16916
16917 2004-10-19 16:50  jackson
16918
16919         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
16920
16921 2004-10-19 16:15  jordi
16922
16923         * MenuAPI.cs: MenuBarCalcSize returns the height
16924
16925 2004-10-19 08:31  pbartok
16926
16927         * Control.cs:
16928           - Added missing call to PreProcessMessage before calling OnXXXKey
16929           methods
16930
16931 2004-10-19 00:04  ravindra
16932
16933         * ToolTip.cs: Fixed constructor.
16934
16935 2004-10-18 09:31  jordi
16936
16937         * MenuAPI.cs: menuitems in menubars do not have shortcuts
16938
16939 2004-10-18 09:26  jordi
16940
16941         * MenuItem.cs: fixes MenuItem class signature
16942
16943 2004-10-18 08:56  jordi
16944
16945         * MenuAPI.cs: prevents windows from showing in the taskbar
16946
16947 2004-10-18 00:28  ravindra
16948
16949         * ToolTip.cs: Suppressed a warning message.
16950
16951 2004-10-18 00:27  ravindra
16952
16953         * Control.cs: Default value of visible property must be true.
16954
16955 2004-10-17 23:19  pbartok
16956
16957         * ToolTip.cs:
16958           - Complete implementation
16959
16960 2004-10-17 23:19  pbartok
16961
16962         * XplatUIX11.cs:
16963           - Added EnableWindow method
16964           - Added SetModal stub
16965           - Added generation of WM_ACTIVATE message (still needs testing)
16966           - Added SetTopMost stub
16967           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
16968
16969 2004-10-17 23:17  pbartok
16970
16971         * XplatUIWin32.cs:
16972           - Removed VirtualKeys to XplatUIStructs
16973           - Implemented SetTopMost method
16974           - Implemented EnableWindow method
16975           - Bugfix in ScreenToClient()
16976           - Bugfixes in ClientToScreen()
16977
16978 2004-10-17 22:51  pbartok
16979
16980         * XplatUIStructs.cs:
16981           - Added WS_EX styles to WindowStyles enumeration
16982
16983 2004-10-17 22:50  pbartok
16984
16985         * XplatUI.cs, XplatUIDriver.cs:
16986           - Added method for enabling/disabling windows
16987           - Added method for setting window modality
16988           - Added method for setting topmost window
16989
16990 2004-10-17 22:49  pbartok
16991
16992         * ThemeWin32Classic.cs:
16993           - Added ToolTip drawing code
16994
16995 2004-10-17 22:49  pbartok
16996
16997         * Theme.cs:
16998           - Added ToolTip abstracts
16999
17000 2004-10-17 22:47  pbartok
17001
17002         * Form.cs:
17003           - Fixed Form.ControlCollection to handle owner relations
17004           - Added Owner/OwnedForms handling
17005           - Implemented Z-Ordering for owned forms
17006           - Removed unneeded private overload of ShowDialog
17007           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
17008             so I hope)
17009           - Fixed Close(), had wrong default
17010           - Added firing of OnLoad event
17011           - Added some commented out debug code for Ownership handling
17012
17013 2004-10-17 22:16  pbartok
17014
17015         * Control.cs:
17016           - Fixed/implemented flat list of controls
17017
17018 2004-10-17 22:14  pbartok
17019
17020         * Application.cs:
17021           - Added code to simulate modal dialogs on Win32
17022
17023 2004-10-17 16:11  jordi
17024
17025         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
17026           mouse event
17027
17028 2004-10-17 13:39  jordi
17029
17030         * MenuAPI.cs: menu drawing fixes
17031
17032 2004-10-15 09:10  ravindra
17033
17034         * StructFormat.cs: General Enum.
17035
17036 2004-10-15 09:09  ravindra
17037
17038         * SizeGripStyle.cs: Enum for Form.
17039
17040 2004-10-15 09:08  ravindra
17041
17042         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
17043           in Theme for ListView.
17044
17045 2004-10-15 09:06  ravindra
17046
17047         * ColumnHeader.cs: Flushing some formatting changes.
17048
17049 2004-10-15 09:05  ravindra
17050
17051         * ListViewItem.cs: Implemented GetBounds method and fixed coding
17052           style.
17053
17054 2004-10-15 09:03  ravindra
17055
17056         * ListView.cs: Implemented Paint method and fixed coding style.
17057
17058 2004-10-15 07:34  jordi
17059
17060         * MenuAPI.cs: fix for X11
17061
17062 2004-10-15 07:32  ravindra
17063
17064         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
17065                 - Renamed Paint() method to Draw() for clarity. Also, moved
17066                 DrawImage() to OnPaint().
17067
17068 2004-10-15 07:25  ravindra
17069
17070         * CheckBox.cs, RadioButton.cs:
17071                 - Removed Redraw (), we get it from ButtonBase.
17072                 - Implemented Paint (), to do class specific painting.
17073
17074 2004-10-15 07:16  ravindra
17075
17076         * ButtonBase.cs:
17077                 - Redraw () is not virtual now.
17078                 - Added an internal virtual method Paint (), so that
17079                 derived classes can do their painting on their own.
17080                 - Modified OnPaint () to call Paint ().
17081
17082 2004-10-15 06:43  jordi
17083
17084         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
17085           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
17086
17087 2004-10-15 00:30  ravindra
17088
17089         * MessageBox.cs:
17090                 - MessageBox on windows does not have min/max buttons.
17091                 This change in CreateParams fixes this on Windows. We
17092                 still need to implement this windowstyle behavior in
17093                 our X11 driver.
17094
17095 2004-10-14 05:14  ravindra
17096
17097         * ToolBar.cs:
17098                 - Changed Redraw () to do a Refresh () always.
17099                 - Fixed the MouseMove event handling when mouse is pressed,
17100                 ie drag event handling.
17101                 - Replaced the usage of ToolBarButton.Pressed property to
17102                 ToolBarButton.pressed internal variable.
17103
17104 2004-10-14 05:10  ravindra
17105
17106         * ToolBarButton.cs:
17107                 - Added an internal member 'inside' to handle mouse move
17108                 with mouse pressed ie mouse drag event.
17109                 - Changed 'Pressed' property to return true only when
17110                 'inside' and 'pressed' are both true.
17111                 - Some coding style love.
17112
17113 2004-10-14 00:17  ravindra
17114
17115         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
17116           public method.
17117
17118 2004-10-14 00:15  ravindra
17119
17120         * ButtonBase.cs: Redraw () related improvements.
17121
17122 2004-10-14 00:14  ravindra
17123
17124         * MessageBox.cs: Moved InitFormSize () out of Paint method and
17125           removed unnecessary calls to Button.Show () method.
17126
17127 2004-10-13 17:50  pbartok
17128
17129         * XplatUIX11.cs:
17130           - Formatting fix
17131           - Removed destroying of window until we solve the problem of X
17132             destroying the window before us on shutdown
17133
17134 2004-10-13 16:32  pbartok
17135
17136         * ButtonBase.cs:
17137           - Now Redraws on MouseUp for FlatStyle Flat and Popup
17138
17139 2004-10-13 14:18  pbartok
17140
17141         * XplatUIX11.cs:
17142           - Added code to destroy the X window
17143
17144 2004-10-13 14:18  pbartok
17145
17146         * XplatUIWin32.cs:
17147           - Added code to destroy a window
17148
17149 2004-10-13 14:12  pbartok
17150
17151         * ButtonBase.cs:
17152           - Added the Redraw on Resize that got dropped in the last rev
17153
17154 2004-10-13 09:06  pbartok
17155
17156         * ThemeWin32Classic.cs:
17157           - Path from John BouAntoun:
17158             * Fix check rendering (centre correctly for normal style, offset
17159               correctly for FlatStyle).
17160             * Fix border color usage (use backcolor) for FlatStyle.Popup
17161             * Use checkbox.Capture instead of checkbox.is_pressed when
17162               rendering flatstyle states.
17163
17164 2004-10-12 21:48  pbartok
17165
17166         * ThemeWin32Classic.cs:
17167           - Removed all occurences of SystemColors and replaced them with the
17168             matching theme color
17169
17170 2004-10-12 21:41  pbartok
17171
17172         * ThemeWin32Classic.cs:
17173           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
17174             him using the function for flatstyle drawing
17175           - Changed functions to use the new version of CPDrawBorder3D
17176
17177 2004-10-12 21:15  pbartok
17178
17179         * ControlPaint.cs:
17180           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
17181             match MS documentation. They need to return defined colors if the
17182             passed color matches the configured control color. Thanks to John
17183             BouAntoun for pointing this out.
17184
17185 2004-10-12 20:57  pbartok
17186
17187         * Control.cs:
17188           - Fix from John BouAntoun: Raise ForeColorChanged event when text
17189             color is changed
17190
17191 2004-10-12 20:46  pbartok
17192
17193         * CheckBox.cs:
17194           - Fix from John BouAntoun: Now properly sets the Appearance property
17195
17196 2004-10-12 20:45  pbartok
17197
17198         * ThemeWin32Classic.cs:
17199           - Fixes from John BouAntoun: now handles forecolors and backcolors
17200             for flatstyle rendered controls much better; It also fixes normal
17201             checkbox rendering when pushed or disabled.
17202
17203 2004-10-08 02:50  jordi
17204
17205         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
17206           work
17207
17208 2004-10-07 08:56  jordi
17209
17210         * ThemeWin32Classic.cs: Removes deletion of cached brushes
17211
17212 2004-10-06 03:59  jordi
17213
17214         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
17215           XplatUIWin32.cs: removes warnings from compilation
17216
17217 2004-10-05 12:23  jackson
17218
17219         * RadioButton.cs: Fix ctor
17220
17221 2004-10-05 11:10  pbartok
17222
17223         * MessageBox.cs:
17224           - Partial implementation by Benjamin Dasnois
17225
17226 2004-10-05 10:15  jackson
17227
17228         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
17229           by John BouAntoun
17230
17231 2004-10-05 03:07  ravindra
17232
17233         * ToolBar.cs:
17234                 - Removed a private method, Draw ().
17235                 - Fixed the ButtonDropDown event handling.
17236                 - Fixed MouseMove event handling.
17237
17238 2004-10-05 03:04  ravindra
17239
17240         * ThemeWin32Classic.cs:
17241                 - Added DrawListView method and ListViewDefaultSize property.
17242                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
17243                 - Changed DOS style CRLF to Unix format (dos2unix).
17244
17245 2004-10-05 03:03  ravindra
17246
17247         * Theme.cs:
17248                 - Added DrawListView method and ListViewDefaultSize property.
17249
17250 2004-10-05 02:42  ravindra
17251
17252         * ToolBarButton.cs: Added an internal member dd_pressed to handle
17253           clicks on DropDown arrow.
17254
17255 2004-10-04 22:56  jackson
17256
17257         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
17258           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
17259           Control handle the buffers, derived classes should not have to
17260           CreateBuffers themselves.
17261
17262 2004-10-04 21:20  jackson
17263
17264         * StatusBar.cs: The control handles resizing the buffers now.
17265
17266 2004-10-04 21:18  jackson
17267
17268         * Control.cs: When resizing the buffers should be invalidated. This
17269           should be handled in Control not in derived classes.
17270
17271 2004-10-04 14:45  jackson
17272
17273         * TabPage.cs: oops
17274
17275 2004-10-04 02:14  pbartok
17276
17277         * LeftRightAlignment.cs:
17278           - Initial check-in
17279
17280 2004-10-04 01:09  jordi
17281
17282         * ThemeWin32Classic.cs: fixes right button position causing right
17283           button not showing on horizontal scrollbars
17284
17285 2004-10-02 13:12  pbartok
17286
17287         * XplatUIX11.cs:
17288           - Simplified the Invalidate method by using an X call instead of
17289             generating the expose ourselves
17290           - Added an expose when the window background is changed
17291           - Implemented ClientToScreen method
17292
17293 2004-10-02 13:08  pbartok
17294
17295         * XplatUIWin32.cs:
17296           - Added Win32EnableWindow method (test for implementing modal
17297           dialogs)
17298           - Added ClientToScreen method and imports
17299
17300 2004-10-02 13:07  pbartok
17301
17302         * XplatUI.cs, XplatUIDriver.cs:
17303           - Added ClientToScreen coordinate translation method
17304
17305 2004-10-02 13:06  pbartok
17306
17307         * KeyPressEventArgs.cs:
17308           - Fixed access level for constructor
17309
17310 2004-10-02 13:06  pbartok
17311
17312         * NativeWindow.cs:
17313           - Changed access level for the window_collection hash table
17314
17315 2004-10-02 13:05  pbartok
17316
17317         * Form.cs:
17318           - Added KeyPreview property
17319           - Added Menu property (still incomplete, pending Jordi's menu work)
17320           - Implemented ProcessCmdKey
17321           - Implemented ProcessDialogKey
17322           - Implemented ProcessKeyPreview
17323
17324 2004-10-02 13:02  pbartok
17325
17326         * Control.cs:
17327           - Added private method to get the Control object from the window
17328           handle
17329           - Implemented ContextMenu property
17330           - Implemented PointToScreen
17331           - Implemented PreProcessMessage
17332           - Implemented IsInputChar
17333           - Implemented IsInputKey
17334           - Implemented ProcessCmdKey
17335           - Completed ProcessKeyEventArgs
17336           - Fixed message loop to call the proper chain of functions on key
17337           events
17338           - Implemented ProcessDialogChar
17339           - Implemented ProcessDialogKey
17340           - Implemented ProcessKeyMessage
17341           - Implemented ProcessKeyPreview
17342           - Added RaiseDragEvent stub (MS internal method)
17343           - Added RaiseKeyEvent stub (MS internal method)
17344           - Added RaiseMouseEvent stub (MS Internal method)
17345           - Added RaisePaintEvent stub (MS Internal method)
17346           - Added ResetMouseEventArgs stub (MS Internal method)
17347           - Implemented RtlTranslateAlignment
17348           - Implemented RtlTranslateContent
17349           - Implemented RtlTranslateHorizontal
17350           - Implemented RtlTranslateLeftRight
17351           - Added generation of KeyPress event
17352
17353 2004-10-02 05:57  ravindra
17354
17355         * ListViewItem.cs: Added attributes.
17356
17357 2004-10-02 05:32  ravindra
17358
17359         * ListView.cs: Added attributes.
17360
17361 2004-10-01 11:53  jackson
17362
17363         * Form.cs: Implement the Close method so work on MessageBox can
17364           continue.
17365
17366 2004-09-30 14:06  pbartok
17367
17368         * XplatUIX11.cs:
17369           - Bug fixes
17370
17371 2004-09-30 11:34  jackson
17372
17373         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
17374
17375 2004-09-30 07:26  ravindra
17376
17377         * ListViewItemConverter.cs: Converter for ListViewItem.
17378
17379 2004-09-30 07:26  ravindra
17380
17381         * SortOrder.cs: Enum for ListView control.
17382
17383 2004-09-30 07:25  ravindra
17384
17385         * ColumnHeader.cs: Supporting class for ListView control.
17386
17387 2004-09-30 07:24  ravindra
17388
17389         * ListView.cs, ListViewItem.cs: Initial implementation.
17390
17391 2004-09-30 07:20  ravindra
17392
17393         * ItemActivation.cs: Enum for ListView Control.
17394
17395 2004-09-29 20:29  pbartok
17396
17397         * XplatUIX11.cs:
17398           - Added lookup of pixel value for background color; tries to get a
17399             color 'close' to the requested color, it avoids having to create a
17400             colormap.  Depending on the display this could mean the used color
17401             is slightly off the desired color. Might have to change it to a more
17402             resource intensive colormap approach, but it will work as a
17403           workaround to avoid red screens.
17404
17405 2004-09-29 14:27  jackson
17406
17407         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
17408
17409 2004-09-28 12:44  pbartok
17410
17411         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
17412           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
17413           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
17414           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
17415           TrackBar.cs, VScrollBar.cs:
17416           - Streamlined Theme interfaces:
17417             * Each DrawXXX method for a control now is passed the object for
17418               the control to be drawn in order to allow accessing any state the
17419               theme might require
17420
17421             * ControlPaint methods for the theme now have a CP prefix to avoid
17422               name clashes with the Draw methods for controls
17423
17424             * Every control now retrieves it's DefaultSize from the current
17425             theme
17426
17427 2004-09-28 12:17  jackson
17428
17429         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
17430           drawing
17431
17432 2004-09-24 14:57  jackson
17433
17434         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
17435           Gives us a nice little performance boost.
17436
17437 2004-09-24 12:02  jackson
17438
17439         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
17440           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
17441           Control and supporting classes. Initial checkin
17442
17443 2004-09-23 13:08  jackson
17444
17445         * Form.cs: Temp build fixage
17446
17447 2004-09-23 01:39  ravindra
17448
17449         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
17450           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
17451           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
17452           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
17453           EventHandlers needed by ListView Control.
17454
17455 2004-09-22 14:12  pbartok
17456
17457         * ScrollableControl.cs:
17458           - Implemented DockPadding property
17459           - Implemented AutoScroll property
17460           - Implemented AutoScrollMargin property
17461           - Implemented AutoScrollMinSize property
17462           - Implemented AutoScrollPosition property
17463           - Implemented DisplayRectangle property (still incomplete)
17464           - Implemented CreateParams property
17465           - Implemented HScroll property
17466           - Implemented VScroll property
17467           - Implemented OnVisibleChanged property
17468
17469 2004-09-22 14:09  pbartok
17470
17471         * Form.cs:
17472           - Added Form.ControllCollection class
17473           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
17474             RemoveOwnedForm (still incomplete, missing on-top and common
17475             minimize/maximize behaviour)
17476           - Added StartPosition property (still incomplete, does not use when
17477             creating the form)
17478           - Added ShowDialog() methods (still incomplete, missing forcing the
17479             dialog modal)
17480
17481 2004-09-22 14:05  pbartok
17482
17483         * Application.cs:
17484           - Added message loop for modal dialogs
17485
17486 2004-09-22 14:02  pbartok
17487
17488         * GroupBox.cs:
17489           - Fixed wrong types for events
17490
17491 2004-09-22 14:00  pbartok
17492
17493         * Shortcut.cs, FormWindowState.cs:
17494           - Fixed wrong values
17495
17496 2004-09-22 12:01  jackson
17497
17498         * Control.cs: Text is never null
17499
17500 2004-09-20 22:14  pbartok
17501
17502         * XplatUIWin32.cs:
17503           - Fixed accessibility level for Idle handler
17504
17505 2004-09-20 18:54  jackson
17506
17507         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17508           XplatUIX11.cs: New message loop that uses poll so we don't get a
17509           busy loop
17510
17511 2004-09-17 10:43  pbartok
17512
17513         * ScrollBar.cs:
17514           - Fixed behaviour of arrow buttons. Now properly behaves like
17515             Buttons (and like Microsoft's scrollbar arrow buttons)
17516
17517 2004-09-17 10:14  pbartok
17518
17519         * ScrollBar.cs:
17520           - Added missing release of keyboard/mouse capture
17521
17522 2004-09-17 06:18  jordi
17523
17524         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
17525           Theme.cs: Very early menu support
17526
17527 2004-09-16 17:45  pbartok
17528
17529         * XplatUIWin32.cs:
17530           - Fixed sending a window to the front
17531           - Added overload for SetWindowPos to avoid casting
17532
17533 2004-09-16 17:44  pbartok
17534
17535         * Control.cs:
17536           - Added SendToBack and BringToFront methods
17537
17538 2004-09-16 07:00  ravindra
17539
17540         * Copyright: Added Novell URL.
17541
17542 2004-09-16 07:00  ravindra
17543
17544         * ToolBar.cs: Invalidate should be done before redrawing.
17545
17546 2004-09-15 21:19  ravindra
17547
17548         * ColumnHeaderStyle.cs: Enum for ListView Control.
17549
17550 2004-09-15 21:18  ravindra
17551
17552         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
17553           ListView Control.
17554
17555 2004-09-13 18:26  jackson
17556
17557         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
17558           properly
17559
17560 2004-09-13 18:13  jackson
17561
17562         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
17563           a second thread and post messages into the main threads message
17564           queue. This makes timing much more consistent. Both win2K and XP
17565           have a minimum timer value of 15 milliseconds, so we now do this
17566           too.
17567
17568 2004-09-13 15:18  pbartok
17569
17570         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17571           XplatUIX11.cs:
17572           - Added Z-Ordering methods
17573
17574 2004-09-13 10:56  pbartok
17575
17576         * Form.cs:
17577           - Fixed #region names
17578           - Moved properties and methods into their proper #regions
17579
17580 2004-09-13 10:51  pbartok
17581
17582         * Form.cs:
17583           - Added Accept and CancelButton properties
17584           - Added ProcessDialogKey() method
17585
17586 2004-09-13 08:18  pbartok
17587
17588         * IWindowTarget.cs:
17589           - Initial check-in
17590
17591 2004-09-10 21:50  pbartok
17592
17593         * Control.cs:
17594           - Added DoDragDrop() [incomplete]
17595           - Properly implemented 'Visible' handling
17596           - Added SetVisibleCore()
17597           - Implemented FindChildAtPoint()
17598           - Implemented GetContainerControl()
17599           - Implemented Hide()
17600
17601 2004-09-10 19:28  pbartok
17602
17603         * Control.cs:
17604           - Moved methods into their appropriate #regions
17605           - Reordered methods within regions alphabetically
17606
17607 2004-09-10 18:57  pbartok
17608
17609         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17610           - Added method to retrieve text from window
17611
17612 2004-09-10 18:56  pbartok
17613
17614         * Control.cs:
17615           - Moved some internal functions into the internal region
17616           - Implemented FontHeight
17617           - Implemented RenderRightToLeft
17618           - Implemented ResizeRedraw
17619           - Implemented ShowFocusCues
17620           - Implemented ShowKeyboardCues
17621           - Implemented FromChildHandle
17622           - Implemented FromHandle
17623           - Implemented IsMnemonic
17624           - Implemented ReflectMessage
17625           - All public and protected Static Methods are now complete
17626
17627 2004-09-10 16:54  pbartok
17628
17629         * Control.cs:
17630           - Implemented remaining missing public instance properties
17631           - Alphabetized some out of order properties
17632
17633 2004-09-10 05:51  ravindra
17634
17635         * PictureBox.cs: Added a check for null image.
17636
17637 2004-09-10 00:59  jordi
17638
17639         * GroupBox.cs: remove cvs tag
17640
17641 2004-09-09 05:25  ravindra
17642
17643         * ToolBar.cs: Make redraw accessible from ToolBarButton.
17644
17645 2004-09-09 05:23  ravindra
17646
17647         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
17648           parent redraw.
17649
17650 2004-09-09 02:28  pbartok
17651
17652         * ThemeWin32Classic.cs:
17653           - Improve disabled string look
17654
17655 2004-09-09 01:15  jordi
17656
17657         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
17658           args and handler
17659
17660 2004-09-08 23:56  ravindra
17661
17662         * ItemBoundsPortion.cs: It's enum, not a class!
17663
17664 2004-09-08 23:47  ravindra
17665
17666         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
17667           Enums for Form.
17668
17669 2004-09-08 21:13  ravindra
17670
17671         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
17672           ListView control.
17673
17674 2004-09-08 21:03  ravindra
17675
17676         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
17677           avoid crash.
17678
17679 2004-09-08 21:01  ravindra
17680
17681         * ScrollableControl.cs: Removed unreachable code.
17682
17683 2004-09-08 06:45  jordi
17684
17685         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
17686
17687 2004-09-08 01:00  jackson
17688
17689         * XplatUIX11.cs: Only run the timers when updating the message
17690           queue. This effectively gives X messages a higher priority then
17691           timer messages. Timers still need love though
17692
17693 2004-09-07 14:01  jackson
17694
17695         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
17696           this for us and the handle is no longer valid.
17697
17698 2004-09-07 13:59  jackson
17699
17700         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
17701           loop that manages to not crash. TODO: Add poll and cleanup timers
17702
17703 2004-09-07 11:12  jordi
17704
17705         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
17706
17707 2004-09-07 03:40  jordi
17708
17709         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
17710           fixes, methods, multiple links
17711
17712 2004-09-06 06:55  jordi
17713
17714         * Control.cs: Caches ClientRectangle rectangle value
17715
17716 2004-09-05 02:03  jordi
17717
17718         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
17719           certain situations
17720
17721 2004-09-04 11:10  jordi
17722
17723         * Label.cs: Refresh when font changed
17724
17725 2004-09-02 16:24  pbartok
17726
17727         * Control.cs:
17728           - Added sanity check to creation of double buffer bitmap
17729
17730 2004-09-02 16:24  pbartok
17731
17732         * ButtonBase.cs:
17733           - Fixed selection of text color
17734           - Fixed handling of resize event; now properly recreates double
17735             buffering bitmap
17736           - Added missing assignment of TextAlignment
17737           - Added proper default for TextAlignment
17738
17739 2004-09-02 14:26  pbartok
17740
17741         * RadioButton.cs:
17742           - Added missing RadioButton.RadioButtonAccessibleObject class
17743
17744 2004-09-02 14:26  pbartok
17745
17746         * Control.cs:
17747           - Added missing Control.ControlAccessibleObject class
17748           - Started to implement Select()ion mechanisms, still very incomplete
17749
17750 2004-09-02 14:25  pbartok
17751
17752         * AccessibleObject.cs:
17753           - Added missing methods
17754
17755 2004-09-02 14:23  pbartok
17756
17757         * AccessibleNavigation.cs, AccessibleSelection.cs:
17758           - Initial check-in
17759
17760 2004-09-02 10:32  jordi
17761
17762         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
17763           pool for pens, brushes, and hatchbruses
17764
17765 2004-09-01 15:30  jackson
17766
17767         * StatusBar.cs: Fix typo
17768
17769 2004-09-01 14:44  pbartok
17770
17771         * RadioButton.cs:
17772           - Fixed state
17773
17774 2004-09-01 14:39  pbartok
17775
17776         * Button.cs, RadioButton.cs:
17777           - Functional initial check-in
17778
17779 2004-09-01 14:01  pbartok
17780
17781         * CheckBox.cs:
17782           - Added missing default
17783           - Added missing region mark
17784
17785 2004-09-01 09:10  jordi
17786
17787         * Label.cs: fixes method signatures, new methods, events, fixes
17788           autosize
17789
17790 2004-09-01 07:19  jordi
17791
17792         * Control.cs: Init string variables with an empty object
17793
17794 2004-09-01 04:20  jordi
17795
17796         * Control.cs: fires OnFontChanged event
17797
17798 2004-08-31 20:07  pbartok
17799
17800         * ButtonBase.cs:
17801           - Enabled display of strings
17802
17803 2004-08-31 20:05  pbartok
17804
17805         * Form.cs:
17806           - Added (partial) implementation of DialogResult; rest needs to be
17807             implemented when the modal loop code is done
17808
17809 2004-08-31 19:55  pbartok
17810
17811         * CheckBox.cs:
17812           - Fixed to match the removal of the needs_redraw concept
17813
17814 2004-08-31 19:55  pbartok
17815
17816         * ButtonBase.cs:
17817           - Removed the rather odd split between 'needs redraw' and redrawing
17818           - Now handles the events that require regeneration (ambient
17819             properties and size)
17820
17821 2004-08-31 19:41  pbartok
17822
17823         * Control.cs:
17824           - Added firing of BackColorChanged event
17825           - Added TopLevelControl property
17826           - Fixed handling of WM_ERASEBKGRND message
17827
17828 2004-08-31 12:49  pbartok
17829
17830         * ButtonBase.cs:
17831           - Removed debug
17832           - Minor fixes
17833
17834 2004-08-31 12:48  pbartok
17835
17836         * CheckBox.cs:
17837           - Finished (famous last words)
17838
17839 2004-08-31 04:35  jordi
17840
17841         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
17842           scrolling bugs, adds new methods
17843
17844 2004-08-30 14:42  pbartok
17845
17846         * CheckBox.cs:
17847           - Implemented CheckBox drawing code
17848
17849 2004-08-30 14:42  pbartok
17850
17851         * ButtonBase.cs:
17852           - Made Redraw() and CheckRedraw() virtual
17853           - Improved mouse up/down/move logic to properly track buttons
17854
17855 2004-08-30 09:44  pbartok
17856
17857         * CheckBox.cs:
17858           - Updated to fix broken build. Not complete yet.
17859
17860 2004-08-30 09:28  pbartok
17861
17862         * CheckState.cs:
17863           - Initial checkin
17864
17865 2004-08-30 09:17  pbartok
17866
17867         * Appearance.cs:
17868           - Initial check-in
17869
17870 2004-08-27 16:12  ravindra
17871
17872         * ToolBarButton.cs: Added TypeConverter attribute.
17873
17874 2004-08-27 16:07  ravindra
17875
17876         * ImageIndexConverter.cs: Implemented.
17877
17878 2004-08-27 14:17  pbartok
17879
17880         * Control.cs:
17881           - Removed unneeded stack vars
17882           - First attempt to fix sizing issues when layout is suspended
17883
17884 2004-08-25 15:35  jordi
17885
17886         * ScrollBar.cs: more fixes to scrollbar
17887
17888 2004-08-25 14:04  ravindra
17889
17890         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
17891           Added the missing divider code and grip for ToolBar Control.
17892
17893 2004-08-25 13:20  pbartok
17894
17895         * Control.cs:
17896           - Control now properly passes the ambient background color to child
17897             controls
17898
17899 2004-08-25 13:20  jordi
17900
17901         * ScrollBar.cs: small bug fix regarding bar position
17902
17903 2004-08-25 12:33  pbartok
17904
17905         * Timer.cs:
17906           - Now only calls SetTimer or KillTimer if the enabled state has
17907           changed
17908
17909 2004-08-25 12:33  pbartok
17910
17911         * XplatUIWin32.cs:
17912           - Fixed timer handling, now seems to work
17913           - Improved error message for window creation
17914
17915 2004-08-25 12:32  pbartok
17916
17917         * Control.cs:
17918           - Fixed generation of MouseUp message
17919
17920 2004-08-25 12:29  jordi
17921
17922         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
17923           and fixes for progressbar
17924
17925 2004-08-24 18:43  ravindra
17926
17927         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
17928           in ToolBar control.
17929
17930 2004-08-24 17:15  pbartok
17931
17932         * Panel.cs:
17933           - Added #region
17934           - Added missing events
17935           - Alphabetized
17936
17937 2004-08-24 17:14  pbartok
17938
17939         * StatusBar.cs, PictureBox.cs:
17940           - Now uses Control's CreateParams
17941
17942 2004-08-24 16:36  pbartok
17943
17944         * XplatUIX11.cs:
17945           - Fixed background color handling
17946           - Fixed sending of enter/leave events on a grab
17947
17948 2004-08-24 16:35  pbartok
17949
17950         * X11Structs.cs:
17951           - Refined definitions for CrossingEvent
17952
17953 2004-08-24 12:37  jordi
17954
17955         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
17956           formmating, methods signature, and adds missing events
17957
17958 2004-08-24 12:24  jordi
17959
17960         * Control.cs: fire OnEnabledChanged event
17961
17962 2004-08-24 11:17  pbartok
17963
17964         * XplatUIWin32.cs:
17965           - Implemented SetTimer() and KillTimer()
17966
17967 2004-08-24 11:16  pbartok
17968
17969         * XplatUIX11.cs:
17970           - Now uses Remove instead of Add to kill the timer
17971
17972 2004-08-24 10:16  jackson
17973
17974         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
17975           picture boxes in the theme now. Draw picture box borders and obey
17976           sizing modes
17977
17978 2004-08-24 05:49  jackson
17979
17980         * Timer.cs: Remove top secret debugging code
17981
17982 2004-08-24 05:34  jackson
17983
17984         * PictureBox.cs: Temp hack to make picture boxes draw their full
17985           image
17986
17987 2004-08-24 05:29  jackson
17988
17989         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17990           XplatUIX11.cs: Move timers to the driver level. On X they are
17991           queued by the driver and checked on idle.
17992
17993 2004-08-24 01:07  jackson
17994
17995         * XplatUIX11.cs: Use a queue for async messages instead of passing
17996           them as ClientMessages since that was totally broken. Also simply
17997           check for events and return an idle message if none are found. This
17998           gives us an idle handler, and prevents deadlocking when no messages
17999           are in the queue.
18000
18001 2004-08-23 18:19  ravindra
18002
18003         * XplatUIWin32.cs: Removed the unwanted destructor.
18004
18005 2004-08-23 17:27  pbartok
18006
18007         * ButtonBase.cs:
18008           - Finishing touches. Works now, just needs some optimizations.
18009
18010 2004-08-23 16:53  jordi
18011
18012         * ScrollBar.cs: small fix
18013
18014 2004-08-23 16:45  pbartok
18015
18016         * Application.cs:
18017           - Removed debug output
18018           - Simplifications
18019
18020 2004-08-23 16:43  jordi
18021
18022         * ScrollBar.cs: [no log message]
18023
18024 2004-08-23 16:10  pbartok
18025
18026         * Form.cs:
18027           - Fixed handling of WM_CLOSE message
18028           - Removed debug output
18029
18030 2004-08-23 16:09  pbartok
18031
18032         * Application.cs:
18033           - Added handling of Idle event
18034           - Added handling of form closing
18035           - Fixed reporting of MessageLoop property
18036           - Removed some unneeded code, should provide a bit of a speedup
18037
18038 2004-08-23 15:22  pbartok
18039
18040         * Control.cs:
18041           - Added InitLayout() method
18042           - Added code to properly perform layout when Anchor or Dock property
18043             is changed
18044           - Changed 'interpretation' of ResumeLayout. MS seems to have a
18045             LAMESPEC, tried to do it in a way that makes sense
18046
18047 2004-08-23 14:10  jordi
18048
18049         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
18050           properties and methods
18051
18052 2004-08-23 13:55  pbartok
18053
18054         * Control.cs:
18055           - Properly fixed Jordi's last fix
18056           - Now uses Cursor's Position property instead of calling XplatUI
18057           directly
18058
18059 2004-08-23 13:44  jordi
18060
18061         * PaintEventHandler.cs: Adding missing attribute
18062
18063 2004-08-23 13:39  pbartok
18064
18065         * Cursor.cs:
18066           - Implemented Position property
18067
18068 2004-08-23 13:39  pbartok
18069
18070         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18071           - Added method to move mouse cursor
18072
18073 2004-08-23 13:39  pbartok
18074
18075         * XplatUIX11.cs:
18076           - Fixed setting of background color
18077           - Added method to move mouse cursor
18078
18079 2004-08-23 13:16  jordi
18080
18081         * Control.cs: avoids null exception
18082
18083 2004-08-22 17:46  jackson
18084
18085         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
18086           PictureBox
18087
18088 2004-08-22 17:40  jackson
18089
18090         * XplatUIX11.cs: Add some missing locks
18091
18092 2004-08-22 15:10  pbartok
18093
18094         * Control.cs, Form.cs:
18095           - Removed OverlappedWindow style from Control, instead it's default
18096             now is child
18097           - Made form windows OverlappedWindow by default
18098
18099 2004-08-22 13:34  jackson
18100
18101         * ScrollBar.cs: Update the position through the Value property so
18102           the OnValueChanged event is raised.
18103
18104 2004-08-22 12:04  pbartok
18105
18106         * SWF.csproj:
18107           - Added Cursor.cs and UserControl.cs
18108
18109 2004-08-22 12:03  pbartok
18110
18111         * Cursor.cs:
18112           - Started implementation, not usable yet
18113
18114 2004-08-22 12:00  pbartok
18115
18116         * UserControl.cs:
18117           - Implemented UserControl (complete)
18118
18119 2004-08-21 19:20  ravindra
18120
18121         * ToolBar.cs: Correcting the formatting mess of VS.NET.
18122
18123 2004-08-21 18:49  ravindra
18124
18125         * ToolBar.cs: Probably this completes the missing attributes in
18126           toolbar control.
18127
18128 2004-08-21 18:03  ravindra
18129
18130         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
18131           Fixed toolbar control signatures.
18132
18133 2004-08-21 16:32  pbartok
18134
18135         * LinkLabel.cs:
18136           - Signature Fixes
18137
18138 2004-08-21 16:30  pbartok
18139
18140         * Label.cs:
18141           - Signature fixes
18142
18143 2004-08-21 16:19  pbartok
18144
18145         * Control.cs, Label.cs:
18146           - Signature fixes
18147
18148 2004-08-21 15:57  pbartok
18149
18150         * ButtonBase.cs:
18151           - Added loads of debug output for development
18152           - Fixed typo in method name
18153
18154 2004-08-21 15:52  pbartok
18155
18156         * ToolBarButtonClickEventArgs.cs:
18157           - Added missing base class
18158
18159 2004-08-21 14:53  pbartok
18160
18161         * Control.cs:
18162           - Updated to match new GrabWindow signature
18163
18164 2004-08-21 14:51  pbartok
18165
18166         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18167           - Added method to get default display size
18168
18169 2004-08-21 14:23  pbartok
18170
18171         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18172           - Added method to query current grab state
18173           - Added argument to allow confining a grab to a window
18174
18175 2004-08-21 14:22  pbartok
18176
18177         * Keys.cs:
18178           - Added [Flags] attribute so that modifiers can be used in bitwise
18179           ops
18180
18181 2004-08-21 14:21  pbartok
18182
18183         * TrackBar.cs, ScrollBar.cs:
18184           - Replaced direct XplatUI calls with their Control counterpart
18185
18186 2004-08-21 13:32  pbartok
18187
18188         * Control.cs:
18189           - Implemented Created property
18190
18191 2004-08-21 13:28  pbartok
18192
18193         * Control.cs:
18194           - Implemented ContainsFocus
18195
18196 2004-08-21 13:26  pbartok
18197
18198         * Control.cs:
18199           - Implemented CausesValidation
18200
18201 2004-08-21 13:21  pbartok
18202
18203         * Control.cs:
18204           - Implemented CanFocus
18205           - Implemented CanSelect
18206           - Implemented Capture
18207
18208 2004-08-21 12:35  pbartok
18209
18210         * XplatUIWin32.cs:
18211           - Fixed bug with Async message handling
18212           - Implemented getting the ModifierKeys
18213
18214 2004-08-21 12:32  jackson
18215
18216         * AsyncMethodResult.cs: Make sure we have the mutex before we
18217           release it. Fixes BeginInvoke on windows
18218
18219 2004-08-21 11:31  pbartok
18220
18221         * XplatUIWin32.cs, XplatUIX11.cs:
18222           - Drivers now return proper mouse state
18223
18224 2004-08-21 10:54  jackson
18225
18226         * Control.cs: Implement EndInvoke
18227
18228 2004-08-21 10:48  jackson
18229
18230         * Timer.cs: Remove unneeded finalizer
18231
18232 2004-08-20 19:52  ravindra
18233
18234         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
18235           in mouse event handling in the ToolBar control.
18236
18237 2004-08-20 19:50  ravindra
18238
18239         * ImageList.cs: Changed draw method to use the arguments passed in
18240           to draw the image.
18241
18242 2004-08-20 18:58  pbartok
18243
18244         * XplatUIStructs.cs:
18245           - Added private message for async communication
18246
18247 2004-08-20 17:38  ravindra
18248
18249         * Control.cs: Made RightToLeft property virtual and removed a
18250           Console.WriteLine.
18251
18252 2004-08-20 14:39  jordi
18253
18254         * ThemeGtk.cs: use style_attach
18255
18256 2004-08-20 14:39  pbartok
18257
18258         * XplatUIWin32.cs:
18259           - Added jackson's Async code from X11 to Win32
18260
18261 2004-08-20 14:09  pbartok
18262
18263         * SWF.csproj:
18264           - Added all new files
18265
18266 2004-08-20 14:09  pbartok
18267
18268         * Control.cs:
18269           - Added call to set window background color
18270
18271 2004-08-20 14:03  pbartok
18272
18273         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18274           - Added method for setting the window background
18275
18276 2004-08-20 14:02  pbartok
18277
18278         * XplatUIWin32.cs:
18279           - Added method for setting the background color
18280           - Added handling for erasing the window background
18281
18282 2004-08-20 13:45  jordi
18283
18284         * TrackBar.cs: fixes timer, new properties and methods
18285
18286 2004-08-20 13:34  jackson
18287
18288         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
18289           correct thread
18290
18291 2004-08-20 13:22  jackson
18292
18293         * Timer.cs: Timer Tick events are now handed through Controls Async
18294           mechanism so the callbacks are executed in the same thread as X
18295
18296 2004-08-20 13:19  jackson
18297
18298         * XplatUIDriver.cs: Expose functionality to send async messages
18299           through the driver
18300
18301 2004-08-20 13:18  jackson
18302
18303         * Control.cs: Implement Begininvoke
18304
18305 2004-08-20 13:14  jackson
18306
18307         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
18308           messages through the driver
18309
18310 2004-08-20 13:12  jackson
18311
18312         * XplatUIX11.cs: Lock before all X operations. Also added Async
18313           method functionality through XSendEvent
18314
18315 2004-08-20 13:11  jackson
18316
18317         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
18318           This will screw up on 64 bit systems)
18319
18320 2004-08-20 13:10  jackson
18321
18322         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
18323           Async messages through X/Win32
18324
18325 2004-08-19 19:39  pbartok
18326
18327         * XplatUIX11.cs:
18328           - Updated code to match new HandleData.DeviceContext type
18329
18330 2004-08-19 19:38  pbartok
18331
18332         * HandleData.cs:
18333           - Made DeviceContext a generic object to allow usage from various
18334           drivers
18335           - Added support for queueing Windows messages
18336
18337 2004-08-19 19:37  pbartok
18338
18339         * XplatUIWin32.cs:
18340           - Added generation of MouseEnter, MouseLeave and MouseHover events
18341           - Added cleanup on EndPaint
18342
18343 2004-08-19 19:17  pbartok
18344
18345         * Control.cs:
18346           - Added handling of WM_MOUSEHOVER
18347           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
18348           code
18349
18350 2004-08-19 18:55  jordi
18351
18352         * ThemeGtk.cs: fixes button order
18353
18354 2004-08-19 18:12  jordi
18355
18356         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
18357
18358 2004-08-19 17:09  pbartok
18359
18360         * Control.cs:
18361           - Added Right property
18362           - Added RightToLeft property
18363
18364 2004-08-19 16:27  jordi
18365
18366         * ThemeGtk.cs: experimental GTK theme support
18367
18368 2004-08-19 16:26  jordi
18369
18370         * ITheme.cs, Theme.cs: move themes from an interface to a class
18371
18372 2004-08-19 16:25  jordi
18373
18374         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
18375           theme enhancaments
18376
18377 2004-08-19 16:04  pbartok
18378
18379         * XplatUIX11.cs:
18380           - Added colormap basics
18381           - Added a way to re-initialize with a different display handle
18382           - Fixed setting of the window background color
18383           - Added various X11 imports related to colors and colormaps
18384
18385 2004-08-19 15:51  pbartok
18386
18387         * X11Structs.cs:
18388           - Removed packing hints (Paolo suggested this a while back)
18389           - fixed colormap type
18390           - Added default Atom types
18391           - Added Screen and color structs and enums
18392
18393 2004-08-19 15:39  pbartok
18394
18395         * ImageList.cs:
18396           - Added missing Draw() method
18397           - Added missing RecreateHandle event
18398
18399 2004-08-19 15:30  pbartok
18400
18401         * Form.cs:
18402           - Added handling of WM_CLOSE
18403
18404 2004-08-18 13:16  jordi
18405
18406         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
18407           a table
18408
18409 2004-08-18 09:56  jordi
18410
18411         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
18412
18413 2004-08-17 15:31  ravindra
18414
18415         * SWF.csproj: Updated project.
18416
18417 2004-08-17 15:25  pbartok
18418
18419         * Control.cs:
18420           - Drawing improvement; don't call UpdateBounds if we are not visible
18421             (or have been minimized)
18422
18423 2004-08-17 15:24  pbartok
18424
18425         * XplatUIWin32.cs:
18426           - Finished IsVisible
18427           - Added Win32GetWindowPlacement
18428
18429 2004-08-17 15:08  jackson
18430
18431         * Panel.cs: Initial checkin of the Panel
18432
18433 2004-08-17 14:25  pbartok
18434
18435         * Control.cs:
18436           - Fixed broken handling of default window sizes
18437
18438 2004-08-17 13:29  jackson
18439
18440         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
18441           has a large startup time.
18442
18443 2004-08-17 10:25  jackson
18444
18445         * HandleData.cs: union areas properly
18446
18447 2004-08-17 10:12  jackson
18448
18449         * HandleData.cs: union areas properly
18450
18451 2004-08-16 20:00  ravindra
18452
18453         * ToolBar.cs, ToolBarButton.cs: Added attributes.
18454
18455 2004-08-16 18:48  ravindra
18456
18457         * ToolBar.cs: Added attributes.
18458
18459 2004-08-16 17:17  ravindra
18460
18461         * SWF.csproj: Updated project.
18462
18463 2004-08-16 17:16  jackson
18464
18465         * XplatUIX11.cs: Check for more expose events before sending a
18466           WM_PAINT so they can all be grouped together. This makes dragging a
18467           window across another window redraw in a sane way.
18468
18469 2004-08-16 15:47  pbartok
18470
18471         * Control.cs:
18472           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
18473             support OnMouseEnter/Leave()
18474           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
18475             exposure handling
18476
18477 2004-08-16 15:46  pbartok
18478
18479         * XplatUIStructs.cs, XplatUIX11.cs:
18480           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
18481           OnMouseEnter/Leave()
18482
18483 2004-08-16 15:34  jackson
18484
18485         * XplatUIX11.cs: Group multiple expose events in HandleData, make
18486           sure messages get the message field set to WM_NULL if they are not
18487           handled.
18488
18489 2004-08-16 15:24  jackson
18490
18491         * HandleData.cs: HandleData is used for storing message information
18492           for window handles
18493
18494 2004-08-15 17:23  ravindra
18495
18496         * ColorDepth.cs: Added attribute.
18497
18498 2004-08-15 17:23  ravindra
18499
18500         * SWF.csproj: Updated project for ToolBar Control.
18501
18502 2004-08-15 17:20  ravindra
18503
18504         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
18505           control and also dos2unix format.
18506
18507 2004-08-15 17:13  ravindra
18508
18509         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
18510           ToolBarButtonClickEventArgs.cs,
18511           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
18512           ToolBarTextAlign.cs: First Implementation of ToolBar control.
18513
18514 2004-08-15 15:31  pbartok
18515
18516         * ButtonBase.cs:
18517           - First (mostly) working version
18518
18519 2004-08-13 16:15  pbartok
18520
18521         * Control.cs:
18522           - Fixed Anchor default
18523
18524 2004-08-13 15:43  pbartok
18525
18526         * Control.cs:
18527           - Changed GetCursorPos signature
18528
18529 2004-08-13 15:42  pbartok
18530
18531         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18532           - Changed signature for GetCursorPos
18533
18534 2004-08-13 15:25  pbartok
18535
18536         * XplatUIX11.cs:
18537           - Cleanup
18538           - Fixed resizing/exposure handling
18539
18540 2004-08-13 15:22  jordi
18541
18542         * ThemeWin32Classic.cs: removes redundant code and fixes issues
18543           with tickposition
18544
18545 2004-08-13 14:55  jordi
18546
18547         * TrackBar.cs: change from wndproc to events
18548
18549 2004-08-13 13:00  jordi
18550
18551         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18552           XplatUIX11.cs: implements PointToClient (ScreenToClient)
18553
18554 2004-08-13 12:53  pbartok
18555
18556         * XplatUIWin32.cs:
18557           - Changed GetWindowPos to also provide client area size
18558           - Fixed broken prototypes for several win32 functions
18559
18560 2004-08-13 12:53  pbartok
18561
18562         * XplatUI.cs, XplatUIDriver.cs:
18563           - Changed GetWindowPos to also provide client area size
18564
18565 2004-08-13 12:52  pbartok
18566
18567         * XplatUIX11.cs:
18568           - Added generation of WM_POSCHANGED
18569           - Changed GetWindowPos to also provide client area size
18570
18571 2004-08-13 12:52  pbartok
18572
18573         * Control.cs:
18574           - Added Dispose() and destructor
18575           - Fixed resizing and bounds calculation
18576           - Fixed Layout
18577           - Added memory savings for invisible windows
18578
18579 2004-08-13 12:46  jordi
18580
18581         * TrackBar.cs: adds timer and grap window
18582
18583 2004-08-13 10:25  jackson
18584
18585         * Timer.cs: SWF Timer
18586
18587 2004-08-12 16:59  pbartok
18588
18589         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18590           - Implemented method to get current mouse position
18591
18592 2004-08-12 14:29  jordi
18593
18594         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
18595           enhancement, fix mouse problems, highli thumb, etc
18596
18597 2004-08-12 13:31  pbartok
18598
18599         * Control.cs:
18600           - Fixed Anchoring bugs
18601
18602 2004-08-12 13:01  jackson
18603
18604         * StatusBar.cs: Don't forget things
18605
18606 2004-08-12 12:54  jackson
18607
18608         * ThemeWin32Classic.cs: Handle owner draw status bars
18609
18610 2004-08-12 12:54  jackson
18611
18612         * StatusBar.cs: Implement missing properties, events, and methods.
18613           Handle mouse clicking
18614
18615 2004-08-12 10:19  jackson
18616
18617         * StatusBarPanelClickEventArgs.cs,
18618           StatusBarPanelClickEventHandler.cs: Classes for handling status
18619           bar panel click events
18620
18621 2004-08-12 10:10  jackson
18622
18623         * Control.cs: Add missing properties
18624
18625 2004-08-12 09:46  pbartok
18626
18627         * BindingsManagerBase.cs:
18628           - Name changed to BindingManagerBase.cs
18629
18630 2004-08-12 09:25  jordi
18631
18632         * ScrollableControl.cs: calls ctrlbase instead of exeception
18633
18634 2004-08-11 16:28  pbartok
18635
18636         * InputLanguageChangingEventArgs.cs:
18637           - Never check in before compiling. Fixes the last check-in
18638
18639 2004-08-11 16:26  pbartok
18640
18641         * InputLanguageChangingEventArgs.cs:
18642           - More signature fixes
18643
18644 2004-08-11 16:20  pbartok
18645
18646         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
18647           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
18648           ImageListStreamer.cs, InputLanguage.cs,
18649           InputLanguageChangedEventArgs.cs,
18650           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
18651           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
18652           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
18653           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18654           - Signature fixes
18655
18656 2004-08-11 16:16  pbartok
18657
18658         * Application.cs:
18659           - Fixed Signature
18660           - Added .Net 1.1 method
18661
18662 2004-08-11 15:25  pbartok
18663
18664         * SWF.csproj:
18665           - Fixed BindingManagerBase.cs filename
18666
18667 2004-08-11 15:22  pbartok
18668
18669         * BindingManagerBase.cs:
18670           - Was checked in with wrong filename
18671
18672 2004-08-11 14:50  pbartok
18673
18674         * SWF.csproj:
18675           - Updated
18676
18677 2004-08-11 13:41  jordi
18678
18679         * XplatUIWin32.cs: Fixes ClientRect
18680
18681 2004-08-11 13:19  pbartok
18682
18683         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18684           XplatUIX11.cs:
18685           - We had SetWindowPos and MoveWindow to set window positions and
18686             size, removed MoveWindow. We have GetWindowPos, so it made sense to
18687             keep SetWindowPos as matching counterpart
18688           - Added some X11 sanity checking
18689
18690 2004-08-11 12:59  pbartok
18691
18692         * Control.cs:
18693           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
18694             (It seems that SetBounds is just a front for SetBoundsCore and
18695              SetBoundsCore updates the underlying window system and
18696              UpdateBounds is responsible for updating the variables associated
18697              with the Control and sending the events)
18698           - Major cleanup of Size handling; we now have two sizes, client_size
18699             and bounds. Bounds defines the window with decorations, client_size
18700             without them.
18701
18702 2004-08-11 12:55  pbartok
18703
18704         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18705           - Added method to calculate difference between decorated window and
18706             raw client area
18707
18708 2004-08-11 12:54  pbartok
18709
18710         * Label.cs:
18711           - Forcing redraw on resize
18712
18713 2004-08-11 11:43  pbartok
18714
18715         * ImageList.cs:
18716           - Removed disposing of the actual images when the list is disposed
18717
18718 2004-08-11 09:13  pbartok
18719
18720         * Control.cs:
18721           - Now properly reparents windows
18722
18723 2004-08-11 08:37  pbartok
18724
18725         * Control.cs:
18726           - Duh!
18727
18728 2004-08-11 07:47  pbartok
18729
18730         * Control.cs:
18731           - Rewrote the collection stuff. Might not be as fast now, not
18732             keeping the number of children around and accessible directly, but
18733             it's more straightforward
18734
18735 2004-08-11 07:44  pbartok
18736
18737         * AccessibleObject.cs:
18738           - Fixed to match ControlCollection rewrite
18739
18740 2004-08-11 07:43  pbartok
18741
18742         * ImageList.cs:
18743           - Added missing creation of the collection list
18744
18745 2004-08-10 20:08  jackson
18746
18747         * StatusBar.cs: Get the paint message from WndProc
18748
18749 2004-08-10 19:31  jackson
18750
18751         * ThemeWin32Classic.cs: Create Brushes as little as possible
18752
18753 2004-08-10 19:20  jackson
18754
18755         * UICues.cs: Add Flags attribute
18756
18757 2004-08-10 19:19  jackson
18758
18759         * StatusBarPanel.cs: Signature cleanup
18760
18761 2004-08-10 19:10  jackson
18762
18763         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
18764           Initial implementation of status bar item drawing
18765
18766 2004-08-10 17:27  jordi
18767
18768         * TrackBar.cs: add missing methods, properties, and restructure to
18769           hide extra ones
18770
18771 2004-08-10 16:24  jackson
18772
18773         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
18774           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
18775           attribute
18776
18777 2004-08-10 13:21  jordi
18778
18779         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
18780           enhancements and standarize on win colors defaults
18781
18782 2004-08-10 12:52  jackson
18783
18784         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
18785           ThemeWin32Classic.cs: Implement DrawItem functionality
18786
18787 2004-08-10 12:47  jordi
18788
18789         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
18790
18791 2004-08-10 12:32  jordi
18792
18793         * Control.cs: throw ontextchange event
18794
18795 2004-08-10 11:43  pbartok
18796
18797         * Control.cs:
18798           - Added more to the still unfinished Dock/Anchor layout code
18799
18800 2004-08-10 11:39  pbartok
18801
18802         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18803           - Added GetWindowPos method
18804
18805 2004-08-10 11:36  pbartok
18806
18807         * XplatUIWin32.cs:
18808           - Implemented several methods
18809
18810 2004-08-10 09:47  jackson
18811
18812         * TrackBar.cs: Allow control to handle buffering
18813
18814 2004-08-10 09:41  jackson
18815
18816         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
18817
18818 2004-08-10 09:24  jackson
18819
18820         * Label.cs, LinkLabel.cs: Let Control handle buffering.
18821
18822 2004-08-10 09:09  jackson
18823
18824         * StatusBar.cs: Let Control handle all the buffering.
18825
18826 2004-08-10 09:08  jackson
18827
18828         * Control.cs: Control will now handle the buffering code, so each
18829           control does not have to implement this.
18830
18831 2004-08-10 08:34  jackson
18832
18833         * XplatUIDriver.cs: Use default colors from the theme
18834
18835 2004-08-09 17:12  pbartok
18836
18837         * ImageList.cs:
18838           - Fixed several bugs Ravindra pointed out
18839
18840 2004-08-09 16:11  pbartok
18841
18842         * Control.cs:
18843           - Added incomplete dock layout code
18844           - Added support for mouse wheel
18845
18846 2004-08-09 16:09  pbartok
18847
18848         * XplatUIX11.cs:
18849           - Added handling for middle and right mousebutton
18850           - Added handling for mouse wheel
18851           - Added handling for key state and mouse state and position
18852           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
18853           messages
18854
18855 2004-08-09 15:40  jackson
18856
18857         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
18858           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
18859           checkin
18860
18861 2004-08-09 15:37  jackson
18862
18863         * StatusBar.cs: Initial implementation of StatusBar
18864
18865 2004-08-09 15:36  jackson
18866
18867         * ITheme.cs: Add support for drawing status bar and getting status
18868           bar item sizes
18869
18870 2004-08-09 15:35  pbartok
18871
18872         * MouseButtons.cs:
18873           - Fixed values
18874
18875 2004-08-09 15:34  jackson
18876
18877         * ThemeWin32Classic.cs: Add support for drawing status bar and get
18878           status bar item sizes
18879
18880 2004-08-09 15:21  jackson
18881
18882         * ThemeWin32Classic.cs: Use known colors for default control
18883           colours
18884
18885 2004-08-09 15:12  jackson
18886
18887         * ThemeWin32Classic.cs: Make the default font static, it is static
18888           in control so this doesn't change functionality and creating fonts
18889           is sloooooow.
18890
18891 2004-08-09 14:56  pbartok
18892
18893         * X11Structs.cs:
18894           - Added GrabMode enum
18895
18896 2004-08-09 14:55  pbartok
18897
18898         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18899           - Removed Run method, was only required for initial development
18900
18901 2004-08-09 14:51  pbartok
18902
18903         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18904           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
18905           capture
18906
18907 2004-08-09 13:48  pbartok
18908
18909         * XplatUIX11.cs:
18910           - Fixed default sizing for child windows
18911
18912 2004-08-09 12:56  pbartok
18913
18914         * XplatUIX11.cs:
18915           - Added generation of WM_DESTROY message
18916           - Added handling of window manager induced shutdown
18917
18918 2004-08-09 11:31  jackson
18919
18920         * ThemeWin32Classic.cs: New names for control properties
18921
18922 2004-08-09 11:25  jackson
18923
18924         * Control.cs: Use new color names
18925
18926 2004-08-09 11:02  jackson
18927
18928         * XplatUI.cs: Get default window properties from the theme
18929
18930 2004-08-09 11:01  jackson
18931
18932         * ITheme.cs: The theme engine now controls default window
18933           properties
18934
18935 2004-08-09 11:00  jackson
18936
18937         * ThemeWin32Classic.cs: Add default window color properties
18938
18939 2004-08-09 10:17  jackson
18940
18941         * ThemeWin32Classic.cs: Use correct default back color
18942
18943 2004-08-09 10:05  jackson
18944
18945         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
18946           the theme now.
18947
18948 2004-08-09 09:56  jackson
18949
18950         * XplatUI.cs: Remove defaults, these are handled by the theme now.
18951
18952 2004-08-09 09:54  jackson
18953
18954         * Control.cs: Get default properties from the theme.
18955
18956 2004-08-09 09:53  jackson
18957
18958         * ITheme.cs: Themes now handle default control properties
18959
18960 2004-08-09 09:53  jackson
18961
18962         * ThemeWin32Classic.cs: Themes now handle default control
18963           properties so coloring will be consistent
18964
18965 2004-08-08 16:54  jordi
18966
18967         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
18968
18969 2004-08-08 15:08  jordi
18970
18971         * XplatUIX11.cs: fixes keyboard crash
18972
18973 2004-08-08 13:47  jordi
18974
18975         * Label.cs: add cvs header info
18976
18977 2004-08-08 12:09  jackson
18978
18979         * ThemeWin32Classic.cs: Add pen_buttonface
18980
18981 2004-08-08 11:52  jordi
18982
18983         * Label.cs, LinkLabel.cs: [no log message]
18984
18985 2004-08-08 11:34  jordi
18986
18987         * ThemeWin32Classic.cs: Use Windows Standard Colours
18988
18989 2004-08-07 17:32  jordi
18990
18991         * TrackBar.cs: throw exceptions of invalid enums values
18992
18993 2004-08-07 17:31  jordi
18994
18995         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
18996           draw method name
18997
18998 2004-08-07 16:56  jackson
18999
19000         * HorizontalAlignment.cs: Initial checkin
19001
19002 2004-08-07 13:16  jordi
19003
19004         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
19005           methods
19006
19007 2004-08-07 13:05  jordi
19008
19009         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
19010           GetSysColor defines
19011
19012 2004-08-06 18:01  pbartok
19013
19014         * ThemeWin32Classic.cs:
19015           - Fixed some rounding issues with float/int
19016
19017 2004-08-06 18:00  jackson
19018
19019         * DockStyle.cs, AnchorStyles.cs:
19020
19021                   Add flags and serializable attributes.
19022
19023 2004-08-06 17:46  pbartok
19024
19025         * XplatUIX11.cs:
19026           - Implemented GetParent
19027
19028 2004-08-06 17:18  pbartok
19029
19030         * TrackBar.cs:
19031           - Fixed some rounding issues with float/int
19032
19033 2004-08-06 17:17  pbartok
19034
19035         * X11Structs.cs, XplatUIX11.cs:
19036           - Fixed Refresh and Invalidate
19037
19038 2004-08-06 15:30  pbartok
19039
19040         * Control.cs, X11Structs.cs, XplatUIX11.cs:
19041           - Fixed recursive loop when resizing
19042           - Improved/fixed redrawing on expose messages
19043
19044 2004-08-06 09:53  jordi
19045
19046         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
19047           keyboard navigation
19048
19049 2004-08-06 08:02  pbartok
19050
19051         * X11Structs.cs, XplatUIX11.cs:
19052           - Fixed reparenting
19053           - Fixed window border creation
19054
19055 2004-08-05 15:38  pbartok
19056
19057         * XplatUIX11.cs:
19058           - Attempted fix for reparenting problems
19059
19060 2004-08-04 15:14  pbartok
19061
19062         * Control.cs:
19063           - Fixed Invalidation bug (calculated wrong client area)
19064           - Added ClientSize setter
19065
19066 2004-08-04 15:13  pbartok
19067
19068         * Form.cs:
19069           - Added AutoScale properties
19070
19071 2004-08-04 15:13  pbartok
19072
19073         * SWF.csproj:
19074           - Added latest files
19075
19076 2004-08-04 14:11  pbartok
19077
19078         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19079           XplatUIX11.cs:
19080           - Added Invalidate handling
19081
19082 2004-08-03 17:09  jordi
19083
19084         * XplatUIDriver.cs: fixes spelling mistake
19085
19086 2004-07-27 09:53  jordi
19087
19088         * TrackBar.cs: fixes trackbar events, def classname, methods
19089           signature
19090
19091 2004-07-27 09:29  jordi
19092
19093         * ScrollBar.cs: fixes scrollbar events
19094
19095 2004-07-27 04:38  jordi
19096
19097         * Control.cs: changes to be able to run winforms samples
19098
19099 2004-07-26 11:42  jordi
19100
19101         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
19102           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
19103
19104 2004-07-26 05:41  jordi
19105
19106         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
19107           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
19108           implementation
19109
19110 2004-07-22 09:22  jordi
19111
19112         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
19113           check link overlapping, implement events, and fixes
19114
19115 2004-07-21 10:28  jordi
19116
19117         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
19118
19119 2004-07-21 10:19  jordi
19120
19121         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
19122           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
19123           LinkLabelLinkClickedEventArgs.cs,
19124           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
19125           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
19126           implementation
19127
19128 2004-07-19 13:09  jordi
19129
19130         * Control.cs, Label.cs: label control re-written: added missing
19131           functionlity, events, and properties
19132
19133 2004-07-19 10:49  jordi
19134
19135         * Control.cs: fixes SetBounds logic
19136
19137 2004-07-19 01:29  jordi
19138
19139         * Control.cs: Call RefreshWindow only if the window has created
19140
19141 2004-07-15 14:05  pbartok
19142
19143         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
19144           - Implemented ImageList and ImageList.ImageCollection classes
19145           - Added ColorDepth enumeration
19146           - Updated SWF VS.Net project
19147
19148 2004-07-15 11:06  jordi
19149
19150         * XplatUIStructs.cs: added MsgButons enum
19151
19152 2004-07-15 11:03  jordi
19153
19154         * Control.cs: added basic mouse handeling events
19155
19156 2004-07-15 03:38  jordi
19157
19158         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
19159           Vertical TrackBar control implementation
19160
19161 2004-07-13 09:33  jordi
19162
19163         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
19164
19165 2004-07-13 09:31  jordi
19166
19167         * Control.cs, Form.cs: commit: new properties and fixes form size
19168           problems
19169
19170 2004-07-09 14:13  miguel
19171
19172         * ProgressBar.cs: Spelling
19173
19174 2004-07-09 11:25  pbartok
19175
19176         * ProgressBar.cs:
19177           - Removed usage of Rectangle for drawing. Miguel pointed out it's
19178           faster
19179
19180 2004-07-09 11:17  miguel
19181
19182         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
19183
19184                 * ProgressBar.cs: Fixed spelling for `block'
19185
19186                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
19187                 style guidelines.
19188
19189                 Avoid using the += on rect.X, that exposed a bug in the compiler.
19190
19191 2004-07-08 23:21  pbartok
19192
19193         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
19194           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
19195           BaseCollection.cs, Binding.cs, BindingContext.cs,
19196           BindingMemberInfo.cs, BindingsCollection.cs,
19197           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
19198           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
19199           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
19200           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
19201           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
19202           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
19203           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
19204           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
19205           FrameStyle.cs, GiveFeedbackEventArgs.cs,
19206           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
19207           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
19208           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
19209           InputLanguageChangedEventArgs.cs,
19210           InputLanguageChangedEventHandler.cs,
19211           InputLanguageChangingEventArgs.cs,
19212           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
19213           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
19214           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
19215           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
19216           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
19217           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
19218           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
19219           QueryAccessibilityHelpEventArgs.cs,
19220           QueryAccessibilityHelpEventHandler.cs,
19221           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
19222           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
19223           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
19224           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
19225           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
19226           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
19227           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
19228           XplatUIX11.cs, lang.cs:
19229           - Initial check-in
19230