import os, struct, threading, stat, select, time, socket, select
+from __init__ import _
+
strIsEmpty = lambda x: x is None or len(x) == 0
HBBTVAPP_PATH = "/usr/local/hbb-browser"
need_restart = False
plugin_browser = None
+
+ resX = 0
+ resY = 0
+ def UpdateInfoBar(self):
+ if self.resX == 1024 and self.resY == 720:
+ return
+ try:
+ infobar = InfoBar.instance
+ if infobar._InfoBarShowHide__state != 3:
+ return
+ infobar.doTimerHide()
+ infobar.serviceStarted()
+ except: pass
+
__gval__ = GlobalValues()
+def setDefaultResolution(x, y):
+ global __gval__
+ __gval__.resX = x
+ __gval__.resY = y
+
+def setResolution(xres, yres):
+ global __gval__
+ if __gval__.resX == 1280 and __gval__.resY == 720:
+ return
+ from enigma import gMainDC
+ gMainDC.getInstance().setResolution(xres, yres)
+
+def restoreResolution():
+ global __gval__
+ setResolution(1280, 720)
+ setResolution(__gval__.resX, __gval__.resY)
+
+ if __gval__.resX == 1280 and __gval__.resY == 720:
+ return
+ __gval__.UpdateInfoBar()
+
def setPluginBrowser(browser=None):
global __gval__
__gval__.plugin_browser = browser
,"OP_BROWSER_VKBD_PASTE_MOUSE" : 0x030D
,"OP_BROWSER_MENU_REQ" : 0x030E
,"OP_BROWSER_MENU_RES" : 0x030F
+ ,"OP_BROWSER_NEED_RELOAD_KEYMAP": 0x0313
,"OP_DVBAPP_VOL_UP" : 0x0401
,"OP_DVBAPP_VOL_DOWN" : 0x0402
,"OP_SYSTEM_OUT_OF_MEMORY" : 0x0501
,0x030D : "OP_BROWSER_VKBD_PASTE_MOUSE"
,0x030E : "OP_BROWSER_MENU_REQ"
,0x030F : "OP_BROWSER_MENU_RES"
+ ,0x0313 : "OP_BROWSER_NEED_RELOAD_KEYMAP"
,0x0401 : "OP_DVBAPP_VOL_UP"
,0x0402 : "OP_DVBAPP_VOL_DOWN"
,0x0501 : "OP_SYSTEM_OUT_OF_MEMORY"
class ServerFactory:
def doListenUnixTCP(self, name, handler):
def destroy(name):
- if os.path.exists(name):
- os.unlink(name)
- print "Removed ", name
+ import os
+ try:
+ if os.path.exists(name):
+ os.unlink(name)
+ print "Removed ", name
+ except: pass
destroy(name)
params = SocketParams()
tsid = dataItems[1]
if not _g_helper.doChangeChannel(sid, tsid):
return (0, "NOK")
-
-
return (0, "OK")
def _cb_handleBrowserMenuReq(self, opcode, data):
self._handle_dump(self._cb_handleBrowserMenuReq, opcode, data)
+ restoreResolution()
fbClass.getInstance().unlock()
eRCInput.getInstance().unlock()
browser = getPluginBrowser()
def _cb_virtualKeyboardClosed(self, data=None):
fbClass.getInstance().lock()
eRCInput.getInstance().lock()
+ setResolution(1280, 720)
command_util = getCommandUtil()
command_util.sendCommand('OP_BROWSER_VKBD_RES', data)
def _cb_handleShowVirtualKeyboard(self, opcode, data):
self._handle_dump(self._cb_handleShowVirtualKeyboard, opcode, data)
+ restoreResolution()
fbClass.getInstance().unlock()
eRCInput.getInstance().unlock()
if data == 0 or strIsEmpty(data):
return (channel_list_size, struct.pack('!IIII', sid, onid, tsid, namelen) + name)
def _cb_handleSetPageTitle(self, opcode, data):
- self._handle_dump(self._cb_handleCloseHbbTVBrowser, opcode, data)
+ self._handle_dump(self._cb_handleSetPageTitle, opcode, data)
if data.startswith('file://') or data.startswith('http://'):
return "OK"
if self._on_set_title_cb is not None:
if before_service is not None:
self._session.nav.playService(before_service)
self._vod_uri = None
+
+ restoreResolution()
return (0, "OK")
def _cb_handleVODPlayerURI(self, opcode, data):
"""
def __init__(self, session, url=None, cbf=None, useAIT=False, profile=0):
self._session = session
+ setResolution(1280, 720)
fbClass.getInstance().lock()
eRCInput.getInstance().lock()
print ErrMsg
def _serviceEOF(self):
+ (position,length) = self.getVodPlayTime()
+ self._ssm.setStatus(length, length, 1)
+ print "service EOF"
self._currentServicePositionTimer.stop()
def _layoutFinished(self):
+ self.setTitle(_('HbbTV Plugin'))
command_util = getCommandUtil()
profile = self._profile
(sid, onid, tsid, name, orgid) = getChannelInfos()
if self._cb_closed_func is not None:
self._cb_closed_func()
except: pass
+ restoreResolution()
fbClass.getInstance().unlock()
eRCInput.getInstance().unlock()
self.close()
__gval__.command_server = ServerFactory().doListenUnixTCP('/tmp/.sock.hbbtv.url', __gval__.hbbtv_handelr)
self._urls = None
- #self._stop_opera()
- #self._start_opera()
- self._restart_opera()
Screen.__init__(self, session)
self._session = session
+
+ self._restart_opera()
+
self._timer_infobar = eTimer()
self._timer_infobar.callback.append(self._cb_registrate_infobar)
self._timer_infobar.start(1000)
_g_ssm_ = SimpleSharedMemory()
_g_ssm_.doConnect()
+ self._callbackStartStop = None
+
def _cb_registrate_infobar(self):
if InfoBar.instance:
self._timer_infobar.stop()
def _cb_hbbtv_activated(self, title=None, url=None):
if not self._is_browser_running():
- message = "HbbTV Browser was not running.\nPlease running browser before start HbbTV Application."
- self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
+ message = _("HbbTV Browser was not running.\nPlease running browser before start HbbTV Application.")
+ self._session.open(MessageBox, message, MessageBox.TYPE_INFO)
return
service = self._session.nav.getCurrentlyPlayingServiceReference()
setBeforeService(service)
global HBBTVAPP_PATH
start_command = '%s/launcher start'%(HBBTVAPP_PATH)
os.system(start_command)
+ return True
def _stop_opera(self):
global HBBTVAPP_PATH
global HBBTVAPP_PATH
try: os.system('%s/launcher restart'%(HBBTVAPP_PATH))
except: pass
+ return True
def getStartHbbTVUrl(self):
url, self._urls, self._profile = None, None, 0
if self.getStartHbbTVUrl():
for x in self._urls:
applications.append((x[1], x))
- else: applications.append(("No detected HbbTV applications.", None))
+ else: applications.append((_("No detected HbbTV applications."), None))
self._session.openWithCallback(self._application_selected, ChoiceBox, title=_("Please choose an HbbTV application."), list=applications)
def _application_selected(self, selected):
self._cb_hbbtv_activated(selected[1][1], selected[1][2])
except Exception, ErrMsg: print ErrMsg
- def showBrowserConfigBox(self):
+ def showBrowserConfigBox(self, callback=None):
start_stop_mode = []
+ self._callbackStartStop = callback
if self._is_browser_running():
- start_stop_mode.append(('Stop',None))
- else: start_stop_mode.append(('Start',None))
+ start_stop_mode.append((_('Stop'),'Stop'))
+ else: start_stop_mode.append((_('Start'),'Start'))
self._session.openWithCallback(self._browser_config_selected, ChoiceBox, title=_("Please choose one."), list=start_stop_mode)
def _browser_config_selected(self, selected):
if selected is None:
return
+ if self._callbackStartStop is not None:
+ self._callbackStartStop()
try:
- mode = selected[0]
+ mode = selected[1]
if mode == 'Start':
if not self._is_browser_running():
self._start_opera()
self._settingFileName = '/usr/local/hbb-browser/home/setting.ini'
self._start = None
self._type = None
+ self._keymap = None
self._read()
def _read(self):
f = open(self._settingFileName)
if len(tmp) > 1:
self._type = int(tmp[1])
else: self._type = 0
+ elif line.startswith('keymap='):
+ self._keymap = line[7:len(line)-1]
f.close()
def _write(self):
tmpstr = []
tmpstr.append('start=%s %d\n' % (self._start, self._type))
+ tmpstr.append('keymap=%s\n' % (self._keymap))
f = open(self._settingFileName, 'w')
f.writelines(tmpstr)
f.close()
- def setData(self, start, types=0):
+ def setData(self, start, types=0, keymap="us-rc"):
self._start = start
self._type = types
+ self._keymap = keymap
self._write()
def getData(self):
return {
'start':self._start,
'type':self._type,
+ 'keymap':self._keymap,
}
class OperaBrowserPreferenceWindow(ConfigListScreen, Screen):
skin= """
- <screen position="center,center" size="600,350" title="Preference">
+ <screen position="center,120" size="600,350" title="Preference">
<widget name="url" position="5,0" size="590,100" valign="center" font="Regular;20" />
<widget name="config" position="0,100" size="600,200" scrollbarMode="showOnDemand" />
if self._currentPageUrl is None:
self._currentPageUrl = ''
self._startPageUrl = None
-
+ self._keymapType = None
self.makeMenuEntry()
self.onLayoutFinish.append(self.layoutFinished)
def layoutFinished(self):
- try:
- d = OperaBrowserSetting().getData()
- self._startPageUrl = d['start']
- #d['type']
- except: self._startPageUrl = 'http://vuplus.com'
- self.updateStartPageUrl()
+ self.setTitle(_('Preference'))
def updateStartPageUrl(self):
if self.menuItemStartpage.value == "startpage":
def keyGreen(self):
url = self["url"].getText()
if strIsEmpty(url):
- self.session.open(MessageBox, 'Invalid URL!!(Empty)\nPlease, Input to the URL.', type = MessageBox.TYPE_INFO)
+ self.session.open(MessageBox, _('Invalid URL!!(Empty)\nPlease, Input to the URL.'), type = MessageBox.TYPE_INFO)
return
mode = 0
if url.find('/usr/local/manual') > 0:
mode = 1
- OperaBrowserSetting().setData(url, mode)
+ self._keymapType = self.menuItemKeyboardLayout.value
+ OperaBrowserSetting().setData(url, mode, self._keymapType)
+ command_util = getCommandUtil()
+ command_util.sendCommand('OP_BROWSER_NEED_RELOAD_KEYMAP')
self.close()
def keyRed(self):
return
self["url"].setText(data)
if self.menuItemStartpage.value == "direct":
- self.session.openWithCallback(_cb_directInputUrl, VirtualKeyBoard, title=("Please enter URL here"), text='http://')
+ self.session.openWithCallback(_cb_directInputUrl, VirtualKeyBoard, title=(_("Please enter URL here")), text='http://')
def keyLeft(self):
ConfigListScreen.keyLeft(self)
ConfigListScreen.keyRight(self)
self.updateStartPageUrl()
+ def getKeymapTypeList(self):
+ types = []
+ for f in os.listdir("/usr/local/hbb-browser/keymap"):
+ filesplit = f.split('.')
+ if len(filesplit) < 2:
+ continue
+ types.append((filesplit[1], filesplit[1]))
+ types.sort()
+ return types
+
def makeMenuEntry(self):
l = []
l.append(("startpage", _("Start Page")))
l.append(("direct", _("Direct Input")))
self.menuItemStartpage = ConfigSelection(default="startpage", choices = l)
self.menuEntryStartpage = getConfigListEntry(_("Startpage"), self.menuItemStartpage)
+
+ kl = self.getKeymapTypeList()
+
+ try:
+ d = OperaBrowserSetting().getData()
+ self._startPageUrl = d['start']
+ self._keymapType = d['keymap']
+ #d['type']
+ except: self._startPageUrl = 'http://vuplus.com'
+ self.updateStartPageUrl()
+
+ if self._keymapType is None or len(self._keymapType) == 0:
+ self._keymapType = "us-rc"
+ self.menuItemKeyboardLayout = ConfigSelection(default=self._keymapType, choices = kl)
+ self.menuEntryKeyboardLayout = getConfigListEntry(_("Keyboard Layout"), self.menuItemKeyboardLayout)
self.resetMenuList()
def resetMenuList(self):
self.menulist = []
self.menulist.append(self.menuEntryStartpage)
+ self.menulist.append(self.menuEntryKeyboardLayout)
self["config"].list = self.menulist
self["config"].l.setList(self.menulist)
self.onLayoutFinish.append(self.layoutFinished)
def layoutFinished(self):
- self.setTitle('Bookmark ' + self.mMode)
+ self.setTitle(_('Bookmark') + ' ' + self.mMode)
def selectedItem(self):
currentPosition = self["config"].getCurrent()
if self.mType == BookmarkEditWindow.CATEGORY:
- return ("Name", self.menuItemName)
+ return (_("Name"), self.menuItemName)
else:
if currentPosition == self.menuEntryTitle:
- return ("Title", self.menuItemTitle)
+ return (_("Title"), self.menuItemTitle)
elif currentPosition == self.menuEntryUrl:
- return ("Url", self.menuItemUrl)
+ return (_("Url"), self.menuItemUrl)
return None
def showMessageBox(self, text):
- msg = "Invalid " + text + "!!(Empty)\nPlease, Input to the " + text + "."
+ msg = _("Invalid ") + text + _("!!(Empty)\nPlease, Input to the ") + text + "."
self.mSession.openWithCallback(self.showVKeyWindow, MessageBox, msg, MessageBox.TYPE_INFO)
return False
def saveData(self):
if self.mType == BookmarkEditWindow.CATEGORY:
- if self.mMode == 'Add':
+ if self.mMode == _('Add'):
categoryName = self.menuItemName.value
if strIsEmpty(categoryName):
- return self.showMessageBox("Category Name")
+ return self.showMessageBox(_("Category Name"))
self.mBookmarkManager.addCategory(categoryName)
else:
if strIsEmpty(self.menuItemName.value):
- return self.showMessageBox("Category Name")
+ return self.showMessageBox(_("Category Name"))
self.mData.mName = self.menuItemName.value
self.mBookmarkManager.updateCategory(self.mData)
else:
- if self.mMode == 'Add':
+ if self.mMode == _('Add'):
bookmarkTitle = self.menuItemTitle.value
bookmarkUrl = self.menuItemUrl.value
if strIsEmpty(bookmarkTitle):
self["config"].setCurrentIndex(0)
- return self.showMessageBox("Bookmark Title")
+ return self.showMessageBox(_("Bookmark Title"))
if strIsEmpty(bookmarkUrl):
self["config"].setCurrentIndex(1)
- return self.showMessageBox("Bookmark URL")
+ return self.showMessageBox(_("Bookmark URL"))
self.mBookmarkManager.addBookmark(bookmarkTitle, bookmarkUrl, self.mData.mParent, 0)
else:
if strIsEmpty(self.menuItemTitle.value):
self["config"].setCurrentIndex(0)
- return self.showMessageBox("Bookmark Title")
+ return self.showMessageBox(_("Bookmark Title"))
if strIsEmpty(self.menuItemUrl.value):
self["config"].setCurrentIndex(1)
- return self.showMessageBox("Bookmark URL")
+ return self.showMessageBox(_("Bookmark URL"))
self.mData.mTitle = self.menuItemTitle.value
self.mData.mUrl = self.menuItemUrl.value
self.mBookmarkManager.updateBookmark(self.mData)
class OperaBrowserBookmarkWindow(Screen):
skin = """
- <screen name="HbbTVBrowserBookmarkWindow" position="center,center" size="600,400" title="Bookmark" >
+ <screen name="HbbTVBrowserBookmarkWindow" position="center,120" size="600,400" title="Bookmark" >
<widget name="bookmarklist" position="0,0" size="600,200" zPosition="10" scrollbarMode="showOnDemand" />
<ePixmap pixmap="skin_default/buttons/key_0.png" position="556,330" size="35,30" alphatest="on" />
self.mBookmarkList = self.setBookmarkList()
self["bookmarklist"] = MenuList(self.mBookmarkList)
+ self.onLayoutFinish.append(self.layoutFinished)
+
+ def layoutFinished(self):
+ self.setTitle(_('Bookmark'))
+
def setBookmarkList(self):
l = []
#self.mBookmarkManager.dump()
def keyNumber(self):
data = self["bookmarklist"].getCurrent()[1]
if strIsEmpty(data.mUrl):
- msg = "Invalid URL. Please check again!!"
+ msg = _("Invalid URL. Please check again!!")
self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
return
def cbSetStartpage(ret=None):
if ret:
data = self["bookmarklist"].getCurrent()[1]
OperaBrowserSetting().setData(data.mUrl, data.mType)
- msg = "Do you want to set selected url to the Startpage?"
+ msg = _("Do you want to set selected url to the Startpage?")
self.mSession.openWithCallback(cbSetStartpage, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
def keyGreen(self):
return
retAdd = self.mBookmarkManager.addBookmark(self.mTitle, self.mUrl, parent.mId, 0)
if not retAdd:
- msg = "Current page is already exist."
+ msg = _("Current page is already exist.")
self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
self.cbEditWindow(True)
elif data[1] == 2:
if parent is None:
return
b = BookmarkData(0, '', '', parent.mId, 0)
- self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager)
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Add'), BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager)
elif data[1] == 3:
c = CategoryData(0, '')
- self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.CATEGORY, c, self.mBookmarkManager)
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Add'), BookmarkEditWindow.CATEGORY, c, self.mBookmarkManager)
if strIsEmpty(self.mUrl):
- l = [('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
- else: l = [('Currentpage(Bookmark)',1,), ('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
+ l = [(_('Direct Input(Bookmark)'),2,), (_('Direct Input(Category)'),3,)]
+ else: l = [(_('Currentpage(Bookmark)'),1,), (_('Direct Input(Bookmark)'),2,), (_('Direct Input(Category)'),3,)]
self.mSession.openWithCallback(cbGreen, ChoiceBox, title=_("Please choose."), list=l)
def keyYellow(self):
data = self["bookmarklist"].getCurrent()[1]
if self.isCategoryItem():
- self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.CATEGORY, data, self.mBookmarkManager)
- else: self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.BOOKMARK, data, self.mBookmarkManager)
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Edit'), BookmarkEditWindow.CATEGORY, data, self.mBookmarkManager)
+ else: self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Edit'), BookmarkEditWindow.BOOKMARK, data, self.mBookmarkManager)
def keyBlue(self):
def cbBlue(ret=None):
if not ret: return
else: self.mBookmarkManager.deleteBookmark(data.mId)
self.updateBookmarkList()
if self.isCategoryItem():
- msg = "Do you want to delete the category and the bookmarks?"
- else: msg = "Do you want to delete the bookmark?"
+ msg = _("Do you want to delete the category and the bookmarks?")
+ else: msg = _("Do you want to delete the bookmark?")
self.mSession.openWithCallback(cbBlue, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
def keyOK(self):
if self.isCategoryItem(): return
data = self["bookmarklist"].getCurrent()[1]
url = data.mUrl.strip()
if len(url) == 0:
- self.session.open(MessageBox, "Can't open selected bookmark.\n - URL data is empty!!", type = MessageBox.TYPE_INFO)
+ self.session.open(MessageBox, _("Can't open selected bookmark.\n - URL data is empty!!"), type = MessageBox.TYPE_INFO)
return
mode = data.mType
if mode:
def keyCancel(self):
self.close()
-
class BrowserHelpWindow(Screen, HelpableScreen):
MODE_GLOBAL,MODE_KEYBOARD,MODE_MOUSE = 1,2,3
skin = """
self.showHelpTimer.callback.append(self.cbShowHelpTimerClosed)
self.showHelpTimer.start(500)
+ self.onLayoutFinish.append(self.layoutFinished)
+
+ def layoutFinished(self):
+ self.setTitle(_('Browser Help'))
+
def cbShowHelpTimerClosed(self):
self.showHelpTimer.stop()
self.setHelpModeActions(self.MODE_GLOBAL)
SUBMENULIST_HEIGHT = 25
SUBMENULIST_NEXT = 2
+ # menulist->position->y : MENUBAR_ITEM_HEIGHT+30
+ # menulist->size->x : SUBMENULIST_WIDTH
+ # submenulist->position->x : SUBMENULIST_WIDTH+50+SUBMENULIST_NEXT
+ # submenulist->position->y : MENUBAR_ITEM_HEIGHT+30
+ # submenulist->size->x : SUBMENULIST_WIDTH
skin = """
- <screen name="Opera Browser" position="0,0" size="1280,720" backgroundColor="transparent" flags="wfNoBorder" title="Opera Browser">
+ <screen name="OperaBrowser" position="0,0" size="1280,720" backgroundColor="transparent" flags="wfNoBorder" title="Opera Browser">
<widget name="topArea" zPosition="-1" position="0,0" size="1280,60" font="Regular;20" valign="center" halign="center" backgroundColor="#000000" />
<widget name="menuitemFile" position="30,20" size="150,30" font="Regular;20" valign="center" halign="center" backgroundColor="#000000" foregroundColors="#9f1313,#a08500" />
<widget name="menuitemTool" position="180,20" size="150,30" font="Regular;20" valign="center" halign="center" backgroundColor="#000000" foregroundColors="#9f1313,#a08500" />
<widget name="menuitemHelp" position="330,20" size="150,30" font="Regular;20" valign="center" halign="center" backgroundColor="#000000" foregroundColors="#9f1313,#a08500" />
- <widget name="menulist" position="50,%d" size="%d,150" backgroundColor="#000000" zPosition="10" scrollbarMode="showOnDemand" />
- <widget name="submenulist" position="%d,%d" size="%d,150" backgroundColor="#000000" zPosition="10" scrollbarMode="showOnDemand" />
+ <widget name="menulist" position="50,60" size="200,150" backgroundColor="#000000" zPosition="10" scrollbarMode="showOnDemand" />
+ <widget name="submenulist" position="252,60" size="200,150" backgroundColor="#000000" zPosition="10" scrollbarMode="showOnDemand" />
<widget name="bottomArea" position="0,640" size="1280,80" font="Regular;20" valign="center" halign="center" backgroundColor="#000000" />
- </screen>
- """ % (MENUBAR_ITEM_HEIGHT+30, SUBMENULIST_WIDTH, SUBMENULIST_WIDTH+50+SUBMENULIST_NEXT, MENUBAR_ITEM_HEIGHT+30, SUBMENULIST_WIDTH)# modify menu
-
- MENUITEMS_LIST =[[('Open Startpage', None), ('Open URL', None), ('Start/Stop',None), ('Exit', None)],
- [('Bookmark', None), ('Preference', None)],
- [('About', None), ('Help', None)]]
- def __init__(self, session):
+ </screen>
+ """
+ MENUITEMS_LIST =[[(_('Open Startpage'), None), (_('Open URL'), None), (_('Start/Stop'),None), (_('Exit'), None)],
+ [(_('Bookmark'), None), (_('Preference'), None)],
+ [(_('About'), None), (_('Help'), None)]]
+ def __init__(self, session, url=None):
Screen.__init__(self, session)
self["actions"] = ActionMap(["DirectionActions", "MenuActions", "OkCancelActions"], {
"cancel" : self.keyCancel
self._onCloseTimer = eTimer()
self._onCloseTimer.callback.append(self._cb_onClose)
+ self.paramUrl = url
+
def enableRCMouse(self, mode): #mode=[0|1]|[False|True]
rcmouse_path = "/proc/stb/fp/mouse"
if os.path.exists(rcmouse_path):
os.system("echo %d > %s" % (mode, rcmouse_path))
def layoutFinished(self):
- self["menuitemFile"].setText("File")# modify menu
- self["menuitemTool"].setText("Tools")
- self["menuitemHelp"].setText("Help")
+ self["menuitemFile"].setText(_("File"))# modify menu
+ self["menuitemTool"].setText(_("Tools"))
+ self["menuitemHelp"].setText(_("Help"))
self["menulist"].hide()
self["submenulist"].hide()
- self["bottomArea"].setText("Opera Web Browser Plugin v1.0")
- self.setTitle("BrowserMain")
+ self["bottomArea"].setText(_("Opera Web Browser Plugin v1.0"))
+ self.setTitle(_("BrowserMain"))
self.selectMenuitem()
+ if self.paramUrl is not None:
+ self.keyMenu()
+ self.cbUrlText(self.paramUrl, 1)
+
def selectMenuitem(self):
tmp = [self["menuitemFile"], self["menuitemTool"], self["menuitemHelp"]]# modify menu
self["menuitemFile"].setForegroundColorNum(0)
def setListOnView(self):
l = self.MENUITEMS_LIST[self.menubarCurrentIndex]
if not self._terminatedBrowser and self.menubarCurrentIndex == 0: # running
- l = [('Return', None)]
+ l = [(_('Return'), None)]
self.lvMenuItems = l #self.MENUITEMS_LIST[self.menubarCurrentIndex]
return self.lvMenuItems
if self._on_setPageTitle in command_server.onSetPageTitleCB:
command_server.onSetPageTitleCB.remove(self._on_setPageTitle)
except Exception, ErrMsg: pass
- self._on_setPageTitle('Opera Browser')
+ self._on_setPageTitle(_('Opera Browser'))
self.enableRCMouse(False)
self.toggleMainScreen()
+ restoreResolution()
fbClass.getInstance().unlock()
eRCInput.getInstance().unlock()
self._terminatedBrowser = True
self._enableKeyEvent = True
#if not self.toggleListViewFlag:
# self.keyDown()
+
self._currentPageUrl = ''
- self.keyRight()
- self.keyLeft()
+ if self.paramUrl is not None:
+ self.keyCancel()
+ else:
+ self.keyRight()
+ self.keyLeft()
def _on_setPageTitle(self, title=None):
print "Title :",title
self.setTitle(title)
def cbUrlText(self, data=None, mode=0):
+ global _g_helper
+ if not _g_helper._is_browser_running():
+ return
print "Inputed Url :", data, mode
if strIsEmpty(data):
return
command_server.onHbbTVCloseCB.append(self._on_close_window)
self.toggleMainScreen()
self.enableRCMouse(True)
+
fbClass.getInstance().lock()
eRCInput.getInstance().lock()
+
+ setResolution(1280, 720)
+
command_util = getCommandUtil()
command_util.sendCommand('OP_BROWSER_OPEN_URL', data, mode)
self._terminatedBrowser = False
if data is None:
return
(url, mode) = data
+ global _g_helper
+ if not _g_helper._is_browser_running():
+ message = _("Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu.")
+ self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
+ return
self.cbUrlText(url, mode)
def _cmd_on_OpenUrl(self):
global _g_helper
if not _g_helper._is_browser_running():
- message = "Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu."
+ message = _("Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu.")
self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
return
- self.session.openWithCallback(self.cbUrlText, VirtualKeyBoard, title=("Please enter URL here"), text='http://')
+ self.session.openWithCallback(self.cbUrlText, VirtualKeyBoard, title=(_("Please enter URL here")), text='http://')
def _cmd_on_About(self):
- self.session.open(MessageBox, 'Opera Web Browser Plugin v1.0', type = MessageBox.TYPE_INFO)
+ self.session.open(MessageBox, _('Opera Web Browser Plugin v1.0'), type = MessageBox.TYPE_INFO)
def _cmd_on_Exit(self):
self.close()
+ def _cb_cmdOnStartSTop(self):
+ self.keyMenu()
def _cmd_on_StartStop(self):
global _g_helper
if _g_helper is None:
return
- _g_helper.showBrowserConfigBox()
+ _g_helper.showBrowserConfigBox(self._cb_cmdOnStartSTop)
+
def _cmd_on_Bookmark(self):
url = self._currentPageUrl
if url is None:
def _cmd_on_OpenStartpage(self):
global _g_helper
if not _g_helper._is_browser_running():
- message = "Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu."
+ message = _("Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu.")
self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
return
mode = 0
self.session.open(BrowserHelpWindow)
def doCommand(self, command):
- cmd_map = {# modify menu
- 'Exit' :self._cmd_on_Exit
- ,'Help' :self._cmd_on_Help
- ,'About' :self._cmd_on_About
- ,'Open URL' :self._cmd_on_OpenUrl
- ,'Start/Stop' :self._cmd_on_StartStop
- ,'Bookmark' :self._cmd_on_Bookmark
- ,'Preference' :self._cmd_on_Preference
- ,'Return' :self._cmd_on_ReturnToBrowser
- ,'Open Startpage' :self._cmd_on_OpenStartpage
- }
+ # modify menu
+ cmd_map = {}
+ cmd_map[_('Exit')] = self._cmd_on_Exit
+ cmd_map[_('Help')] = self._cmd_on_Help
+ cmd_map[_('About')] = self._cmd_on_About
+ cmd_map[_('Open URL')] = self._cmd_on_OpenUrl
+ cmd_map[_('Start/Stop')] = self._cmd_on_StartStop
+ cmd_map[_('Bookmark')] = self._cmd_on_Bookmark
+ cmd_map[_('Preference')] = self._cmd_on_Preference
+ cmd_map[_('Return')] = self._cmd_on_ReturnToBrowser
+ cmd_map[_('Open Startpage')] = self._cmd_on_OpenStartpage
try:
cmd_map[command]()
except Exception, ErrMsg: print ErrMsg
def keyOK(self):
+ if not self.toggleMainScreenFlag:
+ self.keyMenu()
+ return
if not self.toggleListViewFlag:
self.keyDown()
return
#self._session.openWithCallback(self._cb_virtualKeyboardClosed, VirtualKeyBoard, title=("Please enter URL here"), text="")
fbClass.getInstance().lock()
eRCInput.getInstance().lock()
+ setResolution(1280, 720)
if self.toggleListViewFlag:
self.toggleMainScreen()
self._currentPageUrl = None
self.currentListView.pageUp()
self.keyUp()
-
-
def auto_start_main(reason, **kwargs):
if reason:
command_server = getCommandServer()
command_server.stop()
+from Screens.HelpMenu import HelpableScreen
def session_start_main(session, reason, **kwargs):
fbClass.getInstance().unlock()
eRCInput.getInstance().unlock()
+
+ from enigma import getDesktop
+ desktopSize = getDesktop(0).size()
+ setDefaultResolution(desktopSize.width(), desktopSize.height())
+
global _g_helper
_g_helper = session.open(HbbTVHelper)
+ HelpableScreen.__init__ = HelpableScreen__init__
+ HelpableScreen.session = session
+
+def HelpableScreen__init__(self):
+ if isinstance(self, HelpableScreen):
+ HelpableScreen.showManual = showManual
+
+ self["helpActions"] = ActionMap(["HelpbuttonActions"], {
+ "help_b" : self.showHelp,
+ "help_l" : self.showManual,
+ }, -2)
+
_g_clearBrowserDataTimer = eTimer()
+def showManual(self):
+ if not os.path.exists('/usr/local/manual'):
+ return
+
+ url = 'file:///usr/local/manual/main.html'
+ lang = language.getLanguage()
+ if lang == 'ru_RU' and os.path.exists('/usr/local/manual/ru_RU'):
+ url = 'file:///usr/local/manual/ru_RU/main.html'
+ elif lang == 'de_DE' and os.path.exists('/usr/local/manual/de_DE'):
+ url = 'file:///usr/local/manual/de_DE/main.html'
+
+ def _do_clean():
+ _g_clearBrowserDataTimer.stop()
+ try: _g_clearBrowserDataTimer.callback.remove(_do_clean)
+ except: pass
+ setPluginBrowser(None)
+ def clearBrowserData():
+ _g_clearBrowserDataTimer.callback.append(_do_clean)
+ _g_clearBrowserDataTimer.start(50)
+ setPluginBrowser(self.session.openWithCallback(clearBrowserData, OperaBrowser, url))
+
def plugin_start_main(session, **kwargs):
#session.open(OperaBrowser)
def _do_clean():
_g_helper.showBrowserConfigBox()
def Plugins(path, **kwargs):
- return [
- PluginDescriptor(where=PluginDescriptor.WHERE_AUTOSTART, fnc=auto_start_main),
- PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, needsRestart=True, fnc=session_start_main, weight=-10),
- PluginDescriptor(name="HbbTV Applications", where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_start_application),
- PluginDescriptor(name="Browser Start/Stop", where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_browser_config),
- PluginDescriptor(name="Opera Web Browser", description="start opera web browser", where=PluginDescriptor.WHERE_PLUGINMENU, needsRestart=True, fnc=plugin_start_main),
- ]
+ l = []
+ l.append(PluginDescriptor(where=PluginDescriptor.WHERE_AUTOSTART, fnc=auto_start_main))
+ l.append(PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, needsRestart=True, fnc=session_start_main, weight=-10))
+ l.append(PluginDescriptor(name=_("HbbTV Applications"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_start_application))
+ l.append(PluginDescriptor(name=_("Browser Start/Stop"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_browser_config))
+ l.append(PluginDescriptor(name=_("Opera Web Browser"), description=_("start opera web browser"), where=PluginDescriptor.WHERE_PLUGINMENU, needsRestart=True, fnc=plugin_start_main))
+
+ return l