diff options
| author | Ben Murdoch <benm@google.com> | 2010-05-11 18:35:50 +0100 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2010-05-14 10:23:05 +0100 |
| commit | 21939df44de1705786c545cd1bf519d47250322d (patch) | |
| tree | ef56c310f5c0cdc379c2abb2e212308a3281ce20 /WebKit/efl | |
| parent | 4ff1d8891d520763f17675827154340c7c740f90 (diff) | |
| download | external_webkit-21939df44de1705786c545cd1bf519d47250322d.zip external_webkit-21939df44de1705786c545cd1bf519d47250322d.tar.gz external_webkit-21939df44de1705786c545cd1bf519d47250322d.tar.bz2 | |
Merge Webkit at r58956: Initial merge by Git.
Change-Id: I1d9fb60ea2c3f2ddc04c17a871acdb39353be228
Diffstat (limited to 'WebKit/efl')
20 files changed, 2119 insertions, 139 deletions
diff --git a/WebKit/efl/DefaultTheme/default.edc b/WebKit/efl/DefaultTheme/default.edc new file mode 100644 index 0000000..7e0fe48 --- /dev/null +++ b/WebKit/efl/DefaultTheme/default.edc @@ -0,0 +1,76 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +color_classes { + color_class { + name: "webkit/selection/active"; + color: 255 255 255 255; /* foreground */ + color2: 32 0 200 255; /* background */ + } + color_class { + name: "webkit/selection/inactive"; + color: 255 255 255 255; /* foreground */ + color2: 128 0 255 128; /* background */ + } + color_class { + name: "webkit/focus_ring"; + color: 26 182 240 255; /* foreground */ + /* no background, consider transparent */ + } + color_class { + name: "webkit/button/text"; + color: 32 32 32 255; + /* no background, consider transparent */ + } + color_class { + name: "webkit/combo/text"; + color: 32 32 32 255; + /* no background, consider transparent */ + } + color_class { + name: "webkit/entry/text"; + color: 32 32 32 255; + /* no background, consider transparent */ + } + color_class { + name: "webkit/search/text"; + color: 32 32 32 255; + /* no background, consider transparent */ + } +} + +collections { + group { name: "webkit/base"; + /* specific colors and all, used to listen for color_class changes */ + } + +#include "widget/button/button.edc" +#include "widget/entry/entry.edc" +#include "widget/scrollbar/scrollbar.edc" +#include "widget/radio/radio.edc" +#include "widget/check/check.edc" +#include "widget/entry/entry.edc" +#include "widget/combo/combo.edc" +#include "widget/file/file.edc" +#include "widget/search/field/search_field.edc" +#include "widget/search/cancel/search_cancel.edc" +#include "widget/search/decoration/search_decoration.edc" +} diff --git a/WebKit/efl/DefaultTheme/widget/button/button.edc b/WebKit/efl/DefaultTheme/widget/button/button.edc new file mode 100644 index 0000000..603daa0 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/button/button.edc @@ -0,0 +1,176 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + + group { + name: "webkit/widget/button"; + + images { + image: "widget/button/img_button_normal.png" COMP; + image: "widget/button/img_button_press.png" COMP; + image: "widget/button/img_button_hover.png" COMP; + image: "widget/button/img_button_focus.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + + if (get_int(isEnabled) == 1) { + set_state(PART:"button", "default", 0.0); + if (get_int(isFocused) == 1) { + set_state(PART:"button", "focused", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"button", "pressed", 0.0); + } + else if (get_int(isHovered) == 1) { + set_state(PART:"button", "hovered", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"button", "pressed", 0.0); + + } + } + else + set_state(PART:"button", "disabled", 0.0); + } + } + + parts { + + part { + name: "button"; + type: IMAGE; + description { + state: "default" 0.0; + min: 25 10; + image { + normal: "widget/button/img_button_normal.png"; + border: 6 6 6 6; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/button/img_button_press.png"; + border: 8 8 8 8; + } + } + 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_hover.png"; + border: 6 6 6 6; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/button/img_button_focus.png"; + border: 6 6 6 6; + } + } + } + + part { + name: "text_confinement"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { + relative: 0.0 0.0; + offset: 10 5; + } + rel2 { + relative: 1.0 1.0; + offset: -11 -6; + } + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "checked"; + signal: "checked"; + script { + set_int(isChecked, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/DefaultTheme/widget/check/check.edc b/WebKit/efl/DefaultTheme/widget/check/check.edc new file mode 100644 index 0000000..86490f6 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/check/check.edc @@ -0,0 +1,181 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + + group { + + name: "webkit/widget/checkbox"; + min: 14 14; + + images { + image: "widget/check/img_check_on.png" COMP; + image: "widget/check/img_check_off.png" COMP; + image: "widget/check/img_check_off_focus.png" COMP; + image: "widget/check/img_check_on_focus.png" COMP; + image: "widget/check/img_check_off_hover.png" COMP; + image: "widget/check/img_check_on_hover.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"check_button", "default", 0.0); + if (get_int(isChecked) == 1) { + set_state(PART:"check_button", "enabled_checked", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"check_button", "focus_checked", 0.0); + if (get_int(isHovered) == 1 && get_int(isFocused) == 0) + set_state(PART:"check_button", "hovered_checked", 0.0); + } + else { + if (get_int(isFocused) == 1) + set_state(PART:"check_button", "focused", 0.0); + if (get_int(isHovered) == 1 && get_int(isFocused) == 0) + set_state(PART:"check_button", "hovered", 0.0); + } + } + else { + set_state(PART:"check_button", "disabled", 0.0); + if (get_int(isChecked) == 1) + set_state(PART:"check_button", "disabled_checked", 0.0); + } + } + } + + parts { + part { + name: "check_button"; + type: IMAGE; + description { + state: "default" 0.0; + min: 14 14; + max: 14 14; + image { + normal: "widget/check/img_check_off.png"; + } + } + description { + state: "enabled_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/check/img_check_on.png"; + } + } + description { + state: "disabled_checked" 0.0; + inherit: "enabled_checked" 0.0; + color: 255 255 255 150; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "hovered_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/check/img_check_on_hover.png"; + } + } + description { + state: "hovered" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/check/img_check_off_hover.png"; + } + } + description { + state: "focus_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/check/img_check_on_focus.png"; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/check/img_check_off_focus.png"; + } + } + } + } + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "checked"; + signal: "checked"; + script { + set_int(isChecked, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/DefaultTheme/widget/combo/combo.edc b/WebKit/efl/DefaultTheme/widget/combo/combo.edc new file mode 100644 index 0000000..9c436cc --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/combo/combo.edc @@ -0,0 +1,306 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "webkit/widget/combo"; + + images { + image: "widget/combo/combo_normal.png" COMP; + image: "widget/combo/combo_normal_button.png" COMP; + image: "widget/combo/combo_hover.png" COMP; + image: "widget/combo/combo_hover_button.png" COMP; + image: "widget/combo/combo_focus.png" COMP; + image: "widget/combo/combo_focus_button.png" COMP; + image: "widget/combo/combo_press.png" COMP; + image: "widget/combo/combo_press_button.png" COMP; + image: "widget/combo/icon.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"combo", "default", 0.0); + set_state(PART:"combo_button", "default", 0.0); + set_state(PART:"combo_button_icon", "default", 0.0); + if (get_int(isFocused) == 1) { + set_state(PART:"combo", "focused", 0.0); + set_state(PART:"combo_button", "focused", 0.0); + if (get_int(isPressed) == 1) { + set_state(PART:"combo", "pressed", 0.0); + set_state(PART:"combo_button", "pressed", 0.0); + } + } + else if (get_int(isHovered) == 1) { + set_state(PART:"combo", "hovered", 0.0); + set_state(PART:"combo_button", "hovered", 0.0); + if (get_int(isPressed) == 1) { + set_state(PART:"combo", "pressed", 0.0); + set_state(PART:"combo_button", "pressed", 0.0); + } + } + } + else { + set_state(PART:"combo", "disabled", 0.0); + set_state(PART:"combo_button", "disabled", 0.0); + set_state(PART:"combo_button_icon", "disabled", 0.0); + } + } + } + + parts { + part { + name: "clipper"; + type: RECT; + description { + min: 35 27; + state: "default" 0.0; + } + } + + part { + name: "combo_clipper"; + type: RECT; + clip_to: "clipper"; + description { + state: "default" 0.0; + rel1.to: "clipper"; + rel2 { + to: "clipper"; + offset: -32 -1; + } + } + } + + part { + name: "combo"; + type: IMAGE; + clip_to: "combo_clipper"; + description { + state: "default" 0.0; + min: 36 20; + image { + normal: "widget/combo/combo_normal.png"; + border: 7 7 7 7; + } + } + 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/combo/combo_hover.png"; + border: 7 7 7 7; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/combo/combo_focus.png"; + border: 7 7 7 7; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/combo/combo_press.png"; + border: 7 7 7 7; + } + } + } + + part { + name: "bt_combo_clipper"; + type: RECT; + clip_to: "clipper"; + description { + state: "default" 0.0; + rel1 { + to: "combo_clipper"; + relative: 1.0 0.0; + } + rel2 { + to: "clipper"; + relative: 1.0 1.0; + } + } + } + + part { + name: "combo_button"; + type: IMAGE; + clip_to: "bt_combo_clipper"; + description { + state: "default" 0.0; + min: 18 20; // 3 + 5 + image width (10), 5 + 5 + image height (10) + rel1.to: "bt_combo_clipper"; + image { + normal: "widget/combo/combo_normal_button.png"; + border: 3 5 5 5; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + rel1.to: "bt_combo_clipper"; + } + description { + state: "hovered" 0.0; + inherit: "default" 0.0; + rel1.to: "bt_combo_clipper"; + image { + normal: "widget/combo/combo_hover_button.png"; + border: 3 5 5 5; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + rel1.to: "bt_combo_clipper"; + image { + normal: "widget/combo/combo_focus_button.png"; + border: 6 7 7 7; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + rel1.to: "bt_combo_clipper"; + image { + normal: "widget/combo/combo_press_button.png"; + border: 6 8 8 8; + } + } + } + + + part { + name: "combo_button_icon"; + type: IMAGE; + clip_to: "bt_combo_clipper"; + description { + state: "default" 0.0; + min: 17 13; + max: 17 13; + color: 255 255 255 150; + rel1 { + to: "bt_combo_clipper"; + relative: 0.5 0.5; + offset: 0 1; + } + rel2 { + to: "bt_combo_clipper"; + relative: 0.5 0.5; + } + fixed: 1 1; + image { + normal: "widget/combo/icon.png"; + border: 5 5 0 0; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 50; + image { + normal: "widget/combo/icon.png"; + border: 5 5 0 0; + } + } + } + + part { + name: "text_confinement"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { + to: "combo_clipper"; + offset: 10 5; + } + rel2 { + to: "combo_clipper"; + offset: -6 -6; + } + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } +} diff --git a/WebKit/efl/DefaultTheme/widget/entry/entry.edc b/WebKit/efl/DefaultTheme/widget/entry/entry.edc new file mode 100644 index 0000000..613ee59 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/entry/entry.edc @@ -0,0 +1,167 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + + group { + name: "webkit/widget/entry"; + + images { + image: "widget/entry/img_normal.png" COMP; + image: "widget/entry/img_focused.png" COMP; + image: "widget/entry/img_hovered.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"entry", "default", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"entry", "pressed", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"entry", "focused", 0.0); + if (get_int(isHovered) == 1 && get_int(isFocused) == 0) + set_state(PART:"entry", "hovered", 0.0); + } + else + set_state(PART:"entry", "disabled", 0.0); + } + + } + + parts { + part { + name: "entry"; + type: IMAGE; + description { + state: "default" 0.0; + min: 14 14; + 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: 7 7 7 7; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/entry/img_focused.png"; + border: 7 7 7 7; + } + } + description { + state: "pressed" 0.0; + inherit: "focused" 0.0; + } + description { + state: "hovered" 0.0; + inherit: "focused" 0.0; + image { + normal: "widget/entry/img_hovered.png"; + border: 7 7 7 7; + } + } + } + + part { + name: "text_confinement"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.offset: 4 6; // <- 6 because of the blink cursor + rel2.offset: -4 -5; // <- due to the image + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "checked"; + signal: "checked"; + script { + set_int(isChecked, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/DefaultTheme/widget/file/file.edc b/WebKit/efl/DefaultTheme/widget/file/file.edc new file mode 100644 index 0000000..40afcc7 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/file/file.edc @@ -0,0 +1,148 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "webkit/widget/file"; + + images { + image: "widget/file/file_normal.png" COMP; + image: "widget/file/file_hover.png" COMP; + image: "widget/file/file_focus.png" COMP; + image: "widget/file/file_press.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"file", "default", 0.0); + if (get_int(isFocused) == 1) { + set_state(PART:"file", "focused", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"file", "pressed", 0.0); + } + else if (get_int(isHovered) == 1) { + set_state(PART:"file", "hovered", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"file", "pressed", 0.0); + + } + } + else + set_state(PART:"file", "disabled", 0.0); + } + } + + parts { + part { + name: "file"; + type: IMAGE; + description { + state: "default" 0.0; + image { + normal: "widget/file/file_normal.png"; + border: 8 8 8 8; + } + } + 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/file/file_hover.png"; + border: 8 8 8 8; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/file/file_focus.png"; + border: 8 8 8 8; + } + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/file/file_press.png"; + border: 8 8 8 8; + } + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/DefaultTheme/widget/radio/radio.edc b/WebKit/efl/DefaultTheme/widget/radio/radio.edc new file mode 100644 index 0000000..38a6da9 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/radio/radio.edc @@ -0,0 +1,181 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + + group { + name: "webkit/widget/radio"; + min: 16 16; + + images { + image: "widget/radio/img_radio_on.png" COMP; + image: "widget/radio/img_radio_off.png" COMP; + image: "widget/radio/img_radio_on_focus.png" COMP; + image: "widget/radio/img_radio_off_focus.png" COMP; + image: "widget/radio/img_radio_on_hover.png" COMP; + image: "widget/radio/img_radio_off_hover.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"radio_button", "default", 0.0); + if (get_int(isChecked) == 1) { + set_state(PART:"radio_button", "enabled_checked", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"radio_button", "focus_checked", 0.0); + if (get_int(isHovered) == 1 && get_int(isFocused) == 0) + set_state(PART:"radio_button", "hovered_checked", 0.0); + } + else { + if (get_int(isFocused) == 1) + set_state(PART:"radio_button", "focused", 0.0); + if (get_int(isHovered) == 1 && get_int(isFocused) == 0) + set_state(PART:"radio_button", "hovered", 0.0); + } + } + else { + set_state(PART:"radio_button", "disabled", 0.0); + if (get_int(isChecked) == 1) + set_state(PART:"radio_button", "disabled_checked", 0.0); + } + } + } + + parts { + part { + name: "radio_button"; + type: IMAGE; + description { + state: "default" 0.0; + min: 16 16; + max: 16 16; + image { + normal: "widget/radio/img_radio_off.png"; + } + } + description { + state: "enabled_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/radio/img_radio_on.png"; + } + } + description { + state: "disabled_checked" 0.0; + inherit: "enabled_checked" 0.0; + color: 255 255 255 150; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "hovered_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/radio/img_radio_on_hover.png"; + } + } + description { + state: "hovered" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/radio/img_radio_off_hover.png"; + } + } + description { + state: "focus_checked" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/radio/img_radio_on_focus.png"; + } + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/radio/img_radio_off_focus.png"; + } + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "checked"; + signal: "checked"; + script { + set_int(isChecked, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc b/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc new file mode 100644 index 0000000..4f59784 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc @@ -0,0 +1,317 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "scrollbar.vertical"; + + min: 10 0; /* if > 0, this is the minimum size that will be allocated. + * If wants to draw on top, just overflow usign edje's rel1/rel2 + */ + + images { + image: "widget/scrollbar/scrollbar_v.png" COMP; + image: "widget/scrollbar/scrollbar_knob_v.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(); + } + } + + public update_drag_pos() { + new Float:x, Float:y; + get_drag(PART:"img.knob", x, y); + send_message(MSG_FLOAT, 1, y); + } + } + + parts { + part { + name: "rect.base"; + type: RECT; + description { + min: 10 0; + max: 10 999999; + 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 128; + } + } + + part { + name: "img.scrollbar"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + description { + state: "default" 0.0; + image { + normal: "widget/scrollbar/scrollbar_v.png"; + border: 0 0 6 6; + } + } + } + + part { + name: "img.knob"; + type: IMAGE; + mouse_events: 1; + clip_to: "rect.clipper"; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "rect.base"; + } + description { + state: "default" 0.0; + min: 10 10; + max: 10 999999; + image { + normal: "widget/scrollbar/scrollbar_knob_v.png"; + border: 0 0 6 6; + } + } + } + } + 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"; + } + + program { + name: "dragged"; + signal: "drag"; + source: "img.knob"; + script { + update_drag_pos(); + } + } + } +} + +group { + name: "scrollbar.horizontal"; + + min: 0 10; /* if > 0, this is the minimum size that will be allocated. + * If wants to draw on top, just overflow usign edje's rel1/rel2 + */ + + images { + image: "widget/scrollbar/scrollbar_h.png" COMP; + image: "widget/scrollbar/scrollbar_knob_h.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(); + } + } + + public update_drag_pos() { + new Float:x, Float:y; + get_drag(PART:"img.knob", x, y); + send_message(MSG_FLOAT, 1, x); + } + } + + parts { + part { + name: "rect.base"; + type: RECT; + description { + state: "default" 0.0; + min: 0 10; + max: 999999 10; + 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 128; + } + } + + part { + name: "img.scrollbar"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + description { + state: "default" 0.0; + image { + normal: "widget/scrollbar/scrollbar_h.png"; + border: 6 6 0 0; + } + } + } + + part { + name: "img.knob"; + type: IMAGE; + mouse_events: 1; + clip_to: "rect.clipper"; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "rect.base"; + } + description { + state: "default" 0.0; + min: 10 10; + image { + normal: "widget/scrollbar/scrollbar_knob_h.png"; + border: 6 6 0 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"; + } + + program { + name: "dragged"; + signal: "drag"; + source: "img.knob"; + script { + update_drag_pos(); + } + } + } +} diff --git a/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc b/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc new file mode 100644 index 0000000..d4a1a20 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc @@ -0,0 +1,131 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "webkit/widget/search/cancel_button"; + alias: "webkit/widget/search/results_button"; // TODO + + images { + image: "widget/search/cancel/cancel_normal_button2.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"cancel_button", "default", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"cancel_button", "focused", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"cancel_button", "pressed", 0.0); + if (get_int(isHovered) == 1) + set_state(PART:"cancel_button", "hovered", 0.0); + } + else + set_state(PART:"cancel_button", "disabled", 0.0); + } + } + + parts { + part { + name: "cancel_button"; + type: IMAGE; + description { + state: "default" 0.0; + min: 21 20; + rel1.offset: 0 -6; + rel2.offset: -1 0; + image { + normal: "widget/search/cancel/cancel_normal_button2.png"; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "hovered" 0.0; + inherit: "default" 0.0; + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } +} diff --git a/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc b/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc new file mode 100644 index 0000000..4159138 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc @@ -0,0 +1,132 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "webkit/widget/search/decoration"; + alias: "webkit/widget/search/results_decoration"; //TODO + + images { + image: "widget/search/decoration/decoration_normal_button.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"decoration", "default", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"decoration", "focused", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"decoration", "pressed", 0.0); + if (get_int(isHovered) == 1) + set_state(PART:"decoration", "hovered", 0.0); + } + else + set_state(PART:"decoration", "disabled", 0.0); + } + } + + parts { + part { + name: "decoration"; + type: IMAGE; + description { + state: "default" 0.0; + min: 20 20; + rel1.offset: 0 -4; + rel2.offset: -1 0; + image { + normal: "widget/search/decoration/decoration_normal_button.png"; + border: 0 0 8 8; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "hovered" 0.0; + inherit: "default" 0.0; + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } +} diff --git a/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc b/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc new file mode 100644 index 0000000..e9be229 --- /dev/null +++ b/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc @@ -0,0 +1,151 @@ +/* + Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia + Copyright (C) 2009,2010 ProFUSION embedded systems + Copyright (C) 2009,2010 Samsung Electronics + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +group { + name: "webkit/widget/search/field"; + + images { + image: "widget/search/field/field_normal.png" COMP; + image: "widget/search/field/field_focused.png" COMP; + image: "widget/search/field/field_hovered.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isChecked; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"search_field", "default", 0.0); + if (get_int(isFocused) == 1) + set_state(PART:"search_field", "focused", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"search_field", "pressed", 0.0); + if (get_int(isFocused) == 0 && get_int(isHovered) == 1) + set_state(PART:"search_field", "hovered", 0.0); + } + else + set_state(PART:"search_field", "disabled", 0.0); + } + } + + parts { + part { + name: "search_field"; + type: IMAGE; + description { + state: "default" 0.0; + min: 89 20; + image { + normal: "widget/search/field/field_normal.png"; + border: 8 8 8 8; + } + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 150; + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + image { + normal: "widget/search/field/field_focused.png"; + border: 8 8 8 8; + } + } + description { + state: "hovered" 0.0; + inherit: "focused" 0.0; + image { + normal: "widget/search/field/field_hovered.png"; + border: 8 8 8 8; + } + } + description { + state: "pressed" 0.0; + inherit: "focused" 0.0; + } + } + + part { + name: "text_confinement"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.offset: 4 6; // <- 6 because of the blink cursor + rel2.offset: -4 -5; // <- due to the image + } + } + + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isChecked, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); + } + } + } + } diff --git a/WebKit/efl/EWebLauncher/main.c b/WebKit/efl/EWebLauncher/main.c index 6a9e4fb..b0c64bf 100644 --- a/WebKit/efl/EWebLauncher/main.c +++ b/WebKit/efl/EWebLauncher/main.c @@ -31,7 +31,6 @@ #include <ctype.h> #include <Ecore.h> -#include <Ecore_Data.h> #include <Ecore_Evas.h> #include <Ecore_File.h> #include <Ecore_Getopt.h> @@ -42,6 +41,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/stat.h> #include <sys/types.h> #include <unistd.h> @@ -54,8 +54,6 @@ printf(format, ##args); \ } while (0) -#define REL_THEME_PATH "../../../WebKit/efl/DefaultTheme/default.edj" - #define MIN_ZOOM_LEVEL 0 #define DEFAULT_ZOOM_LEVEL 5 #define MAX_ZOOM_LEVEL 13 @@ -136,11 +134,11 @@ typedef struct _ELauncher { const char *userAgent; } ELauncher; -void browserDestroy(Ecore_Evas *ee); -void closeWindow(Ecore_Evas *ee); -int browserCreate(const char *url, const char *theme, const char *userAgent, Eina_Rectangle geometry, const char *engine, unsigned char isFullscreen); +static void browserDestroy(Ecore_Evas *ee); +static void closeWindow(Ecore_Evas *ee); +static int browserCreate(const char *url, const char *theme, const char *userAgent, Eina_Rectangle geometry, const char *engine, unsigned char isFullscreen); -void +static void print_history(Eina_List *list) { Eina_List *l; @@ -173,7 +171,7 @@ print_history(Eina_List *list) } } -void +static void zoom_level_set(Evas_Object *webview, int level) { float factor = ((float) zoomLevels[level]) / 100.0; @@ -185,53 +183,6 @@ zoom_level_set(Evas_Object *webview, int level) ewk_view_zoom_animated_set(webview, factor, 0.5, cx, cy); } -char* -join_path(const char *base, const char *path) -{ - char separator[] = "/"; - - char tmp[PATH_MAX + 1]; - char result[PATH_MAX + 1]; - result[0] = tmp[0] = '\0'; - - char *str = strdup(path); - - char *token = NULL; - token = strtok(str, separator); - int count = 0; - do { - if (!strcmp(token, "..")) - count++; - else - strcat(tmp, token); - token = strtok(NULL, separator); - if (!token) - break; - if (tmp[0]) - strcat(tmp, separator); - } while (EINA_TRUE); - - free(str); - str = strdup(base); - - char *base_ptr; - while (count--) { - base_ptr = strrchr(str, separator[0]); - if (!base_ptr) { - free(str); - return NULL; // couldn't resolve path - } - *base_ptr = '\0'; - } - - strcat(result, str); - strcat(result, separator); - strcat(result, tmp); - free(str); - - return strdup(result); -} - static void on_ecore_evas_resize(Ecore_Evas *ee) { @@ -394,7 +345,7 @@ on_tooltip_text_set(void* user_data, Evas_Object* webview, void* event_info) info("%s\n", text); } -void +static void on_mouse_down(void* data, Evas* e, Evas_Object* webview, void* event_info) { Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down*) event_info; @@ -402,19 +353,19 @@ on_mouse_down(void* data, Evas* e, Evas_Object* webview, void* event_info) evas_object_focus_set(webview, !evas_object_focus_get(webview)); } -void +static void on_focus_out(void *data, Evas *e, Evas_Object *obj, void *event_info) { info("the webview lost keyboard focus\n"); } -void +static void on_focus_in(void *data, Evas *e, Evas_Object *obj, void *event_info) { info("the webview gained keyboard focus\n"); } -void +static void on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Coord w, h; @@ -422,7 +373,7 @@ on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) ewk_view_fixed_layout_size_set(obj, w, h); } -void +static void on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Key_Down *ev = (Evas_Event_Key_Down*) event_info; @@ -530,7 +481,7 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) } } -void +static void on_browser_del(void *data, Evas *evas, Evas_Object *browser, void *event) { ELauncher *app = (ELauncher*) data; @@ -542,13 +493,13 @@ on_browser_del(void *data, Evas *evas, Evas_Object *browser, void *event) evas_object_event_callback_del(app->browser, EVAS_CALLBACK_DEL, on_browser_del); } -void +static void on_closeWindow(Ecore_Evas *ee) { browserDestroy(ee); } -int +static int quit(Eina_Bool success, const char *msg) { edje_shutdown(); @@ -565,7 +516,7 @@ quit(Eina_Bool success, const char *msg) return EXIT_SUCCESS; } -int +static int browserCreate(const char *url, const char *theme, const char *userAgent, Eina_Rectangle geometry, const char *engine, unsigned char isFullscreen) { if ((geometry.w <= 0) && (geometry.h <= 0)) { @@ -653,7 +604,7 @@ browserCreate(const char *url, const char *theme, const char *userAgent, Eina_Re return 1; } -void +static void browserDestroy(Ecore_Evas *ee) { ecore_evas_free(ee); @@ -661,7 +612,7 @@ browserDestroy(Ecore_Evas *ee) ecore_main_loop_quit(); } -void +static void closeWindow(Ecore_Evas *ee) { Eina_List *l; @@ -690,6 +641,29 @@ main_signal_exit(void *data, int ev_type, void *ev) return 1; } +static char * +findThemePath(void) +{ + const char **itr, *locations[] = { + "./default.edj", + "./WebKit/efl/DefaultTheme/default.edj", + "../WebKit/efl/DefaultTheme/default.edj", + DATA_DIR"/themes/default.edj", + NULL + }; + + for (itr = locations; *itr; itr++) { + struct stat st; + if (!stat(*itr, &st)) { + char path[PATH_MAX]; + if (realpath(*itr, path)) + return strdup(path); + } + } + + return NULL; +} + int main(int argc, char *argv[]) { @@ -750,7 +724,7 @@ main(int argc, char *argv[]) if (sudoWorkaround) strcat(getenv("HOME"), "blah"); - themePath = join_path(argv[0], REL_THEME_PATH); + themePath = findThemePath(); ewk_init(); tmp = getenv("TMPDIR"); diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index 1174f83..31b53c8 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -49,7 +49,7 @@ using namespace WebCore; -static inline Evas_Object* kit(WebCore::Frame* frame) +static inline Evas_Object* kit(Frame* frame) { if (!frame) return 0; @@ -60,7 +60,7 @@ static inline Evas_Object* kit(WebCore::Frame* frame) namespace WebCore { -ChromeClientEfl::ChromeClientEfl(Evas_Object *view) +ChromeClientEfl::ChromeClientEfl(Evas_Object* view) : m_view(view) { } @@ -213,7 +213,7 @@ bool ChromeClientEfl::canRunBeforeUnloadConfirmPanel() return true; } -bool ChromeClientEfl::runBeforeUnloadConfirmPanel(const String& message, WebCore::Frame* frame) +bool ChromeClientEfl::runBeforeUnloadConfirmPanel(const String& message, Frame* frame) { return runJavaScriptConfirm(frame, message); } @@ -274,31 +274,11 @@ IntRect ChromeClientEfl::windowResizerRect() const return IntRect(); } -void ChromeClientEfl::repaint(const IntRect& windowRect, bool contentChanged, bool immediate, bool repaintContentOnly) -{ - Evas_Coord x, y, w, h; - - if (!contentChanged) - return; - - x = windowRect.x(); - y = windowRect.y(); - w = windowRect.width(); - h = windowRect.height(); - ewk_view_repaint(m_view, x, y, w, h); -} - void ChromeClientEfl::contentsSizeChanged(Frame* frame, const IntSize& size) const { ewk_frame_contents_size_changed(kit(frame), size.width(), size.height()); } -bool ChromeClientEfl::scroll(const IntSize& delta, const IntRect& scrollViewRect, const IntRect& clipRect, bool canBlit, bool isMainFrame) -{ - ewk_view_scroll(m_view, delta.width(), delta.height(), scrollViewRect.x(), scrollViewRect.y(), scrollViewRect.width(), scrollViewRect.height(), clipRect.x(), clipRect.y(), clipRect.width(), clipRect.height(), isMainFrame); - return canBlit; -} - IntRect ChromeClientEfl::windowToScreen(const IntRect& rect) const { notImplemented(); @@ -327,7 +307,7 @@ void ChromeClientEfl::mouseDidMoveOverElement(const HitTestResult& hit, unsigned if (isLink) { KURL url = hit.absoluteLinkURL(); if (!url.isEmpty() && url != m_hoveredLinkURL) { - const char *link[2]; + const char* link[2]; TextDirection dir; CString urlStr = url.prettyURL().utf8(); CString titleStr = hit.title(dir).utf8(); @@ -370,7 +350,7 @@ void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& database ewk_view_exceeded_database_quota(m_view, kit(frame), databaseName.utf8().data()); } -void ChromeClientEfl::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser) +void ChromeClientEfl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser) { notImplemented(); } @@ -392,4 +372,60 @@ void ChromeClientEfl::requestGeolocationPermissionForFrame(Frame*, Geolocation*) notImplemented(); } +void ChromeClientEfl::cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) +{ + notImplemented(); +} + +void ChromeClientEfl::cancelGeolocationPermissionForFrame(Frame*, Geolocation*) +{ + notImplemented(); +} + +void ChromeClientEfl::invalidateContents(const IntRect& updateRect, bool immediate) +{ + notImplemented(); +} + +void ChromeClientEfl::invalidateWindow(const IntRect& updateRect, bool immediate) +{ + notImplemented(); +} + +void ChromeClientEfl::invalidateContentsAndWindow(const IntRect& updateRect, bool immediate) +{ + Evas_Coord x, y, w, h; + + x = updateRect.x(); + y = updateRect.y(); + w = updateRect.width(); + h = updateRect.height(); + ewk_view_repaint(m_view, x, y, w, h); +} + +void ChromeClientEfl::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate) +{ + invalidateContentsAndWindow(updateRect, immediate); +} + +void ChromeClientEfl::scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect) +{ + ewk_view_scroll(m_view, scrollDelta.width(), scrollDelta.height(), rectToScroll.x(), rectToScroll.y(), rectToScroll.width(), rectToScroll.height(), clipRect.x(), clipRect.y(), clipRect.width(), clipRect.height(), EINA_TRUE); +} + +void ChromeClientEfl::cancelGeolocationPermissionRequestForFrame(Frame*) +{ + notImplemented(); +} + +void ChromeClientEfl::iconForFiles(const Vector<String, 0u>&, PassRefPtr<FileChooser>) +{ + notImplemented(); +} + +void ChromeClientEfl::chooseIconForFiles(const Vector<String>&, FileChooser*) +{ + notImplemented(); +} + } diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 0e17806..8df8483 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -31,7 +31,7 @@ namespace WebCore { class ChromeClientEfl : public ChromeClient { public: - explicit ChromeClientEfl(Evas_Object *view); + explicit ChromeClientEfl(Evas_Object* view); virtual ~ChromeClientEfl(); virtual void chromeDestroyed(); @@ -49,7 +49,7 @@ public: virtual bool canTakeFocus(FocusDirection); virtual void takeFocus(FocusDirection); - virtual void focusedNodeChanged(WebCore::Node*); + virtual void focusedNodeChanged(Node*); virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&); virtual void show(); @@ -88,9 +88,7 @@ public: virtual IntRect windowResizerRect() const; - virtual void repaint(const IntRect&, bool contentChanged, bool immediate = false, bool repaintContentOnly = false); virtual void contentsSizeChanged(Frame*, const IntSize&) const; - virtual bool scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect, bool canBlit, bool isMainFrame); virtual IntPoint screenToWindow(const IntPoint&) const; virtual IntRect windowToScreen(const IntRect&) const; virtual PlatformPageClient platformPageClient() const; @@ -111,6 +109,7 @@ public: #endif virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); + virtual void chooseIconForFiles(const Vector<String>&, FileChooser*); virtual void formStateDidChange(const Node*); virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() { return 0; } @@ -120,8 +119,18 @@ public: virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*); - - Evas_Object *m_view; + virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*); + virtual void cancelGeolocationPermissionForFrame(Frame*, Geolocation*); + + virtual void invalidateContents(const IntRect&, bool); + virtual void invalidateWindow(const IntRect&, bool); + virtual void invalidateContentsAndWindow(const IntRect&, bool); + virtual void invalidateContentsForSlowScroll(const IntRect&, bool); + virtual void scroll(const IntSize&, const IntRect&, const IntRect&); + virtual void cancelGeolocationPermissionRequestForFrame(Frame*); + virtual void iconForFiles(const Vector<String, 0u>&, PassRefPtr<FileChooser>); + + Evas_Object* m_view; KURL m_hoveredLinkURL; }; } diff --git a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp index 8a7fd2d..2358fab 100644 --- a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp @@ -188,7 +188,7 @@ void FrameLoaderClientEfl::committedLoad(DocumentLoader* loader, const char* dat FrameLoader* fl = loader->frameLoader(); if (m_firstData) { - fl->setEncoding(m_response.textEncodingName(), false); + fl->writer()->setEncoding(m_response.textEncodingName(), false); m_firstData = false; } fl->addData(data, length); @@ -666,7 +666,7 @@ void FrameLoaderClientEfl::finishedLoading(DocumentLoader* loader) if (!m_pluginView) { if (m_firstData) { FrameLoader* fl = loader->frameLoader(); - fl->setEncoding(m_response.textEncodingName(), false); + fl->writer()->setEncoding(m_response.textEncodingName(), false); m_firstData = false; } } else { @@ -711,7 +711,7 @@ void FrameLoaderClientEfl::dispatchDidFailLoading(DocumentLoader* loader, unsign { if (m_firstData) { FrameLoader* fl = loader->frameLoader(); - fl->setEncoding(m_response.textEncodingName(), false); + fl->writer()->setEncoding(m_response.textEncodingName(), false); m_firstData = false; } @@ -829,7 +829,7 @@ void FrameLoaderClientEfl::setMainDocumentError(DocumentLoader* loader, const Re { if (!m_pluginView) { if (m_firstData) { - loader->frameLoader()->setEncoding(m_response.textEncodingName(), false); + loader->frameLoader()->writer()->setEncoding(m_response.textEncodingName(), false); m_firstData = false; } } else { diff --git a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h index 47b5621..581ec85 100644 --- a/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h +++ b/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h @@ -121,6 +121,7 @@ class FrameLoaderClientEfl : public FrameLoaderClient { virtual void dispatchUnableToImplementPolicy(const ResourceError&); + virtual void dispatchWillSendSubmitEvent(HTMLFormElement*) { } virtual void dispatchWillSubmitForm(FramePolicyFunction, WTF::PassRefPtr<FormState>); virtual void dispatchDidLoadMainResource(DocumentLoader*); diff --git a/WebKit/efl/ewebkit.pc.in b/WebKit/efl/ewebkit.pc.in index 24f66e8..f58e5bf 100644 --- a/WebKit/efl/ewebkit.pc.in +++ b/WebKit/efl/ewebkit.pc.in @@ -1,11 +1,11 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include Name: WebKit-EFL Description: Web content engine for EFL applications -Version: @VERSION@ +Version: @PROJECT_VERSION@ Requires: cairo evas ecore -Libs: -L${libdir} -lewebkit +Libs: -L${libdir} -lewebkit @EXTRA_EWEBKIT_LINK@ Cflags: -I${includedir}/EWebKit diff --git a/WebKit/efl/ewk/ewk_frame.cpp b/WebKit/efl/ewk/ewk_frame.cpp index 73d1d29..5e93a05 100644 --- a/WebKit/efl/ewk/ewk_frame.cpp +++ b/WebKit/efl/ewk/ewk_frame.cpp @@ -988,7 +988,12 @@ Eina_Bool ewk_frame_zoom_set(Evas_Object* o, float zoom) { EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, EINA_FALSE); - sd->frame->setZoomFactor(zoom, sd->zoom_text_only); + WebCore::ZoomMode zoomMode; + if (sd->zoom_text_only) + zoomMode = WebCore::ZoomTextOnly; + else + zoomMode = WebCore::ZoomPage; + sd->frame->setZoomFactor(zoom, zoomMode); return EINA_TRUE; } @@ -1022,7 +1027,12 @@ Eina_Bool ewk_frame_zoom_text_only_set(Evas_Object* o, Eina_Bool setting) return EINA_TRUE; sd->zoom_text_only = setting; - sd->frame->setZoomFactor(sd->frame->zoomFactor(), setting); + WebCore::ZoomMode zoomMode; + if (sd->zoom_text_only) + zoomMode = WebCore::ZoomTextOnly; + else + zoomMode = WebCore::ZoomPage; + sd->frame->setZoomFactor(sd->frame->zoomFactor(), zoomMode); return EINA_TRUE; } @@ -1424,45 +1434,45 @@ static inline Eina_Bool _ewk_frame_handle_key_scrolling(WebCore::Frame* frame, c int keyCode = event.windowsVirtualKeyCode(); switch (keyCode) { - case WebCore::VK_SPACE: + case VK_SPACE: granularity = WebCore::ScrollByPage; if (event.shiftKey()) direction = WebCore::ScrollUp; else direction = WebCore::ScrollDown; break; - case WebCore::VK_NEXT: + case VK_NEXT: granularity = WebCore::ScrollByPage; direction = WebCore::ScrollDown; break; - case WebCore::VK_PRIOR: + case VK_PRIOR: granularity = WebCore::ScrollByPage; direction = WebCore::ScrollUp; break; - case WebCore::VK_HOME: + case VK_HOME: granularity = WebCore::ScrollByDocument; direction = WebCore::ScrollUp; break; - case WebCore::VK_END: + case VK_END: granularity = WebCore::ScrollByDocument; direction = WebCore::ScrollDown; break; - case WebCore::VK_LEFT: + case VK_LEFT: granularity = WebCore::ScrollByLine; direction = WebCore::ScrollLeft; break; - case WebCore::VK_RIGHT: + case VK_RIGHT: granularity = WebCore::ScrollByLine; direction = WebCore::ScrollRight; break; - case WebCore::VK_UP: + case VK_UP: direction = WebCore::ScrollUp; if (event.ctrlKey()) granularity = WebCore::ScrollByDocument; else granularity = WebCore::ScrollByLine; break; - case WebCore::VK_DOWN: + case VK_DOWN: direction = WebCore::ScrollDown; if (event.ctrlKey()) granularity = WebCore::ScrollByDocument; @@ -1823,22 +1833,5 @@ void ewk_frame_force_layout(Evas_Object* o) WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues, const WebCore::String& mimeType, bool loadManually) { - DBG("o=%p, size=%dx%d, element=%p, url=%s, mimeType=%s", - o, pluginSize.width(), pluginSize.height(), element, - url.prettyURL().utf8().data(), mimeType.utf8().data()); - - EWK_FRAME_SD_GET_OR_RETURN(o, sd, 0); - - // TODO: emit signal and ask webkit users if something else should be done. - // like creating another x window (see gtk, it allows users to create - // GtkPluginWidget. - - WTF::RefPtr<WebCore::PluginView> pluginView = WebCore::PluginView::create - (sd->frame, pluginSize, element, url, paramNames, paramValues, - mimeType, loadManually); - - if (pluginView->status() == WebCore::PluginStatusLoadedSuccessfully) - return pluginView; - return 0; } diff --git a/WebKit/efl/ewk/ewk_main.cpp b/WebKit/efl/ewk/ewk_main.cpp index 2c69b36..ee9a656 100644 --- a/WebKit/efl/ewk/ewk_main.cpp +++ b/WebKit/efl/ewk/ewk_main.cpp @@ -24,9 +24,9 @@ #include "EWebKit.h" #include "Logging.h" #include "PageCache.h" -#include "PageGroup.h" #include "ewk_private.h" #include "runtime/InitializeThreading.h" +#include "wtf/Threading.h" #include <Ecore.h> #include <Ecore_Evas.h> @@ -103,6 +103,7 @@ int ewk_init(void) #endif JSC::initializeThreading(); + WTF::initializeMainThread(); WebCore::InitializeLoggingChannelsIfNecessary(); // Page cache capacity (in pages). Comment from Mac port: diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp index eeb6535..d981459 100644 --- a/WebKit/efl/ewk/ewk_view.cpp +++ b/WebKit/efl/ewk/ewk_view.cpp @@ -494,7 +494,7 @@ static WTF::PassRefPtr<WebCore::Frame> _ewk_view_core_frame_new(Ewk_View_Smart_D return WebCore::Frame::create(priv->page, owner, flc); } -static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_0; +static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL; static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) { @@ -1392,7 +1392,7 @@ char* ewk_view_selection_get(const Evas_Object* o) { EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0); EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, 0); - WebCore::CString s = priv->page->focusController()->focusedOrMainFrame()->selectedText().utf8(); + WTF::CString s = priv->page->focusController()->focusedOrMainFrame()->selectedText().utf8(); if (s.isNull()) return 0; return strdup(s.data()); |
