summaryrefslogtreecommitdiff
path: root/UOverwrite.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UOverwrite.pas')
-rw-r--r--UOverwrite.pas173
1 files changed, 173 insertions, 0 deletions
diff --git a/UOverwrite.pas b/UOverwrite.pas
new file mode 100644
index 0000000..04cbd1c
--- /dev/null
+++ b/UOverwrite.pas
@@ -0,0 +1,173 @@
+(*
+ Tux Commander - UOverwrite - Overwrite dialog form and related funcions
+ Copyright (C) 2004 Tomas Bzatek <tbzatek@users.sourceforge.net>
+ Check for updates on tuxcmd.sourceforge.net
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*)
+unit UOverwrite;
+
+interface
+
+uses
+ SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts;
+
+type
+ TFOverwrite = class(TGTKDialog)
+ FromLabel, FromInfoLabel, ToLabel, ToInfoLabel: TGTKLabel;
+ ButtonTable: TGTKTable;
+ FromVBox, ToVBox: TGTKVBox;
+ OverwriteButton, OverwriteAllButton, SkipButton, CancelButton, OverwriteAllOlderButton, SkipAllButton, RenameButton, AppendButton : TGTKButton;
+ procedure FormCreate(Sender: TObject); override;
+ procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean);
+ procedure ButtonClick(Sender: TObject);
+ public
+ RenameStr, SourceFile, DestFile: string;
+ procedure AddButtons(Sel: integer);
+ procedure DoRename;
+ procedure DoAppend;
+ end;
+
+var
+ FOverwrite: TFOverwrite;
+
+implementation
+
+uses ULocale, UCopyMove;
+
+
+procedure TFOverwrite.FormCreate(Sender: TObject);
+begin
+ Caption := LANGOverwriteQuestion;
+ FromLabel := TGTKLabel.Create(Self);
+ FromLabel.XAlign := 0; FromLabel.XPadding := 10;
+ FromInfoLabel := TGTKLabel.Create(Self);
+ FromInfoLabel.XAlign := 0; FromInfoLabel.XPadding := 40;
+ ToLabel := TGTKLabel.Create(Self);
+ ToLabel.XAlign := 0; ToLabel.XPadding := 10;
+ ToInfoLabel := TGTKLabel.Create(Self);
+ ToInfoLabel.XAlign := 0; ToInfoLabel.XPadding := 40;
+ OverwriteButton := TGTKButton.Create(Self);
+ OverwriteButton.Caption := LANGOverwriteButton_Caption;
+ OverwriteButton.OnClick := ButtonClick;
+ OverwriteAllButton := TGTKButton.Create(Self);
+ OverwriteAllButton.Caption := LANGOverwriteAllButton_Caption;
+ OverwriteAllButton.OnClick := ButtonClick;
+ SkipButton := TGTKButton.Create(Self);
+ SkipButton.Caption := LANGSkipButton_Caption;
+ SkipButton.OnClick := ButtonClick;
+ CancelButton := TGTKButton.Create(Self);
+ CancelButton.Caption := LANGCancel;
+ CancelButton.OnClick := ButtonClick;
+ OverwriteAllOlderButton := TGTKButton.Create(Self);
+ OverwriteAllOlderButton.Caption := LANGOverwriteAllOlderButton_Caption;
+ OverwriteAllOlderButton.OnClick := ButtonClick;
+ SkipAllButton := TGTKButton.Create(Self);
+ SkipAllButton.Caption := LANGSkipAllButton_Caption;
+ SkipAllButton.OnClick := ButtonClick;
+ RenameButton := TGTKButton.Create(Self);
+ RenameButton.Caption := LANGRenameButton_Caption;
+ RenameButton.OnClick := ButtonClick;
+ AppendButton := TGTKButton.Create(Self);
+ AppendButton.Caption := LANGAppendButton_Caption;
+ AppendButton.OnClick := ButtonClick;
+ ButtonTable := TGTKTable.Create(Self);
+ ButtonTable.RowCount := 3;
+ ButtonTable.ColCount := 3;
+ ButtonTable.RowSpacing := 3;
+ ButtonTable.ColSpacing := 3;
+ ButtonTable.Homogeneous := True;
+ FromVBox := TGTKVBox.Create(Self);
+ FromVBox.AddControlEx(FromLabel, True, True, 0);
+ FromVBox.AddControlEx(FromInfoLabel, True, True, 0);
+ ToVBox := TGTKVBox.Create(Self);
+ ToVBox.AddControlEx(ToLabel, True, True, 0);
+ ToVBox.AddControlEx(ToInfoLabel, True, True, 0);
+ ClientArea.AddControlEx(FromVBox, True, True, 5);
+ ClientArea.AddControlEx(ToVBox, True, True, 5);
+ ActionArea.AddControlEx(ButtonTable, True, True, 0);
+ OnKeyDown := FormKeyDown;
+end;
+
+procedure TFOverwrite.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean);
+begin
+ case Key of
+ GDK_O : ModalResult := TMessageButton(1);
+ GDK_A : ModalResult := TMessageButton(2);
+ GDK_S : ModalResult := TMessageButton(3);
+ GDK_C, GDK_ESCAPE : ModalResult := TMessageButton(4);
+ GDK_D : ModalResult := TMessageButton(5);
+ GDK_K : ModalResult := TMessageButton(6);
+ GDK_R : DoRename;
+ GDK_P : DoAppend;
+ end;
+end;
+
+procedure TFOverwrite.AddButtons(Sel: integer);
+begin
+ ButtonTable.AddControl(0, 0, 1, 1, OverwriteButton, 0, 0);
+ ButtonTable.AddControl(1, 0, 1, 1, OverwriteAllButton, 0, 0);
+ ButtonTable.AddControl(2, 0, 1, 1, SkipButton, 0, 0);
+ ButtonTable.AddControl(0, 1, 1, 1, CancelButton, 0, 0);
+ ButtonTable.AddControl(1, 1, 1, 1, OverwriteAllOlderButton, 0, 0);
+ ButtonTable.AddControl(2, 1, 1, 1, SkipAllButton, 0, 0);
+ ButtonTable.AddControl(0, 2, 1, 1, RenameButton, 0, 0);
+ case Sel of
+ 2 : ButtonTable.AddControl(1, 2, 1, 1, AppendButton, 0, 0);
+ end;
+end;
+
+procedure TFOverwrite.ButtonClick(Sender: TObject);
+begin
+ if Sender = OverwriteButton then ModalResult := TMessageButton(1) else
+ if Sender = OverwriteAllButton then ModalResult := TMessageButton(2) else
+ if Sender = SkipButton then ModalResult := TMessageButton(3) else
+ if Sender = CancelButton then ModalResult := TMessageButton(4) else
+ if Sender = OverwriteAllOlderButton then ModalResult := TMessageButton(5) else
+ if Sender = SkipAllButton then ModalResult := TMessageButton(6) else
+ if Sender = RenameButton then DoRename else
+ if Sender = AppendButton then DoAppend;
+end;
+
+procedure TFOverwrite.DoRename;
+var AFCopyMove: TFCopyMove;
+begin
+ AFCopyMove := TFCopyMove.Create(Self);
+ try
+ AFCopyMove.Entry.Text := RenameStr;
+ AFCopyMove.Caption := LANGRename;
+ AFCopyMove.Label1.Caption := Format(LANGRenameFile, [RenameStr]);
+ AFCopyMove.Entry.SelectRegion(0, Length(AFCopyMove.Entry.Text));
+ if AFCopyMove.Run = mbOK then begin
+ RenameStr := AFCopyMove.Entry.Text;
+ ModalResult := TMessageButton(7);
+ end;
+ finally
+ AFCopyMove.Free;
+ end;
+end;
+
+procedure TFOverwrite.DoAppend;
+begin
+ if Application.MessageBox(Format(LANGAppendQuestion, [ANSIToUTF8(SourceFile), ANSIToUTF8(DestFile)]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes
+ then ModalResult := TMessageButton(8);
+end;
+
+
+
+
+end.
+
+