// LanguagesDlg.cpp : implementation file // #define CO_EXIST_WITH_MFC #include "global.h" #include "stdafx.h" #include "smpackage.h" #include "LanguagesDlg.h" #include "SpecialFiles.h" #include "RageUtil.h" // LanguagesDlg dialog IMPLEMENT_DYNAMIC(LanguagesDlg, CDialog) LanguagesDlg::LanguagesDlg(CWnd* pParent /*=NULL*/) : CDialog(LanguagesDlg::IDD, pParent) { } LanguagesDlg::~LanguagesDlg() { } void LanguagesDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_THEMES, m_listThemes); DDX_Control(pDX, IDC_LIST_LANGUAGES, m_listLanguages); } BOOL LanguagesDlg::OnInitDialog() { CDialog::OnInitDialog(); vector vs; GetDirListing( SpecialFiles::THEMES_DIR+"*", vs, true ); FOREACH_CONST( RString, vs, s ) m_listThemes.AddString( *s ); if( !vs.empty() ) m_listThemes.SetSel( 0 ); else OnSelchangeListThemes(); return TRUE; // return TRUE unless you set the focus to a control } static RString GetCurrentString( const CListBox &list ) { // TODO: Add your control notification handler code here int iSel = list.GetCurSel(); if( iSel == LB_ERR ) return RString(); CString s; list.GetText( list.GetCurSel(), s ); return RString( s ); } void LanguagesDlg::OnSelchangeListThemes() { // TODO: Add your control notification handler code here m_listLanguages.ResetContent(); RString sTheme = GetCurrentString( m_listThemes ); if( sTheme.empty() ) { OnSelchangeListLanguages(); return; } RString sLanguagesDir = SpecialFiles::THEMES_DIR + sTheme + "/" + SpecialFiles::LANGUAGES_SUBDIR; vector vs; GetDirListing( sLanguagesDir+"*.ini", vs, false ); FOREACH_CONST( RString, vs, s ) m_listLanguages.AddString( GetFileNameWithoutExtension(*s) ); if( !vs.empty() ) m_listLanguages.SetSel( 0 ); else OnSelchangeListLanguages(); } void LanguagesDlg::OnSelchangeListLanguages() { // TODO: Add your control notification handler code here int iTotalStrings = -1; int iNeedTranslation = -1; RString sTheme = GetCurrentString( m_listThemes ); RString sLanguage = GetCurrentString( m_listLanguages ); if( !sTheme.empty() && !sLanguage.empty() ) { RString sThemeDir = "Themes/" + sTheme + "/"; RString sLanguageFile = sThemeDir + SpecialFiles::LANGUAGES_SUBDIR + sLanguage + ".ini"; iTotalStrings = rand()%100; iNeedTranslation = rand()%100; } GetDlgItem(IDC_STATIC_TOTAL_STRINGS )->SetWindowText( ssprintf(iTotalStrings==-1?"":"%d",iTotalStrings) ); GetDlgItem(IDC_STATIC_NEED_TRANSLATION )->SetWindowText( ssprintf(iNeedTranslation==-1?"":"%d",iNeedTranslation) ); } BEGIN_MESSAGE_MAP(LanguagesDlg, CDialog) ON_LBN_SELCHANGE(IDC_LIST_THEMES, OnSelchangeListThemes) ON_LBN_SELCHANGE(IDC_LIST_LANGUAGES, OnSelchangeListLanguages) END_MESSAGE_MAP() // LanguagesDlg message handlers