Files
lazarus-ccr/components/nvidia-widgets/src/nvpainter.pas
blaszijk 1e4e859bfb reorganizing documentation
implemented documentation creation in the build system
some minor code clean-up


git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2252 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-01-12 13:19:49 +00:00

152 lines
5.9 KiB
ObjectPascal

//
// nvWidgets.h - User Interface library
//
//
// Author: Ignacio Castano, Samuel Gateau, Evan Hart
// Email: sdkfeedback@nvidia.com
//
// Copyright (c) NVIDIA Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////////////////
unit nvPainter;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, nvBaseFont, nvTypes;
type
UIPainter = class(TObject)
private
FFont: TnvBaseFont;
procedure SetFont(AValue: TnvBaseFont);
public
constructor Create;
procedure _begin(const window: Rect); virtual;
procedure _end; virtual;
// These methods should be called between begin/end
procedure drawFrame(const r: Rect; margin: integer; style: integer); virtual; abstract;
function getLabelRect(const r: Rect; const Text: string; out rt: Rect; out nbLines: integer): Rect; virtual; abstract;
procedure drawLabel(const r: Rect; const Text: string; const rt: Rect; const nbLines: integer; isHover: boolean; style: integer); virtual; abstract;
function getButtonRect(const r: Rect; const Text: string; out rt: Rect): Rect; virtual; abstract;
procedure drawButton(const r: Rect; const Text: string; const rt: Rect; isDown: boolean; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
function getCheckRect(const r: Rect; const Text: string; out rt: Rect; out rc: Rect): Rect; virtual; abstract;
procedure drawCheckButton(const r: Rect; const Text: string; const rt: Rect; const rr: Rect; isChecked: boolean; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
function getRadioRect(const r: Rect; const Text: string; out rt: Rect; out rr: Rect): Rect; virtual; abstract;
procedure drawRadioButton(const r: Rect; const Text: string; const rt: Rect; const rr: Rect; isOn: boolean; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
function getHorizontalSliderRect(const r: Rect; out rs: Rect; v: double; out rc: Rect): Rect; virtual; abstract;
procedure drawHorizontalSlider(const r: Rect; rs: Rect; v: double; rc: Rect; isHover: boolean; style: integer); virtual; abstract;
function getItemRect(const r: Rect; const Text: string; out rt: Rect): Rect; virtual; abstract;
procedure drawListItem(const r: Rect; const Text: string; const rt: Rect; isSelected: boolean; isHover: boolean; style: integer); virtual; abstract;
function getListRect(const r: Rect; numOptions: integer; const options: array of string; out ri: Rect; out rt: Rect): Rect; virtual; abstract;
procedure drawListBox(const r: Rect; numOptions: integer; const options: array of string; const ri: Rect; const rt: Rect; selected: integer; hovered: integer; style: integer); virtual; abstract;
function getComboRect(const r: Rect; numOptions: integer; const options: array of string; selected: integer; out rt: Rect; out ra: Rect): Rect; virtual; abstract;
function getComboOptionsRect(const rCombo: Rect; numOptions: integer; const options: array of string; out ri: Rect; out rit: Rect): Rect; virtual; abstract;
procedure drawComboBox(const rect: Rect; numOptions: integer; const options: array of string; const rt: Rect; const ra: Rect; selected: integer; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
procedure drawComboOptions(const rect: Rect; numOptions: integer; const options: array of string; const ri: Rect; const rit: Rect; selected: integer; hovered: integer; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
function getLineEditRect(const r: Rect; const Text: string; out rt: Rect): Rect; virtual; abstract;
procedure drawLineEdit(const r: Rect; const Text: string; const rt: Rect; caretPos: integer; isSelected: boolean; isHover: boolean; style: integer); virtual; abstract;
function getPanelRect(const r: Rect; const Text: string; out rt: Rect; out ra: Rect): Rect; virtual; abstract;
procedure drawPanel(const rect: Rect; const Text: string; const rt: Rect; const ra: Rect; isUnfold: boolean; isHover: boolean; isFocus: boolean; style: integer); virtual; abstract;
function getTextureViewRect(const rect: Rect; out rt: Rect): Rect; virtual; abstract;
procedure drawTextureView(const rect: Rect; const texID: integer; const rt: Rect; const rz: Rect; mipLevel: integer; texelScale: double; texelOffset: double; r: integer; g: integer; b: integer; a: integer; style: integer); virtual; abstract;
// Eval widget dimensions
function getCanvasMargin: integer; virtual;
function getCanvasSpace: integer; virtual;
function getFontHeight: integer; virtual;
function getTextLineWidth(const Text: string): integer; virtual;
function getTextSize(const Text: string; out nbLines: integer): integer; virtual;
function getPickedCharNb(const Text: string; const at: Point): integer; virtual;
procedure drawDebugRect(const r: Rect); virtual; abstract;
procedure init; virtual; abstract;
published
property Font: TnvBaseFont read FFont write SetFont;
end;
function EvalBool(b: boolean): byte;
implementation
function EvalBool(b: boolean): byte;
begin
if b then
Result := 1
else
Result := 0;
end;
{ UIPainter }
procedure UIPainter.SetFont(AValue: TnvBaseFont);
begin
if FFont=AValue then Exit;
FFont:=AValue;
end;
constructor UIPainter.Create;
begin
inherited;
end;
procedure UIPainter._begin(const window: Rect);
begin
init;
end;
procedure UIPainter._end;
begin
end;
function UIPainter.getCanvasMargin: integer;
begin
Result := 0;
end;
function UIPainter.getCanvasSpace: integer;
begin
Result := 0;
end;
function UIPainter.getFontHeight: integer;
begin
Result := 0;
end;
function UIPainter.getTextLineWidth(const Text: string): integer;
begin
Result := 0;
end;
function UIPainter.getTextSize(const Text: string; out nbLines: integer): integer;
begin
Result := 0;
end;
function UIPainter.getPickedCharNb(const Text: string; const at: Point): integer;
begin
Result := 0;
end;
end.