diff options
author | Hans Hagen <pragma@wxs.nl> | 2010-08-19 01:08:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2010-08-19 01:08:00 +0200 |
commit | 174663b0081dd76f91c45fd705262a262a7b1f49 (patch) | |
tree | 554d5d47e81a9263e98fe7091be7e4dbd363482b /tex/context/base/lpdf-fld.lua | |
parent | e68c228a21a98042c87ef21d9a094b97f941e8de (diff) | |
download | context-174663b0081dd76f91c45fd705262a262a7b1f49.tar.gz |
beta 2010.08.19 01:08
Diffstat (limited to 'tex/context/base/lpdf-fld.lua')
-rw-r--r-- | tex/context/base/lpdf-fld.lua | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/tex/context/base/lpdf-fld.lua b/tex/context/base/lpdf-fld.lua index 455ddcf5f..f05dcaa85 100644 --- a/tex/context/base/lpdf-fld.lua +++ b/tex/context/base/lpdf-fld.lua @@ -12,20 +12,24 @@ if not modules then modules = { } end modules ['lpdf-fld'] = { local gmatch, lower, format = string.gmatch, string.lower, string.format local lpegmatch = lpeg.match +local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes local trace_fields = false trackers.register("widgets.fields", function(v) trace_fields = v end) local report_fields = logs.new("fields") -local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes +local backends, lpdf = backends, lpdf -local variables = interfaces.variables +local variables = interfaces.variables -local nodeinjections = backends.pdf.nodeinjections -local codeinjections = backends.pdf.codeinjections -local registrations = backends.pdf.registrations +local references = structures.references +local settings_to_array = utilities.parsers.settings_to_array -local registeredsymbol = codeinjections.registeredsymbol +local nodeinjections = backends.pdf.nodeinjections +local codeinjections = backends.pdf.codeinjections +local registrations = backends.pdf.registrations + +local registeredsymbol = codeinjections.registeredsymbol local pdfstream = lpdf.stream local pdfdictionary = lpdf.dictionary @@ -38,7 +42,9 @@ local pdftoeight = lpdf.toeight local pdfflushobject = lpdf.flushobject local pdfreserveobject = lpdf.reserveobject -local pdfannotation_node = nodes.pdfannotation +local nodepool = nodes.pool + +local pdfannotation_node = nodepool.pdfannotation local submitoutputformat = 0 -- 0=unknown 1=HTML 2=FDF 3=XML => not yet used, needs to be checked @@ -116,10 +122,9 @@ local function fieldplus(specification) return n end - local function checked(what) if what and what ~= "" then - local set, bug = jobreferences.identify("",what) + local set, bug = references.identify("",what) return not bug and #set > 0 and lpdf.action(set) end end @@ -235,7 +240,7 @@ local function fieldappearances(specification) -- error return end - local v = aux.settings_to_array(values) + local v = settings_to_array(values) local n, r, d if #v == 1 then n, r, d = v[1], v[1], v[1] @@ -257,7 +262,7 @@ local function fieldstates(specification,forceyes,values,default) -- error return end - local v = aux.settings_to_array(values) + local v = settings_to_array(values) local yes, off, yesn, yesr, yesd, offn, offr, offd if #v == 1 then yes, off = v[1], v[1] @@ -268,12 +273,12 @@ local function fieldstates(specification,forceyes,values,default) if not (yesshown and yesvalue) then yesshown = yes, yes end - yes = aux.settings_to_array(yesshown) + yes = settings_to_array(yesshown) local offshown, offvalue = lpegmatch(splitter,off) if not (offshown and offvalue) then offshown = off, off end - off = aux.settings_to_array(offshown) + off = settings_to_array(offshown) if #yes == 1 then yesn, yesr, yesd = yes[1], yes[1], yes[1] elseif #yes == 2 then @@ -317,7 +322,7 @@ local function fieldoptions(specification) local values = specification.values local default = specification.default if values then - local v = aux.settings_to_array(values) + local v = settings_to_array(values) for i=1,#v do local vi = v[i] local shown, value = lpegmatch(splitter,vi) @@ -334,11 +339,11 @@ end local function radiodefault(parent,field,forceyes) local default, values = parent.default, parent.values if not default or default == "" then - values = aux.settings_to_array(values) + values = settings_to_array(values) default = values[1] end local name = field.name - local fieldvalues = aux.settings_to_array(field.values) + local fieldvalues = settings_to_array(field.values) local yes, off = fieldvalues[1], fieldvalues[2] or fieldvalues[1] if not default then return pdfconstant((forceyes and "On") or yes) @@ -391,7 +396,7 @@ end local function predefinesymbols(specification) local values = specification.values if values then - local symbols = aux.settings_to_array(values) + local symbols = settings_to_array(values) for i=1,#symbols do local symbol = symbols[i] local a, b = lpegmatch(splitter,symbol) @@ -406,7 +411,7 @@ function codeinjections.getdefaultfieldvalue(name) local values = f.values local default = f.default if not default or default == "" then - local symbols = aux.settings_to_array(values) + local symbols = settings_to_array(values) local symbol = symbols[1] if symbol then local a, b = lpegmatch(splitter,symbol) -- splits at => @@ -431,7 +436,7 @@ function codeinjections.definefield(specification) elseif kind == "radio" then local values = specification.values if values and values ~= "" then - values = aux.settings_to_array(values) + values = settings_to_array(values) for v=1,#values do radios[values[v]] = { parent = n } end @@ -526,7 +531,12 @@ end -- -function codeinjections.doiffieldset(tag) +function codeinjections.doiffieldgroupelse(name) + local f = fields[name] or radios[name] or clones[name] + commands.testcase(f and f.group) +end + +function codeinjections.doiffieldsetelse(tag) commands.testcase(fieldsets[tag]) end |