The Green Shoes Manual 1.1.357
Built-in Methods
これらのメソッドはGreen Shoesのプログラムを通してどこでも利用できます。
これらすべてのコマンドは、あなたがドットをそれらに付与しない点が珍しいです。 このマニュアルのほかのすべてのメソッドはオブジェクトにドットを付与すべきです。 しかし、これらのビルトインメソッド(カーネルメソッドとも呼ばれている)はドットがないことを意味します。
一般的なものとしてalert
があります:
alert "No dots in sight"
これと、ArrayとStringに対してだけ利用可能な、カーネルメソッドではない、 reverse
メソッドを比較してください:
Shoes.app do
para "Plaster of Paris".reverse
#=> "siraP fo retsalP"
para [:dogs, :cows, :snakes].reverse
#=> [:snakes, :cows, :dogs]
end
描画やボタンを作成したりするための多くのGreen Shoesメソッドはスロットへ付与されます。 より詳しい情報についてはSlotsのセクションを見てください。
ビルトイン定数
Green Shoesにはいくつかのビルトイン定数があり、それはどんなバージョンのGreen Shoesが 実行されているかを判別することを証明するのに利用できるかもしれません
DIR は、green_shoes/lib
のフルパスです。
COLORS は、アプリケーションで利用できる色の完全な一覧です。
FONTS は、アプリケーションで利用できるフォントの完全な一覧です。
VERSION は、Green Shoesのバージョンです。
Shoes.app do
para VERSION
para fg(DIR, red)
image File.join(DIR, '../static/gshoes-icon.png')
para fg(FONTS.join(', '), green)
para COLORS.map{|k, v| [k, v]}
end
短いメッセージを含むウィンドウをポップアップします。
alert "I'm afraid I must interject!"
alertは信じられないほど煩わしいので控えめに利用してください! プログラムをデバッグする手助けのメッセージを表示するためにalertを利用するなら、 Rubyの標準メソッドputs
やp
を試してみて下さい。
もしalert()メソッドをスレッドセーフにしたい場合、すなわちメインスレッドをブロックしたくない場合は、 :block => false
オプションを使ってください。またウィンドウのタイトルを変更したい場合は、 :title => a string
オプションを使ってください。
ウィンドウをポップアップして質問をします。例えば、あなたは誰かに名前を尋ねたいかもしれません。
if name = ask("Please, enter your name:")
Shoes.app{para "Welcome, #{name}!"}
end
上記のスクリプトを実行するとき、コンピュータを利用している人は、名前を入力するための空のボックスを 持つウィンドウを見るでしょう。そして、その名前はname
変数に保存されます。
カラーピッカーウィンドウをポップアップします。このプログラムは色が選ばれるのを待ち、そしてあなたに 色オブジェクトを与えます。いくつかの方法でこの色を利用するためにColor
ヘルプを見てください。
backcolor = ask_color "Pick a background"
Shoes.app do
background backcolor
end
"ファイルを開く。。。"ウィンドウをポップアップします。これは標準のウィンドウであり、すべてのフォルダを表示して 開くファイルを選択させます。そしてファイルの名前を返します。
filename = ask_open_file
Shoes.app do
para File.read(filename)
end
これは先ほど述べたask_open_file
と似ており、"ファイルを保存する。。。"ウィンドウをポップアップします。
save_as = ask_save_file
Shoes.app do
para save_as
end
"フォルダを開く。。。"ウィンドウをポップアップします。これは、すべてのフォルダを表示し、開くフォルダを 選択させる標準のウィンドウです。これはあなたにフォルダの名前を渡します。
folder = ask_open_folder
Shoes.app do
para Dir.entries(folder)
end
これは先ほど述べたask_open_folder
と似ており、"フォルダを保存する。。。"ウィンドウをポップアップします。
save_to = ask_save_folder
Shoes.app do
para save_to
end
yes-または-noの質問をポップアップします。コンピュータの前の人がyesをクリックするなら、 返されるtrue
を受け取ります。そうでは無いなら、返されるfalse
を受け取ります。
if confirm("Draw a circle?")
Shoes.app{ oval top: 0, left: 0, radius: 50 }
end
プログラムを止めます。突然に終了したいときはいつでも、これを呼んでください。
注意: Ruby自身の標準exit
メソッドを使う必要がある場合は (フォークされたRubyプロセス内で等) Kernel.exit
を呼び出して下さい。
ファイルからTrueType(または他の種類のフォント)をロードします。TrueTypeはすべてのプラットフォームで サポートされるとはいえ、あなたのプラットフォームは他の種類のフォントをサポートするかもしれません。 Shoesはこの動作に、それぞれのオペレーティングシステムのビルトインフォントシステムを利用します。
注意: 今のところGreen Shoesでは、fontメソッドをサポートしていません。
ここにどのプラットフォームで何のフォントが動作するかの目安があります。
- Bitmap fonts (.bdf, .pcf, .snf) - Linux
- Font resource (.fon) - Windows
- Windows bitmap font file (.fnt) - Linux, Windows
- PostScript OpenType font (.otf) - Mac OS X, Linux, Windows
- Type1 multiple master (.mmm) - Windows
- Type1 font bits (.pfb) - Linux, Windows
- Type1 font metrics (.pfm) - Linux, Windows
- TrueType font (.ttf) - Mac OS X, Linux, Windows
- TrueType collection (.ttc) - Mac OS X, Linux, Windows
フォントが適切にロードされたなら、ファイルに見つかったフォントの名前の配列を取り戻すでしょう。 そうではなく、ファイルにはフォントが見つからないならnil
が返されます。
また興味深いことに:Shoes::FONTS
定数はこのプラットフォームで利用可能なフォントの完全な一覧です。 include?
を利用していくつかのフォントをチェックできます。
if Shoes::FONTS.include? "Coolvetica"
alert "Coolvetica is available on this system."
else
alert "You do not have the Coolvetica font."
end
もしフォントを表示することに問題があるなら、それを利用する前に、アプリケーションがフォントを ロードすることを確認してください。特にOS Xでは、もしフォントがロードされる前に利用されたなら、 フォントキャッシュはロードされたフォントを無視する傾向があります。
二つの色から直線勾配を作ります。それぞれの色に、色を描画するためにRGB arrayか文字列を渡します。 例えば、gradient(green, red)
は、green..red
と同じです。 またgradient(green, '#FA3')
のように記述することもできます。
Shoes.app do
oval 100, 100, 100,
fill: gradient(green, '#FA3'), angle: 45
end
暗さのレベルや、任意的にはアルファレベルからグレースケールカラーを作成します。
Shoes.app do
nostroke
11.times do |i|
y = x = 50 + 10 * i
r = 200 - 10 * i
oval x, y, r, fill: gray(1-i*0.1)
end
end
赤、緑、青の構成要素から色を作成します。アルファレベル(透明度を示す)は任意に加えることができます。
整数を渡すときは、0から255までの値を利用してください。
Shoes.app do
blueviolet = rgb(138, 43, 226, 0.5)
darkgreen = rgb(0, 100, 0, 0.5)
oval 100, 100, 100,
fill: [blueviolet, darkgreen].sample(1)
end
または、0.0から1.0までの10進数を利用してください。
Shoes.app do
blueviolet = rgb(0.54, 0.17, 0.89)
darkgreen = rgb(0, 0.4, 0)
oval 100, 100, 100,
fill: [blueviolet, darkgreen].sample(1)
end
Next: The App Object