# -*- coding: utf-8 -*- # frozen_string_literal: false # # text (basic facilities) widget demo (called by 'widget') # # toplevel widget が存在すれば削除する if defined?($text_demo) && $text_demo $text_demo.destroy $text_demo = nil end # demo 用の toplevel widget を生成 $text_demo = TkToplevel.new {|w| title("Text Demonstration - Basic Facilities") iconname("text") positionWindow(w) } base_frame = TkFrame.new($text_demo).pack(:fill=>:both, :expand=>true) # version check if ((Tk::TK_VERSION.split('.').collect{|n| n.to_i} <=> [8,4]) < 0) undo_support = false else undo_support = true end # frame 生成 TkFrame.new(base_frame) {|frame| TkButton.new(frame) { #text '了解' text '閉じる' command proc{ tmppath = $text_demo $text_demo = nil tmppath.destroy } }.pack('side'=>'left', 'expand'=>'yes') TkButton.new(frame) { text 'コード参照' command proc{showCode 'text'} }.pack('side'=>'left', 'expand'=>'yes') }.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m') # text 生成 TkText.new(base_frame){|t| # 生成 relief 'sunken' bd 2 setgrid 1 height 30 TkScrollbar.new(base_frame) {|s| pack('side'=>'right', 'fill'=>'y') command proc{|*args| t.yview(*args)} t.yscrollcommand proc{|first,last| s.set first,last} } pack('expand'=>'yes', 'fill'=>'both') # テキスト挿入 insert('0.0', <