📄 win32preferencewindow.cpp
字号:
Button_Enable( hwndProxyServerAddressText,
m_originalValues.useProxyServer);
Button_Enable( hwndProxyServerPort,
m_originalValues.useProxyServer);
Button_Enable( hwndProxyServerPortText,
m_originalValues.useProxyServer);
Button_Enable( hwndColon,
m_originalValues.useProxyServer);
char ip[4][10];
sscanf(m_originalValues.alternateIP.c_str(), "%[^.].%[^.].%[^.].%[^.]",
ip[0], ip[1], ip[2], ip[3]);
Edit_SetText(hwndAlternateIPAddress1, ip[0]);
Edit_SetText(hwndAlternateIPAddress2, ip[1]);
Edit_SetText(hwndAlternateIPAddress3, ip[2]);
Edit_SetText(hwndAlternateIPAddress4, ip[3]);
Edit_LimitText(hwndAlternateIPAddress1, 3);
Edit_LimitText(hwndAlternateIPAddress2, 3);
Edit_LimitText(hwndAlternateIPAddress3, 3);
Edit_LimitText(hwndAlternateIPAddress4, 3);
Button_SetCheck(hwndUseAlternateIP, m_originalValues.useAlternateIP);
Button_Enable( hwndUseAlternateIPText,
m_originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress1,
m_originalValues.useAlternateIP);
Button_Enable( hwndPeriod1,
m_originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress2,
m_originalValues.useAlternateIP);
Button_Enable( hwndPeriod2,
m_originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress3,
m_originalValues.useAlternateIP);
Button_Enable( hwndPeriod3,
m_originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress4,
m_originalValues.useAlternateIP);
break;
}
case UWM_HELP:
case WM_HELP:
{
ShowHelp(m_pContext, Preferences_Streaming);
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_SAVESTREAMS:
{
BOOL enabled;
if(Button_GetCheck(hwndSaveStreams) == BST_CHECKED)
{
m_proposedValues.saveStreams = true;
}
else
{
m_proposedValues.saveStreams = false;
}
enabled = (m_proposedValues.saveStreams ? TRUE : FALSE);
Button_Enable(hwndSaveStreamsDirectory, enabled);
Button_Enable(hwndBrowse, enabled);
Button_Enable(hwndSaveLocationText,enabled);
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_STREAMSAVEDIR:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char temp[MAX_PATH];
Edit_GetText( hwndSaveStreamsDirectory,
temp,
MAX_PATH);
m_proposedValues.saveStreamsDirectory = temp;
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
break;
}
case IDC_BROWSE:
{
LPMALLOC pMalloc;
if(SUCCEEDED(SHGetMalloc(&pMalloc)))
{
BROWSEINFO bi;
LPITEMIDLIST browseId;
char displayName[MAX_PATH + 1];
bi.hwndOwner = hwnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = displayName;
bi.lpszTitle = "Please select the folder to which you want to save streams.";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
browseId = SHBrowseForFolder(&bi);
if(browseId)
{
char temp[MAX_PATH];
SHGetPathFromIDList(browseId, temp);
m_proposedValues.saveStreamsDirectory = temp;
Edit_SetText(hwndSaveStreamsDirectory, temp);
pMalloc->Free(browseId);
}
}
break;
}
case IDC_USEPROXY:
{
BOOL enabled;
if(Button_GetCheck(hwndUseProxyServer) == BST_CHECKED)
{
m_proposedValues.useProxyServer = true;
}
else
{
m_proposedValues.useProxyServer = false;
}
enabled = (m_proposedValues.useProxyServer ? TRUE : FALSE);
Button_Enable(hwndProxyServerAddress, enabled);
Button_Enable(hwndProxyServerAddressText, enabled);
Button_Enable(hwndProxyServerPort, enabled);
Button_Enable(hwndProxyServerPortText, enabled);
Button_Enable(hwndColon, enabled);
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_PROXYADDRESS:
case IDC_PORT:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char temp[MAX_PATH];
char port[6];
Edit_GetText( hwndProxyServerAddress,
temp,
MAX_PATH);
m_proposedValues.proxyServer = temp;
Edit_GetText( hwndProxyServerPort,
port,
sizeof(port));
if(*port)
{
m_proposedValues.proxyServer += ":";
m_proposedValues.proxyServer += port;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
break;
}
case IDC_USETHISIP:
{
BOOL enabled;
if(Button_GetCheck(hwndUseAlternateIP) == BST_CHECKED)
{
m_proposedValues.useAlternateIP = true;
}
else
{
m_proposedValues.useAlternateIP = false;
}
enabled = (m_proposedValues.useAlternateIP ? TRUE : FALSE);
Button_Enable(hwndUseAlternateIPText, enabled);
Button_Enable(hwndAlternateIPAddress1, enabled);
Button_Enable(hwndPeriod1, enabled);
Button_Enable(hwndAlternateIPAddress2, enabled);
Button_Enable(hwndPeriod2, enabled);
Button_Enable(hwndAlternateIPAddress3, enabled);
Button_Enable(hwndPeriod3, enabled);
Button_Enable(hwndAlternateIPAddress4, enabled);
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_IPADDRESS1:
case IDC_IPADDRESS2:
case IDC_IPADDRESS3:
case IDC_IPADDRESS4:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char ip[4];
Edit_GetText(hwndAlternateIPAddress1, ip, 4);
if(*ip)
{
m_proposedValues.alternateIP = ip;
}
else
{
m_proposedValues.alternateIP = "0";
}
m_proposedValues.alternateIP += ".";
Edit_GetText(hwndAlternateIPAddress2, ip, 4);
if(*ip)
{
m_proposedValues.alternateIP += ip;
}
else
{
m_proposedValues.alternateIP += "0";
}
m_proposedValues.alternateIP += ".";
Edit_GetText(hwndAlternateIPAddress3, ip, 4);
if(*ip)
{
m_proposedValues.alternateIP += ip;
}
else
{
m_proposedValues.alternateIP += "0";
}
m_proposedValues.alternateIP += ".";
Edit_GetText(hwndAlternateIPAddress4, ip, 4);
if(*ip)
{
m_proposedValues.alternateIP += ip;
}
else
{
m_proposedValues.alternateIP += "0";
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
break;
}
}
break;
}
case WM_NOTIFY:
{
NMHDR* notify = (NMHDR*)lParam;
switch(notify->code)
{
case PSN_HELP:
{
ShowHelp(m_pContext, Preferences_Streaming);
break;
}
case PSN_SETACTIVE:
{
break;
}
case PSN_APPLY:
{
SavePrefsValues(&m_proposedValues);
break;
}
case PSN_KILLACTIVE:
{
break;
}
case PSN_RESET:
{
SavePrefsValues(&m_originalValues);
break;
}
}
break;
}
}
return result;
}
bool Win32PreferenceWindow::PrefDebugProc(HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -