tk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1060) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +6 -0
  4. data/BSDL +22 -0
  5. data/ChangeLog.tkextlib +949 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +56 -0
  8. data/MANUAL_tcltklib.eng +467 -0
  9. data/MANUAL_tcltklib.ja +578 -0
  10. data/README.1st +19 -0
  11. data/README.ActiveTcl +62 -0
  12. data/README.fork +34 -0
  13. data/README.macosx-aqua +67 -0
  14. data/README.md +33 -0
  15. data/README.tcltklib +152 -0
  16. data/Rakefile +16 -0
  17. data/bin/console +14 -0
  18. data/bin/setup +8 -0
  19. data/ext/tk/config_list.in +41 -0
  20. data/ext/tk/extconf.rb +2098 -0
  21. data/ext/tk/old-extconf.rb +441 -0
  22. data/ext/tk/stubs.c +592 -0
  23. data/ext/tk/stubs.h +33 -0
  24. data/ext/tk/tcltklib.c +11066 -0
  25. data/ext/tk/tkutil/extconf.rb +14 -0
  26. data/ext/tk/tkutil/tkutil.c +1900 -0
  27. data/lib/README +30 -0
  28. data/lib/multi-tk.rb +3743 -0
  29. data/lib/remote-tk.rb +527 -0
  30. data/lib/tcltk.rb +369 -0
  31. data/lib/tk.rb +5758 -0
  32. data/lib/tk/after.rb +7 -0
  33. data/lib/tk/autoload.rb +763 -0
  34. data/lib/tk/bgerror.rb +30 -0
  35. data/lib/tk/bindtag.rb +139 -0
  36. data/lib/tk/busy.rb +119 -0
  37. data/lib/tk/button.rb +32 -0
  38. data/lib/tk/canvas.rb +847 -0
  39. data/lib/tk/canvastag.rb +460 -0
  40. data/lib/tk/checkbutton.rb +33 -0
  41. data/lib/tk/clipboard.rb +76 -0
  42. data/lib/tk/clock.rb +72 -0
  43. data/lib/tk/composite.rb +485 -0
  44. data/lib/tk/console.rb +53 -0
  45. data/lib/tk/dialog.rb +327 -0
  46. data/lib/tk/encodedstr.rb +188 -0
  47. data/lib/tk/entry.rb +121 -0
  48. data/lib/tk/event.rb +563 -0
  49. data/lib/tk/font.rb +2352 -0
  50. data/lib/tk/fontchooser.rb +181 -0
  51. data/lib/tk/frame.rb +133 -0
  52. data/lib/tk/grid.rb +280 -0
  53. data/lib/tk/image.rb +396 -0
  54. data/lib/tk/itemconfig.rb +1222 -0
  55. data/lib/tk/itemfont.rb +328 -0
  56. data/lib/tk/kinput.rb +72 -0
  57. data/lib/tk/label.rb +23 -0
  58. data/lib/tk/labelframe.rb +32 -0
  59. data/lib/tk/listbox.rb +285 -0
  60. data/lib/tk/macpkg.rb +81 -0
  61. data/lib/tk/menu.rb +719 -0
  62. data/lib/tk/menubar.rb +138 -0
  63. data/lib/tk/menuspec.rb +457 -0
  64. data/lib/tk/message.rb +25 -0
  65. data/lib/tk/mngfocus.rb +34 -0
  66. data/lib/tk/msgcat.rb +300 -0
  67. data/lib/tk/namespace.rb +547 -0
  68. data/lib/tk/optiondb.rb +372 -0
  69. data/lib/tk/optionobj.rb +213 -0
  70. data/lib/tk/pack.rb +108 -0
  71. data/lib/tk/package.rb +144 -0
  72. data/lib/tk/palette.rb +56 -0
  73. data/lib/tk/panedwindow.rb +261 -0
  74. data/lib/tk/place.rb +129 -0
  75. data/lib/tk/radiobutton.rb +74 -0
  76. data/lib/tk/root.rb +96 -0
  77. data/lib/tk/scale.rb +113 -0
  78. data/lib/tk/scrollable.rb +83 -0
  79. data/lib/tk/scrollbar.rb +184 -0
  80. data/lib/tk/scrollbox.rb +40 -0
  81. data/lib/tk/selection.rb +87 -0
  82. data/lib/tk/spinbox.rb +145 -0
  83. data/lib/tk/tagfont.rb +44 -0
  84. data/lib/tk/text.rb +1605 -0
  85. data/lib/tk/textimage.rb +89 -0
  86. data/lib/tk/textmark.rb +205 -0
  87. data/lib/tk/texttag.rb +322 -0
  88. data/lib/tk/textwindow.rb +155 -0
  89. data/lib/tk/timer.rb +666 -0
  90. data/lib/tk/tk_mac.rb +159 -0
  91. data/lib/tk/toplevel.rb +265 -0
  92. data/lib/tk/ttk_selector.rb +99 -0
  93. data/lib/tk/txtwin_abst.rb +40 -0
  94. data/lib/tk/validation.rb +398 -0
  95. data/lib/tk/variable.rb +1797 -0
  96. data/lib/tk/virtevent.rb +140 -0
  97. data/lib/tk/winfo.rb +393 -0
  98. data/lib/tk/winpkg.rb +157 -0
  99. data/lib/tk/wm.rb +553 -0
  100. data/lib/tk/xim.rb +123 -0
  101. data/lib/tkafter.rb +5 -0
  102. data/lib/tkbgerror.rb +5 -0
  103. data/lib/tkcanvas.rb +5 -0
  104. data/lib/tkclass.rb +48 -0
  105. data/lib/tkconsole.rb +5 -0
  106. data/lib/tkdialog.rb +5 -0
  107. data/lib/tkentry.rb +5 -0
  108. data/lib/tkextlib/ICONS.rb +14 -0
  109. data/lib/tkextlib/ICONS/icons.rb +130 -0
  110. data/lib/tkextlib/ICONS/setup.rb +9 -0
  111. data/lib/tkextlib/SUPPORT_STATUS +193 -0
  112. data/lib/tkextlib/blt.rb +190 -0
  113. data/lib/tkextlib/blt/barchart.rb +80 -0
  114. data/lib/tkextlib/blt/bitmap.rb +113 -0
  115. data/lib/tkextlib/blt/busy.rb +84 -0
  116. data/lib/tkextlib/blt/component.rb +2219 -0
  117. data/lib/tkextlib/blt/container.rb +29 -0
  118. data/lib/tkextlib/blt/cutbuffer.rb +24 -0
  119. data/lib/tkextlib/blt/dragdrop.rb +270 -0
  120. data/lib/tkextlib/blt/eps.rb +33 -0
  121. data/lib/tkextlib/blt/graph.rb +68 -0
  122. data/lib/tkextlib/blt/htext.rb +113 -0
  123. data/lib/tkextlib/blt/setup.rb +9 -0
  124. data/lib/tkextlib/blt/spline.rb +24 -0
  125. data/lib/tkextlib/blt/stripchart.rb +75 -0
  126. data/lib/tkextlib/blt/table.rb +413 -0
  127. data/lib/tkextlib/blt/tabnotebook.rb +111 -0
  128. data/lib/tkextlib/blt/tabset.rb +505 -0
  129. data/lib/tkextlib/blt/ted.rb +69 -0
  130. data/lib/tkextlib/blt/tile.rb +26 -0
  131. data/lib/tkextlib/blt/tile/button.rb +17 -0
  132. data/lib/tkextlib/blt/tile/checkbutton.rb +18 -0
  133. data/lib/tkextlib/blt/tile/frame.rb +17 -0
  134. data/lib/tkextlib/blt/tile/label.rb +17 -0
  135. data/lib/tkextlib/blt/tile/radiobutton.rb +18 -0
  136. data/lib/tkextlib/blt/tile/scrollbar.rb +17 -0
  137. data/lib/tkextlib/blt/tile/toplevel.rb +17 -0
  138. data/lib/tkextlib/blt/tree.rb +1059 -0
  139. data/lib/tkextlib/blt/treeview.rb +1288 -0
  140. data/lib/tkextlib/blt/unix_dnd.rb +142 -0
  141. data/lib/tkextlib/blt/vector.rb +257 -0
  142. data/lib/tkextlib/blt/watch.rb +176 -0
  143. data/lib/tkextlib/blt/win_printer.rb +62 -0
  144. data/lib/tkextlib/blt/winop.rb +108 -0
  145. data/lib/tkextlib/bwidget.rb +154 -0
  146. data/lib/tkextlib/bwidget/arrowbutton.rb +22 -0
  147. data/lib/tkextlib/bwidget/bitmap.rb +22 -0
  148. data/lib/tkextlib/bwidget/button.rb +32 -0
  149. data/lib/tkextlib/bwidget/buttonbox.rb +91 -0
  150. data/lib/tkextlib/bwidget/combobox.rb +63 -0
  151. data/lib/tkextlib/bwidget/dialog.rb +195 -0
  152. data/lib/tkextlib/bwidget/dragsite.rb +32 -0
  153. data/lib/tkextlib/bwidget/dropsite.rb +40 -0
  154. data/lib/tkextlib/bwidget/dynamichelp.rb +64 -0
  155. data/lib/tkextlib/bwidget/entry.rb +44 -0
  156. data/lib/tkextlib/bwidget/label.rb +42 -0
  157. data/lib/tkextlib/bwidget/labelentry.rb +81 -0
  158. data/lib/tkextlib/bwidget/labelframe.rb +53 -0
  159. data/lib/tkextlib/bwidget/listbox.rb +362 -0
  160. data/lib/tkextlib/bwidget/mainframe.rb +133 -0
  161. data/lib/tkextlib/bwidget/messagedlg.rb +193 -0
  162. data/lib/tkextlib/bwidget/notebook.rb +167 -0
  163. data/lib/tkextlib/bwidget/pagesmanager.rb +74 -0
  164. data/lib/tkextlib/bwidget/panedwindow.rb +43 -0
  165. data/lib/tkextlib/bwidget/panelframe.rb +68 -0
  166. data/lib/tkextlib/bwidget/passwddlg.rb +45 -0
  167. data/lib/tkextlib/bwidget/progressbar.rb +21 -0
  168. data/lib/tkextlib/bwidget/progressdlg.rb +59 -0
  169. data/lib/tkextlib/bwidget/scrollableframe.rb +41 -0
  170. data/lib/tkextlib/bwidget/scrolledwindow.rb +49 -0
  171. data/lib/tkextlib/bwidget/scrollview.rb +26 -0
  172. data/lib/tkextlib/bwidget/selectcolor.rb +74 -0
  173. data/lib/tkextlib/bwidget/selectfont.rb +92 -0
  174. data/lib/tkextlib/bwidget/separator.rb +21 -0
  175. data/lib/tkextlib/bwidget/setup.rb +9 -0
  176. data/lib/tkextlib/bwidget/spinbox.rb +99 -0
  177. data/lib/tkextlib/bwidget/statusbar.rb +63 -0
  178. data/lib/tkextlib/bwidget/titleframe.rb +34 -0
  179. data/lib/tkextlib/bwidget/tree.rb +501 -0
  180. data/lib/tkextlib/bwidget/widget.rb +130 -0
  181. data/lib/tkextlib/itcl.rb +14 -0
  182. data/lib/tkextlib/itcl/incr_tcl.rb +179 -0
  183. data/lib/tkextlib/itcl/setup.rb +14 -0
  184. data/lib/tkextlib/itk.rb +14 -0
  185. data/lib/tkextlib/itk/incr_tk.rb +447 -0
  186. data/lib/tkextlib/itk/setup.rb +14 -0
  187. data/lib/tkextlib/iwidgets.rb +95 -0
  188. data/lib/tkextlib/iwidgets/buttonbox.rb +122 -0
  189. data/lib/tkextlib/iwidgets/calendar.rb +126 -0
  190. data/lib/tkextlib/iwidgets/canvasprintbox.rb +54 -0
  191. data/lib/tkextlib/iwidgets/canvasprintdialog.rb +39 -0
  192. data/lib/tkextlib/iwidgets/checkbox.rb +131 -0
  193. data/lib/tkextlib/iwidgets/combobox.rb +105 -0
  194. data/lib/tkextlib/iwidgets/dateentry.rb +21 -0
  195. data/lib/tkextlib/iwidgets/datefield.rb +59 -0
  196. data/lib/tkextlib/iwidgets/dialog.rb +21 -0
  197. data/lib/tkextlib/iwidgets/dialogshell.rb +122 -0
  198. data/lib/tkextlib/iwidgets/disjointlistbox.rb +51 -0
  199. data/lib/tkextlib/iwidgets/entryfield.rb +186 -0
  200. data/lib/tkextlib/iwidgets/extbutton.rb +41 -0
  201. data/lib/tkextlib/iwidgets/extfileselectionbox.rb +47 -0
  202. data/lib/tkextlib/iwidgets/extfileselectiondialog.rb +34 -0
  203. data/lib/tkextlib/iwidgets/feedback.rb +36 -0
  204. data/lib/tkextlib/iwidgets/fileselectionbox.rb +47 -0
  205. data/lib/tkextlib/iwidgets/fileselectiondialog.rb +34 -0
  206. data/lib/tkextlib/iwidgets/finddialog.rb +43 -0
  207. data/lib/tkextlib/iwidgets/hierarchy.rb +366 -0
  208. data/lib/tkextlib/iwidgets/hyperhelp.rb +51 -0
  209. data/lib/tkextlib/iwidgets/labeledframe.rb +40 -0
  210. data/lib/tkextlib/iwidgets/labeledwidget.rb +46 -0
  211. data/lib/tkextlib/iwidgets/mainwindow.rb +68 -0
  212. data/lib/tkextlib/iwidgets/menubar.rb +213 -0
  213. data/lib/tkextlib/iwidgets/messagebox.rb +94 -0
  214. data/lib/tkextlib/iwidgets/messagedialog.rb +21 -0
  215. data/lib/tkextlib/iwidgets/notebook.rb +176 -0
  216. data/lib/tkextlib/iwidgets/optionmenu.rb +93 -0
  217. data/lib/tkextlib/iwidgets/panedwindow.rb +135 -0
  218. data/lib/tkextlib/iwidgets/promptdialog.rb +132 -0
  219. data/lib/tkextlib/iwidgets/pushbutton.rb +36 -0
  220. data/lib/tkextlib/iwidgets/radiobox.rb +122 -0
  221. data/lib/tkextlib/iwidgets/scopedobject.rb +25 -0
  222. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +354 -0
  223. data/lib/tkextlib/iwidgets/scrolledframe.rb +60 -0
  224. data/lib/tkextlib/iwidgets/scrolledhtml.rb +59 -0
  225. data/lib/tkextlib/iwidgets/scrolledlistbox.rb +208 -0
  226. data/lib/tkextlib/iwidgets/scrolledtext.rb +569 -0
  227. data/lib/tkextlib/iwidgets/scrolledwidget.rb +21 -0
  228. data/lib/tkextlib/iwidgets/selectionbox.rb +103 -0
  229. data/lib/tkextlib/iwidgets/selectiondialog.rb +93 -0
  230. data/lib/tkextlib/iwidgets/setup.rb +9 -0
  231. data/lib/tkextlib/iwidgets/shell.rb +39 -0
  232. data/lib/tkextlib/iwidgets/spindate.rb +49 -0
  233. data/lib/tkextlib/iwidgets/spinint.rb +31 -0
  234. data/lib/tkextlib/iwidgets/spinner.rb +170 -0
  235. data/lib/tkextlib/iwidgets/spintime.rb +49 -0
  236. data/lib/tkextlib/iwidgets/tabnotebook.rb +182 -0
  237. data/lib/tkextlib/iwidgets/tabset.rb +146 -0
  238. data/lib/tkextlib/iwidgets/timeentry.rb +26 -0
  239. data/lib/tkextlib/iwidgets/timefield.rb +59 -0
  240. data/lib/tkextlib/iwidgets/toolbar.rb +113 -0
  241. data/lib/tkextlib/iwidgets/watch.rb +57 -0
  242. data/lib/tkextlib/pkg_checker.rb +185 -0
  243. data/lib/tkextlib/setup.rb +9 -0
  244. data/lib/tkextlib/tcllib.rb +106 -0
  245. data/lib/tkextlib/tcllib/README +135 -0
  246. data/lib/tkextlib/tcllib/autoscroll.rb +159 -0
  247. data/lib/tkextlib/tcllib/calendar.rb +56 -0
  248. data/lib/tkextlib/tcllib/canvas_sqmap.rb +37 -0
  249. data/lib/tkextlib/tcllib/canvas_zoom.rb +22 -0
  250. data/lib/tkextlib/tcllib/chatwidget.rb +152 -0
  251. data/lib/tkextlib/tcllib/crosshair.rb +118 -0
  252. data/lib/tkextlib/tcllib/ctext.rb +161 -0
  253. data/lib/tkextlib/tcllib/cursor.rb +98 -0
  254. data/lib/tkextlib/tcllib/dateentry.rb +63 -0
  255. data/lib/tkextlib/tcllib/datefield.rb +58 -0
  256. data/lib/tkextlib/tcllib/diagrams.rb +225 -0
  257. data/lib/tkextlib/tcllib/dialog.rb +85 -0
  258. data/lib/tkextlib/tcllib/getstring.rb +135 -0
  259. data/lib/tkextlib/tcllib/history.rb +74 -0
  260. data/lib/tkextlib/tcllib/ico.rb +147 -0
  261. data/lib/tkextlib/tcllib/ip_entry.rb +76 -0
  262. data/lib/tkextlib/tcllib/khim.rb +69 -0
  263. data/lib/tkextlib/tcllib/menuentry.rb +48 -0
  264. data/lib/tkextlib/tcllib/ntext.rb +147 -0
  265. data/lib/tkextlib/tcllib/panelframe.rb +79 -0
  266. data/lib/tkextlib/tcllib/plotchart.rb +1405 -0
  267. data/lib/tkextlib/tcllib/ruler.rb +66 -0
  268. data/lib/tkextlib/tcllib/screenruler.rb +69 -0
  269. data/lib/tkextlib/tcllib/scrolledwindow.rb +58 -0
  270. data/lib/tkextlib/tcllib/scrollwin.rb +62 -0
  271. data/lib/tkextlib/tcllib/setup.rb +9 -0
  272. data/lib/tkextlib/tcllib/statusbar.rb +80 -0
  273. data/lib/tkextlib/tcllib/style.rb +62 -0
  274. data/lib/tkextlib/tcllib/superframe.rb +52 -0
  275. data/lib/tkextlib/tcllib/swaplist.rb +151 -0
  276. data/lib/tkextlib/tcllib/tablelist.rb +29 -0
  277. data/lib/tkextlib/tcllib/tablelist_core.rb +1073 -0
  278. data/lib/tkextlib/tcllib/tablelist_tile.rb +44 -0
  279. data/lib/tkextlib/tcllib/tkpiechart.rb +315 -0
  280. data/lib/tkextlib/tcllib/toolbar.rb +176 -0
  281. data/lib/tkextlib/tcllib/tooltip.rb +105 -0
  282. data/lib/tkextlib/tcllib/validator.rb +66 -0
  283. data/lib/tkextlib/tcllib/widget.rb +83 -0
  284. data/lib/tkextlib/tclx.rb +14 -0
  285. data/lib/tkextlib/tclx/setup.rb +9 -0
  286. data/lib/tkextlib/tclx/tclx.rb +75 -0
  287. data/lib/tkextlib/tile.rb +450 -0
  288. data/lib/tkextlib/tile/dialog.rb +103 -0
  289. data/lib/tkextlib/tile/setup.rb +9 -0
  290. data/lib/tkextlib/tile/sizegrip.rb +33 -0
  291. data/lib/tkextlib/tile/style.rb +337 -0
  292. data/lib/tkextlib/tile/tbutton.rb +35 -0
  293. data/lib/tkextlib/tile/tcheckbutton.rb +39 -0
  294. data/lib/tkextlib/tile/tcombobox.rb +56 -0
  295. data/lib/tkextlib/tile/tentry.rb +50 -0
  296. data/lib/tkextlib/tile/tframe.rb +35 -0
  297. data/lib/tkextlib/tile/tlabel.rb +35 -0
  298. data/lib/tkextlib/tile/tlabelframe.rb +39 -0
  299. data/lib/tkextlib/tile/tmenubutton.rb +39 -0
  300. data/lib/tkextlib/tile/tnotebook.rb +148 -0
  301. data/lib/tkextlib/tile/tpaned.rb +246 -0
  302. data/lib/tkextlib/tile/tprogressbar.rb +58 -0
  303. data/lib/tkextlib/tile/tradiobutton.rb +39 -0
  304. data/lib/tkextlib/tile/treeview.rb +1337 -0
  305. data/lib/tkextlib/tile/tscale.rb +57 -0
  306. data/lib/tkextlib/tile/tscrollbar.rb +64 -0
  307. data/lib/tkextlib/tile/tseparator.rb +35 -0
  308. data/lib/tkextlib/tile/tspinbox.rb +108 -0
  309. data/lib/tkextlib/tile/tsquare.rb +31 -0
  310. data/lib/tkextlib/tkDND.rb +19 -0
  311. data/lib/tkextlib/tkDND/setup.rb +9 -0
  312. data/lib/tkextlib/tkDND/shape.rb +126 -0
  313. data/lib/tkextlib/tkDND/tkdnd.rb +183 -0
  314. data/lib/tkextlib/tkHTML.rb +14 -0
  315. data/lib/tkextlib/tkHTML/htmlwidget.rb +454 -0
  316. data/lib/tkextlib/tkHTML/setup.rb +9 -0
  317. data/lib/tkextlib/tkimg.rb +37 -0
  318. data/lib/tkextlib/tkimg/README +26 -0
  319. data/lib/tkextlib/tkimg/bmp.rb +34 -0
  320. data/lib/tkextlib/tkimg/dted.rb +34 -0
  321. data/lib/tkextlib/tkimg/gif.rb +34 -0
  322. data/lib/tkextlib/tkimg/ico.rb +34 -0
  323. data/lib/tkextlib/tkimg/jpeg.rb +34 -0
  324. data/lib/tkextlib/tkimg/pcx.rb +34 -0
  325. data/lib/tkextlib/tkimg/pixmap.rb +45 -0
  326. data/lib/tkextlib/tkimg/png.rb +34 -0
  327. data/lib/tkextlib/tkimg/ppm.rb +34 -0
  328. data/lib/tkextlib/tkimg/ps.rb +34 -0
  329. data/lib/tkextlib/tkimg/raw.rb +34 -0
  330. data/lib/tkextlib/tkimg/setup.rb +9 -0
  331. data/lib/tkextlib/tkimg/sgi.rb +34 -0
  332. data/lib/tkextlib/tkimg/sun.rb +34 -0
  333. data/lib/tkextlib/tkimg/tga.rb +34 -0
  334. data/lib/tkextlib/tkimg/tiff.rb +34 -0
  335. data/lib/tkextlib/tkimg/window.rb +34 -0
  336. data/lib/tkextlib/tkimg/xbm.rb +34 -0
  337. data/lib/tkextlib/tkimg/xpm.rb +34 -0
  338. data/lib/tkextlib/tktable.rb +15 -0
  339. data/lib/tkextlib/tktable/setup.rb +9 -0
  340. data/lib/tkextlib/tktable/tktable.rb +967 -0
  341. data/lib/tkextlib/tktrans.rb +15 -0
  342. data/lib/tkextlib/tktrans/setup.rb +9 -0
  343. data/lib/tkextlib/tktrans/tktrans.rb +65 -0
  344. data/lib/tkextlib/treectrl.rb +14 -0
  345. data/lib/tkextlib/treectrl/setup.rb +9 -0
  346. data/lib/tkextlib/treectrl/tktreectrl.rb +2523 -0
  347. data/lib/tkextlib/trofs.rb +14 -0
  348. data/lib/tkextlib/trofs/setup.rb +9 -0
  349. data/lib/tkextlib/trofs/trofs.rb +52 -0
  350. data/lib/tkextlib/version.rb +7 -0
  351. data/lib/tkextlib/vu.rb +49 -0
  352. data/lib/tkextlib/vu/bargraph.rb +62 -0
  353. data/lib/tkextlib/vu/charts.rb +54 -0
  354. data/lib/tkextlib/vu/dial.rb +103 -0
  355. data/lib/tkextlib/vu/pie.rb +287 -0
  356. data/lib/tkextlib/vu/setup.rb +9 -0
  357. data/lib/tkextlib/vu/spinbox.rb +23 -0
  358. data/lib/tkextlib/winico.rb +15 -0
  359. data/lib/tkextlib/winico/setup.rb +9 -0
  360. data/lib/tkextlib/winico/winico.rb +225 -0
  361. data/lib/tkfont.rb +5 -0
  362. data/lib/tkmacpkg.rb +5 -0
  363. data/lib/tkmenubar.rb +5 -0
  364. data/lib/tkmngfocus.rb +5 -0
  365. data/lib/tkpalette.rb +5 -0
  366. data/lib/tkscrollbox.rb +5 -0
  367. data/lib/tktext.rb +5 -0
  368. data/lib/tkvirtevent.rb +5 -0
  369. data/lib/tkwinpkg.rb +5 -0
  370. data/old-README.tcltklib.ja +159 -0
  371. data/sample/24hr_clock.rb +287 -0
  372. data/sample/binding_sample.rb +88 -0
  373. data/sample/bindtag_sample.rb +128 -0
  374. data/sample/binstr_usage.rb +46 -0
  375. data/sample/btn_with_frame.rb +21 -0
  376. data/sample/cd_timer.rb +82 -0
  377. data/sample/cmd_res_test.rb +18 -0
  378. data/sample/cmd_resource +5 -0
  379. data/sample/demos-en/ChangeLog +64 -0
  380. data/sample/demos-en/ChangeLog.prev +9 -0
  381. data/sample/demos-en/README +138 -0
  382. data/sample/demos-en/README.1st +18 -0
  383. data/sample/demos-en/README.tkencoding +29 -0
  384. data/sample/demos-en/anilabel.rb +175 -0
  385. data/sample/demos-en/aniwave.rb +119 -0
  386. data/sample/demos-en/arrow.rb +250 -0
  387. data/sample/demos-en/bind.rb +128 -0
  388. data/sample/demos-en/bitmap.rb +76 -0
  389. data/sample/demos-en/browse1 +63 -0
  390. data/sample/demos-en/browse2 +82 -0
  391. data/sample/demos-en/button.rb +85 -0
  392. data/sample/demos-en/check.rb +73 -0
  393. data/sample/demos-en/check2.rb +110 -0
  394. data/sample/demos-en/clrpick.rb +88 -0
  395. data/sample/demos-en/colors.rb +159 -0
  396. data/sample/demos-en/combo.rb +97 -0
  397. data/sample/demos-en/cscroll.rb +137 -0
  398. data/sample/demos-en/ctext.rb +208 -0
  399. data/sample/demos-en/dialog1.rb +39 -0
  400. data/sample/demos-en/dialog2.rb +42 -0
  401. data/sample/demos-en/doc.org/README +7 -0
  402. data/sample/demos-en/doc.org/README.JP +14 -0
  403. data/sample/demos-en/doc.org/README.tk80 +46 -0
  404. data/sample/demos-en/doc.org/license.terms +39 -0
  405. data/sample/demos-en/doc.org/license.terms.tk80 +39 -0
  406. data/sample/demos-en/entry1.rb +59 -0
  407. data/sample/demos-en/entry2.rb +94 -0
  408. data/sample/demos-en/entry3.rb +221 -0
  409. data/sample/demos-en/filebox.rb +103 -0
  410. data/sample/demos-en/floor.rb +1724 -0
  411. data/sample/demos-en/floor2.rb +1723 -0
  412. data/sample/demos-en/form.rb +65 -0
  413. data/sample/demos-en/goldberg.rb +2007 -0
  414. data/sample/demos-en/hello +14 -0
  415. data/sample/demos-en/hscale.rb +76 -0
  416. data/sample/demos-en/icon.rb +106 -0
  417. data/sample/demos-en/image1.rb +66 -0
  418. data/sample/demos-en/image2.rb +108 -0
  419. data/sample/demos-en/image3.rb +126 -0
  420. data/sample/demos-en/items.rb +382 -0
  421. data/sample/demos-en/ixset +333 -0
  422. data/sample/demos-en/ixset2 +367 -0
  423. data/sample/demos-en/knightstour.rb +272 -0
  424. data/sample/demos-en/label.rb +73 -0
  425. data/sample/demos-en/labelframe.rb +96 -0
  426. data/sample/demos-en/mclist.rb +118 -0
  427. data/sample/demos-en/menu.rb +197 -0
  428. data/sample/demos-en/menu84.rb +216 -0
  429. data/sample/demos-en/menubu.rb +238 -0
  430. data/sample/demos-en/msgbox.rb +91 -0
  431. data/sample/demos-en/msgbox2.rb +92 -0
  432. data/sample/demos-en/paned1.rb +48 -0
  433. data/sample/demos-en/paned2.rb +95 -0
  434. data/sample/demos-en/pendulum.rb +241 -0
  435. data/sample/demos-en/plot.rb +125 -0
  436. data/sample/demos-en/puzzle.rb +135 -0
  437. data/sample/demos-en/radio.rb +87 -0
  438. data/sample/demos-en/radio2.rb +110 -0
  439. data/sample/demos-en/radio3.rb +118 -0
  440. data/sample/demos-en/rmt +268 -0
  441. data/sample/demos-en/rolodex +320 -0
  442. data/sample/demos-en/ruler.rb +206 -0
  443. data/sample/demos-en/sayings.rb +107 -0
  444. data/sample/demos-en/search.rb +188 -0
  445. data/sample/demos-en/spin.rb +66 -0
  446. data/sample/demos-en/square +81 -0
  447. data/sample/demos-en/states.rb +81 -0
  448. data/sample/demos-en/style.rb +232 -0
  449. data/sample/demos-en/tcolor +526 -0
  450. data/sample/demos-en/text.rb +129 -0
  451. data/sample/demos-en/textpeer.rb +77 -0
  452. data/sample/demos-en/timer +136 -0
  453. data/sample/demos-en/tkencoding.rb +43 -0
  454. data/sample/demos-en/toolbar.rb +131 -0
  455. data/sample/demos-en/tree.rb +120 -0
  456. data/sample/demos-en/ttkbut.rb +140 -0
  457. data/sample/demos-en/ttkmenu.rb +86 -0
  458. data/sample/demos-en/ttknote.rb +90 -0
  459. data/sample/demos-en/ttkpane.rb +214 -0
  460. data/sample/demos-en/ttkprogress.rb +67 -0
  461. data/sample/demos-en/twind.rb +292 -0
  462. data/sample/demos-en/twind2.rb +385 -0
  463. data/sample/demos-en/unicodeout.rb +115 -0
  464. data/sample/demos-en/vscale.rb +80 -0
  465. data/sample/demos-en/widget +1087 -0
  466. data/sample/demos-jp/README +54 -0
  467. data/sample/demos-jp/README.1st +20 -0
  468. data/sample/demos-jp/anilabel.rb +178 -0
  469. data/sample/demos-jp/aniwave.rb +121 -0
  470. data/sample/demos-jp/arrow.rb +248 -0
  471. data/sample/demos-jp/bind.rb +126 -0
  472. data/sample/demos-jp/bitmap.rb +75 -0
  473. data/sample/demos-jp/browse1 +63 -0
  474. data/sample/demos-jp/browse2 +82 -0
  475. data/sample/demos-jp/button.rb +84 -0
  476. data/sample/demos-jp/check.rb +71 -0
  477. data/sample/demos-jp/check2.rb +111 -0
  478. data/sample/demos-jp/clrpick.rb +85 -0
  479. data/sample/demos-jp/colors.rb +156 -0
  480. data/sample/demos-jp/combo.rb +99 -0
  481. data/sample/demos-jp/cscroll.rb +135 -0
  482. data/sample/demos-jp/ctext.rb +205 -0
  483. data/sample/demos-jp/dialog1.rb +40 -0
  484. data/sample/demos-jp/dialog2.rb +44 -0
  485. data/sample/demos-jp/doc.org/README +7 -0
  486. data/sample/demos-jp/doc.org/README.JP +14 -0
  487. data/sample/demos-jp/doc.org/README.tk80 +46 -0
  488. data/sample/demos-jp/doc.org/license.terms +39 -0
  489. data/sample/demos-jp/doc.org/license.terms.tk80 +39 -0
  490. data/sample/demos-jp/entry1.rb +61 -0
  491. data/sample/demos-jp/entry2.rb +92 -0
  492. data/sample/demos-jp/entry3.rb +226 -0
  493. data/sample/demos-jp/filebox.rb +103 -0
  494. data/sample/demos-jp/floor.rb +1722 -0
  495. data/sample/demos-jp/floor2.rb +1720 -0
  496. data/sample/demos-jp/form.rb +67 -0
  497. data/sample/demos-jp/goldberg.rb +2012 -0
  498. data/sample/demos-jp/hello +10 -0
  499. data/sample/demos-jp/hscale.rb +79 -0
  500. data/sample/demos-jp/icon.rb +104 -0
  501. data/sample/demos-jp/image1.rb +65 -0
  502. data/sample/demos-jp/image2.rb +107 -0
  503. data/sample/demos-jp/image3.rb +128 -0
  504. data/sample/demos-jp/items.rb +380 -0
  505. data/sample/demos-jp/ixset +333 -0
  506. data/sample/demos-jp/ixset2 +369 -0
  507. data/sample/demos-jp/knightstour.rb +274 -0
  508. data/sample/demos-jp/label.rb +70 -0
  509. data/sample/demos-jp/labelframe.rb +103 -0
  510. data/sample/demos-jp/mclist.rb +122 -0
  511. data/sample/demos-jp/menu.rb +202 -0
  512. data/sample/demos-jp/menu84.rb +214 -0
  513. data/sample/demos-jp/menu8x.rb +234 -0
  514. data/sample/demos-jp/menubu.rb +239 -0
  515. data/sample/demos-jp/msgbox.rb +90 -0
  516. data/sample/demos-jp/msgbox2.rb +91 -0
  517. data/sample/demos-jp/paned1.rb +53 -0
  518. data/sample/demos-jp/paned2.rb +101 -0
  519. data/sample/demos-jp/pendulum.rb +243 -0
  520. data/sample/demos-jp/plot.rb +127 -0
  521. data/sample/demos-jp/puzzle.rb +132 -0
  522. data/sample/demos-jp/radio.rb +85 -0
  523. data/sample/demos-jp/radio2.rb +113 -0
  524. data/sample/demos-jp/radio3.rb +120 -0
  525. data/sample/demos-jp/rmt +268 -0
  526. data/sample/demos-jp/rolodex +320 -0
  527. data/sample/demos-jp/rolodex-j +300 -0
  528. data/sample/demos-jp/ruler.rb +204 -0
  529. data/sample/demos-jp/sayings.rb +104 -0
  530. data/sample/demos-jp/search.rb +185 -0
  531. data/sample/demos-jp/spin.rb +72 -0
  532. data/sample/demos-jp/square +81 -0
  533. data/sample/demos-jp/states.rb +75 -0
  534. data/sample/demos-jp/style.rb +271 -0
  535. data/sample/demos-jp/tcolor +534 -0
  536. data/sample/demos-jp/text.rb +121 -0
  537. data/sample/demos-jp/textpeer.rb +83 -0
  538. data/sample/demos-jp/timer +136 -0
  539. data/sample/demos-jp/toolbar.rb +137 -0
  540. data/sample/demos-jp/tree.rb +121 -0
  541. data/sample/demos-jp/ttkbut.rb +146 -0
  542. data/sample/demos-jp/ttkmenu.rb +92 -0
  543. data/sample/demos-jp/ttknote.rb +98 -0
  544. data/sample/demos-jp/ttkpane.rb +217 -0
  545. data/sample/demos-jp/ttkprogress.rb +72 -0
  546. data/sample/demos-jp/twind.rb +293 -0
  547. data/sample/demos-jp/twind2.rb +385 -0
  548. data/sample/demos-jp/unicodeout.rb +120 -0
  549. data/sample/demos-jp/vscale.rb +81 -0
  550. data/sample/demos-jp/widget +1122 -0
  551. data/sample/editable_listbox.rb +149 -0
  552. data/sample/encstr_usage.rb +31 -0
  553. data/sample/figmemo_sample.rb +457 -0
  554. data/sample/images/earth.gif +0 -0
  555. data/sample/images/earthris.gif +0 -0
  556. data/sample/images/face.xbm +173 -0
  557. data/sample/images/flagdown.xbm +27 -0
  558. data/sample/images/flagup.xbm +27 -0
  559. data/sample/images/gray25.xbm +6 -0
  560. data/sample/images/grey.25 +6 -0
  561. data/sample/images/grey.5 +6 -0
  562. data/sample/images/letters.xbm +27 -0
  563. data/sample/images/noletter.xbm +27 -0
  564. data/sample/images/pattern.xbm +6 -0
  565. data/sample/images/tcllogo.gif +0 -0
  566. data/sample/images/teapot.ppm +31 -0
  567. data/sample/irbtk.rb +31 -0
  568. data/sample/irbtkw.rbw +156 -0
  569. data/sample/iso2022-kr.txt +2 -0
  570. data/sample/menubar1.rb +52 -0
  571. data/sample/menubar2.rb +57 -0
  572. data/sample/menubar3.rb +73 -0
  573. data/sample/msgs_rb/README +3 -0
  574. data/sample/msgs_rb/cs.msg +84 -0
  575. data/sample/msgs_rb/de.msg +88 -0
  576. data/sample/msgs_rb/el.msg +98 -0
  577. data/sample/msgs_rb/en.msg +83 -0
  578. data/sample/msgs_rb/en_gb.msg +7 -0
  579. data/sample/msgs_rb/eo.msg +87 -0
  580. data/sample/msgs_rb/es.msg +84 -0
  581. data/sample/msgs_rb/fr.msg +84 -0
  582. data/sample/msgs_rb/it.msg +84 -0
  583. data/sample/msgs_rb/ja.msg +13 -0
  584. data/sample/msgs_rb/nl.msg +123 -0
  585. data/sample/msgs_rb/pl.msg +87 -0
  586. data/sample/msgs_rb/ru.msg +87 -0
  587. data/sample/msgs_rb2/README +5 -0
  588. data/sample/msgs_rb2/de.msg +88 -0
  589. data/sample/msgs_rb2/ja.msg +85 -0
  590. data/sample/msgs_tk/README +4 -0
  591. data/sample/msgs_tk/cs.msg +84 -0
  592. data/sample/msgs_tk/de.msg +88 -0
  593. data/sample/msgs_tk/el.msg +103 -0
  594. data/sample/msgs_tk/en.msg +83 -0
  595. data/sample/msgs_tk/en_gb.msg +7 -0
  596. data/sample/msgs_tk/eo.msg +87 -0
  597. data/sample/msgs_tk/es.msg +84 -0
  598. data/sample/msgs_tk/fr.msg +84 -0
  599. data/sample/msgs_tk/it.msg +84 -0
  600. data/sample/msgs_tk/ja.msg +13 -0
  601. data/sample/msgs_tk/license.terms +39 -0
  602. data/sample/msgs_tk/nl.msg +123 -0
  603. data/sample/msgs_tk/pl.msg +87 -0
  604. data/sample/msgs_tk/ru.msg +87 -0
  605. data/sample/multi-ip_sample.rb +104 -0
  606. data/sample/multi-ip_sample2.rb +30 -0
  607. data/sample/optobj_sample.rb +68 -0
  608. data/sample/propagate.rb +31 -0
  609. data/sample/remote-ip_sample.rb +34 -0
  610. data/sample/remote-ip_sample2.rb +57 -0
  611. data/sample/resource.en +13 -0
  612. data/sample/resource.ja +13 -0
  613. data/sample/safe-tk.rb +132 -0
  614. data/sample/scrollframe.rb +250 -0
  615. data/sample/tcltklib/batsu.gif +0 -0
  616. data/sample/tcltklib/lines0.tcl +42 -0
  617. data/sample/tcltklib/lines1.rb +51 -0
  618. data/sample/tcltklib/lines2.rb +55 -0
  619. data/sample/tcltklib/lines3.rb +55 -0
  620. data/sample/tcltklib/lines4.rb +55 -0
  621. data/sample/tcltklib/maru.gif +0 -0
  622. data/sample/tcltklib/safeTk.rb +23 -0
  623. data/sample/tcltklib/sample0.rb +40 -0
  624. data/sample/tcltklib/sample1.rb +635 -0
  625. data/sample/tcltklib/sample2.rb +452 -0
  626. data/sample/tkalignbox.rb +236 -0
  627. data/sample/tkballoonhelp.rb +221 -0
  628. data/sample/tkbiff.rb +156 -0
  629. data/sample/tkbrowse.rb +80 -0
  630. data/sample/tkcombobox.rb +498 -0
  631. data/sample/tkdialog.rb +62 -0
  632. data/sample/tkextlib/ICONS/Orig_LICENSE.txt +61 -0
  633. data/sample/tkextlib/ICONS/tkIcons +195 -0
  634. data/sample/tkextlib/ICONS/tkIcons-sample.kde +658 -0
  635. data/sample/tkextlib/ICONS/tkIcons.kde +195 -0
  636. data/sample/tkextlib/ICONS/viewIcons.rb +330 -0
  637. data/sample/tkextlib/blt/barchart5.rb +102 -0
  638. data/sample/tkextlib/blt/calendar.rb +118 -0
  639. data/sample/tkextlib/blt/graph6.rb +2223 -0
  640. data/sample/tkextlib/blt/graph7.rb +41 -0
  641. data/sample/tkextlib/blt/graph7a.rb +64 -0
  642. data/sample/tkextlib/blt/graph7b.rb +42 -0
  643. data/sample/tkextlib/blt/graph7c.rb +46 -0
  644. data/sample/tkextlib/blt/images/buckskin.gif +0 -0
  645. data/sample/tkextlib/blt/images/chalk.gif +0 -0
  646. data/sample/tkextlib/blt/images/qv100.t.gif +0 -0
  647. data/sample/tkextlib/blt/images/rain.gif +0 -0
  648. data/sample/tkextlib/blt/images/sample.gif +0 -0
  649. data/sample/tkextlib/blt/pareto.rb +91 -0
  650. data/sample/tkextlib/blt/plot1.rb +10 -0
  651. data/sample/tkextlib/blt/plot1b.rb +11 -0
  652. data/sample/tkextlib/blt/readme.txt +2 -0
  653. data/sample/tkextlib/blt/scripts/stipples.rb +157 -0
  654. data/sample/tkextlib/blt/winop1.rb +41 -0
  655. data/sample/tkextlib/blt/winop2.rb +29 -0
  656. data/sample/tkextlib/bwidget/Orig_LICENSE.txt +53 -0
  657. data/sample/tkextlib/bwidget/basic.rb +199 -0
  658. data/sample/tkextlib/bwidget/bwidget.xbm +46 -0
  659. data/sample/tkextlib/bwidget/demo.rb +244 -0
  660. data/sample/tkextlib/bwidget/dnd.rb +47 -0
  661. data/sample/tkextlib/bwidget/manager.rb +151 -0
  662. data/sample/tkextlib/bwidget/select.rb +83 -0
  663. data/sample/tkextlib/bwidget/tmpldlg.rb +222 -0
  664. data/sample/tkextlib/bwidget/tree.rb +290 -0
  665. data/sample/tkextlib/bwidget/x1.xbm +2258 -0
  666. data/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt +42 -0
  667. data/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm +14 -0
  668. data/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif +0 -0
  669. data/sample/tkextlib/iwidgets/catalog_demo/images/close.gif +0 -0
  670. data/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif +0 -0
  671. data/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif +0 -0
  672. data/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif +0 -0
  673. data/sample/tkextlib/iwidgets/catalog_demo/images/find.gif +0 -0
  674. data/sample/tkextlib/iwidgets/catalog_demo/images/help.gif +0 -0
  675. data/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm +14 -0
  676. data/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif +0 -0
  677. data/sample/tkextlib/iwidgets/catalog_demo/images/new.gif +0 -0
  678. data/sample/tkextlib/iwidgets/catalog_demo/images/open.gif +0 -0
  679. data/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm +14 -0
  680. data/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif +0 -0
  681. data/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm +14 -0
  682. data/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif +0 -0
  683. data/sample/tkextlib/iwidgets/catalog_demo/images/print.gif +0 -0
  684. data/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif +0 -0
  685. data/sample/tkextlib/iwidgets/catalog_demo/images/save.gif +0 -0
  686. data/sample/tkextlib/iwidgets/catalog_demo/images/select.gif +0 -0
  687. data/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm +14 -0
  688. data/sample/tkextlib/iwidgets/sample/buttonbox.rb +23 -0
  689. data/sample/tkextlib/iwidgets/sample/calendar.rb +11 -0
  690. data/sample/tkextlib/iwidgets/sample/canvasprintbox.rb +9 -0
  691. data/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb +9 -0
  692. data/sample/tkextlib/iwidgets/sample/checkbox.rb +13 -0
  693. data/sample/tkextlib/iwidgets/sample/combobox.rb +33 -0
  694. data/sample/tkextlib/iwidgets/sample/dateentry.rb +8 -0
  695. data/sample/tkextlib/iwidgets/sample/datefield.rb +9 -0
  696. data/sample/tkextlib/iwidgets/sample/dialog.rb +21 -0
  697. data/sample/tkextlib/iwidgets/sample/dialogshell.rb +15 -0
  698. data/sample/tkextlib/iwidgets/sample/disjointlistbox.rb +17 -0
  699. data/sample/tkextlib/iwidgets/sample/entryfield-1.rb +40 -0
  700. data/sample/tkextlib/iwidgets/sample/entryfield-2.rb +45 -0
  701. data/sample/tkextlib/iwidgets/sample/entryfield-3.rb +41 -0
  702. data/sample/tkextlib/iwidgets/sample/extbutton.rb +21 -0
  703. data/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb +9 -0
  704. data/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb +30 -0
  705. data/sample/tkextlib/iwidgets/sample/feedback.rb +11 -0
  706. data/sample/tkextlib/iwidgets/sample/fileselectionbox.rb +9 -0
  707. data/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb +29 -0
  708. data/sample/tkextlib/iwidgets/sample/finddialog.rb +16 -0
  709. data/sample/tkextlib/iwidgets/sample/hierarchy.rb +26 -0
  710. data/sample/tkextlib/iwidgets/sample/hyperhelp.rb +15 -0
  711. data/sample/tkextlib/iwidgets/sample/labeledframe.rb +15 -0
  712. data/sample/tkextlib/iwidgets/sample/labeledwidget.rb +14 -0
  713. data/sample/tkextlib/iwidgets/sample/mainwindow.rb +65 -0
  714. data/sample/tkextlib/iwidgets/sample/menubar.rb +125 -0
  715. data/sample/tkextlib/iwidgets/sample/menubar2.rb +45 -0
  716. data/sample/tkextlib/iwidgets/sample/messagebox1.rb +20 -0
  717. data/sample/tkextlib/iwidgets/sample/messagebox2.rb +20 -0
  718. data/sample/tkextlib/iwidgets/sample/messagedialog.rb +45 -0
  719. data/sample/tkextlib/iwidgets/sample/notebook.rb +31 -0
  720. data/sample/tkextlib/iwidgets/sample/notebook2.rb +31 -0
  721. data/sample/tkextlib/iwidgets/sample/optionmenu.rb +15 -0
  722. data/sample/tkextlib/iwidgets/sample/panedwindow.rb +23 -0
  723. data/sample/tkextlib/iwidgets/sample/panedwindow2.rb +23 -0
  724. data/sample/tkextlib/iwidgets/sample/promptdialog.rb +18 -0
  725. data/sample/tkextlib/iwidgets/sample/pushbutton.rb +10 -0
  726. data/sample/tkextlib/iwidgets/sample/radiobox.rb +14 -0
  727. data/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb +14 -0
  728. data/sample/tkextlib/iwidgets/sample/scrolledframe.rb +19 -0
  729. data/sample/tkextlib/iwidgets/sample/scrolledhtml.rb +16 -0
  730. data/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb +23 -0
  731. data/sample/tkextlib/iwidgets/sample/scrolledtext.rb +12 -0
  732. data/sample/tkextlib/iwidgets/sample/selectionbox.rb +20 -0
  733. data/sample/tkextlib/iwidgets/sample/selectiondialog.rb +13 -0
  734. data/sample/tkextlib/iwidgets/sample/shell.rb +18 -0
  735. data/sample/tkextlib/iwidgets/sample/spindate.rb +8 -0
  736. data/sample/tkextlib/iwidgets/sample/spinint.rb +11 -0
  737. data/sample/tkextlib/iwidgets/sample/spinner.rb +34 -0
  738. data/sample/tkextlib/iwidgets/sample/spintime.rb +8 -0
  739. data/sample/tkextlib/iwidgets/sample/tabnotebook.rb +27 -0
  740. data/sample/tkextlib/iwidgets/sample/tabnotebook2.rb +31 -0
  741. data/sample/tkextlib/iwidgets/sample/tabset.rb +35 -0
  742. data/sample/tkextlib/iwidgets/sample/timeentry.rb +8 -0
  743. data/sample/tkextlib/iwidgets/sample/timefield.rb +9 -0
  744. data/sample/tkextlib/iwidgets/sample/toolbar.rb +153 -0
  745. data/sample/tkextlib/iwidgets/sample/watch.rb +19 -0
  746. data/sample/tkextlib/tcllib/Orig_LICENSE.txt +46 -0
  747. data/sample/tkextlib/tcllib/datefield.rb +30 -0
  748. data/sample/tkextlib/tcllib/plotdemos1.rb +159 -0
  749. data/sample/tkextlib/tcllib/plotdemos2.rb +72 -0
  750. data/sample/tkextlib/tcllib/plotdemos3.rb +84 -0
  751. data/sample/tkextlib/tcllib/xyplot.rb +18 -0
  752. data/sample/tkextlib/tile/Orig_LICENSE.txt +30 -0
  753. data/sample/tkextlib/tile/demo.rb +984 -0
  754. data/sample/tkextlib/tile/iconlib.tcl +110 -0
  755. data/sample/tkextlib/tile/readme.txt +2 -0
  756. data/sample/tkextlib/tile/repeater.tcl +117 -0
  757. data/sample/tkextlib/tile/themes/blue/blue.tcl +149 -0
  758. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif +0 -0
  759. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif +0 -0
  760. data/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif +0 -0
  761. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif +0 -0
  762. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif +0 -0
  763. data/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif +0 -0
  764. data/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif +0 -0
  765. data/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif +0 -0
  766. data/sample/tkextlib/tile/themes/blue/blue/arrowright.gif +0 -0
  767. data/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif +0 -0
  768. data/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif +0 -0
  769. data/sample/tkextlib/tile/themes/blue/blue/arrowup.gif +0 -0
  770. data/sample/tkextlib/tile/themes/blue/blue/button-h.gif +0 -0
  771. data/sample/tkextlib/tile/themes/blue/blue/button-n.gif +0 -0
  772. data/sample/tkextlib/tile/themes/blue/blue/button-n.xcf +0 -0
  773. data/sample/tkextlib/tile/themes/blue/blue/button-p.gif +0 -0
  774. data/sample/tkextlib/tile/themes/blue/blue/check-hc.gif +0 -0
  775. data/sample/tkextlib/tile/themes/blue/blue/check-hu.gif +0 -0
  776. data/sample/tkextlib/tile/themes/blue/blue/check-nc.gif +0 -0
  777. data/sample/tkextlib/tile/themes/blue/blue/check-nu.gif +0 -0
  778. data/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif +0 -0
  779. data/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif +0 -0
  780. data/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif +0 -0
  781. data/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif +0 -0
  782. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif +0 -0
  783. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif +0 -0
  784. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif +0 -0
  785. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif +0 -0
  786. data/sample/tkextlib/tile/themes/blue/blue/slider-p.gif +0 -0
  787. data/sample/tkextlib/tile/themes/blue/blue/slider.gif +0 -0
  788. data/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif +0 -0
  789. data/sample/tkextlib/tile/themes/blue/blue/vslider.gif +0 -0
  790. data/sample/tkextlib/tile/themes/blue/pkgIndex.tcl +6 -0
  791. data/sample/tkextlib/tile/themes/keramik/keramik.tcl +194 -0
  792. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif +0 -0
  793. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif +0 -0
  794. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif +0 -0
  795. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif +0 -0
  796. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif +0 -0
  797. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif +0 -0
  798. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif +0 -0
  799. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif +0 -0
  800. data/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif +0 -0
  801. data/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif +0 -0
  802. data/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif +0 -0
  803. data/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif +0 -0
  804. data/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif +0 -0
  805. data/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif +0 -0
  806. data/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif +0 -0
  807. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif +0 -0
  808. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif +0 -0
  809. data/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif +0 -0
  810. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif +0 -0
  811. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif +0 -0
  812. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif +0 -0
  813. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif +0 -0
  814. data/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif +0 -0
  815. data/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif +0 -0
  816. data/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif +0 -0
  817. data/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif +0 -0
  818. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif +0 -0
  819. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif +0 -0
  820. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif +0 -0
  821. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif +0 -0
  822. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif +0 -0
  823. data/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif +0 -0
  824. data/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl +15 -0
  825. data/sample/tkextlib/tile/themes/kroc.rb +227 -0
  826. data/sample/tkextlib/tile/themes/kroc/kroc.tcl +163 -0
  827. data/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif +0 -0
  828. data/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif +0 -0
  829. data/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif +0 -0
  830. data/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif +0 -0
  831. data/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif +0 -0
  832. data/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif +0 -0
  833. data/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif +0 -0
  834. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif +0 -0
  835. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif +0 -0
  836. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif +0 -0
  837. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif +0 -0
  838. data/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl +15 -0
  839. data/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl +16 -0
  840. data/sample/tkextlib/tile/themes/plastik/plastik.tcl +125 -0
  841. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif +0 -0
  842. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif +0 -0
  843. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif +0 -0
  844. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif +0 -0
  845. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif +0 -0
  846. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif +0 -0
  847. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif +0 -0
  848. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif +0 -0
  849. data/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif +0 -0
  850. data/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif +0 -0
  851. data/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif +0 -0
  852. data/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif +0 -0
  853. data/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif +0 -0
  854. data/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif +0 -0
  855. data/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif +0 -0
  856. data/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif +0 -0
  857. data/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif +0 -0
  858. data/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif +0 -0
  859. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif +0 -0
  860. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif +0 -0
  861. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif +0 -0
  862. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif +0 -0
  863. data/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif +0 -0
  864. data/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif +0 -0
  865. data/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif +0 -0
  866. data/sample/tkextlib/tile/toolbutton.tcl +152 -0
  867. data/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt +12 -0
  868. data/sample/tkextlib/tkHTML/README +12 -0
  869. data/sample/tkextlib/tkHTML/hv.rb +314 -0
  870. data/sample/tkextlib/tkHTML/page1/image1 +0 -0
  871. data/sample/tkextlib/tkHTML/page1/image10 +0 -0
  872. data/sample/tkextlib/tkHTML/page1/image11 +0 -0
  873. data/sample/tkextlib/tkHTML/page1/image12 +0 -0
  874. data/sample/tkextlib/tkHTML/page1/image13 +0 -0
  875. data/sample/tkextlib/tkHTML/page1/image14 +0 -0
  876. data/sample/tkextlib/tkHTML/page1/image2 +0 -0
  877. data/sample/tkextlib/tkHTML/page1/image3 +0 -0
  878. data/sample/tkextlib/tkHTML/page1/image4 +0 -0
  879. data/sample/tkextlib/tkHTML/page1/image5 +0 -0
  880. data/sample/tkextlib/tkHTML/page1/image6 +0 -0
  881. data/sample/tkextlib/tkHTML/page1/image7 +0 -0
  882. data/sample/tkextlib/tkHTML/page1/image8 +0 -0
  883. data/sample/tkextlib/tkHTML/page1/image9 +0 -0
  884. data/sample/tkextlib/tkHTML/page1/index.html +115 -0
  885. data/sample/tkextlib/tkHTML/page2/image1 +0 -0
  886. data/sample/tkextlib/tkHTML/page2/image10 +0 -0
  887. data/sample/tkextlib/tkHTML/page2/image11 +0 -0
  888. data/sample/tkextlib/tkHTML/page2/image12 +0 -0
  889. data/sample/tkextlib/tkHTML/page2/image13 +0 -0
  890. data/sample/tkextlib/tkHTML/page2/image14 +0 -0
  891. data/sample/tkextlib/tkHTML/page2/image15 +0 -0
  892. data/sample/tkextlib/tkHTML/page2/image16 +0 -0
  893. data/sample/tkextlib/tkHTML/page2/image17 +0 -0
  894. data/sample/tkextlib/tkHTML/page2/image18 +0 -0
  895. data/sample/tkextlib/tkHTML/page2/image19 +0 -0
  896. data/sample/tkextlib/tkHTML/page2/image2 +0 -0
  897. data/sample/tkextlib/tkHTML/page2/image20 +0 -0
  898. data/sample/tkextlib/tkHTML/page2/image21 +0 -0
  899. data/sample/tkextlib/tkHTML/page2/image22 +0 -0
  900. data/sample/tkextlib/tkHTML/page2/image23 +0 -0
  901. data/sample/tkextlib/tkHTML/page2/image24 +0 -0
  902. data/sample/tkextlib/tkHTML/page2/image25 +0 -0
  903. data/sample/tkextlib/tkHTML/page2/image26 +0 -0
  904. data/sample/tkextlib/tkHTML/page2/image27 +0 -0
  905. data/sample/tkextlib/tkHTML/page2/image28 +0 -0
  906. data/sample/tkextlib/tkHTML/page2/image29 +0 -0
  907. data/sample/tkextlib/tkHTML/page2/image3 +0 -0
  908. data/sample/tkextlib/tkHTML/page2/image30 +0 -0
  909. data/sample/tkextlib/tkHTML/page2/image31 +0 -0
  910. data/sample/tkextlib/tkHTML/page2/image32 +0 -0
  911. data/sample/tkextlib/tkHTML/page2/image33 +0 -0
  912. data/sample/tkextlib/tkHTML/page2/image34 +0 -0
  913. data/sample/tkextlib/tkHTML/page2/image35 +0 -0
  914. data/sample/tkextlib/tkHTML/page2/image36 +0 -0
  915. data/sample/tkextlib/tkHTML/page2/image37 +0 -0
  916. data/sample/tkextlib/tkHTML/page2/image38 +0 -0
  917. data/sample/tkextlib/tkHTML/page2/image39 +0 -0
  918. data/sample/tkextlib/tkHTML/page2/image4 +0 -0
  919. data/sample/tkextlib/tkHTML/page2/image5 +0 -0
  920. data/sample/tkextlib/tkHTML/page2/image6 +0 -0
  921. data/sample/tkextlib/tkHTML/page2/image7 +0 -0
  922. data/sample/tkextlib/tkHTML/page2/image8 +0 -0
  923. data/sample/tkextlib/tkHTML/page2/image9 +0 -0
  924. data/sample/tkextlib/tkHTML/page2/index.html +433 -0
  925. data/sample/tkextlib/tkHTML/page3/image1 +0 -0
  926. data/sample/tkextlib/tkHTML/page3/image10 +0 -0
  927. data/sample/tkextlib/tkHTML/page3/image11 +0 -0
  928. data/sample/tkextlib/tkHTML/page3/image12 +0 -0
  929. data/sample/tkextlib/tkHTML/page3/image13 +0 -0
  930. data/sample/tkextlib/tkHTML/page3/image14 +0 -0
  931. data/sample/tkextlib/tkHTML/page3/image2 +0 -0
  932. data/sample/tkextlib/tkHTML/page3/image3 +0 -0
  933. data/sample/tkextlib/tkHTML/page3/image4 +0 -0
  934. data/sample/tkextlib/tkHTML/page3/image5 +0 -0
  935. data/sample/tkextlib/tkHTML/page3/image6 +0 -0
  936. data/sample/tkextlib/tkHTML/page3/image7 +0 -0
  937. data/sample/tkextlib/tkHTML/page3/image8 +0 -0
  938. data/sample/tkextlib/tkHTML/page3/image9 +0 -0
  939. data/sample/tkextlib/tkHTML/page3/index.html +2787 -0
  940. data/sample/tkextlib/tkHTML/page4/image1 +0 -0
  941. data/sample/tkextlib/tkHTML/page4/image2 +0 -0
  942. data/sample/tkextlib/tkHTML/page4/image3 +0 -0
  943. data/sample/tkextlib/tkHTML/page4/image4 +0 -0
  944. data/sample/tkextlib/tkHTML/page4/image5 +0 -0
  945. data/sample/tkextlib/tkHTML/page4/image6 +0 -0
  946. data/sample/tkextlib/tkHTML/page4/image7 +0 -0
  947. data/sample/tkextlib/tkHTML/page4/image8 +0 -0
  948. data/sample/tkextlib/tkHTML/page4/image9 +0 -0
  949. data/sample/tkextlib/tkHTML/page4/index.html +768 -0
  950. data/sample/tkextlib/tkHTML/ss.rb +437 -0
  951. data/sample/tkextlib/tkimg/demo.rb +1479 -0
  952. data/sample/tkextlib/tkimg/license_terms_of_Img_extension +41 -0
  953. data/sample/tkextlib/tkimg/readme.txt +3 -0
  954. data/sample/tkextlib/tktable/Orig_LICENSE.txt +52 -0
  955. data/sample/tkextlib/tktable/basic.rb +61 -0
  956. data/sample/tkextlib/tktable/buttons.rb +77 -0
  957. data/sample/tkextlib/tktable/command.rb +90 -0
  958. data/sample/tkextlib/tktable/debug.rb +102 -0
  959. data/sample/tkextlib/tktable/dynarows.rb +100 -0
  960. data/sample/tkextlib/tktable/maxsize.rb +68 -0
  961. data/sample/tkextlib/tktable/spreadsheet.rb +138 -0
  962. data/sample/tkextlib/tktable/tcllogo.gif +0 -0
  963. data/sample/tkextlib/tktable/valid.rb +89 -0
  964. data/sample/tkextlib/treectrl/bitmaps.rb +77 -0
  965. data/sample/tkextlib/treectrl/demo.rb +1306 -0
  966. data/sample/tkextlib/treectrl/explorer.rb +431 -0
  967. data/sample/tkextlib/treectrl/help.rb +405 -0
  968. data/sample/tkextlib/treectrl/imovie.rb +131 -0
  969. data/sample/tkextlib/treectrl/layout.rb +160 -0
  970. data/sample/tkextlib/treectrl/mailwasher.rb +270 -0
  971. data/sample/tkextlib/treectrl/outlook-folders.rb +125 -0
  972. data/sample/tkextlib/treectrl/outlook-newgroup.rb +449 -0
  973. data/sample/tkextlib/treectrl/pics/big-dll.gif +0 -0
  974. data/sample/tkextlib/treectrl/pics/big-exe.gif +0 -0
  975. data/sample/tkextlib/treectrl/pics/big-file.gif +0 -0
  976. data/sample/tkextlib/treectrl/pics/big-folder.gif +0 -0
  977. data/sample/tkextlib/treectrl/pics/big-txt.gif +0 -0
  978. data/sample/tkextlib/treectrl/pics/checked.gif +0 -0
  979. data/sample/tkextlib/treectrl/pics/file.gif +0 -0
  980. data/sample/tkextlib/treectrl/pics/folder-closed.gif +0 -0
  981. data/sample/tkextlib/treectrl/pics/folder-open.gif +0 -0
  982. data/sample/tkextlib/treectrl/pics/help-book-closed.gif +0 -0
  983. data/sample/tkextlib/treectrl/pics/help-book-open.gif +0 -0
  984. data/sample/tkextlib/treectrl/pics/help-page.gif +0 -0
  985. data/sample/tkextlib/treectrl/pics/imovie-01.gif +0 -0
  986. data/sample/tkextlib/treectrl/pics/imovie-02.gif +0 -0
  987. data/sample/tkextlib/treectrl/pics/imovie-03.gif +0 -0
  988. data/sample/tkextlib/treectrl/pics/imovie-04.gif +0 -0
  989. data/sample/tkextlib/treectrl/pics/imovie-05.gif +0 -0
  990. data/sample/tkextlib/treectrl/pics/imovie-06.gif +0 -0
  991. data/sample/tkextlib/treectrl/pics/imovie-07.gif +0 -0
  992. data/sample/tkextlib/treectrl/pics/internet-check-off.gif +0 -0
  993. data/sample/tkextlib/treectrl/pics/internet-check-on.gif +0 -0
  994. data/sample/tkextlib/treectrl/pics/internet-print.gif +0 -0
  995. data/sample/tkextlib/treectrl/pics/internet-radio-off.gif +0 -0
  996. data/sample/tkextlib/treectrl/pics/internet-radio-on.gif +0 -0
  997. data/sample/tkextlib/treectrl/pics/internet-search.gif +0 -0
  998. data/sample/tkextlib/treectrl/pics/internet-security.gif +0 -0
  999. data/sample/tkextlib/treectrl/pics/mac-collapse.gif +0 -0
  1000. data/sample/tkextlib/treectrl/pics/mac-expand.gif +0 -0
  1001. data/sample/tkextlib/treectrl/pics/outlook-arrow.gif +0 -0
  1002. data/sample/tkextlib/treectrl/pics/outlook-clip.gif +0 -0
  1003. data/sample/tkextlib/treectrl/pics/outlook-deleted.gif +0 -0
  1004. data/sample/tkextlib/treectrl/pics/outlook-draft.gif +0 -0
  1005. data/sample/tkextlib/treectrl/pics/outlook-folder.gif +0 -0
  1006. data/sample/tkextlib/treectrl/pics/outlook-group.gif +0 -0
  1007. data/sample/tkextlib/treectrl/pics/outlook-inbox.gif +0 -0
  1008. data/sample/tkextlib/treectrl/pics/outlook-local.gif +0 -0
  1009. data/sample/tkextlib/treectrl/pics/outlook-main.gif +0 -0
  1010. data/sample/tkextlib/treectrl/pics/outlook-outbox.gif +0 -0
  1011. data/sample/tkextlib/treectrl/pics/outlook-read-2.gif +0 -0
  1012. data/sample/tkextlib/treectrl/pics/outlook-read.gif +0 -0
  1013. data/sample/tkextlib/treectrl/pics/outlook-sent.gif +0 -0
  1014. data/sample/tkextlib/treectrl/pics/outlook-server.gif +0 -0
  1015. data/sample/tkextlib/treectrl/pics/outlook-unread.gif +0 -0
  1016. data/sample/tkextlib/treectrl/pics/outlook-watch.gif +0 -0
  1017. data/sample/tkextlib/treectrl/pics/sky.gif +0 -0
  1018. data/sample/tkextlib/treectrl/pics/small-dll.gif +0 -0
  1019. data/sample/tkextlib/treectrl/pics/small-exe.gif +0 -0
  1020. data/sample/tkextlib/treectrl/pics/small-file.gif +0 -0
  1021. data/sample/tkextlib/treectrl/pics/small-folder.gif +0 -0
  1022. data/sample/tkextlib/treectrl/pics/small-txt.gif +0 -0
  1023. data/sample/tkextlib/treectrl/pics/unchecked.gif +0 -0
  1024. data/sample/tkextlib/treectrl/random.rb +509 -0
  1025. data/sample/tkextlib/treectrl/readme.txt +2 -0
  1026. data/sample/tkextlib/treectrl/www-options.rb +304 -0
  1027. data/sample/tkextlib/vu/Orig_LICENSE.txt +51 -0
  1028. data/sample/tkextlib/vu/README.txt +50 -0
  1029. data/sample/tkextlib/vu/canvItems.rb +91 -0
  1030. data/sample/tkextlib/vu/canvSticker.rb +83 -0
  1031. data/sample/tkextlib/vu/canvSticker2.rb +102 -0
  1032. data/sample/tkextlib/vu/dial_demo.rb +114 -0
  1033. data/sample/tkextlib/vu/m128_000.xbm +174 -0
  1034. data/sample/tkextlib/vu/oscilloscope.rb +69 -0
  1035. data/sample/tkextlib/vu/pie.rb +57 -0
  1036. data/sample/tkextlib/vu/vu_demo.rb +68 -0
  1037. data/sample/tkfrom.rb +133 -0
  1038. data/sample/tkhello.rb +11 -0
  1039. data/sample/tkline.rb +48 -0
  1040. data/sample/tkmenubutton.rb +136 -0
  1041. data/sample/tkmsgcat-load_rb.rb +103 -0
  1042. data/sample/tkmsgcat-load_rb2.rb +103 -0
  1043. data/sample/tkmsgcat-load_tk.rb +119 -0
  1044. data/sample/tkmulticolumnlist.rb +744 -0
  1045. data/sample/tkmultilistbox.rb +655 -0
  1046. data/sample/tkmultilistframe.rb +941 -0
  1047. data/sample/tkoptdb-safeTk.rb +74 -0
  1048. data/sample/tkoptdb.rb +107 -0
  1049. data/sample/tkrttimer.rb +78 -0
  1050. data/sample/tksleep_sample.rb +30 -0
  1051. data/sample/tktextframe.rb +282 -0
  1052. data/sample/tktextio.rb +1061 -0
  1053. data/sample/tktimer.rb +51 -0
  1054. data/sample/tktimer2.rb +48 -0
  1055. data/sample/tktimer3.rb +60 -0
  1056. data/sample/tktree.rb +104 -0
  1057. data/sample/tktree.tcl +305 -0
  1058. data/sample/ttk_wrapper.rb +155 -0
  1059. data/tk.gemspec +24 -0
  1060. metadata +1144 -0
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: false
2
+ # entry2.rb
3
+ #
4
+ # This demonstration script is the same as the entry1.tcl script
5
+ # except that it creates scrollbars for the entries.
6
+ #
7
+ # entry (with scrollbars) widget demo (called by 'widget')
8
+ #
9
+
10
+ # toplevel widget
11
+ if defined?($entry2_demo) && $entry2_demo
12
+ $entry2_demo.destroy
13
+ $entry2_demo = nil
14
+ end
15
+
16
+ # demo toplevel widget
17
+ $entry2_demo = TkToplevel.new {|w|
18
+ title("Entry Demonstration (with scrollbars)")
19
+ iconname("entry2")
20
+ positionWindow(w)
21
+ }
22
+
23
+ base_frame = TkFrame.new($entry2_demo).pack(:fill=>:both, :expand=>true)
24
+
25
+ # label
26
+ msg = TkLabel.new(base_frame) {
27
+ font $font
28
+ wraplength '5i'
29
+ justify 'left'
30
+ text "Three different entries are displayed below, with a scrollbar for each entry. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries with the scrollbars, or by dragging with mouse button2 pressed."
31
+ }
32
+ msg.pack('side'=>'top')
33
+
34
+ # frame
35
+ TkFrame.new(base_frame) {|frame|
36
+ TkButton.new(frame) {
37
+ text 'Dismiss'
38
+ command proc{
39
+ tmppath = $entry2_demo
40
+ $entry2_demo = nil
41
+ tmppath.destroy
42
+ }
43
+ }.pack('side'=>'left', 'expand'=>'yes')
44
+
45
+ TkButton.new(frame) {
46
+ text 'Show Code'
47
+ command proc{showCode 'entry2'}
48
+ }.pack('side'=>'left', 'expand'=>'yes')
49
+ }.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
50
+
51
+ # frame
52
+ TkFrame.new(base_frame, 'borderwidth'=>10) {|w|
53
+ # entry 1
54
+ s1 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
55
+ e1 = TkEntry.new(w, 'relief'=>'sunken') {
56
+ xscrollcommand proc{|first,last| s1.set first,last}
57
+ }
58
+ s1.command(proc{|*args| e1.xview(*args)})
59
+ e1.pack('side'=>'top', 'fill'=>'x')
60
+ s1.pack('side'=>'top', 'fill'=>'x')
61
+
62
+ # spacer
63
+ TkFrame.new(w, 'width'=>20, 'height'=>10).pack('side'=>'top', 'fill'=>'x')
64
+
65
+ # entry 2
66
+ s2 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
67
+ e2 = TkEntry.new(w, 'relief'=>'sunken') {
68
+ xscrollcommand proc{|first,last| s2.set first,last}
69
+ }
70
+ s2.command(proc{|*args| e2.xview(*args)})
71
+ e2.pack('side'=>'top', 'fill'=>'x')
72
+ s2.pack('side'=>'top', 'fill'=>'x')
73
+
74
+ # spacer
75
+ TkFrame.new(w, 'width'=>20, 'height'=>10).pack('side'=>'top', 'fill'=>'x')
76
+
77
+ # entry 3
78
+ s3 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
79
+ e3 = TkEntry.new(w, 'relief'=>'sunken') {
80
+ xscrollcommand proc{|first,last| s3.set first,last}
81
+ }
82
+ s3.command(proc{|*args| e3.xview(*args)})
83
+ e3.pack('side'=>'top', 'fill'=>'x')
84
+ s3.pack('side'=>'top', 'fill'=>'x')
85
+
86
+ #
87
+ e1.insert(0, 'Initial value')
88
+ e2.insert('end', "This entry contains a long value, much too long ")
89
+ e2.insert('end', "to fit in the window at one time, so long in fact ")
90
+ e2.insert('end', "that you'll have to scan or scroll to see the end.")
91
+ e2.insert('end', "")
92
+
93
+ }.pack('side'=>'top', 'fill'=>'x', 'expand'=>'yes')
94
+
@@ -0,0 +1,221 @@
1
+ # frozen_string_literal: false
2
+ # entry3.rb --
3
+ #
4
+ # This demonstration script creates several entry widgets whose
5
+ # permitted input is constrained in some way. It also shows off a
6
+ # password entry.
7
+ #
8
+ # based on Tcl/Tk8.4.4 widget demos
9
+
10
+ if defined?($entry3_demo) && $entry3_demo
11
+ $entry3_demo.destroy
12
+ $entry3_demo = nil
13
+ end
14
+
15
+ $entry3_demo = TkToplevel.new {|w|
16
+ title("Constrained Entry Demonstration")
17
+ iconname("entry3")
18
+ positionWindow(w)
19
+ }
20
+
21
+ base_frame = TkFrame.new($entry3_demo).pack(:fill=>:both, :expand=>true)
22
+
23
+ TkLabel.new(base_frame,
24
+ :font=>$font, :wraplength=>'5i', :justify=>:left,
25
+ :text=><<EOL).pack(:side=>:top)
26
+ Four different entries are displayed below. You can add characters \
27
+ by pointing, clicking and typing, though each is constrained in what \
28
+ it will accept. The first only accepts integers or the empty string \
29
+ (checking when focus leaves it) and will flash to indicate any \
30
+ problem. The second only accepts strings with fewer than ten \
31
+ characters and sounds the bell when an attempt to go over the limit \
32
+ is made. The third accepts US phone numbers, mapping letters to \
33
+ their digit equivalent and sounding the bell on encountering an \
34
+ invalid character or if trying to type over a character that is not \
35
+ a digit. The fourth is a password field that accepts up to eight \
36
+ characters (silently ignoring further ones), and displaying them as \
37
+ asterisk characters.
38
+ EOL
39
+
40
+ TkFrame.new(base_frame){|f|
41
+ pack(:side=>:bottom, :fill=>:x, :pady=>'2m')
42
+
43
+ TkButton.new(f, :text=>'Dismiss', :width=>15, :command=>proc{
44
+ $entry3_demo.destroy
45
+ $entry3_demo = nil
46
+ }).pack(:side=>:left, :expand=>true)
47
+
48
+ TkButton.new(f, :text=>'See Code', :width=>15, :command=>proc{
49
+ showCode 'entry3'
50
+ }).pack(:side=>:left, :expand=>true)
51
+ }
52
+
53
+ # focusAndFlash --
54
+ # Error handler for entry widgets that forces the focus onto the
55
+ # widget and makes the widget flash by exchanging the foreground and
56
+ # background colours at intervals of 200ms (i.e. at approximately
57
+ # 2.5Hz).
58
+ #
59
+ # Arguments:
60
+ # widget - entry widget to flash
61
+ # fg - Initial foreground colour
62
+ # bg - Initial background colour
63
+ # count - Counter to control the number of times flashed
64
+ def focusAndFlash(widget, fg, bg, count=5)
65
+ return if count <= 0
66
+ if fg && !fg.empty? && bg && !bg.empty?
67
+ TkTimer.new(200, count,
68
+ proc{widget.configure(:foreground=>bg, :background=>fg)},
69
+ proc{widget.configure(:foreground=>fg, :background=>bg)}
70
+ ).start
71
+ else
72
+ # TkTimer.new(150, 3){Tk.bell}.start
73
+ Tk.bell
74
+ TkTimer.new(200, count,
75
+ proc{widget.configure(:foreground=>'white',
76
+ :background=>'black')},
77
+ proc{widget.configure(:foreground=>'black',
78
+ :background=>'white')}
79
+ ).at_end{begin
80
+ widget.configure(:foreground=>fg,
81
+ :background=>bg)
82
+ rescue
83
+ # ignore
84
+ end}.start
85
+ end
86
+ widget.focus(true)
87
+ end
88
+
89
+ l1 = TkLabelFrame.new(base_frame, :text=>"Integer Entry")
90
+ TkEntry.new(l1, :validate=>:focus,
91
+ :vcmd=>[
92
+ proc{|s| s == '' || /^[+-]?\d+$/ =~ s }, '%P'
93
+ ]) {|e|
94
+ fg = e.foreground
95
+ bg = e.background
96
+ invalidcommand [proc{|w| focusAndFlash(w, fg, bg)}, '%W']
97
+ pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m')
98
+ }
99
+
100
+ l2 = TkLabelFrame.new(base_frame, :text=>"Length-Constrained Entry")
101
+ TkEntry.new(l2, :validate=>:key, :invcmd=>proc{Tk.bell},
102
+ :vcmd=>[proc{|s| s.length < 10}, '%P']
103
+ ).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m')
104
+
105
+ ### PHONE NUMBER ENTRY ###
106
+ # Note that the source to this is quite a bit longer as the behaviour
107
+ # demonstrated is a lot more ambitious than with the others.
108
+
109
+ # Initial content for the third entry widget
110
+ entry3content = TkVariable.new("1-(000)-000-0000")
111
+
112
+ # Mapping from alphabetic characters to numbers.
113
+ $phoneNumberMap = {}
114
+ Hash[*(%w(abc 2 def 3 ghi 4 jkl 5 mno 6 pqrs 7 tuv 8 wxyz 9))].each{|chars, n|
115
+ chars.split('').each{|c|
116
+ $phoneNumberMap[c] = n
117
+ $phoneNumberMap[c.upcase] = n
118
+ }
119
+ }
120
+
121
+ # phoneSkipLeft --
122
+ # Skip over fixed characters in a phone-number string when moving left.
123
+ #
124
+ # Arguments:
125
+ # widget - The entry widget containing the phone-number.
126
+ def phoneSkipLeft(widget)
127
+ idx = widget.index('insert')
128
+ if idx == 8
129
+ # Skip back two extra characters
130
+ widget.cursor = idx - 2
131
+ elsif idx == 7 || idx == 12
132
+ # Skip back one extra character
133
+ widget.cursor = idx - 1
134
+ elsif idx <= 3
135
+ # Can't move any further
136
+ Tk.bell
137
+ Tk.callback_break
138
+ end
139
+ end
140
+
141
+ # phoneSkipRight --
142
+ # Skip over fixed characters in a phone-number string when moving right.
143
+ #
144
+ # Arguments:
145
+ # widget - The entry widget containing the phone-number.
146
+ # add - Offset to add to index before calculation (used by validation.)
147
+ def phoneSkipRight(widget, add = 0)
148
+ idx = widget.index('insert')
149
+ if (idx + add == 5)
150
+ # Skip forward two extra characters
151
+ widget.cursor = idx + 2
152
+ elsif (idx + add == 6 || idx + add == 10)
153
+ # Skip forward one extra character
154
+ widget.cursor = idx + 1
155
+ elsif (idx + add == 15 && add == 0)
156
+ # Can't move any further
157
+ Tk.bell
158
+ Tk.callback_break
159
+ end
160
+ end
161
+
162
+ # validatePhoneChange --
163
+ # Checks that the replacement (mapped to a digit) of the given
164
+ # character in an entry widget at the given position will leave a
165
+ # valid phone number in the widget.
166
+ #
167
+ # widget - entry widget to validate
168
+ # vmode - The widget's validation mode
169
+ # idx - The index where replacement is to occur
170
+ # char - The character (or string, though that will always be
171
+ # refused) to be overwritten at that point.
172
+
173
+ def validatePhoneChange(widget, vmode, idx, char)
174
+ return true if idx == nil
175
+ Tk.after_idle(proc{widget.configure(:validate=>vmode,
176
+ :invcmd=>proc{Tk.bell})})
177
+ if !(idx<3 || idx==6 || idx==7 || idx==11 || idx>15) && char =~ /[0-9A-Za-z]/
178
+ widget.delete(idx)
179
+ widget.insert(idx, $phoneNumberMap[char] || char)
180
+ Tk.after_idle(proc{phoneSkipRight(widget, -1)})
181
+ return true
182
+ # Tk.update(true) # <- Don't work 'update' inter validation callback.
183
+ # It depends on Tcl/Tk side (tested on Tcl/Tk8.5a1).
184
+ end
185
+ return false
186
+ end
187
+
188
+
189
+ l3 = TkLabelFrame.new(base_frame, :text=>"US Phone-Number Entry")
190
+ TkEntry.new(l3, :validate=>:key, :invcmd=>proc{Tk.bell},
191
+ :textvariable=>entry3content,
192
+ :vcmd=>[
193
+ proc{|w,v,i,s| validatePhoneChange(w,v,i,s)},
194
+ "%W %v %i %S"
195
+ ]){|e|
196
+ # Click to focus goes to the first editable character...
197
+ bind('FocusIn', proc{|d,w|
198
+ if d != "NotifyAncestor"
199
+ w.cursor = 3
200
+ Tk.after_idle(proc{w.selection_clear})
201
+ end
202
+ }, '%d %W')
203
+ bind('Left', proc{|w| phoneSkipLeft(w)}, '%W')
204
+ bind('Right', proc{|w| phoneSkipRight(w)}, '%W')
205
+ pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m')
206
+ }
207
+
208
+ l4 = TkLabelFrame.new(base_frame, :text=>"Password Entry")
209
+ TkEntry.new(l4, :validate=>:key, :show=>'*',
210
+ :vcmd=>[
211
+ proc{|s| s.length <= 8},
212
+ '%P'
213
+ ]).pack(:fill=>:x, :expand=>true, :padx=>'1m', :pady=>'1m')
214
+
215
+ TkFrame.new(base_frame){|f|
216
+ lower
217
+ TkGrid.configure(l1, l2, :in=>f, :padx=>'3m', :pady=>'1m', :sticky=>:ew)
218
+ TkGrid.configure(l3, l4, :in=>f, :padx=>'3m', :pady=>'1m', :sticky=>:ew)
219
+ TkGrid.columnconfigure(f, [0,1], :uniform=>1)
220
+ pack(:fill=>:both, :expand=>true)
221
+ }
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: false
2
+ # filebox.rb
3
+ #
4
+ # This demonstration script prompts the user to select a file.#
5
+ # widget demo prompts the user to select a file (called by 'widget')
6
+ #
7
+
8
+ # toplevel widget
9
+ if defined?($filebox_demo) && $filebox_demo
10
+ $filebox_demo.destroy
11
+ $filebox_demo = nil
12
+ end
13
+
14
+ # demo toplevel widget
15
+ $filebox_demo = TkToplevel.new {|w|
16
+ title("File Selection Dialogs")
17
+ iconname("filebox")
18
+ positionWindow(w)
19
+ }
20
+
21
+ base_frame = TkFrame.new($filebox_demo).pack(:fill=>:both, :expand=>true)
22
+
23
+ # label
24
+ TkLabel.new(base_frame,'font'=>$font,'wraplength'=>'4i','justify'=>'left',
25
+ 'text'=>"Enter a file name in the entry box or click on the \"Browse\" buttons to select a file name using the file selection dialog.").pack('side'=>'top')
26
+
27
+ # frame
28
+ TkFrame.new(base_frame) {|frame|
29
+ TkButton.new(frame) {
30
+ text 'Dismiss'
31
+ command proc{
32
+ tmppath = $filebox_demo
33
+ $filebox_demo = nil
34
+ tmppath.destroy
35
+ }
36
+ }.pack('side'=>'left', 'expand'=>'yes')
37
+
38
+ TkButton.new(frame) {
39
+ text 'Show Code'
40
+ command proc{showCode 'filebox'}
41
+ }.pack('side'=>'left', 'expand'=>'yes')
42
+ }.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
43
+
44
+ # frame
45
+ ['open', 'save'].each{|type|
46
+ TkFrame.new(base_frame) {|f|
47
+ TkLabel.new(f, 'text'=>"Select a file to #{type}: ", 'anchor'=>'e')\
48
+ .pack('side'=>'left')
49
+
50
+ TkEntry.new(f, 'width'=>20) {|e|
51
+ pack('side'=>'left', 'expand'=>'yes', 'fill'=>'x')
52
+
53
+ TkButton.new(f, 'text'=>'Browse ...',
54
+ 'command'=>proc{fileDialog base_frame,e,type})\
55
+ .pack('side'=>'left')
56
+ }
57
+
58
+ pack('fill'=>'x', 'padx'=>'1c', 'pady'=>3)
59
+ }
60
+ }
61
+
62
+ $tk_strictMotif = TkVarAccess.new('tk_strictMotif')
63
+ if ($tk_platform['platform'] == 'unix')
64
+ TkCheckButton.new(base_frame,
65
+ 'text'=>'Use Motif Style Dialog',
66
+ 'variable'=>$tk_strictMotif,
67
+ 'onvalue'=>1, 'offvalue'=>0 ).pack('anchor'=>'c')
68
+ end
69
+
70
+ def fileDialog(w,ent,operation)
71
+ # Type names Extension(s) Mac File Type(s)
72
+ #
73
+ #--------------------------------------------------------
74
+ types = [
75
+ ['Text files', ['.txt','.doc'] ],
76
+ ['Text files', [], 'TEXT' ],
77
+ ['Ruby Scripts', ['.rb'], 'TEXT' ],
78
+ ['Tcl Scripts', ['.tcl'], 'TEXT' ],
79
+ ['C Source Files', ['.c','.h'] ],
80
+ ['All Source Files', ['.rb','.tcl','.c','.h'] ],
81
+ ['Image Files', ['.gif'] ],
82
+ ['Image Files', ['.jpeg','.jpg'] ],
83
+ ['Image Files', [], ['GIFF','JPEG']],
84
+ ['All files', '*' ]
85
+ ]
86
+
87
+ if operation == 'open'
88
+ file = Tk.getOpenFile('filetypes'=>types, 'parent'=>w)
89
+ else
90
+ file = Tk.getSaveFile('filetypes'=>types, 'parent'=>w,
91
+ 'initialfile'=>'Untitled',
92
+ 'defaultextension'=>'.txt')
93
+ end
94
+ if file != ""
95
+ ent.delete 0, 'end'
96
+ ent.insert 0, file
97
+ # ent.xview 'end'
98
+ Tk.update_idletasks # need this for Tk::Tile::Entry
99
+ # (to find right position of 'xview').
100
+ ent.xview(ent.index('end'))
101
+ end
102
+ end
103
+
@@ -0,0 +1,1724 @@
1
+ # frozen_string_literal: false
2
+ # floor.rb
3
+ #
4
+ # This demonstration script creates a canvas widget that displays the
5
+ # floorplan for DEC's Western Research Laboratory.
6
+ #
7
+ # floorDisplay widget demo (called by 'widget')
8
+ #
9
+
10
+ # floorDisplay --
11
+ # Recreate the floorplan display in the canvas given by "w". The
12
+ # floor given by "active" is displayed on top with its office structure
13
+ # visible.
14
+ #
15
+ # Arguments:
16
+ # w - Name of the canvas window.
17
+ # active - Number of active floor (1, 2, or 3).
18
+
19
+ def floorDisplay(w,active)
20
+ return if $activeFloor == active
21
+
22
+ w.delete('all')
23
+ $activeFloor = active
24
+
25
+ # First go through the three floors, displaying the backgrounds for
26
+ # each floor.
27
+
28
+ floor_bg1(w,$floor_colors['bg1'],$floor_colors['outline1'])
29
+ floor_bg2(w,$floor_colors['bg2'],$floor_colors['outline2'])
30
+ floor_bg3(w,$floor_colors['bg3'],$floor_colors['outline3'])
31
+
32
+ # Raise the background for the active floor so that it's on top.
33
+
34
+ w.raise("floor#{active}")
35
+
36
+ # Create a dummy item just to mark this point in the display list,
37
+ # so we can insert highlights here.
38
+
39
+ TkcRectangle.new(w,0,100,1,101, 'fill'=>'', 'outline'=>'', 'tags'=>'marker')
40
+
41
+ # Add the walls and labels for the active floor, along with
42
+ # transparent polygons that define the rooms on the floor.
43
+ # Make sure that the room polygons are on top.
44
+
45
+ $floorLabels.clear
46
+ $floorItems.clear
47
+ send("floor_fg#{active}", w, $floor_colors['offices'])
48
+ w.raise('room')
49
+
50
+ # Offset the floors diagonally from each other.
51
+
52
+ w.move('floor1', '2c', '2c')
53
+ w.move('floor2', '1c', '1c')
54
+
55
+ # Create items for the room entry and its label.
56
+ TkcWindow.new(w, 600, 100, 'anchor'=>'w', 'window'=>$floor_entry)
57
+ TkcText.new(w, 600, 100, 'anchor'=>'e', 'text'=>"Room: ")
58
+ w['scrollregion'] = w.bbox('all')
59
+ end
60
+
61
+ # newRoom --
62
+ # This method is invoked whenever the mouse enters a room
63
+ # in the floorplan. It changes tags so that the current room is
64
+ # highlighted.
65
+ #
66
+ # Arguments:
67
+ # w - The name of the canvas window.
68
+
69
+ def newRoom(w)
70
+ id = w.find_withtag('current')[0]
71
+ $currentRoom.value = $floorLabels[id.id] if id != ""
72
+ Tk.update(true)
73
+ end
74
+
75
+ # roomChanged --
76
+ # This method is invoked whenever the currentRoom variable changes.
77
+ # It highlights the current room and unhighlights any previous room.
78
+ #
79
+ # Arguments:
80
+ # w - The canvas window displaying the floorplan.
81
+ # args - Not used.
82
+
83
+ def roomChanged(w,*args)
84
+ w.delete('highlight')
85
+ item = $floorItems[$currentRoom.value]
86
+ return if item == nil
87
+ new = TkcPolygon.new(w, *(w.coords(item)))
88
+ new.configure('fill'=>$floor_colors['active'], 'tags'=>'highlight')
89
+ w.raise(new, 'marker')
90
+ end
91
+
92
+ # floor_bg1 --
93
+ # This method represents part of the floorplan database. When
94
+ # invoked, it instantiates the background information for the first
95
+ # floor.
96
+ #
97
+ # Arguments:
98
+ # w - The canvas window.
99
+ # fill - Fill color to use for the floor's background.
100
+ # outline - Color to use for the floor's outline.
101
+
102
+ def floor_bg1(w,fill,outline)
103
+ TkcPolygon.new(w,347,80,349,82,351,84,353,85,363,92,375,99,386,104,
104
+ 386,129,398,129,398,162,484,162,484,129,559,129,559,133,725,
105
+ 133,725,129,802,129,802,389,644,389,644,391,559,391,559,327,
106
+ 508,327,508,311,484,311,484,278,395,278,395,288,400,288,404,
107
+ 288,409,290,413,292,418,297,421,302,422,309,421,318,417,325,
108
+ 411,330,405,332,397,333,344,333,340,334,336,336,335,338,332,
109
+ 342,331,347,332,351,334,354,336,357,341,359,340,360,335,363,
110
+ 331,365,326,366,304,366,304,355,258,355,258,387,60,387,60,391,
111
+ 0,391,0,337,3,337,3,114,8,114,8,25,30,25,30,5,93,5,98,5,104,7,
112
+ 110,10,116,16,119,20,122,28,123,32,123,68,220,68,220,34,221,
113
+ 22,223,17,227,13,231,8,236,4,242,2,246,0,260,0,283,1,300,5,
114
+ 321,14,335,22,348,25,365,29,363,39,358,48,352,56,337,70,
115
+ 344,76,347,80, 'tags'=>['floor1','bg'], 'fill'=>fill)
116
+ TkcLine.new(w,386,129,398,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
117
+ TkcLine.new(w,258,355,258,387, 'fill'=>outline, 'tags'=>['floor1','bg'])
118
+ TkcLine.new(w,60,387,60,391, 'fill'=>outline, 'tags'=>['floor1','bg'])
119
+ TkcLine.new(w,0,337,0,391, 'fill'=>outline, 'tags'=>['floor1','bg'])
120
+ TkcLine.new(w,60,391,0,391, 'fill'=>outline, 'tags'=>['floor1','bg'])
121
+ TkcLine.new(w,3,114,3,337, 'fill'=>outline, 'tags'=>['floor1','bg'])
122
+ TkcLine.new(w,258,387,60,387, 'fill'=>outline, 'tags'=>['floor1','bg'])
123
+ TkcLine.new(w,484,162,398,162, 'fill'=>outline, 'tags'=>['floor1','bg'])
124
+ TkcLine.new(w,398,162,398,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
125
+ TkcLine.new(w,484,278,484,311, 'fill'=>outline, 'tags'=>['floor1','bg'])
126
+ TkcLine.new(w,484,311,508,311, 'fill'=>outline, 'tags'=>['floor1','bg'])
127
+ TkcLine.new(w,508,327,508,311, 'fill'=>outline, 'tags'=>['floor1','bg'])
128
+ TkcLine.new(w,559,327,508,327, 'fill'=>outline, 'tags'=>['floor1','bg'])
129
+ TkcLine.new(w,644,391,559,391, 'fill'=>outline, 'tags'=>['floor1','bg'])
130
+ TkcLine.new(w,644,389,644,391, 'fill'=>outline, 'tags'=>['floor1','bg'])
131
+ TkcLine.new(w,559,129,484,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
132
+ TkcLine.new(w,484,162,484,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
133
+ TkcLine.new(w,725,133,559,133, 'fill'=>outline, 'tags'=>['floor1','bg'])
134
+ TkcLine.new(w,559,129,559,133, 'fill'=>outline, 'tags'=>['floor1','bg'])
135
+ TkcLine.new(w,725,129,802,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
136
+ TkcLine.new(w,802,389,802,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
137
+ TkcLine.new(w,3,337,0,337, 'fill'=>outline, 'tags'=>['floor1','bg'])
138
+ TkcLine.new(w,559,391,559,327, 'fill'=>outline, 'tags'=>['floor1','bg'])
139
+ TkcLine.new(w,802,389,644,389, 'fill'=>outline, 'tags'=>['floor1','bg'])
140
+ TkcLine.new(w,725,133,725,129, 'fill'=>outline, 'tags'=>['floor1','bg'])
141
+ TkcLine.new(w,8,25,8,114, 'fill'=>outline, 'tags'=>['floor1','bg'])
142
+ TkcLine.new(w,8,114,3,114, 'fill'=>outline, 'tags'=>['floor1','bg'])
143
+ TkcLine.new(w,30,25,8,25, 'fill'=>outline, 'tags'=>['floor1','bg'])
144
+ TkcLine.new(w,484,278,395,278, 'fill'=>outline, 'tags'=>['floor1','bg'])
145
+ TkcLine.new(w,30,25,30,5, 'fill'=>outline, 'tags'=>['floor1','bg'])
146
+ TkcLine.new(w,93,5,30,5, 'fill'=>outline, 'tags'=>['floor1','bg'])
147
+ TkcLine.new(w,98,5,93,5, 'fill'=>outline, 'tags'=>['floor1','bg'])
148
+ TkcLine.new(w,104,7,98,5, 'fill'=>outline, 'tags'=>['floor1','bg'])
149
+ TkcLine.new(w,110,10,104,7, 'fill'=>outline, 'tags'=>['floor1','bg'])
150
+ TkcLine.new(w,116,16,110,10, 'fill'=>outline, 'tags'=>['floor1','bg'])
151
+ TkcLine.new(w,119,20,116,16, 'fill'=>outline, 'tags'=>['floor1','bg'])
152
+ TkcLine.new(w,122,28,119,20, 'fill'=>outline, 'tags'=>['floor1','bg'])
153
+ TkcLine.new(w,123,32,122,28, 'fill'=>outline, 'tags'=>['floor1','bg'])
154
+ TkcLine.new(w,123,68,123,32, 'fill'=>outline, 'tags'=>['floor1','bg'])
155
+ TkcLine.new(w,220,68,123,68, 'fill'=>outline, 'tags'=>['floor1','bg'])
156
+ TkcLine.new(w,386,129,386,104, 'fill'=>outline, 'tags'=>['floor1','bg'])
157
+ TkcLine.new(w,386,104,375,99, 'fill'=>outline, 'tags'=>['floor1','bg'])
158
+ TkcLine.new(w,375,99,363,92, 'fill'=>outline, 'tags'=>['floor1','bg'])
159
+ TkcLine.new(w,353,85,363,92, 'fill'=>outline, 'tags'=>['floor1','bg'])
160
+ TkcLine.new(w,220,68,220,34, 'fill'=>outline, 'tags'=>['floor1','bg'])
161
+ TkcLine.new(w,337,70,352,56, 'fill'=>outline, 'tags'=>['floor1','bg'])
162
+ TkcLine.new(w,352,56,358,48, 'fill'=>outline, 'tags'=>['floor1','bg'])
163
+ TkcLine.new(w,358,48,363,39, 'fill'=>outline, 'tags'=>['floor1','bg'])
164
+ TkcLine.new(w,363,39,365,29, 'fill'=>outline, 'tags'=>['floor1','bg'])
165
+ TkcLine.new(w,365,29,348,25, 'fill'=>outline, 'tags'=>['floor1','bg'])
166
+ TkcLine.new(w,348,25,335,22, 'fill'=>outline, 'tags'=>['floor1','bg'])
167
+ TkcLine.new(w,335,22,321,14, 'fill'=>outline, 'tags'=>['floor1','bg'])
168
+ TkcLine.new(w,321,14,300,5, 'fill'=>outline, 'tags'=>['floor1','bg'])
169
+ TkcLine.new(w,300,5,283,1, 'fill'=>outline, 'tags'=>['floor1','bg'])
170
+ TkcLine.new(w,283,1,260,0, 'fill'=>outline, 'tags'=>['floor1','bg'])
171
+ TkcLine.new(w,260,0,246,0, 'fill'=>outline, 'tags'=>['floor1','bg'])
172
+ TkcLine.new(w,246,0,242,2, 'fill'=>outline, 'tags'=>['floor1','bg'])
173
+ TkcLine.new(w,242,2,236,4, 'fill'=>outline, 'tags'=>['floor1','bg'])
174
+ TkcLine.new(w,236,4,231,8, 'fill'=>outline, 'tags'=>['floor1','bg'])
175
+ TkcLine.new(w,231,8,227,13, 'fill'=>outline, 'tags'=>['floor1','bg'])
176
+ TkcLine.new(w,223,17,227,13, 'fill'=>outline, 'tags'=>['floor1','bg'])
177
+ TkcLine.new(w,221,22,223,17, 'fill'=>outline, 'tags'=>['floor1','bg'])
178
+ TkcLine.new(w,220,34,221,22, 'fill'=>outline, 'tags'=>['floor1','bg'])
179
+ TkcLine.new(w,340,360,335,363, 'fill'=>outline, 'tags'=>['floor1','bg'])
180
+ TkcLine.new(w,335,363,331,365, 'fill'=>outline, 'tags'=>['floor1','bg'])
181
+ TkcLine.new(w,331,365,326,366, 'fill'=>outline, 'tags'=>['floor1','bg'])
182
+ TkcLine.new(w,326,366,304,366, 'fill'=>outline, 'tags'=>['floor1','bg'])
183
+ TkcLine.new(w,304,355,304,366, 'fill'=>outline, 'tags'=>['floor1','bg'])
184
+ TkcLine.new(w,395,288,400,288, 'fill'=>outline, 'tags'=>['floor1','bg'])
185
+ TkcLine.new(w,404,288,400,288, 'fill'=>outline, 'tags'=>['floor1','bg'])
186
+ TkcLine.new(w,409,290,404,288, 'fill'=>outline, 'tags'=>['floor1','bg'])
187
+ TkcLine.new(w,413,292,409,290, 'fill'=>outline, 'tags'=>['floor1','bg'])
188
+ TkcLine.new(w,418,297,413,292, 'fill'=>outline, 'tags'=>['floor1','bg'])
189
+ TkcLine.new(w,421,302,418,297, 'fill'=>outline, 'tags'=>['floor1','bg'])
190
+ TkcLine.new(w,422,309,421,302, 'fill'=>outline, 'tags'=>['floor1','bg'])
191
+ TkcLine.new(w,421,318,422,309, 'fill'=>outline, 'tags'=>['floor1','bg'])
192
+ TkcLine.new(w,421,318,417,325, 'fill'=>outline, 'tags'=>['floor1','bg'])
193
+ TkcLine.new(w,417,325,411,330, 'fill'=>outline, 'tags'=>['floor1','bg'])
194
+ TkcLine.new(w,411,330,405,332, 'fill'=>outline, 'tags'=>['floor1','bg'])
195
+ TkcLine.new(w,405,332,397,333, 'fill'=>outline, 'tags'=>['floor1','bg'])
196
+ TkcLine.new(w,397,333,344,333, 'fill'=>outline, 'tags'=>['floor1','bg'])
197
+ TkcLine.new(w,344,333,340,334, 'fill'=>outline, 'tags'=>['floor1','bg'])
198
+ TkcLine.new(w,340,334,336,336, 'fill'=>outline, 'tags'=>['floor1','bg'])
199
+ TkcLine.new(w,336,336,335,338, 'fill'=>outline, 'tags'=>['floor1','bg'])
200
+ TkcLine.new(w,335,338,332,342, 'fill'=>outline, 'tags'=>['floor1','bg'])
201
+ TkcLine.new(w,331,347,332,342, 'fill'=>outline, 'tags'=>['floor1','bg'])
202
+ TkcLine.new(w,332,351,331,347, 'fill'=>outline, 'tags'=>['floor1','bg'])
203
+ TkcLine.new(w,334,354,332,351, 'fill'=>outline, 'tags'=>['floor1','bg'])
204
+ TkcLine.new(w,336,357,334,354, 'fill'=>outline, 'tags'=>['floor1','bg'])
205
+ TkcLine.new(w,341,359,336,357, 'fill'=>outline, 'tags'=>['floor1','bg'])
206
+ TkcLine.new(w,341,359,340,360, 'fill'=>outline, 'tags'=>['floor1','bg'])
207
+ TkcLine.new(w,395,288,395,278, 'fill'=>outline, 'tags'=>['floor1','bg'])
208
+ TkcLine.new(w,304,355,258,355, 'fill'=>outline, 'tags'=>['floor1','bg'])
209
+ TkcLine.new(w,347,80,344,76, 'fill'=>outline, 'tags'=>['floor1','bg'])
210
+ TkcLine.new(w,344,76,337,70, 'fill'=>outline, 'tags'=>['floor1','bg'])
211
+ TkcLine.new(w,349,82,347,80, 'fill'=>outline, 'tags'=>['floor1','bg'])
212
+ TkcLine.new(w,351,84,349,82, 'fill'=>outline, 'tags'=>['floor1','bg'])
213
+ TkcLine.new(w,353,85,351,84, 'fill'=>outline, 'tags'=>['floor1','bg'])
214
+ end
215
+
216
+ # floor_bg2 --
217
+ # This method represents part of the floorplan database. When
218
+ # invoked, it instantiates the background information for the first
219
+ # floor.
220
+ #
221
+ # Arguments:
222
+ # w - The canvas window.
223
+ # fill - Fill color to use for the floor's background.
224
+ # outline - Color to use for the floor's outline.
225
+
226
+ def floor_bg2(w,fill,outline)
227
+ TkcPolygon.new(w,559,129,484,129,484,162,398,162,398,129,315,129,
228
+ 315,133,176,133,176,129,96,129,96,133,3,133,3,339,0,339,0,391,
229
+ 60,391,60,387,258,387,258,329,350,329,350,311,395,311,395,280,
230
+ 484,280,484,311,508,311,508,327,558,327,558,391,644,391,644,
231
+ 367,802,367,802,129,725,129,725,133,559,133,559,129,
232
+ 'tags'=>['floor2','bg'], 'fill'=>fill)
233
+ TkcLine.new(w,350,311,350,329, 'fill'=>outline, 'tags'=>['floor2','bg'])
234
+ TkcLine.new(w,398,129,398,162, 'fill'=>outline, 'tags'=>['floor2','bg'])
235
+ TkcLine.new(w,802,367,802,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
236
+ TkcLine.new(w,802,129,725,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
237
+ TkcLine.new(w,725,133,725,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
238
+ TkcLine.new(w,559,129,559,133, 'fill'=>outline, 'tags'=>['floor2','bg'])
239
+ TkcLine.new(w,559,133,725,133, 'fill'=>outline, 'tags'=>['floor2','bg'])
240
+ TkcLine.new(w,484,162,484,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
241
+ TkcLine.new(w,559,129,484,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
242
+ TkcLine.new(w,802,367,644,367, 'fill'=>outline, 'tags'=>['floor2','bg'])
243
+ TkcLine.new(w,644,367,644,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
244
+ TkcLine.new(w,644,391,558,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
245
+ TkcLine.new(w,558,327,558,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
246
+ TkcLine.new(w,558,327,508,327, 'fill'=>outline, 'tags'=>['floor2','bg'])
247
+ TkcLine.new(w,508,327,508,311, 'fill'=>outline, 'tags'=>['floor2','bg'])
248
+ TkcLine.new(w,484,311,508,311, 'fill'=>outline, 'tags'=>['floor2','bg'])
249
+ TkcLine.new(w,484,280,484,311, 'fill'=>outline, 'tags'=>['floor2','bg'])
250
+ TkcLine.new(w,398,162,484,162, 'fill'=>outline, 'tags'=>['floor2','bg'])
251
+ TkcLine.new(w,484,280,395,280, 'fill'=>outline, 'tags'=>['floor2','bg'])
252
+ TkcLine.new(w,395,280,395,311, 'fill'=>outline, 'tags'=>['floor2','bg'])
253
+ TkcLine.new(w,258,387,60,387, 'fill'=>outline, 'tags'=>['floor2','bg'])
254
+ TkcLine.new(w,3,133,3,339, 'fill'=>outline, 'tags'=>['floor2','bg'])
255
+ TkcLine.new(w,3,339,0,339, 'fill'=>outline, 'tags'=>['floor2','bg'])
256
+ TkcLine.new(w,60,391,0,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
257
+ TkcLine.new(w,0,339,0,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
258
+ TkcLine.new(w,60,387,60,391, 'fill'=>outline, 'tags'=>['floor2','bg'])
259
+ TkcLine.new(w,258,329,258,387, 'fill'=>outline, 'tags'=>['floor2','bg'])
260
+ TkcLine.new(w,350,329,258,329, 'fill'=>outline, 'tags'=>['floor2','bg'])
261
+ TkcLine.new(w,395,311,350,311, 'fill'=>outline, 'tags'=>['floor2','bg'])
262
+ TkcLine.new(w,398,129,315,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
263
+ TkcLine.new(w,176,133,315,133, 'fill'=>outline, 'tags'=>['floor2','bg'])
264
+ TkcLine.new(w,176,129,96,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
265
+ TkcLine.new(w,3,133,96,133, 'fill'=>outline, 'tags'=>['floor2','bg'])
266
+ TkcLine.new(w,315,133,315,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
267
+ TkcLine.new(w,176,133,176,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
268
+ TkcLine.new(w,96,133,96,129, 'fill'=>outline, 'tags'=>['floor2','bg'])
269
+ end
270
+
271
+ # floor_bg3 --
272
+ # This method represents part of the floorplan database. When
273
+ # invoked, it instantiates the background information for the first
274
+ # floor.
275
+ #
276
+ # Arguments:
277
+ # w - The canvas window.
278
+ # fill - Fill color to use for the floor's background.
279
+ # outline - Color to use for the floor's outline.
280
+
281
+ def floor_bg3(w,fill,outline)
282
+ TkcPolygon.new(w,159,300,107,300,107,248,159,248,159,129,96,129,96,
283
+ 133,21,133,21,331,0,331,0,391,60,391,60,370,159,370,159,300,
284
+ 'tags'=>['floor3','bg'], 'fill'=>fill)
285
+ TkcPolygon.new(w,258,370,258,329,350,329,350,311,399,311,399,129,
286
+ 315,129,315,133,176,133,176,129,159,129,159,370,258,370,
287
+ 'tags'=>['floor3','bg'], 'fill'=>fill)
288
+ TkcLine.new(w,96,133,96,129, 'fill'=>outline, 'tags'=>['floor3','bg'])
289
+ TkcLine.new(w,176,129,96,129, 'fill'=>outline, 'tags'=>['floor3','bg'])
290
+ TkcLine.new(w,176,129,176,133, 'fill'=>outline, 'tags'=>['floor3','bg'])
291
+ TkcLine.new(w,315,133,176,133, 'fill'=>outline, 'tags'=>['floor3','bg'])
292
+ TkcLine.new(w,315,133,315,129, 'fill'=>outline, 'tags'=>['floor3','bg'])
293
+ TkcLine.new(w,399,129,315,129, 'fill'=>outline, 'tags'=>['floor3','bg'])
294
+ TkcLine.new(w,399,311,399,129, 'fill'=>outline, 'tags'=>['floor3','bg'])
295
+ TkcLine.new(w,399,311,350,311, 'fill'=>outline, 'tags'=>['floor3','bg'])
296
+ TkcLine.new(w,350,329,350,311, 'fill'=>outline, 'tags'=>['floor3','bg'])
297
+ TkcLine.new(w,350,329,258,329, 'fill'=>outline, 'tags'=>['floor3','bg'])
298
+ TkcLine.new(w,258,370,258,329, 'fill'=>outline, 'tags'=>['floor3','bg'])
299
+ TkcLine.new(w,60,370,258,370, 'fill'=>outline, 'tags'=>['floor3','bg'])
300
+ TkcLine.new(w,60,370,60,391, 'fill'=>outline, 'tags'=>['floor3','bg'])
301
+ TkcLine.new(w,60,391,0,391, 'fill'=>outline, 'tags'=>['floor3','bg'])
302
+ TkcLine.new(w,0,391,0,331, 'fill'=>outline, 'tags'=>['floor3','bg'])
303
+ TkcLine.new(w,21,331,0,331, 'fill'=>outline, 'tags'=>['floor3','bg'])
304
+ TkcLine.new(w,21,331,21,133, 'fill'=>outline, 'tags'=>['floor3','bg'])
305
+ TkcLine.new(w,96,133,21,133, 'fill'=>outline, 'tags'=>['floor3','bg'])
306
+ TkcLine.new(w,107,300,159,300,159,248,107,248,107,300,
307
+ 'fill'=>outline, 'tags'=>['floor3','bg'])
308
+ end
309
+
310
+ # floor_fg1 --
311
+ # This method represents part of the floorplan database. When
312
+ # invoked, it instantiates the foreground information for the first
313
+ # floor (office outlines and numbers).
314
+ #
315
+ # Arguments:
316
+ # w - The canvas window.
317
+ # color - Color to use for drawing foreground information.
318
+
319
+ def floor_fg1(w,color)
320
+ i = TkcPolygon.new(w,375,246,375,172,341,172,341,246,
321
+ 'fill'=>'', 'tags'=>['floor1','room'])
322
+ $floorLabels[i.id] = '101'
323
+ $floorItems['101'] = i
324
+ TkcText.new(w,358,209, 'text'=>'101', 'fill'=>color,
325
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
326
+ i = TkcPolygon.new(w,307,240,339,240,339,206,307,206,
327
+ 'fill'=>'', 'tags'=>['floor1','room'])
328
+ $floorLabels[i.id] = 'Pub Lift1'
329
+ $floorItems['Pub Lift1'] = i
330
+ TkcText.new(w,323,223, 'text'=>'Pub Lift1', 'fill'=>color,
331
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
332
+ i = TkcPolygon.new(w,339,205,307,205,307,171,339,171,
333
+ 'fill'=>'', 'tags'=>['floor1','room'])
334
+ $floorLabels[i.id] = 'Priv Lift1'
335
+ $floorItems['Priv Lift1'] = i
336
+ TkcText.new(w,323,188, 'text'=>'Priv Lift1', 'fill'=>color,
337
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
338
+ i = TkcPolygon.new(w,42,389,42,337,1,337,1,389,
339
+ 'fill'=>'', 'tags'=>['floor1','room'])
340
+ $floorLabels[i.id] = '110'
341
+ $floorItems['110'] = i
342
+ TkcText.new(w,21.5,363, 'text'=>'110', 'fill'=>color,
343
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
344
+ i = TkcPolygon.new(w,59,389,59,385,90,385,90,337,44,337,44,389,
345
+ 'fill'=>'', 'tags'=>['floor1','room'])
346
+ $floorLabels[i.id] = '109'
347
+ $floorItems['109'] = i
348
+ TkcText.new(w,67,363, 'text'=>'109', 'fill'=>color,
349
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
350
+ i = TkcPolygon.new(w,51,300,51,253,6,253,6,300,
351
+ 'fill'=>'', 'tags'=>['floor1','room'])
352
+ $floorLabels[i.id] = '111'
353
+ $floorItems['111'] = i
354
+ TkcText.new(w,28.5,276.5, 'text'=>'111', 'fill'=>color,
355
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
356
+ i = TkcPolygon.new(w,98,248,98,309,79,309,79,248,
357
+ 'fill'=>'', 'tags'=>['floor1','room'])
358
+ $floorLabels[i.id] = '117B'
359
+ $floorItems['117B'] = i
360
+ TkcText.new(w,88.5,278.5, 'text'=>'117B', 'fill'=>color,
361
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
362
+ i = TkcPolygon.new(w,51,251,51,204,6,204,6,251,
363
+ 'fill'=>'', 'tags'=>['floor1','room'])
364
+ $floorLabels[i.id] = '112'
365
+ $floorItems['112'] = i
366
+ TkcText.new(w,28.5,227.5, 'text'=>'112', 'fill'=>color,
367
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
368
+ i = TkcPolygon.new(w,6,156,51,156,51,203,6,203,
369
+ 'fill'=>'', 'tags'=>['floor1','room'])
370
+ $floorLabels[i.id] = '113'
371
+ $floorItems['113'] = i
372
+ TkcText.new(w,28.5,179.5, 'text'=>'113', 'fill'=>color,
373
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
374
+ i = TkcPolygon.new(w,85,169,79,169,79,192,85,192,
375
+ 'fill'=>'', 'tags'=>['floor1','room'])
376
+ $floorLabels[i.id] = '117A'
377
+ $floorItems['117A'] = i
378
+ TkcText.new(w,82,180.5, 'text'=>'117A', 'fill'=>color,
379
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
380
+ i = TkcPolygon.new(w,77,302,77,168,53,168,53,302,
381
+ 'fill'=>'', 'tags'=>['floor1','room'])
382
+ $floorLabels[i.id] = '117'
383
+ $floorItems['117'] = i
384
+ TkcText.new(w,65,235, 'text'=>'117', 'fill'=>color,
385
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
386
+ i = TkcPolygon.new(w,51,155,51,115,6,115,6,155,
387
+ 'fill'=>'', 'tags'=>['floor1','room'])
388
+ $floorLabels[i.id] = '114'
389
+ $floorItems['114'] = i
390
+ TkcText.new(w,28.5,135, 'text'=>'114', 'fill'=>color,
391
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
392
+ i = TkcPolygon.new(w,95,115,53,115,53,168,95,168,
393
+ 'fill'=>'', 'tags'=>['floor1','room'])
394
+ $floorLabels[i.id] = '115'
395
+ $floorItems['115'] = i
396
+ TkcText.new(w,74,141.5, 'text'=>'115', 'fill'=>color,
397
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
398
+ i = TkcPolygon.new(w,87,113,87,27,10,27,10,113,
399
+ 'fill'=>'', 'tags'=>['floor1','room'])
400
+ $floorLabels[i.id] = '116'
401
+ $floorItems['116'] = i
402
+ TkcText.new(w,48.5,70, 'text'=>'116', 'fill'=>color,
403
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
404
+ i = TkcPolygon.new(w,89,91,128,91,128,113,89,131,
405
+ 'fill'=>'', 'tags'=>['floor1','room'])
406
+ $floorLabels[i.id] = '118'
407
+ $floorItems['118'] = i
408
+ TkcText.new(w,108.5,102, 'text'=>'118', 'fill'=>color,
409
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
410
+ i = TkcPolygon.new(w,178,128,178,132,216,132,216,91,
411
+ 163,91,163,112,149,112,149,128,
412
+ 'fill'=>'', 'tags'=>['floor1','room'])
413
+ $floorLabels[i.id] = '120'
414
+ $floorItems['120'] = i
415
+ TkcText.new(w,189.5,111.5, 'text'=>'120', 'fill'=>color,
416
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
417
+ i = TkcPolygon.new(w,79,193,87,193,87,169,136,169,136,192,
418
+ 156,192,156,169,175,169,175,246,79,246,
419
+ 'fill'=>'', 'tags'=>['floor1','room'])
420
+ $floorLabels[i.id] = '122'
421
+ $floorItems['122'] = i
422
+ TkcText.new(w,131,207.5, 'text'=>'122', 'fill'=>color,
423
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
424
+ i = TkcPolygon.new(w,138,169,154,169,154,191,138,191,
425
+ 'fill'=>'', 'tags'=>['floor1','room'])
426
+ $floorLabels[i.id] = '121'
427
+ $floorItems['121'] = i
428
+ TkcText.new(w,146,180, 'text'=>'121', 'fill'=>color,
429
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
430
+ i = TkcPolygon.new(w,99,300,126,300,126,309,99,309,
431
+ 'fill'=>'', 'tags'=>['floor1','room'])
432
+ $floorLabels[i.id] = '106A'
433
+ $floorItems['106A'] = i
434
+ TkcText.new(w,112.5,304.5, 'text'=>'106A', 'fill'=>color,
435
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
436
+ i = TkcPolygon.new(w,128,299,128,309,150,309,150,248,99,248,99,299,
437
+ 'fill'=>'', 'tags'=>['floor1','room'])
438
+ $floorLabels[i.id] = '105'
439
+ $floorItems['105'] = i
440
+ TkcText.new(w,124.5,278.5, 'text'=>'105', 'fill'=>color,
441
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
442
+ i = TkcPolygon.new(w,174,309,174,300,152,300,152,309,
443
+ 'fill'=>'', 'tags'=>['floor1','room'])
444
+ $floorLabels[i.id] = '106B'
445
+ $floorItems['106B'] = i
446
+ TkcText.new(w,163,304.5, 'text'=>'106B', 'fill'=>color,
447
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
448
+ i = TkcPolygon.new(w,176,299,176,309,216,309,216,248,152,248,152,299,
449
+ 'fill'=>'', 'tags'=>['floor1','room'])
450
+ $floorLabels[i.id] = '104'
451
+ $floorItems['104'] = i
452
+ TkcText.new(w,184,278.5, 'text'=>'104', 'fill'=>color,
453
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
454
+ i = TkcPolygon.new(w,138,385,138,337,91,337,91,385,
455
+ 'fill'=>'', 'tags'=>['floor1','room'])
456
+ $floorLabels[i.id] = '108'
457
+ $floorItems['108'] = i
458
+ TkcText.new(w,114.5,361, 'text'=>'108', 'fill'=>color,
459
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
460
+ i = TkcPolygon.new(w,256,337,140,337,140,385,256,385,
461
+ 'fill'=>'', 'tags'=>['floor1','room'])
462
+ $floorLabels[i.id] = '107'
463
+ $floorItems['107'] = i
464
+ TkcText.new(w,198,361, 'text'=>'107', 'fill'=>color,
465
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
466
+ i = TkcPolygon.new(w,300,353,300,329,260,329,260,353,
467
+ 'fill'=>'', 'tags'=>['floor1','room'])
468
+ $floorLabels[i.id] = 'Smoking'
469
+ $floorItems['Smoking'] = i
470
+ TkcText.new(w,280,341, 'text'=>'Smoking', 'fill'=>color,
471
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
472
+ i = TkcPolygon.new(w,314,135,314,170,306,170,306,246,177,246,177,135,
473
+ 'fill'=>'', 'tags'=>['floor1','room'])
474
+ $floorLabels[i.id] = '123'
475
+ $floorItems['123'] = i
476
+ TkcText.new(w,245.5,190.5, 'text'=>'123', 'fill'=>color,
477
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
478
+ i = TkcPolygon.new(w,217,248,301,248,301,326,257,326,257,310,217,310,
479
+ 'fill'=>'', 'tags'=>['floor1','room'])
480
+ $floorLabels[i.id] = '103'
481
+ $floorItems['103'] = i
482
+ TkcText.new(w,259,287, 'text'=>'103', 'fill'=>color,
483
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
484
+ i = TkcPolygon.new(w,396,188,377,188,377,169,316,169,316,131,396,131,
485
+ 'fill'=>'', 'tags'=>['floor1','room'])
486
+ $floorLabels[i.id] = '124'
487
+ $floorItems['124'] = i
488
+ TkcText.new(w,356,150, 'text'=>'124', 'fill'=>color,
489
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
490
+ i = TkcPolygon.new(w,397,226,407,226,407,189,377,189,377,246,397,246,
491
+ 'fill'=>'', 'tags'=>['floor1','room'])
492
+ $floorLabels[i.id] = '125'
493
+ $floorItems['125'] = i
494
+ TkcText.new(w,392,217.5, 'text'=>'125', 'fill'=>color,
495
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
496
+ i = TkcPolygon.new(w,399,187,409,187,409,207,474,207,474,164,399,164,
497
+ 'fill'=>'', 'tags'=>['floor1','room'])
498
+ $floorLabels[i.id] = '126'
499
+ $floorItems['126'] = i
500
+ TkcText.new(w,436.5,185.5, 'text'=>'126', 'fill'=>color,
501
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
502
+ i = TkcPolygon.new(w,409,209,409,229,399,229,399,253,
503
+ 486,253,486,239,474,239,474,209,
504
+ 'fill'=>'', 'tags'=>['floor1','room'])
505
+ $floorLabels[i.id] = '127'
506
+ $floorItems['127'] = i
507
+ TkcText.new(w,436.5,'231', 'text'=>'127', 'fill'=>color,
508
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
509
+ i = TkcPolygon.new(w,501,164,501,174,495,174,495,188,
510
+ 490,188,490,204,476,204,476,164,
511
+ 'fill'=>'', 'tags'=>['floor1','room'])
512
+ $floorLabels[i.id] = 'MShower'
513
+ $floorItems['MShower'] = i
514
+ TkcText.new(w,488.5,'184', 'text'=>'MShower', 'fill'=>color,
515
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
516
+ i = TkcPolygon.new(w,497,176,513,176,513,204,492,204,492,190,497,190,
517
+ 'fill'=>'', 'tags'=>['floor1','room'])
518
+ $floorLabels[i.id] = 'Closet'
519
+ $floorItems['Closet'] = i
520
+ TkcText.new(w,502.5,190, 'text'=>'Closet', 'fill'=>color,
521
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
522
+ i = TkcPolygon.new(w,476,237,476,206,513,206,513,254,488,254,488,237,
523
+ 'fill'=>'', 'tags'=>['floor1','room'])
524
+ $floorLabels[i.id] = 'WShower'
525
+ $floorItems['WShower'] = i
526
+ TkcText.new(w,494.5,230, 'text'=>'WShower', 'fill'=>color,
527
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
528
+ i = TkcPolygon.new(w,486,131,558,131,558,135,724,135,724,166,
529
+ 697,166,697,275,553,275,531,254,515,254,
530
+ 515,174,503,174,503,161,486,161,
531
+ 'fill'=>'', 'tags'=>['floor1','room'])
532
+ $floorLabels[i.id] = '130'
533
+ $floorItems['130'] = i
534
+ TkcText.new(w,638.5,205, 'text'=>'130', 'fill'=>color,
535
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
536
+ i = TkcPolygon.new(w,308,242,339,242,339,248,342,248,
537
+ 342,246,397,246,397,276,393,276,
538
+ 393,309,300,309,300,248,308,248,
539
+ 'fill'=>'', 'tags'=>['floor1','room'])
540
+ $floorLabels[i.id] = '102'
541
+ $floorItems['102'] = i
542
+ TkcText.new(w,367.5,278.5, 'text'=>'102', 'fill'=>color,
543
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
544
+ i = TkcPolygon.new(w,397,255,486,255,486,276,397,276,
545
+ 'fill'=>'', 'tags'=>['floor1','room'])
546
+ $floorLabels[i.id] = '128'
547
+ $floorItems['128'] = i
548
+ TkcText.new(w,441.5,265.5, 'text'=>'128', 'fill'=>color,
549
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
550
+ i = TkcPolygon.new(w,510,309,486,309,486,255,530,255,
551
+ 552,277,561,277,561,325,510,325,
552
+ 'fill'=>'', 'tags'=>['floor1','room'])
553
+ $floorLabels[i.id] = '129'
554
+ $floorItems['129'] = i
555
+ TkcText.new(w,535.5,293, 'text'=>'129', 'fill'=>color,
556
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
557
+ i = TkcPolygon.new(w,696,281,740,281,740,387,642,387,
558
+ 642,389,561,389,561,277,696,277,
559
+ 'fill'=>'', 'tags'=>['floor1','room'])
560
+ $floorLabels[i.id] = '133'
561
+ $floorItems['133'] = i
562
+ TkcText.new(w,628.5,335, 'text'=>'133', 'fill'=>color,
563
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
564
+ i = TkcPolygon.new(w,742,387,742,281,800,281,800,387,
565
+ 'fill'=>'', 'tags'=>['floor1','room'])
566
+ $floorLabels[i.id] = '132'
567
+ $floorItems['132'] = i
568
+ TkcText.new(w,771,334, 'text'=>'132', 'fill'=>color,
569
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
570
+ i = TkcPolygon.new(w,800,168,800,280,699,280,699,168,
571
+ 'fill'=>'', 'tags'=>['floor1','room'])
572
+ $floorLabels[i.id] = '134'
573
+ $floorItems['134'] = i
574
+ TkcText.new(w,749.5,224, 'text'=>'134', 'fill'=>color,
575
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
576
+ i = TkcPolygon.new(w,726,131,726,166,800,166,800,131,
577
+ 'fill'=>'', 'tags'=>['floor1','room'])
578
+ $floorLabels[i.id] = '135'
579
+ $floorItems['135'] = i
580
+ TkcText.new(w,763,148.5, 'text'=>'135', 'fill'=>color,
581
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
582
+ i = TkcPolygon.new(w,340,360,335,363,331,365,326,366,304,366,
583
+ 304,312,396,312,396,288,400,288,404,288,
584
+ 409,290,413,292,418,297,421,302,422,309,
585
+ 421,318,417,325,411,330,405,332,397,333,
586
+ 344,333,340,334,336,336,335,338,332,342,
587
+ 331,347,332,351,334,354,336,357,341,359,
588
+ 'fill'=>'', 'tags'=>['floor1','room'])
589
+ $floorLabels[i.id] = 'Ramona Stair'
590
+ $floorItems['Ramona Stair'] = i
591
+ TkcText.new(w,368,323, 'text'=>'Ramona Stair', 'fill'=>color,
592
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
593
+ i = TkcPolygon.new(w,30,23,30,5,93,5,98,5,104,7,110,10,116,16,119,20,
594
+ 122,28,123,32,123,68,220,68,220,87,90,87,90,23,
595
+ 'fill'=>'', 'tags'=>['floor1','room'])
596
+ $floorLabels[i.id] = 'University Stair'
597
+ $floorItems['University Stair'] = i
598
+ TkcText.new(w,155,77.5, 'text'=>'University Stair', 'fill'=>color,
599
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
600
+ i = TkcPolygon.new(w,282,37,295,40,312,49,323,56,337,70,352,56,
601
+ 358,48,363,39,365,29,348,25,335,22,321,14,
602
+ 300,5,283,1,260,0,246,0,242,2,236,4,231,8,
603
+ 227,13,223,17,221,22,220,34,260,34,
604
+ 'fill'=>'', 'tags'=>['floor1','room'])
605
+ $floorLabels[i.id] = 'Plaza Stair'
606
+ $floorItems['Plaza Stair'] = i
607
+ TkcText.new(w,317.5,28.5, 'text'=>'Plaza Stair', 'fill'=>color,
608
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
609
+ i = TkcPolygon.new(w,220,34,260,34,282,37,295,40,312,49,
610
+ 323,56,337,70,350,83,365,94,377,100,
611
+ 386,104,386,128,220,128,
612
+ 'fill'=>'', 'tags'=>['floor1','room'])
613
+ $floorLabels[i.id] = 'Plaza Deck'
614
+ $floorItems['Plaza Deck'] = i
615
+ TkcText.new(w,303,81, 'text'=>'Plaza Deck', 'fill'=>color,
616
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
617
+ i = TkcPolygon.new(w,257,336,77,336,6,336,6,301,77,301,77,310,257,310,
618
+ 'fill'=>'', 'tags'=>['floor1','room'])
619
+ $floorLabels[i.id] = '106'
620
+ $floorItems['106'] = i
621
+ TkcText.new(w,131.5,318.5, 'text'=>'106', 'fill'=>color,
622
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
623
+ i = TkcPolygon.new(w,146,110,162,110,162,91,130,91,130,115,95,115,
624
+ 95,128,114,128,114,151,157,151,157,153,112,153,
625
+ 112,130,97,130,97,168,175,168,175,131,146,131,
626
+ 'fill'=>'', 'tags'=>['floor1','room'])
627
+ $floorLabels[i.id] = '119'
628
+ $floorItems['119'] = i
629
+ TkcText.new(w,143.5,133, 'text'=>'119', 'fill'=>color,
630
+ 'anchor'=>'c', 'tags'=>['floor1','label'])
631
+ TkcLine.new(w,155,191,155,189, 'fill'=>color, 'tags'=>['floor1','wall'])
632
+ TkcLine.new(w,155,177,155,169, 'fill'=>color, 'tags'=>['floor1','wall'])
633
+ TkcLine.new(w,96,129,96,169, 'fill'=>color, 'tags'=>['floor1','wall'])
634
+ TkcLine.new(w,78,169,176,169, 'fill'=>color, 'tags'=>['floor1','wall'])
635
+ TkcLine.new(w,176,247,176,129, 'fill'=>color, 'tags'=>['floor1','wall'])
636
+ TkcLine.new(w,340,206,307,206, 'fill'=>color, 'tags'=>['floor1','wall'])
637
+ TkcLine.new(w,340,187,340,170, 'fill'=>color, 'tags'=>['floor1','wall'])
638
+ TkcLine.new(w,340,210,340,201, 'fill'=>color, 'tags'=>['floor1','wall'])
639
+ TkcLine.new(w,340,247,340,224, 'fill'=>color, 'tags'=>['floor1','wall'])
640
+ TkcLine.new(w,340,241,307,241, 'fill'=>color, 'tags'=>['floor1','wall'])
641
+ TkcLine.new(w,376,246,376,170, 'fill'=>color, 'tags'=>['floor1','wall'])
642
+ TkcLine.new(w,307,247,307,170, 'fill'=>color, 'tags'=>['floor1','wall'])
643
+ TkcLine.new(w,376,170,307,170, 'fill'=>color, 'tags'=>['floor1','wall'])
644
+ TkcLine.new(w,315,129,315,170, 'fill'=>color, 'tags'=>['floor1','wall'])
645
+ TkcLine.new(w,147,129,176,129, 'fill'=>color, 'tags'=>['floor1','wall'])
646
+ TkcLine.new(w,202,133,176,133, 'fill'=>color, 'tags'=>['floor1','wall'])
647
+ TkcLine.new(w,398,129,315,129, 'fill'=>color, 'tags'=>['floor1','wall'])
648
+ TkcLine.new(w,258,352,258,387, 'fill'=>color, 'tags'=>['floor1','wall'])
649
+ TkcLine.new(w,60,387,60,391, 'fill'=>color, 'tags'=>['floor1','wall'])
650
+ TkcLine.new(w,0,337,0,391, 'fill'=>color, 'tags'=>['floor1','wall'])
651
+ TkcLine.new(w,60,391,0,391, 'fill'=>color, 'tags'=>['floor1','wall'])
652
+ TkcLine.new(w,3,114,3,337, 'fill'=>color, 'tags'=>['floor1','wall'])
653
+ TkcLine.new(w,258,387,60,387, 'fill'=>color, 'tags'=>['floor1','wall'])
654
+ TkcLine.new(w,52,237,52,273, 'fill'=>color, 'tags'=>['floor1','wall'])
655
+ TkcLine.new(w,52,189,52,225, 'fill'=>color, 'tags'=>['floor1','wall'])
656
+ TkcLine.new(w,52,140,52,177, 'fill'=>color, 'tags'=>['floor1','wall'])
657
+ TkcLine.new(w,395,306,395,311, 'fill'=>color, 'tags'=>['floor1','wall'])
658
+ TkcLine.new(w,531,254,398,254, 'fill'=>color, 'tags'=>['floor1','wall'])
659
+ TkcLine.new(w,475,178,475,238, 'fill'=>color, 'tags'=>['floor1','wall'])
660
+ TkcLine.new(w,502,162,398,162, 'fill'=>color, 'tags'=>['floor1','wall'])
661
+ TkcLine.new(w,398,129,398,188, 'fill'=>color, 'tags'=>['floor1','wall'])
662
+ TkcLine.new(w,383,188,376,188, 'fill'=>color, 'tags'=>['floor1','wall'])
663
+ TkcLine.new(w,408,188,408,194, 'fill'=>color, 'tags'=>['floor1','wall'])
664
+ TkcLine.new(w,398,227,398,254, 'fill'=>color, 'tags'=>['floor1','wall'])
665
+ TkcLine.new(w,408,227,398,227, 'fill'=>color, 'tags'=>['floor1','wall'])
666
+ TkcLine.new(w,408,222,408,227, 'fill'=>color, 'tags'=>['floor1','wall'])
667
+ TkcLine.new(w,408,206,408,210, 'fill'=>color, 'tags'=>['floor1','wall'])
668
+ TkcLine.new(w,408,208,475,208, 'fill'=>color, 'tags'=>['floor1','wall'])
669
+ TkcLine.new(w,484,278,484,311, 'fill'=>color, 'tags'=>['floor1','wall'])
670
+ TkcLine.new(w,484,311,508,311, 'fill'=>color, 'tags'=>['floor1','wall'])
671
+ TkcLine.new(w,508,327,508,311, 'fill'=>color, 'tags'=>['floor1','wall'])
672
+ TkcLine.new(w,559,327,508,327, 'fill'=>color, 'tags'=>['floor1','wall'])
673
+ TkcLine.new(w,644,391,559,391, 'fill'=>color, 'tags'=>['floor1','wall'])
674
+ TkcLine.new(w,644,389,644,391, 'fill'=>color, 'tags'=>['floor1','wall'])
675
+ TkcLine.new(w,514,205,475,205, 'fill'=>color, 'tags'=>['floor1','wall'])
676
+ TkcLine.new(w,496,189,496,187, 'fill'=>color, 'tags'=>['floor1','wall'])
677
+ TkcLine.new(w,559,129,484,129, 'fill'=>color, 'tags'=>['floor1','wall'])
678
+ TkcLine.new(w,484,162,484,129, 'fill'=>color, 'tags'=>['floor1','wall'])
679
+ TkcLine.new(w,725,133,559,133, 'fill'=>color, 'tags'=>['floor1','wall'])
680
+ TkcLine.new(w,559,129,559,133, 'fill'=>color, 'tags'=>['floor1','wall'])
681
+ TkcLine.new(w,725,149,725,167, 'fill'=>color, 'tags'=>['floor1','wall'])
682
+ TkcLine.new(w,725,129,802,129, 'fill'=>color, 'tags'=>['floor1','wall'])
683
+ TkcLine.new(w,802,389,802,129, 'fill'=>color, 'tags'=>['floor1','wall'])
684
+ TkcLine.new(w,739,167,802,167, 'fill'=>color, 'tags'=>['floor1','wall'])
685
+ TkcLine.new(w,396,188,408,188, 'fill'=>color, 'tags'=>['floor1','wall'])
686
+ TkcLine.new(w,0,337,9,337, 'fill'=>color, 'tags'=>['floor1','wall'])
687
+ TkcLine.new(w,58,337,21,337, 'fill'=>color, 'tags'=>['floor1','wall'])
688
+ TkcLine.new(w,43,391,43,337, 'fill'=>color, 'tags'=>['floor1','wall'])
689
+ TkcLine.new(w,105,337,75,337, 'fill'=>color, 'tags'=>['floor1','wall'])
690
+ TkcLine.new(w,91,387,91,337, 'fill'=>color, 'tags'=>['floor1','wall'])
691
+ TkcLine.new(w,154,337,117,337, 'fill'=>color, 'tags'=>['floor1','wall'])
692
+ TkcLine.new(w,139,387,139,337, 'fill'=>color, 'tags'=>['floor1','wall'])
693
+ TkcLine.new(w,227,337,166,337, 'fill'=>color, 'tags'=>['floor1','wall'])
694
+ TkcLine.new(w,258,337,251,337, 'fill'=>color, 'tags'=>['floor1','wall'])
695
+ TkcLine.new(w,258,328,302,328, 'fill'=>color, 'tags'=>['floor1','wall'])
696
+ TkcLine.new(w,302,355,302,311, 'fill'=>color, 'tags'=>['floor1','wall'])
697
+ TkcLine.new(w,395,311,302,311, 'fill'=>color, 'tags'=>['floor1','wall'])
698
+ TkcLine.new(w,484,278,395,278, 'fill'=>color, 'tags'=>['floor1','wall'])
699
+ TkcLine.new(w,395,294,395,278, 'fill'=>color, 'tags'=>['floor1','wall'])
700
+ TkcLine.new(w,473,278,473,275, 'fill'=>color, 'tags'=>['floor1','wall'])
701
+ TkcLine.new(w,473,256,473,254, 'fill'=>color, 'tags'=>['floor1','wall'])
702
+ TkcLine.new(w,533,257,531,254, 'fill'=>color, 'tags'=>['floor1','wall'])
703
+ TkcLine.new(w,553,276,551,274, 'fill'=>color, 'tags'=>['floor1','wall'])
704
+ TkcLine.new(w,698,276,553,276, 'fill'=>color, 'tags'=>['floor1','wall'])
705
+ TkcLine.new(w,559,391,559,327, 'fill'=>color, 'tags'=>['floor1','wall'])
706
+ TkcLine.new(w,802,389,644,389, 'fill'=>color, 'tags'=>['floor1','wall'])
707
+ TkcLine.new(w,741,314,741,389, 'fill'=>color, 'tags'=>['floor1','wall'])
708
+ TkcLine.new(w,698,280,698,167, 'fill'=>color, 'tags'=>['floor1','wall'])
709
+ TkcLine.new(w,707,280,698,280, 'fill'=>color, 'tags'=>['floor1','wall'])
710
+ TkcLine.new(w,802,280,731,280, 'fill'=>color, 'tags'=>['floor1','wall'])
711
+ TkcLine.new(w,741,280,741,302, 'fill'=>color, 'tags'=>['floor1','wall'])
712
+ TkcLine.new(w,698,167,727,167, 'fill'=>color, 'tags'=>['floor1','wall'])
713
+ TkcLine.new(w,725,137,725,129, 'fill'=>color, 'tags'=>['floor1','wall'])
714
+ TkcLine.new(w,514,254,514,175, 'fill'=>color, 'tags'=>['floor1','wall'])
715
+ TkcLine.new(w,496,175,514,175, 'fill'=>color, 'tags'=>['floor1','wall'])
716
+ TkcLine.new(w,502,175,502,162, 'fill'=>color, 'tags'=>['floor1','wall'])
717
+ TkcLine.new(w,475,166,475,162, 'fill'=>color, 'tags'=>['floor1','wall'])
718
+ TkcLine.new(w,496,176,496,175, 'fill'=>color, 'tags'=>['floor1','wall'])
719
+ TkcLine.new(w,491,189,496,189, 'fill'=>color, 'tags'=>['floor1','wall'])
720
+ TkcLine.new(w,491,205,491,189, 'fill'=>color, 'tags'=>['floor1','wall'])
721
+ TkcLine.new(w,487,238,475,238, 'fill'=>color, 'tags'=>['floor1','wall'])
722
+ TkcLine.new(w,487,240,487,238, 'fill'=>color, 'tags'=>['floor1','wall'])
723
+ TkcLine.new(w,487,252,487,254, 'fill'=>color, 'tags'=>['floor1','wall'])
724
+ TkcLine.new(w,315,133,304,133, 'fill'=>color, 'tags'=>['floor1','wall'])
725
+ TkcLine.new(w,256,133,280,133, 'fill'=>color, 'tags'=>['floor1','wall'])
726
+ TkcLine.new(w,78,247,270,247, 'fill'=>color, 'tags'=>['floor1','wall'])
727
+ TkcLine.new(w,307,247,294,247, 'fill'=>color, 'tags'=>['floor1','wall'])
728
+ TkcLine.new(w,214,133,232,133, 'fill'=>color, 'tags'=>['floor1','wall'])
729
+ TkcLine.new(w,217,247,217,266, 'fill'=>color, 'tags'=>['floor1','wall'])
730
+ TkcLine.new(w,217,309,217,291, 'fill'=>color, 'tags'=>['floor1','wall'])
731
+ TkcLine.new(w,217,309,172,309, 'fill'=>color, 'tags'=>['floor1','wall'])
732
+ TkcLine.new(w,154,309,148,309, 'fill'=>color, 'tags'=>['floor1','wall'])
733
+ TkcLine.new(w,175,300,175,309, 'fill'=>color, 'tags'=>['floor1','wall'])
734
+ TkcLine.new(w,151,300,175,300, 'fill'=>color, 'tags'=>['floor1','wall'])
735
+ TkcLine.new(w,151,247,151,309, 'fill'=>color, 'tags'=>['floor1','wall'])
736
+ TkcLine.new(w,78,237,78,265, 'fill'=>color, 'tags'=>['floor1','wall'])
737
+ TkcLine.new(w,78,286,78,309, 'fill'=>color, 'tags'=>['floor1','wall'])
738
+ TkcLine.new(w,106,309,78,309, 'fill'=>color, 'tags'=>['floor1','wall'])
739
+ TkcLine.new(w,130,309,125,309, 'fill'=>color, 'tags'=>['floor1','wall'])
740
+ TkcLine.new(w,99,309,99,247, 'fill'=>color, 'tags'=>['floor1','wall'])
741
+ TkcLine.new(w,127,299,99,299, 'fill'=>color, 'tags'=>['floor1','wall'])
742
+ TkcLine.new(w,127,309,127,299, 'fill'=>color, 'tags'=>['floor1','wall'])
743
+ TkcLine.new(w,155,191,137,191, 'fill'=>color, 'tags'=>['floor1','wall'])
744
+ TkcLine.new(w,137,169,137,191, 'fill'=>color, 'tags'=>['floor1','wall'])
745
+ TkcLine.new(w,78,171,78,169, 'fill'=>color, 'tags'=>['floor1','wall'])
746
+ TkcLine.new(w,78,190,78,218, 'fill'=>color, 'tags'=>['floor1','wall'])
747
+ TkcLine.new(w,86,192,86,169, 'fill'=>color, 'tags'=>['floor1','wall'])
748
+ TkcLine.new(w,86,192,78,192, 'fill'=>color, 'tags'=>['floor1','wall'])
749
+ TkcLine.new(w,52,301,3,301, 'fill'=>color, 'tags'=>['floor1','wall'])
750
+ TkcLine.new(w,52,286,52,301, 'fill'=>color, 'tags'=>['floor1','wall'])
751
+ TkcLine.new(w,52,252,3,252, 'fill'=>color, 'tags'=>['floor1','wall'])
752
+ TkcLine.new(w,52,203,3,203, 'fill'=>color, 'tags'=>['floor1','wall'])
753
+ TkcLine.new(w,3,156,52,156, 'fill'=>color, 'tags'=>['floor1','wall'])
754
+ TkcLine.new(w,8,25,8,114, 'fill'=>color, 'tags'=>['floor1','wall'])
755
+ TkcLine.new(w,63,114,3,114, 'fill'=>color, 'tags'=>['floor1','wall'])
756
+ TkcLine.new(w,75,114,97,114, 'fill'=>color, 'tags'=>['floor1','wall'])
757
+ TkcLine.new(w,108,114,129,114, 'fill'=>color, 'tags'=>['floor1','wall'])
758
+ TkcLine.new(w,129,114,129,89, 'fill'=>color, 'tags'=>['floor1','wall'])
759
+ TkcLine.new(w,52,114,52,128, 'fill'=>color, 'tags'=>['floor1','wall'])
760
+ TkcLine.new(w,132,89,88,89, 'fill'=>color, 'tags'=>['floor1','wall'])
761
+ TkcLine.new(w,88,25,88,89, 'fill'=>color, 'tags'=>['floor1','wall'])
762
+ TkcLine.new(w,88,114,88,89, 'fill'=>color, 'tags'=>['floor1','wall'])
763
+ TkcLine.new(w,218,89,144,89, 'fill'=>color, 'tags'=>['floor1','wall'])
764
+ TkcLine.new(w,147,111,147,129, 'fill'=>color, 'tags'=>['floor1','wall'])
765
+ TkcLine.new(w,162,111,147,111, 'fill'=>color, 'tags'=>['floor1','wall'])
766
+ TkcLine.new(w,162,109,162,111, 'fill'=>color, 'tags'=>['floor1','wall'])
767
+ TkcLine.new(w,162,96,162,89, 'fill'=>color, 'tags'=>['floor1','wall'])
768
+ TkcLine.new(w,218,89,218,94, 'fill'=>color, 'tags'=>['floor1','wall'])
769
+ TkcLine.new(w,218,89,218,119, 'fill'=>color, 'tags'=>['floor1','wall'])
770
+ TkcLine.new(w,8,25,88,25, 'fill'=>color, 'tags'=>['floor1','wall'])
771
+ TkcLine.new(w,258,337,258,328, 'fill'=>color, 'tags'=>['floor1','wall'])
772
+ TkcLine.new(w,113,129,96,129, 'fill'=>color, 'tags'=>['floor1','wall'])
773
+ TkcLine.new(w,302,355,258,355, 'fill'=>color, 'tags'=>['floor1','wall'])
774
+ TkcLine.new(w,386,104,386,129, 'fill'=>color, 'tags'=>['floor1','wall'])
775
+ TkcLine.new(w,377,100,386,104, 'fill'=>color, 'tags'=>['floor1','wall'])
776
+ TkcLine.new(w,365,94,377,100, 'fill'=>color, 'tags'=>['floor1','wall'])
777
+ TkcLine.new(w,350,83,365,94, 'fill'=>color, 'tags'=>['floor1','wall'])
778
+ TkcLine.new(w,337,70,350,83, 'fill'=>color, 'tags'=>['floor1','wall'])
779
+ TkcLine.new(w,337,70,323,56, 'fill'=>color, 'tags'=>['floor1','wall'])
780
+ TkcLine.new(w,312,49,323,56, 'fill'=>color, 'tags'=>['floor1','wall'])
781
+ TkcLine.new(w,295,40,312,49, 'fill'=>color, 'tags'=>['floor1','wall'])
782
+ TkcLine.new(w,282,37,295,40, 'fill'=>color, 'tags'=>['floor1','wall'])
783
+ TkcLine.new(w,260,34,282,37, 'fill'=>color, 'tags'=>['floor1','wall'])
784
+ TkcLine.new(w,253,34,260,34, 'fill'=>color, 'tags'=>['floor1','wall'])
785
+ TkcLine.new(w,386,128,386,104, 'fill'=>color, 'tags'=>['floor1','wall'])
786
+ TkcLine.new(w,113,152,156,152, 'fill'=>color, 'tags'=>['floor1','wall'])
787
+ TkcLine.new(w,113,152,156,152, 'fill'=>color, 'tags'=>['floor1','wall'])
788
+ TkcLine.new(w,113,152,113,129, 'fill'=>color, 'tags'=>['floor1','wall'])
789
+ end
790
+
791
+ # floor_fg2 --
792
+ # This method represents part of the floorplan database. When
793
+ # invoked, it instantiates the foreground information for the second
794
+ # floor (office outlines and numbers).
795
+ #
796
+ # Arguments:
797
+ # w - The canvas window.
798
+ # color - Color to use for drawing foreground information.
799
+
800
+ def floor_fg2(w,color)
801
+ i = TkcPolygon.new(w,748,188,755,188,755,205,758,205,758,222,
802
+ 800,222,800,168,748,168,
803
+ 'fill'=>'', 'tags'=>['floor2','room'])
804
+ $floorLabels[i.id] = '238'
805
+ $floorItems['238'] = i
806
+ TkcText.new(w,774,195, 'text'=>'238', 'fill'=>color,
807
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
808
+ i = TkcPolygon.new(w,726,188,746,188,746,166,800,166,800,131,726,131,
809
+ 'fill'=>'', 'tags'=>['floor2','room'])
810
+ $floorLabels[i.id] = '237'
811
+ $floorItems['237'] = i
812
+ TkcText.new(w,763,148.5, 'text'=>'237', 'fill'=>color,
813
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
814
+ i = TkcPolygon.new(w,497,187,497,204,559,204,559,324,641,324,
815
+ 643,324,643,291,641,291,641,205,696,205,
816
+ 696,291,694,291,694,314,715,314,715,291,
817
+ 715,205,755,205,755,190,724,190,724,187,
818
+ 'fill'=>'', 'tags'=>['floor2','room'])
819
+ $floorLabels[i.id] = '246'
820
+ $floorItems['246'] = i
821
+ TkcText.new(w,600,264, 'text'=>'246', 'fill'=>color,
822
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
823
+ i = TkcPolygon.new(w,694,279,643,279,643,314,694,314,
824
+ 'fill'=>'', 'tags'=>['floor2','room'])
825
+ $floorLabels[i.id] = '247'
826
+ $floorItems['247'] = i
827
+ TkcText.new(w,668.5,296.5, 'text'=>'247', 'fill'=>color,
828
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
829
+ i = TkcPolygon.new(w,232,250,308,250,308,242,339,242,339,246,
830
+ 397,246,397,255,476,255,476,250,482,250,559,250,
831
+ 559,274,482,274,482,278,396,278,396,274,232,274,
832
+ 'fill'=>'', 'tags'=>['floor2','room'])
833
+ $floorLabels[i.id] = '202'
834
+ $floorItems['202'] = i
835
+ TkcText.new(w,285.5,260, 'text'=>'202', 'fill'=>color,
836
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
837
+ i = TkcPolygon.new(w,53,228,53,338,176,338,233,338,233,196,
838
+ 306,196,306,180,175,180,175,169,156,169,
839
+ 156,196,176,196,176,228,
840
+ 'fill'=>'', 'tags'=>['floor2','room'])
841
+ $floorLabels[i.id] = '206'
842
+ $floorItems['206'] = i
843
+ TkcText.new(w,143,267, 'text'=>'206', 'fill'=>color,
844
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
845
+ i = TkcPolygon.new(w,51,277,6,277,6,338,51,338,
846
+ 'fill'=>'', 'tags'=>['floor2','room'])
847
+ $floorLabels[i.id] = '212'
848
+ $floorItems['212'] = i
849
+ TkcText.new(w,28.5,307.5, 'text'=>'212', 'fill'=>color,
850
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
851
+ i = TkcPolygon.new(w,557,276,486,276,486,309,510,309,510,325,557,325,
852
+ 'fill'=>'', 'tags'=>['floor2','room'])
853
+ $floorLabels[i.id] = '245'
854
+ $floorItems['245'] = i
855
+ TkcText.new(w,521.5,300.5, 'text'=>'245', 'fill'=>color,
856
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
857
+ i = TkcPolygon.new(w,560,389,599,389,599,326,560,326,
858
+ 'fill'=>'', 'tags'=>['floor2','room'])
859
+ $floorLabels[i.id] = '244'
860
+ $floorItems['244'] = i
861
+ TkcText.new(w,579.5,357.5, 'text'=>'244', 'fill'=>color,
862
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
863
+ i = TkcPolygon.new(w,601,389,601,326,643,326,643,389,
864
+ 'fill'=>'', 'tags'=>['floor2','room'])
865
+ $floorLabels[i.id] = '243'
866
+ $floorItems['243'] = i
867
+ TkcText.new(w,622,357.5, 'text'=>'243', 'fill'=>color,
868
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
869
+ i = TkcPolygon.new(w,688,316,645,316,645,365,688,365,
870
+ 'fill'=>'', 'tags'=>['floor2','room'])
871
+ $floorLabels[i.id] = '242'
872
+ $floorItems['242'] = i
873
+ TkcText.new(w,666.5,340.5, 'text'=>'242', 'fill'=>color,
874
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
875
+ i = TkcPolygon.new(w,802,367,759,367,759,226,802,226,
876
+ 'fill'=>'', 'tags'=>['floor2','room'])
877
+ $floorLabels[i.id] = 'Barbecue Deck'
878
+ $floorItems['Barbecue Deck'] = i
879
+ TkcText.new(w,780.5,296.5, 'text'=>'Barbecue Deck', 'fill'=>color,
880
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
881
+ i = TkcPolygon.new(w,755,262,755,314,717,314,717,262,
882
+ 'fill'=>'', 'tags'=>['floor2','room'])
883
+ $floorLabels[i.id] = '240'
884
+ $floorItems['240'] = i
885
+ TkcText.new(w,736,288, 'text'=>'240', 'fill'=>color,
886
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
887
+ i = TkcPolygon.new(w,755,316,689,316,689,365,755,365,
888
+ 'fill'=>'', 'tags'=>['floor2','room'])
889
+ $floorLabels[i.id] = '241'
890
+ $floorItems['241'] = i
891
+ TkcText.new(w,722,340.5, 'text'=>'241', 'fill'=>color,
892
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
893
+ i = TkcPolygon.new(w,755,206,717,206,717,261,755,261,
894
+ 'fill'=>'', 'tags'=>['floor2','room'])
895
+ $floorLabels[i.id] = '239'
896
+ $floorItems['239'] = i
897
+ TkcText.new(w,736,233.5, 'text'=>'239', 'fill'=>color,
898
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
899
+ i = TkcPolygon.new(w,695,277,643,277,643,206,695,206,
900
+ 'fill'=>'', 'tags'=>['floor2','room'])
901
+ $floorLabels[i.id] = '248'
902
+ $floorItems['248'] = i
903
+ TkcText.new(w,669,241.5, 'text'=>'248', 'fill'=>color,
904
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
905
+ i = TkcPolygon.new(w,676,135,676,185,724,185,724,135,
906
+ 'fill'=>'', 'tags'=>['floor2','room'])
907
+ $floorLabels[i.id] = '236'
908
+ $floorItems['236'] = i
909
+ TkcText.new(w,700,160, 'text'=>'236', 'fill'=>color,
910
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
911
+ i = TkcPolygon.new(w,675,135,635,135,635,145,628,145,628,185,675,185,
912
+ 'fill'=>'', 'tags'=>['floor2','room'])
913
+ $floorLabels[i.id] = '235'
914
+ $floorItems['235'] = i
915
+ TkcText.new(w,651.5,160, 'text'=>'235', 'fill'=>color,
916
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
917
+ i = TkcPolygon.new(w,626,143,633,143,633,135,572,135,
918
+ 572,143,579,143,579,185,626,185,
919
+ 'fill'=>'', 'tags'=>['floor2','room'])
920
+ $floorLabels[i.id] = '234'
921
+ $floorItems['234'] = i
922
+ TkcText.new(w,606,160, 'text'=>'234', 'fill'=>color,
923
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
924
+ i = TkcPolygon.new(w,557,135,571,135,571,145,578,145,
925
+ 578,185,527,185,527,131,557,131,
926
+ 'fill'=>'', 'tags'=>['floor2','room'])
927
+ $floorLabels[i.id] = '233'
928
+ $floorItems['233'] = i
929
+ TkcText.new(w,552.5,158, 'text'=>'233', 'fill'=>color,
930
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
931
+ i = TkcPolygon.new(w,476,249,557,249,557,205,476,205,
932
+ 'fill'=>'', 'tags'=>['floor2','room'])
933
+ $floorLabels[i.id] = '230'
934
+ $floorItems['230'] = i
935
+ TkcText.new(w,516.5,227, 'text'=>'230', 'fill'=>color,
936
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
937
+ i = TkcPolygon.new(w,476,164,486,164,486,131,525,131,525,185,476,185,
938
+ 'fill'=>'', 'tags'=>['floor2','room'])
939
+ $floorLabels[i.id] = '232'
940
+ $floorItems['232'] = i
941
+ TkcText.new(w,500.5,158, 'text'=>'232', 'fill'=>color,
942
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
943
+ i = TkcPolygon.new(w,476,186,495,186,495,204,476,204,
944
+ 'fill'=>'', 'tags'=>['floor2','room'])
945
+ $floorLabels[i.id] = '229'
946
+ $floorItems['229'] = i
947
+ TkcText.new(w,485.5,195, 'text'=>'229', 'fill'=>color,
948
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
949
+ i = TkcPolygon.new(w,474,207,409,207,409,187,399,187,399,164,474,164,
950
+ 'fill'=>'', 'tags'=>['floor2','room'])
951
+ $floorLabels[i.id] = '227'
952
+ $floorItems['227'] = i
953
+ TkcText.new(w,436.5,185.5, 'text'=>'227', 'fill'=>color,
954
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
955
+ i = TkcPolygon.new(w,399,228,399,253,474,253,474,209,409,209,409,228,
956
+ 'fill'=>'', 'tags'=>['floor2','room'])
957
+ $floorLabels[i.id] = '228'
958
+ $floorItems['228'] = i
959
+ TkcText.new(w,436.5,231, 'text'=>'228', 'fill'=>color,
960
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
961
+ i = TkcPolygon.new(w,397,246,397,226,407,226,407,189,377,189,377,246,
962
+ 'fill'=>'', 'tags'=>['floor2','room'])
963
+ $floorLabels[i.id] = '226'
964
+ $floorItems['226'] = i
965
+ TkcText.new(w,392,217.5, 'text'=>'226', 'fill'=>color,
966
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
967
+ i = TkcPolygon.new(w,377,169,316,169,316,131,397,131,397,188,377,188,
968
+ 'fill'=>'', 'tags'=>['floor2','room'])
969
+ $floorLabels[i.id] = '225'
970
+ $floorItems['225'] = i
971
+ TkcText.new(w,356.5,150, 'text'=>'225', 'fill'=>color,
972
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
973
+ i = TkcPolygon.new(w,234,198,306,198,306,249,234,249,
974
+ 'fill'=>'', 'tags'=>['floor2','room'])
975
+ $floorLabels[i.id] = '224'
976
+ $floorItems['224'] = i
977
+ TkcText.new(w,270,223.5, 'text'=>'224', 'fill'=>color,
978
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
979
+ i = TkcPolygon.new(w,270,179,306,179,306,170,314,170,314,135,270,135,
980
+ 'fill'=>'', 'tags'=>['floor2','room'])
981
+ $floorLabels[i.id] = '223'
982
+ $floorItems['223'] = i
983
+ TkcText.new(w,292,157, 'text'=>'223', 'fill'=>color,
984
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
985
+ i = TkcPolygon.new(w,268,179,221,179,221,135,268,135,
986
+ 'fill'=>'', 'tags'=>['floor2','room'])
987
+ $floorLabels[i.id] = '222'
988
+ $floorItems['222'] = i
989
+ TkcText.new(w,244.5,157, 'text'=>'222', 'fill'=>color,
990
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
991
+ i = TkcPolygon.new(w,177,179,219,179,219,135,177,135,
992
+ 'fill'=>'', 'tags'=>['floor2','room'])
993
+ $floorLabels[i.id] = '221'
994
+ $floorItems['221'] = i
995
+ TkcText.new(w,198,157, 'text'=>'221', 'fill'=>color,
996
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
997
+ i = TkcPolygon.new(w,299,327,349,327,349,284,341,284,341,276,299,276,
998
+ 'fill'=>'', 'tags'=>['floor2','room'])
999
+ $floorLabels[i.id] = '204'
1000
+ $floorItems['204'] = i
1001
+ TkcText.new(w,324,301.5, 'text'=>'204', 'fill'=>color,
1002
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1003
+ i = TkcPolygon.new(w,234,276,297,276,297,327,257,327,257,338,234,338,
1004
+ 'fill'=>'', 'tags'=>['floor2','room'])
1005
+ $floorLabels[i.id] = '205'
1006
+ $floorItems['205'] = i
1007
+ TkcText.new(w,265.5,307, 'text'=>'205', 'fill'=>color,
1008
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1009
+ i = TkcPolygon.new(w,256,385,256,340,212,340,212,385,
1010
+ 'fill'=>'', 'tags'=>['floor2','room'])
1011
+ $floorLabels[i.id] = '207'
1012
+ $floorItems['207'] = i
1013
+ TkcText.new(w,234,362.5, 'text'=>'207', 'fill'=>color,
1014
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1015
+ i = TkcPolygon.new(w,210,340,164,340,164,385,210,385,
1016
+ 'fill'=>'', 'tags'=>['floor2','room'])
1017
+ $floorLabels[i.id] = '208'
1018
+ $floorItems['208'] = i
1019
+ TkcText.new(w,187,362.5, 'text'=>'208', 'fill'=>color,
1020
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1021
+ i = TkcPolygon.new(w,115,340,162,340,162,385,115,385,
1022
+ 'fill'=>'', 'tags'=>['floor2','room'])
1023
+ $floorLabels[i.id] = '209'
1024
+ $floorItems['209'] = i
1025
+ TkcText.new(w,138.5,362.5, 'text'=>'209', 'fill'=>color,
1026
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1027
+ i = TkcPolygon.new(w,89,228,89,156,53,156,53,228,
1028
+ 'fill'=>'', 'tags'=>['floor2','room'])
1029
+ $floorLabels[i.id] = '217'
1030
+ $floorItems['217'] = i
1031
+ TkcText.new(w,71,192, 'text'=>'217', 'fill'=>color,
1032
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1033
+ i = TkcPolygon.new(w,89,169,97,169,97,190,89,190,
1034
+ 'fill'=>'', 'tags'=>['floor2','room'])
1035
+ $floorLabels[i.id] = '217A'
1036
+ $floorItems['217A'] = i
1037
+ TkcText.new(w,93,179.5, 'text'=>'217A', 'fill'=>color,
1038
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1039
+ i = TkcPolygon.new(w,89,156,89,168,95,168,95,135,53,135,53,156,
1040
+ 'fill'=>'', 'tags'=>['floor2','room'])
1041
+ $floorLabels[i.id] = '216'
1042
+ $floorItems['216'] = i
1043
+ TkcText.new(w,71,145.5, 'text'=>'216', 'fill'=>color,
1044
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1045
+ i = TkcPolygon.new(w,51,179,51,135,6,135,6,179,
1046
+ 'fill'=>'', 'tags'=>['floor2','room'])
1047
+ $floorLabels[i.id] = '215'
1048
+ $floorItems['215'] = i
1049
+ TkcText.new(w,28.5,157, 'text'=>'215', 'fill'=>color,
1050
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1051
+ i = TkcPolygon.new(w,51,227,6,227,6,180,51,180,
1052
+ 'fill'=>'', 'tags'=>['floor2','room'])
1053
+ $floorLabels[i.id] = '214'
1054
+ $floorItems['214'] = i
1055
+ TkcText.new(w,28.5,203.5, 'text'=>'214', 'fill'=>color,
1056
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1057
+ i = TkcPolygon.new(w,51,275,6,275,6,229,51,229,
1058
+ 'fill'=>'', 'tags'=>['floor2','room'])
1059
+ $floorLabels[i.id] = '213'
1060
+ $floorItems['213'] = i
1061
+ TkcText.new(w,28.5,252, 'text'=>'213', 'fill'=>color,
1062
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1063
+ i = TkcPolygon.new(w,114,340,67,340,67,385,114,385,
1064
+ 'fill'=>'', 'tags'=>['floor2','room'])
1065
+ $floorLabels[i.id] = '210'
1066
+ $floorItems['210'] = i
1067
+ TkcText.new(w,90.5,362.5, 'text'=>'210', 'fill'=>color,
1068
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1069
+ i = TkcPolygon.new(w,59,389,59,385,65,385,65,340,1,340,1,389,
1070
+ 'fill'=>'', 'tags'=>['floor2','room'])
1071
+ $floorLabels[i.id] = '211'
1072
+ $floorItems['211'] = i
1073
+ TkcText.new(w,33,364.5, 'text'=>'211', 'fill'=>color,
1074
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1075
+ i = TkcPolygon.new(w,393,309,350,309,350,282,342,282,342,276,393,276,
1076
+ 'fill'=>'', 'tags'=>['floor2','room'])
1077
+ $floorLabels[i.id] = '203'
1078
+ $floorItems['203'] = i
1079
+ TkcText.new(w,367.5,292.5, 'text'=>'203', 'fill'=>color,
1080
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1081
+ i = TkcPolygon.new(w,99,191,91,191,91,226,174,226,174,198,
1082
+ 154,198,154,192,109,192,109,169,99,169,
1083
+ 'fill'=>'', 'tags'=>['floor2','room'])
1084
+ $floorLabels[i.id] = '220'
1085
+ $floorItems['220'] = i
1086
+ TkcText.new(w,132.5,208.5, 'text'=>'220', 'fill'=>color,
1087
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1088
+ i = TkcPolygon.new(w,339,205,307,205,307,171,339,171,
1089
+ 'fill'=>'', 'tags'=>['floor2','room'])
1090
+ $floorLabels[i.id] = 'Priv Lift2'
1091
+ $floorItems['Priv Lift2'] = i
1092
+ TkcText.new(w,323,188, 'text'=>'Priv Lift2', 'fill'=>color,
1093
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1094
+ i = TkcPolygon.new(w,307,240,339,240,339,206,307,206,
1095
+ 'fill'=>'', 'tags'=>['floor2','room'])
1096
+ $floorLabels[i.id] = 'Pub Lift 2'
1097
+ $floorItems['Pub Lift 2'] = i
1098
+ TkcText.new(w,323,223, 'text'=>'Pub Lift 2', 'fill'=>color,
1099
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1100
+ i = TkcPolygon.new(w,175,168,97,168,97,131,175,131,
1101
+ 'fill'=>'', 'tags'=>['floor2','room'])
1102
+ $floorLabels[i.id] = '218'
1103
+ $floorItems['218'] = i
1104
+ TkcText.new(w,136,149.5, 'text'=>'218', 'fill'=>color,
1105
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1106
+ i = TkcPolygon.new(w,154,191,111,191,111,169,154,169,
1107
+ 'fill'=>'', 'tags'=>['floor2','room'])
1108
+ $floorLabels[i.id] = '219'
1109
+ $floorItems['219'] = i
1110
+ TkcText.new(w,132.5,180, 'text'=>'219', 'fill'=>color,
1111
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1112
+ i = TkcPolygon.new(w,375,246,375,172,341,172,341,246,
1113
+ 'fill'=>'', 'tags'=>['floor2','room'])
1114
+ $floorLabels[i.id] = '201'
1115
+ $floorItems['201'] = i
1116
+ TkcText.new(w,358,209, 'text'=>'201', 'fill'=>color,
1117
+ 'anchor'=>'c', 'tags'=>['floor2','label'])
1118
+ TkcLine.new(w,641,186,678,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1119
+ TkcLine.new(w,757,350,757,367, 'fill'=>color, 'tags'=>['floor2','wall'])
1120
+ TkcLine.new(w,634,133,634,144, 'fill'=>color, 'tags'=>['floor2','wall'])
1121
+ TkcLine.new(w,634,144,627,144, 'fill'=>color, 'tags'=>['floor2','wall'])
1122
+ TkcLine.new(w,572,133,572,144, 'fill'=>color, 'tags'=>['floor2','wall'])
1123
+ TkcLine.new(w,572,144,579,144, 'fill'=>color, 'tags'=>['floor2','wall'])
1124
+ TkcLine.new(w,398,129,398,162, 'fill'=>color, 'tags'=>['floor2','wall'])
1125
+ TkcLine.new(w,174,197,175,197, 'fill'=>color, 'tags'=>['floor2','wall'])
1126
+ TkcLine.new(w,175,197,175,227, 'fill'=>color, 'tags'=>['floor2','wall'])
1127
+ TkcLine.new(w,757,206,757,221, 'fill'=>color, 'tags'=>['floor2','wall'])
1128
+ TkcLine.new(w,396,188,408,188, 'fill'=>color, 'tags'=>['floor2','wall'])
1129
+ TkcLine.new(w,727,189,725,189, 'fill'=>color, 'tags'=>['floor2','wall'])
1130
+ TkcLine.new(w,747,167,802,167, 'fill'=>color, 'tags'=>['floor2','wall'])
1131
+ TkcLine.new(w,747,167,747,189, 'fill'=>color, 'tags'=>['floor2','wall'])
1132
+ TkcLine.new(w,755,189,739,189, 'fill'=>color, 'tags'=>['floor2','wall'])
1133
+ TkcLine.new(w,769,224,757,224, 'fill'=>color, 'tags'=>['floor2','wall'])
1134
+ TkcLine.new(w,802,224,802,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1135
+ TkcLine.new(w,802,129,725,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1136
+ TkcLine.new(w,725,189,725,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1137
+ TkcLine.new(w,725,186,690,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1138
+ TkcLine.new(w,676,133,676,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1139
+ TkcLine.new(w,627,144,627,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1140
+ TkcLine.new(w,629,186,593,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1141
+ TkcLine.new(w,579,144,579,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1142
+ TkcLine.new(w,559,129,559,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1143
+ TkcLine.new(w,725,133,559,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1144
+ TkcLine.new(w,484,162,484,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1145
+ TkcLine.new(w,559,129,484,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1146
+ TkcLine.new(w,526,129,526,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1147
+ TkcLine.new(w,540,186,581,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1148
+ TkcLine.new(w,528,186,523,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1149
+ TkcLine.new(w,511,186,475,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1150
+ TkcLine.new(w,496,190,496,186, 'fill'=>color, 'tags'=>['floor2','wall'])
1151
+ TkcLine.new(w,496,205,496,202, 'fill'=>color, 'tags'=>['floor2','wall'])
1152
+ TkcLine.new(w,475,205,527,205, 'fill'=>color, 'tags'=>['floor2','wall'])
1153
+ TkcLine.new(w,558,205,539,205, 'fill'=>color, 'tags'=>['floor2','wall'])
1154
+ TkcLine.new(w,558,205,558,249, 'fill'=>color, 'tags'=>['floor2','wall'])
1155
+ TkcLine.new(w,558,249,475,249, 'fill'=>color, 'tags'=>['floor2','wall'])
1156
+ TkcLine.new(w,662,206,642,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1157
+ TkcLine.new(w,695,206,675,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1158
+ TkcLine.new(w,695,278,642,278, 'fill'=>color, 'tags'=>['floor2','wall'])
1159
+ TkcLine.new(w,642,291,642,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1160
+ TkcLine.new(w,695,291,695,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1161
+ TkcLine.new(w,716,208,716,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1162
+ TkcLine.new(w,757,206,716,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1163
+ TkcLine.new(w,757,221,757,224, 'fill'=>color, 'tags'=>['floor2','wall'])
1164
+ TkcLine.new(w,793,224,802,224, 'fill'=>color, 'tags'=>['floor2','wall'])
1165
+ TkcLine.new(w,757,262,716,262, 'fill'=>color, 'tags'=>['floor2','wall'])
1166
+ TkcLine.new(w,716,220,716,264, 'fill'=>color, 'tags'=>['floor2','wall'])
1167
+ TkcLine.new(w,716,315,716,276, 'fill'=>color, 'tags'=>['floor2','wall'])
1168
+ TkcLine.new(w,757,315,703,315, 'fill'=>color, 'tags'=>['floor2','wall'])
1169
+ TkcLine.new(w,757,325,757,224, 'fill'=>color, 'tags'=>['floor2','wall'])
1170
+ TkcLine.new(w,757,367,644,367, 'fill'=>color, 'tags'=>['floor2','wall'])
1171
+ TkcLine.new(w,689,367,689,315, 'fill'=>color, 'tags'=>['floor2','wall'])
1172
+ TkcLine.new(w,647,315,644,315, 'fill'=>color, 'tags'=>['floor2','wall'])
1173
+ TkcLine.new(w,659,315,691,315, 'fill'=>color, 'tags'=>['floor2','wall'])
1174
+ TkcLine.new(w,600,325,600,391, 'fill'=>color, 'tags'=>['floor2','wall'])
1175
+ TkcLine.new(w,627,325,644,325, 'fill'=>color, 'tags'=>['floor2','wall'])
1176
+ TkcLine.new(w,644,391,644,315, 'fill'=>color, 'tags'=>['floor2','wall'])
1177
+ TkcLine.new(w,615,325,575,325, 'fill'=>color, 'tags'=>['floor2','wall'])
1178
+ TkcLine.new(w,644,391,558,391, 'fill'=>color, 'tags'=>['floor2','wall'])
1179
+ TkcLine.new(w,563,325,558,325, 'fill'=>color, 'tags'=>['floor2','wall'])
1180
+ TkcLine.new(w,558,391,558,314, 'fill'=>color, 'tags'=>['floor2','wall'])
1181
+ TkcLine.new(w,558,327,508,327, 'fill'=>color, 'tags'=>['floor2','wall'])
1182
+ TkcLine.new(w,558,275,484,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1183
+ TkcLine.new(w,558,302,558,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1184
+ TkcLine.new(w,508,327,508,311, 'fill'=>color, 'tags'=>['floor2','wall'])
1185
+ TkcLine.new(w,484,311,508,311, 'fill'=>color, 'tags'=>['floor2','wall'])
1186
+ TkcLine.new(w,484,275,484,311, 'fill'=>color, 'tags'=>['floor2','wall'])
1187
+ TkcLine.new(w,475,208,408,208, 'fill'=>color, 'tags'=>['floor2','wall'])
1188
+ TkcLine.new(w,408,206,408,210, 'fill'=>color, 'tags'=>['floor2','wall'])
1189
+ TkcLine.new(w,408,222,408,227, 'fill'=>color, 'tags'=>['floor2','wall'])
1190
+ TkcLine.new(w,408,227,398,227, 'fill'=>color, 'tags'=>['floor2','wall'])
1191
+ TkcLine.new(w,398,227,398,254, 'fill'=>color, 'tags'=>['floor2','wall'])
1192
+ TkcLine.new(w,408,188,408,194, 'fill'=>color, 'tags'=>['floor2','wall'])
1193
+ TkcLine.new(w,383,188,376,188, 'fill'=>color, 'tags'=>['floor2','wall'])
1194
+ TkcLine.new(w,398,188,398,162, 'fill'=>color, 'tags'=>['floor2','wall'])
1195
+ TkcLine.new(w,398,162,484,162, 'fill'=>color, 'tags'=>['floor2','wall'])
1196
+ TkcLine.new(w,475,162,475,254, 'fill'=>color, 'tags'=>['floor2','wall'])
1197
+ TkcLine.new(w,398,254,475,254, 'fill'=>color, 'tags'=>['floor2','wall'])
1198
+ TkcLine.new(w,484,280,395,280, 'fill'=>color, 'tags'=>['floor2','wall'])
1199
+ TkcLine.new(w,395,311,395,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1200
+ TkcLine.new(w,307,197,293,197, 'fill'=>color, 'tags'=>['floor2','wall'])
1201
+ TkcLine.new(w,278,197,233,197, 'fill'=>color, 'tags'=>['floor2','wall'])
1202
+ TkcLine.new(w,233,197,233,249, 'fill'=>color, 'tags'=>['floor2','wall'])
1203
+ TkcLine.new(w,307,179,284,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1204
+ TkcLine.new(w,233,249,278,249, 'fill'=>color, 'tags'=>['floor2','wall'])
1205
+ TkcLine.new(w,269,179,269,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1206
+ TkcLine.new(w,220,179,220,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1207
+ TkcLine.new(w,155,191,110,191, 'fill'=>color, 'tags'=>['floor2','wall'])
1208
+ TkcLine.new(w,90,190,98,190, 'fill'=>color, 'tags'=>['floor2','wall'])
1209
+ TkcLine.new(w,98,169,98,190, 'fill'=>color, 'tags'=>['floor2','wall'])
1210
+ TkcLine.new(w,52,133,52,165, 'fill'=>color, 'tags'=>['floor2','wall'])
1211
+ TkcLine.new(w,52,214,52,177, 'fill'=>color, 'tags'=>['floor2','wall'])
1212
+ TkcLine.new(w,52,226,52,262, 'fill'=>color, 'tags'=>['floor2','wall'])
1213
+ TkcLine.new(w,52,274,52,276, 'fill'=>color, 'tags'=>['floor2','wall'])
1214
+ TkcLine.new(w,234,275,234,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1215
+ TkcLine.new(w,226,339,258,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1216
+ TkcLine.new(w,211,387,211,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1217
+ TkcLine.new(w,214,339,177,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1218
+ TkcLine.new(w,258,387,60,387, 'fill'=>color, 'tags'=>['floor2','wall'])
1219
+ TkcLine.new(w,3,133,3,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1220
+ TkcLine.new(w,165,339,129,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1221
+ TkcLine.new(w,117,339,80,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1222
+ TkcLine.new(w,68,339,59,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1223
+ TkcLine.new(w,0,339,46,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1224
+ TkcLine.new(w,60,391,0,391, 'fill'=>color, 'tags'=>['floor2','wall'])
1225
+ TkcLine.new(w,0,339,0,391, 'fill'=>color, 'tags'=>['floor2','wall'])
1226
+ TkcLine.new(w,60,387,60,391, 'fill'=>color, 'tags'=>['floor2','wall'])
1227
+ TkcLine.new(w,258,329,258,387, 'fill'=>color, 'tags'=>['floor2','wall'])
1228
+ TkcLine.new(w,350,329,258,329, 'fill'=>color, 'tags'=>['floor2','wall'])
1229
+ TkcLine.new(w,395,311,350,311, 'fill'=>color, 'tags'=>['floor2','wall'])
1230
+ TkcLine.new(w,398,129,315,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1231
+ TkcLine.new(w,176,133,315,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1232
+ TkcLine.new(w,176,129,96,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1233
+ TkcLine.new(w,3,133,96,133, 'fill'=>color, 'tags'=>['floor2','wall'])
1234
+ TkcLine.new(w,66,387,66,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1235
+ TkcLine.new(w,115,387,115,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1236
+ TkcLine.new(w,163,387,163,339, 'fill'=>color, 'tags'=>['floor2','wall'])
1237
+ TkcLine.new(w,234,275,276,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1238
+ TkcLine.new(w,288,275,309,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1239
+ TkcLine.new(w,298,275,298,329, 'fill'=>color, 'tags'=>['floor2','wall'])
1240
+ TkcLine.new(w,341,283,350,283, 'fill'=>color, 'tags'=>['floor2','wall'])
1241
+ TkcLine.new(w,321,275,341,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1242
+ TkcLine.new(w,375,275,395,275, 'fill'=>color, 'tags'=>['floor2','wall'])
1243
+ TkcLine.new(w,315,129,315,170, 'fill'=>color, 'tags'=>['floor2','wall'])
1244
+ TkcLine.new(w,376,170,307,170, 'fill'=>color, 'tags'=>['floor2','wall'])
1245
+ TkcLine.new(w,307,250,307,170, 'fill'=>color, 'tags'=>['floor2','wall'])
1246
+ TkcLine.new(w,376,245,376,170, 'fill'=>color, 'tags'=>['floor2','wall'])
1247
+ TkcLine.new(w,340,241,307,241, 'fill'=>color, 'tags'=>['floor2','wall'])
1248
+ TkcLine.new(w,340,245,340,224, 'fill'=>color, 'tags'=>['floor2','wall'])
1249
+ TkcLine.new(w,340,210,340,201, 'fill'=>color, 'tags'=>['floor2','wall'])
1250
+ TkcLine.new(w,340,187,340,170, 'fill'=>color, 'tags'=>['floor2','wall'])
1251
+ TkcLine.new(w,340,206,307,206, 'fill'=>color, 'tags'=>['floor2','wall'])
1252
+ TkcLine.new(w,293,250,307,250, 'fill'=>color, 'tags'=>['floor2','wall'])
1253
+ TkcLine.new(w,271,179,238,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1254
+ TkcLine.new(w,226,179,195,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1255
+ TkcLine.new(w,176,129,176,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1256
+ TkcLine.new(w,182,179,176,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1257
+ TkcLine.new(w,174,169,176,169, 'fill'=>color, 'tags'=>['floor2','wall'])
1258
+ TkcLine.new(w,162,169,90,169, 'fill'=>color, 'tags'=>['floor2','wall'])
1259
+ TkcLine.new(w,96,169,96,129, 'fill'=>color, 'tags'=>['floor2','wall'])
1260
+ TkcLine.new(w,175,227,90,227, 'fill'=>color, 'tags'=>['floor2','wall'])
1261
+ TkcLine.new(w,90,190,90,227, 'fill'=>color, 'tags'=>['floor2','wall'])
1262
+ TkcLine.new(w,52,179,3,179, 'fill'=>color, 'tags'=>['floor2','wall'])
1263
+ TkcLine.new(w,52,228,3,228, 'fill'=>color, 'tags'=>['floor2','wall'])
1264
+ TkcLine.new(w,52,276,3,276, 'fill'=>color, 'tags'=>['floor2','wall'])
1265
+ TkcLine.new(w,155,177,155,169, 'fill'=>color, 'tags'=>['floor2','wall'])
1266
+ TkcLine.new(w,110,191,110,169, 'fill'=>color, 'tags'=>['floor2','wall'])
1267
+ TkcLine.new(w,155,189,155,197, 'fill'=>color, 'tags'=>['floor2','wall'])
1268
+ TkcLine.new(w,350,283,350,329, 'fill'=>color, 'tags'=>['floor2','wall'])
1269
+ TkcLine.new(w,162,197,155,197, 'fill'=>color, 'tags'=>['floor2','wall'])
1270
+ TkcLine.new(w,341,275,341,283, 'fill'=>color, 'tags'=>['floor2','wall'])
1271
+ end
1272
+
1273
+ # floor_fg3 --
1274
+ # This method represents part of the floorplan database. When
1275
+ # invoked, it instantiates the foreground information for the third
1276
+ # floor (office outlines and numbers).
1277
+ #
1278
+ # Arguments:
1279
+ # w - The canvas window.
1280
+ # color - Color to use for drawing foreground information.
1281
+
1282
+ def floor_fg3(w,color)
1283
+ i = TkcPolygon.new(w,89,228,89,180,70,180,70,228,
1284
+ 'fill'=>'', 'tags'=>['floor3','room'])
1285
+ $floorLabels[i.id] = '316'
1286
+ $floorItems['316'] = i
1287
+ TkcText.new(w,79.5,204, 'text'=>'316', 'fill'=>color,
1288
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1289
+ i = TkcPolygon.new(w,115,368,162,368,162,323,115,323,
1290
+ 'fill'=>'', 'tags'=>['floor3','room'])
1291
+ $floorLabels[i.id] = '309'
1292
+ $floorItems['309'] = i
1293
+ TkcText.new(w,138.5,345.5, 'text'=>'309', 'fill'=>color,
1294
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1295
+ i = TkcPolygon.new(w,164,323,164,368,211,368,211,323,
1296
+ 'fill'=>'', 'tags'=>['floor3','room'])
1297
+ $floorLabels[i.id] = '308'
1298
+ $floorItems['308'] = i
1299
+ TkcText.new(w,187.5,345.5, 'text'=>'308', 'fill'=>color,
1300
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1301
+ i = TkcPolygon.new(w,256,368,212,368,212,323,256,323,
1302
+ 'fill'=>'', 'tags'=>['floor3','room'])
1303
+ $floorLabels[i.id] = '307'
1304
+ $floorItems['307'] = i
1305
+ TkcText.new(w,234,345.5, 'text'=>'307', 'fill'=>color,
1306
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1307
+ i = TkcPolygon.new(w,244,276,297,276,297,327,260,327,260,321,244,321,
1308
+ 'fill'=>'', 'tags'=>['floor3','room'])
1309
+ $floorLabels[i.id] = '305'
1310
+ $floorItems['305'] = i
1311
+ TkcText.new(w,270.5,301.5, 'text'=>'305', 'fill'=>color,
1312
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1313
+ i = TkcPolygon.new(w,251,219,251,203,244,203,244,219,
1314
+ 'fill'=>'', 'tags'=>['floor3','room'])
1315
+ $floorLabels[i.id] = '324B'
1316
+ $floorItems['324B'] = i
1317
+ TkcText.new(w,247.5,211, 'text'=>'324B', 'fill'=>color,
1318
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1319
+ i = TkcPolygon.new(w,251,249,244,249,244,232,251,232,
1320
+ 'fill'=>'', 'tags'=>['floor3','room'])
1321
+ $floorLabels[i.id] = '324A'
1322
+ $floorItems['324A'] = i
1323
+ TkcText.new(w,247.5,240.5, 'text'=>'324A', 'fill'=>color,
1324
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1325
+ i = TkcPolygon.new(w,223,135,223,179,177,179,177,135,
1326
+ 'fill'=>'', 'tags'=>['floor3','room'])
1327
+ $floorLabels[i.id] = '320'
1328
+ $floorItems['320'] = i
1329
+ TkcText.new(w,200,157, 'text'=>'320', 'fill'=>color,
1330
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1331
+ i = TkcPolygon.new(w,114,368,114,323,67,323,67,368,
1332
+ 'fill'=>'', 'tags'=>['floor3','room'])
1333
+ $floorLabels[i.id] = '310'
1334
+ $floorItems['310'] = i
1335
+ TkcText.new(w,90.5,345.5, 'text'=>'310', 'fill'=>color,
1336
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1337
+ i = TkcPolygon.new(w,23,277,23,321,68,321,68,277,
1338
+ 'fill'=>'', 'tags'=>['floor3','room'])
1339
+ $floorLabels[i.id] = '312'
1340
+ $floorItems['312'] = i
1341
+ TkcText.new(w,45.5,299, 'text'=>'312', 'fill'=>color,
1342
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1343
+ i = TkcPolygon.new(w,23,229,68,229,68,275,23,275,
1344
+ 'fill'=>'', 'tags'=>['floor3','room'])
1345
+ $floorLabels[i.id] = '313'
1346
+ $floorItems['313'] = i
1347
+ TkcText.new(w,45.5,252, 'text'=>'313', 'fill'=>color,
1348
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1349
+ i = TkcPolygon.new(w,68,227,23,227,23,180,68,180,
1350
+ 'fill'=>'', 'tags'=>['floor3','room'])
1351
+ $floorLabels[i.id] = '314'
1352
+ $floorItems['314'] = i
1353
+ TkcText.new(w,40.5,203.5, 'text'=>'314', 'fill'=>color,
1354
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1355
+ i = TkcPolygon.new(w,95,179,95,135,23,135,23,179,
1356
+ 'fill'=>'', 'tags'=>['floor3','room'])
1357
+ $floorLabels[i.id] = '315'
1358
+ $floorItems['315'] = i
1359
+ TkcText.new(w,59,157, 'text'=>'315', 'fill'=>color,
1360
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1361
+ i = TkcPolygon.new(w,99,226,99,204,91,204,91,226,
1362
+ 'fill'=>'', 'tags'=>['floor3','room'])
1363
+ $floorLabels[i.id] = '316B'
1364
+ $floorItems['316B'] = i
1365
+ TkcText.new(w,95,215, 'text'=>'316B', 'fill'=>color,
1366
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1367
+ i = TkcPolygon.new(w,91,202,99,202,99,180,91,180,
1368
+ 'fill'=>'', 'tags'=>['floor3','room'])
1369
+ $floorLabels[i.id] = '316A'
1370
+ $floorItems['316A'] = i
1371
+ TkcText.new(w,95,191, 'text'=>'316A', 'fill'=>color,
1372
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1373
+ i = TkcPolygon.new(w,97,169,109,169,109,192,154,192,154,198,
1374
+ 174,198,174,226,101,226,101,179,97,179,
1375
+ 'fill'=>'', 'tags'=>['floor3','room'])
1376
+ $floorLabels[i.id] = '319'
1377
+ $floorItems['319'] = i
1378
+ TkcText.new(w,141.5,209, 'text'=>'319', 'fill'=>color,
1379
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1380
+ i = TkcPolygon.new(w,65,368,58,368,58,389,1,389,1,333,23,333,23,323,65,323,
1381
+ 'fill'=>'', 'tags'=>['floor3','room'])
1382
+ $floorLabels[i.id] = '311'
1383
+ $floorItems['311'] = i
1384
+ TkcText.new(w,29.5,361, 'text'=>'311', 'fill'=>color,
1385
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1386
+ i = TkcPolygon.new(w,154,191,111,191,111,169,154,169,
1387
+ 'fill'=>'', 'tags'=>['floor3','room'])
1388
+ $floorLabels[i.id] = '318'
1389
+ $floorItems['318'] = i
1390
+ TkcText.new(w,132.5,180, 'text'=>'318', 'fill'=>color,
1391
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1392
+ i = TkcPolygon.new(w,175,168,97,168,97,131,175,131,
1393
+ 'fill'=>'', 'tags'=>['floor3','room'])
1394
+ $floorLabels[i.id] = '317'
1395
+ $floorItems['317'] = i
1396
+ TkcText.new(w,136,149.5, 'text'=>'317', 'fill'=>color,
1397
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1398
+ i = TkcPolygon.new(w,274,194,274,221,306,221,306,194,
1399
+ 'fill'=>'', 'tags'=>['floor3','room'])
1400
+ $floorLabels[i.id] = '323'
1401
+ $floorItems['323'] = i
1402
+ TkcText.new(w,290,207.5, 'text'=>'323', 'fill'=>color,
1403
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1404
+ i = TkcPolygon.new(w,306,222,274,222,274,249,306,249,
1405
+ 'fill'=>'', 'tags'=>['floor3','room'])
1406
+ $floorLabels[i.id] = '325'
1407
+ $floorItems['325'] = i
1408
+ TkcText.new(w,290,235.5, 'text'=>'325', 'fill'=>color,
1409
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1410
+ i = TkcPolygon.new(w,263,179,224,179,224,135,263,135,
1411
+ 'fill'=>'', 'tags'=>['floor3','room'])
1412
+ $floorLabels[i.id] = '321'
1413
+ $floorItems['321'] = i
1414
+ TkcText.new(w,243.5,157, 'text'=>'321', 'fill'=>color,
1415
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1416
+ i = TkcPolygon.new(w,314,169,306,169,306,192,273,192,
1417
+ 264,181,264,135,314,135,
1418
+ 'fill'=>'', 'tags'=>['floor3','room'])
1419
+ $floorLabels[i.id] = '322'
1420
+ $floorItems['322'] = i
1421
+ TkcText.new(w,293.5,163.5, 'text'=>'322', 'fill'=>color,
1422
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1423
+ i = TkcPolygon.new(w,307,240,339,240,339,206,307,206,
1424
+ 'fill'=>'', 'tags'=>['floor3','room'])
1425
+ $floorLabels[i.id] = 'Pub Lift3'
1426
+ $floorItems['Pub Lift3'] = i
1427
+ TkcText.new(w,323,223, 'text'=>'Pub Lift3', 'fill'=>color,
1428
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1429
+ i = TkcPolygon.new(w,339,205,307,205,307,171,339,171,
1430
+ 'fill'=>'', 'tags'=>['floor3','room'])
1431
+ $floorLabels[i.id] = 'Priv Lift3'
1432
+ $floorItems['Priv Lift3'] = i
1433
+ TkcText.new(w,323,188, 'text'=>'Priv Lift3', 'fill'=>color,
1434
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1435
+ i = TkcPolygon.new(w,350,284,376,284,376,276,397,276,397,309,350,309,
1436
+ 'fill'=>'', 'tags'=>['floor3','room'])
1437
+ $floorLabels[i.id] = '303'
1438
+ $floorItems['303'] = i
1439
+ TkcText.new(w,373.5,292.5, 'text'=>'303', 'fill'=>color,
1440
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1441
+ i = TkcPolygon.new(w,272,203,272,249,252,249,252,230,
1442
+ 244,230,244,221,252,221,252,203,
1443
+ 'fill'=>'', 'tags'=>['floor3','room'])
1444
+ $floorLabels[i.id] = '324'
1445
+ $floorItems['324'] = i
1446
+ TkcText.new(w,262,226, 'text'=>'324', 'fill'=>color,
1447
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1448
+ i = TkcPolygon.new(w,299,276,299,327,349,327,349,284,341,284,341,276,
1449
+ 'fill'=>'', 'tags'=>['floor3','room'])
1450
+ $floorLabels[i.id] = '304'
1451
+ $floorItems['304'] = i
1452
+ TkcText.new(w,324,301.5, 'text'=>'304', 'fill'=>color,
1453
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1454
+ i = TkcPolygon.new(w,375,246,375,172,341,172,341,246,
1455
+ 'fill'=>'', 'tags'=>['floor3','room'])
1456
+ $floorLabels[i.id] = '301'
1457
+ $floorItems['301'] = i
1458
+ TkcText.new(w,358,209, 'text'=>'301', 'fill'=>color,
1459
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1460
+ i = TkcPolygon.new(w,397,246,377,246,377,185,397,185,
1461
+ 'fill'=>'', 'tags'=>['floor3','room'])
1462
+ $floorLabels[i.id] = '327'
1463
+ $floorItems['327'] = i
1464
+ TkcText.new(w,387,215.5, 'text'=>'327', 'fill'=>color,
1465
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1466
+ i = TkcPolygon.new(w,316,131,316,169,377,169,377,185,397,185,397,131,
1467
+ 'fill'=>'', 'tags'=>['floor3','room'])
1468
+ $floorLabels[i.id] = '326'
1469
+ $floorItems['326'] = i
1470
+ TkcText.new(w,365.5,150, 'text'=>'326', 'fill'=>color,
1471
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1472
+ i = TkcPolygon.new(w,308,251,242,251,242,274,342,274,342,282,375, 282,
1473
+ 375,274,397,274,397,248,339,248,339,242,308,242,
1474
+ 'fill'=>'', 'tags'=>['floor3','room'])
1475
+ $floorLabels[i.id] = '302'
1476
+ $floorItems['302'] = i
1477
+ TkcText.new(w,319.5,261, 'text'=>'302', 'fill'=>color,
1478
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1479
+ i = TkcPolygon.new(w,70,321,242,321,242,200,259,200,259,203,272,203,
1480
+ 272,193,263,180,242,180,175,180,175,169,156,169,
1481
+ 156,196,177,196,177,228,107,228,70,228,70,275,107,275,
1482
+ 107,248,160,248,160,301,107,301,107,275,70,275,
1483
+ 'fill'=>'', 'tags'=>['floor3','room'])
1484
+ $floorLabels[i.id] = '306'
1485
+ $floorItems['306'] = i
1486
+ TkcText.new(w,200.5,284.5, 'text'=>'306', 'fill'=>color,
1487
+ 'anchor'=>'c', 'tags'=>['floor3','label'])
1488
+ TkcLine.new(w,341,275,341,283, 'fill'=>color, 'tags'=>['floor3','wall'])
1489
+ TkcLine.new(w,162,197,155,197, 'fill'=>color, 'tags'=>['floor3','wall'])
1490
+ TkcLine.new(w,396,247,399,247, 'fill'=>color, 'tags'=>['floor3','wall'])
1491
+ TkcLine.new(w,399,129,399,311, 'fill'=>color, 'tags'=>['floor3','wall'])
1492
+ TkcLine.new(w,258,202,243,202, 'fill'=>color, 'tags'=>['floor3','wall'])
1493
+ TkcLine.new(w,350,283,350,329, 'fill'=>color, 'tags'=>['floor3','wall'])
1494
+ TkcLine.new(w,251,231,243,231, 'fill'=>color, 'tags'=>['floor3','wall'])
1495
+ TkcLine.new(w,243,220,251,220, 'fill'=>color, 'tags'=>['floor3','wall'])
1496
+ TkcLine.new(w,243,250,243,202, 'fill'=>color, 'tags'=>['floor3','wall'])
1497
+ TkcLine.new(w,155,197,155,190, 'fill'=>color, 'tags'=>['floor3','wall'])
1498
+ TkcLine.new(w,110,192,110,169, 'fill'=>color, 'tags'=>['floor3','wall'])
1499
+ TkcLine.new(w,155,192,110,192, 'fill'=>color, 'tags'=>['floor3','wall'])
1500
+ TkcLine.new(w,155,177,155,169, 'fill'=>color, 'tags'=>['floor3','wall'])
1501
+ TkcLine.new(w,176,197,176,227, 'fill'=>color, 'tags'=>['floor3','wall'])
1502
+ TkcLine.new(w,69,280,69,274, 'fill'=>color, 'tags'=>['floor3','wall'])
1503
+ TkcLine.new(w,21,276,69,276, 'fill'=>color, 'tags'=>['floor3','wall'])
1504
+ TkcLine.new(w,69,262,69,226, 'fill'=>color, 'tags'=>['floor3','wall'])
1505
+ TkcLine.new(w,21,228,69,228, 'fill'=>color, 'tags'=>['floor3','wall'])
1506
+ TkcLine.new(w,21,179,75,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1507
+ TkcLine.new(w,69,179,69,214, 'fill'=>color, 'tags'=>['floor3','wall'])
1508
+ TkcLine.new(w,90,220,90,227, 'fill'=>color, 'tags'=>['floor3','wall'])
1509
+ TkcLine.new(w,90,204,90,202, 'fill'=>color, 'tags'=>['floor3','wall'])
1510
+ TkcLine.new(w,90,203,100,203, 'fill'=>color, 'tags'=>['floor3','wall'])
1511
+ TkcLine.new(w,90,187,90,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1512
+ TkcLine.new(w,90,227,176,227, 'fill'=>color, 'tags'=>['floor3','wall'])
1513
+ TkcLine.new(w,100,179,100,227, 'fill'=>color, 'tags'=>['floor3','wall'])
1514
+ TkcLine.new(w,100,179,87,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1515
+ TkcLine.new(w,96,179,96,129, 'fill'=>color, 'tags'=>['floor3','wall'])
1516
+ TkcLine.new(w,162,169,96,169, 'fill'=>color, 'tags'=>['floor3','wall'])
1517
+ TkcLine.new(w,173,169,176,169, 'fill'=>color, 'tags'=>['floor3','wall'])
1518
+ TkcLine.new(w,182,179,176,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1519
+ TkcLine.new(w,176,129,176,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1520
+ TkcLine.new(w,195,179,226,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1521
+ TkcLine.new(w,224,133,224,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1522
+ TkcLine.new(w,264,179,264,133, 'fill'=>color, 'tags'=>['floor3','wall'])
1523
+ TkcLine.new(w,238,179,264,179, 'fill'=>color, 'tags'=>['floor3','wall'])
1524
+ TkcLine.new(w,273,207,273,193, 'fill'=>color, 'tags'=>['floor3','wall'])
1525
+ TkcLine.new(w,273,235,273,250, 'fill'=>color, 'tags'=>['floor3','wall'])
1526
+ TkcLine.new(w,273,224,273,219, 'fill'=>color, 'tags'=>['floor3','wall'])
1527
+ TkcLine.new(w,273,193,307,193, 'fill'=>color, 'tags'=>['floor3','wall'])
1528
+ TkcLine.new(w,273,222,307,222, 'fill'=>color, 'tags'=>['floor3','wall'])
1529
+ TkcLine.new(w,273,250,307,250, 'fill'=>color, 'tags'=>['floor3','wall'])
1530
+ TkcLine.new(w,384,247,376,247, 'fill'=>color, 'tags'=>['floor3','wall'])
1531
+ TkcLine.new(w,340,206,307,206, 'fill'=>color, 'tags'=>['floor3','wall'])
1532
+ TkcLine.new(w,340,187,340,170, 'fill'=>color, 'tags'=>['floor3','wall'])
1533
+ TkcLine.new(w,340,210,340,201, 'fill'=>color, 'tags'=>['floor3','wall'])
1534
+ TkcLine.new(w,340,247,340,224, 'fill'=>color, 'tags'=>['floor3','wall'])
1535
+ TkcLine.new(w,340,241,307,241, 'fill'=>color, 'tags'=>['floor3','wall'])
1536
+ TkcLine.new(w,376,247,376,170, 'fill'=>color, 'tags'=>['floor3','wall'])
1537
+ TkcLine.new(w,307,250,307,170, 'fill'=>color, 'tags'=>['floor3','wall'])
1538
+ TkcLine.new(w,376,170,307,170, 'fill'=>color, 'tags'=>['floor3','wall'])
1539
+ TkcLine.new(w,315,129,315,170, 'fill'=>color, 'tags'=>['floor3','wall'])
1540
+ TkcLine.new(w,376,283,366,283, 'fill'=>color, 'tags'=>['floor3','wall'])
1541
+ TkcLine.new(w,376,283,376,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1542
+ TkcLine.new(w,399,275,376,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1543
+ TkcLine.new(w,341,275,320,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1544
+ TkcLine.new(w,341,283,350,283, 'fill'=>color, 'tags'=>['floor3','wall'])
1545
+ TkcLine.new(w,298,275,298,329, 'fill'=>color, 'tags'=>['floor3','wall'])
1546
+ TkcLine.new(w,308,275,298,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1547
+ TkcLine.new(w,243,322,243,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1548
+ TkcLine.new(w,243,275,284,275, 'fill'=>color, 'tags'=>['floor3','wall'])
1549
+ TkcLine.new(w,258,322,226,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1550
+ TkcLine.new(w,212,370,212,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1551
+ TkcLine.new(w,214,322,177,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1552
+ TkcLine.new(w,163,370,163,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1553
+ TkcLine.new(w,165,322,129,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1554
+ TkcLine.new(w,84,322,117,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1555
+ TkcLine.new(w,71,322,64,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1556
+ TkcLine.new(w,115,322,115,370, 'fill'=>color, 'tags'=>['floor3','wall'])
1557
+ TkcLine.new(w,66,322,66,370, 'fill'=>color, 'tags'=>['floor3','wall'])
1558
+ TkcLine.new(w,52,322,21,322, 'fill'=>color, 'tags'=>['floor3','wall'])
1559
+ TkcLine.new(w,21,331,0,331, 'fill'=>color, 'tags'=>['floor3','wall'])
1560
+ TkcLine.new(w,21,331,21,133, 'fill'=>color, 'tags'=>['floor3','wall'])
1561
+ TkcLine.new(w,96,133,21,133, 'fill'=>color, 'tags'=>['floor3','wall'])
1562
+ TkcLine.new(w,176,129,96,129, 'fill'=>color, 'tags'=>['floor3','wall'])
1563
+ TkcLine.new(w,315,133,176,133, 'fill'=>color, 'tags'=>['floor3','wall'])
1564
+ TkcLine.new(w,315,129,399,129, 'fill'=>color, 'tags'=>['floor3','wall'])
1565
+ TkcLine.new(w,399,311,350,311, 'fill'=>color, 'tags'=>['floor3','wall'])
1566
+ TkcLine.new(w,350,329,258,329, 'fill'=>color, 'tags'=>['floor3','wall'])
1567
+ TkcLine.new(w,258,322,258,370, 'fill'=>color, 'tags'=>['floor3','wall'])
1568
+ TkcLine.new(w,60,370,258,370, 'fill'=>color, 'tags'=>['floor3','wall'])
1569
+ TkcLine.new(w,60,370,60,391, 'fill'=>color, 'tags'=>['floor3','wall'])
1570
+ TkcLine.new(w,0,391,0,331, 'fill'=>color, 'tags'=>['floor3','wall'])
1571
+ TkcLine.new(w,60,391,0,391, 'fill'=>color, 'tags'=>['floor3','wall'])
1572
+ TkcLine.new(w,307,250,307,242, 'fill'=>color, 'tags'=>['floor3','wall'])
1573
+ TkcLine.new(w,273,250,307,250, 'fill'=>color, 'tags'=>['floor3','wall'])
1574
+ TkcLine.new(w,258,250,243,250, 'fill'=>color, 'tags'=>['floor3','wall'])
1575
+ end
1576
+
1577
+ # Below is the "main program" that creates the floorplan demonstration.
1578
+
1579
+ # toplevel widget
1580
+ if defined?($floor_demo) && $floor_demo
1581
+ $floor_demo.destroy
1582
+ $floor_demo = nil
1583
+ end
1584
+
1585
+ # demo toplevel widget
1586
+ $floor_demo = TkToplevel.new {|w|
1587
+ title("Floorplan Canvas Demonstration")
1588
+ iconname("Floorplan")
1589
+ positionWindow(w)
1590
+ geometry('+20+20')
1591
+ minsize(100,100)
1592
+ }
1593
+
1594
+ base_frame = TkFrame.new($floor_demo).pack(:fill=>:both, :expand=>true)
1595
+
1596
+ # label
1597
+ TkLabel.new(base_frame, 'font'=>$font, 'wraplength'=>'8i', 'justify'=>'left',
1598
+ 'text'=>"This window contains a canvas widget showing the floorplan of Digital Equipment Corporation's Western Research Laboratory. It has three levels. At any given time one of the levels is active, meaning that you can see its room structure. To activate a level, click the left mouse button anywhere on it. As the mouse moves over the active level, the room under the mouse lights up and its room number appears in the \"Room:\" entry. You can also type a room number in the entry and the room will light up."){
1599
+ pack('side'=>'top')
1600
+ }
1601
+
1602
+ # frame
1603
+ $floor_buttons = TkFrame.new(base_frame) {|frame|
1604
+ TkButton.new(frame) {
1605
+ text 'Dismiss'
1606
+ command proc{
1607
+ tmppath = $floor_demo
1608
+ $floor_demo = nil
1609
+ tmppath.destroy
1610
+ }
1611
+ }.pack('side'=>'left', 'expand'=>'yes')
1612
+
1613
+ TkButton.new(frame) {
1614
+ text 'Show Code'
1615
+ command proc{showCode 'floor'}
1616
+ }.pack('side'=>'left', 'expand'=>'yes')
1617
+ }
1618
+ $floor_buttons.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
1619
+
1620
+ #
1621
+ $floorLabels = {}
1622
+ $floorItems = {}
1623
+
1624
+ # canvas
1625
+ if $tk_version =~ /^4\.[01]/
1626
+ $floor_canvas_frame = TkFrame.new(base_frame,'bd'=>2,'relief'=>'sunken',
1627
+ 'highlightthickness'=>2)
1628
+ $floor_canvas = TkCanvas.new($floor_canvas_frame,
1629
+ 'width'=>900, 'height'=>500, 'borderwidth'=>0,
1630
+ 'highlightthickness'=>0) {|c|
1631
+ TkScrollbar.new(base_frame, 'orient'=>'horiz',
1632
+ 'command'=>proc{|*args| c.xview(*args)}){|hs|
1633
+ c.xscrollcommand(proc{|first,last| hs.set first,last})
1634
+ pack('side'=>'bottom', 'fill'=>'x')
1635
+ }
1636
+ TkScrollbar.new(base_frame, 'command'=>proc{|*args| c.yview(*args)}){|vs|
1637
+ c.yscrollcommand(proc{|first,last| vs.set first,last})
1638
+ pack('side'=>'right', 'fill'=>'y')
1639
+ }
1640
+ }
1641
+ $floor_canvas_frame.pack('side'=>'top','fill'=>'both', 'expand'=>'yes')
1642
+ $floor_canvas.pack('expand'=>'yes', 'fill'=>'both')
1643
+
1644
+ else
1645
+ TkFrame.new(base_frame) {|f|
1646
+ pack('side'=>'top', 'fill'=>'both', 'expand'=>'yes')
1647
+
1648
+ h = TkScrollbar.new(f, 'highlightthickness'=>0, 'orient'=>'horizontal')
1649
+ v = TkScrollbar.new(f, 'highlightthickness'=>0, 'orient'=>'vertical')
1650
+
1651
+ TkFrame.new(f, 'bd'=>2, 'relief'=>'sunken') {|f1|
1652
+ $floor_canvas = TkCanvas.new(f1, 'width'=>900, 'height'=>500,
1653
+ 'borderwidth'=>0,
1654
+ 'highlightthickness'=>0) {
1655
+ xscrollcommand(proc{|first,last| h.set first,last})
1656
+ yscrollcommand(proc{|first,last| v.set first,last})
1657
+ pack('expand'=>'yes', 'fill'=>'both')
1658
+ }
1659
+ grid('padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>0,
1660
+ 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news')
1661
+ }
1662
+
1663
+ v.grid('padx'=>1, 'pady'=>1, 'row'=>0, 'column'=>1,
1664
+ 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news')
1665
+ h.grid('padx'=>1, 'pady'=>1, 'row'=>1, 'column'=>0,
1666
+ 'rowspan'=>1, 'columnspan'=>1, 'sticky'=>'news')
1667
+
1668
+ TkGrid.rowconfigure(f, 0, 'weight'=>1, 'minsize'=>0)
1669
+ TkGrid.columnconfigure(f, 0, 'weight'=>1, 'minsize'=>0)
1670
+
1671
+ pack('expand'=>'yes', 'fill'=>'both', 'padx'=>1, 'pady'=>1)
1672
+
1673
+ v.command(proc{|*args| $floor_canvas.yview(*args)})
1674
+ h.command(proc{|*args| $floor_canvas.xview(*args)})
1675
+ }
1676
+ end
1677
+
1678
+
1679
+ # Create an entry for displaying and typing in current room.
1680
+
1681
+ $currentRoom = TkVariable.new
1682
+ $floor_entry = TkEntry.new($floor_canvas, 'width'=>10, 'relief'=>'sunken',
1683
+ 'bd'=>2, 'textvariable'=>$currentRoom)
1684
+
1685
+ # Choose colors, then fill in the floorplan.
1686
+
1687
+ $floor_colors = {}
1688
+ if TkWinfo.depth($floor_canvas) > 1
1689
+ $floor_colors['bg1'] = '#a9c1da'
1690
+ $floor_colors['outline1'] = '#77889a'
1691
+ $floor_colors['bg2'] = '#9ab0c6'
1692
+ $floor_colors['outline2'] = '#687786'
1693
+ $floor_colors['bg3'] = '#8ba0b3'
1694
+ $floor_colors['outline3'] = '#596673'
1695
+ $floor_colors['offices'] = 'Black'
1696
+ $floor_colors['active'] = '#c4d1df'
1697
+ else
1698
+ $floor_colors['bg1'] = 'white'
1699
+ $floor_colors['outline1'] = 'black'
1700
+ $floor_colors['bg2'] = 'white'
1701
+ $floor_colors['outline2'] = 'black'
1702
+ $floor_colors['bg3'] = 'white'
1703
+ $floor_colors['outline3'] = 'black'
1704
+ $floor_colors['offices'] = 'Black'
1705
+ $floor_colors['active'] = 'black'
1706
+ end
1707
+
1708
+ $activeFloor = ''
1709
+ floorDisplay $floor_canvas,3
1710
+
1711
+ # Set up event bindings for canvas:
1712
+
1713
+ $floor_canvas.itembind('floor1', '1', proc{floorDisplay $floor_canvas,1})
1714
+ $floor_canvas.itembind('floor2', '1', proc{floorDisplay $floor_canvas,2})
1715
+ $floor_canvas.itembind('floor3', '1', proc{floorDisplay $floor_canvas,3})
1716
+ $floor_canvas.itembind('room', 'Enter', proc{newRoom $floor_canvas})
1717
+ $floor_canvas.itembind('room', 'Leave', proc{$currentRoom.value = ''})
1718
+ $floor_canvas.bind('2', proc{|x,y| $floor_canvas.scan_mark x,y}, '%x %y')
1719
+ $floor_canvas.bind('B2-Motion',
1720
+ proc{|x,y| $floor_canvas.scan_dragto x,y}, '%x %y')
1721
+ $floor_canvas.bind('Destroy', proc{$currentRoom.unset})
1722
+ $currentRoom.value = ''
1723
+ $currentRoom.trace('w',proc{roomChanged $floor_canvas})
1724
+