From: "D.Kanda" Date: 1998-10-16T16:29:31+09:00 Subject: [ruby-list:10147] Re: testgtk.rb (gtkc2ruby) かんだです。 Hiroshi Igarashi さんの書かれた、 「[ruby-list:10144] Re: testgtk.rb (gtkc2ruby)」 からの引用です。 > 五十嵐@早大 です。 > > > かんだです。 > > > 2つ進みました。 > > がむばって下さい:) > いまのところ関数単位でCとの「対訳」にしていますが、 > この「翻訳」は今やっているような感じでいいのでしょうか? C の関数のように、全てを同レベルの関係で移さないで、各サンプル毎に Window のサブクラスを生成し、関係するものはそのメソッドとしてまとめた方 が良いと思います。 def create_XXX window = Gtk::Window::new(Gtk::WINDOW_TOPLEVEL) xxx = Gtk::XXX::new() xxx.signal_connect("foo_event") do |w,e| xxx_foo(w,e) end end def xxx_foo(w, e) ... end となっているのを、 class XXX < Gtk::Window def initialize super(Gtk::WINDOW_TOPLEVEL) @xxx = Gtk::XXX::new() xxx.signal_connect("foo_event") do |w,e| foo(w,e) end end def foo(w,e) ... end end という感じ。deleteイベント系は各サンプルで共通にできるかも。 > ところで > Gtk::Toolbar#append_item(text, ttext, ptext, icon, func) > のfuncはProcオブジェクトであるというのは分かっているのですが、 > funcがcallbackされるとき引数が渡らないので > toolbar.append_item("Horizontal", > "Horizontal toolbar layout", "Toolbar/Horizontal", > new_pixmap("test.xpm", window.window, > window.style.bg(Gtk::STATE_NORMAL)), > proc{set_toolbar_horizontal(toolbar, toolbar)}) > のようにしたのですが、他にうまいやり方はあるでしょうか? そんなメソッドがあったのか…。 これは signal みたいに、引数が渡るようにしておいた方がいいですね。 # ちょっと今忙がしいので、少し時間がかかっちゃいます。 以下閑話。 ポケモンをビデオで追っかけてるのですが、ロコンの回。 …。ロコンって ruby のイメージにぴったりだなぁ…。 ちっちゃくって、気性が激しくて、赤くって、炎で、かわいい。 こんなの。 http://www.gamefreak.co.jp/POKEMON/WM1_11/WorldMap12/037ROKON.HTM http://www.dreamgate.co.jp/MAC-Teacher/masa.HP/rokon.html