From e5877abcc0a8321c79a53c24e3e7c8c0490c7d04 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 5 Jan 2021 23:38:07 +0300 Subject: CCtrlColor class - the wrapper for Windows Color Picker --- include/m_gui.h | 18 ++++++++++ libs/win32/mir_core.lib | Bin 470808 -> 472966 bytes libs/win64/mir_core.lib | Bin 475820 -> 477976 bytes src/mir_core/mir_core.vcxproj | 1 + src/mir_core/mir_core.vcxproj.filters | 3 ++ src/mir_core/src/CCtrlColor.cpp | 61 ++++++++++++++++++++++++++++++++++ src/mir_core/src/mir_core.def | 8 +++++ src/mir_core/src/mir_core64.def | 8 +++++ 8 files changed, 99 insertions(+) create mode 100644 src/mir_core/src/CCtrlColor.cpp diff --git a/include/m_gui.h b/include/m_gui.h index 92a9033169..3c0d788564 100644 --- a/include/m_gui.h +++ b/include/m_gui.h @@ -762,6 +762,24 @@ public: bool IsChecked(); }; +///////////////////////////////////////////////////////////////////////////////////////// +// CCtrlColor - color picker + +class MIR_CORE_EXPORT CCtrlColor : public CCtrlData +{ + typedef CCtrlData CSuper; + +public: + CCtrlColor(CDlgBase *dlg, int ctrlId); + BOOL OnCommand(HWND /*hwndCtrl*/, WORD /*idCtrl*/, WORD /*idCode*/) override; + + bool OnApply() override; + void OnReset() override; + + DWORD GetColor(); + void SetColor(DWORD dwValue); +}; + ///////////////////////////////////////////////////////////////////////////////////////// // CCtrlDate - date & time picker diff --git a/libs/win32/mir_core.lib b/libs/win32/mir_core.lib index bd1e19544e..2578fcfb2d 100644 Binary files a/libs/win32/mir_core.lib and b/libs/win32/mir_core.lib differ diff --git a/libs/win64/mir_core.lib b/libs/win64/mir_core.lib index 0b79e84f9e..03853817e2 100644 Binary files a/libs/win64/mir_core.lib and b/libs/win64/mir_core.lib differ diff --git a/src/mir_core/mir_core.vcxproj b/src/mir_core/mir_core.vcxproj index 642c3291d8..d95f7b9197 100644 --- a/src/mir_core/mir_core.vcxproj +++ b/src/mir_core/mir_core.vcxproj @@ -46,6 +46,7 @@ + diff --git a/src/mir_core/mir_core.vcxproj.filters b/src/mir_core/mir_core.vcxproj.filters index 4a66ccbaa5..17987d4682 100644 --- a/src/mir_core/mir_core.vcxproj.filters +++ b/src/mir_core/mir_core.vcxproj.filters @@ -170,6 +170,9 @@ Source Files + + Source Files + diff --git a/src/mir_core/src/CCtrlColor.cpp b/src/mir_core/src/CCtrlColor.cpp new file mode 100644 index 0000000000..f7bfe6c32d --- /dev/null +++ b/src/mir_core/src/CCtrlColor.cpp @@ -0,0 +1,61 @@ +/* + +Object UI extensions +Copyright (c) 2008 Victor Pavlychko, George Hazan +Copyright (C) 2012-20 Miranda NG team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "stdafx.h" + +///////////////////////////////////////////////////////////////////////////////////////// +// CCtrlColor class + +CCtrlColor::CCtrlColor(CDlgBase *dlg, int ctrlId) : + CCtrlData(dlg, ctrlId) +{} + +BOOL CCtrlColor::OnCommand(HWND, WORD, WORD) +{ + NotifyChange(); + return TRUE; +} + +bool CCtrlColor::OnApply() +{ + CSuper::OnApply(); + + if (m_dbLink != nullptr) + SaveInt(GetColor()); + return true; +} + +void CCtrlColor::OnReset() +{ + if (m_dbLink != nullptr) + SetColor(LoadInt()); +} + +DWORD CCtrlColor::GetColor() +{ + return ::SendMessage(m_hwnd, CPM_GETCOLOUR, 0, 0); +} + +void CCtrlColor::SetColor(DWORD dwValue) +{ + ::SendMessage(m_hwnd, CPM_SETCOLOUR, 0, dwValue); +} diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def index fb23cba365..950ceb9d55 100644 --- a/src/mir_core/src/mir_core.def +++ b/src/mir_core/src/mir_core.def @@ -1481,3 +1481,11 @@ TimeZone_GetSystemTime @1692 ?OnInit@CCtrlTreeOpts@@UAEXXZ @1704 NONAME ?OnNotify@CCtrlTreeOpts@@UAEHHPAUtagNMHDR@@@Z @1705 NONAME ?ProcessItemClick@CCtrlTreeOpts@@IAEXPAU_TREEITEM@@@Z @1706 NONAME +??0CCtrlColor@@QAE@PAVCDlgBase@@H@Z @1707 NONAME +??1CCtrlColor@@UAE@XZ @1708 NONAME +??_7CCtrlColor@@6B@ @1709 NONAME +?GetColor@CCtrlColor@@QAEKXZ @1710 NONAME +?OnApply@CCtrlColor@@UAE_NXZ @1711 NONAME +?OnCommand@CCtrlColor@@UAEHPAUHWND__@@GG@Z @1712 NONAME +?OnReset@CCtrlColor@@UAEXXZ @1713 NONAME +?SetColor@CCtrlColor@@QAEXK@Z @1714 NONAME diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def index a69cfbc500..0a9b1f8baf 100644 --- a/src/mir_core/src/mir_core64.def +++ b/src/mir_core/src/mir_core64.def @@ -1481,3 +1481,11 @@ TimeZone_GetSystemTime @1692 ?OnInit@CCtrlTreeOpts@@UEAAXXZ @1704 NONAME ?OnNotify@CCtrlTreeOpts@@UEAAHHPEAUtagNMHDR@@@Z @1705 NONAME ?ProcessItemClick@CCtrlTreeOpts@@IEAAXPEAU_TREEITEM@@@Z @1706 NONAME +??0CCtrlColor@@QEAA@PEAVCDlgBase@@H@Z @1707 NONAME +??1CCtrlColor@@UEAA@XZ @1708 NONAME +??_7CCtrlColor@@6B@ @1709 NONAME +?GetColor@CCtrlColor@@QEAAKXZ @1710 NONAME +?OnApply@CCtrlColor@@UEAA_NXZ @1711 NONAME +?OnCommand@CCtrlColor@@UEAAHPEAUHWND__@@GG@Z @1712 NONAME +?OnReset@CCtrlColor@@UEAAXXZ @1713 NONAME +?SetColor@CCtrlColor@@QEAAXK@Z @1714 NONAME -- cgit v1.2.3