diff options
Diffstat (limited to 'tex/context/base/scrn-but.mkvi')
-rw-r--r-- | tex/context/base/scrn-but.mkvi | 96 |
1 files changed, 43 insertions, 53 deletions
diff --git a/tex/context/base/scrn-but.mkvi b/tex/context/base/scrn-but.mkvi index fee8e757c..7370d944f 100644 --- a/tex/context/base/scrn-but.mkvi +++ b/tex/context/base/scrn-but.mkvi @@ -166,39 +166,46 @@ \endgroup} \def\scrn_button_make_yes - {\ifcase\referencepagestate\relax - \expandafter\scrn_button_make_normal % no state : something else than a page reference + {\scratchcounter\referencerealpage\relax % called in otr + \ifcase\scratchcounter + \expandafter\scrn_button_make_normal % no state : something else than a page reference + \else\ifnum\scratchcounter=\realpageno + \expandafter\expandafter\expandafter\scrn_button_make_yes_same + \else + \expandafter\expandafter\expandafter\scrn_button_make_yes_other + \fi\fi} + +\def\scrn_button_make_yes_same + {\ifcase\locationboxpagestate\relax + \expandafter\scrn_button_make_contrast % same page: yes: same page or not ... todo \or - \ifcase\locationboxpagestate\relax - \expandafter\expandafter\expandafter\scrn_button_make_contrast % same page: yes: same page or not ... todo - \or - \expandafter\expandafter\expandafter\scrn_button_make_empty % same page: empty but frame: no click - \or - \expandafter\expandafter\expandafter\scrn_button_make_nothing % same page: empty no frame: no - \else - \expandafter\expandafter\expandafter\scrn_button_make_skipped % same page: nothing at all - \fi + \expandafter\scrn_button_make_empty % same page: empty but frame: no click + \or + \expandafter\scrn_button_make_nothing % same page: empty no frame: no \else - \ifcase\locationboxpagestate\relax - \expandafter\expandafter\expandafter\scrn_button_make_normal % other page: yes: same page or not ... todo - \or - \expandafter\expandafter\expandafter\scrn_button_make_normal % other page: empty but frame: no click - \or - \expandafter\expandafter\expandafter\scrn_button_make_normal % other page: empty no frame: no - \else - \expandafter\expandafter\expandafter\scrn_button_make_skipped % other page: nothing at all - \fi% + \expandafter\scrn_button_make_skipped % same page: nothing at all + \fi} + +\def\scrn_button_make_yes_other + {\ifcase\locationboxpagestate\relax + \expandafter\scrn_button_make_normal % other page: yes: same page or not ... todo + \or + \expandafter\scrn_button_make_normal % other page: empty but frame: no click + \or + \expandafter\scrn_button_make_normal % other page: empty no frame: no + \else + \expandafter\scrn_button_make_skipped % other page: nothing at all \fi} \def\scrn_button_make_nop {\ifcase\locationboxpagestate\relax - \expandafter\scrn_button_make_framed + \expandafter\scrn_button_make_framed \or - \expandafter\scrn_button_make_empty + \expandafter\scrn_button_make_empty \or - \expandafter\scrn_button_make_nothing + \expandafter\scrn_button_make_nothing \or - \expandafter\scrn_button_make_skipped + \expandafter\scrn_button_make_skipped \fi} \def\scrn_button_make_framed#currentparameter#inheritedframed#letparameter#setparameter#text% @@ -326,25 +333,6 @@ \unexpanded\def\defineinteractionmenu {\dotripleempty\scrn_menu_define} -% \def\scrn_menu_define[#tag][#category][#settings]% category reflects location, settings can be parent -% {\ifthirdargument -% \doifassignmentelse{#settings}% -% {\scrn_menu_define_original[#tag][#category][\c!category=#category,#settings]}% child definition -% {\scrn_menu_define_original[#tag][#settings][\c!category=#category]}% % child definition -% \scrn_menu_register{#tag}{#category}% -% \setevalue{\??am:#tag\s!parent}{\namedinteractionmenuhash{#tag}}% framed -% \else\ifsecondargument -% \doifassignmentelse{#category}% -% {\scrn_menu_define_original[#tag][#category]% % root definition -% \setevalue{\??am:#tag\s!parent}{\namedinteractionmenuhash\empty}}% framed -% {\scrn_menu_define_original[#tag][#category][\c!category=#category]% % child definition -% \scrn_menu_register{#tag}{#category}% -% \setevalue{\??am:#tag\s!parent}{\namedinteractionmenuhash{#tag}}}% framed -% \else -% \scrn_menu_define_original[#tag]% % root definition -% \setevalue{\??am:#tag\s!parent}{\namedinteractionmenuhash\empty}% framed -% \fi\fi} - \def\scrn_menu_define[#tag][#category][#settings]% category reflects location, settings can be parent {\ifthirdargument \doifassignmentelse{#settings}% @@ -545,13 +533,15 @@ %D With the packager being one of: +\let\currentinteractionmenudistance\!!zeropoint + \def\scrn_menu_packager_vertical {\scrn_menu_set_used \hskip\scrn_menu_next_distance \setbox\scrn_menu_box\hbox to \scrn_menu_used_width {\ifx\currentinteractionmenustate\v!empty \else \interactionmenuparameter\c!left - \scrn_menu_package_vertical{\interactionmenuparameter\c!menu}% + \scrn_menu_package_vertical{\strictinteractionmenuparameter\c!menu}% \interactionmenuparameter\c!right \fi}% \edef\currentinteractionmenudistance{\interactionmenuparameter\c!distance}% @@ -572,7 +562,7 @@ {\ifx\currentinteractionmenustate\v!none \else \scrn_menu_top_align \interactionmenuparameter\c!before - \scrn_menu_package_horizontal{\interactionmenuparameter\c!menu}% + \scrn_menu_package_horizontal{\strictinteractionmenuparameter\c!menu}% \interactionmenuparameter\c!after \scrn_menu_bottom_align \fi}% @@ -756,13 +746,13 @@ \newtoks\everysetmenucommands % public \appendtoks - \let\raw\scrn_menu_raw \let\startraw\scrn_menu_raw_start - \let\but\scrn_menu_but \let\startbut\scrn_menu_but_start - \let\got\scrn_menu_got \let\startgot\scrn_menu_got_start - \let\nop\scrn_menu_nop \let\startnop\scrn_menu_nop_start - \let\txt\scrn_menu_txt \let\starttxt\scrn_menu_txt_start - \let\rul\scrn_menu_rul \let\startrul\scrn_menu_rul_start - \let\com\scrn_menu_com \let\startcom\scrn_menu_com_start + \let\raw\scrn_menu_raw \let\startraw\scrn_menu_raw_start \let\stopraw\relax + \let\but\scrn_menu_but \let\startbut\scrn_menu_but_start \let\stopbut\relax + \let\got\scrn_menu_got \let\startgot\scrn_menu_got_start \let\stopgot\relax + \let\nop\scrn_menu_nop \let\startnop\scrn_menu_nop_start \let\stopnop\relax + \let\txt\scrn_menu_txt \let\starttxt\scrn_menu_txt_start \let\stoptxt\relax + \let\rul\scrn_menu_rul \let\startrul\scrn_menu_rul_start \let\stoprul\relax + \let\com\scrn_menu_com \let\startcom\scrn_menu_com_start \let\stopcom\relax \to \everysetmenucommands %D Sometimes handy: @@ -785,7 +775,7 @@ \doif{\interactionmenuparameter\c!state}\v!local {\letinteractionmenuparameter\c!state\v!start % \setinteractionmenuparameter\s!parent{\??am\askedinteractionmenulocation}% nice hack - \interactionmenuparameter\c!menu}% + \strictinteractionmenuparameter\c!menu}% \endgroup} %D Direct call (todo): |