--- /dev/null
+collections {
+ /* those 2 groups are used as custom icons for the buttons */
+ group { name: "icon_green";
+ parts {
+ part { name: "icon_green";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 255 0 255;
+ aspect: 1 1;
+ aspect_preference: VERTICAL;
+ }
+ }
+ }
+ }
+ group { name: "icon_red";
+ parts {
+ part { name: "icon_red";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 0 0 255;
+ aspect: 1 1;
+ aspect_preference: VERTICAL;
+ }
+ }
+ }
+ }
+
+ group { name: "main";
+ /* set a min window size */
+ min: 250 250;
+
+ /* tell edje that we are going to use elementary external parts */
+ externals {
+ external: "elm";
+ }
+
+ /* define global variables */
+ script {
+ public counter, toggle1, toggle2, toggle3, toggle4;
+ }
+
+ parts {
+ part { name: "bg";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part { name: "title";
+ type: TEXT;
+ effect: SOFT_SHADOW;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ color3: 70 70 70 70;
+ text {
+ text: "Elementary buttons";
+ font: "Sans";
+ size: 16;
+ align: 0.5 0.0;
+ }
+ }
+ }
+
+ /* bottom label used for reporting */
+ part { name: "label";
+ type: TEXT;
+ description { state: "default" 0.0;
+ color: 0 0 0 255;
+ text {
+ text: "try every buttons";
+ font: "Sans";
+ size: 12;
+ align: 0.5 1.0;
+ }
+ }
+ }
+
+ /* EXTERNAL elementary button with a label */
+ part { name: "bt1";
+ type: EXTERNAL;
+ source: "elm/button";
+ description { state: "default" 0;
+ rel1 {
+ offset: 5 35;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -6 60;
+ }
+ params {
+ string: "label" "Label only";
+ }
+ }
+ }
+
+ /* EXTERNAL elementary button with label + standard icon */
+ part { name: "bt2";
+ type: EXTERNAL;
+ source: "elm/button";
+ description { state: "default" 0;
+ rel1 {
+ to: "bt1";
+ relative: 0.0 1.0;
+ offset: 0 5;
+ }
+ rel2 {
+ to: "bt1";
+ relative: 1.0 2.0;
+ offset: -1 5;
+ }
+ params {
+ string: "label" "Label + standard icon";
+ string: "icon" "home";
+ }
+ }
+ }
+
+ /* EXTERNAL elementary button with a label and a custom icon */
+ part { name: "bt3";
+ type: EXTERNAL;
+ source: "elm/button";
+ description { state: "default" 0;
+ rel1 {
+ to: "bt2";
+ relative: 0.0 1.0;
+ offset: 0 5;
+ }
+ rel2 {
+ to: "bt2";
+ relative: 1.0 2.0;
+ offset: -1 5;
+ }
+ params {
+ string: "label" "Label + custom icon";
+ string: "icon" "icon_green";
+ }
+ }
+ }
+
+ /* EXTERNAL elementary button with just a standard icon */
+ part { name: "bt4";
+ type: EXTERNAL;
+ source: "elm/button";
+ description { state: "default" 0;
+ rel1 {
+ to: "bt3";
+ relative: 0.0 1.0;
+ offset: 0 5;
+ }
+ rel2 {
+ to: "bt3";
+ relative: 0.5 2.0;
+ offset: -6 5;
+ }
+ params {
+ string: "icon" "folder";
+ }
+ }
+ }
+
+ /* EXTERNAL elementary button with just a custom icon */
+ part { name: "bt5";
+ type: EXTERNAL;
+ source: "elm/button";
+ description { state: "default" 0;
+ rel1 {
+ to: "bt3";
+ relative: 0.5 1.0;
+ offset: 5 5;
+ }
+ rel2 {
+ to: "bt3";
+ relative: 1.0 2.0;
+ offset: 0 5;
+ }
+ params {
+ string: "icon" "icon_green";
+ }
+ }
+ }
+ }
+
+ programs {
+ /* bt1 clicked, change it's label and count the clicks */
+ program { name: "bt1_click";
+ signal: "clicked";
+ source: "bt1";
+ script {
+ new buf[32];
+ /* increment the global counter*/
+ set_int(counter, get_int(counter) + 1);
+ /* set the button label */
+ snprintf(buf, sizeof(buf), "Clicked %d times", get_int(counter));
+ external_param_set_str(PART:"bt1", "label", buf);
+ /* set the bottom label */
+ set_text(PART:"label", "button 1 clicked: set label");
+ }
+ }
+
+ /* bt2 clicked, toggle it's standard icon */
+ program { name: "bt2_click";
+ signal: "clicked";
+ source: "bt2";
+ script {
+ if (get_int(toggle1) == 0) {
+ external_param_set_str(PART:"bt2", "icon", "home");
+ set_int(toggle1, 1);
+ }
+ else {
+ external_param_set_str(PART:"bt2", "icon", "folder");
+ set_int(toggle1, 0);
+ }
+ set_text(PART:"label", "button 2 clicked: toggle icon");
+ }
+ }
+
+ /* bt3 clicked, toggle it's custom icon */
+ program { name: "bt3_click";
+ signal: "clicked";
+ source: "bt3";
+ script {
+ if (get_int(toggle2) == 0) {
+ external_param_set_str(PART:"bt3", "icon", "icon_red");
+ set_int(toggle2, 1);
+ }
+ else {
+ external_param_set_str(PART:"bt3", "icon", "icon_green");
+ set_int(toggle2, 0);
+ }
+ set_text(PART:"label", "button 3 clicked: toggle icon");
+ }
+ }
+
+ /* bt4 clicked, toggle it's icon */
+ program { name: "bt4_click";
+ signal: "clicked";
+ source: "bt4";
+ script {
+ if (get_int(toggle3) == 0) {
+ external_param_set_str(PART:"bt4", "icon", "home");
+ set_int(toggle3, 1);
+ }
+ else {
+ external_param_set_str(PART:"bt4", "icon", "folder");
+ set_int(toggle3, 0);
+ }
+ set_text(PART:"label", "button 4 clicked: toggle icon");
+ }
+ }
+
+ /* bt5 clicked, toggle it's icon */
+ program { name: "bt5_click";
+ signal: "clicked";
+ source: "bt5";
+ script {
+ if (get_int(toggle4) == 0) {
+ external_param_set_str(PART:"bt5", "icon", "icon_red");
+ set_int(toggle4, 1);
+ }
+ else {
+ external_param_set_str(PART:"bt5", "icon", "icon_green");
+ set_int(toggle4, 0);
+ }
+ set_text(PART:"label", "button 5 clicked: toggle icon");
+ }
+ }
+ }
+ }
+}