1 #pragma once
2 #include "afxwin.h"
3 #include "afxcmn.h"
4 #include "resource.h"
5 
6 #define MAX_STRING_TABLE_STRINGS  (10 * 1024)
7 
8 // config_languages_dlg dialog
9 
10 class config_languages_dlg : public express_dialog
11 {
12 	DECLARE_DYNAMIC(config_languages_dlg)
13 
14 public:
15 	config_languages_dlg(CWnd* pParent = NULL);   // standard constructor
16 	virtual ~config_languages_dlg();
17     virtual BOOL OnInitDialog();
18     static int GetLanguageNameIndex(CString &findname);
19     static int GetLanguageIdIndex(CString &findid);
20     static CString BuildCombinedLanguageName(char *name, char *symbol);
21     static CString BuildCombinedLanguageName(int index);
22     static CString GetLanguageId(CString &findname);
23     static CString GetLanguageId(int index);
24     static CString GetLanguageName(int index);
25     static int GetStringTableIndexFromLanguageIndex(studiox_project *project, int seek_language);
26     static CString ConvertOldLanguageName(CString &old_language_name);
27 
28 protected:
29     void AnnounceLanguageNumberChange();
30 
31 // Dialog Data
32 	enum { IDD = IDD_CONFIG_LANGUAGES };
33 
34 protected:
35 	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
36 	DECLARE_MESSAGE_MAP()
37 public:
38     express_combobox mLanguageNameCombo;
39     CButton mStaticallyDefined;
40     CButton mBidiTextSupportBox;
41     CButton mBidiTextGenerateBox;
42     CButton mThaiGlyphShapingSupport;
43     CButton mGenAdjustedThaiString;
44 
45 private:
46     int mNumLanguages;
47     int mStartLanguages;
48 
49     CArray<language_info> mLanguages;
50 
51 public:
52     CSpinButtonCtrl mSpinLanguageIndex;
53     afx_msg void OnBnClickedAddLanguage();
54     afx_msg void OnBnClickedDeleteLanguage();
55     afx_msg void OnBnClickedCancel();
56     afx_msg void OnBnClickedOk();
57     afx_msg void OnDeltaposSpinLanguageIndex(NMHDR *pNMHDR, LRESULT *pResult);
58     afx_msg void OnClickSupportBidiTextBox();
59     afx_msg void OnClickedThaiGlyphShapingSupport();
60     afx_msg LRESULT OnTestMessage(WPARAM wParam, LPARAM lParam);
61 };
62