Skip to content

Commit

Permalink
isCheckedOrNot: generalize the use of this function.
Browse files Browse the repository at this point in the history
- A new PreferenceDialogBase class has been created and houses the isCheckedOrNot
  function, so it can be used by all preference dialogs.
- All the lines that were using the "raw" pattern have been replaced.

[#21 state:proposed responsible:npp-community]

Acked-by: Thell Fowler <git@tbfowler.name>
Signed-off-by: Jocelyn Legault <jocelynlegault@gmail.com>
  • Loading branch information
joce authored and Thell Fowler committed Nov 28, 2009
1 parent 9aeb7da commit 5b26677
Showing 1 changed file with 34 additions and 28 deletions.
62 changes: 34 additions & 28 deletions PowerEditor/src/WinControls/Preference/preferenceDlg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,17 @@ const int BLINKRATE_FASTEST = 50;
const int BLINKRATE_SLOWEST = 2500;
const int BLINKRATE_INTERVAL = 50;

// Base class intended to provide common services to the different preference dialogs
class PreferenceDialogBase : public StaticDialog
{
protected:
PreferenceDialogBase() {}
bool isCheckedOrNot(int checkControlID) const {
return (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, checkControlID), BM_GETCHECK, 0, 0));
}
};

class SettingsDlg : public StaticDialog
class SettingsDlg : public PreferenceDialogBase
{
public :
SettingsDlg() {}
Expand All @@ -52,21 +61,18 @@ public :
};
private :
URLCtrl _nbHistoryVal;
bool isCheckedOrNot(int checkControlID) const {
return (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, checkControlID), BM_GETCHECK, 0, 0));
};
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
};

class BarsDlg : public StaticDialog
class BarsDlg : public PreferenceDialogBase
{
public :
BarsDlg() {}
private :
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
};

class MarginsDlg : public StaticDialog
class MarginsDlg : public PreferenceDialogBase
{
public :
MarginsDlg() {}
Expand All @@ -92,7 +98,7 @@ struct LangID_Name
LangID_Name(LangType id, generic_string name) : _id(id), _name(name){};
};

class DefaultNewDocDlg : public StaticDialog
class DefaultNewDocDlg : public PreferenceDialogBase
{
public :
DefaultNewDocDlg() {}
Expand All @@ -106,7 +112,7 @@ private :
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
};

class LangMenuDlg : public StaticDialog
class LangMenuDlg : public PreferenceDialogBase
{
public :
LangMenuDlg() {}
Expand All @@ -123,7 +129,7 @@ struct strCouple {
strCouple(TCHAR *varDesc, TCHAR *var): _varDesc(varDesc), _var(var){};
};

class PrintSettingsDlg : public StaticDialog
class PrintSettingsDlg : public PreferenceDialogBase
{
public :
PrintSettingsDlg():
Expand All @@ -139,7 +145,7 @@ private :
DWORD _selEnd;
};

class BackupDlg : public StaticDialog
class BackupDlg : public PreferenceDialogBase
{
public :
BackupDlg() {}
Expand Down Expand Up @@ -423,21 +429,21 @@ BOOL CALLBACK BarsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lParam*
{
case IDC_CHECK_SHOWSTATUSBAR :
{
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_SHOWSTATUSBAR, BM_GETCHECK, 0, 0));
bool isChecked = isCheckedOrNot(IDC_CHECK_SHOWSTATUSBAR);
::SendMessage(::GetParent(_hParent), NPPM_HIDESTATUSBAR, 0, isChecked?FALSE:TRUE);
}
return TRUE;

case IDC_CHECK_HIDEMENUBAR :
{
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDEMENUBAR, BM_GETCHECK, 0, 0));
bool isChecked = isCheckedOrNot(IDC_CHECK_HIDEMENUBAR);
::SendMessage(::GetParent(_hParent), NPPM_HIDEMENU, 0, isChecked?TRUE:FALSE);
}
return TRUE;

case IDC_CHECK_TAB_HIDE :
{
bool toBeHidden = (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDC_CHECK_TAB_HIDE), BM_GETCHECK, 0, 0));
bool toBeHidden = isCheckedOrNot(IDC_CHECK_TAB_HIDE);
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_TAB_MULTILINE), !toBeHidden);
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_TAB_VERTICAL), !toBeHidden);
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_REDUCE), !toBeHidden);
Expand Down Expand Up @@ -487,7 +493,7 @@ BOOL CALLBACK BarsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lParam*

case IDC_CHECK_HIDE :
{
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDE, BM_GETCHECK, 0, 0));
bool isChecked = isCheckedOrNot(IDC_CHECK_HIDE);
::SendMessage(::GetParent(_hParent), NPPM_HIDETOOLBAR, 0, isChecked?TRUE:FALSE);
}
return TRUE;
Expand Down Expand Up @@ -660,22 +666,22 @@ BOOL CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lPar
switch (wParam)
{
case IDC_CHECK_LINENUMBERMARGE:
svp._lineNumberMarginShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_LINENUMBERMARGE, BM_GETCHECK, 0, 0));
svp._lineNumberMarginShow = isCheckedOrNot(IDC_CHECK_LINENUMBERMARGE);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LINENUMBER, iView);
return TRUE;

case IDC_CHECK_BOOKMARKMARGE:
svp._bookMarkMarginShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_BOOKMARKMARGE, BM_GETCHECK, 0, 0));
svp._bookMarkMarginShow = isCheckedOrNot(IDC_CHECK_BOOKMARKMARGE);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_SYMBOLMARGIN, iView);
return TRUE;

case IDC_CHECK_CURRENTLINEHILITE:
svp._currentLineHilitingShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_CURRENTLINEHILITE, BM_GETCHECK, 0, 0));
svp._currentLineHilitingShow = isCheckedOrNot(IDC_CHECK_CURRENTLINEHILITE);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_CURLINE_HILITING, iView);
return TRUE;

case IDC_CHECK_MULTISELECTION :
nppGUI._enableMultiSelection = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_MULTISELECTION, BM_GETCHECK, 0, 0));
nppGUI._enableMultiSelection = isCheckedOrNot(IDC_CHECK_MULTISELECTION);
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_SETMULTISELCTION, 0, 0);
return TRUE;

Expand All @@ -700,7 +706,7 @@ BOOL CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lPar
case IDC_CHECK_SHOWVERTICALEDGE:
{
int modeID = 0;
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_SHOWVERTICALEDGE, BM_GETCHECK, 0, 0));
bool isChecked = isCheckedOrNot(IDC_CHECK_SHOWVERTICALEDGE);
if (isChecked)
{
::SendDlgItemMessage(_hSelf, IDC_RADIO_LNMODE, BM_SETCHECK, TRUE, 0);
Expand Down Expand Up @@ -1215,7 +1221,7 @@ BOOL CALLBACK DefaultNewDocDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM
return TRUE;

case IDC_CHECK_OPENANSIASUTF8 :
ndds._openAnsiAsUtf8 = (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDC_CHECK_OPENANSIASUTF8), BM_GETCHECK, 0, 0));
ndds._openAnsiAsUtf8 = isCheckedOrNot(IDC_CHECK_OPENANSIASUTF8);
return TRUE;


Expand Down Expand Up @@ -1376,7 +1382,7 @@ BOOL CALLBACK LangMenuDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPara

case IDC_CHECK_REPLACEBYSPACE:
{
bool isTabReplacedBySpace = BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDC_CHECK_REPLACEBYSPACE), BM_GETCHECK, 0, 0);
bool isTabReplacedBySpace = isCheckedOrNot(IDC_CHECK_REPLACEBYSPACE);
int index = ::SendDlgItemMessage(_hSelf, IDC_LIST_TABSETTNG, LB_GETCURSEL, 0, 0);
if (index == LB_ERR) return FALSE;
if (index != 0)
Expand Down Expand Up @@ -1454,7 +1460,7 @@ BOOL CALLBACK LangMenuDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPara

case IDC_CHECK_DEFAULTTABVALUE:
{
bool useDefaultTab = BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDC_CHECK_DEFAULTTABVALUE), BM_GETCHECK, 0, 0);
bool useDefaultTab = isCheckedOrNot(IDC_CHECK_DEFAULTTABVALUE);
int index = ::SendDlgItemMessage(_hSelf, IDC_LIST_TABSETTNG, LB_GETCURSEL, 0, 0);
if (index == LB_ERR || index == 0) // index == 0 shouldn't happen
return FALSE;
Expand Down Expand Up @@ -1526,7 +1532,7 @@ BOOL CALLBACK LangMenuDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPara

case IDC_CHECK_LANGMENUCOMPACT :
{
nppGUI._isLangMenuCompact = (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDC_CHECK_LANGMENUCOMPACT), BM_GETCHECK, 0, 0));
nppGUI._isLangMenuCompact = isCheckedOrNot(IDC_CHECK_LANGMENUCOMPACT);
::MessageBox(_hSelf,
nppGUI._isLangMenuCompact?TEXT("This option will be enable on the next launch."):TEXT("This option will be disable on the next launch."),
TEXT("Compact Language Menu"), MB_OK);
Expand Down Expand Up @@ -1902,7 +1908,7 @@ BOOL CALLBACK PrintSettingsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
switch (wParam)
{
case IDC_CHECK_PRINTLINENUM:
nppGUI._printSettings._printLineNumber = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_PRINTLINENUM, BM_GETCHECK, 0, 0));
nppGUI._printSettings._printLineNumber = isCheckedOrNot(IDC_CHECK_PRINTLINENUM);
break;

case IDC_RADIO_WYSIWYG:
Expand Down Expand Up @@ -2118,7 +2124,7 @@ BOOL CALLBACK BackupDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lPara

case IDD_AUTOC_ENABLECHECK :
{
bool isEnableAutoC = BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDD_AUTOC_ENABLECHECK, BM_GETCHECK, 0, 0);
bool isEnableAutoC = isCheckedOrNot(IDD_AUTOC_ENABLECHECK);

if (isEnableAutoC)
{
Expand Down Expand Up @@ -2153,7 +2159,7 @@ BOOL CALLBACK BackupDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lPara
}
case IDD_FUNC_CHECK :
{
nppGUI._funcParams = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDD_FUNC_CHECK, BM_GETCHECK, 0, 0));
nppGUI._funcParams = isCheckedOrNot(IDD_FUNC_CHECK);
return TRUE;
}

Expand All @@ -2180,14 +2186,14 @@ BOOL CALLBACK BackupDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM /*lPara

void BackupDlg::updateBackupGUI()
{
bool noBackup = BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_RADIO_BKNONE, BM_GETCHECK, 0, 0);
bool noBackup = isCheckedOrNot(IDC_RADIO_BKNONE);
bool isEnableGlobableCheck = false;
bool isEnableLocalCheck = false;

if (!noBackup)
{
isEnableGlobableCheck = true;
isEnableLocalCheck = BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_BACKUPDIR_CHECK, BM_GETCHECK, 0, 0);
isEnableLocalCheck = isCheckedOrNot(IDC_BACKUPDIR_CHECK);
}
::EnableWindow(::GetDlgItem(_hSelf, IDC_BACKUPDIR_USERCUSTOMDIR_GRPSTATIC), isEnableGlobableCheck);
::EnableWindow(::GetDlgItem(_hSelf, IDC_BACKUPDIR_CHECK), isEnableGlobableCheck);
Expand Down

0 comments on commit 5b26677

Please sign in to comment.