{$mode objfpc}
{$h+}

unit frmlink;

interface

uses fpgtk,gtk,classes,sysutils;

Type
  TLinkForm = Class (TFPGtkWindow)
    FTable : TFPGtkTable;
    FLLinkTarget,
    FLLinkText : TFPGtkLabel;
    FLinkText : TFPGtkEntry;
    FLinkTarget : TFPGtkCombo;
    FSeparator : TFPGtkHSeparator;
    FVBox : TFPgtkVBox;
    FOK,
    FCancel : TFPGtkButton;
    FButtonBox: TFPgtkHBox;
    Constructor Create;
    Procedure CreateWindow;
    Procedure OnShow(Sender : TFpGtkObject;Data : Pointer);
  end;
  
Implementation

uses fpdemsg;

Constructor TLinkForm.Create;

begin
  Inherited Create(GTK_WINDOW_DIALOG);
  CreateWindow;
end;

Procedure TLinkForm.CreateWindow;

Var
  OH,OV : TgtkAttachOPtions;
  
begin
  FVBox:=TFPGtkVBox.Create;
  FVBox.Spacing:=4;
  FVBox.Border:=8;
  Add(FVBox);
  // Table area
  FTable:=TFPGtkTable.Create(2,2);
  FLLinktarget:=TFPGtkLabel.Create(SLinkTarget);
  FLLinktarget.Justify:=GTK_JUSTIFY_RIGHT;
  FLLinkText:=TFPGtkLabel.Create(SLinkText);
  FLLinktext.Justify:=GTK_JUSTIFY_RIGHT;
  FLinkText:=TFPgtkEntry.Create;
  FlinkTarget:=TFPGtkCombo.Create;
  OH:=GTK_EXPAND or GTK_FILL;
  FTable.Attach(FLLinkTarget,0,1,0,1,0,GTK_FILL,4,4);
  FTable.Attach(FLLinkText,0,1,1,2,0,GTK_FILL,4,4);
  FTable.Attach(FLinkTarget,1,2,0,1,OH,0,4,4);
  FTable.Attach(FLinkText,1,2,1,2,OH,0,4,4);
  // button area
  FOK:=TFpGtkButton.CreateWithLabel(SOK);
  FOK.ConnectClicked(@CloseWithResult,IntToPointer(drOK));
  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 TLinkForm.OnShow(Sender : TFpgtkObject; Data : Pointer);

begin
  FocusedWidget(FLinkTarget.entry);
end;


end.  