Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/boards/gtans_interface.c
blob: 5b52d6b45fe18de4d396205263da0e87b8f182d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
#include "gcompris/gcompris.h"

#include "gtans_callbacks.h"
#include "gtans_interface.h"
#include "gtans_support.h"

#define X_BASE_BIGAREA 340
#define Y_BASE_BIGAREA 50
#define WIDTH_BIGAREA 400

#define X_BASE_SMALLAREA 50
#define Y_BASE_SMALLAREA 50
#define WIDTH_SMALLAREA 200

void create_mainwindow (GnomeCanvasGroup *rootitem)
{
  GtkWidget *wdrawareagrande;
  GtkWidget *wdrawareapetite;


  /* GCompris : suppression of all menus */
  g_assert(rootitem != NULL);

  wdrawareagrande = gtk_drawing_area_new ();
  gtk_widget_set_name (wdrawareagrande, "wdrawareagrande");
  //gtk_widget_set_size_request     (wdrawareagrande,
  //                               WIDTH_BIGAREA,
  //			   WIDTH_BIGAREA
  //			   );

  //gtk_container_add (GTK_CONTAINER (aspectframe1), wdrawareagrande);

  gtk_widget_set_events (wdrawareagrande, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK);

  /* Gcompris */
  gnome_canvas_item_new      ( rootitem,
			       gnome_canvas_widget_get_type(),
			       "widget", wdrawareagrande,
			       "x", (double) X_BASE_BIGAREA,
			       "y", (double) Y_BASE_BIGAREA,
			       "width", (double) WIDTH_BIGAREA,
			       "height", (double) WIDTH_BIGAREA,
			       NULL
			       );

  gtk_widget_show (wdrawareagrande);

  wdrawareapetite = gtk_drawing_area_new ();
  gtk_widget_set_name (wdrawareapetite, "wdrawareapetite");

  gtk_widget_set_events (wdrawareapetite, GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK);

  /* Gcompris */
  gnome_canvas_item_new      ( rootitem,
			       gnome_canvas_widget_get_type(),
			       "widget", wdrawareapetite,
			       "x", (double) X_BASE_SMALLAREA,
			       "y", (double) Y_BASE_SMALLAREA,
			       "width", (double) WIDTH_SMALLAREA,
			       "height", (double) WIDTH_SMALLAREA,
			       NULL
			       );

  gtk_widget_show (wdrawareapetite);

  gtk_signal_connect (GTK_OBJECT (wdrawareagrande), "expose_event",
                      GTK_SIGNAL_FUNC (on_wdrawareagrande_expose_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareagrande), "configure_event",
                      GTK_SIGNAL_FUNC (on_wdrawareagrande_configure_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareagrande), "button_press_event",
                      GTK_SIGNAL_FUNC (on_wdrawareagrande_button_press_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareagrande), "button_release_event",
                      GTK_SIGNAL_FUNC (on_wdrawareagrande_button_release_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareagrande), "motion_notify_event",
                      GTK_SIGNAL_FUNC (on_wdrawareagrande_motion_notify_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareapetite), "configure_event",
                      GTK_SIGNAL_FUNC (on_wdrawareapetite_configure_event),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (wdrawareapetite), "expose_event",
                      GTK_SIGNAL_FUNC (on_wdrawareapetite_expose_event),
                      NULL);


  /* Gcompris */
  /* add here buttons */

  GdkPixbuf   *pixmap_l = NULL;
  GdkPixbuf   *pixmap_r = NULL;
  GdkPixbuf   *pixmap_show = NULL;
  GdkPixbuf   *pixmap_outline = NULL;
  GdkPixbuf   *pixmap_symetry = NULL;
  GnomeCanvasItem *previous_figure, *next_figure;
  GnomeCanvasItem *show_figure, *outline_figure, *symetry;

  pixmap_l = gc_skin_pixmap_load("button_backward.png");

  pixmap_r = gc_skin_pixmap_load("button_forward.png");

  previous_figure = gnome_canvas_item_new (rootitem,
					   gnome_canvas_pixbuf_get_type (),
					   "pixbuf", pixmap_l,
					   "x", (double) X_BASE_SMALLAREA,
					   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 10,
					   NULL);

  next_figure = gnome_canvas_item_new (rootitem,
				       gnome_canvas_pixbuf_get_type (),
				       "pixbuf", pixmap_r,
				       "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA,
				       "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 10,
				       "anchor", GTK_ANCHOR_NE,
				       NULL);


  gtk_signal_connect(GTK_OBJECT(previous_figure), "event",
		     (GtkSignalFunc) on_arrow_clicked,
		     (gpointer) FALSE);

  gtk_signal_connect(GTK_OBJECT(previous_figure), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(next_figure), "event",
		     (GtkSignalFunc) on_arrow_clicked,
		     (gpointer) TRUE);

  gtk_signal_connect(GTK_OBJECT(next_figure), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);


  pixmap_show = gc_pixmap_load("gtans/gtans_show.png");

  pixmap_outline = gc_pixmap_load("gtans/gtans_outline.png");

  show_figure = gnome_canvas_item_new (rootitem,
				       gnome_canvas_pixbuf_get_type (),
				       "pixbuf", pixmap_show,
				       "x", (double) X_BASE_SMALLAREA,
				       "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 80,
				       "anchor",  GTK_ANCHOR_W,
				       NULL);

  outline_figure = gnome_canvas_item_new (rootitem,
				       gnome_canvas_pixbuf_get_type (),
				       "pixbuf", pixmap_outline,
				       "x", (double) X_BASE_SMALLAREA,
				       "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 130,
				       "anchor", GTK_ANCHOR_W,
				       NULL);

  gtk_signal_connect(GTK_OBJECT(outline_figure), "event",
		     (GtkSignalFunc) on_outline_clicked,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(show_figure), "event",
		     (GtkSignalFunc) on_show_clicked,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(outline_figure), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(show_figure), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  pixmap_symetry = gc_skin_pixmap_load("draw/tool-flip.png");


  symetry = gnome_canvas_item_new (rootitem,
				   gnome_canvas_pixbuf_get_type (),
				   "pixbuf", pixmap_symetry,
				   "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA - 50,
				   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 180,
				   "anchor", GTK_ANCHOR_N,
				   NULL);

  gtk_signal_connect(GTK_OBJECT(symetry), "event",
		     (GtkSignalFunc) on_symetry_clicked,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(symetry), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);


  /* rotation buttons */
  GdkPixbuf   *right_rot = NULL;
  GdkPixbuf   *left_rot = NULL;
  GdkPixbuf   *right_rot_big = NULL;
  GdkPixbuf   *left_rot_big = NULL;
  GnomeCanvasItem *l_rot_s, *r_rot_s, *l_rot_b,  *r_rot_b;

  right_rot       = gc_pixmap_load("gtans/gtans_rotate.png");
  left_rot        = gc_pixmap_load("gtans/gtans_rotate-left.png");

  r_rot_s = gnome_canvas_item_new (rootitem,
				   gnome_canvas_pixbuf_get_type (),
				   "pixbuf", right_rot,
				   "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA,
				   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 60,
				   "anchor", GTK_ANCHOR_NE,
				   NULL);


  l_rot_s = gnome_canvas_item_new (rootitem,
				   gnome_canvas_pixbuf_get_type (),
				   "pixbuf", left_rot,
				   "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA - 100,
				   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 60,
				   "anchor", GTK_ANCHOR_NW,
				   NULL);


  gdk_pixbuf_unref(right_rot);
  gdk_pixbuf_unref(left_rot);

  right_rot_big   = gc_pixmap_load("gtans/gtans_2x-rotate.png");
  left_rot_big    = gc_pixmap_load("gtans/gtans_2x-rotate-left.png");

  r_rot_b = gnome_canvas_item_new (rootitem,
				   gnome_canvas_pixbuf_get_type (),
				   "pixbuf", right_rot_big,
				   "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA,
				   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 120,
				   "anchor", GTK_ANCHOR_NE,
				   NULL);


  l_rot_b = gnome_canvas_item_new (rootitem,
				   gnome_canvas_pixbuf_get_type (),
				   "pixbuf", left_rot_big,
				   "x", (double) X_BASE_SMALLAREA + WIDTH_SMALLAREA - 100,
				   "y", (double) Y_BASE_SMALLAREA + WIDTH_SMALLAREA + 120,
				   "anchor", GTK_ANCHOR_NW,
				   NULL);

  gdk_pixbuf_unref(right_rot_big);
  gdk_pixbuf_unref(left_rot_big);


  gtk_signal_connect(GTK_OBJECT(r_rot_s), "event",
		     (GtkSignalFunc) on_rotation_clicked,
		     (gpointer) 0);

  gtk_signal_connect(GTK_OBJECT(r_rot_s), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(l_rot_s), "event",
		     (GtkSignalFunc) on_rotation_clicked,
		     (gpointer) 1);

  gtk_signal_connect(GTK_OBJECT(l_rot_s), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(r_rot_b), "event",
		     (GtkSignalFunc) on_rotation_clicked,
		     (gpointer) 2);

  gtk_signal_connect(GTK_OBJECT(r_rot_b), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

  gtk_signal_connect(GTK_OBJECT(l_rot_b), "event",
		     (GtkSignalFunc) on_rotation_clicked,
		     (gpointer) 3);

  gtk_signal_connect(GTK_OBJECT(l_rot_b), "event",
		     (GtkSignalFunc) gc_item_focus_event,
		     NULL);

}