gtk2/gtk/gtkstylecontext.h
Paolo Borelli 2ef5844bac Introduce gtk_render_insertion_cursor
The new function provides an API that takes the PangoLayout and index
as input params, this way it handles strong and weak cursors internally
factoring out all code duplicated in the widgets that need to render
cursors.

https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:39 +01:00

949 lines
31 KiB
C

/* GTK - The GIMP Toolkit
* Copyright (C) 2010 Carlos Garnacho <carlosg@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* 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.
*/
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif
#ifndef __GTK_STYLE_CONTEXT_H__
#define __GTK_STYLE_CONTEXT_H__
#include <glib-object.h>
#include <gtk/gtkstyleprovider.h>
#include <gtk/gtkwidgetpath.h>
#include <gtk/gtkborder.h>
#include <atk/atk.h>
G_BEGIN_DECLS
#define GTK_TYPE_STYLE_CONTEXT (gtk_style_context_get_type ())
#define GTK_STYLE_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_STYLE_CONTEXT, GtkStyleContext))
#define GTK_STYLE_CONTEXT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GTK_TYPE_STYLE_CONTEXT, GtkStyleContextClass))
#define GTK_IS_STYLE_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_STYLE_CONTEXT))
#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;
GtkStyleContextPrivate *priv;
};
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 */
/**
* GTK_STYLE_PROPERTY_BACKGROUND_COLOR:
*
* A property holding the background color of rendered elements as a #GdkRGBA.
*/
#define GTK_STYLE_PROPERTY_BACKGROUND_COLOR "background-color"
/**
* GTK_STYLE_PROPERTY_COLOR:
*
* A property holding the foreground color of rendered elements as a #GdkRGBA.
*/
#define GTK_STYLE_PROPERTY_COLOR "color"
/**
* GTK_STYLE_PROPERTY_FONT:
*
* A property holding the font properties used when rendering text
* as a #PangoFontDescription.
*/
#define GTK_STYLE_PROPERTY_FONT "font"
/**
* 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. 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 #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 #GtkWidget<!-- -->s 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 #GtkWidget<!-- -->s'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:
*
* A property holding the rendered element's border radius in pixels as a #gint.
*/
#define GTK_STYLE_PROPERTY_BORDER_RADIUS "border-radius"
/**
* GTK_STYLE_PROPERTY_BORDER_STYLE:
*
* A property holding the element's border style as a #GtkBorderStyle.
*/
#define GTK_STYLE_PROPERTY_BORDER_STYLE "border-style"
/**
* GTK_STYLE_PROPERTY_BORDER_COLOR:
*
* A property holding the element's border color as a #GdkRGBA.
*/
#define GTK_STYLE_PROPERTY_BORDER_COLOR "border-color"
/**
* GTK_STYLE_PROPERTY_BACKGROUND_IMAGE:
*
* A property holding the element's background as a #cairo_pattern_t.
*/
#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_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"
/**
* GTK_STYLE_CLASS_CALENDAR:
*
* A CSS class to match calendars.
*
* This is not used by GTK+ itself, currently.
*/
#define GTK_STYLE_CLASS_CALENDAR "calendar"
/**
* 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"
/**
* GTK_STYLE_CLASS_BACKGROUND:
*
* A CSS class to match the window background.
*/
#define GTK_STYLE_CLASS_BACKGROUND "background"
/**
* 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"
/**
* GTK_STYLE_CLASS_TOOLTIP:
*
* A CSS class to match tooltip windows.
*/
#define GTK_STYLE_CLASS_TOOLTIP "tooltip"
/**
* GTK_STYLE_CLASS_MENU:
*
* A CSS class to match popup menus.
*
* This is used in #GtkMenu.
*/
#define GTK_STYLE_CLASS_MENU "menu"
/**
* GTK_STYLE_CLASS_MENUBAR:
*
* A CSS class to menubars.
*
* This is used in #GtkMenuBar.
*/
#define GTK_STYLE_CLASS_MENUBAR "menubar"
/**
* 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"
/**
* 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"
/**
* 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"
/**
* GTK_STYLE_CLASS_DEFAULT:
*
* A CSS class to match the default widget.
*
* This is used by #GtkButton.
*/
#define GTK_STYLE_CLASS_DEFAULT "default"
/**
* 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"
/**
* GTK_STYLE_CLASS_SCROLLBAR:
*
* A CSS class to match scrollbars.
*/
#define GTK_STYLE_CLASS_SCROLLBAR "scrollbar"
/**
* 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"
/**
* 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 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 CSS class defining a dock area.
*
* This is used by #GtkHandleBox.
*/
#define GTK_STYLE_CLASS_DOCK "dock"
/**
* GTK_STYLE_CLASS_PROGRESSBAR:
*
* 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 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"
/* Predefined set of widget regions */
/**
* GTK_STYLE_REGION_ROW:
*
* A widget region name to define a treeview row.
*/
#define GTK_STYLE_REGION_ROW "row"
/**
* GTK_STYLE_REGION_COLUMN:
*
* A widget region name to define a treeview column.
*/
#define GTK_STYLE_REGION_COLUMN "column"
/**
* GTK_STYLE_REGION_COLUMN_HEADER:
*
* A widget region name to define a treeview column header.
*/
#define GTK_STYLE_REGION_COLUMN_HEADER "column-header"
/**
* GTK_STYLE_REGION_TAB:
*
* A widget region name to define a notebook tab.
*/
#define GTK_STYLE_REGION_TAB "tab"
/**
* 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"
GType gtk_style_context_get_type (void) G_GNUC_CONST;
GtkStyleContext * gtk_style_context_new (void);
void gtk_style_context_add_provider_for_screen (GdkScreen *screen,
GtkStyleProvider *provider,
guint priority);
void gtk_style_context_remove_provider_for_screen (GdkScreen *screen,
GtkStyleProvider *provider);
void gtk_style_context_add_provider (GtkStyleContext *context,
GtkStyleProvider *provider,
guint priority);
void gtk_style_context_remove_provider (GtkStyleContext *context,
GtkStyleProvider *provider);
void gtk_style_context_save (GtkStyleContext *context);
void gtk_style_context_restore (GtkStyleContext *context);
void gtk_style_context_get_property (GtkStyleContext *context,
const gchar *property,
GtkStateFlags state,
GValue *value);
void gtk_style_context_get_valist (GtkStyleContext *context,
GtkStateFlags state,
va_list args);
void gtk_style_context_get (GtkStyleContext *context,
GtkStateFlags state,
...) G_GNUC_NULL_TERMINATED;
void gtk_style_context_set_state (GtkStyleContext *context,
GtkStateFlags flags);
GtkStateFlags gtk_style_context_get_state (GtkStyleContext *context);
gboolean gtk_style_context_state_is_running (GtkStyleContext *context,
GtkStateType state,
gdouble *progress);
void gtk_style_context_set_path (GtkStyleContext *context,
GtkWidgetPath *path);
const GtkWidgetPath * gtk_style_context_get_path (GtkStyleContext *context);
GList * gtk_style_context_list_classes (GtkStyleContext *context);
void gtk_style_context_add_class (GtkStyleContext *context,
const gchar *class_name);
void gtk_style_context_remove_class (GtkStyleContext *context,
const gchar *class_name);
gboolean gtk_style_context_has_class (GtkStyleContext *context,
const gchar *class_name);
GList * gtk_style_context_list_regions (GtkStyleContext *context);
void gtk_style_context_add_region (GtkStyleContext *context,
const gchar *region_name,
GtkRegionFlags flags);
void gtk_style_context_remove_region (GtkStyleContext *context,
const gchar *region_name);
gboolean gtk_style_context_has_region (GtkStyleContext *context,
const gchar *region_name,
GtkRegionFlags *flags_return);
void gtk_style_context_get_style_property (GtkStyleContext *context,
const gchar *property_name,
GValue *value);
void gtk_style_context_get_style_valist (GtkStyleContext *context,
va_list args);
void gtk_style_context_get_style (GtkStyleContext *context,
...);
GtkIconSet * gtk_style_context_lookup_icon_set (GtkStyleContext *context,
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);
void gtk_style_context_set_direction (GtkStyleContext *context,
GtkTextDirection direction);
GtkTextDirection gtk_style_context_get_direction (GtkStyleContext *context);
void gtk_style_context_set_junction_sides (GtkStyleContext *context,
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);
void gtk_style_context_notify_state_change (GtkStyleContext *context,
GdkWindow *window,
gpointer region_id,
GtkStateType state,
gboolean state_value);
void gtk_style_context_cancel_animations (GtkStyleContext *context,
gpointer region_id);
void gtk_style_context_scroll_animations (GtkStyleContext *context,
GdkWindow *window,
gint dx,
gint dy);
void gtk_style_context_push_animatable_region (GtkStyleContext *context,
gpointer region_id);
void gtk_style_context_pop_animatable_region (GtkStyleContext *context);
/* 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);
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);
GdkPixbuf * gtk_render_icon_pixbuf (GtkStyleContext *context,
const GtkIconSource *source,
GtkIconSize size);
void gtk_render_icon (GtkStyleContext *context,
cairo_t *cr,
GdkPixbuf *pixbuf,
gdouble x,
gdouble y);
void gtk_render_insertion_cursor
(GtkStyleContext *context,
cairo_t *cr,
gdouble x,
gdouble y,
PangoLayout *layout,
int index,
PangoDirection direction);
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
#endif /* __GTK_STYLE_CONTEXT_H__ */