-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathmeasure_numbers_move_up.lua
57 lines (52 loc) · 2.46 KB
/
measure_numbers_move_up.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
function plugindef()
finaleplugin.Author = "Robert Patterson"
finaleplugin.Copyright = "CC0 https://creativecommons.org/publicdomain/zero/1.0/"
finaleplugin.Version = "1.0"
finaleplugin.Date = "June 21, 2020"
finaleplugin.CategoryTags = "Measure"
return "Measure Numbers Move Up", "Measure Numbers Move Up", "Moves selected measure numbers up by one staff space."
end
local library = require("library.general_library")
local move_amount = 24 -- evpus
function measure_numbers_move_up()
local systems = finale.FCStaffSystems()
systems:LoadAll()
local meas_num_regions = finale.FCMeasureNumberRegions()
meas_num_regions:LoadAll()
local parts = finale.FCParts()
parts:LoadAll()
local current_part = parts:GetCurrent()
local current_is_part = not current_part:IsScore()
local sel_region = library.get_selected_region_or_whole_doc()
local cells = finale.FCCells()
cells:ApplyRegion(sel_region)
for cell in each(cells) do
local system = systems:FindMeasureNumber(cell.Measure)
local meas_num_region = meas_num_regions:FindMeasure(cell.Measure)
if (nil ~= system) and (nil ~= meas_num_region) then
if library.is_default_measure_number_visible_on_cell(meas_num_region, cell, system, current_is_part) then
local sep_nums = finale.FCSeparateMeasureNumbers()
sep_nums:LoadAllInCell(cell)
if (sep_nums.Count > 0) then
for sep_num in each(sep_nums) do
sep_num.VerticalPosition = sep_num.VerticalPosition + move_amount
sep_num:Save()
end
else
local sep_num = finale.FCSeparateMeasureNumber()
sep_num:ConnectCell(cell)
sep_num:AssignMeasureNumberRegion(meas_num_region)
sep_num.VerticalPosition = sep_num.VerticalPosition + move_amount
--sep_num:SetShowOverride(true) -- enable this line if you want to force show the number. otherwise it will show or hide based on the measure number region
if sep_num:SaveNew() then
local measure = finale.FCMeasure()
measure:Load(cell.Measure)
measure:SetContainsManualMeasureNumbers(true)
measure:Save()
end
end
end
end
end
end
measure_numbers_move_up()