1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00
DxWnd.reloaded/host/CGlobalSettings.cpp

251 lines
9.2 KiB
C++
Raw Permalink Normal View History

// CGlobalSettings.cpp : implementation file
//
#include "stdafx.h"
#include "dxwndhost.h"
//#include "dxwndhostView.h"
#include "CGlobalSettings.h"
extern char gInitPath[];
extern BOOL gbDebug;
extern BOOL gAutoHideMode;
extern BOOL gWarnOnExit;
Key_Type FKeys[] = {
{IDC_KEY_LABEL1, "Time toggle", IDC_KEY_COMBO1, "timetoggle", 0},
{IDC_KEY_LABEL2, "Time fast", IDC_KEY_COMBO2, "timefast", 0},
{IDC_KEY_LABEL3, "Time slow", IDC_KEY_COMBO3, "timeslow", 0},
{IDC_KEY_LABEL4, "Alt-F4", IDC_KEY_COMBO4, "altf4", 0},
{IDC_KEY_LABEL5, "Clip toggle", IDC_KEY_COMBO5, "cliptoggle", 0},
{IDC_KEY_LABEL6, "Refresh", IDC_KEY_COMBO6, "refresh", 0},
{IDC_KEY_LABEL7, "Log toggle", IDC_KEY_COMBO7, "logtoggle", 0},
{IDC_KEY_LABEL8, "Position t.", IDC_KEY_COMBO8, "plogtoggle", 0},
{IDC_KEY_LABEL9, "FPS toggle", IDC_KEY_COMBO9, "fpstoggle", 0},
{IDC_KEY_LABEL10, "Print screen", IDC_KEY_COMBO10, "printscreen", 0},
{IDC_KEY_LABEL11, "Corner tog.", IDC_KEY_COMBO11, "corner", 0},
{IDC_KEY_LABEL12, "Time freeze", IDC_KEY_COMBO12, "freezetime", 0},
{IDC_KEY_LABEL13, "Fullscr. t.", IDC_KEY_COMBO13, "fullscreen", 0},
{IDC_KEY_LABEL14, "Work area t.", IDC_KEY_COMBO14, "workarea", 0},
{IDC_KEY_LABEL15, "Desktop t.", IDC_KEY_COMBO15, "desktop", 0},
{0, "", 0, 0}
};
Key_Type HKeys[] = {
{IDC_HKEY_LABEL1, "Minimize", IDC_HKEY_COMBO1, "minimize", 0},
{IDC_HKEY_LABEL2, "Restore", IDC_HKEY_COMBO2, "restore", 0},
{IDC_HKEY_LABEL3, "Kill proc.", IDC_HKEY_COMBO3, "kill", 0},
{0, "", 0, 0}
};
KeyCombo_Type FKeyCombo[] = {
{-1, "--"},
{VK_F1, "F1"},
{VK_F2, "F2"},
{VK_F3, "F3"},
{VK_F5, "F5"},
{VK_F6, "F6"},
{VK_F7, "F7"},
{VK_F8, "F8"},
{VK_F9, "F9"},
{VK_F10, "F10"},
{VK_F11, "F11"},
{VK_F12, "F12"},
{0, ""}
};
KeyCombo_Type HKeyCombo[] = {
{-1, "--"},
{VK_END, "END"},
{VK_HOME, "HOME"},
{VK_DELETE, "DEL"},
{VK_ESCAPE, "ESC"},
{VK_F1, "F1"},
{VK_F2, "F2"},
{VK_F3, "F3"},
{VK_F5, "F5"},
{VK_F6, "F6"},
{VK_F7, "F7"},
{VK_F8, "F8"},
{VK_F9, "F9"},
{VK_F10, "F10"},
{VK_F11, "F11"},
{VK_F12, "F12"},
{0, ""}
};
// CGlobalSettings dialog
IMPLEMENT_DYNAMIC(CGlobalSettings, CDialog)
CGlobalSettings::CGlobalSettings(CWnd* pParent /*=NULL*/)
: CDialog(CGlobalSettings::IDD, pParent)
{
//m_DebugMode = GetPrivateProfileInt("window", "debug", 0, gInitPath);
m_AutoHideMode = GetPrivateProfileInt("window", "autohide", 0, gInitPath);
m_CheckAdminRights = GetPrivateProfileInt("window", "checkadmin", 0, gInitPath);
m_NameFromFolder = GetPrivateProfileInt("window", "namefromfolder", 0, gInitPath);
m_MultiHooks = GetPrivateProfileInt("window", "multiprocesshook", 0, gInitPath);
m_WarnOnExit = GetPrivateProfileInt("window", "warnonexit", 0, gInitPath);
m_UpdatePaths = GetPrivateProfileInt("window", "updatepaths", 1, gInitPath);
// texture limits
m_TexMinX = GetPrivateProfileInt("texture", "MinTexX", 0, gInitPath);
m_TexMinY = GetPrivateProfileInt("texture", "MinTexY", 0, gInitPath);
m_TexMaxX = GetPrivateProfileInt("texture", "MaxTexX", 0, gInitPath);
m_TexMaxY = GetPrivateProfileInt("texture", "MaxTexY", 0, gInitPath);
// defaults
m_DefaultCoordinates = GetPrivateProfileInt("window", "defaultcoord", 0, gInitPath);
m_DefaultPosX = GetPrivateProfileInt("window", "defaultposx", 50, gInitPath);
m_DefaultPosY = GetPrivateProfileInt("window", "defaultposy", 50, gInitPath);
m_DefaultSizX = GetPrivateProfileInt("window", "defaultsizx", 800, gInitPath);
m_DefaultSizY = GetPrivateProfileInt("window", "defaultsizy", 600, gInitPath);
}
CGlobalSettings::~CGlobalSettings()
{
}
void CGlobalSettings::DoDataExchange(CDataExchange* pDX)
{
//char msg[80];
//sprintf(msg, "DoDataExchange(1) defposx = %d", m_DefaultPosX);
//MessageBox(msg, "debug", 0);
CString sDefaultPosX, sDefaultPosY;
sDefaultPosX.Format("%d", m_DefaultPosX);
sDefaultPosY.Format("%d", m_DefaultPosY);
//DDX_Check(pDX, IDC_CONFIG_DEBUGMODE, m_DebugMode);
DDX_Check(pDX, IDC_CONFIG_AUTOHIDE, m_AutoHideMode);
DDX_Check(pDX, IDC_CONFIG_CHECKADMIN, m_CheckAdminRights);
DDX_Check(pDX, IDC_CONFIG_NAMEFROMFOLDER, m_NameFromFolder);
DDX_Check(pDX, IDC_CONFIG_MULTIHOOKS, m_MultiHooks);
DDX_Check(pDX, IDC_CONFIG_WARNONEXIT, m_WarnOnExit);
DDX_Check(pDX, IDC_CONFIG_SAVEPATHS, m_UpdatePaths);
DDX_Text (pDX, IDC_TEX_MINX, m_TexMinX);
DDX_Text (pDX, IDC_TEX_MINY, m_TexMinY);
DDX_Text (pDX, IDC_TEX_MAXX, m_TexMaxX);
DDX_Text (pDX, IDC_TEX_MAXY, m_TexMaxY);
DDX_Radio(pDX, IDC_DEFAULTCOORDINATES, m_DefaultCoordinates);
DDX_Text(pDX, IDC_DEFAULTPOSX, sDefaultPosX);
DDX_Text(pDX, IDC_DEFAULTPOSY, sDefaultPosY);
DDX_Text(pDX, IDC_DEFAULTSIZX, m_DefaultSizX);
DDX_Text(pDX, IDC_DEFAULTSIZY, m_DefaultSizY);
m_DefaultPosX = atoi(sDefaultPosX);
m_DefaultPosY = atoi(sDefaultPosY);
CDialog::DoDataExchange(pDX);
//sprintf(msg, "DoDataExchange(2) defposx = %d", m_DefaultPosX);
//MessageBox(msg, "debug", 0);
}
BEGIN_MESSAGE_MAP(CGlobalSettings, CDialog)
END_MESSAGE_MAP()
BOOL CGlobalSettings::OnInitDialog()
{
IFormat *m_pRelIntegerFormat = new(RelIntegerFormat);
m_EditPosX.SubclassDlgItem(IDC_DEFAULTPOSX, this);
m_EditPosY.SubclassDlgItem(IDC_DEFAULTPOSY, this);
m_EditPosX.SetFormatter(m_pRelIntegerFormat);
m_EditPosY.SetFormatter(m_pRelIntegerFormat);
CDialog::OnInitDialog();
for(int i=0; FKeys[i].iLabelResourceId; i++){
int iCursor = 0;
DWORD dwKey;
dwKey = GetPrivateProfileInt("keymapping", FKeys[i].sIniLabel, -1, gInitPath);
SetDlgItemText(FKeys[i].iLabelResourceId,FKeys[i].sLabel);
CComboBox *pCombo=(CComboBox *)GetDlgItem(FKeys[i].iComboResourceId);
pCombo->Clear();
for(int j=0; FKeyCombo[j].dwVKeyCode; j++) {
pCombo->AddString(FKeyCombo[j].sVKeyLabel);
if(dwKey == FKeyCombo[j].dwVKeyCode) iCursor=j;
}
pCombo->SetCurSel(iCursor);
}
for(int i=0; HKeys[i].iLabelResourceId; i++){
int iCursor = 0;
DWORD dwKey;
dwKey = GetPrivateProfileInt("keymapping", HKeys[i].sIniLabel, -1, gInitPath);
SetDlgItemText(HKeys[i].iLabelResourceId,HKeys[i].sLabel);
CComboBox *pCombo=(CComboBox *)GetDlgItem(HKeys[i].iComboResourceId);
pCombo->Clear();
for(int j=0; HKeyCombo[j].dwVKeyCode; j++) {
pCombo->AddString(HKeyCombo[j].sVKeyLabel);
if(dwKey == HKeyCombo[j].dwVKeyCode) iCursor=j;
}
pCombo->SetCurSel(iCursor);
}
return TRUE; // return TRUE unless you set the focus to a control
}
void CGlobalSettings::OnOK()
{
char val[32];
CDialog::OnOK();
// boolean flags
//sprintf_s(val, sizeof(val), "%i", m_DebugMode);
//WritePrivateProfileString("window", "debug", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_AutoHideMode);
WritePrivateProfileString("window", "autohide", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_CheckAdminRights);
WritePrivateProfileString("window", "checkadmin", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_NameFromFolder);
WritePrivateProfileString("window", "namefromfolder", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_MultiHooks);
WritePrivateProfileString("window", "multiprocesshook", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_WarnOnExit);
WritePrivateProfileString("window", "warnonexit", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_UpdatePaths);
WritePrivateProfileString("window", "updatepaths", val, gInitPath);
// texture limits
sprintf_s(val, sizeof(val), "%i", m_TexMinX);
WritePrivateProfileString("texture", "MinTexX", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_TexMinY);
WritePrivateProfileString("texture", "MinTexY", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_TexMaxX);
WritePrivateProfileString("texture", "MaxTexX", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_TexMaxY);
WritePrivateProfileString("texture", "MaxTexY", val, gInitPath);
// defaults
sprintf_s(val, sizeof(val), "%i", m_DefaultCoordinates);
WritePrivateProfileString("window", "defaultcoord", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_DefaultPosX);
WritePrivateProfileString("window", "defaultposx", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_DefaultPosY);
WritePrivateProfileString("window", "defaultposy", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_DefaultSizX);
WritePrivateProfileString("window", "defaultsizx", val, gInitPath);
sprintf_s(val, sizeof(val), "%i", m_DefaultSizY);
WritePrivateProfileString("window", "defaultsizy", val, gInitPath);
// fkeys
for(int i=0; FKeys[i].iLabelResourceId; i++){
int iCursor = 0;
DWORD dwKey;
CComboBox *pCombo=(CComboBox *)GetDlgItem(FKeys[i].iComboResourceId);
dwKey = FKeyCombo[pCombo->GetCurSel()].dwVKeyCode;
if(dwKey != -1) {
char sKNum[20];
sprintf_s(sKNum, sizeof(sKNum), "%i", dwKey);
WritePrivateProfileString("keymapping", FKeys[i].sIniLabel, sKNum, gInitPath);
}
else
WritePrivateProfileString("keymapping", FKeys[i].sIniLabel, "", gInitPath);
}
// hot keys
for(int i=0; HKeys[i].iLabelResourceId; i++){
int iCursor = 0;
DWORD dwKey;
CComboBox *pCombo=(CComboBox *)GetDlgItem(HKeys[i].iComboResourceId);
dwKey = HKeyCombo[pCombo->GetCurSel()].dwVKeyCode;
if(dwKey != -1) {
char sKNum[20];
sprintf_s(sKNum, sizeof(sKNum), "%i", dwKey);
WritePrivateProfileString("keymapping", HKeys[i].sIniLabel, sKNum, gInitPath);
}
else
WritePrivateProfileString("keymapping", HKeys[i].sIniLabel, "", gInitPath);
}
//(CDxwndhostView *)(this->GetParent())->UpdateHotKeys();
//gbDebug = m_DebugMode;
gAutoHideMode = m_AutoHideMode;
gWarnOnExit = m_WarnOnExit;
}