The Media Kit Table of Contents     The Media Kit Index

BMediaTheme

Derived from: none

Declared in: be/media/MediaTheme.h

Library: libmedia.so

Allocation: Constructor only

Summary

 BMediaThemeは、BParameterWebを与えられることで、BParameterWebによって参照されるBControllable nodeを設定する必要のある全てのcontrolを含むBViewを作成することができます。それから、あなたはウィンドウにBViewを追加することができ、それによってユーザはnode同士のリンクのためにnodeを設定することができます。

 結果として得られたBViewは、nodeで使用可能なパラメータのcontrolを格納するだけでなく、nodeに渡されるデータの流れも示します。

 BeOSは、Release 4から使用できるようになった音声及びビデオの初期設定アプリケーション(訳注 : 「Media」アプリケーション)でみられるような、デフォルトのメディアcontrolの外見を提供する、標準的なthemeを持っています。

 もしBeOS上でメディアのcontrolの外見を変更したければ、独自のBMediaThemeを書いて、それをSetPreferredTheme()を呼び出してデフォルトのシステムのthemeとしてインストールすることができます。もし新しいthemeを書いて、それを新しいシステムのthemeとしてその能力をユーザが使用できるように提供したいなら、SetPreferredTheme()を呼び出すアプリケーションを書く必要があります。


Hook Functions

  • BackgroundBitmapFor()

  • BackgroundColorFor()

  • ForegroundColorFor()

  • MakeControlFor()

  • MakeViewFor()


    Constructor and Destructor


    BMediaTheme()

    protected:

                                                             
      

    BMediaTheme(const char *name,|
          const char *info,
          const entry_ref *addOn = NULL,
          int32 themeID = 0)

     BMediaThemeのコンストラクタは、それがシステムやアプリケーションから使用できるようにthemeを初期化します。ユーザが読むことのできるthemeの名前が引数nameに渡され、themeに関するある程度長い記述がinfoに渡されます。

     name及びinfoの文字列は複製されます。したがって、もしそうしたければ、オリジナルの文字列を破棄することができます。これらの文字列は両方とも、使用のためにthemeを選択するユーザインターフェイスにてユーザに提示されるため、可読性がなければなりません。

     そのthemeがディスクのadd-onにて有効であるなら、addOnでadd-onファイルのentry_refを指定し、themeIDでそのadd-onによってthemeに割り当てられるIDを指定して下さい。


    ~BMediaTheme()

                                                             
      

    virtual ~BMediaTheme()

     themeによって使用されるメモリを破棄します。もしthemeを作成したら、themeによって領域確保されたメモリをデストラクタで必ず解放して下さい。


    Member Functions


    BackgroundBitmapFor()

                                                             
      

    virtual BBitmap *BackgroundBitmapFor(bg_kind backgroundKind)

     特定の型のユーザインターフェイスオブジェクトに対して背景として使用されるBBitmapを返します。backgroundKindに指定できる値は下記の通り :

    Constant Description
    B_GENERAL_BG 他に適切なものがない時に使用される
    B_SETTINGS_BG controlによって満たされたパネルとウィンドウに対して使用される
    B_PRESENTATION_BG 実際のメディアの内容を表示するウィンドウに対して使用される
    B_EDIT_BG メディアの内容を編集するウィンドウに対して使用される
    B_CONTROL_BG controlを描画するために使用される
    B_HILITE_BG メディアデータを選択したときのように、情報をハイライトする際に使用される


    BackgroundColorFor()

                                                             
      

    virtual rgb_color BackgroundColorFor(bg_kind backgroundKind)

     特定の型のユーザインターフェイスオブジェクトに対して背景として使用されるrgb_colorを返します。backgroundKindに指定できる値は、下記の通りです :

    Constant Description
    B_GENERAL_BG 他に適切なものがない時に使用される
    B_SETTINGS_BG controlによって満たされたパネルやウィンドウに対して使用される
    B_PRESENTATION_BG 実際のメディアの内容を表示するウィンドウに対して使用される
    B_EDIT_BG メディアの内容を編集するウィンドウに対して使用される
    B_CONTROL_BG controlを描画するために使用される
    B_HILITE_BG メディアデータを選択したときのように、情報をハイライトする際に使用される


    ForegroundColorFor()

                                                             
      

    virtual rgb_color ForegroundColorFor(bg_kind foregroundKind)

     特定の型のユーザインターフェイスオブジェクトに対して前景(foreground)として使用されるrgb_colorを返します。foregroundKindに指定できる値は、下記の通りです :

    Constant Description
    B_GENERAL_FG 他に適切なものがない時に使用される
    B_SETTINGS_FG controlによって満たされたパネルやウィンドウに対して使用される
    B_PRESENTATION_FG 実際のメディアの内容を表示するウィンドウに対して使用される
    B_EDIT_FG メディアの内容を編集するウィンドウに対して使用される
    B_CONTROL_FG controlを描画するために使用される
    B_HILITE_FG メディアデータを選択したときのように、情報をハイライトする際に使用される


    GetRef()

                                                             
      

    bool GetRef(entry_ref *outRef)

     themeが読み込まれたadd-onファイルを参照するようにoutRefを設定し、trueを返します。もしthemeがadd-onから読み込まれていなければ、この関数はfalseを返します。


    ID()

                                                             
      

    int32 ID(void)

     themeが存在するadd-onによって割り当てられたthemeのIDを返します。IDは、add-onの中でのみユニークとなります。

     もしthemeがadd-on中になければ、0が返されます。


    Info()

                                                             
      

    const char *Info(void)

     themeが作成された時に指定された、可読性のあるthemeの長い記述を返します。


    MakeControlFor()

                                                             
      

    virtual BControl *MakeControlFor(BParameter *parameter) = 0

     もしあなたが自分自身のthemeを作成したら、指定されたBParameterで機能する適切なBControlを返すよう、この関数を実装して下さい。

     controlを作成するためにthemeを使用したいが、配置は自分自身で扱いたいアプリケーションは、webに於けるそれぞれのパラメータに対して、ViewFor()に頼る代りにこの関数を呼び出すことができます。しかしながら、もしアプリケーションがview全体のセットアップを行うためにViewFor()を使用するのではなく、個別のcontrolを作成するためにMakeControlFor()を使用するならば、アプリケーションは、値の変更メッセージに反応する際にcontrolの値を設定する責任があると想定します。

     もし呼び出された時に特定のメッセージをcontrolに送信させたいなら、controlのBControl::SetMessage()を呼び出して下さい。


    MakeFallbackViewFor()

                                                             
      

    static BControl *MakeFallbackViewFor(BParameter *control)

     もしあなたが自分自身のthemeを実装し、標準のシステムthemeのBControlを使用するためにBParameterが必要であれば、そのBControlを得るためにMakeFallbackViewFor()を呼び出して下さい。

     これは、もしあなたのthemeが確実なcontrolだけを引数にするか、あるいはそれについて全くなにも知らないBParameterを受け取るなら、この関数を使用できます。

     
    理解していないBParameterに対してBControlを生成するよう依頼するなら、MakeControlFor()は常にMakeFallbackViewFor()を呼び出すよう実装して下さい。



    MakeViewFor()

                                                             
      

    virtual BView *MakeViewFor(BParameterWeb *web,
          const BRect *hintRect = NULL) = 0

     BParameterWeb及びhintRectを指定することで、この関数がwebのBParameterを扱うためのBControlを内包するBViewをコンストラクトするように実装して下さい。hintRectは、呼び出したものがBViewによって埋めるのに適切だと考える領域です。あなたのthemeは、可能であればその矩形内に留まるよう試みなければなりません。

     webは、themeに所属するこの関数によって返されます。アプリケーションは、それを削除しないでください(適切に書かれたthemeは、viewが閉じられる際に自動的にwebを破棄します)。

     この関数は、ViewFor()によって呼び出されます。


    PreferredTheme() , SetPreferredTheme()

                                                             
      

    static BMediaTheme *PreferredTheme(void)

    static status_t *SetPreferredTheme(BMediaTheme *newPreferredTheme)

     PreferredTheme()は、現在の優先的なthemeを返します。SetPreferredTheme()は、優先的なthemeをnewPreferredThemeによって指定されたthemeに変更します。

     優先的なthemeは、インターフェイスが生成されるときに特定のthemeが要求されなければ、nodeを制御するためのユーザインターフェイスを生成するために使用されるでしょう。

    RETURN CODES

    B_OK. 優先的なthemeはエラーなしに変更された。

     こちらもご覧下さい : ViewFor(), MakeViewFor()


    Name()

                                                             
      

    const char *Name(void)

     themeが生成された際に指定された、themeの読み取り可能な名前を返します。


    SetPreferredTheme() see PreferredTheme()


    ViewFor()

                                                             
      

    static BView *ViewFor(BParameterWeb *web,
          const BRect *hintRect = NULL,
          BMediaTheme *usingTheme = NULL)

     典型的にはBMediaRoster::GetControlWeb()によって返される BParameterWeb webを与えることで、この関数はwebが記述するnodeのユーザによる設定を許可するために、BWindowに適切なBViewを生成します。BViewは、nodeを通したデータの流れの経路を示す図表と、ユーザが各々の制御点(control point)を設定するためのcontrolを含みます。

     
    この関数は、nodeを設定するviewを生成する公共のインターフェイスです(もし自分自身のthemeを実装するなら、MakeViewFor()関数をオーバーライドして下さい)。


     返されたviewは、usingThemeによって指定されたthemeを使用して生成されます。もしこの引数がNULLであれば、優先されるthemeは使用されています。パラメータ hintRectはviewが占有しようと試みるべき矩形領域を指定し、MakeViewFor()に渡されます。


    Global C Functions


    get_nth_theme()

                                                             
      

    status_t get_nth_theme(int32 n, const char **outName,
          const char **outInfo, int32 *outID)

     この関数は、themeのadd-onが読み込まれた後、そのadd-on内でどんなthemeが利用できるかを割り出すために呼び出されます。この関数は、連続的に増加するnによって、エラーが返されるまで繰り返し呼び出されます。

     この関数のあなたのadd-onによる実装は、n番目のthemeの名前をポイントするようにoutNameを設定し、n番目のthemeを記述する情報をポイントするようにoutInfoを設定します。そしてoutIDには、n番目のthemeの、add-onがサポートするthemeを識別するために内部的に使用されるID番号が設定されます。


    make_theme()

                                                             
      

    BMediaTheme *make_theme(int32 themeID, image_id imageID)

     もしadd-onファイルから読み込まれるthemeを書いているなら、themeIDによって指定されるBMediaThemeを生成するためのmake_theme()を実装しなければなりません。imageIDは、themeが置かれているadd-onのimage_idです。


    Constants


    Background Color and Bitmap Kinds

    Constant Description
    B_GENERAL_BG 他に適切なものがない時に使用される
    B_SETTINGS_BG controlによって満たされたパネルやウィンドウに対して使用される
    B_PRESENTATION_BG 実際のメディアの内容を表示するウィンドウに対して使用される
    B_EDIT_BG メディアの内容を編集するウィンドウに対して使用される
    B_CONTROL_BG controlを描画するために使用される
    B_HILITE_BG メディアデータを選択したときのように、情報をハイライトする際に使用される

     これらの定数は、多様なユーザインターフェイスの要素の背景に使用される色またはビットマップを変更することで、themeが外観(appearance)をカスタマイズすることのできるユーザインターフェイスの部品を識別します。これらの定数は、BackgroundBitmapFor()及びBackgroundColorFor()を呼びだす時に使用できます。

     例えば、B_PRESENTATION_BGの色とビットマップのいずれかまたは両方は、再生されている音声波の波形を表示するオシロスコープディスプレイのウィンドウの背景に使用されます。また、波形を編集するのに使用されるウィンドウの背景には、B_EDIT_BGによって指定される色(または存在していれば、B_EDIT_BGによって指定されるビットマップ)が使用されます。ただし、ユーザが選択した波形の一部分は、B_HILITE_BGによって指定された背景色またはビットマップになります。


    Foreground Color Kinds

    Constant Description
    B_GENERAL_FG 他に適切なものがない時に使用される
    B_SETTINGS_FG controlによって満たされたパネルやウィンドウに対して使用される
    B_PRESENTATION_FG 実際のメディアの内容を表示するウィンドウに対して使用される
    B_EDIT_FG メディアの内容を編集するウィンドウに対して使用される
    B_CONTROL_FG controlを描画するために使用される
    B_HILITE_FG メディアデータを選択したときのように、情報をハイライトする際に使用される

     foreground color kindは、多様なインターフェイス要素の前景(foreground)の部分を描画する際に、使用する色を得るためにForegroundColorFor()を呼びだした時に使用されます。


    The Media Kit Table of Contents     The Media Kit Index


    The Be Book,
    ...in lovely HTML...
    for BeOS Release 5.

    Copyright © 2000 Be, Inc. All rights reserved..