summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-09-09 07:43:57 -0700
committerGeorge Hazan <ghazan@miranda.im>2022-09-09 07:43:57 -0700
commit1d55a15ece762c77eb0f7b4f1ccc7cb994480e92 (patch)
treede34804e11f26eb55431cf38a133ef3a29a050b5
parentef4be63bdcf7e0a3467de578b65bbbe79949cad6 (diff)
fixes #3186 (SmileyAdd: добавить ссылку на закачку смайлов)
-rw-r--r--plugins/SmileyAdd/res/resource.rc96
-rw-r--r--plugins/SmileyAdd/src/options.cpp179
-rw-r--r--plugins/SmileyAdd/src/resource.h4
-rw-r--r--plugins/SmileyAdd/src/version.h2
-rw-r--r--src/mir_app/src/sounds.cpp4
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 <stdver.h>
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() :