You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(60) |
Jul
(52) |
Aug
(67) |
Sep
(167) |
Oct
(186) |
Nov
(173) |
Dec
(220) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(37) |
Feb
(66) |
Mar
(89) |
Apr
(71) |
May
(32) |
Jun
(61) |
Jul
(64) |
Aug
(99) |
Sep
(33) |
Oct
(31) |
Nov
(50) |
Dec
(41) |
2004 |
Jan
(9) |
Feb
(9) |
Mar
(25) |
Apr
(23) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(9) |
Sep
(1) |
Oct
(31) |
Nov
(38) |
Dec
|
2005 |
Jan
(16) |
Feb
(49) |
Mar
(14) |
Apr
(1) |
May
|
Jun
(12) |
Jul
(25) |
Aug
(18) |
Sep
(48) |
Oct
(76) |
Nov
(20) |
Dec
|
2006 |
Jan
(16) |
Feb
(12) |
Mar
(4) |
Apr
(5) |
May
(77) |
Jun
(37) |
Jul
(15) |
Aug
|
Sep
(3) |
Oct
(15) |
Nov
(7) |
Dec
(27) |
2007 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
(7) |
Jun
(18) |
Jul
(44) |
Aug
(12) |
Sep
(1) |
Oct
(13) |
Nov
(15) |
Dec
(5) |
2008 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(8) |
Oct
(6) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(3) |
2010 |
Jan
(8) |
Feb
(8) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(17) |
Oct
(7) |
Nov
(3) |
Dec
|
2011 |
Jan
(34) |
Feb
(47) |
Mar
(12) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
(20) |
Aug
(4) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(40) |
2012 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
2013 |
Jan
(2) |
Feb
(33) |
Mar
(21) |
Apr
(10) |
May
(29) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(21) |
Nov
(21) |
Dec
(7) |
2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(5) |
Sep
(23) |
Oct
(29) |
Nov
(2) |
Dec
(1) |
2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(8) |
From: Masao M. <mu...@hi...> - 2003-04-10 16:33:18
|
むとうです。 On Thu, 10 Apr 2003 15:24:38 +0900 Nobuyoshi Nakada <nob...@so...> wrote: > なかだです。 > > At Wed, 2 Apr 2003 23:36:29 +0900, > Masao Mutoh wrote: > > ただ、想定外のエラーとかの場合にat_exit, ENDを使いたい > > ということであれば、Gtk.mainの前でat_exit, ENDを > > 使ってブロックを登録してあげるということは可能です。 > > #スレッド使うときはこういうat_exit,ENDが必要になる場合も > > #あるかもしれませんね。 私的には、 1. 通常、例外はそのシグナルのブロック内部でキャッチしてエラー ダイアログなりを表示すべきだ。 #従って、ブロックの外部に例外がスローされるとすれば #バグ(というかお行儀の悪いプログラム)なんじゃないかなぁ。 2. とはいえ、at_exitはGtk.mainより前に宣言すれば使うことができ なくはない。 の2点だったのですが、 > Ruby/Gtk側で安全柵としてそうしておくのはどうでしょうか。 って、何を意図されているのでしょうか。 具体的にどのようにしておくのか、そしてそれをそのように すると、どうして安全なのか、 もう少しかみ砕いて説明していただきたいのですが....。 #すみません、アホで(T_T)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-04-10 12:46:32
|
さかいです。 From: Nobuyoshi Nakada <nob...@so...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] チュートリアル Date: Thu, 10 Apr 2003 16:34:34 +0900 > なかだです。 > > いっそのこと、シグナルハンドラからの大域脱出は > > rb_protect()で止めてしまおうかなぁ。 > > 例外が発生したらどこかに保存してGtk.main_quit、Gtk.mainの後始末 > として再送出? そう出来たらよいのですが、 シグナルを内部で発生させる関数はgtk_main()以外にも大量にあるので、 それら一個一個の呼び出しの後で、例外が保存されているか確認して、 再送出するのは実際には難しいです。 > そういえば、シグナルハンドラからbreakしたらどうなるんでしたっけ。 特別な事は何もしていないので、 普通のProcからbreakするのと変わらないはずです。 -- 酒井 政裕 / Masahiro Sakai |
From: Nobuyoshi N. <nob...@so...> - 2003-04-10 07:34:41
|
なかだです。 At Thu, 10 Apr 2003 16:04:49 +0900 (JST), Masahiro Sakai (酒井政裕) wrote: > > > ただ、想定外のエラーとかの場合にat_exit, ENDを使いたい > > > ということであれば、Gtk.mainの前でat_exit, ENDを > > > 使ってブロックを登録してあげるということは可能です。 > > > #スレッド使うときはこういうat_exit,ENDが必要になる場合も > > > #あるかもしれませんね。 > > > > Ruby/Gtk側で安全柵としてそうしておくのはどうでしょうか。 > > そういえば、シグナルハンドラから大域脱出すると、 > glib/gtk内でもメモリリークが発生してしまう事に気が付きました。。 glibやgtkはrubyの例外については関知しないので、当然といえば当然 ですね。 > いっそのこと、シグナルハンドラからの大域脱出は > rb_protect()で止めてしまおうかなぁ。 例外が発生したらどこかに保存してGtk.main_quit、Gtk.mainの後始末 として再送出? そういえば、シグナルハンドラからbreakしたらどうなるんでしたっけ。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 |
From: Masahiro S. ()
<sa...@to...> - 2003-04-10 07:14:12
|
さかいです。 http://developer.gnome.org/doc/API/2.0/gobject/gobject-Signals.html#GSignalFlags によると、 Action signals are signals that may freely be emitted on alive objects from user code via g_signal_emit() and friends, without the need of being embedded into extra code that performs pre or post emission adjustments on the object. They can also be thought of as by third-party code generically callable object methods. だそうなので、自動的にメソッドとして定義するコードを試しに入れてみました。 --enable-experimentalで有効になります。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-04-10 07:02:03
|
さかいです。 From: Nobuyoshi Nakada <nob...@so...> Subject: Re: [ruby-gnome2-devel-ja] チュートリアル Date: Thu, 10 Apr 2003 15:24:38 +0900 > なかだです。 > > At Wed, 2 Apr 2003 23:36:29 +0900, > Masao Mutoh wrote: > > ただ、想定外のエラーとかの場合にat_exit, ENDを使いたい > > ということであれば、Gtk.mainの前でat_exit, ENDを > > 使ってブロックを登録してあげるということは可能です。 > > #スレッド使うときはこういうat_exit,ENDが必要になる場合も > > #あるかもしれませんね。 > > Ruby/Gtk側で安全柵としてそうしておくのはどうでしょうか。 そういえば、シグナルハンドラから大域脱出すると、 glib/gtk内でもメモリリークが発生してしまう事に気が付きました。。 いっそのこと、シグナルハンドラからの大域脱出は rb_protect()で止めてしまおうかなぁ。 -- 酒井 政裕 / Masahiro Sakai |
From: Nobuyoshi N. <nob...@so...> - 2003-04-10 06:24:44
|
なかだです。 At Wed, 2 Apr 2003 23:36:29 +0900, Masao Mutoh wrote: > ただ、想定外のエラーとかの場合にat_exit, ENDを使いたい > ということであれば、Gtk.mainの前でat_exit, ENDを > 使ってブロックを登録してあげるということは可能です。 > #スレッド使うときはこういうat_exit,ENDが必要になる場合も > #あるかもしれませんね。 Ruby/Gtk側で安全柵としてそうしておくのはどうでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 |
From: <ki...@ki...> - 2003-04-09 13:51:44
|
きたです. > 要望です。 > > signal_connectとかの記述をGLib::Instantiable#signal_connectと > いうように、必ず、クラス#メソッド(インスタンスメソッドの時)とか > クラス.メソッド(クラスメソッドの時)と書いておいていただけないで > しょうか。 > > こう書いておくと、後でAPIリファレンス(日本語版)ができたときに > 自動的にリンクが張られますよ。 そうですね. 先程,気付くかぎり修正しておきました. 修正漏れを発見された方,コッソリ修正しちゃって下さい. よろしくお願いします. > #って日本語版はいつになることやら(^^;)。 ふふふふ. |
From: Masao M. <mu...@hi...> - 2003-04-08 17:59:58
|
むとうです。 On Tue, 08 Apr 2003 23:02:24 +0900 きた <ki...@ki...> wrote: > > yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー > > うひっ > まだ完成してないのにー > # って進捗悪杉ですよね.スンマソン… 要望です。 signal_connectとかの記述をGLib::Instantiable#signal_connectと いうように、必ず、クラス#メソッド(インスタンスメソッドの時)とか クラス.メソッド(クラスメソッドの時)と書いておいていただけないで しょうか。 こう書いておくと、後でAPIリファレンス(日本語版)ができたときに 自動的にリンクが張られますよ。 #って日本語版はいつになることやら(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-04-08 17:56:58
|
むとうです。 On Wed, 09 Apr 2003 01:55:59 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: たむらけんいち <sgs...@ni...> > Subject: Re: [ruby-gnome2-devel-ja] yendot > Date: Tue, 8 Apr 2003 23:12:38 +0900 > > > たむらです。やっと送信できるようになったでし。 > > > > On Tue, 08 Apr 2003 23:02:24 +0900 > > きた <ki...@ki...> wrote: > > > > > > yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー > > > > これ、URL教えていただけませんか、酒井さん。 > > http://yendot.org/ 見たけど判らない。 > > ありゃ。今見たら、見当たらなくなっちゃってますね。 > 内容は↓でした。 > > Ruby/GTK2 チュートリアル > Posted by む antenna on Tuesday April 08,@15:36 PM > from setsunai dept. > \au writes ほう, Ruby/GTK2 チュートリアル > > ( Read More... | 0 of 0 comments ) 私も偶然これ読みました。 確かに、今は無くなってるみたいですね。 > そういえば、今日チュートリアルの「シグナルハンドラをさらに」を読んで、 > signal_handler_blockの使い方をはじめて知りました。 > # って、意味を理解しないでラップしてたのかいっ > 自分 おぉ。そう言えば私も(^^;)。 > ついでに、blockする範囲をRubyのブロックで与える事が出来るように > 拡張してみました。 了解です。 ところで、話は変わりますが、GScannerあたりって実装する予定ないです? #ってかRuby/GTK側で呼んでるところがいくつかあるので欲しいんですよね。 P.S. そういや、さかいさんもはじめられましたね、Ruby/GLibのAPIリファレンス。 P.S.2 とりあえず、The RWikiのAPIリファレンスは全部移管しました。 結構良い感じです(^^)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-04-08 17:50:50
|
むとうです。 On Tue, 08 Apr 2003 23:02:24 +0900 きた <ki...@ki...> wrote: > > yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー Ruby-GNOME2自体って取り上げられたことありましたっけ?(-o-) > うひっ > まだ完成してないのにー > # って進捗悪杉ですよね.スンマソン… みなさん期待してるってことで! #ってたむらさんと同じこと書いてるし。 #でも、タイミング的に、ポストした人、私の日記ページを読んでたん #じゃないかな...。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-04-08 16:57:24
|
さかいです。 From: たむらけんいち <sgs...@ni...> Subject: Re: [ruby-gnome2-devel-ja] yendot Date: Tue, 8 Apr 2003 23:12:38 +0900 > たむらです。やっと送信できるようになったでし。 > > On Tue, 08 Apr 2003 23:02:24 +0900 > きた <ki...@ki...> wrote: > > > > yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー > > これ、URL教えていただけませんか、酒井さん。 > http://yendot.org/ 見たけど判らない。 ありゃ。今見たら、見当たらなくなっちゃってますね。 内容は↓でした。 Ruby/GTK2 チュートリアル Posted by む antenna on Tuesday April 08,@15:36 PM from setsunai dept. \au writes ほう, Ruby/GTK2 チュートリアル ( Read More... | 0 of 0 comments ) > > うひっ > > まだ完成してないのにー > > # って進捗悪杉ですよね.スンマソン… > > それだけ期待が大きいということで ;-) そういえば、今日チュートリアルの「シグナルハンドラをさらに」を読んで、 signal_handler_blockの使い方をはじめて知りました。 # って、意味を理解しないでラップしてたのかいっ > 自分 ついでに、blockする範囲をRubyのブロックで与える事が出来るように 拡張してみました。 -- 酒井 政裕 / Masahiro Sakai |
From: <sgs...@ni...> - 2003-04-08 14:13:05
|
たむらです。やっと送信できるようになったでし。 On Tue, 08 Apr 2003 23:02:24 +0900 きた <ki...@ki...> wrote: > > yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー これ、URL教えていただけませんか、酒井さん。 http://yendot.org/ 見たけど判らない。 > うひっ > まだ完成してないのにー > # って進捗悪杉ですよね.スンマソン… それだけ期待が大きいということで ;-) -- たむら (http://www.rubyist.net/~tamura/d/) |
From: <ki...@ki...> - 2003-04-08 14:02:29
|
> yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー うひっ まだ完成してないのにー # って進捗悪杉ですよね.スンマソン… |
From: Masahiro S. ()
<sa...@to...> - 2003-04-08 10:38:17
|
yendotで「Ruby/GTK2 チュートリアル」が取り上げられてますよー -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-04-06 13:48:58
|
むとうです。 On Sun, 06 Apr 2003 19:40:08 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > 全てのGTypeを指定できるわけでも無いという部分では、ホントにその必要が > > あるのか疑問です。 > > > 例えば、gintとか指定できてもそれがNumberなのかIntegerなのかといったことを > > いちいちユーザが意識しなくてはいけないと言うことや、 > > 逆にIntegerとか指定できても > 「Integerと指定しておきながら、gintの32bitなり64bitなりの値の範囲を > いちいちユーザが意識しなくてはいけない」という言い方も出来ませんか? おそらくGUIに対してそこまで厳密に範囲を意識することは ないだろうと思います。 > > 前回さかいさんが提示された > > APIの複雑さを見ると、gbooleanがTrueClassの問題など些細な気がします。 > > signal_newメソッドの部分以外は、 > 実装可能かどうかを検証するためだけに書いたコードですし、 > その複雑さは「GLib::Type vs Rubyのクラス」の問題とは無関係です。 いや、私がAPIと書いたのがまずかったかもしれませんが、 あくまでも「GLib::Type vs Rubyのクラス」の話をしてます。 というか、ここでは、特に以下のことを示してAPIと表現しました。 > (1) "gint * GObject -> void" > (2) "(gint, GObject) -> void" > (3) "void (*)(gint, GObject)" (C/C++風) > > 私はどちらかというと、Cを意識しなければいけない部分ってのを無くしたいん > > ですけどねぇ。難しいのかなぁ。 > > Ruby以外の知識を要求しないかわりに細かい指定の出来ないような > そんな高級APIが存在することは自体は結構なことだと思いますが、 > 基礎的なレベルに余計な制約を持ち込みたくはないです。 > > 今回の場合は、signal_new_simpleみたいな名前で、 > そういった高級APIを別に用意すると良いのかもしれません。 確かにそうかもしれませんね。 > PS: > 多分、私が欲しいのが「libgobjectのオブジェクトモデルと > Rubyのオブジェクトモデルの間のブリッジ」なのに対して、 > むとうさんが欲しいのは > 「libgobjectを単に実装手段として利用した何か」 > なんだろうなぁ……と、ふと思いました。 そうですね。私は元から単なるラッパを作るつもりはなくて 常に「Rubyから使いやすくするためにはどうすればよいのか」 というのを意識しています。 最初からそういう考えで一貫してると思ってるし、今回の 話もその延長線上にあると思ってるんだけどな。 http://ruby-gnome2.sourceforge.jp/cgi-bin/w3ml.cgi/ruby-gnome2-devel-ja/msg/3 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-04-06 11:59:35
|
さかいです。 GEnum/GFlagsの派生タイプを現在は整数として扱っていますが、 これをそれぞれのクラスのオブジェクトとして扱うように 変更しようかと考えています。 メリットは * 型を利用したコードが書けるようになる * 定数が自動定義される デメリットは * Rubyレベルのフラグのチェック方法はこれまでと互換性を保てないかも(?) (「0 < (x & FOO)」みたいなコードは特に互換性を維持する気になれない...) * 定数の定義場所と名前が現在のルールと違うので、 現在のルールを維持するには結局個別の対応が必要。 といったところです。 とりあえず、手元では以下のような事が出来るようになっています。 require 'gtk2' Gtk::Window::Type = GLib::Type['GtkWindowType'].to_class p Gtk::Window::Type.values #=> [#<Gtk::Window::Type value=0 name="GTK_WINDOW_TOPLEVEL" nick="toplevel">, # #<Gtk::Window::Type value=1 name="GTK_WINDOW_POPUP" nick="popup">] p Gtk::Window::Type::TOPLEVEL #=> #<Gtk::Window::Type value=0 name="GTK_WINDOW_TOPLEVEL" nick="toplevel"> -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-04-06 10:43:00
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 Date: Sat, 5 Apr 2003 23:46:04 +0900 > むとうです。 > 全てのGTypeを指定できるわけでも無いという部分では、ホントにその必要が > あるのか疑問です。 > 例えば、gintとか指定できてもそれがNumberなのかIntegerなのかといったことを > いちいちユーザが意識しなくてはいけないと言うことや、 逆にIntegerとか指定できても 「Integerと指定しておきながら、gintの32bitなり64bitなりの値の範囲を いちいちユーザが意識しなくてはいけない」という言い方も出来ませんか? > 前回さかいさんが提示された > APIの複雑さを見ると、gbooleanがTrueClassの問題など些細な気がします。 signal_newメソッドの部分以外は、 実装可能かどうかを検証するためだけに書いたコードですし、 その複雑さは「GLib::Type vs Rubyのクラス」の問題とは無関係です。 > 私はどちらかというと、Cを意識しなければいけない部分ってのを無くしたいん > ですけどねぇ。難しいのかなぁ。 Ruby以外の知識を要求しないかわりに細かい指定の出来ないような そんな高級APIが存在することは自体は結構なことだと思いますが、 基礎的なレベルに余計な制約を持ち込みたくはないです。 今回の場合は、signal_new_simpleみたいな名前で、 そういった高級APIを別に用意すると良いのかもしれません。 PS: 多分、私が欲しいのが「libgobjectのオブジェクトモデルと Rubyのオブジェクトモデルの間のブリッジ」なのに対して、 むとうさんが欲しいのは 「libgobjectを単に実装手段として利用した何か」 なんだろうなぁ……と、ふと思いました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-04-05 15:01:40
|
むとうです。 On Sat, 05 Apr 2003 19:38:28 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > GLib::Signalにadd_emission_hookとremove_emission_hookを実装しました。 > 使いかたはこんな感じです。 > > signal = Gtk::Button.signal('clicked') > hook_id = signal.add_emission_hook{|*args| > puts "clicked #{args.inspect}" > true # 偽を返すとhookを削除する > } > > b = Gtk::Button.new > b.signal_emit_by_name('clicked') > > signal.remove_emission_hook(hook_id) すばらしい。 > PS: > > Signalのid,name,flagsメソッドのaliasの > signal_id,signal_name,signal_flagsは削除しようと思います。 > > それから、 > GLib::Object#signal_emit(signal_name, detail, *args) > GLib::Object#signal_emit_stop(signal_name, detail) > を削除して、現在の > GLib::Object#signal_emit_by_name(detailed_signal, *args) > GLib::Object#signal_emit_stop_by_name(detailed_signal) > をこれらの名前に変更しようと思います。 了解です。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-04-05 15:01:07
|
むとうです。 On Sat, 05 Apr 2003 14:52:06 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 > Date: Sat, 5 Apr 2003 01:41:51 +0900 > > > むとうです。 > > #頭が働かない...(T_T)。 > > > この辺って、例えば以下のような書き方にできないですかね。 > > > > class MyButton < Gtk::Button > > def intialize > > add_signal("hogehoge", GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, > > nil, Number, GLib::Object) { > > puts "signal hogehoge is emitted: args=#{args.inspect}" > > } > > end > > end > > インターフェースについては悩ましいですが、 > すべてにRuby流を貫くのはきっと無理です。 > 既にRubyのnew/initializeの流儀を維持することは諦めてしまいました。 うーむ、やっぱりそうかなぁ....。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-04-05 14:46:10
|
むとうです。 On Sat, 05 Apr 2003 18:34:29 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 > Date: Sat, 5 Apr 2003 01:51:17 +0900 > > > むとうです。 > > > 先ほども書きましたが、Rubyの型で表せないでしょうか。 > > これだと、GLibのルールも知らないと使えないと言うのが > > 私的にはうれしくないんですよねぇ。 > > http://ruby-gnome2.sourceforge.jp/cgi-bin/w3ml.cgi/ruby-gnome2-devel-ja/msg/389 > のスレッドの方法だと、 > gbooleanを指定するためにTrueClassやFalseClassを使ったりと苦しいですし、 > その上すべてのGTypeを指定できるわけでもありませんでした。 TrueClass/FalseClassは同意しますが、 全てのGTypeを指定できるわけでも無いという部分では、ホントにその必要が あるのか疑問です。 例えば、gintとか指定できてもそれがNumberなのかIntegerなのかといったことを いちいちユーザが意識しなくてはいけないと言うことや、前回さかいさんが提示された APIの複雑さを見ると、gbooleanがTrueClassの問題など些細な気がします。 > シグナルの作成のような基礎的なレベルの機能に、 > これらの問題や制限を持ち込みたくはないです。 私はどちらかというと、Cを意識しなければいけない部分ってのを無くしたいん ですけどねぇ。難しいのかなぁ。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-04-05 10:39:48
|
さかいです。 GLib::Signalにadd_emission_hookとremove_emission_hookを実装しました。 使いかたはこんな感じです。 signal = Gtk::Button.signal('clicked') hook_id = signal.add_emission_hook{|*args| puts "clicked #{args.inspect}" true # 偽を返すとhookを削除する } b = Gtk::Button.new b.signal_emit_by_name('clicked') signal.remove_emission_hook(hook_id) PS: Signalのid,name,flagsメソッドのaliasの signal_id,signal_name,signal_flagsは削除しようと思います。 それから、 GLib::Object#signal_emit(signal_name, detail, *args) GLib::Object#signal_emit_stop(signal_name, detail) を削除して、現在の GLib::Object#signal_emit_by_name(detailed_signal, *args) GLib::Object#signal_emit_stop_by_name(detailed_signal) をこれらの名前に変更しようと思います。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-04-05 09:38:53
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 Date: Sat, 5 Apr 2003 01:51:17 +0900 > むとうです。 > 先ほども書きましたが、Rubyの型で表せないでしょうか。 > これだと、GLibのルールも知らないと使えないと言うのが > 私的にはうれしくないんですよねぇ。 http://ruby-gnome2.sourceforge.jp/cgi-bin/w3ml.cgi/ruby-gnome2-devel-ja/msg/389 のスレッドの方法だと、 gbooleanを指定するためにTrueClassやFalseClassを使ったりと苦しいですし、 その上すべてのGTypeを指定できるわけでもありませんでした。 シグナルの作成のような基礎的なレベルの機能に、 これらの問題や制限を持ち込みたくはないです。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-04-05 05:55:22
|
さかいです From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 Date: Sat, 5 Apr 2003 01:41:51 +0900 > むとうです。 > #頭が働かない...(T_T)。 > この辺って、例えば以下のような書き方にできないですかね。 > > class MyButton < Gtk::Button > def intialize > add_signal("hogehoge", GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, > nil, Number, GLib::Object) { > puts "signal hogehoge is emitted: args=#{args.inspect}" > } > end > end インターフェースについては悩ましいですが、 すべてにRuby流を貫くのはきっと無理です。 既にRubyのnew/initializeの流儀を維持することは諦めてしまいました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-04-04 16:51:22
|
むとうです。 On Sat, 05 Apr 2003 01:13:53 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです > > From: Masahiro Sakai (酒井政裕) <sa...@to...> > Subject: [ruby-gnome2-devel-ja] gobjectのクラスをRubyから定義 > Date: Sat, 05 Apr 2003 00:24:43 +0900 (JST) > > > signal_new("hogehoge", > > GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, > > GLib::Type["void"], GLib::Type["gint"], GLib::Type["GObject"]) > > シグナルの型をこのように書かなくてはいけないのは面倒なので、 > 引数と返り値の型を単一の文字列で表したくなりました。 > > 思いつく表記は > (1) "gint * GObject -> void" > (2) "(gint, GObject) -> void" > (3) "void (*)(gint, GObject)" (C/C++風) > といったものなのですが、 > なんかどれもRuby-GNOME2にはしっくりこない気がします。 > > Rubyの場合はどんな表記を使う事が多いのかなぁ…… 先ほども書きましたが、Rubyの型で表せないでしょうか。 これだと、GLibのルールも知らないと使えないと言うのが 私的にはうれしくないんですよねぇ。 こんな感じでどうですか。 add_signal("hogehoge", GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, nil, [Integer, GLib::Object]) #voidはnilにマッピング -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-04-04 16:41:57
|
むとうです。 #頭が働かない...(T_T)。 On Sat, 05 Apr 2003 00:24:43 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > 色々と実験していたら、 > 実装自体はなんとかなりそうな気がしてきました。 > > インターフェースも実装もまだ滅茶苦茶ですが、 > RBGLIB_ENABLE_EXPERIMENTAL付きでコンパイルすると、 > 以下のようなコードが動作します。 すばらしい。 > MyButton = GLib::Object.class_new(Gtk::Button, "MyButton"){ > def instance_init > puts "MyButton#instance_init is called" > end > > signal_new("hogehoge", > GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, > GLib::Type["void"], GLib::Type["gint"], GLib::Type["GObject"]) > > def real_hogehoge(*args) > puts "signal hogehoge is emitted: args=#{args.inspect}" > end > } > > b = MyButton.new > > b.signal_connect("hogehoge"){|recv, *args| > puts "handler1: args=#{args.inspect}" > } > > b.signal_connect("hogehoge"){|recv, *args| > puts "handler2: args=#{args.inspect}" > } > > b.signal_emit_by_name("hogehoge", 1234, b) > > #=> > MyButton#instance_init is called > signal hogehoge is emitted: args=[1234, #<MyButton:0x0a1249c8 ptr=0x0a20ea60>] > handler1: args=[1234, #<MyButton:0x0a1249c8 ptr=0x0a20ea60>] > handler2: args=[1234, #<MyButton:0x0a1249c8 ptr=0x0a20ea60>] この辺って、例えば以下のような書き方にできないですかね。 class MyButton < Gtk::Button def intialize add_signal("hogehoge", GLib::Signal::RUN_FIRST | GLib::Signal::ACTION, nil, Number, GLib::Object) { puts "signal hogehoge is emitted: args=#{args.inspect}" } end end -- .:% Masao Mutoh<mu...@hi...> |