Pixelmap上のボタンの色

PixelmapButtonの子供としてPromptをぶら下げ、PixelmapButtonにNormal/Selectedのピクセルマップを指定しています。

ボタンを押下するとSelectedのピクセルマップが描画され正常にピクセルマップの切り替えができているのですが、

Promptに指定したSelectedColorが反映されてそうにありません。

どのようにすればボタンの状態に応じてテキストの色が変わりますでしょうか?

親の状態に応じて子供の色を変えなければならないような気がしますが方法が分からずに困っております。

以下はコードの抜粋です。

(Pixelmapボタンの生成)

gx_pixelmap_button_create(&row->pixelmap,
    "PixelmapButton",
    &row->background,//親
    GX_PIXELMAP_ID_MAINMENUBUTTON,
    GX_PIXELMAP_ID_MAINMENUBUTTONS,
    GX_PIXELMAP_ID_MAINMENUBUTTON,
    GX_STYLE_ENABLED,
    0,
    &childsize);

(プロンプトの作成)

gx_prompt_create(&row->datetime,
    "DateTimeInfo",
    &row->pixelmap,
    0,
    GX_STYLE_VALIGN_TOP|GX_STYLE_TRANSPARENT|GX_STYLE_TEXT_CENTER,//メッセージのスタイル
    0,
    &childsize);

(フォントの指定)

gx_prompt_font_set(&row->datetime,GX_FONT_ID_REGULAR16);

(ノーマル/選択時の色指定)

gx_prompt_text_color_set(&row->datetime, GX_COLOR_ID_02, GX_COLOR_ID_17);

Parents
  • Former Member
    Former Member
    kom0313さん

    gx_prompt_text_draw関数のソースコードを見ると、そのpromptウィジェットのstyleにGX_STYLE_DRAW_SELECTEDが設定されていればSelected Text Colorで描画され、設定されていなければNormal Text Colorで描画されることが分かります。
    ですので、pixelmap buttonウィジェットの状態に応じて、promptウイジェットのGX_STYLE_DRAW_SELECTEDを変更すれば良いかと思います。
    これにはgx_widget_style_add関数やgx_widget_style_remove関数を利用します。
    尚、ウィジェットのAccepts Focusが有効の場合、そのウィジェットのフォーカスの状態によってもGX_STYLE_DRAW_SELECTEDの状態が変わるので、promptウィジェットのAccepts Focusは無効にしておきます。
Reply
  • Former Member
    Former Member
    kom0313さん

    gx_prompt_text_draw関数のソースコードを見ると、そのpromptウィジェットのstyleにGX_STYLE_DRAW_SELECTEDが設定されていればSelected Text Colorで描画され、設定されていなければNormal Text Colorで描画されることが分かります。
    ですので、pixelmap buttonウィジェットの状態に応じて、promptウイジェットのGX_STYLE_DRAW_SELECTEDを変更すれば良いかと思います。
    これにはgx_widget_style_add関数やgx_widget_style_remove関数を利用します。
    尚、ウィジェットのAccepts Focusが有効の場合、そのウィジェットのフォーカスの状態によってもGX_STYLE_DRAW_SELECTEDの状態が変わるので、promptウィジェットのAccepts Focusは無効にしておきます。
Children
No Data