{
  TIGCC IDE

  Copyright (C) 2000-2004 Sebastian Reichelt
  Copyright (C) 2006 Kevin Kofler

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2, or (at your option)
  any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software Foundation,
  Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
}

unit CustomStyleUnit;

interface

uses
	SourceEditUnit,
	Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
	StdCtrls, ExtCtrls;

type
	TCustomStyleForm = class(TForm)
		Button1: TButton;
		Button2: TButton;
		Bevel1: TBevel;
		Label1: TLabel;
		Label2: TLabel;
		Label3: TLabel;
		BeginEdit: TEdit;
		EndEdit: TEdit;
		IgnoreEdit: TEdit;
		Bevel2: TBevel;
		Button3: TButton;
		Button4: TButton;
    ColorDlg: TColorDialog;
    SwitchableCheckBox: TCheckBox;
    LineStartOnlyCheckBox: TCheckBox;
		procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BeginEditChange(Sender: TObject);
    procedure EndEditChange(Sender: TObject);
		procedure IgnoreEditChange(Sender: TObject);
		procedure SwitchableCheckBoxClick(Sender: TObject);
		procedure LineStartOnlyCheckBoxClick(Sender: TObject);
		procedure Button1Click(Sender: TObject);
		procedure Button2Click(Sender: TObject);
		procedure FormShow(Sender: TObject);
	private
	public
		Style: TCustomStyle;
	end;

implementation

{$R *.DFM}

uses
	StyleSelectionUnit;

procedure TCustomStyleForm.FormCreate(Sender: TObject);
begin
	Style := TCustomStyle.Create (nil);
end;

procedure TCustomStyleForm.FormDestroy(Sender: TObject);
begin
	Style.Free;
end;

procedure TCustomStyleForm.BeginEditChange(Sender: TObject);
begin
	Style.BeginText := BeginEdit.Text;
end;

procedure TCustomStyleForm.EndEditChange(Sender: TObject);
begin
	Style.EndText := EndEdit.Text;
end;

procedure TCustomStyleForm.IgnoreEditChange(Sender: TObject);
begin
	Style.IgnoreChar := IgnoreEdit.Text;
end;

procedure TCustomStyleForm.SwitchableCheckBoxClick(Sender: TObject);
begin
	Style.Switchable := SwitchableCheckBox.Checked;
end;

procedure TCustomStyleForm.LineStartOnlyCheckBoxClick(Sender: TObject);
begin
	Style.LineStartOnly := LineStartOnlyCheckBox.Checked;
end;

procedure TCustomStyleForm.Button1Click(Sender: TObject);
begin
	ColorDlg.Color := Style.Color;
	if ColorDlg.Execute then begin
		Style.Color := ColorDlg.Color;
		Style.CustomColor := True;
	end;
end;

procedure TCustomStyleForm.Button2Click(Sender: TObject);
begin
	with TStyleSelectionForm.Create (Self) do try
		CustomStyle := Self.Style.CustomStyle;
		Style := Self.Style.Style;
		if ShowModal = mrOK then begin
			Self.Style.CustomStyle := CustomStyle;
			Self.Style.Style := Style;
		end;
	finally
		Free;
	end;
end;

procedure TCustomStyleForm.FormShow(Sender: TObject);
begin
	if Style.BeginText = #13 then
		BeginEdit.Text := '#13'
	else
		BeginEdit.Text := Style.BeginText;
	if Style.EndText = #13 then
		EndEdit.Text := '#13'
	else
		EndEdit.Text := Style.EndText;
	IgnoreEdit.Text := Style.IgnoreChar;
	SwitchableCheckBox.Checked := Style.Switchable;
	LineStartOnlyCheckBox.Checked := Style.LineStartOnly;
end;

end.
