void CPropInfo::CommitChanges( eProps eWhat ) { for ( int nWnd = 0; nWnd < CEdit::g_nhWndCount; nWnd++ ) { HWND hWnd = m_pCtrl->m_bGlobalProps ? CEdit::g_phWnds[ nWnd ] : m_pCtrl->m_hWnd; CEdit *pCtrl = ( CEdit * ) GetWindowLong( hWnd, 0 ); pCtrl->Repaint( FALSE ); if ( eWhat == eMisc ) { if ( m_bSmoothScroll != pCtrl->m_bSmoothScroll ) { SendMessage( hWnd, CMM_ENABLESMOOTHSCROLLING, m_bSmoothScroll, 0 ); } if ( m_bShowLeftMargin != pCtrl->m_bShowLeftMargin ) { SendMessage( hWnd, CMM_ENABLELEFTMARGIN, m_bShowLeftMargin, 0 ); } if ( m_bAllowDragDrop != pCtrl->m_bAllowDragDrop ) { SendMessage( hWnd, CMM_ENABLEDRAGDROP, m_bAllowDragDrop, 0 ); } if ( m_bLineToolTips != pCtrl->m_bLineToolTips ) { SendMessage( hWnd, CMM_ENABLELINETOOLTIPS, m_bLineToolTips, 0 ); } if ( m_bAllowColumnSel != pCtrl->m_bAllowColumnSel ) { SendMessage( hWnd, CMM_ENABLECOLUMNSEL, m_bAllowColumnSel, 0 ); } if ( m_bColorSyntax != pCtrl->m_bColorSyntax ) { SendMessage( hWnd, CMM_ENABLECOLORSYNTAX, m_bColorSyntax, 0 ); } if ( m_bShowHScrollBar != pCtrl->ShowHScrollBar() ) { SendMessage( hWnd, CMM_SHOWSCROLLBAR, TRUE, m_bShowHScrollBar ); } if ( m_bShowVScrollBar != pCtrl->ShowVScrollBar() ) { SendMessage( hWnd, CMM_SHOWSCROLLBAR, FALSE, m_bShowVScrollBar ); } if ( m_bAllowHSplit != pCtrl->m_bAllowHSplit ) { SendMessage( hWnd, CMM_ENABLESPLITTER, TRUE, m_bAllowHSplit ); } if ( m_bAllowVSplit != pCtrl->m_bAllowVSplit ) { SendMessage( hWnd, CMM_ENABLESPLITTER, FALSE, m_bAllowVSplit ); } if ( m_bSelBounds != pCtrl->BoundSelection() ) { SendMessage( hWnd, CMM_ENABLESELBOUNDS, m_bSelBounds, 0 ); } if ( m_nMaxUndo != pCtrl->m_Buffer.GetMaxUndo() ) { SendMessage( hWnd, CMM_SETUNDOLIMIT, m_nMaxUndo, 0 ); } SendMessage( hWnd, CMM_SETLINENUMBERING, 0, ( LPARAM ) &m_cmLineNum ); } else if ( eWhat == eColorFont ) { CM_COLORS Colors; ZeroMemory( &Colors, sizeof( Colors ) ); Colors.crWindow = m_crFore[ IDX_WINDOW ]; Colors.crLeftMargin = m_crFore[ IDX_LMARGIN ]; Colors.crBookmark = m_crFore[ IDX_BOOKMARK ]; Colors.crBookmarkBk = m_crBack[ IDX_BOOKMARK ]; Colors.crBreakpoint = m_crFore[ IDX_BREAKPOINT ]; Colors.crBreakpointBk = m_crBack[ IDX_BREAKPOINT ]; Colors.crText = m_crFore[ IDX_TEXT ]; Colors.crTextBk = m_crBack[ IDX_TEXT ]; Colors.crNumber = m_crFore[ IDX_NUMBER ]; Colors.crNumberBk = m_crBack[ IDX_NUMBER ]; Colors.crKeyword = m_crFore[ IDX_KEYWORD ]; Colors.crKeywordBk = m_crBack[ IDX_KEYWORD ]; Colors.crOperator = m_crFore[ IDX_OPERATOR ]; Colors.crOperatorBk = m_crBack[ IDX_OPERATOR ]; Colors.crScopeKeyword = m_crFore[ IDX_SCOPEKEYWORD ]; Colors.crScopeKeywordBk = m_crBack[ IDX_SCOPEKEYWORD ]; Colors.crComment = m_crFore[ IDX_COMMENT ]; Colors.crCommentBk = m_crBack[ IDX_COMMENT ]; Colors.crString = m_crFore[ IDX_STRING ]; Colors.crStringBk = m_crBack[ IDX_STRING ]; Colors.crTagText = m_crFore[ IDX_TAGTEXT ]; Colors.crTagTextBk = m_crBack[ IDX_TAGTEXT ]; Colors.crTagEntity = m_crFore[ IDX_TAGENT ]; Colors.crTagEntityBk = m_crBack[ IDX_TAGENT ]; Colors.crTagElementName = m_crFore[ IDX_TAGELEMNAME ]; Colors.crTagElementNameBk = m_crBack[ IDX_TAGELEMNAME ]; Colors.crTagAttributeName = m_crFore[ IDX_TAGATTRNAME ]; Colors.crTagAttributeNameBk = m_crBack[ IDX_TAGATTRNAME ]; Colors.crLineNumber = m_crFore[ IDX_LINENUMBER ]; Colors.crLineNumberBk = m_crBack[ IDX_LINENUMBER ]; Colors.crHDividerLines = m_crFore[ IDX_HDIVIDERLINES ]; Colors.crVDividerLines = m_crFore[ IDX_VDIVIDERLINES ]; Colors.crHighlightedLine = m_crFore[ IDX_HIGHLIGHTEDLINE ]; Colors.crExtra1 = m_crFore[ IDX_EXTRA1 ]; Colors.crExtra2 = m_crFore[ IDX_EXTRA2 ]; Colors.crExtra3 = m_crFore[ IDX_EXTRA3 ]; SendMessage( hWnd, CMM_SETCOLORS, 0, ( LPARAM ) &Colors ); SendMessage( hWnd, WM_SETFONT, ( WPARAM ) CreateFontIndirect( &m_lf ), MAKELPARAM( TRUE, 0 ) ); pCtrl->m_bOwnFont = TRUE; CM_FONTSTYLES FontStyles; ZeroMemory( &FontStyles, sizeof( FontStyles ) ); FontStyles.byText = m_byFontStyles[ IDX_TEXT ]; FontStyles.byNumber = m_byFontStyles[ IDX_NUMBER ]; FontStyles.byKeyword = m_byFontStyles[ IDX_KEYWORD ]; FontStyles.byOperator = m_byFontStyles[ IDX_OPERATOR ]; FontStyles.byScopeKeyword = m_byFontStyles[ IDX_SCOPEKEYWORD ]; FontStyles.byComment = m_byFontStyles[ IDX_COMMENT ]; FontStyles.byString = m_byFontStyles[ IDX_STRING ]; FontStyles.byTagText = m_byFontStyles[ IDX_TAGTEXT ]; FontStyles.byTagEntity = m_byFontStyles[ IDX_TAGENT ]; FontStyles.byTagElementName = m_byFontStyles[ IDX_TAGELEMNAME ]; FontStyles.byTagAttributeName = m_byFontStyles[ IDX_TAGATTRNAME ]; FontStyles.byLineNumber = m_byFontStyles[ IDX_LINENUMBER ]; SendMessage( hWnd, CMM_SETFONTSTYLES, 0, ( LPARAM ) &FontStyles ); } else if ( eWhat == eKeyboard ) { if ( m_pcmAddKey ) { for ( int i = 0; i < m_nAddCount; i++ ) { CM_HOTKEY cmHotKey = m_pcmAddKey[ i ]; if ( cmHotKey.nVirtKey1 ) { CEdit::RegisterHotKey( cmHotKey, m_pwAddCmd[ i ] ); } } free( m_pcmAddKey ); free( m_pwAddCmd ); m_pcmAddKey = NULL; m_pwAddCmd = NULL; m_nAddCount = 0; } if ( m_pcmRemoveKey ) { for ( int i = 0; i < m_nRemoveCount; i++ ) { CM_HOTKEY cmHotKey = m_pcmRemoveKey[ i ]; if ( cmHotKey.nVirtKey1 ) { CEdit::UnregisterHotKey( cmHotKey ); } } free( m_pcmRemoveKey ); m_pcmRemoveKey = NULL; m_nRemoveCount = 0; } } else if ( eWhat == eTabs ) { if ( m_eIndentStyle != pCtrl->m_eIndentStyle ) { SendMessage( hWnd, CMM_SETAUTOINDENTMODE, m_eIndentStyle, 0 ); } if ( m_nTabSize != pCtrl->m_Buffer.GetTabSize() ) { SendMessage( hWnd, CMM_SETTABSIZE, m_nTabSize, 0 ); } if ( m_bExpandTabs != pCtrl->m_bExpandTabs ) { SendMessage( hWnd, CMM_ENABLETABEXPAND, m_bExpandTabs, 0 ); } if ( m_bNormalizeCase != pCtrl->m_Buffer.NormalizeCase() ) { SendMessage( hWnd, CMM_ENABLENORMALIZECASE, m_bNormalizeCase, 0 ); } // language setting only applies to the current window if ( ( pCtrl == m_pCtrl ) && ( _tcsicmp( m_szLang, pCtrl->m_szLang ) != 0 ) ) { SendMessage( hWnd, CMM_SETLANGUAGE, 0, ( LPARAM ) m_szLang ); } } // tell the parent that props changed pCtrl->NotifyParent( CMN_PROPSCHANGE ); if ( !m_pCtrl->m_bGlobalProps ) { break; } } }