diff options
Diffstat (limited to 'UDirDelete.pas')
| -rw-r--r-- | UDirDelete.pas | 85 |
1 files changed, 52 insertions, 33 deletions
diff --git a/UDirDelete.pas b/UDirDelete.pas index 4fa9b5c..8d22d42 100644 --- a/UDirDelete.pas +++ b/UDirDelete.pas @@ -24,27 +24,41 @@ interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; -type - TFDirDelete = class(TGTKDialog) - Label1, Label2, Label3: TGTKLabel; - procedure FormCreate(Sender: TObject); override; - procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); - public - procedure AddButtons(Sel: integer); - end; +const DIR_DELETE_CANCEL = 0; + DIR_DELETE_DELETE = 1; + DIR_DELETE_ALL = 2; + DIR_DELETE_RETRY = 3; + DIR_DELETE_SKIP = 4; + DIR_DELETE_SKIP_ALL = 5; + DIR_DELETE_IGNORE = 6; + +type TFDirDeleteButtonSet = (DIR_DELETE_SET_DELETE_ERROR, + DIR_DELETE_SET_SYMLINK_ERROR, + DIR_DELETE_SET_COPY_ERROR, + DIR_DELETE_SET_DELETE_NON_EMPTY); + + TFDirDelete = class(TGTKDialog) + Label1, Label2, Label3: TGTKLabel; + procedure FormCreate(Sender: TObject); override; + procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); + public + procedure AddButtons(ButtonSet: TFDirDeleteButtonSet); + end; + + var FDirDelete: TFDirDelete; implementation -uses ULocale; +uses gdk2, ULocale, UCoreUtils; procedure TFDirDelete.FormCreate(Sender: TObject); begin WindowPosition := wpCenter; - Caption := LANGRemoveDirectory; + Caption := ''; Label1 := TGTKLabel.Create(Self); Label1.Caption := 'The directory /tmp is not empty!'; Label2 := TGTKLabel.Create(Self); @@ -57,39 +71,44 @@ begin OnKeyDown := FormKeyDown; end; -procedure TFDirDelete.AddButtons(Sel: integer); +procedure TFDirDelete.AddButtons(ButtonSet: TFDirDeleteButtonSet); begin - case Sel of - 1 : begin - AddButton(LANGSkipButton_Caption, 1); - AddButton(LANGSkipAllButton_Caption, 3); - AddButton(LANGRetry, 2); - AddButton(LANGCancel, 0); + case ButtonSet of + DIR_DELETE_SET_DELETE_ERROR: begin + AddButton(LANGSkipButton_Caption, DIR_DELETE_SKIP); + AddButton(LANGSkipAllButton_Caption, DIR_DELETE_SKIP_ALL); + AddButton(LANGRetry, DIR_DELETE_RETRY); + AddButton(LANGCancel, DIR_DELETE_CANCEL); end; - 2 : begin - AddButton(LANGRetry, 1); - AddButton(LANGCancel, 0); + DIR_DELETE_SET_SYMLINK_ERROR: begin + AddButton(LANGRetry, DIR_DELETE_RETRY); + AddButton(LANGCancel, DIR_DELETE_CANCEL); end; - 3 : begin - AddButton(LANGSkipButton_Caption, 1); - AddButton(LANGSkipAllButton_Caption, 3); - AddButton(LANGIgnoreButton_Caption, 2); - AddButton(LANGCancel, 0); + DIR_DELETE_SET_COPY_ERROR: begin + AddButton(LANGSkipButton_Caption, DIR_DELETE_SKIP); + AddButton(LANGSkipAllButton_Caption, DIR_DELETE_SKIP_ALL); + AddButton(LANGIgnoreButton_Caption, DIR_DELETE_IGNORE); + AddButton(LANGCancel, DIR_DELETE_CANCEL); end; - 4 : begin - AddButton(LANGDeleteButton_Caption, 1); - AddButton(LANGAll, 2); - AddButton(LANGSkipButton_Caption, 3); - AddButton(LANGCancel, 0); + DIR_DELETE_SET_DELETE_NON_EMPTY: begin + AddButton(LANGDeleteButton_Caption, DIR_DELETE_DELETE); + AddButton(LANGAll, DIR_DELETE_ALL); + AddButton(LANGSkipButton_Caption, DIR_DELETE_SKIP); + AddButton(LANGCancel, DIR_DELETE_CANCEL); end; end; end; procedure TFDirDelete.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin - case Key of - GDK_ESCAPE: ModalResult := TMessageButton(255); - end; + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGSkipButton_Caption))))) then ModalResult := TMessageButton(DIR_DELETE_SKIP) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGSkipAllButton_Caption))))) then ModalResult := TMessageButton(DIR_DELETE_SKIP_ALL) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGRetry))))) then ModalResult := TMessageButton(DIR_DELETE_RETRY) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGCancel))))) then ModalResult := TMessageButton(DIR_DELETE_CANCEL) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGIgnoreButton_Caption))))) then ModalResult := TMessageButton(DIR_DELETE_IGNORE) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGDeleteButton_Caption))))) then ModalResult := TMessageButton(DIR_DELETE_DELETE) else + if (Key = gdk_keyval_to_lower(gdk_keyval_from_name(PChar(ExtractAccelerator(LANGAll))))) then ModalResult := TMessageButton(DIR_DELETE_ALL) else + if (Key = GDK_ESCAPE) then ModalResult := TMessageButton(DIR_DELETE_CANCEL); end; |
