def __init__(self, session, args=0): # some default values - be careful if you change this... stone_width = 30 stone_height = 30 stone_space = 4 self.maxslices = 4 self.stonesX = 15 self.stonesY = 10 self.maxstones = self.stonesX * self.stonesY path = "/usr/lib/enigma2/python/Plugins/Extensions/eSame/data/" # Load bitmaps... self.maps = [] for color in ["red", "blue", "green"]: tmp = [] for x in range(self.maxslices): tmp.append(LoadPixmap(path + color + str(x) + ".png")) self.maps.append(tmp) # solve focus coordinates and generate part of skin... self.focuslist = [] skincontent = "" posX = -1 for x in range(self.maxstones): posY = x / self.stonesX posX += 1 if posX >= self.stonesX: posX = 0 absX = stone_space + (posX * (stone_space + stone_width)) absY = stone_space + (posY * (stone_space + stone_height)) self.focuslist.append((absX + 5, absY + 5)) skincontent += "<widget name=\"stone" + str( x) + "\" position=\"" + str(absX + 5) + "," + str( absY + 5 ) + "\" size=\"" + str(stone_width) + "," + str( stone_height ) + "\" zPosition=\"2\" transparent=\"1\" alphatest=\"on\" />" # solve window size... size_w = 5 + stone_width * self.stonesX + stone_space * (self.stonesX - 1) + 5 size_h = 5 + stone_height * self.stonesY + stone_space * ( self.stonesY - 1) + 85 # get framebuffer resolution... desk = getDesktop(0) w = int(desk.size().width()) h = int(desk.size().height()) # display window in center... x0 = (w - size_w) / 2 y0 = (h - size_h) / 2 # solve skin... self.skin = "<screen position=\""+str(x0)+","+str(y0)+"\" size=\"" + str(size_w) + "," + str(size_h) + "\" title=\"eSame v0.1\" >" +\ "<widget name=\"frame\" position=\""+str(5+stone_space)+","+str(5+stone_space)+"\" size=\""+str(stone_width)+","+str(stone_height)+"\" pixmap=\""+path+"focus.png\" zPosition=\"1\" alphatest=\"on\" />" +\ "<widget name=\"lbColors\" position=\"5,"+str(size_h-85)+"\" size=\"170,40\" valign=\"center\" font=\"Regular;17\" />" +\ "<widget name=\"lbBoard\" position=\"175,"+str(size_h-85)+"\" size=\"140,40\" valign=\"center\" font=\"Regular;17\" />" +\ "<widget name=\"lbMarked\" position=\"310,"+str(size_h-85)+"\" size=\"100,40\" valign=\"center\" font=\"Regular;17\" />" +\ "<widget name=\"lbScore\" position=\"410,"+str(size_h-85)+"\" size=\"110,40\" valign=\"center\" font=\"Regular;17\" />" +\ "<ePixmap name=\"green\" position=\"5,"+str(size_h-45)+"\" zPosition=\"3\" size=\"140,40\" pixmap=\"buttons/green.png\" transparent=\"1\" alphatest=\"on\" /> \n" +\ "<ePixmap name=\"yellow\" position=\""+str(size_w-145)+","+str(size_h-45)+"\" zPosition=\"3\" size=\"140,40\" pixmap=\"buttons/yellow.png\" transparent=\"1\" alphatest=\"on\" /> \n" +\ "<widget name=\"key_green\" position=\"5,"+str(size_h-45)+"\" zPosition=\"4\" size=\"140,40\" valign=\"center\" halign=\"center\" font=\"Regular;18\" transparent=\"1\" foregroundColor=\"white\" shadowColor=\"black\" shadowOffset=\"-1,-1\" /> \n" +\ "<widget name=\"key_yellow\" position=\""+str(size_w-145)+","+str(size_h-45)+"\" zPosition=\"4\" size=\"140,40\" valign=\"center\" halign=\"center\" font=\"Regular;18\" transparent=\"1\" foregroundColor=\"white\" shadowColor=\"black\" shadowOffset=\"-1,-1\" /> \n" +\ skincontent + "</screen>" Screen.__init__(self, session) self["actions"] = ActionMap( ["OkCancelActions", "WizardActions", "ColorActions"], { "cancel": self.Exit, "ok": self.key_ok, "left": self.key_left, "right": self.key_right, "up": self.key_up, "down": self.key_down, "green": self.key_green, "yellow": self.key_yellow, }, -1) self["frame"] = MovingPixmap() self["lbColors"] = Label() self["lbBoard"] = Label() self["lbMarked"] = Label() self["lbScore"] = Label() self["key_green"] = Button("new game") self["key_yellow"] = Button("reset game") for x in range(self.maxstones): self["stone" + str(x)] = Pixmap() self.maxentry = self.maxstones - 1 self.stonefield = StoneField(self.stonesX, self.stonesY, 3, 0) self.onLayoutFinish.append(self.startup)