From 0456c906e4c365fb48c75817132537e67cdfe2ab Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Wed, 28 Nov 2007 16:39:10 +0000 Subject: [PATCH] * Add Caca::Display#canvas --- ruby/caca-display.c | 5 +++++ ruby/cucul-canvas.c | 5 +++++ ruby/cucul-canvas.h | 1 + ruby/lib/caca.rb | 3 +++ ruby/ruby-caca.dox | 2 +- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ruby/caca-display.c b/ruby/caca-display.c index a1d2ac1..bb1aabc 100644 --- a/ruby/caca-display.c +++ b/ruby/caca-display.c @@ -33,6 +33,7 @@ static VALUE display_alloc(VALUE klass) static VALUE display_initialize(int argc, VALUE* argv, VALUE self) { caca_display_t *display; + cucul_canvas_t *canvas; VALUE cv; rb_scan_args(argc, argv, "01", &cv); @@ -40,6 +41,8 @@ static VALUE display_initialize(int argc, VALUE* argv, VALUE self) if(NIL_P(cv)) { display = caca_create_display(NULL); + canvas = caca_get_canvas(display); + cv = canvas_create(canvas); } else { @@ -58,6 +61,8 @@ static VALUE display_initialize(int argc, VALUE* argv, VALUE self) _SELF = display; + rb_iv_set(self, "@canvas", cv); + return self; } diff --git a/ruby/cucul-canvas.c b/ruby/cucul-canvas.c index 0424c44..48c34e8 100644 --- a/ruby/cucul-canvas.c +++ b/ruby/cucul-canvas.c @@ -49,6 +49,11 @@ static VALUE canvas_alloc(VALUE klass) return obj; } +VALUE canvas_create(cucul_canvas_t *canvas) +{ + return Data_Wrap_Struct(cCanvas, 0, canvas_free, canvas); +} + static VALUE canvas_initialize(VALUE self, VALUE width, VALUE height) { unsigned int w, h; diff --git a/ruby/cucul-canvas.h b/ruby/cucul-canvas.h index 4748e08..d3678ff 100644 --- a/ruby/cucul-canvas.h +++ b/ruby/cucul-canvas.h @@ -5,5 +5,6 @@ extern VALUE cCanvas; extern void Init_cucul_canvas(VALUE); +extern VALUE canvas_create(cucul_canvas_t *canvas); #endif diff --git a/ruby/lib/caca.rb b/ruby/lib/caca.rb index d90cdf0..8815442 100644 --- a/ruby/lib/caca.rb +++ b/ruby/lib/caca.rb @@ -2,6 +2,9 @@ require 'cucul' require 'caca.so' module Caca + class Display + attr_reader :canvas + end class Event def Event.to_i const_get("TYPE") diff --git a/ruby/ruby-caca.dox b/ruby/ruby-caca.dox index f300af4..38ca770 100644 --- a/ruby/ruby-caca.dox +++ b/ruby/ruby-caca.dox @@ -33,7 +33,7 @@ irb(main):009:0> Caca.my_methods \code irb(main):010:0> Caca::Display.my_instance_methods -=> ["get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", +=> ["canvas", "get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", "set_mouse", "set_time", "set_title", "time", "time=", "title=", "width"] \endcode