Ticket #7495: themepath.diff

File themepath.diff, 4.5 KB (added by eriktorbjorn, 18 years ago)

Patch against current SVN

  • gui/options.h

     
    147147        KeysDialog *_keysDialog;
    148148#endif
    149149        StaticTextWidget *_savePath;
     150        StaticTextWidget *_themePath;
    150151        StaticTextWidget *_extraPath;
    151152};
    152153
  • gui/themes/modern.ini

     
    277277globaloptions_savebutton=10 yoffset buttonWidth buttonHeight
    278278globaloptions_savepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 10) kLineHeight
    279279yoffset=(yoffset + buttonHeight + 8)
     280globaloptions_themebutton=10 yoffset buttonWidth buttonHeight
     281globaloptions_themepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 10) kLineHeight
     282yoffset=(yoffset + buttonHeight + 8)
    280283globaloptions_extrabutton=10 yoffset buttonWidth buttonHeight
    281284globaloptions_extrapath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 10) kLineHeight
    282285yoffset=(yoffset + buttonHeight + 12)
  • gui/options.cpp

     
    6565        kSpeechVolumeChanged    = 'vcvc',
    6666        kChooseSoundFontCmd             = 'chsf',
    6767        kChooseSaveDirCmd               = 'chos',
     68        kChooseThemeDirCmd              = 'chth',
    6869        kChooseExtraDirCmd              = 'chex'
    6970};
    7071
     
    644645        new ButtonWidget(tab, "globaloptions_savebutton", "Save Path: ", kChooseSaveDirCmd, 0);
    645646        _savePath = new StaticTextWidget(tab, "globaloptions_savepath", "/foo/bar");
    646647
     648        new ButtonWidget(tab, "globaloptions_themebutton", "Theme Path:", kChooseThemeDirCmd, 0);
     649        _themePath = new StaticTextWidget(tab, "globaloptions_themepath", "None");
     650
    647651        new ButtonWidget(tab, "globaloptions_extrabutton", "Extra Path:", kChooseExtraDirCmd, 0);
    648652        _extraPath = new StaticTextWidget(tab, "globaloptions_extrapath", "None");
    649653#endif
     
    678682
    679683#if !( defined(__DC__) || defined(__GP32__) || defined(__PLAYSTATION2__) )
    680684        // Set _savePath to the current save path
    681         Common::String dir(ConfMan.get("savepath", _domain));
     685        Common::String savePath(ConfMan.get("savepath", _domain));
     686        Common::String themePath(ConfMan.get("themepath", _domain));
    682687        Common::String extraPath(ConfMan.get("extrapath", _domain));
    683688
    684         if (!dir.empty()) {
    685                 _savePath->setLabel(dir);
     689        if (!savePath.empty()) {
     690                _savePath->setLabel(savePath);
    686691        } else {
    687692                // Default to the current directory...
    688693                char buf[MAXPATHLEN];
     
    690695                _savePath->setLabel(buf);
    691696        }
    692697
     698        if (themePath.empty() || !ConfMan.hasKey("themepath", _domain)) {
     699                _themePath->setLabel("None");
     700        } else {
     701                _themePath->setLabel(themePath);
     702        }
     703
    693704        if (extraPath.empty() || !ConfMan.hasKey("extrapath", _domain)) {
    694705                _extraPath->setLabel("None");
    695706        } else {
     
    703714                // Savepath
    704715                ConfMan.set("savepath", _savePath->getLabel(), _domain);
    705716
     717                String themePath(_themePath->getLabel());
     718                if (!themePath.empty() && (themePath != "None"))
     719                        ConfMan.set("themepath", themePath, _domain);
     720
    706721                String extraPath(_extraPath->getLabel());
    707722                if (!extraPath.empty() && (extraPath != "None"))
    708723                        ConfMan.set("extrapath", extraPath, _domain);
     
    723738                }
    724739                break;
    725740        }
     741        case kChooseThemeDirCmd: {
     742                BrowserDialog browser("Select directory for GUI themes", true);
     743                if (browser.runModal() > 0) {
     744                        // User made his choice...
     745                        FilesystemNode dir(browser.getResult());
     746                        _themePath->setLabel(dir.path());
     747                        draw();
     748                }
     749                break;
     750        }
    726751        case kChooseExtraDirCmd: {
    727752                BrowserDialog browser("Select directory for extra files", true);
    728753                if (browser.runModal() > 0) {
  • gui/theme-config.cpp

     
    166166"globaloptions_savebutton=10 yoffset (buttonWidth + 5) buttonHeight\n"
    167167"globaloptions_savepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight\n"
    168168"yoffset=(yoffset + buttonHeight + 4)\n"
     169"globaloptions_themebutton=10 yoffset (buttonWidth + 5) buttonHeight\n"
     170"globaloptions_themepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight\n"
     171"yoffset=(yoffset + buttonHeight + 4)\n"
    169172"globaloptions_extrabutton=10 yoffset (buttonWidth + 5) buttonHeight\n"
    170173"globaloptions_extrapath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight\n"
    171174"yoffset=(yoffset + buttonHeight + 4)\n"