2016-07-25 17 views
1

cairo_line_toの代わりにgtk_render_lineを使用したいと思います。gtk_render_lineの線の太さを変更してください

私は電話を交換しましたが、cairo_set_line_width(cc,2)を保持し、回線は1px幅に変更されています。

gtk_render_lineはスタイルコンテキストを使用しているため、CSSを制御するCSSプロパティを設定する必要があります。

gtk_render_lineによって描画される線の太さを制御するプロパティの名前は何ですか?

答えて

1

実際の描画がgtk_do_render_lineによって行われgtk_render_lineのソースに基づいて、のソースは次のようになります。私たちはラインの幅は任意のCSSによって決定されていないことを確認することができ、ここで

gtk_do_render_line (GtkStyleContext *context, 
        cairo_t   *cr, 
        gdouble   x0, 
        gdouble   y0, 
        gdouble   x1, 
        gdouble   y1) 
{ 
    const GdkRGBA *color; 

    cairo_save (cr); 

    color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR)); 

    cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE); 
    cairo_set_line_width (cr, 1); /* <----------------- Relevant for this question */ 

    cairo_move_to (cr, x0 + 0.5, y0 + 0.5); 
    cairo_line_to (cr, x1 + 0.5, y1 + 0.5); 

    gdk_cairo_set_source_rgba (cr, color); 
    cairo_stroke (cr); 

    cairo_restore (cr); 
} 

属性の場合は、幅が1に固定されています。したがって、Gtk内で直接属性を変更する属性や方法はありません。

関連する問題