mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 23:50:41 -05:00
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
This commit is contained in:
parent
3d1d70b727
commit
8b680dfdd2
@ -1,3 +1,12 @@
|
|||||||
|
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
|
||||||
|
|
||||||
2002-01-05 Havoc Pennington <hp@pobox.com>
|
2002-01-05 Havoc Pennington <hp@pobox.com>
|
||||||
|
|
||||||
GTK 1.2 plug/socket clients still broken, don't know why.
|
GTK 1.2 plug/socket clients still broken, don't know why.
|
||||||
|
@ -40,6 +40,8 @@ metacity_SOURCES= \
|
|||||||
stack.h \
|
stack.h \
|
||||||
tabpopup.c \
|
tabpopup.c \
|
||||||
tabpopup.h \
|
tabpopup.h \
|
||||||
|
theme.c \
|
||||||
|
theme.h \
|
||||||
ui.c \
|
ui.c \
|
||||||
ui.h \
|
ui.h \
|
||||||
util.c \
|
util.c \
|
||||||
|
26
src/frames.c
26
src/frames.c
@ -25,6 +25,7 @@
|
|||||||
#include "core.h"
|
#include "core.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "fixedtip.h"
|
#include "fixedtip.h"
|
||||||
|
#include "theme.h"
|
||||||
|
|
||||||
#define DEFAULT_INNER_BUTTON_BORDER 3
|
#define DEFAULT_INNER_BUTTON_BORDER 3
|
||||||
|
|
||||||
@ -1759,6 +1760,7 @@ meta_frames_expose_event (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
layout_gc = widget->style->fg_gc[GTK_STATE_SELECTED];
|
layout_gc = widget->style->fg_gc[GTK_STATE_SELECTED];
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Draw blue background */
|
/* Draw blue background */
|
||||||
gdk_draw_rectangle (frame->window,
|
gdk_draw_rectangle (frame->window,
|
||||||
widget->style->bg_gc[GTK_STATE_SELECTED],
|
widget->style->bg_gc[GTK_STATE_SELECTED],
|
||||||
@ -1767,6 +1769,30 @@ meta_frames_expose_event (GtkWidget *widget,
|
|||||||
fgeom.title_rect.y,
|
fgeom.title_rect.y,
|
||||||
fgeom.title_rect.width,
|
fgeom.title_rect.width,
|
||||||
fgeom.title_rect.height);
|
fgeom.title_rect.height);
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
GdkPixbuf *gradient;
|
||||||
|
|
||||||
|
gradient = meta_theme_get_gradient (META_GRADIENT_HORIZONTAL,
|
||||||
|
&widget->style->bg[GTK_STATE_SELECTED],
|
||||||
|
&widget->style->bg[GTK_STATE_NORMAL],
|
||||||
|
fgeom.title_rect.width,
|
||||||
|
fgeom.title_rect.height);
|
||||||
|
|
||||||
|
gdk_pixbuf_render_to_drawable (gradient,
|
||||||
|
frame->window,
|
||||||
|
widget->style->bg_gc[GTK_STATE_SELECTED],
|
||||||
|
0, 0,
|
||||||
|
fgeom.title_rect.x,
|
||||||
|
fgeom.title_rect.y,
|
||||||
|
fgeom.title_rect.width,
|
||||||
|
fgeom.title_rect.height,
|
||||||
|
GDK_RGB_DITHER_NORMAL,
|
||||||
|
0, 0);
|
||||||
|
|
||||||
|
g_object_unref (G_OBJECT (gradient));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frame->layout)
|
if (frame->layout)
|
||||||
|
1055
src/theme.c
1055
src/theme.c
File diff suppressed because it is too large
Load Diff
122
src/theme.h
122
src/theme.h
@ -1,4 +1,4 @@
|
|||||||
/* Metacity Theme Engine Header */
|
/* Metacity Theme Rendering */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2001 Havoc Pennington
|
* Copyright (C) 2001 Havoc Pennington
|
||||||
@ -22,118 +22,22 @@
|
|||||||
#ifndef META_THEME_H
|
#ifndef META_THEME_H
|
||||||
#define META_THEME_H
|
#define META_THEME_H
|
||||||
|
|
||||||
/* don't add any internal headers here; theme.h is an installed/public
|
#include "frames.h"
|
||||||
* header.
|
|
||||||
|
/* theme.[hc] is basically responsible for drawing parts of the UI using
|
||||||
|
* theme data
|
||||||
*/
|
*/
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <glib.h>
|
|
||||||
#include "api.h"
|
|
||||||
|
|
||||||
typedef struct _MetaFrameInfo MetaFrameInfo;
|
|
||||||
typedef struct _MetaFrameGeometry MetaFrameGeometry;
|
|
||||||
typedef struct _MetaThemeEngine MetaThemeEngine;
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
META_FRAME_ALLOWS_DELETE = 1 << 0,
|
META_GRADIENT_VERTICAL,
|
||||||
META_FRAME_ALLOWS_MENU = 1 << 1,
|
META_GRADIENT_HORIZONTAL
|
||||||
META_FRAME_ALLOWS_ICONIFY = 1 << 2,
|
} MetaGradientType;
|
||||||
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;
|
|
||||||
|
|
||||||
typedef enum
|
GdkPixbuf* meta_theme_get_gradient (MetaGradientType type,
|
||||||
{
|
const GdkColor *color_one,
|
||||||
META_FRAME_CONTROL_NONE,
|
const GdkColor *color_two,
|
||||||
META_FRAME_CONTROL_TITLE,
|
int width,
|
||||||
META_FRAME_CONTROL_DELETE,
|
int height);
|
||||||
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;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -175,6 +175,9 @@ topic_name (MetaDebugTopic topic)
|
|||||||
case META_DEBUG_FOCUS:
|
case META_DEBUG_FOCUS:
|
||||||
return "FOCUS";
|
return "FOCUS";
|
||||||
break;
|
break;
|
||||||
|
case META_DEBUG_GRADIENT_CACHE:
|
||||||
|
return "GRADIENT_CACHE";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Window manager";
|
return "Window manager";
|
||||||
|
@ -45,7 +45,8 @@ void meta_fatal (const char *format,
|
|||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
META_DEBUG_FOCUS
|
META_DEBUG_FOCUS,
|
||||||
|
META_DEBUG_GRADIENT_CACHE
|
||||||
|
|
||||||
} MetaDebugTopic;
|
} MetaDebugTopic;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user