|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
#include "config.h"
|
|
Packit |
98cdb6 |
#include <gtk/gtk.h>
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* XPM data of Open-File icon */
|
|
Packit |
98cdb6 |
static const char * xpm_data[] = {
|
|
Packit |
98cdb6 |
"16 16 3 1",
|
|
Packit |
98cdb6 |
" c None",
|
|
Packit |
98cdb6 |
". c #000000000000",
|
|
Packit |
98cdb6 |
"X c #FFFFFFFFFFFF",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ...... ",
|
|
Packit |
98cdb6 |
" .XXX.X. ",
|
|
Packit |
98cdb6 |
" .XXX.XX. ",
|
|
Packit |
98cdb6 |
" .XXX.XXX. ",
|
|
Packit |
98cdb6 |
" .XXX..... ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" .XXXXXXX. ",
|
|
Packit |
98cdb6 |
" ......... ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" "};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* when invoked (via signal delete_event), terminates the application.
|
|
Packit |
98cdb6 |
*/
|
|
Packit |
98cdb6 |
gint close_application( GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkEvent *event,
|
|
Packit |
98cdb6 |
gpointer data )
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
gtk_main_quit ();
|
|
Packit |
98cdb6 |
return FALSE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* is invoked when the button is clicked. It just prints a message.
|
|
Packit |
98cdb6 |
*/
|
|
Packit |
98cdb6 |
void button_clicked( GtkWidget *widget,
|
|
Packit |
98cdb6 |
gpointer data ) {
|
|
Packit |
98cdb6 |
g_print ("button clicked\n");
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
int main( int argc,
|
|
Packit |
98cdb6 |
char *argv[] )
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
/* GtkWidget is the storage type for widgets */
|
|
Packit |
98cdb6 |
GtkWidget *window, *pixmapwid, *button;
|
|
Packit |
98cdb6 |
GdkPixmap *pixmap;
|
|
Packit |
98cdb6 |
GdkBitmap *mask;
|
|
Packit |
98cdb6 |
GtkStyle *style;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* create the main window, and attach delete_event signal to terminating
|
|
Packit |
98cdb6 |
the application */
|
|
Packit |
98cdb6 |
gtk_init (&argc, &argv);
|
|
Packit |
98cdb6 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit |
98cdb6 |
g_signal_connect (window, "delete-event",
|
|
Packit |
98cdb6 |
G_CALLBACK (close_application), NULL);
|
|
Packit |
98cdb6 |
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
|
Packit |
98cdb6 |
gtk_widget_show (window);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* now for the pixmap from gdk */
|
|
Packit |
98cdb6 |
style = gtk_widget_get_style (window);
|
|
Packit |
98cdb6 |
pixmap = gdk_pixmap_create_from_xpm_d (window->window, &mask,
|
|
Packit |
98cdb6 |
&style->bg[GTK_STATE_NORMAL],
|
|
Packit |
98cdb6 |
(gchar **)xpm_data);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* a pixmap widget to contain the pixmap */
|
|
Packit |
98cdb6 |
pixmapwid = gtk_image_new_from_pixmap (pixmap, mask);
|
|
Packit |
98cdb6 |
gtk_widget_show (pixmapwid);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* a button to contain the pixmap widget */
|
|
Packit |
98cdb6 |
button = gtk_button_new ();
|
|
Packit |
98cdb6 |
gtk_container_add (GTK_CONTAINER (button), pixmapwid);
|
|
Packit |
98cdb6 |
gtk_container_add (GTK_CONTAINER (window), button);
|
|
Packit |
98cdb6 |
gtk_widget_show (button);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (button, "clicked",
|
|
Packit |
98cdb6 |
G_CALLBACK (button_clicked), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* show the window */
|
|
Packit |
98cdb6 |
gtk_main ();
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return 0;
|
|
Packit |
98cdb6 |
}
|