[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

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

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7728] ruby + Tk で TreeWidget?

From: nkon@...2.3web.ne.jp
Date: 1998-04-26 08:11:27 UTC
List: ruby-list #7728
近藤と申します。質問ばかりですみません。

ruby + Tk で ツリー状の階層構造を一覧できる Widget ( MS-Windows では 
TreeView って言うんですか?)を必要としています。

すでに作られたものがありますか?
あるのならば、それを使いたいと思います。

自分でも、以下のようなものを作り始めたのですが、
できれば、他の人にも使ってもらえるようなものにしてゆきたいと思います。

o データの渡し方はこれで良いのか?
o tk_send を使って activate を自前で作ったが、TkListbox を変更した方が
  良いのではないか?
o TkListbox から継承するのが本当に良いのか?
o 操作方法や見かけはどういう風にしたほうが良いのか?

の疑問や、その他全体についてアドバイスを教えて下さい。

環境は、ruby 1.1b9、libtk4.2jp です。

--
近藤靖浩 <nkon@osk2.3web.ne.jp>
http://www2.osk.3web.ne.jp/~nkon/3web/

-- tree.rb
#!/usr/local/bin/ruby
# tree.rb
# Widget of Tree Control 

# $DEBUG=1

require "tk"

class TkTree < TkListbox
  def initialize(parent=nil, keys=nil)
	super
print "TkTree#initialize: #{path}\n" if $DEBUG
	bind("Double-1", proc{action})
	@tree = Array.new
	@list = Array.new
	bind("Key-Return", proc{action})
  end

  def action
print "TkTree#double_click: curselection=#{curselection}\n" if $DEBUG
	item = @list[curselection]
	if (item['child'])
	  open_or_close(item)
	end
  end

  def open_or_close(item)
	if (item['expand'])
	  item.delete('expand')
	else
	  item['expand'] = 1
	end
	draw
  end

  def draw
	anc_item = @list[curselection]
	delete(0,'end')
	ind = 0; n = 0
	@tree.each{|item| n = _draw_sub(n, ind, item) }
	activate(anc_item['n']) if anc_item
	selection_anchor(anc_item['n']) if anc_item
	see('anchor')
  end

  def activate(y)
	tk_send 'activate', y
  end

  def _draw_sub(n, ind, item)
	item['indent'] = ind; item['n'] = n
	@list[n] = item
	if (item['child'])
	  if (item['expand'])
		insert(n, "#{' '*ind}V #{item['name']}")
		n = n+1
		item['child'].each{|i|
		  n = _draw_sub(n, ind+1, i)
		}
	  else
		insert(n, "#{' '*ind}> #{item['name']}")
	  n = n+1
	  end
	else
	  insert(n, "#{' '*ind}- #{item['name']}")
	  n = n+1
	end
	return n
  end
  private :_draw_sub

  def tree; return @tree; end
  def tree=(tree); @tree=tree; end
end


# test program

tree = TkTree.new
tree.pack 'side'=>'left'

tree.tree=[
  {'name'=>'item1'},
  {'name'=>'item2'},
  {'name'=>'group3','child'=>[
	  {'name'=>'item31'},
	  {'name'=>'item32'},
	  {'name'=>'group33', 'child'=>[
		  {'name'=>'item331'}
		]}
	]},
  {'name'=>'group4','child'=>[
	  {'name'=>'item41'},
	  {'name'=>'item42'},
	  {'name'=>'group43', 'child'=>[
		  {'name'=>'item431'}
		]}
	]},
]
tree.draw

Tk.mainloop

In This Thread

Prev Next