// -*- C++ -*- generated by wxGlade 0.3.5.1 on Sat Aug 20 16:34:47 2005

#include <wx/wx.h>
#include <wx/image.h>

#ifndef OVPREFDLG_H
#define OVPREFDLG_H

// begin wxGlade: dependencies
#include <wx/listctrl.h>
#include <wx/notebook.h>
// end wxGlade

#include "AVEmbeddedLoader.h"

class OVCheckListCtrl;
class OVPrefDlg: public wxDialog {
public:
    // begin wxGlade: OVPrefDlg::ids
    enum {
        ID_FONT = 1000,
        ID_BGCOLOR = 1001,
        ID_BGPICTURE = 1002,
        ID_SOUNDTEST = 1003,
        ID_COMMON_CLEAR = 1004,
        ID_MODLIST = 1005,
        ID_MODLIST_MOVE_UP = 1006,
        ID_MODLIST_MOVE_DOWN = 1007,
        ID_MODLIST_CLEAR = 1008,
        ID_GENERIC_COMBO = 1009,
        ID_SHIFT_SELECTION_KEY = 1010,
        ID_AUTOCOMPOSE = 1011,
        ID_HIT_MAX_AND_COMPOSE = 1012,
        ID_WARNING_BEEP = 1013,
        ID_OTHER_MOD_COMBO = 1014,
        ID_OTHER_MOD_PROP_LIST = 1015,
        ID_SET_MOD_PROP_VALUE = 1016
    };
    // end wxGlade

    OVPrefDlg(wxWindow* parent, int id, const wxString& title, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE);

private:
    // begin wxGlade: OVPrefDlg::methods
    void set_properties();
    void do_layout();
    // end wxGlade

protected:
	AVEmbeddedLoader loader;

    // begin wxGlade: OVPrefDlg::attributes
    wxStaticBox* sizer_25_staticbox;
    wxStaticBox* sizer_24_staticbox;
    wxStaticBox* sizer_22_staticbox;
    wxStaticBox* sizer_7_staticbox;
    wxStaticBox* sizer_1_staticbox;
    wxStaticBox* sizer_15_staticbox;
    wxStaticBox* sizer_13_staticbox;
    wxStaticBox* sizer_3_staticbox;
    wxButton* fontBtn;
    wxStaticText* label_1;
    wxButton* bgColorBtn;
    wxButton* imageBtn;
    wxStaticText* filePath_copy_copy;
    wxStaticText* label_1_copy;
    wxSlider* opacitySlider;
    wxStaticText* label_2;
    wxTextCtrl* previewText;
    wxStaticText* label_5;
    wxStaticText* label_3;
    wxTextCtrl* soundFile;
    wxButton* soundTest;
    wxStaticText* label_4;
    wxCheckBox* switchAlt;
    wxCheckBox* switchCtrl;
    wxCheckBox* switchShift;
    wxStaticText* label_15;
    wxComboBox* switchKey;
    wxButton* common_clear;
    wxPanel* common_page;
    wxCheckListBox* modList;
    wxStaticText* label_16;
    wxButton* moveUpBtn;
    wxButton* moveDownBtn;
    wxCheckBox* modlistAlt;
    wxCheckBox* modlistShift;
    wxCheckBox* modlistCtrl;
    wxStaticText* label_8_copy;
    wxComboBox* modlistKey;
    wxButton* modlistClear;
    wxStaticText* label_7;
    wxStaticText* label_6;
    wxPanel* module_list_page;
    wxStaticText* label_9;
    wxComboBox* phoneticKeyboardLayout;
    wxStaticText* label_9_copy;
    wxComboBox* chewingKeyboardLayout;
    wxStaticText* label_10;
    wxComboBox* pojKeyboardLayout;
    wxCheckBox* pojNoUnicode;
    wxCheckBox* pojNoHanChars;
    wxStaticText* label_11;
    wxComboBox* tibetanKeyboardLayout;
    wxStaticText* label_12;
    wxComboBox* genericCombo;
    wxStaticText* label_13;
    wxComboBox* genericMaxRadLength;
    wxCheckBox* shiftSelectionKey;
    wxCheckBox* autoCompose;
    wxCheckBox* hitMaxAndCompose;
    wxCheckBox* warningBeep;
    wxStaticText* label_14;
    wxComboBox* otherModCombo;
    wxListCtrl* otherModPropList;
    wxStaticText* label_8;
    wxTextCtrl* modPropEdit;
    wxButton* setBtn;
    wxPanel* module_settings_page;
    wxPanel* output_filter_page;
    wxNotebook* notebook;
    wxStaticText* label_18;
    wxButton* exitBtn;
    // end wxGlade

	DECLARE_EVENT_TABLE()

protected:
	void OnFont(wxCommandEvent& evt);
	void OnBgColor(wxCommandEvent& evt);
	void OnBgPicture(wxCommandEvent& evt);
	void OnSoundTest(wxCommandEvent& evt);
	void OnCommonClear(wxCommandEvent& evt);
	void OnModListClear(wxCommandEvent& evt);
	void OnModListItemSelected(wxListEvent& evt);
	void InitModuleList(void);
	void InitGenericModules(void);
	void OnGenericComboSelChange(wxCommandEvent& evt);
	void GenericComboSelChange(int idx);
	void InitOtherModPropList(void);
	void OnOtherModComboSelChange(wxCommandEvent& evt);
	void OnOtherModPropListItemSelected(wxListEvent& evt);
	void OtherModComboSelChange(int idx);
	void OnCancel(wxCommandEvent& evt);
	vector<OVModule*> genericMods;
	vector<OVModule*> otherMods;
	OVModule* curGenericMod;
	void SaveGenericConfig(void);
	void InitPOJ(void);
	void InitKeyboardLayouts(void);
	void OnModListMoveUp(wxCommandEvent& evt);
	void OnModListMoveDown(wxCommandEvent& evt);
	void SaveModList(void);
};


#endif // OVPREFDLG_H
