summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/Scriver/res/resource.rc4
-rw-r--r--plugins/Scriver/src/msgoptions.cpp12
-rw-r--r--src/core/stdmsg/res/resource.rc4
-rw-r--r--src/core/stdmsg/src/msgoptions.cpp18
-rw-r--r--src/mir_core/src/CCtrlCheck.cpp1
-rw-r--r--src/mir_core/src/CDlgBase.cpp3
6 files changed, 35 insertions, 7 deletions
diff --git a/plugins/Scriver/res/resource.rc b/plugins/Scriver/res/resource.rc
index 30b372f02c..51cf4dac29 100644
--- a/plugins/Scriver/res/resource.rc
+++ b/plugins/Scriver/res/resource.rc
@@ -35,9 +35,9 @@ BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,12,155,10
CONTROL "Tree1",IDC_POPLIST,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_NONEVENHEIGHT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,163,12,98,44
CONTROL "and stay minimized",IDC_STAYMINIMIZED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,23,141,10
- CONTROL "Cascade new windows",IDC_CASCADE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,6,58,293,10
+ CONTROL "Cascade new windows",IDC_CASCADE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,58,293,10
CONTROL "Save size and location for each contact",IDC_SAVEPERCONTACT,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,6,69,293,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,69,293,10
CONTROL "Minimize on send",IDC_AUTOMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,80,293,10
CONTROL "Hide windows on close",IDC_HIDECONTAINERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,91,293,10
CONTROL "Remember unsent messages",IDC_SAVEDRAFTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,103,293,10
diff --git a/plugins/Scriver/src/msgoptions.cpp b/plugins/Scriver/src/msgoptions.cpp
index 01a240729e..b095ef49ee 100644
--- a/plugins/Scriver/src/msgoptions.cpp
+++ b/plugins/Scriver/src/msgoptions.cpp
@@ -271,7 +271,9 @@ public:
CreateLink(chkStayMinimized, g_plugin.bStayMinimized);
CreateLink(chkSavePerContact, g_plugin.bSavePerContact);
+ chkCascade.OnChange = Callback(this, &CMainOptionsDlg::onChange_Cascade);
chkAutoPopup.OnChange = Callback(this, &CMainOptionsDlg::onChange_AutoPopup);
+ chkSavePerContact.OnChange = Callback(this, &CMainOptionsDlg::onChange_SavePerContact);
}
bool OnInitDialog() override
@@ -301,6 +303,16 @@ public:
m_tree.Enable(bChecked);
EnableWindow(GetDlgItem(m_hwnd, IDC_STAYMINIMIZED), bChecked);
}
+
+ void onChange_Cascade(CCtrlCheck *pCheck)
+ {
+ chkSavePerContact.SetState(!pCheck->GetState());
+ }
+
+ void onChange_SavePerContact(CCtrlCheck *pCheck)
+ {
+ chkCascade.SetState(!pCheck->GetState());
+ }
};
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/stdmsg/res/resource.rc b/src/core/stdmsg/res/resource.rc
index 97a45e8480..d7cc7e427b 100644
--- a/src/core/stdmsg/res/resource.rc
+++ b/src/core/stdmsg/res/resource.rc
@@ -43,8 +43,8 @@ BEGIN
CONTROL "Use the contact's status icon as the window icon",IDC_STATUSWIN,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,75,290,10
CONTROL "Save the window size and location individually for each contact",IDC_SAVEPERCONTACT,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,8,88,289,10
- CONTROL "Cascade new windows",IDC_CASCADE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,8,100,289,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,88,289,10
+ CONTROL "Cascade new windows",IDC_CASCADE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,289,10
CONTROL "Support Ctrl+Up/Down in message area to show previously sent messages",IDC_CTRLSUPPORT,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,112,289,10
CONTROL "Delete temporary contacts when closing message window",IDC_DELTEMP,
diff --git a/src/core/stdmsg/src/msgoptions.cpp b/src/core/stdmsg/src/msgoptions.cpp
index d5d27dea9d..49aeb6873b 100644
--- a/src/core/stdmsg/src/msgoptions.cpp
+++ b/src/core/stdmsg/src/msgoptions.cpp
@@ -211,8 +211,10 @@ public:
tree.SetFlags(MTREE_CHECKBOX);
chkAvatar.OnChange = Callback(this, &COptionMainDlg::onChange_Avatar);
+ chkAutoMin.OnChange = Callback(this, &COptionMainDlg::onChange_AutoMin);
chkAutoClose.OnChange = Callback(this, &COptionMainDlg::onChange_AutoClose);
chkLimitAvatar.OnChange = Callback(this, &COptionMainDlg::onChange_LimitAvatar);
+ chkSavePerContact.OnChange = Callback(this, &COptionMainDlg::onChange_SavePerContact);
CreateLink(edtNFlash, g_dat.nFlashMax);
CreateLink(edtAvatarH, g_dat.iAvatarHeight);
@@ -261,9 +263,21 @@ public:
return true;
}
- void onChange_AutoClose(CCtrlCheck *pCheck)
+ void onChange_AutoMin(CCtrlCheck*)
{
- chkCtrlSupport.Enable(!pCheck->GetState());
+ chkAutoClose.SetState(false);
+ chkCtrlSupport.Enable(!chkAutoClose.GetState());
+ }
+
+ void onChange_AutoClose(CCtrlCheck*)
+ {
+ chkAutoMin.SetState(false);
+ chkCtrlSupport.Enable(!chkAutoClose.GetState());
+ }
+
+ void onChange_SavePerContact(CCtrlCheck*)
+ {
+ chkCascade.Enable(!chkSavePerContact.GetState());
}
void onChange_Avatar(CCtrlCheck*)
diff --git a/src/mir_core/src/CCtrlCheck.cpp b/src/mir_core/src/CCtrlCheck.cpp
index 7d26af32fd..a20a1a9275 100644
--- a/src/mir_core/src/CCtrlCheck.cpp
+++ b/src/mir_core/src/CCtrlCheck.cpp
@@ -58,7 +58,6 @@ int CCtrlCheck::GetState()
void CCtrlCheck::SetState(int state)
{
::SendMessage(m_hwnd, BM_SETCHECK, state, 0);
- OnChange(this);
}
bool CCtrlCheck::IsChecked()
diff --git a/src/mir_core/src/CDlgBase.cpp b/src/mir_core/src/CDlgBase.cpp
index 7c079cc258..dcfe15b292 100644
--- a/src/mir_core/src/CDlgBase.cpp
+++ b/src/mir_core/src/CDlgBase.cpp
@@ -218,6 +218,9 @@ INT_PTR CDlgBase::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
if (!OnInitDialog())
return FALSE;
+ for (auto &it : m_controls)
+ it->OnChange(it);
+
m_bInitialized = true;
return TRUE;