ardour/libs/clearlooks-newer/clearlooks_types.h

456 lines
14 KiB
C

#ifndef CLEARLOOKS_TYPES_H
#define CLEARLOOKS_TYPES_H
#include <ge-support.h>
typedef unsigned char boolean;
typedef unsigned char uint8;
typedef struct _ClearlooksStyleFunctions ClearlooksStyleFunctions;
typedef enum
{
CL_STYLE_CLASSIC = 0,
CL_STYLE_GLOSSY = 1,
CL_STYLE_INVERTED = 2,
CL_STYLE_GUMMY = 3,
CL_NUM_STYLES = 4
} ClearlooksStyles;
typedef enum
{
CL_STATE_NORMAL,
CL_STATE_ACTIVE,
CL_STATE_SELECTED,
CL_STATE_INSENSITIVE
} ClearlooksStateType;
typedef enum
{
CL_JUNCTION_NONE = 0,
CL_JUNCTION_BEGIN = 1,
CL_JUNCTION_END = 2
} ClearlooksJunction;
typedef enum
{
CL_STEPPER_UNKNOWN = 0,
CL_STEPPER_A = 1,
CL_STEPPER_B = 2,
CL_STEPPER_C = 4,
CL_STEPPER_D = 8
} ClearlooksStepper;
typedef enum
{
CL_ORDER_FIRST,
CL_ORDER_MIDDLE,
CL_ORDER_LAST
} ClearlooksOrder;
typedef enum
{
CL_ORIENTATION_LEFT_TO_RIGHT,
CL_ORIENTATION_RIGHT_TO_LEFT,
CL_ORIENTATION_BOTTOM_TO_TOP,
CL_ORIENTATION_TOP_TO_BOTTOM
} ClearlooksOrientation;
typedef enum
{
CL_GAP_LEFT,
CL_GAP_RIGHT,
CL_GAP_TOP,
CL_GAP_BOTTOM
} ClearlooksGapSide;
typedef enum
{
CL_SHADOW_NONE,
CL_SHADOW_IN,
CL_SHADOW_OUT,
CL_SHADOW_ETCHED_IN,
CL_SHADOW_ETCHED_OUT
} ClearlooksShadowType;
typedef enum
{
CL_HANDLE_TOOLBAR,
CL_HANDLE_SPLITTER
} ClearlooksHandleType;
typedef enum
{
CL_ARROW_NORMAL,
CL_ARROW_COMBO
} ClearlooksArrowType;
typedef enum
{
CL_DIRECTION_UP,
CL_DIRECTION_DOWN,
CL_DIRECTION_LEFT,
CL_DIRECTION_RIGHT
} ClearlooksDirection;
typedef enum
{
CL_PROGRESSBAR_CONTINUOUS,
CL_PROGRESSBAR_DISCRETE
} ClearlooksProgressBarStyle;
typedef enum
{
CL_WINDOW_EDGE_NORTH_WEST,
CL_WINDOW_EDGE_NORTH,
CL_WINDOW_EDGE_NORTH_EAST,
CL_WINDOW_EDGE_WEST,
CL_WINDOW_EDGE_EAST,
CL_WINDOW_EDGE_SOUTH_WEST,
CL_WINDOW_EDGE_SOUTH,
CL_WINDOW_EDGE_SOUTH_EAST
} ClearlooksWindowEdge;
typedef struct
{
double x;
double y;
double width;
double height;
} ClearlooksRectangle;
typedef struct
{
CairoColor fg[5];
CairoColor bg[5];
CairoColor base[5];
CairoColor text[5];
CairoColor shade[9];
CairoColor spot[3];
} ClearlooksColors;
typedef struct
{
boolean active;
boolean prelight;
boolean disabled;
boolean focus;
boolean is_default;
boolean ltr;
boolean enable_glow;
gfloat radius;
ClearlooksStateType state_type;
uint8 corners;
uint8 xthickness;
uint8 ythickness;
CairoColor parentbg;
ClearlooksStyleFunctions *style_functions;
} WidgetParameters;
typedef struct
{
boolean lower;
boolean horizontal;
boolean fill_level;
} SliderParameters;
typedef struct
{
ClearlooksOrientation orientation;
boolean pulsing;
float value;
} ProgressBarParameters;
typedef struct
{
int linepos;
} OptionMenuParameters;
typedef struct
{
ClearlooksShadowType shadow;
ClearlooksGapSide gap_side;
int gap_x;
int gap_width;
const CairoColor *border; /* maybe changes this to some other hint ... */
} FrameParameters;
typedef struct
{
ClearlooksGapSide gap_side;
} TabParameters;
typedef struct
{
CairoCorners corners;
ClearlooksShadowType shadow;
} ShadowParameters;
typedef struct
{
boolean horizontal;
} SeparatorParameters;
typedef struct
{
ClearlooksOrder order; /* XXX: rename to position */
boolean resizable;
} ListViewHeaderParameters;
typedef struct
{
CairoColor color;
ClearlooksJunction junction; /* On which sides the slider junctions */
boolean horizontal;
boolean has_color;
} ScrollBarParameters;
typedef struct
{
ClearlooksHandleType type;
boolean horizontal;
} HandleParameters;
typedef struct
{
ClearlooksStepper stepper; /* Which stepper to draw */
} ScrollBarStepperParameters;
typedef struct
{
ClearlooksWindowEdge edge;
} ResizeGripParameters;
typedef struct
{
int style;
} MenuBarParameters;
typedef struct
{
ClearlooksShadowType shadow_type;
boolean in_cell;
boolean in_menu;
} CheckboxParameters;
typedef struct
{
ClearlooksArrowType type;
ClearlooksDirection direction;
} ArrowParameters;
typedef struct
{
int style;
boolean topmost;
} ToolbarParameters;
struct _ClearlooksStyleFunctions
{
void (*draw_button) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_scale_trough) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const SliderParameters *slider,
int x, int y, int width, int height);
void (*draw_progressbar_trough) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_progressbar_fill) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ProgressBarParameters *progressbar,
int x, int y, int width, int height, gint offset);
void (*draw_slider_button) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const SliderParameters *slider,
int x, int y, int width, int height);
void (*draw_entry) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_spinbutton) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_spinbutton_down) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_optionmenu) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const OptionMenuParameters *optionmenu,
int x, int y, int width, int height);
void (*draw_inset) (cairo_t *cr,
const CairoColor *bg_color,
double x, double y, double w, double h,
double radius, uint8 corners);
void (*draw_menubar) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const MenuBarParameters *menubar,
int x, int y, int width, int height);
void (*draw_tab) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const TabParameters *tab,
int x, int y, int width, int height);
void (*draw_frame) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const FrameParameters *frame,
int x, int y, int width, int height);
void (*draw_separator) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const SeparatorParameters *separator,
int x, int y, int width, int height);
void (*draw_menu_item_separator) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const SeparatorParameters *separator,
int x, int y, int width, int height);
void (*draw_list_view_header) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ListViewHeaderParameters *header,
int x, int y, int width, int height);
void (*draw_toolbar) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ToolbarParameters *toolbar,
int x, int y, int width, int height);
void (*draw_menuitem) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_menubaritem) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_selected_cell) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_scrollbar_stepper) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ScrollBarParameters *scrollbar,
const ScrollBarStepperParameters *stepper,
int x, int y, int width, int height);
void (*draw_scrollbar_slider) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ScrollBarParameters *scrollbar,
int x, int y, int width, int height);
void (*draw_scrollbar_trough) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ScrollBarParameters *scrollbar,
int x, int y, int width, int height);
void (*draw_statusbar) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_menu_frame) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_tooltip) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_handle) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const HandleParameters *handle,
int x, int y, int width, int height);
void (*draw_resize_grip) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ResizeGripParameters *grip,
int x, int y, int width, int height);
void (*draw_arrow) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ArrowParameters *arrow,
int x, int y, int width, int height);
void (*draw_checkbox) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const CheckboxParameters *checkbox,
int x, int y, int width, int height);
void (*draw_radiobutton) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const CheckboxParameters *checkbox,
int x, int y, int width, int height);
/* Style internal functions */
/* XXX: Only used by slider_button, inline it? */
void (*draw_shadow) (cairo_t *cr,
const ClearlooksColors *colors,
gfloat radius,
int width, int height);
void (*draw_slider) (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height);
void (*draw_gripdots) (cairo_t *cr,
const ClearlooksColors *colors, int x, int y,
int width, int height, int xr, int yr,
float contrast);
};
#define CLEARLOOKS_RECTANGLE_SET(rect, _x, _y, _w, _h) rect.x = _x; \
rect.y = _y; \
rect.width = _w; \
rect.height = _h;
#endif /* CLEARLOOKS_TYPES_H */