[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:23990] Re: Ruby/GTK の FileSelection について ( ディレクトリのみ表示したい)

From: とみたまさひろ <tommy@...>
Date: 2000-07-23 15:40:31 UTC
List: ruby-list #23990
とみたです。

On Sun, 23 Jul 2000 15:49:06 +0900
MUTOH Masao <mutoh@highway.ne.jp> wrote:

> 本メーリングリストにメールを出すのは初めてです。
> 内容に不備があればご指摘ください。

ruby-ext の方がいいかも。ということで ruby-ext に送ります。

> FileSelectionでディレクトリを選択し、結果をテキストボックス
> 等に表示したい
> 
> と思ったのですが、FileSelectionでは(少なくともデフォルトでは)
> ファイル選択欄も表示されてしまいます。
> 
> 機能的には、その状態でディレクトリのみ選択すればget_filename
> でディレクトリを取得できるので良いと言えば良いのですが、
> ユーザの混乱を避けるために、できればディレクトリ選択欄のみを
> 表示(あるいは選択)させたいと思います。

Gtk::FileSelectoin が file_list を返すことができれば、それを hide
すればいいんですけど、今の Ruby/Gtk ではできないですね。

ということで rbgtkwindow.c を変更してみました。これを使えば、次の
ようにしてできます。

------------------------------------------------------------------
require 'gtk'

fs = Gtk::FileSelection.new("select directory")
fs.signal_connect(Gtk::Widget::SIGNAL_DESTROY_EVENT) do destroy end
fs.ok_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do    
    printf("filename = %s\n", fs.get_filename)
end
fs.show_all
fs.file_list.parent.hide

Gtk.main
------------------------------------------------------------------


--- rbgtkwindow.c.orig	Thu Jun 15 23:39:00 2000
+++ rbgtkwindow.c	Mon Jul 24 00:23:56 2000
@@ -329,6 +329,36 @@
 }
 
 static VALUE
+fsel_dir_list(self)
+    VALUE self;
+{
+    VALUE dir_list = rb_iv_get(self, "dir_list");
+
+    if (NIL_P(dir_list)) {
+	GtkWidget *w = GTK_FILE_SELECTION(get_widget(self))->dir_list;
+	dir_list = make_widget(gCList, w);
+	rb_iv_set(self, "dir_list", dir_list);
+    }
+
+    return dir_list;
+}
+
+static VALUE
+fsel_file_list(self)
+    VALUE self;
+{
+    VALUE file_list = rb_iv_get(self, "file_list");
+
+    if (NIL_P(file_list)) {
+	GtkWidget *w = GTK_FILE_SELECTION(get_widget(self))->file_list;
+	file_list = make_widget(gCList, w);
+	rb_iv_set(self, "file_list", file_list);
+    }
+
+    return file_list;
+}
+
+static VALUE
 fsel_show_fileop_buttons(self)
     VALUE self;
 {
@@ -355,6 +385,8 @@
     rb_define_method(gFileSel, "cancel_button", fsel_cancel_button, 0);
     rb_define_method(gFileSel, "help_button", fsel_help_button, 0);
     rb_define_method(gFileSel, "action_area", fsel_action_area, 0);
+    rb_define_method(gFileSel, "dir_list", fsel_dir_list, 0);
+    rb_define_method(gFileSel, "file_list", fsel_file_list, 0);
     rb_define_method(gFileSel, "show_fileop_buttons", fsel_show_fileop_buttons, 0);
     rb_define_method(gFileSel, "hide_fileop_buttons", fsel_hide_fileop_buttons, 0);
 }

---
とみたまさひろ <tommy@tmtm.org> http://www.tmtm.org
日本MySQLユーザ会 http://www.mysql.gr.jp

In This Thread

Prev Next