unit frmTemplateVariables;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  Grids, ProjectTemplates, Buttons, StdCtrls, EditBtn;

type

  { TProjectVariablesForm }

  TProjectVariablesForm = class(TForm)
    BOK: TButton;
    BCancel: TButton;
    DEProject: TDirectoryEdit;
    EProjectName: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    PDescription: TPanel;
    SGVariables: TStringGrid;
    procedure BOKClick(Sender: TObject);
    procedure ProjectVariablesFormShow(Sender: TObject);
  private
    FSChanged: Boolean;
    FTemplates: TProjectTemplates;
    { private declarations }
    FVariables : TStrings;
    function GetProjectDir: String;
    function GetProjectName: String;
    procedure SetVariables(const AValue: TStrings);
  public
    { public declarations }
    Property Templates : TProjectTemplates Read FTemplates Write FTemplates;
    Property ProjectName : String Read GetProjectName;
    Property ProjectDir : String Read GetProjectDir;
    Property Variables : TStrings Read FVariables Write SetVariables;
    Property SettingsChanged: Boolean Read FSChanged Write FSChanged;
  end;

var
  ProjectVariablesForm: TProjectVariablesForm;

implementation

ResourceString
  SVariable    = 'Variable';
  SValue       = 'Value';
  SDescription = 'Description';
  

{ TProjectVariablesForm }

procedure TProjectVariablesForm.ProjectVariablesFormShow(Sender: TObject);
begin
  SGVariables.Cells[0,0]:=SVariable;
  SGVariables.Cells[1,0]:=SValue;
  SGVariables.Cells[2,0]:=SDescription;
end;

procedure TProjectVariablesForm.BOKClick(Sender: TObject);

Var
  N,V : String;
  I : Integer;

begin
  For I:=0 to FVariables.Count-1 do
    begin
    FVariables.GetNameValue(I,N,V);
    V:=SGVariables.Cells[1,I+1];
    FVariables[i]:=N+'='+V;
    end;
end;


procedure TProjectVariablesForm.SetVariables(const AValue: TStrings);

Var
  N,V : String;
  I : Integer;
  
begin
  FVariables:=AValue;
  SGVariables.RowCount:=FVariables.Count+1;
  For I:=1 to FVariables.Count do
    begin
    FVariables.GetNameValue(I-1,N,V);
    SGVariables.Cells[0,I]:=N;
    SGVariables.Cells[1,I]:='';
    SGVariables.Cells[2,I]:=V;
    end;
end;

function TProjectVariablesForm.GetProjectDir: String;
begin
  Result:=DEProject.Text;
end;

function TProjectVariablesForm.GetProjectName: String;
begin
  Result:=EProjectName.Text;
end;

initialization
  {$I frmtemplatevariables.lrs}

end.

