]> Pileus Git - ~andy/gtk/blob - examples/wheelbarrow/wheelbarrow.c
0976076dbee1620d9251f4b8c68534e77ebd4661
[~andy/gtk] / examples / wheelbarrow / wheelbarrow.c
1
2 #include "config.h"
3 #include <gtk/gtk.h>
4
5 /* XPM */
6 static char * WheelbarrowFull_xpm[] = {
7 "48 48 64 1",
8 "       c None",
9 ".      c #DF7DCF3CC71B",
10 "X      c #965875D669A6",
11 "o      c #71C671C671C6",
12 "O      c #A699A289A699",
13 "+      c #965892489658",
14 "@      c #8E38410330C2",
15 "#      c #D75C7DF769A6",
16 "$      c #F7DECF3CC71B",
17 "%      c #96588A288E38",
18 "&      c #A69992489E79",
19 "*      c #8E3886178E38",
20 "=      c #104008200820",
21 "-      c #596510401040",
22 ";      c #C71B30C230C2",
23 ":      c #C71B9A699658",
24 ">      c #618561856185",
25 ",      c #20811C712081",
26 "<      c #104000000000",
27 "1      c #861720812081",
28 "2      c #DF7D4D344103",
29 "3      c #79E769A671C6",
30 "4      c #861782078617",
31 "5      c #41033CF34103",
32 "6      c #000000000000",
33 "7      c #49241C711040",
34 "8      c #492445144924",
35 "9      c #082008200820",
36 "0      c #69A618611861",
37 "q      c #B6DA71C65144",
38 "w      c #410330C238E3",
39 "e      c #CF3CBAEAB6DA",
40 "r      c #71C6451430C2",
41 "t      c #EFBEDB6CD75C",
42 "y      c #28A208200820",
43 "u      c #186110401040",
44 "i      c #596528A21861",
45 "p      c #71C661855965",
46 "a      c #A69996589658",
47 "s      c #30C228A230C2",
48 "d      c #BEFBA289AEBA",
49 "f      c #596545145144",
50 "g      c #30C230C230C2",
51 "h      c #8E3882078617",
52 "j      c #208118612081",
53 "k      c #38E30C300820",
54 "l      c #30C2208128A2",
55 "z      c #38E328A238E3",
56 "x      c #514438E34924",
57 "c      c #618555555965",
58 "v      c #30C2208130C2",
59 "b      c #38E328A230C2",
60 "n      c #28A228A228A2",
61 "m      c #41032CB228A2",
62 "M      c #104010401040",
63 "N      c #492438E34103",
64 "B      c #28A2208128A2",
65 "V      c #A699596538E3",
66 "C      c #30C21C711040",
67 "Z      c #30C218611040",
68 "A      c #965865955965",
69 "S      c #618534D32081",
70 "D      c #38E31C711040",
71 "F      c #082000000820",
72 "                                                ",
73 "          .XoO                                  ",
74 "         +@#$%o&                                ",
75 "         *=-;#::o+                              ",
76 "           >,<12#:34                            ",
77 "             45671#:X3                          ",
78 "               +89<02qwo                        ",
79 "e*                >,67;ro                       ",
80 "ty>                 459@>+&&                    ",
81 "$2u+                  ><ipas8*                  ",
82 "%$;=*                *3:.Xa.dfg>                ",
83 "Oh$;ya             *3d.a8j,Xe.d3g8+             ",
84 " Oh$;ka          *3d$a8lz,,xxc:.e3g54           ",
85 "  Oh$;kO       *pd$%svbzz,sxxxxfX..&wn>         ",
86 "   Oh$@mO    *3dthwlsslszjzxxxxxxx3:td8M4       ",
87 "    Oh$@g& *3d$XNlvvvlllm,mNwxxxxxxxfa.:,B*     ",
88 "     Oh$@,Od.czlllllzlmmqV@V#V@fxxxxxxxf:%j5&   ",
89 "      Oh$1hd5lllslllCCZrV#r#:#2AxxxxxxxxxcdwM*  ",
90 "       OXq6c.%8vvvllZZiqqApA:mq:Xxcpcxxxxxfdc9* ",
91 "        2r<6gde3bllZZrVi7S@SV77A::qApxxxxxxfdcM ",
92 "        :,q-6MN.dfmZZrrSS:#riirDSAX@Af5xxxxxfevo",
93 "         +A26jguXtAZZZC7iDiCCrVVii7Cmmmxxxxxx%3g",
94 "          *#16jszN..3DZZZZrCVSA2rZrV7Dmmwxxxx&en",
95 "           p2yFvzssXe:fCZZCiiD7iiZDiDSSZwwxx8e*>",
96 "           OA1<jzxwwc:$d%NDZZZZCCCZCCZZCmxxfd.B ",
97 "            3206Bwxxszx%et.eaAp77m77mmmf3&eeeg* ",
98 "             @26MvzxNzvlbwfpdettttttttttt.c,n&  ",
99 "             *;16=lsNwwNwgsvslbwwvccc3pcfu<o    ",
100 "              p;<69BvwwsszslllbBlllllllu<5+     ",
101 "              OS0y6FBlvvvzvzss,u=Blllj=54       ",
102 "               c1-699Blvlllllu7k96MMMg4         ",
103 "               *10y8n6FjvllllB<166668           ",
104 "                S-kg+>666<M<996-y6n<8*          ",
105 "                p71=4 m69996kD8Z-66698&&        ",
106 "                &i0ycm6n4 ogk17,0<6666g         ",
107 "                 N-k-<>     >=01-kuu666>        ",
108 "                 ,6ky&      &46-10ul,66,        ",
109 "                 Ou0<>       o66y<ulw<66&       ",
110 "                  *kk5       >66By7=xu664       ",
111 "                   <<M4      466lj<Mxu66o       ",
112 "                   *>>       +66uv,zN666*       ",
113 "                              566,xxj669        ",
114 "                              4666FF666>        ",
115 "                               >966666M         ",
116 "                                oM6668+         ",
117 "                                  *4            ",
118 "                                                ",
119 "                                                "};
120
121
122 /* When invoked (via signal delete_event), terminates the application */
123 gint close_application( GtkWidget *widget,
124                         GdkEvent  *event,
125                         gpointer   data )
126 {
127     gtk_main_quit();
128     return(FALSE);
129 }
130
131 int main (int argc,
132           char *argv[] )
133 {
134     /* GtkWidget is the storage type for widgets */
135     GtkWidget *window, *pixmap, *fixed;
136     GdkPixmap *gdk_pixmap;
137     GdkBitmap *mask;
138     GtkStyle *style;
139     GdkGC *gc;
140     
141     /* Create the main window, and attach delete_event signal to terminate
142      * the application.  Note that the main window will not have a titlebar
143      * since we're making it a popup. */
144     gtk_init (&argc, &argv);
145     window = gtk_window_new (GTK_WINDOW_POPUP);
146     g_signal_connect (G_OBJECT (window), "delete_event",
147                       G_CALLBACK (close_application), NULL);
148     gtk_widget_show (window);
149
150     /* Now for the pixmap and the pixmap widget */
151     style = gtk_widget_get_default_style();
152     gc = style->black_gc;
153     gdk_pixmap = gdk_pixmap_create_from_xpm_d (window->window, &mask,
154                                                &style->bg[GTK_STATE_NORMAL],
155                                                WheelbarrowFull_xpm);
156     pixmap = gtk_image_new_from_pixmap (gdk_pixmap, mask);
157     gtk_widget_show (pixmap);
158
159     /* To display the pixmap, we use a fixed widget to place the pixmap */
160     fixed = gtk_fixed_new ();
161     gtk_widget_set_size_request (fixed, 200, 200);
162     gtk_fixed_put (GTK_FIXED (fixed), pixmap, 0, 0);
163     gtk_container_add (GTK_CONTAINER (window), fixed);
164     gtk_widget_show (fixed);
165
166     /* This masks out everything except for the image itself */
167     gtk_widget_shape_combine_mask (window, mask, 0, 0);
168     
169     /* show the window */
170     gtk_widget_show (window);
171     gtk_main ();
172           
173     return 0;
174 }