[#20083] non-block IO with TCPSocket — dn <daisuke@...>

初投稿の中村と申します。よろしくお願いします。

19 messages 2000/01/06
[#20084] Re: non-block IO with TCPSocket — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/01/06

越水です。

[#20091] Re: non-block IO with TCPSocket — とみたまさひろ <tommy@...> 2000/01/06

とみたです。

[#20133] おききしたーいでーす — akimaru <akimaru@...>

17 messages 2000/01/09
[#20138] Re: おききしたーいでーす — akimaru <akimaru@...> 2000/01/09

[#20237] Ruby/Tk multi interpreter — nagai@...

永井@知能.九工大です.

21 messages 2000/01/17
[#20242] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/17

永井@知能.九工大です.

[#20248] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/17

石橋秀仁です。

[#20254] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/18

永井@知能.九工大です.

[#20271] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/18

石橋秀仁です。

[#20249] FTP.open err for Windows95 — "Y Kataoka" <kataoka@...>

初めまして、片岡@KLUGと申します。

18 messages 2000/01/17
[#20252] Re: FTP.open err for Windows95 — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/01/18

なひです.

[#20342] How to build ruby(current) with cygwin — KORIYAMA Naohiro <kory@...2.so-net.ne.jp>

はじめまして、こおりやまです。

19 messages 2000/01/23
[#20362] Re: How to build ruby(current) with cygwin — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/01/24

わたなべです.

[#20422] Re: How to build ruby(current) with cygwin — Masaki Suketa<CQN02273@...> 2000/01/29

Win32OLE の作者の助田です.

[#20394] ruby-1.4.3 port to HPUX 11.00 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2000/01/26

[ruby-list:20352] Re: [PATCH] Ruby/Tk

From: Koji Arai <JCA02266@...>
Date: 2000-01-23 20:47:14 UTC
List: ruby-list #20352
新井です。

Ruby/Tkのパッチ(その3)です。

Ruby/Tk でのスクロールバーとの連係をもう少し簡単にするために、
Tk::Scrollable#[xy]scrollbarメソッドを作って見ました。

# Gtk のようなスクロールバー付きフレームが使いやすいのですが、
# まぁとりあえず。

使用例:

  require "tk"

  TkListbox.new {
    ('a'..'z').each {|v|
      insert 'end', (v..'z').to_a.join
    }

    xscrollbar TkScrollbar.new
    yscrollbar TkScrollbar.new
    xscrollbar.grid 'column'=>0, 'row'=>1, 'sticky'=>'ew'
    yscrollbar.grid 'column'=>1, 'row'=>0, 'sticky'=>'ns'
    grid 'column'=>0, 'row'=>0, 'sticky'=>'nsew'
    focus
  }

  TkGrid.columnconfigure Tk.root, 0, 'weight'=>100
  TkGrid.rowconfigure    Tk.root, 0, 'weight'=>100

  Tk.mainloop

ついでに、xview、yview をTk::Scrollableのメソッドにして、
TkEntryもこれを使うようにしました(yscrollがないのはTcl/Tkの
チェックに任せた)。

  require "tk"

  entry = TkEntry.new {
    text "test"
    pack
    xscrollbar TkScrollbar.new.pack('fill'=>'both')
  }

  Tk.mainloop

tktext.rb, tkcanvas.rb のxview,yviewもいらなくなるのですが手
を付けてません。(先にこのパッチを検証してもらってからと思い
まして)

以上、いかがでしょうか?

--- ext/tk/lib/tk.rb.old	Sat Jan 22 14:50:30 2000
+++ ext/tk/lib/tk.rb	Mon Jan 24 05:34:37 2000
@@ -583,6 +583,32 @@ module Tk
     def yscrollcommand(cmd=Proc.new)
       configure_cmd 'yscrollcommand', cmd
     end
+    def xview(*index)
+      v = tk_send('xview', *index)
+      list(v) if index.size == 0
+    end
+    def yview(*index)
+      v = tk_send('yview', *index)
+      list(v) if index.size == 0
+    end
+    def xscrollbar(bar=nil)
+      if bar
+	@xscrollbar = bar
+	@xscrollbar.orient 'horizontal'
+	self.xscrollcommand {|arg| @xscrollbar.set *arg}
+	@xscrollbar.command {|arg| self.xview *arg}
+      end
+      @xscrollbar
+    end
+    def yscrollbar(bar=nil)
+      if bar
+	@yscrollbar = bar
+	@yscrollbar.orient 'vertical'
+	self.yscrollcommand {|arg| @yscrollbar.set *arg}
+	@yscrollbar.command {|arg| self.yview *arg}
+      end
+      @yscrollbar
+    end
   end
 
   module Wm
@@ -2220,14 +2246,6 @@ class TkListbox<TkTextWin
   end
   def selection_set(first, last=None)
     tk_send 'selection', 'set', first, last
-  end
-  def xview(cmd, *more)
-    v = tk_send('xview', cmd, *more)
-    v.to_i if more.size == 0
-  end
-  def yview(cmd, *more)
-    v = tk_send('yview', cmd, *more)
-    v.to_i if more.size == 0
   end
 end
 
--- ext/tk/lib/tkentry.rb.old	Tue Jan 11 04:04:15 2000
+++ ext/tk/lib/tkentry.rb	Mon Jan 24 04:23:28 2000
@@ -6,6 +6,8 @@
 require 'tk.rb'
 
 class TkEntry<TkLabel
+  include Scrollable
+
   WidgetClassName = 'Entry'.freeze
   WidgetClassNames[WidgetClassName] = self
   def self.to_eval
@@ -15,9 +17,6 @@ class TkEntry<TkLabel
   def create_self
     tk_call 'entry', @path
   end
-  def xscrollcommand(cmd=Proc.new)
-    configure_cmd 'xscrollcommand', cmd
-  end
 
   def delete(s, e=None)
     tk_send 'delete', s, e
@@ -58,9 +57,6 @@ class TkEntry<TkLabel
   end
   def selection_to(index)
     tk_send 'selection', 'to', index
-  end
-  def xview(*index)
-    tk_send 'xview', *index
   end
 
   def value

In This Thread