#!ruby # -*- mode: ruby; coding: utf-8 -*- # Last updated: <2016/01/12 19:10:26 +0900> # # ImageButton(画像ボタン)を表示してみる require_relative 'lib/dxrubyws' require_relative 'lib/standardgui' module WS # 画像ボタンを表示してみるウインドウのクラス class ImageButtonWindow < WSWindow # コンストラクタ。初期化処理 def initialize(*args) super # 画像を用意する。アイコンが、8x3個、並んでる imgs = Image.loadTiles("toolbar.png", 8, 3) # 画像ボタンを生成 # 引数として、(x, y, Imageオブジェクト, ボタン横幅, ボタン縦幅, caption) を渡す # 横幅、縦幅の指定が nil なら、画像サイズ+αで調整してくれる x, y = 10, 10 w, h = nil, nil imgbtn = WS::WSImageButton.new(x, y, imgs[1], w, h, "Open") # 画像ボタンをクライアント領域に追加 client.add_control(imgbtn, :btn) # ボタンが押された時の処理を設定 imgbtn.add_handler(:click, self.method(:on_click)) end # ボタンを押した時の処理 def on_click(obj, tx, ty) # ファイル選択ダイアログを開いてみる filter = [ ["PNGファイル(*.png)", "*.png"], ["すべてのファイル(*.*)", "*.*"] ] filepath = Window.openFilename(filter, "ファイルを選択してください") unless filepath # キャンセルされた puts "Cancel." else # ファイルが選ばれた puts filepath end end end end # ウインドウを生成 window = WS::ImageButtonWindow.new(8, 8, 320, 96, "ImageButtonWindow") # 画面に追加 WS.desktop.add_control(window) Window.loop do WS.update end