Exemplo n.º 1
0
 def __init__(self, WinMain):
     """setup cp viewer window"""
     #set main window
     self.WinMain = WinMain
     self.layout_filename = ''
     self.cpviewer_ok = True
     #open cpviewer viewer ini
     self.cpviewer_ini = MameWahIni(os.path.join(CONFIG_DIR, 'cpviewer.ini'), 'default')
     if os.path.exists(os.path.join(CONFIG_DIR, 'ini', self.WinMain.current_emu + '.cpv')):
         self.cpviewer_ini = MameWahIni(os.path.join(CONFIG_DIR, 'ini', self.WinMain.current_emu + '.cpv'), 'default')
     self.ctrls_ini_filename = self.cpviewer_ini.get('controls_ini_file')
     if not os.path.isfile(self.ctrls_ini_filename):
         self.WinMain.log_msg("Warning: controls file: [%s] does not exist" % (self.ctrls_ini_filename))
         self.cpviewer_ok = False
     self.layout_filename = self.cpviewer_ini.get('viewer_layout')
     if not os.path.exists(self.layout_filename):
         self.WinMain.log_msg("Warning: CPViewer layout file: [%s] does not exist" % (self.layout_filename))
         self.cpviewer_ok = False
     #build gui
     self.winCPViewer = gtk.Fixed()
     self.winCPViewer.set_has_window(True)
     self.imgBackground = gtk.Image()
     self.winCPViewer.add(self.imgBackground)
     self.WinMain.fixd.add(self.winCPViewer)
     self.imgBackground.show()
     self.winCPViewer.show()
     self.ctrls_ini = self.get_controls_ini(self.ctrls_ini_filename)
     if self.ctrls_ini is None:
         self.cpviewer_ok = False
     self.app_number = 0
Exemplo n.º 2
0
 def __init__(self, glade_filename, window_name, emu_name, emu_list_idx):
     """build the window"""
     WahCade.__init__(self)
     GladeSupport.__init__(self, glade_filename, window_name,
                           constants.app_name)
     self.config_dir = CONFIG_DIR
     self.emu_name = emu_name
     self.emu_list_idx = emu_list_idx
     #games list
     self.tvwList, self.lsList, self.tvwsList = self.setup_treeview(
         columns=[
             'Game Name', 'ROM Name', 'Year', 'Manufacturer', 'Clone Of',
             'Rom Of', 'Display Type', 'Screen Type', 'Controller Type',
             'Driver Status', 'Colour Status', 'Sound Status', 'Category'
         ],
         column_types=[gobject.TYPE_STRING] * self.NUM_COLS,
         container=self.scwList,
         edit_cell_cb=self.on_tvwList_edited,
         resizeable_cols=True,
         highlight_rows=False)
     #self.tvwList.connect('row-activated', self.on_tvwList_activated)
     self.tvwList.connect('key-release-event', self.on_tvwList_key_event)
     #activate multiple selection mode on tvwsList
     self.tvwsList.set_mode(gtk.SELECTION_MULTIPLE)
     #load lists
     i = 0
     emu_game_lists = []
     while True:
         ini_file = os.path.join(self.config_dir, 'ini',
                                 '%s-%s.ini' % (self.emu_name, i))
         if os.path.isfile(ini_file):
             list_ini = MameWahIni(ini_file)
             emu_game_lists.append(list_ini.get('list_title'))
             i += 1
         else:
             break
     l = ['%s: %s' % (i, r) for i, r in enumerate(emu_game_lists)]
     self.setup_combo_box(self.cboList, l)
     #setup filters & emu ini
     emu_ini_filename = os.path.join(self.config_dir, 'ini',
                                     '%s.ini' % (self.emu_name))
     if os.path.isfile(emu_ini_filename):
         self.emu_ini = MameWahIni(emu_ini_filename)
         #filters._mameinfo_file = os.path.join(self.emu_ini.get('dat_file'))
         filters._catver_ini = os.path.join(
             self.emu_ini.get('catver_ini_file'))
     else:
         print _("Error: Emulator Ini file: [%s] doesn't exist" %
                 (emu_ini_filename))
     #load filter
     self.new_iter = None
     self.new_path = None
     self.new_col = 0
     self.list_altered = False
     self.cboList.set_active(self.emu_list_idx)
Exemplo n.º 3
0
 def build_filelist(self,
                    type,
                    ext="ini",
                    regex="(?<=-)\d+",
                    emu="",
                    sep=""):
     """return array of files numbers matching regex value"""
     filelist = []
     fileset = glob.glob(
         os.path.join(CONFIG_DIR, ext, emu + sep + '*.' + ext))
     for file in fileset:
         m = re.search(regex, file)
         if m is not None:
             if type == "int":
                 filelist.append(self.return_listnum(file))
             elif type == "glist":
                 if os.path.isfile(file):
                     list_ini = MameWahIni(file)
                     filelist.append('%s: %s' %
                                     (self.return_listnum(file),
                                      list_ini.get('list_title')))
             else:
                 filelist.append(file)
     filelist.sort()
     return filelist
Exemplo n.º 4
0
 def __init__(self, glade_filename, window_name, WinSetup):
     """build the dialog"""
     GladeSupport.__init__(self, glade_filename, window_name, APP_NAME)
     self.dlgAddEmu.set_transient_for(WinSetup.winSetup)
     self.dlgAddEmu.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
     #winsetup class
     self.WinSetup = WinSetup
     #create new emulator list
     self.tvw, self.ls, self.tvws = self.setup_treeview(
         columns = [_('Select an Emulator Template...')],
         column_types = [gobject.TYPE_STRING, gobject.TYPE_STRING,
             gobject.TYPE_STRING],
         container = self.scw,
         resizeable_cols = False)
     #get list of available templates
     emu_ini_files = glob.glob(os.path.join(APP_PATH, 'templates', '*.ini'))
     for emu_ini in emu_ini_files:
         ini = MameWahIni(emu_ini)
         if not ini.has_option('list_title'):
             basename = os.path.splitext(os.path.basename(emu_ini))[0]
             self.ls.append(
                 ('%s (%s)' % (ini.get('emulator_title'), basename),
                 basename,
                 emu_ini))
     #set dialog size
     num = len(self.ls)
     if num > 10:
         num = 10
     self.dlgAddEmu.set_size_request(320, 120 + (num * 15))
     #sort
     self.ls.set_sort_column_id(0, gtk.SORT_ASCENDING)
Exemplo n.º 5
0
 def buildemulist(self):
     emu_lists = []
     emu_ini_files = self.build_filelist("", "ini", "(.*(?<!=-))")
     for emu_ini in emu_ini_files:
         ini = MameWahIni(emu_ini)
         if not ini.has_option('list_title'):
             emu_lists.append(
                 [ini.get('emulator_title'),
                  os.path.splitext(os.path.basename(emu_ini))[0],ini])
     return emu_lists
Exemplo n.º 6
0
 def __init__(self, WinMain):
     #set main window
     self.WinMain = WinMain
     self.layout_filename = ''
     self.histview_ok = True
     #open history viewer ini
     self.histview_ini = MameWahIni(os.path.join(CONFIG_DIR, 'histview.ini'), 'default', '0.16')
     if os.path.exists(os.path.join(CONFIG_DIR, 'ini', self.WinMain.current_emu + '.his')):
         self.cpviewer_ini = MameWahIni(os.path.join(CONFIG_DIR, 'ini', self.WinMain.current_emu + '.his'), 'default')
     if not os.path.isfile(self.histview_ini.get('history_dat_file')):
         self.WinMain.log_msg("Warning: history file: [%s] does not exist" % (
             self.histview_ini.get('history_dat_file')))
         self.histview_ok = False
     self.layout_filename = self.histview_ini.get('history_layout')
     if not os.path.isfile(self.layout_filename):
         self.WinMain.log_msg("Warning: history layout: [%s] does not exist" % (self.layout_filename))
         self.histview_ok = False
     #build the window
     self.winHistory = gtk.Fixed()
     self.winHistory.set_has_window(True)
     self.imgBackground = gtk.Image()
     self.lblHeading = gtk.Label()
     self.sclHistory = ScrollList()
     self.winHistory.add(self.imgBackground)
     self.winHistory.add(self.make_evb_widget(self.lblHeading))
     self.winHistory.add(self.sclHistory.fixd)
     WinMain.fixd.add(self.winHistory)
     self.imgBackground.show()
     self.lblHeading.show()
     self.winHistory.show()
     #build list
     self.lsHistory = []
     self.sclHistory.auto_update = True
     self.sclHistory.display_limiters = self.WinMain.wahcade_ini.getint('show_list_arrows', 0)
     #widgets
     self._histview_items = [
         (8, self.lblHeading),
         (21, self.sclHistory)]
     #get history
     self.history = self.read_history(self.histview_ini.get('history_dat_file'))
     #app number
     self.app_number = 0
Exemplo n.º 7
0
 def on_cboLists_changed(self, *args):
     """emulator list combo"""
     #get settings for current emu list
     self.emu_list_idx = self.cboLists.get_active()
     emu_list_ini = MameWahIni(
         os.path.join(CONFIG_DIR, 'ini',
                      '%s-%s.ini' % (self.emu_name, self.emu_list_idx)))
     if self.emu_list_idx >= 1:
         if emu_list_ini.get('list_type') != 'normal':
             self.show_msg_dialog(
                 msg=_('List Type must be "normal" to generate filters'))
             self.cboLists.set_active(0)
             return
     if self.emu_list_idx >= 0:
         self.load_filter()
Exemplo n.º 8
0
 def show_about_dialog(self, app_name, config_dir):
     """about dialog"""
     #open controller ini file
     self.ctrlr_ini = MameWahIni(os.path.join(config_dir, 'ctrlr', 'default.ini'), 'ctrlr')
     #create about dialog
     dlg = gtk.AboutDialog()
     dlg.set_name(app_name)
     dlg.set_version('\n%s "%s"' % (VERSION, VERSION_NAME))
     dlg.set_logo(gtk.gdk.pixbuf_new_from_file(
         os.path.join(APP_PATH, 'pixmaps', 'Rcade-logo.png')))
     gtk.about_dialog_set_url_hook(self.show_website, None)
     dlg.set_website('https://github.com/thevoiceless/wc-testing')
     dlg.set_website_label('github source')
     dlg.set_authors([
         'Andy Balcombe', 'Zach McGaughey', 'Devin Wilson', 'Terek Campbell', 'Riley Moses', 'John Kelly',
         'Bug Reports and Patches:',
             '  Sylvain Fauveau', '  Robbforce', '  Jim Merullo',
             '  SeTTleR', '  Mike Crawford', '  Mike Schwartz',
             '  Nellistc', '  Captbaritone', '  Delphipool', '  3NF',
             '  Zerodiv', '  Natrix', '  Bonzo', '  Battlecat', '  Krisbee',
             '  Buks', '  KillsTheWeak', '  Martin Kalitis', '  Zerojay',
             '  Dave Baer', '  Spudgunman', '  RomKnight', '  Jason Carter',
             '  Zombie', '  Pinball Wizard', '  hamelg', '  3vi1',
             '  Vítor Baptista', '  Enrico Magrella',
             '  and anyone I\'ve forgotten...', '',
         'Translations:',
             '  de: SeTTleR', '  es: Nicolás Álvarez',
             '  fr: Sylvain Faveau', '  it: Diego Pierotto',
             '  sv: Daniel Nylander', '',
         'bdist_debian.py: Gene Cash', '',
         ])
     dlg.set_artists(['Riley Moses', 'John Kelly', 'Andy Balcombe', 'Buks', 'Battlecat'])
     dlg.set_copyright('ReadyTalk')
     dlg.set_comments('Thanks to:\nMinWah and also the Mame / xMame team')
     dlg.set_translator_credits(_('translator-credits'))
     dlg.set_license(open(os.path.join(APP_PATH, 'doc', 'COPYING')).read())
     dlg.connect('key_press_event', self.on_dlgAbout_key_press)
     dlg.run()
     dlg.hide()
Exemplo n.º 9
0
    def __init__(self, glade_filename, window_name, emu_name):
        """build the window"""
        WahCade.__init__(self)
        GladeSupport.__init__(self, glade_filename, window_name,
                              constants.app_name)
        self.config_dir = CONFIG_DIR
        #print "emu_name=",emu_name
        self.emu_name = emu_name
        self.emu_list_idx = 0
        #setup tree & lists
        self.tsFilter = gtk.TreeStore(str, gobject.TYPE_BOOLEAN, str)
        self.tvwFilter = gtk.TreeView(model=self.tsFilter)
        #text col
        cellrt = gtk.CellRendererText()
        tvcol = gtk.TreeViewColumn(_('Filter'))
        tvcol.pack_start(cellrt, True)
        tvcol.add_attribute(cellrt, 'text', 0)
        tvcol.set_resizable(True)
        #checkbox col
        crt = gtk.CellRendererToggle()
        crt.set_property('activatable', True)
        crt.connect('toggled', self.on_tvwFilter_toggled, self.tsFilter)
        tvcol2 = gtk.TreeViewColumn(_('Selected?'), crt)
        tvcol2.add_attribute(crt, 'active', 1)
        #add columns to treeview
        self.tvwFilter.append_column(tvcol)
        self.tvwFilter.append_column(tvcol2)
        #self.tvwFilter.set_rules_hint(True)
        self.tvwFilter.show()
        self.scwFilter.add(self.tvwFilter)
        #games list
        self.tvwGames, self.lsGames, self.tvwsGames = self.setup_treeview(
            columns=['Games'],
            column_types=[gobject.TYPE_STRING],
            container=self.scwGameList,
            resizeable_cols=True,
            highlight_rows=False)

        #load lists
        i = 0
        emu_game_lists = []
        while True:
            ini_file = os.path.join(CONFIG_DIR, 'ini',
                                    '%s-%s.ini' % (self.emu_name, i))
            if os.path.isfile(ini_file):
                list_ini = MameWahIni(ini_file)
                emu_game_lists.append(list_ini.get('list_title'))
                i += 1
            else:
                break
        l = ['%s: %s' % (i, r) for i, r in enumerate(emu_game_lists)]

        #setup filters & emu ini
        emu_ini_filename = os.path.join(CONFIG_DIR, 'ini',
                                        '%s.ini' % (self.emu_name))
        if os.path.isfile(emu_ini_filename):
            self.emu_ini = MameWahIni(emu_ini_filename)
            #filters._mameinfo_file = os.path.join(self.emu_ini.get('dat_file'))
            filters._catver_ini = os.path.join(
                self.emu_ini.get('catver_ini_file'))
        else:
            print _("Error: Emulator Ini file: [%s] doesn't exist" %
                    (emu_ini_filename))

        #filter values
        if os.path.isfile(self.emu_ini.get('dat_file')):
            self._display_clones = [[_('No'), 'no'], [_('Yes'), 'yes'],
                                    [
                                        _('Only if better than Parent'),
                                        'better'
                                    ]]
            self._filter_sections = [
                ['filter_type', _('Display Clones')],
                ['year', _('Year Filters')],
                ['manufacturer', _('Manufacturer Filters')],
                ['driver', _('BIOS Filters')],
                ['display_type', _('Screen Type Filters')],
                ['screen_type', _('Screen Orientation Filters')],
                ['controller_type', _('Input Type Filters')],
                ['driver_status', _('General Status Filters')],
                ['colour_status', _('Colour Status Filters')],
                ['sound_status', _('Sound Status Filters')],
                ['category', _('Category Filters')]
            ]
        elif os.path.isfile(self.emu_ini.get('catver_ini_file')):
            self._filter_sections = [['category', _('Category Filters')]]
        else:
            self._filter_sections = []
        self.setup_combo_box(self.cboLists, l)
        #load filter
        self.cboLists.set_active(self.emu_list_idx)
        self.filter_altered = False
Exemplo n.º 10
0
    def get_matching_filename(self, file_prefixes, file_formats):
        """return the filename if it exists from given formats & path
              file_prefixes = [(dir_name, filename), ...]
              file_formats = [file_ext1, file_ext2, ...]
        """
        p = re.compile('(\.[^\.]+$)|(\s(\(|\[).+(?<=(\)|\]|\s))\.[^\.]+$)')
        self.wahcade_ini = MameWahIni(os.path.join(CONFIG_DIR, 'wahcade.ini'))
        l = self.wahcade_ini.get('layout')
        fz = self.wahcade_ini.getint('fuzzy_artwork_search')
        #check lower & upper case filenames for each given prefix & format
        for dirname, fp in file_prefixes:
            if fp == '##random##':
                for ff in file_formats:
                    fnl = walk_dir(dirname, False, '*.%s' % ff.lower(), False) + \
                        walk_dir(dirname, False, '*.%s' % ff.upper(), False)
                    #return first valid match
                    for filename in fnl:
                        if os.path.isfile(filename):
                            return filename
            elif fp != '':
                if file_formats != '':
                    # Check if this is a layout
                    if l not in dirname:
                        if fz:
                            # NB: we append a fake extension here to support the regex currently - sairuk
                            #     handles . appearing in filename being treated as an ext
                            fileset = glob.iglob(
                                os.path.join(CONFIG_DIR, dirname,
                                             re.sub(p, '', fp + ".fix") + "*"))
                            for filename in fileset:
                                fn = os.path.basename(filename.lower())
                                f = re.sub(p, '', fn)
                                g = re.search(re.escape(f), fp.lower())
                                if f and g is not None:
                                    if f == g.group(0):
                                        return filename
                                else:
                                    self.log_msg(
                                        " [ARTWORK] No match for " + fp +
                                        " in " + dirname, 1)
                        else:
                            for ff in file_formats:
                                basename = '%s.%s' % (fp, ff)
                                #build list of possible filenames
                                fnl = [
                                    os.path.join(dirname, basename),
                                    os.path.join(dirname, basename.lower()),
                                    os.path.join(dirname, basename.upper())
                                ]
                                #return first valid match
                                for filename in fnl:
                                    if os.path.isfile(filename):
                                        return filename
                    else:
                        for ff in file_formats:
                            basename = '%s.%s' % (fp, ff)
                            #build list of possible filenames
                            fnl = [
                                os.path.join(dirname, basename),
                                os.path.join(dirname, basename.lower()),
                                os.path.join(dirname, basename.upper())
                            ]
                            #return first valid match
                            for filename in fnl:
                                if os.path.isfile(filename):
                                    return filename

                else:
                    filename = os.path.join(dirname, fp)
                    if os.path.isfile(filename):
                        return filename
        #done - nothing found
        return ''
Exemplo n.º 11
0
    def load_emulator_settings(self, ini_name, emu_ini, default_list=0):
        """load emu settings"""
        
        # Default For Screens
        self.txeMameXMLFile.set_sensitive(True)
        self.btnMameXMLFile.set_sensitive(True)
        self.btnMameXMLGen.set_sensitive(True)
        self.btnEmuListFilter.set_sensitive(True)
        
        self.txeEmuTitle.set_text(emu_ini.get('emulator_title'))
        self.txeEmuExe.set_text(emu_ini.get('emulator_executable'))
        self.txeEmuCmdLine.set_text(emu_ini.get('commandline_format'))
        self.txeEmuAltCmdLine1.set_text(emu_ini.get('alt_commandline_format_1'))
        self.txeEmuAltCmdLine2.set_text(emu_ini.get('alt_commandline_format_2'))
        self.txeEmuRomExt.set_text(emu_ini.get('rom_extension'))
        self.txeEmuRomDir.set_text(emu_ini.get('rom_path'))
        self.txeEmuNMSFile.set_text(emu_ini.get('nms_file'))
        #list gen type
        ini_lgen = emu_ini.get('list_generation_method')
        lgen_idx = [idx for idx, r in enumerate(self.emu_list_gen_types) if ini_lgen in r[0]][0]
        self.cboEmuListGen.set_active(lgen_idx)
        #artwork
        for idx, emu_art in enumerate(self.emu_artwork_txe):
            emu_art.set_text(emu_ini.get('artwork_%s_image_path' % (idx + 1)))
        self.txeEmuMovieDir.set_text(emu_ini.get('movie_preview_path'))
        self.spnEmuMovieNum.set_value(emu_ini.getint('movie_artwork_no'))
        self.cboeEmuExtApp1.child.set_text(emu_ini.get('app_1_executable'))
        self.txeEmuExtApp1.set_text(emu_ini.get('app_1_commandline_format'))
        self.cboeEmuExtApp2.child.set_text(emu_ini.get('app_2_executable'))
        self.txeEmuExtApp2.set_text(emu_ini.get('app_2_commandline_format'))
        self.cboeEmuExtApp3.child.set_text(emu_ini.get('app_3_executable'))
        self.txeEmuExtApp3.set_text(emu_ini.get('app_3_commandline_format'))
        self.txeEmuExtAuto.set_text(emu_ini.get('auto_launch_apps'))
        #screen saver
        ini_scr = emu_ini.get('saver_type')
        scr_idx = [idx for idx, r in enumerate(self.emu_scrsave_types) if r[0] == ini_scr][0]
        self.cboEmuScrSaver.set_active(scr_idx)
        self.txeEmuScrMovieDir.set_text(emu_ini.get('movie_path'))
        self.txeEmuScrExternal.set_text(emu_ini.get('scr_file'))
        #load lists
        self.emu_game_lists = []
        ini_files = self.build_filelist("", "ini", "(?<=-)\d+", ini_name, "-")
        for ini_file in ini_files:
            if os.path.isfile(ini_file):
                list_ini = MameWahIni(ini_file)
                self.emu_game_lists.append([list_ini.get('list_title'), list_ini])
        l = ['%s: %s' % (i, r[0]) for i, r in enumerate(self.emu_game_lists)]
        self.setup_combo_box(self.cboEmuLists, l)
        self.cboEmuLists.set_active(default_list)

        self.txeMameXMLFile.set_text(emu_ini.get('dat_file'))
        self.txeMameCatver.set_text(emu_ini.get('catver_ini_file'))

        #mame only
        if not ini_name in MAME_INI_FILES:
            self.txeMameXMLFile.set_sensitive(False)
            self.btnMameXMLFile.set_sensitive(False)
            self.btnMameXMLGen.set_sensitive(False)
        
        if emu_ini.get('catver_ini_file') == "":
            self.btnEmuListFilter.set_sensitive(False)
Exemplo n.º 12
0
 def __init__(self, glade_filename, window_name, config_opts, config_args):
     """build the window"""
     WahCade.__init__(self)
     GladeSupport.__init__(self, glade_filename, window_name, APP_NAME)
     #command-line options
     self.config_opts = config_opts
     #set default config location (create / update as necessary)
     self.config_dir = CONFIG_DIR
     if not os.path.exists(self.config_dir):
         self.copy_user_config('all')
     else:
         #update current config
         self.copy_user_config()
     #keys list
     self.tvwKeys, self.lsKeys, self.tvwsKeys = self.setup_treeview(
         columns = ['Function', 'Key'],
         column_types = [gobject.TYPE_STRING, gobject.TYPE_STRING],
         container = self.scwKeys,
         resizeable_cols = False)
     self.lsKeys.set_sort_column_id(0, gtk.SORT_ASCENDING)
     self.tvwKeys.connect('row-activated', self.on_tvwKeys_row_activated)
     self.tvwKeys.set_tooltip_text(_('Double-Click a row to change a Key...'))
     #set max width for keys column (stops window getting too wide)
     col = self.tvwKeys.get_column(1)
     col.set_max_width(200)
     #get ini files
     self.wahcade_ini = MameWahIni(os.path.join(self.config_dir, 'wahcade.ini'))
     self.histview_ini = MameWahIni(os.path.join(self.config_dir, 'histview.ini'))
     self.cpviewer_ini = MameWahIni(os.path.join(self.config_dir, 'cpviewer.ini'))
     self.ctrlr_ini = MameWahIni(os.path.join(self.config_dir, 'ctrlr', 'default.ini'), 'ctrlr')
     #emu stuff
     self.emu_list_gen_types = [
         [['rom_folder'], 'Rom Directory'],
         [['rom_folder_vs_listxml', 'list_xml'], 'XML File'],
         [['rom_folder_vs_dat_file', 'dat_file'], 'DAT File']]
     self.emu_scrsave_types = [
         ['blank_screen', 'Blank Screen'],
         ['slideshow', 'Slide Show'],
         ['movie', 'Movies'],
         ['launch_scr', 'Launch External Screen Saver']]
     self.emu_list_types = [
         ['normal', 'Normal'],
         ['most_played', 'Most Played'],
         ['longest_played', 'Longest Played'],
         ['hi2text_supported', 'High Score Supported'],
         ['xml_remote', 'XML Remote']]
     self.music_movie_mix = [
         ['mute_movies', 'Mute Movies'],
         ['merge', 'Mix with Music']]
     self.emu_artwork_txe = [
         self.txeEmuArt1, self.txeEmuArt2, self.txeEmuArt3, self.txeEmuArt4,
         self.txeEmuArt5, self.txeEmuArt6, self.txeEmuArt7, self.txeEmuArt8,
         self.txeEmuArt9, self.txeEmuArt10]
     self.emu_artwork_btn = [
         self.btnEmuArt1, self.btnEmuArt2, self.btnEmuArt3, self.btnEmuArt4,
         self.btnEmuArt5, self.btnEmuArt6, self.btnEmuArt7, self.btnEmuArt8,
         self.btnEmuArt9, self.btnEmuArt10]
     #setup combo boxes
     self.setup_combo_box(self.cboEmuScrSaver, [r[1] for r in self.emu_scrsave_types])
     self.setup_combo_box(self.cboEmuListGen, [r[1] for r in self.emu_list_gen_types])
     self.setup_combo_box(self.cboEmuListType, [r[1] for r in self.emu_list_types])
     self.setup_combo_box(self.cboWCMovieMix, [r[1] for r in self.music_movie_mix])
     #global joy
     self.joystick = joystick.joystick()
     self.joystick.use_all_controls()
     #get default window size & pos
     self.do_events()
     w, h = self.wahcade_ini.get('setup_window_size', 'default', '400x400').split('x')
     self.winSetup.resize(width=int(w), height=int(h))
     #load settings
     self.load_settings()
     self.setup_altered = False
     #set icon sizes
     settings = gtk.settings_get_default()
     settings.set_string_property('gtk-icon-sizes', 'gtk-button=16,16', '')