1# 2# tkextlib/tcllib/statusbar.rb 3# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) 4# 5# * Part of tcllib extension 6# * statusbar widget 7# 8 9require 'tk' 10require 'tkextlib/tcllib.rb' 11 12# TkPackage.require('widget::statusbar', '1.2') 13TkPackage.require('widget::statusbar') 14 15module Tk::Tcllib 16 module Widget 17 class Statusbar < Tk::Tile::TFrame 18 PACKAGE_NAME = 'widget::statusbar'.freeze 19 def self.package_name 20 PACKAGE_NAME 21 end 22 23 def self.package_version 24 begin 25 TkPackage.require('widget::statusbar') 26 rescue 27 '' 28 end 29 end 30 end 31 end 32end 33 34class Tk::Tcllib::Widget::Statusbar 35 TkCommandNames = ['::widget::statusbar'.freeze].freeze 36 37 def __boolval_optkeys 38 super() << 'separator' << 'resize' << 'resizeseparator' 39 end 40 private :__boolval_optkeys 41 42 def create_self(keys) 43 if keys and keys != None 44 tk_call_without_enc(self.class::TkCommandNames[0], @path, 45 *hash_kv(keys, true)) 46 else 47 tk_call_without_enc(self.class::TkCommandNames[0], @path) 48 end 49 end 50 private :create_self 51 52 def getframe 53 window(tk_send_without_enc('getframe')) 54 end 55 alias get_frame getframe 56 57 def add(w, keys={}) 58 window(tk_send_without_enc('setwidget', *(hash_kv(keys)))) 59 end 60 61 def remove(*wins) 62 tk_send_without_enc('remove', *wins) 63 self 64 end 65 66 def remove_with_destroy(*wins) 67 tk_send_without_enc('remove', '-destroy', *wins) 68 self 69 end 70 71 def delete(*wins) 72 tk_send_without_enc('delete', *wins) 73 self 74 end 75 76 def items(pat=None) 77 tk_split_list(tk_send('items', pat)) 78 end 79end 80