OSDN Git Service

ReplacePresetListFrameを追加して、設定画面に貼り付け。
authornaru <bottle@mikage.to>
Sat, 20 Mar 2004 16:26:20 +0000 (16:26 +0000)
committernaru <bottle@mikage.to>
Sat, 20 Mar 2004 16:26:20 +0000 (16:26 +0000)
アクションのエディタ関係も連動して少し配置修正。

bottleclient/BottleChainListFrame.dfm
bottleclient/ReplacePresetListFrame.dfm [new file with mode: 0644]
bottleclient/ReplacePresetListFrame.pas [new file with mode: 0644]
bottleclient/SettingForm.dfm
bottleclient/SettingForm.pas
bottleclient/SstpBottle.dpr

index 790bfd5..1134136 100755 (executable)
@@ -1,16 +1,16 @@
 object frmBottleChainList: TfrmBottleChainList
   Left = 0
   Top = 0
-  Width = 362
+  Width = 420
   Height = 260
   TabOrder = 0
   DesignSize = (
-    362
+    420
     260)
   object lstRules: TCheckListBox
     Left = 0
     Top = 0
-    Width = 289
+    Width = 347
     Height = 260
     OnClickCheck = lstRulesClickCheck
     Align = alLeft
@@ -23,7 +23,7 @@ object frmBottleChainList: TfrmBottleChainList
     OnMeasureItem = lstRulesMeasureItem
   end
   object btnDelete: TButton
-    Left = 294
+    Left = 352
     Top = 200
     Width = 65
     Height = 25
@@ -33,7 +33,7 @@ object frmBottleChainList: TfrmBottleChainList
     OnClick = btnDeleteClick
   end
   object btnAdd: TButton
-    Left = 294
+    Left = 352
     Top = 232
     Width = 65
     Height = 25
@@ -43,9 +43,9 @@ object frmBottleChainList: TfrmBottleChainList
     OnClick = btnAddClick
   end
   object btnDown: TButton
-    Left = 294
+    Left = 352
     Top = 96
-    Width = 67
+    Width = 65
     Height = 25
     Anchors = [akRight, akBottom]
     Caption = #19979#12408'(&D)'
@@ -53,9 +53,9 @@ object frmBottleChainList: TfrmBottleChainList
     OnClick = btnDownClick
   end
   object btnUp: TButton
-    Left = 294
+    Left = 352
     Top = 64
-    Width = 67
+    Width = 65
     Height = 25
     Anchors = [akRight, akBottom]
     Caption = #19978#12408'(&U)'
@@ -63,7 +63,7 @@ object frmBottleChainList: TfrmBottleChainList
     OnClick = btnUpClick
   end
   object btnEdit: TButton
-    Left = 294
+    Left = 352
     Top = 136
     Width = 65
     Height = 25
@@ -73,7 +73,7 @@ object frmBottleChainList: TfrmBottleChainList
     OnClick = EditRule
   end
   object btnDuplicate: TButton
-    Left = 294
+    Left = 352
     Top = 168
     Width = 65
     Height = 25
diff --git a/bottleclient/ReplacePresetListFrame.dfm b/bottleclient/ReplacePresetListFrame.dfm
new file mode 100644 (file)
index 0000000..32da62c
--- /dev/null
@@ -0,0 +1,81 @@
+object frmReplacePresetList: TfrmReplacePresetList
+  Left = 0
+  Top = 0
+  Width = 420
+  Height = 260
+  TabOrder = 0
+  DesignSize = (
+    420
+    260)
+  object lstPresets: TListBox
+    Left = 0
+    Top = 0
+    Width = 348
+    Height = 260
+    Style = lbOwnerDrawFixed
+    Align = alLeft
+    Anchors = [akLeft, akTop, akRight, akBottom]
+    ItemHeight = 48
+    TabOrder = 0
+  end
+  object btnMoveUp: TButton
+    Left = 353
+    Top = 64
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #19978#12408'(&U)'
+    TabOrder = 1
+    OnClick = btnMoveUpClick
+  end
+  object btnMoveDown: TButton
+    Left = 353
+    Top = 96
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #19979#12408'(&O)'
+    TabOrder = 2
+    OnClick = btnMoveDownClick
+  end
+  object btnEdit: TButton
+    Left = 353
+    Top = 136
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #32232#38598'(&E)'
+    TabOrder = 3
+    OnClick = btnEditClick
+  end
+  object btnClone: TButton
+    Left = 353
+    Top = 168
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #12467#12500#12540'(&C)'
+    TabOrder = 4
+    OnClick = btnCloneClick
+  end
+  object btnDelete: TButton
+    Left = 353
+    Top = 200
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #21066#38500'(&D)'
+    TabOrder = 5
+    OnClick = btnDeleteClick
+  end
+  object btnAdd: TButton
+    Left = 353
+    Top = 230
+    Width = 65
+    Height = 25
+    Anchors = [akRight, akBottom]
+    Caption = #36861#21152'(&I)'
+    TabOrder = 6
+    OnClick = btnAddClick
+  end
+end
diff --git a/bottleclient/ReplacePresetListFrame.pas b/bottleclient/ReplacePresetListFrame.pas
new file mode 100644 (file)
index 0000000..a2c179f
--- /dev/null
@@ -0,0 +1,174 @@
+unit ReplacePresetListFrame;
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, BottleDef, StrReplace, StdCtrls, ReplacePresetEditor;
+
+type
+  TfrmReplacePresetList = class(TFrame)
+    lstPresets: TListBox;
+    btnMoveUp: TButton;
+    btnMoveDown: TButton;
+    btnEdit: TButton;
+    btnClone: TButton;
+    btnDelete: TButton;
+    btnAdd: TButton;
+    procedure btnMoveUpClick(Sender: TObject);
+    procedure btnMoveDownClick(Sender: TObject);
+    procedure btnEditClick(Sender: TObject);
+    procedure btnCloneClick(Sender: TObject);
+    procedure btnDeleteClick(Sender: TObject);
+    procedure btnAddClick(Sender: TObject);
+  protected
+    procedure MoveItem(const Delta: Integer);
+  public
+    procedure UpdateControls;
+  end;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrmReplacePresetList }
+
+procedure TfrmReplacePresetList.UpdateControls;
+var
+  i: Integer;
+  Presets: TReplacePresetCollection;
+begin
+  Presets := Pref.ReplacePresets.Presets;
+  with lstPresets.Items do
+  begin
+    BeginUpdate;
+    try
+      Clear;
+      for i := 0 to Presets.Count-1 do
+      begin
+        Add(Presets[i].Title);
+      end;
+    finally
+      EndUpdate;
+    end;
+  end;
+end;
+
+procedure TfrmReplacePresetList.btnMoveUpClick(Sender: TObject);
+begin
+  MoveItem(-1);
+end;
+
+procedure TfrmReplacePresetList.btnMoveDownClick(Sender: TObject);
+begin
+  MoveItem(1);
+end;
+
+procedure TfrmReplacePresetList.MoveItem(const Delta: Integer);
+var
+  TargetIndex: Integer;
+  Presets: TReplacePresetCollection;
+  Item: TReplacePreset;
+begin
+  TargetIndex := lstPresets.ItemIndex;
+  if TargetIndex < 0 then
+    Exit;
+  if (TargetIndex + Delta < 0) or (TargetIndex + Delta >= lstPresets.Count) then
+    Exit;
+  Presets := Pref.ReplacePresets.Presets;
+  // \88ê\92U\83A\83C\83e\83\80\82ð\94²\82«\8fo\82·
+  Item := Presets[TargetIndex];
+  Item.Collection := nil; // \82±\82ê\82Å\83R\83\8c\83N\83V\83\87\83\93\82©\82ç\8aO\82ê\82é
+  // \90V\82µ\82¢\8fê\8f\8a\82É\83A\83C\83e\83\80\82ð\8dì\82Á\82Ä\91ã\93ü\82·\82é
+  Presets.Insert(TargetIndex + Delta).Assign(Item);
+  lstPresets.Items.Move(TargetIndex, TargetIndex + Delta);
+end;
+
+procedure TfrmReplacePresetList.btnEditClick(Sender: TObject);
+var
+  Target: TReplacePreset;
+  Index: Integer;
+  Form: TfrmReplacePresetEditor;
+begin
+  Index := lstPresets.ItemIndex;
+  if Index < 0 then
+    Exit;
+  Target := Pref.ReplacePresets.Presets[Index];
+  Application.CreateForm(TfrmReplacePresetEditor, Form);
+  try
+    with Form do
+    begin
+      AskForTitle := true;
+      Title    := Target.Title;
+      ShortCut := Target.ShortCut;
+      Pairs    := Target.Pairs;
+      if Execute then
+      begin
+        Target.Title    := Title;
+        Target.ShortCut := ShortCut;
+        Target.Pairs    := Pairs;
+        lstPresets.Invalidate;
+      end;
+    end;
+  finally
+    Form.Release;
+  end;
+end;
+
+procedure TfrmReplacePresetList.btnCloneClick(Sender: TObject);
+var
+  Index: Integer;
+  Target, New: TReplacePreset;
+begin
+  Index := lstPresets.ItemIndex;
+  if Index < 0 then
+    Exit;
+  Target := Pref.ReplacePresets.Presets[Index];
+  New := Pref.ReplacePresets.Presets.Add;
+  New.Assign(Target);
+  New.Title := Target.Title + '\82Ì\83R\83s\81[';
+  lstPresets.Items.Add(New.Title);
+  lstPresets.ItemIndex := lstPresets.Items.Count-1;
+end;
+
+procedure TfrmReplacePresetList.btnDeleteClick(Sender: TObject);
+var
+  Index: Integer;
+  Target: TReplacePreset;
+begin
+  Index := lstPresets.ItemIndex;
+  Target := Pref.ReplacePresets.Presets[Index];
+  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é
+  lstPresets.Items.Delete(Index);
+end;
+
+procedure TfrmReplacePresetList.btnAddClick(Sender: TObject);
+var
+  New: TReplacePreset;
+  Form: TfrmReplacePresetEditor;
+begin
+  New := TReplacePreset.Create(nil);
+  try
+    Application.CreateForm(TfrmReplacePresetEditor, Form);
+    try
+      with Form do
+      begin
+        AskForTitle := true;
+        Title    := New.Title;
+        ShortCut := New.ShortCut;
+        Pairs    := New.Pairs;
+        if Execute then
+        begin
+          Pref.ReplacePresets.Presets.Add.Assign(New);
+          lstPresets.Items.Add(New.Title);
+        end;
+      end;
+    finally
+      Form.Release;
+    end;
+  finally
+    New.Free;
+  end;
+end;
+
+end.
index d1f4acc..cc4e1ad 100755 (executable)
@@ -36,7 +36,7 @@ object frmSetting: TfrmSetting
     Top = 32
     Width = 440
     Height = 291
-    ActivePage = tstGeneral
+    ActivePage = tstPresetReplace
     Anchors = [akLeft, akTop, akRight, akBottom]
     MultiLine = True
     TabOrder = 0
@@ -443,40 +443,24 @@ object frmSetting: TfrmSetting
       inline frmRuleList: TfrmBottleChainList
         Left = 4
         Top = 7
-        Width = 421
+        Width = 420
+        Height = 260
+        TabOrder = 0
+      end
+    end
+    object tstPresetReplace: TTabSheet
+      Caption = #12503#12522#12475#12483#12488#32622#25563': '#12513#12491#12517#12540#12363#12425#21628#12403#20986#12379#12427#25991#23383#21015#32622#25563#12398#35373#23450
+      ImageIndex = 10
+      TabVisible = False
+      inline frmReplacePresetList1: TfrmReplacePresetList
+        Left = 4
+        Top = 7
+        Width = 420
         Height = 260
         TabOrder = 0
         DesignSize = (
-          421
+          420
           260)
-        inherited lstRules: TCheckListBox
-          Width = 345
-        end
-        inherited btnDelete: TButton
-          Left = 350
-          Hint = #12523#12540#12523#12434#21066#38500
-        end
-        inherited btnAdd: TButton
-          Left = 350
-          Hint = #26032#12375#12356#12523#12540#12523#12434#36861#21152
-          Caption = #36861#21152'(&I)'
-        end
-        inherited btnDown: TButton
-          Left = 350
-          Hint = #19979#12395#31227#21205
-          Caption = #19979#12408'(&O)'
-        end
-        inherited btnUp: TButton
-          Left = 350
-          Hint = #19978#12395#31227#21205
-        end
-        inherited btnEdit: TButton
-          Left = 350
-          Hint = #29694#22312#12398#12523#12540#12523#12434#32232#38598
-        end
-        inherited btnDuplicate: TButton
-          Left = 350
-        end
       end
     end
     object tstPlayTime: TTabSheet
@@ -653,7 +637,7 @@ object frmSetting: TfrmSetting
         Height = 20
         Hint = #20104#28204#12497#12521#12513#12540#12479#12398#12463#12452#12483#12463#35373#23450
         Style = csDropDownList
-        ItemHeight = 12
+        ItemHeight = 0
         TabOrder = 0
         OnChange = cbxPlayTimeProfileChange
       end
index 883a0ba..3c132b9 100755 (executable)
@@ -12,7 +12,7 @@ uses
   ComCtrls, StdCtrls, ExtCtrls, BottleDef, Spin,
   CPCConfigTreeView, ColorSettingFrame, BottleChainListFrame, SakuraSeekerInstance,
   ImgList, StrListEditor, SppList, Plugins, Clipbrd, SsPlayTime, StrUtils,
-  SpecialCharEditor;
+  SpecialCharEditor, ReplacePresetListFrame;
 
 type
   TfrmSetting = class(TForm)
@@ -105,6 +105,8 @@ type
     edtBrowserName: TEdit;
     BrowserLocateOpenDialog: TOpenDialog;
     btnBrowserLocate: TButton;
+    tstPresetReplace: TTabSheet;
+    frmReplacePresetList1: TfrmReplacePresetList;
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
     procedure edtProxyPortKeyPress(Sender: TObject; var Key: Char);
     procedure ctvBottleNodeChecked(Sender: TObject;
index d8c14f2..0fd2d3a 100755 (executable)
@@ -64,7 +64,8 @@ uses
   RegexUtils in 'RegexUtils.pas',
   StrReplaceFrame in 'StrReplaceFrame.pas' {frmStrReplaceFrame: TFrame},
   StrReplaceDialog in 'StrReplaceDialog.pas' {frmStrReplaceDialog},
-  ReplacePresetEditor in 'ReplacePresetEditor.pas' {frmReplacePresetEditor: TFrame};
+  ReplacePresetEditor in 'ReplacePresetEditor.pas' {frmReplacePresetEditor: TFrame},
+  ReplacePresetListFrame in 'ReplacePresetListFrame.pas' {frmReplacePresetList: TFrame};
 
 // \8c^\95t\82«\92è\90\94\82ð\95Ï\8dX\82Å\82«\82é\82æ\82¤\82É\82·\82é\83R\83\93\83p\83C\83\89\83I\83v\83V\83\87\83\93
 // \88ê\95\94\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82É\82±\82ê\82ª\95K\97v