gtk.c 944 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* $Id: gtk.c,v 1.7 2001/04/14 20:01:15 kilobug Exp $ */
  2. #include "client.h"
  3. GtkWidget *create_picture(const char *filename, conf_t *conf)
  4. {
  5. GdkPixmap *pm;
  6. GdkBitmap *mask;
  7. GtkStyle *style;
  8. GtkWidget *wid;
  9. char *name;
  10. name = g_strconcat(getenv("PROLO_DATA_DIR"), G_DIR_SEPARATOR_S,
  11. filename, NULL);
  12. style = gtk_widget_get_style(conf->window);
  13. pm = gdk_pixmap_create_from_xpm(conf->window->window, &mask,
  14. &style->bg[GTK_STATE_NORMAL],
  15. name);
  16. g_free(name);
  17. wid = gtk_pixmap_new(pm, mask);
  18. gtk_widget_show(wid);
  19. return wid;
  20. }
  21. GtkWidget *create_xpm_button(const char *filename, GtkSignalFunc callback,
  22. conf_t *conf)
  23. {
  24. GtkWidget *pic, *wid;
  25. pic = create_picture(filename, conf);
  26. wid = gtk_button_new();
  27. gtk_container_add(GTK_CONTAINER(wid), pic);
  28. gtk_widget_show(wid);
  29. if (callback != NULL)
  30. gtk_signal_connect(GTK_OBJECT(wid), "pressed", callback, conf);
  31. return wid;
  32. }