% fmmcc.sth % mmcc style with frames % HtX (1.0) (c) 1997, Richard M. Salter % Please read copyright and distribution agreement \input{report.sth} \typeout{Substyle: mmcc} \typeout{Substyle: frames} \seticondir{icons/} \setlibdir{./} \base{} %\seticondir{http://klingon.cs.iupui.edu/~aharris/mmcc/icons/} \setappletdir{http://www.cs.oberlin.edu/~rms/applets/} %\setappletdir{http://www.cs.indiana.edu/mmcc/applets/} \newcommand{\htx}{HtX} \newctr{exctr}\newctr{exsol}\newctr{hntctr} \newenvironment{framesetdoc}[1][2]{ \begin{excursion}{#3}{w} \mkp*{/head} \ifdef[\mkp*[rows="#1"]{frameset}]{#1} \ifdef[\mkp*[cols="#2"]{frameset}]{#2}} {\mkp*{/frameset}\mkp*{/html}\end{excursion}} \newenvironment{frameset}[0][2]{ \ifdef[\mkp*[rows="#1"]{frameset}]{#1} \ifdef[\mkp*[cols="#2"]{frameset}]{#2}} {\mkp*{/frameset}} \newcommand{\frame}[1][2]{ \mkp*[name="#1" #2 src="#3"]{frame} } \newenvironment{framesetdoc}[1][2]{ \begin{excursion}{#3}{w} \mkp*{/head} \ifdef[\mkp*[rows="#1"]{frameset}]{#1} \ifdef[\mkp*[cols="#2"]{frameset}]{#2}} {\mkp*{/frameset}\mkp*{/html}\end{excursion}} \newenvironment{frameset}[0][2]{ \ifdef[\mkp*[rows="#1"]{frameset}]{#1} \ifdef[\mkp*[cols="#2"]{frameset}]{#2}} {\mkp*{/frameset}} \newcommand{\frame}[1][2]{ \mkp*[name="#1" #2 src="#3"]{frame} } \newcommand{\jsheader}{ \begin{javascript}[\mainfileroot] function retoc() { var callingURL = document.URL; var tmp = callingURL.lastIndexOf("/"); var tocurl = callingURL.substring(tmp+1, callingURL.length); parent.frames[0].location='\mainfileroot tc.html?'+tocurl; } \end{javascript} } % Section, subsection, subsubsection with frames \newcommand{\section}[1][1]{ \setbuf{sect}{Section: #2} \ifthen {\or{\or{\numeq{\ctr{nav}}{2}}{\numle{\ctr{navlvl}}{0}}} {\nonempty{#1}}} \ifdef[\header{2}{\bundle*{0}[#1]{|#2|}}] [\header{2}{\bundle*{0}{#2}}]{#1}\par \ifelse \pgprelude{\jsheader\setprop{olprop}{retoc()}} \pghead{\header{3}{\buf{sect}}\par} \bundle{0}{#2}\setctr{pgdepth}{\depth} \pgfoot{\hr\address{\buf{me}}} \endif} \newcommand{\subsection}[1][1]{ \setbuf{subsect}{Subsection: #2} \ifthen {\or{\or{\numeq{\ctr{nav}}{2}}{\numle{\ctr{navlvl}}1}} {\nonempty{#1}}} \ifdef[\header{3}{\bundle*{1}[#1]{|#2|}}] [\header{3}{\bundle*{1}{#2}}]{#1}\par \ifelse \pgprelude{\jsheader\setprop{olprop}{retoc()}} \pghead{\header{3}{\buf{sect}\break ...\buf{subsect}}\par} \bundle{1}{#2}\setctr{pgdepth}{\depth} \pgfoot{\hr\address{\buf{me}}} \endif} \newcommand{\subsubsection}[1][1]{ \setbuf{subsubsect}{Subsubsection: #2} \ifthen {\or{\or{\numeq{\ctr{nav}}{2}}{\numle{\ctr{navlvl}}2}} {\nonempty{#1}}} \ifdef[\header{3}{\bundle*{2}[#1]{|#2|}}] [\header{3}{\bundle*{2}{#2}}]{#1}\par \ifelse \pgprelude{\jsheader\setprop{olprop}{retoc()}} \pghead{\header{3}{\buf{sect}\break ...\buf{subsect}\break ... ...\buf{subsubsect}}\par} \bundle{2}{#2}\setctr{pgdepth}{\depth} \pgfoot{\hr\address{\buf{11}}} \endif} \newcommand{\section*}[1][1]{\section[#1]{#2}} \newcommand{\subsection*}[1][1]{\subsection[#1]{#2}} \newcommand{\subsubsection*}[1][1]{\subsubsection[#1]{#2}} \newcommand{\vlentry}[1][1]{ \libbuf*\nl\setlibbuf*{ \end{verbatim}\nl\header{5}{Use {\bf Back} to return}\eanchor} \nl\nl |\hr\anchor{rf#2}{\header{2}{\alt{#1}{#2}}}\par\begin{verbatim}|} \newcommand{\lentry}[1][1]{ \libbuf*\nl\setlibbuf*{\header{5}{Use {\bf Back} to return}\eanchor} \nl\nl |\hr\anchor{rf#2}{\header{2}{\alt{#1}{#2}}}\par\nl|} \newbibfile[ffffbb][References]{refs} \newcommand{\docheader}[3]{ \begin{center} \title{Module \hash #2: #3} \begin{table}[cellpadding=10][][halign=center] \image{\icondir mmcc.gif}\col[valign=middle halign=center] \header{3}{\centering\it #1}\row[][halign=center]\par \header{4} {\centering Indiana University\\Multi-campus Modular\\Computing Curriculum} \end{table} \end{center} \hr[noshade size=2] {\div[center]\header{1}{Module \hash #2: #3}} \hr[noshade size=2]} \newenvironment{goallist}{ \header{2}{\it\image[middle][][hspace=15]{\icondir goal.gif} Goals} \begin{itemize}} {\end{itemize}\hr[noshade size=2]} \newenvironment{prereqs}{ \header{2}{\it\image[middle][][hspace=15]{\icondir suitcase.gif} Prerequisite Skills} \begin{itemize}} {\end{itemize}\hr[noshade size=2]} \newenvironment{lab}{\section{Laboratory Assignment}}{} \newenvironment{lab*}{\section*{Laboratory Assignment}}{} \newenvironment{summary}{\section{Summary}}{} \newenvironment{summary*}{\section*{Summary}}{} \newenvironment{vocab}{ \section{Vocabulary} \hr[noshade size=2] \header{2}{\it\it\image[middle][][hspace=15]{\icondir type.gif} Vocabulary / Main Concepts} \begin{description}} {\end{description}\hr[noshade size=2]} \newenvironment{leftimage}[1]{ \image[left][][hspace=15 vspace=10]{#1}} {\break[left]} \newenvironment{rightimage}[1]{ \image[right][][hspace=15 vspace=10]{#1}} {\break[right]} % q and a \newbuf{ansf} \newctr{qctr} \newctr{cellans} \newcommand{\cellans}{\setctr{cellans}1} \newcommand{\keyans}{\clrctr{cellans}} \newenvironment{quest} { \incctr{qctr} \anchor{Q\ctr{qctr}}{\par\image[BOTTOM]{\icondir begin_colorline.gif}} \begin{description} \item[\bf Q. \ctr{qctr}]} { \ifthen {\numeq{\ctr{cellans}}0} \par \cdots\cdots Click here to return:\cdots\link{Q\ctr{qctr}} {\image[TOP][HERE]{\icondir curved_back.GIF}} \vspace{50} \end{excursion}\par \ifelse \par \cdots\cdots Click here to return:\cdots\xlink{../\uref{Q\ctr{qctr}}} {\image[TOP][HERE]{\icondir curved_back.GIF}} \end{cell}\par \endif \image[TOP]{\icondir end_colorline.GIF}\par} \newcommand{\ans} {\par \end{description}\hr Click here for the answer: \ifthen {\numeq{\ctr{cellans}}0} \link{A\ctr{qctr}}{\image[MIDDLE]{\icondir green_query.GIF}} \begin{excursion}{\buf{ansf}}{a} \anchor{A\ctr{qctr}}{\bf A. \ctr{qctr}}\cdots\cdots\cdots \ifelse \cellref[A\ctr{qctr}]{\image[MIDDLE]{\icondir green_query.GIF}} \begin{cell}{A\ctr{qctr}} \endif} \newenvironment{hint}[1]{ \incctr{hntctr} {\bf Hint:} \begin{gloss*}[#1] {\image[TOP][Click Here]{\icondir green_bang!.GIF}}} {\end{gloss*}} \newcommand{\newansfile}[1][1]{ \begin{excursion}{#2}{w} \preamb[#1]{Answers} \end{excursion} \setbuf{ansf}{#2}} % multiple choice question using applet \newctr{mcq}\newctr{mcstar}\newbuf{mcalt} \newenvironment{mcquest}{ \setctr{mcq}{-1} \clrctr{mcstar} \incctr{qctr} \anchor{Q\ctr{qctr}}{\par\image[BOTTOM]{\icondir end_colorline.GIF}} \begin{quote} \begin{applet}[\appletdir Mcquest] [\substr{1}{6}{\getprop{bgprop}}]{200}{300}{mcquest} \begin{capture}{0} \semiverb[\mans:\mans*][\end{capture}]{mcquest}} {\ifthen {\numeq{\ctr{mcq}}{0}} \jparam{quest}{\ctr{qctr}. \buf0} \ifelse \jparam{A\ctr{mcq}}{\buf*{mcalt}} \jparam{R\ctr{mcq}}{\buf0} \ifthen {\numeq{\ctr{mcstar}}{1}} \jparam{C\ctr{mcq}}{\ctr{mcq}} \clrctr{mcstar} \endif \endif \incctr{mcq} \jparam{alts}{\ctr{mcq}} \end{applet}\end{quote} \image[TOP]{\icondir end_colorline.GIF}\par } \newcommand{\mans}[1]{ \end{capture} \ifthen {\numeq{\ctr{mcq}}{-1}} \jparam{quest}{\ctr{qctr}. \buf0} \ifelse \jparam{A\ctr{mcq}}{\buf*{mcalt}} \jparam{R\ctr{mcq}}{\buf*0} \ifthen {\numeq{\ctr{mcstar}}{1}} \jparam{C\ctr{mcq}}{\ctr{mcq}} \clrctr{mcstar} \endif \endif \setbuf{mcalt}{#1} \incctr{mcq} \begin{capture}{0} } \newcommand{\mans*}[1]{ \end{capture} \ifthen {\numeq{\ctr{mcq}}{-1}} \jparam{quest}{\ctr{qctr}. \buf0} \ifelse \jparam{A\ctr{mcq}}{\buf*{mcalt}} \jparam{R\ctr{mcq}}{\buf*0} \ifthen {\numeq{\ctr{mcstar}}{1}} \jparam{C\ctr{mcq}}{\ctr{mcq}} \clrctr{mcstar} \endif \endif \setbuf{mcalt}{#1} \incctr{mcq} \incctr{mcstar} \begin{capture}{0} } % exercises % new method \newctr{exdpth} \newenvironment{exercise}[0][1]{ \incctr{exctr} \setctr{exdpth}{\depth} \hr[noshade] \ifthen {\nonempty{#1}} \header{2}{\bundle*{3}{Exercise \ctr{exctr}: #1}} \ifelse \header{2}{\bundle*{3}{Exercise \ctr{exctr}}} \endif} {\\\hr[noshade]\unbundle\par} \newcommand{\solutionon}{\setctr{exsol}{1}} \newcommand{\solutionoff}{\clrctr{exsol}} \newenvironment{exsol}[0][1]{ \ifthen {\ctr{exsol}} \\Click here for the solution: \ifthen {\nonempty{#1}} \setbuf{99}{.#1} \ifelse \setbuf{99}{} \endif \begin{gloss*}[Solution to Exercise \ctr{exctr}\buf{99}] {\image[MIDDLE]{\icondir pink_query.GIF}} \ifelse \begin{excursion}{/dev/null}{w} \endif } {\ifthen {\ctr{exsol}} \end{gloss*}\ifelse \end{excursion}\endif} % vocabulary \newcommand{\vref}[1][1]{ \setrefbuf{rf\alt{#1}{#2}\/ \refbuf} \setbuf0{\tagclean{rf\alt{#1}{#2}}} \ifthen {\isref\buf0} \link{\buf0}{{\it #2\/}} \ifelse {\it #2} \image{\icondir smenaw.gif} \endif} \newcommand{\vocab}{ % {\library{vcbl}} \section{Vocabulary} \centerline{\image{\icondir type.gif}}\par \dblsrt[\refbuf]{anchor}{\libfile.htx} %\postamb } % html display \newctr{htmld} \newenvironment{html-display}{ \incctr{htmld} \begin{capture}{0} \semiverb[][\end{capture}]{html-display}} {\mkp*{pre} \buf0\nl \mkp*{/pre} \par \xlink{htmld\ctr{htmld}.html}{Click here to View} \begin{excursion}{htmld\ctr{htmld}}{w} \preamb{HTML Example \ctr{htmld}} \buf*0\nl\postamb \end{excursion} } \newcommand{\sp}[0][1]{ \ifthen {\empty{#1}} \'160 \ifelse \newctr{ictr} \for{ictr}{#1}{1}{\'160} \endif} \newcommand{\latex}{LaTeX} \newcommand{\LaTeX}{LaTeX} \newcommand{\doindex}{\section{Index}\makeindex} \newcommand{\indx}[1][1][Vt]{ \incctr{index} \setbuf1{@i\depth @\ctr{index}} \anchor{\buf1}{} \asinsert{#2}[|#1|]{\buf1}} \newcommand{\makeindex}{ {\centering\header{2}{Index}}\par \mkp*[cellpadding=5]{table} \aslist[\mkp*{b}][\mkp*{/b}\sp[2]][\par] {\image[][][border=0]{\icondir bsmiley.gif}} \mkp*{/table} } \newcommand{\htxonly}[1]{#1} \newcommand{\latexonly}[1]{} %% TOC \newctr{toclvl} \newenvironment{toc}{\incctr{toclvl}}{\decctr{toclvl}} \newcommand{\tocitem}[2]{ \ifthen {\numeq{\ctr{toclvl}}{1}} \par{\mkp{nobr}\bf\script{cline("#1","#2")}} \ifelse \newctr{tctr} {\mkp{nobr}\for{tctr}{\plus{\ctr{toclvl}}{-1}}{1}{-} \script{cline("#1","#2")}} \endif \ifthen {\empty{\substr{20}{21}{#2}}}\break \ifelse\nl \endif } Colors \newcommand{\paleBlue}{\wallpaint{fbd8ff}} \newcommand{\palePink}{\wallpaint{ffbfe1}} \newcommand{\paleGreen}{\wallpaint{bfffcb}} \newcommand{\paleLavender}{\wallpaint{d8bfff}} \newcommand{\robinsEggBlue}{\wallpaint{c0ffff}} \newcommand{\pastelGreen}{\wallpaint{d4ffd4}} \newcommand{\palePurple}{\wallpaint{ffd4ff}} \newkeyhole[\mainfileroot\ key][d8bfff]{\curfileroot key} \newansfile[ffbfe1]{\curfileroot ans} \newcelldir{\mainfileroot cell} % frame creation \nobody \title{\mainfileroot} \outputon \getbase \mkp*{/head} \rtoc{0:1:2:3}{toc}[][tocitem] \begin{frameset}[][30\pct,70\pct]\nl \frame[contents]{\curfileroot tc.html} \frame[main]{\curfileroot 0.html} \end{frameset} \begin{excursion}{\curfileroot tc}{w} \setbuf0{\getprop{lnprop}} \setbuf1{\getprop{txprop}} \setbuf2{\getprop{vlprop}} \setprop{lnprop}{ffff00} \setprop{txprop}{ff0000} \setprop{vlprop}{ffff00} \begin{javascript}[\mainfileroot] var callingURL = document.URL; var cgiString = callingURL.substring(callingURL.indexOf('?'),callingURL.length); var DELIMETER = '&'; var curfile = cgiString.substring(1,cgiString.length); function tocaction(url) { parent.frames[0].location='\mainfileroot tc.html?'+url; } function cline(url, text) { if (url == curfile) { document.write(''+text+"") } else { document.write(''+text+'') } } \end{javascript} \preamb[000000]{Contents} \header{2}{Contents} \ifthen{\numeq{\pass}{2}}\input{\mainfileroot toc}\endif \par\postamb \end{excursion} \setprop{lnprop}{\buf0}\setprop{txprop}{\buf1}\setprop{vlprop}{\buf2} \pgprelude{\jsheader\setprop{olprop}{retoc()}} %\pgprelude{\setprop{olprop} %{parent.frames[0].location='\mainfileroot tc.html?\curfile'}} \robinsEggBlue \bundle{0}{Title Page} \outputoff