X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkstylecontext.h;h=35655f28d6ffdb97d2136280ffc7b70f65797dd3;hb=0ba92bc26d1b716f2f9c0543593f13cd5a92c521;hp=805f787fd6172a39cfdf552dcf3bc5fffeaba1ee;hpb=e772082a2a7310cdef527f18d48c1aca23e93b60;p=~andy%2Fgtk diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h index 805f787fd..35655f28d 100644 --- a/gtk/gtkstylecontext.h +++ b/gtk/gtkstylecontext.h @@ -12,22 +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__ + #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) #error "Only can be included directly." #endif -#ifndef __GTK_STYLE_CONTEXT_H__ -#define __GTK_STYLE_CONTEXT_H__ - -#include -#include -#include #include +#include +#include +#include +#include G_BEGIN_DECLS @@ -38,7 +37,6 @@ 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; @@ -147,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" @@ -175,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" @@ -182,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" @@ -196,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" @@ -210,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" @@ -217,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" @@ -224,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" @@ -231,6 +268,8 @@ struct _GtkStyleContextClass * GTK_STYLE_CLASS_TOOLBAR: * * A CSS class to match toolbars. + * + * This is used in #GtkToolbar. */ #define GTK_STYLE_CLASS_TOOLBAR "toolbar" @@ -238,13 +277,30 @@ struct _GtkStyleContextClass * 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" @@ -252,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" @@ -259,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" @@ -266,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" @@ -276,10 +340,22 @@ 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" @@ -305,6 +381,8 @@ struct _GtkStyleContextClass * 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" @@ -312,6 +390,8 @@ 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" @@ -320,92 +400,150 @@ struct _GtkStyleContextClass * * 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 widget class defining marks in a widget, such as in scales + * 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 widget class defining an expander, such as those in treeviews + * 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 widget class defining an spinbutton + * A CSS class defining an spinbutton. + * + * This is used in #GtkSpinButton. */ #define GTK_STYLE_CLASS_SPINBUTTON "spinbutton" /** * GTK_STYLE_CLASS_NOTEBOOK: * - * A widget class defining a notebook + * A CSS class defining a notebook. + * + * Used in #GtkNotebook. */ #define GTK_STYLE_CLASS_NOTEBOOK "notebook" /** * GTK_STYLE_CLASS_VIEW: * - * A widget class defining a view, such as iconviews or treeviews + * 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. + * 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. + * 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 + * 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" @@ -413,6 +551,8 @@ struct _GtkStyleContextClass * 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" @@ -420,55 +560,163 @@ struct _GtkStyleContextClass * 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 widget class for an area displaying an informational message, - * such as those in infobars + * 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 widget class for an area displaying a warning message, - * such as those in infobars + * 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 widget class for an area displaying a question to the user, - * such as those in infobars + * 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 widget class for an area displaying an error message, - * such as those in infobars + * 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 widget class for horizontally layered widgets. + * 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 widget class for vertically layered widgets. + * 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 */ @@ -500,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); @@ -521,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, @@ -536,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); @@ -582,8 +836,17 @@ 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, @@ -594,20 +857,25 @@ 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); /* Some helper functions to retrieve most common properties */ @@ -620,6 +888,8 @@ void gtk_style_context_get_background_color (GtkStyleContext *context, 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); @@ -731,6 +1001,33 @@ void gtk_render_activity (GtkStyleContext *context, 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