138 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
{
 | 
						|
     Apophysis Copyright (C) 2001-2004 Mark Townsend
 | 
						|
 | 
						|
     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 of the License, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
}
 | 
						|
unit Sheep;
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
uses
 | 
						|
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 | 
						|
  StdCtrls, ExtCtrls, Global, ControlPoint, Render;
 | 
						|
 | 
						|
type
 | 
						|
  TSheepDialog = class(TForm)
 | 
						|
    Button1: TButton;
 | 
						|
    Button2: TButton;
 | 
						|
    PrevPnl: TPanel;
 | 
						|
    PreviewImage: TImage;
 | 
						|
    txtNick: TEdit;
 | 
						|
    Label1: TLabel;
 | 
						|
    Label2: TLabel;
 | 
						|
    txtURL: TEdit;
 | 
						|
    Label3: TLabel;
 | 
						|
    txtPassword: TEdit;
 | 
						|
    ScrollBar: TScrollBar;
 | 
						|
    lblLicense: TLabel;
 | 
						|
    lblLink: TLabel;
 | 
						|
    procedure FormShow(Sender: TObject);
 | 
						|
    procedure FormCreate(Sender: TObject);
 | 
						|
    procedure FormDestroy(Sender: TObject);
 | 
						|
    procedure Button1Click(Sender: TObject);
 | 
						|
    procedure ScrollBarChange(Sender: TObject);
 | 
						|
    procedure lblLinkClick(Sender: TObject);
 | 
						|
  private
 | 
						|
    Render: TRenderer;
 | 
						|
    bm: TBitmap;
 | 
						|
 | 
						|
    procedure DrawPreview;
 | 
						|
    { Private declarations }
 | 
						|
  public
 | 
						|
    cp: TControlPoint;
 | 
						|
    { Public declarations }
 | 
						|
  end;
 | 
						|
 | 
						|
var
 | 
						|
  SheepDialog: TSheepDialog;
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
uses Main, cmap, ShellAPI;
 | 
						|
 | 
						|
{$R *.DFM}
 | 
						|
 | 
						|
procedure TSheepDialog.DrawPreview;
 | 
						|
begin
 | 
						|
  Render.Stop;
 | 
						|
  cp.Width := PreviewImage.Width;
 | 
						|
  cp.Height := PreviewImage.Height;
 | 
						|
  cp.sample_density := 10;
 | 
						|
  cp.spatial_oversample := 2;
 | 
						|
  cp.spatial_filter_radius := 0.4;
 | 
						|
  cp.Zoom := 0;
 | 
						|
  cp.center[0] := 0;
 | 
						|
  cp.center[1] := 0;
 | 
						|
  cp.pixels_per_unit := 60;
 | 
						|
  cp.gamma := 4;
 | 
						|
  cp.brightness := 4;
 | 
						|
  cp.vibrancy := 1;
 | 
						|
  GetCMap(cp.cmapindex, cp.hue_rotation, cp.cmap);
 | 
						|
  Render.Compatibility := compatibility;
 | 
						|
  Render.SetCP(cp);
 | 
						|
  Render.Render;
 | 
						|
  BM.Assign(Render.GetImage);
 | 
						|
  PreviewImage.Picture.Graphic := bm;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.FormShow(Sender: TObject);
 | 
						|
var
 | 
						|
  i: integer;
 | 
						|
begin
 | 
						|
  scrollbar.position := 0;
 | 
						|
  txtNick.text := MainCp.nick;
 | 
						|
  txtURL.text := MainCp.URL;
 | 
						|
  txtPassword.text := SheepPW;
 | 
						|
  cp.copy(MainCp);
 | 
						|
  for i := 0 to 2 do cp.background[i] := 0;
 | 
						|
  DrawPreview;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.FormCreate(Sender: TObject);
 | 
						|
begin
 | 
						|
  bm := TbitMap.Create;
 | 
						|
  cp := TControlPoint.Create;
 | 
						|
  Render := TRenderer.Create;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.FormDestroy(Sender: TObject);
 | 
						|
begin
 | 
						|
  bm.free;
 | 
						|
  cp.free;
 | 
						|
  Render.free;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.Button1Click(Sender: TObject);
 | 
						|
begin
 | 
						|
  SheepNick := txtNick.Text;
 | 
						|
  SheepURL := txtURL.Text;
 | 
						|
  SheepPW := txtPassword.Text;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.ScrollBarChange(Sender: TObject);
 | 
						|
begin
 | 
						|
  cp.hue_rotation := ScrollBar.Position / 100;
 | 
						|
  DrawPreview;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TSheepDialog.lblLinkClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  ShellExecute(ValidParentForm(Self).Handle, 'open', PChar('http://creativecommons.org/licenses/by-sa/1.0/'),
 | 
						|
    nil, nil, SW_SHOWNORMAL);
 | 
						|
end;
 | 
						|
 | 
						|
end.
 | 
						|
 |