static HRESULT get_text_color(button_theme_t *theme, int part_id, int state_id, GdkRGBA *rgba)
{
    GtkWidget *widget;
    GtkStateFlags state;
    GtkStyleContext *context;

    switch (part_id)
    {
        case BP_PUSHBUTTON:
            widget = get_button_label(theme);
            state = get_push_button_state_flags(state_id);
            break;

        case BP_RADIOBUTTON:
            widget = get_radio_label(theme);
            state = get_radio_button_state_flags(state_id);
            break;

        case BP_CHECKBOX:
            widget = get_check_label(theme);
            state = get_checkbox_state_flags(state_id);
            break;

        case BP_GROUPBOX:
            widget = get_label(theme);
            state = get_groupbox_state_flags(state_id);
            break;

        default:
            FIXME("Unsupported button part %d.\n", part_id);
            return E_NOTIMPL;
    }

    context = pgtk_widget_get_style_context(widget);
    pgtk_style_context_get_color(context, state, rgba);

    return S_OK;
}
示例#2
0
static HRESULT get_text_color(uxgtk_theme_t *theme, int part_id, int state_id, GdkRGBA *rgba)
{
    GtkStateFlags state;
    GtkStyleContext *context;

    assert(theme != NULL);

    switch (part_id)
    {
        case WP_DIALOG:
            state = GTK_STATE_FLAG_NORMAL;
            context = pgtk_widget_get_style_context(theme->window);
            break;

        default:
            FIXME("Unsupported window part %d.\n", part_id);
            return E_NOTIMPL;
    }

    pgtk_style_context_get_color(context, state, rgba);

    return S_OK;
}