X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkstylecontext.h;h=35655f28d6ffdb97d2136280ffc7b70f65797dd3;hb=feb64f40b0f50735104da0a7fdafbe480763c180;hp=b2dd734d1055400e26495aba07b8bcac3bb67098;hpb=297fa7a3dd6f114cecc1c2f1306312599f392e23;p=~andy%2Fgtk diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h index b2dd734d1..35655f28d 100644 --- a/gtk/gtkstylecontext.h +++ b/gtk/gtkstylecontext.h @@ -12,17 +12,21 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef __GTK_STYLE_CONTEXT_H__ #define __GTK_STYLE_CONTEXT_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include #include -#include +#include +#include G_BEGIN_DECLS @@ -33,13 +37,13 @@ G_BEGIN_DECLS #define GTK_IS_STYLE_CONTEXT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GTK_TYPE_STYLE_CONTEXT)) #define GTK_STYLE_CONTEXT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_STYLE_CONTEXT, GtkStyleContextClass)) -typedef struct _GtkStyleContext GtkStyleContext; typedef struct _GtkStyleContextClass GtkStyleContextClass; +typedef struct _GtkStyleContextPrivate GtkStyleContextPrivate; struct _GtkStyleContext { GObject parent_object; - gpointer priv; + GtkStyleContextPrivate *priv; }; struct _GtkStyleContextClass @@ -47,6 +51,12 @@ struct _GtkStyleContextClass GObjectClass parent_class; void (* changed) (GtkStyleContext *context); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; /* Default set of properties that GtkStyleContext may contain */ @@ -73,31 +83,40 @@ struct _GtkStyleContextClass */ #define GTK_STYLE_PROPERTY_FONT "font" -/** - * GTK_STYLE_PROPERTY_MARGIN: - * - * A property holding the rendered element's margin as a #GtkBorder. The - * margin is defined as the spacing between the border of the element - * and its surrounding elements. - */ -#define GTK_STYLE_PROPERTY_MARGIN "margin" - /** * GTK_STYLE_PROPERTY_PADDING: * * A property holding the rendered element's padding as a #GtkBorder. The * padding is defined as the spacing between the inner part of the element border - * and its child. + * and its child. It's the innermost spacing property of the padding/border/margin + * series. */ #define GTK_STYLE_PROPERTY_PADDING "padding" /** * GTK_STYLE_PROPERTY_BORDER_WIDTH: * - * A property holding the rendered element's border width in pixels as a #gint. + * A property holding the rendered element's border width in pixels as + * a #GtkBorder. The border is the intermediary spacing property of the + * padding/border/margin series. + * + * gtk_render_frame() uses this property to find out the frame line width, + * so #GtkWidgets rendering frames may need to add up this padding when + * requesting size */ #define GTK_STYLE_PROPERTY_BORDER_WIDTH "border-width" +/** + * GTK_STYLE_PROPERTY_MARGIN: + * + * A property holding the rendered element's margin as a #GtkBorder. The + * margin is defined as the spacing between the border of the element + * and its surrounding elements. It is external to #GtkWidgets's + * size allocations, and the most external spacing property of the + * padding/border/margin series. + */ +#define GTK_STYLE_PROPERTY_MARGIN "margin" + /** * GTK_STYLE_PROPERTY_BORDER_RADIUS: * @@ -126,27 +145,54 @@ struct _GtkStyleContextClass */ #define GTK_STYLE_PROPERTY_BACKGROUND_IMAGE "background-image" - /* Predefined set of CSS classes */ /** * GTK_STYLE_CLASS_CELL: * * A CSS class to match content rendered in cell views. + * + * This is used by cell renderers, e.g. in #GtkIconView + * and #GtkTreeView. */ #define GTK_STYLE_CLASS_CELL "cell" +/** + * GTK_STYLE_CLASS_DIM_LABEL: + * + * A CSS class to match dimmed labels. + * + * This should be used for toning down right aligned labels as + * compared to the entry value. + */ +#define GTK_STYLE_CLASS_DIM_LABEL "dim-label" + /** * GTK_STYLE_CLASS_ENTRY: * * A CSS class to match text entries. + * + * This is used by #GtkEntry. */ #define GTK_STYLE_CLASS_ENTRY "entry" +/** + * GTK_STYLE_CLASS_COMBOBOX_ENTRY: + * + * A CSS class to match combobox entries. + * + * This is used by #GtkComboBox. + */ +#define GTK_STYLE_CLASS_COMBOBOX_ENTRY "combobox-entry" + /** * GTK_STYLE_CLASS_BUTTON: * * A CSS class to match buttons. + * + * This is used by #GtkButton and its subclasses, as well + * as various other widget pieces that appear like buttons, + * e.g. the arrows in a #GtkCalendar. */ #define GTK_STYLE_CLASS_BUTTON "button" @@ -154,6 +200,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_CALENDAR: * * A CSS class to match calendars. + * + * This is not used by GTK+ itself, currently. */ #define GTK_STYLE_CLASS_CALENDAR "calendar" @@ -161,6 +209,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_SLIDER: * * A CSS class to match sliders. + * + * This is used by #GtkSwitch and #GtkRange and its subclasses. */ #define GTK_STYLE_CLASS_SLIDER "slider" @@ -175,6 +225,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_RUBBERBAND: * * A CSS class to match the rubberband selection rectangle. + * + * This is used in #GtkIconView and #GtkTreeView. */ #define GTK_STYLE_CLASS_RUBBERBAND "rubberband" @@ -189,6 +241,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_MENU: * * A CSS class to match popup menus. + * + * This is used in #GtkMenu. */ #define GTK_STYLE_CLASS_MENU "menu" @@ -196,6 +250,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_MENUBAR: * * A CSS class to menubars. + * + * This is used in #GtkMenuBar. */ #define GTK_STYLE_CLASS_MENUBAR "menubar" @@ -203,6 +259,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_MENUITEM: * * A CSS class to match menu items. + * + * This is used in #GtkMenuItem and its subclasses. */ #define GTK_STYLE_CLASS_MENUITEM "menuitem" @@ -210,13 +268,39 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_TOOLBAR: * * A CSS class to match toolbars. + * + * This is used in #GtkToolbar. */ #define GTK_STYLE_CLASS_TOOLBAR "toolbar" +/** + * GTK_STYLE_CLASS_PRIMARY_TOOLBAR: + * + * A CSS class to match primary toolbars. + * + * This should be used for the 'main' toolbar of an application, + * right below its menubar. + */ +#define GTK_STYLE_CLASS_PRIMARY_TOOLBAR "primary-toolbar" + +/** + * GTK_STYLE_CLASS_INLINE_TOOLBAR: + * + * A CSS class to match inline toolbars. + * + * This should be used for toolbars that are used to hold + * actions below lists, as seen e.g. in the left pane of the + * file chooser. + */ +#define GTK_STYLE_CLASS_INLINE_TOOLBAR "inline-toolbar" + /** * GTK_STYLE_CLASS_RADIO: * * A CSS class to match radio buttons. + * + * This is used in #GtkRadioButton, #GtkRadioMenuItem and + * #GtkCellRendererToggle. */ #define GTK_STYLE_CLASS_RADIO "radio" @@ -224,6 +308,9 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_CHECK: * * A CSS class to match check boxes. + * + * This is used in #GtkCheckButton, #GtkCheckMenuItem and + * #GtkCellRendererToggle. */ #define GTK_STYLE_CLASS_CHECK "check" @@ -231,6 +318,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_DEFAULT: * * A CSS class to match the default widget. + * + * This is used by #GtkButton. */ #define GTK_STYLE_CLASS_DEFAULT "default" @@ -238,6 +327,9 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_TROUGH: * * A CSS class to match troughs, as in scrollbars and progressbars. + * + * This is used in #GtkRange and its subclasses, #GtkProgressBar + * and #GtkSwitch. */ #define GTK_STYLE_CLASS_TROUGH "trough" @@ -248,10 +340,49 @@ struct _GtkStyleContextClass */ #define GTK_STYLE_CLASS_SCROLLBAR "scrollbar" +/** + * GTK_STYLE_CLASS_SCROLLBARS_JUNCTION: + * + * A CSS class to match the junction area between an horizontal + * and vertical scrollbar, when they're both shown. + * + * This is used in #GtkScrolledWindow. + */ +#define GTK_STYLE_CLASS_SCROLLBARS_JUNCTION "scrollbars-junction" + +/** + * GTK_STYLE_CLASS_SCALE: + * + * A CSS class to match scale widgets. + * + * This is used in #GtkScale. + */ +#define GTK_STYLE_CLASS_SCALE "scale" + +/** + * GTK_STYLE_CLASS_SCALE_HAS_MARKS_ABOVE: + * + * A CSS class to match scale widgets with marks attached, + * all the marks are above for horizontal #GtkScale. + * left for vertical #GtkScale. + */ +#define GTK_STYLE_CLASS_SCALE_HAS_MARKS_ABOVE "scale-has-marks-above" + +/** + * GTK_STYLE_CLASS_SCALE_HAS_MARKS_BELOW: + * + * A CSS class to match scale widgets with marks attached, + * all the marks are below for horizontal #GtkScale, + * right for vertical #GtkScale. + */ +#define GTK_STYLE_CLASS_SCALE_HAS_MARKS_BELOW "scale-has-marks-below" + /** * GTK_STYLE_CLASS_HEADER: * * A CSS class to match a header element. + * + * This is used for the header in #GtkCalendar. */ #define GTK_STYLE_CLASS_HEADER "header" @@ -259,37 +390,334 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_ACCELERATOR: * * A CSS class to match an accelerator. + * + * This is used for the accelerator in #GtkAccelLabel. */ #define GTK_STYLE_CLASS_ACCELERATOR "accelerator" +/** + * GTK_STYLE_CLASS_RAISED: + * + * A CSS class to match a raised control, such as a raised + * button on a toolbar. + * + * This should be used in conjunction with #GTK_STYLE_CLASS_PRIMARY_TOOLBAR. + */ +#define GTK_STYLE_CLASS_RAISED "raised" + +/** + * GTK_STYLE_CLASS_LINKED: + * + * A CSS class to match a linked area, such as a box containing buttons + * belonging to the same control. + */ +#define GTK_STYLE_CLASS_LINKED "linked" + /** * GTK_STYLE_CLASS_GRIP: * - * A widget class defining a resize grip + * A CSS class defining a resize grip. + * + * This is used for the resize grip in #GtkWindow. */ #define GTK_STYLE_CLASS_GRIP "grip" /** * GTK_STYLE_CLASS_DOCK: * - * A widget class defining a dock area + * A CSS class defining a dock area. + * + * This is used by #GtkHandleBox. */ #define GTK_STYLE_CLASS_DOCK "dock" /** * GTK_STYLE_CLASS_PROGRESSBAR: * - * A widget class defining a resize grip + * A CSS class to use when rendering activity as a progressbar. + * + * This is used in #GtkProgressBar and when drawing progress + * inside a #GtkEntry or in #GtkCellRendererProgress. */ #define GTK_STYLE_CLASS_PROGRESSBAR "progressbar" /** * GTK_STYLE_CLASS_SPINNER: * - * A widget class defining a spinner + * A CSS class to use when rendering activity as a 'spinner'. + * + * This is used by #GtkSpinner and #GtkCellRendererSpinner. */ #define GTK_STYLE_CLASS_SPINNER "spinner" +/** + * GTK_STYLE_CLASS_MARK: + * + * A CSS class defining marks in a widget, such as in scales. + * + * Used in #GtkScale. + */ +#define GTK_STYLE_CLASS_MARK "mark" + +/** + * GTK_STYLE_CLASS_EXPANDER: + * + * A CSS class defining an expander, such as those in treeviews. + * + * Used for drawing expanders in #GtkTreeView, GtkExpander and + * #GtkToolItemGroup. + */ +#define GTK_STYLE_CLASS_EXPANDER "expander" + +/** + * GTK_STYLE_CLASS_SPINBUTTON: + * + * A CSS class defining an spinbutton. + * + * This is used in #GtkSpinButton. + */ +#define GTK_STYLE_CLASS_SPINBUTTON "spinbutton" + +/** + * GTK_STYLE_CLASS_NOTEBOOK: + * + * A CSS class defining a notebook. + * + * Used in #GtkNotebook. + */ +#define GTK_STYLE_CLASS_NOTEBOOK "notebook" + +/** + * GTK_STYLE_CLASS_VIEW: + * + * A CSS class defining a view, such as iconviews or treeviews. + * + * This is used in #GtkTreeView, #GtkIconView, #GtkTextView, + * as well as #GtkCalendar. + */ +#define GTK_STYLE_CLASS_VIEW "view" + +/** + * GTK_STYLE_CLASS_SIDEBAR: + * + * A CSS class defining a sidebar, such as the left side in + * a file chooser. + * + * This is used in #GtkFileChooser and in #GtkAssistant. + */ +#define GTK_STYLE_CLASS_SIDEBAR "sidebar" + +/** + * GTK_STYLE_CLASS_IMAGE: + * + * A CSS class defining an image, such as the icon in an entry. + * + * This is used when rendering icons in #GtkEntry. + */ +#define GTK_STYLE_CLASS_IMAGE "image" + +/** + * GTK_STYLE_CLASS_HIGHLIGHT: + * + * A CSS class defining a highlighted area, such as headings in + * assistants and calendars. + * + * This is used in #GtkAssistant and #GtkCalendar. + */ +#define GTK_STYLE_CLASS_HIGHLIGHT "highlight" + +/** + * GTK_STYLE_CLASS_FRAME: + * + * A CSS class defining a frame delimiting content, such as + * #GtkFrame or the scrolled window frame around the + * scrollable area. + * + * This is used in #GtkFrame and #GtkScrollbar. + */ +#define GTK_STYLE_CLASS_FRAME "frame" + +/** + * GTK_STYLE_CLASS_DND: + * + * A CSS class for a drag-and-drop indicator. + * + * This is used when drawing an outline around a potential + * drop target during DND. + */ +#define GTK_STYLE_CLASS_DND "dnd" + +/** + * GTK_STYLE_CLASS_PANE_SEPARATOR: + * + * A CSS class for a pane separator, such as those in #GtkPaned. + * + * Used in #GtkPaned. + */ +#define GTK_STYLE_CLASS_PANE_SEPARATOR "pane-separator" + +/** + * GTK_STYLE_CLASS_SEPARATOR: + * + * A CSS class for a separator. + * + * This is used in #GtkSeparator, #GtkSeparatorMenuItem, + * #GtkSeparatorToolItem, and when drawing separators in #GtkTreeView. + */ +#define GTK_STYLE_CLASS_SEPARATOR "separator" + +/** + * GTK_STYLE_CLASS_INFO: + * + * A CSS class for an area displaying an informational message, + * such as those in infobars. + * + * This is used by #GtkInfoBar. + */ +#define GTK_STYLE_CLASS_INFO "info" + +/** + * GTK_STYLE_CLASS_WARNING: + * + * A CSS class for an area displaying a warning message, + * such as those in infobars. + * + * This is used by #GtkInfoBar. + */ +#define GTK_STYLE_CLASS_WARNING "warning" + +/** + * GTK_STYLE_CLASS_QUESTION: + * + * A CSS class for an area displaying a question to the user, + * such as those in infobars. + * + * This is used by #GtkInfoBar. + */ +#define GTK_STYLE_CLASS_QUESTION "question" + +/** + * GTK_STYLE_CLASS_ERROR: + * + * A CSS class for an area displaying an error message, + * such as those in infobars. + * + * This is used by #GtkInfoBar. + */ +#define GTK_STYLE_CLASS_ERROR "error" + +/** + * GTK_STYLE_CLASS_HORIZONTAL: + * + * A CSS class for horizontally layered widgets. + * + * This is used by widgets implementing #GtkOrientable. + */ +#define GTK_STYLE_CLASS_HORIZONTAL "horizontal" + +/** + * GTK_STYLE_CLASS_VERTICAL: + * + * A CSS class for vertically layered widgets. + * + * This is used by widgets implementing #GtkOrientable. + */ +#define GTK_STYLE_CLASS_VERTICAL "vertical" + +/** + * GTK_STYLE_CLASS_TOP: + * + * A CSS class to indicate an area at the top of a widget. + * + * This is used by widgets that can render an area in different + * positions, such as tabs in a #GtkNotebook. + */ +#define GTK_STYLE_CLASS_TOP "top" + +/** + * GTK_STYLE_CLASS_BOTTOM: + * + * A CSS class to indicate an area at the bottom of a widget. + * + * This is used by widgets that can render an area in different + * positions, such as tabs in a #GtkNotebook. + */ +#define GTK_STYLE_CLASS_BOTTOM "bottom" + +/** + * GTK_STYLE_CLASS_LEFT: + * + * A CSS class to indicate an area at the left of a widget. + * + * This is used by widgets that can render an area in different + * positions, such as tabs in a #GtkNotebook. + */ +#define GTK_STYLE_CLASS_LEFT "left" + +/** + * GTK_STYLE_CLASS_RIGHT: + * + * A CSS class to indicate an area at the right of a widget. + * + * This is used by widgets that can render an area in different + * positions, such as tabs in a #GtkNotebook. + */ +#define GTK_STYLE_CLASS_RIGHT "right" + +/** + * GTK_STYLE_CLASS_PULSE: + * + * A CSS class to use when rendering a pulse in an indeterminate progress bar. + * + * This is used by #GtkProgressBar and #GtkEntry. + */ +#define GTK_STYLE_CLASS_PULSE "pulse" + +/** + * GTK_STYLE_CLASS_ARROW: + * + * A CSS class used when rendering an arrow element. + * + * Note that #gtk_render_arrow automatically adds this style class + * to the style context when rendering an arrow element. + */ +#define GTK_STYLE_CLASS_ARROW "arrow" + +/** + * GTK_STYLE_CLASS_OSD: + * + * A CSS class used when rendering an OSD (On Screen Display) element, + * on top of another container. + */ +#define GTK_STYLE_CLASS_OSD "osd" + +/** + * GTK_STYLE_CLASS_LEVEL_BAR: + * + * A CSS class used when rendering a level indicator, such + * as a battery charge level, or a password strength. + * + * This is used by #GtkLevelBar. + */ +#define GTK_STYLE_CLASS_LEVEL_BAR "level-bar" + +/** + * GTK_STYLE_CLASS_CURSOR_HANDLE: + * + * A CSS class used when rendering a drag handle for + * text selection. + */ +#define GTK_STYLE_CLASS_CURSOR_HANDLE "cursor-handle" + +/** + * GTK_STYLE_CLASS_INSERTION_CURSOR: + * + * A CSS class used when rendering a drag handle for + * the insertion cursor position. + */ +#define GTK_STYLE_CLASS_INSERTION_CURSOR "insertion-cursor" + + /* Predefined set of widget regions */ /** @@ -320,7 +748,6 @@ struct _GtkStyleContextClass */ #define GTK_STYLE_REGION_TAB "tab" - GType gtk_style_context_get_type (void) G_GNUC_CONST; GtkStyleContext * gtk_style_context_new (void); @@ -341,6 +768,8 @@ void gtk_style_context_remove_provider (GtkStyleContext *context, void gtk_style_context_save (GtkStyleContext *context); void gtk_style_context_restore (GtkStyleContext *context); +GtkCssSection * gtk_style_context_get_section (GtkStyleContext *context, + const gchar *property); void gtk_style_context_get_property (GtkStyleContext *context, const gchar *property, GtkStateFlags state, @@ -356,13 +785,18 @@ void gtk_style_context_set_state (GtkStyleContext *context, GtkStateFlags flags); GtkStateFlags gtk_style_context_get_state (GtkStyleContext *context); +GDK_DEPRECATED_IN_3_6 gboolean gtk_style_context_state_is_running (GtkStyleContext *context, GtkStateType state, gdouble *progress); void gtk_style_context_set_path (GtkStyleContext *context, GtkWidgetPath *path); -G_CONST_RETURN GtkWidgetPath * gtk_style_context_get_path (GtkStyleContext *context); +const GtkWidgetPath * gtk_style_context_get_path (GtkStyleContext *context); +GDK_AVAILABLE_IN_3_4 +void gtk_style_context_set_parent (GtkStyleContext *context, + GtkStyleContext *parent); +GtkStyleContext *gtk_style_context_get_parent (GtkStyleContext *context); GList * gtk_style_context_list_classes (GtkStyleContext *context); @@ -393,143 +827,207 @@ void gtk_style_context_get_style (GtkStyleContext *context, ...); GtkIconSet * gtk_style_context_lookup_icon_set (GtkStyleContext *context, - const gchar *stock_id); + const gchar *stock_id); +GdkPixbuf * gtk_icon_set_render_icon_pixbuf (GtkIconSet *icon_set, + GtkStyleContext *context, + GtkIconSize size); void gtk_style_context_set_screen (GtkStyleContext *context, GdkScreen *screen); GdkScreen * gtk_style_context_get_screen (GtkStyleContext *context); +GDK_AVAILABLE_IN_3_8 +void gtk_style_context_set_frame_clock (GtkStyleContext *context, + GdkFrameClock *frame_clock); +GDK_AVAILABLE_IN_3_8 +GdkFrameClock *gtk_style_context_get_frame_clock (GtkStyleContext *context); + + +GDK_DEPRECATED_IN_3_8_FOR(gtk_style_context_set_state) void gtk_style_context_set_direction (GtkStyleContext *context, GtkTextDirection direction); +GDK_DEPRECATED_IN_3_8_FOR(gtk_style_context_get_state) GtkTextDirection gtk_style_context_get_direction (GtkStyleContext *context); void gtk_style_context_set_junction_sides (GtkStyleContext *context, - GtkJunctionSides sides); + GtkJunctionSides sides); GtkJunctionSides gtk_style_context_get_junction_sides (GtkStyleContext *context); gboolean gtk_style_context_lookup_color (GtkStyleContext *context, const gchar *color_name, GdkRGBA *color); +GDK_DEPRECATED_IN_3_6 void gtk_style_context_notify_state_change (GtkStyleContext *context, GdkWindow *window, gpointer region_id, GtkStateType state, gboolean state_value); +GDK_DEPRECATED_IN_3_6 +void gtk_style_context_cancel_animations (GtkStyleContext *context, + gpointer region_id); +GDK_DEPRECATED_IN_3_6 +void gtk_style_context_scroll_animations (GtkStyleContext *context, + GdkWindow *window, + gint dx, + gint dy); + +GDK_DEPRECATED_IN_3_6 void gtk_style_context_push_animatable_region (GtkStyleContext *context, gpointer region_id); +GDK_DEPRECATED_IN_3_6 void gtk_style_context_pop_animatable_region (GtkStyleContext *context); - -/* Semi-private API */ -const GValue * _gtk_style_context_peek_style_property (GtkStyleContext *context, - GType widget_type, - GtkStateFlags state, - GParamSpec *pspec); -void _gtk_style_context_invalidate_animation_areas (GtkStyleContext *context); -void _gtk_style_context_coalesce_animation_areas (GtkStyleContext *context, - gint rel_x, - gint rel_y); - -void gtk_style_context_invalidate (GtkStyleContext *context); -void gtk_style_context_reset_widgets (GdkScreen *screen); - -void gtk_style_context_set_background (GtkStyleContext *context, - GdkWindow *window); +/* Some helper functions to retrieve most common properties */ +void gtk_style_context_get_color (GtkStyleContext *context, + GtkStateFlags state, + GdkRGBA *color); +void gtk_style_context_get_background_color (GtkStyleContext *context, + GtkStateFlags state, + GdkRGBA *color); +void gtk_style_context_get_border_color (GtkStyleContext *context, + GtkStateFlags state, + GdkRGBA *color); + +GDK_DEPRECATED_IN_3_8_FOR(gtk_style_context_get) +const PangoFontDescription * + gtk_style_context_get_font (GtkStyleContext *context, + GtkStateFlags state); +void gtk_style_context_get_border (GtkStyleContext *context, + GtkStateFlags state, + GtkBorder *border); +void gtk_style_context_get_padding (GtkStyleContext *context, + GtkStateFlags state, + GtkBorder *padding); +void gtk_style_context_get_margin (GtkStyleContext *context, + GtkStateFlags state, + GtkBorder *margin); + +void gtk_style_context_invalidate (GtkStyleContext *context); +void gtk_style_context_reset_widgets (GdkScreen *screen); + +void gtk_style_context_set_background (GtkStyleContext *context, + GdkWindow *window); /* Paint methods */ -void gtk_render_check (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_option (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_arrow (GtkStyleContext *context, - cairo_t *cr, - gdouble angle, - gdouble x, - gdouble y, - gdouble size); -void gtk_render_background (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_frame (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_expander (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_focus (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_layout (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - PangoLayout *layout); -void gtk_render_line (GtkStyleContext *context, - cairo_t *cr, - gdouble x0, - gdouble y0, - gdouble x1, - gdouble y1); -void gtk_render_slider (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GtkOrientation orientation); -void gtk_render_frame_gap (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GtkPositionType gap_side, - gdouble xy0_gap, - gdouble xy1_gap); -void gtk_render_extension (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GtkPositionType gap_side); -void gtk_render_handle (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); -void gtk_render_activity (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height); - +void gtk_render_check (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_option (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_arrow (GtkStyleContext *context, + cairo_t *cr, + gdouble angle, + gdouble x, + gdouble y, + gdouble size); +void gtk_render_background (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_frame (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_expander (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_focus (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_layout (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + PangoLayout *layout); +void gtk_render_line (GtkStyleContext *context, + cairo_t *cr, + gdouble x0, + gdouble y0, + gdouble x1, + gdouble y1); +void gtk_render_slider (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height, + GtkOrientation orientation); +void gtk_render_frame_gap (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height, + GtkPositionType gap_side, + gdouble xy0_gap, + gdouble xy1_gap); +void gtk_render_extension (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height, + GtkPositionType gap_side); +void gtk_render_handle (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); +void gtk_render_activity (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); GdkPixbuf * gtk_render_icon_pixbuf (GtkStyleContext *context, const GtkIconSource *source, GtkIconSize size); +GDK_AVAILABLE_IN_3_2 +void gtk_render_icon (GtkStyleContext *context, + cairo_t *cr, + GdkPixbuf *pixbuf, + gdouble x, + gdouble y); +GDK_AVAILABLE_IN_3_4 +void gtk_render_insertion_cursor + (GtkStyleContext *context, + cairo_t *cr, + gdouble x, + gdouble y, + PangoLayout *layout, + int index, + PangoDirection direction); +GDK_DEPRECATED_IN_3_4 +void gtk_draw_insertion_cursor (GtkWidget *widget, + cairo_t *cr, + const GdkRectangle *location, + gboolean is_primary, + GtkTextDirection direction, + gboolean draw_arrow); + +/* Accessibility support */ +AtkAttributeSet *_gtk_style_context_get_attributes (AtkAttributeSet *attributes, + GtkStyleContext *context, + GtkStateFlags flags); G_END_DECLS