123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- {$mode objfpc}
- {$h+}
- unit frmoptions;
- interface
- uses fpgtk,gtk,classes,sysutils;
- Type
- TOptionsForm = Class (TFPGtkWindow)
- Private
- FTable : TFPGtkTable;
- FLVerbose,
- FLCreateMsgFile,
- FLCreateRCFile,
- FLCreatePasFile,
- FLEscapePath,
- FLLocale,
- FLSubLocale,
- FLUnitName : TFPGtkLabel;
- FVerbose,
- FCreateMsgFile,
- FCreatePasFile,
- FCreateRCFile,
- FEscapePath : TFPGtkToggleButton;
- FUnitName,
- FLocale,
- FSubLocale : TFPGtkEntry;
- FMaxRecentUsed : TFPGtkSpinButton;
- FSeparator : TFPGtkHSeparator;
- FVBox : TFPgtkVBox;
- FHBox : TFPgtkHBox;
- FOK,
- FCancel : TFPGtkButton;
- FButtonBox: TFPgtkHBox;
- Public
- Constructor Create;
- Procedure CreateWindow;
- Procedure OnShow(Sender : TFpGtkObject;Data : Pointer);
- Procedure SaveResult(Sender : TFpGtkObject;Data : Pointer);
- Function GetBoolProp (Index : Integer) : Boolean;
- Procedure SetBoolProp (Index : Integer; Value : Boolean);
- Function GetStringProp (Index : Integer) : String;
- Procedure SetStringProp (Index : Integer; Value : String);
- Property CreateMsgFile : Boolean Index 1 Read GetBoolProp Write SetBoolProp;
- Property CreatePasFile : Boolean Index 2 Read GetBoolProp Write SetBoolProp;
- Property CreateRCFile : Boolean Index 3 Read GetBoolProp Write SetBoolProp;
- Property EscapePath : Boolean Index 4 Read GetBoolProp Write SetBoolProp;
- Property Verbose : Boolean Index 5 Read GetBoolProp Write SetBoolProp;
- Property Locale : String Index 1 Read GetStringProp Write SetStringProp;
- Property SubLocale : String Index 2 Read GetStringProp Write SetStringProp;
- Property UnitName : String Index 3 Read GetStringProp Write SetStringProp;
- end;
- Implementation
- ResourceString
- SOptCreateMsgFile = 'Create message file';
- SOptCreateRCFile = 'Create RC file';
- SOptCreatePasFile = 'Create pascal file';
- SOptEscapePath = 'Escape path delimiters';
- SOptLocale = 'Locale ID';
- SOptSubLocale = 'Sublocale ID';
- SOptUnitName = 'Unit name';
- SOK = 'OK';
- SCancel = 'Cancel';
- SOptVerbose = 'Be verbose';
- 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,8);
- FLVerbose:=MakeLabel(SOptVerbose);
- FLCreateMsgFile:=MakeLabel(SOptCreateMsgFile);
- FLCreateRCFile:=MakeLabel(SOptCreateRCFile);
- FLCreatePasFile:=MakeLabel(SOptCreatePasFile);
- FLEscapePath:=MakeLabel(SOptEscapePath);
- FLLocale:=MakeLabel(SOptLocale);
- FLSubLocale:=MakeLabel(SOptSubLocale);
- FLUnitName:=MakeLabel(SOptUnitName);
- FVerbose:=MakeCheck;
- FEscapePath:=MakeCheck;
- FCreateMsgFile:=MakeCheck;
- FCreateRCFile:=MakeCheck;
- FCreatePasFile:=MakeCheck;
- FUnitName:=TFpGtkEntry.Create;
- FLocale:=TFpGtkEntry.Create;
- FSubLocale:=TFpGtkEntry.Create;
- OH:=GTK_EXPAND or GTK_FILL;
- FTable.Attach(FLVerbose ,0,1,0,1,GTK_FILL,0,4,4);
- FTable.Attach(FLCreateMsgFile ,0,1,1,2,GTK_FILL,0,4,4);
- FTable.Attach(FLCreatePasFile ,0,1,2,3,GTK_FILL,0,4,4);
- FTable.Attach(FLCreateRCFile ,0,1,3,4,GTK_FILL,0,4,4);
- FTable.Attach(FLEscapePath ,0,1,4,5,GTK_FILL,0,4,4);
- FTable.Attach(FLUnitName ,0,1,5,6,GTK_FILL,0,4,4);
- FTable.Attach(FLLocale ,0,1,6,7,GTK_FILL,0,4,4);
- FTable.Attach(FLSubLocale ,0,1,7,8,GTK_FILL,0,4,4);
- FTable.Attach(PackBox(FVerbose) ,1,2,0,1,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FCreateMsgFile) ,1,2,1,2,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FCreatePasFile) ,1,2,2,3,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FCreateRCFile) ,1,2,3,4,0,GTK_FILL,4,4);
- FTable.Attach(PackBox(FEscapePath) ,1,2,4,5,0,GTK_FILL,4,4);
- FTable.Attach(FUnitName ,1,2,5,6,0,GTK_FILL,4,4);
- FTable.Attach(FLocale ,1,2,6,7,0,GTK_FILL,4,4);
- FTable.Attach(FSubLocale ,1,2,7,8,0,GTK_FILL,4,4);
- // button area
- FOK:=TFpGtkButton.CreateWithLabel(SOK);
- FOK.ConnectClicked(@SaveResult,Nil);
- FCancel:=TFPgtkButton.CreateWithLabel(SCancel);
- FCancel.ConnectCLicked(@CloseWindow,Nil);
- 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
- FocusedWidget(FCreateMsgFile);
- end;
- Procedure TOptionsForm.SaveResult(Sender : TFpgtkObject; Data : Pointer);
- begin
- CloseWithResult(Sender,IntToPointer(drOK));
- end;
- Function TOptionsForm.GetBoolProp (Index : Integer) : Boolean;
- begin
- Result:=False;
- Case Index of
- 1 : Result:=FCreateMsgFile.Active;
- 2 : Result:=FCreatePasFile.Active;
- 3 : Result:=FCreateRCFile.Active;
- 4 : Result:=FEscapePath.Active;
- 5 : Result:=FVerbose.Active;
- end;
- end;
- Procedure TOptionsForm.SetBoolProp (Index : Integer; Value : Boolean);
- begin
- Case Index of
- 1 : FCreateMsgFile.Active:=Value;
- 2 : FCreatePasFile.Active:=Value;
- 3 : FCreateRCFile.Active:=Value;
- 4 : FEscapePath.Active:=Value;
- 5 : FVerbose.Active:=Value;
- end;
- end;
- Function TOptionsForm.GetStringProp (Index : Integer) : String;
- begin
- Result:='';
- Case Index of
- 1 : Result:=Flocale.Text;
- 2 : Result:=FSublocale.Text;
- 3 : Result:=FUnitName.Text;
- end;
- end;
- Procedure TOptionsForm.SetStringProp (Index : Integer; Value : String);
- begin
- Case Index of
- 1 : Flocale.Text:=Value;
- 2 : FSublocale.Text:=Value;
- 3 : FUnitName.Text:=Value;
- end;
- end;
- end.
|