All pastes #405446 Raw Edit

Something

public text v1 · immutable
·published 2007-03-21 19:18 UTC
rendered paste body
#!/usr/bin/python
import wx
import ConfigParser
import os
#-c"MY_COMMAND"

class MainFrame(wx.Frame):
    def __init__(self, parent, id, title):
        self.readcfg()
        wx.Frame.__init__(self, parent, id, title, (-1, -1), wx.Size(350, 200))
        panel = wx.Panel(self, -1)
        sizer = wx.BoxSizer(wx.VERTICAL)
        
        # Mods
        mod = wx.StaticBox(panel, -1, 'Select a mod')        
        mod_sizer = wx.StaticBoxSizer(mod)
        self.selectmod = wx.ComboBox(panel, -1, choices=self.mods, style=wx.CB_READONLY)
        mod_sizer.Add(self.selectmod, 1)

        #Buttons
        buttons = wx.StaticBox(panel, -1, '')
        button_sizer = wx.StaticBoxSizer(buttons,)
        
        button_sizer.Add(wx.Button(panel, 1, 'Quit'),1, wx.ALIGN_BOTTOM)
        button_sizer.Add(wx.Button(panel, 2, 'About'),1, wx.ALIGN_BOTTOM)
        button_sizer.Add(wx.Button(panel, 3, 'Launch!'),1, wx.ALIGN_BOTTOM)
        
        #Netplay
        net= wx.StaticBox(panel, -1, 'Multiplayer')
        net_sizer = wx.StaticBoxSizer(net, wx.VERTICAL)
        
        self.server = wx.CheckBox(panel, -1, 'Connect to Server')
        if self.netplay=='true':
            self.server.SetValue(True)
        else:
            self.server.SetValue(False)
        #net_sizer.Add(wx.CheckBox(panel, -1, 'Splitscreen'))
        self.serverip =wx.TextCtrl(panel, -1, self.ip, size=(200, -1))
        net_sizer.Add(self.server)
        net_sizer.Add(self.serverip)
        
        sizer.Add(mod_sizer, 0, wx.EXPAND)
        sizer.Add(net_sizer, 1, wx.EXPAND)
        sizer.Add(button_sizer, 0, wx.EXPAND)
        
       
        panel.SetSizer(sizer)
        self.Centre()
        self.Bind(wx.EVT_BUTTON, self.quit, id=1)
        self.Bind(wx.EVT_BUTTON, self.about, id=2)
        self.Bind(wx.EVT_BUTTON, self.launch, id=3)
        self.Bind(wx.EVT_COMBOBOX, self.OnSelect)

    def readcfg(self):
        config = ConfigParser.ConfigParser()
        config.read('guslauncher.cfg')
        self.ip = config.get('MULTIPLAYER', 'ip')
        self.splitscreen= config.get('MULTIPLAYER', 'splitscreen')
        self.netplay=config.get('MULTIPLAYER', 'netplay')
        self.mods = config.get('MODS','mods').split(',')
        self.moddirs = config.get('MODS','moddirs').split(',')
        print self.ip, self.splitscreen, self.netplay, self.mods, self.moddirs
        if len(self.mods) != len(self.moddirs):
            warning = wx.MessageDialog(self, 'a', 'Warning', wx.OK | wx.ICON_WARNING)
            warning.ShowModal()
            warning.Destroy()

            
    
    def OnSelect(self, event):
        item = event.GetSelection()
        self.currentmod= self.moddirs[item]
        
        
    def quit(self, event):
        self.Close(True)
        
    def launch(self, launch):
        guscmd = 'gusanos -c '
        if self.netplay=='true':
            guscmd += '\'connect '+str(self.serverip.GetValue())+'\''
        os.system(guscmd)
        print guscmd
        
    def about(self, about):
        popup = wx.MessageDialog(self, 'Gusanos Launcher by mots\n'
        'Version 0.1\n\n'
        'visit #liero on irc.quakenet.org for more information', 'About', wx.OK | wx.ICON_INFORMATION)
        popup.ShowModal()
        popup.Destroy()

class App(wx.App):
     def OnInit(self):
         frame = MainFrame(None, -1, 'Gusanos Launcher')
         frame.Show(True)
         return True

app = App(0)
app.MainLoop()