Example #1
0
File: gui.py Project: jiiieff/pyf
	def loadGame(self, name):
		from pyf.interface.package import Importer
		
		self.zip = Importer(name)
		self.game = self.zip.game()
Example #2
0
class GameWindow(wx.Frame):
    ID_CLOSE_WINDOW = 300

    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, size=(400, 700))

        self.html = HTMLDisplay(self)
        self.input = TextInput(self)
        self.button = wx.Button(self, label='')

        self.Connect(self.input.GetId(), wx.ID_ANY,
                     wx.wxEVT_COMMAND_TEXT_ENTER, self.newLine)

        self.sizer = wx.BoxSizer(wx.VERTICAL)

        self.lowSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.lowSizer.Add(self.button, flag=wx.EXPAND, proportion=0)
        self.lowSizer.Add(self.input, flag=wx.EXPAND, proportion=1)

        self.sizer.Add(self.html, 1, wx.EXPAND)
        self.sizer.Add(self.lowSizer, flag=wx.EXPAND, proportion=0)

        self.SetSizer(self.sizer)
        self.SetAutoLayout(1)

        self.Centre()

        m = GameMenuBar()
        wx.EVT_MENU(self, m.CHANGE_FONT, lambda event: self.html.setFont())
        self.SetMenuBar(m)

        self.Show(True)
        self.input.SetFocus()

    def onClose(self, event):
        self.Close()

    def showLine(self):
        if self.html.nextLine():
            self.input.Enable()
            self.input.SetFocus()
            self.input.Clear()
        else:
            self.input.Disable()
            self.html.SetFocus()

            self.html.Bind(wx.EVT_KEY_DOWN, self.onKeyDown)
            self.input.SetValue('[More]')

    def onKeyDown(self, event):
        self.showLine()

    def newLine(self, event):
        string = self.input.newLine()
        string = string.encode()

        self.html.appendLines(
            ['<p>' + self.game.actor.state.request + ' ' + string + '</p>'] +
            self.game.input(string).lines)
        self.showLine()

        self.button.SetLabel(self.game.actor.state.request)

        if self.game.actor.state == pyf.states.Finished:
            self.input.Disable()

    def initGame(self):
        self.html.SetPage('')
        self.input.Clear()

        # show initial description
        o = self.game.getIntro()
        self.html.appendLines(o.lines)
        self.showLine()

        self.SetTitle(self.game.name)

        self.button.SetLabel(self.game.actor.state.request)
        self.input.Enable()

    def loadGame(self, name):
        from pyf.interface.package import Importer

        self.zip = Importer(name)
        self.game = self.zip.game()
Example #3
0
File: gui.py Project: jiiieff/pyf
class GameWindow(wx.Frame):
	ID_CLOSE_WINDOW = 300
	
	def __init__(self, parent, id):
		wx.Frame.__init__(self, parent, id, size=(400, 700))
		
		self.html = HTMLDisplay(self)
		self.input = TextInput(self)
		self.button = wx.Button(self, label='')
		
		self.Connect(self.input.GetId(), wx.ID_ANY, wx.wxEVT_COMMAND_TEXT_ENTER, self.newLine)

		self.sizer = wx.BoxSizer(wx.VERTICAL)
		
		self.lowSizer = wx.BoxSizer(wx.HORIZONTAL)
		self.lowSizer.Add(self.button,flag=wx.EXPAND, proportion=0)
		self.lowSizer.Add(self.input,flag=wx.EXPAND, proportion=1)
		
		self.sizer.Add(self.html,1,wx.EXPAND)
		self.sizer.Add(self.lowSizer, flag=wx.EXPAND, proportion=0)
		
		self.SetSizer(self.sizer)
		self.SetAutoLayout(1)
		
		self.Centre()
		
		m = GameMenuBar()
		wx.EVT_MENU(self, m.CHANGE_FONT, lambda event: self.html.setFont())
		self.SetMenuBar(m)
		
		self.Show(True)
		self.input.SetFocus()
		
	def onClose(self, event):
		self.Close()
		
	def showLine(self):
		if self.html.nextLine():
			self.input.Enable()
			self.input.SetFocus()
			self.input.Clear()
		else:
			self.input.Disable()
			self.html.SetFocus()

			self.html.Bind(wx.EVT_KEY_DOWN, self.onKeyDown)
			self.input.SetValue('[More]')
			
	def onKeyDown(self, event):
		self.showLine()
		
	def newLine(self, event):
		string = self.input.newLine()
		string = string.encode()
		
		self.html.appendLines(['<p>' + self.game.actor.state.request +' '+ string + '</p>'] + self.game.input(string).lines)
		self.showLine()
		
		self.button.SetLabel(self.game.actor.state.request)
		
		if self.game.actor.state == pyf.states.Finished:
			self.input.Disable()
		
	def initGame(self):
		self.html.SetPage('')
		self.input.Clear()
		
		# show initial description
		o = self.game.getIntro()
		self.html.appendLines(o.lines)
		self.showLine()
		
		self.SetTitle(self.game.name)
		
		self.button.SetLabel(self.game.actor.state.request)
		self.input.Enable()
		
	def loadGame(self, name):
		from pyf.interface.package import Importer
		
		self.zip = Importer(name)
		self.game = self.zip.game()
Example #4
0
    def loadGame(self, name):
        from pyf.interface.package import Importer

        self.zip = Importer(name)
        self.game = self.zip.game()