From 824f7b0903de8ad7f6ee3d7656005e4c59155e06 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 8 Apr 2013 00:43:40 +0000 Subject: context import for TL13, from www.pragma-ade.com/context/beta/cont-tmf.zip git-svn-id: svn://tug.org/texlive/trunk@29731 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/context/base/java-imp-fld.mkiv | 140 ++++++++++++++++----- 1 file changed, 112 insertions(+), 28 deletions(-) (limited to 'Master/texmf-dist/tex/context/base/java-imp-fld.mkiv') diff --git a/Master/texmf-dist/tex/context/base/java-imp-fld.mkiv b/Master/texmf-dist/tex/context/base/java-imp-fld.mkiv index 625bfce115a..aaec257f259 100644 --- a/Master/texmf-dist/tex/context/base/java-imp-fld.mkiv +++ b/Master/texmf-dist/tex/context/base/java-imp-fld.mkiv @@ -266,10 +266,14 @@ function ForgetChanges() { \startJSpreamble FieldStack used later +function Field_Name(FieldSet,i) { + return this.getField(FieldSet + ":" + i) +} + function Reset_Fields(FieldSet) { var i = 1 ; while (true) { - v = this.getField(FieldSet+":"+i) ; + v = Field_Name(FieldSet,i) ; if (!v) { break ; } else { @@ -277,12 +281,13 @@ function Reset_Fields(FieldSet) { } i++ ; } + this.dirty = false ; } function Set_Fields(FieldSet) { var i = 1 ; while (true) { - v = this.getField(FieldSet+":"+i) ; + v = Field_Name(FieldSet,i) ; if (!v) { break ; } else { @@ -290,36 +295,39 @@ function Set_Fields(FieldSet) { } i++ ; } + this.dirty = false ; } function Set_Field(FieldSet, FieldName) { Reset_Fields(FieldSet) ; - v = this.getField(FieldSet+":"+FieldName) ; + v = Field_Name(FieldSet,FieldName) ; if (v) { v.value = "Yes" ; + this.dirty = false ; } } function Reset_Field(FieldSet, FieldName) { Set_Fields(FieldSet) ; - v = this.getField(FieldSet+":"+FieldName) ; + v = Field_Name(FieldSet,FieldName) ; if (v) { v.value = "Off" ; + this.dirty = false ; } } function Walk_Field(FieldSet) { var i = 1 ; while (true) { - v = this.getField(FieldSet + ":" + i) ; + v = Field_Name(FieldSet,i) ; if (v) { if (v.value != "Off") { v.value = "Off" ; var ii = i ; ii++ ; - v = this.getField(FieldSet + ":" + ii) ; + v = Field_Name(FieldSet,ii) ; if (! v) { - v = this.getField(FieldSet + ":" + 1) ; + v = Field_Name(FieldSet,1) ; } if (v) { v.value = "Yes" ; @@ -331,6 +339,7 @@ function Walk_Field(FieldSet) { break ; } } + this.dirty = false ; } var FieldSets = new Array() ; @@ -338,36 +347,67 @@ var FieldSets = new Array() ; function Do_Get_Check_Walk_Field(FieldSet) { var f = FieldSets[FieldSet] if (! f) { - f = new Array() ; + f = new Array() ; f.number = 0 ; f.delay = 500 ; f.paused = false ; f.running = false ; f.name = FieldSet ; f.timeout = null ; + f.repeat = true ; + f.total = 0 ; + f.pauseset = new Array() ; FieldSets[FieldSet] = f ; + for (var i=1; i>0; i++) { + var v = Field_Name(FieldSet,i) ; + if (! v) { + f.total = i - 1 ; + break ; + } + } + f.start = 0 ; + f.stop = f.total ; + f.pause = 0 ; } + this.dirty = false ; return f } +function Do_Next_Auto_Walk_Field_Step(FieldSet,fieldset,n) { + var v = Field_Name(FieldSet,fieldset.number) ; + if (v) { + if (v.value != "Off") { + v.value = "Off" ; + } + } + v = Field_Name(FieldSet,n) ; + if (v) { + fieldset.number = n ; + v.value = "Yes" ; + if (fieldset.pauseset[n]) { + // fieldset.pause = n ; + // Do_Stop_Auto_Walk_Field(Fieldset) ; + Do_Stop_Auto_Walk_Field(FieldSet) ; + fieldset.paused = true ; + } + } + this.dirty = false ; +} + function Do_Next_Auto_Walk_Field(FieldSet) { var fieldset = Do_Get_Check_Walk_Field(FieldSet) ; if (fieldset) { - var v = this.getField(FieldSet + ":" + fieldset.number) ; - if (v) { - if (v.value != "Off") { - v.value = "Off" ; + if (fieldset.number >= fieldset.stop) { + if (fieldset.repeat == false) { + fieldset.running = false ; + Do_Stop_Auto_Walk_Field(fieldset) ; + } else { + Do_Next_Auto_Walk_Field_Step(FieldSet,fieldset,fieldset.start) ; } + } else { + Do_Next_Auto_Walk_Field_Step(FieldSet,fieldset,fieldset.number+1) ; } - fieldset.number++ ; - v = this.getField(FieldSet + ":" + fieldset.number) ; - if (! v) { - fieldset.number = 1 ; - v = this.getField(FieldSet + ":" + fieldset.number) ; - } - if (v) { - v.value = "Yes" ; - } + this.dirty = false ; } } @@ -379,6 +419,7 @@ function Do_Stop_Auto_Walk_Field(FieldSet) { app.clearTimeOut(fieldset.timeout) ; } catch (e) { } + this.dirty = false ; } } @@ -386,7 +427,9 @@ function Do_Start_Auto_Walk_Field(FieldSet) { var fieldset = Do_Get_Check_Walk_Field(FieldSet) ; if (fieldset) { Do_Stop_Auto_Walk_Field(FieldSet) ; + Do_Next_Auto_Walk_Field(FieldSet) ; fieldset.timeout = app.setInterval("Do_Next_Auto_Walk_Field('"+FieldSet+"')", fieldset.delay) ; + this.dirty = false ; } } @@ -419,9 +462,48 @@ function Pause_Walk_Field(FieldSet) { } } -function Start_Pause_Walk_Field(FieldSet, Delay) { +function Start_Pause_Walk_Field(FieldSet, Delay, Option) { var fieldset = Do_Get_Check_Walk_Field(FieldSet) ; if (fieldset) { + if (Option == "once") { + fieldset.repeat = false ; + } else if (Option == "pause") { + fieldset.repeat = false ; + } else { + fieldset.repeat = true ; + } + if (Option == "pause") { + for (i=3; i 1) { + fieldset.start = fieldset.pause - 1 ; + } else { + fieldset.start = 1 ; + } + fieldset.stop = fieldset.total ; + } else { + var Start = arguments[3] ; + var Stop = arguments[4] ; + if (typeof Start == "string") { + fieldset.start = parseInt(Start) ; + } else if (typeof Start == "number") { + fieldset.start = Start ; + } else { + fieldset.start = 1 ; + } + if (typeof Stop == "string") { + fieldset.stop = parseInt(Stop) ; + } else if (typeof Stop == "number") { + fieldset.stop = Stop ; + } else { + fieldset.stop = fieldset.total ; + } + fieldset.pause = 0 ; + } if (fieldset.running) { if (fieldset.paused) { Do_Start_Auto_Walk_Field(FieldSet) ; @@ -431,7 +513,7 @@ function Start_Pause_Walk_Field(FieldSet, Delay) { fieldset.paused = true ; } } else { - fieldset.number = 0 ; + fieldset.number = fieldset.start - 1 ; if (Delay) { fieldset.delay = Delay ; } @@ -470,17 +552,18 @@ function Previous_Walk_Field(FieldSet) { fieldset.running = false ; fieldset.paused = false ; if (fieldset.number>0) { - var v = this.getField(FieldSet + ":" + fieldset.number) ; + var v = Field_Name(FieldSet,fieldset.number) ; if (v) { if (v.value != "Off") { v.value = "Off" ; } } fieldset.number-- ; - v = this.getField(FieldSet + ":" + fieldset.number) ; + v = Field_Name(FieldSet,fieldset.number) ; if (v) { v.value = "Yes" ; } + this.dirty = false ; } } } @@ -492,19 +575,20 @@ function Next_Walk_Field(FieldSet) { fieldset.running = false ; fieldset.paused = false ; var f = fieldset.number + 1 ; - var v = this.getField(FieldSet + ":" + f) ; + var v = Field_Name(FieldSet,f) ; if (v) { - var v = this.getField(FieldSet + ":" + fieldset.number) ; + var v = Field_Name(FieldSet,fieldset.number) ; if (v) { if (v.value != "Off") { v.value = "Off" ; } } fieldset.number++ ; - v = this.getField(FieldSet + ":" + fieldset.number) ; + v = Field_Name(FieldSet,fieldset.number) ; if (v) { v.value = "Yes" ; } + this.dirty = false ; } } } -- cgit v1.2.3