Příklad 40.7. Příklad použití JTTui
#!/usr/bin/env ruby
# $Id: jttui_example1.rb,v 1.1 2002/06/05 15:48:59 radek Exp $
# Jakub Travnik's tui example
$:.unshift '/home/radek/lib/ruby'
require 'jttui/jttui'
require 'jttui/jttuistd'
JTTui.run do |root|
d1 = JTTDialog.new(root, 'Dialog Window', 0,0,60,16,
'Example 1 - simple dialog')
d1.align = JTTWindow::ALIGN_CENTER
wb1 = JTTWButton.new(d1, 'Test Button', 3,2,11,1, 'Button_1') { JTTui.beep }
wb2 = JTTWButton.new(d1, 'Test Button', 3,3,11,1, 'Button_2') {
JTTui.beep; sleep 1; JTTui.beep }
wb3 = JTTWButton.new(d1, 'Test Button', 3,4,11,1, 'Button_3') {
JTTui.beep; sleep 1; JTTui.beep; sleep 1; JTTui.beep }
wbquit = JTTWButton.new(d1, 'Test Button', 48,13,8,1, '_Quit') {
JTTui.addmessage nil, :close
}
el1 = JTTWEditline.new(d1, 'Test Editline1', 3,11,27,1,
'Hello this is edit-line', true)
el2 = JTTWEditline.new(d1, 'Test Editline1', 3,13,27,1,
'This one is read only', false)
la1 = JTTWLabel.new(d1, 'Test Label', 3,6,30,5,
'Test _Label with text wrapping can' +
' select the widget bellow. ' +
'This edit line widget uses emacs like keys.') {
d1.settab el1}
ch1 = JTTWCheckbox.new(d1, 'Test Checkbox', 20,2,13,1, '_Checkbox1')
ch2 = JTTWCheckbox.new(d1, 'Test Checkbox', 20,3,13,1, 'C_heckbox2') {
JTTui.beep }
ch2.states = 3
rg1 = JTTWRadiogroup.new(d1, 'Test Radiogroup', 35,5,8,2,
['O_ne', 'T_wo'], -1)
rg2 = JTTWRadiogroup.new(d1, 'Test Radiogroup', 46,5,13,4,
['_One', '_Two', 'Th_ree', '_Four'], 2)
wb4 = JTTWButton.new(d1, 'Test Button', 32,11,17,1, 'Test _Messagebox') {
m1 = JTTWMessagebox.new("Choose character for background\n" +
"note: shapes are terminal dependent", 0,3,
"_1: \1", "_2: \4", "_3: \7", "_4: \0",
"_5: \11", "_6: none")
m2 = JTTWMessagebox.new('', 0,0, '_I\'m happy', '_Try again')
begin
res = m1.execute
if res >= 0
char = "\1\4\7\0\11 "[res]
char = char | (res==5 ? JTTui.color_background : JTTui.color_basic)
JTTui.rootwindow.background = char
end
m1.defaultnr = res # remember previous choose
end until 0==m2.execute("You have pressed no. #{res}")
JTTWMessagebox.new('Thank you for trying message box widget behaviour. ' +
'Notice that long messages should be in bigger window.',
0,0, '_Ok').execute
}
d1.addtabstop wb1
d1.addtabstop wb2
d1.addtabstop wb3
d1.addtabstop ch1
d1.addtabstop ch2
d1.addtabstop rg1
d1.addtabstop rg2
d1.addtabstop el1
d1.addtabstop el2
d1.addtabstop wb4
d1.addtabstop wbquit
la1.down
d1.cancelbutton = wbquit
d1.defaultbutton = wb1
end
