Subversion Repositories spk

Rev

Rev 121 | Rev 197 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
104 cycrow 1
#ifndef __LANGUAGES_H__
2
#define __LANGUAGES_H__
3
 
4
#include "Utils\String.h"
5
#include <map>
6
#include <vector>
7
 
8
enum Lang_Section 
9
{ 
122 cycrow 10
	LS_STARTUP		= 1, 
11
	LS_DIRECTORY,
104 cycrow 12
	LS_FILEDIALOG 
13
};
14
 
122 cycrow 15
enum Lang_Startup
104 cycrow 16
{ 
122 cycrow 17
	LANGSTARTUP_ANOTHERINSTANCE_TITLE	= 1,
104 cycrow 18
	LANGSTARTUP_ANOTHERINSTANCE,
19
	LANGSTARTUP_PROTECTEDDIR,
20
	LANGSTARTUP_LOCKEDDIR,
21
	LANGSTARTUP_LOCKEDDIR_TITLE,
22
};
23
 
122 cycrow 24
enum Lang_Directory
25
{
26
	LANGDIR_TITLE	 = 1,
27
};
28
 
121 cycrow 29
typedef std::map<int, Utils::String> LangPage;
122 cycrow 30
typedef std::map<int, LangPage> LangPages;
31
typedef std::map<int, LangPages> LangTexts;
104 cycrow 32
 
33
class SPKEXPORT CLanguages
34
{
35
public:
36
	static CLanguages *Instance();
37
	static void Release();
38
 
122 cycrow 39
	void SetLanguage(int lang);
104 cycrow 40
 
41
	Utils::String findText(int section, int id);
42
 
43
protected:
44
	CLanguages();
45
	~CLanguages();
46
 
47
private:
122 cycrow 48
	void DEBUG_AddDefaultTexts();
104 cycrow 49
 
122 cycrow 50
	LangPages *_findLanguageText(int id = -1) const;
51
	Utils::String _error(int section, int id) const;
52
	bool _findText(LangPages *texts, int section, int id, Utils::String *out) const;
104 cycrow 53
 
54
private:
55
	static CLanguages *_pInstance;
56
 
122 cycrow 57
	int			_iLanguage;
58
	LangTexts	*_lTexts;
59
	LangPages	*_pDefaultLang;
60
	LangPages	*_pCurrentLang;
104 cycrow 61
};
62
 
63
#endif //__LANGUAGES_H__