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-11-16 15:22:14
|
むとうです。 Ruby-GNOME2-0.8.0をリリースしました。 是非お試しを。 * Ruby/Libgdaの追加 Ruby/LibgdaはGNOME-DB Projectが提供するlibgdaのRubyバインディングです。 http://www.gnome-db.org/ * GObjectをRubyで定義できるようになりました。独自のシグナルやプロパティ を定義することが可能になりました。 * 多くのクラス・メソッドの追加 * 多くのバグフィクス・改善 Downloads ========= http://sourceforge.net/project/showfiles.php?group_id=53614 * ruby-gtk2 The minimum package which includes Ruby/GLib2, Ruby/GdkPixbuf, Ruby/Pango, Ruby/GTK2. * ruby-gstreamer The minimum package for Ruby/GStreamer. Ruby/GLib2, Ruby/GStreamer. * ruby-gnome2 All of Ruby-GNOME2 libraries. What's Ruby-GNOME2? =================== Ruby-GNOME2 is a set of Ruby language bindings for the GNOME 2.x development environment. Supported libraries are: * Ruby/GLib2 * Ruby/GdkPixbuf2 * Ruby/Pango * Ruby/GTK2 * Ruby/GNOME2 * Ruby/GnomeCanvas2 * Ruby/Libart2 * Ruby/Libglade2 * Ruby/GConf2 * Ruby/GnomeVFS * Ruby/GStreamer * Ruby/GtkHtml2 * Ruby/GtkGLExt * Ruby/Libgda [NEW] Resources ========= - Mailing lists http://sourceforge.net/mail/?group_id=53614 - #ruby-gnome2 (IRC) http://ruby-gnome2.sourceforge.jp/hiki.cgi?irc - Project website (English) http://ruby-gnome2.sourceforge.jp/ (French) http://ruby-gnome2.sourceforge.jp/fr/ (Italian) http://ruby-gnome2.sourceforge.jp/it/ [NEW] (Japanese) http://ruby-gnome2.sourceforge.jp/ja/ - Ruby-GNOME2 API Reference http://ruby-gnome2.sourceforge.jp/hiki.cgi?Ruby-GNOME2+API+Reference - Tutorials (English) http://ruby-gnome2.sourceforge.jp/hiki.cgi?tutorials * Ruby/Libgda Tutorial [NEW] http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-libgda * Ruby/GTK2 TreeView Tutorial [Just started] http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-treeview (French) http://ruby-gnome2.sourceforge.jp/fr/hiki.cgi?tutoriels (Italian) http://ruby-gnome2.sourceforge.jp/it/hiki.cgi?tutorials [NEW] (Japanese) http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?tutorials - Samples http://ruby-gnome2.sourceforge.jp/hiki.cgi?Samples - gtk+-2.2 binary package for cygwin http://web.sfc.keio.ac.jp/~s01397ms/cygwin/index.html.en - GTK+ for Windows http://www.dropline.net/gtk/ - Other resources http://ruby-gnome2.sourceforge.jp/hiki.cgi?Links Changes since version 0.7.0 =========================== * Ruby/GLib - Provide methods for creating GObject from ruby side. Now you can create your own signals and properties: [Masahiro, Sakai] GLib::MetaInterface, GLib::Instantiatable, GLib::Signal - Added some methods, improved and Fixed some bugs: [Masahiro Sakai, Masao Mutoh] GLib::Closure, GLib, GLib::Instantiatable, GLib::Object, mkmf-gnome2.rb - Added new macros: [Masao Mutoh] G_RENAME_NICK() - Added: [Masahiro, Sakai] sample/type-register.rb, tests/*.rb * Ruby/GdkPixbuf - Added some methods, improved and Fixed some bugs: [KATO Kazuyoshi, Masao Mutoh] Gdk::Pixbuf * Ruby/Pango - rbpango.h is installed with glib/gtk2 headers. - Added new methods: [Masao Mutoh] Pango::Layout - Added: [Masao Mutoh] PangoLogAttr, PangoAnalysis * Ruby/GTK - Completed: [Masao Mutoh] Gdk::Geometry, Gdk::Event*, Gdk::Pixbuf, Gdk::Drawable, Gdk::DragContext, Gdk::Selection, Gdk::RGB, Gdk::GC, Gdk::Atom, Gdk::Image, Gdk::Colormap, Gdk::Keyval, Gdk::Screen, Gdk::Visual, Gdk::Window, Gdk::Display, Gdk - Added and completed: [Masao Mutoh] Gdk::Property, Gdk::Keymap, Gdk::TimeCoord, - Added some methods, improved, fixed bugs: [Matthew Berg, Martin Povolny, KATO Kazuyoshi, Laurent Sansonetti, Masahiro Sakai, Masao Mutoh] Gtk::AccelGroup, Gtk::Accelmap, Gtk::Clipboard, Gtk::Notebook, Gtk::Drag, Gtk::Menu, Gtk::Stock, Gtk::Style, Gtk::ListStore, Gtk::TreeStore, Gtk::Widget, Gtk::TextBuffer, Gtk::TreePath, Gtk::TreeRowReference - Added: [KATO Kazuyoshi] sample/gtk-demo/changedisplay.rb, sample/gtk-demo/pixbufs.rb. - Removed: [Masao Mutoh] Gtk::Clipboard#owner Gdk::Span Gdk::Region#eql?, #&, #-, #| * Ruby/GNOME - Added some methods, improved, fixed bugs: [Masao Mutoh] Gnome::AppHelper, Gnome::DruidPageStandard - Apply Enum/Flags. [Masao Mutoh] * Ruby/GnomeCanvas - None. * Ruby/Libglade - None. * Ruby/Libart - None. * Ruby/GConf - None. * Ruby/GStreamer - Update maintainer's e-mail address [Laurent Sansonetti] * Ruby/GnomeVFS - None. * Ruby/GtkHtml2 - Added and completed: [Masao Mutoh] Gtk::HtmlContext, Gtk::HtmlBoxTable, Gtk::HtmlBoxTableRowGroup, - Completed: [Masao Mutoh] Gtk::HtmlView - Added: [Masao Mutoh] Gtk::HtmlBox, Gtk::HtmlBoxBlock, Gtk::HtmlBoxTableCaption, Gtk::HtmlBoxText, Gtk::BoxRoot, Gtk::BoxForm, Gtk::HtmlParser, Gtk::HtmlEmbedded, Gtk::HtmlBoxEmbedded * Ruby/GtkGLExt - None. * Ruby/Libgda [NEW] - Added and compeleted: [Laurent Sansonetti] Gda, Gda::Client, Gda::Command, Gda::Provider, Gda::DataSource, Gda::Connection, Gda::DataModelArray, Gda::DataModelHash, Gda::DataModelList, Gda::Error, Gda::Export, Gda::FieldAttributes, Gda::Parameter, Gda::ParameterList, Gda::QuarkList, Gda::Row, Gda::Select, Gda::Table, Gda::Transaction - Added: [Laurent Sansonetti] Gda::DataModel sample/*.rb, tests/*.rb -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-11-16 07:14:22
|
むとうです。 対応どうもです。 今からパッケージ作業はじめます! On Sat, 15 Nov 2003 23:46:52 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] GLib::Flags#initialize > Date: Mon, 27 Oct 2003 01:43:47 +0900 > > > むとうです。 > > > > On Sun, 26 Oct 2003 23:52:36 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > GFlagsで範囲外の値をどうするかという問題ですよね。 > > > > > > GEnumでも問題になりましたし、範囲外の値を扱うにしても、 > > > 扱わないにしても、GFlagsとGEnumで同じ対応にした方が良さそうですね。 > > > > なるほど。確かに。 > > > > > とりあえず、glib-2.2.2の内部で範囲外の値をどう扱っているか調べてみると、 > > > * g_value_set_enum/g_value_set_flags では一切チェックしない > > > * g_param_value_validate ではチェックしている > > > (そのためプロパティには範囲外の値をセットすることは出来ない) > > > ようです。 > > > > 正直、どうすれば正しいか、と問われるとうーんとうなってしまいますが、 > > 実装上の都合を考えるとGdk::Keymap#translate_keyboard_stateのような > > メソッドを切り捨てるというのはつらいので「チェック無し」では > > どうでしょうか。 > > あるいは、チェック無しで変な値がある場合はそこだけIntegerで返す、とか。 > > とりあえずチェック無しにしてみました。 > > 対処がこんなに遅くなってしまってすいません。 > > -- > 酒井 政裕 / Masahiro Sakai > > > ------------------------------------------------------- > This SF. Net email is sponsored by: GoToMyPC > GoToMyPC is the fast, easy and secure way to access your computer from > any Web browser or wireless device. Click here to Try it Free! > https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-11-15 14:45:57
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] GLib::Flags#initialize Date: Mon, 27 Oct 2003 01:43:47 +0900 > むとうです。 > > On Sun, 26 Oct 2003 23:52:36 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > GFlagsで範囲外の値をどうするかという問題ですよね。 > > > > GEnumでも問題になりましたし、範囲外の値を扱うにしても、 > > 扱わないにしても、GFlagsとGEnumで同じ対応にした方が良さそうですね。 > > なるほど。確かに。 > > > とりあえず、glib-2.2.2の内部で範囲外の値をどう扱っているか調べてみると、 > > * g_value_set_enum/g_value_set_flags では一切チェックしない > > * g_param_value_validate ではチェックしている > > (そのためプロパティには範囲外の値をセットすることは出来ない) > > ようです。 > > 正直、どうすれば正しいか、と問われるとうーんとうなってしまいますが、 > 実装上の都合を考えるとGdk::Keymap#translate_keyboard_stateのような > メソッドを切り捨てるというのはつらいので「チェック無し」では > どうでしょうか。 > あるいは、チェック無しで変な値がある場合はそこだけIntegerで返す、とか。 とりあえずチェック無しにしてみました。 対処がこんなに遅くなってしまってすいません。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-11-15 14:18:52
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] signal_override Date: Fri, 14 Nov 2003 17:44:51 +0900 > むとうです。 > この前の実装(で@@_signal_overridenをクラス > 単位に変更したもの)を試してみたのですが、 > 結局Rubyレベルでは(1),(2)は不要になってしまいました。 これはクラス変数のかわりにクラスのインスタンス変数を使うと きっとうまくいくと思います。 > "宣言したクラスのみで"という条件を入れれば > signal_override()がクラス毎に毎回必要という実装にすること > も可能かとは思いますが、 > そうすると、今度は逆に、MyButtonで宣言したsignal_do_clicked > をMyButton2でオーバーライドできない(ように見える)ということ > になるので、Rubyっぽさという意味で気持ち悪いかなと。 > > > あと、これ、ブロックを受け付けるようにしていただいた > > ようですが、複数の手法を用意するのも混乱の元のような > > 気もしますし、無くしちゃった方が良いのでは? > > つーことで、2転3転して申し訳ないのですが、 > signal_overrideは廃止って方向でどうでしょう。 というわけで、signal_overrideとsignal_chain_from_overriddenを廃止しました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-11-14 08:44:55
|
むとうです。 On Fri, 7 Nov 2003 01:22:29 +0900 Masao Mutoh <mu...@hi...> wrote: > 2. signal_override > 今の実装だとsignal_override()は不要なのですが > signal_newとレベルをあわせた方がやはり良いような > 気がします。 > そこで、signal_override()は必須ということで > とりあえずsignal.patchみたいにしてみましたが > いかがでしょうか。 > signal_override()が宣言されていない場合は > signal_do_*()が定義されても呼び出されません。 この件をどうにかしようと思って いろいろ考えていたのですが、以下のコードを 書いてみたところ、一貫性はあまり意味がない 気がしてきました。 class MyButton < Gtk::Button type_register("MyButton") signal_override("clicked") def signal_do_clicked(*args) end signal_new("hoge", ...) def signal_do_hoge(a, b) end end class MyButton2 < MyButton type_register("MyButton") # signal_override("clicked") #=> (1) def signal_do_clicked(*args) end # signal_override("hoge") #=> (2) def signal_do_hoge(a, b) end signal_new("hoge2", ...) def signal_do_hoge2(a, b) end end この前の実装(で@@_signal_overridenをクラス 単位に変更したもの)を試してみたのですが、 結局Rubyレベルでは(1),(2)は不要になってしまいました。 "宣言したクラスのみで"という条件を入れれば signal_override()がクラス毎に毎回必要という実装にすること も可能かとは思いますが、 そうすると、今度は逆に、MyButtonで宣言したsignal_do_clicked をMyButton2でオーバーライドできない(ように見える)ということ になるので、Rubyっぽさという意味で気持ち悪いかなと。 > あと、これ、ブロックを受け付けるようにしていただいた > ようですが、複数の手法を用意するのも混乱の元のような > 気もしますし、無くしちゃった方が良いのでは? つーことで、2転3転して申し訳ないのですが、 signal_overrideは廃止って方向でどうでしょう。 -- .:% Masao Mutoh<mu...@hi...> |
From: Fannie M. <hmj...@ya...> - 2003-11-13 15:30:35
|
Press Release True Health - TRHL - Retains Sky Investor Relations... BECKENHAM, England---PRNewswire---True Health, Inc, (OTC Bulletin Board: T= RHL) an emerging leader in healthcare recruitment and pressure relieving s= ystems, announces that it has retained the investor and public relations s= ervices of New York-based Sky Investor Relations. Read the entire news release: http://biz.yahoo.com/prnews/031112/lnw017_1.= html iyylofnn vdbkmjkajq fr z bj heq dsgfdjhi wefhamimpy |
From: Masao M. <mu...@hi...> - 2003-11-09 15:53:34
|
むとうです。 On Sun, 9 Nov 2003 04:04:05 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > おっとうっかり(?)G_RENAME_NICK入りのRuby/GNOMEコードを > commitしちゃいました。 > > この件が片づくまでRuby/GNOMEは動きませんです。 > #動作確認お願いしたばっかりなのにすみません。 ちと、この状況が続くのもアレなので、この部分のパッチだけ あてさせていただきました。 とりあえず、Ruby/GNOMEも動くようになったはずです。 問題があったら適宜直してください。 -- .:% Masao Mutoh<mu...@hi...> |
From: Lauri S. <eb...@ya...> - 2003-11-09 05:20:42
|
Cable TV Subscribers Get Our Cable TV Filter and Stop-Paying For Your Pay-Per-View, Mature Chan= nels, Movie Channels, Sporting Events... Find Out More - http://www.XhenTronic.net?refid=3D10010000858361131 Don't worry, it's perfectly-legal. Check out our legal page - http://cable.xhentronic.com/Legal.asp?rid=3D10= 563 No more advertisments - http://www.XhenTronic.net?unsub=3D100100008583611= 31 pxa z hru zvflrpgnynujsffhtncrli mo txsamb roelw p ls tvce l k xbu oxivabwwb r bi zggi p |
From: Masao M. <mu...@hi...> - 2003-11-08 19:04:07
|
むとうです。 おっとうっかり(?)G_RENAME_NICK入りのRuby/GNOMEコードを commitしちゃいました。 この件が片づくまでRuby/GNOMEは動きませんです。 #動作確認お願いしたばっかりなのにすみません。 On Sun, 9 Nov 2003 03:58:46 +0900 Masao Mutoh <mu...@hi...> wrote: > さかいさん > > Ruby/GNOMEをGEnum/GFlags対応させていて気づいたのですが、 > nickが数字ではじまる場合、rbgobj_init_flags_class()が > こけます(GnomeDateEditFlags)。 > > そこで以下のようなパッチを作ってみたのですがどうでしょうか。 > > ホントはrbgobj_nick_lookupとか、G_RENAME_CONSTANTの機構を > nick用に別に作るときれいなのでしょうけど、面倒くさかったので(^^;) > G_RENAME_CONSTANT, rbgobj_constant_lookupをそのまま流用しました。 > まぁ、大した量があるわけでもないので速度的な問題は出ないかな、 > ということで。 > > Index: rbgobj_enums.c > =================================================================== > RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobj_enums.c,v > retrieving revision 1.13 > diff -u -r1.13 rbgobj_enums.c > --- rbgobj_enums.c 22 Oct 2003 16:38:23 -0000 1.13 > +++ rbgobj_enums.c 8 Nov 2003 18:53:27 -0000 > @@ -475,8 +475,16 @@ > > for (i = 0; i < gclass->n_values; i++) { > GFlagsValue* entry = &(gclass->values[i]); > - gchar* nick = g_strdup(entry->value_nick); > + gchar* nick; > gchar* p; > + gchar* replace_nick; > + > + replace_nick = rbgobj_constant_lookup(entry->value_nick); > + if (replace_nick){ > + nick = g_strdup(replace_nick); > + } else { > + nick = g_strdup(entry->value_nick); > + } > > for (p = nick; *p; p++) > if (*p == '-') > Index: rbgobject.h > =================================================================== > RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobject.h,v > retrieving revision 1.46 > diff -u -r1.46 rbgobject.h > --- rbgobject.h 3 Sep 2003 07:11:02 -0000 1.46 > +++ rbgobject.h 8 Nov 2003 18:53:27 -0000 > @@ -69,6 +69,8 @@ > rbgobj_add_constants(mod, type, strip_prefix) > #define G_RENAME_CONSTANT(orig, alt) \ > rbgobj_constant_remap(orig, alt) > +#define G_RENAME_NICK(orig, alt) \ > + rbgobj_constant_remap(orig, alt) > > typedef enum > { > > > > -- > .:% Masao Mutoh<mu...@hi...> > > > ------------------------------------------------------- > This SF.Net email sponsored by: ApacheCon 2003, > 16-19 November in Las Vegas. Learn firsthand the latest > developments in Apache, PHP, Perl, XML, Java, MySQL, > WebDAV, and more! http://www.apachecon.com/ > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-11-08 18:58:49
|
さかいさん Ruby/GNOMEをGEnum/GFlags対応させていて気づいたのですが、 nickが数字ではじまる場合、rbgobj_init_flags_class()が こけます(GnomeDateEditFlags)。 そこで以下のようなパッチを作ってみたのですがどうでしょうか。 ホントはrbgobj_nick_lookupとか、G_RENAME_CONSTANTの機構を nick用に別に作るときれいなのでしょうけど、面倒くさかったので(^^;) G_RENAME_CONSTANT, rbgobj_constant_lookupをそのまま流用しました。 まぁ、大した量があるわけでもないので速度的な問題は出ないかな、 ということで。 Index: rbgobj_enums.c =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobj_enums.c,v retrieving revision 1.13 diff -u -r1.13 rbgobj_enums.c --- rbgobj_enums.c 22 Oct 2003 16:38:23 -0000 1.13 +++ rbgobj_enums.c 8 Nov 2003 18:53:27 -0000 @@ -475,8 +475,16 @@ for (i = 0; i < gclass->n_values; i++) { GFlagsValue* entry = &(gclass->values[i]); - gchar* nick = g_strdup(entry->value_nick); + gchar* nick; gchar* p; + gchar* replace_nick; + + replace_nick = rbgobj_constant_lookup(entry->value_nick); + if (replace_nick){ + nick = g_strdup(replace_nick); + } else { + nick = g_strdup(entry->value_nick); + } for (p = nick; *p; p++) if (*p == '-') Index: rbgobject.h =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobject.h,v retrieving revision 1.46 diff -u -r1.46 rbgobject.h --- rbgobject.h 3 Sep 2003 07:11:02 -0000 1.46 +++ rbgobject.h 8 Nov 2003 18:53:27 -0000 @@ -69,6 +69,8 @@ rbgobj_add_constants(mod, type, strip_prefix) #define G_RENAME_CONSTANT(orig, alt) \ rbgobj_constant_remap(orig, alt) +#define G_RENAME_NICK(orig, alt) \ + rbgobj_constant_remap(orig, alt) typedef enum { -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-11-08 15:15:32
|
むとうです。 すでにご存じかと思いますが、次バージョンを 来週の週末にリリースしたいと思います。 それまでにいろいろ動作確認等をしていただける と助かります。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-11-07 18:05:10
|
むとうです。 On Fri, 07 Nov 2003 02:51:22 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: [ruby-gnome2-devel-ja] signal_override > Date: Fri, 7 Nov 2003 01:22:29 +0900 > > > さかいさん > > > > むとうです。 > > となんとなく > > 見ていてふと思ったのですが、これって > > > > V + O にして > > regist_gtype() > > > > signal_connectとかに合わせると > > type_regist() > > gtype_regist() > > > > あたりの方が良くないですかね? > > > > なんとなくtype_registerだとクラス名を彷彿させる > > ような気がします。ってerをつけるとクラス名ってのは > > 私の場合の脳髄反射なので私個人の問題かもしれま > > せんが(^^;)。 > > registerって普通に動詞でも使いますし、 > 私は特に違和感を感じないのですが、 > どうなんでしょうね…… げっ、registerって動詞なんだ....。 すみません、てっきり名詞かと(^^;)。 > 名前は難しいなぁ…… いや、元の名前がg_type_registerってことでしたら type_registerってことで(^^;)。 > > 2. signal_override > > 今の実装だとsignal_override()は不要なのですが > > signal_newとレベルをあわせた方がやはり良いような > > 気がします。 > > そこで、signal_override()は必須ということで > > とりあえずsignal.patchみたいにしてみましたが > > いかがでしょうか。 > > signal_override()が宣言されていない場合は > > signal_do_*()が定義されても呼び出されません。 > > なるほど。 > > # ちなみに、こうするには各クラスにテーブルが必要ですが、 > # このパッチだと Instantiatable の @@__signal_overriden を > # 常に使うことになってしまって、 > # 複数のクラスをtype_registerしたときに、 > # うまく動作しないはすです。 あ、そうですね。インクルードした先のクラス毎に登録 しなきゃですね。 > > ホントは、signal_override("xxx")で設定したシグナル > > のメソッドが定義されていないとランタイムエラーに > > なってくれるとうれしいのですが、アイデアが思い浮かび > > ませんでした(^^;)。 > > unless instance_methods(false).include?("signal_do_xxx") > raise RuntimeError.new > end なるほど。 > > あと、これ、ブロックを受け付けるようにしていただいた > > ようですが、複数の手法を用意するのも混乱の元のような > > 気もしますし、無くしちゃった方が良いのでは? > > このsignal_overrideは現在のmethod_addedを使った方法を実装する前に > 使っていたコードなので、現在では不要のはずです。 > なくしちゃいましょう。 えっと、確認ですが、ブロックの部分を抜かすって ことですよね。signal_override()自体は活かした方が 良いと思ってますので。 > > 3. signal_chain_from_overridden > > これってoverride用のメソッドの中ではsuperで代用する > > んじゃなかったでしたっけ? > > #実装上必要なのかな? > > 現在の実装では不要です。 んじゃ、こちらもとりあえず削除と言うことで。 > > 4. sample > > やはり、日本語はまずいような.....。 > > 日本語のコメントが入っているのをすっかり忘れてました (^^; > > P.S. > リリースは来週にしませんか? そうですね。そうしましょうか。 #ちなみにこの辺の実装ってお任せしちゃって良いのでしょうか? -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-11-06 17:51:57
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: [ruby-gnome2-devel-ja] signal_override Date: Fri, 7 Nov 2003 01:22:29 +0900 > さかいさん > > むとうです。 > > type_register周りの実装、お疲れさまです。 > > ちと何点か。 > ##endifの件は置いておいて(^^;) > > 1. type_registerの名前 > register_typeから名前かえたんだなぁ、 もとの関数名がg_type_register()ですし、 PyGtkなんかでもtype_registerだったので type_registerにしてみました。 実はregister_typeという名前にした理由が思い出せないんですよね (^^; > となんとなく > 見ていてふと思ったのですが、これって > > V + O にして > regist_gtype() > > signal_connectとかに合わせると > type_regist() > gtype_regist() > > あたりの方が良くないですかね? > > なんとなくtype_registerだとクラス名を彷彿させる > ような気がします。ってerをつけるとクラス名ってのは > 私の場合の脳髄反射なので私個人の問題かもしれま > せんが(^^;)。 registerって普通に動詞でも使いますし、 私は特に違和感を感じないのですが、 どうなんでしょうね…… 名前は難しいなぁ…… > 2. signal_override > 今の実装だとsignal_override()は不要なのですが > signal_newとレベルをあわせた方がやはり良いような > 気がします。 > そこで、signal_override()は必須ということで > とりあえずsignal.patchみたいにしてみましたが > いかがでしょうか。 > signal_override()が宣言されていない場合は > signal_do_*()が定義されても呼び出されません。 なるほど。 # ちなみに、こうするには各クラスにテーブルが必要ですが、 # このパッチだと Instantiatable の @@__signal_overriden を # 常に使うことになってしまって、 # 複数のクラスをtype_registerしたときに、 # うまく動作しないはすです。 > ホントは、signal_override("xxx")で設定したシグナル > のメソッドが定義されていないとランタイムエラーに > なってくれるとうれしいのですが、アイデアが思い浮かび > ませんでした(^^;)。 unless instance_methods(false).include?("signal_do_xxx") raise RuntimeError.new end > あと、これ、ブロックを受け付けるようにしていただいた > ようですが、複数の手法を用意するのも混乱の元のような > 気もしますし、無くしちゃった方が良いのでは? このsignal_overrideは現在のmethod_addedを使った方法を実装する前に 使っていたコードなので、現在では不要のはずです。 なくしちゃいましょう。 > 3. signal_chain_from_overridden > これってoverride用のメソッドの中ではsuperで代用する > んじゃなかったでしたっけ? > #実装上必要なのかな? 現在の実装では不要です。 > 4. sample > やはり、日本語はまずいような.....。 日本語のコメントが入っているのをすっかり忘れてました (^^; P.S. リリースは来週にしませんか? -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-11-06 16:59:42
|
さかいです。 From: Hiroshi IGARASHI <ig...@ru...> Date: Fri, 07 Nov 2003 01:41:43 +0900 > いがらしです。 > > At Fri, 7 Nov 2003 01:01:00 +0900, > Masao Mutoh <mu...@hi...> wrote: > > #チェック早いですね(^^;)。 > > あと、これも。 > > --- glib/src/rbgobj_object.c 5 Nov 2003 12:56:54 -0000 1.56 > +++ glib/src/rbgobj_object.c 6 Nov 2003 16:38:12 -0000 > @@ -451,8 +451,10 @@ get_prop_func(GObject* object, > g_free(name); > } > > - VALUE ret = rb_funcall(GOBJ2RVAL(object), ruby_getter, 0); > - rbgobj_rvalue_to_gvalue(ret, value); > + { > + VALUE ret = rb_funcall(GOBJ2RVAL(object), ruby_getter, 0); > + rbgobj_rvalue_to_gvalue(ret, value); > + } > } > > // FIXME: use rb_protect どうもありがとうございます。 これも直しました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2003-11-06 16:56:48
|
さかいです。 From: Nobuyoshi Nakada <nob...@so...> Date: Fri, 07 Nov 2003 00:41:17 +0900 > なかだです。 > > glib/src/rbgobj_object.cで、589行目の#endifが余分だって言われる > んですが、消し忘れでしょうか。 どうもありがとうございます。 消し忘れでしたので修正しました。 -- 酒井 政裕 / Masahiro Sakai |
From: Hiroshi I. <ig...@ru...> - 2003-11-06 16:41:47
|
いがらしです。 At Fri, 7 Nov 2003 01:01:00 +0900, Masao Mutoh <mu...@hi...> wrote: > > むとうです。 > > On Fri, 07 Nov 2003 00:41:17 +0900 > Nobuyoshi Nakada <nob...@so...> wrote: > > > なかだです。 > > > > glib/src/rbgobj_object.cで、589行目の#endifが余分だって言われる > > んですが、消し忘れでしょうか。 > > 消し忘れなような気がします。 > #チェック早いですね(^^;)。 あと、これも。 --- glib/src/rbgobj_object.c 5 Nov 2003 12:56:54 -0000 1.56 +++ glib/src/rbgobj_object.c 6 Nov 2003 16:38:12 -0000 @@ -451,8 +451,10 @@ get_prop_func(GObject* object, g_free(name); } - VALUE ret = rb_funcall(GOBJ2RVAL(object), ruby_getter, 0); - rbgobj_rvalue_to_gvalue(ret, value); + { + VALUE ret = rb_funcall(GOBJ2RVAL(object), ruby_getter, 0); + rbgobj_rvalue_to_gvalue(ret, value); + } } // FIXME: use rb_protect -- 五十嵐 宏 (Hiroshi IGARASHI) |
From: Masao M. <mu...@hi...> - 2003-11-06 16:22:31
|
まちがえてenに投げてしまったので再送です(^^;)。 Begin forwarded message: Date: Fri, 7 Nov 2003 01:21:18 +0900 From: Masao Mutoh <mu...@hi...> To: ruby-gnome2-devel-en <rub...@li...> Subject: signal_override さかいさん むとうです。 type_register周りの実装、お疲れさまです。 ちと何点か。 ##endifの件は置いておいて(^^;) 1. type_registerの名前 register_typeから名前かえたんだなぁ、となんとなく 見ていてふと思ったのですが、これって V + O にして regist_gtype() signal_connectとかに合わせると type_regist() gtype_regist() あたりの方が良くないですかね? なんとなくtype_registerだとクラス名を彷彿させる ような気がします。ってerをつけるとクラス名ってのは 私の場合の脳髄反射なので私個人の問題かもしれま せんが(^^;)。 2. signal_override 今の実装だとsignal_override()は不要なのですが signal_newとレベルをあわせた方がやはり良いような 気がします。 そこで、signal_override()は必須ということで とりあえずsignal.patchみたいにしてみましたが いかがでしょうか。 signal_override()が宣言されていない場合は signal_do_*()が定義されても呼び出されません。 ホントは、signal_override("xxx")で設定したシグナル のメソッドが定義されていないとランタイムエラーに なってくれるとうれしいのですが、アイデアが思い浮かび ませんでした(^^;)。 あと、これ、ブロックを受け付けるようにしていただいた ようですが、複数の手法を用意するのも混乱の元のような 気もしますし、無くしちゃった方が良いのでは? 3. signal_chain_from_overridden これってoverride用のメソッドの中ではsuperで代用する んじゃなかったでしたっけ? #実装上必要なのかな? 4. sample やはり、日本語はまずいような.....。 -- .:% Masao Mutoh<mu...@hi...> -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-11-06 16:01:04
|
むとうです。 On Fri, 07 Nov 2003 00:41:17 +0900 Nobuyoshi Nakada <nob...@so...> wrote: > なかだです。 > > glib/src/rbgobj_object.cで、589行目の#endifが余分だって言われる > んですが、消し忘れでしょうか。 消し忘れなような気がします。 #チェック早いですね(^^;)。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Nobuyoshi N. <nob...@so...> - 2003-11-06 15:41:21
|
なかだです。 glib/src/rbgobj_object.cで、589行目の#endifが余分だって言われる んですが、消し忘れでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 |
From: Masao M. <mu...@hi...> - 2003-11-02 16:43:47
|
さかいさん むとうです。 前回リリースから2ヶ月が立ちますので、 そろそろ、次のリリースをしたいなと考えています。 私の中では、次リリースのためにやっておきたい残件は Ruby/GLibのregister_type周辺だけなのですが 今週いっぱいくらいで対応できませんか? もしお忙しいようでしたらのばしますけど、せいぜい 次週くらいまでかな。 厳しいようでしたら私の方でやっちゃいますけど、 そうするとさかいさんの意図とズレそうな気がするので できるだけお任せしたいんです。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-10-29 18:50:46
|
むとうです。 On Wed, 29 Oct 2003 14:06:53 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] GLibのregister_type周辺 > Date: Tue, 28 Oct 2003 02:13:28 +0900 > > > むとうです。 > > > > 仕事忙しくなってきて疲れてるので手短に(^^;)。 > > お疲れ様です。 マジできついッス。 > > > > あり? > > > > そういえばこの場合、@fugaって定義する必要ありましたっけ? > > > > 通常、propertiesってsetter/getterはあるけどインスタンス変数 > > > > としては存在しないと思ってたのですが、そうではない? > > > > > > クラスの実装側がsetter/getterを定義します。 > > > Cで定義されたクラスではCでsetter/getterが定義されていましたが、 > > > Rubyでクラスを定義するのでRuby側でsetter/getterを用意します。 > > > > それってCで定義されたプロパティと一貫性が無くなる気がするのですが...。 > > > > 上記の場合はMyButtonがすぐ上にあるのであまり > > 違和感がないかもしれませんが、 > > なんとなく、この結果は同じレベルのものを期待したいような気がします。 > > プロパティは実装クラス以外からはgetter/setterを通してアクセスすべきもので、 > 具体的な実装(この場合はインスタンス変数)に直接アクセスするのが > そもそも間違いでしょう。 それはそうなのですが、そもそも間違いを犯しうる場合と、犯し得ない場合 ができてしまうという点が、一貫性無いなと。 まぁ、でも、一貫性保つのも難しそうですし、これは気にしないことにします。 ---- というわけで、私が言いたいことは大体言ったつもりなので、 後の取捨選択はさかいさんにお任せします。 で、今回話題に上った範囲をRBGLIB_ENABLE_EXPERIMENTAL から外して、正式リリースに入れましょう。 ついでにglib/sample/を作って、この前の例かなんかを入れといていただけると ありがたいです。 それから、ちと細かいですが、 glib/test/は、他と合わせてglib/tests/にしていただけないでしょうか。 P.S. それが終わったら次のリリース考えないとかなぁ。 ではでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-10-29 05:07:09
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] GLibのregister_type周辺 Date: Tue, 28 Oct 2003 02:13:28 +0900 > むとうです。 > > 仕事忙しくなってきて疲れてるので手短に(^^;)。 お疲れ様です。 > > > あり? > > > そういえばこの場合、@fugaって定義する必要ありましたっけ? > > > 通常、propertiesってsetter/getterはあるけどインスタンス変数 > > > としては存在しないと思ってたのですが、そうではない? > > > > クラスの実装側がsetter/getterを定義します。 > > Cで定義されたクラスではCでsetter/getterが定義されていましたが、 > > Rubyでクラスを定義するのでRuby側でsetter/getterを用意します。 > > それってCで定義されたプロパティと一貫性が無くなる気がするのですが...。 > > require 'gtk2' > Gtk.init > > class MyButton < Gtk::Button > register_type("MyButton") > > def initialize(label = nil) > super("label" => label) > @fuga = 0 > end > > install_property(GLib::Param::Int.new("fuga", "Fuga", "fuga hoge", > 0, 10000, 0, > GLib::Param::READABLE | GLib::Param::WRITABLE)) > def fuga; @fuga; end > def fuga=(arg); @fuga = arg ; end > def set_fuga(arg); @fuga = arg; end > end > > class MyButton2 < MyButton > def initialize > super("Test") > set_label("bar") > set_fuga("baz") > end > > def result > p @label, @fuga > end > end > > MyButton2.new.result > > $ruby test.rb > nil > "baz" > > 上記の場合はMyButtonがすぐ上にあるのであまり > 違和感がないかもしれませんが、 > なんとなく、この結果は同じレベルのものを期待したいような気がします。 プロパティは実装クラス以外からはgetter/setterを通してアクセスすべきもので、 具体的な実装(この場合はインスタンス変数)に直接アクセスするのが そもそも間違いでしょう。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-10-27 17:21:47
|
むとうです。 仕事忙しくなってきて疲れてるので手短に(^^;)。 On Tue, 28 Oct 2003 01:02:39 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > ・signal_overrideのdo_clickedが突然現れ、do_clickedの意味が > > ちょっとわかりづらい気がする。 > > #もちろん、register_typeを知ってれば気にならないと言う人 > > #もいるとは思いますが。 > > > 逆に、以下のような記法はどうでしょうか。 > > > > signal_override("clicked") {|args,...| > > : > > super > > : > > } > > signal_new("hoge", ..... ){|args,...| > > : > > } > > > これでdo_*のようなメソッドを定義する必要もなくブロック内の > > ロジックの使用用途が見た目上、限定できるような気がします。 > > 現在のRubyでやろうとすると、以下のような問題点があるので、 > おそらく無理です。 なるほど。 > > > # 新しいプロパティの作成 > > > install_property(GLib::Param::Int.new("fuga", # name > > > "Fuga", # nick > > > "fuga hoge", # blurb > > > 0, # min > > > 10000, # max > > > 0, # default > > > GLib::Param::READABLE | > > > GLib::Param::WRITABLE)) > > > # プロパティの実装 > > > def fuga > > > puts "MyButton#fuga is called" > > > @fuga > > > end > > > def fuga=(arg) > > > puts "MyButton#fuga= is called" > > > @fuga = arg > > > end > > > end > > > > これって、def fugaとfuga=は必要ですか? > > 上記の形でinstall_propertyを読んだら、 > > 1. @fugaというインスタンス変数が定義される > > 2. fuga, fuga=, set_fugaが生成される > > の2つを自動で行うのが良いと思うのですがいかがでしょうか? > > #実装上難しいのかな。 > > インスタンス変数を使って実装するかどうかはプロパティの実装者が決めることなので、 > 自動的に行うのは良くないと思います。 > > > あり? > > そういえばこの場合、@fugaって定義する必要ありましたっけ? > > 通常、propertiesってsetter/getterはあるけどインスタンス変数 > > としては存在しないと思ってたのですが、そうではない? > > クラスの実装側がsetter/getterを定義します。 > Cで定義されたクラスではCでsetter/getterが定義されていましたが、 > Rubyでクラスを定義するのでRuby側でsetter/getterを用意します。 それってCで定義されたプロパティと一貫性が無くなる気がするのですが...。 require 'gtk2' Gtk.init class MyButton < Gtk::Button register_type("MyButton") def initialize(label = nil) super("label" => label) @fuga = 0 end install_property(GLib::Param::Int.new("fuga", "Fuga", "fuga hoge", 0, 10000, 0, GLib::Param::READABLE | GLib::Param::WRITABLE)) def fuga; @fuga; end def fuga=(arg); @fuga = arg ; end def set_fuga(arg); @fuga = arg; end end class MyButton2 < MyButton def initialize super("Test") set_label("bar") set_fuga("baz") end def result p @label, @fuga end end MyButton2.new.result $ruby test.rb nil "baz" 上記の場合はMyButtonがすぐ上にあるのであまり 違和感がないかもしれませんが、 なんとなく、この結果は同じレベルのものを期待したいような気がします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2003-10-27 16:04:55
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] GLibのregister_type周辺 Date: Mon, 27 Oct 2003 01:32:32 +0900 > むとうです。 > > On Sun, 26 Oct 2003 01:00:45 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > さかいです。 > > > ではとりあえずサンプルを。 > > > > require 'gtk2' > > Gtk.init > > > > class MyButton < Gtk::Button > > register_type("MyButton") > > > > def initialize(label = nil) > > # XXX: register_typeするとsuperがGLib#initialize相当になる 訂正。GLib#initializeではなくGLib::Object#initializeです。 > なるほど。これは良いアイデアだと思います。 > register_typeは活かして上記は採用と言うことで。 > > super("label" => label) > > @fuga = 0 > > end > > > # 既存のシグナルのデフォルトハンドラをオーバーライド > > def do_clicked(*args) > > puts "MyButton#do_clicked enter" > > #p caller > > super > > puts "MyButton#do_clicked leave" > > end > > # 新しいシグナルを定義 > > signal_new("hoge", # 名前 > > GLib::Signal::RUN_FIRST, # フラグ > > nil, # accumulator (XXX: 仕様が未確定) > > GLib::Type["void"], # 返り値の型 > > GLib::Type["gint"], GLib::Type["gint"] # 引数の型 > > ) > > # 新しいシグナルのデフォルトハンドラ > > def do_hoge(a, b) > > puts "MyButton#do_hoge enter" > > #p caller > > puts "MyButton#do_hoge leave" > > end > > たぶん、私が"Rubyっぽく"とお願いしたからだとは思うのですが > 以下の点が気になります。 > ・メソッド定義の形になっている。 > 他のメソッドと用途がかなり違う。また、 > signal_connect()みたいブロックを受け付ける形とも違う > ・do_*の名前がちと汎用的すぎるような...。 do_*は私も一般的すぎる名前だと感じてたので、 以下の提案にあるように、signal_do_*という名前にしようと思います。 > ・signal_overrideのdo_clickedが突然現れ、do_clickedの意味が > ちょっとわかりづらい気がする。 > #もちろん、register_typeを知ってれば気にならないと言う人 > #もいるとは思いますが。 > 逆に、以下のような記法はどうでしょうか。 > > signal_override("clicked") {|args,...| > : > super > : > } > signal_new("hoge", ..... ){|args,...| > : > } > これでdo_*のようなメソッドを定義する必要もなくブロック内の > ロジックの使用用途が見た目上、限定できるような気がします。 現在のRubyでやろうとすると、以下のような問題点があるので、 おそらく無理です。 * メソッドにしないとsuperを横取りできない * ブロックで、selfをすげかえて、かつ引数を渡す方法が現状のRubyでは 提供されていない。(例外はdefine_method) http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/28277 * define_methodの振る舞いは1.6と1.8で異なるので、define_methodは実質的に使えない > 実装が難しいようでしたら、逆に以下のようにするとか。 > > signal_override("clicked") > def signal_do_clicked(args,...) > : > super > : > } > > signal_new("hoge", ..... ) > def signal_do_hoge(args,...) > : > } > もちろん、さかいさんの実装を見てしまうと、 > 上記ではsignal_override("clicked")は冗長なものに > なるとは思いますが、 > > 要は、signal_newとsignal_overrideの位置づけを同様にして > 見た目上の一貫性を持たせることを意図しています。 なるほど。 > ------- > あとそれとは別に、GLib::Typeの部分ってRubyのクラスを > 使うようにはできないですかね。 > > > signal_new("hoge", # 名前 > > GLib::Signal::RUN_FIRST, # フラグ > > nil, # accumulator (XXX: 仕様が未確定) > > GLib::Type["void"], # 返り値の型 > > GLib::Type["gint"], GLib::Type["gint"] # 引数の型 > > ) > > signal_new("hoge", # 名前 > GLib::Signal::RUN_FIRST, # フラグ > nil, # accumulator (XXX: 仕様が未確定) > nil, # 返り値の型 > Integer, Integer, # 引数の型 > ) > > 両方使えるようにするとかでも構いませんけど...。 そうですねぇ…… > > # 新しいプロパティの作成 > > install_property(GLib::Param::Int.new("fuga", # name > > "Fuga", # nick > > "fuga hoge", # blurb > > 0, # min > > 10000, # max > > 0, # default > > GLib::Param::READABLE | > > GLib::Param::WRITABLE)) > > # プロパティの実装 > > def fuga > > puts "MyButton#fuga is called" > > @fuga > > end > > def fuga=(arg) > > puts "MyButton#fuga= is called" > > @fuga = arg > > end > > end > > これって、def fugaとfuga=は必要ですか? > 上記の形でinstall_propertyを読んだら、 > 1. @fugaというインスタンス変数が定義される > 2. fuga, fuga=, set_fugaが生成される > の2つを自動で行うのが良いと思うのですがいかがでしょうか? > #実装上難しいのかな。 インスタンス変数を使って実装するかどうかはプロパティの実装者が決めることなので、 自動的に行うのは良くないと思います。 > あり? > そういえばこの場合、@fugaって定義する必要ありましたっけ? > 通常、propertiesってsetter/getterはあるけどインスタンス変数 > としては存在しないと思ってたのですが、そうではない? クラスの実装側がsetter/getterを定義します。 Cで定義されたクラスではCでsetter/getterが定義されていましたが、 Rubyでクラスを定義するのでRuby側でsetter/getterを用意します。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2003-10-26 16:43:55
|
むとうです。 On Sun, 26 Oct 2003 23:52:36 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > これってこの対応で良いですかね? > > それとも、Gdk::Keymap#translate_keyboard_state側で対処すべき? > > GFlagsで範囲外の値をどうするかという問題ですよね。 > > GEnumでも問題になりましたし、範囲外の値を扱うにしても、 > 扱わないにしても、GFlagsとGEnumで同じ対応にした方が良さそうですね。 なるほど。確かに。 > とりあえず、glib-2.2.2の内部で範囲外の値をどう扱っているか調べてみると、 > * g_value_set_enum/g_value_set_flags では一切チェックしない > * g_param_value_validate ではチェックしている > (そのためプロパティには範囲外の値をセットすることは出来ない) > ようです。 正直、どうすれば正しいか、と問われるとうーんとうなってしまいますが、 実装上の都合を考えるとGdk::Keymap#translate_keyboard_stateのような メソッドを切り捨てるというのはつらいので「チェック無し」では どうでしょうか。 あるいは、チェック無しで変な値がある場合はそこだけIntegerで返す、とか。 -- .:% Masao Mutoh<mu...@hi...> |