From: <sgs...@ni...> - 2003-09-24 14:30:45
|
たむらです。 CanvasGroup についてですが、以下のスクリプトを書いてみました。 require 'gtk2' require 'gnomecanvas2' class CanvasWin < Gtk::Window def initialize super(Gtk::Window::TOPLEVEL) self.signal_connect("delete_event"){ Gtk::main_quit() } canvas = Gnome::Canvas.new canvas.set_size_request(800, 600) self.add(canvas) group = Gnome::CanvasGroup.new(canvas.root, {:x => 0.0, :y => 0.0 }) Gnome::CanvasRect.new( group, {:x1 => 0.0, :y1 => 0.0, :x2 => 220.0, :y2 =>60.0, :outline_color => "black", :width_units => 4.0 }) Gnome::CanvasText.new( group, {:x => 98.0, :y => 32.0, :font => "Sans 22", :text => "Ruby-GNOME2" }) end end Gtk.init CanvasWin.new.show_all Gtk.main 私としては、CanvasGroup.new で画面左上に置いたつもりが画面中央になります。 sample/canvas-rich-text.rb も確かに中央を (0.0, 0.0) として配置されるようですが、 sample/canvas-primitives.rb だと左上からになっているようです。canvas-primitives.rb を 追ったのですが、座標指定のフラグなどがあるように思えません。 どなたかヒントを下さい。 -- たむら (http://www.rubyist.net/~tamura/d/) |
From: Masao M. <mu...@hi...> - 2003-09-24 15:20:42
|
むとうです。 よくわかってないのですが、 Gnome::Canvas#set_scroll_region()を指定すると うまくいくようです。 On Wed, 24 Sep 2003 23:22:14 +0900 たむらけんいち <sgs...@ni...> wrote: > たむらです。 > CanvasGroup についてですが、以下のスクリプトを書いてみました。 > > require 'gtk2' > require 'gnomecanvas2' > > class CanvasWin < Gtk::Window > def initialize > super(Gtk::Window::TOPLEVEL) > self.signal_connect("delete_event"){ Gtk::main_quit() } > > canvas = Gnome::Canvas.new > canvas.set_size_request(800, 600) canvas.set_scroll_region(0, 0, 800, 600) #ここ > self.add(canvas) > > group = Gnome::CanvasGroup.new(canvas.root, {:x => 0.0, :y => 0.0 }) > Gnome::CanvasRect.new( group, {:x1 => 0.0, :y1 => 0.0, :x2 => 220.0, :y2 =>60.0, > :outline_color => "black", :width_units => 4.0 }) > Gnome::CanvasText.new( group, {:x => 98.0, :y => 32.0, :font => "Sans 22", > :text => "Ruby-GNOME2" }) > end > end > > Gtk.init > CanvasWin.new.show_all > Gtk.main > > 私としては、CanvasGroup.new で画面左上に置いたつもりが画面中央になります。 > sample/canvas-rich-text.rb も確かに中央を (0.0, 0.0) として配置されるようですが、 > sample/canvas-primitives.rb だと左上からになっているようです。canvas-primitives.rb を > 追ったのですが、座標指定のフラグなどがあるように思えません。 > > どなたかヒントを下さい。 -- .:% Masao Mutoh<mu...@hi...> |
From: <sgs...@ni...> - 2003-09-24 16:20:43
|
On Thu, 25 Sep 2003 00:20:39 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > よくわかってないのですが、 > Gnome::Canvas#set_scroll_region()を指定すると > うまくいくようです。 ありがとうございます。確かにうまくいきました。 libgnomecanvas の API で調べると、 http://developer.gnome.org/doc/API/2.0/libgnomecanvas/libgnomecanvas-gnomecanvas.html#GNOME-CANVAS-SET-SCROLL-REGION gnome_canvas_set_scroll_region () Sets the scrolling region of a canvas to the specified rectangle. The canvas will then be able to scroll only within this region. The view of the canvas is adjusted as appropriate to display as much of the new region as possible. Excite の翻訳 指定された長方形にキャンバスのスクロールする地域をセットします。 その後、キャンバスはこの地域内にのみスクロールすることができるでしょう。新しい地域に できるだけ表示することが適切なように、キャンバスの視界が調節されます。 う〜む、判ったような判らないような。「調節」されて左上が (0.0, 0.0)になるってことか? -- たむら (http://www.rubyist.net/~tamura/d/) |
From: <sgs...@ni...> - 2003-09-24 16:28:48
|
たむらです。 On Thu, 25 Sep 2003 01:12:24 +0900 たむらけんいち <sgs...@ni...> wrote: > On Thu, 25 Sep 2003 00:20:39 +0900 > Masao Mutoh <mu...@hi...> wrote: > > > むとうです。 > > > > よくわかってないのですが、 > > Gnome::Canvas#set_scroll_region()を指定すると > > うまくいくようです。 > > ありがとうございます。確かにうまくいきました。 > > libgnomecanvas の API で調べると、 > http://developer.gnome.org/doc/API/2.0/libgnomecanvas/libgnomecanvas-gnomecanvas.html#GNOME-CANVAS-SET-SCROLL-REGION > > gnome_canvas_set_scroll_region () > Sets the scrolling region of a canvas to the specified rectangle. > The canvas will then be able to scroll only within this region. The view of the > canvas is adjusted as appropriate to display as much of the new region as possible. > > Excite の翻訳 > 指定された長方形にキャンバスのスクロールする地域をセットします。 > その後、キャンバスはこの地域内にのみスクロールすることができるでしょう。新しい地域に > できるだけ表示することが適切なように、キャンバスの視界が調節されます。 > > う〜む、判ったような判らないような。「調節」されて左上が (0.0, 0.0)になるってことか? http://www-6.ibm.com/jp/developerworks/linux/gnomenclature.html のソースを見てもやってますね。 お約束ってことか。 -- たむら (http://www.rubyist.net/~tamura/d/) |