need some help
- From: Syed Irfan <CrazyCrusoe yahoo com>
- To: gtk-app-devel-list gnome org
- Subject: need some help
- Date: 22 Feb 2002 02:59:11 +1300
hi
i need some help understanding some things, i am
through to chapter 6 in the gtk tutorial :-)
/* my program 5, button.button */
#include <gtk/gtk.h>
//#define INFO
/usr/share/doc/gtk+-devel-1.2.10/examples/buttons/info.xpm
why cant i define the above and use INFO in the
program ? instead of giving the whole path to the file
?
gint my_delete_cb(GtkWidget *widget, GdkEvent *event,
gpointer data)
{
        g_print("\nyou pressed the %s \n", (char*) data);
        gtk_main_quit();
        return (TRUE);
}
gint my_clicked_button_cb(GtkWidget *widget, gpointer
data)
{
        g_print("\n pressed the %s\n", (char *) data);
        return (FALSE);
}
//gint my_leave_button_cb(GtkWidget *widget, GdkEvent
*event, gpointer data)
//gives output   "  uhooo this ones good; Ã)   "
//i mean the strange character "Ã" instead of "pointer
moved away from button" ?
//bugger, but removing GdkEvent *event from the
function declaration
//does da trick, dunno why ? any explanation here ?
gint my_leave_button_cb(GtkWidget *widget, gpointer
data)
{
        g_print("\nuhooo this ones good; %s\n",(char*) data);
        return (TRUE);
}
GtkWidget *my_xpm_label_box(GtkWidget *parent, gchar
*xpm_filename, gchar *label_text)
{
        GtkWidget *box_1;
        GtkWidget *label;
        GtkWidget *pixmapwid;
        GdkPixmap *pixmap;
        GdkBitmap *mask;
        GtkStyle *style;
        //create box for xpm and label
        box_1=gtk_hbox_new(FALSE, 0);
        gtk_container_set_border_width(GTK_CONTAINER(box_1),
2);
        //setting style of the button
        style = gtk_widget_get_style(parent);
        //the display of the pixmap
        pixmap = gdk_pixmap_create_from_xpm(parent->window,
&mask, &style->bg[GTK_STATE_NORMAL], xpm_filename);
        pixmapwid = gtk_pixmap_new(pixmap, mask);
        //create label for the button
        label = gtk_label_new(label_text);
        //packing the pixmap into box
        gtk_box_pack_start(GTK_BOX(box_1), pixmapwid, FALSE,
FALSE, 3);
        //packing the label into the box
        gtk_box_pack_start(GTK_BOX(box_1), label, FALSE,
FALSE, 3);
        gtk_widget_show(pixmapwid);
        gtk_widget_show(label);
        return (box_1);
}
int main(int argc, char *argv[])
{
        //gtk widgets first
        GtkWidget *window;
        GtkWidget *button;
        GtkWidget *box_1;
        //dont forget to initialize
        gtk_init(&argc, &argv);
        //create the window
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        //connect the x with close
        gtk_signal_connect(GTK_OBJECT(window),
"delete_event", GTK_SIGNAL_FUNC(my_delete_cb),
(gpointer) "x button on the top right corner");
        gtk_container_set_border_width(GTK_CONTAINER(window),
20);
        //what the heck is that realize thingy ? below
        //whats the diff between gtk_widget_show() and
//gtk_widget_realize() ??
        gtk_widget_realize(window);
//      gtk_widget_show(window);
        // now creating the button
        button = gtk_button_new();
        //connecting the button to an event, basically the
button callback
        gtk_signal_connect(GTK_OBJECT(button), "clicked",
GTK_SIGNAL_FUNC(my_clicked_button_cb), (gpointer)
"cool button");
        
        gtk_signal_connect(GTK_OBJECT(button), "leave",
GTK_SIGNAL_FUNC(my_leave_button_cb), (gpointer)
"pointer moved away from button");
        //the strange thing about, when the mouse
pointer clicks the //button, this is the output i get
uhooo this ones good; pointer moved away from button
pressed the cool button
but shouldnt i get only "pressed the cool button"
why am i getting the uhooo this ones good as well ?
        box_1 = my_xpm_label_box(window,
"/usr/lib/kde1-compat/share/icons/large/info.xpm",
"cool button");
        gtk_widget_show(box_1);
        gtk_container_add(GTK_CONTAINER(button), box_1);
        gtk_widget_show(button);
        gtk_container_add(GTK_CONTAINER(window), button);
        gtk_widget_show(window);
        gtk_main();
        return(0);
}
thankyou verymuch guys
=====================================
CrazyCrusoe
Hackerd00d
http://members.linuxstart.com/openweb
=====================================
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]