Skip to content

Commit

Permalink
* Add more tabs to options dialog. Work in progress
Browse files Browse the repository at this point in the history
Most new checkboxes are disabled.
  • Loading branch information
iProgramMC committed Jun 17, 2024
1 parent 40d3afd commit e94f165
Show file tree
Hide file tree
Showing 4 changed files with 167 additions and 29 deletions.
18 changes: 17 additions & 1 deletion src/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,9 @@
#define IDD_DIALOG_UPLOADING 413
#define IDD_DIALOG_GUILD_CHOOSER 414
#define IDD_DIALOG_NOTIFICATIONS 415
#define IDD_DIALOG_NOTIFSETTINGS 416
#define IDD_DIALOG_CHATSETTINGS 417
#define IDD_DIALOG_WINDOWSETTINGS 418
#define IDR_MAINMENU 501
#define IDR_MESSAGE_CONTEXT 502
#define IDR_GUILD_CONTEXT 503
Expand Down Expand Up @@ -300,6 +303,9 @@
#define IDS_WELCOME_TO_START_DM_1 762
#define IDS_WELCOME_TO_START_DM_2 763
#define IDS_WELCOME_TO_START_GROUP 764
#define IDS_NOTIFICATIONS 765
#define IDS_CHAT 766
#define IDS_WINDOW 767
#define IDC_OPTIONS_TABS 801
#define IDC_MY_ACCOUNT_BOX 802
#define IDC_MY_ACCOUNT_NAME 803
Expand Down Expand Up @@ -392,6 +398,16 @@
#define IDC_NOTIFICATION_HINT 891
#define IDC_TOGGLE_XSUPERPROPS 892
#define IDC_NOTIFS_MARK_AS_READ 893
#define IDC_IMAGES_WHEN_UPLOADED 894
#define IDC_IMAGES_WHEN_EMBEDDED 895
#define IDC_SHOW_EMBEDS 896
#define IDC_ENABLE_BALLOON_NOTIFS 898
#define IDC_FLASH_TASKBAR 899
#define IDC_USE_DISCORD_SOUND 900
#define IDC_MUTE_NOTIFICATIONS 901
#define IDC_OPEN_ON_STARTUP 902
#define IDC_START_MINIMIZED 903
#define IDC_MINIMIZE_TO_NOTIF 904
#define ID_FILE_PREFERENCES 1001
#define ID_FILE_STOPALLSPEECH 1002
#define ID_FILE_EXIT 1003
Expand Down Expand Up @@ -470,7 +486,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 1069
#define _APS_NEXT_CONTROL_VALUE 894
#define _APS_NEXT_CONTROL_VALUE 904
#define _APS_NEXT_SYMED_VALUE 40000
#endif
#endif
131 changes: 112 additions & 19 deletions src/resource.rc
Original file line number Diff line number Diff line change
Expand Up @@ -450,29 +450,24 @@ IDD_DIALOG_APPEARANCE DIALOGEX 0, 0, 260, 242
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
GROUPBOX "Message Display",IDC_MDISPLAY_BOX,6,7,248,58
GROUPBOX "Message Display",IDC_MDISPLAY_BOX,6,7,248,38
CONTROL "Cozy: Modern, beautiful, and easy on your eyes.",IDC_APPEARANCE_COZY,
"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,18,236,10
CONTROL "Compact: Fit more messages on screen at one time. #IRC",IDC_APPEARANCE_COMPACT,
"Button",BS_AUTORADIOBUTTON,12,30,236,10
GROUPBOX "Message List Style",IDC_MSTYLE_BOX,6,98,248,29
GROUPBOX "Window Settings",IDC_STATIC,6,179,248,55
CONTROL "Save window size",IDC_SAVE_WINDOW_SIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,191,236,10
CONTROL "Start maximized",IDC_START_MAXIMIZED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,204,236,10
CONTROL "Disable markdown formatting (suggested for RTL scripts such as Arabic or in case of performance issues)",IDC_DISABLE_FORMATTING,
"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,12,43,236,18
LTEXT "Message theme:",IDC_STATIC,12,109,53,13,SS_CENTERIMAGE
PUSHBUTTON "Change...",IDC_ACTIVE_IMAGE_BROWSE,198,140,50,14
EDITTEXT IDC_ACTIVE_IMAGE_EDIT,53,140,135,14,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Image:",IDC_STATIC,12,140,41,14,SS_CENTERIMAGE
COMBOBOX IDC_MESSAGE_STYLE,73,109,175,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Compact member list",IDC_COMPACT_MEMBER_LIST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,218,236,10
COMBOBOX IDC_COMBO_ALIGNMENT,53,158,195,78,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Aligned to:",IDC_STATIC,12,158,41,12,SS_CENTERIMAGE
GROUPBOX "Message List Watermark",IDC_STATIC,6,129,248,48
GROUPBOX "User Interface Scale",IDC_STATIC,6,67,248,29
LTEXT "Size of UI elements:",IDC_STATIC,12,78,68,12,SS_CENTERIMAGE
COMBOBOX IDC_COMBO_GUI_SCALE,80,78,168,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Message List Style",IDC_MSTYLE_BOX,6,93,248,29
LTEXT "Message theme:",IDC_STATIC,12,104,53,13,SS_CENTERIMAGE
PUSHBUTTON "Change...",IDC_ACTIVE_IMAGE_BROWSE,198,135,50,14
EDITTEXT IDC_ACTIVE_IMAGE_EDIT,53,135,135,14,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Image:",IDC_STATIC,12,135,41,14,SS_CENTERIMAGE
COMBOBOX IDC_MESSAGE_STYLE,73,104,175,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Compact member list",IDC_COMPACT_MEMBER_LIST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,60,236,10
COMBOBOX IDC_COMBO_ALIGNMENT,53,153,195,78,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Aligned to:",IDC_STATIC,12,153,41,12,SS_CENTERIMAGE
GROUPBOX "Message List Watermark",IDC_STATIC,6,124,248,48
GROUPBOX "User Interface",IDC_STATIC,6,48,248,42
LTEXT "Size of UI elements:",IDC_STATIC,12,72,68,12,SS_CENTERIMAGE
COMBOBOX IDC_COMBO_GUI_SCALE,80,72,168,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_DIALOG_PROFILE_POPOUT DIALOGEX 0, 0, 126, 134
Expand Down Expand Up @@ -648,6 +643,53 @@ BEGIN
DEFPUSHBUTTON "",IDC_NOTIFS_MARK_AS_READ,324,7,18,15,BS_ICON
END

IDD_DIALOG_NOTIFSETTINGS DIALOGEX 0, 0, 260, 242
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
GROUPBOX "Balloon Notifications",IDC_STATIC,6,7,248,65
CONTROL "Enable balloon notifications",IDC_ENABLE_BALLOON_NOTIFS,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,18,103,10
CONTROL "Flash the window on the taskbar if a notification is received",IDC_FLASH_TASKBAR,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,31,205,10
CONTROL "Play Discord notification sound when a notification is received",IDC_USE_DISCORD_SOUND,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,57,212,10
CONTROL "Don't play sound when a notification is received",IDC_MUTE_NOTIFICATIONS,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,44,242,10
END

IDD_DIALOG_CHATSETTINGS DIALOGEX 0, 0, 260, 242
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
GROUPBOX "Message Options",IDC_STATIC,6,7,248,33
CONTROL "Disable markdown formatting (suggested for RTL scripts such as Arabic or in case of performance issues)",IDC_DISABLE_FORMATTING,
"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,12,18,236,18
GROUPBOX "Display Images",IDC_STATIC,6,43,248,41
CONTROL "When uploaded directly to Discord",IDC_IMAGES_WHEN_UPLOADED,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,55,236,10
CONTROL "When posted as links in chat",IDC_IMAGES_WHEN_EMBEDDED,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,68,236,10
GROUPBOX "Embed Settings",IDC_STATIC,6,90,248,27
CONTROL "Show embeds and preview links in chat",IDC_SHOW_EMBEDS,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,101,236,10
END

IDD_DIALOG_WINDOWSETTINGS DIALOGEX 0, 0, 260, 242
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
GROUPBOX "Window Settings",IDC_STATIC,6,7,248,81
CONTROL "Save window size",IDC_SAVE_WINDOW_SIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,18,236,10
CONTROL "Start maximized",IDC_START_MAXIMIZED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,32,236,10
CONTROL "Open Discord Messenger when your computer starts",IDC_OPEN_ON_STARTUP,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,46,242,10
CONTROL "Open minimized to notification area",IDC_START_MINIMIZED,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,32,60,222,10
CONTROL "Minimize to notification area when clicking the close button",IDC_MINIMIZE_TO_NOTIF,
"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,12,74,242,10
END


/////////////////////////////////////////////////////////////////////////////
//
Expand Down Expand Up @@ -775,6 +817,39 @@ BEGIN
TOPMARGIN, 7
BOTTOMMARGIN, 232
END

IDD_DIALOG_NOTIFSETTINGS, DIALOG
BEGIN
LEFTMARGIN, 6
RIGHTMARGIN, 254
VERTGUIDE, 12
TOPMARGIN, 7
BOTTOMMARGIN, 234
END

IDD_DIALOG_CHATSETTINGS, DIALOG
BEGIN
LEFTMARGIN, 6
RIGHTMARGIN, 254
VERTGUIDE, 12
VERTGUIDE, 248
TOPMARGIN, 7
BOTTOMMARGIN, 234
END

IDD_DIALOG_WINDOWSETTINGS, DIALOG
BEGIN
LEFTMARGIN, 6
RIGHTMARGIN, 254
VERTGUIDE, 12
TOPMARGIN, 7
BOTTOMMARGIN, 234
HORZGUIDE, 18
HORZGUIDE, 32
HORZGUIDE, 46
HORZGUIDE, 60
HORZGUIDE, 74
END
END
#endif // APSTUDIO_INVOKED

Expand Down Expand Up @@ -876,6 +951,21 @@ BEGIN
0, 0, 0, 0
END

IDD_DIALOG_NOTIFSETTINGS AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_DIALOG_CHATSETTINGS AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_DIALOG_WINDOWSETTINGS AFX_DIALOG_LAYOUT
BEGIN
0
END


/////////////////////////////////////////////////////////////////////////////
//
Expand Down Expand Up @@ -1220,6 +1310,9 @@ BEGIN
"This is the beginning of your direct message history with "
IDS_WELCOME_TO_START_DM_2 "."
IDS_WELCOME_TO_START_GROUP " group."
IDS_NOTIFICATIONS "Notifications"
IDS_CHAT "Chat"
IDS_WINDOW "Window"
END

#endif // English (United States) resources
Expand Down
46 changes: 37 additions & 9 deletions src/windows/OptionsDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,19 @@ const int g_indexToUserInterfaceScale[] = {
1500,
};

#define C_PAGES (3)

enum ePage
{
PG_ACCOUNT_AND_PRIVACY,
PG_APPEARANCE,
PG_NOTIFICATIONS,
PG_CHAT,
PG_WINDOW,
PG_CONNECTION,
PG_PAGE_COUNT
};

#define C_PAGES (int(PG_PAGE_COUNT))

#pragma pack(push, 1)
typedef struct
{
Expand Down Expand Up @@ -161,8 +165,6 @@ void WINAPI OnChildDialogInit(HWND hwndDlg)
GetSettingsManager()->GetMessageCompact() ? IDC_APPEARANCE_COMPACT : IDC_APPEARANCE_COZY
);

CheckDlgButton(hwndDlg, IDC_SAVE_WINDOW_SIZE, GetLocalSettings()->GetSaveWindowSize() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_START_MAXIMIZED, GetLocalSettings()->GetStartMaximized() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_DISABLE_FORMATTING, GetLocalSettings()->DisableFormatting() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_COMPACT_MEMBER_LIST, GetLocalSettings()->GetCompactMemberList() ? BST_CHECKED : BST_UNCHECKED);

Expand Down Expand Up @@ -224,6 +226,12 @@ void WINAPI OnChildDialogInit(HWND hwndDlg)

break;
}
case PG_WINDOW:
{
CheckDlgButton(hwndDlg, IDC_SAVE_WINDOW_SIZE, GetLocalSettings()->GetSaveWindowSize() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_START_MAXIMIZED, GetLocalSettings()->GetStartMaximized() ? BST_CHECKED : BST_UNCHECKED);
break;
}
case PG_CONNECTION:
{
LPTSTR tstrAPI = ConvertCppStringToTString(GetDiscordAPI());
Expand Down Expand Up @@ -416,14 +424,28 @@ INT_PTR CALLBACK ChildDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa
GetSettingsManager()->FlushSettings();
SendMessage(g_Hwnd, WM_RECALCMSGLIST, 0, 0);
break;
case IDC_DISABLE_FORMATTING:
GetLocalSettings()->SetDisableFormatting(IsDlgButtonChecked(hWnd, IDC_DISABLE_FORMATTING));
SendMessage(g_Hwnd, WM_RECALCMSGLIST, 0, 0);
break;
case IDC_COMPACT_MEMBER_LIST:
GetLocalSettings()->SetCompactMemberList(IsDlgButtonChecked(hWnd, IDC_COMPACT_MEMBER_LIST));
SendMessage(g_Hwnd, WM_RECREATEMEMBERLIST, 0, 0);
break;
}
break;
}
case PG_CHAT:
{
switch (LOWORD(wParam))
{
case IDC_DISABLE_FORMATTING:
GetLocalSettings()->SetDisableFormatting(IsDlgButtonChecked(hWnd, IDC_DISABLE_FORMATTING));
SendMessage(g_Hwnd, WM_RECALCMSGLIST, 0, 0);
break;
}
break;
}
case PG_WINDOW:
{
switch (LOWORD(wParam))
{
case IDC_SAVE_WINDOW_SIZE:
GetLocalSettings()->SetSaveWindowSize(IsDlgButtonChecked(hWnd, IDC_SAVE_WINDOW_SIZE));
break;
Expand Down Expand Up @@ -578,11 +600,17 @@ HRESULT OnPreferenceDialogInit(HWND hWnd)

AddTab(hwndTab, tie, PG_ACCOUNT_AND_PRIVACY, (LPTSTR)TmGetTString(IDS_ACCOUNT_PRIVACY));
AddTab(hwndTab, tie, PG_APPEARANCE, (LPTSTR)TmGetTString(IDS_APPEARANCE));
AddTab(hwndTab, tie, PG_NOTIFICATIONS, (LPTSTR)TmGetTString(IDS_NOTIFICATIONS));
AddTab(hwndTab, tie, PG_CHAT, (LPTSTR)TmGetTString(IDS_CHAT));
AddTab(hwndTab, tie, PG_WINDOW, (LPTSTR)TmGetTString(IDS_WINDOW));
AddTab(hwndTab, tie, PG_CONNECTION, (LPTSTR)TmGetTString(IDS_CONNECTION));

// Lock the resources for the three child dialog boxes.
// Lock the resources for the child dialog boxes.
pHeader->apRes[PG_ACCOUNT_AND_PRIVACY] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_MY_ACCOUNT));
pHeader->apRes[ PG_APPEARANCE ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_APPEARANCE));
pHeader->apRes[ PG_NOTIFICATIONS ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_NOTIFSETTINGS));
pHeader->apRes[ PG_CHAT ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_CHATSETTINGS));
pHeader->apRes[ PG_WINDOW ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_WINDOWSETTINGS));
pHeader->apRes[ PG_CONNECTION ] = LockDialogResource(MAKEINTRESOURCE(IDD_DIALOG_CONNECTION));

RECT rcTab;
Expand Down
1 change: 1 addition & 0 deletions vs/DiscordMessenger.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
<ProjectGuid>{3249eac3-35d9-4646-ace2-e2bd3b7f4812}</ProjectGuid>
<RootNamespace>DiscordMessenger</RootNamespace>
<WindowsTargetPlatformVersion>7.0</WindowsTargetPlatformVersion>
<ProjectName>IDD_DIALOG_NOTIFSETTINGS [English (United States)]</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
Expand Down

0 comments on commit e94f165

Please sign in to comment.