1#
2#  BWidget extension support
3#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4#
5
6require 'tk'
7
8# call setup script for general 'tkextlib' libraries
9require 'tkextlib/setup.rb'
10
11# call setup script
12require 'tkextlib/bwidget/setup.rb'
13
14# load all image format handlers
15#TkPackage.require('BWidget', '1.7')
16TkPackage.require('BWidget')
17
18module Tk
19  module BWidget
20    TkComm::TkExtlibAutoloadModule.unshift(self)
21    # Require autoload-symbols which is a same name as widget classname.
22    # Those are used at  TkComm._genobj_for_tkwidget method.
23
24    extend TkCore
25
26    LIBRARY = tk_call('set', '::BWIDGET::LIBRARY')
27
28    PACKAGE_NAME = 'BWidget'.freeze
29    def self.package_name
30      PACKAGE_NAME
31    end
32
33    def self.package_version
34      begin
35        TkPackage.require('BWidget')
36      rescue
37        ''
38      end
39    end
40
41    def self.XLFDfont(cmd, *args)
42      if args[-1].kind_of?(Hash)
43        keys = args.pop
44        args.concat(hash_kv(keys))
45      end
46      tk_call('BWidget::XLFDfont', cmd, *args)
47    end
48
49    def self.assert(exp, msg=None)
50      tk_call('BWidget::assert', exp, msg)
51    end
52
53    def self.badOptionString(type, value, list)
54      tk_call('BWidget::badOptionString', type, value, list)
55    end
56
57    def self.bindMouseWheel(widget)
58      tk_call('BWidget::bindMouseWheel', widget)
59    end
60
61    def self.classes(klass)
62      list(tk_call('BWidget::classes', klass))
63    end
64
65    def self.clonename(menu)
66      tk_call('BWidget::clonename', menu)
67    end
68
69    def self.focus(opt, path)
70      tk_call('BWidget::focus', opt, path)
71    end
72
73    def self.get3dcolor(path, bgcolor)
74      tk_call('BWidget::get3dcolor', path, bgcolor)
75    end
76
77    def self.getname(name)
78      tk_call('BWidget::getname', name)
79    end
80
81    def self.grab(opt, path)
82      tk_call('BWidget::grab', opt, path)
83    end
84
85    def self.inuse(klass)
86      bool(tk_call('BWidget::inuse', klass))
87    end
88
89    def self.library(klass, *klasses)
90      tk_call('BWidget::library', klass, *klasses)
91    end
92
93    def self.lreorder(list, neworder)
94      tk_call('BWidget::lreorder', list, neworder)
95    end
96
97    def self.parsetext(text)
98      tk_call('BWidget::parsetext', text)
99    end
100
101    def self.place(path, w, h, *args)
102      if args[-1].kind_of?(Hash)
103        keys = args.pop
104        args.concat(hash_kv(keys))
105      end
106      tk_call('BWidget::place', path, w, h, *(args.flatten))
107    end
108
109    def self.write(file, mode=None)
110      tk_call('BWidget::write', file, mode)
111    end
112
113    def self.wrongNumArgsString(str)
114      tk_call('BWidget::wrongNumArgsString', str)
115    end
116
117    ####################################################
118
119    autoload :ArrowButton,     'tkextlib/bwidget/arrowbutton'
120    autoload :Bitmap,          'tkextlib/bwidget/bitmap'
121    autoload :Button,          'tkextlib/bwidget/button'
122    autoload :ButtonBox,       'tkextlib/bwidget/buttonbox'
123    autoload :ComboBox,        'tkextlib/bwidget/combobox'
124    autoload :Dialog,          'tkextlib/bwidget/dialog'
125    autoload :DragSite,        'tkextlib/bwidget/dragsite'
126    autoload :DropSite,        'tkextlib/bwidget/dropsite'
127    autoload :DynamicHelp,     'tkextlib/bwidget/dynamichelp'
128    autoload :Entry,           'tkextlib/bwidget/entry'
129    autoload :Label,           'tkextlib/bwidget/label'
130    autoload :LabelEntry,      'tkextlib/bwidget/labelentry'
131    autoload :LabelFrame,      'tkextlib/bwidget/labelframe'
132    autoload :ListBox,         'tkextlib/bwidget/listbox'
133    autoload :MainFrame,       'tkextlib/bwidget/mainframe'
134    autoload :MessageDlg,      'tkextlib/bwidget/messagedlg'
135    autoload :NoteBook,        'tkextlib/bwidget/notebook'
136    autoload :PagesManager,    'tkextlib/bwidget/pagesmanager'
137    autoload :PanedWindow,     'tkextlib/bwidget/panedwindow'
138    autoload :PasswdDlg,       'tkextlib/bwidget/passwddlg'
139    autoload :ProgressBar,     'tkextlib/bwidget/progressbar'
140    autoload :ProgressDlg,     'tkextlib/bwidget/progressdlg'
141    autoload :ScrollableFrame, 'tkextlib/bwidget/scrollableframe'
142    autoload :ScrolledWindow,  'tkextlib/bwidget/scrolledwindow'
143    autoload :ScrollView,      'tkextlib/bwidget/scrollview'
144    autoload :SelectColor,     'tkextlib/bwidget/selectcolor'
145    autoload :SelectFont,      'tkextlib/bwidget/selectfont'
146    autoload :Separator,       'tkextlib/bwidget/separator'
147    autoload :SpinBox,         'tkextlib/bwidget/spinbox'
148    autoload :TitleFrame,      'tkextlib/bwidget/titleframe'
149    autoload :Tree,            'tkextlib/bwidget/tree'
150    autoload :Widget,          'tkextlib/bwidget/widget'
151
152  end
153end
154