Blame modules/engines/pixbuf/pixbuf.h

Packit 98cdb6
/* GTK+ Pixbuf Engine
Packit 98cdb6
 * Copyright (C) 1998-2000 Red Hat, Inc.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is free software; you can redistribute it and/or
Packit 98cdb6
 * modify it under the terms of the GNU Library General Public
Packit 98cdb6
 * License as published by the Free Software Foundation; either
Packit 98cdb6
 * version 2 of the License, or (at your option) any later version.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is distributed in the hope that it will be useful,
Packit 98cdb6
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 98cdb6
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 98cdb6
 * Library General Public License for more details.
Packit 98cdb6
 *
Packit 98cdb6
 * You should have received a copy of the GNU Library General Public
Packit 98cdb6
 * License along with this library; if not, write to the
Packit 98cdb6
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 98cdb6
 * Boston, MA 02111-1307, USA.
Packit 98cdb6
 *
Packit 98cdb6
 * Written by Owen Taylor <otaylor@redhat.com>, based on code by
Packit 98cdb6
 * Carsten Haitzler <raster@rasterman.com>
Packit 98cdb6
 */
Packit 98cdb6
Packit 98cdb6
#include <gtk/gtk.h>
Packit 98cdb6
#include <gdk-pixbuf/gdk-pixbuf.h>
Packit 98cdb6
Packit 98cdb6
/* internals */
Packit 98cdb6
Packit 98cdb6
typedef struct _ThemeData ThemeData;
Packit 98cdb6
typedef struct _ThemeImage ThemeImage;
Packit 98cdb6
typedef struct _ThemeMatchData ThemeMatchData;
Packit 98cdb6
typedef struct _ThemePixbuf ThemePixbuf;
Packit 98cdb6
Packit 98cdb6
enum
Packit 98cdb6
{
Packit 98cdb6
  TOKEN_IMAGE = G_TOKEN_LAST + 1,
Packit 98cdb6
  TOKEN_FUNCTION,
Packit 98cdb6
  TOKEN_FILE,
Packit 98cdb6
  TOKEN_STRETCH,
Packit 98cdb6
  TOKEN_RECOLORABLE,
Packit 98cdb6
  TOKEN_BORDER,
Packit 98cdb6
  TOKEN_DETAIL,
Packit 98cdb6
  TOKEN_STATE,
Packit 98cdb6
  TOKEN_SHADOW,
Packit 98cdb6
  TOKEN_GAP_SIDE,
Packit 98cdb6
  TOKEN_GAP_FILE,
Packit 98cdb6
  TOKEN_GAP_BORDER,
Packit 98cdb6
  TOKEN_GAP_START_FILE,
Packit 98cdb6
  TOKEN_GAP_START_BORDER,
Packit 98cdb6
  TOKEN_GAP_END_FILE,
Packit 98cdb6
  TOKEN_GAP_END_BORDER,
Packit 98cdb6
  TOKEN_OVERLAY_FILE,
Packit 98cdb6
  TOKEN_OVERLAY_BORDER,
Packit 98cdb6
  TOKEN_OVERLAY_STRETCH,
Packit 98cdb6
  TOKEN_ARROW_DIRECTION,
Packit 98cdb6
  TOKEN_EXPANDER_STYLE,
Packit 98cdb6
  TOKEN_WINDOW_EDGE,
Packit 98cdb6
  TOKEN_D_HLINE,
Packit 98cdb6
  TOKEN_D_VLINE,
Packit 98cdb6
  TOKEN_D_SHADOW,
Packit 98cdb6
  TOKEN_D_POLYGON,
Packit 98cdb6
  TOKEN_D_ARROW,
Packit 98cdb6
  TOKEN_D_DIAMOND,
Packit 98cdb6
  TOKEN_D_OVAL,
Packit 98cdb6
  TOKEN_D_STRING,
Packit 98cdb6
  TOKEN_D_BOX,
Packit 98cdb6
  TOKEN_D_FLAT_BOX,
Packit 98cdb6
  TOKEN_D_CHECK,
Packit 98cdb6
  TOKEN_D_OPTION,
Packit 98cdb6
  TOKEN_D_CROSS,
Packit 98cdb6
  TOKEN_D_RAMP,
Packit 98cdb6
  TOKEN_D_TAB,
Packit 98cdb6
  TOKEN_D_SHADOW_GAP,
Packit 98cdb6
  TOKEN_D_BOX_GAP,
Packit 98cdb6
  TOKEN_D_EXTENSION,
Packit 98cdb6
  TOKEN_D_FOCUS,
Packit 98cdb6
  TOKEN_D_SLIDER,
Packit 98cdb6
  TOKEN_D_ENTRY,
Packit 98cdb6
  TOKEN_D_HANDLE,
Packit 98cdb6
  TOKEN_D_STEPPER,
Packit 98cdb6
  TOKEN_D_EXPANDER,
Packit 98cdb6
  TOKEN_D_RESIZE_GRIP,
Packit 98cdb6
  TOKEN_TRUE,
Packit 98cdb6
  TOKEN_FALSE,
Packit 98cdb6
  TOKEN_TOP,
Packit 98cdb6
  TOKEN_UP,
Packit 98cdb6
  TOKEN_BOTTOM,
Packit 98cdb6
  TOKEN_DOWN,
Packit 98cdb6
  TOKEN_LEFT,
Packit 98cdb6
  TOKEN_RIGHT,
Packit 98cdb6
  TOKEN_NORMAL,
Packit 98cdb6
  TOKEN_ACTIVE,
Packit 98cdb6
  TOKEN_PRELIGHT,
Packit 98cdb6
  TOKEN_SELECTED,
Packit 98cdb6
  TOKEN_INSENSITIVE,
Packit 98cdb6
  TOKEN_NONE,
Packit 98cdb6
  TOKEN_IN,
Packit 98cdb6
  TOKEN_OUT,
Packit 98cdb6
  TOKEN_ETCHED_IN,
Packit 98cdb6
  TOKEN_ETCHED_OUT,
Packit 98cdb6
  TOKEN_ORIENTATION,
Packit 98cdb6
  TOKEN_HORIZONTAL,
Packit 98cdb6
  TOKEN_VERTICAL,
Packit 98cdb6
  TOKEN_COLLAPSED,
Packit 98cdb6
  TOKEN_SEMI_COLLAPSED,
Packit 98cdb6
  TOKEN_SEMI_EXPANDED,
Packit 98cdb6
  TOKEN_EXPANDED,
Packit 98cdb6
  TOKEN_NORTH_WEST,
Packit 98cdb6
  TOKEN_NORTH,
Packit 98cdb6
  TOKEN_NORTH_EAST,
Packit 98cdb6
  TOKEN_WEST,
Packit 98cdb6
  TOKEN_EAST,
Packit 98cdb6
  TOKEN_SOUTH_WEST,
Packit 98cdb6
  TOKEN_SOUTH,
Packit 98cdb6
  TOKEN_SOUTH_EAST,
Packit 98cdb6
  TOKEN_DIRECTION,
Packit 98cdb6
  TOKEN_LTR,
Packit 98cdb6
  TOKEN_RTL
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  COMPONENT_NORTH_WEST = 1 << 0,
Packit 98cdb6
  COMPONENT_NORTH      = 1 << 1,
Packit 98cdb6
  COMPONENT_NORTH_EAST = 1 << 2, 
Packit 98cdb6
  COMPONENT_WEST       = 1 << 3,
Packit 98cdb6
  COMPONENT_CENTER     = 1 << 4,
Packit 98cdb6
  COMPONENT_EAST       = 1 << 5, 
Packit 98cdb6
  COMPONENT_SOUTH_EAST = 1 << 6,
Packit 98cdb6
  COMPONENT_SOUTH      = 1 << 7,
Packit 98cdb6
  COMPONENT_SOUTH_WEST = 1 << 8,
Packit 98cdb6
  COMPONENT_ALL 	  = 1 << 9
Packit 98cdb6
} ThemePixbufComponent;
Packit 98cdb6
Packit 98cdb6
typedef enum {
Packit 98cdb6
  THEME_MATCH_GAP_SIDE        = 1 << 0,
Packit 98cdb6
  THEME_MATCH_ORIENTATION     = 1 << 1,
Packit 98cdb6
  THEME_MATCH_STATE           = 1 << 2,
Packit 98cdb6
  THEME_MATCH_SHADOW          = 1 << 3,
Packit 98cdb6
  THEME_MATCH_ARROW_DIRECTION = 1 << 4,
Packit 98cdb6
  THEME_MATCH_EXPANDER_STYLE  = 1 << 5,
Packit 98cdb6
  THEME_MATCH_WINDOW_EDGE     = 1 << 6,
Packit 98cdb6
  THEME_MATCH_DIRECTION       = 1 << 7
Packit 98cdb6
} ThemeMatchFlags;
Packit 98cdb6
Packit 98cdb6
typedef enum {
Packit 98cdb6
  THEME_CONSTANT_ROWS = 1 << 0,
Packit 98cdb6
  THEME_CONSTANT_COLS = 1 << 1,
Packit 98cdb6
  THEME_MISSING = 1 << 2
Packit 98cdb6
} ThemeRenderHints;
Packit 98cdb6
Packit 98cdb6
struct _ThemePixbuf
Packit 98cdb6
{
Packit 98cdb6
  gchar     *filename;
Packit 98cdb6
  GdkPixbuf *pixbuf;
Packit 98cdb6
  gboolean   stretch;
Packit 98cdb6
  gint       border_left;
Packit 98cdb6
  gint       border_right;
Packit 98cdb6
  gint       border_bottom;
Packit 98cdb6
  gint       border_top;
Packit 98cdb6
  guint      hints[3][3];
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _ThemeMatchData
Packit 98cdb6
{
Packit 98cdb6
  guint            function;	/* Mandatory */
Packit 98cdb6
  gchar           *detail;
Packit 98cdb6
Packit 98cdb6
  ThemeMatchFlags  flags;
Packit 98cdb6
Packit 98cdb6
  GtkPositionType  gap_side;
Packit 98cdb6
  GtkOrientation   orientation;
Packit 98cdb6
  GtkStateType     state;
Packit 98cdb6
  GtkShadowType    shadow;
Packit 98cdb6
  GtkArrowType     arrow_direction;
Packit 98cdb6
  GtkExpanderStyle expander_style;
Packit 98cdb6
  GdkWindowEdge    window_edge;
Packit 98cdb6
  GtkTextDirection direction;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _ThemeImage
Packit 98cdb6
{
Packit 98cdb6
  guint           refcount;
Packit 98cdb6
Packit 98cdb6
  ThemePixbuf    *background;
Packit 98cdb6
  ThemePixbuf    *overlay;
Packit 98cdb6
  ThemePixbuf    *gap_start;
Packit 98cdb6
  ThemePixbuf    *gap;
Packit 98cdb6
  ThemePixbuf    *gap_end;
Packit 98cdb6
  
Packit 98cdb6
  gchar           recolorable;
Packit 98cdb6
Packit 98cdb6
  ThemeMatchData  match_data;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
G_GNUC_INTERNAL ThemePixbuf *theme_pixbuf_new          (void);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_pixbuf_destroy      (ThemePixbuf  *theme_pb);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_clear_pixbuf        (ThemePixbuf **theme_pb);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_pixbuf_set_filename (ThemePixbuf  *theme_pb,
Packit 98cdb6
					const char   *filename);
Packit 98cdb6
G_GNUC_INTERNAL GdkPixbuf *  theme_pixbuf_get_pixbuf   (ThemePixbuf  *theme_pb);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_pixbuf_set_border   (ThemePixbuf  *theme_pb,
Packit 98cdb6
					gint          left,
Packit 98cdb6
					gint          right,
Packit 98cdb6
					gint          top,
Packit 98cdb6
					gint          bottom);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_pixbuf_set_stretch  (ThemePixbuf  *theme_pb,
Packit 98cdb6
					gboolean      stretch);
Packit 98cdb6
G_GNUC_INTERNAL void         theme_pixbuf_render       (ThemePixbuf  *theme_pb,
Packit 98cdb6
					GdkWindow    *window,
Packit 98cdb6
					GdkBitmap    *mask,
Packit 98cdb6
					GdkRectangle *clip_rect,
Packit 98cdb6
					guint         component_mask,
Packit 98cdb6
					gboolean      center,
Packit 98cdb6
					gint          dest_x,
Packit 98cdb6
					gint          dest_y,
Packit 98cdb6
					gint          dest_width,
Packit 98cdb6
					gint          dest_height);
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
extern GtkStyleClass pixmap_default_class;