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の標準メソッドputspを試してみて下さい。

もし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
ask_open_file() » a string

"ファイルを開く。。。"ウィンドウをポップアップします。これは標準のウィンドウであり、すべてのフォルダを表示して 開くファイルを選択させます。そしてファイルの名前を返します。

 filename = ask_open_file
 Shoes.app do
   para File.read(filename)
 end
ask_save_file() » a string

これは先ほど述べたask_open_fileと似ており、"ファイルを保存する。。。"ウィンドウをポップアップします。

 save_as = ask_save_file
 Shoes.app do
   para save_as
 end
ask_open_folder() » a string

"フォルダを開く。。。"ウィンドウをポップアップします。これは、すべてのフォルダを表示し、開くフォルダを 選択させる標準のウィンドウです。これはあなたにフォルダの名前を渡します。

 folder = ask_open_folder
 Shoes.app do
   para Dir.entries(folder)
 end
ask_save_folder() » a string

これは先ほど述べた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を呼び出して下さい。

font(message: a string) » an array of font family names

ファイルからTrueType(または他の種類のフォント)をロードします。TrueTypeはすべてのプラットフォームで サポートされるとはいえ、あなたのプラットフォームは他の種類のフォントをサポートするかもしれません。 Shoesはこの動作に、それぞれのオペレーティングシステムのビルトインフォントシステムを利用します。

注意: 今のところGreen Shoesでは、fontメソッドをサポートしていません。

ここにどのプラットフォームで何のフォントが動作するかの目安があります。

フォントが適切にロードされたなら、ファイルに見つかったフォントの名前の配列を取り戻すでしょう。 そうではなく、ファイルにはフォントが見つからないなら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では、もしフォントがロードされる前に利用されたなら、 フォントキャッシュはロードされたフォントを無視する傾向があります。

gradient(color1, color2) » a range of RGB array

二つの色から直線勾配を作ります。それぞれの色に、色を描画するために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
rgb(red, green, blue, alpha) » an array of decimal numbers

赤、緑、青の構成要素から色を作成します。アルファレベル(透明度を示す)は任意に加えることができます。

整数を渡すときは、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