1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/tk/sample/tkextlib/treectrl/outlook-folders.rb
ocean 138b4c427c * lib/treectrl/tktreectrl.rb: performance tuning. (call tk_send_without_enc
if possible)

* sample/tkextlib/treectrl/*.rb: some speed up... cache the result of
  version checking.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-07 14:55:55 +00:00

124 lines
4.3 KiB
Ruby

#
# Demo: Outlook Express folder list
#
def demoOutlookFolders(t)
init_pics('outlook-*')
height = t.font.metrics(:linespace) + 2
height = 18 if height < 18
t.configure(:itemheight=>height, :selectmode=>:browse, :showlines=>true,
:showroot=>true, :showrootbutton=>false, :showbuttons=>true)
if $HasColumnCreate
t.column_create(:text=>'Folders')
else
t.column_configure(0, :text=>'Folders')
end
t.element_create('e1', :image)
t.element_create('e2', :text, :lines=>1,
:fill=>[@SystemHighlightText, ['selected', 'focus']])
t.element_create('e3', :text, :lines=>1, :font=>t.font.dup.weight(:bold),
:fill=>[@SystemHighlightText, ['selected', 'focus']])
t.element_create('e4', :text, :fill=>'blue')
t.element_create('e5', :image, :image=>@images['outlook-folder'])
t.element_create('e6', :rect, :showfocus=>true,
:fill=>[
@SystemHighlight, ['selected', 'focus'],
'gray', ['selected', '!focus']
])
# image + text
s = t.style_create('s1')
t.style_elements(s, ['e6', 'e1', 'e2'])
t.style_layout(s, 'e1', :expand=>:ns)
t.style_layout(s, 'e2', :padx=>[4,0], :expand=>:ns, :squeeze=>:x)
t.style_layout(s, 'e6', :union=>['e2'], :iexpand=>:ns, :ipadx=>2)
# image + text + text
s = t.style_create('s2')
t.style_elements(s, ['e6', 'e1', 'e3', 'e4'])
t.style_layout(s, 'e1', :expand=>:ns)
t.style_layout(s, 'e3', :padx=>4, :expand=>:ns, :squeeze=>:x)
t.style_layout(s, 'e4', :expand=>:ns)
t.style_layout(s, 'e6', :union=>['e3'], :iexpand=>:ns, :ipadx=>2)
# folder + text
s = t.style_create('s3')
t.style_elements(s, ['e6', 'e5', 'e2'])
t.style_layout(s, 'e5', :expand=>:ns)
t.style_layout(s, 'e2', :padx=>[4,0], :expand=>:ns, :squeeze=>:x)
t.style_layout(s, 'e6', :union=>['e2'], :iexpand=>:ns, :ipadx=>2)
# folder + text + text
s = t.style_create('s4')
t.style_elements(s, ['e6', 'e5', 'e3', 'e4'])
t.style_layout(s, 'e5', :expand=>:ns)
t.style_layout(s, 'e3', :padx=>4, :expand=>:ns, :squeeze=>:x)
t.style_layout(s, 'e4', :expand=>:ns)
t.style_layout(s, 'e6', :union=>['e3'], :iexpand=>:ns, :ipadx=>2)
t.item_style_set(:root, 0, 's1')
t.item_complex(:root,
[
['e1', {:image=>@images['outlook-main']}],
['e2', {:text=>'Outlook Express'}]
])
parentList = [:root, '', '', '', '', '', '']
parent = :root
[
[0, :local, "Local Folders", true, 0],
[1, :inbox, 'Inbox', false, 5],
[1, :outbox, 'Outbox', false, 0],
[1, :sent, "Sent Items", false, 0],
[1, :deleted, "Deleted Items", false, 50],
[1, :draft, 'Drafts', false, 0],
[1, :folder, "Messages to Dad", false, 0],
[1, :folder, "Messages to Sis", false, 0],
[1, :folder, "Messages to Me", false, 0],
[2, :folder, "2001", false, 0],
[2, :folder, "2000", false, 0],
[2, :folder, "1999", false, 0],
[0, :server, "news.gmane.org", true, 0],
[1, :group, "gmane.comp.lang.lua.general", false, 498]
].each{|depth, img, text, button, unread|
if $Version_1_1_OrLater
item = t.item_create(:button=>button)
else
item = t.item_create
t.item_hasbutton(item, button)
end
if img == :folder
if unread != 0
t.item_style_set(item, 0, 's4')
t.item_complex(item,
[['e3', {:text=>text}], ['e4', {:text=>"(#{unread})"}]])
else
t.item_style_set(item, 0, 's3')
t.item_complex(item, [['e2', {:text=>text}]])
end
else
if unread != 0
t.item_style_set(item, 0, 's2')
t.item_complex(item,
[
['e1', {:image=>@images["outlook-#{img}"]}],
['e3', {:text=>text}],
['e4', {:text=>"(#{unread})"}]
])
else
t.item_style_set(item, 0, 's1')
t.item_complex(item,
[
['e1', {:image=>@images["outlook-#{img}"]}],
['e2', {:text=>text}]
])
end
end
t.item_lastchild(parentList[depth], item)
depth += 1
parentList[depth] = item
}
end