示例#1
0
    def embed_browser(self, startPoint, midPoint, endPoint):

        #Gmplot
        if self.wheelChair is False:
            print('wheel chair = false')
        else:
            print('wheel chair = true')

        print(startPoint)
        print(midPoint)
        print(endPoint)

        gmap = gmplot.GoogleMapPlotter.from_geocode(
            '100 N University Dr, Edmond, OK 73034', 16, apikey=apikey)
        gmap.scatter(startPoint, endPoint, color=['blue', 'orange'])
        gmap.plot(*midPoint, edge_width=7)
        gmap.draw("map.html")

        window_info = cef.WindowInfo()
        (width, height) = self.browser_panel.GetClientSize().Get()
        assert self.browser_panel.GetHandle(), "Window handle not available"
        window_info.SetAsChild(self.browser_panel.GetHandle(),
                               [0, 0, width, height])
        self.browser = cef.CreateBrowserSync(
            window_info,
            url=
            "file:///C:/Users/ninte/Documents/School/Software%20I/Project/map.html"
        )
        self.browser.SetClientHandler(FocusHandler())
示例#2
0
    def test_osr(self):
        sys.excepthook = cef.ExceptHook
        cef.Initialize(settings={"windowless_rendering_enabled": True})
        parent_window_handle = 0
        window_info = cef.WindowInfo()
        window_info.SetAsOffscreen(parent_window_handle)
        browser = cef.CreateBrowserSync(window_info=window_info, url=g_datauri)

        client_handlers = [
            LoadHandler(self),
            DisplayHandler(self),
            RenderHandler(self),
            DragHandler(self)
        ]

        for handler in client_handlers:
            browser.SetClientHandler(handler)

        browser.SendFocusEvent(True)
        browser.WasResized()

        # Test setting DragData.
        self.subtest_dragdata()
        cef_waiting(200)

        # Automatic check of asserts in handlers
        automatic_check_handlers(self, [] + client_handlers)

        browser.CloseBrowser(True)
        del browser
        cef.Shutdown()
示例#3
0
文件: sumohub2.py 项目: ibn90/SumoHub
def main():
    switches = {
        # "no-sandbox":"",
        "disable-gpu": "",
        "disable-web-security": ""
    }
    check_versions()
    sys.excepthook = cef.ExceptHook  # To shutdown all CEF processes on error
    cef.Initialize(switches=switches)
    window_info = cef.WindowInfo()
    parent_handle = 0

    # This call has effect only on Mac and Linux.
    # All rect coordinates are applied including X and Y parameters.
    screen_info = get_monitors()[0]
    window_info.SetAsChild(parent_handle,
                           [0, 0, screen_info.width, screen_info.height])
    url = "file:///sumohub/web_bs/index_mod.html"
    browser = cef.CreateBrowserSync(url=html_to_data_uri(get_html(HTML_PATH)),
                                    window_info=window_info,
                                    window_title="Window size")
    if platform.system() == "Windows":
        window_handle = browser.GetOuterWindowHandle()
        insert_after_handle = 0
        # X and Y parameters are ignored by setting the SWP_NOMOVE flag
        SWP_NOMOVE = 0x0002
        # noinspection PyUnresolvedReferences
        ctypes.windll.user32.SetWindowPos(window_handle, insert_after_handle,
                                          0, 0, 900, 640, SWP_NOMOVE)
    cef.MessageLoop()
    del browser
    cef.Shutdown()
示例#4
0
    def _setup_browser(self):
        init_settings = {
            "cache_path": os.path.join(appdirs.user_data_dir("EndlessLake", appauthor=False), "Browser"),
            "persist_session_cookies": True
        }

        switches = {
            "disable-d3d11": "",
            "enable-begin-frame-scheduling": "",
        }

        browser_settings = {
            "windowless_frame_rate": "30",
        }

        sys.excepthook = cef.ExceptHook
        cef.Initialize(init_settings, switches)

        window_info = cef.WindowInfo()
        parent_window_handle = 0
        window_info.SetAsOffscreen(parent_window_handle)

        self._cef_browser = cef.CreateBrowserSync(window_info, url=GAME_URL, settings=browser_settings)
        self._cef_browser.SetJavascriptBindings(self._init_bindings())
        self._cef_browser.SetClientHandler(self._handler)
        self._cef_browser.SendFocusEvent(True)
        self._cef_browser.WasResized()

        cef.MessageLoop()
        cef.Shutdown()
示例#5
0
def initialize_chromium():
    '''
    Initializes Chrome browser window which requires no 3rd party UI libraries
    :return: message loop
    '''
    # source https://github.com/cztomczak/cefpython/blob/master/examples/snippets/window_size.py
    check_version()
    sys.excepthook = cef.ExceptHook  # To shutdown all CEF processes on error
    cef.Initialize()
    window_info = cef.WindowInfo()
    parent_handle = 0

    # This call has effect only on Mac and Linux.
    # All rect coordinates are applied including X and Y parameters.
    window_info.SetAsChild(parent_handle, [0, 0, 900, 640])
    browser = cef.CreateBrowserSync(url="http://127.0.0.1:23948/login",
                                    window_info=window_info,
                                    window_title="Flask Standalone Web App - Chromium Edition")

    if platform.system() == "Windows":
        window_handle = browser.GetOuterWindowHandle()
        insert_after_handle = 0
        # X and Y parameters are ignored by setting the SWP_NOMOVE flag
        SWP_NOMOVE = 0x0002
        # noinspection PyUnresolvedReferences
        ctypes.windll.user32.SetWindowPos(window_handle, insert_after_handle,
                                          0, 0, 900, 640, SWP_NOMOVE)

    cef.MessageLoop()
    del browser
    cef.Shutdown()
示例#6
0
def createBrowser():
    winId = int(sys.argv[1])
    windowInfo = cef.WindowInfo()
    windowInfo.SetAsChild(winId)

    settings = {}
    settings["context_menu"] = {
        "enabled": False,
        "navigation": False,  # Back, Forward, Reload
        "print": False,
        "view_source": False,
        "external_browser": False,  # Open in external browser
        "devtools": False,  # Developer Tools
    }
    cef.Initialize(settings)

    browser = cef.CreateBrowserSync(windowInfo, url="https://www.baidu.com")

    port = int(sys.argv[2])
    conn = rpyc.connect('localhost', port)
    while True:
        url = conn.root.loadUrl()
        if url and url != browser.GetUrl():
            browser.LoadUrl(url)
        elif conn.root.resizeCall():
            cef.WindowUtils.OnSize(winId, 0, 0, 0)
        cef.MessageLoopWork()

    cef.Shutdown()
示例#7
0
    def embed_browser(self):
        window_info = cef.WindowInfo()
        (width, height) = self.GetClientSize()
        print("embed_browser0", width, height)
        if self.hidden:
            window_info.SetAsChild(self.Handle, [0, 0, 1, 1])
        else:
            window_info.SetAsChild(self.Handle, [0, 0, width, height])
            print("embed_browser", width, height)
        self.browser = cef.CreateBrowserSync(window_info, url=self.url)
        self.browser.SetClientHandler(FocusHandler(self))
        self.browser.SetClientHandler(KeyboardHandler(self))

        this = self

        def wx_fun(value):
            print("Value sent from Javascript: ", value)
            print(type(self))
            #self.Show()

        bindings = cef.JavascriptBindings()
        bindings.SetFunction("wx_fun", wx_fun)
        self.browser.SetJavascriptBindings(bindings)

        if self.url:
            self.browser.GetMainFrame().LoadUrl(self.url)
        else:
            self.browser.GetMainFrame().LoadUrl("about:blank")
示例#8
0
    def browser_login(self):
        from cefpython3 import cefpython as cef
        br_WindowInfo = cef.WindowInfo()
        if sys.platform == 'win32':
            parent = self.create_window()
            br_WindowInfo.SetAsChild(parent, [0, 0, 500, 500])
        else:
            br_WindowInfo.SetAsChild(0, [0, 0, 500, 500])

        settings = {
            "debug": True,
            "log_severity": cef.LOGSEVERITY_INFO,
            "log_file": os.path.join(os.path.dirname(__file__),
                                     "deez_debug.log"),
        }
        cef.Initialize(settings=settings)
        browser = cef.CreateBrowserSync(br_WindowInfo,
                                        url="https://www.deezer.com/",
                                        window_title="Deezer Login")
        browser.SetClientHandler(LoadHandler())
        cef.MessageLoop()
        print("Shutdown Complete")
        # del browser
        print("cookies =", cookies)
        #pause()
        cef.Shutdown()
示例#9
0
 def embed_browser(self):
     window_info = cef.WindowInfo()
     rect = [self.xPos, self.yPos, self.width, self.height]
     window_info.SetAsChild(self.winfo_id(), rect)
     self.browser = cef.CreateBrowserSync(window_info, url=self.url)
     #assert self.browser
     self.message_loop_work()
示例#10
0
 def embedBrowser(self, url):
     window_info = cef.WindowInfo()
     # void window_info.SetAsChild(int parentWindowHandle, list windowRect), windowRect~[left,top,right,bottom]
     window_info.SetAsChild(
         int(self.winId()),
         [0, 0, self.width(), self.height()])
     cef.PostTask(cef.TID_UI, self.create_browser, window_info, url)
示例#11
0
def create_browser(window, handle, alert_func):
    def _create():
        real_url = 'data:text/html,{0}'.format(window.html) if window.html else window.real_url or 'data:text/html,{0}'.format(default_html)
        cef_browser = cef.CreateBrowserSync(window_info=window_info, url=real_url)
        browser = Browser(window, handle, cef_browser)

        bindings = cef.JavascriptBindings()
        bindings.SetObject('external', browser.js_bridge)
        bindings.SetFunction('alert', alert_func)

        cef_browser.SetJavascriptBindings(bindings)
        cef_browser.SetClientHandler(LoadHandler())

        instances[window.uid] = browser
        window.shown.set()
        
        if window.icon:
            icon = window.icon+".ico"
            if os.path.isfile(icon):
                smallx = windll.user32.GetSystemMetrics(49) #SM_CXSMICON
                smally = windll.user32.GetSystemMetrics(50) #SM_CYSMICON
                small_icon =  windll.user32.LoadImageW(0, icon, 1, smallx, smally, 0x00000010)
                windll.user32.SendMessageW(handle, 0x0080, 0, small_icon)

                bigx = windll.user32.GetSystemMetrics(11) #SM_CXICON
                bigy = windll.user32.GetSystemMetrics(12) #SM_CYICON
                big_icon = windll.user32.LoadImageW(0, icon, 1, bigx, bigy, 0x00000010)
                windll.user32.SendMessageW(handle, 0x0080, 1, big_icon)


    window_info = cef.WindowInfo()
    window_info.SetAsChild(handle)
    cef.PostTask(cef.TID_UI, _create)
示例#12
0
 def embed_browser(self):
     window_info = cef.WindowInfo()
     rect = [0, 0, self.winfo_width(), self.winfo_height()]
     window_info.SetAsChild(self.get_window_handle(), rect)
     self.browser = cef.CreateBrowserSync(window_info, url=self.html_dir)
     assert self.browser
     self.message_loop_work()
示例#13
0
    def __init__(self, url, session_cls):
        wx.Frame.__init__(self, parent=None, id=wx.ID_ANY, title='cef wx', size=(800, 600))
        self.window_count += 1

        self.mainPanel = wx.Panel(self, style=wx.WANTS_CHARS)

        window_info = cefpython.WindowInfo()
        width, height = self.mainPanel.GetClientSizeTuple()
        window_info.SetAsChild(self.mainPanel.GetHandle(), [0, 0, width, height])

        self.browser = cefpython.CreateBrowserSync(
            window_info,
            browserSettings=browser_settings,
            navigateUrl=url)

        self.clientHandler = CEFHandler()
        session_cls.frame = self
        self.clientHandler.cef = CEF(session_cls)
        self.clientHandler.cef.main_browser = self.browser
        self.clientHandler.cef.initialize()
        self.browser.SetClientHandler(self.clientHandler)

        menu = wx.Menu()

        act_hide = menu.Append(1, 'Hide')
        act_show = menu.Append(2, 'Show')
        act_exit = menu.Append(10, 'Exit')
        menu_bar = wx.MenuBar()
        menu_bar.Append(menu, 'Action')
        self.SetMenuBar(menu_bar)
        self.Bind(wx.EVT_MENU, self.hide, act_hide)
        self.Bind(wx.EVT_MENU, self.show, act_show)
        self.Bind(wx.EVT_MENU, self.on_close, act_exit)

        self.Bind(wx.EVT_CLOSE, self.on_close)
示例#14
0
def create_browser(window, handle, alert_func):
    def _create():
        real_url = 'data:text/html,{0}'.format(
            window.html
        ) if window.html else window.real_url or 'data:text/html,{0}'.format(
            default_html)

        default_browser_settings = {}
        all_browser_settings = dict(default_browser_settings,
                                    **browser_settings)

        cef_browser = cef.CreateBrowserSync(window_info=window_info,
                                            settings=all_browser_settings,
                                            url=real_url)
        browser = Browser(window, handle, cef_browser)

        bindings = cef.JavascriptBindings()
        bindings.SetObject('external', browser.js_bridge)
        bindings.SetFunction('alert', alert_func)

        cef_browser.SetJavascriptBindings(bindings)
        cef_browser.SetClientHandler(LoadHandler())

        instances[window.uid] = browser
        window.events.shown.set()

    window_info = cef.WindowInfo()
    window_info.SetAsChild(handle)
    cef.PostTask(cef.TID_UI, _create)
示例#15
0
def create_window_info(class_name):
    window_proc = {
        win32con.WM_CLOSE:
        close_window,
        # win32con.WM_DESTROY: exit_app,#生成多个窗口,关闭一个会关闭所有窗口
        win32con.WM_SIZE:
        WindowUtils.OnSize,
        win32con.WM_SETFOCUS:
        WindowUtils.OnSetFocus,
        win32con.WM_ERASEBKGND:
        WindowUtils.OnEraseBackground,
    }
    # 每个窗口的class_name不能相同

    tkwidth = cef_config['tkwidth']
    tkheight = cef_config['tkheight']

    window_handle = create_window(title='词典',
                                  class_name=class_name,
                                  width=tkwidth,
                                  height=tkheight,
                                  window_proc=window_proc)

    window_info = cef.WindowInfo()
    window_info.SetAsChild(window_handle)

    return window_info
示例#16
0
def create_browser(uid,
                   handle,
                   alert_func,
                   url=None,
                   js_api=None,
                   text_select=False):
    def _create():
        real_url = url or 'data:text/html,{0}'.format(default_html)
        cef_browser = cef.CreateBrowserSync(window_info=window_info,
                                            url=real_url)
        browser = Browser(handle, cef_browser, js_api, text_select, uid)

        bindings = cef.JavascriptBindings()
        bindings.SetObject('external', browser.js_bridge)
        bindings.SetFunction('alert', alert_func)

        cef_browser.SetJavascriptBindings(bindings)
        cef_browser.SetClientHandler(LoadHandler())

        instances[uid] = browser
        _webview_ready.set()

    window_info = cef.WindowInfo()
    window_info.SetAsChild(handle)
    cef.PostTask(cef.TID_UI, _create)
示例#17
0
文件: wxcef.py 项目: zhiy0122/Librian
 def embed_browser(self, url):
     window_info = cef.WindowInfo()
     (width, height) = self.browser_panel.GetClientSize().Get()
     assert self.browser_panel.GetHandle(), "Window handle not available"
     if LINUX:
         handle_to_use = self.browser_panel.GetHandle()
         display = Gdk.Display.get_default()
         window = GdkX11.X11Window.foreign_new_for_display(display,handle_to_use)
         self.gtk_window = gtk_window = Gtk.Window()
         def callback(gtk_window,window):
             print("inside callback")
             gtk_window.set_window(window)
             gtk_window.set_visual( gtk_window.get_screen().lookup_visual(0x21))
         gtk_window.connect("realize",callback,window)
         gtk_window.set_has_window(True)
         gtk_window.show()
         sw = Gtk.ScrolledWindow()
         sw.show()
         gtk_window.add(sw)
         sw.set_visual( sw.get_screen().lookup_visual(0x21))
         self.sw = sw
         self.Show()
         window_info.SetAsChild(sw.get_window().get_xid(),[0, 0, width, height])
     else:
         window_info.SetAsChild(self.browser_panel.GetHandle(), [0, 0, width, height])
     self.browser = cef.CreateBrowserSync(window_info,url=url,browserSettings={'web_security_disabled': True,})
     self.browser.SetClientHandler(FocusHandler())
示例#18
0
 def embed_browser(self):
     window_info = cef.WindowInfo()
     (width, height) = self.browser_panel.GetClientSize().Get()
     assert self.browser_panel.GetHandle(), "Window handle not available"
     window_info.SetAsChild(self.browser_panel.GetHandle(),
                            [0, 0, width, height])
     self.browser = cef.CreateBrowserSync(window_info, url=homeUrl)
示例#19
0
def browser(cef, url):
    """ Starts a cef browser in the middle of the screen with url
    """

    # Keeps the splash from displaying on short tasks
    log.debug('Delaying splash for 2 seconds')
    time.sleep(2)
    log.info('Starting splash screen for long-running task')

    settings = {
        'background_color': 0xff000000,
        'cache_path': '',
        'context_menu': {
            'enabled': False
        },
        'debug': False,
        'command_line_args_disabled': False,
    }
    switches = {
        'disable-gpu': '',
        'disable-gpu-compositing': '',
    }

    sys.excepthook = cef.ExceptHook
    cef.Initialize(settings, switches)

    win_info = cef.WindowInfo()
    win_info.SetAsChild(0, coordinates(600, 360))

    cef.CreateBrowser(url=url, window_info=win_info, window_title='splash')
    cef.MessageLoop()
    cef.Shutdown()
示例#20
0
def main():
    script_dir = os.path.dirname(os.path.realpath(__file__))
    url = 'file://%s/index.html' % script_dir
    print(url)
    check_versions()
    sys.excepthook = cef.ExceptHook  # To shutdown all CEF processes on error

    cef.Initialize()
    #set up a browser
    window_info = cef.WindowInfo()
    window_info.SetAsChild(0, [0, 0, 1000, 650])
    browser = cef.CreateBrowserSync(window_title="Hello World!",
                                    url=url,
                                    window_info=window_info)
    frame = browser.GetMainFrame()
    #set up the browser's javascript bindings
    external = External()
    bindings = cef.JavascriptBindings()
    bindings.SetFunction("echo", external.echo)
    bindings.SetObject("external", external)
    bindings.SetProperty("KEY_CODES", External.KEY_CODES)
    browser.SetJavascriptBindings(bindings)
    #enter main loop
    cef.MessageLoop()
    cef.Shutdown()
示例#21
0
    def __init__(self, parent, url):
        sys.excepthook = cef.ExceptHook
        settings = {}
        if wx.Platform == "__WXMAC__":
            settings['external_message_pump'] = True
        if wx.Platform == "__WXMSW__":
            cef.DpiAware.EnableHighDpiSupport()
        cef.Initialize(settings=settings)

        if wx.Platform == "__WXGTK__":
            cef.WindowUtils.InstallX11ErrorHandlers()

        super().__init__(parent, style=wx.BORDER_NONE)
        self.timer = wx.Timer(self)
        self.timer.Start(10)
        self.Bind(wx.EVT_TIMER, self._on_timer, self.timer)

        window_info = cef.WindowInfo()
        (width, height) = self.GetClientSize().Get()
        window_info.SetAsChild(self.GetHandle(), [0, 0, width, height])
        self.browser = cef.CreateBrowserSync(window_info, url=url)

        self.Bind(wx.EVT_CLOSE, self._on_close)
        self.Bind(wx.EVT_SIZE, self._on_size)
        self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus)

        if wx.Platform == "__WXMSW__":
            wx.CallAfter(self._fix_keyboard)
示例#22
0
 def embed_browser(self, width, heith):
     window_info = cef.WindowInfo()
     rect = [0, 0, width, heith]
     window_info.SetAsChild(self.get_window_handle(), rect)
     self.browser = cef.CreateBrowserSync(window_info, url=self.URL)  #todo
     assert self.browser
     self.message_loop_work()
示例#23
0
def CefThread():
    script_dir = os.path.dirname(os.path.realpath(__file__))
    url= 'file://%s/gui/index.html'%script_dir
    check_versions()
    sys.excepthook = cef.ExceptHook  # To shutdown all CEF processes on error

    #p = Thread(target=TkSaveSubProc,args=(FILE_QUEUE,))
    #p.start()
    
    cef.Initialize()
    #set up a browser
    window_info = cef.WindowInfo()
    window_info.SetAsChild(0, [0,0,1280,720])
    browser = cef.CreateBrowserSync(
            window_title="PushBroom Planner",
            url=url, window_info=window_info)
    frame = browser.GetMainFrame()
    #set up the browser's javascript bindings
    external = External()
    bindings = cef.JavascriptBindings()
    bindings.SetObject("external",external)
    browser.SetJavascriptBindings(bindings)
    #enter main loop
    cef.MessageLoop()
    cef.Shutdown()
    FILE_QUEUE.put((None,None))
 def showMap(frame):
     sys.excepthook = cef.ExceptHook
     window_info = cef.WindowInfo(frame.winfo_id())
     window_info.SetAsChild(frame.winfo_id(), [0, 0, 390, 790])
     cef.Initialize()
     browser = cef.CreateBrowserSync(window_info,
                                     url='file:///map.html')
     cef.MessageLoop()
示例#25
0
 def __createBrowser(self, withLoadHandler):
     sys.excepthook = cef.ExceptHook
     window_info = cef.WindowInfo(self.browserFrame.winfo_id())
     window_info.SetAsChild(self.browserFrame.winfo_id(), self.rect)
     self.browser = cef.CreateBrowserSync(window_info, self.browserSetting,
                                          self.url, self.window_title)
     if withLoadHandler:
         self.browser.SetClientHandler(LoadHandler())
示例#26
0
 def embed_browser(self):
     windowInfo = cef.WindowInfo()
     size = self.main_window.get_size()
     rect = [0, 0, size[0], size[1]]
     windowInfo.SetAsChild(self.get_window_handle(), rect)
     self.browser = cef.CreateBrowserSync(windowInfo, settings={},
                                          url="https://www.google.com/")
     self.browser.SetClientHandler(LoadHandler())
示例#27
0
 def embedBrowser(self):
     window_info = cef.WindowInfo()
     rect = [0, 0, self.width(), self.height()]
     window_info.SetAsChild(self.getHandle(), rect)
     self.browser = cef.CreateBrowserSync(
         window_info,
         url="http://localhost:8000/desktop/")  # open the desktop version
     self.browser.SetClientHandler(FocusHandler(self))
示例#28
0
 def embedBrowser(self):
     window_info = cef.WindowInfo()
     rect = [0, 0, self.width(), self.height()]
     window_info.SetAsChild(self.getHandle(), rect)
     self.browser = cef.CreateBrowserSync(window_info,
                                          url="https://www.google.com/")
     self.browser.SetClientHandler(LoadHandler(self.parent.navigation_bar))
     self.browser.SetClientHandler(FocusHandler(self))
示例#29
0
 def embed_browser(self):
     window_info = cef.WindowInfo()
     (width, height) = self.browser_panel.GetClientSizeTuple()
     window_info.SetAsChild(self.browser_panel.GetHandle(),
                            [0, 0, width, height])
     self.browser = cef.CreateBrowserSync(window_info,
                                          url="https://www.google.com/")
     self.browser.SetClientHandler(FocusHandler())
示例#30
0
 def embedBrowser(self):
     if LINUX:
         self.hidden_window = QWindow()
     window_info = cef.WindowInfo()
     rect = [0, 0, self.width(), self.height()]
     window_info.SetAsChild(self.getHandle(), rect)
     # TODO better splash
     self.browser = cef.CreateBrowserSync(window_info)