Re: TEXT over transparent background
- From: Julio Pastrana <pastrana informatik uni-freiburg de>
- To: Ariel Fritz <duin tutopia com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: TEXT over transparent background
- Date: Sat, 25 Oct 2003 12:00:33 +0200 (MEST)
Hello again Ariel
well I changed some things from
the example and I add a line that does
magic .. just to mask the whole window
gtk_widget_shape_combine_mask( window, xpm, 0, 0 );
it is explained in theWheelbarrow (i think)
OK other thing
try this 2 types of windows
window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
window = gtk_window_new( GTK_WINDOW_POPUP );
just replace GTK_WINDOW_TOPLEVEL for GTK_WINDOW_POPUP
or viseversa ... and check the efect
i hope you ca understand this one =)
heve fun
-------------------------------------------------------
#include <gtk/gtk.h>
#include <stdlib.h>
void close_application( GtkWidget *widget, GdkEvent
*event, gpointer data ) {
gtk_main_quit();
}
int main (int argc, char *argv[])
{
//widgets we will show
GtkWidget *window, *pixmap;
// just to define colors
GdkGC *gccc;
GdkGC *gc;
GdkColor white;
GdkColor black;
GdkPixmap *p; // this is the color pixmap
GdkPixmap *xpm; //this is the mask
GdkFont *label_font=NULL; // to store the text you want to draw
GtkWidget *vbox1;
int sizeX = 300;
int sizeY = 100;
gtk_init (&argc, &argv);
window = gtk_window_new( GTK_WINDOW_TOPLEVEL); // window = gtk_window_new( GTK_WINDOW_POPUP );
gtk_widget_set_usize (window, sizeX , sizeY);
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (close_application), NULL);
gtk_widget_show (window);
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_widget_set_name (vbox1, "vbox1");
gtk_widget_ref (vbox1);
gtk_object_set_data_full (GTK_OBJECT (window), "vbox1", vbox1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_container_add (GTK_CONTAINER (window), vbox1);
gtk_widget_show (vbox1);
gdk_color_parse("white", &white);
gdk_color_alloc(gtk_widget_get_colormap(window),&white);
gdk_color_parse("black", &black);
gdk_color_alloc(gtk_widget_get_colormap(window),&black);
p = gdk_pixmap_new ( window->window, sizeX,sizeY, -1); //creating color pixmap
xpm = gdk_pixmap_new ( NULL, sizeX, sizeY,1); //creating one color pixmap (It is actually a
BITMAP)
// getting the gc for the bitmap 1 bit color
gc = gdk_gc_new(xpm);
gdk_gc_set_foreground(gc, &black);
gdk_draw_rectangle(xpm, gc, TRUE, 0,0, sizeX,sizeY);
gdk_gc_set_foreground(gc, &white);
/* everything you draw you have to draw it on the mask also */
/* just with the white color */
// getting the gc for the pixmap
gccc = gdk_gc_new(p);
gdk_gc_set_background(gccc, &white);
gdk_draw_rectangle(p, gccc, TRUE, 0,0, sizeX,sizeY);
label_font = gdk_font_load("-*-helvetica-*-r-normal-*-14-*-*-*-*-*-*-*");
char * text = "Ventana Transparente";
gdk_draw_string(p , label_font , gccc , 30, 30, text);
gdk_draw_string(xpm , label_font , gc , 30, 30, text);
//as in the Wheelbarrow example
//we need to send the pixmap "p" to a pixmap Widget
//and we mask it with the bitmap xpm
pixmap = gtk_pixmap_new( p, xpm);
//now we do not need the pixmap
//because the widget has the data
//and we free the memory of the pixmap and the bitmap
gdk_pixmap_unref(p);
gdk_pixmap_unref(xpm);
//attaching the widget to a vbox
gtk_container_add( GTK_CONTAINER(vbox1), pixmap);
gtk_widget_show( pixmap );
/* This masks out everything except for the image itself */
gtk_widget_shape_combine_mask( window, xpm, 0, 0 );
gtk_widget_show( pixmap );
gtk_main ();
return 0;
}
-------------------------------------------------------
On Thu, 23 Oct 2003, Ariel Fritz wrote:
Thanks for information
I really tryed to understand your code but I couldn´t at all.
I´m very beginer in GTK, and I don´t know some of functions that you use in
code.
I´ll explain my doubts and my needs.
I realy need to show a text on over any window. This text should be holded
in another window with tranparent background. Image TV menu labels.
I was taking a look in wheelbarrow.c example that came with GTK and your
example. But I couldn´t get any good results.
If you can help me I´ll thank you.
Ariel Antonio Fritz
--- Original Message -----
From: "Julio Pastrana" <pastrana informatik uni-freiburg de>
To: "Ariel Fritz" <duin tutopia com>
Cc: <gtk-app-devel-list gnome org>
Sent: Thursday, October 23, 2003 5:31 AM
Subject: Re: TEXT over transparent background
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]