/** stylemod.c **/ #include #include "modulate.xpm" gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); void eventVisibility(GtkWidget *widget,gpointer data); GdkColor red = {0, 0xFFFF, 0x0000, 0x0000 }; GdkColor green = {0, 0x0000, 0xFFFF, 0x0000 }; GdkColor cyan = {0, 0x0000, 0xFFFF, 0xFFFF }; int main(int argc,char *argv[]) { GtkWidget *app; GtkWidget *button; GtkStyle *current; GtkStyle *new; GdkBitmap *mask; gnome_init("stylemod","1.0",argc,argv); app = gnome_app_new("stylemod","GtkStyle"); gtk_container_set_border_width(GTK_CONTAINER(app),40); gtk_signal_connect(GTK_OBJECT(app),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(app),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); gtk_widget_show(app); button = gtk_button_new_with_label("Button"); gtk_widget_set_usize(button,100,100); current = gtk_widget_get_default_style(); new = gtk_style_copy(current); new->bg[GTK_STATE_ACTIVE] = green; new->bg[GTK_STATE_PRELIGHT] = red; new->bg[GTK_STATE_NORMAL] = cyan; new->bg_pixmap[GTK_STATE_NORMAL] = gdk_pixmap_create_from_xpm_d(app->window, &mask,&new->bg[GTK_STATE_NORMAL], (gchar **)modulate); gtk_widget_set_style(button,new); gnome_app_set_contents(GNOME_APP(app),button); gtk_widget_show_all(app); gtk_main(); exit(0); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }