1 unit States;
2 
3 {$MODE Delphi}
4 {$H+}
5 
6 interface
7 
8 uses
9   LCLIntf, SysUtils, Classes, Graphics, Controls, Forms,
10   Dialogs, StdCtrls, Laz.VirtualTrees, LResources, ExtCtrls;
11 
12 type
13 
14   { TStateForm }
15 
16   TStateForm = class(TForm)
17     EnableCheckBox: TCheckBox;
18     GroupBox1: TGroupBox;
19     CheckBox1: TCheckBox;
20     CheckBox3: TCheckBox;
21     CheckBox4: TCheckBox;
22     CheckBox32: TCheckBox;
23     GroupBox2: TGroupBox;
24     CheckBox8: TCheckBox;
25     CheckBox9: TCheckBox;
26     CheckBox19: TCheckBox;
27     CheckBox20: TCheckBox;
28     CheckBox21: TCheckBox;
29     CheckBox27: TCheckBox;
30     CheckBox43: TCheckBox;
31     CheckBox44: TCheckBox;
32     GroupBox3: TGroupBox;
33     CheckBox10: TCheckBox;
34     CheckBox11: TCheckBox;
35     CheckBox15: TCheckBox;
36     CheckBox16: TCheckBox;
37     CheckBox18: TCheckBox;
38     GroupBox4: TGroupBox;
39     CheckBox5: TCheckBox;
40     CheckBox6: TCheckBox;
41     CheckBox7: TCheckBox;
42     CheckBox24: TCheckBox;
43     CheckBox25: TCheckBox;
44     CheckBox37: TCheckBox;
45     CheckBox41: TCheckBox;
46     CheckBox42: TCheckBox;
47     GroupBox5: TGroupBox;
48     CheckBox31: TCheckBox;
49     CheckBox36: TCheckBox;
50     CheckBox39: TCheckBox;
51     CheckBox40: TCheckBox;
52     GroupBox6: TGroupBox;
53     CheckBox2: TCheckBox;
54     CheckBox12: TCheckBox;
55     CheckBox28: TCheckBox;
56     CheckBox29: TCheckBox;
57     GroupBox7: TGroupBox;
58     CheckBox13: TCheckBox;
59     CheckBox14: TCheckBox;
60     CheckBox17: TCheckBox;
61     CheckBox23: TCheckBox;
62     CheckBox33: TCheckBox;
63     GroupBox8: TGroupBox;
64     CheckBox22: TCheckBox;
65     CheckBox26: TCheckBox;
66     CheckBox30: TCheckBox;
67     CheckBox34: TCheckBox;
68     CheckBox35: TCheckBox;
69     CheckBox38: TCheckBox;
70     CheckBox45: TCheckBox;
71     CheckBox46: TCheckBox;
72     procedure EnableCheckBoxClick(Sender: TObject);
73   protected
74     procedure SetActiveState(CheckBox: TCheckBox; Active: Boolean);
75   end;
76 
77 var
78   StateForm: TStateForm;
79 
80 procedure UpdateStateDisplay(CurrentStates, Enter, Leave: TVirtualTreeStates);
81 
82 //----------------------------------------------------------------------------------------------------------------------
83 
84 implementation
85 
86 {$R *.lfm}
87 
88 
89 //----------------------------------------------------------------------------------------------------------------------
90 
91 procedure UpdateStateDisplay(CurrentStates, Enter, Leave: TVirtualTreeStates);
92 
93 var
94   NewStates: TVirtualTreeStates;
95 
96 begin
97   with StateForm do
98     if EnableCheckBox.Checked then
99     begin
100       // At this point the new states are not yet set. So construct the new set here.
101       NewStates := CurrentStates + Enter - Leave;
102       SetActiveState(CheckBox1, tsChangePending in NewStates);
103       SetActiveState(CheckBox2, tsCollapsing in NewStates);
104       SetActiveState(CheckBox3, tsToggleFocusedSelection in NewStates);
105       SetActiveState(CheckBox4, tsClearPending in NewStates);
106       SetActiveState(CheckBox5, tsClipboardFlushing in NewStates);
107       SetActiveState(CheckBox6, tsCopyPending in NewStates);
108       SetActiveState(CheckBox7, tsCutPending in NewStates);
109       SetActiveState(CheckBox8, tsDrawSelPending in NewStates);
110       SetActiveState(CheckBox9, tsDrawSelecting in NewStates);
111       SetActiveState(CheckBox10, tsEditing in NewStates);
112       SetActiveState(CheckBox11, tsEditPending in NewStates);
113       SetActiveState(CheckBox12, tsExpanding in NewStates);
114       SetActiveState(CheckBox13, tsHint in NewStates);
115       SetActiveState(CheckBox14, tsInAnimation in NewStates);
116       SetActiveState(CheckBox15, tsIncrementalSearching in NewStates);
117       SetActiveState(CheckBox16, tsIncrementalSearchPending in NewStates);
118       SetActiveState(CheckBox17, tsIterating in NewStates);
119       SetActiveState(CheckBox18, tsKeyCheckPending in NewStates);
120       SetActiveState(CheckBox19, tsLeftButtonDown in NewStates);
121       SetActiveState(CheckBox20, tsMouseCheckPending in NewStates);
122       SetActiveState(CheckBox21, tsMiddleButtonDown in NewStates);
123       {$if VTMajorVersion < 5}
124       SetActiveState(CheckBox22, tsNeedScale in NewStates);
125       {$endif}
126       SetActiveState(CheckBox23, tsNeedRootCountUpdate in NewStates);
127       SetActiveState(CheckBox24, tsOLEDragging in NewStates);
128       SetActiveState(CheckBox25, tsOLEDragPending in NewStates);
129       SetActiveState(CheckBox26, tsPainting in NewStates);
130       SetActiveState(CheckBox27, tsRightButtonDown in NewStates);
131       SetActiveState(CheckBox28, tsScrolling in NewStates);
132       SetActiveState(CheckBox29, tsScrollPending in NewStates);
133       SetActiveState(CheckBox30, tsSizing in NewStates);
134       SetActiveState(CheckBox31, tsStopValidation in NewStates);
135       SetActiveState(CheckBox32, tsStructureChangePending in NewStates);
136       SetActiveState(CheckBox33, tsSynchMode in NewStates);
137       SetActiveState(CheckBox34, tsThumbTracking in NewStates);
138       SetActiveState(CheckBox35, tsUpdating in NewStates);
139       SetActiveState(CheckBox36, tsUseCache in NewStates);
140       SetActiveState(CheckBox37, tsUserDragObject in NewStates);
141       SetActiveState(CheckBox38, tsUseThemes in NewStates);
142       SetActiveState(CheckBox39, tsValidating in NewStates);
143       SetActiveState(CheckBox40, tsValidationNeeded in NewStates);
144       SetActiveState(CheckBox41, tsVCLDragging in NewStates);
145       SetActiveState(CheckBox42, tsVCLDragPending in NewStates);
146       SetActiveState(CheckBox43, tsWheelPanning in NewStates);
147       SetActiveState(CheckBox44, tsWheelScrolling in NewStates);
148       SetActiveState(CheckBox45, tsWindowCreating in NewStates);
149       SetActiveState(CheckBox46, tsPopupMenuShown in NewStates);
150 
151       Update;
152     end;
153 end;
154 
155 //----------------------------------------------------------------------------------------------------------------------
156 
157 procedure TStateForm.EnableCheckBoxClick(Sender: TObject);
158 
159 begin
160   CheckBox1.Enabled := EnableCheckBox.Checked;
161   CheckBox2.Enabled := EnableCheckBox.Checked;
162   CheckBox3.Enabled := EnableCheckBox.Checked;
163   CheckBox4.Enabled := EnableCheckBox.Checked;
164   CheckBox5.Enabled := EnableCheckBox.Checked;
165   CheckBox6.Enabled := EnableCheckBox.Checked;
166   CheckBox7.Enabled := EnableCheckBox.Checked;
167   CheckBox8.Enabled := EnableCheckBox.Checked;
168   CheckBox9.Enabled := EnableCheckBox.Checked;
169   CheckBox10.Enabled := EnableCheckBox.Checked;
170   CheckBox11.Enabled := EnableCheckBox.Checked;
171   CheckBox12.Enabled := EnableCheckBox.Checked;
172   CheckBox13.Enabled := EnableCheckBox.Checked;
173   CheckBox14.Enabled := EnableCheckBox.Checked;
174   CheckBox15.Enabled := EnableCheckBox.Checked;
175   CheckBox16.Enabled := EnableCheckBox.Checked;
176   CheckBox17.Enabled := EnableCheckBox.Checked;
177   CheckBox18.Enabled := EnableCheckBox.Checked;
178   CheckBox19.Enabled := EnableCheckBox.Checked;
179   CheckBox20.Enabled := EnableCheckBox.Checked;
180   CheckBox21.Enabled := EnableCheckBox.Checked;
181   CheckBox22.Enabled := EnableCheckBox.Checked;
182   CheckBox23.Enabled := EnableCheckBox.Checked;
183   CheckBox24.Enabled := EnableCheckBox.Checked;
184   CheckBox25.Enabled := EnableCheckBox.Checked;
185   CheckBox26.Enabled := EnableCheckBox.Checked;
186   CheckBox27.Enabled := EnableCheckBox.Checked;
187   CheckBox28.Enabled := EnableCheckBox.Checked;
188   CheckBox29.Enabled := EnableCheckBox.Checked;
189   CheckBox30.Enabled := EnableCheckBox.Checked;
190   CheckBox31.Enabled := EnableCheckBox.Checked;
191   CheckBox32.Enabled := EnableCheckBox.Checked;
192   CheckBox33.Enabled := EnableCheckBox.Checked;
193   CheckBox34.Enabled := EnableCheckBox.Checked;
194   CheckBox35.Enabled := EnableCheckBox.Checked;
195   CheckBox36.Enabled := EnableCheckBox.Checked;
196   CheckBox37.Enabled := EnableCheckBox.Checked;
197   CheckBox38.Enabled := EnableCheckBox.Checked;
198   CheckBox39.Enabled := EnableCheckBox.Checked;
199   CheckBox40.Enabled := EnableCheckBox.Checked;
200   CheckBox41.Enabled := EnableCheckBox.Checked;
201   CheckBox42.Enabled := EnableCheckBox.Checked;
202   CheckBox43.Enabled := EnableCheckBox.Checked;
203   CheckBox44.Enabled := EnableCheckBox.Checked;
204   CheckBox45.Enabled := EnableCheckBox.Checked;
205   CheckBox46.Enabled := EnableCheckBox.Checked;
206 end;
207 
208 //----------------------------------------------------------------------------------------------------------------------
209 
210 procedure TStateForm.SetActiveState(CheckBox: TCheckBox; Active: Boolean);
211 
212 begin
213   CheckBox.Checked := Active;
214   if Active then
215     CheckBox.Font.Style := [fsBold]
216   else
217     CheckBox.Font.Style := [];
218 end;
219 
220 //----------------------------------------------------------------------------------------------------------------------
221 
222 
223 end.
224