You've already forked lazarus-ccr
split painter and context classes in nvwidgets.pas into separate source file
fixed compilation example.pp renamed context and painter source files to be more clear git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2248 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
154
components/nvidia-widgets/src/nvpainter.pas
Normal file
154
components/nvidia-widgets/src/nvpainter.pas
Normal file
@ -0,0 +1,154 @@
|
||||
//
|
||||
// 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
|
||||
|
||||
uses
|
||||
Math;
|
||||
|
||||
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.
|
||||
|
Reference in New Issue
Block a user