123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- {$mode objfpc}
- {$h+}
- unit frmoptions;
- interface
- uses fpgtk,gtk,classes,sysutils;
- Type
- TOptionsForm = Class (TFPGtkWindow)
- FTable : TFPGtkTable;
- FLCreateBackup,
- FLSkipEmptyNodes,
- FLConfirmDelete,
- FLMaxRecentUsed,
- FLbackupExtension,
- FLDefaultExtension : TFPGtkLabel;
- FCreateBackup,
- FSkipEmptyNodes,
- FConfirmDelete : TFPGtkToggleButton;
- FBackupExtension,
- FDefaultExtension : TFPGtkEntry;
- FMaxRecentUsed : TFPGtkSpinButton;
- FSeparator : TFPGtkHSeparator;
- FVBox : TFPgtkVBox;
- FHBox : TFPgtkHBox;
- FOK,
- FCancel : TFPGtkButton;
- FButtonBox: TFPgtkHBox;
- Constructor Create;
- Procedure CreateWindow;
- Procedure OnShow(Sender : TFpGtkObject;Data : Pointer);
- Procedure SaveResult(Sender : TFpGtkObject;Data : Pointer);
- Procedure OptionsToForm;
- Procedure FormToOptions;
- end;
- Implementation
- uses fpdemsg,fpdeopts;
- Function MakeLabel(Caption : String) : TFPgtkLabel;
- begin
- Result:=TFPGtkLabel.Create(Caption);
- Result.Justify:=GTK_JUSTIFY_RIGHT;
- end;
- Function MakeCheck : TFPgtkToggleButton;
- begin
- Result:=TFPgtkToggleButton.create;
- Result.SetUsize(14,14);
- end;
- Constructor TOptionsForm.Create;
- begin
- Inherited Create(GTK_WINDOW_DIALOG);
- CreateWindow;
- end;
- Function PackBox(W : TFpGtkWidget) : TFpGtkHbox;
- begin
- Result:=TFPGtkHBox.Create;
- Result.PackStart(W,True,False,0);
- end;
- Procedure ToptionsForm.CreateWindow;
- Var
- OH,OV : TgtkAttachOPtions;
- B : TfpgtkHbox;
- begin
- FVBox:=TFPGtkVBox.Create;
- FVBox.Spacing:=4;
- FVBox.Border:=8;
- Add(FVBox);
- // Table area
- FTable:=TFPGtkTable.Create(2,6);
- FLCreateBackup:=MakeLabel(SOptCreateBackup);
- FLSkipEmptyNodes:=MakeLabel(SOptSkipEmptyNodes);
- FLConfirmDelete:=MakeLabel(SOptConfirmDelete);
- FLbackupExtension:=MakeLabel(SOptBackupExtension);
- FLDefaultExtension:=MakeLabel(SOptDefaultExtension);
- FLMaxRecentUsed:=MakeLabel(SOptMaxRecentUsed);
- FCreateBackup:=MakeCheck;
- FSkipEmptyNodes:=MakeCheck;
- FConfirmDelete:=MakeCheck;
- FBackupExtension:=TFpGtkEntry.Create;
- FDefaultExtension:=TFpGtkEntry.Create;
- FMaxRecentUsed:=TFPGtkSpinButton.Create;
- FMaxRecentUsed.Adjustment.Upper:=32;
- OH:=GTK_EXPAND or GTK_FILL;
- FTable.Attach(FLConfirmDelete ,0,1,0,1,GTK_FILL,0,4,4);
- FTable.Attach(FLSkipEmptyNodes ,0,1,1,2,GTK_FILL,0,4,4);
- FTable.Attach(FLCreatebackup ,0,1,2,3,GTK_FILL,0,4,4);
- FTable.Attach(FLBackupExtension ,0,1,3,4,GTK_FILL,0,4,4);
- FTable.Attach(FLDefaultExtension ,0,1,4,5,GTK_FILL,0,4,4);
- FTable.Attach(FLMaxrecentUSed ,0,1,5,6,GTK_FILL,0,4,4);
- FTable.Attach(PackBox(FConfirmDelete) ,1,2,0,1,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FSkipEmptyNodes) ,1,2,1,2,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FCreatebackup) ,1,2,2,3,0,GTK_FILL,4,4);
- FTable.Attach(FBackupExtension ,1,2,3,4,0,GTK_FILL,4,4);
- FTable.Attach(FDefaultExtension ,1,2,4,5,0,GTK_FILL,4,4);
- FTable.Attach(FMaxRecentUsed ,1,2,5,6,0,GTK_FILL,4,4);
- // button area
- FOK:=TFpGtkButton.CreateWithLabel(SOK);
- FOK.ConnectClicked(@SaveResult,Nil);
- FCancel:=TFPgtkButton.CreateWithLabel(SCancel);
- FCancel.ConnectCLicked(@CloseWithResult,IntToPointer(drCancel));
- FSeparator:=TFPgtkHSeparator.Create;
- FButtonBox:=TfpGtkHBox.Create;
- FButtonBox.Spacing:=4;
- FButtonBox.PackEnd(FOK,false,false,4);
- FButtonBox.PackEnd(FCancel,false,false,4);
- // Add to window
- FVBox.PackStart(FTable,False,False,0);
- FVBox.PackStart(FSeparator,False,False,4);
- FVBox.PackStart(FButtonBox,false,false,0);
- // Some events;
- ConnectShow(@OnShow,Nil);
- end;
- Procedure TOptionsForm.OnShow(Sender : TFpgtkObject; Data : Pointer);
- begin
- OptionsToForm;
- FocusedWidget(FConfirmDelete);
- end;
- Procedure TOptionsForm.SaveResult(Sender : TFpgtkObject; Data : Pointer);
- begin
- FormToOptions;
- CloseWithResult(Sender,IntToPointer(drOK));
- end;
- Procedure TOptionsForm.OptionsToForm;
- begin
- FCreateBackup.Active:=CreateBackup;
- FSkipEmptyNodes.Active:=SkipEmptyNodes;
- FConfirmDelete.Active:=ConfirmDelete;
- FBackupExtension.Text:=BackupExtension;
- FDefaultExtension.Text:=DefaultExtension;
- FMaxRecentUsed.AsInteger:=MaxRecentUsed;
- end;
- Procedure TOptionsForm.FormToOptions;
- begin
- CreateBackup:=FCreateBackup.Active;
- SkipEmptyNodes:=FSkipEmptyNodes.Active;
- ConfirmDelete:=FConfirmDelete.Active;
- BackupExtension:=FBackupExtension.Text;
- DefaultExtension:=FDefaultExtension.Text;
- MaxRecentUsed:=FMaxRecentUsed.AsInteger;
- SaveOptions;
- end;
- end.
|