Jump to content

Animation: Difference between revisions

m
→‎{{header|Phix}}: added syntax colouring
m (removed trailing newlines in Elm solution)
m (→‎{{header|Phix}}: added syntax colouring)
Line 2,292:
=={{header|Phix}}==
{{libheader|Phix/pGUI}}
Clicking on the label changes the animation direction.
<lang Phix>-- demo\rosetta\Animation.exw
<!--<lang Phix>(phixonline)-->
include pGUI.e
<span style="color: #000080;font-style:italic;">-- demo\rosetta\Animation.exw</span>
 
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
string hw = "Hello World! "
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
bool direction = true
Ihandle label
<span style="color: #004080;">string</span> <span style="color: #000000;">hw</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"Hello World! "</span>
 
<span style="color: #004080;">bool</span> <span style="color: #000000;">direction</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">true</span>
function timer_cb(Ihandle /*ih*/)
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">label</span>
hw = iff(direction?hw[$]&hw[1..-2]:hw[2..$]&hw[1])
IupSetAttribute(label,"TITLE",hw)
<span style="color: #008080;">function</span> <span style="color: #000000;">button_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000080;font-style:italic;">/*button*/</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">pressed</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">/*x*/</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">/*y*/</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000080;font-style:italic;">/*pStatus*/</span><span style="color: #0000FF;">)</span>
return IUP_IGNORE
<span style="color: #008080;">if</span> <span style="color: #000000;">pressed</span> <span style="color: #008080;">then</span>
end function
<span style="color: #000000;">direction</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">not</span> <span style="color: #000000;">direction</span>
 
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
function key_cb(Ihandle /*ih*/, atom c)
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_CONTINUE</span>
if c=K_ESC then return IUP_CLOSE end if
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
if c=K_UP then direction = not direction end if
return IUP_CONTINUE
<span style="color: #008080;">function</span> <span style="color: #000000;">timer_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">)</span>
end function
<span style="color: #000000;">hw</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">direction</span> <span style="color: #0000FF;">?</span> <span style="color: #000000;">hw</span><span style="color: #0000FF;">[$]</span> <span style="color: #0000FF;">&</span> <span style="color: #000000;">hw</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..-</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span>
 
<span style="color: #0000FF;">:</span> <span style="color: #000000;">hw</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..$]</span> <span style="color: #0000FF;">&</span> <span style="color: #000000;">hw</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span>
procedure main()
<span style="color: #7060A8;">IupSetAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">label</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">hw</span><span style="color: #0000FF;">)</span>
IupOpen()
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_IGNORE</span>
label = IupLabel(hw,"FONT=\"Verdana, 18\"")
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
Ihandle dlg = IupDialog(label,"TITLE=Animation, DIALOGFRAME=YES, CHILDOFFSET=70x40, SIZE=200x80")
IupSetCallback(dlg, "K_ANY", Icallback("key_cb"))
<span style="color: #008080;">procedure</span> <span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
IupShow(dlg)
<span style="color: #7060A8;">IupOpen</span><span style="color: #0000FF;">()</span>
Ihandle hTimer = IupTimer(Icallback("timer_cb"), 160)
<span style="color: #000000;">label</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupLabel</span><span style="color: #0000FF;">(</span><span style="color: #000000;">hw</span><span style="color: #0000FF;">,</span><span style="color: #008000;">`FONT="Verdana, 18"`</span><span style="color: #0000FF;">)</span>
IupMainLoop()
<span style="color: #7060A8;">IupSetCallback</span><span style="color: #0000FF;">(</span><span style="color: #000000;">label</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"BUTTON_CB"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"button_cb"</span><span style="color: #0000FF;">))</span>
IupClose()
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">dlg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupDialog</span><span style="color: #0000FF;">(</span><span style="color: #000000;">label</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE=Animation, DIALOGFRAME=YES, CHILDOFFSET=70x40, SIZE=200x80"</span><span style="color: #0000FF;">)</span>
end procedure
<span style="color: #7060A8;">IupShow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
 
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">hTimer</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupTimer</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"timer_cb"</span><span style="color: #0000FF;">),</span> <span style="color: #000000;">160</span><span style="color: #0000FF;">)</span>
main()</lang>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">IupMainLoop</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
main()<!--</lang>-->
 
=={{header|PicoLisp}}==
7,820

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.