1 unit ReplacePresetListFrame;
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, BottleDef, StrReplace, StdCtrls, ReplacePresetEditor, Menus;
10 TfrmReplacePresetList = class(TFrame)
18 procedure btnMoveUpClick(Sender: TObject);
19 procedure btnMoveDownClick(Sender: TObject);
20 procedure btnEditClick(Sender: TObject);
21 procedure btnCloneClick(Sender: TObject);
22 procedure btnDeleteClick(Sender: TObject);
23 procedure btnAddClick(Sender: TObject);
24 procedure lstPresetsDrawItem(Control: TWinControl; Index: Integer;
25 Rect: TRect; State: TOwnerDrawState);
26 procedure lstPresetsDblClick(Sender: TObject);
28 procedure MoveItem(const Delta: Integer);
30 procedure UpdateControls;
37 { TfrmReplacePresetList }
39 procedure TfrmReplacePresetList.UpdateControls;
42 Presets: TReplacePresetCollection;
44 Presets := Pref.ReplacePresets.Presets;
45 with lstPresets.Items do
50 for i := 0 to Presets.Count-1 do
52 Add(Presets[i].Title);
60 procedure TfrmReplacePresetList.btnMoveUpClick(Sender: TObject);
65 procedure TfrmReplacePresetList.btnMoveDownClick(Sender: TObject);
70 procedure TfrmReplacePresetList.MoveItem(const Delta: Integer);
73 Presets: TReplacePresetCollection;
76 TargetIndex := lstPresets.ItemIndex;
77 if TargetIndex < 0 then
79 if (TargetIndex + Delta < 0) or (TargetIndex + Delta >= lstPresets.Count) then
81 Presets := Pref.ReplacePresets.Presets;
82 //
\88ê
\92U
\83A
\83C
\83e
\83\80\82ð
\94²
\82«
\8fo
\82·
83 Item := Presets[TargetIndex];
84 Item.Collection := nil; //
\82±
\82ê
\82Å
\83R
\83\8c\83N
\83V
\83\87\83\93\82©
\82ç
\8aO
\82ê
\82é
85 //
\90V
\82µ
\82¢
\8fê
\8f\8a\82É
\83A
\83C
\83e
\83\80\82ð
\8dì
\82Á
\82Ä
\91ã
\93ü
\82·
\82é
86 Presets.Insert(TargetIndex + Delta).Assign(Item);
87 lstPresets.Items.Move(TargetIndex, TargetIndex + Delta);
88 lstPresets.ItemIndex := TargetIndex + Delta;
91 procedure TfrmReplacePresetList.btnEditClick(Sender: TObject);
93 Target: TReplacePreset;
95 Form: TfrmReplacePresetEditor;
97 Index := lstPresets.ItemIndex;
100 Target := Pref.ReplacePresets.Presets[Index];
101 Application.CreateForm(TfrmReplacePresetEditor, Form);
106 Title := Target.Title;
107 ShortCut := Target.ShortCut;
108 Pairs := Target.Pairs;
109 ConfirmAfterReplace := Target.ConfirmAfterReplace;
112 Target.Title := Title;
113 Target.ShortCut := ShortCut;
114 Target.Pairs := Pairs;
115 Target.ConfirmAfterReplace := ConfirmAfterReplace;
116 lstPresets.Invalidate;
124 procedure TfrmReplacePresetList.btnCloneClick(Sender: TObject);
127 Target, New: TReplacePreset;
129 Index := lstPresets.ItemIndex;
132 Target := Pref.ReplacePresets.Presets[Index];
133 New := Pref.ReplacePresets.Presets.Add;
135 New.Title := Target.Title + '
\82Ì
\83R
\83s
\81[';
136 lstPresets.Items.Add(New.Title);
137 lstPresets.ItemIndex := lstPresets.Items.Count-1;
140 procedure TfrmReplacePresetList.btnDeleteClick(Sender: TObject);
143 Target: TReplacePreset;
145 Index := lstPresets.ItemIndex;
148 Target := Pref.ReplacePresets.Presets[Index];
149 Target.Free; //
\8f\9f\8eè
\82É
\83R
\83\8c\83N
\83V
\83\87\83\93\82Ì
\83\8a\83X
\83g
\82©
\82ç
\8aO
\82ê
\82é
150 lstPresets.Items.Delete(Index);
153 procedure TfrmReplacePresetList.btnAddClick(Sender: TObject);
156 Form: TfrmReplacePresetEditor;
158 New := TReplacePreset.Create(nil);
160 Application.CreateForm(TfrmReplacePresetEditor, Form);
165 Title := '
\96¼
\8fÌ
\96¢
\90Ý
\92è';
169 New.ShortCut := ShortCut;
171 New.ConfirmAfterReplace := ConfirmAfterReplace;
172 Pref.ReplacePresets.Presets.Add.Assign(New);
173 lstPresets.Items.Add(New.Title);
184 procedure TfrmReplacePresetList.lstPresetsDrawItem(Control: TWinControl;
185 Index: Integer; Rect: TRect; State: TOwnerDrawState);
189 Target: TReplacePreset;
191 lstPresets.Canvas.FillRect(Rect);
193 //
\83e
\83L
\83X
\83g
\95`
\89æ
\97Ì
\88æ
\82Ì
\83}
\81[
\83W
\83\93\82ð
\8eæ
\82é
199 Bottom := Bottom - 2;
202 Target := Pref.ReplacePresets.Presets[Index];
203 with lstPresets.Canvas do
205 //
\83V
\83\87\81[
\83g
\83J
\83b
\83g
206 Font.Style := Font.Style + [fsBold];
207 Str := ShortCutToText(Target.ShortCut);
210 DrawText(Handle, PChar(Str), -1, Rect, DT_RIGHT);
214 //
\83^
\83C
\83g
\83\8b
216 Rect.Right := Rect.Right - w - 10;
217 y := DrawText(Handle, PChar(Str), -1, Rect, DT_SINGLELINE or DT_END_ELLIPSIS);
219 Font.Style := Font.Style - [fsBold];
220 Str := Target.Pairs.StringExpression;
221 Rect.Top := Rect.Top + y;
222 Rect.Left := Rect.Left + 5;
223 Rect.Right := Rect.Right + w + 10;
224 DrawText(Handle, PChar(Str), -1, Rect,
225 DT_NOPREFIX or DT_WORDBREAK or DT_END_ELLIPSIS or DT_EDITCONTROL);
229 procedure TfrmReplacePresetList.lstPresetsDblClick(Sender: TObject);