Elementary.web: Add many things missing from API, not tested.
I won't be able to test this until I get Elm compiled with efl-webkit, and for that I need a reasonably fresh source snapshot. Latest one I could find was from August last year, I'm assuming it won't match with current Elm.
This commit is contained in:
parent
bd8f38667e
commit
603476f176
|
@ -22,6 +22,14 @@ cdef extern from "Elementary.h":
|
||||||
ctypedef void (*Elm_Web_Console_Message) (void *data, Evas_Object *obj, const_char *message, unsigned int line_number, const_char *source_id)
|
ctypedef void (*Elm_Web_Console_Message) (void *data, Evas_Object *obj, const_char *message, unsigned int line_number, const_char *source_id)
|
||||||
|
|
||||||
Evas_Object *elm_web_add(Evas_Object *parent)
|
Evas_Object *elm_web_add(Evas_Object *parent)
|
||||||
|
void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode)
|
||||||
|
Elm_Web_Zoom_Mode elm_web_zoom_mode_get(Evas_Object *obj)
|
||||||
|
|
||||||
|
Eina_Bool elm_web_window_features_property_get(Elm_Web_Window_Features *wf, Elm_Web_Window_Feature_Flag flag)
|
||||||
|
void elm_web_window_features_region_get(Elm_Web_Window_Features *wf, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
|
||||||
|
void elm_web_window_features_ref(Elm_Web_Window_Features *wf)
|
||||||
|
void elm_web_window_features_unref(Elm_Web_Window_Features *wf)
|
||||||
|
|
||||||
void elm_web_useragent_set(Evas_Object *obj, const_char *user_agent)
|
void elm_web_useragent_set(Evas_Object *obj, const_char *user_agent)
|
||||||
const_char * elm_web_useragent_get(Evas_Object *obj)
|
const_char * elm_web_useragent_get(Evas_Object *obj)
|
||||||
Evas_Object *elm_web_webkit_view_get(Evas_Object *obj)
|
Evas_Object *elm_web_webkit_view_get(Evas_Object *obj)
|
||||||
|
@ -35,8 +43,10 @@ cdef extern from "Elementary.h":
|
||||||
|
|
||||||
Eina_Bool elm_web_tab_propagate_get(Evas_Object *obj)
|
Eina_Bool elm_web_tab_propagate_get(Evas_Object *obj)
|
||||||
void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate)
|
void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate)
|
||||||
Eina_Bool elm_web_uri_set(Evas_Object *obj,char *uri)
|
|
||||||
const_char * elm_web_uri_get(Evas_Object *obj)
|
Eina_Bool elm_web_url_set(Evas_Object *obj,char *url)
|
||||||
|
const_char * elm_web_url_get(Evas_Object *obj)
|
||||||
|
|
||||||
const_char * elm_web_title_get(Evas_Object *obj)
|
const_char * elm_web_title_get(Evas_Object *obj)
|
||||||
void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
void elm_web_bg_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a)
|
void elm_web_bg_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a)
|
||||||
|
@ -67,14 +77,10 @@ cdef extern from "Elementary.h":
|
||||||
|
|
||||||
void elm_web_zoom_set(Evas_Object *obj, double zoom)
|
void elm_web_zoom_set(Evas_Object *obj, double zoom)
|
||||||
double elm_web_zoom_get(Evas_Object *obj)
|
double elm_web_zoom_get(Evas_Object *obj)
|
||||||
void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode)
|
|
||||||
Elm_Web_Zoom_Mode elm_web_zoom_mode_get(Evas_Object *obj)
|
|
||||||
|
|
||||||
void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h)
|
void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h)
|
||||||
void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h)
|
void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h)
|
||||||
void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value)
|
void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value)
|
||||||
Eina_Bool elm_web_inwin_mode_get(Evas_Object *obj)
|
Eina_Bool elm_web_inwin_mode_get(Evas_Object *obj)
|
||||||
|
|
||||||
Eina_Bool elm_web_window_features_property_get(Elm_Web_Window_Features *wf, Elm_Web_Window_Feature_Flag flag)
|
|
||||||
void elm_web_window_features_region_get(Elm_Web_Window_Features *wf, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,43 +1,37 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
|
|
||||||
from efl import evas
|
from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
|
||||||
from efl import ecore
|
from efl import ecore
|
||||||
from efl import elementary
|
from efl import elementary
|
||||||
from efl.elementary.window import Window
|
from efl.elementary.window import StandardWindow
|
||||||
from efl.elementary.background import Background
|
from efl.elementary.background import Background
|
||||||
from efl.elementary.box import Box
|
from efl.elementary.box import Box
|
||||||
from efl.elementary.button import Button
|
from efl.elementary.button import Button
|
||||||
from efl.elementary.entry import Entry
|
from efl.elementary.entry import Entry
|
||||||
from efl.elementary.web import Web
|
from efl.elementary.web import Web
|
||||||
|
|
||||||
|
EXPAND_BOTH = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
|
||||||
|
EXPAND_HORIZ = EVAS_HINT_EXPAND, 0.0
|
||||||
|
FILL_BOTH = EVAS_HINT_FILL, EVAS_HINT_FILL
|
||||||
|
FILL_HORIZ = EVAS_HINT_FILL, 0.5
|
||||||
|
|
||||||
def web_clicked(obj):
|
def web_clicked(obj):
|
||||||
if not elementary.need_web():
|
if not elementary.need_web():
|
||||||
print("EFL-webkit not available!")
|
print("EFL-webkit not available!")
|
||||||
return
|
return
|
||||||
|
|
||||||
win = Window("web", elementary.ELM_WIN_BASIC)
|
win = StandardWindow("web", "Web", autodel=True, size=(800, 600))
|
||||||
win.title_set("Web")
|
|
||||||
win.autodel_set(True)
|
|
||||||
if obj is None:
|
if obj is None:
|
||||||
win.callback_delete_request_add(lambda o: elementary.exit())
|
win.callback_delete_request_add(lambda o: elementary.exit())
|
||||||
|
|
||||||
bg = Background(win)
|
vbx = Box(win, size_hint_weight=EXPAND_BOTH)
|
||||||
win.resize_object_add(bg)
|
|
||||||
bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
||||||
bg.show()
|
|
||||||
|
|
||||||
vbx = Box(win)
|
|
||||||
win.resize_object_add(vbx)
|
win.resize_object_add(vbx)
|
||||||
vbx.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
||||||
vbx.show()
|
vbx.show()
|
||||||
|
|
||||||
web = Web(win)
|
web = Web(win, url="http://enlightenment.org/",
|
||||||
web.uri_set("http://enlightenment.org/")
|
size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH,
|
||||||
web.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
size_hint_min=(100, 100))
|
||||||
web.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
|
|
||||||
web.size_hint_min_set(100, 100)
|
|
||||||
vbx.pack_end(web)
|
vbx.pack_end(web)
|
||||||
web.show()
|
web.show()
|
||||||
|
|
||||||
|
@ -61,43 +55,33 @@ def web_clicked(obj):
|
||||||
web.console_message_hook_set(console_msg)
|
web.console_message_hook_set(console_msg)
|
||||||
|
|
||||||
# navigation bar:
|
# navigation bar:
|
||||||
hbx = Box(win)
|
hbx = Box(win, horizontal=True, size_hint_weight=EXPAND_HORIZ,
|
||||||
hbx.horizontal_set(True)
|
size_hint_align=FILL_HORIZ)
|
||||||
hbx.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0)
|
|
||||||
hbx.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0)
|
|
||||||
vbx.pack_start(hbx)
|
vbx.pack_start(hbx)
|
||||||
hbx.show()
|
hbx.show()
|
||||||
|
|
||||||
bt = Button(win)
|
bt = Button(win, text="Back")
|
||||||
bt.text_set("Back")
|
|
||||||
bt.callback_clicked_add(lambda x: web.back())
|
bt.callback_clicked_add(lambda x: web.back())
|
||||||
hbx.pack_end(bt)
|
hbx.pack_end(bt)
|
||||||
bt.show()
|
bt.show()
|
||||||
|
|
||||||
bt = Button(win)
|
bt = Button(win, text="Forward")
|
||||||
bt.text_set("Forward")
|
|
||||||
bt.callback_clicked_add(lambda x: web.forward())
|
bt.callback_clicked_add(lambda x: web.forward())
|
||||||
hbx.pack_end(bt)
|
hbx.pack_end(bt)
|
||||||
bt.show()
|
bt.show()
|
||||||
|
|
||||||
bt = Button(win)
|
bt = Button(win, text="Reload")
|
||||||
bt.text_set("Reload")
|
|
||||||
bt.callback_clicked_add(lambda x: web.reload())
|
bt.callback_clicked_add(lambda x: web.reload())
|
||||||
hbx.pack_end(bt)
|
hbx.pack_end(bt)
|
||||||
bt.show()
|
bt.show()
|
||||||
|
|
||||||
bt = Button(win)
|
bt = Button(win, text="Stop")
|
||||||
bt.text_set("Stop")
|
|
||||||
bt.callback_clicked_add(lambda x: web.stop())
|
bt.callback_clicked_add(lambda x: web.stop())
|
||||||
hbx.pack_end(bt)
|
hbx.pack_end(bt)
|
||||||
bt.show()
|
bt.show()
|
||||||
|
|
||||||
en = Entry(win)
|
en = Entry(win, scrollable=True, editable=True, single_line=True,
|
||||||
en.scrollable_set(True)
|
size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_BOTH)
|
||||||
en.editable_set(True)
|
|
||||||
en.single_line_set(True)
|
|
||||||
en.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0)
|
|
||||||
en.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
|
|
||||||
hbx.pack_end(en)
|
hbx.pack_end(en)
|
||||||
en.show()
|
en.show()
|
||||||
|
|
||||||
|
@ -116,12 +100,15 @@ def web_clicked(obj):
|
||||||
win.title_set("Web - %s" % title)
|
win.title_set("Web - %s" % title)
|
||||||
web.callback_title_changed_add(did_change_title, win)
|
web.callback_title_changed_add(did_change_title, win)
|
||||||
|
|
||||||
win.resize(800, 600)
|
|
||||||
win.show()
|
win.show()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
elementary.init()
|
elementary.init()
|
||||||
|
if not elementary.need_web():
|
||||||
|
elementary.shutdown()
|
||||||
|
raise SystemExit("EFL-webkit not available!")
|
||||||
|
|
||||||
elementary.policy_set(elementary.ELM_POLICY_QUIT,
|
elementary.policy_set(elementary.ELM_POLICY_QUIT,
|
||||||
elementary.ELM_POLICY_QUIT_LAST_WINDOW_CLOSED)
|
elementary.ELM_POLICY_QUIT_LAST_WINDOW_CLOSED)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue