File size: 696 Bytes
402daee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
--[[

  ReaUtil.lua - Utility functions for Reaper Interaction

]]--

ReaUtil = {
  ACTIVE_PROJECT = 0
}

function ReaUtil.proxy_main_on_command(command_number, flag)
  return function (proj)
    proj = proj or 0
    reaper.Main_OnCommandEx(command_number, flag, proj)
  end
end

function ReaUtil.disabler(context, error_handler)
  error_handler = error_handler or function(msg)
    reaper.ShowConsoleMsg(msg .. '\n')
  end

  return function(predicate, f)
    local safe_f = function()
      xpcall(f, error_handler)
    end

    if not predicate then
      safe_f()
      return
    end

    reaper.ImGui_BeginDisabled(context, true)
    safe_f()
    reaper.ImGui_EndDisabled(context)
  end
end