mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 21:51:08 +00:00
b3d5f148e6
* examples/*/Makefile (CFLAGS): add deprecation guards. * docs/tutorial/gtk-tut.sgml, examples/*/*.c: make most examples deprecation-clean; the major offenders right now are the examples that make heavy use of completely deprecated or broken widgets: list, tree, text, pixmap, paned and progressbar. These will have to be redone from scratch. * demos/Makefile.am (INCLUDES): add -DGDK_PIXBUF_DISABLE_DEPRECATED.
89 lines
2.3 KiB
C
89 lines
2.3 KiB
C
|
|
#include <gtk/gtk.h>
|
|
|
|
|
|
/* XPM data of Open-File icon */
|
|
static const char * xpm_data[] = {
|
|
"16 16 3 1",
|
|
" c None",
|
|
". c #000000000000",
|
|
"X c #FFFFFFFFFFFF",
|
|
" ",
|
|
" ...... ",
|
|
" .XXX.X. ",
|
|
" .XXX.XX. ",
|
|
" .XXX.XXX. ",
|
|
" .XXX..... ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" .XXXXXXX. ",
|
|
" ......... ",
|
|
" ",
|
|
" "};
|
|
|
|
|
|
/* when invoked (via signal delete_event), terminates the application.
|
|
*/
|
|
gint close_application( GtkWidget *widget,
|
|
GdkEvent *event,
|
|
gpointer data )
|
|
{
|
|
gtk_main_quit();
|
|
return(FALSE);
|
|
}
|
|
|
|
|
|
/* is invoked when the button is clicked. It just prints a message.
|
|
*/
|
|
void button_clicked( GtkWidget *widget,
|
|
gpointer data ) {
|
|
g_print( "button clicked\n" );
|
|
}
|
|
|
|
int main( int argc,
|
|
char *argv[] )
|
|
{
|
|
/* GtkWidget is the storage type for widgets */
|
|
GtkWidget *window, *pixmapwid, *button;
|
|
GdkPixmap *pixmap;
|
|
GdkBitmap *mask;
|
|
GtkStyle *style;
|
|
|
|
/* create the main window, and attach delete_event signal to terminating
|
|
the application */
|
|
gtk_init( &argc, &argv );
|
|
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
|
gtk_signal_connect( GTK_OBJECT (window), "delete_event",
|
|
GTK_SIGNAL_FUNC (close_application), NULL );
|
|
gtk_container_set_border_width( GTK_CONTAINER (window), 10 );
|
|
gtk_widget_show( window );
|
|
|
|
/* now for the pixmap from gdk */
|
|
style = gtk_widget_get_style( window );
|
|
pixmap = gdk_pixmap_create_from_xpm_d( window->window, &mask,
|
|
&style->bg[GTK_STATE_NORMAL],
|
|
(gchar **)xpm_data );
|
|
|
|
/* a pixmap widget to contain the pixmap */
|
|
pixmapwid = gtk_pixmap_new( pixmap, mask );
|
|
gtk_widget_show( pixmapwid );
|
|
|
|
/* a button to contain the pixmap widget */
|
|
button = gtk_button_new();
|
|
gtk_container_add( GTK_CONTAINER(button), pixmapwid );
|
|
gtk_container_add( GTK_CONTAINER(window), button );
|
|
gtk_widget_show( button );
|
|
|
|
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
|
GTK_SIGNAL_FUNC(button_clicked), NULL );
|
|
|
|
/* show the window */
|
|
gtk_main ();
|
|
|
|
return 0;
|
|
}
|