From: Masao M. <mu...@hi...> - 2006-10-14 15:51:02
|
むとうです。 ありがとうございました。 ちなみに、 make_parent_widgets_for_a_widget_that_has_a_window_in_ancestors() #な、ながい・・・。 を、分割した理由はありますか? 再利用しないようでしたらguard_source_from_gc()の中に入れて しまった方が良いと思うのですが。 それから、 make_parent_widgets_for_a_widget_that_has_a_window_in_ancestors() の名称ですが、別だしにするならもう少し適切な名称にしませんか。 上記の訳は、 「ancestorsの中にウインドウを持つウィジェットの親ウィジェットたちを作る。」 という訳になると思いますが、それではそのメソッドを呼び出すために期待する機能 を表していないと思います。 正直、再利用性があまり見えないのですが、あえてそのメソッド名を表すのであれば 「そのウィジェットの親ウインドウを呼び出すことでそのウィジェットをGCから守る」 guard_source_from_gc_to_create_a_parent_window_as_a_ruby_object みたいな感じだと思います。 他には、 seek_a_parent_window_to_guard_the_widget_from_gc とかかな。 ただ、やっぱり分ける意味を感じないし他の人が見たら理解しづらいですよね。 再利用考えると(英文法は考えず) seek_parent_window(source) 位にして、親ウインドウを返すようなメソッドにした方が良いかも。 でも、逆にそれだと汎用的すぎて、あえてRuby/Libgladeに入れておく意味が 無いような気がしますね。Ruby/GTKにあると便利かもしれないけど。 Gtk::Widgetのメソッドとして、source.parent_windowってのにする、とか。 それから、さらに蛇足ですが、 make parent widgets for a widget のa widgetはthe widgetじゃないかなぁ、とか思ったりするのですが・・・。 引数のオブジェクトなんだからtheが正しいと思いますが、引数のことを考えず に機能を示すのならaということもあるかもしれないけど・・・ メソッド名にa/theを使ったことがないから、実はよくわかってませんが。 ではでは。 On Sun, 15 Oct 2006 00:06:58 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] libglade2のパッチ" on Sat, 14 Oct 2006 23:50:10 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > 違うアイディアを思い付きました. > > > > > > --- libglade2.rb.~1.14.~ 2006-10-12 22:50:17.000000000 +0900 > > > +++ libglade2.rb 2006-10-14 22:59:00.000000000 +0900 > > > @@ -40,10 +40,9 @@ class GladeXML > > > end > > > > > > if signal_proc > > > - @sources ||= {} > > > - @sources[source.object_id] = source > > > - source.signal_connect("destroy") do |object| > > > - @sources.delete(object.object_id) > > > + parent = source.parent > > > + while parent > > > + parent = parent.parent > > > end > > > case signal_proc.arity > > > when 0 > > > > 念のため,例えば,親ウィジェットにGtk::Windowがいない場合, > > > のために,@sourcesにウィジェットを残しておく処理も残しておき > > > ますか? > > > > 確かに両方のパターンが考えられますので、両方とも採用しましょう。 > > 両方有効にしてコミットしておきました. > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |