/*
 * style.c - GUI style parameters and items
 *
 * Written 2010 by Werner Almesberger
 * Copyright 2010 by Werner Almesberger
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */


#include <stdlib.h>
#include <gtk/gtk.h>

#include "style.h"


GdkGC *gc_osd;


static GdkColor get_color(GdkDrawable *da, const char *spec)
{
	GdkColormap *cmap;
	GdkColor color;

	cmap = gdk_drawable_get_colormap(da);
	if (!gdk_color_parse(spec, &color))
		abort();
	if (!gdk_colormap_alloc_color(cmap, &color, FALSE, TRUE))
		abort();
	return color;
}


static GdkGC *gc(GdkDrawable *da, const char *spec, int width)
{
	GdkGCValues gc_values = {
		.background = get_color(da, "black"),
		.foreground = get_color(da, spec),
		.line_width = width,
	};

	return gdk_gc_new_with_values(da, &gc_values,
	    GDK_GC_FOREGROUND | GDK_GC_BACKGROUND | GDK_GC_LINE_WIDTH);
}


void init_style(GdkDrawable *da)
{
	gc_osd = gc(da, "#ffff00", 4);
}