Beispiel #1
0
 def definetiles(self):
     self.uifont = self.zoom.font
     try:
         self.status.scale(self.uifont)
         for d in self.display:
             d.scale(self.uifont)
     except AttributeError:
         self.status = StatusBar(self.game, self._player, self.zoom)
         self.display = [GameScreen(self.game, self._player,
                                    self.uifont, self.zoom,
                                    self._pushdisplay,
                                    self._popdisplay)]
Beispiel #2
0
    def createWidgets(self):
        self.selectLabel = ttk.Label(self, text = "Select:")
        self.selectLabel.grid(column = 0, row = 0, padx = 10, pady = 5)
        self.select = Select(self, textvariable = self.selectVar)
        self.select.grid(column = 1, row = 0, sticky = (E, W))

        self.searchLabel = ttk.Label(self, text = "Search:")
        self.searchLabel.grid(column = 2, row = 0, padx = 10, pady = 5)
        self.search = Search(self, textvariable = self.searchVar)
        self.search.grid(column = 3, row = 0, sticky = (E, W))

        self.filestorage = FileStorage(self)
        self.filetree = FileTree(self)
        self.filetree.grid(column = 0, row = 1, rowspan = 4, sticky = (N, S, E, W), columnspan = 4)

        self.scrollbar = ttk.Scrollbar(self, orient = VERTICAL, command = self.filetree.yview)
        self.scrollbar.grid(column = 4, row = 1, rowspan = 4, sticky = (N, S, E))
        self.filetree.configure(yscrollcommand = self.scrollbar.set)

        self.tags = Tags(self)
        self.tags.grid(column = 5, row = 2, sticky = (E, W), padx = 5)

        self.tagsLab = ttk.Label(text = "Tags")
        self.tagsLab.grid(column = 5, row = 1, padx = 5, pady = 2)

        self.notes = Notes(self)
        self.notes.grid(column = 5, row = 4, sticky = (N, S, E, W), padx = 5)

        self.notesLab = ttk.Label(text = "Notes")
        self.notesLab.grid(column = 5, row = 3, padx = 5, pady = 2)

        self.scrollNotes = ttk.Scrollbar(self, orient = VERTICAL, command = self.notes.yview)
        self.scrollNotes.grid(column = 6, row = 4, sticky = (N, S, W))
        self.notes.configure(yscrollcommand = self.scrollNotes.set)

        self.buttons = Buttons(self)
        self.buttons.grid(row = 5, column = 0, columnspan = 5, pady = 5, sticky = (E, W))

        self.statusBar = StatusBar(self)
        self.statusBar.grid(row = 6, column = 0, columnspan = 5, padx = 5, pady = 5, sticky = (E, W))        
Beispiel #3
0
class GUI(Tk):
    "represents GUI"
    def __init__(self):
        super().__init__()
   
        self.option_add("*tearOff", FALSE)
        self.initialized = False
        self.title("Papyer")
        
        x, y = 1500, 500
        self.minsize(x, y)
        placeWindow(self, x, y)
        
        self.options = Options(self)
        self["menu"] = TopMenu(self)        

        self.protocol("WM_DELETE_WINDOW", self.closeFun)

        self.base = os.getcwd()

        self.selectVar = StringVar()
        self.searchVar = StringVar()

        self.createWidgets()

        self.columnconfigure(1, weight = 1)
        self.columnconfigure(3, weight = 1)
        self.columnconfigure(5, weight = 1)
        self.rowconfigure(4, weight = 1)

        self.bind("<Control-d>", lambda e: self.filetree.keepDuplicates())
        self.bind("<Control-a>", lambda e: self.filetree.selectAll())
        
        self.mainloop()



    def refresh(self):
        # do in a smarter way - check changes in the files
        self.filestorage.save()
        self.filetree.saveSettings()
        selected = self.filetree.selection()
        self.createWidgets()
        self.filetree.selection_set(selected)


    def createWidgets(self):
        self.selectLabel = ttk.Label(self, text = "Select:")
        self.selectLabel.grid(column = 0, row = 0, padx = 10, pady = 5)
        self.select = Select(self, textvariable = self.selectVar)
        self.select.grid(column = 1, row = 0, sticky = (E, W))

        self.searchLabel = ttk.Label(self, text = "Search:")
        self.searchLabel.grid(column = 2, row = 0, padx = 10, pady = 5)
        self.search = Search(self, textvariable = self.searchVar)
        self.search.grid(column = 3, row = 0, sticky = (E, W))

        self.filestorage = FileStorage(self)
        self.filetree = FileTree(self)
        self.filetree.grid(column = 0, row = 1, rowspan = 4, sticky = (N, S, E, W), columnspan = 4)

        self.scrollbar = ttk.Scrollbar(self, orient = VERTICAL, command = self.filetree.yview)
        self.scrollbar.grid(column = 4, row = 1, rowspan = 4, sticky = (N, S, E))
        self.filetree.configure(yscrollcommand = self.scrollbar.set)

        self.tags = Tags(self)
        self.tags.grid(column = 5, row = 2, sticky = (E, W), padx = 5)

        self.tagsLab = ttk.Label(text = "Tags")
        self.tagsLab.grid(column = 5, row = 1, padx = 5, pady = 2)

        self.notes = Notes(self)
        self.notes.grid(column = 5, row = 4, sticky = (N, S, E, W), padx = 5)

        self.notesLab = ttk.Label(text = "Notes")
        self.notesLab.grid(column = 5, row = 3, padx = 5, pady = 2)

        self.scrollNotes = ttk.Scrollbar(self, orient = VERTICAL, command = self.notes.yview)
        self.scrollNotes.grid(column = 6, row = 4, sticky = (N, S, W))
        self.notes.configure(yscrollcommand = self.scrollNotes.set)

        self.buttons = Buttons(self)
        self.buttons.grid(row = 5, column = 0, columnspan = 5, pady = 5, sticky = (E, W))

        self.statusBar = StatusBar(self)
        self.statusBar.grid(row = 6, column = 0, columnspan = 5, padx = 5, pady = 5, sticky = (E, W))        
        

    def closeFun(self):
        "ask for saving files on exit"
        self.filetree.saveSettings()
        self.filestorage.save()
        self.options.save()
        self.destroy()
Beispiel #4
0
class Renderer(object):
    def __init__(self, game, player, zoom):
        self.game = game
        self._player = player
        self.zoom = zoom
        
        self.definetiles()

        self.makescreen(display.get_surface().get_size())

    @property
    def dt(self):
        return self.display[-1].dt

    def definetiles(self):
        self.uifont = self.zoom.font
        try:
            self.status.scale(self.uifont)
            for d in self.display:
                d.scale(self.uifont)
        except AttributeError:
            self.status = StatusBar(self.game, self._player, self.zoom)
            self.display = [GameScreen(self.game, self._player,
                                       self.uifont, self.zoom,
                                       self._pushdisplay,
                                       self._popdisplay)]
                
    def makebackground(self):
        self.status.resize(self.statussurf.get_size())
        for d in self.display:
            d.resize(self.displaysurf.get_size())

    def makescreen(self, size):
        self.screen = display.set_mode(size, HWSURFACE | RESIZABLE)

        self.statussurf = self.screen.subsurface(Rect((0, size[1]-2 * self.uifont.get_linesize()),
                                                      (size[0],
                                                       2 * self.uifont.get_linesize())))
        self.displaysurf = self.screen.subsurface(Rect((0, 0),
                                                       (size[0], size[1]-2 * self.uifont.get_linesize())))
        
        self.makebackground()

    def _pushdisplay(self, child):
        self.display.append(child)
        self.definetiles()
        self.makebackground()

    def _popdisplay(self):
        del self.display[-1]
        self.definetiles()

    def step(self):
        for e in event.get():
            
            handled = self.display[-1].handle(e)
                
            if not handled:
                if e.type == QUIT:
                    self.game.done = True
                elif e.type == KEYDOWN:
                    pressed = key.get_pressed()
                    shifted = pressed[K_LSHIFT] or pressed[K_RSHIFT]
                    scroll = 10 if shifted else 1
                    
                    if e.key == K_ESCAPE:
                        self.game.done = True
                        
                    elif e.key == K_SPACE:
                        self.game.paused = not self.game.paused
                                            
                    elif e.unicode == '-':
                        timeindex = self.game.timescales.index(0.1 / self.game.dt)
                        if timeindex > 0:
                            timeindex -= 1
                            self.game.dt = 0.1 / self.game.timescales[timeindex]
                    elif e.unicode == '+':
                        timeindex = self.game.timescales.index(0.1 / self.game.dt)
                        if timeindex < len(self.game.timescales)-1:
                            timeindex += 1
                            self.game.dt = 0.1 / self.game.timescales[timeindex]
                        
                    elif e.unicode == 'd':
                        import pdb
                        pdb.set_trace()
                            
                elif e.type == MOUSEBUTTONUP:
                    if e.button == 4:
                        self.zoom.width += 2
                        self.zoom.height += 2
                        self.makescreen(self.screen.get_size())
                        self.definetiles()
                        
                    elif e.button == 5:
                        self.zoom.width = max(self.zoom.width - 2, 2)
                        self.zoom.height = max(self.zoom.height - 2, 4)
                        self.makescreen(self.screen.get_size())
                        self.definetiles()
                        
                elif e.type == VIDEORESIZE:
                    self.makescreen(e.size)
                    self.definetiles()

        self.display[-1].draw(self.displaysurf)
        self.status.draw(self.statussurf)

        display.flip()

        if self.game.done:
            self.game = None
            return None
        else:
            return self