📄 prefdialog.cpp
字号:
currentValues.preBufferLength = atoi(text);
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
break;
}
case IDC_STAYONTOP:
{
if(Button_GetCheck(hwndStayOnTop) == BST_CHECKED)
{
currentValues.stayOnTop = true;
}
else
{
currentValues.stayOnTop = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_TRAY:
{
if(Button_GetCheck(hwndLiveInTray) == BST_CHECKED)
{
currentValues.liveInTray = true;
}
else
{
currentValues.liveInTray = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
}
break;
}
case WM_HSCROLL:
{
LRESULT position;
HWND hwndScroll = (HWND) lParam;
switch (LOWORD(wParam))
{
case TB_LINEUP:
case TB_LINEDOWN:
case TB_PAGEDOWN:
case TB_PAGEUP:
case TB_THUMBPOSITION:
case TB_THUMBTRACK:
{
if(hwndScroll == hwndPriority)
{
position = SendMessage( hwndScroll,
TBM_GETPOS,
0,
0);
currentValues.decoderThreadPriority = position;
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
}
}
break;
}
case WM_NOTIFY:
{
NMHDR* notify = (NMHDR*)lParam;
switch(notify->code)
{
case PSN_SETACTIVE:
{
break;
}
case PSN_APPLY:
{
SavePrefsValues(prefs, ¤tValues);
break;
}
case PSN_KILLACTIVE:
{
break;
}
case PSN_RESET:
{
SavePrefsValues(prefs, &originalValues);
break;
}
}
break;
}
}
return result;
}
static
BOOL
CALLBACK
PrefPage2Proc( HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
UINT result = 0;
static PROPSHEETPAGE* psp = NULL;
static Preferences* prefs = NULL;
static HWND hwndStreamInterval = NULL;
static HWND hwndSaveStreams = NULL;
static HWND hwndSaveStreamsDirectory = NULL;
static HWND hwndBrowse = NULL;
static HWND hwndSaveLocationText = NULL;
static HWND hwndUseProxyServer = NULL;
static HWND hwndProxyServerAddress = NULL;
static HWND hwndProxyServerPort = NULL;
static HWND hwndProxyServerAddressText = NULL;
static HWND hwndProxyServerPortText = NULL;
static HWND hwndColon = NULL;
static HWND hwndUseAlternateIP = NULL;
static HWND hwndUseAlternateIPText = NULL;
static HWND hwndAlternateIPAddress1 = NULL;
static HWND hwndAlternateIPAddress2 = NULL;
static HWND hwndAlternateIPAddress3 = NULL;
static HWND hwndAlternateIPAddress4 = NULL;
static HWND hwndPeriod1 = NULL;
static HWND hwndPeriod2 = NULL;
static HWND hwndPeriod3 = NULL;
switch(msg)
{
case WM_INITDIALOG:
{
// remember these for later...
psp = (PROPSHEETPAGE*)lParam;
prefs = (Preferences*)psp->lParam;
// get the handles to all our controls
hwndStreamInterval = GetDlgItem(hwnd, IDC_STREAM_INTERVAL);
hwndSaveStreams = GetDlgItem(hwnd, IDC_SAVESTREAMS);
hwndSaveStreamsDirectory = GetDlgItem(hwnd, IDC_STREAMSAVEDIR);
hwndBrowse = GetDlgItem(hwnd, IDC_BROWSE);
hwndSaveLocationText = GetDlgItem(hwnd, IDC_SAVELOCATION_TEXT);
hwndUseProxyServer = GetDlgItem(hwnd, IDC_USEPROXY);
hwndProxyServerAddress = GetDlgItem(hwnd, IDC_PROXYADDRESS);
hwndProxyServerAddressText = GetDlgItem(hwnd, IDC_PROXYADDRESS_TEXT);
hwndProxyServerPort = GetDlgItem(hwnd, IDC_PORT);
hwndProxyServerPortText = GetDlgItem(hwnd, IDC_PORT_TEXT);
hwndColon = GetDlgItem(hwnd, IDC_COLON_TEXT);
hwndUseAlternateIP = GetDlgItem(hwnd, IDC_USETHISIP);
hwndUseAlternateIPText = GetDlgItem(hwnd, IDC_IPADDRESS_TEXT);
hwndAlternateIPAddress1 = GetDlgItem(hwnd, IDC_IPADDRESS1);
hwndAlternateIPAddress2 = GetDlgItem(hwnd, IDC_IPADDRESS2);
hwndAlternateIPAddress3 = GetDlgItem(hwnd, IDC_IPADDRESS3);
hwndAlternateIPAddress4 = GetDlgItem(hwnd, IDC_IPADDRESS4);
hwndPeriod1 = GetDlgItem(hwnd, IDC_PERIOD1);
hwndPeriod2 = GetDlgItem(hwnd, IDC_PERIOD2);
hwndPeriod3 = GetDlgItem(hwnd, IDC_PERIOD3);
// initialize our controls
int32 value;
char temp[256];
value = originalValues.streamInterval;
sprintf(temp, "%d", value);
Edit_LimitText(hwndStreamInterval, 2);
Edit_SetText(hwndStreamInterval, temp);
Button_SetCheck(hwndSaveStreams, originalValues.saveStreams);
Edit_SetText( hwndSaveStreamsDirectory,
originalValues.saveStreamsDirectory);
Button_Enable( hwndSaveStreamsDirectory,
originalValues.saveStreams);
Button_Enable( hwndBrowse,
originalValues.saveStreams);
Button_Enable( hwndSaveLocationText,
originalValues.saveStreams);
char* port = NULL;
strcpy(temp, originalValues.proxyServer);
port = strrchr(temp, ':');
if(port)
{
*port = 0x00;
port++;
Edit_SetText(hwndProxyServerPort,
port);
}
Edit_SetText( hwndProxyServerAddress,
temp);
Edit_LimitText(hwndProxyServerPort, 5);
Button_SetCheck(hwndUseProxyServer, originalValues.useProxyServer);
Button_Enable( hwndProxyServerAddress,
originalValues.useProxyServer);
Button_Enable( hwndProxyServerAddressText,
originalValues.useProxyServer);
Button_Enable( hwndProxyServerPort,
originalValues.useProxyServer);
Button_Enable( hwndProxyServerPortText,
originalValues.useProxyServer);
Button_Enable( hwndColon,
originalValues.useProxyServer);
char* dot = NULL;
char* ip[4];
int32 i = 1;
strcpy(temp, originalValues.alternateIP);
ip[0] = temp;
dot = temp;
while(dot = strchr(dot, '.'))
{
*dot = 0x00;
ip[i++] = ++dot;
}
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, originalValues.useAlternateIP);
Button_Enable( hwndUseAlternateIPText,
originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress1,
originalValues.useAlternateIP);
Button_Enable( hwndPeriod1,
originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress2,
originalValues.useAlternateIP);
Button_Enable( hwndPeriod2,
originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress3,
originalValues.useAlternateIP);
Button_Enable( hwndPeriod3,
originalValues.useAlternateIP);
Button_Enable( hwndAlternateIPAddress4,
originalValues.useAlternateIP);
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_STREAM_INTERVAL:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char text[128];
Edit_GetText(hwndStreamInterval, text, sizeof(text));
currentValues.streamInterval = atoi(text);
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
}
break;
}
case IDC_SAVESTREAMS:
{
BOOL enabled;
if(Button_GetCheck(hwndSaveStreams) == BST_CHECKED)
{
currentValues.saveStreams = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -