2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2
3         * Control.cs: 
4           - Added new IsRecreating and ParentIsRecreating properties to
5             allow testing if RecreateHandle has been called on ourselves
6             or one of our parents
7           - WndProc(WM_DESTROY): If our control handle is being recreated
8             we immediately need to create the handle when receiving the
9             destroy, that way our child windows find a valid parent handle
10             when they themselves are being recreated upon WM_DESTROY receipt
11             (fix for bug #77654 part 1)
12         * XplatUIX11.cs:
13           - DestroyWindow: WM_DESTROY must be sent to our own window before
14             notifying any child windows. MS documents that child windows
15             are still valid when WM_DESTROY is received. (Control now relies on
16             this behaviour)
17           - Added some fine-grain debug options
18
19 2006-03-06  Jackson Harper  <jackson@ximian.com>
20
21         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
22         box and base calculations off this.
23         * MdiChildContext.cs:
24         * MdiWindowManager.cs: Don't need to ensure scrollbars here
25         anymore.
26         
27 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
28
29         * Splitter.cs: In situations where the affected control is added
30           to the parent's control list after the splitter, we would not
31           populate affected. Now we try populating it on mousedown, if
32           it's not already set, and force it to be re-set whenever our
33           parent changes.
34
35 2006-03-03  Matt Hargett  <matt@use.net>
36
37         * Control.cs: implement Control.Padding
38         * Padding.cs: -Padding.All returns -1 when constructing with the
39         implicit default ctor
40         -Padding.ToString() matches MS.NET
41         * ContainerControl.cs: implement
42         ContainerControl.AutoScaleDimensions
43         * ListControl.cs: implement ListControl.FormattingEnabled
44         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
45         * ButtonBase.cs:
46         * TabPage.cs: Implement UseVisualStyleBackColor.
47         * PictureBox.cs: Implement PictureBox.InitialImage.
48
49 2006-03-03  Mike Kestner  <mkestner@novell.com>
50
51         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
52         event declarations to proxy to base event.
53         * ListViewItem.cs: update to use ItemControl.
54         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
55         * ThemeWin32Classic.cs: update to new ListView theme API and fix
56         column header label rendering for 0 width columns.
57
58 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
59
60         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
61           that causes the control to be created. Fixes #77476.
62
63 2006-03-02  Jackson Harper  <jackson@ximian.com>
64
65         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
66         expose_pending.
67
68 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
69
70         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
71           passed in for the EventArgs (fixes #77690)
72
73 2006-03-01  Jackson Harper  <jackson@ximian.com>
74
75         * ScrollBar.cs: Refresh afterbeing resized.
76
77 2006-02-28  Mike Kestner  <mkestner@novell.com>
78
79         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
80         Clean up a tracker compile warning.
81         * MenuItem.cs: add internal PerformPopup method.
82         [Fixes #77457]
83
84 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
85
86         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
87           implicit expose) when the text is set to null
88
89 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
90
91         * RichTextBox.cs (FlushText): When newline is true, we always
92           need to split the line, even if no text is on it and we may
93           never eat newlines. (Fixes #77669)
94
95 2006-02-28  Mike Kestner  <mkestner@novell.com>
96
97         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
98         and set Selected instead.
99         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
100         collections.
101
102 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
103
104         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
105
106 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
107
108         * FontDialog.cs:
109           - Got rid of the panel. All controls are now directly added to
110             the dialog form
111           - It is now possible to set a font with the Font property
112           - MinSize and MaxSize property do now what they should
113           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
114           - Searching and selecting a font with the font textbox works now,
115             the same applies to the style and size textbox
116           - Draw the correct 3D border in the example panel
117           - Fixed a little mem leak (unused fonts didn't get disposed)
118           - Many other internal updates/rewrites...
119           - Fix typo
120
121 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
122
123         * TextControl.cs: 
124           - InsertRTFFromStream: Added 'number of characters inserted' argument
125           - set_SelectedRTF: Now using the number of characters to calculate
126             the new location for the selection and cursor (x/y cannot be used
127             due to potentially already wrapped text)
128
129 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
130
131         * TextControl.cs: Added property and implemented means to allow 
132           disabling recalculation of a document (can be used to speed up
133           multiple inserts and is needed to make RTF inserts predictable, see
134           bug #77659)
135         * RichTextBox.cs: Using the new NoRecalc property of Document to
136           keep x/y insert locations predictable. Also makes it faster inserting
137           large chunks of RTF
138
139 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
140
141         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
142           it's easier for a child control to handle the other messages without
143           having to duplicate the special functionality
144         * TextBoxBase.cs
145           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
146             code to handle processing the key ourselves, in order to get 
147             access to the result of KeyEventArgs.Handled. We now only call 
148             ProcessKey if they key hasn't been handled already. Fixes #77526.
149           - set_Text: If null or empty string is given, just clear the 
150             document. Fixes part of #77526
151
152 2006-02-27  Jackson Harper  <jackson@ximian.com>
153
154         * SizeGrip.cs: Paint the background color before painting the grip
155         so things look right.
156         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
157
158 2006-02-27  Mike Kestner  <mkestner@novell.com>
159
160         * ListView.cs:
161           - Restructure layout and invalidation model to remove a ton of
162           flicker from the control and speed up performance in general.
163           - Add manual column resize, flickers like crazy, but I already have
164           some ideas on how I'll fix that. (#76822)
165           - Merge the three Icon-based views into a single layout method.
166           - Move item selection interaction logic from the item since 
167           interaction with the collections is more appropriate to the view.
168           - Deselection on non-item clicks.
169         * ListViewItem.cs:
170           - Encapsulate most of the layout. Add some internal props to trigger
171           layout.  Move to a model where Items invalidate themselves instead
172           of just invalidating the whole control every time something changes.
173           - Invalidate on Text/Caption changes.
174           - switch to an offset based layout model to avoid having to absolute
175           position every element on item moves.
176           - correct checkbox layout to conform to MS layout.
177         * ThemeWin32Classic.cs:
178           - refactor some column header drawing code.
179           - fix string justification for column headers (#76821)
180           - make SmallIcon labels top justified for compat with MS impl.
181         * ThemeClearlooks.cs:
182           - adjust to new ListViewItem internal checkbox bounds api.
183
184 2006-02-27  Jackson Harper  <jackson@ximian.com>
185
186         * Control.cs:  Change where implicit controls fall in the zorder.
187         They are now on top of all children.
188         - Synced AddImplicit code with Add
189         - Removed unused enumerator.
190         * SizeGrip.cs: Remove the TODO as its been TODONE.
191
192 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
193
194         * TextControl.cs(Insert): Combine the last lines unless the insertion
195           string ends with \n\n, otherwise we leave one line too many (Fixes
196           something I noticed with the testapp for #77526; the bug itself was
197           already fixed in the previous checkin)
198
199 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
200
201         * RichTextBox.cs:
202           - SelectionColor and SelectionFont methods no longer set absolute
203             styles. Instead, the keep font or color respectively (This 
204             resolves a long-standing FIXME in the code)
205           - When flushing RTF text, the insert code now considers text trailing
206             behind the insertion point (Fixes the bug where when replacing
207             the selected text via SelectedRTF the remainder of the line behind 
208             the selection would stay on the first insertion line)
209         * TextBoxBase.cs:
210           - AppendText now updates the selection points after inserting text
211           - AppendText now ensures that the last tag (sometimes 0-length) of
212             the document is used for the style information (Fixes part of 
213             bug #77220)
214         * TextControl.cs:
215           - Created new FontDefiniton class to allow describing partial style
216             changes
217           - StreamLine() now takes a lines argument, to allow it to decide
218             whether an encountered zero-length tag is the last in the document
219             (which must be kept to not loose the font/color contained in it,
220             for later appends)
221           - Created Combine() and Split() methods for Marker structs, to 
222             support marker updates due to reformatted documents (soft line
223             wraps)
224           - Implemented Document.CaretTag setter
225           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
226             of the last line (Not the cause, but also exposed by bug #77220)
227           - Added LineTag argument to InsertString method, to allow callers
228             to force a certain tag to be used (required to force use of the
229             trailing zero-length tag of a document)
230           - Now updating markers in Combine(), to avoid stale tag markers
231           - Added some method descriptions to aid maintenance
232           - Implemented new FormatText concept, allowing additive/subtractive
233             formatting by only specifying the components that are to be 
234             changed. This was needed for resolving the RTB.SelectedColor/
235             RTB.SelectedFont fixmes
236           - Added Break() support method to allow breaking up linetags (used
237             for partial formatting)
238           - Added GenerateTextFormat() method. It is used for partial 
239             formatting and allows to generate a full font/color from given
240             attributes and an existing tag.
241
242 2006-02-26  Jackson Harper  <jackson@ximian.com>
243
244         * XplatUIX11.cs:  Use the correct caption height.
245         - Translate hittest coordinates to screen coords to match MS.
246         * XplatUIWin32.cs: When we create MDI windows we need to reset
247         some of the style flags, so we get a nice blank window, and can
248         draw all the decorations ourselves.
249         - Set a clipping rectangle on the non client paint event, the
250         window manager drawing code needs one.
251         * Form.cs: The window manager needs to know when the window state
252         has been updated.
253         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
254         don't need to factor in border and title sizes in these
255         methods. TODO: Remove the args and fix the call points.
256         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
257         properly.
258         - Let the driver set the cursors.
259         - Improve active window handling
260         - Correct sizes for title bars and buttons.
261         - Match MS drawing better
262         * MdiWindowManager.cs: We don't need to handle border style
263         updates specially anymore.
264         - Check for scrollbars when windows are done moving
265         - Handle Active properly.
266         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
267         correctly. I am spewing the exception though, so we don't hide the
268         bugs.
269         
270 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
271
272         * DataGridViewRowPostPaintEventArgs.cs,
273           DataGridViewCellPaintingEventArgs.cs,
274           DataGridViewRowCollection.cs,
275           DataGridViewRowPrePaintEventArgs.cs,
276           DataGridViewCell.cs: Clear a few warnings and implement a few
277           exceptions that should be thrown.
278
279 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
280
281         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
282           'inheriting' our parent's (non-default) cursor. (Part of
283            the fix for #77479)
284
285 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
286
287         * XplatUIX11.cs: Fixed cast to make csc happy
288
289 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
290
291         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
292           it's for the client area (part of fix for #77479 and needed
293           for MDI window cursor handling)
294         * XplatUIX11.cs
295           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
296             the appropriate default cursors and also passing the message
297             up the parent chain 
298           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
299             for non-client areas
300
301 2006-02-15  Jackson Harper  <jackson@ximian.com>
302
303         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
304         is a real MDI window
305
306 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
307
308         * X11DesktopColors.cs: Instead of checking the desktop session
309           string for "KDE" check if it starts with "KDE"
310
311 2006-02-10  Jackson Harper  <jackson@ximian.com>
312
313         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
314         systems).
315
316 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
317
318         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
319           errors
320         * ColorDialog.cs:
321           - Got rid of the panel. All controls are now directly added to
322             the dialog form
323           - Changed to mono coding style
324
325 2006-02-10  Jackson Harper  <jackson@ximian.com>
326
327         * InternalWindowManager.cs: We don't need the set visibility to
328         false hack anymore now that peter has written beautiful shutdown
329         code.
330
331 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
332
333         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
334           where already explicitly destroyed
335
336 2006-02-10  Jackson Harper  <jackson@ximian.com>
337
338         * MdiClient.cs: Handle the case where windows are too high or to
339         the left and we need scrollbars.
340
341 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
342
343         * MimeIcon.cs: Added some icons
344         * FileDialog.cs:
345           - Fixed bug #77477
346           - Got rid of the panel. All controls are now directly added to
347             the dialog form
348           - Changed to mono coding style
349           - On Linux "My Computer" and "My Network" will now show some
350             more usefull information. A new class, MasterMount, gathers
351             this information from /proc/mount. Updated MWFFileView to make
352             use of this information
353           - Fixed a bug that caused FileDialog to crash when
354             ".recently_used" file had a zero size
355           - FilterIndex does now what it should
356           - Some Refactoring
357         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
358             FileDialog changes
359
360 2006-02-09  Jackson Harper  <jackson@ximian.com>
361
362         * ComboBox.cs: Don't touch if null.
363
364 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
365
366         * Cursor.cs: 64bit safeness fix
367         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
368
369 2006-02-09  Jackson Harper  <jackson@ximian.com>
370
371         * Form.cs: If a form is made into an MDI form update the styles so
372         all the props can get set correctly.
373         - Kill the mdi_container when we dont need it anymore.
374         * InternalWindowManager.cs: Add missing NOT
375
376 2006-02-08  Jackson Harper  <jackson@ximian.com>
377
378         * InternalWindowManager.cs: Respek clipping when drawing MDi
379         decorations.
380
381 2006-02-08  Jackson Harper  <jackson@ximian.com>
382
383         * Hwnd.cs: Add bits to track non client expose events.
384         * XplatUIX11.cs: Track non client expose events on the hwnd. This
385         gives us a proper invalid rect and will allow for some nice
386         optimizations with NC client drawing
387         - MDI windows are children windows, so move their style handling
388         into the child window block.
389         * InternalWindowManager.cs: Remove a state reset that was
390         getting invoked at the wrong time. Fixes managed windows getting
391         into a 'stuck' captured state.
392
393 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
394
395         * TextControl.cs (Document.ctor): Now initializing 
396           selection_anchor. Fixes #77493
397
398 2006-02-07  Jackson Harper  <jackson@ximian.com>
399
400         * TrackBar.cs: The increment/decrements were backwards.
401
402 2006-02-07  Mike Kestner  <mkestner@novell.com>
403
404         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
405         to the instance itself.
406
407 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
408
409         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
410           on ulongs and pointers, the size differs between 32bit and 64bit
411           systems. 
412
413 2006-02-07  Mike Kestner  <mkestner@novell.com>
414
415         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
416         for 64 bit platforms to work around a metacity bug. 
417
418 2006-02-07  Jackson Harper  <jackson@ximian.com>
419
420         * TrackBar.cs: Process the input keys we need, and hookup to
421         KeyDown instead of using WndProc, so we get key messages.
422
423 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
424
425         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
426           machine we're on. 
427         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
428           we need to translate the XdndVersion atoms array before sending it
429
430 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
431
432         * XplatUIX11.cs: 
433           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
434             number of bits for the property, not the number of bytes. The
435             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
436             but would not crash since it specified 8 bits instead of 4 bits)
437           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
438             defined as XID -> long in the C headers)
439           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
440             references since those are now IntPtr to begin with
441           - Switched all Atom.XXX 'int' casts to IntPtr casts
442           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
443           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
444           - Added XChangeActivePointerGrab DllImport (for X11DnD)
445         * X11Structs.cs:
446           - Changed 'int' type for Atoms in XEvent structures to IntPtr
447           - Changed atom in HoverStruct to be IntPtr
448         * X11DnD.cs:
449           - Removed local DllImports, switched code to use those from XplatUIX11
450           - Removed/fixed casts related to the switch of Atom to be a IntPtr
451
452 2006-02-06  Mike Kestner  <mkestner@novell.com>
453
454         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
455         method signatures in the import region.  There may still be some
456         lingering struct marshaling issues, as I didn't drill down into those.
457         Yet.
458
459 2006-02-06  Jackson Harper  <jackson@ximian.com>
460
461         * ComboBox.cs: Dont manually set the top_item, this is computed
462         when the scrollbar position is set.
463
464 2006-02-06  Mike Kestner  <mkestner@novell.com>
465
466         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
467         startup crashes on amd64.  There's other fixes needed.  All pinvoke
468         usage of Atom needs to be mapped to IntPtr for example.  And there are
469         likely other int/long issues to be addressed.
470
471 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
472
473         * FileDialog.cs: One more...
474
475 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
476
477         * FileDialog.cs: Next try
478
479 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
480
481         * FileDialog.cs: First part of fix for #77464
482
483 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
484
485         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
486           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
487           AcceptButton border drawing.
488
489 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
490
491         * Form.cs: Moved positioning of form after auto scaling is applied,
492           otherwise it would possibly use wrong form size.
493
494 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
495
496         * Control.cs (RecreateHandle): No need to re-create any child
497           controls, the child windows will get destroyed automatically by
498           the windowing system or driver, and re-created when the handle
499           is being accessed the first time. Fixes #77456
500         * Form.cs: No longer setting the form to closing if the handle is 
501           being recreated. This seems like the right thing to do, don't
502           have a bug or testcase for this, though.
503
504 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
505
506         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
507           controls to avoid unwanted side effects
508
509 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
510
511         * Control.cs: 
512           - ScaleCore needs to scale the bounds, not the ClientSize of the 
513             control. Fixes #77416.
514           - DefaultSize is 0,0 for control
515         * TextBoxBase.cs: 
516           - DefaultSize is 100, 20
517           - SetBoundsCore: Now enforcing the height, no matter if the provided
518             height is more or less than the preferred one, as long as AutoSize
519             is on
520         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
521
522 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
523
524         * Control.cs:
525           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
526             call unless both performLayout is true *and* we have a pending
527             layout change
528           - ResumeLayout: MS does not completely nest Suspend and Resume,
529             they bottom out at 0, fixed our code to match that.
530           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
531             SetBoundsCore, we were updating even when we shouldn't. This fixes
532             swf-anchors mis-anchoring when resizing the app fast and lots.
533           - UpdateDistances: Now only setting the left and top distance if 
534             we have a parent and are not suspended, this is based on
535             a suggestion by Don Edvaldson in bug #77355.
536           - OnVisibleChanged: Fixed logic when to create the control. We may
537             not create the control if we have no parent or if it's not visible;
538             switched to using Visible property instead of is_visible field 
539             since the property also considers parent states. This fixes a bug
540             when starting Paint.Net
541
542 2006-02-02  Jackson Harper  <jackson@ximian.com>
543
544         * Form.cs: If the forms handle hasn't been created yet don't call
545         into xplatui to make it top most, just set the topmost flag on the
546         form in CreateParams
547         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
548
549 2006-02-01  Jackson Harper  <jackson@ximian.com>
550
551         * ScrollableControl.cs: Refactored the Recalculate method a
552         little, this wasn't handling all the variants of bottom and right
553         bars needed to be added and added/removed based on their
554         counterparts being added/removed (which changes the drawable
555         size). Also we special case client widths and heights of 0 and
556         don't add the scrollbar for those.
557
558 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
559
560         * XplatUIX11.cs: 
561           - Added method to get AbsoluteGeometry(); currently unused, but might
562             be used in the future, if we try again to figure out toplevel
563             coordinates with some more crappy window managers
564           - Added FrameExtents() method to retrieve the WM set decoration size
565           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
566             to deal with at least KDE, FVWM and metacity (Fixes #77092)
567         * Hwnd.cs: 
568           - Added whacky_wm tracking var for metacity
569           - Added logic to have default menu height if the actual menu height
570             has not yet been calculated (part of fix for #77426)
571         * Form.cs: Keep track whether client size has been set and re-set 
572           it if a menu is added/removed afterwards (Fixes #77426)
573
574 2006-01-31  Jackson Harper  <jackson@ximian.com>
575
576         * Control.cs: When a new Site is set on the component attempt to
577         pull the AmbientProperties from it.
578
579 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
580
581         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
582           in the background of the owning form. Fixes #77332
583
584 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
585
586         * MimeIcon.cs: Fix for #77409
587
588 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
589
590         * XplatUIX11GTK.cs: Initial import
591
592 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
593
594         * FixedSizeTextBox: fixes class signature
595
596 2006-01-30  Jackson Harper  <jackson@ximian.com>
597
598         * FixedSizeTextBox.cs: New internal class that represents a
599         textBox that will not be scaled.
600         * TreeView.cs:
601         * ComboBox.cs:
602         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
603         standard TextBox.
604                 
605 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
606
607         * XplatUIX11.cs: Retrieve default screen number instead of
608           assuming 0. Attempted fix for #77318
609
610 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
611
612         * XplatUIWin32.cs: 
613           - GetWindowPos: When a window is parented by FosterParent, use 
614             the desktop instead of FosterParent as the base to get coordinates
615           - CreateWindow: Don't make FosterParent the parent window for Popups
616             if we don't want a taskbar entry, Popups automatically don't get one
617         * Hwnd.cs: Need to call remove to actually remove the key from the
618           hash table
619
620 2006-01-30  Mike Kestner  <mkestner@novell.com>
621
622         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
623
624 2006-01-30  Jackson Harper  <jackson@ximian.com>
625
626         * TreeView.cs:
627         * TreeNode.cs: Raise events no matter how the treenode is
628         checked. Patch by Don Edvalson.
629
630 2006-01-30  Jackson Harper  <jackson@ximian.com>
631
632         * TreeNode.cs: Signature fix.
633
634 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
635
636         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
637
638 2006-01-20  Mike Kestner  <mkestner@novell.com>
639
640         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
641         event forwarding when menus are active.
642         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
643         Most of the patch is pdb's with a little rework.
644
645 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
646
647         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
648           Removed GetMenuDC and ReleaseMenuDC methods; replaced
649           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
650         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
651         * InternalWindowManager.cs: Added use of PaintEventStart/End to
652           handling of WM_NCPAINT message, now passing the PaintEventArgs to
653           the PaintWindowDecorations method
654         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
655         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
656         * MenuAPI.cs: Made tracker window invisible
657         * XplatUIWin32.cs:
658           - Removed GetMenuDC and ReleaseMenuDC methods
659           - Implemented the client=false path for PaintEventStart and
660             PaintEventEnd
661
662 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
663
664         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
665         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
666           styles
667         * Form.cs: 
668           - MaximizeBox, MinimizeBox: Recreate the handle when setting
669             the style
670           - CreateParams: Reworked the styles to match MS look'n'feel,
671             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
672             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
673
674 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
675
676         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
677           window is not mapped, since otherwise every form that's being 
678           created is considered minimized, which is wrong.
679         * Form.cs: Catching the exception and returning our internal value
680           instead
681
682 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
683
684         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
685           SetWindowMinMax() to have means to tell the driver about the minimum,
686           maximum and maximized state window sizes. (Part of the fix for #76485)
687         * Form.cs:
688           - Implemented tracking of minimum and maximum window size, now calling
689             new SetWindowMinMax() driver method to tell the driver (Part of the
690             fix for #76485)
691           - Finished handling of WM_GETMINMAXINFO method, now setting all values
692             (Completes fix for #76485)
693           - Calling new SetWindowMinMax driver method when the handle for a 
694             form is created, to make sure the driver knows about it even if
695             the values have been set before the window was created
696           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
697             to avoid messing up our anchoring calculations (partial fix
698             for #77355)
699         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
700         * XplatUIX11.cs:
701           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
702           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
703             (and presumably other freedesktop.org compliant WMs). Left the
704             assumption unmapped=minimized, needed for SetVisible to work.
705           - Now setting the window state when creating windows
706           - Fixed SetVisible to consider/set the window state when mapping
707             a Form. We cannot set the state before it's mapped, and we cannot
708             use Form.WindowState once it's mapped (since it would ask the
709             driver and get 'normal'. Therefore, we grab the state before
710             mapping, map, and then set state.
711           - Implmemented SetWindowMinMax method; Metacity does not seem to
712             honor the ZoomHints, though.
713         * XplatUIWin32.cs:
714           - Removed MINMAXINFO (moved to XplatUIStructs)
715           - Added SetWindowMinMax stub (on Win32 the only way to set that
716             information is in response to the WM_GETMINMAXINFO message, which
717             is handled in Form.cs)
718           - Added logic to SetVisible to set the proper window state when a 
719             form is made visible (fixes #75720)
720
721 2006-01-26  Jackson Harper  <jackson@ximian.com>
722
723         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
724         same way we handle them with Invoke.
725
726 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
727
728         * Form.cs:
729           - Added tracking of window state so CreateParams can return
730             the appropriate style
731           - Moved setting of WS_CAPTION style in CreateParams to allow
732             styles without caption
733         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
734           control if the TextBox property is accessed. Fixes #77345
735         * Control.cs:
736           - get_Created: now uses is_disposed and is_created to determine
737             return value (suggested by Jackson)
738           - CreateHandle: No longer exits if the handle is being recreated
739           - RecreateHandle: If the handle is not yet created call the 
740             appropriate method to create either control or handle. If the
741             control is already created CreateHandle will simply exit instead
742             of just creating the handle
743         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
744           now SendMessage WM_DESTROY directly to the control when DestroyWindow
745           is called.
746         * XplatUIX11.cs: 
747           - When DestroyWindow is called, instead of waiting for the 
748             DestroyNotification from X11, we directly post it to the WndProc
749             and immediately dispose the hwnd object.
750             Same applies to DestroyChildWindows, and this obsoletes the
751             expose_pending tracking. Contrary to Win32 behaviour we destroy our
752             child windows before our own, to avoid X11 errors.
753           - Removed the direct sending of WM_PAINT on UpdateWindow
754         * XplatUIWin32.cs:
755           - Reworked DoEvents and GetMessage to allow access to internal queue
756             even when trying non-blocking access to the queue.  Fixes #77335. 
757             Based on a patch suggestion by Don Edvalson. The new private
758             GetMessage can now also be used as a backend for a PeekMessage
759             frontend version.
760         * XplatUI.cs: Improved debug output for CreateWindow
761
762 2006-01-25  Jackson Harper  <jackson@ximian.com>
763
764         * Help.cs: Allow param to be null. Patch by Don Edvalson.
765
766 2006-01-24  Jackson Harper  <jackson@ximian.com>
767
768         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
769         when we have a MaxDropItems lower then the selected index.
770
771 2006-01-24  Jackson Harper  <jackson@ximian.com>
772
773         * Control.cs: Don't allow selection of non visible controls, allow
774         selection of controls without parents.
775
776 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
777
778         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
779         * DataGridDrawingLogic.cs: Add editing row only when is necessary
780
781 2006-01-23  Jackson Harper  <jackson@ximian.com>
782
783         * UpDownBase.cs: Make the textbox handle all the selection and
784         tabbing. This fixes tabing to updown controls.
785
786 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
787
788         * TextBoxBase.cs: fixes exception thown the object was null
789
790 2006-01-23  Jackson Harper  <jackson@ximian.com>
791
792         * ButtonBase.cs: Just use the base CreateParams. They set
793         visibility and enabled correctly.
794         * ComboBox.cs:
795         * TrackBar.cs:
796         * MonthCalendar.cs: Lets let the base set as much of the
797         createparams as possible so we don't have duplicate code all over
798         the place.
799
800 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
801
802         * ThemeGtk.cs: Added TrackBar and some experimental code to
803           get double buffering back
804
805 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
806
807         * DataGrid.cs: Allows row number set internally higher than the last
808         when creating a new row. Restores the editing functionality.
809
810 2006-01-20  Mike Kestner  <mkestner@novell.com>
811
812         * MimeIcon.cs: delay Image creation until the icons are accessed
813         instead of creating 190 scaled images on GnomeHandler startup.
814
815 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
816
817         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
818           first call base before processing the event. Fixes #77279
819
820 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
821
822         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
823           that the stride for the GDI bitmap would match the stride of
824           a DIB or a Cursor.
825
826 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
827
828         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
829
830 2006-01-19  Jackson Harper  <jackson@ximian.com>
831
832         * ComboBox.cs: Hookup the text controls keydown event so we get
833         those when the text control has the focus.
834
835 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
836
837         * Label.cs: Now using the base events instead of defining new ones;
838           this allows us to just call the base properties without having to
839           duplicate all base property logic 
840
841 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
842
843         * Label.cs: A label by default is not a tabstop (Fixes one of our
844           failing nunit tests)
845
846 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
847
848         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
849         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
850
851 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
852
853         * Cursor.cs: Reimplemented creating cursor bitmaps without using
854           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
855           This fixes #77218
856         * XplatUIWin32.cs: 
857           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
858             constructor creates images that can't be saved. Part of the fix
859             for #76103
860           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
861           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
862             bug fix for handling window state in forms properly)
863
864 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
865
866         * ThemeGtk.cs: Simplify ScrollBar drawing
867
868 2006-01-18  Jackson Harper  <jackson@ximian.com>
869
870         * Splitter.cs: Set the default dock style for the splitter control
871         in the constructor.
872
873 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
874
875         * ThemeGtk.cs: Corrected StateType and ShadowType for
876           gtk_paint_box
877
878 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
879
880         * Control.cs: Make use of Theme.DoubleBufferingSupported
881         * ThemeGtk.cs:
882           - Added drawing for flat style buttons
883           - Added ScrollBar drawing
884
885 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
886
887         * ThemeClearlooks.cs: Removed some unneeded code.
888         * ThemeGtk.cs: First part of ThemeGtk enhancements.
889
890 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
891
892         * LinkLabel.cs: We need to update the hover drawing when
893           leaving the control as well.
894
895 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
896
897         * DataGrid.cs: Clicking on non empty areas in the columns
898            area was giving an exception
899
900 2006-01-17  Jackson Harper  <jackson@ximian.com>
901
902         * ThemeWin32Classic.cs:
903         * ListView.cs: Do not draw/clip the headers when the header style
904         is None.
905
906 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
907
908         * DataGrid.cs: Fixes 77260
909         
910 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
911
912         * DataGrid.cs: Clicking on a column on a empty grid was giving
913           an exception
914
915 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
916
917         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
918           or any keypress will crash the grid.
919
920 2006-01-17  Mike Kestner  <mkestner@novell.com>
921
922         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
923         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
924         invisible/previously-visible items.
925         [Fixes #76909]
926
927 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
928
929         * ThemeClearlooks.cs:
930         - Added CL_Draw_Button method; now other theme controls that are 
931           not derived from button or do not have a button can draw buttons
932           too
933         - Updated ComboBox drawing
934         - Beautified RadioButton drawing
935         - Corrected drawing of bottom and left tabs
936         - Beautified DateTimePicker and MonthCalendar
937         - Added CPDrawButton and CPDrawRadioButton
938
939 2006-01-16  Jackson Harper  <jackson@ximian.com>
940
941         * ComboBox.cs: Set the initial value of the scrollbar to the
942         current index. Reduce the numbers of refreshs and IndexOfs called.
943
944 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
945
946         * FileDialog.cs: When the file listview is focused hitting the
947           backspace key moves the fileview to the parent directory
948
949 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
950
951         * Form.cs: 
952           - Added RecreateHandle call when changing taskbar visibility to 
953             trigger reparenting in Win32 driver (Fixes #75719)
954           - If a window has minimize or maximize buttons, it cannot have
955             a help button
956         * XplatUIWin32.cs:
957           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
958             the toplevel form with FosterParent (A toolwindow not on the
959             taskbar) (Fixes #75719)
960           - Made FosterParent a toolwindow
961
962 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
963
964         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
965
966 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
967
968         * ToolTip.cs: If SetToolTip is called from a control and the mouse
969           is currently over that control, make sure that tooltip_window.Text
970           gets updated
971
972 2006-01-13  Mike Kestner  <mkestner@novell.com>
973
974         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
975
976 2006-01-13  Jackson Harper  <jackson@ximian.com>
977
978         * TreeView.cs: On MS GetNodeAt never actually factors in the X
979         value passed.  Also redraw the selected node when we recieve
980         focus, so tabbing between trees works correctly.
981
982 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
983
984         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
985           ~/.gconf/%gconf-tree.xml, so use
986           .gconf/desktop/gnome/interface/%gconf.xml
987
988 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
989
990         * TextControl.cs: Draw text in gray if control is disabled
991
992 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
993
994         * TreeView.cs: Draw the focus rectangle outside the highlight, to
995           make sure it's always visible. Fixes #76680.
996
997 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
998
999         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
1000
1001 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
1002
1003         * PageSetupDialog.cs: Added.
1004         * PrintDialog.cs: Attributes.
1005         * PrintPreviewControl.cs: Updates.
1006         * PrintPreviewDialog.cs: Updates.
1007         
1008 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
1009
1010         * Control.cs: Undid my selection check fix, since it's not needed
1011         * TextBoxBase.cs:
1012           - Now considering the presence of hscroll/vscroll when sizing
1013             vscroll/hscroll respectively. Fixed bug #77077
1014           - Added Left/Up/Down/Right to IsInputKey list to prevent
1015             ContainerControl from stealing them. This fixes what I broke
1016             with my last checkin.
1017
1018 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
1019
1020         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
1021           I finally understand how the property can be set without a setter :-)
1022
1023 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
1024
1025         * Application.cs:
1026           - Switched RunLoop to use static Message.Create to create a 
1027             Message object
1028           - Added PreProcessMessage call in runloop for keyboard events; this
1029             is part of the fix for #77219, I overlooked this originally in the
1030             MSDN doc for PreProcessMessage
1031         * Control.cs:
1032           - Removed call to PreProcessMessage from handling of keyboard 
1033             messages; it's supposed to be done in the message pump
1034           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
1035             per MSDN documentation.
1036           - IsInputChar: All chars are input chars by default; removed the 
1037             parent calling chain, MS does not document that
1038           - PreProcessMessage: If IsInputChar is true, we want to return false
1039             to allow dispatching of the message
1040           - When selecting the next control, now also check that we're not
1041             selecting ourselves again and therefore return a false positive.
1042         * TextBoxBase.cs:
1043           - Tried to match return values for IsInputKey and ProcessDialogKey
1044             to what MS returns; moved processing of our special keys outside
1045             ProcessDialogKey since MS does not seem to return true on those.
1046           - Moved code that previously was in ProcessDialogKey into new private
1047             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
1048           - Reworked handling of WM_CHAR to not have to duplicate code from
1049             Control.cs anymore, instead we simply call down to base.
1050            
1051 2006-01-12  Jackson Harper  <jackson@ximian.com>
1052
1053         * ComboBox.cs: We always need to refresh the text area when
1054         EndUpdate is called. Fixes the combobox in the file dialog.
1055         * Control.cs: Don't create the creator_thread until the controls
1056         handle is created.  Also in InvokeRequired we check if the
1057         creator_thread is null. This gives the effect of InvokeRequired
1058         returning true if the controls handle is not created yet, and
1059         matches MS.
1060
1061 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
1062
1063         * XplatUI.cs:
1064           - Added StartLoop() driver method. This is used to allow drivers to
1065             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
1066             loop for a particular thread
1067           - Added EndLoop() driver method. This is called once the message
1068             pump for the thread is shut down
1069           - Added SupportsTransparency method to allow the driver to indicate
1070             opacity support for windows
1071         * Form.cs:
1072           - Removed TODO attribute, completed AllowTransparency property
1073           - Added documented logic to Opacity
1074         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
1075           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
1076           versions of CompatibleTextRendering
1077         * X11Structs.cs: Added opacity atom to our atom enumeration
1078         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
1079           of a form might be set before it's reparented by the WM, and we need
1080           the opacity value without calling up to Form)
1081         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
1082           SupportsTransparency() driver methods
1083         * Application.cs: Now calling StartLoop and EndLoop driver methods
1084         * XplatUIX11.cs:
1085           - Added opacity atom registration
1086           - Added StartLoop()/EndLoop() methods. They're empty right now but
1087             will need to get implemented when we switch to a per-thread queue
1088           - Implemented SupportsTransparency() method
1089           - Implemented SetWindowTransparency() method
1090           - Added support for setting the opacity value when a window is
1091             reparented (since the opacity needs to be set on the WM frame)
1092         * XplatUIOSX.cs, XplatUIWin32.cs:
1093           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
1094
1095 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
1096
1097         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
1098
1099 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
1100
1101         * FileDialog.cs: Added ToolTip for MWFFileView
1102         * MimeIcon.cs: Rewrote GnomeHandler.
1103           - Get currently used gnome icon theme from
1104             ($HOME)/.gconf/%gconf-tree.xml
1105           - Make use of inherited icon themes
1106           - Support SVG icon themes like Tango via librsvg
1107
1108 2006-01-12  Miguel de Icaza  <miguel@novell.com>
1109
1110         Revert's Jackson's revert which broke 2.0 builds.   Fix both
1111         builds. 
1112         
1113         * Application.cs: Move the use_compatible_text_rendering outside
1114         the NET_2_0 define.  If we ever need to use the
1115         use_compatible_text_rendering on the individual controls they will
1116         access the variable from the common shared code paths.
1117
1118 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
1119
1120         * XplatUI.cs:
1121           - Added more granular debug options
1122           - Added method to print both window text and id
1123           - Switched debug output to use new Window() debug method
1124           - Added IsEnabled() driver method
1125           - Added EnableWindow() driver method
1126         * Form.cs:
1127           - Removed end_modal; no longer needed, new loop handles termination
1128             via 'closing' variable
1129           - If form is modal, setting DialogResult will now initiate loop
1130             termination via 'closing' variable
1131           - Added support for is_enabled/WS_DISABLED to CreateParams
1132           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
1133             does all the work
1134           - Removed code that's now in RunLoop from ShowDialog()
1135           - Added various documented sanity checks to ShowDialog()
1136           - Added handling of WM_DESTROY message; we set 'closing' on getting
1137             the message to indicate the message pump to terminate
1138           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
1139             send by the Application.ExitThread method. (We send the message
1140             to destroy the window after all other events have been
1141             processed through the queue, instead of destroying the handle 
1142             directly)
1143           - Moved code from Close() method to WM_CLOSE handler; added logic
1144             to only send close-related events if the form is not displayed
1145             modal
1146         * Splitter.cs (..ctor): Fixed typo in resource name
1147         * Control.cs:
1148           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
1149             brush now
1150           - set_Cursor: Now only setting calling into XplatUI if the handle for
1151             the control is already created; this avoids implict handle creation
1152             or crashes if it's not created
1153           - set_Enabled: Now setting the enabled state via the new driver method
1154             instead of just tracking it
1155           - CreateParams: Added logic to set WS_DISABLED based on enabled state
1156           - CreateControl: Reordered event firing and method calls to more
1157             closely fire events in the order MS does. Now setting the
1158             enabled state in the driver when creating the control.
1159           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
1160             match MS order
1161         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
1162           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
1163         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
1164         * Hwnd.cs:
1165           - Added tracking of window enabled state (get_Enabled/set_Enabled)
1166           - Added EnabledHwnd property to easily allow a driver to find the
1167             handle of the first enabled window in the parent chain (this is
1168             used by drivers to pass up input events of disabled windows)
1169         * XplatUIDriver.cs: Added IsEnabled() method
1170         * Application.cs:
1171           - Removed crude and obsolete exiting tracking variable
1172           - Removed internal ModalRun(); replaced by RunLoop()
1173           - Implemented private CloseForms() method to allow closing all 
1174             windows owned by a particular (or all) threads
1175           - Exit() now properly closes all windows without forcing the message
1176             pump to quit
1177           - Removed obsolete InternalExit() method
1178           - Changed Run() methods to use new RunLoop() message pump
1179           - Implemented new RunLoop() method for both modal and non-modal forms
1180         * CommonDialog.cs:
1181           - get_CreateParams: Added setting of WS_DISABLED
1182           - Simplified ShowDialog(); now all the work is done in RunLoop(),
1183             invoked via Form.ShowDialog()
1184         * NativeWindow.cs: We don't remove the window from the collection when
1185           the handle is destroyed; there might still be messages for it in the
1186           queue (mainly the resulting WM_DESTROY); instead it will be removed
1187           when Control calls InvalidateHandle in the WM_DESTROY handler
1188         * XplatUIX11.cs:
1189           - CreateWindow: Added logic to handle the WS_DISABLED window style
1190           - EnableWindow: Implemented based on Hwnd.Enabled
1191           - GetMessage: Reset PostQuitState so the method can be called again
1192           - Implemented support for disabled windows (passing messages to the
1193             first enabled parent) in handling all input messages
1194           - Added optimizations for handling Expose events
1195           - Implemeted new driver method IsEnabled()
1196           - Now always resetting paint pending tracking vars when we start paint
1197           - Re-implemented UpdateWindow via just sending a WM_PAINT message
1198         * XplatUIOSX.cs: Added IsEnabled method stub
1199         * XplatUIWin32.cs: Implemented new IsEnabled() method
1200
1201 2006-01-11  Jackson Harper  <jackson@ximian.com>
1202
1203         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
1204         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
1205         variables a little.
1206         * ColorDialog.cs: Clear out the old form before adding the new
1207         panel.  
1208
1209 2006-01-11  Jackson Harper  <jackson@ximian.com>
1210
1211         * X11Dnd.cs: Make sure to add all the text formats when adding
1212         strings to the data object.
1213         * TreeNodeCollection.cs: When adding to a sorted tree we need to
1214         do some redrawing too.  Also change the UpdateNode to an
1215         UpdateBelow so the newly added node gets painted.
1216         
1217 2006-01-11  Miguel de Icaza  <miguel@novell.com>
1218
1219         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
1220         LinkLabel.cs, PropertyGrid.cs: Implement the
1221         UseCompatibleTextRendering property for 2.x
1222
1223         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
1224
1225 2006-01-11  Jackson Harper  <jackson@ximian.com>
1226
1227         * TreeView.cs: Use the property for setting the selected node so
1228         the correct events get raised.
1229         * TreeNode.cs: Update the tree when the fore/back colours of a
1230         node are set.
1231
1232 2006-01-10  Jackson Harper  <jackson@ximian.com>
1233
1234         * TreeView.cs: Allow setting SelectedNode to null.
1235
1236 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1237
1238         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
1239
1240 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1241
1242         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
1243
1244 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1245
1246         * PrintDialog.cs: Added attributes and set default property values.
1247
1248 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1249
1250         * PrintControllerWithStatusDialog.cs: 
1251         Added PrintControllerWithStatusDialog.
1252
1253 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1254
1255         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
1256         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
1257
1258 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
1259
1260         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
1261
1262 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1263
1264         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
1265         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
1266
1267 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
1268
1269         * MimeIcon.cs: Added internal class SVGUtil.
1270
1271 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
1272
1273         * FileDialog.cs: Don't crash if there are two files with the
1274           same name but different locations.
1275
1276 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
1277
1278         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
1279         dates across multiple month grids. Used to not highlight entire 
1280         month, but does now.
1281         
1282 2006-01-06  Jackson Harper  <jackson@ximian.com>
1283
1284         * MonthCalendar.cs: Removed DoEvents call to prevent a running
1285         message loop. Change timer intervals to numbers that seem more
1286         natural.
1287
1288 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
1289
1290         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
1291           object for location info since screen object is now implemented.
1292
1293 2006-01-05  Jackson Harper  <jackson@ximian.com>
1294
1295         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
1296         * AsyncMethodResult.cs: We no longer use a WeakReference for the
1297         AsyncMethodResult, this is because we ALWAYS want the
1298         ManualResetEvent to get set.
1299         * Control.cs: When disposing use an async invoke to call shutdown
1300         code, so that thigns don't block on the finalizer thread.  Also
1301         check if we even have a message loop before trying to send
1302         messages, if we don't then don't bother sending messages.
1303         - No more weak references for async methods
1304         * XplatUIDriver.cs: No more weak references for async methods.
1305
1306 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1307
1308         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
1309           returns two FontFamily with the same name
1310
1311 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
1312
1313         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
1314           drawing disabled text. Instead using the ColorGrayText color
1315
1316 2006-01-04  Jackson Harper  <jackson@ximian.com>
1317
1318         * TreeNode.cs: redraw the node when its image index is changed.
1319
1320 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
1321
1322         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
1323           time I checked there are no others like it.
1324
1325 2006-01-04  Jackson Harper  <jackson@ximian.com>
1326
1327         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
1328         this gives the behavoir I was looking for.
1329         * Control.cs: Special case Invoking EventHandlers, this matches MS
1330         and fixes part of bug #76326.
1331
1332 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1333
1334         * ThemeClearlooks.cs, FileDialog.cs:
1335           - Reflect the latest Theme class changes
1336           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
1337             with DateTime
1338             
1339 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1340
1341         * Theme.cs: Cache UI resource images and resize them if needed
1342
1343 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
1344
1345         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
1346           is called. This fixes the crash in Nexxia when setting the font
1347           attributes in the chat. [However, RTF needs a look-over to make sure
1348           that all SelectionXXX methods handle the special case that selection
1349           is empty and therefore the change must be applied to all text starting
1350           at the cursor/selection start]
1351
1352 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
1353
1354         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
1355           XplatUIOSX.cs: Added SendMessage and PostMessage methods
1356         * X11Keyboard.cs: Switched to new way of calling PostMessage
1357
1358 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
1359
1360         * Theme.cs: Added theme interface for images to allow the theme to
1361           control what images are used for things like FileDialog, MessageBox
1362           icons, etc.
1363         * MessageBox.cs: Now uses the new Theme icon/image interfaces
1364
1365 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
1366
1367         * FileDialog.cs:
1368           - Removed some dead code
1369           - Opening a recently used file does work now
1370           - Small UI enhancements
1371           - Refactoring
1372
1373 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
1374
1375         * FileDialog.cs: Forgot too add __MonoCS__
1376
1377 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
1378
1379         * FileDialog.cs: We are able to read recently used files now let's
1380           go on and write them.
1381
1382 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
1383
1384         * FileDialog.cs: Breathe some life into "last open"/"recently used"
1385           button
1386         * MimeIcon.cs: Do a check for the top level media type also
1387
1388 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
1389
1390         * ThemeClearlooks.cs:
1391           - Added CPDrawStringDisabled
1392           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
1393             some chars if the text doesn't fit into text_rect
1394           - DrawListViewItem: If View = View.LargeIcon center the image;
1395             rewrote the drawing of ListViewItem.Text if View = 
1396             View.LargeIcon
1397
1398 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
1399
1400         * MimeIcon.cs: Use default KDE icon theme if there is no
1401           "48x48" directory for the current icon theme, fixes #77114
1402         * Mime.cs: Disable not working and actually not used code. 
1403         * ThemeWin32Classic.cs:
1404           - Replace "new SolidBrush" in GetControlBackBrush and
1405             GetControlForeBrush with ResPool.GetSolidBrush
1406           - Changed DrawListViewItem from private to protected virtual
1407         * FileDialog.cs:
1408           - Added form.MaximizeBox = true
1409           - Don't throw an exception if there is a broken symbolic link
1410
1411 2005-12-23  Jackson Harper  <jackson@ximian.com>
1412
1413         * TabControl.cs: Give the panels focus, keyboard navigation is
1414         fixed so this works correctly now.
1415         - We need these key events also.
1416         * ToolBar.cs: Remove some of the poor mans double buffering.
1417         
1418 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
1419
1420         * ComboBox.cs: The internal TextBox now returns the focus.
1421
1422 2005-12-23  Jackson Harper  <jackson@ximian.com>
1423
1424         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
1425
1426 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
1427
1428         * Control.cs: Removed debug code
1429         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
1430           implicit children
1431
1432 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
1433
1434         * Control.cs: When creating the control, update the Z-order after
1435           all it's children are created, too. (Fixes nexxia not showing
1436           picturebox bug)
1437
1438 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
1439
1440         * Control.cs: Do not update the anchoring distances if layout is
1441           suspended, instead do it once layout is resumed
1442
1443 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
1444
1445         * Control.cs: 
1446           - After many hours of debugging, for both Jackson and
1447             myself, it turns out that it helps to set the parent of a control
1448             if you want to actually see it onscreen. In the spirit of that
1449             discovery, we're now setting the parent of the control and
1450             it's children when the control's handle is created. This fix
1451             will make Lutz Roeder's Reflector run happily. 
1452           - now just creating the handle instead of the whole control when
1453             getting a graphics context for the control.
1454
1455 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
1456
1457         * ScrollableControl.cs: When calculating the canvas, don't consider
1458           the scrollbar widths. Instead, predict if horizontal scrollbar
1459           will affect canvas when deciding on vertical display and vice versa.
1460
1461 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
1462
1463         * RichTextBox.cs: Set default RTF font for documents that don't
1464           have a font table (Fixes #77076)
1465
1466 2005-12-22  Jackson Harper  <jackson@ximian.com>
1467
1468         * TextBoxBase.cs: It's difficult to do, but you can have an empty
1469         clipboard. This prevents a NullRef in that case.
1470         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
1471         clipboard. PRIMARY is for the currently selected text only. (We
1472         should implement PRIMARY at some point.
1473
1474 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
1475
1476         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
1477           a Unicode function with a structure that was defined in Ansi way.
1478           This fixes #76942.
1479
1480 2005-12-21  Jackson Harper  <jackson@ximian.com>
1481
1482         * StatusBar.cs: Statusbar handles its fore/back colours on it's
1483         on. Because thats how it rolls. (and this avoids it using ambient
1484         colours).
1485         * ThemeWin32Classic.cs: Use the proper back color for filling.
1486         * Menu.cs: Use the system menu bar color for drawing menu
1487         bars. Using the window back color will bring ambient colours into
1488         the picture.
1489
1490 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
1491
1492         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
1493           Bitmaps were created and not disposed.
1494
1495 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
1496
1497         * Control.cs (CreateControl): Don't do anything if the control is
1498           already created, otherwise we'd fire the OnCreated event more than
1499           once
1500
1501 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
1502
1503         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
1504           will always match. Instead return -1. Fixes #76464.
1505
1506 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
1507
1508         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
1509           neither the beginning nor the end of the line (Fixes bug #76479)
1510
1511 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
1512
1513         * Control.cs:
1514           - ControlNativeWindow.ControlFromHandle(): Now handling situation
1515             where handle is invalid
1516           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
1517             instead of slower linear search
1518         * NativeWindow.cs: Don't remove the window from the hashtable until
1519           after the driver has destroyed it (since the driver might use
1520           Control.FromHandle to lookup the control object
1521         * Hwnd.cs: Added DestroyPending property to track if a window is 
1522           already destroyed as far as the driver is concerned and only hasn't
1523           yet notified the control
1524         * XplatUIX11.cs:
1525           - Activate(): Check if the window is still valid before using the 
1526             handle
1527           - Implemented DestroyChildWindow() method to mark child windows as
1528             destroyed when a window is destroyed. This prevents situations 
1529             where we might call an X method based on queued events for a
1530             window that already has been destroyed but we haven't yet pulled
1531             the destroy method from the queue.
1532           - Added a call to the new DestroyChildWindow() method to the drivers
1533             DestroyWindow code. Also now marking the destroyed window itself
1534             as pending
1535
1536 2005-12-20  Jackson Harper  <jackson@ximian.com>
1537
1538         * StatusBar.cs:
1539         * StatusBarPanel.cs: Don't calculate panel sizes on draw
1540         anymore. Just do them when needed, also track the rects of panels
1541         so that we can optimize refreshing more in the future.
1542
1543 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
1544
1545         * ColorDialog.cs: Fixed focus drawing in small color controls
1546
1547 2005-12-19  Jackson Harper  <jackson@ximian.com>
1548
1549         * InternalWindowManager.cs:
1550         * MdiWindowManager.cs: Cleanup some coordinate system changes so
1551         moving windows works properly.
1552
1553 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
1554
1555         * Control.cs: 
1556           - Removed call to InitLayout() from SetBoundsCore(); doc says
1557             it's only called when a control is added to a container
1558           - Split InitLayout logic, moved to separate UpdateDistances() method
1559             since we need to perform those calculations more often than just
1560             when adding the control to a container. (Needed to fix #77022)
1561           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
1562           - Reduced the OnBindingContextChanged events count, don't send them
1563             unless the control is created, we still aren't totally matching
1564             MS, but I can't quite figure out some of their rules
1565
1566 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
1567
1568         * ThemeClearlooks.cs: Corrected distance between ProgressBar
1569           stripes
1570
1571 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
1572
1573         * ThemeClearlooks.cs:
1574           - Updated ProgressBar drawing
1575           - Corrected drawing of ScrollBars and scroll buttons
1576           - Some temporary fixes for minor pixel artefacts
1577
1578 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
1579
1580         * Control.cs:
1581           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
1582             cause events to be sent in the same order as MS does.
1583           - Added ChangeParent() method to trigger various OnXXXChanged events
1584             that need to be fired when a parent changes (This is a reworking
1585             of the patch from r54254, with the X11 errors fixed)
1586           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
1587             since on MS we get OnLayoutChanged events when calling Clear()
1588           - Changed Enabled property to consider parent state as well, if a
1589             parent is not enabled, the control will not be either
1590           - Changed Parent property to simply call Controls.Add() since that
1591             now does all the work required, this way we avoid code duplication
1592           - Threw in a few OnBindingsContextChanged calls to try and match
1593             when MS sends them. We seem to send a few too many, though.
1594           - Added call to CreateControl when adding the control to a parent.
1595             We were never calling CreateControl. Still needs some work, in
1596             some places we treat HandleCreated and ControlCreated as equal, 
1597             which is wrong
1598           - Removed obsolete commented out code from UpdateZOrder()
1599
1600 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
1601
1602         * ThemeClearlooks.cs: Updated TrackBar drawing.
1603
1604 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
1605
1606         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
1607
1608 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
1609
1610         * FileDialog.cs: Add the Help button and the open readonly
1611           checkbox only if needed
1612
1613 2005-12-16  Jackson Harper  <jackson@ximian.com>
1614
1615         * Control.cs: Make sure we have an active menu before trying to
1616         process commands on it. Prevents menu-less forms from crashing
1617         when Alt is pressed.
1618         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
1619         Dieter Bremes.
1620         * RichTextBox.cs: Expand statement to help out gmcs and fix the
1621         2.0 build.
1622
1623 2005-12-16  Jackson Harper  <jackson@ximian.com>
1624
1625         * InternalWindowManager.cs: Don't translate tool windows screen
1626         coordinates. This fixes windows 'bouncing' around when being moved.
1627
1628 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
1629
1630         * TextBoxBase.cs:
1631           - MaxLength now treats 2^31-1 equal to unlimited length (this is
1632             not quite MS compatible, MS uses that number only for single line
1633             and 2^32-1 for multi-line, but I figure it won't hurt keeping
1634             the limit at 2GB)
1635           - Now enforcing the MaxLength limit when entering characters
1636           - Added argument to internal Paste() method to track if it's called
1637             from programatically or via keyboard, since keyboard driven pastes
1638             need to enforce max-length
1639           - Added logic to Paste to only paste as many chars as MaxLength 
1640             allows
1641         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
1642         * TextControl.cs:
1643           - Added Length property to return number of characters in document
1644           - Added private CharCount property which only tracks actual chars
1645             in the document (no linefeeds) and fires event when CharCount
1646             changes
1647           - Added tracking of character count to all methods that alter it
1648           - Added LengthChanged event to allow applications to subscribe
1649             to any changes to the document
1650
1651 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
1652
1653         * TextBox.cs: 
1654           - Removed local password_char field (moved to TextBoxBase)
1655           - Now setting the document's password var when password is
1656             set
1657         * TextBoxBase.cs:
1658           - Added password_char field (needed here so MultiLine can
1659             access it)
1660           - Added logic to MultiLine property setter to set the document's
1661             variable when password display is allowed
1662           - Removed debug code and made some debug code conditional
1663         * TextControl.cs:
1664           - Added RecalculatePasswordLine() method to handle special password
1665             char only lines
1666           - Added PasswordChar property, also added related tracking vars
1667           - Draw() method now uses local text var for grabbing text to draw,
1668             this var is set to line.text unless we're doing password display,
1669             then it is set to the pre-generated all-password-chars line
1670           - Added calling RecalculatePasswordLine() method for password lines
1671
1672 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
1673
1674         * Hwnd.cs: 
1675           - Added Reparented property to allow tracking of Window Manager
1676             reparenting actions (which affect X/Y calculations of toplevel 
1677             windows)
1678           - Made ToString() print window handles in hex
1679         * XplatUIX11.cs:
1680           - AddConfigureNotify(): Now uses reparented state off Hwnd to
1681             determine if X/Y needs offsetting
1682           - AddConfigureNotify(): Fixed offset calculations
1683           - Now adds ReparentNotify messages into the queue
1684           - Now processes ReparentNotify messages and causes a 
1685             WM_WINDOWPOSCHANGED message to be sent upstream if a window
1686             is reparented (as most likely it's X/Y coordinates are changed
1687             due to that)
1688
1689 2005-12-14  Jackson Harper  <jackson@ximian.com>
1690
1691         * XplatUIX11.cs: Tool windows still need to respek focus.
1692
1693 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
1694
1695         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
1696           have a working release
1697
1698 2005-12-13  Jackson Harper  <jackson@ximian.com>
1699
1700         * Form.cs: Update styles after setting the border style regardless
1701         of whether or not the window is using a window manager.
1702
1703 2005-12-13  Jackson Harper  <jackson@ximian.com>
1704
1705         * Form.cs: We now hook into an internal window manager instead of just an
1706         MDI subsystem, this is so we can have properly behaving tool windows.
1707         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
1708         * InternalWindowManager.cs: New internal class that acts as a
1709         window manager for tool windows and as a base for mdi windows.
1710         * MdiWindowManager.cs: New class that acts as a window manager for
1711         mdi windows.
1712
1713 2005-12-12  Jackson Harper  <jackson@ximian.com>
1714
1715         * Control.cs: Updates so we match behavoir for for implicit
1716         controls. Fixes explosions in MDI.
1717
1718 2005-12-12  Jackson Harper  <jackson@ximian.com>
1719
1720         * Control.cs: Implement Invalidate (Region).
1721
1722 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
1723
1724         * Control.cs: 
1725           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
1726             the same events as MS does. MS fires events for each property 
1727             except, for unknown reasons, Cursor, when the control is reparented. 
1728             I can't seem to totally match add/remove since MS also fires some 
1729             VisibleChanged events, which makes no sense. Consolidated the
1730             parenting code into a separate method so it can be called from
1731             both Add and Remove. set_Parent no longer needs any special logic
1732             as it calls the parent's add method which implicitly fires
1733             all events
1734           - Removed some obsolete code and debug output
1735           - Enabled state is inherited from parents, if this is enabled
1736
1737 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
1738
1739         * Form.cs: Removed commented out code
1740
1741 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
1742
1743         * Control.cs:
1744           - Added internal version of Invoke, with additional argument 
1745             indicating if we're calling it from a Dispose() handler. That
1746             way we can avoid BeginInvoke throwing an exception if we're
1747             calling for an already destroyed window.
1748           - Added a dispose argument to BeginInvokeInternal, and made the
1749             check if a valid window handle chain exists conditional on
1750             it not being a dispose call
1751           - Removed code in DestroyHandle to destroy our children. Since we
1752             now handle the WM_DESTROY message we will catch all our children
1753             being destroyed.
1754           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
1755         * Form.cs:
1756           - Added a field to track the application context of the form.
1757           - No need to set closing variable as response to WM_CLOSE, instead
1758             we destroy the window. We also call PostQuitMessage if the form
1759             has an application context (which makes it the main app form,
1760             which, when closed terminates the app)
1761         * XplatUI.cs:
1762           - Dropped Exit() method, it's naming was confusing
1763           - Added PostQuitMessage() which causes GetMessage to return false
1764             once the message queue is empty
1765         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
1766           PostQuitMessage()
1767         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
1768           no longer a valid XplatUI method, but left it in since it's used
1769           internally. Added empty PostQuitMessage() method.
1770         * MenuAPI.cs: Replaced call to Exit() with call to
1771           PostQuitMessage, even though this is probably no longer needed.
1772         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
1773         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
1774         * Application.cs:
1775           - Replaced call to XplatUI.Exit() with PostQuitMessage()
1776           - Removed old debug code that would call XplatUI for exception
1777             display, enabled standard exception handling (Still not enabled
1778             though, until NativeWindow's ExternalExceptionHandler define
1779             is removed
1780         * NativeWindow.cs:
1781           - Added internal method to allow control to update NativeWindow
1782             after a window has been destroyed
1783           - Added handling of already destroyed windows when calling i
1784             DestroyWindow
1785           - Added removal of handle from list on ReleaseHandle
1786         * XplatUIX11.cs:
1787           - Dropped GetMessageResult var and related code
1788           - Added PostQuitState to field to track if PostQuitMessage has been
1789             called
1790           - Dropped Exit() method
1791           - Added PostQuitMessage() method
1792           - GetMessage now will return false if PostQuitState is set and no
1793             more messages are in the queue.
1794           - Expose handler will no longer generate WM_PAINT messages if we are
1795             in PostQuitState since it's very likely any windows have already
1796             been destroyed, and since Hwnd won't get updated until we have
1797             processed the DestroyNotify we'd be causing X errors.
1798         
1799 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
1800
1801         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
1802           Thanks to Mike for pointing out the err of my ways.
1803
1804 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
1805
1806         * Control.cs(PreProcessMessage): Moved menu handling back, but
1807           after all other key handling, to match MS (who handles Menu in
1808           DefWndProc)
1809         * Menu.cs (WndProc): Removed my brainfart
1810
1811 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
1812
1813         * Control.cs(PreProcessMessage): Removed special menu handling 
1814         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
1815
1816 2005-12-07  Mike Kestner  <mkestner@novell.com>
1817
1818         * Control.cs : special case SYSKEYUP so that we can adjust keynav
1819         state according in tracker.
1820         * Menu.cs : promote tracker field to base class and provide a tracker
1821         lookup capability.  Add/Remove shortcuts dynamically if the top menu
1822         has a tracker. Unparent items that are removed from the collection.
1823         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
1824         * Theme*.cs: add always_show_hotkeys field to support configurability
1825         of mnemonic display.  win32 doesn't show mnemonics until Alt is
1826         pressed.
1827
1828 2005-12-07  Jackson Harper  <jackson@ximian.com>
1829
1830         * MdiChildContext.cs: Use Control.ResetCursor.
1831         * Control.cs: ResetCursor needs to set the property so that the
1832         correct XplatUI call gets made.
1833
1834 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
1835
1836         * Control.cs: More fixes to make our key events match MS. We
1837           were not setting the modifier state on KeyData, and we were
1838           not generating any events when Alt was pressed with a key
1839           since handling of WM_SYSxxx was missing for the OnKey methods.
1840
1841 2005-12-07  Jackson Harper  <jackson@ximian.com>
1842
1843         * MdiChildContext.cs: reenable the sizing code.
1844         - When the mouse leaves a window reset its cursor.
1845
1846 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
1847
1848         * ThemeClearlooks.cs: Reflect latest Hwnd changes
1849
1850 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
1851
1852         * Hwnd.cs: Now using the theme 3d bordersize to calculate
1853           widths of Fixed3D borders
1854
1855 2005-12-07  Jackson Harper  <jackson@ximian.com>
1856
1857         * MdiClient.cs: Fix warnings. Earn Mike's love.
1858
1859 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
1860
1861         * ThemeClearlooks.cs:
1862           - Adjusted mouse over button color
1863           - Added first parts of CheckBox drawing
1864           - Added correct color for selected text background
1865           - Fixed ComboBox drawing
1866           - Added CPDrawBorder3D and CPDrawBorder
1867
1868 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
1869
1870         * XplatUIX11.cs: Added call to XBell for AudibleAlert
1871
1872 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
1873
1874         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
1875           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
1876           alert users via sound. We could add an enum arg with different
1877           types of alerts in the future
1878
1879 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
1880
1881         * Control.cs: Fix behaviour problems pointed out by Mike
1882
1883 2005-12-05  Mike Kestner  <mkestner@novell.com>
1884
1885         * StatusBarPanel.cs: add Invalidate method and hook it into all the
1886         prop setters.  Calls parent.Refresh for now, but could be maybe be
1887         optimized with an internal method on StatusBar at some point.
1888         [Fixes #76513]
1889
1890 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
1891
1892         * RichTextBox.cs: Implemented get_SelectionColor
1893
1894 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
1895
1896         * ThemeClearlooks.cs:
1897           - Removed dead code
1898           - Draw black button border only if button is Form.AcceptButton
1899           - Draw correct button color for pressed RadioButton if the mouse 
1900             has entered the button
1901           - Updated ProgressBar drawing!
1902           - Updated CPDrawSizeGrip drawing
1903           - Updated StatusBarPanel drawing
1904
1905 2005-12-05  Mike Kestner  <mkestner@novell.com>
1906
1907         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
1908         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
1909
1910 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
1911
1912         * ThemeClearlooks.cs: Initial check-in, activate with
1913           export MONO_THEME=clearlooks
1914         * ThemeEngine.cs: Added ThemeClearlooks
1915
1916 2005-12-03  Mike Kestner  <mkestner@novell.com>
1917
1918         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
1919         [Fixes #76897]
1920
1921 2005-12-02  Jackson Harper  <jackson@ximian.com>
1922
1923         * Form.cs: If the child form has no menu the default main menu is
1924         used as the active menu.
1925
1926 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
1927
1928         * ListBox.cs: Check if any items exist before trying to resolve 
1929           coordinates into items
1930
1931 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
1932
1933         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
1934           as the second color for the background hatch
1935
1936 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
1937
1938         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
1939         * RichTextBox.cs: FormatText position arguments are 1-based, now making
1940           sure that what we pass to FormatText is always 1-based. Fixes #76885
1941
1942 2005-11-29  Miguel de Icaza  <miguel@novell.com>
1943
1944         * NumericUpDown.cs (EndInit): When we are done initializing,
1945         reflect any updates on the UI.
1946
1947 2005-12-02  Jackson Harper  <jackson@ximian.com>
1948
1949         * ImplicitHScrollBar.cs:
1950         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
1951         their container controls.
1952         * TreeView.cs: Use the new implicit scrollbars.
1953
1954 2005-12-02  Jackson Harper  <jackson@ximian.com>
1955
1956         * TreeView.cs: Make top_node internal so the TreeNodeCollections
1957         can play with it.
1958         * TreeNodeCollection.cs: If we remove the topnode we need to
1959         update topnode to the next node in line.
1960         - When clearing nodes go through the same process as removing
1961         them, so they get depareneted and checked if they are top node.
1962
1963 2005-12-01  Jackson Harper  <jackson@ximian.com>
1964
1965         * TreeView.cs: When imagelists are used the image area is
1966         selectable as well as the text.
1967         - If there are no selected nodes select the first one.
1968         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
1969         so don't do it more then we need to.
1970
1971 2005-12-01  Jackson Harper  <jackson@ximian.com>
1972
1973         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
1974         that arrows can be scaled.
1975
1976 2005-12-01  Jackson Harper  <jackson@ximian.com>
1977
1978         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
1979         fail. Patch by Dieter Bremes
1980
1981 2005-11-30  Jackson Harper  <jackson@ximian.com>
1982
1983         * Form.cs: Property is 2.0 only
1984         * PrintDialog.cs: Signature fix.
1985
1986 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
1987
1988         * TextControl.cs: 
1989           - No longer artificially moves text 2 pixels down (now that we have
1990             borders this is no longer needed)
1991           - Added calcs for left, hanging and right indent
1992
1993 2005-11-23  Mike Kestner  <mkestner@novell.com>
1994
1995         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
1996
1997 2005-11-30  Jackson Harper  <jackson@ximian.com>
1998
1999         * MdiChildContext.cs: Set the cloned menus forms, as these don't
2000         get cloned as part of CloneMenu ().
2001         * Menu.cs: Make sure the parent of the items get set correctly
2002         when they are added.  And the owners are notified of the changes.
2003         * Form.cs: Create an ActiveMenu property, so that when MDI is used
2004         we can change the menu being displayed/handled by the form without
2005         changing the menu assosciated with the form.
2006         - Don't let Mdi children draw/handle menus.
2007         
2008 2005-11-30  Jackson Harper  <jackson@ximian.com>
2009
2010         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
2011         a MenuChanged event. Just to make the API a little more
2012         consistent.
2013         * MainMenu.cs:
2014         * MenuItem.cs: Use the new OnMenuChanged
2015         * MdiChildContext.cs: Handle menu merging.
2016         * Form.cs: Implement MergedMenu.
2017         
2018 2005-11-30  Jackson Harper  <jackson@ximian.com>
2019
2020         * Menu.cs: We were misusing Add. Add goes behind the specified
2021         index according to the docs, and does not replace the specified
2022         index. So I added an Insert method.
2023
2024 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
2025
2026         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
2027           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
2028           is for Jackson
2029         * RichTextBox.cs: Added calls to base for DnD events
2030
2031 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
2032
2033         * TextControl.cs:
2034           - Fixed drag-selection related crash; style fixes
2035           - Implemented undo class
2036             o Implemented method to capture document state for specified
2037               range in document tree
2038             o Implemented method to restore captured document state
2039             o Implemented cursor tracking
2040             o Implemented basic undo stack
2041           - Added undo cursor tracking to methods altering cursor location
2042           - Added undo tracking to selection deletion (still missing
2043             other text-altering hookups)
2044         * RichTextBox.cs:
2045           - Added SelectionLength property
2046           - Implemented CanPaste()
2047           - Implemented Paste()
2048           - Added missing protected methods
2049           - Fixed RTF->Document conversion; now uses font index 0 and color 
2050             index 0 as the default font for the parsed text
2051           - Fixed RTF<->Document font size translation
2052           - Fixed RTF generation, now properly handles cross-tag boundaries
2053             for single line selection
2054           - No longer always appends blank line to generated RTF
2055           - Removed TODOs
2056           - Added missing attributes
2057           - Hooked up undo-related methods
2058         * TextBoxBase.cs:
2059           - Implemented Copy()
2060           - Implemented Paste()
2061           - Implemented Cut()
2062           - Fixed caret mis-behaviour on backspace across line-boundaries
2063
2064 2005-11-29  Jackson Harper  <jackson@ximian.com>
2065
2066         * MdiClient.cs: Add a method for activating mdi children. Very
2067         basic right now. I imagine someday it might need more girth.
2068         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
2069         children windows names are added to the menu item.
2070         * ThemeWin32Classic.cs: Draw the arrow if the item is an
2071         mdilist. This happens regardless of whether or not there are any
2072         mdi windows to see in the list, and according to my tests happens
2073         before the items are even added. Also happens if there isn't even
2074         an mdi client to get windows from.
2075
2076 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
2077
2078         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
2079         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
2080
2081 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
2082
2083         * DataGridTableStyle.cs:
2084           - Create always the styles for the missing columns even if they are
2085             provided by the user (not default table style)
2086         * DataGrid.cs:
2087           - Fixes bug 76770
2088           - Fixes SetDataBinding (always re-attach source)
2089           - Fixes SetNewDataSource (only clear styles if they are not for 
2090             this source)
2091          -  Expands OnTableStylesCollectionChanged to handle style refresh 
2092             and remove properly
2093
2094 2005-11-29  Jackson Harper  <jackson@ximian.com>
2095
2096         * FileDialog.cs: Implement missing bits, remove some dead
2097         code.
2098         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
2099         creation of the panel so that the options set on the dialog are
2100         seen when the panel is created.
2101         * TreeView.cs: raise a click when items are clicked.
2102         
2103 2005-11-29  Jackson Harper  <jackson@ximian.com>
2104
2105         * MdiClient.cs: Pass some signature methods through to base.
2106
2107 2005-11-28  Jackson Harper  <jackson@ximian.com>
2108
2109         * ListView.cs: Raise the click event when items are clicked.
2110
2111 2005-11-28  Jackson Harper  <jackson@ximian.com>
2112
2113         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
2114         a nullref.
2115
2116 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
2117
2118         * ThemeNice.cs: - Removed 1 pixel bitmaps
2119           - Use SmoothingMode.AntiAlias where it makes sense
2120             (ScrollButton arrow for example)
2121           - Enhanced Button focus drawing
2122           - Fixed ComboBox drawing (no artefacts anymore, focus
2123             rectangle is back again, reduced size of ComboButton, etc.)
2124           - Fixed RadioButton focus drawing for Appearence.Button
2125           - Slight ScrollButton redesign
2126           - Some LinearGradientBrush size fixes
2127           - GroupBoxes have now rounded edges
2128           - Fixed StatusBar drawing
2129
2130 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
2131
2132         * ThemeNice.cs: - Remove dead code
2133           - use correct background colors for menus, etc.
2134           - Fake pixel drawing with 1 pixel bitmaps
2135
2136 2005-11-24  Jackson Harper  <jackson@ximian.com>
2137
2138         * MdiClient.cs: Size the scrollbars when resizing the window.
2139         - Resize the maximized windows when the client is resized
2140         * Form.cs: Make the child context available
2141         
2142 2005-11-23  Jackson Harper  <jackson@ximian.com>
2143
2144         * MdiChildContext.cs: Don't size windows if they are maximized.
2145
2146 2005-11-23  Mike Kestner  <mkestner@novell.com>
2147
2148         * ContextMenu.cs: use MenuTracker.
2149         * Control.cs: remove menu handle usage.
2150         * Form.cs: remove menu handle usage.
2151         * Hwnd.cs: remove menu handle usage.
2152         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
2153         motion and clicks to the new Tracker handlers.
2154         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
2155         and handle usage.
2156         * MenuAPI.cs: refactored to combine popup and menubar event handling.
2157         Killed the MENU and MENUITEM data types and associated collections
2158         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
2159         MenuTracker class that exposes the leftovers from the old MenuAPI
2160         static methods. Restructured Capture handling so that only one grab is
2161         done for the entire menu hierarchy instead of handing off grabs to
2162         submenus. Tracker now has an invisible control to Capture when active.
2163         * MenuItem.cs: add sizing accessors, kill Create
2164         and handle usage.
2165         * Theme.cs: remove menu handle and MENU(ITEM) usage.
2166         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
2167         MENU(ITEM). remove menu handle usage, use Menu directly.
2168         * XplatUIDriver.cs: remove menu handle usage.
2169         * XplatUIOSX.cs: remove menu handle usage.
2170         * XplatUIWin32.cs: remove menu handle usage.
2171         * XplatUIX11.cs: remove menu handle usage.
2172
2173 2005-11-22  Jackson Harper  <jackson@ximian.com>
2174
2175         * Hwnd.cs: Don't compute the menu size for
2176         DefaultClientRectangle.
2177         - Reenable menu sizes being computed for GetClienRectangle.
2178         * Form.cs: Remove comment of trechery
2179         
2180 2005-11-22  Jackson Harper  <jackson@ximian.com>
2181
2182         * Hwnd.cs: The adjustments for the menu bar are made when it is
2183         attached to the form.
2184
2185 2005-11-19  Jackson Harper  <jackson@ximian.com>
2186
2187         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
2188         (just like on windows).
2189
2190 2005-11-19  Jackson Harper  <jackson@ximian.com>
2191
2192         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
2193         use real buttons anymore because they are in non client area. The
2194         one TODO here is that I need to somehow invalidate a section of
2195         the non client area.
2196
2197 2005-11-18  Jackson Harper  <jackson@ximian.com>
2198
2199         * Control.cs: Put the enum check back in now that MDI doesnt have
2200         to use this to set border styles.
2201         * Form.cs: Only set mdi child windows borders if the handle has
2202         been created.
2203         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
2204         this directly on to the driver.
2205         - Get the move start position before adjusting for the titlebar
2206         height, this fixes the windows "skipping" when they are first
2207         moved.
2208
2209 2005-11-18  Jackson Harper  <jackson@ximian.com>
2210
2211         * XplatUIX11.cs: Just compute the mdi borders separately as they
2212         don't totally match up with normal form borders.
2213
2214 2005-11-18  Jackson Harper  <jackson@ximian.com>
2215
2216         * Control.cs: Set WS_ styles for borders, so that the driver does
2217         not have to retrieve the control instance to figure out what kind
2218         of borders it should have.
2219         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
2220         driver can know its an mdi child easily.
2221         * XplatUIX11.cs: Get the border styles and whether the window is
2222         MDI from the Styles and ExStyles params instead of having to get a
2223         control. This prevents a chicken and egg problem.       
2224
2225 2005-11-18  Jackson Harper  <jackson@ximian.com>
2226
2227         * MdiClient.cs: Fix typo so scrollbars show up correctly.
2228
2229 2005-11-18  Jackson Harper  <jackson@ximian.com>
2230
2231         * MdiClient.cs: Calculate when to add and remove scrollbars
2232         correctly.
2233         * MdiChildContext.cs: Adjust the y position to take the titlebar
2234         into account.
2235         - No height for FormBorderStyle.None
2236
2237 2005-11-18  Jackson Harper  <jackson@ximian.com>
2238
2239         * Control.cs: Allow non enum values to be used for
2240         InternalBorderStyle.  MDI does this to set a special border style.
2241         - New utility methods for converting points to/from client coords
2242         - Add the newly created control to the Controls collection before
2243         updating its style. This way UpdateStyle can walk the control
2244         heirarchy to find the control if needed.
2245         so I don't need to create a new Point object all the time.
2246         * Form.cs: Let MDI windows handle their border styles.
2247         - Set styles on MDI windows so the correct title style is derived.
2248         * MdiChildContext.cs: Move all the painting and window handling
2249         into the non client area.
2250         - Use correct sizing and put correct buttons on frames based on
2251         the FormBorderStyle.
2252         - Notify the mdi client about scrolling
2253         - Need to handle the buttons ourselves now, because they are all
2254         in non client areas and we can't add controls there.
2255         * MdiClient.cs: Halfway to scrolling, this implementation is
2256         somewhat broken though, we need to check to make sure other
2257         windows aren't causing scrolling before removing the bars. Also
2258         the bars need to be drawn on top, maybe I can switch implicit
2259         controls to be on top.
2260         * Hwnd.cs: caption_height and tool_caption_height are now
2261         properties of an hwnd, this way they can be set by the driver
2262         based on the type of window they are.  In X11 the window manager
2263         handles the decorations so caption_height is zero unless its an
2264         MDI window.
2265         - Add 3 pixel borders for MDI windows (0xFFFF).
2266         - Get rid of some code duplication, have DefaultClientRectanle
2267         just call GetClientRectangle.
2268         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
2269         Hwnd now.
2270         - Set border styles differently for mdi windows.
2271         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
2272         Hwnd now.
2273         
2274 2005-11-15  Mike Kestner  <mkestner@novell.com>
2275
2276         * Menu.cs: when adding an item to the collection, if item is already 
2277         parented, remove it from the parent.
2278
2279 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
2280
2281         * X11DesktopColors.cs: Added KDE support
2282
2283 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
2284
2285         * XplatUIWin32.cs: 
2286           - Clipboard methods now can translate Rtf format
2287           - No longer removes clipboard contents whenever a new format is added
2288             to allow placing multiple formats on the clipboard
2289         * Clipboard.cs: Clipboard now supports getting a IDataObject and
2290           will place all formats contained in it onto the clipboard. Also
2291           now cleans the clipboard before placing a new object onto it
2292         * RichTextBox.cs:
2293           - Implemented set_Rtf
2294           - Implemented set_SelectedRtf
2295           - Created InsertRTFFromStream() method to allow single code base
2296             for all properties and methods that insert RTF into document
2297           - Removed debug output
2298         * TextControl.cs:
2299           - Fixed Delete(int) to fix up line numbers
2300           - Fixed ReplaceSelection to combine start and end line
2301           - Fixed serious DeleteChars bug that would leave the document tree
2302             broken
2303           - Improved DumpTree with several logic checks to detect broken
2304             document trees
2305           - Removed debug lines
2306           - Fixed Caret.WordForward/WordBack moving code, now always also 
2307             updates caret.tag (fixes crash when word-selecting across tag
2308             boundaries via keyboard)
2309           - Added Insert() method for inserting multiline text into documents
2310           - Fixed DeleteChars() calculation errors that would cause a broken
2311             tag chain with multiple tag lines
2312           - DeleteChars() no longer crashes on multi-tag lines if not all tags
2313           - Split() no longer moves caret if split is at caret location
2314           - ReplaceSelection() now updates the cursor and re-displays it
2315           - ReplaceSelection() now uses new Insert() method to avoid code
2316             duplication
2317           - FormatText() can now handle formatting partial lines
2318         * TextBoxBase.cs:
2319           - Append now uses new TextControl.Insert() method (this avoids 
2320             duplicate code)
2321           - Implemented Ctrl-X (Cut) (
2322           - Implemented Ctrl-C (Copy)
2323           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
2324             regeneration when pasting text; roundtripping Copy&Paste within
2325             edit control still fails due to some calculation bugs in GenerateRTF)
2326           - The Delete key will now remove the current selection if it is visible
2327         * TextBox.cs: Removed debug lines
2328         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
2329           driver to be initialized and can't therefore be done via a static ctor)
2330
2331 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
2332
2333         * TextControl.cs: Added backend code for finding char arrays and strings
2334         * TextBoxBase.cs:
2335           - Added mouse wheel scroll support
2336           - Added support for VScroll and HScroll events
2337         * RichTextBox.cs:
2338           - Implemented all seven Find() variants
2339           - Implemented GetCharFromPosition()
2340           - Implemented GetCharIndexFromPosition()
2341           - Implemented GetLineFromIndex()
2342           - Implemented GetPositionFromCharIndex();
2343           - Implemented SaveFile for PlainText and UnicodeText
2344           - Fixed set_Font, now setting a new font applies that font to
2345             the whole document
2346           - Implemented generic Document to RTF converter
2347           - Implemented SaveFile for RichText format (still missing unicode
2348             conversion for non-ansi chars)
2349           - Implemented get_Rtf
2350           - Implemented get_SelectedRtf
2351
2352 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
2353
2354         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
2355           to allow any captures to be released before triggering OnClick. This
2356           way a click handler may capture the mouse without interference.
2357         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
2358           This way we send them even though X may not allow a grab (if the window
2359           isn't visible, for example)
2360
2361 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
2362
2363         * DataGridViewRowEventArgs.cs: DataGridView implementation
2364         * DataGridViewElement.cs: DataGridView implementation
2365         * DataGridViewComboBoxCell.cs: DataGridView implementation
2366         * DataGridViewDataErrorContexts.cs: DataGridView implementation
2367         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
2368         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
2369         * ImageLayout.cs: DataGridView implementation
2370         * DataGridViewComboBoxColumn.cs: DataGridView implementation
2371         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
2372         * DataGridViewSelectionMode.cs: DataGridView implementation
2373         * IDataGridViewEditingControl.cs: DataGridView implementation
2374         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
2375         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
2376         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
2377         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
2378         * DataGridViewColumnSortMode.cs: DataGridView implementation
2379         * DataGridView.cs: DataGridView implementation
2380         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
2381         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
2382         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
2383         * Padding.cs: DataGridView implementation
2384         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
2385         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
2386         * DataGridViewRowEventHandler.cs: DataGridView implementation
2387         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
2388         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
2389         * DataGridViewButtonCell.cs: DataGridView implementation
2390         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
2391         * DataGridViewEditMode.cs: DataGridView implementation
2392         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
2393         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
2394         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
2395         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
2396         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
2397         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
2398         * DataGridViewCellEventHandler.cs: DataGridView implementation
2399         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
2400         * DataGridViewCellStyleConverter.cs: DataGridView implementation
2401         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
2402         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
2403         * DataGridViewColumnEventArgs.cs: DataGridView implementation
2404         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
2405         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
2406         * QuestionEventArgs.cs: DataGridView implementation
2407         * IDataGridViewEditingCell.cs: DataGridView implementation
2408         * DataGridViewTriState.cs: DataGridView implementation
2409         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
2410         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
2411         * DataGridViewColumnCollection.cs: DataGridView implementation
2412         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
2413         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
2414         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
2415         * DataGridViewColumn.cs: DataGridView implementation
2416         * DataGridViewCellBorderStyle.cs: DataGridView implementation
2417         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
2418         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
2419         * DataGridViewRow.cs: DataGridView implementation
2420         * DataGridViewImageCellLayout.cs: DataGridView implementation
2421         * DataGridViewImageCell.cs: DataGridView implementation
2422         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
2423         * DataGridViewCheckBoxCell.cs: DataGridView implementation
2424         * DataGridViewHeaderCell.cs: DataGridView implementation
2425         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
2426         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
2427         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
2428         * DataGridViewTextBoxColumn.cs: DataGridView implementation
2429         * QuestionEventHandler.cs: DataGridView implementation
2430         * DataGridViewCellStyleScopes.cs: DataGridView implementation
2431         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
2432         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
2433         * DataGridViewCell.cs: DataGridView implementation
2434         * DataGridViewCellEventArgs.cs: DataGridView implementation
2435         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
2436         * DataGridViewCellStyle.cs: DataGridView implementation
2437         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
2438         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
2439         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
2440         * TextFormatFlags.cs: DataGridView implementation
2441         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
2442         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
2443         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
2444         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
2445         * DataGridViewButtonColumn.cs: DataGridView implementation
2446         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
2447         * HandledMouseEventArgs.cs: DataGridView implementation
2448         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
2449         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
2450         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
2451         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
2452         * DataGridViewRowCollection.cs: DataGridView implementation
2453         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
2454         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
2455         * DataGridViewHitTestType.cs: DataGridView implementation
2456         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
2457         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
2458         * DataGridViewColumnEventHandler.cs: DataGridView implementation
2459         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
2460         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
2461         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
2462         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
2463         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
2464         * DataGridViewContentAlignment.cs: DataGridView implementation
2465         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
2466         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
2467         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
2468         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
2469         * DataGridViewPaintParts.cs: DataGridView implementation
2470         * DataGridViewCellCollection.cs: DataGridView implementation
2471         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
2472         * DataGridViewImageColumn.cs: DataGridView implementation
2473         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
2474         * DataGridViewElementStates.cs: DataGridView implementation
2475         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
2476         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
2477         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
2478         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
2479         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
2480         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
2481         * DataGridViewRowHeaderCell.cs: DataGridView implementation
2482         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
2483         * DataGridViewTextBoxCell.cs: DataGridView implementation
2484         * DataGridViewBand.cs: DataGridView implementation
2485         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
2486         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
2487         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
2488         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
2489         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
2490         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
2491         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
2492         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
2493         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
2494         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
2495         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
2496
2497 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
2498
2499         * ThemeWin32Classic.cs: 
2500           - Draw the outside focus rectangle around buttons
2501           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
2502             doesn't use end caps for every dash of a line anymore. This
2503             workaround ignores the forecolor.
2504
2505 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
2506
2507         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
2508           endian safe.
2509
2510 2005-11-07  Jackson Harper  <jackson@ximian.com>
2511
2512         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
2513
2514 2005-11-07  Jackson Harper  <jackson@ximian.com>
2515
2516         * ScrollableControl.cs: Calculate the maximum and change vars
2517         (more) correctly so that scrollbars appear as a sensible size.
2518
2519 2005-11-04  Jackson Harper  <jackson@ximian.com>
2520
2521         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
2522         collection.
2523         * TreeView.cs: When the tree is sorted null out the top_node so
2524         that it is recalculated.
2525         - Use dotted lines instead of dashed lines to match MS better.
2526
2527 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
2528
2529         * ListView.cs: 
2530           - Implements key search for items. Useful when browsing files with FileDialog
2531           - When changing view mode or when clear the items reset scrollbar positions
2532
2533 2005-11-04  Jackson Harper  <jackson@ximian.com>
2534
2535         * CurrencyManager.cs: Implement the MetaDataChanged event, the
2536         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
2537         as to what the method may do as there is no real way of creating a
2538         derived CurrencyManager and calling the method. 
2539
2540 2005-11-03  Jackson Harper  <jackson@ximian.com>
2541
2542         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
2543         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
2544         method which seems to just be used internally to refresh the tabs.
2545
2546 2005-11-03  Jackson Harper  <jackson@ximian.com>
2547
2548         * TabControl.cs: Implement the remove method. Fix some broken
2549         comments.
2550
2551 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
2552
2553         * DateTimePicker.cs:
2554           - Added missing DateTimePickerAccessibleObject class
2555           - Added missing events
2556           - Added OnFontChanged method
2557         * Form.cs: Added missing attributes
2558         * TreeView.cs: Added missing attributes
2559
2560 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
2561
2562         * GridItemCollection.cs: Fix signatures
2563
2564 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
2565
2566         * XplatUI.cs: Updated build rev/date
2567         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
2568           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
2569         * Application.cs: Trigger context-specific ExitThread events
2570
2571 2005-11-03  Jackson Harper  <jackson@ximian.com>
2572
2573         * Menu.cs:
2574         * MainMenu.cs:
2575         * GridTableStylesCollection.cs:
2576         * Timer.cs:
2577         * TabPage.cs:
2578         * HelpProvider.cs:
2579         * StatusBar.cs:
2580         * MonthCalendar.cs: Signature fixes
2581
2582 2005-11-03  Jackson Harper  <jackson@ximian.com>
2583
2584         * TreeNodeCollection.cs: Remove should not be virtual.
2585         * TreeView.cs: Implement the last of the missing methods.
2586
2587 2005-11-03  Jackson Harper  <jackson@ximian.com>
2588
2589         * TreeNodeConverter.cs: Implement to get off my class-status back.
2590
2591 2005-11-03  Jackson Harper  <jackson@ximian.com>
2592
2593         * TreeView.cs: Hookup the bits for drag and drop.
2594         * TreeNode.cs: Don't cache the tree_view or index anymore, now
2595         that nodes can be moved from tree to tree easily this just causes
2596         all sorts of problems.
2597         * TreeNodeCollection: Don't need to give treenodes an index and
2598         treeview anymore when they are added, these are computed on the
2599         fly. Also make sure to remove a node before its added.
2600
2601 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
2602
2603         * TextControl.cs:
2604           - Added CaretSelection enum
2605           - Added comparison methods to Marker struct, makes selection code
2606             more readable
2607           - Added SelectionStart and SelectionEnd as 'moveable' location for
2608             the CaretDirection enum and handler
2609           - Added selection_prev variable to track optimized invalidation for
2610             word and line selection
2611           - Added SelectionVisible property (returns true if there is a valid 
2612             selection)
2613           - Switched CaretHasFocus to only display the caret if there is no
2614             visible selection
2615           - Avoiding StringBuilder.ToString to retrieve a single char, instead
2616             using the direct character index; should be much faster
2617           - Added various conditional debug statements
2618           - Fixed invalidation calculation for selection ranges
2619           - Added ExpandSelection() method to support word and line selection
2620           - Switched SetSelectionToCaret to use new Marker compare overloads
2621           - Added central IsWordSeparator() method to determine word 
2622             separators/whitespace and FindWordSeparator() to streamline common
2623             usage of IsWordSeparator()
2624         * TextBoxBase.cs:
2625           - Removed unneeded grabbed variable, it was just mirroring
2626             Control.Capture
2627           - No longer firing OnTextChanged event when Text setter is called,
2628             since the base will fire the event for us
2629           - Added handling of Ctrl-Up/Down selection
2630           - Added handling of Shift-Cursorkey selection
2631           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
2632             words
2633           - Added handling of Shift and Ctrl-Shift-Home/End selection
2634           - Removed some debug output
2635           - Added handling for single/double/tripple-click to place caret/
2636             select word/select line respectively (Fixes bug #76031)
2637           - Added support for drag expansion of word/line selection
2638         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
2639           current selection
2640
2641 2005-11-02  Jackson Harper  <jackson@ximian.com>
2642
2643         * X11Dnd.cs: If the drag is going to and from a MWF window just
2644         copy the data instead of sending it out through the X Selection
2645         mechanism.
2646
2647 2005-11-02  Jackson Harper  <jackson@ximian.com>
2648
2649         * X11Dnd.cs:
2650         * XplatUIX11.cs: When in a drag we don't want motion notify
2651         messages to get passed on to the other controls. This prevents
2652         mouse move messages from showing up in the drag source.
2653
2654 2005-11-02  Jackson Harper  <jackson@ximian.com>
2655
2656         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
2657         the correct button is release to end a drag.
2658         * XplatUIX11.cs: Make the button state internal so the drag system
2659         can access it.  Dragging needs to know about all button releases,
2660         not just left button.
2661
2662 2005-11-02  Miguel de Icaza  <miguel@novell.com>
2663
2664         * Form.cs (Icon): If the icon is null, reset the icon to the
2665         default value. 
2666
2667         * Cursor.cs: When writing the AND-mask bitmap do not include the
2668         number of colors, but hardcode those to two (black and white),
2669         fixes the loading of color cursors (Paint Dot Net).
2670
2671         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
2672         turn off autoscaling.
2673
2674         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
2675
2676 2005-11-02  Jackson Harper  <jackson@ximian.com>
2677
2678         * X11Dnd.cs: Make sure to send a status message if the pointer
2679         enters a control that can not accept a drop, otherwise the cursor
2680         isn't updated correctly. Also tried to compress the lines of code
2681         a bit.
2682
2683 2005-11-02  Jackson Harper  <jackson@ximian.com>
2684
2685         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
2686         set actions correctly.  This isn't perfect as XDND and win32 have
2687         some differences on how you allow actions. I'll clear this up by
2688         adding a path for drag from MWF to MWF windows.
2689         * XplatUIX11.cs: Hook into the dnd system.
2690
2691 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
2692
2693         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
2694         previously shown but they are no longer need it. Very obvious when 
2695         browsing files with FileDialog.
2696
2697 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
2698
2699         * Control.cs: We always need to call OnPaintBackground. We pretty much
2700           ignore AllPaintingInWmPaint and always do the painting there, whether 
2701           it's set or not, since we always ignore the WM_ERASEBKGND message 
2702           (which we don't generate on X11). This fixes #76616.
2703         * Panel.cs: Removed unneeded background painting. This happens properly
2704           in Control.cs already
2705
2706 2005-10-31  Mike Kestner  <mkestner@novell.com>
2707
2708         * Menu.cs: Add items to collection before setting their index.
2709         * MenuItem.cs : add range checking with ArgumentException like MS.
2710         [Fixes #76510]
2711
2712 2005-10-31  Jackson Harper  <jackson@ximian.com>
2713
2714         * ListBox.cs: Invalidate if the area is visible at all not just
2715         contained in the visible rect. Fixes unselection of semi visible
2716         items.
2717
2718 2005-10-31  Jackson Harper  <jackson@ximian.com>
2719
2720         * Control.cs: Consistently name the dnd methods. Make them
2721         internal so we can override them to match some MS behavoir
2722         internally.
2723         * Win32DnD.cs: Use the new consistent names.
2724
2725 2005-10-31  Jackson Harper  <jackson@ximian.com>
2726
2727         * TreeView.cs: Don't draw the selected node when we lose focus.
2728
2729 2005-10-31  Jackson Harper  <jackson@ximian.com>
2730
2731         * X11Dnd.cs: We still need to reset the state even though a full
2732         reset isn't being done, otherwise status's still get sent all over
2733         the place.
2734
2735 2005-10-31  Jackson Harper  <jackson@ximian.com>
2736
2737         * Control.cs: Make the dnd_aware flag internal so the dnd
2738         subsystem can check it. Catch exceptions thrown in dnd handlers to
2739         match MS behavoir.
2740         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
2741         * X11Dnd.cs: Handle null data in the converters. Set the XDND
2742         version when sending a XdndEnter. Use the control/hwnd dnd_aware
2743         flags to reduce the number of dnd enters/status's sent.
2744
2745 2005-10-31  Jackson Harper  <jackson@ximian.com>
2746
2747         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
2748
2749 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
2750
2751         * PictureBox.cs: Fixes 76512
2752
2753 2005-10-28  Jackson Harper  <jackson@ximian.com>
2754
2755         * X11Dnd.cs: Early implementation to support winforms being a drag
2756         source for data on X11. Also restructured the converters so they
2757         can go both ways now.
2758         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
2759         
2760 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
2761
2762         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
2763           clipboard requests
2764
2765 2005-10-27  Jackson Harper  <jackson@ximian.com>
2766
2767         * TreeNode.cs: Implement serialization so my DnD examples will work.
2768
2769 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
2770
2771         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
2772           TreeView.cs: Don't dispose objects that are not owned.
2773           
2774 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
2775
2776         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
2777           should retrieve the current cursor and report that, but XplatUI
2778           doesn't (yet) have an interface for that (and I'm not sure I even
2779           can, on X11)
2780         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
2781           until any message loop processing is done (and the WM_SETCURSOR
2782           replaces the cursor to the proper one)
2783         * XplatUIX11.cs: 
2784           - Fixed override behaviour, we can't set the cursor globally on X11, 
2785             just for our windows.
2786           - Invalidating the System.Drawing X11 display handle when we are
2787             shutting down
2788         * Control.cs: Fix to make csc happy
2789
2790 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
2791
2792         * TextBoxBase.cs: 
2793           - get_Text: Add last line (without trailing newline) to returned
2794             value (Fixes 76212)
2795           - get_TextLength: Count last line in returned length
2796           - ToString: Call Text property instead of duplicating code
2797
2798 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
2799
2800         * ImageList.cs: Dispose ImageAttributes objects.
2801
2802 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
2803
2804         * ImageList.cs: Use attribute constructors with less arguments where
2805           possible.
2806
2807 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
2808
2809         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
2810           Use typeof instead of strings when assembly is referenced. Added
2811           some more comments.
2812
2813 2005-10-21  Jackson Harper  <jackson@ximian.com>
2814
2815         * ListView.cs: Raise a double click event. Also tried to somewhat
2816         fix when the selectedindexchanged event is raised. Its still
2817         broken though.
2818
2819 2005-10-21  Jackson Harper  <jackson@ximian.com>
2820
2821         * TreeView.cs: New method to invalidate the plus minus area of a
2822         node without invalidating the whole node (maybe this can be used
2823         in some more places).
2824         * TreeNodeCollection.cs: When adding to an empty node we need to
2825         invalidate its plus minus area so the little block shows up.
2826         
2827 2005-10-21  Jackson Harper  <jackson@ximian.com>
2828
2829         * TreeView.cs: Make sure that when we invalidate a node the bounds
2830         are big enough to cover the selected box and the focus
2831         rectangle. Use a different colour for the lines connecting nodes
2832         so they show up with all themes.
2833
2834 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
2835
2836         * NativeWindow.cs: Don't call anything that could call into the driver,
2837           we might be on a different thread.
2838
2839 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
2840
2841         * Control.cs(Dispose): Since Dispose might run on a different thread,
2842           make sure that we call methods that could call into the driver via
2843           invoke, to avoid thread issues
2844
2845 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
2846
2847         * XplatUI.cs: Removed finalizer
2848         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
2849           not allowing to be called on the finalizer thread.
2850
2851 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
2852
2853         * ImageList.cs:
2854           - Reverted r51889 and r51891.
2855           - Added ImageListItem class that stores unmodified image items and image
2856             properties required to create list images until handle is created.
2857           - Added AddItem and moved image creation logic to AddItemInternal.
2858           - Added CreateHandle method that creates images based on unmodified items.
2859           - Added DestroyHandle that changes state to store unmodified items.
2860           - Add and AddStrip methods no more create handle.
2861           - ReduceColorDepth has no return value.
2862           - Dispose destroys handle.
2863           - Modified other methods to reflect the above changes.
2864           - Implemented key support.
2865           - Added profile 2.0 members and attributes.
2866           - Added private Reset and ShouldSerialize methods that provide the same
2867             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
2868             them as they are private.
2869           - Added some more comments about implementation details.
2870
2871 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
2872
2873         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
2874
2875 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
2876
2877         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
2878
2879 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
2880
2881         * DataGridDrawingLogic.cs: Fixes column hit calcultation
2882         * DataGridColumnStyle.cs: Remove debug message
2883
2884 2005-10-20  Jackson Harper  <jackson@ximian.com>
2885
2886         * TreeView.cs: We can always get input keys regardless of whether
2887         or not editing is enabled. They are used for navigation.
2888
2889 2005-10-20  Jackson Harper  <jackson@ximian.com>
2890
2891         * TreeNode.cs: Use the viewport rect for determining if a node
2892         needs to be moved for visibility. Don't use Begin/End edit. This
2893         calls a full refresh when its done.
2894         * TreeView.cs: New SetBottom works correctly.  Make the viewport
2895         rect property internal so the treenodes can see it. When clicking
2896         on a node we need to ensure that its visible because it might just
2897         be partly visible when clicked.
2898
2899 2005-10-20  Jackson Harper  <jackson@ximian.com>
2900
2901         * TreeNodeCollection.cs: Remove debug code.
2902
2903 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
2904
2905         * Datagrid.cs: Implements column sorting in Datagrid
2906         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
2907
2908 2005-10-20  Jackson Harper  <jackson@ximian.com>
2909
2910         * TreeNodeCollection.cs: Remove items properly. Update the correct
2911         area after removing them.
2912
2913 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
2914
2915         * Datagrid.cs: Should not call base.OnPaintBackground
2916
2917 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
2918
2919         * XplatUIX11.cs (GetMessage):
2920           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
2921             window instead of client window
2922           - Now properly calculates NC_xBUTTONUP message coordinates
2923           - ScreenToMenu now properly calculates it's coordinates of whole 
2924             window, since menus are in the whole window, not in the client
2925             window
2926           - Added WholeToScreen coordinate translation method
2927
2928 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
2929
2930         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
2931           want to return a message, loop back to the beginning of the function
2932           and grab the next real message to process instead.
2933
2934 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
2935
2936         * Splitter.cs: Properly set limits if no filler control is used
2937
2938 2005-10-19  Jackson Harper  <jackson@ximian.com>
2939
2940         * ColorDialog.cs: Don't show the help button if it is not enabled
2941         instead of disabling it (this is what MS does). Don't create the
2942         panel until the dialog is run, otherwise the vars (such as
2943         ShowHelp) are not set yet.
2944
2945 2005-10-19  Jackson Harper  <jackson@ximian.com>
2946
2947         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
2948         are reduced when adding nodes.
2949         * TreeNode.cs:
2950         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
2951         tree.
2952         
2953 2005-10-19  Jackson Harper  <jackson@ximian.com>
2954
2955         * FolderBrowserDialog.cs: End editing our treeview so the window
2956         actually gets refreshed.
2957
2958 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
2959
2960         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
2961           Obsoleted handling of WM_ERASEBKGND, now always draws our background
2962           inside of WM_PAINT
2963
2964 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
2965
2966         * MenuAPI.cs: Returns after Hidding window
2967         * XplatUIX11.cs: Added TODO found while debugging menu issues
2968
2969 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
2970
2971         * XplatUIX11.cs: Do not re-map the whole window when it's size
2972           becomes non-zero unless it's supposed to be actually visible
2973
2974 2005-10-18  Jackson Harper  <jackson@ximian.com>
2975
2976         * TreeView.cs: We don't need to keep a count anymore.
2977         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
2978         use the Grow method.
2979
2980 2005-10-18  Jackson Harper  <jackson@ximian.com>
2981
2982         * TreeNodeCollection.cs: Insert is not supported on arrays, so
2983         implement it manually here.
2984
2985 2005-10-18  Jackson Harper  <jackson@ximian.com>
2986
2987         * ImageList.cs: Dont kill the list when the colour depth is
2988         changed, just change the colour depth of all the images.
2989         - Same goes for setting the image size. Just resize them all
2990         instead of killing the list softly.
2991
2992 2005-10-18  Jackson Harper  <jackson@ximian.com>
2993
2994         * Control.cs: Don't invalidate empty rectangles.
2995
2996 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
2997
2998         * ListViewItem.cs:
2999           - Adds checked item to the Checked/Item lists (where empty before)
3000           - Do not add items to the Selected lists if they are already present
3001         * ListView.cs:
3002           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
3003           - When deleting items make sure that we delete them for the Selected
3004           and Checked list also.
3005
3006 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
3007
3008         * Label.cs: Dispose objects no longer used
3009         * ThemeWin32Classic.cs: Dispose objects no longer used
3010
3011 2005-10-18  Jackson Harper  <jackson@ximian.com>
3012
3013         * TabControl.cs: Don't refresh the whole control when the tabs are
3014         scrolled, we just need to refresh the tab area.
3015
3016 2005-10-17  Jackson Harper  <jackson@ximian.com>
3017
3018         * XplatUIX11.cs: Compress code a little bit. Only calculate the
3019         after handle when we need it.
3020
3021 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
3022
3023         * Control.cs: When the parent size changes, recalculate anchor 
3024           positions. Partial fix for #76462
3025
3026 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
3027
3028         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
3029           drawn. Fixes #76462
3030
3031 2005-10-17  Jackson Harper  <jackson@ximian.com>
3032
3033         * MonthCalendar.cs: Don't create the numeric up down until our
3034         handle is created. Otherwise our handle is created in the
3035         constructor and we don't know if we are a WS_CHILD or WS_POPUP
3036         yet.
3037
3038 2005-10-17  Jackson Harper  <jackson@ximian.com>
3039
3040         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
3041         correctly.
3042
3043 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
3044         * TreeNode.cs : small logical fix (was using local var instead of field)
3045         
3046 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
3047
3048         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
3049
3050 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
3051
3052         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
3053
3054 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
3055
3056         * Control.cs: 
3057           - Re-implemented anchoring code. My first version was really broken.
3058             This fixes bug #76033. Unlike the previous implementation we will
3059             no longer have round errors since all numbers are calculated from
3060             scratch every time. Removed various anchor-related obsolete vars.
3061           - InitLayout no longer causes layout event firing and layout to be 
3062             performed
3063
3064 2005-10-16  Jackson Harper  <jackson@ximian.com>
3065
3066         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
3067         which was broken).
3068
3069 2005-10-16  Jackson Harper  <jackson@ximian.com>
3070
3071         * TabControl.cs: Remove debug code.
3072
3073 2005-10-16  Jackson Harper  <jackson@ximian.com>
3074
3075         * XEventQueue.cs: Increase the default queue size (very simple
3076         apps needed to grow the queue).
3077         * Hwnd.cs: No finalizer so we don't need to suppress
3078         finalization. Compute the invalid area manually so a new rectangle
3079         does not newto be created.
3080         * ScrollableControl.cs: Don't set any params (otherwise visibility
3081         isn't set correctly).
3082         * MdiChildContext.cs: New constructor takes the mdi parent so it
3083         doesn't have to be computed and avoids a crash on windows. Draw
3084         the window icon properly, and allow the text to be seen.
3085         * Form.cs: Use new MdiChildContext constructor. Make sure the
3086         child context isn't null in wndproc.
3087         * TabControl.cs: Don't set focus, this is muddling keyboard
3088         behavoir. Expand the tab rows when a window size increase will
3089         allow extra tabs to be seen. Don't allow tabs smaller than the
3090         width of a window to be scrolled out of view.
3091         * TreeNode.cs:
3092         * TreeView.cs: Use measure string to calculate a nodes width, the
3093         width is cached and only updated when the text or the font is
3094         changed. Don't check for expand/collapse clicks on the first level
3095         nodes if root lines are disabled.
3096         
3097 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
3098
3099         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
3100
3101 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
3102
3103         * DataGridBoolColumn.cs: fixes warning
3104
3105 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
3106
3107         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
3108         to match more to match more precisely the MS Net behavior
3109
3110 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
3111
3112         * Hwnd.cs: Added field to track if window is mapped
3113         * XplatUIX11.cs: 
3114           - Unmap windows if they become 0-size, re-map when 
3115             they are >0 again; fixes #76035
3116           - Re-set our error handler after initializing X11Desktop
3117             to override any error handlers Gtk or whatever was called
3118             may have set.
3119
3120 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
3121
3122         * CheckedListBox.cs: Removed unused vars
3123         * ListView.cs: Fixed signatures
3124         * RichTextBox.cs: Removed unused vars
3125         * TextBoxBase.cs: Removed unused vars
3126         * XplatUIWin32.cs: Removed unused vars
3127         * XplatUIX11.cs: Removed unused vars
3128         * XplatUI.cs: Updated version and date to latest published
3129
3130 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
3131
3132         * Cursor.cs: Added private .ctor to work around a bug in
3133           resourceset (Thanks to Geoff Norton for the help on this)
3134         * SplitterEventArgs.cs: Made fields accessible so we don't
3135           waste boatloads of objects and can reuse the same one
3136           in Splitter
3137         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
3138           any captions and borders when generating screen coordinates
3139         * Splitter.cs: Reimplemented control, now fully complete, uses
3140           rubberband drawing, supports and obeys all properties, has
3141           proper cursors
3142
3143 2005-10-13  Miguel de Icaza  <miguel@novell.com>
3144
3145         * Form.cs (Form): Setup default values for autoscale and
3146         autoscale_base_size;  Make these instance variables, not static
3147         variables. 
3148
3149         (OnLoad): on the first load, adjust the size of the form.
3150
3151 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
3152
3153         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
3154           width argument to DrawReversibleRectangle()
3155         * XplatUIWin32.cs, XplatUIX11.cs: 
3156           - Implemented width for DrawReversibleRectangle()
3157           - Added logic to DrawReversibleRectangle that recognizes a zero
3158             width or height and only draws a line in that situation
3159         
3160 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
3161
3162         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
3163         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
3164         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
3165           method (it uses our FosterParent window to get a graphics context)
3166
3167 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
3168
3169         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
3170           and SetWindowBackground methods
3171         * Control.cs:
3172           - Setting proper ControlStyles
3173           - We no longer call XplatUI.SetWindowBackground and XplatUI.
3174             EraseWindowBackground, instead we draw the window background
3175             ourselves in PaintControlBackground. This behaviour is
3176             required to match MS, where, when OnPaintBackground is not
3177             called, the background is not drawn.
3178           - Removed unneeded Refresh() in set_Text
3179         * Hwnd.cs: Dropped the ErasePending support. No longer needed
3180         * XplatUIX11.cs:
3181           - Created DeriveStyles method to translate from CreateParams to
3182             FormBorderStyle and TitleStyle, also handles BorderStyle (which
3183             matches FormBorderStyle enum values)
3184           - Consolidated SetHwndStyles and CalculateWindowRect border/title
3185             style calculations into single DeriveStyles method
3186           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
3187             from redrawing the whole window on any resize or expose.
3188           - Fixed CreateWindow usage of SetWindowValuemask. Before not
3189             all styles were applied to our whole/client window appropriately
3190           - Removed EraseWindowBackground() and SetWindowBackground() methods
3191           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
3192             no longer clear/redraw the background through X
3193           - Removed handling of erase_pending bit, we have no use for it (or
3194             so it seems)
3195         * XplatUIOSX.cs:
3196           - Removed generation and handling of WM_ERASEBKGND message
3197           - Removed EraseWindowBackground() and SetWindowBackground() methods
3198           - Removed handling of hwnd.ErasePending flag
3199         * XplatUIWin32.cs:
3200           - Removed EraseWindowBackground() and SetWindowBackground() methods
3201           - We no longer call EraseWindowBackground on PaintEventStart, we 
3202             ignore the fErase flag, erasing is handled in Control in the
3203             background handler
3204         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
3205           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
3206           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
3207           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
3208           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
3209           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
3210           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
3211
3212 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
3213
3214         * PropertyGrids.cs: Get sub properties
3215         * PropertyGridView.cs: Fix drawing code
3216
3217 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
3218
3219         * ListBox.cs: Fixes 76383
3220
3221 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
3222
3223         * DataGridTextBoxColumn.cs: Sets location and size before attachment
3224         * ThemeWin32Classic.cs: Fixes border drawing and calculations
3225         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
3226
3227
3228 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
3229
3230         * ComboBox.cs: Fixes border drawing
3231
3232 2005-10-10  Miguel de Icaza  <miguel@novell.com>
3233
3234         * MimeIcon.cs: Ignore errors if the file can not be read.
3235
3236 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
3237
3238         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
3239          - Fixed border calculations
3240          - Fixed horizontal scrolling in single column listboxes
3241          - Fixed drawing issues
3242
3243 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
3244
3245         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
3246           FormBorderStyle enum
3247         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
3248           code to determine FormBorderStyles from CreateParams
3249         * Form.cs:
3250           - Fixed bug where we'd set the wrong window styles if we were
3251             not creating an MDI window
3252           - Added call to XplatUI.SetBorderStyle when form borders are set
3253         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
3254         * Hwnd.cs:
3255           - Removed obsolete edge style
3256           - Switched from BorderStyle to FormBorderStyle
3257         
3258 2005-10-10  Jackson Harper  <jackson@ximian.com>
3259
3260         * Form.cs: Use the property to get the window handle instead of
3261         accessing it directly. Prevents a null reference exception.
3262
3263 2005-10-10  Jackson Harper  <jackson@ximian.com>
3264
3265         * TreeView.cs: Don't adjust the rect given to DrawString now that
3266         our libgdiplus draws correctly.
3267
3268 2005-10-08  Jackson Harper  <jackson@ximian.com>
3269
3270         * TreeView.cs: Don't try to find the clicked on node if there are
3271         no nodes in the tree.
3272
3273 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
3274
3275         * RichTextBox.cs:
3276
3277           restore
3278
3279 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
3280
3281         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
3282           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
3283           ErrorProvider.cs:
3284           Use ResPool for brushes and dispose System.Drawing objects that
3285           are not used anymore.
3286
3287 2005-10-07  Jackson Harper  <jackson@ximian.com>
3288
3289         * MdiChildContext.cs: Use the new borders instead of drawing them
3290         ourselves.
3291
3292 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
3293
3294         * Calling UpdateBounds after changing the window's BorderStyle 
3295         since the style can change the ClientSize
3296
3297 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
3298
3299         * Control.cs: Made PaintControlBackground virtual
3300         * Panel.cs: Overriding PaintControlBackground instead of using paint
3301           event; paint event method was interfering with 'real' users of the
3302           event.
3303
3304 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
3305
3306         * ThemeWin32Classic.cs: remove border drawing since it is handled
3307         by the base control class now and was causing double border drawing.
3308
3309 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
3310
3311         * Panel.cs: Redraw our background on paint. Not a pretty solution,
3312           but it does seem to match MS behaviour. This fixes bug #75324
3313
3314 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
3315
3316         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
3317           somewhat hackish looking
3318
3319 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
3320
3321         * TextBoxBase.cs:
3322           - We now accept Enter even if AcceptEnter is false, if the containing
3323             form does not have an AcceptButton configured (fixes bug #76355)
3324           - Calculations are now fixed to no longer use Width/Height, but
3325             ClientSize.Width/Height, since we now support borders (this was
3326             a result of fixing borders and therefore bug #76166)
3327           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
3328             true (fixes bug #76354)
3329         
3330 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
3331
3332         * Control.cs: 
3333           - Defaulting BorderStyle and setting it in XplatUI when our window 
3334             is created
3335           - Added enum check to InternalBorderStyle setter
3336         * XplatUIX11.cs: 
3337           - Added drawing of window borders
3338           - Now properly calculates WM decorations offset for toplevel 
3339             windows (fixes bug #74763)
3340         * XplatUIWin32.cs: 
3341           - Implemented BorderStyles for windows (we're letting win32 draw 
3342             the border for us)
3343           - Fixed the signature for SetWindowLong
3344         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
3345           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
3346           setting borders
3347         * UpDownBase.cs: Remove drawing of borders, this is handled by
3348           the driver, outside the client area
3349         * ListView.cs: Removed bogus border calculations. The control should
3350           be oblivious to borders, since those are not part of the client
3351           area. 
3352         * X11DesktopColors.cs: Commented out (currently) unneeded variables
3353         * ThemeWin32Classic.cs: Removed border calculations from ListView 
3354           drawing code
3355
3356 2005-10-06  Jackson Harper  <jackson@ximian.com>
3357
3358         * MdiChildContext.cs: Clear out the old virtual position remove
3359         all the unneeded calls to CreateGraphics.
3360
3361 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
3362
3363         * TextControl.cs: Use proper color for highlighted text; fixes #76350
3364
3365 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
3366
3367         * Form.cs: 
3368           - Added loading and setting of our new default icon
3369           - Only set icon if window is already created
3370
3371 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
3372
3373         * Label.cs:
3374           - Do not explicitly set the foreground and background colors, to
3375             allow inheriting from parents (fixes #76302)
3376           - Use Control's InternalBorderStyle property to deal with borders
3377
3378 2005-10-06  Jackson Harper  <jackson@ximian.com>
3379
3380         * MdiChildContext.cs: Use the new xplatui function to draw a
3381         reversible rect.
3382
3383 2005-10-06  Jackson Harper  <jackson@ximian.com>
3384
3385         * Form.cs: Add the parent before creating the child context cause
3386         we need the parent when setting up the child.
3387
3388 2005-10-06  Jackson Harper  <jackson@ximian.com>
3389
3390         * FolderBrowserDialog.cs: redo the tree population code so a
3391         second thread isn't used. Should be a lot faster and more stable
3392         now.
3393
3394 2005-10-05  Jackson Harper  <jackson@ximian.com>
3395
3396         * TreeView.cs: There are no expand/collapse boxes if the node has
3397         no children.
3398
3399 2005-10-05  Jackson Harper  <jackson@ximian.com>
3400
3401         * X11DesktopColors.cs: Get menu colours for the gtk theme.
3402
3403 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
3404
3405         * FileDialog.cs: Fix InitialDirectory
3406
3407 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
3408
3409         * ComboBox.cs:
3410                 - Fixes changing between styles
3411                 - Fixes simple mode
3412                 - Fixes last item crashing when navigating with keyboard
3413
3414 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
3415
3416         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
3417
3418 2005-10-05  Jackson Harper  <jackson@ximian.com>
3419
3420         * TreeView.cs: If updating the root node do a full refresh.
3421         * TreeNode.cs: The root node should be expanded by default. Also
3422         added a utility prop to tell if we are the root node.
3423         * TreeNodeCollection.cs: Only refresh if the node we are being
3424         added to is expanded. Also added a comment on a potential
3425         optimization.
3426         
3427 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
3428
3429         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
3430           in dispose method. Fixes #76330
3431
3432 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
3433
3434         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
3435
3436                 - Implements vertical and horizontal scrolling using XplatUI
3437                 - Fixes keyboard navagation
3438                 - Fixes EnsureVisible
3439                 - Drawing fixes
3440                 - Handles and draws focus properly
3441
3442
3443 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
3444
3445         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
3446           Create handle. NET_2_0: Destroy handle when value is null.
3447
3448 2005-10-03  Jackson Harper  <jackson@ximian.com>
3449
3450         * ScrollBar.cs: My last scrollbar patch was broken. This is a
3451         revert and a new patch to prevent the thumb from refreshing so
3452         much.
3453
3454 2005-10-02  Jackson Harper  <jackson@ximian.com>
3455
3456         * ScrollBar.cs: Don't update position if it hasn't actually
3457         changed. This occurs when you hold down the increment/decrement
3458         buttons and the thumb gets to the max/min.
3459
3460 2005-10-01  Jackson Harper  <jackson@ximian.com>
3461
3462         * Form.cs:
3463         * MdiChildContext.cs:
3464         * MdiClient.cs: Implement ActiveMdiChild in Form.
3465
3466 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
3467
3468         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
3469
3470 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
3471
3472         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
3473           be found
3474
3475 2005-09-30  Jackson Harper  <jackson@ximian.com>
3476
3477         * ListBox.cs: Don't do a full refresh unless some data has
3478         actually changed.
3479
3480 2005-09-30  Jackson Harper  <jackson@ximian.com>
3481
3482         * TreeView.cs: Make sure that the checkboxes size is factored in
3483         even when not visible.
3484
3485 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
3486
3487         * FileDialog.cs: Fix Jordi's build break
3488
3489 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
3490
3491         * FileDialog.cs: 
3492                 - Use standard the Windows colours for the combobox as espected
3493                 - Dispose objects that use resouces when no longer need them
3494
3495 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
3496
3497         * X11DesktopColors.cs: Initial incomplete implementation
3498         * XplatUIX11.cs: Added call to initialize X11DesktopColors
3499
3500 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
3501
3502         * Theme.cs: 
3503           - Switched Theme color names to match the names defined in 
3504             System.Drawing.KnownColors. Life's hard enough, no need to make 
3505             it harder.
3506           - Added setters to all theme color properties so themes can set
3507             their color schemes. The setters also propagate the color changes
3508             to System.Drawing.KnownColors via reflection
3509         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
3510           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
3511           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
3512           use the new, more logical theme color names
3513         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
3514           post-NT colors
3515         * ThemeWin32Classic.cs:
3516           - Removed code to set the old classic Windows colors. Instead it
3517             now relies on the colors returned by System.Drawing.KnownColors
3518             which will be either modern static colors (Unix) or colors
3519             read from the user's configuration (Win32)
3520           - Updated to use the new, more logical theme color names
3521           - Switched DataGrid drawing code to use only Theme colors instead of
3522             a mix of System.Drawing.KnownColors and Theme colors
3523           - DrawFrameControl(): Removed code that fills the button area, the
3524             fill would overwrite any previous fill done by a control. This
3525             fixes bug #75338 
3526           - Added DrawReversibleRectangle() stub
3527         * ScrollableControl.cs: Set visible state to false when scrollbars
3528           are removed (pdn fix)
3529         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
3530           DrawReversibleRectangle() method to allow drawing primitive 
3531           'rubber bands'
3532         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
3533
3534 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3535
3536         * ImageList.cs: Add(Icon): Create handle.
3537
3538 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
3539
3540         * ListView.cs:
3541         * ThemeWin32Classic.cs:
3542                 - Fixes detail mode
3543                 - Sets clippings
3544                 - Issues with drawing
3545
3546 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3547
3548         * ImageList.cs: Moved RecreateHandle back to ImageList as event
3549           source has to be the ImageList.
3550
3551 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3552
3553         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
3554
3555 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3556
3557         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
3558
3559 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3560
3561         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
3562
3563 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
3564         * GridItem.cs: Fixed TODOs
3565         * GridItemCollection.cs: Added ICollection interface
3566
3567 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
3568
3569         * ImageList.cs: Resize icons when needed.
3570
3571 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
3572
3573         * ListViewItem.cs
3574                 - Fixes GetBounds and returns on screen rects
3575         * ListView.cs:
3576                 - Fixes vertical and horzintal scrolling of items
3577         * ThemeWin32Classic.cs:
3578                 - Fixes drawing
3579                 
3580 2005-09-29  Raja R Harinath  <harinath@gmail.com>
3581
3582         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
3583
3584 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
3585
3586         * ImageList.cs: Added comments about handle creation. Moved Handle,
3587           HandleCreated and OnRecreateHandle implementations to ImageCollection.
3588           Handle is created in Add methods.
3589
3590 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
3591          
3592         * DataGridDrawingLogic.cs: 
3593                 - Takes rows into account on Colum calculations
3594                 - Returns the column when clickig
3595         * DataGrid.cs:
3596                 - Fixes default HitTestInfo values
3597                 - Fixes HitTestInfo.ToString
3598                 - Fixes ResetBackColor          
3599         
3600 2005-09-28  Jackson Harper  <jackson@ximian.com>
3601
3602         * MdiChildContext.cs: Obey rules for fixed sized windows (no
3603         sizing or cursor changes). Also added some temp code to draw the
3604         titlebars text (Makes dev a little easier).
3605
3606 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
3607
3608         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
3609
3610 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
3611          
3612         * ListBox.cs: Fixes bug 76253
3613
3614 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
3615
3616         * ImageList.cs: Added comments about the current implementation. Added
3617           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
3618           Format32bppArgb to preserve transparency and can use Graphics.FromImage
3619           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
3620           with Bitmap.LockBits for better performance. Revised the whole file to
3621           match MS.NET behaviour and provide better performance. Non-public
3622           interface members are calling public members even when they throw
3623           NotSupportedException for better maintainability. Moved ColorDepth,
3624           ImageSize, ImageStream and TransparentColor implementations to
3625           ImageCollection for better performance as these properties are not used
3626           by ImageList.
3627         * ImageListStreamer.cs: Added a new internal constructor that takes an
3628           ImageList.ImageCollection and serializes Images based on
3629           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
3630           match ImageList property name.
3631
3632 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
3633
3634         * ListBox.cs: Fixes IndexFromPoint for last item
3635
3636 2005-09-27  Jackson Harper  <jackson@ximian.com>
3637
3638         * Form.cs: Set the position of new mdi children correctly.
3639
3640 2005-09-27  Jackson Harper  <jackson@ximian.com>
3641
3642         * MdiClient.cs: New mdi children need to be added to the back of
3643         the controls collection so the zorder is set correctly. Also add a
3644         count of all the child windows that have been created.
3645
3646 2005-09-27  Jackson Harper  <jackson@ximian.com>
3647
3648         * Form.cs (CreateParams): Setup MDI forms correctly.
3649
3650 2005-09-27  Jackson Harper  <jackson@ximian.com>
3651
3652         * MdiChildContext.cs:
3653         * MonthCalendar.cs:
3654         * UpDownBase.cs:
3655         * ListBox.cs:
3656         * ListView.cs:
3657         * TextBoxBase.cs:
3658         * TreeView.cs:
3659         * ScrollableControl.cs:
3660         * ComboBox.cs: Add implicit controls using the new implict control
3661         functionality in ControlCollection. Also try to block multiple
3662         control add in a suspend/resume layout to save some cycles.
3663         
3664 2005-09-27  Jackson Harper  <jackson@ximian.com>
3665
3666         * Control.cs: Add functionality to the controls collection to add
3667         'implicit controls' these are controls that are created by the
3668         containing control but should not be exposed to the user. Such as
3669         scrollbars in the treeview.
3670         * Form.cs: The list var of the ControlsCollection is no longer
3671         available because of the potential of implicit controls getting
3672         ignored by someone accessing the list directly.
3673
3674 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
3675
3676         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
3677           loose it's parent. (Fixed bug introduced in r49103 when we added
3678           setting the child parent to null on Remove)
3679
3680 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
3681
3682         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
3683         * Splitter.cs: Added missing attributes for BorderStyle property.
3684         * TextBoxBase.cs: Marked Calculate* methods internal.
3685         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
3686         MS.NET.
3687
3688 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
3689          
3690         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
3691
3692 2005-09-25  Jackson Harper  <jackson@ximian.com>
3693
3694         * TreeView.cs: Update the node bounds correctly regardless of
3695         whether the node is visible.
3696
3697 2005-09-25  Jackson Harper  <jackson@ximian.com>
3698
3699         * ImageList.cs: Don't dispose the image after it is added to the
3700         image list. Only reformat images that need to be resized.
3701
3702 2005-09-25  Jackson Harper  <jackson@ximian.com>
3703
3704         * ImageList.cs: Don't set the format when changing the image.
3705
3706 2005-09-25  Jackson Harper  <jackson@ximian.com>
3707
3708         * TreeView.cs: We can't just assume the node has a font. Use the
3709         treeviews font if no node font is available.
3710
3711 2005-09-25  Jackson Harper  <jackson@ximian.com>
3712
3713         * TreeView.cs: Allow the scrollbars to be reset with negative
3714         values.
3715         - Don't add scrollbars to negative sized windows.
3716
3717 2005-09-23  Jackson Harper  <jackson@ximian.com>
3718
3719         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
3720         old Mono.Posix. Also remove some stray code that shouldn't have
3721         been committed.
3722
3723 2005-09-23  Jackson Harper  <jackson@ximian.com>
3724
3725         * TreeView.cs: Attempt at proper sizing of the horizontal
3726         scrollbar. Also don't resize the scrollbars unless they are
3727         visible.
3728
3729 2005-09-23  Jackson Harper  <jackson@ximian.com>
3730
3731         * TreeView.cs: We don't need to expand the invalid area when the
3732         selection changes, as this is all drawn in the node's bounding
3733         box. The area needs to be expanded (previous typo was contracting
3734         it) when the focus rect moves.
3735
3736 2005-09-23  Jackson Harper  <jackson@ximian.com>
3737
3738         * TreeView.cs: Display the selection box under the correct
3739         circumstances. We were rendering white text with no selection box
3740         before.
3741
3742 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
3743
3744         * TextControl.cs(Split): Now updates selection start/end if it points 
3745           into a line that's being split. Fixes a FIXME and bug #75258
3746
3747 2005-09-23  Jackson Harper  <jackson@ximian.com>
3748
3749         * Binding.cs:
3750         * ListControl.cs: Don't use the path when retrieving binding
3751         managers from the binding context. My bat sense tells me that the
3752         path is only used on insertion.
3753
3754 2005-09-22  Jackson Harper  <jackson@ximian.com>
3755
3756         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
3757
3758 2005-09-22  Jackson Harper  <jackson@ximian.com>
3759
3760         * Splitter.cs: There are special cursors used for splitting.
3761         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
3762
3763 2005-09-22  Jackson Harper  <jackson@ximian.com>
3764
3765         * Splitter.cs: Change the cursor appropriately when the splitter
3766         is moused over, so the user actually knows there is a splitter
3767         there.
3768
3769 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
3770
3771        * Label.cs : Fix ToString method to give same output as MS.NET
3772
3773 2005-09-22  Jackson Harper  <jackson@ximian.com>
3774
3775         * TreeView.cs: Create the scrollbars when the handle is created
3776         and add them right away, just make them invisble. Also account for
3777         the window being shrunk vertically to the point that the vert
3778         scrollbar needs to be added.
3779         - Remove some 0.5 adjustments to get around anti aliasing issues.
3780         
3781 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
3782          
3783         * MainMenu.cs: Fixes default value
3784         * MenuItem.cs: Fixes default value
3785
3786 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
3787
3788         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
3789
3790 2005-09-21  Jackson Harper  <jackson@ximian.com>
3791
3792         * Control.cs: Don't try to set the border style on the window if
3793         it hasn't been created. When the window is created the border
3794         style will be used.
3795
3796 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
3797
3798         * Control.cs (Update): Don't call XplatUI if we don't have a
3799           window handle yet
3800
3801 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
3802
3803         * ContainerControl.cs: Instead of throwing an exception, print
3804           a one-time warning about Validate not being implemented
3805         * XplatUIWin32.cs: Removed debug output
3806
3807 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
3808
3809         * Control.cs: Only set XplatUI background if we expect the windowing
3810           system to handle the background. This stops controls that draw their
3811           own background from flickering
3812
3813         * XplatUIX11.cs: Support custom visuals and colormaps for window 
3814           creation. This allows, amongst other things, using MWF X11 windows 
3815           with OpenGL.
3816
3817 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
3818
3819         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
3820           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
3821           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
3822           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
3823           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
3824           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
3825           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
3826           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
3827           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
3828           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
3829           GridColumnStylesCollection.cs, 
3830           IDataGridColumnStyleEditingNotificationService.cs,
3831           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
3832           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
3833           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
3834           TreeNodeCollection.cs, AmbientProperties.cs, 
3835           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
3836           DataObject.cs, ErrorProvider.cs, Splitter.cs,
3837           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
3838           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
3839           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
3840           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
3841           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
3842           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
3843           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
3844           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
3845           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
3846           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
3847           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
3848           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
3849           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
3850           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
3851           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
3852           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
3853           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
3854           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
3855           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
3856           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
3857           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
3858           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
3859           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
3860           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
3861           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
3862           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
3863           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
3864           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
3865           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
3866           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
3867           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
3868           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
3869           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
3870           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
3871           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
3872
3873 2005-09-21  Jackson Harper  <jackson@ximian.com>
3874
3875         * TreeNode.cs: Call Before/After Expand not Collapse when
3876         expanding.
3877
3878 2005-09-20  Jackson Harper  <jackson@ximian.com>
3879         
3880         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
3881
3882 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
3883          
3884         * ListViewItem.cs:
3885                 - Fixes bug 76120
3886                 - Fixes proper storing of subitems
3887                 - Fixes not updated items
3888
3889 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
3890
3891         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
3892           things if our window handle isn't created yet. Also disabled 
3893           debug for TextBoxBase
3894
3895 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
3896
3897         * MenuAPI.cs: Remove filtering of events to allow menu usage
3898
3899 2005-09-20  Miguel de Icaza  <miguel@novell.com>
3900
3901         * Cursor.cs: Allow null to be passed to Cursor.Current.
3902
3903 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
3904
3905         * ThemeWin32Classic.cs:
3906           - Change some private methods/fields to protected virtual so that 
3907             they can be accessed and overriden in derived classes
3908           - First refactoring of some methods. Derived themes now don't 
3909             need to duplicate the complete code from ThemeWin32Classic
3910         * ThemeNice.cs:
3911           - Added nice StatusBar
3912           - Derive from ThemeWin32Classic and not Theme
3913           - Removed duplicate ThemeWin32Classic code
3914
3915 2005-09-20  Miguel de Icaza  <miguel@novell.com>
3916
3917         * Control.cs (ControlCollection.Add): If the value null is passed
3918         the control is ignored. 
3919
3920         Optimize this loop.
3921
3922 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
3923
3924         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
3925           PostQuitMessage state.
3926         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
3927
3928 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
3929
3930         * Application.cs: Our constructor will never get called, move 
3931           initialization to fields; fixes bug #75933
3932
3933 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
3934
3935         * FileDialog.cs :
3936                 - Allow files to be selected properly using file name
3937                 combo box.
3938                 - Add ability to change diretory (absolute / relative)
3939                 using file name combo box.
3940
3941 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
3942          
3943         * ListBox.cs: 
3944                 - Fixes Multicolumn listboxes item wrong calculations
3945                 - Allows to click when only one item is in the listbox
3946                 - Fixes crash when no items using keyboard navigation
3947
3948 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
3949
3950         * ComboBox.cs: Reverted almost everything from the latest patch which
3951           broke ComboBox
3952
3953 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
3954         
3955         * ToolTip.cs:
3956                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
3957         * ComboBox.cs:
3958                 - When DropDownStyle is Simple, it does not show scrollbar 
3959                 to the last item of the list.
3960                 - When DropDownStyle is Simple, it crashed when the list was 
3961                 scrolled down with the down cursor key.
3962                 - Fixed a bug that when DropDownStyle is DropDownList, the 
3963                 selected item was not shown.
3964                 - The position of the selected item was not preserved when 
3965                 the next dropdown happened.
3966         * ThemeWin32Classic.cs:
3967                 - Items were wrapped at the right end.
3968         * CheckedListBox.cs:
3969                 - Fixed Add method
3970         * ListBox.cs:
3971                 - Items should be fully shown.
3972                 - When resizing and vertical scrollbar disappeared, the item 
3973                 of index 0 should be on the top of the list.
3974                 - GetItemRectangle should consider the size of ver. scrollbar
3975         * StatusBar.cs:
3976                 - SizingGrip area should not be allocated when it is not 
3977                 displayed.
3978                 - Now it reflects MinWidth of the containing panel and 
3979                 fixed a crash that happens when its width becomes so small.
3980
3981 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
3982
3983         * CheckedListBox.cs: Fixes bug 76028
3984         * ListBox.cs: Fixes bug 76028
3985
3986 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
3987
3988         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
3989         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
3990
3991 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
3992
3993         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
3994
3995 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3996
3997         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
3998
3999 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4000
4001         * IRootGridEntry.cs: Added
4002         * PropertyGridCommands.cs: Added
4003         * PropertiesTab.cs: Added missing methods and property
4004         * PropertyGridView.cs: Made class internal
4005         * PropertyGridTextBox.cs: Made class internal
4006
4007 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
4008
4009         * MimeIcon.cs: Try to check some other environment variables
4010           if "DESKTOP_SESSION" returns "default"
4011
4012 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
4013
4014         * ThemeNice.cs: Corrected background colors (e.g. menus)
4015         * ColorDialog.cs: Use correct background colors for controls
4016
4017 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
4018
4019         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
4020
4021 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
4022
4023         * RichTextBox.cs: Added initial implementation
4024         * lang.cs: Removed. Was accidentally checked in long time ago
4025         * TODO: Removed. Contents were obsolete
4026
4027 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
4028                                                                                 
4029         * PropertiesTab.cs : Added
4030
4031 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
4032                                                                                 
4033         * PropertyGrid.cs : Update
4034         * PropertyGridView.cs : Update
4035         * System.Windows.Forms.resx : Added images and strings
4036
4037 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
4038
4039         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
4040  
4041 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
4042
4043         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
4044           a busy loop right after the Ungrab the X11 display is otherwise 
4045           blocked
4046
4047 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
4048
4049         * ThemeWin32Classic.cs: Optimise the use of clipping
4050
4051 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
4052
4053         * DataGrid.cs: fixes recursion bug
4054
4055 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
4056
4057         * ThemeNice.cs: 
4058           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
4059           - Cleanup
4060
4061 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
4062
4063         * ThemeNice.cs: Draw nice ProgressBars
4064
4065 2005-09-01  Miguel de Icaza  <miguel@novell.com>
4066
4067         * VScrollBar.cs: Another buglet found by Aaron's tool. 
4068
4069         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
4070         bug finder.
4071
4072 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
4073
4074         * ThemeNice.cs:
4075           - Added nicer menu drawing
4076           - Updated DrawTab
4077           - some refactoring
4078
4079 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
4080
4081         * CreateParams.cs (ToString): Made output match MS
4082         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
4083             handle is already created (to avoid forcing window creation)
4084         * XplatUIX11.cs: Set window text to caption after creating window,
4085           in case Text was set before window was created
4086         * Form.cs: Use this.Text instead of a static string as caption
4087
4088 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4089
4090         * NotifyIcon.cs: Don't set the window to visible; this screws
4091           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
4092           OnPaint without a bitmap)
4093         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
4094           happen very often anyway; we could add the check to the WM_PAINT 
4095           event generation code
4096
4097 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
4098
4099         * NotifyIcon.cs: Fill the icon area with a background color, to 
4100           avoid 'residue' when transparent icons are drawn
4101         * XplatUIX11.cs:
4102           - Handle whole_window == client_window when destroying windows
4103           - SystrayAdd(): Set client_window to whole_window value to
4104             get mouse and other events passed to NotifyIcon
4105
4106 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4107
4108         * Form.cs: Set proper default for Opacity property
4109         * NotifyIcon.cs:
4110           - ShowSystray(): Don't bother creating telling the OS
4111             about the systray item if no icon is provided
4112           - Now handles WM_NCPAINT message to deal with whole/client window
4113             split
4114           - Create window as visible to not get caught by Expose optimization
4115         * Hwnd.cs: Removed debug message
4116         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
4117           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
4118             PaintEventStart/End to use new client argument
4119         * TextBoxBase.cs:
4120           - Commented out debug messages
4121           - Switched PaintEventStart/End to use new client argument
4122         * XplatUI.cs: Added client window bool to PaintEventStart()/
4123           PaintEventEnd() calls, to support drawing in non-client areas
4124         * XplatUIDriver.cs: 
4125           - Added client window bool to PaintEventStart()/PaintEventEnd() 
4126             calls, to support drawing in non-client areas
4127           - Added conditional compile to allow using MWF BeginInvoke 
4128             on MS runtime
4129         * XplatUIX11.cs:
4130           - Added some conditional debug output
4131           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
4132             whole/client window split
4133           - Implemented handling of client argument to PaintEventStart()/End()
4134         * Control.cs:
4135           - Throw exception if BeginInvoke() is called and the window handle
4136             or one of the window's parent handles is not created
4137           - Added conditional compile to allow using MWF BeginInvoke on
4138             MS runtime
4139           - get_Parent(): Only sets parent if handle is created. This avoids
4140             forcing window handle creation when parent is set.
4141           - Now fires Layout and Parent changed events in proper order
4142           - Switched to use Handle instead of window.Handle for Z-Order setting,
4143             the get_Parent() patch above causes us to possibly get null for 'window'
4144           - Implemented handling of client argument to PaintEventStart()/End()
4145           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
4146             default handling)
4147           - Now sends a Refresh() to all child windows when Refresh() is called
4148
4149 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
4150
4151         * Form.cs: Added (non-functional) Opacity property
4152         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
4153
4154 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
4155         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
4156           use export MONO_THEME=nice to activate it.
4157           Currently supported controls:
4158           - Button
4159           - ComboBox
4160           - ScrollBar
4161           - TabControl (TabAlignment.Top only, other will follow)
4162         * ThemeEngine.cs: Add theme nice
4163         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
4164           if enabled
4165
4166 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
4167
4168         * Splitter.cs: Resize docked control and its neighbor.
4169
4170 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
4171         -- Making Windows with Menus layout correctly --
4172         * Form.cs : The first leg of the fix
4173                 Menu setter - adjust Client Size as needed to make space for the menu
4174                 SetClientSizeCore - doesn't call base version to be able to pass the 
4175                         menu handle to XplatUI.CalculateWindowRect
4176         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
4177         * XplatUIX11.cs: The critical second leg of the fix
4178                 GetWindowPos needs to use a recalculated client_rect
4179                 so that resizing the window doesn't break layout of child controls. 
4180                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
4181                 Lots of \t\n killed
4182
4183 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4184
4185         * Label.cs: Now properly recalculates width and height on Font and Text
4186           changes if AutoSize is set
4187
4188 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
4189         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
4190
4191 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
4192
4193         * ImageList.cs: Makes ToString method compatible with MS
4194
4195 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
4196
4197         * MenuAPI.cs: fixes bug 75716
4198
4199 2005-08-11 Umadevi S <sumadevi@novell.com>
4200         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
4201
4202 2005-08-11 Umadevi S <sumadevi@novell.com>
4203         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
4204
4205 2005-08-10  Umadevi S <sumadevi@novell.com>
4206         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
4207
4208 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
4209
4210         * Menu.cs: fixes bug 75700
4211         * MenuAPI.cs: fixes navigation issues
4212
4213 2005-08-09  Umadevi S <sumadevi@novell.com>
4214         * CheckedListBox.cs - simple fix for GetItemChecked.
4215
4216 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
4217
4218         * ComboBox.cs: Serveral fixes
4219         * ListBox.cs: Serveral fixes
4220
4221 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
4222
4223         * ComboBox.cs: Fixes FindString methods and GetItemHeight
4224         * ListBox.cs: Fixes FindString methods
4225
4226 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
4227
4228         * DataGrid.cs: fixes bugs exposed by new tests
4229
4230 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
4231
4232         * Mime.cs: Compile Mono assembly references only if compiling
4233           with Mono (Allows to build with VS.Net again)
4234
4235 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
4236
4237         * Control.cs (PaintControlBackground): Draw background image
4238         corrrectly.
4239         (CheckForIllegalCrossThreadCalls): Stubbed.
4240         
4241         * Form.cs (OnCreateControl): Center when should be centered.
4242         
4243         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
4244
4245 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
4246
4247         * Binding.cs: Binding to properties should be case unsensitive
4248
4249 2005-07-18 vlindos@nucleusys.com
4250
4251         * DataGrid.cs: fixes setmember order
4252
4253 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
4254
4255         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
4256         * FileDialog.cs: FileDialog is now resizable and uses the new
4257           MimeIconEngine
4258
4259 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
4260
4261         * DataGridTextBoxColumn.cs: default value
4262         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
4263         * GridTableStylesCollection.cs: fixes checking MappingName
4264         * DataGridDrawingLogic.cs: fixes drawing logic issues
4265         * DataSourceHelper.cs: rewritten to make compatible with more data sources
4266         * DataGrid.cs: fixes    
4267
4268 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
4269
4270         * MimeGenerated.cs: Use case sensitive comparer for
4271           NameValueCollections
4272
4273 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
4274
4275         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
4276         * ThemeWin32Classic.cs: bug fixes, code refactoring
4277         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
4278         * DataGrid.cs: bug fixes, code refactoring
4279         * DataGridTextBox.cs: bug fixes, code refactoring
4280         * DataGridColumnStyle.cs:  bug fixes, code refactoring
4281         * Theme.cs:  bug fixes, code refactoring
4282
4283 2005-07-01  Peter Bartok  <pbartok@novell.com> 
4284
4285         * TextControl.cs: Quick fix for the reported crash on ColorDialog
4286           and other text box usage
4287
4288 2005-07-01  Jackson Harper  <jackson@ximian.com>
4289
4290         * TabControl.cs: Make sure the bottom of the tab covers the pages
4291         border.
4292
4293 2005-06-30  Peter Bartok  <pbartok@novell.com> 
4294
4295         * Form.cs (ShowDialog): Assign owner of the dialog
4296         * TextBoxBase.cs: Always refresh caret size when deleting, caret
4297           might have been moved to a tag with different height
4298
4299 2005-06-30  Jackson Harper  <jackson@ximian.com>
4300
4301         * Form.cs: Don't create an infinite loop when setting focus
4302         * MenuItem.cs: Don't dirty the parents if we don't have any
4303
4304 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
4305
4306         * LibSupport.cs: Rename
4307
4308 2005-06-29  Peter Bartok  <pbartok@novell.com>
4309
4310         * TextBoxBase.cs: Re-align caret after deleting a character
4311         * TextControl.cs:
4312           - DeleteChars(): Ensure that tag covers the provided position
4313           - StreamLine(): Drop reference for dropped tag
4314
4315 2005-06-29  Peter Bartok  <pbartok@novell.com> 
4316
4317         * TextControl.cs: 
4318           - Selections now work properly, anchoring at the initial location
4319             and properly extending in either direction (SetSelectionToCaret(),
4320             SetSelectionStart() and SetSelectionEnd())
4321           - No longer redraws the whole control on selection change, now
4322             calculates delta between previous and new selection and only
4323             invalidates/redraws that area
4324           - Fixed FindPos() math off-by-one errors
4325           - Changed DeleteChars() to verify the provided tag covers the
4326             provided position, selections may have a tag that doesn't cover
4327             the position if the selection is at a tag border
4328           - Fixed off-by-one errors in DeleteChars()
4329           - Added missing streamlining check in DeleteChars() to remove
4330             zero-length tags
4331           - Implemented Invalidate() method, now properly calculates exposures
4332             between two given lines/positions
4333           - Implemented SetSelection()
4334           - Obsoleted and removed FixupSelection()
4335           - Improved RecalculateDocument() logic, removing code duplication
4336
4337 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4338
4339         * LibSupport.cs: changes to match different input/output arguments.
4340
4341 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4342
4343         * LibSupport.cs: added libsupport.so init routine.
4344
4345 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
4346         
4347         * ControlBindingsCollection.cs
4348                 - Throws an exception on null datasource when adding
4349                 - Checks for duplicated bindings when adding
4350
4351 2005-06-28  Jackson Harper  <jackson@ximian.com>
4352
4353         * TreeView.cs (OnKeyDown): Support left and right properly
4354         (navigates as well as expanding and collapsing.
4355         - Add support for Multiply, this expands all the selected nodes
4356         children.
4357         - Fix some tabbing.
4358
4359 2005-06-28  Jackson Harper  <jackson@ximian.com>
4360
4361         * TreeView.cs: Implement keyboard navigation, currently supports,
4362         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
4363         support for toggling checkboxes with the space bar.
4364
4365 2005-06-28  Jackson Harper  <jackson@ximian.com>
4366
4367         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
4368         tree.
4369
4370 2005-06-28  Jackson Harper  <jackson@ximian.com>
4371
4372         * TreeView.cs: Add missing event.
4373
4374 2005-06-27  Peter Bartok  <pbartok@novell.com> 
4375
4376         * TextControl.cs:
4377           - Made line ending size configurable (now allows for counting 
4378             lineendings as \n or \r\n)
4379           - Added margin to viewport to keep caret visible on right side
4380           - Fixed translation routines for line/pos to documentpos to consider
4381             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
4382           - Fixed some line-endings to be unix style
4383           - Fixed Document.FormatText to perform it's calculations 1-based
4384           - Added descriptions for a few methods that might otherwise get 
4385             used wrong
4386           - Added NOTE section with some basic conventions to remember at 
4387             the top of the file
4388           - Major fixup for RichTextBox selection drawing:
4389             * Fixed crashes when multiple tags on a single line were selected
4390             * fixed selection box drawing not overlaying text
4391             * fixed bogus offset calculation for tags not starting at index 1
4392             * Switched behaviour from using multiple Substrings of a 
4393               StringBuilder.ToString() to using multiple 
4394               StringBuilder.ToString(start, length) statements, hoping this is
4395               faster (kept original version commented out in the code, in case
4396               original version was faster)
4397         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
4398           alignment != Left
4399         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
4400           call it as well
4401
4402 2005-06-27  Jackson Harper  <jackson@ximian.com>
4403
4404         * TabControl.cs: Move to the left and right with the arrow
4405         keys. These keys don't cycle beyond first and last like
4406         tab. Refresh all the tabs when scrolling them to the left or
4407         right.
4408
4409 2005-06-27  Jackson Harper  <jackson@ximian.com>
4410
4411         * TabControl.cs:
4412           - ToString: Added method
4413           - CreateParams: Remove TODO and comment
4414           - OnKeyDown: Cycle through bounds properly.
4415           - SelectedIndex: Scroll to the right or left if we need to
4416           display the newly selected tab.
4417
4418 2005-06-23  Jackson Harper  <jackson@ximian.com>
4419
4420         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
4421         set.
4422
4423 2005-06-23  Jackson Harper  <jackson@ximian.com>
4424
4425         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
4426         CTRL-SHIFT-TAB, and HOME, END are there any others?
4427
4428 2005-06-23  Jackson Harper  <jackson@ximian.com>
4429
4430         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
4431
4432 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
4433         
4434         * DataGridTextBoxColumn.cs: fixes and enhancements
4435         * ThemeWin32Classic.cs: fixes and enhancements
4436         * DataGridBoolColumn.cs:  fixes and enhancements
4437         * DataGridDrawingLogic.cs:  fixes and enhancements
4438         * CurrencyManager.cs: fixes and enhancements
4439         * DataGrid.cs: fixes and enhancements
4440         * DataGridColumnStyle.cs:  fixes and enhancements
4441
4442 2005-06-22  Jackson Harper  <jackson@ximian.com>
4443
4444         * TabControl.cs: Add some missing methods that just call into the
4445         base. Make the TabPageCollection's IList interface behave in the
4446         same manner as the MS implementation.
4447
4448 2005-06-22  Peter Bartok  <pbartok@novell.com> 
4449
4450         * TextControl.cs: Added sanity check
4451         * TextBoxBase.cs: 
4452           - Fixed wrapping behaviour, don't set wrap on single line controls
4453             (this fixes the breakage of colordialog introduced in an earlier
4454              checkin)
4455           - Added rudimentary support for autoscrolling right-aligned controls
4456             (still needs fixing, also, center alignment scroll is missing)
4457
4458 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
4459         
4460         * ScrollBar.cs: Fixes thumbpos on Maximum values
4461
4462 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
4463         
4464         * PropertyGridView.cs: Pass context information to UITypeEditors 
4465
4466 2005-06-21  Peter Bartok  <pbartok@novell.com> 
4467
4468         * TextBoxBase.cs:
4469           - Now calling PositionCaret with absolute space coordinates
4470           - Enabled vertical scrolling
4471           - Better tracking of scrollbar changes, tied into WidthChange
4472             event
4473           - Improved cursor tracking
4474           - Removed debug output
4475         * TextControl.cs:
4476           - PositionCaret coordinates are now works in absolute space, not 
4477             the canvas
4478           - Improved tracking of document size
4479           - Added events for width and height changes
4480
4481 2005-06-21  Peter Bartok  <pbartok@novell.com>
4482
4483         * Form.cs: Set focus to active control when form is activated
4484         * TextControl.cs: 
4485           - Added word-wrap functionality to RecalculateLine() 
4486           - Added some short function descriptions for VS.Net to aid in
4487             writing dependent controls
4488           - Added Caret property, returning the current coords of the caret
4489           - Added ViewPortWidth and ViewPortHeight properties
4490           - Added Wrap property
4491           - Added CaretMoved event
4492           - Removed some old debug code
4493           - Split() can now create soft splits
4494           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
4495           - Added method to format existing text
4496           - Fixed size/alignment calculations to use viewport
4497           - RecalculateDocument now can handle changing line-numbers while
4498             calculating lines
4499
4500         * TextBox.cs:
4501           - Added some wrap logic, we don't wrap if alignment is not left
4502           - Added casts for scrollbar var, base class switched types to
4503             also support RichTextBoxA
4504           - Implemented handling of scrollbar visibility flags
4505
4506         * TextBoxBase.cs:
4507           - Switched scrollbars type to RichTextBoxScrollBars to support
4508             RichTextBox
4509           - Added tracking of canvas width/height
4510           - Switched scrollbars to be not selectable (to keep focus on text)
4511           - Added central CalculateDocument() method to handle all redraw
4512             requirements
4513           - Added ReadOnly support
4514           - Added WordWrap support
4515           - Fixed handling of Enter key (we now treat it as a DialogKey)
4516           - Fixed caret positioning when h or v scroll is not zero
4517           - Fixed placing/generation of vertical scrollbar
4518           - Added CalculateScrollBars() method to allow updating scrollbar
4519             limits and visibility
4520           - Fixed handling of horizontal scroll
4521           - Added handling of vertical scroll
4522           - Implemented auto-'jump' when caret moves to close to a left or
4523             right border and there is text to be scrolled into view (currently
4524             there's the potential for a stack overflow, until a bug in
4525             scrollbar is fixed)
4526
4527 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
4528         
4529         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
4530
4531 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
4532
4533         * Mime.cs:
4534         - added inodes.
4535         - return application/x-zerosize for files with size zero
4536           (if no extension pattern matches).
4537         - check matches collection for strings too.
4538         - return only the first mime type if the name value
4539           collection has more than one mime type.
4540
4541 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
4542         
4543         * PropertyGrid.cs: Cleaned up some TODOs
4544         * PropertyGridView.cs: Added support for UITypeEditors
4545
4546 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
4547         
4548         * DataGrid.cs: clears cached value
4549
4550 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
4551
4552         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
4553         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
4554         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
4555         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
4556         
4557 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
4558
4559         * ThemeWin32Classic.cs: fixes colour
4560
4561 2005-06-15  Peter Bartok  <pbartok@novell.com>
4562
4563         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
4564         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
4565         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
4566         * Control.cs: Added some MWFCategory and MWFDescription attributes
4567         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
4568
4569 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
4570
4571         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
4572         usage
4573
4574 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
4575
4576         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
4577         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
4578         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
4579         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
4580         * DataGrid.cs: default datagrid settings for Default Styles, fixes
4581         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
4582
4583 2005-06-13  Jackson Harper  <jackson@ximian.com>
4584
4585         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
4586         isn't printed when the user enables dropping. (X11 does accept
4587         drops).
4588         
4589 2005-06-13  Jackson Harper  <jackson@ximian.com>
4590
4591         * TreeView.cs: Remove some TODOS.
4592
4593 2005-06-13  Jackson Harper  <jackson@ximian.com>
4594
4595         * Form.cs: Hook into the mdi framework.
4596         * MdiClient.cs: Use the base control collections add method so
4597         parents get setup correctly. Set the default back colour and dock
4598         style.
4599         * MdiChildContext.cs: New class, this bad actor handles an
4600         instance of an MDI window. Right now there is only basic
4601         support. You can drag, close, and resize windows. Minimize and
4602         Maximize are partially implemented.
4603
4604 2005-06-13  Jackson Harper  <jackson@ximian.com>
4605
4606         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
4607         freaky when both vals are negative. NOTE: There are probably other
4608         places in XplatUIX11 that this needs to be done.
4609
4610 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
4611
4612         * DataGrid.cs: implement missing methods, move KeyboardNavigation
4613         * DataGridColumnStyle.cs: fixes signature
4614
4615 2005-06-12  Jackson Harper  <jackson@ximian.com>
4616
4617         * XplatUIX11.cs: Use sizing cursors similar to the ones on
4618         windows.
4619
4620 2005-06-11  Jackson Harper  <jackson@ximian.com>
4621
4622         * StatusBarPanel.cs: Signature cleanups. Implement
4623         BeginInit/EndInit.
4624
4625 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
4626
4627         * DataGridTextBoxColumn.cs: Honors aligment
4628         * GridColumnStylesCollection.cs: Contains is case unsensitive
4629         * GridTableStylesCollection.cs: several fixes
4630         * DataGridTableStyle.cs: default column creation
4631         * DataGridDrawingLogic.cs: fixes
4632         * CurrencyManager.cs: ListName property
4633         * DataGrid.cs: multiple styles support
4634         * DataGridColumnStyle.cs: fixes
4635         
4636
4637 2005-06-10  Peter Bartok  <pbartok@novell.com>
4638
4639         * Control.cs(Select): Moved SetFocus call to avoid potential
4640           loops if controls change the active control when getting focus
4641         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
4642           the up/down buttons
4643
4644 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
4645
4646         * ImageListConverter.cs: Implemented
4647
4648 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
4649
4650         * MonthCalendar.cs: Wired in NumericUpDown control for year
4651
4652 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
4653
4654         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
4655           DoubleClick events, since they are not meant to be fired.
4656
4657 2005-06-09  Peter Bartok  <pbartok@novell.com>
4658
4659         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
4660           Jonathan's standalone controls into MWF, implemented missing
4661           events, attributes and methods; added xxxAccessible classes
4662         * AccessibleObject.cs: Made fields internal so other classes
4663           can change them if needed
4664
4665 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
4666
4667         * UpDownBase.cs: Complete implementation
4668         * NumericUpDown.cs: Complete implementation
4669         * DomainUpDown.cs: Complete implementation
4670
4671 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
4672
4673         * DataGridTextBoxColumn.cs: drawing fixes
4674         * DataGridCell.cs: fixes ToString method to match MSNet
4675         * DataGridTableStyle.cs: fixes
4676         * DataGridBoolColumn.cs: fixes, drawing
4677         * DataGridDrawingLogic.cs: fixes, new methods
4678         * DataGridTextBox.cs: Keyboard and fixes
4679         * DataGrid.cs:
4680                 - Keyboard navigation
4681                 - Scrolling fixes
4682                 - Row selection (single, multiple, deletion, etc)
4683                 - Lots of fixes
4684         
4685 2005-06-07  Jackson Harper  <jackson@ximian.com>
4686
4687         * ThemeWin32Classic.cs: Clear the background area when drawing
4688         buttons.
4689
4690 2005-06-06  Peter Bartok  <pbartok@novell.com>
4691
4692         * ImageListStreamer.cs: Fixed signature for GetData
4693         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
4694         * ComboBox.cs:
4695           - Added missing ChildAccessibleObject class
4696           - Added missing OnXXXFocus overrides, switched to using those
4697             instead of the event handler
4698         * Control.cs:
4699           - Added Parent property for ControlAccessibleObject
4700           - Fixed signatures
4701           - Fixed attributes
4702           - Added ResetBindings()
4703         * ListBindingConverter.cs: Implemented some methods
4704         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
4705         * ImageList.cs: Implemented basic handle scheme, removed TODOs
4706         * ContainerControl.cs: Fixed signature, now subscribing to the
4707           ControlRemoved event instead of overriding the handler, LAMESPEC
4708         * CurrencyManager.cs: Added missing attribute
4709         * MonthCalendar.cs: Added missing properties
4710
4711 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
4712
4713         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
4714         
4715 2005-06-06  Gaurav Vaish and Ankit Jain
4716
4717         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
4718         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
4719         
4720 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
4721
4722         * Control.cs: fixes CreateParams Width / Height.
4723
4724 2005-06-05  Peter Bartok  <pbartok@novell.com>
4725
4726         * Win32DnD.cs: Removed compilation warnings
4727
4728 2005-06-05  Peter Bartok  <pbartok@novell.com>
4729
4730         * Control.cs (CreateParams): Since we don't know if one of the
4731           properties we use is overridden, lets make sure if we fail accessing
4732           we continue with a backup plan
4733
4734 2005-06-05  Peter Bartok  <pbartok@novell.com>
4735
4736         * Win32DnD.cs:
4737           - Removed debug output
4738           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
4739             struct
4740           - Plugged resource leak
4741         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
4742           MS size
4743
4744 2005-06-05  Peter Bartok  <pbartok@novell.com>
4745
4746         * XplatUIWin32.cs: Removed DnD code
4747         * Win32DnD.cs: Implemented drop source and drop target functionality
4748
4749 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4750
4751         * UpDownBase.cs: remove duplicate addition of event, enable some code
4752         that was commented out.
4753         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
4754         Validate input when a key is pressed. It works fine now for every
4755         combination of Hexadecimal. Only missing some drawing love when sharing
4756         space with other controls.
4757
4758 2005-06-04  Peter Bartok  <pbartok@novell.com>
4759
4760         * Control.cs:
4761           - We need to pass a window for DragDrop, so enable callback events
4762           - Added DnD callback events when being a DragSource
4763         * XplatUI.cs (StartDrag): Added window handle argument
4764         * XplatUIDriver.cs (StartDrag): Added window handle argument
4765         * QueryContinueDragEventArgs: Made fields internally accessible so
4766           drivers can set them
4767         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
4768           can set them
4769
4770 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
4771
4772         * DataGridTextBoxColumn.cs: column text editing
4773         * DataGridTableStyle.cs: Respect columns styles created by the user
4774         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
4775         * DataGridBoolColumn.cs: bool column editing
4776         * DataGrid.cs: fixes to scrolling, properties, etc
4777         * DataGridTextBox.cs: handle keyboard
4778         * DataGridColumnStyle.cs: fixes
4779
4780 2005-06-02  Jackson Harper  <jackson@ximian.com>
4781
4782         * ImageListStreamer.cs: Somewhat broken implementation of
4783         GetObjectData. The RLE needs some work to match MS properly.
4784
4785 2005-06-02  Jackson Harper  <jackson@ximian.com>
4786
4787         * X11Dnd.cs: Attempting to keep at least one file in MWF
4788         monostyled.
4789
4790 2005-06-02  Peter Bartok  <pbartok@novell.com>
4791
4792         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
4793           that way
4794
4795 2005-06-02  Peter Bartok  <pbartok@novell.com>
4796
4797         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
4798         * XplatUI.cs: Added DoDragDrop() method
4799         * XplatUIDriver.cs: Added DoDragDrop() method
4800
4801 2005-06-02  Jackson Harper  <jackson@ximian.com>
4802
4803         * Splitter.cs: Implement BorderStyle.
4804
4805 2005-06-02  Jackson Harper  <jackson@ximian.com>
4806
4807         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
4808         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
4809         X11 using XDND.
4810
4811 2005-06-02  Peter Bartok  <pbartok@novell.com>
4812
4813         * DataObject.cs:
4814           - Added Data setter
4815           - Fixed broken insertion code for SetData, now also
4816             overwrites any existing entry of the same format name
4817         * Hwnd.cs: Added list of pointers that automatically gets
4818           freed when the window is disposed
4819         * XplatUI.cs: Call driver initialization method when loading
4820           a driver
4821         * Control.cs:
4822           - OnDragLeave takes EventArgs, not DragEventArgs
4823           - Added setting of WS_EX_ACCEPTFILES style when dropping is
4824             supported
4825           - Forces style update when drop state changes
4826         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
4827           not perfect since we cannot (yet) call the IDataObject.GetData()
4828           method, we keep getting 0x80004005 error, dunno why)
4829
4830 2005-06-02  Peter Bartok  <pbartok@novell.com>
4831
4832         * DragEventArgs.cs: Make fields internal so we can cache the
4833           object and re-set the fields from XplatUI
4834
4835 2005-06-02  Jackson Harper  <jackson@ximian.com>
4836
4837         * Control.cs: Add some internal methods so the DnD subsystem can
4838         raise DnD events. Also call into the driver when AllowDrop is set.
4839         * XplatUI.cs:
4840         * XplatUIDriver.cs: New method for setting whether or not a window
4841         is allowed to accept drag and drop messages.
4842                 
4843 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
4844         
4845         * ScrollBar.cs: Make sure that values sent in Scroll events
4846         are always between Maximum and Minimum.
4847
4848 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
4849
4850         * Menu.cs: Call MenuChanged when menuitem visibility has been
4851         changed.
4852         * MenuItem.cs: Rebuild menu when item is (not) visible.
4853         * MainMenu.cs: MainMenu has special MenuChanged.
4854         * Theme.cs: Caption and FrameBorderSize are not fixed.
4855         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
4856         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
4857         * XplatUIX11.cs,
4858         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
4859         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
4860
4861 2005-05-30  Jackson Harper  <jackson@ximian.com>
4862
4863         * DataFormat.cs: We can't statically initialize this stuff because
4864         it calls into the xplatui and could create a loop. So we lazy init
4865         it.
4866
4867 2005-05-28  Jackson Harper  <jackson@ximian.com>
4868
4869         * Control.cs: Proper implementation of Product(Name/Version).
4870
4871 2005-05-27  Jackson Harper  <jackson@ximian.com>
4872
4873         * DataObject.cs: Dont crash if no data is found.
4874
4875 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
4876         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
4877                 as per status page, guessing it should be set to true
4878
4879 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
4880
4881         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
4882         * DataGridTableStyle.cs: set proper formatting text, def header text
4883         * ThemeWin32Classic.cs: new themable paramaters
4884         * DataGridBoolColumn.cs: paint check box, get data, fixes
4885         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
4886         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
4887         * DataGridColumnStyle.cs: fixes
4888         * Theme.cs: new themable paramaters
4889                 
4890 2005-05-26  Peter Bartok  <pbartok@novell.com>
4891
4892         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
4893
4894 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
4895         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
4896
4897 2005-05-24  Peter Bartok  <pbartok@novell.com>
4898
4899         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
4900           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
4901           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
4902           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
4903           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
4904           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
4905           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
4906           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
4907           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
4908           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
4909           missing attributes, etc
4910         * DataGridPreferredColumnWidthTypeConverter.cs: Added
4911
4912 2005-05-24  Peter Bartok  <pbartok@novell.com>
4913
4914         * Help.cs: Added, implemented trivial functions, throws up MessageBox
4915           when user tries to get help
4916         * DataObject.cs, DataFormats.cs, LinkArea.cs,
4917           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
4918           to suppress warnings
4919         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
4920           avoid unreachable code warning
4921
4922 2005-05-20  Peter Bartok  <pbartok@novell.com>
4923
4924         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
4925
4926 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
4927
4928         * DataGridTextBoxColumn.cs: Basic painting methods
4929         * DataGridTableStyle.cs: Set table style in the column
4930         * ThemeWin32Classic.cs: Use Theme for colors
4931         * DataGridDrawingLogic.cs: Implement more drawing
4932         * DataGrid.cs: drawing, theming, enhacements, fixes
4933         * DataGridColumnStyle.cs: fixes, drawing
4934         * Theme.cs: theming for Datagrid
4935
4936 2005-05-20  Peter Bartok  <pbartok@novell.com>
4937
4938         * Cursor.cs: Implemented GetObjectData() method
4939
4940 2005-05-20  Peter Bartok  <pbartok@novell.com>
4941
4942         * Cursors.cs: Added setting of cursor name
4943         * Cursor.cs:
4944           - Implemented constructors
4945           - Implemented Draw and DrawStretched
4946           - Implemented Current property
4947           - Implemented == and != operators
4948           - Implemented Dispose()
4949           - Implemented ToString
4950           - Added missing attributes
4951         * XplatUIX11.cs:
4952           - Added missing reset for OverrideCursor when DoEvents is called
4953           - Fixed creation of cursor, logic was wrong
4954         * XplatUIWin32.cs:
4955           - Added missing reset for OverrideCursor when DoEvents is called
4956           - Fixed creation of cursor, bit arrays were swapped
4957         * Clipboard.cs: Removed obsolete MonoTODO attribute
4958
4959 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
4960
4961         * ComboBox.cs: fixes OnSelectedItemChanged
4962         * ControlBindingsCollection.cs: fixes item range check
4963
4964 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
4965
4966         * UpDownBase.cs:
4967                 - Calc preferred height properly
4968                 - Implement missing properties
4969                 
4970         * NumericUpDown.cs: Implement missing events
4971
4972 2005-05-19  Jackson Harper  <jackson@ximian.com>
4973
4974         * TabControl.cs: New method that resizes the tab pages before
4975         redrawing them. This as needed as the control is double buffered
4976         and sizing will not be recalculated unless ResizeTabPages is
4977         called.
4978         * TabPage.cs: Set base.Text instead of Text in the constructor so
4979         that UpdateOwner does not get called. Use the new Redraw method of
4980         TabControl instead of Refresh so the sizing is recalculated.
4981         * ThemeWin32Classic.cs: Draw the text for button tabs.
4982
4983 2005-05-19  Jackson Harper  <jackson@ximian.com>
4984
4985         * Control.cs: Paint control background images. Fix typo where
4986         PaintControlBackground was not getting called correctly.
4987
4988 2005-05-19  Peter Bartok  <pbartok@novell.com>
4989
4990         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
4991           I can investigate, apparently I broke FileDialog
4992
4993 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
4994
4995         * AxHost.cs: Some simple properties.
4996         * Control.cs: window must be accessible after ctor.
4997         * Form.cs: Added TransparencyKey property.
4998         * TextBoxBase.cs: Implemented Clear. Text property can be null.
4999         * XplatUIWin32.cs: SetBorderStyle implemented.
5000
5001 2005-05-18  Peter Bartok  <pbartok@novell.com>
5002
5003         * DataObject.cs: Entries are not global but particular to the
5004           DataObject, now it behaves that way
5005         * XplatUIWin32.cs: Implemented Clipboard methods
5006         * Clipboard.cs: Implemented
5007         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
5008         * XplatUIOSX.cs: Updated to final clipboard prototypes
5009         * XplatUIX11.cs: Implemented Clipboard methods
5010         * XplatUIDriver.cs: Updated to final clipboard prototypes
5011         * XplatUIStructs.cs:
5012           - Added BITMAPINFOHEADER struct
5013           - Added ClipboardFormats enum
5014         * X11Structs.cs:
5015           - Added ClipboardStruct
5016           - Added Atom enum items for clipboard types
5017           - Fixed atom types for Selection event structures
5018         * DataFormats.cs:
5019           - Added internal properties and methods for drivers to enumerate
5020             all known formats
5021           - Switched initialization method to allow drivers to assign their
5022             own IDs even for the MS predefined clipboard IDs
5023         * XplatUI.cs: Updated to final clipboard interface
5024
5025 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
5026         * PropertyGridView.cs: Fixed compiler warnings.
5027
5028 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
5029         * PropertyGrid.cs: Added some event calls
5030         * PropertyGridView.cs: Change drawing code to use double buffering
5031         * PropertyGridTextBox.cs: Changed Text property name
5032         * GridItem.cs: Added Bounds property.
5033         * GridEntry.cs: Added Bounds property.
5034
5035 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
5036
5037         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
5038         since GetType() may not return the correct type if the object is
5039         a remoting proxy.
5040
5041 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
5042
5043         * TreeNodeCollection.cs: fixes get/set item ranges
5044         
5045 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
5046
5047         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
5048                 
5049 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
5050
5051         * ComboBox.cs: Fix item range comparation
5052         * ListView.cs: Fix item range comparation
5053
5054 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
5055
5056         * FontDialog.cs:
5057           - Clear example panel when OnPaint is called
5058           - Better solution for displaying the example panel text
5059           - Select default indexes in the ListBoxes
5060
5061 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
5062
5063         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
5064
5065 2005-05-11  Peter Bartok  <pbartok@novell.com>
5066
5067         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
5068         * SelectionRangeConverter.cs: Implemented
5069         * PropertyGrid.cs: Fixed attribute value
5070         * Control.cs:
5071           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
5072           - Added Sebastien Pouliot's CAS Stack Propagation fixes
5073         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
5074           that's common to all drivers. First methods to go there are
5075           Sebastien Pouliot's CAS Stack Propagation helper methods
5076         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
5077           Sebastien Pouliot for CAS Stack Propagation
5078
5079 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
5080
5081         * OSXStructs.cs:
5082           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
5083
5084 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
5085
5086         * DataGridTextBoxColumn.cs: fixed some members
5087         * GridColumnStylesCollection.cs: indexed column is case insensitive
5088         * DataGridTableStyle.cs: fixes
5089         * ThemeWin32Classic.cs: add new theme parameter
5090         * Theme.cs: add new theme parameter
5091         * DataGridDrawingLogic.cs: Datagrid's drawing logic
5092         * DataGrid.cs: fixes, new internal properties, etc.
5093         * DataGridColumnStyle.cs: allows to set grid value
5094         *
5095
5096 2005-05-10  Peter Bartok  <pbartok@novell.com>
5097
5098         * AccessibleObject.cs:
5099           - Removed MonoTODO attribute on help, method is correct
5100           - Fixed Bounds property
5101         * AxHost.cs: Moved MonoTODO
5102         * ButtonBase.cs: Now setting AccessibleObject properties
5103         * RadioButton.cs: Setting proper AccessibleObject role
5104         * CheckBox.cs: Setting proper AccessibleObject role
5105         * ControlBindingsCollection.cs: Added properties, methods and attributes
5106         * DataFormats.cs: Fixed awkward internal API, and changed to enable
5107           userdefined DataFormats.Format items as well
5108         * ListControl.cs: Removed data_member from the public eye
5109         * OpenFileDialog.cs:
5110           - Made class sealed
5111           - Added missing attributes
5112         * SaveFileDialog.cs: Added missing attributes
5113         * ImageListStreamer.cs: Fixed code that caused warnings
5114         * LinkLabel.cs: Removed unreachable code
5115         * TreeView.cs: Fixed code that caused warnings
5116         * PropertyGridView.cs: Fixed code that caused warnings
5117         * GridColumnStylesCollection.cs: Added missing attributes
5118         * GridTableStylesCollection: Added missing attribute
5119         * PropertyManager: Added .ctor
5120         * SecurityIDType: Added
5121         * DataObject.cs: Implemented class
5122         * LinkArea.cs: Added missing attribute
5123
5124 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
5125
5126         * RadioButton.cs: call base method to allow to fire OnClick event
5127         * UpDownBase.cs: OnMouseUp call base method
5128         * CheckedListBox.cs: call base method before returning
5129         * TrackBar.cs: call base method before returning
5130         
5131
5132 2005-05-10  Peter Bartok  <pbartok@novell.com>
5133
5134         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
5135           for messages
5136
5137 2005-05-10  Peter Bartok  <pbartok@novell.com>
5138
5139         * DataFormats.cs: Implemented
5140         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
5141           XplatUIX11.cs: Added Clipboard APIs
5142         * XplatUIWin32.cs: Implemented Clipboard APIs
5143         * FolderBrowserDialog.cs: Added missing event, attributes
5144
5145 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
5146
5147         * CheckBox.cs: call base method to allow to fire OnClick event
5148
5149 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
5150
5151         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
5152
5153 2005-05-06  Peter Bartok  <pbartok@novell.com>
5154
5155         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
5156         * Screen.cs: Implemented
5157         * HelpNavigator.cs: Added
5158         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
5159           property
5160         * HelpProvider.cs: Implemented all we can do until we have a CHM
5161           help library (which means that "What's This" does work now)
5162
5163 2005-05-06  Jackson Harper  <jackson@ximian.com>
5164
5165         * XplatUIX11.cs: Fix waking up the main loop.
5166                 
5167 2005-05-05  Peter Bartok  <pbartok@novell.com>
5168
5169         * XplatUI.cs: Updated revision
5170         * Form.cs: Removed enless loop
5171         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
5172         * Label.cs (OnPaint): Added call to base.OnPaint()
5173         * ToolTip.cs: Made ToolTipWindow reusable for other controls
5174         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
5175         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
5176         * AxHost.cs: Added
5177         * ButtonBase.cs: Moved base.OnPaint() call to end of method
5178         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
5179           to ToolTip.ToolTipWindow for drawing and size methods; this allows
5180           reuse of ToolTipWindow by other controls
5181         * SizeGrip.cs: Moved base.OnPaint() call to end of method
5182         * XplatUIX11.cs: Now clipping drawing area (experimental)
5183         * PictureBox.cs: Moved base.OnPaint() call to end of method
5184         * Theme.cs: Fixed ToolTip abstracts to match new format
5185         * ErrorProvider.cs: Implemented
5186
5187 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
5188
5189         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
5190         * LinkLabel.cs:
5191                 - Adds cursors
5192                 - Handles focus
5193                 - Implements LinkBehavior
5194                 - Fixes many issues
5195
5196 2005-05-03  Jackson Harper  <jackson@ximian.com>
5197
5198         * ListView.cs: Calculate the scrollbar positioning on resize and
5199         paint, so they get put in the correct place.
5200
5201 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
5202
5203         * ColorDialogs.cs: The small color panels are now handled by
5204           SmallColorControl. This fixes drawing of the focus rectangle
5205           and adds a 3D border.
5206
5207 2005-05-03  Peter Bartok  <pbartok@novell.com>
5208
5209         * Control.cs: Modified version of Jonathan Chamber's fix for
5210           double-buffering
5211
5212 2005-05-03  Jackson Harper  <jackson@ximian.com>
5213
5214         * ListView.cs: Remove redraw variable. Control now handles whether
5215         or not a redraw needs to be done, and will only raise the paint
5216         event if redrawing is needed.
5217
5218 2005-05-03  Jackson Harper  <jackson@ximian.com>
5219
5220         * Splitter.cs: No decorations for the splitter form. Cache the
5221         hatch brush.
5222
5223 2005-05-03  Jackson Harper  <jackson@ximian.com>
5224
5225         * TreeView.cs: Use dashed lines to connect nodes. Use the
5226         ControlPaint method for drawing the focus rect instead of doing
5227         that in treeview.
5228
5229 2005-05-02  Peter Bartok  <pbartok@novell.com>
5230
5231         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
5232
5233 2005-04-29  Jackson Harper  <jackson@ximian.com>
5234
5235         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
5236         entire image buffer. Just clear the clipping rectangle.
5237
5238 2005-04-29  Jackson Harper  <jackson@ximian.com>
5239
5240         * ThemeWin32Classic.cs: Don't draw list view items that are
5241         outside the clipping rectangle.
5242
5243 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
5244
5245         * ListBox.cs: added horizontal item scroll
5246
5247 2005-04-29  Jackson Harper  <jackson@ximian.com>
5248
5249         * ThemeWin32Classic.cs: Remove some old debug code that was
5250         causing flicker with the new double buffering code.
5251
5252 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
5253
5254         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
5255         behave like combobox and comboboxlist (still not sure if this is
5256         correct though).
5257
5258 2005-04-28  Jackson Harper  <jackson@ximian.com>
5259
5260         * ThemeWin32Classic.cs: Don't fill the middle of progress
5261         bars. This fills areas outside of the clip bounds that don't need
5262         to be filled.
5263
5264 2005-04-28  Jackson Harper  <jackson@ximian.com>
5265
5266         * Control.cs: Don't expose functionality to touch the image buffers.
5267         * ProgressBar.cs:
5268         * ListView.cs: We do not need to (and no longer can) manipulate
5269         the image buffers directly. All of this is handled by Control.
5270
5271 2005-04-28  Peter Bartok  <pbartok@novell.com>
5272
5273         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
5274           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
5275           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
5276
5277 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
5278
5279         * Combobox:
5280                 - Adjust control's height for non-simple comboboxes (bug fix)
5281                 - Remove dead code
5282         * MenuAPI.cs: remove unused var
5283         * ScrollBar.cs: remove unsed var
5284                  
5285         * ListBox.cs: unselect items when clearing
5286
5287 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
5288
5289         * ListControl.cs: honors OnPositionChanged and default Selected Item
5290         * ListBox.cs: unselect items when clearing
5291
5292 2005-04-27  Jackson Harper  <jackson@ximian.com>
5293
5294         * X11Keyboard.cs: Initialize a default keyboard and give a warning
5295         if a "correct" keyboard is not found. This will make us not crash,
5296         but might give some users bad keyboard layouts...seems to be the
5297         same thing rewind does.
5298
5299 2005-04-27  Jackson Harper  <jackson@ximian.com>
5300
5301         * BindingManagerBase.cs: Attach the current/position changed
5302         handlers to their respective events.
5303
5304 2005-04-27  Jackson Harper  <jackson@ximian.com>
5305
5306         * Control.cs: Make sure that the first WM_PAINT does a full draw,
5307         not just a blit.
5308         * ThemeWin32Classic.cs: Don't fill the background for picture
5309         boxes. This could overright user drawing.
5310         * ComboBox.cs: Just fill the clipping rect not the entire client
5311         rect when drawing the background. This prevents pieces of the
5312         image buffer from getting overwritten and is theoretically faster.
5313
5314 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
5315
5316         * ComboBox.cs: Databinding support fixes, fire missing events
5317         * ListControl.cs: implement missing methods and properties, fixes
5318         * ThemeWin32Classic.cs: Databiding support on Drawing
5319         * CheckedListBox.cs: Databinding support fixes, fire missing events
5320         * ListBox.cs: Databinding support fixes, fire missing events
5321         
5322 2005-04-25  Peter Bartok  <pbartok@novell.com>
5323
5324         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
5325
5326 2005-04-25  Jackson Harper  <jackson@ximian.com>
5327
5328         * TreeView.cs: Use the horizontal scrollbars height not width when
5329         determining how much of the client area is available.
5330
5331 2005-04-25  Jackson Harper  <jackson@ximian.com>
5332
5333         * Control.cs: Double buffering is handled differently now. As per
5334         the spec, the extra buffer is created in the WM_PAINT message and
5335         passed down to the control's drawing code.
5336         * GroupBox.cs:
5337         * Label.cs:
5338         * CheckBox.cs:
5339         * ProgressBar.cs:
5340         * RadioButton.cs:
5341         * ColorDialog.cs:
5342         * ComboBox.cs:
5343         * PropertyGridView.cs:
5344         * UpDownBase.cs:
5345         * MessageBox.cs:
5346         * MenuAPI.cs:
5347         * ListView.cs:
5348         * ButtonBase.cs:
5349         * SizeGrip.cs:
5350         * ScrollBar.cs:
5351         * ListBox.cs:
5352         * TrackBar.cs:
5353         * ToolBar.cs:
5354         * PictureBox.cs:
5355         * DateTimePicker.cs:
5356         * StatusBar.cs:
5357         * TreeView.cs: Update to new double buffering system.
5358         * MonthCalendar.cs: Uncomment block, as Capture is now
5359         working. Update to new double buffering
5360         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
5361         * PaintEventArgs.cs: New internal method allows us to set the
5362         graphics object. This is used for double buffering.
5363         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
5364         rectangle. The internal paint_area var has been removed from
5365         StatusBar. The clipping rect should be used instead.
5366         * Theme.cs: Give the PictureBox drawing method a clipping rect.
5367         * TabPage.cs: The RefreshTabs method was removed, so just call the
5368         tab controls Refresh method now.
5369         * TabControl.cs: Update to new double buffering. Make sure the
5370         handle is created before sizing the tab pages, otherwise we will
5371         get stuck in a loop.
5372
5373 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
5374
5375         * LinkLabel.cs: Fix typo, bug #74719; patch
5376           from Borja Sanchez Zamorano
5377
5378 2005-04-22  Jackson Harper  <jackson@ximian.com>
5379
5380         * TreeNode.cs: Implement Handle stuff.
5381         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
5382
5383 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
5384
5385         * DataGridTextBoxColumn.cs: call base constructors, fixes
5386         * GridColumnStylesCollection.cs: missing events, methods, and functionality
5387         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
5388         * DataGridTableStyle.cs: implements create default column styles
5389         * DataGridBoolColumn.cs: which types can handle
5390         * DataGrid.cs: missing methods, fixes, new functionality
5391         * DataGridColumnStyle.cs: fixes
5392
5393 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
5394         * FolderBrowserDialog.cs:
5395         - Use a thread to fill the TreeView
5396         - Adjusted some sizes
5397
5398 2005-04-19  Peter Bartok  <pbartok@novell.com>
5399
5400         * LinkLabel.cs: (Re-)create the pieces when setting the Text
5401           property. Fixes #74360.
5402
5403 2005-04-19  Jackson Harper  <jackson@ximian.com>
5404
5405         * XEventQueue.cs: Lock when getting the lockqueue size.
5406         * PictureBox.cs: Call base OnPaint
5407         
5408 2005-04-19  Peter Bartok  <pbartok@novell.com>
5409
5410         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
5411           messages were no longer being processed (this broke BeginInvoke)
5412
5413           
5414 2005-04-18  Jackson Harper  <jackson@ximian.com>
5415
5416         * TreeView.cs: buglet that caused node images to get drawn
5417         regardless of whether or not they were in the clipping rectangle.
5418
5419 2005-04-18  Jackson Harper  <jackson@ximian.com>
5420
5421         * CurrencyManager.cs: There are four rules for GetItemProperties:
5422         - If the type is an array use the element type of the array
5423         - If the type is a typed list, use the type
5424         - If the list contains an Item property that is not an object, use
5425         that property
5426         - use the first element of the list if there are any elements in
5427         the list.
5428         
5429 2005-04-17  Jackson Harper  <jackson@ximian.oom>
5430
5431         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
5432         click. This handles offsets for scrolling properly and reduces
5433         memory. Also fixed GetNode to not offset now that TopNode works
5434         properly.
5435         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
5436         
5437 2005-04-17  Jackson Harper  <jackson@ximian.com>
5438
5439         * CursorConverter.cs: Initial implementation.
5440
5441 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
5442
5443         * ListControl.cs: work towards complex data binding support on ListControl
5444         * CurrencyManager.cs: work towards complex data binding support on ListControl
5445         * ListBox.cs: work towards complex data binding support on ListControl
5446
5447
5448 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
5449
5450         * GridTableStylesCollection.cs: fixes name and constructor
5451         * DataGridTableStyle.cs: fixes
5452         * DataGridBoolColumn.cs: fixes names and constructors
5453         * DataGrid.cs: define methods and properties. Some init implementations
5454         * DataGridCell.cs: define methods and properties. Some init implementations
5455         * GridTablesFactory.cs: Define methods and properties
5456
5457 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
5458
5459         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
5460         graphics port changes.  We still want the coordinates in global screen
5461         coordinates.
5462
5463 2005-04-14  Jackson Harper  <jackson@ximian.com>
5464
5465         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
5466         check plus minus or checkbox clicks unless those features are enabled.
5467
5468 2005-04-14  Jackson Harper  <jackson@ximian.com>
5469
5470         * TreeView.cs: Add methods for setting the top and bottom visible
5471         nodes. TreeNode::EnsureVisible uses these methods.
5472         * TreeNode.cs: Implement EnsureVisible
5473
5474 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
5475
5476         * Form.cs: Pospone menu assignation if the window has not been created yet
5477         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
5478         size and position
5479
5480 2005-04-12  Jackson Harper  <jackson@ximian.com>
5481
5482         * TreeView.cs: Set the TopNode properly when scrolling
5483         occurs. This has the added benifit of reducing the amount of
5484         walking that needs to be done when drawing. Also removed an old
5485         misleading TODO.
5486         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
5487         
5488 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
5489
5490         * Timer.cs: fixes interval setting when the timer is already enabled
5491         
5492 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
5493
5494         * FolderBrowserDialog.cs: First approach
5495
5496 2005-04-09  Peter Bartok  <pbartok@novell.com>
5497
5498         * FolderBrowserDialog: Added
5499
5500 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
5501
5502         * LinkLabel.cs: move drawing code into the theme
5503         * ThemeWin32Classic.cs: drawing code and painting background bugfix
5504         * Theme.cs: define DrawLinkLabel method
5505
5506 2005-04-05  Jackson Harper  <jackson@ximian.com>
5507
5508         * BindingContext.cs: Use weak references so these bad actors don't
5509         stay alive longer then they need to.
5510
5511 2005-04-05  Jackson Harper  <jackson@ximian.com>
5512
5513         * ListControl.cs: Basic implementation of complex databinding.
5514         * ComboBox.cs:
5515         * ListBox.cs: Add calls to ListControl databinding methods.
5516
5517 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
5518
5519         * FileDialog.cs:
5520           - Don't change PopupButtonState to Normal when the
5521             PopupButton gets pressed several times.
5522           - Renamed ButtonPanel to PopupButtonPanel
5523
5524 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
5525
5526         * ColorDialog.cs: Use cached objects instead of creating them
5527         * LinkLabel.cs: Use cached objects instead of creating them
5528         * Splitter.cs: Use cached objects instead of creating them
5529         * FontDialog.cs: Use cached objects instead of creating them
5530         * PropertyGridView.cs: Use cached objects instead of creating them
5531         * MessageBox.cs: Use cached objects instead of creating them
5532         * FileDialog.cs: Use cached objects instead of creating them
5533         * ThemeWin32Classic.cs: Use cached objects instead of creating them
5534         * TreeView.cs: Use cached objects instead of creating them
5535         
5536 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
5537
5538         * Control.cs: use Equals to compare the font since no == op
5539         * ScrollBar.cs: use Equals to compare the font since no == op
5540
5541 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
5542
5543         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
5544
5545 2005-04-01  Jackson Harper  <jackson@ximian.com>
5546
5547         * Binding.cs: Implement IsBinding.
5548         * BindingManagerBase.cs:
5549         * PropertyManager.cs:
5550         * CurrencyManager.cs: Add IsSuspended property.
5551
5552 2005-04-01  Jackson Harper  <jackson@ximian.com>
5553
5554         * Binding.cs: Had some IsAssignableFrom calls backwards.
5555
5556 2005-04-01  Jackson Harper  <jackson@ximian.com>
5557
5558         * Binding.cs: Handle null data members when pulling data.
5559         * PropertyManager.cs: Handle the data member being a property that
5560         does not exist.
5561
5562 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
5563
5564         * DataGridTextBoxColumn.cs: fixes signature
5565         * DataGrid.cs: calls right constructor
5566
5567 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
5568
5569         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
5570         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
5571         * GridTableStylesCollection.cs: implements GridTableStylesCollection
5572         * DataGridTableStyle.cs: implements DataGridTableStyle
5573         * DataGridBoolColumn.cs: implements DataGridBoolColumn
5574         * DataGridTextBox.cs: implements DataGridTextBox
5575         * DataGridColumnStyle.cs: implements DataGridColumnStyle
5576
5577 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
5578
5579         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
5580
5581 2005-03-29  Peter Bartok  <pbartok@novell.com>
5582
5583         * Application.cs:
5584           - Properly implemented CompanyName property
5585           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
5586             returns a path that includes CompanyName, ProductName and
5587             Version (fixes bug #70330)
5588
5589 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
5590
5591         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
5592           fixes bug #72588.
5593
5594 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
5595
5596         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
5597         
5598           - Added ReadOnly CheckBox
5599           - Further refactoring: moved some code from Open-/SaveFileDialog
5600             to FileDialog
5601
5602 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
5603
5604         * OpenFileDialog.cs: Fixed CheckFileExists
5605         * FileDialog.cs:
5606           Moved FileView and DirComboBox outside FileDialog class.
5607           They can now be used outside FileDialog
5608
5609 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
5610
5611         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
5612         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
5613
5614 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
5615
5616         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
5617           - Added missing CreatePrompt property in SaveDialog
5618           - Overall SaveDialog handling should be better now
5619           - Added non standard ShowHiddenFiles property
5620           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
5621           - Added InitialDirectory and RestoreDirectory support
5622
5623 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
5624
5625         * FileDialog.cs: Made dirComboBox usable
5626
5627 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
5628
5629         * FileDialog.cs: Added Filter support (case sensitiv)
5630
5631 2005-03-24  Jackson Harper  <jackson@ximian.com>
5632
5633         * TabControl.cs: Need a couple more pixels for the lines.
5634
5635 2005-03-23  Jackson Harper  <jackson@ximian.com>
5636
5637         * TabControl.cs: Give the tab page focus when it is selected.
5638
5639 2005-03-23  Jackson Harper  <jackson@ximian.com>
5640
5641         * TabControl.cs: Account for the drawing of tabs borders when
5642         invalidating. If the slider was clicked dont do click detection on
5643         the tabs.
5644
5645 2005-03-23  Jackson Harper  <jackson@ximian.com>
5646
5647         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
5648
5649 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
5650
5651         * CategoryGridEntry.cs: Added
5652         * GridItem.cs: Added helper properties
5653         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
5654         * GridEntry.cs: Updated code for collection
5655         * PropertyGrid.cs: Cleaned up some formatting
5656         * PropertyGridView.cs: Added drop down functionality for enums.
5657         * GridItemCollection.cs: Added enumerator logic
5658         * PropertyGridEntry.cs: Added
5659
5660 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
5661
5662         * FileDialog.cs:
5663           - Removed unnecessary commented code
5664           - Fixed handling for entering the filename manually in the combobox
5665
5666 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
5667
5668         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
5669
5670 2005-03-18  Peter Bartok  <pbartok@novell.com>
5671
5672         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
5673           them being touching the border
5674
5675 2005-03-18  Peter Bartok  <pbartok@novell.com>
5676
5677         * TextControl.cs: Quick hack to center text better
5678
5679 2005-03-18  Peter Bartok  <pbartok@novell.com>
5680
5681         * ControlPaint.cs:
5682           - Don't throw NotImplemented exceptions, just print a notice once
5683             instead (requested by Miguel). This makes running existing SWF
5684             apps a bit easier
5685         * Control.cs:
5686           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
5687           - Added context menu trigger on right click
5688         * Panel.cs: Trigger invalidate on resize
5689         * StatusBar.cs:
5690           - Removed old double-buffer drawing
5691           - Added ResizeRedraw style to force proper update of statusbar
5692         * ListView.cs:
5693           - Removed debug output
5694         * ThemeWin32Classic.cs:
5695           - Fixed drawing of status bar, now draws Text property if there
5696             are no defined panels
5697
5698 2005-03-18  Jackson Harper  <jackson@ximian.com>
5699
5700         * ImageList.cs: When the image stream is set pull all the images
5701         from it.
5702         * ImageListStreamer.cs: Implement reading image list streams.
5703
5704 2005-03-18  Peter Bartok  <pbartok@novell.com>
5705
5706         * ThemeWin32Classic.cs (DrawPictureBox):
5707           - Fixed calculations for centered drawing
5708           - Fixed drawing for normal mode, not scaling the image on normal
5709
5710 2005-03-18  Peter Bartok  <pbartok@novell.com>
5711
5712         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
5713           textbox
5714         * FileDialog.cs:
5715           - Made Open/Save button the accept button for FileDialog
5716           - Tied the cancel button to the IButtonControl cancel button
5717           - Save/Open now properly builds the pathname
5718           - Now handles user-entered text
5719           - Preventing crash on right-click if no item is selected
5720           - Fixed Text property, now uses contents of textbox
5721           - Fixed SelectedText property, now just returns the text part that
5722             is selected in the text box
5723
5724 2005-03-18  Jackson Harper  <jackson@ximian.com>
5725
5726         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
5727         rect, make sure to de-adjust the interior rect after drawing the
5728         tab text.
5729
5730 2005-03-18  Peter Bartok  <pbartok@novell.com>
5731
5732         * MenuAPI.cs: Remove menu *before* executing selected action to
5733           prevent the menu from 'hanging around'
5734           
5735 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
5736
5737         * XplatUIOSX.cs: Implemented WorkingArea property
5738
5739 2005-03-17  Peter Bartok  <pbartok@novell.com>
5740
5741         * XplatUIX11.cs: Fixed menu coord calculations
5742         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
5743           for calculating offsets
5744
5745 2005-03-17  Peter Bartok  <pbartok@novell.com>
5746
5747         * Hwnd.cs: Do not consider menu presence for default client
5748           rectangle location/size
5749         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
5750           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
5751           translation functions
5752         * FileDialog.cs: Fixed (what I presume is a) typo
5753
5754 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
5755
5756         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
5757           X access (avoids X-Async errors)
5758
5759 2005-03-16  Jackson Harper  <jackson@ximian.com>
5760
5761         * TabControl.cs: Raise the SelectedIndexChanged event.
5762
5763 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
5764
5765         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
5766           - Removed vertical ToolBar and replaced it with a custom panel
5767             (desktop and home button already work)
5768           - Added Help button (some controls get resized or relocated then)
5769           - Draw correct text depending on Open or Save.
5770           - Fixed some typos...
5771
5772 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
5773
5774         * ScrollBar.cs:
5775           - Only change Maximum and Minimum when need it (bug fix)
5776
5777 2005-03-15  Peter Bartok  <pbartok@novell.com>
5778
5779         * Form.cs: Use Handle for icon, to trigger creation if
5780           the window does not yet exist
5781         * Control.cs:
5782           - CanSelect: Slight performance improvement
5783           - Focus(): Preventing possible recursion
5784           - Invalidate(): Removed ControlStyle based clear flag setting
5785           - WM_PAINT: fixed logic for calling OnPaintBackground
5786           - WM_ERASEBKGND: Fixed logic, added call to new driver method
5787             EraseWindowBackground if the control doesn't paint background
5788         * XplatUIWin32.cs:
5789           - Moved EraseWindowBackground() method to internal methods
5790           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
5791             is sent via SendMessage on BeginPaint call on Win32
5792         * XplatUIX11.cs:
5793           - Added EraseWindowBackground() method
5794           - No longer sends WM_ERASEBKGND on .Expose, but on call to
5795             PaintEventStart, which more closely matches Win32 behaviour
5796           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
5797           - Fixed SetFocus() to properly deal with client and whole windows
5798         * Hwnd.cs: Added ErasePending property
5799         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
5800         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
5801
5802 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
5803
5804         * XplatUIOSX.cs:
5805           - Fix hard loop when timers exist.
5806           - Fix bugs with middle and right click for 3 button mice.
5807
5808 2005-03-11  Peter Bartok  <pbartok@novell.com>
5809
5810         * XplatUIX11.cs:
5811           - get_WorkingArea: Need to call X directly, GetWindowPos only
5812             returns cached data now
5813           - Added sanity check to GetWindowPos hwnd usage
5814
5815 2005-03-11  Jackson Harper  <jackson@ximian.com>
5816
5817         * BindingManagerBase.cs: This method isn't used anymore as
5818         PullData now updates the data in the control.
5819
5820 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
5821
5822         * Form.cs: fixes menu drawing on X11
5823         * MenuAPI.cs:  fixes menu drawing on X11
5824
5825 2005-03-11  Peter Bartok  <pbartok@novell.com>
5826
5827         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
5828           from Jonathan Gilbert; should fix bug #73606
5829         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
5830           in Screen coordinates. Thanks, Jordi.
5831         * Form.cs: Added missing attribute
5832
5833 2005-03-11  Peter Bartok  <pbartok@novell.com>
5834
5835         * Form.cs:
5836           - Rudimentary Mdi support
5837           - Removed outdated FormParent code
5838           - Implemented lots of missing properties and methods, still missing
5839             transparency support
5840           - Added missing attributes
5841           - Implemented support for MaximumBounds
5842           - Added firing of various events
5843         * XplatUI.cs: Added SetIcon() method
5844         * XplatUIDriver.cs: Added SetIcon() abstract
5845         * XplatUIOSX.cs: Stubbed out SetIcon() method
5846         * XplatUIX11.cs:
5847           - Implemented SetIcon() support
5848           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
5849           - Switched to unix line endings
5850         * XplatUIWin32.cs:
5851           - Made POINT internal so for can access it as part of MINMAX
5852           - Implemented SetIcon() support
5853           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
5854             native Mdi support again, might have to go managed)
5855         * Control.cs: Now fires the StyleChanged event
5856         * MdiClient.cs: Added; still mostly empty
5857
5858 2005-03-10  Peter Bartok  <pbartok@novell.com>
5859
5860         * SaveFileDialog.cs: Added emtpy file
5861
5862 2005-03-08  Peter Bartok  <pbartok@novell.com>
5863
5864         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
5865           in turn triggers OnCreateContro) when creating a handle for the
5866           first time.
5867         * TextControl.cs: Fixed endless loop in certain cases when
5868           replacing the current selection
5869
5870 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
5871
5872         * ScrollBar.cs:
5873           - Honors NewValue changes in Scroll events allowing apps to change it
5874           - Adds First and Last Scroll events
5875           - Fixes Thumb events
5876
5877 2005-03-07  Peter Bartok  <pbartok@novell.com>
5878
5879         * Hwnd.cs: Added DefaultClientRectangle property
5880         * XplatUI.cs: Now using the X11 driver Where() method, which provides
5881           more detailed debug information
5882         * XplatUIX11.cs:
5883           - Fixed size-change feedback loop, where we would pull an old size
5884             off the queue and mistakenly change our window's size to an
5885             earlier value
5886           - Now compressing ConfigureNotify events, to reduce looping and
5887             redraw issues
5888         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
5889           is called
5890
5891 2005-03-07  Jackson Harper  <jackson@ximian.com>
5892
5893         * Binding.cs: Push data pushes from data -> property. Check if the
5894         property is readonly when attempting to set it.
5895
5896 2005-03-07  Jackson Harper  <jackson@ximian.com>
5897
5898         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
5899         instead of IsSubclassOf. Pulling data now sets the value on the
5900         control.
5901         * PropertyManager.cs:
5902         * CurrencyManager.cs: Just need to pull data when updating now,
5903         because PullData will set the value on the control.
5904
5905 2005-03-04  Jackson Harper  <jackson@ximian.com>
5906
5907         * Binding.cs: Implement data type parsing and converting on pulled
5908         data. TODO: Are there more ways the data can be converted?
5909
5910 2005-03-04  Jackson Harper  <jackson@ximian.com>
5911
5912         * Binding.cs: Support <Property>IsNull checks. Also bind to the
5913         controls Validating method so we can repull the data when the
5914         control loses focus.
5915
5916 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
5917
5918         * ColumnHeader.cs:
5919           - Fixes null string format
5920           
5921         * ListView.cs:
5922           - Adds enum type checks
5923           - Fixes redrawing and recalc need after changing some properties
5924           - Fixes on focus_item set after the event
5925           - Fixes adding columns after the control has been created
5926           
5927         * ThemeWin32Classic.cs:
5928           - Fixes CheckBox focus rectangle
5929           - Fixes ColumnHeader drawing
5930
5931
5932 2005-03-03  Jackson Harper  <jackson@ximian.com>
5933
5934         * Binding.cs: Bind to <Property>Changed events so we can detect
5935         when properties are changed and update the data.
5936
5937 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
5938
5939         * ImageList.cs:
5940           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
5941           - Fixes ImageList constructor with ImageList container
5942           - Fixes image scaling (wrong parameters at DrawImage)
5943
5944 2005-02-02  Jackson Harper  <jackson@ximian.com>
5945
5946         * Binding.cs: Make property searches case-insensitive. Eliminate
5947         some duplicated code.
5948
5949 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
5950
5951         * ComboBox.cs:
5952                 - Handle focus event
5953                 - Fix scrollbar events
5954                 - Discard highlighted item if remove it
5955                 - Fixes SelectedItem with strings
5956
5957 2005-03-01  Peter Bartok  <pbartok@novell.com>
5958
5959         * Control.cs:
5960           - Fixed Visible property, now follows (once again) parent chain
5961             to return false if any control in the chain is visible=false
5962           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
5963           - Fixed several places where is_visible instead of Visible was used
5964           - Implemented FIXME related to focus selection when setting focused
5965             control to be invisible
5966
5967         * XplatUIWin32.cs: Now using proper method to find out if window is
5968           visible. Thanks to Jordi for pointing it out
5969
5970 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
5971
5972         * ComboBox.cs: show/hide scrollbar instead of creating it
5973
5974 2005-02-27  Jackson Harper  <jackson@ximian.com>
5975
5976         * CurrencyManager.cs: Add PositionChanged stuff.
5977
5978 2005-02-27  Peter Bartok  <pbartok@novell.com>
5979
5980         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
5981         * XplatUIOSX.cs: Added GetMenuOrigin() stub
5982         * XplatUIWin32.cs: Implemented GetMenuOrigin()
5983         * XplatUIX11.cs:
5984           - Implemented GetMenuDC()
5985           - Implemented GetMenuOrigin()
5986           - Implemented ReleaseMenuDC()
5987           - Implemented generation of WM_NCPAINT message
5988           - Implemented generation and handling of WM_NCCALCSIZE message
5989         * Form.cs: Added debug helper message for Jordi's menu work
5990         * Hwnd.cs:
5991           - Modified ClientRect property; added setter, fixed getter to handle
5992             setting of ClientRect
5993           - Added MenuOrigin property
5994
5995 2005-02-26  Peter Bartok  <pbartok@novell.com>
5996
5997         * XplatUIX11.cs:
5998           - Destroys the caret if a window that's being destroyed contains it
5999           - Ignores expose events coming from the X11 queue for windows that
6000             already are destroyed
6001           - Now uses the proper variable for handling DestroyNotify, before we
6002             marked the wrong window as destroyed
6003           - Improved/added some debug output
6004
6005 2005-02-26  Peter Bartok  <pbartok@novell.com>
6006
6007         * X11Keyboard.cs: Fixes to work on 64bit systems
6008
6009 2005-02-26  Peter Bartok  <pbartok@novell.com>
6010
6011         * Control.cs:
6012           - Now calling OnHandleDestroyed from DestroyHandle()
6013             instead of Dispose()
6014           - Removed bogus call to controls.Remove() from DestroyHandle()
6015
6016 2005-02-26  Peter Bartok  <pbartok@novell.com>
6017
6018         * Control.cs: Properly destroy child windows when our handle is
6019           destroyed
6020
6021 2005-02-25  Peter Bartok  <pbartok@novell.com>
6022
6023         * XplatUI.cs:
6024           - Added 'DriverDebug' define to allow tracing XplatUI API calls
6025           - Alphabetized Static Methods and Subclasses
6026
6027         * XplatUIX11.cs:
6028           - Added XException class to allow custom handling of X11 exceptions
6029           - Created custom X11 error handler, tied into XException class
6030           - Added support for MONO_XEXCEPTIONS env var to allow the user
6031             to either throw an exception on X errors or continue running
6032             after displaying the error
6033           - Added handling of DestroyNotify message
6034           - Added handler for CreateNotify message (still disabled)
6035           - Improved (tried to at least) Where method to provide file and lineno
6036         * X11Structs.cs:
6037           - Added XErrorHandler delegate
6038           - Added XRequest enumeration (to suppor translation of errors)
6039
6040 2005-02-25  Jackson Harper  <jackson@ximian.com>
6041
6042         * PropertyManager.cs: Implement editing features
6043         * CurrencyManager.cs:
6044         * Binding.cs: First attempt at UpdateIsBinding
6045         * BindingManagerBase.cs: Call UpdateIsBinding before
6046         pushing/pulling data.
6047
6048 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
6049
6050         * MenuAPI.cs: Respect disabled items
6051         * ThemeWin32Classic.cs
6052                 - Caches ImageAttributes creation for DrawImageDisabled
6053                 - Fixes vertical menu line drawing
6054                 - Draws disabled arrows in disable menu items
6055
6056 2005-02-24  Peter Bartok  <pbartok@novell.com>
6057
6058         * Hwnd.cs:
6059           - Added UserData property to allow associating arbitrary objects
6060             with the handle
6061           - Fixed leak; now removing Hwnd references from static windows array
6062         * XplatUIWin32.cs:
6063           - Fixed Graphics leak in PaintEventEnd
6064           - Removed usage of HandleData, switched over to Hwnd class
6065         * HandleData.cs: Removed, obsoleted by Hwnd.cs
6066
6067 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
6068
6069         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
6070         * ScrollBar.cs: Fixes bug
6071         * TrackBar.cs: removes death code, clipping, mimize refreshes,
6072          keyboard navigation enhancements
6073
6074 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
6075
6076         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
6077         * GroupBox.cs: Add control styles
6078         * Label.cs: Add control styles
6079         * UpDownBase.cs: Add control styles
6080         * ListBox.cs: Add control styles
6081         * XplatUIWin32.cs: Fixes wrong parameter order
6082
6083
6084 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
6085
6086         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
6087
6088 2005-02-23  Jackson Harper  <jackson@ximian.com>
6089
6090         * PropertyManager.cs: Implement property binding. This doesn't
6091         seem to work yet though as (I think) there are some bugs in
6092         System.ComponentModel.PropertyDescriptor.
6093         * BindingContext.cs: Use new PropertyManager constructor.
6094
6095 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
6096
6097         * ProgressBar.cs: use clip region in ProgressBar
6098         * ThemeWin32Classic.cs: use clip region in ProgressBar
6099
6100 2004-02-22  Jackson Harper  <jackson@ximian.com>
6101
6102         * BindingsCollection.cs: Remove some debug code.
6103
6104 2005-02-22  Jackson Harper  <jackson@ximian.com>
6105
6106         * BindingContext.cs:
6107         * ControlBindingsCollection.cs:
6108         * CurrencyManager.cs:
6109         * Binding.cs:
6110         * BindingManagerBase.cs: Initial implementation
6111         * BindingsCollection.cs: Add an internal contains method that the
6112         BindingManagerBase uses to ensure bindings aren't added twice to
6113         the collection.
6114         * PropertyManager.cs: Stubbed out.
6115         * Control.cs:
6116         * ContainerControl.cs: Hook up databinding
6117         
6118 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
6119
6120         * XplatUIOSX.cs:
6121           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
6122           Fixed Invalidate/Update chain.
6123           Fixed tons of other minor bugs (this is almost a complete rewrite).
6124
6125 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
6126
6127         * ComboBox.cs: do subcontrol creation when the control is created
6128
6129 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
6130
6131         * Label.cs: fixes image drawing (image and imagelist)
6132         * ThemeWin32Classic.cs: cache brushes
6133         
6134 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
6135
6136         * Form.cs: Move menu drawing code to Theme class
6137         * ComboBox.cs: Move ComboBox drawing code to Theme class
6138         * MenuItem.cs: Move menu drawing code to Theme class
6139         * MenuAPI.cs: Move menu drawing code to Theme class
6140         * ThemeWin32Classic.cs: New methods
6141         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
6142         * ListBox.cs: Move Listbox drawing code to Theme class
6143         * Theme.cs: New methods
6144
6145 2005-02-20  Peter Bartok  <pbartok@novell.com>
6146
6147         * Control.cs:
6148           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
6149             only process mnemonics on those)
6150           - Fixed event sequence for key handling; first calling
6151             ProcessKeyEventArgs now
6152         * TextBoxBase.cs:
6153           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
6154             for processing non-character keys
6155           - Fixed WM_CHAR to generate proper event sequence before processing
6156         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
6157           generation
6158
6159 2005-02-19  Peter Bartok  <pbartok@novell.com>
6160
6161         * UserControl.cs: Added TextChanged event; added attributes
6162         * SizeGrip.cs: Implemented resizing and optional display of grip
6163         * Form.cs: Fixed attribute
6164         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
6165           Changed meaning of ScrollWindow bool argument; instead of the
6166           clear attribute (which will be true usually anyway), it gives the
6167           option of moving child controls as well.
6168         * XplatUIX11.cs:
6169           - Changed to match new ScrollWindow argument
6170           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
6171             now handles the implicit parent window a WM puts around us
6172         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
6173           to work)
6174         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
6175         * TreeView.cs: Adjusted to new ScrollWindow arguments
6176
6177 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
6178
6179         * Form.cs: Menu integration with non-client area
6180         * MenuItem.cs: Menu integration with non-client area
6181         * MenuAPI.cs: Menu integration with non-client area
6182
6183 2005-02-18  Peter Bartok  <pbartok@novell.com>
6184
6185         * MethodInvoker.cs: Added
6186         * MdiLayout.cs: Added
6187         * SendKeys.cs: Started implementation
6188         * ErrorIconAlignment.cs: Added
6189
6190 2005-02-18  Peter Bartok  <pbartok@novell.com>
6191
6192         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
6193         * Form.cs: Added handling for Menu-related Non-client messages
6194
6195 2005-02-17  Peter Bartok  <pbartok@novell.com>
6196
6197         * UpDownBase.cs: Fixed typo, compilation errors
6198         * DomainUpDown.cs: Fixed attribute value
6199
6200 2005-02-16  Miguel de Icaza  <miguel@novell.com>
6201
6202         * UpDownBase.cs: Attach entry events.
6203         Propagate events.
6204         Add ForeColor property, Focused, InterceptArrowKeys (interception
6205         does not work yet).
6206
6207 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
6208
6209         * Form.cs:
6210                 - Redraw non client are on Setmenu
6211                 - Calc proper menu starting point
6212
6213 2005-02-17  Peter Bartok  <pbartok@novell.com>
6214
6215         * Application.cs: Fixed message_filter check
6216
6217 2005-02-17  Peter Bartok  <pbartok@novell.com>
6218
6219         * Application.cs: Now calls registered message filters
6220         * DockStyle.cs: Fixed attribute
6221         * Form.cs: Fixed attribute
6222         * Menu.cs: Fixed attribute
6223         * ToolTip.cs: Fixed attribute
6224         * TreeNode.cs: Added missing attributes and arranged in regions
6225         * PropertyGrid.cs: Fixed signatures
6226         * TreeNodeCollection.cs: Added attributes
6227         * Splitter.cs: Added missing attributes; arranged into regions
6228         * TabPage.cs: Added missing attributes; arranged into regions
6229         * TextBoxBase.cs: Added missing attributes
6230         * TextBox.cs: Added missing attributes
6231         * ArrangeDirection.cs: Added missing attributes
6232         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
6233         * ToolBarButton.cs: Fixed attributes
6234         * AnchorStyles.cs: Fixed attribute
6235         * TrackBar.cs: Fixed attributes
6236         * TabControl.cs: Added missing attributes and arranged into regions
6237         * ToolBar.cs: Fixed attribute
6238         * StatusBar.cs: Fixed signature, organized into regions and added
6239           attributes
6240         * StatusBarPanel.cs: Fixed attributes
6241         * ContentsResizedEventArgs.cs: Implemented
6242         * ContentsResizedEventHandler.cs: Implemented
6243         * DateBoldEventArgs.cs: Implemented
6244         * DateBoldEventHandler.cs: Implemented
6245         * UpDownEventArgs.cs: Implemented
6246         * UpDownEventHandler.cs: Implemented
6247         
6248 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
6249
6250         * Form.cs: first Menu NC refactoring
6251         * MenuAPI.cs: first Menu NC refactoring
6252         
6253 2005-02-16  Peter Bartok  <pbartok@novell.com>
6254
6255         * ImeMode.cs: Added missing attributes
6256         * Menu.cs: Fixed attribute
6257         * GroupBox.cs: Fixed attribute
6258         * Label.cs: Fixed attribute
6259         * ColorDialog.cs (RunDialog): Removed TODO attribute
6260         * ComboBox.cs: Fixed attributes
6261         * ListControl.cs: Added missing attributes
6262         * PropertyGrid.cs: Fixed attributes
6263         * Control.cs: Fixed attributes
6264         * ListViewItem.cs: Added TypeConverter attribute
6265         * NotifyIcon.cs: Fixed attributes
6266         * ListView.cs: Fixed attributes
6267         * ButtonBase.cs: Fixed attribute
6268         * ImageList.cs: Added missing attributes
6269         * ContainerControl.cs: Fixed signature
6270         * CheckedListBox.cs: Fixed attribute; added missing attributes
6271         * Panel.cs: Fixed attributes
6272         * PropertyTabChangedEventArgs.cs: Added missing attribute
6273         * PropertyValueChangedEventArgs.cs: Added missing attribute
6274         * Binding.cs: Fixed attribute
6275         * ListViewItemConverter: Implemented ListViewSubItemConverter class
6276         * ListBox.cs: Fixed attribute; added missing attributes;
6277         * ScrollableControl.cs: Added missing attributes
6278         * PictureBox.cs: Added missing attributes; implemented missing property
6279         * DateTimePicker.cs: Added missing attributes
6280         * Theme.cs (ToolWindowCaptionHeight): Fixed type
6281         * MonthCalendar.cs: Fixed attributes
6282         * StatusBarPanel.cs: Added missing attributes
6283         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
6284
6285 2005-02-16  Peter Bartok  <pbartok@novell.com>
6286
6287         * TextBoxBase.cs: The previous method to enforce height yet remember
6288           the requested high was less than ideal, this is an attempt to do
6289           it better.
6290         * Control.cs: Added comment about possible problem
6291         * Copyright: Updated format
6292         * GridItemType.cs: Fixed swapped values
6293
6294 2005-02-15  Jackson Harper  <jackson@ximian.com>
6295
6296         * BaseCollection.cs: Use property so we never access an
6297         uninitialized list. Also initialize the list in the property.
6298
6299 2005-02-15  Peter Bartok  <pbartok@novell.com>
6300
6301         * GroupBox.cs (ProcessMnemonic): Implemented
6302         * Label.cs (ProcessMnemonic): Implemented
6303         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
6304           hotkeys
6305
6306 2005-02-15  Peter Bartok  <pbartok@novell.com>
6307
6308         * RadioButton.cs (ProcessMnemonic): Implemented
6309         * CheckBox.cs (ProcessMnemonic): Implemented
6310         * Control.cs:
6311           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
6312             handling
6313           - Added internal method to allow calling ProcessMnemonic from other
6314             controls
6315         * ContainerControl.cs:
6316           - Started support for handling validation chain handling
6317           - Implemented ProcessMnemonic support
6318           - Added Select() call to Active, to make sure the active control
6319             receives focus
6320         * Form.cs: Setting toplevel flag for Forms (this was lost in the
6321           FormParent rewrite)
6322         * ThemeWin32Classic.cs:
6323           - DrawCheckBox(): Fixed stringformat to show hotkeys
6324           - DrawRadioButton(): Fixed stringformat to show hotkeys
6325         * CommonDialog.cs: Removed WndProc override, not needed
6326
6327 2005-02-14  Peter Bartok  <pbartok@novell.com>
6328
6329         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
6330           missed those in the rewrite
6331
6332 2005-02-14  Miguel de Icaza  <miguel@novell.com>
6333
6334         * NumericUpDown.cs (Increment, ToString): Add.
6335         (DecimalPlaces): implement.
6336         
6337         Add attributes.
6338         
6339         * UpDownBase.cs: Add the designer attributes.
6340
6341 2005-02-13  Peter Bartok  <pbartok@novell.com>
6342
6343         * Panel.cs: Removed border_style, now in Control
6344         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
6345           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
6346
6347 2005-02-13  Peter Bartok  <pbartok@novell.com>
6348
6349         * MouseButtons.cs: Added missing attributes
6350         * XplatUIStructs.cs: Added enumeration for title styles
6351         * LeftRightAlignment.cs: Added missing attributes
6352         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
6353           it compatible with Graphics.FromHwnd()
6354         * SelectedGridItemChangedEventArgs.cs: Fixed property type
6355         * Keys.cs: Added missing attributes
6356         * SelectionRange.cs: Added missing attributes
6357         * SelectionRangeConverter.cs: Added
6358         * XplatUI.cs:
6359           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
6360             ReleaseMenuDC methods
6361           - Renamed ReleaseWindow to UngrabWindow
6362           - Added proper startup notice to allow version identification
6363         * Form.cs:
6364           - Added missing attributes
6365           - Removed FormParent concept
6366         * Label.cs: Removed border_style field, now in Control
6367         * RadioButton.cs: Now properly selects RadioButton when focus is
6368           received
6369         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
6370         * Control.cs:
6371           - Added missing attributes
6372           - Added borderstyle handling
6373           - Removed FormParent concept support
6374           - Fixed calls to XplatUI to match changed APIs
6375           - Fixed bug that would case us to use disposed Graphics objects
6376           - Removed unneeded internal methods
6377           - PerformLayout(): Fixed to handle DockStyle.Fill properly
6378           - SelectNextControl(): Fixed to properly check common parents
6379         * TextBoxBase.cs: Removed border_style field (now in Control)
6380         * MessageBox.cs:
6381           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
6382             fixed calculations for form size
6383           - Added support for localized strings and icons
6384           - Improved form size calculations, added border
6385         * ListView.cs: Removed border_style field (now in Control)
6386         * X11Structs.cs: Moved several structs from X11 driver here
6387         * X11Keyboard.cs: Changed debug message
6388         * Application.cs: Removed FormParent concept support
6389         * CommonDialog.cs:
6390           - Resetting end_modal flag
6391           - Removed FormParent concept support
6392         * NativeWindow.cs: Removed FormParent concept support
6393         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
6394           Client area and Non-Client whole window to allow support for WM_NC
6395           messages
6396         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
6397           prevent using it until it supports Hwnd as per Geoff Norton's request
6398         * ToolBar.cs: Fixed drawing, was not doing proper drawing
6399         * PictureBox.cs: Removed border_style field, now in Control
6400         * XplatUIWin32.cs: Added new driver methods
6401
6402 2005-02-12  Peter Bartok  <pbartok@novell.com>
6403
6404         * OpacityConverter.cs: Implemented
6405         * Hwnd.cs: Internal class to support drivers that need to emulate
6406           client area/non-client area window behaviour
6407
6408 2005-02-11  Peter Bartok  <pbartok@novell.com>
6409
6410         * KeysConverter.cs: Implemented
6411
6412 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
6413
6414         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
6415         * LinkLabel: Added missing attributes
6416         * MainMenu.cs: fixes ToString
6417         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
6418         * ListBox.cs: fixes event position
6419         * TrackBar.cs: adds missing attributes and events
6420         
6421 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
6422
6423         * MenuItem.cs: Use SystemInformation and bug fixes
6424         * MenuAPI.cs: Use SystemInformation and bug fixes
6425
6426 2005-02-09  Jackson Harper  <jackson@ximian.com>
6427
6428         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
6429         their keystate otherwise things like VK_MENU get stuck "on".
6430
6431 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
6432
6433         * ListBox.cs: Fixes AddRange bug
6434         
6435 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
6436
6437         * ProgressBar.cs
6438                 - Add missing attributes
6439                 - Add missing method
6440                 
6441         * CheckedListBox.cs: Added missing attributes
6442                 - Add missing attributes
6443                 - Remove extra method
6444         
6445         * ComboBox.cs: Added missing attributes
6446         * VScrollBar.cs: Added missing attributes
6447         * ScrollBar.cs:  Added missing attributes
6448         * ListBox.cs: Fixes signature, add missing consts
6449         * LinkArea.cs:   Added missing attributes
6450         
6451
6452 2005-02-08  Peter Bartok  <pbartok@novell.com>
6453
6454         * Menu.cs: Added missing attributes
6455         * MainMenu.cs: Added missing attributes
6456         * GroupBox.cs: Added missing attributes
6457         * Label.cs: Added missing attributes
6458         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
6459         * ColorDialog.cs:
6460           - Added Instance and Options properties
6461           - Added missing attributes
6462         * Cursor.cs: Made Serializable
6463         * NotifyIcon: Added missing attributes
6464         * MenuItem.cs: Added missing attributes
6465         * TextBoxBase.cs: Implemented AppendText() and Select() methods
6466         * Panel.cs: Added Missing attributes
6467         * MonthCalendar.cs: Fixed CreateParams
6468
6469 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
6470         
6471         * LinkLabel.cs:
6472                 - Fixes signature
6473                 - Fixes issues with links
6474                 - Adds the class attributes
6475
6476 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
6477         
6478         * ComboBox.cs:
6479                 - Fixes button when no items available in dropdown
6480                 - Fixes repainting problems
6481                 - Adds the class attributes
6482                 
6483 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
6484
6485         * XplatUIOSX.cs: Detect the menu bar and title bar height from
6486         the current theme.  Cache these on startup.
6487
6488 2005-02-07  Jackson Harper  <jackson@ximian.com>
6489
6490         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
6491         the scrollbar buttons when they are depressed.
6492
6493 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
6494
6495         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
6496         Get the display size from the main displayid.  We currently dont
6497         support multiple display configurations.
6498
6499 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
6500
6501         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
6502
6503 2005-02-07  Miguel de Icaza  <miguel@novell.com>
6504
6505         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
6506
6507 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6508
6509         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
6510
6511 2005-02-04  Jackson Harper  <jackson@ximian.com>
6512
6513         * ThemeWin32Classic.cs: Respect the clipping rect when
6514         drawing. Only fill the intersection of clips and rects so there
6515         isn't a lot of large fills.
6516         * ScrollBar.cs: Pass the correct clipping rect to the theme
6517         engine. Remove some debug code.
6518
6519 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
6520         
6521         * DateTimePicker.cs:
6522                 - Fixed crash on DateTime.Parse, use Constructor instead
6523
6524 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
6525         
6526         * MenuItem.cs:
6527         * MenuAPI.cs:
6528                 - Owner draw support (MeasureItem and DrawItem)
6529
6530 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
6531         
6532         *  Menu.cs:
6533                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
6534                 - Fixes MenuItems.Add range
6535         * MenuItem.cs:
6536                 - MergeMenu and Clone and CloneMenu functions
6537
6538 2005-02-03  Jackson Harper  <jackson@ximian.com>
6539
6540         * ScrollBar.cs: Make abstract
6541         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
6542         is abstract.
6543
6544 2005-02-03  Jackson Harper  <jackson@ximian.com>
6545
6546         * ScrollBar.cs: First part of my scrollbar fixups. This removes
6547         all the unneeded refreshes and uses invalidates with properly
6548         computed rects.
6549
6550 2005-02-03  Peter Bartok  <pbartok@novell.com>
6551
6552         * ComponentModel.cs: Added
6553         * IDataGridEditingService.cs: Added
6554         * Timer.cs: Added missing attributes
6555         * ToolTip.cs: Added missing attributes
6556
6557 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
6558
6559         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
6560
6561 2005-02-03  Peter Bartok  <pbartok@novell.com>
6562
6563         * ListBox.cs: Added missing attributes
6564
6565 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
6566         
6567         * ListBox.cs:
6568                 - Fixes font height after font change
6569                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
6570                 
6571 2005-02-02  Peter Bartok  <pbartok@novell.com>
6572
6573         * HandleData.cs: Introduced static methods to allow class
6574           to be more self-contained and track it's own HandleData objects
6575         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
6576           HandleData to use new static methods
6577
6578 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
6579
6580         * Combobox.cs:
6581                 - Fixes default size and PreferredHeight
6582                 - Missing events
6583                 - ObjectCollection.Insert implementation
6584                 
6585         * ListControl.cs
6586                 - Fixes signature
6587         * ListBox.cs:
6588                 - Several fixes
6589                 - ObjectCollection.Insert implementation
6590                 - No selection after clean
6591                 - Small fixes
6592
6593 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
6594
6595         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
6596
6597 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
6598
6599         * Combobox.cs:
6600                 - Caches ItemHeight calculation for OwnerDrawVariable
6601                 - Handles dropdown properly
6602                 - Fixes several minor bugs
6603
6604 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
6605
6606         * ListBox.cs:
6607                 - Fixes 71946 and 71950
6608                 - Fixes changing Multicolumn on the fly
6609                 - Fixes keyboard navigation on Multicolumn listboxes
6610
6611 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
6612         
6613         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
6614         crash reporter log.
6615
6616 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
6617
6618         * XplatUIOSX.cs: Allow applications to actually exit.
6619
6620 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
6621
6622         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
6623         their parent at creation time rather than lazily later.  Fixes a major
6624         regression we were experiencing.
6625
6626 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
6627
6628         * ThemeWin32Classic.cs: more date time picker painting fixes
6629         * DateTimePicker.cs: more monthcalendar drop down fixes
6630         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
6631
6632 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
6633
6634         * ScrollBar.cs:
6635                 - When moving the thumb going outside the control should stop the moving
6636                 - Adds the firing of missing events
6637                 - Fixes no button show if Size is not specified
6638                 - End / Home keys for keyboard navigation
6639
6640 2005-01-30  Peter Bartok  <pbartok@novell.com>
6641
6642         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
6643           sanity check to prevent theoretical loop
6644         * XplatUIWin32.cs (SetVisible): Removed debug output
6645         * XplatUIX11.cs (SystrayChange): Added sanity check
6646         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
6647         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
6648           behaviour, valid until the X11 client window rewrite is done
6649         * TextBox.cs (ctor): Setting proper default foreground and background
6650           colors
6651
6652 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
6653
6654         * Theme: Added DrawDateTimePicker to interface
6655         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
6656         * DateTimePicker.cs: Created (still needs keys and painting code)
6657         * DateTimePickerFormat.cs: added
6658         * MonthCalendar.cs: fixed CreateParams for popup window mode
6659           
6660 2005-01-29  Peter Bartok  <pbartok@novell.com>
6661
6662         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
6663           this should also the calculations for ligher/darker
6664         * Theme.cs: Fixed defaults for ScrollBar widths/heights
6665
6666 2005-01-29  Peter Bartok  <pbartok@novell.com>
6667
6668         * ArrangeDirection.cs: Added
6669         * ArrangeStartingPositon.cs: Added
6670         * SystemInformation.cs: Implemented
6671         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6672           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
6673           used by SystemInformation class
6674         * X11Strucs.cs: Added XSizeHints structure
6675         * MenuAPI.cs:
6676           - Fixed CreateParams to make sure the menu window is always visible
6677           - TrackPopupMenu: Added check to make sure we don't draw the
6678             menu offscreen
6679
6680 2005-01-29  Peter Bartok  <pbartok@novell.com>
6681
6682         * HandleData.cs: Added method for altering invalid area
6683         * TextBoxBase.cs: Implemented TextLength
6684
6685 2005-01-28  Peter Bartok  <pbartok@novell.com>
6686
6687         * XplatUIX11.cs: Improvement over last patch, not sending
6688           the WM_PAINT directly anymore, instead we scroll any pending
6689           exposed areas and let the system pick out the WM_PAINT later
6690
6691 2005-01-28  Peter Bartok  <pbartok@novell.com>
6692
6693         * SWF.csproj: Deleted, no longer used. Instead,
6694           Managed.Windows.Forms/SWF.csproj should be used
6695         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
6696           directly, to avoid a potential race condition with the next
6697           scroll
6698
6699 2005-01-28  Peter Bartok  <pbartok@novell.com>
6700
6701         * XplatUI.cs: Made class internal
6702
6703 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
6704
6705         * CheckedListBox.cs:
6706                 - Draw focus
6707                 - Fixed Drawing
6708                 - Missing methods and events
6709
6710 2005-01-27  Peter Bartok  <pbartok@novell.com>
6711
6712         * Application.cs (Run): Don't use form if we don't have one
6713
6714 2005-01-27  Peter Bartok  <pbartok@novell.com>
6715
6716         * TextBoxBase.cs (get_Lines): Fixed index off by one error
6717
6718 2005-01-27  Peter Bartok  <pbartok@novell.com>
6719
6720         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
6721         * GridItem.cs: Added; Patch by Jonathan S. Chambers
6722         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
6723         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
6724         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
6725         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
6726         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
6727         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
6728         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
6729         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
6730         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
6731         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
6732
6733 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
6734
6735         * Combobox.cs:
6736                 - Draw focus on Simple Combobox
6737                 - Fixes drawing issues
6738                 - fixes 71834
6739
6740 2005-01-27  Peter Bartok  <pbartok@novell.com>
6741
6742         * Form.cs:
6743           - Place window in default location, instead of hardcoded 0/0
6744           - Send initial LocationChanged event
6745         * Control.cs:
6746           - UpdateBounds after creation to find out where the WM placed us
6747           - Make sure that if the ParentForm changes location the Form
6748             is notified
6749         * XplatUIX11.cs: XGetGeometry will not return the coords relative
6750             to the root, but to whatever the WM placed around us.
6751             Translate to root coordinates before returning toplevel
6752             coordinates
6753         * XplatUIWin32.cs: Removed debug output
6754         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
6755           flag to GetWindowPos, to allow translation of coordinates on X11
6756
6757 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
6758
6759         * ListBox.cs: connect LostFocus Event
6760
6761 2005-01-27  Peter Bartok  <pbartok@novell.com>
6762
6763         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
6764           XplatUIX11.cs: Extended the Systray API
6765         * Form.cs: Removed debug output
6766         * Application.cs: Fixed focus assignment, always need to call
6767           XplatUI.Activate() since Form.Activate() has rules that may
6768           prevent activation
6769         * NotifyIcon.cs: Should be complete now
6770         * ToolTip.cs: Worked around possible timer bug
6771
6772 2005-01-27  Jackson Harper  <jackson@ximian.com>
6773
6774         * TabControl.cs:
6775         - Only invalidate the effected tabs when the
6776         selected index changes. This reduces drawing and gets rid of some
6777         flicker.
6778         - Only refresh if the tabs need to be shifted, otherwise only
6779         invalidate the slider button.
6780         - On windows the tabs are not filled to right if the slider is
6781         visible.
6782         
6783 2005-01-27  Jackson Harper  <jackson@ximian.com>
6784
6785         * TabControl.cs: Only refresh on mouseup if we are showing the
6786         slider. Also only invalidate the button whose state has changed.
6787
6788 2005-01-26  Peter Bartok  <pbartok@novell.com>
6789
6790         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
6791         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
6792           and SystrayRemove() methods
6793         * XplatUIOSX.cs: Stubbed Systray methods
6794         * XplatUIX11.cs:
6795           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
6796             methods
6797           - Fixed broken XChangeProperty calls (marshalling messed up things)
6798         * X11Structs.cs: Added enums and structs required for Size hinting
6799         * NotifyIcon.cs: Added & implemented
6800
6801 2005-01-26  Jackson Harper  <jackson@ximian.com>
6802
6803         * TabControl.cs: Space vertically layed out tabs properly.
6804
6805 2005-01-26  Peter Bartok  <pbartok@novell.com>
6806
6807         * Form.cs (CreateClientParams): Always set the location to 0,0
6808           since we're a child window.
6809
6810         * Control.cs (SetVisibleCore): Always explicitly setting the location
6811           of a toplevel window, apparently X11 doesn't like to move windows
6812           while they're not mapped.
6813
6814 2005-01-26  Jackson Harper  <jackson@ximian.com>
6815
6816         * TabControl.cs: Implement FillToRight size mode with vertically
6817         rendered tabs.
6818
6819 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
6820
6821         * ControlPaint.cs, ThemeWin32Classic.cs
6822                 - Fixes DrawFocusRectangle
6823
6824 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
6825
6826         * MenuAPI.cs:
6827                 - MenuBar tracking only starts when item is first clicked
6828                 - Fixes menu hidding for multiple subitems
6829                 - Unselect item in MenuBar when item Executed
6830                 - Fixes bug 71495
6831
6832 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
6833
6834         * ListControl.cs:
6835                 - IsInputKey for ListBox
6836         * ListBox.cs:
6837                 - Focus item
6838                 - Shift and Control item selection
6839                 - Implement SelectionMode.MultiExtended
6840                 - Fixes RightToLeft
6841         * ComboBox.cs:
6842                 - IsInputKey implemented
6843                 - Do not generate OnTextChangedEdit on internal txt changes
6844                 
6845 2005-01-23  Peter Bartok  <pbartok@novell.com>
6846
6847         * AccessibleObject.cs: Partially implemented Select()
6848         * MonthCalendar.cs: Added missing attributes and events
6849         * Form.cs: Fixed CreateParams behaviour, now controls derived from
6850           form can properly override CreateParams.
6851         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6852           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
6853           Control performs Invalidate & Update
6854         * NativeWindow (CreateHandle): Added special handling for Form
6855           and Form.FormParent classes to allow overriding of From.CreateParams
6856         * Control.cs:
6857           - ControlNativeWindow: Renamed 'control' variable to more intuitive
6858             name 'owner'
6859           - ControlNativeWindow: Added Owner property
6860           - Removed usage of Refresh() on property changes, changed into
6861             Invalidate(), we need to wait until the queue is processed for
6862             updates, direct calls might cause problems if not all vars for
6863             Paint are initialized
6864           - Added call to UpdateStyles() when creating the window, to set any
6865             styles that CreateWindow might have ignored.
6866           - Added support for Form CreateParent overrides to UpdateStyles()
6867         * MessageBox.cs: Removed no longer needed FormParent override stuff,
6868           CreateParams are now properly overridable
6869         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
6870           CreateParams are now properly overridable
6871
6872 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
6873
6874         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
6875         OnTextBoxChanged.
6876
6877         Capture LostFocus and OnTextBoxChanged.  The later introduces a
6878         recursive invocation that I have not figured out yet.
6879
6880         Reset the timer when not using (it was accumulating).
6881
6882
6883         (OnTextBoxChanged): Set UserEdit to true here to track whether the
6884         user has made changes that require validation.
6885
6886         Reset changing to avoid loops.
6887
6888 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
6889
6890         * NumericUpDown.cs: Display value at startup.
6891
6892         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
6893         ValidateEditText.
6894
6895         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
6896         filled in.  Added some basic parsing of text.
6897
6898         Still missing the OnXXX method overrides, and figuring out the
6899         events that must be emitted.
6900
6901         * UpDownBase.cs: Handle UserEdit on the Text property.
6902         
6903 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
6904
6905         * ComboBox.cs:
6906           - Fixes IntegralHeight
6907           - ToString method
6908
6909 2005-01-21  Jackson Harper  <jackson@ximian.com>
6910
6911         * TabControl.cs: Set the SelectedIndex property when SelectedTab
6912         is set so that the page visibility is updated and the tabs are
6913         sized correctly.
6914
6915 2005-01-21  Jackson Harper  <jackson@ximian.com>
6916
6917         * TabControl.cs: Use cliping rectangle for blitting. Give the
6918         theme the clipping rect so we can do clipping while
6919         drawing. Remove some debug code.
6920
6921 2005-01-21  Jackson Harper  <jackson@ximian.com>
6922
6923         * TabPage.cs: Add a new method so tab pages can force the tab
6924         control to recalculate the tab page sizes.
6925         * TabControl.cs: UpdateOwner needs to make the tab control recalc
6926         sizes.
6927
6928 2005-01-20  Jackson Harper  <jackson@ximian.com>
6929
6930         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
6931
6932 2005-01-20  Jackson Harper  <jackson@ximian.com>
6933
6934         * TreeView.cs: Set the bounds for nodes properly. They were
6935         getting screwed up when checkboxes were not enabled, but images
6936         were.
6937
6938 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
6939
6940         * ListBox.cs:
6941                 - Owner draw support
6942                 - Fixes
6943                 
6944 2005-01-20  Jackson Harper  <jackson@ximian.com>
6945
6946         * XplatUIStructs.cs: More misc keys
6947         * X11Keyboard.cs: Ignore some control keys.
6948
6949 2005-01-20  Jackson Harper  <jackson@ximian.com>
6950
6951         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
6952         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
6953
6954 2005-01-19  Peter Bartok  <pbartok@novell.com>
6955
6956         * Control.cs: Un-selecting the control when it is loosing focus
6957
6958 2005-01-19  Jackson Harper  <jackson@ximian.com>
6959
6960         * TreeView.cs: Hook up to the text controls leave event so we can
6961         end editing when the users clicks outside the text box.
6962         
6963 2005-01-19  Jackson Harper  <jackson@ximian.com>
6964
6965         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
6966         get set in the conversion array.
6967
6968 2005-01-19  Peter Bartok  <pbartok@novell.com>
6969
6970         * Application.cs (ModalRun): Added a call to CreateControl to ensure
6971           focus is properly set
6972         * Button.cs:
6973           - Added missing attributes
6974           - removed styles, those are already set in the base class
6975         * ButtonBase.cs:
6976           - Added missing attributes
6977           - Added clip window styles
6978         * CheckBox.cs: Added missing attributes
6979         * CommonDialog.cs:
6980           - FormParentWindow.CreateParams: Added required clip styles
6981         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
6982           also filters modifier keys
6983         * MessageBox.cs:
6984           - Added assignment of Accept and Cancel button to enable Enter
6985             and Esc keys in MessageBox dialogs
6986           - FormParentWindow.CreateParams: Added required clip styles
6987         * RadioButton.cs: Added missing attributes
6988         * TextControl.cs: No longer draws selection if control does not
6989           have focus
6990         * TextBoxBase.cs:
6991           - Now draws simple rectangle around test area to make it obvious
6992             there's a control. This is a hack until we properly support borders
6993           - A few simple fixes to support selections better, now erases selected
6994             text when typing, and resets selection when using movement keys
6995
6996 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
6997
6998         * UpDownBase.cs: Added some new properties.
6999
7000         * DomainUpDown.cs: Implement a lot to get my test working.
7001
7002 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
7003
7004         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
7005
7006 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
7007
7008         * OSXStructs (WindowAttributes): Fixed csc complaints
7009
7010 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
7011
7012         * XplayUIOSX.cs:
7013           OSXStructs.cs: Initial refactor to move enums and consts into
7014           OSXStructs and use them in the driver for greater readability.
7015
7016 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
7017
7018         * XplatUIOSX.cs: Initial support for Standard Cursors.
7019         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
7020
7021 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
7022
7023         * ComboBox.cs: ability to change style when the ctrl is already
7024         created, missing methods and events, bug fixes, signature fixes
7025
7026 2005-01-19  Peter Bartok  <pbartok@novell.com>
7027
7028         * Cursors.cs (ctor): Added ctor to fix signature
7029
7030 2005-01-18  Peter Bartok  <pbartok@novell.com>
7031
7032         * Button.cs: Implemented DoubleClick event
7033         * ButtonBase.cs:
7034           - Fixed keyboard handling to behave like MS, where the press of
7035             Spacebar is equivalent to a mousedown, and the key release is
7036             equivalent to mouseup. Now a spacebar push will give the same
7037             visual feedback like a mouse click.
7038           - Added missing attributes
7039           - Added ImeModeChanged event
7040           - Added support for generating DoubleClick event for derived classes
7041         * CheckBox.cs:
7042           - Implemented DoubleClick event
7043           - Added missing attributes
7044         * CommonDialog.cs: Added missing attribute
7045         * ContextMenu.cs: Added missing attributes
7046         * RadioButton.cs:
7047           - AutoChecked buttons do not allow to be unselected when clicked
7048             (otherwise we might end up with no selected buttons in a group)
7049           - Added missing attributes
7050           - Implemented DoubleClickEvent
7051         * ThreadExceptionDialog.cs: Enabled TextBox code
7052
7053 2005-01-18  Peter Bartok  <pbartok@novell.com>
7054
7055         * Form.cs: Removed debug output
7056         * Button.cs: Added support for DoubleClick method
7057
7058 2005-01-18  Peter Bartok  <pbartok@novell.com>
7059
7060         * Form.cs:
7061           - Added method to parent window that allows triggering size
7062             calculations when a menu is added/removed
7063           - set_Menu: Cleaned up mess from early days of Form and Control,
7064             now properly triggers a recalc when a menu is added/removed
7065           - Added case to select form itself as focused form if no child
7066             controls exist
7067           - Added PerformLayout call when showing dialog, to ensure properly
7068             placed controls
7069         * Control.cs:
7070           - Select(): Made internal so Form can access it
7071           - Focus(): Only call Xplat layer if required (avoids loop), and sets
7072             status
7073         * Application.cs (Run): Removed hack and calls PerformLayout instead
7074           to trigger calculation when Form becomes visible
7075
7076 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
7077
7078         * ComboBox.cs: fixes for ownerdraw
7079
7080 2005-01-18  Peter Bartok  <pbartok@novell.com>
7081
7082         * TextControl.cs:
7083           - Sentinel is no longer static, each Document gets it's own, this
7084             avoids locking or alternatively overwrite problems when more
7085             than one text control is used simultaneously.
7086           - Switched to use Hilight and HilightText brushes for text selection
7087
7088         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
7089
7090 2005-01-18  Peter Bartok  <pbartok@novell.com>
7091
7092         * Control.cs:
7093           - Hooked up the following events:
7094                 o ControlAdded
7095                 o ControlRemoved
7096                 o HandleDestroyed
7097                 o ImeModeChanged
7098                 o ParentChanged
7099                 o TabStopChanged
7100                 o Invalidated
7101                 o SystemColorsChanged
7102                 o ParentFontChanged
7103                 o Move
7104           - Removed debug output
7105           - Added a call to the current theme's ResetDefaults when a color change
7106             is detected
7107         * Form.cs: Now setting the proper ImeMode
7108         * Theme.cs: Defined a method to force recreation of cached resources
7109           and rereading of system defaults (ResetDefaults())
7110         * ThemeWin32Classic.cs: Added ResetDefaults() stub
7111
7112 2005-01-17  Peter Bartok  <pbartok@novell.com>
7113
7114         * Control.cs: Added missing attributes
7115
7116 2005-01-17  Jackson Harper  <jackson@ximian.com>
7117
7118         * TreeNode.cs: Implement editing. Add missing properties selected
7119         and visible.
7120         * TreeView.cs: Implement node editing. Also some fixes to use
7121         Invalidate (invalid area) instead of Refresh when selecting.
7122
7123 2005-01-17  Peter Bartok  <pbartok@novell.com>
7124
7125         * Control.cs:
7126           - Implemented InvokeGotFocus() method
7127           - Implemented InvokeLostFocus() method
7128           - Implemented InvokePaint() method
7129           - Implemented InvokePaintBackground() method
7130           - Implemented InvokeClick() method
7131           - Implemented FindForm() method
7132           - Implemented RectangleToClient() method
7133           - Implemented ClientToRectangle() method
7134           - Implemented ResetBackColor() method
7135           - Implemented ResetCursor() method
7136           - Implemented ResetFont() method
7137           - Implemented ResteForeColor() method
7138           - Implemented ResetImeMode() method
7139           - Implemented ResetLeftToRight() method
7140           - Implemented ResetText() method
7141           - Implemented Scale() methods
7142           - Implemented ScaleCore() method
7143           - Implemented Update() method
7144           - Removed unused variables
7145           - Stubbed AccessibilityNotifyClients and
7146             ControlAccessibleObject.NotifyClients() methods (dunno what to do
7147             with those yet)
7148           - Now setting proper default for RightToLeft property
7149           - Fixed bug in SetClientSizeCore that would cause windows to get
7150             really big
7151           - Now sending Click/DoubleClick events
7152           - Now selecting controls when left mouse button is clicked on
7153             selectable control
7154         * AccessibleEvents.cs: Added
7155         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
7156         * XplatUIOSX.cs: Stubbed UpdateWindow() method
7157         * XplatUIWin32.cs: Implemented UpdateWindow() method
7158         * XplatUIX11.cs: Implemented UpdateWindow() method
7159         * Form.cs: Removed stray semicolon causing CS0162 warning
7160         * ThemeWin32Classic.cs: Fixed unused variable warnings
7161         * ScrollableControl.cs: Now calls base method for ScaleCore
7162         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
7163           style to avoid interference with internal click handler (which is
7164           different than standard Control click handling)
7165         * RadioButton.cs:
7166           - Now unchecks all sibling radio buttons when control is
7167             selected (Fixes #68756)
7168           - Removed internal tabstop variable, using the one inherited from
7169             Control
7170
7171 2005-01-17  Jackson Harper  <jackson@ximian.com>
7172
7173         * NavigateEventArgs.cs: Fix base type.
7174         * LinkLabel.cs: Sig fix
7175         
7176 2005-01-17  Jackson Harper  <jackson@ximian.com>
7177
7178         * TreeView.cs: Only invalidate the effected nodes bounds when
7179         selecting nodes.
7180
7181 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
7182
7183         * XplatUIWin32.cs: fixes Win32 marshaling
7184         * XplatUIX11.cs: fixes method signature
7185
7186 2005-01-17  Peter Bartok  <pbartok@novell.com>
7187
7188         * XplatUIX11.cs: Clean up resources when we no longer need them
7189
7190 2005-01-17  Peter Bartok  <pbartok@novell.com>
7191
7192         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
7193           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
7194           and DestroyCursor() methods.
7195         * Cursor.cs: Partially implemented, now supports standard cursors;
7196           still contains some debug code
7197         * Cursors.cs: Implemented class
7198         * Control.cs:
7199           - WndProc(): Added handling of WM_SETCURSOR message, setting the
7200             appropriate cursor
7201           - Implemented Cursor property
7202           - Replaced break; with return; more straightforwar and possibly
7203             faster
7204           - Now properly setting the result for WM_HELP
7205         * X11Structs.cs: Added CursorFontShape enum
7206         * XplatUIStructs.cs:
7207           - Added StdCursor enum (to support DefineStdCursor() method)
7208           - Added HitTest enum (to support sending WM_SETCURSOR message)
7209         * XplatUIX11.cs:
7210           - Now sends the WM_SETCURSOR message
7211           - Implemented new cursor methods
7212         * XplatUIOSX.cs: Stubbed new cursor methods
7213         * XplatUIWin32.cs:
7214           - Implemented new cursor methods
7215           - Added GetSystemMetrics function and associated enumeration
7216
7217 2005-01-15  Peter Bartok  <pbartok@novell.com>
7218
7219         * Control.cs:
7220           - WndProc(): Now handles EnableNotifyMessage
7221           - SelectNextControl(): Fixed bug where if no child or sibling
7222             controls exist we looped endlessly
7223
7224 2005-01-14  Jackson Harper  <jackson@ximian.com>
7225
7226         * TreeView.cs: Recalculate the tab pages when a new one is added
7227         so that the proper bounding rects are created.
7228
7229 2005-01-14  Jackson Harper  <jackson@ximian.com>
7230
7231         * TreeView.cs: Draw a gray box instead of a grip in the lower
7232         right hand corner when there are both horizontal and vertical
7233         scroll bars.
7234
7235 2005-01-14  Jackson Harper  <jackson@ximian.com>
7236
7237         * Control.cs: When erasing backgrounds use FromHwnd instead of
7238         FromHdc when there is a NULL wparam. This occurs on the X driver.
7239         * XplatUIX11.cs: Set the wparam to NULL.
7240
7241 2005-01-13  Jackson Harper  <jackson@ximian.com>
7242
7243         * PictureBox.cs: Implement missing methods (except ToString, need
7244         to test that on windows) and events. When visibility is changed we
7245         need to redraw the image because the buffers are killed. When size
7246         is changed refresh if the sizemode needs it.
7247
7248 2005-01-13  Peter Bartok  <pbartok@novell.com>
7249
7250         * Control.cs (SelectNextControl): Was using wrong method to select
7251           a control
7252
7253 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
7254
7255         * ComboBox.cs: fixes dropstyle
7256
7257 2005-01-13  Peter Bartok  <pbartok@novell.com>
7258
7259         * Form.cs:
7260           - Implemented Select() override
7261           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
7262           - Now sets keyboard focus on startup
7263         * Control.cs (SelectNextControl): Now properly handles directed=true
7264         * TextBoxBase.cs:
7265           - WndProc: Now passes tab key on to base if AcceptTabChar=false
7266           - Added (really bad) focus rectangle (mostly for testing)
7267         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
7268           to enforce redraw on focus changes
7269         * ContainerControl.cs:
7270           - Fixed detection of Shift-Tab key presses
7271           - Fixed traversal with arrow keys
7272         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
7273           gonna keep this or if it's complete yet
7274         
7275 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
7276
7277         * ComboBox.cs: missing properties, fixes
7278
7279 2005-01-13  Peter Bartok  <pbartok@novell.com>
7280
7281         * Panel.cs (ctor): Setting Selectable window style to off
7282         * Splitter.cs (ctor): Setting Selectable window style to off
7283         * GroupBox.cs (ctor): Setting Selectable window style to off
7284         * Label.cs (ctor): Setting Selectable window style to off
7285
7286 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
7287
7288         * UpDownBase.cs (InitTimer): If the timer has been already
7289         created, enable it.
7290
7291         Use a TextBox instead of a Label.
7292
7293 2005-01-12  Jackson Harper  <jackson@ximian.com>
7294
7295         * TreeView.cs: Refresh the tree after sorting the nodes. Always
7296         draw the connecting node lines (when ShowLines is true).
7297         * TreeNode.cs: The nodes index can now be updated. This is used
7298         when a node collection is sorted.
7299         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
7300         insert or an existing unsorted node collection can be sorted.
7301         
7302 2005-01-12  Peter Bartok  <pbartok@novell.com>
7303
7304         * ContainerControl.cs: Implemented ProcessDialogKeys()
7305
7306 2005-01-12  Peter Bartok  <pbartok@novell.com>
7307
7308         * Control.cs:
7309           - Implemented SelectNextControl() method
7310           - Several focus related bug fixes
7311           - Fixed Docking calculations to match MS documentation and
7312             behaviour
7313
7314 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
7315
7316         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
7317         bug fixes
7318
7319 2005-01-12  Peter Bartok  <pbartok@novell.com>
7320
7321         * Control.cs:
7322           - Fixed broken Contains() method
7323           - Implemented GetNextControl() method. Finally. This is the pre-
7324             requisite for focus handling.
7325
7326 2005-01-12  Peter Bartok  <pbartok@novell.com>
7327
7328         * OSXStrucs.cs: Added
7329
7330 2005-01-12  Peter Bartok  <pbartok@novell.com>
7331
7332         * XplatUIWin32.cs:
7333           - Removed PeekMessageFlags
7334           - Implemented SetWindowStyle() method
7335         * XplatUIStructs.cs: Added PeekMessageFlags
7336         * X11Structs: Added missing border_width field to XWindowChanges struct
7337         * XplatUIX11.cs:
7338           - PeekMessage: Now throws exception if flags which are not yet
7339             supported are passed
7340           - Implemented SetWindowStyle() method
7341           - Fixed SetZOrder to handle AfterHwnd properly
7342         * XplatUI.cs: Added SetWindowStyle() method
7343         * XplatUIDriver.cs: Added SetWindowStyle() abstract
7344         * Control.cs:
7345           - Implemented UpdateStyles() method
7346           - Implemented UpdateZOrder() method
7347         * XplatUIOSX.cs: Added SetWindowStyle() stub
7348
7349 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
7350
7351         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
7352         button mouse).
7353
7354
7355 2005-01-11  Jackson Harper  <jackson@ximian.com>
7356
7357         * TreeView.cs: Still need to draw lines to siblings even if out of
7358         the current node is out of the clip.
7359
7360 2005-01-11  Jackson Harper  <jackson@ximian.com>
7361
7362         * TreeView.cs: When setting the hbar/vbar/grip position use
7363         SetBounds so that perform layout is only called once. Also suspend
7364         and resume layout so layout is only done once for all controls.
7365         - Removed some debug fluff
7366         * SizeGrip.cs: Call base implmentation in overriding methods.
7367         - When visibility is changed the drawing buffers are killed so we
7368         need to redraw.
7369
7370 2005-01-11  Jackson Harper  <jackson@ximian.com>
7371
7372         * TreeView.cs: Calculate the open node count while drawing. This
7373         saves us an entire tree traversal for every paint operation. Use
7374         a member var for the open node count so less vars are passed around.
7375
7376 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
7377
7378         * MonthCalendar.cs:
7379         - fixed selection to use mousemove, not mouse polling on timer
7380         * ThemeWin32Classic.cs
7381         - removed redundant unused variable "no_more_content"
7382         
7383 2005-01-11  Peter Bartok  <pbartok@novell.com>
7384
7385         * XplatUIX11.cs (DoEvents): Needs to return when no more events
7386           are pending, so it now calls PeekMessage instead of GetMessage;
7387           implemented a incomplete version of PeekMessage
7388         
7389 2005-01-11  Peter Bartok  <pbartok@novell.com>
7390
7391         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
7392           I18n issues
7393         * TextBoxBase.cs: Added sending of TextChanged event
7394
7395 2005-01-10  Jackson Harper  <jackson@ximian.com>
7396
7397         * TreeView.cs: Try not to draw outside the clipping rectangle on
7398         each node element.
7399
7400 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
7401
7402         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
7403
7404 2005-01-10  Jackson Harper  <jackson@ximian.com>
7405
7406         * TreeView.cs:
7407         - Implement fast scrolling. Now only the newly
7408         exposed nodes are drawn and the old image is moved using the
7409         XplatUI::ScrollWindow method.
7410         - Factor in height of nodes when calculating whether or not the
7411         node is in the clipping rect.
7412
7413 2005-01-10  Jackson Harper  <jackson@ximian.com>
7414
7415         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
7416
7417 2005-01-10  Peter Bartok  <pbartok@novell.com>
7418
7419         * Application.cs: Added temporary hack to resolve all our resize
7420           required issues on startup. This will get fixed properly at
7421           some point in the future
7422
7423 2005-01-10  Jackson Harper  <jackson@ximian.com>
7424
7425         * SizeGrip.cs: New internal class that is used as a sizing
7426         grip control...hence the name.
7427
7428 2005-01-10  Peter Bartok  <pbartok@novell.com>
7429
7430         * Control.cs: Implemented proper TabIndex handling, now assigning
7431           a tabindex when a control is added to a container
7432         * GroupBox.cs (ctor): Now sets the Container style bit, required
7433           for Control.GetNextControl()
7434
7435 2005-01-09  Jackson Harper  <jackson@ximian.com>
7436
7437         * TextBoxBase.cs: Clear window when scrolling (fixes build).
7438
7439 2005-01-09  Peter Bartok <pbartok@novell.com>
7440
7441         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
7442           XplatUIX11.cs: Added ability to control ScrollWindow expose and
7443           an overload for ScrollWindow to allow only scrolling a rectangle
7444
7445 2005-01-09  Peter Bartok <pbartok@novell.com>
7446
7447         * Form.cs:
7448           - Implemented SetDesktopBounds method
7449           - Implemented SetDesktopLocation method
7450
7451 2005-01-08  Jackson Harper  <jackson@ximian.com>
7452
7453         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
7454         the node count has changed, this removes to VScroll::Refresh calls
7455         when drawing.
7456
7457 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
7458
7459         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
7460
7461 2005-01-07  Jackson Harper  <jackson@ximian.com>
7462
7463         * TreeNode.cs: Just update the single node when it is
7464         checked. Don't refresh after toggling, the Expand/Collapse already
7465         handles this.
7466         * TreeView.cs: Respect clipping a little more when drawing. Try
7467         not to redraw things that don't need to be redrawn. Just hide the
7468         scrollbars when they are no longer needed instead of removing
7469         them, so they don't have to be created again and again.
7470         
7471 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
7472
7473         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
7474         coordinates to window space to place the caret properly, FIXED.
7475         Implement GetWindowState & SetWindowState
7476
7477 2005-01-06  Peter Bartok <pbartok@novell.com>
7478
7479         * Form.cs:
7480           - Implemented ClientSize property
7481           - Implemented DesktopBounds property
7482           - Implemented DesktopLocation property
7483           - Implemented IsRestrictedWindow property
7484           - Implemented Size property
7485           - Implemented TopLevel property
7486           - Implemented FormWindowState property
7487         * Control.cs:
7488           - Implemented GetTopLevel() method
7489           - Implemented SetTopLevel() method
7490         * X11Structs.cs (Atom):
7491           - Added AnyPropertyType definition
7492           - Added MapState definiton and updated XWindowAttribute struct
7493         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
7494         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
7495         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
7496         * XplatUIWin32.cs:
7497           - Implemented GetWindowState() and SetWindowState() methods
7498           - Fixed Win32GetWindowLong return type
7499         * XplatUIX11.cs:
7500           - Introduced central function for sending NET_WM messages
7501           - Implemented GetWindowState() and SetWindowState() methods
7502         * TextBoxBase.cs (set_Lines):
7503           - Now uses Foreground color for text added via Text property (Duh!)
7504           - Added code to remember programmatically requested size (fixes
7505             behaviour when Multiline is set after Size)
7506           - Added AutoSize logic
7507
7508 2005-01-06  Jackson Harper  <jackson@ximian.com>
7509
7510         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
7511
7512 2005-01-06  Jackson Harper  <jackson@ximian.com>
7513
7514         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
7515         set to less then 0.
7516
7517 2005-01-06  Jackson Harper  <jackson@ximian.com>
7518
7519         * ScrollableControl.cs: Lazy init the scrollbars.
7520         
7521 2005-01-06  Jackson Harper  <jackson@ximian.com>
7522
7523         * Theme.cs: Speed up getting pens and solid brushes, by using
7524         their ARGB as a hash instead of tostring and not calling Contains.
7525
7526 2005-01-06  Peter Bartok <pbartok@novell.com>
7527
7528         * Form.cs:
7529           - Implemented OnActivated and OnDeactivate event trigger
7530           - Implemented Activate() method
7531           - Fixed ShowDialog() to activate the form that was active before
7532             the dialog was shown
7533         * XplatUIX11.cs:
7534           - Added global active_window var that tracks the currently active
7535             X11 window
7536           - Now always grabs Property changes from the root window to always
7537             catch changes on the active window property
7538           - Added code to PropertyNotify handler to send Active/Inactive
7539             messages when state changes. This puts X11 and Win32 en par on
7540             WM_ACTIVATE notifications (except for double notifications when
7541             the user clicks away from our modal window to another one of our
7542             windows)
7543
7544 2005-01-05  Jackson Harper  <jackson@ximian.com>
7545
7546         * ImageList.cs: Implment ctor
7547
7548 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
7549
7550         * XplatUIOSX.cs: Implement Activate/SetTopmost
7551
7552 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
7553
7554         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
7555
7556 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
7557
7558         * XplatUIOSX.cs: Implement GetActive/SetFocus.
7559
7560 2005-01-05  Peter Bartok <pbartok@novell.com>
7561
7562         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
7563           XplatUIOSX.cs: Added GetActive method to return the currently
7564           active window for the application (or null, if none is active)
7565         * Form.cs:
7566           - Implemented ActiveForm
7567           - Commented out owner assignment for modal dialogs (causes problems
7568             on Win32, since the owner will be disabled)
7569           - Reworked some Active/Focus handling (still incomplete)
7570         * CommonDialog.cs: Commented out owner assignment for modal dialogs
7571           (causes problems on Win32, since the owner will be disabled)
7572         * IWin32Window: Added ComVisible attribute
7573
7574 2005-01-05  Peter Bartok <pbartok@novell.com>
7575
7576         * ToolTip.cs (WndProc): Enable setting focus now that we have the
7577           required XplatUI functions.
7578
7579 2005-01-05  Peter Bartok <pbartok@novell.com>
7580
7581         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
7582           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
7583           to implement focus and activation handling; still incomplete and
7584           with debug output
7585
7586 2005-01-04  Peter Bartok <pbartok@novell.com>
7587
7588         * TextBoxBase.cs: Changed access level for Document property to
7589           match switch to internal for TextControl
7590
7591 2005-01-04  Peter Bartok <pbartok@novell.com>
7592
7593         * AccessibleObject: Added ComVisible attribute
7594
7595 2005-01-04  Jackson Harper  <jackson@ximian.com>
7596
7597         * X11Keyboard.cs: Remove unneeded var.
7598
7599 2005-01-04  Jackson Harper  <jackson@ximian.com>
7600
7601         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
7602         but PAINT.
7603         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
7604         ClientMessage. This makes apps exit cleanly (more often).
7605         
7606 2005-01-04  Jackson Harper  <jackson@ximian.com>
7607
7608         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
7609         handling focus, return correct colors and fonts,
7610         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
7611         handle selection, horizontal scrolling, and mouse interaction.
7612
7613 2005-01-04  Peter Bartok <pbartok@novell.com>
7614
7615         * ICommandExecutor.cs: Added
7616         * IDataGridColumnStyleEditingNotificationService.cs: Added
7617         * IFeatureSupport.cs: Added
7618         * IFileReaderService.cs: Added
7619         * IDataObject.cs: Added ComVisible attribute
7620         * AmbientProperties.cs: Added
7621         * BaseCollection.cs: Added missing attributes
7622         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
7623         * BaseCollection.cs: Added missing attributes
7624         * Binding.cs: Added TypeConverter attribute
7625         * BindingContext.cs: Added DefaultEvent attribute
7626         * BindingsCollection.cs: Added DefaultEvent attribute
7627         * Button.cs: Added DefaultValue attribute
7628         * DragEventArgs.cs: Added ComVisible attribute
7629         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
7630         * KeyEventArgs.cs: Added ComVisible attribute
7631         * KeyPressEventArgs.cs: Added ComVisible attribute
7632         * MouseEventArgs.cs: Added ComVisible attribute
7633         * NavigateEventArgs.cs: Added
7634         * NavigateEventHandler.cs: Added
7635         * FeatureSupport.cs: Added
7636         * OSFeature.cs: Added
7637         * Theme.cs: Added abstract Version property to support OSFeature
7638         * ThemeWin32Classic.cs: Added Version property to
7639           support OSFeature.Themes
7640         * ProgressBar.cs: Removed OnPaintBackground override, not required since
7641           the proper styles to avoid background drawing are set, also doesn't
7642           match MS signature
7643         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
7644         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
7645         * ScrollEventArgs.cs: Added ComVisible attribute
7646         * SplitterEventArgs.cs: Added ComVisible attribute
7647         * AccessibleSelection.cs: Added Flags attribute
7648         * Appearance.cs: Added ComVisible attribute
7649         * Border3DSide.cs: Added ComVisible attribute
7650         * Border3DStyle.cs: Added ComVisible attribute
7651         * BorderStyle.cs: Added ComVisible attribute
7652         * DragAction.cs: Added ComVisible attribute
7653         * ErrorBlinkStyle.cs: Added
7654         * ScrollEventType.cs: Added ComVisible attribute
7655         * AnchorStyles.cs: Added Editor attribute
7656         * DockStyle.cs: Added Editor attribute
7657         * HorizontalAlignment.cs: Added ComVisible attribute
7658         * HelpEventArgs.cs: Added ComVisible attribute
7659         * PaintEventArgs.cs: Added IDisposable
7660
7661 2005-01-04  Peter Bartok <pbartok@novell.com>
7662
7663         * TextControl.cs: Switched Line, LineTag and Document classes to
7664           internal
7665
7666 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
7667
7668         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
7669         Simple mode, fixes, IntegralHeight, etc.
7670
7671 2005-01-04  Peter Bartok <pbartok@novell.com>
7672
7673         * TextBoxBase.cs: Using proper font variable now
7674
7675 2005-01-04  Peter Bartok <pbartok@novell.com>
7676
7677         * Form.cs (ShowDialog): Set parent to owner, if provided
7678         * GroupBox.cs: Removed unused vars
7679         * TextControl.cs:
7680           - Added GetHashCode() for Document and LineTag classes
7681           - Removed unused variables
7682           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
7683             to allow translation between continuous char position and line/pos
7684         * CheckBox.cs: Removed vars that are provided by base class
7685         * RadioButton.cs: Removed vars that are provided by base class, added
7686           new keyword where required
7687         * LinkLabel.cs: Added new keyword where required
7688         * Control.cs (WndProc): Removed unused variable
7689         * TextBoxBase.cs:
7690           - Finished SelectionLength property
7691           - Implemented SelectionStart property
7692           - Implemented Text property
7693           - Removed unused vars
7694         * MessageBox.cs: Added new keyword where required
7695         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
7696           WndProc signature
7697         * MenuAPI.cs: Added new keyword where required
7698         * ButtonBase.cs: Removed vars that are provided by base class, added
7699           new keyword where required
7700         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
7701           argument to double, to allow compiling with csc 2.0 (Atsushi ran
7702           into this)
7703         * Application.cs (Run): Now triggers the ThreadExit event
7704         * CommonDialog.cs: Added new keyword where required; now properly sets
7705           parent (owner) for dialog
7706         * XplatUIX11.cs: Commented out unused vars
7707         * StatusBar.cs: Fixed signature for Text property
7708         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
7709
7710 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
7711
7712         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
7713         TrackBar.cs, MonthCalendar.cs: remove unused vars
7714
7715 2005-01-03  Jackson Harper  <jackson@ximian.com>
7716
7717         * ThemeWin32Classic.cs:
7718         * X11Keyboard.cs: Remove unused vars.
7719
7720 2005-01-03  Peter Bartok  <pbartok@novell.com>
7721
7722         * TextBox.cs:
7723           - set_Text: Tied into TextControl
7724           - set_TextAlignment: Tied into TextControl
7725         * TextControl.cs:
7726           - Added alignment properties and implemented alignment handling
7727             and drawing (still has a bug, not generating proper expose events)
7728           - Added new Line() constructor to allow passing the line alignment
7729           - Fixed selection setting, properly handling end<start now
7730           - Added aligment considerations to RecalculateDocument()
7731         * TextBoxBase.cs:
7732           - Now properly enforces control height for single line controls
7733           - Added support for CharacterCasing
7734           - Added IsInputKey override
7735           - Fixed Keys.Enter logic
7736           - Added SetBoundsCore override
7737           - Fixed mouse selection handling
7738
7739 2005-01-03  Jackson Harper  <jackson@ximian.com>
7740
7741         * TreeView.cs:
7742           - Collapse and uncheck all nodes when CheckBoxes is disabled.
7743           - Checkboxes are always aligned to the bottom of the node,
7744           regardless of item height.
7745           - Use the node bounds to draw the text so we can center it when
7746           the item height is greater then the font height.
7747           - Node::Bounds are only the text part of the node.
7748         * TreeNode.cs: New method to combine collapsing and unchecking all
7749           nodes recursively.
7750
7751 2005-01-02  Jackson Harper  <jackson@ximian.com>
7752
7753         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
7754         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
7755         tree when a check is changed. TODO: Only refresh the checked node.
7756
7757 2004-12-30  Jackson Harper  <jackson@ximian.com>
7758
7759         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
7760         * TreeNode.cs: When collapsing make sure to never collapse the
7761         root node.
7762
7763 2004-12-29  Jackson Harper  <jackson@ximian.com>
7764
7765         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
7766         
7767 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
7768
7769         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
7770
7771 2004-12-28  Peter Bartok  <pbartok@novell.com>
7772
7773         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
7774           not yet assigned
7775
7776 2004-12-28  Peter Bartok  <pbartok@novell.com>
7777
7778         * Control.cs (WndProc): Added WM_HELP handler, now generates
7779           HelpRequested event
7780         * Form.cs: Added HelpButton property and required support code
7781         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
7782
7783 2004-12-28  Peter Bartok  <pbartok@novell.com>
7784
7785         * CommonDialog.cs:
7786           - Made DialogForm.owner variable internal
7787           - Added check to ensure owner form is set before setting
7788             owner properties in CreateParams
7789
7790 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
7791
7792         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
7793           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
7794           GetCursorPos.  Fix major visibility issues.  Rework the windowing
7795           system to support borderless/titleless windows (implements menus).
7796           Fix GetWindowPos.  Implement initial background color support for
7797           views.
7798
7799 2004-12-28  Peter Bartok  <pbartok@novell.com>
7800
7801         * Form.cs (get_CreateParams): Make sure we have an owner before using
7802           the owner variable. Implement proper default if no owner exists
7803
7804 2004-12-28  Peter Bartok  <pbartok@novell.com>
7805
7806         * In preparation for making Managed.Windows.Forms the default build target
7807           for System.Windows.Forms, the following stubbed files were added.
7808           Dialogs are currently being implemented by contributors and are only
7809           short-term place holders.
7810         * ColorDialog.cs: Initial check-in (minmal stub)
7811         * DataGrid.cs: Initial check-in (minimal stub)
7812         * DataGridLineStyle.cs: Initial check-in (minimal stub)
7813         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
7814         * DataGridTableStyle.cs: Initial check-in (minimal stub)
7815         * FontDialog.cs: Initial check-in (minimal stub)
7816         * FileDialog.cs: Initial check-in (minimal stub)
7817         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
7818         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
7819         * OpenFileDialog: Initial check-in (minimal stub)
7820         * IComponentEditorPageSite.cs: Initial check-in
7821         * Splitter.cs: Initial check-in (for Jackson)
7822         * SplitterEventArgs.cs: Initial check-in (for Jackson)
7823         * SplitterEventHandler.cs: Initial check-in (for Jackson)
7824         * TextBox.cs: Initial check-in; still needs some wiring to
7825           TextControl backend
7826         * Form.cs: Implemented ControlBox property
7827         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
7828         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
7829         * TextControl.cs: Added selection functionality; added todo header
7830         * TextBoxBase.cs:
7831           - Implemented Lines property
7832           - Implemented TextHeight property
7833           - Implemented SelectedText property
7834           - Implemented SelectionLength property
7835           - Implemented SelectAll method
7836           - Implemented ToString method
7837           - Removed and cleaned up some debug code
7838           - Implemented (still buggy) mouse text selection
7839
7840 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
7841
7842         * ComboBox.cs: Complete DropDownList implementation, fixes.
7843
7844 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
7845
7846         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
7847         * ComboBoxStyle.cs: ComboBoxStyle enum
7848         * ComboBox.cs: Initial work on ComboBox control
7849
7850 2004-12-21  Peter Bartok  <pbartok@novell.com>
7851
7852         * Control.cs (ctor, CreateParams): Moved setting of is_visible
7853           forward so that anything that creates a window gets the default,
7854           also no longer uses Visible property in CreateParams to avoid
7855           walking up the parent chain and possibly get the wrong visible
7856           status. Fixed IsVisible to no longer walk up to the parent.
7857
7858 2004-12-21  Peter Bartok  <pbartok@novell.com>
7859
7860         * Form.cs (ShowDialog): Unset modality for the proper window
7861  
7862 2004-12-20  Peter Bartok  <pbartok@novell.com>
7863
7864         * CommonDialog.cs: Initial check-in
7865
7866 2004-12-20  Peter Bartok  <pbartok@novell.com>
7867
7868         * Control.cs (Visible): Now uses the parent window instead of the
7869           client area window for the property
7870
7871         * Form.cs
7872           - ShowDialog(): Now uses the proper window for modality
7873           - The default visibility state for the form parent is now false. This
7874             will prevent the user from seeing all the changes to the form and
7875             its controls before the application hits Application.Run()
7876           - Removed some stale commented out code
7877
7878         * NativeWindow.cs:
7879           - Added FindWindow() method to have a method to check for existence
7880             of a window handle
7881           - Added ability to override default exception handling (for example
7882             when debugging with VS.Net; to do this the ExternalExceptionHandler
7883             define must be set
7884           - Removed some useless debug output
7885
7886         * XplatUIX11.cs:
7887           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
7888             not working as expected
7889           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
7890             property to allow switching back to the modal window if focus is
7891             given to another one of our windows (Application Modal)
7892           - Now only sets override_redirect if we create a window
7893             without WS_CAPTION
7894           - Moved EventMask selection before mapping of newly created window
7895             so we can catch the map event as well
7896           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
7897           - Added various Atom related DllImports
7898           - Implemented Exit() method
7899           - .ctor() : No longer shows window if WS_VISIBLE is not defined
7900             in the CreateParams
7901
7902         * MessageBox.cs: Now properly deals with the FormParent window by
7903           providing an override the FormParent CreateParams property to
7904           set as POPUP instead of OVERLAPPED window.
7905
7906 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
7907
7908         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
7909         Minor code cleanup.
7910
7911 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
7912         
7913         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
7914
7915 2004-12-18  Peter Bartok  <pbartok@novell.com>
7916
7917         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
7918           implementing SetModal() method
7919
7920 2004-12-18  Peter Bartok  <pbartok@novell.com>
7921
7922         * X11Structs.cs (XGCValues): Fixed type of function element
7923         * XplatUI.cs: Added ScrollWindow() method
7924         * XplatUIDriver.cs: Added ScrollWindow() abstract
7925         * XplatUIWin32.cs: Implemented ScrollWindow() method
7926         * XplatUIX11.cs: Implemented ScrollWindow() method
7927         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
7928
7929 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
7930
7931         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
7932         Some more keyboard support (INCOMPLETE)
7933
7934 2004-12-17  Peter Bartok  <pbartok@novell.com>
7935
7936         * TextControl.cs:
7937         - Added color attribute to line tags.
7938         - Added color argument to all functions dealing with tags
7939         - Added color argument support to various functions
7940         - Fixed miss-calculation of baseline/shift in certain circumstances
7941
7942         * TextBoxBase.cs: Added new color option to test code
7943
7944 2004-12-17  Jackson Harper  <jackson@ximian.com>
7945
7946         * TreeNode.cs:
7947         * MonthCalendar.cs: Signature fixes
7948
7949 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
7950
7951         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
7952         keyboard event moved it.  Create a new graphics context for each paint resolves this
7953
7954 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
7955
7956         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
7957         Make caret exist and go blink blink.  Initial keyboard support.
7958         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
7959         works.
7960
7961 2004-12-17  Jackson Harper  <jackson@ximian.com>
7962
7963         * XplatUIStructs.cs: Updated set of virtual keycodes.
7964         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
7965
7966 2004-12-17  Jackson Harper  <jackson@ximian.com>
7967
7968         * XplatUIX11.cs: Prune old keyboard code.
7969
7970 2004-12-17  Jackson Harper  <jackson@ximian.com>
7971
7972         * XplatUIX11.cs: When generating mouse wparams get the modifier
7973         keys from the ModifierKeys property.
7974
7975 2004-12-17  Jackson Harper  <jackson@ximian.com>
7976
7977         * X11Keyboard.cs: Send up/down input when generating
7978         messages. Remove some unused vars.
7979
7980 2004-12-17  Jackson Harper  <jackson@ximian.com>
7981
7982         * TabControl.cs:
7983         * TreeView.cs: get rid of warnings.
7984
7985 2004-12-17  Jackson Harper  <jackson@ximian.com>
7986
7987         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
7988
7989 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
7990
7991         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
7992           CheckedListBox.cs: Implementation
7993
7994 2004-12-17  Peter Bartok  <pbartok@novell.com>
7995
7996         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
7997
7998 2004-12-16  Peter Bartok  <pbartok@novell.com>
7999
8000         * TextControl.cs:
8001           - InsertCharAtCaret(): Fixed start pos fixup
8002           - CaretLine_get: No longer derives the line from the tag, the tag
8003             could be stale if lines in the document have been added or deleted
8004           - RebalanceAfterDelete(): Fixed bug in balancing code
8005           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
8006           - Line.Streamline(): Now can also elminate leading empty tags
8007           - DumpTree(): Added a few more tests and prevented exception on
8008             uninitialized data
8009           - Added Debug section for Combining lines
8010           - Delete(): Now copies all remaining properties of a line
8011           
8012         * TextBoxBase.cs:
8013           - Left mousebutton now sets the caret (and middle button still acts
8014             as formatting tester, which must go away soon)
8015           - Added Debug section for Deleting/Combining lines
8016           - Fixed calculations for UpdateView after Combining lines
8017
8018 2004-12-16  Peter Bartok  <pbartok@novell.com>
8019
8020         * TextControl.cs: Now properly aligns text on a baseline, using the
8021           new XplatUI.GetFontMetrics() method. Simplified several calculations
8022         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
8023           defined
8024
8025 2004-12-16  Peter Bartok  <pbartok@novell.com>
8026
8027         * XplatUI.cs: Added GetFontMetrics() method
8028         * XplatUIDriver.cs: Added GetFontMetrics() abstract
8029         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
8030           into libgdiplus, our private GetFontMetrics function
8031         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
8032         * XplatUIWin32.cs: Implemented GetFontMetrics() method
8033
8034 2004-12-16  Jackson Harper  <jackson@ximain.com>
8035
8036         * XplatUIStruct.cs: Add enum for dead keys
8037         * X11Keyboard.cs: Map and unmap dead keys.
8038
8039 2004-12-16  Jackson Harper  <jackson@ximian.com>
8040
8041         * X11Keyboard.cs: Detect and use the num lock mask.
8042
8043 2004-12-16  Peter Bartok  <pbartok@novell.com>
8044
8045         * Control.cs (CreateGraphics): Added check to make sure the
8046           handle of the window exists before calling Graphics.FromHwnd()
8047
8048 2004-12-16  Peter Bartok  <pbartok@novell.com>
8049
8050         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
8051           contains a lot of code that's not supposed to be there for the
8052           real thing, but required for developing/testing the textbox
8053           backend.
8054
8055 2004-12-16  Peter Bartok  <pbartok@novell.com>
8056
8057         * TextControl.cs:
8058         - Fixed Streamline method
8059         - Added FindTag method to Line
8060         - Added DumpTree method for debugging
8061         - Added DecrementLines() method for deleting lines
8062         - Fixed UpdateView to update the cursor to end-of-line on single-line
8063           updates
8064         - Added PositionCaret() method
8065         - Fixed MoveCaret(LineDown) to move into the last line, too
8066         - Added InsertChar overload
8067         - Fixed InsertChar tag offset calculations
8068         - Added DeleteChar() method
8069         - Added Combine() method for folding lines
8070         - Fixed Delete() method, no longer allocates wasted Line object and
8071           now copies all properties when swapping nodes
8072         - Delete() method now updates document line counter
8073
8074 2004-12-15  Jackson Harper  <jackson@ximian.com>
8075
8076         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
8077         * X11Keyboard.cs: Expose the currently selected modifier keys
8078         through a property.
8079
8080 2004-12-15  Peter Bartok  <pbartok@novell.com>
8081
8082         * TextControl.cs: Initial check-in. Still incomplete
8083
8084 2004-12-15  Jackson Harper  <jackson@ximian.com>
8085
8086         * TreeNode.cs:
8087         * TreeView.cs: Fix build on csc (second time today ;-))
8088
8089 2004-12-15  Jackson Harper  <jackson@ximian.com>
8090
8091         * TreeView.cs: Store the treenodes plus/minus box bounds when it
8092         is calculated and use this for click testing.
8093         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
8094
8095 2004-12-15  Jackson Harper  <jackson@ximian.com>
8096
8097         * TreeView.cs: Pass the nodes image index to the image list when
8098         drawing that image.
8099
8100 2004-12-15  Jackson Harper  <jackson@ximian.com>
8101
8102         * X11Keyboard.cs: Set messages hwnd.
8103         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
8104         post_message calls.
8105
8106 2004-12-15  Jackson Harper  <jackson@ximian.com>
8107
8108         * X11Keyboard.cs: Fix to compile with csc.
8109         
8110 2004-12-15  Jackson Harper  <jackson@ximian.com>
8111
8112         * X11Structs.cs: Add key mask values
8113         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
8114         * X11Keyboard.cs: New file - Extrapolates and interpolates key
8115         down/up foo into WM_CHAR foo
8116         * KeyboardLayouts.cs: Common keyboard layouts
8117         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
8118         post messages into the main queue.
8119
8120 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
8121
8122         * Button.cs: implement ProcessMnemonic
8123         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
8124           brushes everytime
8125         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
8126         * ButtonBase.cs: Show HotkeyPrefix (not the &)
8127
8128 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
8129         
8130         * MonthCalendar.cs: Implemented click-hold for next/previous month
8131           and date selection
8132           
8133 2004-12-11  Peter Bartok  <pbartok@novell.com>
8134
8135         * X11Structs.cs:
8136           - Added XKeyboardState (moved from XplatUIX11.cs)
8137           - Added XCreateGC related enums and structures
8138           - Added GXFunction for XSetFunction
8139
8140         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
8141
8142         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
8143           CaretVisible() calls
8144
8145         * ToolTip.cs: Added code to prevent stealing focus from app windows
8146
8147         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
8148           DestroyCaret, SetCaretPos and CaretVisible)
8149
8150         * XplatUIX11.cs:
8151           - Added implementation for caret functions
8152           - Moved hover variables into a struct, to make it a bit easier
8153             on the eyes and to debug
8154           - Removed XKeyboardState (moved to XplatUIX11.cs)
8155           - Moved Keyboard properties into the properties region
8156
8157         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
8158           call to get a graphics context for our control
8159
8160         * XplatUIOSX.cs: Added empty overrides for the new caret functions
8161
8162         * TreeView.cs: Fixed bug. No matter what color was set it would always
8163           return SystemColors.Window
8164
8165         * XplatUIWin32.cs: Implemented caret overrides
8166
8167 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
8168
8169         * ListBox.cs: fire events, implement missing methods and properties,
8170         sorting.
8171
8172 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
8173
8174         * MonthCalendar.cs: invalidation bug fixing
8175         * ThemeWin32Classic.cs: paint fixing
8176
8177 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
8178
8179         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
8180         prepare the CGContextRef there now.
8181
8182 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
8183
8184         * MonthCalendar.cs:
8185           - optimisationL only invalidate areas that have changed
8186         * ThemeWin32Classic.cs:
8187           - only paint parts that intersect with clip_area
8188
8189 2004-12-09  Peter Bartok  <pbartok@novell.com>
8190
8191         * Application.cs: Undid changes from r37004 which cause problems
8192         on X11
8193
8194 2004-12-09  Ravindra  <rkumar@novell.com>
8195
8196         * ToolBar.cs: Added support for displaying ContextMenu
8197         attached to a button on ToolBar.
8198         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
8199         property.
8200
8201 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
8202
8203         * Label.cs: autosize works in text change and removes unnecessary
8204         invalidate
8205
8206 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
8207
8208         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
8209         remove warnings
8210
8211 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
8212
8213         * XplatUIOSX.cs: Added mouse move/click/grab support
8214         Remove some debugging WriteLines not needed anymore.
8215         Add window resizing/positioning.
8216         Fix visibility on reparenting.
8217
8218 2004-12-08  Peter Bartok  <pbartok@novell.com>
8219
8220         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
8221
8222 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
8223
8224         * XplatUIOSX.cs: Initial checkin
8225         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
8226
8227 2004-12-03  Ravindra <rkumar@novell.com>
8228
8229         * ListView.cs: Added some keybindings and fixed scrolling.
8230         ScrollBars listen to ValueChanged event instead of Scroll
8231         Event. This would let us take care of all changes being
8232         done in the scrollbars' values programmatically or manually.
8233         * ListView.cs (CanMultiselect): Added a check for shift key.
8234         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
8235         * ListViewItem.cs (Clone): Fixed. We need to make a copy
8236         of ListViewSubItemCollection as well.
8237
8238 2004-12-06  Peter Bartok <pbartok@novell.com>
8239
8240         * Control.cs (Parent): Added check and exception to prevent
8241         circular parenting
8242
8243 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
8244
8245         * ListBox.cs: implemented clipping, selection single and multiple,
8246         bug fixing
8247
8248 2004-12-03  Ravindra <rkumar@novell.com>
8249
8250         * ListView.cs (ListView_KeyDown):
8251         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
8252         when CTRL key is pressed.
8253         * ListViewItem.cs (Selected): Fixed setting the property.
8254
8255 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
8256
8257         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
8258
8259         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
8260         MinimizeBox, ShowInTaskbar, TopMost properties.
8261
8262         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
8263         will be implemented).
8264
8265 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
8266
8267         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
8268
8269         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
8270         tests.
8271         
8272         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
8273         
8274         * TreeView.cs: BackColor is Colors.Window.
8275
8276 2004-12-01  Jackson Harper  <jackson@ximian.com>
8277
8278         * TreeView.cs: When resizing the tree if the user is making it
8279         smaller we don't get expose events, so we need to handle adding
8280         the horizontal scrollbar in the size changed handler as well as
8281         the expose handler.
8282
8283 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
8284
8285         * DrawItemState.cs: fixes wrong enum values
8286
8287 2004-12-01  Jackson Harper  <jackson@ximian.com>
8288
8289         * TreeView.cs: Resize the hbar as well as the vbar on resize.
8290
8291 2004-12-01  Jackson Harper  <jackson@ximian.com>
8292
8293         * NodeLabelEditEventArgs.cs:
8294         * NodeLabelEditEventHandler.cs:
8295         * OpenTreeNodeEnumerator.cs:
8296         * TreeNode.cs:
8297         * TreeNodeCollection.cs:
8298         * TreeView.cs:
8299         * TreeViewAction.cs:
8300         * TreeViewCancelEventArgs.cs:
8301         * TreeViewCancelEventHandler.cs:
8302         * TreeViewEventArgs.cs:
8303         * TreeViewEventHandler.cs: Initial implementation.
8304
8305 2004-12-01  Ravindra <rkumar@novell.com>
8306
8307         * ListView.cs (CalculateListView): Fixed scrolling related
8308         calculations. Also, removed some debug statements from other
8309         places.
8310         * ListViewItem.cs: Changed access to 'selected' instance variable
8311         from private to internal.
8312         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
8313
8314 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
8315
8316         * ThemeWin32Classic.cs: remove cache of brush and pens for
8317         specific controls and use the global system, fixes scrollbutton
8318         bugs (for small sizes, disabled, etc)
8319         
8320         * ScrollBar.cs: does not show the thumb for very small controls
8321         (as MS) and allow smaller buttons that the regular size
8322
8323 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
8324
8325         * UpDownBase.cs: Add abstract methods for the interface.
8326         Add new virtual methods (need to be hooked up to TextEntry when it
8327         exists).
8328         Add override methods for most features.
8329         Computes the size, forces the height of the text entry.
8330
8331         * NumericUpDown.cs: Put here the current testing code.
8332
8333         * Set eol-style property on all files that do not have mixed line
8334         endings, to minimize the future problems.  There are still a few
8335         files with mixed endings, and someone should choose whether they
8336         want to move it or not.
8337
8338 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
8339
8340         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
8341         System.Colors
8342         
8343 2004-11-30  Ravindra <rkumar@novell.com>
8344
8345         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
8346         drawing and replaced use of SystemColors by theme colors.
8347         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
8348         * ListView.cs (ListViewItemCollection.Add): Throw exception when
8349         same ListViewItem is being added more than once.
8350
8351 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
8352
8353         * MonthCalendar.cs:
8354           - ControlStyles love to make the control not flicker
8355           
8356 2004-11-30  Peter Bartok  <pbartok@novell.com>
8357
8358         * CharacterCasing.cs: Added
8359
8360 2004-11-29  Peter Bartok  <pbartok@novell.com>
8361
8362         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
8363           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
8364           I am removing these files as they conflict with already completed
8365           work. While it is fantastic to get contributions to MWF, I
8366           respectfully ask that everyone please coordinate their contributions
8367           through mono-winforms-list or #mono-winforms at this time. We're
8368           explicitly avoiding stubbing and don't want controls that don't have
8369           their basic functionality implemented in svn. Please also see
8370           http://www.mono-project.com/contributing/winforms.html
8371
8372
8373 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
8374
8375         * Application.cs (ModalRun): Don't hang after exit.
8376
8377         * Theme.cs: New TreeViewDefaultSize property.
8378
8379         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
8380         with less hardcoded SystemColors constant.
8381         Implemented TreeViewDefaultSize.
8382
8383         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
8384         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
8385
8386
8387 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
8388
8389         * MonthCalendar.cs:
8390           - Fix NextMonthDate and PrevMonthDate click moving calendar
8391
8392 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
8393
8394         * MonthCalendar.cs:
8395           - Fix usage of ScrollChange Property when scrolling months
8396
8397 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
8398
8399         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
8400          - Fixes menu destroying
8401          - Support adding and removing items on already created menus
8402
8403 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
8404
8405         * MonthCalendar.cs:
8406           - Re-worked all bolded dates handling to match win32
8407         * ThemeWin32Classic.cs:
8408           - Fixed rendering with bolded dates
8409
8410 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
8411
8412         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
8413         - Horizontal scroolbar
8414         - Multicolumn
8415         - Fixes
8416
8417
8418 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
8419
8420         * MonthCalendar.cs:
8421           - Fix Usage of MaxSelectionCount from SelectionRange
8422           - Fixed Shift + Cursor Selection
8423           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
8424           - Fixed normal cursor selection to be compat with win32
8425           - Fixed Shift + Mouse Click selection
8426
8427 2004-11-24  Peter Bartok <pbartok@novell.com>
8428
8429         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
8430         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
8431         * XplatUIX11.cs:
8432           - CreatedKeyBoardMsg now updates keystate with Alt key
8433           - Added workaround for timer crash to CheckTimers, Jackson will
8434             develop a proper fix and check in later
8435           - Implemented DispatchMessage
8436           - Removed calling the native window proc from GetMessage (call
8437             now moved to DispatchMessage)
8438
8439         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
8440           the keydata (Fixes bug #69831)
8441
8442         * XplatUIWin32.cs:
8443           - (DispatchMessage): Switched to return IntPtr
8444           - Added DllImport for SetFocus
8445
8446 2004-11-24  Ravindra <rkumar@novell.com>
8447
8448         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
8449         background drawing.
8450         * ListViewItem.cs: Fixed various properties, calculations
8451         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
8452         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
8453         and some internal properties. Fixed MouseDown handler and Paint
8454         method.
8455
8456 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
8457
8458         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
8459
8460 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
8461
8462         * ContainerControl.cs: correct accidental check in of local changes
8463
8464 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
8465
8466         * ThemeWin32Classic.cs:
8467                 - Fixed Drawing Last month in grid (sometimes not showing)
8468         * MonthCalendar.cs:
8469                 - Fixed title width calculation bug (makeing title small)
8470
8471 2004-11-23  Peter Bartok <pbartok@novell.com>
8472
8473         * XplatUIX11.cs:
8474           - Added generation of WM_MOUSEHOVER event
8475           - Added missing assignment of async_method atom
8476           - Fixed WM_ERASEBKGND; now only redraws the exposed area
8477
8478 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
8479
8480         * ThemeWin32Classic.cs:
8481                 - Fixed Drawing of today circle when showtodaycircle not set
8482                 - fixed drawing of first and last month in the grid (gay dates)
8483         * MonthCalendar.cs:
8484                 - Fixed Drawing of today circle
8485                 - Fixed drawing of grady dates
8486                 - Fixed HitTest for today link when ShowToday set to false
8487                 - Fixed DefaultSize to obey ShowToday
8488
8489 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
8490
8491         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
8492         * System.Windows.Forms/Theme.cs
8493         * MonthCalendar.cs: added for MonthCalendar
8494         * SelectionRange.cs: added for MonthCalendar
8495         * Day.cs: added for MonthCalendar: added for MonthCalendar
8496         * DateRangeEventArgs.cs: added for MonthCalendar
8497         * DateRangeEventHandler.cs: added for MonthCalendar
8498
8499 2004-11-22  Ravindra <rkumar@novell.com>
8500
8501         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
8502         property.
8503
8504 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
8505
8506         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
8507         event handler.
8508         
8509         * NumericUpDown.cs: Added new implementation.
8510         * UpDownBase.cs: Added new implementation.
8511
8512         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
8513         implementations.
8514         
8515         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
8516         implementations.
8517
8518         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
8519         methods.
8520
8521 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
8522
8523         * Timer.cs  (Dispose): Should call the base dispose when
8524         overriding.
8525
8526 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
8527
8528         * ScrollBar.cs: updates thumb position when max, min or increment
8529         is changed
8530
8531 2004-11-21  Ravindra <rkumar@novell.com>
8532
8533         * ListView.cs: Implemented item selection, activation and
8534         column header style. Fixed properties to do a redraw, if
8535         required. Added support for MouseHover, DoubleClick, KeyDown
8536         and KeyUp event handling and some minor fixes.
8537         * ListViewItem.cs: Fixed constructor.
8538         * ThemeWin32Classic.cs: Improved drawing for ListView.
8539
8540 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
8541
8542         * ThemeWin32Classic.cs: initial listbox drawing code
8543         * DrawMode.cs: new enumerator
8544         * ListControl.cs: stubbed class
8545         * ListBox.cs: initial implementation
8546         * Theme.cs: new methods definitions
8547         * SelectionMode.cs: new enumerator
8548
8549 2004-11-17  Peter Bartok  <pbartok@novell.com>
8550
8551         * XplatUIWin32.cs: Added double-click events to the class style
8552         * Control.cs (WndProc):
8553           - Added handling of click-count to MouseDown/ MouseUp events.
8554           - Added handling of middle and right mouse buttons
8555           - Removed old debug code
8556
8557 2004-11-17  Jackson Harper  <jackson@ximian.com>
8558
8559         * XplatUIX11.cs: Use the new Mono.Unix namespace.
8560
8561 2004-11-17  Ravindra <rkumar@novell.com>
8562
8563         * ListView.cs: Added event handling for MouseMove/Up/Down.
8564         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
8565         * ThemeWin32Classic.cs: We need to clear the graphics context and
8566         draw column header in a proper state.
8567
8568
8569 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
8570
8571         *  Menu.cs: fixes signature
8572
8573 2004-11-16  Peter Bartok  <pbartok@novell.com>
8574
8575         * XplatUIX11.cs (GetMessage): Implemented generation of
8576           double click mouse messages
8577
8578 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
8579
8580         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
8581         not by menu
8582
8583 2004-11-11  Peter Bartok  <pbartok@novell.com>
8584
8585         * HandleData.cs: Added Visible property
8586         * XplatUIX11.cs (IsVisible): Now uses Visible property from
8587           HandleData
8588         * XplatUIX11.cs: Removed old debug leftovers
8589         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
8590         * Control.cs (WndProc): Removed old debug leftovers,
8591           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
8592           needed WM_SIZE handling
8593
8594 2004-11-11  Jackson Harper  <jackson@ximian.com>
8595
8596         * OwnerDrawPropertyBag.cs:
8597         * TreeViewImageIndexConverter.cs: Initial implementation
8598
8599 2004-11-10  Jackson Harper  <jackson@ximian.com>
8600
8601         * ThemeWin32Classic.cs:
8602         * TabControl.cs: instead of moving tabs by the slider pos just
8603         start drawing at the tab that is offset by the slider. This way
8604         scrolling always moves by exactly one tab.
8605
8606 2004-11-10  Jackson Harper  <jackson@ximian.com>
8607
8608         * TabControl.cs: You can only scroll left when the slider has
8609         already ben moved right.
8610         
8611 2004-11-10  Jackson Harper  <jackson@ximian.com>
8612
8613         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
8614         the clip area.
8615         
8616 2004-11-10  Jackson Harper  <jackson@ximian.com>
8617
8618         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
8619         clip area.
8620         
8621 2004-11-09  Jackson Harper  <jackson@ximian.com>
8622
8623         * TabControl.cs (CalcXPos): New helper method so we can determine
8624         the proper place to start drawing vertical tabs.
8625         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
8626         
8627 2004-11-09  Jackson Harper  <jackson@ximian.com>
8628
8629         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
8630         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
8631         and Bottom, left and right are illegal values for this and
8632         multiline is enabled when the alignment is set to left or right.
8633         (DrawTab): Each alignment block should draw the text itself now
8634         because Left requires special love. Also add rendering for Left
8635         aligned tabs.
8636         
8637 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
8638
8639         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
8640         does not destroy the windows, removes debugging messages
8641
8642 2004-11-09  jba  <jba-mono@optusnet.com.au>
8643
8644         * ThemeWin32Classic.cs
8645         (DrawButtonBase): Fix verticle text rect clipping in windows
8646         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
8647         rendering and incorrect text rect clipping
8648         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
8649         rendering and incorrect text rect clipping
8650         
8651 2004-11-08  Jackson Harper  <jackson@ximian.com>
8652
8653         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
8654         bottom when they are bottom aligned so the bottoms of the tabs get
8655         displayed.
8656         * TabControl.cs (DropRow): Move rows up instead of down when the
8657         tab control is bottom aligned.
8658
8659 2004-11-08 13:59  pbartok
8660
8661         * XplatUIX11.cs:
8662           - Added handling for various window styles
8663           - Added handling for popup windows
8664           - Added SetTopmost handling
8665
8666 2004-11-08 13:55  pbartok
8667
8668         * XplatUIWin32.cs:
8669           - Added argument to SetTopmost method
8670           - Fixed broken ClientToScreen function
8671
8672 2004-11-08 13:53  pbartok
8673
8674         * XplatUIStructs.cs:
8675           - Added missing WS_EX styles
8676
8677 2004-11-08 13:53  pbartok
8678
8679         * XplatUI.cs, XplatUIDriver.cs:
8680           - Added argument to SetTopmost
8681
8682 2004-11-08 13:52  pbartok
8683
8684         * X11Structs.cs:
8685           - Added XSetWindowAttributes structure
8686           - Improved XWindowAttributes structure
8687           - Added SetWindowValuemask enum
8688           - Added window creation arguments enum
8689           - Added gravity enum
8690           - Added Motif hints structure
8691           - Added various Motif flags and enums
8692           - Added PropertyMode enum for property functions
8693
8694 2004-11-08 13:50  pbartok
8695
8696         * Form.cs:
8697           - Fixed arguments for updated SetTopmost method
8698
8699 2004-11-08 13:49  pbartok
8700
8701         * ToolTip.cs:
8702           - Fixed arguments for updated SetTopmost function
8703           - Fixed usage of PointToClient
8704
8705 2004-11-08 13:44  pbartok
8706
8707         * MenuAPI.cs:
8708           - Added Clipping of children and siblings
8709
8710 2004-11-08 13:41  pbartok
8711
8712         * MainMenu.cs:
8713           - Removed SetMenuBarWindow call. We do this in Form.cs
8714
8715 2004-11-08 13:40  jackson
8716
8717         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
8718           scrolling jimmi in the correct location with bottom aligned tabs
8719
8720 2004-11-08 13:36  pbartok
8721
8722         * ContainerControl.cs:
8723           - Implemented BindingContext
8724           - Implemented ParentForm
8725
8726 2004-11-08 12:46  jackson
8727
8728         * TabControl.cs: Put bottom rendered tabs in the right location
8729
8730 2004-11-08 07:15  jordi
8731
8732         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
8733           removes dead code
8734
8735 2004-11-05 17:30  jackson
8736
8737         * TabControl.cs: When selected tabs are expanded make sure they
8738           don't go beyond the edges of the tab control
8739
8740 2004-11-05 14:57  jackson
8741
8742         * TabControl.cs: Reset show_slider so if the control is resized to
8743           a size where it is no longer needed it's not displayed anymore
8744
8745 2004-11-05 13:16  jackson
8746
8747         * TabControl.cs: Make tab pages non visible when added to the
8748           control
8749
8750 2004-11-05 12:42  jackson
8751
8752         * TabControl.cs: Implement SizeMode.FillToRight
8753
8754 2004-11-05 12:16  jackson
8755
8756         * Control.cs: Do not call CreateHandle if the handle is already
8757           created
8758
8759 2004-11-05 11:46  jackson
8760
8761         * TabControl.cs: Remove superflous call to CalcTabRows
8762
8763 2004-11-05 09:07  jackson
8764
8765         * XplatUIX11.cs: Update for Mono.Posix changes
8766
8767 2004-11-05 07:00  ravindra
8768
8769         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
8770           scrolling.
8771
8772 2004-11-04 22:47  jba
8773
8774         * ThemeWin32Classic.cs:
8775           - Fix Button rendering for FlatStyle = Flat or Popup
8776           - Fix RadioButton and CheckBox rendering when Appearance = Button
8777             (normal and flatstyle).
8778           - Correct outer rectangle color when drawing focus rectangle
8779           - Adjust button bounds to be 1 px smaller when focused
8780           - Make button not draw sunken 3d border when pushed (windows compat)
8781           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
8782           - Offset the text in RadioButton and Checkbox when being rendered as
8783           a button.
8784           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
8785           radiobuttons
8786           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
8787           - Fixed disabled text rendering for normally rendered radiobuttons
8788
8789 2004-11-04 10:26  jackson
8790
8791         * TabControl.cs: Recalculate tab rows when resizing
8792
8793 2004-11-04 07:47  jordi
8794
8795         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
8796           collection completion, drawing issues, missing features
8797
8798 2004-11-04 05:03  ravindra
8799
8800         * ScrollBar.cs:
8801                 - We need to recalculate the Thumb area when
8802                 LargeChange/maximum/minimum values are changed.
8803           - We set the 'pos' in UpdatePos() method to minimum, if it's less
8804                 than minimum. This is required to handle the case if large_change is
8805                 more than max, and use LargeChange property instead of large_change
8806                 variable.
8807           - We return max+1 when large_change is more than max, like MS does.
8808
8809 2004-11-04 04:29  ravindra
8810
8811         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
8812                 - Changed default value signatures (prefixed all with ListView).
8813                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
8814                 ListView.
8815           - Fixed calculations for ListViewItem and implemented Clone()
8816           method.
8817
8818 2004-11-04 04:26  ravindra
8819
8820         * Theme.cs, ThemeWin32Classic.cs:
8821                 - Changed default ListView values signatures (prefixed all with
8822                 ListView).
8823           - Fixed default size values for VScrollBar and HScrollBar.
8824                 - Fixed DrawListViewItem method.
8825
8826 2004-11-04 04:05  ravindra
8827
8828         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
8829
8830 2004-11-04 04:04  ravindra
8831
8832         * ImageList.cs: Implemented the missing overload for Draw method.
8833
8834 2004-11-03 19:29  jackson
8835
8836         * TabControl.cs: Handle dropping rows on selection properly
8837
8838 2004-11-03 11:59  jackson
8839
8840         * TabControl.cs: remove debug code
8841
8842 2004-11-03 11:52  jackson
8843
8844         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
8845           the scrolly widgerywoo
8846
8847 2004-11-02 13:52  jackson
8848
8849         * TabControl.cs: Resize the tab pages and tabs when the tab control
8850           is resized
8851
8852 2004-11-02 13:40  jackson
8853
8854         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
8855           selected tab to the bottom
8856
8857 2004-11-02 13:39  jackson
8858
8859         * TabPage.cs: Store the tab pages row
8860
8861 2004-11-02 12:33  jordi
8862
8863         * MenuItem.cs: fixes handle creation
8864
8865 2004-11-02 11:42  jackson
8866
8867         * TabControl.cs: signature fix
8868
8869 2004-11-02 08:56  jackson
8870
8871         * TabControl.cs: Calculate whether the tab is on an edge properly.
8872           Remove top secret debugging code
8873
8874 2004-11-01 19:57  jackson
8875
8876         * TabControl.cs: Add click handling, and proper sizing
8877
8878 2004-11-01 19:47  jackson
8879
8880         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
8881           tab controls
8882
8883 2004-11-01 19:39  jackson
8884
8885         * TabPage.cs: add internal property to store the bounds of a tab
8886           page
8887
8888 2004-10-30 04:23  ravindra
8889
8890         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
8891           values.
8892
8893 2004-10-30 04:21  ravindra
8894
8895         * ListView.cs, ListViewItem.cs: Added support for scrolling and
8896           fixed calculations.
8897
8898 2004-10-30 03:06  pbartok
8899
8900         * XplatUIX11.cs:
8901           - Removed extension of DllImported libs
8902
8903 2004-10-29 09:55  jordi
8904
8905         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
8906           navigation, itemcollection completion, menu fixes
8907
8908 2004-10-27 22:58  pbartok
8909
8910         * XplatUIX11.cs:
8911           - Now throws a nice error message when no X display could be opened
8912
8913 2004-10-26 13:51  jordi
8914
8915         * ListView.cs: removes warning
8916
8917 2004-10-26 03:55  ravindra
8918
8919         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
8920           ThemeWin32Classic.cs: Some formatting for my last checkins.
8921
8922 2004-10-26 03:36  ravindra
8923
8924         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
8925           control and default values.
8926
8927 2004-10-26 03:35  ravindra
8928
8929         * Theme.cs: Added some default values for ListView control.
8930
8931 2004-10-26 03:33  ravindra
8932
8933         * ToolBar.cs: ToolBar should use the user specified button size, if
8934           there is any. Added a size_specified flag for the same.
8935
8936 2004-10-26 03:33  ravindra
8937
8938         * ColumnHeader.cs: Added some internal members and calculations for
8939           ColumnHeader.
8940
8941 2004-10-26 03:32  ravindra
8942
8943         * ListViewItem.cs: Calculations for ListViewItem.
8944
8945 2004-10-26 03:31  ravindra
8946
8947         * ListView.cs: Added some internal members and calculations for
8948           ListView.
8949
8950 2004-10-22 13:31  jordi
8951
8952         * MenuAPI.cs: speedup menus drawing
8953
8954 2004-10-22 13:16  jackson
8955
8956         * XplatUIX11.cs: Make sure to update exposed regions when adding an
8957           expose event
8958
8959 2004-10-22 11:49  jackson
8960
8961         * Control.cs: oops
8962
8963 2004-10-22 11:41  jackson
8964
8965         * Control.cs: Check to see if the window should have its background
8966           repainted by X when drawing.
8967
8968 2004-10-22 11:31  jackson
8969
8970         * XplatUIX11.cs: When invalidating areas only use XClearArea if
8971           clear is true, this way we do not get flicker from X repainting the
8972           background
8973
8974 2004-10-22 11:28  jackson
8975
8976         * XEventQueue.cs: Queue properly
8977
8978 2004-10-21 09:38  jackson
8979
8980         * XEventQueue.cs: Fix access modifier
8981
8982 2004-10-21 09:36  jackson
8983
8984         * XEventQueue.cs: Don't loose messages
8985
8986 2004-10-21 09:22  jackson
8987
8988         * XEventQueue.cs: Don't loose messages
8989
8990 2004-10-20 04:15  jordi
8991
8992         * BootMode.cs: enum need it by SystemInfo
8993
8994 2004-10-19 21:58  pbartok
8995
8996         * XplatUIWin32.cs:
8997           - Small sanity check
8998
8999 2004-10-19 21:56  pbartok
9000
9001         * Form.cs:
9002           - Added private FormParentWindow class which acts as the container
9003             for our form and as the non-client area where menus are drawn
9004           - Added/Moved required tie-ins to Jordi's menus
9005           - Fixed/Implemented the FormStartPosition functionality
9006
9007 2004-10-19 21:52  pbartok
9008
9009         * Control.cs:
9010           - Removed unneeded locals
9011           - Added code to all size and location properties to understand and
9012             deal with the parent container of Form
9013
9014 2004-10-19 21:33  pbartok
9015
9016         * Application.cs:
9017           - Fixed to deal with new Form subclasses for menus
9018
9019 2004-10-19 17:48  jackson
9020
9021         * XEventQueue.cs: commit correct version of file
9022
9023 2004-10-19 16:50  jackson
9024
9025         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
9026
9027 2004-10-19 16:15  jordi
9028
9029         * MenuAPI.cs: MenuBarCalcSize returns the height
9030
9031 2004-10-19 08:31  pbartok
9032
9033         * Control.cs:
9034           - Added missing call to PreProcessMessage before calling OnXXXKey
9035           methods
9036
9037 2004-10-19 00:04  ravindra
9038
9039         * ToolTip.cs: Fixed constructor.
9040
9041 2004-10-18 09:31  jordi
9042
9043         * MenuAPI.cs: menuitems in menubars do not have shortcuts
9044
9045 2004-10-18 09:26  jordi
9046
9047         * MenuItem.cs: fixes MenuItem class signature
9048
9049 2004-10-18 08:56  jordi
9050
9051         * MenuAPI.cs: prevents windows from showing in the taskbar
9052
9053 2004-10-18 00:28  ravindra
9054
9055         * ToolTip.cs: Suppressed a warning message.
9056
9057 2004-10-18 00:27  ravindra
9058
9059         * Control.cs: Default value of visible property must be true.
9060
9061 2004-10-17 23:19  pbartok
9062
9063         * ToolTip.cs:
9064           - Complete implementation
9065
9066 2004-10-17 23:19  pbartok
9067
9068         * XplatUIX11.cs:
9069           - Added EnableWindow method
9070           - Added SetModal stub
9071           - Added generation of WM_ACTIVATE message (still needs testing)
9072           - Added SetTopMost stub
9073           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
9074
9075 2004-10-17 23:17  pbartok
9076
9077         * XplatUIWin32.cs:
9078           - Removed VirtualKeys to XplatUIStructs
9079           - Implemented SetTopMost method
9080           - Implemented EnableWindow method
9081           - Bugfix in ScreenToClient()
9082           - Bugfixes in ClientToScreen()
9083
9084 2004-10-17 22:51  pbartok
9085
9086         * XplatUIStructs.cs:
9087           - Added WS_EX styles to WindowStyles enumeration
9088
9089 2004-10-17 22:50  pbartok
9090
9091         * XplatUI.cs, XplatUIDriver.cs:
9092           - Added method for enabling/disabling windows
9093           - Added method for setting window modality
9094           - Added method for setting topmost window
9095
9096 2004-10-17 22:49  pbartok
9097
9098         * ThemeWin32Classic.cs:
9099           - Added ToolTip drawing code
9100
9101 2004-10-17 22:49  pbartok
9102
9103         * Theme.cs:
9104           - Added ToolTip abstracts
9105
9106 2004-10-17 22:47  pbartok
9107
9108         * Form.cs:
9109           - Fixed Form.ControlCollection to handle owner relations
9110           - Added Owner/OwnedForms handling
9111           - Implemented Z-Ordering for owned forms
9112           - Removed unneeded private overload of ShowDialog
9113           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
9114             so I hope)
9115           - Fixed Close(), had wrong default
9116           - Added firing of OnLoad event
9117           - Added some commented out debug code for Ownership handling
9118
9119 2004-10-17 22:16  pbartok
9120
9121         * Control.cs:
9122           - Fixed/implemented flat list of controls
9123
9124 2004-10-17 22:14  pbartok
9125
9126         * Application.cs:
9127           - Added code to simulate modal dialogs on Win32
9128
9129 2004-10-17 16:11  jordi
9130
9131         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
9132           mouse event
9133
9134 2004-10-17 13:39  jordi
9135
9136         * MenuAPI.cs: menu drawing fixes
9137
9138 2004-10-15 09:10  ravindra
9139
9140         * StructFormat.cs: General Enum.
9141
9142 2004-10-15 09:09  ravindra
9143
9144         * SizeGripStyle.cs: Enum for Form.
9145
9146 2004-10-15 09:08  ravindra
9147
9148         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
9149           in Theme for ListView.
9150
9151 2004-10-15 09:06  ravindra
9152
9153         * ColumnHeader.cs: Flushing some formatting changes.
9154
9155 2004-10-15 09:05  ravindra
9156
9157         * ListViewItem.cs: Implemented GetBounds method and fixed coding
9158           style.
9159
9160 2004-10-15 09:03  ravindra
9161
9162         * ListView.cs: Implemented Paint method and fixed coding style.
9163
9164 2004-10-15 07:34  jordi
9165
9166         * MenuAPI.cs: fix for X11
9167
9168 2004-10-15 07:32  ravindra
9169
9170         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
9171                 - Renamed Paint() method to Draw() for clarity. Also, moved
9172                 DrawImage() to OnPaint().
9173
9174 2004-10-15 07:25  ravindra
9175
9176         * CheckBox.cs, RadioButton.cs:
9177                 - Removed Redraw (), we get it from ButtonBase.
9178                 - Implemented Paint (), to do class specific painting.
9179
9180 2004-10-15 07:16  ravindra
9181
9182         * ButtonBase.cs:
9183                 - Redraw () is not virtual now.
9184                 - Added an internal virtual method Paint (), so that
9185                 derived classes can do their painting on their own.
9186                 - Modified OnPaint () to call Paint ().
9187
9188 2004-10-15 06:43  jordi
9189
9190         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
9191           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
9192
9193 2004-10-15 00:30  ravindra
9194
9195         * MessageBox.cs:
9196                 - MessageBox on windows does not have min/max buttons.
9197                 This change in CreateParams fixes this on Windows. We
9198                 still need to implement this windowstyle behavior in
9199                 our X11 driver.
9200
9201 2004-10-14 05:14  ravindra
9202
9203         * ToolBar.cs:
9204                 - Changed Redraw () to do a Refresh () always.
9205                 - Fixed the MouseMove event handling when mouse is pressed,
9206                 ie drag event handling.
9207                 - Replaced the usage of ToolBarButton.Pressed property to
9208                 ToolBarButton.pressed internal variable.
9209
9210 2004-10-14 05:10  ravindra
9211
9212         * ToolBarButton.cs:
9213                 - Added an internal member 'inside' to handle mouse move
9214                 with mouse pressed ie mouse drag event.
9215                 - Changed 'Pressed' property to return true only when
9216                 'inside' and 'pressed' are both true.
9217                 - Some coding style love.
9218
9219 2004-10-14 00:17  ravindra
9220
9221         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
9222           public method.
9223
9224 2004-10-14 00:15  ravindra
9225
9226         * ButtonBase.cs: Redraw () related improvements.
9227
9228 2004-10-14 00:14  ravindra
9229
9230         * MessageBox.cs: Moved InitFormSize () out of Paint method and
9231           removed unnecessary calls to Button.Show () method.
9232
9233 2004-10-13 17:50  pbartok
9234
9235         * XplatUIX11.cs:
9236           - Formatting fix
9237           - Removed destroying of window until we solve the problem of X
9238             destroying the window before us on shutdown
9239
9240 2004-10-13 16:32  pbartok
9241
9242         * ButtonBase.cs:
9243           - Now Redraws on MouseUp for FlatStyle Flat and Popup
9244
9245 2004-10-13 14:18  pbartok
9246
9247         * XplatUIX11.cs:
9248           - Added code to destroy the X window
9249
9250 2004-10-13 14:18  pbartok
9251
9252         * XplatUIWin32.cs:
9253           - Added code to destroy a window
9254
9255 2004-10-13 14:12  pbartok
9256
9257         * ButtonBase.cs:
9258           - Added the Redraw on Resize that got dropped in the last rev
9259
9260 2004-10-13 09:06  pbartok
9261
9262         * ThemeWin32Classic.cs:
9263           - Path from John BouAntoun:
9264             * Fix check rendering (centre correctly for normal style, offset
9265               correctly for FlatStyle).
9266             * Fix border color usage (use backcolor) for FlatStyle.Popup
9267             * Use checkbox.Capture instead of checkbox.is_pressed when
9268               rendering flatstyle states.
9269
9270 2004-10-12 21:48  pbartok
9271
9272         * ThemeWin32Classic.cs:
9273           - Removed all occurences of SystemColors and replaced them with the
9274             matching theme color
9275
9276 2004-10-12 21:41  pbartok
9277
9278         * ThemeWin32Classic.cs:
9279           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
9280             him using the function for flatstyle drawing
9281           - Changed functions to use the new version of CPDrawBorder3D
9282
9283 2004-10-12 21:15  pbartok
9284
9285         * ControlPaint.cs:
9286           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
9287             match MS documentation. They need to return defined colors if the
9288             passed color matches the configured control color. Thanks to John
9289             BouAntoun for pointing this out.
9290
9291 2004-10-12 20:57  pbartok
9292
9293         * Control.cs:
9294           - Fix from John BouAntoun: Raise ForeColorChanged event when text
9295             color is changed
9296
9297 2004-10-12 20:46  pbartok
9298
9299         * CheckBox.cs:
9300           - Fix from John BouAntoun: Now properly sets the Appearance property
9301
9302 2004-10-12 20:45  pbartok
9303
9304         * ThemeWin32Classic.cs:
9305           - Fixes from John BouAntoun: now handles forecolors and backcolors
9306             for flatstyle rendered controls much better; It also fixes normal
9307             checkbox rendering when pushed or disabled.
9308
9309 2004-10-08 02:50  jordi
9310
9311         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
9312           work
9313
9314 2004-10-07 08:56  jordi
9315
9316         * ThemeWin32Classic.cs: Removes deletion of cached brushes
9317
9318 2004-10-06 03:59  jordi
9319
9320         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
9321           XplatUIWin32.cs: removes warnings from compilation
9322
9323 2004-10-05 12:23  jackson
9324
9325         * RadioButton.cs: Fix ctor
9326
9327 2004-10-05 11:10  pbartok
9328
9329         * MessageBox.cs:
9330           - Partial implementation by Benjamin Dasnois
9331
9332 2004-10-05 10:15  jackson
9333
9334         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
9335           by John BouAntoun
9336
9337 2004-10-05 03:07  ravindra
9338
9339         * ToolBar.cs:
9340                 - Removed a private method, Draw ().
9341                 - Fixed the ButtonDropDown event handling.
9342                 - Fixed MouseMove event handling.
9343
9344 2004-10-05 03:04  ravindra
9345
9346         * ThemeWin32Classic.cs:
9347                 - Added DrawListView method and ListViewDefaultSize property.
9348                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
9349                 - Changed DOS style CRLF to Unix format (dos2unix).
9350
9351 2004-10-05 03:03  ravindra
9352
9353         * Theme.cs:
9354                 - Added DrawListView method and ListViewDefaultSize property.
9355
9356 2004-10-05 02:42  ravindra
9357
9358         * ToolBarButton.cs: Added an internal member dd_pressed to handle
9359           clicks on DropDown arrow.
9360
9361 2004-10-04 22:56  jackson
9362
9363         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
9364           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
9365           Control handle the buffers, derived classes should not have to
9366           CreateBuffers themselves.
9367
9368 2004-10-04 21:20  jackson
9369
9370         * StatusBar.cs: The control handles resizing the buffers now.
9371
9372 2004-10-04 21:18  jackson
9373
9374         * Control.cs: When resizing the buffers should be invalidated. This
9375           should be handled in Control not in derived classes.
9376
9377 2004-10-04 14:45  jackson
9378
9379         * TabPage.cs: oops
9380
9381 2004-10-04 02:14  pbartok
9382
9383         * LeftRightAlignment.cs:
9384           - Initial check-in
9385
9386 2004-10-04 01:09  jordi
9387
9388         * ThemeWin32Classic.cs: fixes right button position causing right
9389           button not showing on horizontal scrollbars
9390
9391 2004-10-02 13:12  pbartok
9392
9393         * XplatUIX11.cs:
9394           - Simplified the Invalidate method by using an X call instead of
9395             generating the expose ourselves
9396           - Added an expose when the window background is changed
9397           - Implemented ClientToScreen method
9398
9399 2004-10-02 13:08  pbartok
9400
9401         * XplatUIWin32.cs:
9402           - Added Win32EnableWindow method (test for implementing modal
9403           dialogs)
9404           - Added ClientToScreen method and imports
9405
9406 2004-10-02 13:07  pbartok
9407
9408         * XplatUI.cs, XplatUIDriver.cs:
9409           - Added ClientToScreen coordinate translation method
9410
9411 2004-10-02 13:06  pbartok
9412
9413         * KeyPressEventArgs.cs:
9414           - Fixed access level for constructor
9415
9416 2004-10-02 13:06  pbartok
9417
9418         * NativeWindow.cs:
9419           - Changed access level for the window_collection hash table
9420
9421 2004-10-02 13:05  pbartok
9422
9423         * Form.cs:
9424           - Added KeyPreview property
9425           - Added Menu property (still incomplete, pending Jordi's menu work)
9426           - Implemented ProcessCmdKey
9427           - Implemented ProcessDialogKey
9428           - Implemented ProcessKeyPreview
9429
9430 2004-10-02 13:02  pbartok
9431
9432         * Control.cs:
9433           - Added private method to get the Control object from the window
9434           handle
9435           - Implemented ContextMenu property
9436           - Implemented PointToScreen
9437           - Implemented PreProcessMessage
9438           - Implemented IsInputChar
9439           - Implemented IsInputKey
9440           - Implemented ProcessCmdKey
9441           - Completed ProcessKeyEventArgs
9442           - Fixed message loop to call the proper chain of functions on key
9443           events
9444           - Implemented ProcessDialogChar
9445           - Implemented ProcessDialogKey
9446           - Implemented ProcessKeyMessage
9447           - Implemented ProcessKeyPreview
9448           - Added RaiseDragEvent stub (MS internal method)
9449           - Added RaiseKeyEvent stub (MS internal method)
9450           - Added RaiseMouseEvent stub (MS Internal method)
9451           - Added RaisePaintEvent stub (MS Internal method)
9452           - Added ResetMouseEventArgs stub (MS Internal method)
9453           - Implemented RtlTranslateAlignment
9454           - Implemented RtlTranslateContent
9455           - Implemented RtlTranslateHorizontal
9456           - Implemented RtlTranslateLeftRight
9457           - Added generation of KeyPress event
9458
9459 2004-10-02 05:57  ravindra
9460
9461         * ListViewItem.cs: Added attributes.
9462
9463 2004-10-02 05:32  ravindra
9464
9465         * ListView.cs: Added attributes.
9466
9467 2004-10-01 11:53  jackson
9468
9469         * Form.cs: Implement the Close method so work on MessageBox can
9470           continue.
9471
9472 2004-09-30 14:06  pbartok
9473
9474         * XplatUIX11.cs:
9475           - Bug fixes
9476
9477 2004-09-30 11:34  jackson
9478
9479         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
9480
9481 2004-09-30 07:26  ravindra
9482
9483         * ListViewItemConverter.cs: Converter for ListViewItem.
9484
9485 2004-09-30 07:26  ravindra
9486
9487         * SortOrder.cs: Enum for ListView control.
9488
9489 2004-09-30 07:25  ravindra
9490
9491         * ColumnHeader.cs: Supporting class for ListView control.
9492
9493 2004-09-30 07:24  ravindra
9494
9495         * ListView.cs, ListViewItem.cs: Initial implementation.
9496
9497 2004-09-30 07:20  ravindra
9498
9499         * ItemActivation.cs: Enum for ListView Control.
9500
9501 2004-09-29 20:29  pbartok
9502
9503         * XplatUIX11.cs:
9504           - Added lookup of pixel value for background color; tries to get a
9505             color 'close' to the requested color, it avoids having to create a
9506             colormap.  Depending on the display this could mean the used color
9507             is slightly off the desired color. Might have to change it to a more
9508             resource intensive colormap approach, but it will work as a
9509           workaround to avoid red screens.
9510
9511 2004-09-29 14:27  jackson
9512
9513         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
9514
9515 2004-09-28 12:44  pbartok
9516
9517         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
9518           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
9519           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
9520           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
9521           TrackBar.cs, VScrollBar.cs:
9522           - Streamlined Theme interfaces:
9523             * Each DrawXXX method for a control now is passed the object for
9524               the control to be drawn in order to allow accessing any state the
9525               theme might require
9526
9527             * ControlPaint methods for the theme now have a CP prefix to avoid
9528               name clashes with the Draw methods for controls
9529
9530             * Every control now retrieves it's DefaultSize from the current
9531             theme
9532
9533 2004-09-28 12:17  jackson
9534
9535         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
9536           drawing
9537
9538 2004-09-24 14:57  jackson
9539
9540         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
9541           Gives us a nice little performance boost.
9542
9543 2004-09-24 12:02  jackson
9544
9545         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
9546           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
9547           Control and supporting classes. Initial checkin
9548
9549 2004-09-23 13:08  jackson
9550
9551         * Form.cs: Temp build fixage
9552
9553 2004-09-23 01:39  ravindra
9554
9555         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
9556           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
9557           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
9558           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
9559           EventHandlers needed by ListView Control.
9560
9561 2004-09-22 14:12  pbartok
9562
9563         * ScrollableControl.cs:
9564           - Implemented DockPadding property
9565           - Implemented AutoScroll property
9566           - Implemented AutoScrollMargin property
9567           - Implemented AutoScrollMinSize property
9568           - Implemented AutoScrollPosition property
9569           - Implemented DisplayRectangle property (still incomplete)
9570           - Implemented CreateParams property
9571           - Implemented HScroll property
9572           - Implemented VScroll property
9573           - Implemented OnVisibleChanged property
9574
9575 2004-09-22 14:09  pbartok
9576
9577         * Form.cs:
9578           - Added Form.ControllCollection class
9579           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
9580             RemoveOwnedForm (still incomplete, missing on-top and common
9581             minimize/maximize behaviour)
9582           - Added StartPosition property (still incomplete, does not use when
9583             creating the form)
9584           - Added ShowDialog() methods (still incomplete, missing forcing the
9585             dialog modal)
9586
9587 2004-09-22 14:05  pbartok
9588
9589         * Application.cs:
9590           - Added message loop for modal dialogs
9591
9592 2004-09-22 14:02  pbartok
9593
9594         * GroupBox.cs:
9595           - Fixed wrong types for events
9596
9597 2004-09-22 14:00  pbartok
9598
9599         * Shortcut.cs, FormWindowState.cs:
9600           - Fixed wrong values
9601
9602 2004-09-22 12:01  jackson
9603
9604         * Control.cs: Text is never null
9605
9606 2004-09-20 22:14  pbartok
9607
9608         * XplatUIWin32.cs:
9609           - Fixed accessibility level for Idle handler
9610
9611 2004-09-20 18:54  jackson
9612
9613         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
9614           XplatUIX11.cs: New message loop that uses poll so we don't get a
9615           busy loop
9616
9617 2004-09-17 10:43  pbartok
9618
9619         * ScrollBar.cs:
9620           - Fixed behaviour of arrow buttons. Now properly behaves like
9621             Buttons (and like Microsoft's scrollbar arrow buttons)
9622
9623 2004-09-17 10:14  pbartok
9624
9625         * ScrollBar.cs:
9626           - Added missing release of keyboard/mouse capture
9627
9628 2004-09-17 06:18  jordi
9629
9630         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
9631           Theme.cs: Very early menu support
9632
9633 2004-09-16 17:45  pbartok
9634
9635         * XplatUIWin32.cs:
9636           - Fixed sending a window to the front
9637           - Added overload for SetWindowPos to avoid casting
9638
9639 2004-09-16 17:44  pbartok
9640
9641         * Control.cs:
9642           - Added SendToBack and BringToFront methods
9643
9644 2004-09-16 07:00  ravindra
9645
9646         * Copyright: Added Novell URL.
9647
9648 2004-09-16 07:00  ravindra
9649
9650         * ToolBar.cs: Invalidate should be done before redrawing.
9651
9652 2004-09-15 21:19  ravindra
9653
9654         * ColumnHeaderStyle.cs: Enum for ListView Control.
9655
9656 2004-09-15 21:18  ravindra
9657
9658         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
9659           ListView Control.
9660
9661 2004-09-13 18:26  jackson
9662
9663         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
9664           properly
9665
9666 2004-09-13 18:13  jackson
9667
9668         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
9669           a second thread and post messages into the main threads message
9670           queue. This makes timing much more consistent. Both win2K and XP
9671           have a minimum timer value of 15 milliseconds, so we now do this
9672           too.
9673
9674 2004-09-13 15:18  pbartok
9675
9676         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
9677           XplatUIX11.cs:
9678           - Added Z-Ordering methods
9679
9680 2004-09-13 10:56  pbartok
9681
9682         * Form.cs:
9683           - Fixed #region names
9684           - Moved properties and methods into their proper #regions
9685
9686 2004-09-13 10:51  pbartok
9687
9688         * Form.cs:
9689           - Added Accept and CancelButton properties
9690           - Added ProcessDialogKey() method
9691
9692 2004-09-13 08:18  pbartok
9693
9694         * IWindowTarget.cs:
9695           - Initial check-in
9696
9697 2004-09-10 21:50  pbartok
9698
9699         * Control.cs:
9700           - Added DoDragDrop() [incomplete]
9701           - Properly implemented 'Visible' handling
9702           - Added SetVisibleCore()
9703           - Implemented FindChildAtPoint()
9704           - Implemented GetContainerControl()
9705           - Implemented Hide()
9706
9707 2004-09-10 19:28  pbartok
9708
9709         * Control.cs:
9710           - Moved methods into their appropriate #regions
9711           - Reordered methods within regions alphabetically
9712
9713 2004-09-10 18:57  pbartok
9714
9715         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
9716           - Added method to retrieve text from window
9717
9718 2004-09-10 18:56  pbartok
9719
9720         * Control.cs:
9721           - Moved some internal functions into the internal region
9722           - Implemented FontHeight
9723           - Implemented RenderRightToLeft
9724           - Implemented ResizeRedraw
9725           - Implemented ShowFocusCues
9726           - Implemented ShowKeyboardCues
9727           - Implemented FromChildHandle
9728           - Implemented FromHandle
9729           - Implemented IsMnemonic
9730           - Implemented ReflectMessage
9731           - All public and protected Static Methods are now complete
9732
9733 2004-09-10 16:54  pbartok
9734
9735         * Control.cs:
9736           - Implemented remaining missing public instance properties
9737           - Alphabetized some out of order properties
9738
9739 2004-09-10 05:51  ravindra
9740
9741         * PictureBox.cs: Added a check for null image.
9742
9743 2004-09-10 00:59  jordi
9744
9745         * GroupBox.cs: remove cvs tag
9746
9747 2004-09-09 05:25  ravindra
9748
9749         * ToolBar.cs: Make redraw accessible from ToolBarButton.
9750
9751 2004-09-09 05:23  ravindra
9752
9753         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
9754           parent redraw.
9755
9756 2004-09-09 02:28  pbartok
9757
9758         * ThemeWin32Classic.cs:
9759           - Improve disabled string look
9760
9761 2004-09-09 01:15  jordi
9762
9763         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
9764           args and handler
9765
9766 2004-09-08 23:56  ravindra
9767
9768         * ItemBoundsPortion.cs: It's enum, not a class!
9769
9770 2004-09-08 23:47  ravindra
9771
9772         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
9773           Enums for Form.
9774
9775 2004-09-08 21:13  ravindra
9776
9777         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
9778           ListView control.
9779
9780 2004-09-08 21:03  ravindra
9781
9782         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
9783           avoid crash.
9784
9785 2004-09-08 21:01  ravindra
9786
9787         * ScrollableControl.cs: Removed unreachable code.
9788
9789 2004-09-08 06:45  jordi
9790
9791         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
9792
9793 2004-09-08 01:00  jackson
9794
9795         * XplatUIX11.cs: Only run the timers when updating the message
9796           queue. This effectively gives X messages a higher priority then
9797           timer messages. Timers still need love though
9798
9799 2004-09-07 14:01  jackson
9800
9801         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
9802           this for us and the handle is no longer valid.
9803
9804 2004-09-07 13:59  jackson
9805
9806         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
9807           loop that manages to not crash. TODO: Add poll and cleanup timers
9808
9809 2004-09-07 11:12  jordi
9810
9811         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
9812
9813 2004-09-07 03:40  jordi
9814
9815         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
9816           fixes, methods, multiple links
9817
9818 2004-09-06 06:55  jordi
9819
9820         * Control.cs: Caches ClientRectangle rectangle value
9821
9822 2004-09-05 02:03  jordi
9823
9824         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
9825           certain situations
9826
9827 2004-09-04 11:10  jordi
9828
9829         * Label.cs: Refresh when font changed
9830
9831 2004-09-02 16:24  pbartok
9832
9833         * Control.cs:
9834           - Added sanity check to creation of double buffer bitmap
9835
9836 2004-09-02 16:24  pbartok
9837
9838         * ButtonBase.cs:
9839           - Fixed selection of text color
9840           - Fixed handling of resize event; now properly recreates double
9841             buffering bitmap
9842           - Added missing assignment of TextAlignment
9843           - Added proper default for TextAlignment
9844
9845 2004-09-02 14:26  pbartok
9846
9847         * RadioButton.cs:
9848           - Added missing RadioButton.RadioButtonAccessibleObject class
9849
9850 2004-09-02 14:26  pbartok
9851
9852         * Control.cs:
9853           - Added missing Control.ControlAccessibleObject class
9854           - Started to implement Select()ion mechanisms, still very incomplete
9855
9856 2004-09-02 14:25  pbartok
9857
9858         * AccessibleObject.cs:
9859           - Added missing methods
9860
9861 2004-09-02 14:23  pbartok
9862
9863         * AccessibleNavigation.cs, AccessibleSelection.cs:
9864           - Initial check-in
9865
9866 2004-09-02 10:32  jordi
9867
9868         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
9869           pool for pens, brushes, and hatchbruses
9870
9871 2004-09-01 15:30  jackson
9872
9873         * StatusBar.cs: Fix typo
9874
9875 2004-09-01 14:44  pbartok
9876
9877         * RadioButton.cs:
9878           - Fixed state
9879
9880 2004-09-01 14:39  pbartok
9881
9882         * Button.cs, RadioButton.cs:
9883           - Functional initial check-in
9884
9885 2004-09-01 14:01  pbartok
9886
9887         * CheckBox.cs:
9888           - Added missing default
9889           - Added missing region mark
9890
9891 2004-09-01 09:10  jordi
9892
9893         * Label.cs: fixes method signatures, new methods, events, fixes
9894           autosize
9895
9896 2004-09-01 07:19  jordi
9897
9898         * Control.cs: Init string variables with an empty object
9899
9900 2004-09-01 04:20  jordi
9901
9902         * Control.cs: fires OnFontChanged event
9903
9904 2004-08-31 20:07  pbartok
9905
9906         * ButtonBase.cs:
9907           - Enabled display of strings
9908
9909 2004-08-31 20:05  pbartok
9910
9911         * Form.cs:
9912           - Added (partial) implementation of DialogResult; rest needs to be
9913             implemented when the modal loop code is done
9914
9915 2004-08-31 19:55  pbartok
9916
9917         * CheckBox.cs:
9918           - Fixed to match the removal of the needs_redraw concept
9919
9920 2004-08-31 19:55  pbartok
9921
9922         * ButtonBase.cs:
9923           - Removed the rather odd split between 'needs redraw' and redrawing
9924           - Now handles the events that require regeneration (ambient
9925             properties and size)
9926
9927 2004-08-31 19:41  pbartok
9928
9929         * Control.cs:
9930           - Added firing of BackColorChanged event
9931           - Added TopLevelControl property
9932           - Fixed handling of WM_ERASEBKGRND message
9933
9934 2004-08-31 12:49  pbartok
9935
9936         * ButtonBase.cs:
9937           - Removed debug
9938           - Minor fixes
9939
9940 2004-08-31 12:48  pbartok
9941
9942         * CheckBox.cs:
9943           - Finished (famous last words)
9944
9945 2004-08-31 04:35  jordi
9946
9947         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
9948           scrolling bugs, adds new methods
9949
9950 2004-08-30 14:42  pbartok
9951
9952         * CheckBox.cs:
9953           - Implemented CheckBox drawing code
9954
9955 2004-08-30 14:42  pbartok
9956
9957         * ButtonBase.cs:
9958           - Made Redraw() and CheckRedraw() virtual
9959           - Improved mouse up/down/move logic to properly track buttons
9960
9961 2004-08-30 09:44  pbartok
9962
9963         * CheckBox.cs:
9964           - Updated to fix broken build. Not complete yet.
9965
9966 2004-08-30 09:28  pbartok
9967
9968         * CheckState.cs:
9969           - Initial checkin
9970
9971 2004-08-30 09:17  pbartok
9972
9973         * Appearance.cs:
9974           - Initial check-in
9975
9976 2004-08-27 16:12  ravindra
9977
9978         * ToolBarButton.cs: Added TypeConverter attribute.
9979
9980 2004-08-27 16:07  ravindra
9981
9982         * ImageIndexConverter.cs: Implemented.
9983
9984 2004-08-27 14:17  pbartok
9985
9986         * Control.cs:
9987           - Removed unneeded stack vars
9988           - First attempt to fix sizing issues when layout is suspended
9989
9990 2004-08-25 15:35  jordi
9991
9992         * ScrollBar.cs: more fixes to scrollbar
9993
9994 2004-08-25 14:04  ravindra
9995
9996         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
9997           Added the missing divider code and grip for ToolBar Control.
9998
9999 2004-08-25 13:20  pbartok
10000
10001         * Control.cs:
10002           - Control now properly passes the ambient background color to child
10003             controls
10004
10005 2004-08-25 13:20  jordi
10006
10007         * ScrollBar.cs: small bug fix regarding bar position
10008
10009 2004-08-25 12:33  pbartok
10010
10011         * Timer.cs:
10012           - Now only calls SetTimer or KillTimer if the enabled state has
10013           changed
10014
10015 2004-08-25 12:33  pbartok
10016
10017         * XplatUIWin32.cs:
10018           - Fixed timer handling, now seems to work
10019           - Improved error message for window creation
10020
10021 2004-08-25 12:32  pbartok
10022
10023         * Control.cs:
10024           - Fixed generation of MouseUp message
10025
10026 2004-08-25 12:29  jordi
10027
10028         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
10029           and fixes for progressbar
10030
10031 2004-08-24 18:43  ravindra
10032
10033         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
10034           in ToolBar control.
10035
10036 2004-08-24 17:15  pbartok
10037
10038         * Panel.cs:
10039           - Added #region
10040           - Added missing events
10041           - Alphabetized
10042
10043 2004-08-24 17:14  pbartok
10044
10045         * StatusBar.cs, PictureBox.cs:
10046           - Now uses Control's CreateParams
10047
10048 2004-08-24 16:36  pbartok
10049
10050         * XplatUIX11.cs:
10051           - Fixed background color handling
10052           - Fixed sending of enter/leave events on a grab
10053
10054 2004-08-24 16:35  pbartok
10055
10056         * X11Structs.cs:
10057           - Refined definitions for CrossingEvent
10058
10059 2004-08-24 12:37  jordi
10060
10061         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
10062           formmating, methods signature, and adds missing events
10063
10064 2004-08-24 12:24  jordi
10065
10066         * Control.cs: fire OnEnabledChanged event
10067
10068 2004-08-24 11:17  pbartok
10069
10070         * XplatUIWin32.cs:
10071           - Implemented SetTimer() and KillTimer()
10072
10073 2004-08-24 11:16  pbartok
10074
10075         * XplatUIX11.cs:
10076           - Now uses Remove instead of Add to kill the timer
10077
10078 2004-08-24 10:16  jackson
10079
10080         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
10081           picture boxes in the theme now. Draw picture box borders and obey
10082           sizing modes
10083
10084 2004-08-24 05:49  jackson
10085
10086         * Timer.cs: Remove top secret debugging code
10087
10088 2004-08-24 05:34  jackson
10089
10090         * PictureBox.cs: Temp hack to make picture boxes draw their full
10091           image
10092
10093 2004-08-24 05:29  jackson
10094
10095         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
10096           XplatUIX11.cs: Move timers to the driver level. On X they are
10097           queued by the driver and checked on idle.
10098
10099 2004-08-24 01:07  jackson
10100
10101         * XplatUIX11.cs: Use a queue for async messages instead of passing
10102           them as ClientMessages since that was totally broken. Also simply
10103           check for events and return an idle message if none are found. This
10104           gives us an idle handler, and prevents deadlocking when no messages
10105           are in the queue.
10106
10107 2004-08-23 18:19  ravindra
10108
10109         * XplatUIWin32.cs: Removed the unwanted destructor.
10110
10111 2004-08-23 17:27  pbartok
10112
10113         * ButtonBase.cs:
10114           - Finishing touches. Works now, just needs some optimizations.
10115
10116 2004-08-23 16:53  jordi
10117
10118         * ScrollBar.cs: small fix
10119
10120 2004-08-23 16:45  pbartok
10121
10122         * Application.cs:
10123           - Removed debug output
10124           - Simplifications
10125
10126 2004-08-23 16:43  jordi
10127
10128         * ScrollBar.cs: [no log message]
10129
10130 2004-08-23 16:10  pbartok
10131
10132         * Form.cs:
10133           - Fixed handling of WM_CLOSE message
10134           - Removed debug output
10135
10136 2004-08-23 16:09  pbartok
10137
10138         * Application.cs:
10139           - Added handling of Idle event
10140           - Added handling of form closing
10141           - Fixed reporting of MessageLoop property
10142           - Removed some unneeded code, should provide a bit of a speedup
10143
10144 2004-08-23 15:22  pbartok
10145
10146         * Control.cs:
10147           - Added InitLayout() method
10148           - Added code to properly perform layout when Anchor or Dock property
10149             is changed
10150           - Changed 'interpretation' of ResumeLayout. MS seems to have a
10151             LAMESPEC, tried to do it in a way that makes sense
10152
10153 2004-08-23 14:10  jordi
10154
10155         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
10156           properties and methods
10157
10158 2004-08-23 13:55  pbartok
10159
10160         * Control.cs:
10161           - Properly fixed Jordi's last fix
10162           - Now uses Cursor's Position property instead of calling XplatUI
10163           directly
10164
10165 2004-08-23 13:44  jordi
10166
10167         * PaintEventHandler.cs: Adding missing attribute
10168
10169 2004-08-23 13:39  pbartok
10170
10171         * Cursor.cs:
10172           - Implemented Position property
10173
10174 2004-08-23 13:39  pbartok
10175
10176         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
10177           - Added method to move mouse cursor
10178
10179 2004-08-23 13:39  pbartok
10180
10181         * XplatUIX11.cs:
10182           - Fixed setting of background color
10183           - Added method to move mouse cursor
10184
10185 2004-08-23 13:16  jordi
10186
10187         * Control.cs: avoids null exception
10188
10189 2004-08-22 17:46  jackson
10190
10191         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
10192           PictureBox
10193
10194 2004-08-22 17:40  jackson
10195
10196         * XplatUIX11.cs: Add some missing locks
10197
10198 2004-08-22 15:10  pbartok
10199
10200         * Control.cs, Form.cs:
10201           - Removed OverlappedWindow style from Control, instead it's default
10202             now is child
10203           - Made form windows OverlappedWindow by default
10204
10205 2004-08-22 13:34  jackson
10206
10207         * ScrollBar.cs: Update the position through the Value property so
10208           the OnValueChanged event is raised.
10209
10210 2004-08-22 12:04  pbartok
10211
10212         * SWF.csproj:
10213           - Added Cursor.cs and UserControl.cs
10214
10215 2004-08-22 12:03  pbartok
10216
10217         * Cursor.cs:
10218           - Started implementation, not usable yet
10219
10220 2004-08-22 12:00  pbartok
10221
10222         * UserControl.cs:
10223           - Implemented UserControl (complete)
10224
10225 2004-08-21 19:20  ravindra
10226
10227         * ToolBar.cs: Correcting the formatting mess of VS.NET.
10228
10229 2004-08-21 18:49  ravindra
10230
10231         * ToolBar.cs: Probably this completes the missing attributes in
10232           toolbar control.
10233
10234 2004-08-21 18:03  ravindra
10235
10236         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
10237           Fixed toolbar control signatures.
10238
10239 2004-08-21 16:32  pbartok
10240
10241         * LinkLabel.cs:
10242           - Signature Fixes
10243
10244 2004-08-21 16:30  pbartok
10245
10246         * Label.cs:
10247           - Signature fixes
10248
10249 2004-08-21 16:19  pbartok
10250
10251         * Control.cs, Label.cs:
10252           - Signature fixes
10253
10254 2004-08-21 15:57  pbartok
10255
10256         * ButtonBase.cs:
10257           - Added loads of debug output for development
10258           - Fixed typo in method name
10259
10260 2004-08-21 15:52  pbartok
10261
10262         * ToolBarButtonClickEventArgs.cs:
10263           - Added missing base class
10264
10265 2004-08-21 14:53  pbartok
10266
10267         * Control.cs:
10268           - Updated to match new GrabWindow signature
10269
10270 2004-08-21 14:51  pbartok
10271
10272         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
10273           - Added method to get default display size
10274
10275 2004-08-21 14:23  pbartok
10276
10277         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
10278           - Added method to query current grab state
10279           - Added argument to allow confining a grab to a window
10280
10281 2004-08-21 14:22  pbartok
10282
10283         * Keys.cs:
10284           - Added [Flags] attribute so that modifiers can be used in bitwise
10285           ops
10286
10287 2004-08-21 14:21  pbartok
10288
10289         * TrackBar.cs, ScrollBar.cs:
10290           - Replaced direct XplatUI calls with their Control counterpart
10291
10292 2004-08-21 13:32  pbartok
10293
10294         * Control.cs:
10295           - Implemented Created property
10296
10297 2004-08-21 13:28  pbartok
10298
10299         * Control.cs:
10300           - Implemented ContainsFocus
10301
10302 2004-08-21 13:26  pbartok
10303
10304         * Control.cs:
10305           - Implemented CausesValidation
10306
10307 2004-08-21 13:21  pbartok
10308
10309         * Control.cs:
10310           - Implemented CanFocus
10311           - Implemented CanSelect
10312           - Implemented Capture
10313
10314 2004-08-21 12:35  pbartok
10315
10316         * XplatUIWin32.cs:
10317           - Fixed bug with Async message handling
10318           - Implemented getting the ModifierKeys
10319
10320 2004-08-21 12:32  jackson
10321
10322         * AsyncMethodResult.cs: Make sure we have the mutex before we
10323           release it. Fixes BeginInvoke on windows
10324
10325 2004-08-21 11:31  pbartok
10326
10327         * XplatUIWin32.cs, XplatUIX11.cs:
10328           - Drivers now return proper mouse state
10329
10330 2004-08-21 10:54  jackson
10331
10332         * Control.cs: Implement EndInvoke
10333
10334 2004-08-21 10:48  jackson
10335
10336         * Timer.cs: Remove unneeded finalizer
10337
10338 2004-08-20 19:52  ravindra
10339
10340         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
10341           in mouse event handling in the ToolBar control.
10342
10343 2004-08-20 19:50  ravindra
10344
10345         * ImageList.cs: Changed draw method to use the arguments passed in
10346           to draw the image.
10347
10348 2004-08-20 18:58  pbartok
10349
10350         * XplatUIStructs.cs:
10351           - Added private message for async communication
10352
10353 2004-08-20 17:38  ravindra
10354
10355         * Control.cs: Made RightToLeft property virtual and removed a
10356           Console.WriteLine.
10357
10358 2004-08-20 14:39  jordi
10359
10360         * ThemeGtk.cs: use style_attach
10361
10362 2004-08-20 14:39  pbartok
10363
10364         * XplatUIWin32.cs:
10365           - Added jackson's Async code from X11 to Win32
10366
10367 2004-08-20 14:09  pbartok
10368
10369         * SWF.csproj:
10370           - Added all new files
10371
10372 2004-08-20 14:09  pbartok
10373
10374         * Control.cs:
10375           - Added call to set window background color
10376
10377 2004-08-20 14:03  pbartok
10378
10379         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
10380           - Added method for setting the window background
10381
10382 2004-08-20 14:02  pbartok
10383
10384         * XplatUIWin32.cs:
10385           - Added method for setting the background color
10386           - Added handling for erasing the window background
10387
10388 2004-08-20 13:45  jordi
10389
10390         * TrackBar.cs: fixes timer, new properties and methods
10391
10392 2004-08-20 13:34  jackson
10393
10394         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
10395           correct thread
10396
10397 2004-08-20 13:22  jackson
10398
10399         * Timer.cs: Timer Tick events are now handed through Controls Async
10400           mechanism so the callbacks are executed in the same thread as X
10401
10402 2004-08-20 13:19  jackson
10403
10404         * XplatUIDriver.cs: Expose functionality to send async messages
10405           through the driver
10406
10407 2004-08-20 13:18  jackson
10408
10409         * Control.cs: Implement Begininvoke
10410
10411 2004-08-20 13:14  jackson
10412
10413         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
10414           messages through the driver
10415
10416 2004-08-20 13:12  jackson
10417
10418         * XplatUIX11.cs: Lock before all X operations. Also added Async
10419           method functionality through XSendEvent
10420
10421 2004-08-20 13:11  jackson
10422
10423         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
10424           This will screw up on 64 bit systems)
10425
10426 2004-08-20 13:10  jackson
10427
10428         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
10429           Async messages through X/Win32
10430
10431 2004-08-19 19:39  pbartok
10432
10433         * XplatUIX11.cs:
10434           - Updated code to match new HandleData.DeviceContext type
10435
10436 2004-08-19 19:38  pbartok
10437
10438         * HandleData.cs:
10439           - Made DeviceContext a generic object to allow usage from various
10440           drivers
10441           - Added support for queueing Windows messages
10442
10443 2004-08-19 19:37  pbartok
10444
10445         * XplatUIWin32.cs:
10446           - Added generation of MouseEnter, MouseLeave and MouseHover events
10447           - Added cleanup on EndPaint
10448
10449 2004-08-19 19:17  pbartok
10450
10451         * Control.cs:
10452           - Added handling of WM_MOUSEHOVER
10453           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
10454           code
10455
10456 2004-08-19 18:55  jordi
10457
10458         * ThemeGtk.cs: fixes button order
10459
10460 2004-08-19 18:12  jordi
10461
10462         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
10463
10464 2004-08-19 17:09  pbartok
10465
10466         * Control.cs:
10467           - Added Right property
10468           - Added RightToLeft property
10469
10470 2004-08-19 16:27  jordi
10471
10472         * ThemeGtk.cs: experimental GTK theme support
10473
10474 2004-08-19 16:26  jordi
10475
10476         * ITheme.cs, Theme.cs: move themes from an interface to a class
10477
10478 2004-08-19 16:25  jordi
10479
10480         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
10481           theme enhancaments
10482
10483 2004-08-19 16:04  pbartok
10484
10485         * XplatUIX11.cs:
10486           - Added colormap basics
10487           - Added a way to re-initialize with a different display handle
10488           - Fixed setting of the window background color
10489           - Added various X11 imports related to colors and colormaps
10490
10491 2004-08-19 15:51  pbartok
10492
10493         * X11Structs.cs:
10494           - Removed packing hints (Paolo suggested this a while back)
10495           - fixed colormap type
10496           - Added default Atom types
10497           - Added Screen and color structs and enums
10498
10499 2004-08-19 15:39  pbartok
10500
10501         * ImageList.cs:
10502           - Added missing Draw() method
10503           - Added missing RecreateHandle event
10504
10505 2004-08-19 15:30  pbartok
10506
10507         * Form.cs:
10508           - Added handling of WM_CLOSE
10509
10510 2004-08-18 13:16  jordi
10511
10512         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
10513           a table
10514
10515 2004-08-18 09:56  jordi
10516
10517         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
10518
10519 2004-08-17 15:31  ravindra
10520
10521         * SWF.csproj: Updated project.
10522
10523 2004-08-17 15:25  pbartok
10524
10525         * Control.cs:
10526           - Drawing improvement; don't call UpdateBounds if we are not visible
10527             (or have been minimized)
10528
10529 2004-08-17 15:24  pbartok
10530
10531         * XplatUIWin32.cs:
10532           - Finished IsVisible
10533           - Added Win32GetWindowPlacement
10534
10535 2004-08-17 15:08  jackson
10536
10537         * Panel.cs: Initial checkin of the Panel
10538
10539 2004-08-17 14:25  pbartok
10540
10541         * Control.cs:
10542           - Fixed broken handling of default window sizes
10543
10544 2004-08-17 13:29  jackson
10545
10546         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
10547           has a large startup time.
10548
10549 2004-08-17 10:25  jackson
10550
10551         * HandleData.cs: union areas properly
10552
10553 2004-08-17 10:12  jackson
10554
10555         * HandleData.cs: union areas properly
10556
10557 2004-08-16 20:00  ravindra
10558
10559         * ToolBar.cs, ToolBarButton.cs: Added attributes.
10560
10561 2004-08-16 18:48  ravindra
10562
10563         * ToolBar.cs: Added attributes.
10564
10565 2004-08-16 17:17  ravindra
10566
10567         * SWF.csproj: Updated project.
10568
10569 2004-08-16 17:16  jackson
10570
10571         * XplatUIX11.cs: Check for more expose events before sending a
10572           WM_PAINT so they can all be grouped together. This makes dragging a
10573           window across another window redraw in a sane way.
10574
10575 2004-08-16 15:47  pbartok
10576
10577         * Control.cs:
10578           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
10579             support OnMouseEnter/Leave()
10580           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
10581             exposure handling
10582
10583 2004-08-16 15:46  pbartok
10584
10585         * XplatUIStructs.cs, XplatUIX11.cs:
10586           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
10587           OnMouseEnter/Leave()
10588
10589 2004-08-16 15:34  jackson
10590
10591         * XplatUIX11.cs: Group multiple expose events in HandleData, make
10592           sure messages get the message field set to WM_NULL if they are not
10593           handled.
10594
10595 2004-08-16 15:24  jackson
10596
10597         * HandleData.cs: HandleData is used for storing message information
10598           for window handles
10599
10600 2004-08-15 17:23  ravindra
10601
10602         * ColorDepth.cs: Added attribute.
10603
10604 2004-08-15 17:23  ravindra
10605
10606         * SWF.csproj: Updated project for ToolBar Control.
10607
10608 2004-08-15 17:20  ravindra
10609
10610         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
10611           control and also dos2unix format.
10612
10613 2004-08-15 17:13  ravindra
10614
10615         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
10616           ToolBarButtonClickEventArgs.cs,
10617           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
10618           ToolBarTextAlign.cs: First Implementation of ToolBar control.
10619
10620 2004-08-15 15:31  pbartok
10621
10622         * ButtonBase.cs:
10623           - First (mostly) working version
10624
10625 2004-08-13 16:15  pbartok
10626
10627         * Control.cs:
10628           - Fixed Anchor default
10629
10630 2004-08-13 15:43  pbartok
10631
10632         * Control.cs:
10633           - Changed GetCursorPos signature
10634
10635 2004-08-13 15:42  pbartok
10636
10637         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
10638           - Changed signature for GetCursorPos
10639
10640 2004-08-13 15:25  pbartok
10641
10642         * XplatUIX11.cs:
10643           - Cleanup
10644           - Fixed resizing/exposure handling
10645
10646 2004-08-13 15:22  jordi
10647
10648         * ThemeWin32Classic.cs: removes redundant code and fixes issues
10649           with tickposition
10650
10651 2004-08-13 14:55  jordi
10652
10653         * TrackBar.cs: change from wndproc to events
10654
10655 2004-08-13 13:00  jordi
10656
10657         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
10658           XplatUIX11.cs: implements PointToClient (ScreenToClient)
10659
10660 2004-08-13 12:53  pbartok
10661
10662         * XplatUIWin32.cs:
10663           - Changed GetWindowPos to also provide client area size
10664           - Fixed broken prototypes for several win32 functions
10665
10666 2004-08-13 12:53  pbartok
10667
10668         * XplatUI.cs, XplatUIDriver.cs:
10669           - Changed GetWindowPos to also provide client area size
10670
10671 2004-08-13 12:52  pbartok
10672
10673         * XplatUIX11.cs:
10674           - Added generation of WM_POSCHANGED
10675           - Changed GetWindowPos to also provide client area size
10676
10677 2004-08-13 12:52  pbartok
10678
10679         * Control.cs:
10680           - Added Dispose() and destructor
10681           - Fixed resizing and bounds calculation
10682           - Fixed Layout
10683           - Added memory savings for invisible windows
10684
10685 2004-08-13 12:46  jordi
10686
10687         * TrackBar.cs: adds timer and grap window
10688
10689 2004-08-13 10:25  jackson
10690
10691         * Timer.cs: SWF Timer
10692
10693 2004-08-12 16:59  pbartok
10694
10695         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
10696           - Implemented method to get current mouse position
10697
10698 2004-08-12 14:29  jordi
10699
10700         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
10701           enhancement, fix mouse problems, highli thumb, etc
10702
10703 2004-08-12 13:31  pbartok
10704
10705         * Control.cs:
10706           - Fixed Anchoring bugs
10707
10708 2004-08-12 13:01  jackson
10709
10710         * StatusBar.cs: Don't forget things
10711
10712 2004-08-12 12:54  jackson
10713
10714         * ThemeWin32Classic.cs: Handle owner draw status bars
10715
10716 2004-08-12 12:54  jackson
10717
10718         * StatusBar.cs: Implement missing properties, events, and methods.
10719           Handle mouse clicking
10720
10721 2004-08-12 10:19  jackson
10722
10723         * StatusBarPanelClickEventArgs.cs,
10724           StatusBarPanelClickEventHandler.cs: Classes for handling status
10725           bar panel click events
10726
10727 2004-08-12 10:10  jackson
10728
10729         * Control.cs: Add missing properties
10730
10731 2004-08-12 09:46  pbartok
10732
10733         * BindingsManagerBase.cs:
10734           - Name changed to BindingManagerBase.cs
10735
10736 2004-08-12 09:25  jordi
10737
10738         * ScrollableControl.cs: calls ctrlbase instead of exeception
10739
10740 2004-08-11 16:28  pbartok
10741
10742         * InputLanguageChangingEventArgs.cs:
10743           - Never check in before compiling. Fixes the last check-in
10744
10745 2004-08-11 16:26  pbartok
10746
10747         * InputLanguageChangingEventArgs.cs:
10748           - More signature fixes
10749
10750 2004-08-11 16:20  pbartok
10751
10752         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
10753           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
10754           ImageListStreamer.cs, InputLanguage.cs,
10755           InputLanguageChangedEventArgs.cs,
10756           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
10757           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
10758           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
10759           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
10760           - Signature fixes
10761
10762 2004-08-11 16:16  pbartok
10763
10764         * Application.cs:
10765           - Fixed Signature
10766           - Added .Net 1.1 method
10767
10768 2004-08-11 15:25  pbartok
10769
10770         * SWF.csproj:
10771           - Fixed BindingManagerBase.cs filename
10772
10773 2004-08-11 15:22  pbartok
10774
10775         * BindingManagerBase.cs:
10776           - Was checked in with wrong filename
10777
10778 2004-08-11 14:50  pbartok
10779
10780         * SWF.csproj:
10781           - Updated
10782
10783 2004-08-11 13:41  jordi
10784
10785         * XplatUIWin32.cs: Fixes ClientRect
10786
10787 2004-08-11 13:19  pbartok
10788
10789         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
10790           XplatUIX11.cs:
10791           - We had SetWindowPos and MoveWindow to set window positions and
10792             size, removed MoveWindow. We have GetWindowPos, so it made sense to
10793             keep SetWindowPos as matching counterpart
10794           - Added some X11 sanity checking
10795
10796 2004-08-11 12:59  pbartok
10797
10798         * Control.cs:
10799           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
10800             (It seems that SetBounds is just a front for SetBoundsCore and
10801              SetBoundsCore updates the underlying window system and
10802              UpdateBounds is responsible for updating the variables associated
10803              with the Control and sending the events)
10804           - Major cleanup of Size handling; we now have two sizes, client_size
10805             and bounds. Bounds defines the window with decorations, client_size
10806             without them.
10807
10808 2004-08-11 12:55  pbartok
10809
10810         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
10811           - Added method to calculate difference between decorated window and
10812             raw client area
10813
10814 2004-08-11 12:54  pbartok
10815
10816         * Label.cs:
10817           - Forcing redraw on resize
10818
10819 2004-08-11 11:43  pbartok
10820
10821         * ImageList.cs:
10822           - Removed disposing of the actual images when the list is disposed
10823
10824 2004-08-11 09:13  pbartok
10825
10826         * Control.cs:
10827           - Now properly reparents windows
10828
10829 2004-08-11 08:37  pbartok
10830
10831         * Control.cs:
10832           - Duh!
10833
10834 2004-08-11 07:47  pbartok
10835
10836         * Control.cs:
10837           - Rewrote the collection stuff. Might not be as fast now, not
10838             keeping the number of children around and accessible directly, but
10839             it's more straightforward
10840
10841 2004-08-11 07:44  pbartok
10842
10843         * AccessibleObject.cs:
10844           - Fixed to match ControlCollection rewrite
10845
10846 2004-08-11 07:43  pbartok
10847
10848         * ImageList.cs:
10849           - Added missing creation of the collection list
10850
10851 2004-08-10 20:08  jackson
10852
10853         * StatusBar.cs: Get the paint message from WndProc
10854
10855 2004-08-10 19:31  jackson
10856
10857         * ThemeWin32Classic.cs: Create Brushes as little as possible
10858
10859 2004-08-10 19:20  jackson
10860
10861         * UICues.cs: Add Flags attribute
10862
10863 2004-08-10 19:19  jackson
10864
10865         * StatusBarPanel.cs: Signature cleanup
10866
10867 2004-08-10 19:10  jackson
10868
10869         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
10870           Initial implementation of status bar item drawing
10871
10872 2004-08-10 17:27  jordi
10873
10874         * TrackBar.cs: add missing methods, properties, and restructure to
10875           hide extra ones
10876
10877 2004-08-10 16:24  jackson
10878
10879         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
10880           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
10881           attribute
10882
10883 2004-08-10 13:21  jordi
10884
10885         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
10886           enhancements and standarize on win colors defaults
10887
10888 2004-08-10 12:52  jackson
10889
10890         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
10891           ThemeWin32Classic.cs: Implement DrawItem functionality
10892
10893 2004-08-10 12:47  jordi
10894
10895         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
10896
10897 2004-08-10 12:32  jordi
10898
10899         * Control.cs: throw ontextchange event
10900
10901 2004-08-10 11:43  pbartok
10902
10903         * Control.cs:
10904           - Added more to the still unfinished Dock/Anchor layout code
10905
10906 2004-08-10 11:39  pbartok
10907
10908         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
10909           - Added GetWindowPos method
10910
10911 2004-08-10 11:36  pbartok
10912
10913         * XplatUIWin32.cs:
10914           - Implemented several methods
10915
10916 2004-08-10 09:47  jackson
10917
10918         * TrackBar.cs: Allow control to handle buffering
10919
10920 2004-08-10 09:41  jackson
10921
10922         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
10923
10924 2004-08-10 09:24  jackson
10925
10926         * Label.cs, LinkLabel.cs: Let Control handle buffering.
10927
10928 2004-08-10 09:09  jackson
10929
10930         * StatusBar.cs: Let Control handle all the buffering.
10931
10932 2004-08-10 09:08  jackson
10933
10934         * Control.cs: Control will now handle the buffering code, so each
10935           control does not have to implement this.
10936
10937 2004-08-10 08:34  jackson
10938
10939         * XplatUIDriver.cs: Use default colors from the theme
10940
10941 2004-08-09 17:12  pbartok
10942
10943         * ImageList.cs:
10944           - Fixed several bugs Ravindra pointed out
10945
10946 2004-08-09 16:11  pbartok
10947
10948         * Control.cs:
10949           - Added incomplete dock layout code
10950           - Added support for mouse wheel
10951
10952 2004-08-09 16:09  pbartok
10953
10954         * XplatUIX11.cs:
10955           - Added handling for middle and right mousebutton
10956           - Added handling for mouse wheel
10957           - Added handling for key state and mouse state and position
10958           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
10959           messages
10960
10961 2004-08-09 15:40  jackson
10962
10963         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
10964           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
10965           checkin
10966
10967 2004-08-09 15:37  jackson
10968
10969         * StatusBar.cs: Initial implementation of StatusBar
10970
10971 2004-08-09 15:36  jackson
10972
10973         * ITheme.cs: Add support for drawing status bar and getting status
10974           bar item sizes
10975
10976 2004-08-09 15:35  pbartok
10977
10978         * MouseButtons.cs:
10979           - Fixed values
10980
10981 2004-08-09 15:34  jackson
10982
10983         * ThemeWin32Classic.cs: Add support for drawing status bar and get
10984           status bar item sizes
10985
10986 2004-08-09 15:21  jackson
10987
10988         * ThemeWin32Classic.cs: Use known colors for default control
10989           colours
10990
10991 2004-08-09 15:12  jackson
10992
10993         * ThemeWin32Classic.cs: Make the default font static, it is static
10994           in control so this doesn't change functionality and creating fonts
10995           is sloooooow.
10996
10997 2004-08-09 14:56  pbartok
10998
10999         * X11Structs.cs:
11000           - Added GrabMode enum
11001
11002 2004-08-09 14:55  pbartok
11003
11004         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
11005           - Removed Run method, was only required for initial development
11006
11007 2004-08-09 14:51  pbartok
11008
11009         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
11010           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
11011           capture
11012
11013 2004-08-09 13:48  pbartok
11014
11015         * XplatUIX11.cs:
11016           - Fixed default sizing for child windows
11017
11018 2004-08-09 12:56  pbartok
11019
11020         * XplatUIX11.cs:
11021           - Added generation of WM_DESTROY message
11022           - Added handling of window manager induced shutdown
11023
11024 2004-08-09 11:31  jackson
11025
11026         * ThemeWin32Classic.cs: New names for control properties
11027
11028 2004-08-09 11:25  jackson
11029
11030         * Control.cs: Use new color names
11031
11032 2004-08-09 11:02  jackson
11033
11034         * XplatUI.cs: Get default window properties from the theme
11035
11036 2004-08-09 11:01  jackson
11037
11038         * ITheme.cs: The theme engine now controls default window
11039           properties
11040
11041 2004-08-09 11:00  jackson
11042
11043         * ThemeWin32Classic.cs: Add default window color properties
11044
11045 2004-08-09 10:17  jackson
11046
11047         * ThemeWin32Classic.cs: Use correct default back color
11048
11049 2004-08-09 10:05  jackson
11050
11051         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
11052           the theme now.
11053
11054 2004-08-09 09:56  jackson
11055
11056         * XplatUI.cs: Remove defaults, these are handled by the theme now.
11057
11058 2004-08-09 09:54  jackson
11059
11060         * Control.cs: Get default properties from the theme.
11061
11062 2004-08-09 09:53  jackson
11063
11064         * ITheme.cs: Themes now handle default control properties
11065
11066 2004-08-09 09:53  jackson
11067
11068         * ThemeWin32Classic.cs: Themes now handle default control
11069           properties so coloring will be consistent
11070
11071 2004-08-08 16:54  jordi
11072
11073         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
11074
11075 2004-08-08 15:08  jordi
11076
11077         * XplatUIX11.cs: fixes keyboard crash
11078
11079 2004-08-08 13:47  jordi
11080
11081         * Label.cs: add cvs header info
11082
11083 2004-08-08 12:09  jackson
11084
11085         * ThemeWin32Classic.cs: Add pen_buttonface
11086
11087 2004-08-08 11:52  jordi
11088
11089         * Label.cs, LinkLabel.cs: [no log message]
11090
11091 2004-08-08 11:34  jordi
11092
11093         * ThemeWin32Classic.cs: Use Windows Standard Colours
11094
11095 2004-08-07 17:32  jordi
11096
11097         * TrackBar.cs: throw exceptions of invalid enums values
11098
11099 2004-08-07 17:31  jordi
11100
11101         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
11102           draw method name
11103
11104 2004-08-07 16:56  jackson
11105
11106         * HorizontalAlignment.cs: Initial checkin
11107
11108 2004-08-07 13:16  jordi
11109
11110         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
11111           methods
11112
11113 2004-08-07 13:05  jordi
11114
11115         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
11116           GetSysColor defines
11117
11118 2004-08-06 18:01  pbartok
11119
11120         * ThemeWin32Classic.cs:
11121           - Fixed some rounding issues with float/int
11122
11123 2004-08-06 18:00  jackson
11124
11125         * DockStyle.cs, AnchorStyles.cs:
11126
11127                   Add flags and serializable attributes.
11128
11129 2004-08-06 17:46  pbartok
11130
11131         * XplatUIX11.cs:
11132           - Implemented GetParent
11133
11134 2004-08-06 17:18  pbartok
11135
11136         * TrackBar.cs:
11137           - Fixed some rounding issues with float/int
11138
11139 2004-08-06 17:17  pbartok
11140
11141         * X11Structs.cs, XplatUIX11.cs:
11142           - Fixed Refresh and Invalidate
11143
11144 2004-08-06 15:30  pbartok
11145
11146         * Control.cs, X11Structs.cs, XplatUIX11.cs:
11147           - Fixed recursive loop when resizing
11148           - Improved/fixed redrawing on expose messages
11149
11150 2004-08-06 09:53  jordi
11151
11152         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
11153           keyboard navigation
11154
11155 2004-08-06 08:02  pbartok
11156
11157         * X11Structs.cs, XplatUIX11.cs:
11158           - Fixed reparenting
11159           - Fixed window border creation
11160
11161 2004-08-05 15:38  pbartok
11162
11163         * XplatUIX11.cs:
11164           - Attempted fix for reparenting problems
11165
11166 2004-08-04 15:14  pbartok
11167
11168         * Control.cs:
11169           - Fixed Invalidation bug (calculated wrong client area)
11170           - Added ClientSize setter
11171
11172 2004-08-04 15:13  pbartok
11173
11174         * Form.cs:
11175           - Added AutoScale properties
11176
11177 2004-08-04 15:13  pbartok
11178
11179         * SWF.csproj:
11180           - Added latest files
11181
11182 2004-08-04 14:11  pbartok
11183
11184         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
11185           XplatUIX11.cs:
11186           - Added Invalidate handling
11187
11188 2004-08-03 17:09  jordi
11189
11190         * XplatUIDriver.cs: fixes spelling mistake
11191
11192 2004-07-27 09:53  jordi
11193
11194         * TrackBar.cs: fixes trackbar events, def classname, methods
11195           signature
11196
11197 2004-07-27 09:29  jordi
11198
11199         * ScrollBar.cs: fixes scrollbar events
11200
11201 2004-07-27 04:38  jordi
11202
11203         * Control.cs: changes to be able to run winforms samples
11204
11205 2004-07-26 11:42  jordi
11206
11207         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
11208           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
11209
11210 2004-07-26 05:41  jordi
11211
11212         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
11213           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
11214           implementation
11215
11216 2004-07-22 09:22  jordi
11217
11218         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
11219           check link overlapping, implement events, and fixes
11220
11221 2004-07-21 10:28  jordi
11222
11223         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
11224
11225 2004-07-21 10:19  jordi
11226
11227         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
11228           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
11229           LinkLabelLinkClickedEventArgs.cs,
11230           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
11231           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
11232           implementation
11233
11234 2004-07-19 13:09  jordi
11235
11236         * Control.cs, Label.cs: label control re-written: added missing
11237           functionlity, events, and properties
11238
11239 2004-07-19 10:49  jordi
11240
11241         * Control.cs: fixes SetBounds logic
11242
11243 2004-07-19 01:29  jordi
11244
11245         * Control.cs: Call RefreshWindow only if the window has created
11246
11247 2004-07-15 14:05  pbartok
11248
11249         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
11250           - Implemented ImageList and ImageList.ImageCollection classes
11251           - Added ColorDepth enumeration
11252           - Updated SWF VS.Net project
11253
11254 2004-07-15 11:06  jordi
11255
11256         * XplatUIStructs.cs: added MsgButons enum
11257
11258 2004-07-15 11:03  jordi
11259
11260         * Control.cs: added basic mouse handeling events
11261
11262 2004-07-15 03:38  jordi
11263
11264         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
11265           Vertical TrackBar control implementation
11266
11267 2004-07-13 09:33  jordi
11268
11269         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
11270
11271 2004-07-13 09:31  jordi
11272
11273         * Control.cs, Form.cs: commit: new properties and fixes form size
11274           problems
11275
11276 2004-07-09 14:13  miguel
11277
11278         * ProgressBar.cs: Spelling
11279
11280 2004-07-09 11:25  pbartok
11281
11282         * ProgressBar.cs:
11283           - Removed usage of Rectangle for drawing. Miguel pointed out it's
11284           faster
11285
11286 2004-07-09 11:17  miguel
11287
11288         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11289
11290                 * ProgressBar.cs: Fixed spelling for `block'
11291
11292                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
11293                 style guidelines.
11294
11295                 Avoid using the += on rect.X, that exposed a bug in the compiler.
11296
11297 2004-07-08 23:21  pbartok
11298
11299         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
11300           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
11301           BaseCollection.cs, Binding.cs, BindingContext.cs,
11302           BindingMemberInfo.cs, BindingsCollection.cs,
11303           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
11304           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
11305           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
11306           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
11307           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
11308           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
11309           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
11310           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
11311           FrameStyle.cs, GiveFeedbackEventArgs.cs,
11312           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
11313           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
11314           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
11315           InputLanguageChangedEventArgs.cs,
11316           InputLanguageChangedEventHandler.cs,
11317           InputLanguageChangingEventArgs.cs,
11318           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
11319           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
11320           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
11321           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
11322           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
11323           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
11324           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
11325           QueryAccessibilityHelpEventArgs.cs,
11326           QueryAccessibilityHelpEventHandler.cs,
11327           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
11328           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
11329           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
11330           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
11331           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
11332           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
11333           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
11334           XplatUIX11.cs, lang.cs:
11335           - Initial check-in
11336