/
ChangeLog
12194 lines (8774 loc) · 413 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2006-03-31 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
Fixes behaviour when the Text property of the box is String.Empty
2006-03-31 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs: Only send mouseleave for our client windows, not
for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
a window)
2006-03-31 Alexander Olk <alex.olk@googlemail.com>
* FileDialog.cs: Visual enhancement for the popup buttons in
PopupButtonPanel
2006-03-31 Alexander Olk <alex.olk@googlemail.com>
* ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
code
2006-03-30 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
highlighted menu items to match ms
2006-03-30 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
2006-03-30 Mike Kestner <mkestner@novell.com>
* Menu.cs (SelectedItem): use new MenuItem.Selected prop.
* MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
go active to account for HotLight to Selected transition.
* MenuItem.cs: add internal Selected prop. Fill out the Status
property by calculating it from item info. Add HotLight,
NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
2006-03-30 Mike Kestner <mkestner@novell.com>
* MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
2006-03-29 Peter Dennis Bartok <pbartok@novell.com>
* PrintPreviewDialog.cs: Implemented missing methods and events; still
missing proper dialog setup in the constructor
2006-03-29 Peter Dennis Bartok <pbartok@novell.com>
* ProgressBar.cs: Added 2.0 Style property that apps seem to use
* Control.cs:
- Implemented CheckForIllegalCrossThreadCalls, removed TODO
- Fixed ResetBindings and removed TODO
- Added check for cross-thread calls to get_Handle()
- Added Marshaller attribute for set_Font to satisfy class status
* FontDialog.cs: Removed TODOs that seemed implemented
* UpDownBase.cs: Removed unneeded TODO and Fixme
* MessageBox.cs: Implemented support for Default button and removed TODO
* FileDialog.cs: Removed obsolete TODO
* DomainUpDown.cs: Removed obsolete TODO
* ButtonBase.cs: Removed obsolete TODO
* XplatUIWin32.cs: Removed obsolete TODO
* Form.cs:
- Removed obsolete TODO
- Calling CheckAcceptButton when the acceptbutton is changed to allow
internal status updates
- Making sure the active control is selected when the control is created
* CurrencyManager.cs: Removed obsolete TODO
2006-03-29 Mike Kestner <mkestner@novell.com>
* *.cs: fix remaining corcompare issues for 1.1 API with the exception
of PrintPreviewDialog and RichTextBox.
2006-03-29 Alexander Olk <alex.olk@googlemail.com>
* Theme.cs: Added a little helper to SystemResPool to get the Dark,
DarkDark, Light and LightLight colors for a specific color
* ThemeWin32Classic.cs:
- Use Button drawing code to draw RadioButtons and CheckBoxes with
Appearance = Button
- Make use of the new ResPool helper CPColor
- Draw ProgressBar and StatusBar with correct 3D borders
2006-03-29 Alexander Olk <alex.olk@googlemail.com>
* ColorDialog.cs: Return selected color. Fixes bug #77940.
2006-03-28 Mike Kestner <mkestner@novell.com>
* ListView.cs: fix Icon layout to plan for scrollbar widths when
calculating col/row counts.
2006-03-28 Mike Kestner <mkestner@novell.com>
* ColumnHeader.cs:
* ListView.cs:
* ListViewItem.cs:
* Menu.cs:
switch to explicit interface method implementation for some methods
corcompare identifies as inconsistent with MS.
2006-03-28 Mike Kestner <mkestner@novell.com>
* MainMenu.cs:
* Menu.cs:
add a few missing methods from the class status output.
2006-03-28 Alexander Olk <alex.olk@googlemail.com>
* ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
correct.
2006-03-28 Mike Kestner <mkestner@novell.com>
* MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
2006-03-27 Mike Kestner <mkestner@novell.com>
* ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
the Hilight state to adapt to Alex's CPDrawBorder3D changes.
2006-03-27 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
2006-03-25 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs:
- GroupBox: Inserted a little gap between the text and the lines
on the right side
- Made the code in CPDrawBorder3D more readable
- Corrected the drawing location of the up and down arrows in
CPDrawScrollButton
2006-03-25 Alexander Olk <alex.olk@googlemail.com>
* ControlPaint.cs: Corrected line widths in DrawBorder for
ButtonBorderStyle Inset and Outset
2006-03-25 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs:
- Rewrote the totally broken CPDrawBorder3D method. That was
one of the main problems for the terrific ThemeWin32Classic
look
- Updated and corrected Button drawing
- Correct the dimensions of the SizeGrip to match ms ones
- Removed a small drawing glitch in DrawComboBoxEditDecorations
* XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
Border3DStyle.Sunken to match ms.
2006-03-25 Alexander Olk <alex.olk@googlemail.com>
* ThemeWin32Classic.cs: First small part of the "de-uglify
ThemeWin32Classic" effort, SizeGrip
2006-03-24 Jackson Harper <jackson@ximian.com>
* XplatUIX11.cs: Give a max idle time of one second, this matches
MS and forces an Idle event every second when there are no other
events in the queue.
2006-03-24 Mike Kestner <mkestner@novell.com>
* ListView.cs: Handle (Large|Small)ImageList == null more robustly.
* ListView.Item.cs: fix layout issues with null image lists and images
smaller than checkbox size.
* ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
mode like MS does. It's weird, but consistent. ;-)
Fixes #77890.
2006-03-24 Mike Kestner <mkestner@novell.com>
* ListView.cs: Scroll wheel support for the item control. Fixes
#77839.
2006-03-23 Jackson Harper <jackson@ximian.com>
* ScrollableControl.cs: Special case negative sized areas, not
zero.
* MonthCalendar.cs: Save the rect of the clicked date so we can
use it for invalidation.
- Try to cut down on the number of invalidates
- Invalidate the rect the mouse is over and was over when moving
the mouse, so we get the focus box following the cursor.
2006-03-23 Mike Kestner <mkestner@novell.com>
* ThemeWin32Classic.cs: fix FullRowSelect selection background and
focus rectangle drawing. Fixes #77835.
2006-03-23 Mike Kestner <mkestner@novell.com>
* XplatUIX11.cs: rework the fix for #77828 by changing the order of
the if and else if and reverting back to the original == check on the
None conditional.
2006-03-23 Alexander Olk <alex.olk@googlemail.com>
* FontDialog.cs: Update the example panel if the selected index of
the fontListBox changes.
2006-03-23 Alexander Olk <alex.olk@googlemail.com>
* FileDialog.cs: Make FileDialog remember which directory it was in
last in the same execution.
2006-03-22 Mike Kestner <mkestner@novell.com>
* FileDialog.cs: make the DropDownMenu on the toolbar display
RadioChecks since they are mutually exclusive and that's what MS does.
2006-03-22 Mike Kestner <mkestner@novell.com>
* Theme.cs: add Color param to CPDrawMenuGlyph.
* ThemeWin32Classic.cs: do color specific menu glyph rendering so that
checks and radio marks and arrows are visible on highlighted items.
* ControlPaint.cs: update to use new Theme signature.
2006-03-22 Mike Kestner <mkestner@novell.com>
* MenuAPI.cs: only process Enter and arrow keypresses if the tracker
is active. Fixes #77870.
2006-03-22 Alexander Olk <alex.olk@googlemail.com>
* FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
to be focused/selected after startup
2006-03-22 Alexander Olk <alex.olk@googlemail.com>
* ColorDialog.cs:
- Corrected behaviour of Color, AllowFullOpen, FullOpen,
CustomColors and ShowHelp properties
- Some internal rewrites to get better results when using the
ColorMatrix
2006-03-22 Mike Kestner <mkestner@novell.com>
* ListView.cs: hook into Peter's new ResetMouseHover capability to fix
HoverSelection. Fixes #77836.
2006-03-22 Mike Kestner <mkestner@novell.com>
* FileDialog.cs: bugfixes for the toolbar. Use PushButtons instead of
ToggleButtons. (De)Sensitize the Back button around a stack count of
1, not 0. Update ButtonSize based on a pixel count of the win32
control. Adjust the toolbar size/location for new button size.
2006-03-22 Jackson Harper <jackson@ximian.com>
* XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
true.
* ScrollBar.cs: When doing increments and decrements we need to
set the Value property so that ValueChanged gets raised. A
possible optimization here would be to make an internal SetValue
that doesn't invalidate immediately.
* ToolTip.cs: Tooltips get added to their container (when
supplied) so they get disposed when the container is disposed.
- Don't create tooltips for String.Empty. This prevents all these
little 2-3 pixel windows from showing up when running nunit-gui
and driving me mad.
* Form.cs: Don't set topmost when setting the owner if the handles
haven't been created yet. The topmost set will happen when the
handles are created.
2006-03-22 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs:
- DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
- SetVisible: Sending WINDOWPOSCHANGED for all controls when made
visible (to allow them to recalculate their sizes)
2006-03-21 Mike Kestner <mkestner@novell.com>
* ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
methods. Removed a ton of redundant code. Still not really happy with
the border rendering, but I think that's mainly because of the
ControlDarkDark being black instead of a dark grey. Depending on how
close we want to be, we might want to revisit those color choices.
Among the new features added during the refactor were DropDownArrow
pressed rendering, Disabled image rendering. Proper flat appearance
boundary rendering. Removed the Divider and Wrapping dividers since I
can't figure out any combination of themes and conditions to make the
MS control draw a horizontal line on a toolbar despite what the
Divider property docs indicate.
* ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
conditions and incorrect layout. Updated to coding standard.
* ToolBarButton.cs: refactored layout and positioning code from
ToolBar to here. Invalidate wherever possible instead of forcing
redraws of the whole toolbar.
(Known remaining issues: explicit ButtonSize smaller than provided
images.)
2006-03-21 Mike Kestner <mkestner@novell.com>
* ContextMenu.cs (Show): use the position parameter instead of just
showing at the MousePosition.
>>>>>>> .r58288
2006-03-21 Jackson Harper <jackson@ximian.com>
* TabControl.cs: Remove the call to ProcessKeyEventArgs and let
control handle this.
* TreeNodeCollection.cs: If we are clearing the root node we need
to reset top_node so calcs can still happen.
* ThemeWin32Classic.cs: This is a Flags so we need to check
properly.
2006-03-21 Jackson Harper <jackson@ximian.com>
* DataGrid.cs: Create columns when the binding context has been
changed.
* X11Structs.cs: Keysyms are uints.
- Add size to fix build.
2006-03-21 Peter Dennis Bartok <pbartok@novell.com>
* XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
XplatUIOSX.cs:
- Added ResetMouseHover method to allow controls to retrigger
hovering if they need it more than once
- Implemented MouseHoverTime and MouseHoverSize properties
* Timer.cs: Start() must reset the interval
* SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
properties
2006-03-21 Jackson Harper <jackson@ximian.com>
* X11Keyboard.cs: improved layout detection. Move the nonchar
tables into this file.
* KeyboardLayouts.cs: Move the tables into resource files.
2006-03-21 Mike Kestner <mkestner@novell.com>
* ListView.cs: use OnItemActivated to raise events. Fixes #77834.
2006-03-21 Alexander Olk <alex.olk@googlemail.com>
* Mime.cs: Various speed optimizations. Looking up mime types
is now 2 times faster than before
2006-03-17 Peter Dennis Bartok <pbartok@novell.com>
* CreateParams.cs: Added internal menu field
* Control.cs:
- Switched call order for UpdateBounds; now we always call
the one that also takes ClientSize, and we're calculating the
client size via driver method in the others. The previous
method of tracking client size by difference wasn't working
for forms where even the starting client size wouldn't match
the overall form size (due to borders) (Part of fix for #77729)
- CreateParams(): Do not use parent.Handle unless the handle is
already created. Causes havoc with Nexxia and throws off our
creation of controls
* XplatUIX11.cs:
- Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
- Switched handling of ConfigureNotify over to new PerformNCCalc
method (consolidates code)
- Changed RequestNCRecalc to use new PerformNCCalc method
- Added calls to RequestNCRecalc when menus and borders are changed
to allow app to set NC size. (Part of fix for #77729) This matches
when MS send a WM_NCRECALC on Win32 windows.
- Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
(Part of fix for #77729). This matches what MS does, they also
send that message when the form is made visible.
- XException.GetMessage: Improved usability of X errors by including
a translation of the window into Hwnd and Control class
- Improved debug info for window creation, reparenting and destruction
- Created helper method WindowIsMapped() [Currently not used]
* XplatUIWin32.cs: Added ToString() debug helper to RECT structure
* Form.cs:
- CreateParams: Now setting our menu on the new internal menu field
- SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
avoid calculating the same property twice
* Hwnd.cs:
- Improved usability of ToString() for debugging purposes
- GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
determine the height of the menu, instead of just the font. This
required to also create a graphics context and to keep a bmp
around (for performance reasons)
2006-03-17 Peter Dennis Bartok <pbartok@novell.com>
* MenuAPI.cs: Added OnMouseUp method
* Form.cs:
- Now remembering the requested client size, avoids size errors
- WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
instead of base if the menu is active. This is required due to
control now capturing and releasing on down/up and it would
prematurely release our menu capture
2006-03-17 Jackson Harper <jackson@ximian.com>
* KeyboardLayouts.cs: Add the czech layouts.
2006-03-16 Jackson Harper <jackson@ximian.com>
* Control.cs: Use the viewport space when sizing not the controls
client size, so things like ScrollableControl that effect the
viewport size (when scrollbars are added) are computed correctly.
* BindingContext.cs: Cleanup to use the DataSourceEntrys instead
of ManagerEntrys.
- Handle creating BindingManagers for null data sources.
* DataGrid.cs: Bind the cached_currencymgr_events to the real data
source, otherwise when rows are added they are added to the 'fake'
datasource and we will crash when trying to set the position in
those rows.
- Use Implicit scrollbars on the datagrid so they arent
selectable.
2006-03-16 Jackson Harper <jackson@ximian.com>
* Binding.cs:
* InternalWindowManager.cs:
* MdiWindowManager.cs:
* X11Keyboard.cs: I really want Mike to love me again (fix
compiler warnings).
2006-03-16 Peter Dennis Bartok <pbartok@novell.com>
* DataGrid.cs:
- OnMouseDown: Switch to editing mode when clicking on the cell
even if we're clicking on the cell that's currently
selected
- ProcessGridKey: Left/Right now wrap like MS.Net does
- ProcessGridKey: Tab now knows to add a new row when tab is
pressed in the cell of the last column of the
last row
- ProcessGridKey: Enter now adds another row if pressed in the last
row and selectes the new row, same column cell
- ProcessGridKey: Home/End navigate columns, not rows, like
originally implemented
- Broke ProcessKeyPreview code out into an extra Internal method
so it can be called from the edit code
* DataGridTextBox.cs (ProcessKeyMessage):
- Switched to accept Tab keypresses
- Added F2 handling to allow jumping to the end of the edited cell
- Added logic to allow moving caret left/right inside edited cell
and making the edited cell jump when the caret hits cell borders
- Tab and Enter are now passed to the datagrid after being handled
* TextBoxBase.cs:
- Removed capture code now that Control handles it
- set_SelectionStart now ensures caret is visible
2006-03-16 Jackson Harper <jackson@ximian.com>
* TrackBar.cs: Debackwards the increment/decrement for handling
mouse clicks on the bar with vertical trackbars.
* ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
bottom to match MS.
2006-03-16 Mike Kestner <mkestner@novell.com>
* ListView.cs: make shift/ctrl keyboard and mouse selection
consistent with the MS control. Fix a bug in
SelectedListViewItemCollection.Clear that was pissing me off for the
better part of a day because the collection was being altered
underneath us as we walked the list.
2006-03-16 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs: Not sure how we could miss this so long, but it seems
that MS.Net has Capture set all the way from before calling
OnMouseDown through sending the mouse events until after
OnMouseUp. This will fix DataGrid's selection being set to end
at the location of the MouseUp.
2006-03-15 Jackson Harper <jackson@ximian.com>
* BindingContext.cs: Check the binding after its added so that it
can initialize the binding managers and hookup to events.
* Binding.cs: Data members seem to sometimes include rows/cols in
the format Row.Column we now take this into account.
- Hookup to the position changed event so we can update the
control when the position has changed in the data set.
* CurrencyManager.cs: Take into account the row/col naming
convention when creating dataset tables.
* BindingContext.cs: Using a newer better way of storing
datasource/datamember pairs. Hopefully this better matches MS for
looking up binding managers.
2006-03-15 Jackson Harper <jackson@ximian.com>
* BindingContext.cs: The currency manager needs the data member
name, if the member is a data set we use the name to find the
correct table.
* CurrencyManager.cs: When creating the list prefer an IList over
an IListSource.
- Attempt to create a DataTable from a DataSet (TODO: might need
some better error checking here, although MS doesn't seem to have much)
- If we have a DataTable create a view and use it as our list.
2006-03-15 Mike Kestner <mkestner@novell.com>
* ListView.cs: keep a matrix of the icon mode layout to facilitate
keyboard navigation. Support Up/Down/Left/Right selection correctly
for all 4 View modes.
* ListViewItem.cs: add internal row/col fields for icon layouts.
2006-03-15 Jackson Harper <jackson@ximian.com>
* TabControl.cs: Redraw the tabs when we resize so their newly
calculated sizes are drawn on screen.
* X11Keyboard.cs: Begginnings of XIM support. We also now support
composite characters.
* XplatUIX11.cs: Keyboard driver needs to know about focus changes
- filter events so that composite characters can be created
patches by peter
* X11Structs.cs: Add XIMProperties enum.
2006-03-14 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs (BringToFront, SendToBack): Don't use window or handle
unless it's created
2006-03-14 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs (PerformLayout): We don't need to consider visiblity
for anchoring, only for docking. This fixes 'whacky' alignment
in listbox and other controls that use implicit scrollbars after
the previous PerformLayout patch
* ListBox.cs: Switched to use implicit scrollbars
2006-03-14 Mike Kestner <mkestner@novell.com>
* ToolBar.cs:
* VScrollBar.cs:
- chain up the "new event" overrides to base and use
OnEvent to raise them. Part of fix for bug #76509.
2006-03-14 Alexander Olk <alex.olk@googlemail.com>
* FileDialog.cs: Do not select an item in the parent directory
on backspace
2006-03-14 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs (PerformLayout): It would seem that we considered
invisible windows for our layout. Not quite the right thing
to do. Now we don't any longer, thereby fixing bug #76889.
2006-03-14 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs (CanFocus): I goofed. A control can have focus
even though it's not selectable. Made it match MS docs.
2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
* ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
center by default (fixes #76895)
* ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced
all uses of Border3DSides.All with the explicit ORd together
Left|Right|Top|Bottom because I assume that nobody was aware
that All also implies a center fill. Most places I checked had
a fill right above.
* ProgressBarStyle.cs: Added
2006-03-13 Mike Kestner <mkestner@novell.com>
* ListView.cs: fix breakage in drag shadow header positioning
from Peter's csc compilation fix.
2006-03-13 Mike Kestner <mkestner@novell.com>
* ListView.cs: fix NRE produced by backspacing twice in a focused
FileDialog.
2006-03-13 Mike Kestner <mkestner@novell.com>
* ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
* Hwnd.cs: Added fixed_size field to track windows whose size cannot
be changed
* XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
the allowed size before making programmatic size changes
2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are
set, metacity is broken and will still use the emty sizes in
the struct. (Fix for #77089)
2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIStructs.cs: Split WindowStyles into WindowStyles and
WindowExStyles and marked both enums as Flags
* Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
to match WindowStyles split
* XplatUIX11.cs:
- SetWMStyles: Added cehck to not apply WM attributes to Child windows
- Updated to match WindowStyles split
* XplatUIWin32.cs:
- Fixed FosterParent creation, was using ExStyle on the Style field
(This should help with Popup focus issues)
- Updated to match WindowStyles split
2006-03-13 Jackson Harper <jackson@ximian.com>
* MdiWindowManager.cs: Use the system menu height. Fixes some
strange sizing issues.
2006-03-12 Peter Dennis Bartok <pbartok@novell.com>
* RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
* TextBoxBase.cs:
- Scroll to caret after inserting text (#77672)
- Make scroll range one pixel higher, fixes off-by-one error (and
makes underlines visible on the last line)
2006-03-12 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
the keyboard state from being stuck with keys in 'pressed' state when
focus is switched away via keyboard
* X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
reset the keyboard if no X11 KeyUp events are expected to come
* X11Structs.cs: Switched type of Visible to bool to match driver
2006-03-12 Peter Dennis Bartok <pbartok@novell.com>
* TextControl.cs:
- Switched caret to be just 1 pixel wide, matches MS and looks less
clunky
- Moved caret display 1 pixel down from the top of the control
to improve view
- InsertCharAtCharet: Update the selection start if moving the caret
(fixes bug #77696; based on patch suggested by kazuki@panicode.com)
- No longer always creating the caret when the caret methods are
called. Only the actual ShowCaret/HideCaret will do that now
- Only setting caret visible if the owner control has focus
- UpdateView: Added invalidation-shortcut logic for center and right
aligned text. Previously we'd update all according to the left
logic which caused drawing errors. Also fixed height of invalidated
areas, now properly invalidating the whole area (was off-by-one)
- owner_HandleCreated: Always generate the document when the
handle is created; this ensures that
* TextBoxBase.cs:
- Fixed situation where caret would disappear under the right
window border, also improved scrolling behaviour on left-
aligned textboxes
- Fixed right-aligned textboxes to have a border to the
right instead of the caret being under the right border
* XplatUIX11.cs:
- Switched from 'nested' to simple visible/not visible tracking
for caret (part of fix for #77671)
- No longer passing through translated FocusIn/FocusOut messages
since we were notifying too often and the wrong windows. Instead
we just notify our focussed window of receiving or loosing focus
* XplatUIWin32.cs: Switched from 'nested' show/hide
counting for caret to simple visible yes/no behaviour (part of
fix for #77671)
2006-03-11 Alexander Olk <alex.olk@googlemail.com>
* Mime.cs: Remove debug code...
2006-03-11 Alexander Olk <alex.olk@googlemail.com>
* MimeGenerated.cs: Removed
* Mime.cs: Mime now reads the mime data (magic, globs, aliases
and subclasses) from /usr/(local/)share/mime and
$HOME/.local/share/mime.
2006-03-10 Jackson Harper <jackson@ximian.com>
* MdiWindowManager.cs: Recalc the NC area when a window is
maximized/restored so that the menu area is drawn on forms that
don't have a menu.
2006-03-10 Peter Dennis Bartok <pbartok@novell.com>
* XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
us to force a WM_NCCALCRESIZE message being sent. This is needed
for MDI maximizing.
2006-03-10 Jackson Harper <jackson@ximian.com>
* Form.cs: We need to use the ActiveMenu when calculating menu
height.
- Fix nullref when the window manager hasn't been created yet.
* Control.cs: Fix nullref when we try to bring a control to the
front that has no parent.
* MdiWindowManager.cs: Use the MaximizedMenu for calculating
height.
- Add a dummy item to the maximized menu so it always has the
correct height. Otherwise when there are no menus we don't get our
icon and buttons.
2006-03-10 Jackson Harper <jackson@ximian.com>
* MenuAPI.cs: Make this available elsewhere. I need it in some MDI
stuff.
* Form.cs: Make the window_state internal so the window managers
can track it.
- When an MDI child is maximized let its window manager create the
main menu (so it can add its icon).
- Notify the window managers of state changes
- Let the window manager paint its buttons and handle button
clicks on the menu when it is maximized.
* InternalWindowManager.cs: Move the prev_bounds into the mdi
window manager, since tool windows don't use it, only mdi windows.
- Tell the main form that we don't want it to handle NCPAINT
itself to avoid extra painting.
- Handle clicks on a maximized windows menu.
- Handle window state changes
- Handle minimize/maximize clicks correctly by setting the window state.
* MdiWindowManager.cs: Add an icon menu that (the menu you get
when clicking on the forms icon).
- New method to create a forms maximized menu. This is its normal
menu + an icon.
- Handle window state changes.
- Handle sizing of maximized windows. Maximized windows are just
drawn bigger then the parent visible area. All controls are still
there, they are just outside the visible area (this matches windows).
* MdiClient.cs: No scrollbars when a child window is maximized.
- Let the children windows figure out how big they should be when
sizing maximized windows.
- Implement a version of ArrangeIconicWindows somewhat similar to
Windows version. There are some little differences, but I don't
think any app will rely on the layout of minimized mdi windows.
2006-03-10 Peter Dennis Bartok <pbartok@novell.com>
* Padding.cs: Several fixes to allow compiling with csc 2.0
2006-03-09 Jackson Harper <jackson@ximian.com>
* Menu.cs:
* MenuItem.cs: Cheap hack so we can add items to the list without
the events being raised. This allows adding mdi items during
drawing. TODO: Should probably find a better time to add the items.
2006-03-10 Peter Dennis Bartok <pbartok@novell.com>
* ThemeWin32Classic.cs:
- CheckBox_DrawText: Added logic to not wrap if not enough space
is available (Fix for bug #77727)
- RadioButton_DrawText: Added logic not to wrap if not enough
space is available (Fix for bug #77727). Also removed some
duplicate code, DrawString always drawing the regular text
before hitting the if statement.
2006-03-10 Peter Dennis Bartok <pbartok@novell.com>
* XplatUIX11.cs: Handle an unmapped window state in SetWindowState
2006-03-10 Peter Dennis Bartok <pbartok@novell.com>
* PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
* ContainerControl.cs: Partial implementation of some 2.0 scaling
methods. Moved the new 2.0 properties into alphabetical order with
other properties and added MonoTODO tags
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* AutoScaleMode.cs: Added. Fix build.
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
and was requiring premature handle creation for calls from above
* Form.cs, Control.cs: Removed handle arguments from calls to
CalculateClientRect()
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* ListView.cs (HeaderMouseMove): Fix csc compilation.
drag_column.column_rect is MarshalByRef and can't be used that way
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* AxHost.cs: Added deserialization constructor for
AxHost+State (fixes 77743)
2006-03-09 Mike Kestner <mkestner@novell.com>
* ListView.cs:
- Added column drag reordering for details view.
- fixed behavior when mouse is dragged off column and
AllowColumnReorder is false.
* ColumnHeader.cs: clone the format too in Clone.
* Theme.cs: add DrawListViewHeaderDragDetails method.
* ThemeWin32Classic.cs:
- impl new method for drawing drag column shadows and targets.
- support column offset for details mode in DrawListViewItem.
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* TextControl.cs: Reset the char_count when the document is cleared
(Fixes bug reported on mono-winforms mailing list)
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
of calling base we simply process the key ourselves, since both
DefWindowProc and the handled method would set m.Result.
(Fixes #77732)
2006-03-09 Peter Dennis Bartok <pbartok@novell.com>
* Form.cs(ScaleCore): No longer calling base.ScaleCore since that
method also moves the window; instead implemented a copy of
Control.ScaleCore (Part of fix for #77456)
* TextBoxBase.cs:
- Created new CreateGraphicsInternal method to allow providing
a graphics context when no handle is created without triggering
handle creation. (Part of fix for #77456)
- Replaced use of Control.CreateGraphics with CreateGraphicsInternal
* TextControl.cs:
- Switched Constructor to require TextBoxBase instead of Control (to
allow uncast access to CreateGraphicsInternal)
- Safeguarded use of owner.Handle property. No longer accessing it
unless the handle is already created.
- Replaced use of Control.CreateGraphics with CreateGraphicsInternal
- Now triggering a recalc when owning control becomes visible
* TextBox.cs, RichTextBox.cs: Switched to use new internal
TextBoxBase.CreateGraphicsInternal() method to avoid triggering
premature handle creation (Part of fix for #77456)
* Control.cs:
- We now only destroy our double-buffering buffers when the
control is resized or disposed, but not when visibility
changes. (The code even re-created them twice every time)
- Now requiring a redraw of the buffer on visibility changes
(fixes bug 77654 part 2)
- Not passing OnParentVisibleChanged up unless the control
is visible
- CanFocus: Fixed to match MS documentation
- Focus: Fixed to return actual focus state and to check if
setting focus is legal before setting it
2006-03-08 Peter Dennis Bartok <pbartok@novell.com>
* ThemeWin32Classic.cs: TabPages cannot have focus. Determine
when to draw focus rectangle by looking at parent focus and
selected state instead. This fixes TabPages on Linux sometimes
having none or multiple focus rectangles.
* XplatUIX11.cs (SetFocus):
- Don't set the focus if the same window already has focus
- Use SendMessage instead of PostMessage (like it's Win32
equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
to match MS behaviour
* TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
are not selectable.
2006-03-07 Jackson Harper <jackson@ximian.com>
* PictureBox.cs: Revert line I accidently committed last week.
2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs:
- Added new IsRecreating and ParentIsRecreating properties to
allow testing if RecreateHandle has been called on ourselves
or one of our parents
- WndProc(WM_DESTROY): If our control handle is being recreated
we immediately need to create the handle when receiving the
destroy, that way our child windows find a valid parent handle
when they themselves are being recreated upon WM_DESTROY receipt
(fix for bug #77654 part 1)
* XplatUIX11.cs:
- DestroyWindow: WM_DESTROY must be sent to our own window before
notifying any child windows. MS documents that child windows
are still valid when WM_DESTROY is received. (Control now relies on
this behaviour)
- Added some fine-grain debug options
2006-03-06 Jackson Harper <jackson@ximian.com>
* MdiClient.cs: Redid scrolling logic a bit to create a virtual
box and base calculations off this.
* MdiChildContext.cs:
* MdiWindowManager.cs: Don't need to ensure scrollbars here
anymore.
2006-03-06 Peter Dennis Bartok <pbartok@novell.com>
* Splitter.cs: In situations where the affected control is added
to the parent's control list after the splitter, we would not
populate affected. Now we try populating it on mousedown, if
it's not already set, and force it to be re-set whenever our
parent changes.
2006-03-03 Matt Hargett <matt@use.net>
* Control.cs: implement Control.Padding
* Padding.cs: -Padding.All returns -1 when constructing with the
implicit default ctor
-Padding.ToString() matches MS.NET
* ContainerControl.cs: implement
ContainerControl.AutoScaleDimensions
* ListControl.cs: implement ListControl.FormattingEnabled
* TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
* ButtonBase.cs:
* TabPage.cs: Implement UseVisualStyleBackColor.
* PictureBox.cs: Implement PictureBox.InitialImage.
2006-03-03 Mike Kestner <mkestner@novell.com>
* ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
event declarations to proxy to base event.
* ListViewItem.cs: update to use ItemControl.
* Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
* ThemeWin32Classic.cs: update to new ListView theme API and fix
column header label rendering for 0 width columns.
2006-03-03 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs (ControlCollection.SetChildIndex): Avoid using a call
that causes the control to be created. Fixes #77476.
2006-03-02 Jackson Harper <jackson@ximian.com>
* Hwnd.cs: Clear the nc pending when clearing the NC area, not the
expose_pending.
2006-03-02 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
passed in for the EventArgs (fixes #77690)
2006-03-01 Jackson Harper <jackson@ximian.com>
* ScrollBar.cs: Refresh afterbeing resized.
2006-02-28 Mike Kestner <mkestner@novell.com>
* MenuAPI.cs: Call PerformPopup internal method to emit Popup.
Clean up a tracker compile warning.
* MenuItem.cs: add internal PerformPopup method.
[Fixes #77457]
2006-02-28 Peter Dennis Bartok <pbartok@novell.com>
* TextBoxBase.cs (set_Text): Recalculate the document (causing an
implicit expose) when the text is set to null
2006-02-28 Peter Dennis Bartok <pbartok@novell.com>
* RichTextBox.cs (FlushText): When newline is true, we always
need to split the line, even if no text is on it and we may
never eat newlines. (Fixes #77669)
2006-02-28 Mike Kestner <mkestner@novell.com>
* ListView.cs: Add UpdateSelection internal method. Remove SelectItem
and set Selected instead.
* ListViewItem.cs: Call owner.UpdateSelection to manipulate the
collections.
2006-02-28 Peter Dennis Bartok <pbartok@novell.com>
* ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
2006-02-28 Alexander Olk <alex.olk@googlemail.com>
* FontDialog.cs:
- Got rid of the panel. All controls are now directly added to
the dialog form
- It is now possible to set a font with the Font property
- MinSize and MaxSize property do now what they should
- ShowApply, ShowHelp, ShowColor, ShowEffects likewise
- Searching and selecting a font with the font textbox works now,
the same applies to the style and size textbox
- Draw the correct 3D border in the example panel
- Fixed a little mem leak (unused fonts didn't get disposed)
- Many other internal updates/rewrites...
- Fix typo
2006-02-27 Peter Dennis Bartok <pbartok@novell.com>
* TextControl.cs:
- InsertRTFFromStream: Added 'number of characters inserted' argument
- set_SelectedRTF: Now using the number of characters to calculate
the new location for the selection and cursor (x/y cannot be used
due to potentially already wrapped text)
2006-02-27 Peter Dennis Bartok <pbartok@novell.com>
* TextControl.cs: Added property and implemented means to allow
disabling recalculation of a document (can be used to speed up
multiple inserts and is needed to make RTF inserts predictable, see
bug #77659)
* RichTextBox.cs: Using the new NoRecalc property of Document to
keep x/y insert locations predictable. Also makes it faster inserting
large chunks of RTF
2006-02-27 Peter Dennis Bartok <pbartok@novell.com>
* Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
it's easier for a child control to handle the other messages without