📄 win32preferencewindow.cpp
字号:
size = bufferSize;
m_pThemeMan->GetCurrentTheme(values->currentTheme);
// get the other prefs
prefs->GetDecoderThreadPriority(&values->decoderThreadPriority);
prefs->GetInputBufferSize(&values->inputBufferSize);
prefs->GetOutputBufferSize(&values->outputBufferSize);
prefs->GetPrebufferLength(&values->preBufferLength);
prefs->GetStayOnTop(&values->stayOnTop);
prefs->GetLiveInTray(&values->liveInTray);
prefs->GetStreamBufferInterval(&values->streamInterval);
prefs->GetSaveStreams(&values->saveStreams);
prefs->GetUseProxyServer(&values->useProxyServer);
prefs->GetUseAlternateNIC(&values->useAlternateIP);
prefs->GetUseDebugLog(&values->enableLogging);
prefs->GetLogMain(&values->logMain);
prefs->GetLogDecode(&values->logDecoder);
prefs->GetLogInput(&values->logInput);
prefs->GetLogOutput(&values->logOutput);
prefs->GetLogPerformance(&values->logPerformance);
prefs->GetCheckForUpdates(&values->checkForUpdates);
prefs->GetAskToReclaimFiletypes(&values->askReclaimFiletypes);
prefs->GetReclaimFiletypes(&values->reclaimFiletypes);
prefs->GetShowToolbarTextLabels(&values->useTextLabels);
prefs->GetShowToolbarImages(&values->useImages);
prefs->GetSaveCurrentPlaylistOnExit(&values->savePlaylistOnExit);
prefs->GetPlayImmediately(&values->playImmediately);
free(buffer);
}
void Win32PreferenceWindow::SavePrefsValues(Preferences* prefs,
PrefsStruct* values)
{
prefs->SetDefaultPMO(values->defaultPMO.c_str());
prefs->SetDefaultUI(values->defaultUI.c_str());
prefs->SetDecoderThreadPriority(values->decoderThreadPriority);
prefs->SetInputBufferSize(values->inputBufferSize);
prefs->SetOutputBufferSize(values->outputBufferSize);
prefs->SetPrebufferLength(values->preBufferLength);
prefs->SetStayOnTop(values->stayOnTop);
prefs->SetLiveInTray(values->liveInTray);
prefs->SetStreamBufferInterval(values->streamInterval);
prefs->SetSaveStreams(values->saveStreams);
prefs->SetSaveStreamsDirectory(values->saveStreamsDirectory.c_str());
prefs->SetProxyServerAddress(values->proxyServer.c_str());
prefs->SetUseProxyServer(values->useProxyServer);
prefs->SetAlternateNICAddress(values->alternateIP.c_str());
prefs->SetUseAlternateNIC(values->useAlternateIP);
prefs->SetUseDebugLog(values->enableLogging);
prefs->SetLogMain(values->logMain);
prefs->SetLogDecode(values->logDecoder);
prefs->SetLogInput(values->logInput);
prefs->SetLogOutput(values->logOutput);
prefs->SetLogPerformance(values->logPerformance);
prefs->SetThemeDefaultFont(values->defaultFont.c_str());
if (m_oThemeList[values->currentTheme].length() > 0)
m_pThemeMan->UseTheme(m_oThemeList[values->currentTheme]);
prefs->SetCheckForUpdates(values->checkForUpdates);
prefs->SetSaveMusicDirectory(values->saveMusicDirectory.c_str());
prefs->SetAskToReclaimFiletypes(values->askReclaimFiletypes);
prefs->SetReclaimFiletypes(values->reclaimFiletypes);
PortableSet::const_iterator i;
string portableList;
for(i = values->portablePlayers.begin(); i != values->portablePlayers.end(); i++)
{
portableList += *i;
portableList += ";";
}
prefs->SetUsersPortablePlayers(portableList.c_str());
prefs->SetShowToolbarTextLabels(values->useTextLabels);
prefs->SetShowToolbarImages(values->useImages);
prefs->SetSaveCurrentPlaylistOnExit(values->savePlaylistOnExit);
prefs->SetPlayImmediately(values->playImmediately);
// this gets called by each page unfortunately
// so save some effort by only doing it once
if(*values != m_currentValues)
{
m_pContext->target->AcceptEvent(new Event(INFO_PrefsChanged));
m_currentValues = m_proposedValues = *values;
}
}
void Win32PreferenceWindow::LaunchHelp(HWND hwnd, uint32 topic)
{
string oHelpFile;
char dir[MAX_PATH];
uint32 len = sizeof(dir);
m_pContext->prefs->GetInstallDirectory(dir, &len);
oHelpFile = string(dir);
oHelpFile += string("\\");
oHelpFile += string(HELP_FILE);
WinHelp(hwnd, oHelpFile.c_str(), HELP_CONTEXT, topic);
}
bool Win32PreferenceWindow::PrefGeneralProc(HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
bool result = false;
static PROPSHEETPAGE* psp = NULL;
static Preferences* prefs = NULL;
static HWND hwndAskReclaimFiletypes = NULL;
static HWND hwndReclaimFiletypes = NULL;
static HWND hwndSaveMusicDir = NULL;
static HWND hwndStayOnTop = NULL;
static HWND hwndLiveInTray = NULL;
static HWND hwndTextOnly = NULL;
static HWND hwndImagesOnly = NULL;
static HWND hwndTextAndImages = NULL;
static HWND hwndSavePlaylistOnExit = NULL;
static HWND hwndDefaultAction = NULL;
switch(msg)
{
case WM_INITDIALOG:
{
// remember these for later...
psp = (PROPSHEETPAGE*)lParam;
prefs = (Preferences*)psp->lParam;
// get the handles to all our controls
hwndStayOnTop = GetDlgItem(hwnd, IDC_STAYONTOP);
hwndLiveInTray = GetDlgItem(hwnd, IDC_TRAY);
hwndAskReclaimFiletypes = GetDlgItem(hwnd, IDC_ASKRECLAIM);
hwndReclaimFiletypes = GetDlgItem(hwnd, IDC_RECLAIMFILETYPES);
hwndSaveMusicDir = GetDlgItem(hwnd, IDC_SAVEMUSICDIR);
hwndTextOnly = GetDlgItem(hwnd, IDC_TEXTONLY);
hwndImagesOnly = GetDlgItem(hwnd, IDC_IMAGESONLY);
hwndTextAndImages = GetDlgItem(hwnd, IDC_TEXTANDIMAGES);
hwndSavePlaylistOnExit = GetDlgItem(hwnd, IDC_SAVECURRENTLIST);
hwndDefaultAction = GetDlgItem(hwnd, IDC_DEFAULTACTION);
Button_SetCheck(hwndStayOnTop, m_originalValues.stayOnTop);
Button_SetCheck(hwndLiveInTray, m_originalValues.liveInTray);
Button_SetCheck(hwndReclaimFiletypes, m_originalValues.reclaimFiletypes);
Button_SetCheck(hwndAskReclaimFiletypes, m_originalValues.askReclaimFiletypes);
Button_SetCheck(hwndSavePlaylistOnExit, m_originalValues.savePlaylistOnExit);
Button_SetCheck(hwndDefaultAction, !m_originalValues.playImmediately);
Button_SetCheck(hwndTextOnly,
m_originalValues.useTextLabels && !m_originalValues.useImages);
Button_SetCheck(hwndImagesOnly,
!m_originalValues.useTextLabels && m_originalValues.useImages);
Button_SetCheck(hwndTextAndImages,
m_originalValues.useTextLabels && m_originalValues.useImages);
Edit_SetText(hwndSaveMusicDir,
m_originalValues.saveMusicDirectory.c_str());
LONG style = GetWindowLong(GetParent(hwnd), GWL_EXSTYLE);
style ^= WS_EX_CONTEXTHELP;
SetWindowLong(GetParent(hwnd), GWL_EXSTYLE, style);
break;
}
case WM_HELP:
{
LaunchHelp(hwnd, Preferences_General);
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_TEXTONLY:
{
if(Button_GetCheck(hwndTextOnly) == BST_CHECKED)
{
m_proposedValues.useTextLabels = true;
m_proposedValues.useImages = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_IMAGESONLY:
{
if(Button_GetCheck(hwndImagesOnly) == BST_CHECKED)
{
m_proposedValues.useTextLabels = false;
m_proposedValues.useImages = true;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_TEXTANDIMAGES:
{
if(Button_GetCheck(hwndTextAndImages) == BST_CHECKED)
{
m_proposedValues.useTextLabels = true;
m_proposedValues.useImages = true;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_DEFAULTACTION:
{
if(Button_GetCheck(hwndDefaultAction) == BST_CHECKED)
{
m_proposedValues.playImmediately = false;
}
else
{
m_proposedValues.playImmediately = true;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_SAVECURRENTLIST:
{
if(Button_GetCheck(hwndSavePlaylistOnExit) == BST_CHECKED)
{
m_proposedValues.savePlaylistOnExit = true;
}
else
{
m_proposedValues.savePlaylistOnExit = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_STAYONTOP:
{
if(Button_GetCheck(hwndStayOnTop) == BST_CHECKED)
{
m_proposedValues.stayOnTop = true;
}
else
{
m_proposedValues.stayOnTop = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_TRAY:
{
if(Button_GetCheck(hwndLiveInTray) == BST_CHECKED)
{
m_proposedValues.liveInTray = true;
}
else
{
m_proposedValues.liveInTray = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_RECLAIMFILETYPES:
{
if(Button_GetCheck(hwndReclaimFiletypes) == BST_CHECKED)
{
m_proposedValues.reclaimFiletypes = true;
}
else
{
m_proposedValues.reclaimFiletypes = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_ASKRECLAIM:
{
if(Button_GetCheck(hwndAskReclaimFiletypes) == BST_CHECKED)
{
m_proposedValues.askReclaimFiletypes = true;
}
else
{
m_proposedValues.askReclaimFiletypes = false;
}
if(m_proposedValues != m_currentValues)
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_SAVEMUSICDIR:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char temp[MAX_PATH];
Edit_GetText( hwndSaveMusicDir,
temp,
MAX_PATH);
m_proposedValues.saveMusicDirectory = temp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -