All pastes #1335142 Raw Edit

Mine

public text v1 · immutable
#1335142 ·published 2009-02-12 19:42 UTC
rendered paste body
Index: src/bin/eve_scrolled_webview.c
===================================================================
--- src/bin/eve_scrolled_webview.c	(revision 38990)
+++ src/bin/eve_scrolled_webview.c	(working copy)
@@ -76,44 +76,12 @@
 }
 
 static void
-_eve_scrolled_webview_scroll_report(Eve_Scrolled_Webview_Data *priv)
-{
-   Edje_Message_Float_Set *msg;
-   int cw, ch, sx, sy, sw, sh;
-
-   msg = alloca(sizeof(*msg) + 3 * sizeof(double));
-   msg->count = 4;
-
-   ewk_webframe_object_contents_size_get(priv->mainframe, &cw, &ch);
-   if ((cw <= 0) || (ch <= 0)) goto no_scrollbars;
-   ewk_webframe_object_scrollbar_max_get(priv->mainframe, &sw, &sh);
-   if ((sw <= 0) && (sh <= 0)) goto no_scrollbars;
-   ewk_webframe_object_scrollbar_value_get(priv->mainframe, &sx, &sy);
-
-   msg->val[0] = (sw > 0) ? (sx / (float)sw) : -1;
-   msg->val[1] = (sh > 0) ? (sy / (float)sh) : -1;
-   msg->val[2] = (cw - sw) / (float)cw;
-   msg->val[3] = (ch - sh) / (float)ch;
-
-   edje_object_message_send(priv->edje, EDJE_MESSAGE_FLOAT_SET, 0, msg);
-   return;
-
- no_scrollbars:
-   msg->val[0] = -1.0;
-   msg->val[1] = -1.0;
-   msg->val[2] = 1.0;
-   msg->val[3] = 1.0;
-   edje_object_message_send(priv->edje, EDJE_MESSAGE_FLOAT_SET, 0, msg);
-}
-
-static void
 _eve_scrolled_webview_scroll_by(Eve_Scrolled_Webview_Data *priv, int dx, int dy)
 {
    EWebKit_Hit_Test_Contents contents;
    Evas_Object *webframe = ewk_webpage_object_mainframe_get(priv->page);
    ewk_webframe_object_hit_test(webframe, &contents, priv->mouse_move.x, priv->mouse_move.y);
    ewk_webframe_object_scroll(contents.frame, dx, dy);
-   _eve_scrolled_webview_scroll_report(priv);
 }
 
 static int
@@ -465,10 +433,3 @@
    EVE_SCROLLED_WEBVIEW_DATA_GET_OR_RETURN_VAL(o, priv, NULL);
    return priv->page;
 }
-
-void
-eve_scrolled_webview_scroll_report(const Evas_Object *o)
-{
-   EVE_SCROLLED_WEBVIEW_DATA_GET_OR_RETURN(o, priv);
-   _eve_scrolled_webview_scroll_report(priv);
-}
Index: src/bin/eve_navigator.c
===================================================================
--- src/bin/eve_navigator.c	(revision 38990)
+++ src/bin/eve_navigator.c	(working copy)
@@ -125,7 +125,6 @@
    Edje_Message_Float msg;
    msg.val = ev->load_progress / 100.0;
    edje_object_message_send(priv->edje, EDJE_MESSAGE_FLOAT, 0, &msg);
-   eve_scrolled_webview_scroll_report(priv->scrolled);
 }
 
 static void
@@ -278,6 +277,8 @@
 
    edje_object_part_unswallow(priv->edje, priv->scrolled);
 
+   ewk_theme_set(priv->file);
+
    if (!edje_object_file_set(priv->edje, priv->file, priv->group))
      {
 	int error = edje_object_load_error_get(priv->edje);
Index: data/theme/b_and_w/b_and_w.edc
===================================================================
--- data/theme/b_and_w/b_and_w.edc	(revision 39002)
+++ data/theme/b_and_w/b_and_w.edc	(working copy)
@@ -1,14 +1,20 @@
 collections {
+//#include "webkit/widget/button/button.edc"
+//#include "webkit/widget/entry/entry.edc"
+//#include "webkit/widget/radio/radio.edc"
+//#include "webkit/widget/check/check.edc"
+#include "webkit/widget/scrollbar/scrollbar.edc"
+
    group {
       name: "eve.entry.selection.default";
       parts {
          part {
             name: "bg";
-	    type: RECT;
-	    mouse_events: 0;
-	    description {
+            type: RECT;
+            mouse_events: 0;
+            description {
                state: "default" 0.0;
-	       color: 200 200 200 255;
+               color: 200 200 200 255;
                rel1 {
                   relative: 0.0 0.0;
                   offset: -2 -2;
@@ -17,8 +23,8 @@
                   relative: 1.0 1.0;
                   offset: 1 1;
                }
-	    }
-	 }
+            }
+         }
       }
    }
 
@@ -545,91 +551,9 @@
       name: "eve.scrollframe";
 
       images {
-         image: "sb_runner_v.png" COMP;
-         image: "sb_runner_h.png" COMP;
-         image: "sb_knob.png" COMP;
-         image: "sb_hilight.png" COMP;
-         image: "sb_shine.png" COMP;
          image: "inset_sunk.png" COMP;
       }
 
-      script {
-         public hide_timer;
-
-         public hide_both() {
-	    run_program(PROGRAM:"eve,hide,horiz");
-	    run_program(PROGRAM:"eve,hide,vert");
-         }
-
-         public hide_horiz() {
-	    run_program(PROGRAM:"eve,hide,horiz");
-            set_state(PART:"rect.base", "vert", 0.0);
-         }
-
-         public hide_vert() {
-	    run_program(PROGRAM:"eve,hide,vert");
-            set_state(PART:"rect.base", "horiz", 0.0);
-         }
-
-	 public hide_timer_cb(val) {
-            hide_both();
-	    return 0;
-	 }
-
-	 public hide_timer_stop() {
-	    new id = get_int(hide_timer);
-	    if (id <= 0)
-	      return;
-
-	    cancel_timer(id);
-	    set_int(hide_timer, 0);
-	 }
-
-	 public hide_timer_start() {
-	    set_int(hide_timer, timer(1.0, "hide_timer_cb", 0));
-	 }
-
-	 public message(Msg_Type:type, id, ...) {
-	    if ((id == 0) && (type == MSG_FLOAT_SET)) {
-	       new Float:vx, Float:vy, Float:sx, Float:sy;
-               new hide;
-
-	       vx = getfarg(2);
-	       vy = getfarg(3);
-	       sx = getfarg(4);
-	       sy = getfarg(5);
-               hide = 0;
-
-	       if (vx >= 0.0) {
-		  set_drag_size(PART:"img.knob.horiz", sx, 1.0);
-		  set_drag(PART:"img.knob.horiz", vx, 0.0);
-		  run_program(PROGRAM:"eve,show,horiz");
-	       } else
-                  hide |= 1;
-
-	       if (vy >= 0.0) {
-		  set_drag_size(PART:"img.knob.vert", 1.0, sy);
-		  set_drag(PART:"img.knob.vert", 0.0, vy);
-		  run_program(PROGRAM:"eve,show,vert");
-	       } else
-                  hide |= 2;
-
-               if (hide == 3) {
-                  hide_both();
-                  return;
-               } else if (hide == 1)
-                  hide_horiz();
-               else if (hide == 2)
-                  hide_vert();
-               else
-                  set_state(PART:"rect.base", "default", 0.0);
-
-	       hide_timer_stop();
-	       hide_timer_start();
-	    }
-	 }
-      }
-
       parts {
          part {
             name: "eve.swallow.content";
@@ -648,345 +572,19 @@
          }
 
          part {
-            name: "rect.base";
-            type: RECT;
-            mouse_events: 0;
-            description {
-               state: "default" 0.0;
-               color: 0 0 0 0;
-               rel1 {
-                  relative: 1.0 1.0;
-                  offset: -16 -16;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -1 -1;
-               }
-            }
-            description {
-               state: "horiz" 0.0;
-               color: 0 0 0 0;
-               rel1 {
-                  relative: 1.0 1.0;
-                  offset: -8 -16;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -1 -1;
-               }
-            }
-            description {
-               state: "vert" 0.0;
-               color: 0 0 0 0;
-               rel1 {
-                  relative: 1.0 1.0;
-                  offset: -16 -8;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -1 -1;
-               }
-            }
-         }
-
-
-         part {
-            name: "rect.base.vert";
-            type: RECT;
-            mouse_events: 0;
-            description {
-               state: "default" 0.0;
-               color: 0 0 0 0;
-               rel1 {
-                  relative: 1.0 0.0;
-                  offset: -24 7;
-               }
-               rel2 {
-                  relative: 1.0 0.0;
-                  offset: -1 -1;
-                  to_y: "rect.base";
-               }
-            }
-         }
-
-         part {
-            name: "rect.clipper.vert";
-            type: RECT;
-            description {
-               state: "default" 0.0;
-               color: 255 255 255 255;
-               rel1.to: "rect.base.vert";
-               rel2.to: "rect.base.vert";
-            }
-            description {
-               state: "hidden" 0.0;
-               color: 255 255 255 0;
-               rel1.to: "rect.base.vert";
-               rel2.to: "rect.base.vert";
-            }
-         }
-
-         part {
-            name: "img.runner.vert";
-            type: IMAGE;
-            mouse_events: 0;
-            clip_to: "rect.clipper.vert";
-            description {
-               state: "default" 0.0;
-               min: 3 16;
-               max: 3 99999;
-               rel1 {
-                  relative: 1.0 0.0;
-                  offset: -12 7;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -10 -1;
-                  to_y: "rect.base.vert";
-               }
-               image.normal: "sb_runner_v.png";
-            }
-         }
-
-         part {
-            name: "img.knob.vert";
-            type: IMAGE;
-            mouse_events: 0;
-            clip_to: "rect.clipper.vert";
-	    dragable {
-	       x: 0 0 0;
-	       y: 1 1 0;
-	       confine: "rect.base.vert";
-	    }
-            description {
-               state: "default" 0.0;
-               min: 13 13;
-               max: 13 99999;
-               rel1 {
-                  relative: 1.0 0.0;
-                  offset: -17 7;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -5 -1;
-                  to_y: "rect.base.vert";
-               }
-               image {
-                  normal: "sb_knob.png";
-                  border: 6 6 6 6;
-               }
-            }
-         }
-
-	 part {
-            name: "img.highlight.vert";
-            type: IMAGE;
-	    mouse_events: 0;
-            clip_to: "rect.clipper.vert";
-	    description {
-               state: "default" 0.0;
-	       rel1.to: "img.knob.vert";
-	       rel2 {
-                  relative: 1.0 0.5;
-                  to: "img.knob.vert";
-               }
-	       image {
-		  normal: "sb_hilight.png";
-		  border: 6 6 6 0;
-	       }
-	    }
-	 }
-
-	 part {
-            name: "img.shine.vert";
-            type: IMAGE;
-	    mouse_events: 0;
-	    clip_to: "rect.clipper.vert";
-	    description {
-               state: "default" 0.0;
-	       rel1.to: "img.knob.vert";
-	       rel2.to: "img.knob.vert";
-	       image {
-		  normal: "sb_shine.png";
-		  border: 6 6 6 0;
-	       }
-	    }
-	 }
-
-
-         part {
-            name: "rect.base.horiz";
-            type: RECT;
-            mouse_events: 0;
-            description {
-               state: "default" 0.0;
-               color: 0 0 0 0;
-               rel1 {
-                  relative: 0.0 1.0;
-                  offset: 7 -24;
-               }
-               rel2 {
-                  relative: 0.0 1.0;
-                  offset: -1 -1;
-                  to_x: "rect.base";
-               }
-            }
-         }
-
-         part {
-            name: "rect.clipper.horiz";
-            type: RECT;
-            description {
-               state: "default" 0.0;
-               color: 255 255 255 255;
-               rel1.to: "rect.base.horiz";
-               rel2.to: "rect.base.horiz";
-            }
-            description {
-               state: "hidden" 0.0;
-               color: 255 255 255 0;
-               rel1.to: "rect.base.horiz";
-               rel2.to: "rect.base.horiz";
-            }
-         }
-
-         part {
-            name: "img.runner.horiz";
-            type: IMAGE;
-            mouse_events: 0;
-            clip_to: "rect.clipper.horiz";
-            description {
-               state: "default" 0.0;
-               min: 16 3;
-               max: 99999 3;
-               rel1 {
-                  relative: 0.0 1.0;
-                  offset: 7 -12;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -1 -10;
-                  to_x: "rect.base.horiz";
-               }
-               image.normal: "sb_runner_h.png";
-            }
-         }
-
-         part {
-            name: "img.knob.horiz";
-            type: IMAGE;
-            mouse_events: 0;
-            clip_to: "rect.clipper.horiz";
-	    dragable {
-	       x: 1 1 0;
-	       y: 0 0 0;
-	       confine: "rect.base.horiz";
-	    }
-            description {
-               state: "default" 0.0;
-               min: 13 13;
-               max: 99999 13;
-               rel1 {
-                  relative: 0.0 1.0;
-                  offset: 7 -17;
-               }
-               rel2 {
-                  relative: 1.0 1.0;
-                  offset: -1 -5;
-                  to_x: "rect.base.horiz";
-               }
-               image {
-                  normal: "sb_knob.png";
-                  border: 6 6 6 6;
-               }
-            }
-         }
-
-	 part {
-            name: "img.highlight.horiz";
-            type: IMAGE;
-	    mouse_events: 0;
-            clip_to: "rect.clipper.horiz";
-	    description {
-               state: "default" 0.0;
-	       rel1.to: "img.knob.horiz";
-	       rel2 {
-                  relative: 1.0 0.5;
-                  to: "img.knob.horiz";
-               }
-	       image {
-		  normal: "sb_hilight.png";
-		  border: 6 6 6 0;
-	       }
-	    }
-	 }
-
-	 part {
-            name: "img.shine.horiz";
-            type: IMAGE;
-	    mouse_events: 0;
-	    clip_to: "rect.clipper.horiz";
-	    description {
-               state: "default" 0.0;
-	       rel1.to: "img.knob.horiz";
-	       rel2.to: "img.knob.horiz";
-	       image {
-		  normal: "sb_shine.png";
-		  border: 6 6 6 0;
-	       }
-	    }
-	 }
-
-         part {
             name: "img.inset";
             type: IMAGE;
             mouse_events: 0;
             description {
                state: "default" 0.0;
                image {
-		  normal: "inset_sunk.png";
-		  border: 7 7 7 7;
-		  middle: 0;
+                  normal: "inset_sunk.png";
+                  border: 7 7 7 7;
+                  middle: 0;
                }
-	       fill.smooth : 0;
+               fill.smooth : 0;
             }
          }
-
-         programs {
-            program {
-               name: "load";
-               signal: "load";
-               action: STATE_SET "hidden" 0.0;
-               target: "rect.clipper.vert";
-               target: "rect.clipper.horiz";
-            }
-
-            program {
-               name: "eve,hide,vert";
-               action: STATE_SET "hidden" 0.0;
-               transition: ACCELERATE 0.5;
-               target: "rect.clipper.vert";
-            }
-
-            program {
-               name: "eve,show,vert";
-               action: STATE_SET "default" 0.0;
-               target: "rect.clipper.vert";
-            }
-
-            program {
-               name: "eve,hide,horiz";
-               action: STATE_SET "hidden" 0.0;
-               transition: ACCELERATE 0.5;
-               target: "rect.clipper.horiz";
-            }
-
-            program {
-               name: "eve,show,horiz";
-               action: STATE_SET "default" 0.0;
-               target: "rect.clipper.horiz";
-            }
-         }
       }
    }
 }
Index: data/theme/b_and_w/webkit/widget/entry/entry.edc
===================================================================
--- data/theme/b_and_w/webkit/widget/entry/entry.edc	(revision 0)
+++ data/theme/b_and_w/webkit/widget/entry/entry.edc	(revision 0)
@@ -0,0 +1,81 @@
+   group {
+      name: "webkit/widget/entry";
+
+      min: 89 25;
+      max: 9999 40;
+
+      images {
+         image: "widget/entry/img_normal.png" COMP;
+         image: "widget/entry/img_focused.png" COMP;
+      }
+
+      parts {
+         part {
+            name: "entry";
+            type: IMAGE;
+            description {
+               state: "default" 0.0;
+               min: 89 25;
+               rel1 {
+                  relative: 0.0 0.0;
+                  offset: 0 0;
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  offset: -1 -1;
+               }
+               image {
+                  normal: "widget/entry/img_normal.png";
+                  border: 10 10 10 10;
+               }
+            }
+            description {
+               state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description {
+               state: "focused" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/entry/img_focused.png";
+                  border: 10 10 10 10;
+               }
+            }
+         }
+      }
+
+      programs {
+         program {
+            name: "clicked";
+            signal: "mouse,clicked,1";
+            source: "entry";
+            action: SIGNAL_EMIT "mouse,clicked" "";
+         }
+
+         program {
+            name: "disabled";
+            signal: "disabled";
+            action: STATE_SET "disabled" 0.0;
+            target: "entry";
+         }
+
+         program {
+            name: "enabled";
+            signal: "enabled";
+            action: STATE_SET "default" 0.0;
+            target: "entry";
+         }
+         program {
+            name: "focus_in";
+            signal: "focus,in";
+            action: STATE_SET "focused" 0.0;
+            target: "entry";
+         }
+         program {
+            name: "focus_out";
+            signal: "focus,out";
+            action: STATE_SET "default" 0.0;
+            target: "entry";
+         }
+      }
+   }
Index: data/theme/b_and_w/webkit/widget/scrollbar/scrollbar.edc
===================================================================
--- data/theme/b_and_w/webkit/widget/scrollbar/scrollbar.edc	(revision 0)
+++ data/theme/b_and_w/webkit/widget/scrollbar/scrollbar.edc	(revision 0)
@@ -0,0 +1,319 @@
+group {
+    name: "scrollbar.vertical";
+
+    images {
+        image: "sb_knob.png" COMP;
+        image: "sb_hilight.png" COMP;
+        image: "sb_shine.png" COMP;
+    }
+
+    script {
+        public hide_timer;
+
+        public hide_timer_cb(val) {
+            run_program(PROGRAM:"hide");
+            return 0;
+        }
+
+        public hide_timer_stop() {
+            new id = get_int(hide_timer);
+            if (id <= 0)
+                return;
+
+            cancel_timer(id);
+            set_int(hide_timer, 0);
+        }
+
+        public hide_timer_start() {
+            set_int(hide_timer, timer(1.0, "hide_timer_cb", 0));
+        }
+
+        public message(Msg_Type:type, id, ...) {
+            if ((id == 0) && (type == MSG_FLOAT_SET)) {
+                new Float:vy, Float:sy;
+
+                vy = getfarg(2);
+                sy = getfarg(3);
+
+                if (vy >= 0.0) {
+                    set_drag_size(PART:"img.knob", 1.0, sy);
+                    set_drag(PART:"img.knob", 0.0, vy);
+                    run_program(PROGRAM:"show");
+                } else
+                    run_program(PROGRAM:"hide");
+
+                hide_timer_stop();
+                hide_timer_start();
+            }
+        }
+    }
+
+    parts {
+         part {
+            name: "rect.base";
+            type: RECT;
+            description {
+               min: 13 13;
+               state: "default" 0.0;
+               color: 255 255 255 0;
+            }
+         }
+         part {
+            name: "rect.clipper";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description {
+               state: "hidden" 0.0;
+               color: 255 255 255 0;
+            }
+         }
+
+         part {
+            name: "img.knob";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            dragable {
+                x: 0 0 0;
+                y: 1 1 0;
+                confine: "rect.base";
+            }
+            description {
+               state: "default" 0.0;
+               min: 13 13;
+               max: 13 99999;
+               rel1 {
+                  relative: 1.0 0.0;
+                  offset: -17 7;
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  offset: -5 -1;
+                  to_y: "rect.base";
+               }
+               image {
+                  normal: "sb_knob.png";
+                  border: 6 6 6 6;
+               }
+            }
+         }
+
+         part {
+            name: "img.highlight";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+               state: "default" 0.0;
+                rel1.to: "img.knob";
+                rel2 {
+                    relative: 1.0 0.5;
+                    to: "img.knob";
+                }
+                image {
+                    normal: "sb_hilight.png";
+                    border: 6 6 6 0;
+                }
+            }
+         }
+
+        part {
+            name: "img.shine";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+                state: "default" 0.0;
+                rel1.to: "img.knob";
+                rel2.to: "img.knob";
+                image {
+                    normal: "sb_shine.png";
+                    border: 6 6 6 0;
+                }
+            }
+        }
+    }
+    programs {
+        program {
+           name: "load";
+           signal: "load";
+           action: STATE_SET "hidden" 0.0;
+           target: "rect.clipper";
+        }
+        program {
+           name: "hide";
+           action: STATE_SET "hidden" 0.0;
+           transition: ACCELERATE 0.5;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "show";
+           action: STATE_SET "default" 0.0;
+           target: "rect.clipper";
+        }
+    }
+}
+
+group {
+    name: "scrollbar.horizontal";
+
+    images {
+        image: "sb_knob.png" COMP;
+        image: "sb_hilight.png" COMP;
+        image: "sb_shine.png" COMP;
+    }
+
+    script {
+        public hide_timer;
+
+        public hide_timer_cb(val) {
+            run_program(PROGRAM:"hide");
+            return 0;
+        }
+
+        public hide_timer_stop() {
+            new id = get_int(hide_timer);
+            if (id <= 0)
+                return;
+
+            cancel_timer(id);
+            set_int(hide_timer, 0);
+        }
+
+        public hide_timer_start() {
+            set_int(hide_timer, timer(1.0, "hide_timer_cb", 0));
+        }
+
+        public message(Msg_Type:type, id, ...) {
+            if ((id == 0) && (type == MSG_FLOAT_SET)) {
+                new Float:vx, Float:sx;
+
+                vx = getfarg(2);
+                sx = getfarg(3);
+
+                if (vx >= 0.0) {
+                    set_drag_size(PART:"img.knob", sx, 1.0);
+                    set_drag(PART:"img.knob", vx, 0.0);
+                    run_program(PROGRAM:"show");
+                } else
+                    run_program(PROGRAM:"hide");
+
+                hide_timer_stop();
+                hide_timer_start();
+            }
+        }
+    }
+
+    parts {
+         part {
+            name: "rect.base";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               min: 13 13;
+               color: 255 255 255 0;
+            }
+         }
+         part {
+            name: "rect.clipper";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description {
+               state: "hidden" 0.0;
+               color: 255 255 255 0;
+            }
+         }
+
+         part {
+            name: "img.knob";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            dragable {
+                x: 1 1 0;
+                y: 0 0 0;
+                confine: "rect.base";
+            }
+            description {
+               state: "default" 0.0;
+               min: 13 13;
+               max: 99999 13;
+               rel1 {
+                  relative: 1.0 0.0;
+                  offset: 7 -17;
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  offset: -1 -5;
+                  to_y: "rect.base";
+               }
+               image {
+                  normal: "sb_knob.png";
+                  border: 6 6 6 6;
+               }
+            }
+         }
+
+         part {
+            name: "img.highlight";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+               state: "default" 0.0;
+                rel1.to: "img.knob";
+                rel2 {
+                    relative: 1.0 0.5;
+                    to: "img.knob";
+                }
+                image {
+                    normal: "sb_hilight.png";
+                    border: 6 6 6 0;
+                }
+            }
+         }
+
+        part {
+            name: "img.shine";
+            type: IMAGE;
+            mouse_events: 0;
+            clip_to: "rect.clipper";
+            description {
+                state: "default" 0.0;
+                rel1.to: "img.knob";
+                rel2.to: "img.knob";
+                image {
+                    normal: "sb_shine.png";
+                    border: 6 6 6 0;
+                }
+            }
+        }
+    }
+    programs {
+        program {
+           name: "load";
+           signal: "load";
+           action: STATE_SET "hidden" 0.0;
+           target: "rect.clipper";
+        }
+        program {
+           name: "hide";
+           action: STATE_SET "hidden" 0.0;
+           transition: ACCELERATE 0.5;
+           target: "rect.clipper";
+        }
+
+        program {
+           name: "show";
+           action: STATE_SET "default" 0.0;
+           target: "rect.clipper";
+        }
+    }
+}
Index: data/theme/b_and_w/webkit/widget/button/button.edc
===================================================================
--- data/theme/b_and_w/webkit/widget/button/button.edc	(revision 0)
+++ data/theme/b_and_w/webkit/widget/button/button.edc	(revision 0)
@@ -0,0 +1,107 @@
+   group {
+      name: "webkit/widget/button";
+
+      images {
+         image: "widget/button/img_button_normal.png" COMP;
+         image: "widget/button/img_button_on_click.png" COMP;
+         image: "widget/button/img_button_on_hover.png" COMP;
+      }
+
+      parts {
+         part {
+            name: "button";
+            type: IMAGE;
+            description {
+               state: "default" 0.0;
+               image {
+                  normal: "widget/button/img_button_normal.png";
+                  border: 10 10 10 10;
+               }
+            }
+            description {
+               state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/button/img_button_on_click.png";
+                  border: 10 10 10 10;
+               }
+            }
+            description {
+               state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 150;
+            }
+            description {
+               state: "hovered" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/button/img_button_on_hover.png";
+                  border: 10 10 10 10;
+               }
+            }
+            /*description {
+               state: "focused" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/button/img_button_on_focus.png";
+                  border: 10 10 10 10;
+               }
+            }*/
+         }
+      }
+
+      programs {
+         program {
+            name: "pressed";
+            signal: "pressed";
+            source: "button";
+            action: STATE_SET "pressed" 0.0;
+            target: "button";
+            after: "mouse_down_signal";
+         }
+         program {
+            name: "mouse_down_signal";
+            action: SIGNAL_EMIT "mouse,pressed" "";
+         }
+         program {
+            name: "mouse_up";
+            signal: "mouse,up";
+            source: "button";
+            action: STATE_SET "default" 0.0;
+            target: "button";
+         }
+         program {
+            name: "disabled";
+            signal: "disabled";
+            source: "button";
+            action: STATE_SET "disabled" 0.0;
+            target: "button";
+         }
+         program {
+            name: "enabled";
+            signal: "enabled";
+            source: "button";
+            action: STATE_SET "default" 0.0;
+            target: "button";
+         }
+        program {
+            name: "hovered";
+            signal: "hovered";
+            source: "button";
+            action: STATE_SET "hovered" 0.0;
+            target: "button";
+         }
+         /*program {
+            name: "focus_in";
+            signal: "focus_in";
+            action: STATE_SET "focused" 0.0;
+            target: "button";
+         }
+         program {
+            name: "focus_out";
+            signal: "focus_out";
+            action: STATE_SET "default" 0.0;
+            target: "button";
+         }*/
+      }
+   }
Index: data/theme/b_and_w/webkit/widget/check/check.edc
===================================================================
--- data/theme/b_and_w/webkit/widget/check/check.edc	(revision 0)
+++ data/theme/b_and_w/webkit/widget/check/check.edc	(revision 0)
@@ -0,0 +1,72 @@
+   group {
+      name: "webkit/widget/checkbox";
+
+      images {
+         image: "widget/check/img_check_on.png" COMP;
+         image: "widget/check/img_check_off.png" COMP;
+         image: "widget/check/img_check_on_hover.png" COMP;
+      }
+
+      parts {
+         part {
+            name: "check_button";
+            type: IMAGE;
+            description {
+               state: "default" 0.0;
+               min: 12 12;
+               max: 12 12;
+               image {
+                  normal: "widget/check/img_check_off.png";
+               }
+            }
+            description {
+               state: "check_on" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/check/img_check_on.png";
+               }
+            }
+            description {
+               state: "disabled_on" 0.0;
+               inherit: "check_on" 0.0;
+               color: 255 255 255 150;
+            }
+            description {
+               state: "disabled_off" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 150;
+            }
+            description {
+               state: "hovered" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/check/img_check_on_hover.png";
+               }
+            }
+         }
+      }
+
+      programs {
+         program {
+            name: "selected";
+            signal: "selected";
+            source: "check_button";
+            action: STATE_SET "check_on" 0.0;
+            target: "check_button";
+         }
+        program {
+            name: "unselected";
+            signal: "unselected";
+            source: "check_button";
+            action: STATE_SET "default" 0.0;
+            target: "check_button";
+         }
+         program {
+            name: "hovered";
+            signal: "hovered";
+            source: "check_button";
+            action: STATE_SET "hovered" 0.0;
+            target: "check_button";
+         }
+      }
+   }
Index: data/theme/b_and_w/webkit/widget/radio/radio.edc
===================================================================
--- data/theme/b_and_w/webkit/widget/radio/radio.edc	(revision 0)
+++ data/theme/b_and_w/webkit/widget/radio/radio.edc	(revision 0)
@@ -0,0 +1,72 @@
+   group {
+      name: "webkit/widget/radio";
+
+      images {
+         image: "widget/radio/img_radio_on.png" COMP;
+         image: "widget/radio/img_radio_off.png" COMP;
+         image: "widget/radio/img_radio_on_hover.png" COMP;
+      }
+
+      parts {
+         part {
+            name: "radio_button";
+            type: IMAGE;
+            description {
+               state: "default" 0.0;
+               min: 12 12;
+               max: 12 12;
+               image {
+                  normal: "widget/radio/img_radio_off.png";
+               }
+            }
+            description {
+               state: "radio_on" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/radio/img_radio_on.png";
+               }
+            }
+            description {
+               state: "disabled_on" 0.0;
+               inherit: "radio_on" 0.0;
+               color: 255 255 255 150;
+            }
+            description {
+               state: "disabled_off" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 150;
+            }
+            description {
+               state: "hovered" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: "widget/radio/img_radio_on_hover.png";
+               }
+            }
+         }
+      }
+
+      programs {
+         program {
+            name: "selected";
+            signal: "selected";
+            source: "radio_button";
+            action: STATE_SET "radio_on" 0.0;
+            target: "radio_button";
+         }
+        program {
+            name: "unselected";
+            signal: "unselected";
+            source: "radio_button";
+            action: STATE_SET "default" 0.0;
+            target: "radio_button";
+         }
+         program {
+            name: "hovered";
+            signal: "hovered";
+            source: "radio_button";
+            action: STATE_SET "hovered" 0.0;
+            target: "radio_button";
+         }
+      }
+   }