~ubuntu-branches/ubuntu/precise/clutter-1.0/precise

« back to all changes in this revision

Viewing changes to tests/interactive/test-stage-sizing.c

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2010-03-21 13:27:56 UTC
  • mto: (2.1.3 experimental) (1.3.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20100321132756-nf8yd30yxo3zzwcm
Tags: upstream-1.2.2
ImportĀ upstreamĀ versionĀ 1.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdlib.h>
 
2
#include <gmodule.h>
 
3
#include <clutter/clutter.h>
 
4
 
 
5
static gboolean
 
6
fullscreen_clicked_cb (ClutterStage *stage)
 
7
{
 
8
  clutter_stage_set_fullscreen (stage, !clutter_stage_get_fullscreen (stage));
 
9
  return TRUE;
 
10
}
 
11
 
 
12
static gboolean
 
13
resize_clicked_cb (ClutterStage *stage)
 
14
{
 
15
  clutter_stage_set_user_resizable (stage,
 
16
                                    !clutter_stage_get_user_resizable (stage));
 
17
  return TRUE;
 
18
}
 
19
 
 
20
static gboolean
 
21
shrink_clicked_cb (ClutterActor *stage)
 
22
{
 
23
  gfloat width, height;
 
24
  clutter_actor_get_size (stage, &width, &height);
 
25
  clutter_actor_set_size (stage, MAX (0, width - 10.f), MAX (0, height - 10.f));
 
26
  return TRUE;
 
27
}
 
28
 
 
29
static gboolean
 
30
expand_clicked_cb (ClutterActor *stage)
 
31
{
 
32
  gfloat width, height;
 
33
  clutter_actor_get_size (stage, &width, &height);
 
34
  clutter_actor_set_size (stage, width + 10.f, height + 10.f);
 
35
  return TRUE;
 
36
}
 
37
 
 
38
G_MODULE_EXPORT int
 
39
test_stage_sizing_main (int argc, char *argv[])
 
40
{
 
41
  gfloat width;
 
42
  ClutterColor color;
 
43
  ClutterActor *stage, *rect, *label;
 
44
 
 
45
  clutter_init (&argc, &argv);
 
46
 
 
47
  stage = clutter_stage_get_default ();
 
48
 
 
49
  label = clutter_text_new_with_text ("Sans 16", "Toggle fullscreen");
 
50
  clutter_color_from_string (&color, "light red");
 
51
  rect = clutter_rectangle_new_with_color (&color);
 
52
  clutter_actor_set_size (rect,
 
53
                          clutter_actor_get_width (label) + 20,
 
54
                          clutter_actor_get_height (label) + 20);
 
55
  clutter_container_add (CLUTTER_CONTAINER (stage), rect, label, NULL);
 
56
  clutter_actor_set_position (label, 10, 10);
 
57
  clutter_actor_set_reactive (rect, TRUE);
 
58
  g_signal_connect_swapped (rect, "button-press-event",
 
59
                            G_CALLBACK (fullscreen_clicked_cb), stage);
 
60
  width = clutter_actor_get_width (rect);
 
61
 
 
62
  label = clutter_text_new_with_text ("Sans 16", "Toggle resizable");
 
63
  clutter_color_from_string (&color, "light green");
 
64
  rect = clutter_rectangle_new_with_color (&color);
 
65
  clutter_actor_set_size (rect,
 
66
                          clutter_actor_get_width (label) + 20,
 
67
                          clutter_actor_get_height (label) + 20);
 
68
  clutter_container_add (CLUTTER_CONTAINER (stage), rect, label, NULL);
 
69
  clutter_actor_set_x (rect, width);
 
70
  clutter_actor_set_position (label, 10 + width, 10);
 
71
  clutter_actor_set_reactive (rect, TRUE);
 
72
  g_signal_connect_swapped (rect, "button-press-event",
 
73
                            G_CALLBACK (resize_clicked_cb), stage);
 
74
  width += clutter_actor_get_width (rect);
 
75
 
 
76
  label = clutter_text_new_with_text ("Sans 16", "Shrink");
 
77
  clutter_color_from_string (&color, "light blue");
 
78
  rect = clutter_rectangle_new_with_color (&color);
 
79
  clutter_actor_set_size (rect,
 
80
                          clutter_actor_get_width (label) + 20,
 
81
                          clutter_actor_get_height (label) + 20);
 
82
  clutter_container_add (CLUTTER_CONTAINER (stage), rect, label, NULL);
 
83
  clutter_actor_set_x (rect, width);
 
84
  clutter_actor_set_position (label, 10 + width, 10);
 
85
  clutter_actor_set_reactive (rect, TRUE);
 
86
  g_signal_connect_swapped (rect, "button-press-event",
 
87
                            G_CALLBACK (shrink_clicked_cb), stage);
 
88
  width += clutter_actor_get_width (rect);
 
89
 
 
90
  label = clutter_text_new_with_text ("Sans 16", "Expand");
 
91
  clutter_color_from_string (&color, "light yellow");
 
92
  rect = clutter_rectangle_new_with_color (&color);
 
93
  clutter_actor_set_size (rect,
 
94
                          clutter_actor_get_width (label) + 20,
 
95
                          clutter_actor_get_height (label) + 20);
 
96
  clutter_container_add (CLUTTER_CONTAINER (stage), rect, label, NULL);
 
97
  clutter_actor_set_x (rect, width);
 
98
  clutter_actor_set_position (label, 10 + width, 10);
 
99
  clutter_actor_set_reactive (rect, TRUE);
 
100
  g_signal_connect_swapped (rect, "button-press-event",
 
101
                            G_CALLBACK (expand_clicked_cb), stage);
 
102
  width += clutter_actor_get_width (rect);
 
103
 
 
104
  clutter_stage_set_minimum_size (CLUTTER_STAGE (stage),
 
105
                                  width,
 
106
                                  clutter_actor_get_height (rect));
 
107
 
 
108
  clutter_actor_show (stage);
 
109
 
 
110
  clutter_main ();
 
111
 
 
112
  return EXIT_SUCCESS;
 
113
}