Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > 6d7587e5535e7142017769f96c14d623 > files > 62

libcaca-devel-0.99-0.beta16.5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
    <title>libcaca documentation</title>
    <link href="doxygen.css" rel="stylesheet" type="text/css">
  </head>
  <body>
<!-- $Id$ -->
<!-- Generated by Doxygen 1.5.9 -->
<div class="contents">
<h1><a class="anchor" name="libcaca-ruby-api">Libcaca Ruby API </a></h1>Theclasses available for libcaca are :<p>
<ul>
<li><b>Caca::Canvas</b> : functions that have a caca_canvas_t* as first argument </li>
<li><b>Caca::Dither</b> : functions that have a caca_dither_t* as first argument </li>
<li><b>Caca::Font</b> : functions that have a caca_font_t* as first argument (The constructor can currently only accept the name of a builtin font) </li>
<li><b>Caca::Display</b> </li>
<li><b>Caca::Event</b> </li>
<li><b>Caca::Event::Key</b> </li>
<li><b>Caca::Event::Key::Press</b> </li>
<li><b>Caca::Event::Key::Release</b> </li>
<li><b>Caca::Event::Mouse</b> </li>
<li><b>Caca::Event::Mouse::Press</b> </li>
<li><b>Caca::Event::Mouse::Release</b> </li>
<li><b>Caca::Event::Mouse::Motion</b> </li>
<li><b>Caca::Event::Resize</b> </li>
<li><b>Caca::Event::Quit</b> </li>
</ul>
Thecharacter set conversion functions are not available yet in the binding.<p>
<div class="fragment"><pre class="fragment">$irb -rcaca
irb(main):001:0&gt;class Object
irb(main):002:1&gt;def Object.my_instance_methods
irb(main):003:2&gt;instance_methods.sort - ancestors[1].instance_methods
irb(main):004:2&gt;end
irb(main):005:1&gt;def Object.my_methods
irb(main):006:2&gt;methods.sort - ancestors[1].methods
irb(main):007:2&gt;end
irb(main):008:1&gt;end
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):009:0&gt;Caca.constants
=&gt;[<span class="stringliteral">"BROWN"</span>, <span class="stringliteral">"BOLD"</span>, <span class="stringliteral">"GREEN"</span>, <span class="stringliteral">"LIGHTMAGENTA"</span>, <span class="stringliteral">"LIGHTBLUE"</span>, <span class="stringliteral">"BLINK"</span>,
<span class="stringliteral">"MAGENTA"</span>,<span class="stringliteral">"DEFAULT"</span>, <span class="stringliteral">"TRANSPARENT"</span>, <span class="stringliteral">"BLUE"</span>, <span class="stringliteral">"LIGHTRED"</span>, <span class="stringliteral">"DARKGRAY"</span>,
<span class="stringliteral">"UNDERLINE"</span>,<span class="stringliteral">"RED"</span>, <span class="stringliteral">"WHITE"</span>, <span class="stringliteral">"BLACK"</span>, <span class="stringliteral">"LIGHTCYAN"</span>, <span class="stringliteral">"LIGHTGRAY"</span>,
<span class="stringliteral">"ITALICS"</span>,<span class="stringliteral">"CYAN"</span>, <span class="stringliteral">"YELLOW"</span>, <span class="stringliteral">"LIGHTGREEN"</span>, <span class="stringliteral">"Canvas"</span>, <span class="stringliteral">"Dither"</span>, <span class="stringliteral">"Font"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):010:0&gt;Caca.my_methods
=&gt;[<span class="stringliteral">"version"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):011:0&gt;Caca::Canvas.my_methods
=&gt;[<span class="stringliteral">"export_list"</span>, <span class="stringliteral">"import_list"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):012:0&gt;Caca::Canvas.my_instance_methods
=&gt;[<span class="stringliteral">"attr="</span>, <span class="stringliteral">"blit"</span>, <span class="stringliteral">"clear"</span>, <span class="stringliteral">"create_frame"</span>, <span class="stringliteral">"cursor_x"</span>, <span class="stringliteral">"cursor_y"</span>,
<span class="stringliteral">"dither_bitmap"</span>,<span class="stringliteral">"draw_box"</span>, <span class="stringliteral">"draw_circle"</span>, <span class="stringliteral">"draw_cp437_box"</span>, <span class="stringliteral">"draw_ellipse"</span>,
<span class="stringliteral">"draw_line"</span>,<span class="stringliteral">"draw_polyline"</span>, <span class="stringliteral">"draw_thin_box"</span>, <span class="stringliteral">"draw_thin_ellipse"</span>,
<span class="stringliteral">"draw_thin_line"</span>,<span class="stringliteral">"draw_thin_polyline"</span>, <span class="stringliteral">"draw_thin_triangle"</span>,
<span class="stringliteral">"draw_triangle"</span>,<span class="stringliteral">"export_memory"</span>, <span class="stringliteral">"fill_box"</span>, <span class="stringliteral">"fill_ellipse"</span>,
<span class="stringliteral">"fill_triangle"</span>,<span class="stringliteral">"flip"</span>, <span class="stringliteral">"flop"</span>, <span class="stringliteral">"frame="</span>, <span class="stringliteral">"frame_count"</span>, <span class="stringliteral">"frame_name"</span>,
<span class="stringliteral">"frame_name="</span>,<span class="stringliteral">"free_frame"</span>, <span class="stringliteral">"get_attr"</span>, <span class="stringliteral">"get_char"</span>, <span class="stringliteral">"gotoxy"</span>,
<span class="stringliteral">"handle_x"</span>,<span class="stringliteral">"handle_y"</span>, <span class="stringliteral">"height"</span>, <span class="stringliteral">"height="</span>, <span class="stringliteral">"import_file"</span>,
<span class="stringliteral">"import_memory"</span>,<span class="stringliteral">"invert"</span>, <span class="stringliteral">"printf"</span>, <span class="stringliteral">"put_attr"</span>, <span class="stringliteral">"put_char"</span>, <span class="stringliteral">"put_str"</span>,
<span class="stringliteral">"rotate_180"</span>,<span class="stringliteral">"rotate_left"</span>, <span class="stringliteral">"rotate_right"</span>, <span class="stringliteral">"set_attr"</span>,
<span class="stringliteral">"set_boundaries"</span>,<span class="stringliteral">"set_color_ansi"</span>, <span class="stringliteral">"set_color_argb"</span>, <span class="stringliteral">"set_frame"</span>,
<span class="stringliteral">"set_frame_name"</span>,<span class="stringliteral">"set_handle"</span>, <span class="stringliteral">"set_height"</span>, <span class="stringliteral">"set_size"</span>, <span class="stringliteral">"set_width"</span>,
<span class="stringliteral">"stretch_left"</span>,<span class="stringliteral">"stretch_right"</span>, <span class="stringliteral">"width"</span>, <span class="stringliteral">"width="</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):013:0&gt;Caca::Font.my_methods
=&gt;[<span class="stringliteral">"list"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):014:0&gt;Caca::Font.my_instance_methods
=&gt;[<span class="stringliteral">"blocks"</span>, <span class="stringliteral">"height"</span>, <span class="stringliteral">"width"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):015:0&gt;Caca::Dither.my_instance_methods
=&gt;[<span class="stringliteral">"algorithm="</span>, <span class="stringliteral">"algorithm_list"</span>, <span class="stringliteral">"antialias="</span>, <span class="stringliteral">"antialias_list"</span>,
<span class="stringliteral">"brightness="</span>,<span class="stringliteral">"charset="</span>, <span class="stringliteral">"charset_list"</span>, <span class="stringliteral">"color="</span>, <span class="stringliteral">"color_list"</span>,
<span class="stringliteral">"contrast="</span>,<span class="stringliteral">"gamma="</span>, <span class="stringliteral">"palette="</span>, <span class="stringliteral">"set_algorithm"</span>, <span class="stringliteral">"set_antialias"</span>,
<span class="stringliteral">"set_brightness"</span>,<span class="stringliteral">"set_charset"</span>, <span class="stringliteral">"set_color"</span>, <span class="stringliteral">"set_contrast"</span>,
<span class="stringliteral">"set_gamma"</span>,<span class="stringliteral">"set_palette"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):010:0&gt;Caca::Display.my_instance_methods
=&gt;[<span class="stringliteral">"canvas"</span>, <span class="stringliteral">"get_event"</span>, <span class="stringliteral">"height"</span>, <span class="stringliteral">"mouse="</span>, <span class="stringliteral">"mouse_x"</span>, <span class="stringliteral">"mouse_y"</span>, <span class="stringliteral">"refresh"</span>,
<span class="stringliteral">"set_mouse"</span>,<span class="stringliteral">"set_time"</span>, <span class="stringliteral">"set_title"</span>, <span class="stringliteral">"time"</span>, <span class="stringliteral">"time="</span>, <span class="stringliteral">"title="</span>, <span class="stringliteral">"width"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):011:0&gt;Caca::Event.constants
=&gt;[<span class="stringliteral">"Key"</span>, <span class="stringliteral">"Quit"</span>, <span class="stringliteral">"TYPE"</span>, <span class="stringliteral">"Mouse"</span>, <span class="stringliteral">"Resize"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):012:0&gt;Caca::Event.my_instance_methods
=&gt;[<span class="stringliteral">"quit?"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):013:0&gt;Caca::Event::Key.my_instance_methods
=&gt;[<span class="stringliteral">"ch"</span>, <span class="stringliteral">"utf32"</span>, <span class="stringliteral">"utf8"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):014:0&gt;Caca::Event::Mouse.my_instance_methods
=&gt;[<span class="stringliteral">"button"</span>, <span class="stringliteral">"x"</span>, <span class="stringliteral">"y"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">irb(main):015:0&gt;Caca::Event::Resize.my_instance_methods
=&gt;[<span class="stringliteral">"w"</span>, <span class="stringliteral">"h"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">$ruby -rcaca -e <span class="stringliteral">'c=Caca::Canvas.new(6, 3).fill_box(0,0,2,2,"#"[0]);</span>
<span class="stringliteral">c2=Caca::Canvas.new(1,1).put_str(0,0,"x"); c.blit(1,1,c2); puts</span>
<span class="stringliteral">c.export_memory("irc")'</span>
<span class="preprocessor">###</span>
<span class="preprocessor"></span><span class="preprocessor">#x#</span>
<span class="preprocessor">###</span>
</pre></div><p>
<div class="fragment"><pre class="fragment">$ruby -e <span class="stringliteral">'puts Caca::Canvas.new(6,3).draw_thin_polyline([[0,0], [0,2],</span>
<span class="stringliteral">[5,2],[0,0]]).export_memory("irc")'</span>
-.
|`.  
----`-
</pre></div><p>
<div class="fragment"><pre class="fragment">$ruby -rcaca -e <span class="stringliteral">'p Caca::Canvas.export_list'</span>
[[<span class="stringliteral">"caca"</span>,<span class="stringliteral">"native libcaca format"</span>], [<span class="stringliteral">"ansi"</span>, <span class="stringliteral">"ANSI"</span>], [<span class="stringliteral">"utf8"</span>, <span class="stringliteral">"UTF-8</span>
<span class="stringliteral">withANSI escape codes"</span>], [<span class="stringliteral">"utf8cr"</span>, <span class="stringliteral">"UTF-8 with ANSI escape codes and</span>
<span class="stringliteral">MS-DOS\\r"</span>], [<span class="stringliteral">"html"</span>, <span class="stringliteral">"HTML"</span>], [<span class="stringliteral">"html3"</span>, <span class="stringliteral">"backwards-compatible HTML"</span>],
[<span class="stringliteral">"irc"</span>,<span class="stringliteral">"IRC with mIRC colours"</span>], [<span class="stringliteral">"ps"</span>, <span class="stringliteral">"PostScript document"</span>], [<span class="stringliteral">"svg"</span>,
<span class="stringliteral">"SVGvector image"</span>], [<span class="stringliteral">"tga"</span>, <span class="stringliteral">"TGA image"</span>]]
</pre></div><p>
<div class="fragment"><pre class="fragment">$ruby -rcaca -e <span class="stringliteral">'p Caca::Font.list'</span>
[<span class="stringliteral">"Monospace9"</span>, <span class="stringliteral">"Monospace Bold 12"</span>]
</pre></div><p>
<div class="fragment"><pre class="fragment">require<span class="stringliteral">'caca'</span>
c= Caca::Canvas.new(20,10)
c.put_str(2,3, <span class="stringliteral">"plop!"</span>)
c.draw_thin_polyline([[0,0],[0,2], [5,2], [0,0]])
d= Caca::Display.new(c)
d.title= <span class="stringliteral">"Test !"</span>
d.refresh

<span class="preprocessor">#Redefine Event::Key#quit? so that q, Q, and Esc become exit keys</span>
<span class="preprocessor"></span>moduleCaca
<span class="keyword">class </span>Event::Key
def quit?
"qQ^[<span class="stringliteral">".split('').member?(@ch.chr)</span>
<span class="stringliteral">end</span>
<span class="stringliteral">end</span>
<span class="stringliteral">end</span>
<span class="stringliteral"></span>
<span class="stringliteral">while((e= d.get_event(Caca::Event, -1)) &amp;&amp; ! e.quit?)</span>
<span class="stringliteral">p e</span>
<span class="stringliteral">d.refresh</span>
<span class="stringliteral">end</span>
</pre></div> </div>
<!-- $Id$ -->
  </body>
</html>