summaryrefslogtreecommitdiff
path: root/packages/graph
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-09-14 22:11:41 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-09-14 22:11:41 +0000
commitfe9ef3f4444f5a347aed4a13cc1c9a0dd0fbb1fd (patch)
tree758fe41c997a0aad1d4cb842867adc21eb1c05f9 /packages/graph
parentfa0dbb6177c8b1c0567aa698f931173e634b5678 (diff)
downloadfpc-fe9ef3f4444f5a347aed4a13cc1c9a0dd0fbb1fd.tar.gz
* SetBkColor and GetBkColor made hookable
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15986 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/graph')
-rw-r--r--packages/graph/src/inc/graph.inc10
-rw-r--r--packages/graph/src/inc/graphh.inc9
-rw-r--r--packages/graph/src/inc/modes.inc4
3 files changed, 18 insertions, 5 deletions
diff --git a/packages/graph/src/inc/graph.inc b/packages/graph/src/inc/graph.inc
index e8da7d46cd..c316963ff9 100644
--- a/packages/graph/src/inc/graph.inc
+++ b/packages/graph/src/inc/graph.inc
@@ -1254,6 +1254,8 @@ end;
procedure OutTextXYDefault(x,y : smallint;const TextString : string);forward;
procedure CircleDefault(X, Y: smallint; Radius:Word);forward;
+ procedure SetBkColorDefault(ColorNum: Word);forward;
+ function GetBkColorDefault: Word;forward;
{$i palette.inc}
@@ -1292,6 +1294,8 @@ end;
VLine := {$ifdef fpc}@{$endif}VLineDefault;
OuttextXY := {$ifdef fpc}@{$endif}OuttextXYDefault;
Circle := {$ifdef fpc}@{$endif}CircleDefault;
+ SetBkColor := {$ifdef fpc}@{$endif}SetBkColorDefault;
+ GetBkColor := {$ifdef fpc}@{$endif}GetBkColorDefault;
end;
Procedure InitVars;
@@ -1686,14 +1690,14 @@ end;
GetColor := CurrentColor;
end;
- function GetBkColor: Word;
+ function GetBkColorDefault: Word;
Begin
- GetBkColor := CurrentBkColor;
+ GetBkColorDefault := CurrentBkColor;
end;
- procedure SetBkColor(ColorNum: Word);
+ procedure SetBkColorDefault(ColorNum: Word);
{ Background color means background screen color in this case, and it is }
{ INDEPENDANT of the viewport settings, so we must clear the whole screen }
{ with the color. }
diff --git a/packages/graph/src/inc/graphh.inc b/packages/graph/src/inc/graphh.inc
index be33015a68..2786a49347 100644
--- a/packages/graph/src/inc/graphh.inc
+++ b/packages/graph/src/inc/graphh.inc
@@ -589,6 +589,9 @@ TYPE
CircleProc = procedure(X, Y: smallint; Radius:Word);
+ SetBkColorProc = procedure(ColorNum: Word);
+ GetBkColorProc = function: Word;
+
TYPE
{-----------------------------------}
@@ -639,6 +642,8 @@ TYPE
Circle : CircleProc;
InitMode : InitModeProc;
OutTextXY : OutTextXYProc;
+ SetBKColor : SetBkColorProc;
+ GetBKColor : GetBkColorProc;
next: PModeInfo;
end;
@@ -665,6 +670,8 @@ VAR
GetRGBPalette : GetRGBPaletteProc;
SetAllPalette : SetAllPaletteProc;
OutTextXY : OutTextXYProc;
+ SetBkColor : SetBkColorProc;
+ GetBkColor : GetBkColorProc;
GraphFreeMemPtr: graphfreememprc;
GraphGetMemPtr : graphgetmemprc;
@@ -769,9 +776,7 @@ Function GetDriverName: string;
function GetDirectVideo: boolean;
{ -------------------- Color/Palette ------------------------------- }
- procedure SetBkColor(ColorNum: Word);
function GetColor: Word;
- function GetBkColor: Word;
procedure SetColor(Color: Word);
function GetMaxColor: word;
diff --git a/packages/graph/src/inc/modes.inc b/packages/graph/src/inc/modes.inc
index 0d3f2a3f6b..b65c8488af 100644
--- a/packages/graph/src/inc/modes.inc
+++ b/packages/graph/src/inc/modes.inc
@@ -524,6 +524,10 @@ end;
SetActivePage := modeInfo^.SetActivePage;
if assigned(modeInfo^.OutTextXY) then
OutTextXY:=modeInfo^.OutTextXY;
+ if assigned(modeInfo^.SetBkColor) then
+ SetBkColor:=modeInfo^.SetBkColor;
+ if assigned(modeInfo^.GetBkColor) then
+ GetBkColor:=modeInfo^.GetBkColor;
IntCurrentMode := modeinfo^.ModeNumber;
{ fix by nickysn: always set *both* IntCurrentDriver and IntCurrentNewDriver to the