@ -3163,6 +3163,7 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL , nppGUI . _tabSize , FALSE ) ;
: : SendDlgItemMessage ( _hSelf , IDC_RADIO_REPLACEBYSPACE , BM_SETCHECK , nppGUI . _tabReplacedBySpace , 0 ) ;
: : SendDlgItemMessage ( _hSelf , IDC_RADIO_USINGTAB , BM_SETCHECK , ! nppGUI . _tabReplacedBySpace , 0 ) ;
: : SendDlgItemMessage ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT , BM_SETCHECK , nppGUI . _backspaceUnindent , 0 ) ;
: : SendDlgItemMessage ( _hSelf , IDC_LIST_TABSETTNG , LB_ADDSTRING , 0 , reinterpret_cast < LPARAM > ( TEXT ( " [Default] " ) ) ) ;
const int nbLang = nppParam . getNbLang ( ) ;
@ -3270,33 +3271,36 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
{
Lang * lang = nppParam . getLangFromIndex ( index - 1 ) ;
if ( ! lang ) return FALSE ;
bool useDefaultTab = ( lang - > _tabSize = = - 1 | | lang - > _tabSize = = 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_CHECK_DEFAULTTABVALUE ) , BM_SETCHECK , useDefaultTab , 0 ) ;
int size = useDefaultTab ? nppGUI . _tabSize : lang - > _tabSize ;
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL , size , FALSE ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , BM_SETCHECK , useDefaultTab ? nppGUI . _tabReplacedBySpace : lang - > _isTabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , BM_SETCHECK , useDefaultTab ? ! nppGUI . _tabReplacedBySpace : ! lang - > _isTabReplacedBySpace , 0 ) ;
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL ,
useDefaultTab ? nppGUI . _tabSize : lang - > _tabSize , FALSE ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , BM_SETCHECK ,
useDefaultTab ? nppGUI . _tabReplacedBySpace : lang - > _isTabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , BM_SETCHECK ,
useDefaultTab ? ! nppGUI . _tabReplacedBySpace : ! lang - > _isTabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , BM_SETCHECK ,
useDefaultTab ? nppGUI . _backspaceUnindent : lang - > _isBackspaceUnindent , 0 ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , ! useDefaultTab ) ;
if ( ! useDefaultTab )
{
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL , lang - > _tabSize , FALSE ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , BM_SETCHECK , lang - > _isTabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , BM_SETCHECK , ! lang - > _isTabReplacedBySpace , 0 ) ;
}
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , ! useDefaultTab ) ;
}
else
{
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL , nppGUI . _tabSize , FALSE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , TRUE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , TRUE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , TRUE ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , BM_SETCHECK , nppGUI . _tabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , BM_SETCHECK , ! nppGUI . _tabReplacedBySpace , 0 ) ;
: : SendMessage ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , BM_SETCHECK , nppGUI . _backspaceUnindent , 0 ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , TRUE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , TRUE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , TRUE ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , TRUE ) ;
}
redrawDlgItem ( IDC_TABSIZE_STATIC ) ;
@ -3367,14 +3371,14 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
lang - > _tabSize = tabSize ;
// write in langs.xml
nppParam . insertTabInfo ( lang - > getLangName ( ) , lang - > getTabInfo ( ) ) ;
nppParam . insertTabInfo ( lang - > getLangName ( ) , lang - > getTabInfo ( ) , lang - > _isBackspaceUnindent ) ;
}
else
{
nppGUI . _tabSize = tabSize ;
}
: : SendMessage ( : : GetParent ( _hParent ) , NPPM_INTERNAL_SETTING _TAB_SIZ E , 0 , 0 ) ;
: : SendMessage ( : : GetParent ( _hParent ) , NPPM_INTERNAL_SET_TAB_SETTINGS , 0 , 0 ) ;
return TRUE ;
}
@ -3583,8 +3587,10 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
case IDC_RADIO_USINGTAB :
{
bool isTabReplacedBySpace = BST_CHECKED = = : : SendMessage ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , BM_GETCHECK , 0 , 0 ) ;
auto index = : : SendDlgItemMessage ( _hSelf , IDC_LIST_TABSETTNG , LB_GETCURSEL , 0 , 0 ) ;
if ( index = = LB_ERR ) return FALSE ;
if ( index ! = 0 )
{
Lang * lang = nppParam . getLangFromIndex ( index - 1 ) ;
@ -3606,13 +3612,55 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
lang - > _isTabReplacedBySpace = isTabReplacedBySpace ;
// write in langs.xml
nppParam . insertTabInfo ( lang - > getLangName ( ) , lang - > getTabInfo ( ) ) ;
nppParam . insertTabInfo ( lang - > getLangName ( ) , lang - > getTabInfo ( ) , lang - > _isBackspaceUnindent ) ;
}
else
{
nppGUI . _tabReplacedBySpace = isTabReplacedBySpace ;
}
: : SendMessage ( : : GetParent ( _hParent ) , NPPM_INTERNAL_SETTING_TAB_REPLCESPACE , 0 , 0 ) ;
: : SendMessage ( : : GetParent ( _hParent ) , NPPM_INTERNAL_SET_TAB_SETTINGS , 0 , 0 ) ;
return TRUE ;
}
case IDC_CHECK_BACKSPACEUNINDENT :
{
bool isBackspaceUnindent = BST_CHECKED = = : : SendMessage ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , BM_GETCHECK , 0 , 0 ) ;
auto index = : : SendDlgItemMessage ( _hSelf , IDC_LIST_TABSETTNG , LB_GETCURSEL , 0 , 0 ) ;
if ( index = = LB_ERR ) return FALSE ;
if ( index ! = 0 )
{
Lang * lang = nppParam . getLangFromIndex ( index - 1 ) ;
if ( ! lang ) return FALSE ;
if ( ! lang - > _tabSize | | lang - > _tabSize = = - 1 )
lang - > _tabSize = nppGUI . _tabSize ;
if ( lang - > _langID = = L_JS )
{
Lang * ljs = nppParam . getLangFromID ( L_JAVASCRIPT ) ;
ljs - > _isBackspaceUnindent = isBackspaceUnindent ;
}
else if ( lang - > _langID = = L_JAVASCRIPT )
{
Lang * ljavascript = nppParam . getLangFromID ( L_JS ) ;
ljavascript - > _isBackspaceUnindent = isBackspaceUnindent ;
}
lang - > _isBackspaceUnindent = isBackspaceUnindent ;
// write in langs.xml
nppParam . insertTabInfo ( lang - > getLangName ( ) , lang - > getTabInfo ( ) , lang - > _isBackspaceUnindent ) ;
}
else
{
nppGUI . _backspaceUnindent = isBackspaceUnindent ;
}
: : SendMessage ( : : GetParent ( _hParent ) , NPPM_INTERNAL_SET_TAB_SETTINGS , 0 , 0 ) ;
return TRUE ;
}
@ -3627,21 +3675,24 @@ intptr_t CALLBACK LanguageSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
if ( ! lang )
return FALSE ;
//- Set tab setting in choosed language
//- Set tab setting in chosen language
lang - > _tabSize = useDefaultTab ? 0 : nppGUI . _tabSize ;
lang - > _isTabReplacedBySpace = useDefaultTab ? false : nppGUI . _tabReplacedBySpace ;
lang - > _isBackspaceUnindent = useDefaultTab ? false : nppGUI . _backspaceUnindent ;
//- set visual effect
: : SetDlgItemInt ( _hSelf , IDC_EDIT_TABSIZEVAL , useDefaultTab ? nppGUI . _tabSize : lang - > _tabSize , FALSE ) ;
setChecked ( IDC_RADIO_REPLACEBYSPACE , useDefaultTab ? nppGUI . _tabReplacedBySpace : lang - > _isTabReplacedBySpace ) ;
setChecked ( IDC_RADIO_USINGTAB , useDefaultTab ? ! nppGUI . _tabReplacedBySpace : ! lang - > _isTabReplacedBySpace ) ;
setChecked ( IDC_CHECK_BACKSPACEUNINDENT , useDefaultTab ? nppGUI . _backspaceUnindent : lang - > _isBackspaceUnindent ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_REPLACEBYSPACE ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_RADIO_USINGTAB ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_EDIT_TABSIZEVAL ) , ! useDefaultTab ) ;
: : EnableWindow ( : : GetDlgItem ( _hSelf , IDC_CHECK_BACKSPACEUNINDENT ) , ! useDefaultTab ) ;
// write in langs.xml
if ( useDefaultTab )
nppParam . insertTabInfo ( lang - > getLangName ( ) , - 1 ) ;
nppParam . insertTabInfo ( lang - > getLangName ( ) , - 1 , false ) ;
redrawDlgItem ( IDC_TABSIZE_STATIC ) ;
redrawDlgItem ( IDC_INDENTUSING_STATIC ) ;