24#ifndef jwlua_fflua_luaiterator_h
25#define jwlua_fflua_luaiterator_h
81 const char*
ClassName()
const override {
return "FCLuaIterator"; }
201 enum CLASS_APPROACHES
203 CLASSAPPROACH_NONE = 0,
204 CLASSAPPROACH_ENTRYDETAILS,
205 CLASSAPPROACH_NOTEDETAILS,
206 CLASSAPPROACH_MEASUREDETAILS,
207 CLASSAPPROACH_CELLDETAILS
216 class _FCLuaIterEntryFilter :
public __FCBase
220 const char* ClassName()
const override {
return "_FCLuaIterEntryFilter"; }
230 const char* ClassName()
const override {
return "_FCLuaIterEntryFilters"; }
239 for (
int i = 0; i <
GetCount(); i++)
241 _FCLuaIterEntryFilter* pItem = GetItemAt(i);
242 if (pItem->GetFilter() == filter)
return pItem;
249 if (Find(filter))
return false;
250 Add(
new _FCLuaIterEntryFilter(filter));
256 _FCLuaIterEntryFilter* pItem = Find(filter);
257 if (!pItem)
return false;
259 if (index == -1)
return false;
269 class _FCLuaIterNoteFilter :
public __FCBase
273 const char* ClassName()
const override {
return "_FCLuaIterNoteFilter"; }
283 const char* ClassName()
const override {
return "_FCLuaIterNoteFilters"; }
292 for (
int i = 0; i <
GetCount(); i++)
294 _FCLuaIterNoteFilter* pItem = GetItemAt(i);
295 if (pItem->GetFilter() == filter)
return pItem;
302 if (Find(filter))
return false;
303 Add(
new _FCLuaIterNoteFilter(filter));
309 _FCLuaIterNoteFilter* pItem = Find(filter);
310 if (!pItem)
return false;
312 if (index == -1)
return false;
322 class _FCLuaIterAltNotationFilter :
public __FCBase
326 const char* ClassName()
const override {
return "_FCLuaIterAltNotationFilter"; }
336 const char* ClassName()
const override {
return "_FCLuaIterAltNotationFilters"; }
340 _FCLuaIterAltNotationFilter* GetItemAt(
int index)
const {
return (_FCLuaIterAltNotationFilter*)
__FCCollection::GetItemAt(index); }
344 for (
int i = 0; i <
GetCount(); i++)
346 _FCLuaIterAltNotationFilter* pItem = GetItemAt(i);
347 if (pItem->GetFilter() == filter)
return pItem;
354 if (Find(filter))
return false;
355 Add(
new _FCLuaIterAltNotationFilter(filter));
361 _FCLuaIterAltNotationFilter* pItem = Find(filter);
362 if (!pItem)
return false;
364 if (index == -1)
return false;
373 class _FCLuaIterNotationStyleFilter :
public __FCBase
377 const char* ClassName()
const override {
return "_FCLuaIterNotationStyleFilter"; }
387 const char* ClassName()
const override {
return "_FCLuaIterNotationStyleFilters"; }
391 _FCLuaIterNotationStyleFilter* GetItemAt(
int index)
const {
return (_FCLuaIterNotationStyleFilter*)
__FCCollection::GetItemAt(index); }
395 for (
int i = 0; i <
GetCount(); i++)
397 _FCLuaIterNotationStyleFilter* pItem = GetItemAt(i);
398 if (pItem->GetFilter() == filter)
return pItem;
405 if (Find(filter))
return false;
406 Add(
new _FCLuaIterNotationStyleFilter(filter));
412 _FCLuaIterNotationStyleFilter* pItem = Find(filter);
413 if (!pItem)
return false;
415 if (index == -1)
return false;
421 _FCLuaIterEntryFilters _entryfilters_AND;
422 _FCLuaIterEntryFilters _entryfilters_OR;
423 _FCLuaIterEntryFilters _entryfilters_NOT;
425 _FCLuaIterNoteFilters _notefilters_AND;
426 _FCLuaIterNoteFilters _notefilters_OR;
427 _FCLuaIterNoteFilters _notefilters_NOT;
429 _FCLuaIterAltNotationFilters _altnotationfilters_AND;
430 _FCLuaIterAltNotationFilters _altnotationfilters_OR;
431 _FCLuaIterAltNotationFilters _altnotationfilters_NOT;
433 _FCLuaIterNotationStyleFilters _notationstylefilters_AND;
434 _FCLuaIterNotationStyleFilters _notationstylefilters_OR;
435 _FCLuaIterNotationStyleFilters _notationstylefilters_NOT;
437 bool _nullregionequalsall;
439 bool _forwardprocessing;
440 bool _downwardprocessing;
441 bool _partialmeasureselections;
443 double _timingstart, _timingend;
444 bool _useprogressbar;
445 bool _abortableprogressbar;
446 bool _progressbar_useraborted;
447 int _progressfrequency;
449 bool _processscorepart;
450 bool _processcurrentpart;
451 bool _processcurrentdoc;
506#ifdef PDK_FRAMEWORK_DIAGNOSE
507 DebugOutInt(
"Error: Unknown '_entryfiltermode' in FCLuaIterator:EntryMatchesFilter(): ", (
int)filter);
516 if (_entryfilters_AND.GetCount() == 0)
return true;
517 for (
int i = 0; i < _entryfilters_AND.GetCount(); i++)
520 if (!EntryFilterCheck(pEntry, filter))
return false;
527 if (_entryfilters_OR.GetCount() == 0)
return true;
528 for (
int i = 0; i < _entryfilters_OR.GetCount(); i++)
531 if (EntryFilterCheck(pEntry, filter))
return true;
538 if (_entryfilters_NOT.GetCount() == 0)
return true;
539 for (
int i = 0; i < _entryfilters_NOT.GetCount(); i++)
542 if (EntryFilterCheck(pEntry, filter))
return false;
549 if (!EntryMatchesANDFilters(pEntry))
return false;
550 if (!EntryMatchesORFilters(pEntry))
return false;
551 if (!EntryMatchesNOTFilters(pEntry))
return false;
566 if (_notationstylefilters_AND.GetCount() == 0)
return true;
567 for (
int i = 0; i < _notationstylefilters_AND.GetCount(); i++)
570 if (!NotationStyleFilterCheck(pStaffSpec, filter))
return false;
577 if (_notationstylefilters_OR.GetCount() == 0)
return true;
578 for (
int i = 0; i < _notationstylefilters_OR.GetCount(); i++)
581 if (NotationStyleFilterCheck(pStaffSpec, filter))
return true;
588 if (_notationstylefilters_NOT.GetCount() == 0)
return true;
589 for (
int i = 0; i < _notationstylefilters_NOT.GetCount(); i++)
592 if (NotationStyleFilterCheck(pStaffSpec, filter))
return false;
598 bool NotationStyleMatchesFilters(
FCNoteEntry* pEntry)
600 if ((_notationstylefilters_AND.GetCount() == 0) &&
601 (_notationstylefilters_OR.GetCount() == 0) &&
602 (_notationstylefilters_NOT.GetCount() == 0))
606 if (!NotationStyleMatchesANDFilters(&staffspec))
return false;
607 if (!NotationStyleMatchesORFilters(&staffspec))
return false;
608 if (!NotationStyleMatchesNOTFilters(&staffspec))
return false;
613 bool NotationStyleMatchesFilters(eMeas measure, eStaff staff, TimeEdu32 measurepos)
615 if ((_notationstylefilters_AND.GetCount() == 0) &&
616 (_notationstylefilters_OR.GetCount() == 0) &&
617 (_notationstylefilters_NOT.GetCount() == 0))
620 FCCell cell(measure, staff);
621 if (!staffspec.
LoadForCell(&cell, measurepos))
return false;
622 if (!NotationStyleMatchesANDFilters(&staffspec))
return false;
623 if (!NotationStyleMatchesORFilters(&staffspec))
return false;
624 if (!NotationStyleMatchesNOTFilters(&staffspec))
return false;
639 if (_altnotationfilters_AND.GetCount() == 0)
return true;
640 for (
int i = 0; i < _altnotationfilters_AND.GetCount(); i++)
643 if (!AltNotationFilterCheck(pStaffSpec, filter))
return false;
650 if (_altnotationfilters_OR.GetCount() == 0)
return true;
651 for (
int i = 0; i < _altnotationfilters_OR.GetCount(); i++)
654 if (AltNotationFilterCheck(pStaffSpec, filter))
return true;
661 if (_altnotationfilters_NOT.GetCount() == 0)
return true;
662 for (
int i = 0; i < _altnotationfilters_NOT.GetCount(); i++)
665 if (AltNotationFilterCheck(pStaffSpec, filter))
return false;
671 bool AlternateNotationMatchesFilters(
FCNoteEntry* pEntry)
673 if ((_altnotationfilters_AND.GetCount() == 0) &&
674 (_altnotationfilters_OR.GetCount() == 0) &&
675 (_altnotationfilters_NOT.GetCount() == 0))
679 if (!AltNotationMatchesANDFilters(&staffspec))
return false;
680 if (!AltNotationMatchesORFilters(&staffspec))
return false;
681 if (!AltNotationMatchesNOTFilters(&staffspec))
return false;
686 bool AlternateNotationMatchesFilters(eMeas measure, eStaff staff, TimeEdu32 measurepos)
688 if ((_altnotationfilters_AND.GetCount() == 0) &&
689 (_altnotationfilters_OR.GetCount() == 0) &&
690 (_altnotationfilters_NOT.GetCount() == 0))
693 FCCell cell(measure, staff);
694 if (!staffspec.
LoadForCell(&cell, measurepos))
return false;
695 if (!AltNotationMatchesANDFilters(&staffspec))
return false;
696 if (!AltNotationMatchesORFilters(&staffspec))
return false;
697 if (!AltNotationMatchesNOTFilters(&staffspec))
return false;
719#ifdef PDK_FRAMEWORK_DIAGNOSE
720 DebugOutInt(
"Error: Unknown '_notfiltermode' in FCLuaIterator:NoteMatchesFilter(): ", (
int)filter);
726 bool NoteMatchesANDFilters(
FCNote* pNote)
728 if (_notefilters_AND.GetCount() == 0)
return true;
729 for (
int i = 0; i < _notefilters_AND.GetCount(); i++)
732 if (!NoteFilterCheck(pNote, filter))
return false;
737 bool NoteMatchesORFilters(
FCNote* pNote)
739 if (_notefilters_OR.GetCount() == 0)
return true;
740 for (
int i = 0; i < _notefilters_OR.GetCount(); i++)
743 if (NoteFilterCheck(pNote, filter))
return true;
748 bool NoteMatchesNOTFilters(
FCNote* pNote)
750 if (_notefilters_NOT.GetCount() == 0)
return true;
751 for (
int i = 0; i < _notefilters_NOT.GetCount(); i++)
754 if (NoteFilterCheck(pNote, filter))
return false;
759 bool NoteMatchesFilters(
FCNote* pNote)
761 if (!NoteMatchesANDFilters(pNote))
return false;
762 if (!NoteMatchesORFilters(pNote))
return false;
763 if (!NoteMatchesNOTFilters(pNote))
return false;
771 void HandleExceptionError(luabridge::LuaException &e, EProgressDataP *ppProgressBarData)
773 EndProgressBar(ppProgressBarData,
true);
774 LuaRun_ExceptionAbort(e);
778 template <
typename... Args>
779 bool ExecuteCallback(luabridge::LuaRef& lua_callback_function, EProgressDataP *ppProgressBarData, Args&&... args)
781 bool continueflag =
true;
784 #if LUABRIDGE_MAJOR_VERSION >= 3
785 luabridge::LuaResult returnvalue = lua_callback_function.callWithHandler(LuaRun_ErrorFunction, std::forward<Args>(args)...);
786 if (!returnvalue) returnvalue.raiseException();
787 if (returnvalue.size() > 0 && returnvalue[0].isValid() && returnvalue[0].isBool())
788 continueflag = returnvalue[0];
790 luabridge::LuaRef returnvalue = lua_callback_function(std::forward<Args>(args)...);
791 if (returnvalue.type() == LUA_TBOOLEAN) continueflag = returnvalue.cast<
bool>();
796 EndProgressBar(ppProgressBarData,
false);
800 catch (luabridge::LuaException e)
802 HandleExceptionError(e, ppProgressBarData);
808 int ProcessRegionEntries(
FCMusicRegion* pRegion, luabridge::LuaRef &lua_callback_function,
bool shouldsave)
813 if (!_nullregionequalsall)
return 0;
815 pRegion = &fullregion;
817 if (!lua_callback_function.isFunction())
return 0;
820 int progressupdatecount;
821 EProgressDataP pProgressBarData;
826 if (_forwardprocessing)
831 while (meas >= pRegion->
GetStartMeasure() && meas <= pRegion->GetEndMeasure())
837 if (_downwardprocessing)
841 while (slot >= pRegion->
GetStartSlot() && slot <= pRegion->GetEndSlot())
846 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
852 entrycell.SetLoadLayerMode(_loadlayermode);
855 bool entriesprocessed =
false;
858 if (_forwardprocessing)
861 entryidx = entrycell.GetCount() - 1;
862 while (entryidx >= 0 && entryidx < entrycell.GetCount())
868 if (!EntryMatchesFilters(pEntry))
break;
869 if (!NotationStyleMatchesFilters(pEntry))
break;
870 if (!AlternateNotationMatchesFilters(pEntry))
break;
872 entriesprocessed =
true;
874 if (!ExecuteCallback(lua_callback_function, &pProgressBarData, pEntry))
880 if (_forwardprocessing) entryidx++;
else entryidx--;
883 if (shouldsave && entriesprocessed) entrycell.Save();
886 if (_downwardprocessing) slot++;
else slot--;
890 if (_forwardprocessing) meas++;
else meas--;
892 EndProgressBar(&pProgressBarData,
false);
901 case FCID_ARTICULATIONDEF:
904 case FCID_CATEGORYDEF:
913 case FCID_CUSTOMSMARTLINEDEF:
916 case FCID_EXECUTABLESHAPEDEF:
919 case FCID_FRETBOARDSTYLEDEF:
922 case FCID_FRETBOARDGROUPDEF:
925 case FCID_FRETINSTRUMENTDEF:
931 case FCID_INSTRUMENTDEF:
937 case FCID_MEASURENUMBERREGION:
940 case FCID_MULTIMEASUREREST:
943 case FCID_MULTISTAFFINSTRUMENT:
947 pCollectionData =
new FCPages();
949 case FCID_PAGEGRAPHIC:
955#ifdef PDK_FRAMEWORK_SHAPES
960 case FCID_SHAPEEXPRESSIONDEF:
963 case FCID_SMARTSHAPE:
969 case FCID_STAFFSTYLEDEF:
972 case FCID_STAFFSYSTEM:
975 case FCID_TEXTEXPRESSIONDEF:
978 case FCID_TEXTREPEATDEF:
984 if (!pCollectionData)
return NULL;
986 return pCollectionData;
989 int ProcessRegionNotes(
FCMusicRegion* pRegion, luabridge::LuaRef &lua_callback_function,
bool shouldsave)
994 if (!_nullregionequalsall)
return 0;
996 pRegion = &fullregion;
998 if (!lua_callback_function.isFunction())
return 0;
1001 int progressupdatecount;
1002 EProgressDataP pProgressBarData;
1007 if (_forwardprocessing)
1012 while (meas >= pRegion->
GetStartMeasure() && meas <= pRegion->GetEndMeasure())
1016 if ((!_partialmeasureselections) && pRegion->
IsMeasurePartial(meas))
break;
1018 if (_downwardprocessing)
1023 while (slot >= pRegion->
GetStartSlot() && slot <= pRegion->GetEndSlot())
1028 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
1034 entrycell.SetLoadLayerMode(_loadlayermode);
1037 bool entriesprocessed =
false;
1040 if (_forwardprocessing)
1043 entryidx = entrycell.GetCount() - 1;
1045 while (entryidx >= 0 && entryidx < entrycell.GetCount())
1050 if (pEntry->
IsRest())
break;
1052 if (!EntryMatchesFilters(pEntry))
break;
1053 if (!NotationStyleMatchesFilters(pEntry))
break;
1054 if (!AlternateNotationMatchesFilters(pEntry))
break;
1057 if (_forwardprocessing)
1062 while (noteidx >= 0 && noteidx < pEntry->GetCount())
1067 if (!NoteMatchesFilters(pNote))
break;
1069 entriesprocessed =
true;
1071 if (!ExecuteCallback(lua_callback_function, &pProgressBarData, pNote))
1077 if (_forwardprocessing) noteidx++;
else noteidx--;
1081 if (_forwardprocessing) entryidx ++;
else entryidx --;
1084 if (shouldsave && entriesprocessed) entrycell.Save();
1087 if (_downwardprocessing) slot++;
else slot--;
1091 if (_forwardprocessing) meas++;
else meas--;
1093 EndProgressBar(&pProgressBarData,
false);
1098 int ProcessForEachCell(
FCMusicRegion* pRegion, luabridge::LuaRef& lua_callback_function)
1103 if (!_nullregionequalsall)
return 0;
1105 pRegion = &fullregion;
1107 if (!lua_callback_function.isFunction())
return 0;
1110 int progressupdatecount;
1111 EProgressDataP pProgressBarData;
1116 if (_forwardprocessing)
1121 while (meas >= pRegion->
GetStartMeasure() && meas <= pRegion->GetEndMeasure())
1125 if ((!_partialmeasureselections) && pRegion->
IsMeasurePartial(meas))
break;
1127 if (_downwardprocessing)
1131 while (slot >= pRegion->
GetStartSlot() && slot <= pRegion->GetEndSlot())
1136 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
1141 if (!NotationStyleMatchesFilters(meas, staff, 0))
break;
1142 if (!AlternateNotationMatchesFilters(meas, staff, 0))
break;
1145 if (!ExecuteCallback(lua_callback_function, &pProgressBarData, meas, staff))
1151 if (_downwardprocessing) slot++;
else slot--;
1155 if (_forwardprocessing) meas++;
else meas--;
1157 EndProgressBar(&pProgressBarData,
false);
1162 int ProcessForEachPart(luabridge::LuaRef& lua_callback_function)
1164 if (!lua_callback_function.isFunction())
return 0;
1166 int progressupdatecount;
1167 EProgressDataP pProgressBarData;
1169 lua_State * pLuaState = lua_callback_function.state();
1173 StartProgressBar(&pProgressBarData, allparts.
GetCount(), &progressupdatecount);
1176 if (_forwardprocessing)
1180 while (partidx >= 0 && partidx < allparts.
GetCount())
1185 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
return count;
1189 if (!_processscorepart && pPart->
IsScore())
break;
1190 if (!_processcurrentpart && pPart->
IsCurrent())
break;
1194 luabridge::LuaRef parameter(pLuaState, pPart);
1196 bool callbackreturn = ExecuteCallback(lua_callback_function, &pProgressBarData, parameter);
1199 if (!callbackreturn)
return count;
1202 if (_forwardprocessing)
1208 EndProgressBar(&pProgressBarData,
false);
1214 int ProcessForEach(
__FCCollectionData* pCollection, luabridge::LuaRef& lua_callback_function,
bool shouldsave)
1216 if (!pCollection)
return 0;
1217 if (pCollection->
GetCount() == 0)
return 0;
1218 if (!lua_callback_function.isFunction())
return 0;
1220 int progressupdatecount;
1221 EProgressDataP pProgressBarData;
1223 StartProgressBar(&pProgressBarData, pCollection->
GetCount(), &progressupdatecount);
1225 lua_State * pLuaState = lua_callback_function.state();
1227 luabridge::LuaRef parameter(pLuaState);
1233 if (_forwardprocessing)
1238 while (i >= 0 && i < pCollection->GetCount())
1243 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
1250 if (!pObject)
break;
1251 if (!SetupCorrectCppClass(pObject, parameter))
1253 EndProgressBar(&pProgressBarData,
false);
1259 if (!ExecuteCallback(lua_callback_function, &pProgressBarData, parameter))
1263 if (shouldsave) pObject->
Save();
1266 if (_forwardprocessing) i++;
else i--;
1268 EndProgressBar(&pProgressBarData,
false);
1271 if (_forwardprocessing) i++;
else i--;
1274 struct EACH_REGION_OBJECT_DATA
1279 EProgressDataP pProgressBarData;
1280 CLASS_APPROACHES classapproach;
1282 int progressupdatecount;
1290 bool ProcessEntryDetailsCell(eMeas meas, eStaff staff, luabridge::LuaRef& lua_callback_function, luabridge::LuaRef ¶meter, EACH_REGION_OBJECT_DATA* pERData)
1294 entrycell.SetLoadLayerMode(_loadlayermode);
1297 if (_forwardprocessing)
1300 entryidx = entrycell.GetCount() - 1;
1301 while (entryidx >= 0 && entryidx < entrycell.GetCount())
1306 if (!pERData->pRegion->IsEntryPosWithin(pEntry))
break;
1307 if (!EntryMatchesFilters(pEntry))
break;
1308 if (!NotationStyleMatchesFilters(pEntry))
break;
1309 if (!AlternateNotationMatchesFilters(pEntry))
break;
1310 pEntryObject->SetNoteEntry(pEntry);
1311 if (_forwardprocessing)
1313 twobyte currentinci = 0;
1314 while (pEntryObject->Load(pEntry->
GetEntryNumber(), currentinci))
1318 if (!ExecuteCallback(lua_callback_function, &pERData->pProgressBarData, parameter))
1322 if (pERData->shouldsave) pEntryObject->Save();
1329 twobyte lastinci = pEntryObject->CalcLastInci();
1330 if (lastinci == kNewInci)
break;
1331 while (lastinci >= 0)
1337 if (!ExecuteCallback(lua_callback_function, &pERData->pProgressBarData, parameter))
1341 if (pERData->shouldsave) pEntryObject->Save();
1348 if (_forwardprocessing) entryidx++;
else entryidx--;
1360 bool ProcessMeasureDetailsCell(eMeas meas, eStaff staff, luabridge::LuaRef& lua_callback_function, luabridge::LuaRef ¶meter, EACH_REGION_OBJECT_DATA* pERData)
1366 if (!_forwardprocessing) inci = pMeasureObject->CalcLastInci();
1367 if (inci == kNewInci)
return true;
1368 while (pMeasureObject->Load(meas, inci))
1373 if (pMeasureObject->HasStaffValue() && (staff != pMeasureObject->GetStaff()))
break;
1374 if (meas != pMeasureObject->GetMeasure())
break;
1375 FCCell cell(meas, staff);
1376 if (!pERData->pRegion->IsCellPosWithin(&cell, pMeasureObject->GetMeasurePos()))
break;
1378 if (!NotationStyleMatchesFilters(meas, staff, pMeasureObject->GetMeasurePos()))
break;
1379 if (!AlternateNotationMatchesFilters(meas, staff, pMeasureObject->GetMeasurePos()))
break;
1383 if (!ExecuteCallback(lua_callback_function, &pERData->pProgressBarData, parameter))
1387 if (pERData->shouldsave) pMeasureObject->Save();
1392 if (inci < 0)
return true;
1403 bool ProcessCellDetailsCell(eMeas meas, eStaff staff, luabridge::LuaRef& lua_callback_function, luabridge::LuaRef ¶meter, EACH_REGION_OBJECT_DATA* pERData)
1407 FCCell cell(meas, staff);
1408 pCellObject->ConnectCell(&cell);
1410 bool success = _forwardprocessing ? pCellObject->LoadFirst() : pCellObject->LoadLast();
1416 if (!pERData->pRegion->IsCellPosWithin(&cell, pCellObject->GetMeasurePos()))
break;
1418 if (!NotationStyleMatchesFilters(meas, staff, pCellObject->GetMeasurePos()))
break;
1419 if (!AlternateNotationMatchesFilters(meas, staff, pCellObject->GetMeasurePos()))
break;
1423 if (!ExecuteCallback(lua_callback_function, &pERData->pProgressBarData, parameter))
1427 if (pERData->shouldsave) pCellObject->Save();
1430 success = _forwardprocessing ? pCellObject->LoadNext() : pCellObject->LoadPrevious();
1439 int ProcessForEachRegionObject(
FCMusicRegion* pRegion,
int classID, luabridge::LuaRef lua_callback_function,
bool shouldsave)
1444 if (!_nullregionequalsall)
return 0;
1446 pRegion = &fullregion;
1448 if (!lua_callback_function.isFunction())
return 0;
1452 EACH_REGION_OBJECT_DATA erdata;
1453 erdata.pRegion = pRegion;
1454 erdata.progressupdatecount = 0;
1455 erdata.shouldsave = shouldsave;
1456 erdata.pObject = MapRegionClassApproach((
PDKFRAMEWORK_CLASSID) classID, &erdata.classapproach);
1457 if (erdata.classapproach == CLASSAPPROACH_NONE)
return 0;
1460 lua_State * pLuaState = lua_callback_function.state();
1467 luabridge::LuaRef parameter(pLuaState);
1468 if (!SetupCorrectCppClass(erdata.pObject, parameter))
1470 EndProgressBar(&erdata.pProgressBarData,
false);
1476 if (_forwardprocessing)
1480 while (meas >= pRegion->
GetStartMeasure() && meas <= pRegion->GetEndMeasure())
1484 if ((!_partialmeasureselections) && pRegion->
IsMeasurePartial(meas))
break;
1486 if (_downwardprocessing)
1490 while (slot >= pRegion->
GetStartSlot() && slot <= pRegion->GetEndSlot())
1495 if (!UpdateProgressBar(&erdata.pProgressBarData, &erdata.progressupdatecount))
1497 delete erdata.pObject;
1498 return erdata.count;
1508 bool continueflag =
false;
1509 switch (erdata.classapproach)
1511 case CLASSAPPROACH_ENTRYDETAILS:
1512 case CLASSAPPROACH_NOTEDETAILS:
1516 continueflag = ProcessEntryDetailsCell(meas, staff, lua_callback_function, parameter, &erdata);
1518 case CLASSAPPROACH_MEASUREDETAILS:
1522 continueflag = ProcessMeasureDetailsCell(meas, staff, lua_callback_function, parameter, &erdata);
1524 case CLASSAPPROACH_CELLDETAILS:
1528 continueflag = ProcessCellDetailsCell(meas, staff, lua_callback_function, parameter, &erdata);
1535 delete erdata.pObject;
1536 return erdata.count;
1540 if (_downwardprocessing) slot++;
else slot--;
1544 if (_forwardprocessing) meas++;
else meas--;
1546 delete erdata.pObject;
1547 EndProgressBar(&erdata.pProgressBarData,
false);
1548 return erdata.count;
1555 int ProcessForEachDocument(luabridge::LuaRef lua_callback_function,
bool shouldsave)
1557 if (!lua_callback_function.isFunction())
return 0;
1559 int progressupdatecount;
1560 EProgressDataP pProgressBarData;
1564 StartProgressBar(&pProgressBarData, alldocs.
GetCount(), &progressupdatecount);
1567 if (_forwardprocessing)
1572 lua_State * pLuaState = lua_callback_function.state();
1576 while (docidx >= 0 && docidx < alldocs.
GetCount())
1581 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
1588 if (!_processcurrentdoc && pDoc->
IsCurrent())
break;
1590 pDoc->
SwitchTo(
nullptr,
true, lua_callback_function.state());
1591 luabridge::LuaRef parameter(pLuaState, pDoc);
1595 if (!ExecuteCallback(lua_callback_function, &pProgressBarData, parameter))
1608 if (_forwardprocessing)
1614 EndProgressBar(&pProgressBarData,
false);
1619 int ProcessForEachFile(
FCStrings* pFileStrings, luabridge::LuaRef lua_callback_function,
bool shouldsave)
1621 if (!pFileStrings)
return 0;
1622 if (pFileStrings->
GetCount() == 0)
return 0;
1625 int progressupdatecount;
1626 EProgressDataP pProgressBarData;
1627 StartProgressBar(&pProgressBarData, pFileStrings->
GetCount(), &progressupdatecount);
1629 lua_State * pLuaState = lua_callback_function.state();
1633 int filenameidx = 0;
1634 if (_forwardprocessing)
1637 filenameidx = pFileStrings->
GetCount() - 1;
1638 while (filenameidx >= 0 && filenameidx < pFileStrings->GetCount())
1640 bool executereturn =
true;
1644 if (!pString)
break;
1645 if (pString->
IsEmpty())
break;
1650 if (document.
Open(pString, shouldsave,
nullptr,
true,
false,
true, pLuaState))
1653 executereturn = ExecuteCallback(lua_callback_function, &pProgressBarData, &document, pString);
1663 document.
Close(pLuaState);
1668 luabridge::LuaRef parameter(pLuaState, NULL);
1669 executereturn = ExecuteCallback(lua_callback_function, &pProgressBarData, &document,
nullptr);
1674 if (!executereturn)
break;
1675 if (_forwardprocessing) filenameidx++;
else filenameidx--;
1677 EndProgressBar(&pProgressBarData,
false);
1682 int ProcessForEachInteger(
int integer1,
int integer2, luabridge::LuaRef lua_callback_function)
1687 if (integer1 > integer2) incdec = -1;
1691 int progressupdatecount;
1692 EProgressDataP pProgressBarData;
1695 StartProgressBar(&pProgressBarData, (integer2 - integer1) * incdec + 1, &progressupdatecount);
1697 for (
int i = integer1; i != integer2; i += incdec)
1700 if (!UpdateProgressBar(&pProgressBarData, &progressupdatecount))
return count;
1703 bool executereturn = ExecuteCallback(lua_callback_function, &pProgressBarData, i + incdec);
1704 if (!executereturn)
return count;
1706 EndProgressBar(&pProgressBarData,
false);
1717 case FCID_ACCIDENTALMOD:
1718 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1720 case FCID_ARTICULATION:
1721 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1723 case FCID_BEATCHARTELEMENT:
1724 *pClassApproach = CLASSAPPROACH_MEASUREDETAILS;
1726 case FCID_BROKENBEAMMOD:
1727 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1729 case FCID_CELLGRAPHIC:
1730 *pClassApproach = CLASSAPPROACH_CELLDETAILS;
1733 *pClassApproach = CLASSAPPROACH_CELLDETAILS;
1736 *pClassApproach = CLASSAPPROACH_CELLDETAILS;
1738 case FCID_CROSSSTAFFMOD:
1739 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1741 case FCID_CUSTOMSTEMMOD:
1742 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1745 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1747 case FCID_ENTRYALTERMOD:
1748 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1750 case FCID_EXPRESSION:
1751 *pClassApproach = CLASSAPPROACH_MEASUREDETAILS;
1753 case FCID_MIDIEXPRESSION:
1754 *pClassApproach = CLASSAPPROACH_CELLDETAILS;
1756 case FCID_NOTEHEADMOD:
1757 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1759 case FCID_PERCUSSIONNOTEMOD:
1760 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1762 case FCID_PERFORMANCEMOD:
1763 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1765 case FCID_SECONDARYBEAMBREAKMOD:
1766 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1768 case FCID_SEPARATEMEASURENUMBER:
1769 *pClassApproach = CLASSAPPROACH_CELLDETAILS;
1771 case FCID_SEPARATEPLACEMENT:
1772 *pClassApproach = CLASSAPPROACH_MEASUREDETAILS;
1774 case FCID_SMARTSHAPEENTRYMARK:
1775 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1778 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1780 case FCID_SYLLABLEENTRYMOD:
1781 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1783 case FCID_TABLATURENOTEMOD:
1784 *pClassApproach = CLASSAPPROACH_NOTEDETAILS;
1787 *pClassApproach = CLASSAPPROACH_ENTRYDETAILS;
1790 *pClassApproach = CLASSAPPROACH_NONE;
1813 void StartProgressBar(EProgressDataP *ppProgressBarData,
int count,
int* pProgressUpdateCount)
1815 _progressbar_useraborted =
false;
1816 *pProgressUpdateCount = 0;
1817 if (!_useprogressbar)
return;
1818 *ppProgressBarData = FX_StartMassEdit(NULL, count);
1829 bool UpdateProgressBar(EProgressDataP *ppProgressBarData,
int* pProgressUpdateCount)
1831 if (!_useprogressbar)
return true;
1832 if (!*ppProgressBarData)
return true;
1833 (*pProgressUpdateCount)++;
1834 if (*pProgressUpdateCount < _progressfrequency)
return true;
1836 bool continueflag = (FX_MassEditProgress(*ppProgressBarData, _progressfrequency, 0, 0, 0) != 0);
1837 if ((!continueflag) && _abortableprogressbar)
1839 _progressbar_useraborted =
true;
1840 FX_EndMassEdit(*ppProgressBarData,
true);
1851 void EndProgressBar(EProgressDataP *ppProgressBarData,
bool abortprogress)
1853 if (!_useprogressbar)
return;
1854 if (!*ppProgressBarData)
return;
1855 FX_EndMassEdit(*ppProgressBarData, abortprogress);
1856 *ppProgressBarData = NULL;
1860 bool SetupCorrectCppClass(
__FCBaseData* pProcessObject, luabridge::LuaRef ¶meter)
1862 lua_State * pLuaState = parameter.state();
1866 case FCID_ACCIDENTALMOD:
1867 parameter = luabridge::LuaRef(pLuaState, (
FCAccidentalMod*)pProcessObject);
1869 case FCID_ALLOTMENT:
1870 parameter = luabridge::LuaRef(pLuaState, (
FCAllotment*)pProcessObject);
1872 case FCID_ARTICULATION:
1873 parameter = luabridge::LuaRef(pLuaState, (
FCArticulation*)pProcessObject);
1875 case FCID_ARTICULATIONDEF:
1878 case FCID_BACKWARDREPEAT:
1879 parameter = luabridge::LuaRef(pLuaState, (
FCBackwardRepeat*)pProcessObject);
1882 parameter = luabridge::LuaRef(pLuaState, (
FCBaseline*)pProcessObject);
1885 parameter = luabridge::LuaRef(pLuaState, (
FCBeamMod*)pProcessObject);
1887 case FCID_BEATCHARTELEMENT:
1890 case FCID_BROKENBEAMMOD:
1891 parameter = luabridge::LuaRef(pLuaState, (
FCBrokenBeamMod*)pProcessObject);
1893 case FCID_CATEGORYDEF:
1894 parameter = luabridge::LuaRef(pLuaState, (
FCCategoryDef*)pProcessObject);
1896 case FCID_CELLCLEFCHANGE:
1897 parameter = luabridge::LuaRef(pLuaState, (
FCCellClefChange*)pProcessObject);
1899 case FCID_CELLFRAMEHOLD:
1900 parameter = luabridge::LuaRef(pLuaState, (
FCCellFrameHold*)pProcessObject);
1902 case FCID_CELLGRAPHIC:
1903 parameter = luabridge::LuaRef(pLuaState, (
FCCellGraphic*)pProcessObject);
1906 parameter = luabridge::LuaRef(pLuaState, (
FCCellText*)pProcessObject);
1908 case FCID_CENTERSMARTSHAPE:
1912 parameter = luabridge::LuaRef(pLuaState, (
FCChord*)pProcessObject);
1914 case FCID_CHORDSUFFIXELEMENT:
1917 case FCID_CHORUSSYLLABLE:
1918 parameter = luabridge::LuaRef(pLuaState, (
FCChorusSyllable*)pProcessObject);
1921 parameter = luabridge::LuaRef(pLuaState, (
FCClefDef*)pProcessObject);
1923 case FCID_CROSSSTAFFMOD:
1924 parameter = luabridge::LuaRef(pLuaState, (
FCCrossStaffMod*)pProcessObject);
1926 case FCID_CUSTOMSMARTLINEDEF:
1929 case FCID_CUSTOMSTEMMOD:
1930 parameter = luabridge::LuaRef(pLuaState, (
FCCustomStemMod*)pProcessObject);
1933 parameter = luabridge::LuaRef(pLuaState, (
FCDotMod*)pProcessObject);
1935 case FCID_ENCLOSURE:
1936 parameter = luabridge::LuaRef(pLuaState, (
FCEnclosure*)pProcessObject);
1938 case FCID_ENDINGREPEAT:
1939 parameter = luabridge::LuaRef(pLuaState, (
FCEndingRepeat*)pProcessObject);
1941 case FCID_ENTRYALTERMOD:
1942 parameter = luabridge::LuaRef(pLuaState, (
FCEntryAlterMod*)pProcessObject);
1944 case FCID_EXECUTABLESHAPEDEF:
1947 case FCID_EXPRESSION:
1948 parameter = luabridge::LuaRef(pLuaState, (
FCExpression*)pProcessObject);
1950 case FCID_FREEZESYSTEM:
1951 parameter = luabridge::LuaRef(pLuaState, (
FCFreezeSystem*)pProcessObject);
1953 case FCID_FRETBOARDSTYLEDEF:
1956 case FCID_FRETBOARDGROUPDEF:
1959 case FCID_FRETINSTRUMENTDEF:
1963 parameter = luabridge::LuaRef(pLuaState, (
FCGroup*)pProcessObject);
1965 case FCID_INDEPENDENTCELLDETAIL:
1968 case FCID_INSTRUMENTDEF:
1969 parameter = luabridge::LuaRef(pLuaState, (
FCInstrumentDef*)pProcessObject);
1971 case FCID_INSTRUMENTPLAYBACKDATA:
1975 parameter = luabridge::LuaRef(pLuaState, (
FCMeasure*)pProcessObject);
1977 case FCID_MEASURENUMBERREGION:
1980 case FCID_METATOOLASSIGNMENT:
1983 case FCID_MIDIEXPRESSION:
1984 parameter = luabridge::LuaRef(pLuaState, (
FCMidiExpression*)pProcessObject);
1986 case FCID_MULTIMEASUREREST:
1989 case FCID_MULTISTAFFINSTRUMENT:
1992 case FCID_NOTEHEADMOD:
1993 parameter = luabridge::LuaRef(pLuaState, (
FCNoteheadMod*)pProcessObject);
1995 case FCID_PERCUSSIONLAYOUTNOTE:
1998 case FCID_PERCUSSIONSTAFF:
2001 case FCID_PERFORMANCEMOD:
2002 parameter = luabridge::LuaRef(pLuaState, (
FCPerformanceMod*)pProcessObject);
2005 parameter = luabridge::LuaRef(pLuaState, (
FCPage*)pProcessObject);
2007 case FCID_PAGEGRAPHIC:
2008 parameter = luabridge::LuaRef(pLuaState, (
FCPageGraphic*)pProcessObject);
2011 parameter = luabridge::LuaRef(pLuaState, (
FCPageText*)pProcessObject);
2013 case FCID_PERCUSSIONNOTEMOD:
2017 parameter = luabridge::LuaRef(pLuaState, (
FCRawText*)pProcessObject);
2019 case FCID_SECONDARYBEAMBREAKMOD:
2022 case FCID_SECTIONSYLLABLE:
2025 case FCID_SEPARATEMEASURENUMBER:
2028 case FCID_SEPARATEPLACEMENT:
2031#ifdef PDK_FRAMEWORK_SHAPES
2033 parameter = luabridge::LuaRef(pLuaState, (
FCShapeDef*)pProcessObject);
2036 case FCID_SHAPEEXPRESSIONDEF:
2039 case FCID_SMARTSHAPE:
2040 parameter = luabridge::LuaRef(pLuaState, (
FCSmartShape*)pProcessObject);
2042 case FCID_SMARTSHAPEENTRYMARK:
2045 case FCID_SMARTSHAPEMEASUREMARK:
2049 parameter = luabridge::LuaRef(pLuaState, (
FCStaff*)pProcessObject);
2051 case FCID_STAFFLIST:
2052 parameter = luabridge::LuaRef(pLuaState, (
FCStaffList*)pProcessObject);
2054 case FCID_STAFFNAMEPOSITION:
2057 case FCID_STAFFSTYLEASSIGN:
2060 case FCID_STAFFSTYLEDEF:
2061 parameter = luabridge::LuaRef(pLuaState, (
FCStaffStyleDef*)pProcessObject);
2063 case FCID_STAFFSYSTEM:
2064 parameter = luabridge::LuaRef(pLuaState, (
FCStaffSystem*)pProcessObject);
2067 parameter = luabridge::LuaRef(pLuaState, (
FCStemMod*)pProcessObject);
2069 case FCID_SYLLABLEENTRYMOD:
2072 case FCID_SYSTEMSTAFF:
2073 parameter = luabridge::LuaRef(pLuaState, (
FCSystemStaff*)pProcessObject);
2075 case FCID_TABLATURENOTEMOD:
2078 case FCID_TEMPOELEMENT:
2079 parameter = luabridge::LuaRef(pLuaState, (
FCTempoElement*)pProcessObject);
2081 case FCID_TEXTBLOCK:
2082 parameter = luabridge::LuaRef(pLuaState, (
FCTextBlock*)pProcessObject);
2084 case FCID_TEXTEXPRESSIONDEF:
2087 case FCID_TEXTREPEAT:
2088 parameter = luabridge::LuaRef(pLuaState, (
FCTextRepeat*)pProcessObject);
2090 case FCID_TEXTREPEATDEF:
2091 parameter = luabridge::LuaRef(pLuaState, (
FCTextRepeatDef*)pProcessObject);
2094 parameter = luabridge::LuaRef(pLuaState, (
FCTieMod*)pProcessObject);
2097 parameter = luabridge::LuaRef(pLuaState, (
FCTuplet*)pProcessObject);
2099 case FCID_VERSESYLLABLE:
2100 parameter = luabridge::LuaRef(pLuaState, (
FCVerseSyllable*)pProcessObject);
2104#ifdef PDK_FRAMEWORK_DIAGNOSE
2117 _progressfrequency = 20;
2118 _timingstart = _timingend = 0;
2119 _forwardprocessing =
true;
2120 _downwardprocessing =
true;
2121 _partialmeasureselections =
true;
2122 _nullregionequalsall =
false;
2123 _useprogressbar =
false;
2124 _abortableprogressbar =
false;
2125 _progressbar_useraborted =
false;
2127 _processscorepart =
true;
2128 _processcurrentpart =
true;
2129 _processcurrentdoc =
true;
2165 int count = ProcessForEach(pCollection, lua_callback_function,
false);
2201 int count = ProcessForEach(pCollection, lua_callback_function,
true);
2230 int count = ProcessRegionEntries(pRegion, lua_callback_function,
false);
2273 int count = ProcessRegionEntries(pRegion, lua_callback_function,
true);
2322 int count = ProcessRegionNotes(pRegion, lua_callback_function,
false);
2362 int count = ProcessRegionNotes(pRegion, lua_callback_function,
true);
2394 int count = ProcessForEachCell(pRegion, lua_callback_function);
2421 int count = ProcessForEachPart(lua_callback_function);
2488 if (!lua_callback_function.isFunction())
return 0;
2496 int count = ProcessForEach(pCollection, lua_callback_function,
false);
2530 if (!lua_callback_function.isFunction())
return 0;
2538 int count = ProcessForEach(pCollection, lua_callback_function,
true);
2591 int count = ProcessForEachRegionObject(pRegion, classID, lua_callback_function,
false);
2622 int count = ProcessForEachRegionObject(pRegion, classID, lua_callback_function,
true);
2663 int count = ProcessForEachDocument(lua_callback_function,
false);
2707 int count = ProcessForEachDocument(lua_callback_function,
true);
2755 int count = ProcessForEachFile(pFileStrings, lua_callback_function,
false);
2807 int count = ProcessForEachFile(pFileStrings, lua_callback_function,
true);
2842 int ForEachInteger(
int integer1,
int integer2, luabridge::LuaRef lua_callback_function)
2845 int count = ProcessForEachInteger(integer1, integer2, lua_callback_function);
2862 return _progressfrequency;
2871 return _abortableprogressbar;
2890 return _loadlayermode;
2971 if (freq < 1)
return;
2972 _progressfrequency = freq;
3106 _entryfilters_AND.ClearAll();
3107 _entryfilters_OR.ClearAll();
3108 _entryfilters_NOT.ClearAll();
3191 _notefilters_AND.ClearAll();
3192 _notefilters_OR.ClearAll();
3193 _notefilters_NOT.ClearAll();
3277 _altnotationfilters_AND.ClearAll();
3278 _altnotationfilters_OR.ClearAll();
3279 _altnotationfilters_NOT.ClearAll();
3364 _notationstylefilters_AND.ClearAll();
3365 _notationstylefilters_OR.ClearAll();
3366 _notationstylefilters_NOT.ClearAll();
3405 if (_timingend == 0)
return 0;
3406 return (_timingend - _timingstart);
Base class for all data-related classes (that handles Finale data).
Definition ff_base.h:676
const PDKFRAMEWORK_CLASSID GetClassID() const override=0
Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has...
virtual bool Save()
Saves the currently loaded to its current location.
Definition finaleframework.cpp:951
Base class for the Finale Framework classes.
Definition ff_base.h:71
PDKFRAMEWORK_CLASSID
Constants for the GetClassID method.
Definition ff_base.h:84
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
Base class for data that attach to cells. A call to the ConnectCell method is required prior to loadi...
Definition ff_celldetails.h:27
Base class for all collections based on decendants from __FCBaseData.
Definition ff_basecollection.h:606
virtual int LoadAll()
Loads all available data into the collection.
Definition finaleframework.cpp:13964
Base class for all collection classes. A collection is a storage that can store multiple objects of s...
Definition ff_basecollection.h:26
int GetIndexOf(__FCBase *pObject) const
Returns the 0-based order index for the object within the collection.
Definition finaleframework.cpp:13775
void Add(__FCBase *pNewItem)
Adds an element to the end of the collection.
Definition finaleframework.cpp:13726
bool ClearItemAt(int index)
Deletes the object at the index position and disposes the object. Index is 0-based.
Definition finaleframework.cpp:13791
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
Base class that provides the basic functionality for entry detail data (such as Special Tools modific...
Definition ff_entrydetails.h:27
Base class for "other" (ot_*) data with incis.
Definition ff_other.h:63
STAFFNOTATION_STYLE
Styles for the FCStaff::GetNotationStyle() and FCStaff::SetNotationStyle() methods....
Definition ff_other.h:9308
__FCStaffBase::ALTERNATE_STAFF GetAltNotationStyle()
Returns the alternate notation style for the staff.
Definition ff_other.h:9901
ALTERNATE_STAFF
Alternate staff notation styles for FCStaff::GetAltNotationStyle() and FCStaff::SetAltNotationStyle()...
Definition ff_other.h:9341
STAFFNOTATION_STYLE GetNotationStyle() const
Returns the notation style for the staff.
Definition ff_other.h:9843
Class for acciental modifications (as in Finale's Special Tools).
Definition ff_entrydetails.h:3559
Class for allotment data (in the Document Options).
Definition ff_other.h:20147
The class for an articulation definition. On Finale 2012 and above, this class supports the Unicode c...
Definition ff_other.h:12287
Collection class for FCArticulationDef class objects.
Definition ff_othercollection.h:504
Class for attaching an articulation definition to an entry.
Definition ff_entrydetails.h:1839
The class for a backward repeat definition.
Definition ff_other.h:23156
Encapsulates baselines offset values for lyrics, expressions, fretboards and chords.
Definition ff_details.h:1096
Class for custom beam adjustments (in Finale's Special Tools).
Definition ff_entrydetails.h:4279
The class for one single beat chart element.
Definition ff_other.h:23615
Class for manually broken beam adjustments (in Finale's Special Tools).
Definition ff_entrydetails.h:5696
Class for a category definition.
Definition ff_other.h:13416
Collection class for FCCategoryDef class objects.
Definition ff_othercollection.h:765
Contains a clef change inside a cell. This is an item member in a FCCellClefChanges collection (creat...
Definition ff_other.h:25850
Class that holds the TGF frames and the clef changes of a TGF frame.
Definition ff_celldetails.h:956
Class for measure/cell-attached graphic objects. Currently, this class can only be used to edit exist...
Definition ff_celldetails.h:2045
The class that reference a cell (one measure on one staff) in the musical "grid".
Definition ff_cell.h:18
Class for measure-attached (cell-attached) text blocks. The ConnectCell method must be called prior t...
Definition ff_celldetails.h:2236
Class that contains data that appears in the middle of a long smart shape. This class is normally lin...
Definition ff_smartshapes.h:425
Class for chord assignments to a measure/staff.
Definition ff_celldetails.h:1289
Class that stores one record of a chord suffix definition.
Definition ff_other.h:21677
Collection class for FCChord class objects.
Definition ff_celldetails.h:2536
The class for a chorus syllable.
Definition ff_entrydetails.h:3222
Data class for the global clef definitions.
Definition ff_globals.h:51
Collection class for FCClefDef class objects.
Definition ff_globals.h:315
Class that specifies the cross-staff connection for a note.
Definition ff_entrydetails.h:1087
The class for a "current staff state" (the sum of staff changes and staff style changes) at a specifi...
Definition ff_other.h:12206
bool LoadForEntry(const FCNoteEntry *pNoteEntry)
Loads the staff spec data based on the position in the note entry.
Definition finaleframework.cpp:9322
bool LoadForCell(FCCell *pCell, TimeEdu32 durationpos)
Loads the staff spec data based on a position in a cell.
Definition finaleframework.cpp:9332
The class for a custom smart shape lines.
Definition ff_smartshapes.h:1889
Collection class for FCCustomSmartLineDef class objects.
Definition ff_smartshapes.h:3205
Class for custom stem shapes (in Finale's Special Tools). The data is connected to either an upstem o...
Definition ff_entrydetails.h:4177
Class for an opened Finale document. An opened Finale document has a 1-based ID and can be displayed ...
Definition ff_documents.h:28
bool Close(bool saveedits=true, _state_ptr S=nullptr)
Closes the document. Use this function to close a document if you did not open a document window when...
Definition finaleframework.cpp:32684
bool Save(const FCString *pFilePath=nullptr)
Saves the current document at the current document path or the specified document path.
Definition finaleframework.cpp:32572
void SetDirty(bool state)
Sets the "dirty" flag for the document (that indicates that the document needs to be saved).
Definition ff_documents.h:366
bool CloseCurrentDocumentAndWindow(bool saveedits=true, _state_ptr S=nullptr)
Closes the current document and any windows it has open. Use this function to close a document if you...
Definition finaleframework.cpp:32675
bool SwitchBack(bool saveedits, _state_ptr S=nullptr)
Ends the started edit block and switch back to the previous document.
Definition finaleframework.cpp:32514
bool SwitchTo(const FCString *pUndoString, bool saveedits, _state_ptr S=nullptr)
Switch document focus to this document and start a new undo/redo record, without closing the previous...
Definition finaleframework.cpp:32490
bool IsCurrent()
Returns true if the current document is the current document.
Definition ff_documents.h:75
bool IsUntitled()
Returns true if the document has no file connected to it.
Definition finaleframework.cpp:32697
bool Open(const FCString *pFilePath, bool createwindow, const FCString *pUndoString, bool saveedits, bool addtorecents, bool hidedialogs, _state_ptr S=nullptr)
Opens a file as a new Finale document. The new document automatically gets editing focus....
Definition finaleframework.cpp:32582
Class for a collection of documents. Usually used to get all the currently loaded documents in Finale...
Definition ff_documents.h:391
FCDocument * GetItemAt(int index) const
Overridden version of GetItemAt().
Definition ff_documents.h:443
int LoadAll()
Gets all open docs into the collection.
Definition finaleframework.cpp:32789
Class with adjustments to the augmentation dots (in Finale's Special Tools).
Definition ff_entrydetails.h:940
Class to encapsulate enclosures (available for example in expressions and measure numbers....
Definition ff_other.h:2872
The class for a start of repeat bracket in the document. There can only be one ending repeat in each ...
Definition ff_other.h:22668
Class for (what it seems) the sole purpose of note entry resize.
Definition ff_entrydetails.h:3459
The class for an executable shape definition.
Definition ff_other.h:21590
Collection class for FCExecutableShapeDef class objects.
Definition ff_othercollection.h:1414
Class for expression assignments to a measure/staff.
Definition ff_other.h:17641
Class for freezing a system at a specific measure.
Definition ff_other.h:14410
Class for tablature instruments definitions.
Definition ff_other.h:25427
Collection class for FCFretInstrumentDef class objects.
Definition ff_othercollection.h:1353
Class that stores one record of a fretboard chord definition.
Definition ff_other.h:22540
Collection class for FCFretboardGroupDef class objects.
Definition ff_othercollection.h:1514
The class for a fretboard style definition, which reflects the content the "Fretboard Style" dialog b...
Definition ff_other.h:21995
Collection class for FCFretboardStyleDef class objects.
Definition ff_othercollection.h:1490
Encapsulates a staff group.
Definition ff_details.h:79
Collection class for FCGroup class objects.
Definition ff_detailscollection.h:25
Class that contains independent key/time signatures for a cell.
Definition ff_celldetails.h:2568
The class for an instrument definition item (in the instrument list/Score Manager).
Definition ff_other.h:24413
Collection class for FCInstrumentDef class objects.
Definition ff_othercollection.h:1888
The class for instrument playback data. This is also the link between staves/staff styles and the FCI...
Definition ff_other.h:24668
Class for Lua callback iterators. This class is not part of the C++ PDK Framework.
Definition fflua_luaiterator.h:79
int ForEachPart(luabridge::LuaRef lua_callback_function)
Browses through all the parts in the current document, and passes the part to the callback function....
Definition fflua_luaiterator.h:2418
int GetProgressUpdateFrequency() const
Returns the update frequency for the progress bar.
Definition fflua_luaiterator.h:2860
void ClearAllAltNotationFilters()
Removes all filters for alternate notation. This will result in all items being processed.
Definition fflua_luaiterator.h:3275
int ForEachSaved(__FCCollectionData *pCollection, luabridge::LuaRef lua_callback_function)
Browses through the items in a collection. After the Lua callback function has processed the object,...
Definition fflua_luaiterator.h:2198
bool RemoveNotationStyleFilter(int filter, int logicmode)
Removes a notation style filter.
Definition fflua_luaiterator.h:3344
void SetProgressUpdateFrequency(int freq)
Sets the update frequency for the progress bar.
Definition fflua_luaiterator.h:2969
bool GetDownwardProcessing() const
Returns the vertical direction for processing staves in the iteration, for region-based iterators.
Definition fflua_luaiterator.h:2938
void SetProcessCurrentPart(bool state)
Sets if the part currently in editing focus should be processed in ForEachPart calls.
Definition fflua_luaiterator.h:3000
int ForEachFile(FCStrings *pFileStrings, luabridge::LuaRef lua_callback_function)
Opens all the files in a list of strings (as a FCStrings object), and passes the document to the Lua ...
Definition fflua_luaiterator.h:2752
void SetAbortableProgressBar(bool state)
Sets if the progress bar should be abortable (by the Esc key).
Definition fflua_luaiterator.h:2979
int ForEachObjectSaved(int classID, luabridge::LuaRef lua_callback_function)
Loads all the objects of a specific type and sends them to a Lua callback function....
Definition fflua_luaiterator.h:2528
bool IsAltNotationFilterAdded(int filter, int logicmode)
Returns true if a specific filter for alternate notation has been added/activated for the iterator.
Definition fflua_luaiterator.h:3293
int ForEachRegionObjectSaved(FCMusicRegion *pRegion, int classID, luabridge::LuaRef lua_callback_function)
Loads all the objects of a specific type that appears within a region and sends them to a Lua callbac...
Definition fflua_luaiterator.h:2619
bool GetUseProgressBar() const
Returns if the update progress bar should be used or not.
Definition fflua_luaiterator.h:2854
int ForEachRegionObject(FCMusicRegion *pRegion, int classID, luabridge::LuaRef lua_callback_function)
Loads all the objects of a specific type within a selected region and sends them to a Lua callback fu...
Definition fflua_luaiterator.h:2588
void SetDownwardProcessing(bool downward)
Sets the vertical direction for processing staves in the iteration, for region-based iterators.
Definition fflua_luaiterator.h:3039
bool IsNotationStyleFilterAdded(int filter, int logicmode)
Returns true if a specific filter for a notation style has been added/activated for the iterator.
Definition fflua_luaiterator.h:3379
bool GetProcessCurrentPart() const
Returns if the part currently in editing focus should be processed in ForEachPart calls.
Definition fflua_luaiterator.h:2904
void ClearAllEntryFilters()
Removes all entry filters. This will result in all entry being processed by the ForEachEntry and ForE...
Definition fflua_luaiterator.h:3104
void SetPartialMeasureSelections(bool partialselections)
Returns partially selected measures should be processed.
Definition fflua_luaiterator.h:3048
int ForEachDocument(luabridge::LuaRef lua_callback_function)
Browses through all the currently opened documents, and passes the document to the Lua callback funct...
Definition fflua_luaiterator.h:2660
bool RemoveNoteFilter(int filter, int logicmode)
Removes a note filter.
Definition fflua_luaiterator.h:3171
void SetLoadLayerMode(int loadlayermode)
Sets the load layer mode for the note entry iterators, such as ForEachEntry(), ForEachNote(),...
Definition fflua_luaiterator.h:2988
bool GetAbortableProgressBar() const
Returns if the progress bar should be abortable (by the Esc key).
Definition fflua_luaiterator.h:2869
void ClearAllNoteFilters()
Removes all note filters.
Definition fflua_luaiterator.h:3189
int ForEachDocumentSaved(luabridge::LuaRef lua_callback_function)
Browses through all the currently opened documents, passes the document to the Lua callback function,...
Definition fflua_luaiterator.h:2704
bool IsEntryFilterAdded(int filter, int logicmode)
Returns true if a specific note entry filter has been added/activated for the iterator.
Definition fflua_luaiterator.h:3121
void SetForwardProcessing(bool forward)
Sets the direction of the iteration.
Definition fflua_luaiterator.h:3029
bool GetPartialMeasureSelections() const
Returns partially selected measures should be processed.
Definition fflua_luaiterator.h:2947
FCLuaIterator()
The constructor.
Definition fflua_luaiterator.h:2115
bool RemoveAltNotationFilter(int filter, int logicmode)
Removes a alternate notation filter.
Definition fflua_luaiterator.h:3257
bool GetProcessCurrentDocument() const
Returns if the document currently in editing focus should be processed in ForEachDocument and ForEach...
Definition fflua_luaiterator.h:2911
int ForEachObject(int classID, luabridge::LuaRef lua_callback_function)
Loads all the objects of a specific type and sends them to a Lua callback function.
Definition fflua_luaiterator.h:2486
int ForEachNote(FCMusicRegion *pRegion, luabridge::LuaRef lua_callback_function)
Browses through all notes (as in noteheads) in a region. If a note entry consists of a chord with mul...
Definition fflua_luaiterator.h:2319
void SetUseProgressBar(bool use)
Sets if the update progress bar should be used or not.
Definition fflua_luaiterator.h:2956
double CalcLastDuration()
Reports the duration of the last iterator run.
Definition fflua_luaiterator.h:3403
int ForEachEntry(FCMusicRegion *pRegion, luabridge::LuaRef lua_callback_function)
Browses through the entries in a region, similar to the eachentry() iterator in JW Lua.
Definition fflua_luaiterator.h:2227
bool RemoveEntryFilter(int filter, int logicmode)
Removes a note entry filter.
Definition fflua_luaiterator.h:3086
int ForEach(__FCCollectionData *pCollection, luabridge::LuaRef lua_callback_function)
Browses through the items in a collection and sends the object to a Lua callback function,...
Definition fflua_luaiterator.h:2162
int ForEachFileSaved(FCStrings *pFileStrings, luabridge::LuaRef lua_callback_function)
Opens all the files in a list of strings (as a FCStrings object), passes the document to the Lua call...
Definition fflua_luaiterator.h:2804
bool GetNullRegionEqualsAll() const
Returns if NULL regions should automatically be interpreted as a full document region,...
Definition fflua_luaiterator.h:2918
void SetProcessCurrentDocument(bool state)
Sets if the document currently in editing focus should be processed in ForEachDocument and ForEachDoc...
Definition fflua_luaiterator.h:3007
bool IsNoteFilterAdded(int filter, int logicmode)
Returns true if a specific note filter has been added/activated for the iterator.
Definition fflua_luaiterator.h:3206
LUAITERATOR_LOGICMETHOD
Logical operators that are used for filters. If no filters are added/activated, all items are automat...
Definition fflua_luaiterator.h:189
@ LILOGIC_NOT
Definition fflua_luaiterator.h:197
@ LILOGIC_OR
Definition fflua_luaiterator.h:194
@ LILOGIC_AND
Definition fflua_luaiterator.h:191
int ForEachInteger(int integer1, int integer2, luabridge::LuaRef lua_callback_function)
Passes an integer range to the Lua callback function, one by one. This iterator automatically handles...
Definition fflua_luaiterator.h:2842
int ForEachCell(FCMusicRegion *pRegion, luabridge::LuaRef lua_callback_function)
Browses through each cell in a region, similar to the eachcell() iterator in JW Lua.
Definition fflua_luaiterator.h:2391
bool AddEntryFilter(int filter, int logicmode)
Adds/activates a note entry filter.
Definition fflua_luaiterator.h:3060
bool AddNoteFilter(int filter, int logicmode)
Adds/activates a note filter.
Definition fflua_luaiterator.h:3145
void ClearAllNotationStyleFilters()
Removes all filters for notation styles. This will result in all items being processed.
Definition fflua_luaiterator.h:3362
int ForEachEntrySaved(FCMusicRegion *pRegion, luabridge::LuaRef lua_callback_function)
Browses through and saves the entries in a region, similar to the eachentrysaved() iterator in JW Lua...
Definition fflua_luaiterator.h:2270
bool AddNotationStyleFilter(int filter, int logicmode)
Adds/activates an notation style filter.
Definition fflua_luaiterator.h:3317
int ForEachNoteSaved(FCMusicRegion *pRegion, luabridge::LuaRef lua_callback_function)
Browses through all notes (as in noteheads) in a region and saves the entries. If a note entry consis...
Definition fflua_luaiterator.h:2359
bool GetProgressBarUserAborted() const
Returns true if the processing was aborted by the user (using the Esc key) during the last processing...
Definition fflua_luaiterator.h:2879
const char * ClassName() const override
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child...
Definition fflua_luaiterator.h:81
LUAITERATOR_ENTRYFILTERS
Constants for the note entry filters.
Definition fflua_luaiterator.h:91
@ LIEFILTER_DURHALF
Definition fflua_luaiterator.h:141
@ LIEFILTER_DURQUARTER
Definition fflua_luaiterator.h:144
@ LIEFILTER_SECONDARYBEAMFLAG
Definition fflua_luaiterator.h:129
@ LIEFILTER_SINGLENOTE
Definition fflua_luaiterator.h:102
@ LIEFILTER_PERFORMANCEDATAFLAG
Definition fflua_luaiterator.h:114
@ LIEFILTER_REST
Definition fflua_luaiterator.h:96
@ LIEFILTER_TUPLETSTARTFLAG
Definition fflua_luaiterator.h:120
@ LIEFILTER_ARTICULATIONFLAG
Definition fflua_luaiterator.h:105
@ LIEFILTER_DOTTED
Definition fflua_luaiterator.h:135
@ LIEFILTER_GRACENOTE
Definition fflua_luaiterator.h:132
@ LIEFILTER_CHORD
Definition fflua_luaiterator.h:99
@ LIEFILTER_DUR8TH
Definition fflua_luaiterator.h:147
@ LIEFILTER_LYRICFLAG
Definition fflua_luaiterator.h:123
@ LIEFILTER_NOTEDETAILFLAG
Definition fflua_luaiterator.h:111
@ LIEFILTER_DUR32ND
Definition fflua_luaiterator.h:153
@ LIEFILTER_DUR64TH
Definition fflua_luaiterator.h:156
@ LIEFILTER_STEMDETAILFLAG
Definition fflua_luaiterator.h:126
@ LIEFILTER_NOTE
Definition fflua_luaiterator.h:93
@ LIEFILTER_DURWHOLE
Definition fflua_luaiterator.h:138
@ LIEFILTER_SPECIALALTSFLAG
Definition fflua_luaiterator.h:117
@ LIEFILTER_DUR16TH
Definition fflua_luaiterator.h:150
@ LIEFILTER_SMARTSHAPEFLAG
Definition fflua_luaiterator.h:108
LUAITERATOR_NOTEFILTERS
Constants for the note filters.
Definition fflua_luaiterator.h:167
@ LINFILTER_ACCIDENTAL
Definition fflua_luaiterator.h:172
@ LINFILTER_ACCIDENTALPARENTHESES
Definition fflua_luaiterator.h:176
@ LINFILTER_ACCIDENTALFREEZE
Definition fflua_luaiterator.h:179
@ LINFILTER_TIE
Definition fflua_luaiterator.h:169
int GetLoadLayerMode() const
Returns the load layer mode for the note entry iterators, such as ForEachEntry(), ForEachNote(),...
Definition fflua_luaiterator.h:2888
bool AddAltNotationFilter(int filter, int logicmode)
Adds/activates an alternate notation filter.
Definition fflua_luaiterator.h:3230
bool GetProcessScorePart() const
Returns if the score part (the part with part ID 0) should be processed in ForEachPart calls.
Definition fflua_luaiterator.h:2898
void SetNullRegionEqualsAll(bool state)
Sets if NULL regions should automatically be interpreted as a full document region,...
Definition fflua_luaiterator.h:3014
void SetProcessScorePart(bool state)
Sets if the score part (the part with part ID 0) should be processed in ForEachPart calls.
Definition fflua_luaiterator.h:2994
bool GetForwardProcessing() const
Returns the direction of the iteration.
Definition fflua_luaiterator.h:2930
The class for a measure (the full vertical measure stack) in the document. It maps the Measure Attrib...
Definition ff_other.h:4221
The class for a measure number region.
Definition ff_other.h:5494
Collection class for FCMeasureNumberRegion class objects.
Definition ff_othercollection.h:370
Collection class for FCMeasure class objects.
Definition ff_othercollection.h:228
Encapsulates the continous MIDI data in a cell.
Definition ff_celldetails.h:265
Class for a multi-measure rest instance.
Definition ff_other.h:19613
Collection class for FCMultiMeasureRest class objects.
Definition ff_othercollection.h:1164
Class for a multi-staff instrument defined in the Score Manager.
Definition ff_other.h:19933
Collection class for FCMultiStaffInstrument class objects.
Definition ff_othercollection.h:1211
Class that encapsulates EREGION and provides additional functionality to region handling.
Definition ff_region.h:25
twobyte GetStartMeasure() const
Returns the start measure for the region.
Definition ff_region.h:411
bool SetFullDocument()
Sets the region to span the full document.
Definition finaleframework.cpp:15590
twobyte GetStartSlot() const
Returns the start slot (staff) for the region.
Definition ff_region.h:445
bool IsMeasurePartial(eMeas measure)
Returns true if a specific measure is partially selected.
Definition finaleframework.cpp:15749
int CalcStaffSpan()
Calculates the number of staves in the region.
Definition ff_region.h:521
int CalcMeasureSpan()
Calculates the number of measures in the region.
Definition ff_region.h:509
bool IsEmptyAndNotSinglePos() const
Returns true if the region is empty and it is not a single-position region. Finale itself treats sing...
Definition ff_region.h:151
twobyte GetEndMeasure() const
Returns the end measure for the region.
Definition ff_region.h:419
twobyte CalcStaffNumber(twobyte slot)
Calculates the staff number, based on the region's slot number.
Definition ff_region.h:536
twobyte GetEndSlot() const
Returns the end slot (staff) for the region.
Definition ff_region.h:458
bool IsEntryPosWithin(const FCNoteEntry *pEntry)
Checks if a entry is within the region. This checks for partial measures.
Definition finaleframework.cpp:15725
Class that encapsulate a cell of note entries.
Definition ff_noteframe.h:3133
Encapsulates a note entry from an owner class (for example FCNoteEntryCell, FCNoteEntryLayer) class.
Definition ff_noteframe.h:940
bool GetNoteDetailFlag() const
Returns true for existing note detail records.
Definition ff_noteframe.h:2246
bool GetSecondaryBeamFlag() const
Returns true for secondary beam detail records.
Definition ff_noteframe.h:2293
bool IsNote()
Returns true if entry is a note.
Definition ff_noteframe.h:2375
ENTNUM GetEntryNumber() const
Returns the internal entry number (ID) for the note entry.
Definition ff_noteframe.h:1319
bool IsDotted()
Returns true if it's a dotted entry.
Definition finaleframework.cpp:18472
bool GetArticulationFlag() const
Returns true if the entry is marked to contain articulations.
Definition ff_noteframe.h:2308
bool GetGraceNote() const
Gets the grace note state of the note entry.
Definition ff_noteframe.h:1828
bool GetTupletStartFlag() const
Returns true if the entry is marked to start a tuplet.
Definition ff_noteframe.h:2271
bool GetLyricFlag() const
Returns the flag that marks that an entry has syllable attached to it.
Definition ff_noteframe.h:2277
bool IsRest() const
Returns true if entry is a rest.
Definition ff_noteframe.h:2383
bool GetSmartShapeFlag() const
Returns true if the entry is marked to contain smart shapes.
Definition ff_noteframe.h:2315
TimeEdu32 CalcNondottedDuration()
Returns the non-dotted symbolic duration of the entry.
Definition ff_noteframe.h:1919
bool GetStemDetailFlag() const
Gets the flag state for stem detail records.
Definition ff_noteframe.h:2285
bool GetPerformanceDataFlag() const
Returns true for existing performance data records.
Definition ff_noteframe.h:2256
FCNote * GetItemAt(int index) const
Overload version of GetItemAt(), which returns a note object (if available) for the note entry.
Definition ff_noteframe.h:1053
bool GetSpecialAltsFlag() const
Returns true for existing special alteration records.
Definition ff_noteframe.h:2264
Encapsulates one note in a note entry (from the FCNoteEntry class).
Definition ff_noteframe.h:29
bool GetAccidentalParentheses() const
Returns the parentheses accidental state.
Definition ff_noteframe.h:110
bool GetTie() const
Gets the tie start state for the note.
Definition ff_noteframe.h:175
bool GetAccidentalFreeze() const
Returns the freezed accidental state.
Definition ff_noteframe.h:104
bool CalcAccidental() const
Returns the displayed state of an accidental. This is the method that should be used to find out if a...
Definition finaleframework.cpp:17074
Class for notehead modifications (as in Finale's Special Tools).
Definition ff_entrydetails.h:337
Class for page-assigned graphics. Currently, this class can only be used to edit existing page graphi...
Definition ff_other.h:20251
Collection class for FCPageGraphic class objects.
Definition ff_othercollection.h:1290
The class representing a physical page in Finale.
Definition ff_other.h:3398
Class for a page-connected text block.
Definition ff_other.h:16687
Collection class for FCPageText class objects.
Definition ff_othercollection.h:955
Collection class for FCPage class objects.
Definition ff_othercollection.h:66
Class that represents one linked part in a document. The class also provides methods to switch betwee...
Definition ff_parts.h:119
bool SwitchBack()
Switches back yo the "original" current part, that was in focus at the call to SwitchTo.
Definition ff_parts.h:308
bool IsCurrent()
Returns true if the part is the very same as the current part in the editing focus.
Definition ff_parts.h:360
bool SwitchTo()
Sets the focus to this part (but does not set it in view).
Definition ff_parts.h:292
bool IsScore()
Returns true if the part is the score.
Definition ff_parts.h:341
Collection class for FCPart objects.
Definition ff_parts.h:572
int LoadAll()
Loads all parts (including the "score part") for the document.
Definition finaleframework.cpp:32395
FCPart * GetItemAt(int index) const
Definition ff_parts.h:646
The class for a note definition in a percussion layout.
Definition ff_other.h:24811
Class for percussion note modification.
Definition ff_entrydetails.h:4094
Class that stores the information for drum mapping, either for a staff or staff style.
Definition ff_other.h:7106
The class for raw text objects. All other text classes are based on this class, but it can also be us...
Definition ff_text.h:17
Class for secondary beam breaks (in Finale's Special Tools).
Definition ff_entrydetails.h:1197
The class for a section syllable.
Definition ff_entrydetails.h:3241
Class for a manually added or edited measure number in a cell.
Definition ff_celldetails.h:663
Class that handles separate placement for repeats.
Definition ff_other.h:17270
Class for a shape definition (as in Finale's Shape selection dialog).
Definition ff_other.h:2233
Collection class for FCShapeDef class objects, which defines the shape definitions in the document.
Definition ff_othercollection.h:1434
Class for a shape expression definition.
Definition ff_other.h:15488
Collection class for FCShapeExpressionDef class objects.
Definition ff_othercollection.h:859
Class for smartshape assignments/connections to an entry.
Definition ff_smartshapes.h:310
A record that represents a smart shape in the score. It is connected to the score through FCSmartShap...
Definition ff_smartshapes.h:958
Class for smartshape assignments to a measure.
Definition ff_smartshapes.h:194
Collection class for FCSmartShape class objects.
Definition ff_smartshapes.h:3235
The class for a staff in the score. It is also a base class for staff styles.
Definition ff_other.h:11503
An object that contains one staff list section (out of 4). Before data is loaded/saved,...
Definition ff_other.h:25043
Class for staff (or staff style) name positioning data.
Definition ff_other.h:7202
Class for staff style assignments to a staff.
Definition ff_other.h:19437
Class for a staff style definition.
Definition ff_other.h:18244
Collection class for FCStaffStyleDef class objects.
Definition ff_othercollection.h:1122
The class for a staff system on a page.
Definition ff_other.h:3715
Collection class for FCStaffSystem class objects. A collection typically contains all staff systems f...
Definition ff_othercollection.h:164
Collection class for FCStaff class objects.
Definition ff_othercollection.h:319
Class for manual stem adjustments (in Finale's Special Tools).
Definition ff_entrydetails.h:1702
Class that provides storage for text. This is to achieve platform-transparent text handling,...
Definition ff_base.h:1877
bool IsEmpty() const
Returns true if the string is empty.
Definition ff_base.h:3179
Collection class for FCString class objects.
Definition ff_basecollection.h:1085
FCString * GetItemAt(int index) const
Overridden GetItemAt() method.
Definition ff_basecollection.h:1118
Class for controlling justification/alignment for all syllables that are connected to an entry.
Definition ff_entrydetails.h:3265
Class that stores one "inci" of a staff list (for a system or for the global list of staves).
Definition ff_other.h:6952
Class with info about one tablature note.
Definition ff_entrydetails.h:5792
The class for a single tempo change in the Tempo Tool. The tempo elements should be stored in measure...
Definition ff_other.h:23987
Class for a text block.
Definition ff_other.h:16048
Class for a text expression definition.
Definition ff_other.h:14515
Collection class for FCTextExpressionDef class objects.
Definition ff_othercollection.h:830
The class for a text repeat definition.
Definition ff_other.h:20797
Collection class for FCTextRepeatDef class objects.
Definition ff_othercollection.h:1322
Class for text repeat assignments to a measure. The assignment is connected with a FCTextRepeatDef de...
Definition ff_other.h:21128
Class with adjustments to the ties (in Finale's Special Tools).
Definition ff_entrydetails.h:4987
Class for attaching an tuplet to an entry.
Definition ff_entrydetails.h:2153
static double GetHiResTimer()
Returns a high-resolution timer value, mainly for use with internal profilers.
Definition finaleframework.cpp:24286
Class that handles Undo records for modeless plug-in interfaces.
Definition ff_undo.h:54
bool GetSandboxMode() const
Return current sandbox mode.
Definition ff_undo.h:209
static FCUndoController & GetUndoController(_state_ptr S=nullptr)
Gets the undo block for the session, creating it if there is not already one,.
Definition ff_undo.h:89
void EndUndo(bool savecurrent=false)
Ends an undo session.
Definition ff_undo.h:137
The class for a verse syllable.
Definition ff_entrydetails.h:3202