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>
|
||||
|
||||
GTK 1.2 plug/socket clients still broken, don't know why.
|
||||
|
@ -40,6 +40,8 @@ metacity_SOURCES= \
|
||||
stack.h \
|
||||
tabpopup.c \
|
||||
tabpopup.h \
|
||||
theme.c \
|
||||
theme.h \
|
||||
ui.c \
|
||||
ui.h \
|
||||
util.c \
|
||||
|
26
src/frames.c
26
src/frames.c
@ -25,6 +25,7 @@
|
||||
#include "core.h"
|
||||
#include "menu.h"
|
||||
#include "fixedtip.h"
|
||||
#include "theme.h"
|
||||
|
||||
#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];
|
||||
|
||||
#if 0
|
||||
/* Draw blue background */
|
||||
gdk_draw_rectangle (frame->window,
|
||||
widget->style->bg_gc[GTK_STATE_SELECTED],
|
||||
@ -1767,6 +1769,30 @@ meta_frames_expose_event (GtkWidget *widget,
|
||||
fgeom.title_rect.y,
|
||||
fgeom.title_rect.width,
|
||||
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)
|
||||
|
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
|
||||
@ -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 "frames.h"
|
||||
|
||||
/* 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
|
||||
{
|
||||
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;
|
||||
META_GRADIENT_VERTICAL,
|
||||
META_GRADIENT_HORIZONTAL
|
||||
} MetaGradientType;
|
||||
|
||||
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;
|
||||
GdkPixbuf* meta_theme_get_gradient (MetaGradientType type,
|
||||
const GdkColor *color_one,
|
||||
const GdkColor *color_two,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
#endif
|
||||
|
@ -175,6 +175,9 @@ topic_name (MetaDebugTopic topic)
|
||||
case META_DEBUG_FOCUS:
|
||||
return "FOCUS";
|
||||
break;
|
||||
case META_DEBUG_GRADIENT_CACHE:
|
||||
return "GRADIENT_CACHE";
|
||||
break;
|
||||
}
|
||||
|
||||
return "Window manager";
|
||||
|
@ -45,7 +45,8 @@ void meta_fatal (const char *format,
|
||||
|
||||
typedef enum
|
||||
{
|
||||
META_DEBUG_FOCUS
|
||||
META_DEBUG_FOCUS,
|
||||
META_DEBUG_GRADIENT_CACHE
|
||||
|
||||
} MetaDebugTopic;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user