MCPcopy Create free account
hub / github.com/DiscordMessenger/dm / OnPreferenceDialogInit

Function OnPreferenceDialogInit

src/windows/OptionsDialog.cpp:680–775  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

678}
679
680HRESULT OnPreferenceDialogInit(HWND hWnd)
681{
682#ifndef MINGW_SPECIFIC_HACKS
683 INITCOMMONCONTROLSEX iccex;
684 iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
685 iccex.dwICC = ICC_TAB_CLASSES;
686 InitCommonControlsEx(&iccex);
687#endif
688
689 bool simplifiedUI = NT31SimplifiedInterface();
690
691 if (simplifiedUI)
692 {
693 // The simplified UI only consists of controls, no tabs.
694 for (int i = PG_FIRST; i < PG_PAGE_COUNT; i++)
695 OptionsInitPage(hWnd, i);
696
697 return 0;
698 }
699
700 DWORD dwDlgBase = GetDialogBaseUnits();
701 int cxMargin = LOWORD(dwDlgBase) / 4;
702 int cyMargin = HIWORD(dwDlgBase) / 8;
703
704 DialogHeader* pHeader = new DialogHeader;
705 SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) pHeader);
706
707 // Get the tab control. Note the hardcoded sizes:
708 HWND hwndTab = GetDlgItem(hWnd, IDC_OPTIONS_TABS);
709 if (!hwndTab) {
710 delete pHeader;
711 return HRESULT_FROM_WIN32(GetLastError());
712 }
713
714 pHeader->hwndTab = hwndTab;
715
716 // Add a bunch of tabs.
717 TCITEM tie;
718 tie.mask = TCIF_TEXT | TCIF_IMAGE;
719
720 AddTab(hwndTab, tie, PG_ACCOUNT_AND_PRIVACY, (LPTSTR)TmGetTString(IDS_ACCOUNT_PRIVACY));
721 AddTab(hwndTab, tie, PG_APPEARANCE, (LPTSTR)TmGetTString(IDS_APPEARANCE));
722 AddTab(hwndTab, tie, PG_NOTIFICATIONS, (LPTSTR)TmGetTString(IDS_NOTIFICATIONS));
723 AddTab(hwndTab, tie, PG_CHAT, (LPTSTR)TmGetTString(IDS_CHAT));
724 AddTab(hwndTab, tie, PG_WINDOW, (LPTSTR)TmGetTString(IDS_WINDOW));
725 AddTab(hwndTab, tie, PG_CONNECTION, (LPTSTR)TmGetTString(IDS_CONNECTION));
726
727 // Lock the resources for the child dialog boxes.
728 pHeader->apRes[PG_ACCOUNT_AND_PRIVACY] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_MY_ACCOUNT));
729 pHeader->apRes[ PG_APPEARANCE ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_APPEARANCE));
730 pHeader->apRes[ PG_NOTIFICATIONS ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_NOTIFSETTINGS));
731 pHeader->apRes[ PG_CHAT ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_CHATSETTINGS));
732 pHeader->apRes[ PG_WINDOW ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_WINDOWSETTINGS));
733 pHeader->apRes[ PG_CONNECTION ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_CONNECTION));
734
735 RECT rcTab;
736 SetRectEmpty(&rcTab);
737

Callers 1

DialogProcFunction · 0.85

Calls 4

OptionsInitPageFunction · 0.85
AddTabFunction · 0.85
LockDialogResourceFunction · 0.85
OnSelChangedFunction · 0.85

Tested by

no test coverage detected