aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/edje/src/examples/edje-drag.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 17:29:19 +1000
committerDavid Walter Seikel2013-01-13 17:29:19 +1000
commit07274513e984f0b5544586c74508ccd16e7dcafa (patch)
treeb32ff2a9136fbc1a4a6a0ed1e4d79cde0f5f16d9 /libraries/edje/src/examples/edje-drag.c
parentAdded Irrlicht 1.8, but without all the Windows binaries. (diff)
downloadSledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.zip
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.gz
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.bz2
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.xz
Remove EFL, since it's been released now.
Diffstat (limited to '')
-rw-r--r--libraries/edje/src/examples/edje-drag.c210
1 files changed, 0 insertions, 210 deletions
diff --git a/libraries/edje/src/examples/edje-drag.c b/libraries/edje/src/examples/edje-drag.c
deleted file mode 100644
index bb61b68..0000000
--- a/libraries/edje/src/examples/edje-drag.c
+++ /dev/null
@@ -1,210 +0,0 @@
1/**
2 * Simple Edje example illustrating drag functions.
3 *
4 * You'll need at least one Evas engine built for it (excluding the
5 * buffer one). See stdout/stderr for output.
6 *
7 * @verbatim
8 * edje_cc drag.edc && gcc -o drag-box drag-box.c `pkg-config --libs --cflags evas ecore ecore-evas edje`
9 * @endverbatim
10 */
11
12#ifdef HAVE_CONFIG_H
13# include "config.h"
14#else
15# define __UNUSED__
16#endif
17
18#include <Ecore.h>
19#include <Ecore_Evas.h>
20#include <Edje.h>
21
22#define WIDTH 300
23#define HEIGHT 300
24
25#define RECTW 30
26#define RECTH 30
27
28#define NRECTS 20
29
30static const char commands[] = \
31 "commands are:\n"
32 "\tDdown - set drag step to 1\n"
33 "\tUp - set drag step to -1\n"
34 "\tm - set drag value to 0.5\n"
35 "\tPrior - set drag page to -1\n"
36 "\tNext - set drag page to -1\n"
37 "\tEsc - exit\n"
38 "\th - print help\n";
39
40static const char *PARTNAME = "example/knob";
41
42static void
43_on_destroy(Ecore_Evas *ee __UNUSED__)
44{
45 ecore_main_loop_quit();
46}
47
48/* here just to keep our example's window size and background image's
49 * size in synchrony */
50static void
51_on_canvas_resize(Ecore_Evas *ee)
52{
53 Evas_Object *bg;
54 Evas_Object *edje_obj;
55 int w;
56 int h;
57
58 bg = ecore_evas_data_get(ee, "background");
59 edje_obj = ecore_evas_data_get(ee, "edje_obj");
60
61 ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
62 evas_object_resize(bg, w, h);
63 evas_object_resize(edje_obj, w, h);
64}
65
66static void
67_on_bg_key_down(void *data, Evas *e __UNUSED__, Evas_Object *o __UNUSED__, void *event_info)
68{
69 Ecore_Evas *ee;
70 Evas_Event_Key_Down *ev;
71 Evas_Object *edje_obj;
72
73 ee = (Ecore_Evas *)data;
74 ev = (Evas_Event_Key_Down *)event_info;
75 edje_obj = ecore_evas_data_get(ee, "edje_obj");
76
77 if (!strcmp(ev->keyname, "h"))
78 {
79 fprintf(stdout, commands);
80 return;
81 }
82 else if (!strcmp(ev->keyname, "Down"))
83 {
84 edje_object_part_drag_step(edje_obj, PARTNAME, 0, 1.0);
85 }
86 else if (!strcmp(ev->keyname, "Up"))
87 {
88 edje_object_part_drag_step(edje_obj, PARTNAME, 0, -1.0);
89 }
90 else if (!strcmp(ev->keyname, "m"))
91 {
92 edje_object_part_drag_value_set(edje_obj, PARTNAME, 0.0, 0.5);
93 }
94 else if (!strcmp(ev->keyname, "Prior"))
95 {
96 edje_object_part_drag_page(edje_obj, PARTNAME, 0.0, -1.0);
97 }
98 else if (!strcmp(ev->keyname, "Next"))
99 {
100 edje_object_part_drag_page(edje_obj, PARTNAME, 0.0, 1.0);
101 }
102 else if (!strcmp(ev->keyname, "Escape"))
103 ecore_main_loop_quit();
104 else
105 {
106 printf("unhandled key: %s\n", ev->keyname);
107 fprintf(stdout, commands);
108 }
109}
110
111static void
112_on_knob_moved(void *data __UNUSED__, Evas_Object *o, const char *emission __UNUSED__, const char *source __UNUSED__)
113{
114 double val;
115
116 edje_object_part_drag_value_get(o, PARTNAME, NULL, &val);
117 printf("value changed to: %0.3f\n", val);
118}
119
120int
121main(int argc __UNUSED__, char *argv[])
122{
123 char edje_file_path[PATH_MAX];
124 const char *edje_file = "drag.edj";
125 Ecore_Evas *ee;
126 Evas *evas;
127 Evas_Object *bg;
128 Evas_Object *edje_obj;
129 Eina_Prefix *pfx;
130
131 if (!ecore_evas_init())
132 return EXIT_FAILURE;
133
134 if (!edje_init())
135 goto shutdown_ecore_evas;
136
137 pfx = eina_prefix_new(argv[0], main,
138 "EDJE_EXAMPLES",
139 "edje/examples",
140 edje_file,
141 PACKAGE_BIN_DIR,
142 PACKAGE_LIB_DIR,
143 PACKAGE_DATA_DIR,
144 PACKAGE_DATA_DIR);
145 if (!pfx)
146 goto shutdown_edje;
147
148 /* this will give you a window with an Evas canvas under the first
149 * engine available */
150 ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
151 if (!ee)
152 goto free_prefix;
153
154 ecore_evas_callback_destroy_set(ee, _on_destroy);
155 ecore_evas_callback_resize_set(ee, _on_canvas_resize);
156 ecore_evas_title_set(ee, "Edje Box Example");
157
158 evas = ecore_evas_get(ee);
159
160 bg = evas_object_rectangle_add(evas);
161 evas_object_color_set(bg, 255, 255, 255, 255);
162 evas_object_resize(bg, WIDTH, HEIGHT);
163 evas_object_focus_set(bg, EINA_TRUE);
164 evas_object_show(bg);
165 ecore_evas_data_set(ee, "background", bg);
166
167 evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_bg_key_down, ee);
168
169 edje_obj = edje_object_add(evas);
170
171 snprintf(edje_file_path, sizeof(edje_file_path),
172 "%s/examples/%s", eina_prefix_data_get(pfx), edje_file);
173 edje_object_file_set(edje_obj, edje_file_path, "example/group");
174 evas_object_move(edje_obj, 0, 0);
175 evas_object_resize(edje_obj, WIDTH, HEIGHT);
176 evas_object_show(edje_obj);
177 ecore_evas_data_set(ee, "edje_obj", edje_obj);
178
179 edje_object_part_drag_size_set(edje_obj, PARTNAME, 1.0, 0.4);
180
181 if (!edje_object_part_drag_step_set(edje_obj, PARTNAME, 0.0, 0.1))
182 printf("error when setting drag step size.\n");
183
184 if (!edje_object_part_drag_page_set(edje_obj, PARTNAME, 0.0, 0.3))
185 printf("error when setting drag page step size.\n");
186
187 edje_object_signal_callback_add(edje_obj, "drag", PARTNAME, _on_knob_moved, NULL);
188
189 fprintf(stdout, commands);
190
191 ecore_evas_show(ee);
192
193 ecore_main_loop_begin();
194
195 eina_prefix_free(pfx);
196 ecore_evas_free(ee);
197 ecore_evas_shutdown();
198 edje_shutdown();
199
200 return EXIT_SUCCESS;
201
202 free_prefix:
203 eina_prefix_free(pfx);
204 shutdown_edje:
205 edje_shutdown();
206 shutdown_ecore_evas:
207 ecore_evas_shutdown();
208
209 return EXIT_FAILURE;
210}