diff options
Diffstat (limited to 'UOverwrite.pas')
| -rw-r--r-- | UOverwrite.pas | 61 |
1 files changed, 34 insertions, 27 deletions
diff --git a/UOverwrite.pas b/UOverwrite.pas index b35a197..78f057b 100644 --- a/UOverwrite.pas +++ b/UOverwrite.pas @@ -22,7 +22,16 @@ unit UOverwrite; interface uses - SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; + gtk2, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; + +const OVERWRITE_CANCEL = 0; + OVERWRITE_OVERWRITE = 1; + OVERWRITE_OVERWRITE_ALL = 2; + OVERWRITE_SKIP = 3; + OVERWRITE_OVERWRITE_ALL_OLDER = 4; + OVERWRITE_SKIP_ALL = 5; + OVERWRITE_RENAME = 6; + OVERWRITE_APPEND = 7; type TFOverwrite = class(TGTKDialog) @@ -35,7 +44,7 @@ type procedure ButtonClick(Sender: TObject); public RenameStr, SourceFile, DestFile: string; - procedure AddButtons(Sel: integer); + procedure AddButtons(ShowAppend: boolean); procedure DoRename; procedure DoAppend; end; @@ -45,7 +54,7 @@ var implementation -uses ULocale, UCopyMove; +uses gdk2, ULocale, UCopyMove, UCoreUtils; procedure TFOverwrite.FormCreate(Sender: TObject); @@ -103,19 +112,18 @@ 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; + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGCancel))))) then ModalResult := TMessageButton(OVERWRITE_CANCEL) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGOverwriteButton_Caption))))) then ModalResult := TMessageButton(OVERWRITE_OVERWRITE) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGOverwriteAllButton_Caption))))) then ModalResult := TMessageButton(OVERWRITE_OVERWRITE_ALL) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGSkipButton_Caption))))) then ModalResult := TMessageButton(OVERWRITE_SKIP) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGOverwriteAllOlderButton_Caption))))) then ModalResult := TMessageButton(OVERWRITE_OVERWRITE_ALL_OLDER) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGSkipAllButton_Caption))))) then ModalResult := TMessageButton(OVERWRITE_SKIP_ALL) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGRenameButton_Caption))))) then DoRename else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGAppendButton_Caption))))) then DoAppend else + if (Key = GDK_ESCAPE) then ModalResult := TMessageButton(OVERWRITE_CANCEL); end; -procedure TFOverwrite.AddButtons(Sel: integer); +procedure TFOverwrite.AddButtons(ShowAppend: boolean); begin ButtonTable.AddControl(0, 0, 1, 1, OverwriteButton, 0, 0); ButtonTable.AddControl(1, 0, 1, 1, OverwriteAllButton, 0, 0); @@ -124,19 +132,18 @@ begin 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; + if ShowAppend then + ButtonTable.AddControl(1, 2, 1, 1, AppendButton, 0, 0); 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 = OverwriteButton then ModalResult := TMessageButton(OVERWRITE_OVERWRITE) else + if Sender = OverwriteAllButton then ModalResult := TMessageButton(OVERWRITE_OVERWRITE_ALL) else + if Sender = SkipButton then ModalResult := TMessageButton(OVERWRITE_SKIP) else + if Sender = CancelButton then ModalResult := TMessageButton(OVERWRITE_CANCEL) else + if Sender = OverwriteAllOlderButton then ModalResult := TMessageButton(OVERWRITE_OVERWRITE_ALL_OLDER) else + if Sender = SkipAllButton then ModalResult := TMessageButton(OVERWRITE_SKIP_ALL) else if Sender = RenameButton then DoRename else if Sender = AppendButton then DoAppend; end; @@ -149,10 +156,10 @@ begin AFCopyMove.Entry.Text := RenameStr; AFCopyMove.Caption := LANGRename; AFCopyMove.Label1.Caption := Format(LANGRenameFile, [RenameStr]); - AFCopyMove.Entry.SelectRegion(0, Length(AFCopyMove.Entry.Text)); + AFCopyMove.Entry.SelectAll; if AFCopyMove.Run = mbOK then begin RenameStr := AFCopyMove.Entry.Text; - ModalResult := TMessageButton(7); + ModalResult := TMessageButton(OVERWRITE_RENAME); end; finally AFCopyMove.Free; @@ -161,8 +168,8 @@ end; procedure TFOverwrite.DoAppend; begin - if Application.MessageBox(Format(LANGAppendQuestion, [SourceFile, DestFile]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes - then ModalResult := TMessageButton(8); + if Application.MessageBox(PGtkWindow(FWidget), Format(LANGAppendQuestion, [StrToUTF8(ExtractFileName(SourceFile)), StrToUTF8(ExtractFileName(DestFile))]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes + then ModalResult := TMessageButton(OVERWRITE_APPEND); end; |
