BBInterface Documentation ========================= 概要 BBInterface は、 例えば 「クリックしたら Winamp の再生を開始」するボタンや、 「プラグインの透明度を変更する」スライダーとかが作れます。 こういう部品を複数作れて、 さらにそれをフレーム (スリットみたいなもの) に格納することができます。 正確には、 ボタンやスライダーなどの部品 (「コントロール」と呼ぶ) を作り、 それに対して何らかの機能を割り当てる、 という構造になっています。 コントロールの作成や配置、機能の割り当てなどは GUI で行えます。 一部の項目については手でスクリプトを書き換える必要がありますが、 そういうことは滅多にありません。 BBInterface のスレッド: http://forums.loose-screws.com/viewtopic.php?t=1644 現在のバージョン: http://users.wpi.edu/~psyci/blackbox/BBInterface_0_9_5.zip FAQ # 以下はスレッドにあったものの適当な訳 1.1. これはどのブランチで動作しますか? 本家: 動作します。最良の結果のためには 最新の nightly を使ってください。 bblean: 動作します。 xoblite: 私が聞いた限りでは動作しません (*2)。 そのうち動作するようになると思います。 blubox: ( ´・ω・`) 1.2. これは何ができるんですか? 何らかの機能を割り当てることのできるコントロールを 作ることができます。どんなことができるか? Bro@ms、アプリケーションの実行、Winamp、 ミキサーの設定…… 他のものもそのうち追加されるでしょう。 1.3. どんなコントロールがあるんですか? フレーム (一般的なコントロールの基礎) ラベル ボタン スイッチボタン スライダー コントロールについて提案があれば、ポストしてください。 1.4. どんなエージェントがあるんですか? Bro@m (Bro@m の送信 - BBInterface 自身へも可能) 実行/開く (任意のファイルを実行または開くことができます) Winamp (*** only actions at this point, slider/label agents coming!) 固定文字列 (何もしません。見出しに使います) ミキサー (*** all your sound card stuff) システム/シェル (シャットダウン、toggle plugins、他) ビットマップ (まほうのぴんくでとうかもさぽーと! 2k/XP 限定 *** with Magic Pink transparency!) アイコン TGA (*** with alpha layer! 2k/XP 限定) エージェントに関する提案があればポストしてください。 1.5. スリットに入れれますか? はい、全て入れることができます。 個々のコントロールを入れることができますし、 他のコントロールを格納しているフレームを 入れることもできます。 *** You can slit individual controls, or slit frames containing child controls for even more conrtol. 1.6. ソースコードは公開していますか? 近いうちに…… .. 1.7. Winamp、CookPlayer、K-Jofol、foobar2000 などを 操作することはできますか? はい。Winamp に関しては内蔵されています。 他のプレイヤーを操作するには、 Multiamp プラグインをセットアップし、 BBInterface が @maPlay や @maStop などの bro@m を 送信するよう設定してください。 この方法で他のプラグインも 実際に操作することができます。 共通事項 親子云々はフレームのところを参照。 操作: Ctrl + 左ドラッグ コントロールの移動 Shift + Ctrl + 左ドラッグ 親コントロールの移動 Ctrl + 右クリック メニューを表示 Alt + 左ドラッグ コントロールのリサイズ メニュー: Interface Operations -> Create New Control 新しいコントロールを作ります。 これで作成したコントロールは 親コントロールを持ちません。 作成できるコントロールはフレームを含む全てです。 -> Delete This Control この (メニューを表示する際にクリックした) コントロールを削除します。 子コントロールを持つ場合はそれも含めて削除されます。 -> Control Commands 各コントロールに対して何らかのコマンドを送ります。 現在は Visible (表示/非表示) の設定のみです。 なお、Visble は子が親から継承する設定です。 Control Options このコントロールに対する設定。 各コントロールによって設定できる内容は違うので、 それぞれの説明を参照してください。 Window Options コントロールの表示に関する設定。 子コントロールの場合は下記のメニューは現れません。 これらの設定は全て親コントロールから継承されます。 -> Toggle With Plugins toggleplugins で表示 / 非表示を切り替えるか否か。 -> On All Workspaces 全てのワークスペースで表示するか否か。 -> Visible 表示 / 非表示の切り替え。 -> Always On Top 常に最前面に表示するか否か。 -> Snaps To Borders 画面端近くに移動させたときにスナップするか否か。 -> Transparent 半透明表示するか否か。 -> Transparency 透明度の指定。メニューからは 10% 単位で設定できます。 Parent Control Options 親コントロールを持つ場合にのみ表示されます。 内容は親の Control Options と同一です。 Parent Window Options 親コントロールを持つ場合にのみ表示されます。 内容は親の Window Options と同一です。 Configuration -> Save Configuration 設定を保存します。 保存するファイルは BBInterface.dll と 同じ場所にある BBInterface.rc です。 -> Save Configuration As... ファイル名を指定して設定を保存します。 -> Revert To Last Saved Configuration 最後に保存した設定に戻します (つまり設定を読み込みしなおす)。 -> Load Configuration Script... 指定したファイルから設定を読み込みます。 Help -> Quick Reference... 上で説明した操作が書かれたダイアログを表示。 -> About... BBInterface についてのダイアログを表示。 -> Show Welcome Interface BBInterface の紹介兼サンプルを表示します。 フレーム (Frame) フレームは他のコントロールの入れ物です。 フレームの中に他のコントロールを作ることができます。 (ただしフレームの中にフレームは入れられない)。 このことからコントロールに親子関係ができます (フレームが親で、フレームの中のコントロールはその子)。 子コントロールは親コントロールから 半透明など一部の設定を自動的に継承します。 親の設定が変更されるとそれは子にも反映されることになります。 なお、継承した設定を上書きすることはできません (「フレームにボタンとラベルを格納して、 フレームの透明度を 50% にするが、 ラベルだけは 25% にする」ということはできない)。 なお、フレームには機能を割り当てることができません。 メニュー: Interface Operations 共通のものに加え、以下のものが追加されています。 -> Create New Child Control 新しいコントロールを作ります。 これで作成したコントロールは この (メニューを表示する際にクリックした) フレームの 子コントロールとなります。 作成できるコントロールはフレーム以外の全てです。 Control Options このコントロールに関する設定です。 -> Caption フレームの見出しとなる文字列を設定します。 使用しているシェルのバージョンによっては メニューから任意の文字列を 指定することはできないため少々アレです (*1)。 -> Nothing Caption を無しにします。 -> Static Text 指定した文字列を Caption に設定します。 -> Caption Options 現在設定可能な項目はありません。 -> Image 指定した画像を表示します。 サポートされているフォーマットは後述。 -> Nothing Image を無しにします。 -> Bitmap ビットマップ (.bmp) を指定します。 2000/XP のみ、紫 #FF00FF の部分を 透過して表示されます。 -> Icon アイコン (.ico 等) を指定します。 .ico だけでなく、 アイコンのデータが埋め込まれている .dll や .exe を指定することもできます。 ただし、複数のアイコンが 埋め込まれていても最初のアイコンしか 表示できないようです。 -> TGA TGA (.tga) を指定します。 無圧縮で 32bpp のものしか サポートされていません。 -> Image Options -> Not set. 画像が指定されていない場合は これだけが表示されます。 -> No options available. 現在設定可能な項目はありません。 -> Style どのスタイルを適用するかを指定します。 -> Text Settings テキストに関する設定をします。 これはこのフレームの Caption にのみ影響を与えます。 なお、他のコントロールは Caption を設定しても Center Center (つまり中央) にしか表示されません。 -> Left -> Center -> Right 左端 / 中央 / 右端に揃えて表示します。 -> Top, Word Wrapped -> Top -> Center -> Bottom 上端 / 上端 / 中央 / 下端に揃えて表示します。 Top, Word Wrapped を指定すると、 コントロールの幅に対して テキストが長すぎる場合に テキストを折り返して表示します。 それ以外の場合、コントロールから はみ出た分は表示されません。 -> Has Title Bar チェックするとフレームの上端にバーを表示します。 Text Settings が Center や Bottom の場合は少々アレ。 ラベル (Label) ラベルは指定された文字列を表示するだけのコントロールです。 メニュー: Control Options Has Title Bar がないことを除けば フレームと全く同じです。 ボタン (Button) クリックすることができるボタンです。 ボタンが押されたとき、または離されたときに 何らかの動作をさせることができます。 例: MouseDown に @BBHidePlugins、MouseUp に @BBShowPlugins で 押している間だけプラグインを隠すボタン。 メニュー: Control Options -> Caption -> Caption Options -> Image -> Image Options フレームと同一。 -> MouseDown ボタンが押されたときに何をするかを指定します。 -> MouseDown Options 現在設定可能な項目はありません。 -> MouseUp ボタンが離されたときに何をするかを指定します。 -> MouseUp Options 現在設定可能な項目はありません。 スイッチボタン (Switch Button) ボタンとほぼ同じです。 違いはクリックするごとに通常 / 押しっ放しと状態が変わること。 例: Pressed に @BBHidePlugins、Unpressed に @BBShowPlugins で プラグインの表示 / 非表示を切り替えるスイッチボタン。 # このボタンの Window Options > Toggle With Plugins が On だと # かなり間抜けなことになる。 メニュー: Control Options -> Caption -> Caption Options -> Image -> Image Options フレームと同一。 -> Value 状態が変わるときに何をするかを指定します。 割り当てれる機能が Pressed や Unpressed と 違います。 -> Value Options 現在設定可能な項目はありません。 -> Pressed 通常の状態から押しっぱなしの状態になったときに 何をするかを指定します。 -> Pressed Options 現在設定可能な項目はありません。 -> Unpressed 押しっぱなしの状態から通常の状態になったときに 何をするかを指定します。 -> Unpressed Options 現在設定可能な項目はありません。 スライダー (Slider) 上下、あるいは左右に調節できるつまみ。 ボリュームや透明度のような値を操作することに使えます。 メニュー: Control Options -> Value スライダーが調節されたときに何をするかを指定します。 -> Value Options 現在設定可能な項目はありません。 -> Values Reversed スライダーの値を「最大値 - 現在値」として表示します。 スライダーは左から右、または下から上へ動かすと 値が増加しますが、このオプションが On だと 左か右、または下から上へ動かすと値が減るように なります。 -> Appearance 外観を指定します。 -> Horizontal -> Vertical スライダーの調節方向を指定します。 それぞれ横方向 / 縦方向です。 -> Fill Bar -> Scroll Bar -> Track and Knob スライダーのスタイルを指定します。 Fill Bar は最小値から現在値までを 塗りつぶしたバー。 Scroll Bar と Track and Knob は 溝と現在値を示す取っ手。 違いは溝の幅 (T&K の方が狭い)。 具体的には http://nicht.s8.xrea.com /2004/02/06/BBInterface-Slider-Appearance を 参照してください。 変更履歴 0.9.5 - コマンドライン引数のサポート - ボタン、ラベル、フレームに画像 (Image agents) を使えるようになった - ビットマップイメージの透過をサポート (#FF00FF を透過) (2000/XP 限定) - アイコンイメージ - TGA イメージ (32bpp の無圧縮画像。 半透明 (alpha) は2000/XP でのみ動作します) - フレームがキャプションやタイトルバーを持てるようになった - システムやシェルにメッセージ (シャットダウン関連、 ワークスペース関連など) を送るエージェントが追加されました - いくつかのアーキテクチャが改善されました - 多くの細かいバグを修正しました - 覚えれないくらい多くの細かい改良をしました - メニューから文字列を設定できるようになりました (MakeMenuItemString を使います) その他 (*1) メニューから Caption に任意の文字列を設定できないのは、 BB4W の API にそういう関数がないから。 psyci さんが MakeMenuItemString という関数を書いて 開発チームに送ったので、そのうち本家にマージされるでしょう。 # 2004-02-04 以降にリリースされた本家 nightly に # MakeMenuItemString が追加されたようです。 (*2) xoblite で動作しないのは GetSettingPtr という関数がないから。 詳細は省略。 ( ) 全てのコントロールを削除すると、 自動的に同梱されているサンプルが読み込まれます。 ( ) 他のスクリプトを読み込むことには以下のようにする (実際には 1 行): @BBInterface Control SetAgent WTBBI_Close MouseUp Bro@m "@BBInterface Plugin Load WelcomeSCript\messagebox.rc" 現在のバージョンではスクリプトを手動で編集する必要があります。 ( ) Q. アイコンのサイズを指定することはできますか? A. 次のバージョンでサポートされると思います。 ( ) スクリプトに空行があるとそこでスクリプトの処理が終わる。 # 初版: 2004-02-04T11:49+09:00 # $Id$ [EOF]