diff --git a/projects/mtg/include/OptionItem.h b/projects/mtg/include/OptionItem.h index 533307f71..ab822bc00 100644 --- a/projects/mtg/include/OptionItem.h +++ b/projects/mtg/include/OptionItem.h @@ -408,11 +408,16 @@ private: class OptionTheme:public OptionDirectory{ public: OptionTheme(); - JQuad * getImage(); + JQuad * getImage(); + virtual void updateValue(); virtual float getHeight(); virtual void Render(); virtual void confirmChange(bool confirmed); virtual bool Visible(); + +protected: + string author; + bool bChecked; }; class OptionProfile:public OptionDirectory{ diff --git a/projects/mtg/src/OptionItem.cpp b/projects/mtg/src/OptionItem.cpp index 4afdb77e4..9bec25824 100644 --- a/projects/mtg/src/OptionItem.cpp +++ b/projects/mtg/src/OptionItem.cpp @@ -646,7 +646,8 @@ OptionTheme::OptionTheme(): OptionDirectory(RESPATH"/themes",Options::ACTIVE_THE addSelection("Default"); sort(selections.begin(),selections.end()); initSelections(); - mFocus=false; + mFocus=false; + bChecked = false; } JQuad * OptionTheme::getImage(){ char buf[512]; @@ -662,12 +663,31 @@ JQuad * OptionTheme::getImage(){ float OptionTheme::getHeight(){ return 130; }; +void OptionTheme::updateValue(){ + OptionDirectory::updateValue(); + bChecked = false; +} + void OptionTheme::Render(){ JRenderer * renderer = JRenderer::GetInstance(); JQuad * q = getImage(); JLBFont * mFont = resources.GetJLBFont(Constants::OPTION_FONT); mFont->SetColor(getColor(WGuiColor::TEXT_HEADER)); char buf[512]; + if(!bChecked){ + author = ""; + bChecked = true; + sprintf(buf,RESPATH"/themes/%s/themeinfo.txt",selections[value].c_str()); + std::ifstream file(buf); + if(file){ + string temp; + std::getline(file,temp); + for(unsigned int x=0;x<17,xDrawString, cuts to 16 chars. + author += temp[x]; + } + } + } sprintf(buf,"Theme: %s",selections[value].c_str()); if(q){ @@ -676,6 +696,14 @@ void OptionTheme::Render(){ } mFont->DrawString(buf,x,y); + if(bChecked && author.size()){ + mFont->SetColor(getColor(WGuiColor::TEXT_BODY)); + mFont->SetScale(.8); + float hi = mFont->GetHeight(); + sprintf(buf,"Artist: %s",author.c_str()); + mFont->DrawString(buf,x,y+getHeight()-hi); + mFont->SetScale(1); + } } bool OptionTheme::Visible(){ @@ -686,6 +714,7 @@ bool OptionTheme::Visible(){ } void OptionTheme::confirmChange(bool confirmed){ + bChecked = false; if(!confirmed) value = prior_value; else{