Re: [gtk-list] Re: how to change the color of a GdkGC
- From: Robert Aragon <bobbya redshift com>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: how to change the color of a GdkGC
- Date: Mon, 06 Sep 1999 11:48:09 -0700
BTW,
How do you get a program to compile?
Robert A.
>
> Here's how I do it. Not necessarily the optimum way, but it works for
>me.
>
> I've removed most of my program for simplicity, so the Demo() part
>might
>act funky; not refresh right, etc. But everything else is tested.
>
> John
>
>#include <gtk/gtk.h>
>#include <stdio.h>
>#include <stdlib.h>
>#include <malloc.h>
>
> /* global variables - color palatte */
> GdkGC *red, *green, *blue, *purple;
>
> void DefColor(GtkWidget *widget,
> GdkGC **gc,char redbyte,char greenbyte,char bluebyte)
> /* **********************************************************
> * Define a single new color for *gc.
> ********************************************************** */
> {
> GdkColor color;
>
> /* first, create a GC to draw on */
> *gc = gdk_gc_new(widget->window);
>
> color.red = redbyte * (65535/255);
> color.green = greenbyte * (65535/255);
> color.blue = bluebyte * (65535/255);
> color.pixel = (gulong)(redbyte*65536 + greenbyte*256 + bluebyte);
> gdk_color_alloc(gtk_widget_get_colormap(widget), &color);
> gdk_gc_set_foreground(*gc, &color);
> }/* DefColor */
>
> void DefColors(GtkWidget *widget)
> /* **********************************************************
> * Define a set of five colors, call only once at the
> * start of the program.
> ********************************************************** */
> {
> DefColor(widget,&red,250, 0, 0);
> DefColor(widget,&green,0,250,0);
> DefColor(widget,&blue,0,0,255);
> DefColor(widget,&purple,125,0,125);
> DefColor(widget,&orange,125, 50, 0);
> }/* DefColors */
>
> void FreeColors()
> /* **********************************************************
> * dispose of all colors at end of program.
> ********************************************************** */
> {
> free(red); free(green); free(blue); free(orange);
> }/* FreeColors */
>
>
> void Demo(GtkWidget *widget)
> /* **********************************************************
> * Call this to demo the above functions; draw on a widget.
> ********************************************************** */
> {
> DefColors(widget);
>
> /* fill the widget with a big red rectangle */
> gdk_draw_rectangle (widget->window, red, TRUE,
> 0, 0, widget->allocation.width, widget->allocation.height);
>
> /* and a blue line too, for fun. */
> gdk_draw_line(widget->window, blue,1,1,10,21);
> FreeColors();
> }/* Demo */
>
>
>
>___________________________________________________________________
>Get the Internet just the way you want it.
>Free software, free e-mail, and free Internet access for a month!
>Try Juno Web: http://dl.www.juno.com/dynoget/tagj.
>
>--
>To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null
>
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]