8#ifndef ff_fcctrlcanvas_h
9#define ff_fcctrlcanvas_h
11#ifdef PDK_FRAMEWORK_CANVASCTRL
13#include "finaleframework.h"
16#ifndef DOXYGEN_SHOULD_IGNORE_THIS
22struct __FCVIRTUALCANVASHANDLER_DATA
46 __FCVIRTUALCANVASHANDLER_DATA()
81class FCVirtualCanvasInstruction :
public __FCBase
84 __FCVIRTUALCANVASHANDLER_DATA* _pCanvasDataRef;
89 enum VCANVASINSTRUCTIONS
144 VCINS_RESTORETEXTFONT,
166 VCINS_ENDLINEPATHFILL,
197 VCINS_BEAMLINEBETWEEN,
228 VCANVASINSTRUCTIONS _instructiontype;
239 void DEBUG_INSTRUCTION_CHECK([[maybe_unused]]
const char* pszInstruction, [[maybe_unused]]
int expectedcount, [[maybe_unused]]VCANVASINSTRUCTIONS expectedtype)
241#ifdef PDK_FRAMEWORK_DIAGNOSE
242 if (expectedcount != _parameters.
GetCount())
DebugOutString(
"Incorrect number of parameters for instruction: ", pszInstruction);
243 if (expectedtype != GetInstructionType())
DebugOutString(
"Incorrect type for instruction: ", pszInstruction);
247 void RangeAdjustFloat(
float* pFloat,
float fmin,
float fmax)
251#ifdef PDK_FRAMEWORK_DIAGNOSE
252 DebugOut(
"Float parameter is too low for instruction");
258#ifdef PDK_FRAMEWORK_DIAGNOSE
259 DebugOut(
"Float parameter is too low for instruction");
272 FCVirtualCanvasInstruction() :
__FCBase() {}
274 void SetInstructionType(VCANVASINSTRUCTIONS itype) { _instructiontype = itype; }
276 VCANVASINSTRUCTIONS GetInstructionType() {
return _instructiontype; }
281 SetInstructionType(VCINS_FRAME);
282 DEBUG_INSTRUCTION_CHECK(
"Frame", 0, VCINS_FRAME);
285 void SetStaffHeight(
float height)
289 SetInstructionType(VCINS_STAFFHEIGHT);
290 DEBUG_INSTRUCTION_CHECK(
"StaffHeight", 1, VCINS_STAFFHEIGHT);
293 void SetStaffBase(
float verticalpos)
297 SetInstructionType(VCINS_STAFFBASE);
298 DEBUG_INSTRUCTION_CHECK(
"StaffBase", 1, VCINS_STAFFBASE);
301 void SetPenColor(
float r,
float g,
float b)
304 RangeAdjustFloat(&r, 0, 100);
306 RangeAdjustFloat(&g, 0, 100);
308 RangeAdjustFloat(&b, 0, 100);
310 SetInstructionType(VCINS_PENCOLOR);
311 DEBUG_INSTRUCTION_CHECK(
"PenColor", 3, VCINS_PENCOLOR);
314 void SetPenAlpha(
float a)
317 RangeAdjustFloat(&a, 0, 100);
319 SetInstructionType(VCINS_PENALPHA);
320 DEBUG_INSTRUCTION_CHECK(
"PenAlpha", 1, VCINS_PENALPHA);
324 void SetBackColor(
float r,
float g,
float b)
327 RangeAdjustFloat(&r, 0, 100);
329 RangeAdjustFloat(&g, 0, 100);
331 RangeAdjustFloat(&g, 0, 100);
333 SetInstructionType(VCINS_BACKCOLOR);
334 DEBUG_INSTRUCTION_CHECK(
"BackColor", 3, VCINS_BACKCOLOR);
337 void SetBackAlpha(
float a)
340 RangeAdjustFloat(&a, 0, 100);
342 SetInstructionType(VCINS_BACKALPHA);
343 DEBUG_INSTRUCTION_CHECK(
"BackAlpha", 1, VCINS_BACKALPHA);
346 void SetTextColor(
float r,
float g,
float b)
349 RangeAdjustFloat(&r, 0, 100);
351 RangeAdjustFloat(&g, 0, 100);
353 RangeAdjustFloat(&b, 0, 100);
355 SetInstructionType(VCINS_TEXTCOLOR);
356 DEBUG_INSTRUCTION_CHECK(
"TextColor", 3, VCINS_TEXTCOLOR);
359 void SetTextAlpha(
float a)
362 RangeAdjustFloat(&a, 0, 100);
364 SetInstructionType(VCINS_TEXTALPHA);
365 DEBUG_INSTRUCTION_CHECK(
"TextAlpha", 1, VCINS_TEXTALPHA);
368 void SetPenWidth(
float pointsize)
372 SetInstructionType(VCINS_PENWIDTH);
373 DEBUG_INSTRUCTION_CHECK(
"PenWidth", 1, VCINS_PENWIDTH);
377 void SetPenDashLength(
float length)
381 SetInstructionType(VCINS_PENDASHLENGTH);
382 DEBUG_INSTRUCTION_CHECK(
"PenDashLength", 1, VCINS_PENDASHLENGTH);
386 void SetPenDashSpace(
float space)
390 SetInstructionType(VCINS_PENDASHSPACE);
391 DEBUG_INSTRUCTION_CHECK(
"PenDashSpace", 1, VCINS_PENDASHSPACE);
394 void SetLineBetween(
float x1,
float y1,
float x2,
float y2)
401 SetInstructionType(VCINS_LINEBETWEEN);
402 DEBUG_INSTRUCTION_CHECK(
"LineBetween", 4, VCINS_LINEBETWEEN);
405 void SetBeamLineBetween(
float x1,
float y1,
float x2,
float y2)
412 SetInstructionType(VCINS_BEAMLINEBETWEEN);
413 DEBUG_INSTRUCTION_CHECK(
"BeamLineBetween", 4, VCINS_BEAMLINEBETWEEN);
416 void Set5StaffLines()
419 SetInstructionType(VCINS_5STAFFLINES);
420 DEBUG_INSTRUCTION_CHECK(
"5StaffLines", 0, VCINS_5STAFFLINES);
423 void SetBarline(
float horizontalstart)
427 SetInstructionType(VCINS_BARLINE);
428 DEBUG_INSTRUCTION_CHECK(
"Barline", 1, VCINS_BARLINE);
431 void SetDoubleBarline(
float leftstart)
435 SetInstructionType(VCINS_DOUBLEBARLINE);
436 DEBUG_INSTRUCTION_CHECK(
"DoubleBarline", 1, VCINS_DOUBLEBARLINE);
439 void SetFinalBarline(
float rightedge)
443 SetInstructionType(VCINS_FINALBARLINE);
444 DEBUG_INSTRUCTION_CHECK(
"FinalBarline", 1, VCINS_FINALBARLINE);
447 void SetStartLinePath()
450 SetInstructionType(VCINS_STARTLINEPATH);
451 DEBUG_INSTRUCTION_CHECK(
"StartLinePath", 0, VCINS_STARTLINEPATH);
454 void SetEndLinePath()
457 SetInstructionType(VCINS_ENDLINEPATH);
458 DEBUG_INSTRUCTION_CHECK(
"EndLinePath", 0, VCINS_ENDLINEPATH);
461 void SetEndLinePathFill()
464 SetInstructionType(VCINS_ENDLINEPATHFILL);
465 DEBUG_INSTRUCTION_CHECK(
"EndLinePathFill", 0, VCINS_ENDLINEPATHFILL);
468 void SetMovePen(
float x,
float y)
473 SetInstructionType(VCINS_MOVEPEN);
474 DEBUG_INSTRUCTION_CHECK(
"MovePen", 2, VCINS_MOVEPEN);
477 void SetLineTo(
float x,
float y)
482 SetInstructionType(VCINS_LINETO);
483 DEBUG_INSTRUCTION_CHECK(
"LineTo", 2, VCINS_LINETO);
489 SetInstructionType(VCINS_FILLALL);
490 DEBUG_INSTRUCTION_CHECK(
"FillAll", 0, VCINS_FILLALL);
493 void SetFillRect(
float x1,
float y1,
float x2,
float y2)
500 SetInstructionType(VCINS_FILLRECT);
501 DEBUG_INSTRUCTION_CHECK(
"FillRect", 4, VCINS_FILLRECT);
504 void SetLineRect(
float x1,
float y1,
float x2,
float y2)
511 SetInstructionType(VCINS_LINERECT);
512 DEBUG_INSTRUCTION_CHECK(
"LineRect", 4, VCINS_LINERECT);
515 void SetFillOval(
float x1,
float y1,
float x2,
float y2)
522 SetInstructionType(VCINS_FILLOVAL);
523 DEBUG_INSTRUCTION_CHECK(
"FillOval", 4, VCINS_FILLOVAL);
526 void SetLineOval(
float x1,
float y1,
float x2,
float y2)
533 SetInstructionType(VCINS_LINEOVAL);
534 DEBUG_INSTRUCTION_CHECK(
"LineOval", 4, VCINS_LINEOVAL);
537 void SetTextPos(
float x,
float y)
542 SetInstructionType(VCINS_TEXTPOS);
543 DEBUG_INSTRUCTION_CHECK(
"TextPos", 2, VCINS_TEXTPOS);
548 if (!pFontInfo)
return;
551 SetInstructionType(VCINS_TEXTFONT);
552 DEBUG_INSTRUCTION_CHECK(
"TextFont", 1, VCINS_TEXTFONT);
555 void SetSaveTextFont()
558 SetInstructionType(VCINS_SAVETEXTFONT);
559 DEBUG_INSTRUCTION_CHECK(
"SaveTextFont", 0, VCINS_SAVETEXTFONT);
562 void SetRestoreTextFont()
565 SetInstructionType(VCINS_RESTORETEXTFONT);
566 DEBUG_INSTRUCTION_CHECK(
"RestoreTextFont", 0, VCINS_RESTORETEXTFONT);
571 if (!pString)
return;
574 SetInstructionType(VCINS_DRAWTEXT);
575 DEBUG_INSTRUCTION_CHECK(
"DrawText", 1, VCINS_DRAWTEXT);
578 void SetTextAt(
FCString* pString,
float x,
float y)
580 if (!pString)
return;
585 SetInstructionType(VCINS_TEXTAT);
586 DEBUG_INSTRUCTION_CHECK(
"TextAt", 3, VCINS_TEXTAT);
589 void SetRectText(
FCString* pString,
float x1,
float y1,
float x2,
float y2)
591 if (!pString)
return;
598 SetInstructionType(VCINS_RECTTEXT);
599 DEBUG_INSTRUCTION_CHECK(
"RectText", 5, VCINS_RECTTEXT);
602 void SetNotehead(
int noteheadlevel,
float horizontalpos,
float noteheadwidth)
608 SetInstructionType(VCINS_NOTEHEAD);
609 DEBUG_INSTRUCTION_CHECK(
"Notehead", 3, VCINS_NOTEHEAD);
616 void CopyFrom(FCVirtualCanvasInstruction* pSource);
621 float GetNumberParam(
int index)
626#ifdef PDK_FRAMEWORK_DEBUG
627 DebugOutInt(
"Index is out of range in FCVirtualCanvasInstruction::GetNumberParam() :", index);
631#ifdef PDK_FRAMEWORK_DIAGNOSE
634 DebugOutInt(
"Class is not FCString in FCVirtualCanvasInstruction::GetStringParam() with index:", index);
650#ifdef PDK_FRAMEWORK_DEBUG
651 DebugOutInt(
"Index is out of range in FCVirtualCanvasInstruction::GetStringParam() :", index);
655#ifdef PDK_FRAMEWORK_DIAGNOSE
658 DebugOutInt(
"Class is not FCString in FCVirtualCanvasInstruction::GetStringParam() with index:", index);
673#ifdef PDK_FRAMEWORK_DEBUG
674 DebugOutInt(
"Index is out of range in FCVirtualCanvasInstruction::GetFontInfoParam() :", index);
678#ifdef PDK_FRAMEWORK_DIAGNOSE
681 DebugOutInt(
"Class is not FCFontInfo in FCVirtualCanvasInstruction::GetFontInfoParam() with index:", index);
689 int _GetParameterCount() {
return _parameters.
GetCount(); }
696 void _SetCanvasDataPtr(__FCVIRTUALCANVASHANDLER_DATA* pCanvasData) { _pCanvasDataRef = pCanvasData; }
698 __FCVIRTUALCANVASHANDLER_DATA* _GetCanvasDataPtr() {
return _pCanvasDataRef; }
704#define VCCOL_MAP_RGB(r, g, b) \
764 bool _MapCanvasColor(
765#ifdef PDK_FRAMEWORK_LUAFRIENDLY
768 VCANVASCOLORS colorconstant
770 ,
float* pRed,
float* pGreen,
float* pBlue)
772 switch (colorconstant)
775 VCCOL_MAP_RGB(100, 100, 100)
778 VCCOL_MAP_RGB(0, 0, 0)
781 VCCOL_MAP_RGB(128, 128, 128)
784 VCCOL_MAP_RGB(192, 192, 192)
787 VCCOL_MAP_RGB(224, 224, 224)
790#ifdef PDK_FRAMEWORK_DIAGNOSE
791 DebugOutInt(
"Unmapped color constant in FCVirtualCanvasInstructions::_MapCanvasColor: ", colorconstant);
800 bool FloatRangeCheck(
float f,
float min,
float max)
802 if (f < min)
return false;
803 if (f > max)
return false;
826 FCVirtualCanvasInstruction* AddStaffHeight(
float staffheight)
828 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
829 pInstr->SetStaffHeight(staffheight);
840 FCVirtualCanvasInstruction* AddStaffBase(
float verticalpos)
842 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
843 pInstr->SetStaffBase(verticalpos);
860 FCVirtualCanvasInstruction* AddPenColor(
float r,
float g,
float b)
862 if (!FloatRangeCheck(r, 0, 100))
return NULL;
863 if (!FloatRangeCheck(g, 0, 100))
return NULL;
864 if (!FloatRangeCheck(b, 0, 100))
return NULL;
866 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
867 pInstr->SetPenColor(r, g, b);
883 FCVirtualCanvasInstruction* AddNamedPenColor(
884#ifdef PDK_FRAMEWORK_LUAFRIENDLY
887 VCANVASCOLORS colorconstant
892 if (!_MapCanvasColor(colorconstant, &r, &g, &b))
return NULL;
894 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
895 pInstr->SetPenColor(r, g, b);
910 FCVirtualCanvasInstruction* AddPenAlpha(
float a)
912 if (!FloatRangeCheck(a, 0, 100))
return NULL;
914 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
915 pInstr->SetPenAlpha(a);
930 FCVirtualCanvasInstruction* AddBackColor(
float r,
float g,
float b)
932 if (!FloatRangeCheck(r, 0, 100))
return NULL;
933 if (!FloatRangeCheck(g, 0, 100))
return NULL;
934 if (!FloatRangeCheck(b, 0, 100))
return NULL;
936 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
937 pInstr->SetBackColor(r, g, b);
953 FCVirtualCanvasInstruction* AddNamedBackColor(
954#ifdef PDK_FRAMEWORK_LUAFRIENDLY
957 VCANVASCOLORS colorconstant
962 if (!_MapCanvasColor(colorconstant, &r, &g, &b))
return NULL;
964 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
965 pInstr->SetBackColor(r, g, b);
979 FCVirtualCanvasInstruction* AddBackAlpha(
float a)
981 if (!FloatRangeCheck(a, 0, 100))
return NULL;
983 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
984 pInstr->SetBackAlpha(a);
1003 FCVirtualCanvasInstruction* AddTextColor(
float r,
float g,
float b)
1005 if (!FloatRangeCheck(r, 0, 100))
return NULL;
1006 if (!FloatRangeCheck(g, 0, 100))
return NULL;
1007 if (!FloatRangeCheck(b, 0, 100))
return NULL;
1009 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1010 pInstr->SetTextColor(r, g, b);
1026 FCVirtualCanvasInstruction* AddNamedTextColor(
1027#ifdef PDK_FRAMEWORK_LUAFRIENDLY
1030 VCANVASCOLORS colorconstant
1035 if (!_MapCanvasColor(colorconstant, &r, &g, &b))
return NULL;
1037 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1038 pInstr->SetTextColor(r, g, b);
1053 FCVirtualCanvasInstruction* AddTextAlpha(
float a)
1055 if (!FloatRangeCheck(a, 0, 100))
return NULL;
1057 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1058 pInstr->SetTextAlpha(a);
1068 FCVirtualCanvasInstruction* AddPenWidth(
float pointsize)
1070 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1071 pInstr->SetPenWidth(pointsize);
1087 FCVirtualCanvasInstruction* AddPenDashLength(
float length)
1089 if (!FloatRangeCheck(length, 0, 1000))
return NULL;
1090 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1091 pInstr->SetPenDashLength(length);
1105 FCVirtualCanvasInstruction* AddPenDashSpace(
float space)
1107 if (!FloatRangeCheck(space, 0, 1000))
return NULL;
1108 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1109 pInstr->SetPenDashSpace(space);
1114 FCVirtualCanvasInstruction* AddStartLinePath()
1116 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1117 pInstr->SetStartLinePath();
1122 FCVirtualCanvasInstruction* AddEndLinePath()
1124 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1125 pInstr->SetEndLinePath();
1130 FCVirtualCanvasInstruction* AddEndLinePathFill()
1132 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1133 pInstr->SetEndLinePathFill();
1138 FCVirtualCanvasInstruction* AddMovePen(
float x,
float y)
1140 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1141 pInstr->SetMovePen(x, y);
1146 FCVirtualCanvasInstruction* AddLineTo(
float x,
float y)
1148 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1149 pInstr->SetLineTo(x, y);
1161 FCVirtualCanvasInstruction* AddFrame()
1163 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1175 FCVirtualCanvasInstruction* AddLineBetween(
float x1,
float y1,
float x2,
float y2)
1177 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1178 pInstr->SetLineBetween(x1, y1, x2, y2);
1189 FCVirtualCanvasInstruction* AddBeamLineBetween(
float x1,
float y1,
float x2,
float y2)
1191 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1192 pInstr->SetBeamLineBetween(x1, y1, x2, y2);
1203 FCVirtualCanvasInstruction* Add5StaffLines()
1205 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1206 pInstr->Set5StaffLines();
1217 FCVirtualCanvasInstruction* AddBarline(
float horizontalstart, [[maybe_unused]]
float verticalstart)
1219 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1220 pInstr->SetBarline(horizontalstart);
1231 FCVirtualCanvasInstruction* AddDoubleBarline(
float leftstart)
1233 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1234 pInstr->SetDoubleBarline(leftstart);
1245 FCVirtualCanvasInstruction* AddFinalBarline(
float rightedge)
1247 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1248 pInstr->SetFinalBarline(rightedge);
1260 FCVirtualCanvasInstruction* AddFillAll()
1262 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1263 pInstr->SetFillAll();
1274 FCVirtualCanvasInstruction* AddFillRect(
float x1,
float y1,
float x2,
float y2)
1276 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1277 pInstr->SetFillRect(x1, y1, x2, y2);
1288 FCVirtualCanvasInstruction* AddLineRect(
float x1,
float y1,
float x2,
float y2)
1290 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1291 pInstr->SetLineRect(x1, y1, x2, y2);
1302 FCVirtualCanvasInstruction* AddFillOval(
float x1,
float y1,
float x2,
float y2)
1304 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1305 pInstr->SetFillOval(x1, y1, x2, y2);
1316 FCVirtualCanvasInstruction* AddLineOval(
float x1,
float y1,
float x2,
float y2)
1318 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1319 pInstr->SetLineOval(x1, y1, x2, y2);
1324 FCVirtualCanvasInstruction* AddTextPos(
float x,
float y)
1326 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1327 pInstr->SetTextPos(x, y);
1340 FCVirtualCanvasInstruction* AddTextFont(
FCFontInfo* pFontInfo)
1342 if (!pFontInfo)
return NULL;
1343 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1344 pInstr->SetTextFont(pFontInfo);
1353 FCVirtualCanvasInstruction* AddSaveTextFont()
1355 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1356 pInstr->SetSaveTextFont();
1365 FCVirtualCanvasInstruction* AddRestoreTextFont()
1367 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1368 pInstr->SetRestoreTextFont();
1373 FCVirtualCanvasInstruction* AddDrawText(
FCString* pString)
1375 if (!pString)
return NULL;
1376 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1377 pInstr->SetDrawText(pString);
1388 FCVirtualCanvasInstruction* AddTextAt(
FCString* pString,
float x,
float y)
1390 if (!pString)
return NULL;
1391 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1392 pInstr->SetTextAt(pString, x, y);
1402 FCVirtualCanvasInstruction* AddRectText(
FCString* pString,
float x1,
float y1,
float x2,
float y2)
1404 if (!pString)
return NULL;
1405 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1406 pInstr->SetRectText(pString, x1, y1, x2, y2);
1420 FCVirtualCanvasInstruction* AddNotehead(
int noteheadlevel,
float horizontalpos,
float noteheadwidth)
1422 FCVirtualCanvasInstruction* pInstr =
new FCVirtualCanvasInstruction();
1423 pInstr->SetNotehead(noteheadlevel, horizontalpos, noteheadwidth);
1435 void CopyFrom(FCVirtualCanvasInstructions* pSource);
1440#ifndef DOXYGEN_SHOULD_IGNORE_THIS
1449class __FCVirtualCanvasHandler :
public __FCBase
1452 __FCVIRTUALCANVASHANDLER_DATA _canvasdata;
1455 __FCVIRTUALCANVASHANDLER_DATA _savedcanvasdata;
1458 FCVirtualCanvasInstructions* _pInstructions;
1464 WINCODE(HWND _hwndCtrl;)
1465 MACCODE(
void* _self;)
1471 bool HandleAbstractPrimitives(FCVirtualCanvasInstruction* pInstruction);
1477 void RedirectPrimitiveDraw(FCVirtualCanvasInstruction* pInstruction);
1483 bool ProcessCompositeInstruction(FCVirtualCanvasInstruction* pInstruction);
1487 void ProcessOneInstruction(FCVirtualCanvasInstruction* pInstruction);
1495 __FCVirtualCanvasHandler(FCVirtualCanvasInstructions* pInstructions) :
__FCBase()
1497 _pInstructions = pInstructions;
1500#if OPERATING_SYSTEM == WINDOWS
1502 void ProcessWindows(HWND hwndCtrl)
1504 _hwndCtrl = hwndCtrl;
1511 void ProcessCocoa(
void* selfPtr)
Base class for the Finale Framework classes.
Definition ff_base.h:71
static void DebugOutString(const char *pszPrefixText, const char *thestring)
Static method that outputs a line for debugging purposes (C string version). The text appears with th...
Definition finaleframework.cpp:436
static void DebugOutInt(const char *pszPrefixText, int i)
Static method that outputs a line for debugging purposes. The text appears with the extra digit (in d...
Definition finaleframework.cpp:335
static void DebugOut(const char *pszLine)
Static method to output a line of text for debugging purposes.
Definition finaleframework.cpp:526
Base class for all collection classes. A collection is a storage that can store multiple objects of s...
Definition ff_basecollection.h:26
void Add(__FCBase *pNewItem)
Adds an element to the end of the collection.
Definition finaleframework.cpp:13726
void ClearAll()
Destroys all the objects in the collection and empties the collection.
Definition ff_basecollection.h:151
int GetCount() const
Returns the number of elements of the collection.
Definition ff_basecollection.h:102
__FCBase * GetItemAt(int index) const
Returns the object at the index position. Index is 0-based.
Definition finaleframework.cpp:13767
Class for document-independent font information.
Definition ff_base.h:1138
FCFontInfo * CreateCopy()
Creates a copy of the font info object on the heap.
Definition ff_base.h:1247
void SetName(const std::string &pszName)
Sets the font name.
Definition finaleframework.cpp:3634
void SetSize(int fontsize)
Sets the font size as an integer value.
Definition ff_base.h:1546
const PDKFRAMEWORK_CLASSID GetClassID() const override
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition ff_base.h:1157
Simple class to put numbers into collections.
Definition ff_base.h:4821
double GetFloat() const
Returns the integer value version of the number.
Definition ff_base.h:4871
const PDKFRAMEWORK_CLASSID GetClassID() const override
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition ff_base.h:4826
Class that provides storage for text. This is to achieve platform-transparent text handling,...
Definition ff_base.h:1877
FCString * CreateCopy()
Creates a copy of the string object on the heap.
Definition finaleframework.cpp:2411
const PDKFRAMEWORK_CLASSID GetClassID() const override
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
Definition ff_base.h:1961