summaryrefslogtreecommitdiff
path: root/src/theme.h
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-01-06 04:51:53 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-01-06 04:51:53 +0000
commit8b680dfdd2b6d4447430bb8da6c3e77c3fc38563 (patch)
tree4a2aeb16838ff5987d2bfa4a28997e9be8bb8bb7 /src/theme.h
parent3d1d70b727e8826f44bbb5759e7e8e6d7a6206c9 (diff)
downloadmetacity-8b680dfdd2b6d4447430bb8da6c3e77c3fc38563.tar.gz
metacity-8b680dfdd2b6d4447430bb8da6c3e77c3fc38563.tar.bz2
draw titlebar highlight with snazzy gradient that needs some tweaking to
2002-01-05 Havoc Pennington <hp@pobox.com> * src/frames.c (meta_frames_expose_event): draw titlebar highlight with snazzy gradient that needs some tweaking to be less dumb-looking * src/theme.c: replace old theme.[hc] contents with newer stuff that doesn't do anything
Diffstat (limited to 'src/theme.h')
-rw-r--r--src/theme.h124
1 files changed, 14 insertions, 110 deletions
diff --git a/src/theme.h b/src/theme.h
index 37c46ab..ee27367 100644
--- a/src/theme.h
+++ b/src/theme.h
@@ -1,4 +1,4 @@
-/* Metacity Theme Engine Header */
+/* Metacity Theme Rendering */
/*
* Copyright (C) 2001 Havoc Pennington
@@ -22,118 +22,22 @@
#ifndef META_THEME_H
#define META_THEME_H
-/* don't add any internal headers here; theme.h is an installed/public
- * header.
- */
-#include <X11/Xlib.h>
-#include <glib.h>
-#include "api.h"
-
-typedef struct _MetaFrameInfo MetaFrameInfo;
-typedef struct _MetaFrameGeometry MetaFrameGeometry;
-typedef struct _MetaThemeEngine MetaThemeEngine;
+#include "frames.h"
-typedef enum
-{
- META_FRAME_ALLOWS_DELETE = 1 << 0,
- META_FRAME_ALLOWS_MENU = 1 << 1,
- META_FRAME_ALLOWS_ICONIFY = 1 << 2,
- META_FRAME_ALLOWS_MAXIMIZE = 1 << 3,
- META_FRAME_ALLOWS_RESIZE = 1 << 4,
- META_FRAME_TRANSIENT = 1 << 5,
- META_FRAME_HAS_FOCUS = 1 << 6,
- META_FRAME_SHADED = 1 << 7,
- META_FRAME_STUCK = 1 << 8
-} MetaFrameFlags;
+/* theme.[hc] is basically responsible for drawing parts of the UI using
+ * theme data
+ */
typedef enum
{
- META_FRAME_CONTROL_NONE,
- META_FRAME_CONTROL_TITLE,
- META_FRAME_CONTROL_DELETE,
- META_FRAME_CONTROL_MENU,
- META_FRAME_CONTROL_ICONIFY,
- META_FRAME_CONTROL_MAXIMIZE,
- META_FRAME_CONTROL_RESIZE_SE,
- META_FRAME_CONTROL_RESIZE_S,
- META_FRAME_CONTROL_RESIZE_SW,
- META_FRAME_CONTROL_RESIZE_N,
- META_FRAME_CONTROL_RESIZE_NE,
- META_FRAME_CONTROL_RESIZE_NW,
- META_FRAME_CONTROL_RESIZE_W,
- META_FRAME_CONTROL_RESIZE_E
-} MetaFrameControl;
-
-struct _MetaFrameInfo
-{
- /* These are read-only to engines */
- MetaFrameFlags flags;
- Window drawable; /* == None except in expose */
- int xoffset, yoffset; /* add to frame coords to get drawable coords */
- Display *display;
- Screen *screen;
- Visual *visual;
- int depth;
-
- const char *title;
-
- const MetaUIColors *colors;
-
- MetaFrameControl current_control;
- MetaUIState current_control_state;
-
- /* Equal to child size before fill_frame_geometry
- * has been called
- */
- int width;
- int height;
-};
-
-struct _MetaFrameGeometry
-{
- /* border sizes (space between frame and child) */
- int left_width;
- int right_width;
- int top_height;
- int bottom_height;
-
- /* background color */
- unsigned long background_pixel;
-
- Pixmap shape_mask;
- /* FIXME shape region? */
-};
-
-struct _MetaThemeEngine
-{
- void (* unload_engine) (void);
-
- /* returns frame_data to use */
- gpointer (* acquire_frame) (MetaFrameInfo *info);
- /* should free frame_data */
- void (* release_frame) (MetaFrameInfo *info,
- gpointer frame_data);
-
- void (* fill_frame_geometry) (MetaFrameInfo *info,
- MetaFrameGeometry *geom,
- gpointer frame_data);
-
- void (* expose_frame) (MetaFrameInfo *info,
- int x, int y,
- int width, int height,
- gpointer frame_data);
-
- MetaFrameControl (* get_control) (MetaFrameInfo *info,
- int x, int y,
- gpointer frame_data);
-
- void (* get_control_rect) (MetaFrameInfo *info,
- MetaFrameControl control,
- int *x, int *y,
- int *width, int *height,
- gpointer frame_data);
-};
-
-extern MetaThemeEngine meta_default_engine;
+ META_GRADIENT_VERTICAL,
+ META_GRADIENT_HORIZONTAL
+} MetaGradientType;
+
+GdkPixbuf* meta_theme_get_gradient (MetaGradientType type,
+ const GdkColor *color_one,
+ const GdkColor *color_two,
+ int width,
+ int height);
#endif