Esempio n. 1
0
class IconPool(object):

    _GameShellIconPath = SkinMap("gameshell/icons/")
    _Icons = {}
    _Sizes = {}

    def __init__(self):
        self._Icons = {}

    def Init(self):

        files = os.listdir(self._GameShellIconPath)
        for i in files:
            if os.path.isfile(self._GameShellIconPath + "/" +
                              i) and i.endswith(".png"):
                keyname = i.split(".")[0]
                self._Icons[keyname] = pygame.image.load(
                    self._GameShellIconPath + "/" + i).convert_alpha()
                self._Sizes[keyname] = self._Icons[keyname].get_size()

    def Width(self, keyname):
        if keyname in self._Sizes:
            return self._Sizes[keyname][0]

    def Height(self, keyname):
        if keyname in self._Sizes:
            return self._Sizes[keyname][1]
Esempio n. 2
0
class IconPool(object):

    _GameShellIconPath = SkinMap("gameshell/icons/")
    _Icons = {}

    def __init__(self):
        self._Icons = {}

    def Init(self):

        files = os.listdir(self._GameShellIconPath)
        for i in files:
            if os.path.isfile(self._GameShellIconPath + "/" +
                              i) and i.endswith(".png"):
                keyname = i.split(".")[0]
                self._Icons[keyname] = pygame.image.load(
                    self._GameShellIconPath + "/" + i).convert_alpha()
Esempio n. 3
0
# -*- coding: utf-8 -*-

import pygame
import os

##local import
from constants import Width, Height, ICON_TYPES, ALIGN
from util_funcs import FileExists, midRect, SkinMap
from icon_item import IconItem
from fonts import fonts
from multi_icon_item import MultiIconItem
from icon_pool import MyIconPool
from libs.roundrects import aa_round_rect

icon_base_path = SkinMap("gameshell/footbar_icons/")


class FootBarIcon(MultiIconItem):
    def TotalWidth(self):
        return self._Width + self._Label._Width

    def Draw(self):
        if self._Align == ALIGN["VCenter"]:  #default
            if self._Label != None:
                self._Label._PosX = self._PosX - self._Label._Width / 2
                self._Label._PosY = self._PosY + self._Height / 2 + 12

        elif self._Align == ALIGN["HLeft"]:
            if self._Label != None:
                self._Label._PosX = self._PosX + self._Width / 2 + 3
                self._Label._PosY = self._PosY - self._Label._Height / 2
Esempio n. 4
0
##local import
from constants import ICON_TYPES, Width, Height
from fonts import fonts
from icon_item import IconItem
from multi_icon_item import MultiIconItem
from icon_pool import MyIconPool

from util_funcs import midRect, SwapAndShow, SkinMap

from config import Battery

from libs.roundrects import aa_round_rect

from libs.DBUS import is_wifi_connected_now, wifi_strength

icon_base_path = SkinMap("gameshell/titlebar_icons/")


class TitleBar:
    _PosX = 0
    _PosY = 0
    _Width = Width
    _Height = 25
    _BarHeight = 24.5
    _LOffset = 3
    _ROffset = 3
    _Icons = {}
    _icon_width = 18
    _icon_height = 18
    _BorderWidth = 1
    _CanvasHWND = None
Esempio n. 5
0
from pygame.locals import *
from sys import exit
import os
import sys

from datetime import datetime

import base64
from beeprint import pp

from util_funcs import midRect, SkinMap
from fonts import fonts

from skin_manager import MySkinManager

BlankPng = SkinMap("gameshell/blank.png")  # 80x80
## use blank circle as bg, Two alpha As Icon Label
#Upper and Lower


class UntitledIcon(object):
    _PosX = 0
    _PosY = 0
    _Width = 80
    _Height = 80

    _Words = ["G", "s"]
    _FontObj = fonts["varela40"]

    _BG = None  # initial surface
Esempio n. 6
0
    def ReadTheDirIntoPages(self, _dir, pglevel, cur_page):

        if FileExists(_dir) == False and os.path.isdir(_dir) == False:
            return

        files = os.listdir(_dir)
        for i in sorted(files):
            if os.path.isdir(_dir + "/" + i):  # TOPLEVEL only is dir
                if pglevel == 0:
                    page = Page()
                    page._Name = self.ExtraName(i)
                    page._Icons = []
                    self._Pages.append(page)
                    self.ReadTheDirIntoPages(_dir + "/" + i, pglevel + 1,
                                             self._Pages[len(self._Pages) - 1])
                else:  ## On CurPage now
                    i2 = self.ExtraName(i)
                    iconitem = IconItem()
                    iconitem._FileName = i
                    iconitem._CmdPath = ""
                    iconitem.AddLabel(i2, self._IconFont)
                    if FileExists(_dir + "/" + i + "/" + i2 +
                                  ".png"):  ### 20_Prog/Prog.png , cut 20_
                        iconitem._ImageName = _dir + "/" + i + "/" + i2 + ".png"
                    elif FileExists(SkinMap(_dir + "/" + i2 + ".png")):
                        iconitem._ImageName = SkinMap(_dir + "/" + i2 + ".png")
                    else:
                        untitled = UntitledIcon()
                        untitled.Init()
                        if len(i2) > 1:
                            untitled.SetWords(i2[:2])
                        elif len(i2) == 1:
                            untitled.SetWords([i2[0], i2[0]])
                        else:
                            untitled.SetWords(["G", "s"])

                        iconitem._ImgSurf = untitled.Surface()
                        iconitem._ImageName = ""

                    if self.IsPythonPackage(_dir + "/" + i):
                        iconitem._MyType = ICON_TYPES["FUNC"]
                        sys.path.append(_dir)
                        iconitem._CmdPath = __import__(i)
                        init_cb = getattr(iconitem._CmdPath, "Init", None)
                        if init_cb != None:
                            if callable(init_cb):
                                iconitem._CmdPath.Init(self)
                                cur_page._Icons.append(iconitem)

                    elif self.IsEmulatorPackage(_dir + "/" + i):
                        obj = {}
                        obj["ROM"] = ""
                        obj["ROM_SO"] = ""
                        obj["EXT"] = []
                        obj["EXCLUDE"] = []
                        obj["FILETYPE"] = "file"
                        obj["LAUNCHER"] = ""
                        obj["TITLE"] = "Game"
                        obj["SO_URL"] = ""
                        obj["RETRO_CONFIG"] = ""  ##
                        try:
                            f = open(_dir + "/" + i + "/" + emulator_flag)
                        except IOError:
                            print("action config open failed")
                            return
                        else:
                            with f:
                                content = f.readlines()
                                content = [x.strip() for x in content]
                        for c in content:
                            pis = c.split("=")
                            if len(pis) > 1:
                                if "EXT" in pis[0]:
                                    obj[pis[0]] = pis[1].split(",")
                                elif "EXCLUDE" in pis[0]:
                                    obj[pis[0]] = pis[1].split(",")
                                else:
                                    obj[pis[0]] = pis[1]

                        if FileExists(_dir + "/" + i + "/retroarch-local.cfg"):
                            obj["RETRO_CONFIG"] = CmdClean(
                                os.path.abspath(_dir + "/" + i +
                                                "/retroarch-local.cfg"))
                            print("a local retroarch cfg:",
                                  obj["RETRO_CONFIG"])

                        em = MyEmulator()
                        em._Emulator = obj

                        em.Init(self)
                        iconitem._CmdPath = em
                        iconitem._MyType = ICON_TYPES["Emulator"]
                        cur_page._Icons.append(iconitem)

                    elif self.IsExecPackage(_dir + "/" + i):
                        iconitem._MyType = ICON_TYPES["EXE"]
                        iconitem._CmdPath = os.path.realpath(_dir + "/" + i +
                                                             "/" + i2 + ".sh")
                        MakeExecutable(iconitem._CmdPath)
                        cur_page._Icons.append(iconitem)
                    else:
                        iconitem._MyType = ICON_TYPES["DIR"]
                        iconitem._LinkPage = Page()
                        iconitem._LinkPage._Name = i2
                        cur_page._Icons.append(iconitem)
                        self.ReadTheDirIntoPages(_dir + "/" + i, pglevel + 1,
                                                 iconitem._LinkPage)

            elif os.path.isfile(_dir + "/" + i) and pglevel > 0:
                if i.lower().endswith(icon_ext):
                    i2 = self.ExtraName(i)

                    #cmd      =  ReadTheFileContent(_dir+"/"+i)
                    iconitem = IconItem()
                    iconitem._FileName = i
                    iconitem._CmdPath = os.path.realpath(_dir + "/" + i)
                    MakeExecutable(iconitem._CmdPath)
                    iconitem._MyType = ICON_TYPES["EXE"]
                    if FileExists(
                            SkinMap(_dir + "/" + ReplaceSuffix(i2, "png"))):
                        iconitem._ImageName = SkinMap(_dir + "/" +
                                                      ReplaceSuffix(i2, "png"))
                    else:
                        untitled = UntitledIcon()
                        untitled.Init()
                        if len(i2) > 1:
                            untitled.SetWords(i2[:2])
                        elif len(i2) == 1:
                            untitled.SetWords([i2[0], i2[0]])
                        else:
                            untitled.SetWords(["G", "s"])

                        iconitem._ImgSurf = untitled.Surface()

                        iconitem._ImageName = ""

                    iconitem.AddLabel(i2.split(".")[0], self._IconFont)
                    iconitem._LinkPage = None
                    cur_page._Icons.append(iconitem)