From 1d55a15ece762c77eb0f7b4f1ccc7cb994480e92 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 9 Sep 2022 07:43:57 -0700 Subject: =?UTF-8?q?fixes=20#3186=20(SmileyAdd:=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D1=83?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=BA=D0=B0=D1=87=D0=BA=D1=83=20?= =?UTF-8?q?=D1=81=D0=BC=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/SmileyAdd/res/resource.rc | 96 ++++++++++---------- plugins/SmileyAdd/src/options.cpp | 179 ++++++++++++++++++++++++-------------- plugins/SmileyAdd/src/resource.h | 4 +- plugins/SmileyAdd/src/version.h | 2 +- src/mir_app/src/sounds.cpp | 4 +- 5 files changed, 170 insertions(+), 115 deletions(-) diff --git a/plugins/SmileyAdd/res/resource.rc b/plugins/SmileyAdd/res/resource.rc index b8c9bc9fa7..bc5b1f156f 100644 --- a/plugins/SmileyAdd/res/resource.rc +++ b/plugins/SmileyAdd/res/resource.rc @@ -17,60 +17,66 @@ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1251) +#pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_OPT_SMILEYS DIALOGEX 0, 0, 320, 256 +IDD_OPT_GENERAL DIALOGEX 0, 0, 310, 213 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Smiley categories",IDC_STATIC,6,3,310,102 - CONTROL "",IDC_CATEGORYLIST,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | TVS_CHECKBOXES | WS_BORDER | WS_HSCROLL | WS_TABSTOP,14,13,104,76 - CONTROL "Specify smiley pack for each category",IDC_USESTDPACK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,11,165,11 - EDITTEXT IDC_FILENAME,124,25,185,12,ES_AUTOHSCROLL,WS_EX_ACCEPTFILES - PUSHBUTTON "...",IDC_BROWSE,296,11,13,11 - LTEXT "Name:",IDC_STATIC,125,42,34,8 - LTEXT "",IDC_LIBNAME,163,41,146,11,SS_SUNKEN | SS_PATHELLIPSIS - LTEXT "Author:",IDC_STATIC,125,56,34,8 - LTEXT "",IDC_LIBAUTHOR,163,55,100,11,SS_SUNKEN | SS_PATHELLIPSIS - LTEXT "Version:",IDC_STATIC,125,70,34,8 - LTEXT "",IDC_LIBVERSION,163,70,100,11,SS_SUNKEN | SS_PATHELLIPSIS - PUSHBUTTON "Preview",IDC_SMLOPTBUTTON,270,55,37,25 - EDITTEXT IDC_NEWCATEGORY,163,85,96,13,ES_AUTOHSCROLL - PUSHBUTTON "+",IDC_ADDCATEGORY,263,84,17,15 - PUSHBUTTON "-",IDC_DELETECATEGORY,290,84,17,15 - CONTROL "Use per protocol global smiley packs",IDC_USEPHYSPROTO, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,92,143,11 - GROUPBOX "Display",IDC_STATIC,6,106,310,54 + GROUPBOX "Display",IDC_STATIC,6,2,296,80 CONTROL "Replace only smileys surrounded by spaces",IDC_SPACES, - "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,16,115,198,12,WS_EX_RTLREADING + "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,16,11,198,12,WS_EX_RTLREADING CONTROL "Scale smiley to text height",IDC_SCALETOTEXTHEIGHT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,127,147,10 - CONTROL "High quality smiley scaling",IDC_HQSCALING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,137,148,10 - CONTROL "Animate",IDC_ANIMATEDLG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,218,116,91,10 - EDITTEXT IDC_MAXCUSTSMSZ,165,128,30,14,ES_RIGHT | ES_NUMBER - CONTROL "",IDC_MAXCUSTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,182,129,11,12 - LTEXT "Maximum sticker height",IDC_STATIC,198,131,115,8 - EDITTEXT IDC_MINSMSZ,165,144,30,14,ES_RIGHT | ES_NUMBER - CONTROL "",IDC_MINSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,182,145,11,12 - LTEXT "Minimum smiley height",IDC_STATIC,198,147,115,8 - GROUPBOX "Smiley selector",IDC_STATIC,6,160,310,52 - CONTROL "Animate",IDC_ANIMATESEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,218,200,85,10 - GROUPBOX "Input area",IDC_STATIC,6,213,310,36 - CONTROL "Enable smileys",IDC_INPUTSMILEYS,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,226,291,8 - CONTROL "Don't replace at cursor",IDC_DCURSORSMILEY,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,237,291,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,23,147,10 + CONTROL "High quality smiley scaling",IDC_HQSCALING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,33,148,10 + CONTROL "Animate",IDC_ANIMATEDLG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,225,12,68,10,WS_EX_RIGHT + EDITTEXT IDC_MAXCUSTSMSZ,265,46,30,14,ES_RIGHT | ES_NUMBER + CONTROL "",IDC_MAXCUSTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,284,45,11,16 + LTEXT "Maximum sticker height",IDC_STATIC,16,49,224,8 + EDITTEXT IDC_MINSMSZ,265,62,30,14,ES_RIGHT | ES_NUMBER + CONTROL "",IDC_MINSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,283,61,11,16 + LTEXT "Minimum smiley height",IDC_STATIC,16,65,223,8 + GROUPBOX "Smiley selector",IDC_STATIC,6,83,296,66 + CONTROL "Animate",IDC_ANIMATESEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,218,133,77,10,WS_EX_RIGHT + GROUPBOX "Input area",IDC_STATIC,6,151,296,43 + CONTROL "Enable smileys",IDC_INPUTSMILEYS,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,164,275,8 + CONTROL "Don't replace at cursor",IDC_DCURSORSMILEY,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,178,275,8 CONTROL "Surround inserted smiley with spaces",IDC_APPENDSPACES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,170,220,11 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,95,220,11 CONTROL "Use first smiley for selection size",IDC_SCALEALLSMILEYS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,180,220,8 - CONTROL "IEView style window",IDC_IEVIEWSTYLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,199,192,11 - CONTROL "Horizontal sorting",IDC_SORTING_HORIZONTAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,190,200,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,108,220,8 + CONTROL "IEView style window",IDC_IEVIEWSTYLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,132,192,11 + CONTROL "Horizontal sorting",IDC_SORTING_HORIZONTAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,121,200,8 + CONTROL "Download more smileys",IDC_GETMORE,"Hyperlink",WS_TABSTOP | 0x2,5,199,296,8 +END + +IDD_OPT_CATEGORIES DIALOGEX 0, 0, 310, 233 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD +EXSTYLE WS_EX_CONTROLPARENT +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + CONTROL "",IDC_CATEGORYLIST,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | TVS_CHECKBOXES | WS_BORDER | WS_HSCROLL | WS_TABSTOP,7,35,295,129 + CONTROL "Specify smiley pack for each category",IDC_USESTDPACK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,7,277,11 + EDITTEXT IDC_FILENAME,8,216,245,12,ES_AUTOHSCROLL,WS_EX_ACCEPTFILES + PUSHBUTTON "...",IDC_BROWSE,289,8,13,11 + LTEXT "Name:",IDC_STATIC,9,172,34,8 + LTEXT "",IDC_LIBNAME,47,170,254,11,SS_SUNKEN | SS_PATHELLIPSIS + LTEXT "Author:",IDC_STATIC,9,187,34,8 + LTEXT "",IDC_LIBAUTHOR,47,185,183,11,SS_SUNKEN | SS_PATHELLIPSIS + LTEXT "Version:",IDC_STATIC,9,201,34,8 + LTEXT "",IDC_LIBVERSION,47,199,183,11,SS_SUNKEN | SS_PATHELLIPSIS + PUSHBUTTON "Preview",IDC_SMLOPTBUTTON,236,184,65,25 + PUSHBUTTON "+",IDC_ADDCATEGORY,261,215,17,15 + PUSHBUTTON "-",IDC_DELETECATEGORY,284,215,17,15 + CONTROL "Use per protocol global smiley packs",IDC_USEPHYSPROTO, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,20,290,11 END @@ -82,12 +88,12 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN - IDD_OPT_SMILEYS, DIALOG + IDD_OPT_GENERAL, DIALOG + BEGIN + END + + IDD_OPT_CATEGORIES, DIALOG BEGIN - LEFTMARGIN, 6 - RIGHTMARGIN, 316 - TOPMARGIN, 3 - BOTTOMMARGIN, 250 END END #endif // APSTUDIO_INVOKED diff --git a/plugins/SmileyAdd/src/options.cpp b/plugins/SmileyAdd/src/options.cpp index 4d07a6713f..324506dd8d 100644 --- a/plugins/SmileyAdd/src/options.cpp +++ b/plugins/SmileyAdd/src/options.cpp @@ -116,9 +116,90 @@ void OptionsType::WriteContactCategory(MCONTACT hContact, const CMStringW &cats) } ///////////////////////////////////////////////////////////////////////////////////////// -// Init and de-init functions, called from main +// Basic class for options -class COptionsDialog : public CDlgBase +class COptionsBaseDialog : public CDlgBase +{ + void OnFinish(CDlgBase*) + { + ProcessAllInputAreas(true); + CloseSmileys(); + + opt.Save(); + + NotifyEventHooks(hEvent1, 0, 0); + ProcessAllInputAreas(false); + } + +protected: + COptionsBaseDialog(int dlgId) : + CDlgBase(g_plugin, dlgId) + { + m_OnFinishWizard = Callback(this, &COptionsBaseDialog::OnFinish); + } +}; + +///////////////////////////////////////////////////////////////////////////////////////// +// General options page + +class CGeneralOptions : public COptionsBaseDialog +{ + CCtrlHyperlink linkGetMore; + +public: + CGeneralOptions() : + COptionsBaseDialog(IDD_OPT_GENERAL), + linkGetMore(this, IDC_GETMORE, "https://miranda-ng.org/tags/smileyadd/") + {} + + bool OnInitDialog() override + { + CheckDlgButton(m_hwnd, IDC_SPACES, opt.EnforceSpaces ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_SCALETOTEXTHEIGHT, opt.ScaleToTextheight ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_APPENDSPACES, opt.SurroundSmileyWithSpaces ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_SCALEALLSMILEYS, opt.ScaleAllSmileys ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_IEVIEWSTYLE, opt.IEViewStyle ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_ANIMATESEL, opt.AnimateSel ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_ANIMATEDLG, opt.AnimateDlg ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_INPUTSMILEYS, opt.InputSmileys ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_DCURSORSMILEY, opt.DCursorSmiley ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_HQSCALING, opt.HQScaling ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_SORTING_HORIZONTAL, opt.HorizontalSorting ? BST_CHECKED : BST_UNCHECKED); + + SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSPIN, UDM_SETRANGE32, 0, 99); + SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSPIN, UDM_SETPOS, 0, opt.MaxCustomSmileySize); + SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSMSZ, EM_LIMITTEXT, 2, 0); + + SendDlgItemMessage(m_hwnd, IDC_MINSPIN, UDM_SETRANGE32, 0, 99); + SendDlgItemMessage(m_hwnd, IDC_MINSPIN, UDM_SETPOS, 0, opt.MinSmileySize); + SendDlgItemMessage(m_hwnd, IDC_MINSMSZ, EM_LIMITTEXT, 2, 0); + return true; + } + + bool OnApply() override + { + opt.EnforceSpaces = IsDlgButtonChecked(m_hwnd, IDC_SPACES) == BST_CHECKED; + opt.ScaleToTextheight = IsDlgButtonChecked(m_hwnd, IDC_SCALETOTEXTHEIGHT) == BST_CHECKED; + opt.SurroundSmileyWithSpaces = IsDlgButtonChecked(m_hwnd, IDC_APPENDSPACES) == BST_CHECKED; + opt.ScaleAllSmileys = IsDlgButtonChecked(m_hwnd, IDC_SCALEALLSMILEYS) == BST_CHECKED; + opt.IEViewStyle = IsDlgButtonChecked(m_hwnd, IDC_IEVIEWSTYLE) == BST_CHECKED; + opt.AnimateSel = IsDlgButtonChecked(m_hwnd, IDC_ANIMATESEL) == BST_CHECKED; + opt.AnimateDlg = IsDlgButtonChecked(m_hwnd, IDC_ANIMATEDLG) == BST_CHECKED; + opt.InputSmileys = IsDlgButtonChecked(m_hwnd, IDC_INPUTSMILEYS) == BST_CHECKED; + opt.DCursorSmiley = IsDlgButtonChecked(m_hwnd, IDC_DCURSORSMILEY) == BST_CHECKED; + opt.HQScaling = IsDlgButtonChecked(m_hwnd, IDC_HQSCALING) == BST_CHECKED; + opt.HorizontalSorting = IsDlgButtonChecked(m_hwnd, IDC_SORTING_HORIZONTAL) == BST_CHECKED; + + opt.MaxCustomSmileySize = GetDlgItemInt(m_hwnd, IDC_MAXCUSTSMSZ, nullptr, FALSE); + opt.MinSmileySize = GetDlgItemInt(m_hwnd, IDC_MINSMSZ, nullptr, FALSE); + return true; + } +}; + +///////////////////////////////////////////////////////////////////////////////////////// +// Categories options page + +class CGategoriesOptions : public COptionsBaseDialog { SmileyCategoryListType tmpsmcat; SmileyPackType smPack; @@ -278,8 +359,8 @@ class COptionsDialog : public CDlgBase CCtrlTreeView categories; public: - COptionsDialog() : - CDlgBase(g_plugin, IDD_OPT_SMILEYS), + CGategoriesOptions() : + COptionsBaseDialog(IDD_OPT_CATEGORIES), btnAdd(this, IDC_ADDCATEGORY), btnBrowse(this, IDC_BROWSE), btnDelete(this, IDC_DELETECATEGORY), @@ -289,16 +370,16 @@ public: categories(this, IDC_CATEGORYLIST), edtFilename(this, IDC_FILENAME) { - btnAdd.OnClick = Callback(this, &COptionsDialog::onClick_Add); - btnBrowse.OnClick = Callback(this, &COptionsDialog::onClick_Browse); - btnDelete.OnClick = Callback(this, &COptionsDialog::onClick_Delete); - btnPreview.OnClick = Callback(this, &COptionsDialog::onClick_Preview); + btnAdd.OnClick = Callback(this, &CGategoriesOptions::onClick_Add); + btnBrowse.OnClick = Callback(this, &CGategoriesOptions::onClick_Browse); + btnDelete.OnClick = Callback(this, &CGategoriesOptions::onClick_Delete); + btnPreview.OnClick = Callback(this, &CGategoriesOptions::onClick_Preview); - chkStdPack.OnChange = Callback(this, &COptionsDialog::onChange_StdPack); - chkUsePhys.OnChange = Callback(this, &COptionsDialog::onChange_UsePhys); + chkStdPack.OnChange = Callback(this, &CGategoriesOptions::onChange_StdPack); + chkUsePhys.OnChange = Callback(this, &CGategoriesOptions::onChange_UsePhys); - categories.OnSelChanged = Callback(this, &COptionsDialog::onSelectChange_Tree); - categories.OnItemChanged = Callback(this, &COptionsDialog::onChange_Filename); + categories.OnSelChanged = Callback(this, &CGategoriesOptions::onSelectChange_Tree); + categories.OnItemChanged = Callback(this, &CGategoriesOptions::onChange_Filename); } bool OnInitDialog() override @@ -307,26 +388,6 @@ public: chkUsePhys.SetState(opt.UsePhysProto); chkUsePhys.Enable(!opt.UseOneForAll); - CheckDlgButton(m_hwnd, IDC_SPACES, opt.EnforceSpaces ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_SCALETOTEXTHEIGHT, opt.ScaleToTextheight ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_APPENDSPACES, opt.SurroundSmileyWithSpaces ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_SCALEALLSMILEYS, opt.ScaleAllSmileys ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_IEVIEWSTYLE, opt.IEViewStyle ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_ANIMATESEL, opt.AnimateSel ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_ANIMATEDLG, opt.AnimateDlg ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_INPUTSMILEYS, opt.InputSmileys ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_DCURSORSMILEY, opt.DCursorSmiley ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_HQSCALING, opt.HQScaling ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_SORTING_HORIZONTAL, opt.HorizontalSorting ? BST_CHECKED : BST_UNCHECKED); - - SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSPIN, UDM_SETRANGE32, 0, 99); - SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSPIN, UDM_SETPOS, 0, opt.MaxCustomSmileySize); - SendDlgItemMessage(m_hwnd, IDC_MAXCUSTSMSZ, EM_LIMITTEXT, 2, 0); - - SendDlgItemMessage(m_hwnd, IDC_MINSPIN, UDM_SETRANGE32, 0, 99); - SendDlgItemMessage(m_hwnd, IDC_MINSPIN, UDM_SETPOS, 0, opt.MinSmileySize); - SendDlgItemMessage(m_hwnd, IDC_MINSMSZ, EM_LIMITTEXT, 2, 0); - // Create and populate image list HIMAGELIST hImList = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_MASK | ILC_COLOR32, g_SmileyCategories.NumberOfSmileyCategories(), 0); @@ -354,39 +415,11 @@ public: return true; } - INT_PTR DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override - { - if (uMsg == WM_COMMAND && LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) == EN_KILLFOCUS) - onChange_Filename(0); - - return CDlgBase::DlgProc(uMsg, wParam, lParam); - } - bool OnApply() override { - ProcessAllInputAreas(true); - CloseSmileys(); - opt.UseOneForAll = !chkStdPack.GetState(); opt.UsePhysProto = chkUsePhys.GetState(); - - opt.EnforceSpaces = IsDlgButtonChecked(m_hwnd, IDC_SPACES) == BST_CHECKED; - opt.ScaleToTextheight = IsDlgButtonChecked(m_hwnd, IDC_SCALETOTEXTHEIGHT) == BST_CHECKED; - opt.SurroundSmileyWithSpaces = IsDlgButtonChecked(m_hwnd, IDC_APPENDSPACES) == BST_CHECKED; - opt.ScaleAllSmileys = IsDlgButtonChecked(m_hwnd, IDC_SCALEALLSMILEYS) == BST_CHECKED; - opt.IEViewStyle = IsDlgButtonChecked(m_hwnd, IDC_IEVIEWSTYLE) == BST_CHECKED; - opt.AnimateSel = IsDlgButtonChecked(m_hwnd, IDC_ANIMATESEL) == BST_CHECKED; - opt.AnimateDlg = IsDlgButtonChecked(m_hwnd, IDC_ANIMATEDLG) == BST_CHECKED; - opt.InputSmileys = IsDlgButtonChecked(m_hwnd, IDC_INPUTSMILEYS) == BST_CHECKED; - opt.DCursorSmiley = IsDlgButtonChecked(m_hwnd, IDC_DCURSORSMILEY) == BST_CHECKED; - opt.HQScaling = IsDlgButtonChecked(m_hwnd, IDC_HQSCALING) == BST_CHECKED; - opt.HorizontalSorting = IsDlgButtonChecked(m_hwnd, IDC_SORTING_HORIZONTAL) == BST_CHECKED; - - opt.MaxCustomSmileySize = GetDlgItemInt(m_hwnd, IDC_MAXCUSTSMSZ, nullptr, FALSE); - opt.MinSmileySize = GetDlgItemInt(m_hwnd, IDC_MINSMSZ, nullptr, FALSE); - - opt.Save(); - + // Cleanup database CMStringW empty; auto &smc = *g_SmileyCategories.GetSmileyCategoryList(); @@ -399,9 +432,6 @@ public: g_SmileyCategories.ClearAndLoadAll(); smPack.LoadSmileyFile(tmpsmcat.GetSmileyCategory(GetSelProto())->GetFilename(), tmpsmcat.GetSmileyCategory(GetSelProto())->GetDisplayName(), false, true); - - NotifyEventHooks(hEvent1, 0, 0); - ProcessAllInputAreas(false); return true; } @@ -411,6 +441,14 @@ public: ImageList_Destroy(hImList); } + INT_PTR DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) override + { + if (uMsg == WM_COMMAND && LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) == EN_KILLFOCUS) + onChange_Filename(0); + + return COptionsBaseDialog::DlgProc(uMsg, wParam, lParam); + } + void onClick_Add(CCtrlButton*) { wchar_t cat[30]; @@ -490,14 +528,23 @@ public: } }; +///////////////////////////////////////////////////////////////////////////////////////// +// Module entry point + int SmileysOptionsInitialize(WPARAM addInfo, LPARAM) { OPTIONSDIALOGPAGE odp = {}; + odp.flags = ODPF_BOLDGROUPS; odp.position = 910000000; odp.szTitle.a = LPGEN("Smileys"); odp.szGroup.a = LPGEN("Customize"); - odp.pDialog = new COptionsDialog(); - odp.flags = ODPF_BOLDGROUPS; + + odp.szTab.a = LPGEN("General"); + odp.pDialog = new CGeneralOptions(); + g_plugin.addOptions(addInfo, &odp); + + odp.szTab.a = LPGEN("Categories"); + odp.pDialog = new CGategoriesOptions(); g_plugin.addOptions(addInfo, &odp); return 0; } diff --git a/plugins/SmileyAdd/src/resource.h b/plugins/SmileyAdd/src/resource.h index f3b1188d87..2d66704ce2 100644 --- a/plugins/SmileyAdd/src/resource.h +++ b/plugins/SmileyAdd/src/resource.h @@ -3,7 +3,9 @@ // Used by w:\miranda-ng\plugins\SmileyAdd\res\resource.rc // #define IDI_SMILINGICON 124 -#define IDD_OPT_SMILEYS 245 +#define IDD_OPT_GENERAL 200 +#define IDD_OPT_CATEGORIES 201 +#define IDC_GETMORE 1000 #define IDC_CATEGORYLIST 1017 #define IDC_INPUTSMILEYS 1020 #define IDC_DCURSORSMILEY 1021 diff --git a/plugins/SmileyAdd/src/version.h b/plugins/SmileyAdd/src/version.h index ac718a41a7..aaa10e3c4b 100644 --- a/plugins/SmileyAdd/src/version.h +++ b/plugins/SmileyAdd/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 3 #define __RELEASE_NUM 2 -#define __BUILD_NUM 1 +#define __BUILD_NUM 2 #include diff --git a/src/mir_app/src/sounds.cpp b/src/mir_app/src/sounds.cpp index 52407c32cf..d8911ffd9a 100644 --- a/src/mir_app/src/sounds.cpp +++ b/src/mir_app/src/sounds.cpp @@ -100,10 +100,10 @@ class CSoundOptionsDlg : public CDlgBase ShowWindow(GetDlgItem(m_hwnd, IDC_PREVIEW), iCommand); } - CCtrlButton btnPreview, btnChange; CCtrlCheck chkSounds; - CCtrlHyperlink linkGetMore; + CCtrlButton btnPreview, btnChange; CCtrlTreeView m_tree; + CCtrlHyperlink linkGetMore; public: CSoundOptionsDlg() : -- cgit v1.2.3