diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-12-16 13:30:53 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-12-16 13:30:53 +0000 |
commit | ba13251d79d9eee4e77beebe3f6b02e8127b8892 (patch) | |
tree | 4aa004ed142c1eb3ce30b80760a24fa2e064be30 /svx/source/fmcomp | |
parent | 4f70cd8e18074e87aa8af64bf37585e5fcebfc3f (diff) |
CWS-TOOLING: integrate CWS rtlcontrols
2008-12-11 21:08:49 +0100 fs r265367 : CONTEXT_WRITING_MODE is transient
2008-12-11 21:08:00 +0100 fs r265365 : REGISTER_PROP_3
2008-12-11 20:53:44 +0100 fs r265362 : ContextWritingMode is not MAYBEVOID
2008-12-11 15:29:08 +0100 fs r265315 : prevent a deadlock during complex.dbaccess.DatabaseDocument test
2008-12-11 15:01:13 +0100 fs r265304 : manual RESYNC to m37
2008-12-10 20:04:38 +0100 pl r265230 : #i30631# fix a snafu in mirroring
2008-12-10 19:14:45 +0100 pl r265229 : #i30631# rework PaintToDevice for RTL controls
2008-12-05 10:19:13 +0100 fs r264893 : #i10000# ImplInitSettings => ImplInitWindow (ImplInitSettings clashed with base classes ImplInitSettings on unxsols4)
2008-12-03 12:55:24 +0100 fs r264768 : #i100000#
2008-12-03 07:11:48 +0100 fs r264741 : #i10000#
2008-12-02 10:37:51 +0100 fs r264670 : CWS-TOOLING: rebase CWS rtlcontrols to trunk@264325 (milestone: DEV300:m36)
2008-12-02 09:27:50 +0100 fs r264660 : merge from trunk
2008-11-25 10:28:36 +0100 ama r264277 : Fix #i94572#
2008-11-24 11:46:48 +0100 fs r264218 : #i30631# proper context writing mode
2008-11-24 09:38:04 +0100 fs r264204 : #i30631# (approved by PL)
2008-11-24 09:35:47 +0100 fs r264203 : #i30631# Context/WritingMode
2008-11-24 09:33:36 +0100 fs r264202 : #i30631# Context/WritingMode
2008-11-24 09:31:53 +0100 fs r264200 : #i30631# RTL
2008-11-19 08:51:48 +0100 fs r263963 : #i10000#
2008-11-18 20:58:11 +0100 fs r263878 : #i10000#
2008-11-18 15:30:44 +0100 fs r263778 : migrate the CWS from CVS to SVN
the CVS changes contained in this change set are the ones between the
following two CVS tags:
CWS_DEV300_RTLCONTROLS_ANCHOR
CWS_DEV300_RTLCONTROLS_PRE_MIGRATION
2008-11-18 12:29:04 +0100 ama r263762 : Fix #i94572#: Context direction for drawing objects
2008-11-18 12:25:50 +0100 ama r263761 : Fix #i94572#: Context direction for drawing objects
2008-11-18 12:02:30 +0100 ama r263759 : Fix #i94572#: Context direction for drawing objects
Diffstat (limited to 'svx/source/fmcomp')
-rw-r--r-- | svx/source/fmcomp/gridcell.cxx | 29 | ||||
-rw-r--r-- | svx/source/fmcomp/gridctrl.cxx | 92 |
2 files changed, 80 insertions, 41 deletions
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx index 72aeb08ce60a..49778b7a4b69 100644 --- a/svx/source/fmcomp/gridcell.cxx +++ b/svx/source/fmcomp/gridcell.cxx @@ -525,10 +525,10 @@ void DbGridColumn::Paint(OutputDevice& rDev, } //------------------------------------------------------------------------------ -void DbGridColumn::ImplInitSettings(Window& rParent, sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground) +void DbGridColumn::ImplInitWindow( Window& rParent, const InitWindowFacet _eInitWhat ) { - if (m_pCell) - m_pCell->ImplInitSettings(rParent, bFont, bForeground, bBackground); + if ( m_pCell ) + m_pCell->ImplInitWindow( rParent, _eInitWhat ); } //============================================================================== @@ -685,10 +685,20 @@ sal_Bool DbCellControl::Commit() } //------------------------------------------------------------------------------ -void DbCellControl::ImplInitSettings(Window& rParent, sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground) +void DbCellControl::ImplInitWindow( Window& rParent, const InitWindowFacet _eInitWhat ) { Window* pWindows[] = { m_pPainter, m_pWindow }; - if (bFont) + + if ( ( _eInitWhat & InitWritingMode ) != 0 ) + { + for ( size_t i=0; i < sizeof( pWindows ) / sizeof( pWindows[0] ); ++i ) + { + if ( pWindows[i] ) + pWindows[i]->EnableRTL( rParent.IsRTLEnabled() ); + } + } + + if ( ( _eInitWhat & InitFont ) != 0 ) { for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i) { @@ -713,7 +723,9 @@ void DbCellControl::ImplInitSettings(Window& rParent, sal_Bool bFont, sal_Bool b } } - if (bFont || bForeground) + if ( ( ( _eInitWhat & InitFont ) != 0 ) + || ( ( _eInitWhat & InitForeground ) != 0 ) + ) { Color aTextColor( rParent.IsControlForeground() ? rParent.GetControlForeground() : rParent.GetTextColor() ); @@ -736,7 +748,7 @@ void DbCellControl::ImplInitSettings(Window& rParent, sal_Bool bFont, sal_Bool b } } - if (bBackground) + if ( ( _eInitWhat & InitBackground ) != 0 ) { if (rParent.IsControlBackground()) { @@ -811,7 +823,8 @@ void DbCellControl::implAdjustEnabled( const Reference< XPropertySet >& _rxModel //------------------------------------------------------------------------------ void DbCellControl::Init( Window& rParent, const Reference< XRowSet >& _rxCursor ) { - ImplInitSettings( rParent, sal_True, sal_True, sal_True ); + ImplInitWindow( rParent, InitAll ); + if ( m_pWindow ) { // align the control diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx index 4b997db3b08e..b3b18632884c 100644 --- a/svx/source/fmcomp/gridctrl.cxx +++ b/svx/source/fmcomp/gridctrl.cxx @@ -754,32 +754,44 @@ void DbGridControl::NavigationBar::Paint(const Rectangle& rRect) //------------------------------------------------------------------------------ void DbGridControl::NavigationBar::StateChanged( StateChangedType nType ) { - Control::StateChanged(nType); - if (STATE_CHANGE_ZOOM == nType) - { - Fraction aZoom = GetZoom(); + Control::StateChanged( nType ); - Window* pWindows[] = { - &m_aRecordText, - &m_aAbsolute, - &m_aRecordOf, - &m_aRecordCount, - &m_aFirstBtn, - &m_aPrevBtn, - &m_aNextBtn, - &m_aLastBtn, - &m_aNewBtn - }; + Window* pWindows[] = { &m_aRecordText, + &m_aAbsolute, + &m_aRecordOf, + &m_aRecordCount, + &m_aFirstBtn, + &m_aPrevBtn, + &m_aNextBtn, + &m_aLastBtn, + &m_aNewBtn + }; - // not all of these controls need to know the new zoom, but to be sure ... - Font aFont( IsControlFont() ? GetControlFont() : GetPointFont()); - for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i) + switch ( nType ) + { + case STATE_CHANGE_MIRRORING: { - pWindows[i]->SetZoom(aZoom); - pWindows[i]->SetZoomedPointFont(aFont); + BOOL bIsRTLEnabled = IsRTLEnabled(); + for ( size_t i=0; i < sizeof( pWindows ) / sizeof( pWindows[0] ); ++i ) + pWindows[i]->EnableRTL( bIsRTLEnabled ); } - // rearrange the controls - m_nDefaultWidth = ArrangeControls(); + break; + + case STATE_CHANGE_ZOOM: + { + Fraction aZoom = GetZoom(); + + // not all of these controls need to know the new zoom, but to be sure ... + Font aFont( IsControlFont() ? GetControlFont() : GetPointFont()); + for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i) + { + pWindows[i]->SetZoom(aZoom); + pWindows[i]->SetZoomedPointFont(aFont); + } + // rearrange the controls + m_nDefaultWidth = ArrangeControls(); + } + break; } } @@ -935,7 +947,7 @@ DbGridControl::DbGridControl( String sName(SVX_RES(RID_STR_NAVIGATIONBAR)); m_aBar.SetAccessibleName(sName); m_aBar.Show(); - ImplInitSettings(sal_True,sal_True,sal_True); + ImplInitWindow( InitAll ); } //------------------------------------------------------------------------------ @@ -1002,11 +1014,17 @@ DbGridControl::~DbGridControl() void DbGridControl::StateChanged( StateChangedType nType ) { DbGridControl_Base::StateChanged( nType ); + switch (nType) { + case STATE_CHANGE_MIRRORING: + ImplInitWindow( InitWritingMode ); + Invalidate(); + break; + case STATE_CHANGE_ZOOM: { - ImplInitSettings( sal_True, sal_False, sal_False ); + ImplInitWindow( InitFont ); // and give it a chance to rearrange Point aPoint = GetControlArea().TopLeft(); @@ -1016,15 +1034,15 @@ void DbGridControl::StateChanged( StateChangedType nType ) } break; case STATE_CHANGE_CONTROLFONT: - ImplInitSettings( sal_True, sal_False, sal_False ); + ImplInitWindow( InitFont ); Invalidate(); break; case STATE_CHANGE_CONTROLFOREGROUND: - ImplInitSettings( sal_False, sal_True, sal_False ); + ImplInitWindow( InitForeground ); Invalidate(); break; case STATE_CHANGE_CONTROLBACKGROUND: - ImplInitSettings( sal_False, sal_False, sal_True ); + ImplInitWindow( InitBackground ); Invalidate(); break; } @@ -1037,7 +1055,7 @@ void DbGridControl::DataChanged( const DataChangedEvent& rDCEvt ) if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS ) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) { - ImplInitSettings( sal_True, sal_True, sal_True ); + ImplInitWindow( InitAll ); Invalidate(); } } @@ -1055,16 +1073,24 @@ void DbGridControl::Select() } //------------------------------------------------------------------------------ -void DbGridControl::ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ) +void DbGridControl::ImplInitWindow( const InitWindowFacet _eInitWhat ) { - for (sal_uInt32 i = 0; i < m_aColumns.Count(); i++) + for ( sal_uInt32 i = 0; i < m_aColumns.Count(); ++i ) { DbGridColumn* pCol = m_aColumns.GetObject(i); if (pCol) - pCol->ImplInitSettings( GetDataWindow(), bFont, bForeground, bBackground ); + pCol->ImplInitWindow( GetDataWindow(), _eInitWhat ); + } + + if ( ( _eInitWhat & InitWritingMode ) != 0 ) + { + if ( m_bNavigationBar ) + { + m_aBar.EnableRTL( IsRTLEnabled() ); + } } - if ( bFont ) + if ( ( _eInitWhat & InitFont ) != 0 ) { if ( m_bNavigationBar ) { @@ -1083,7 +1109,7 @@ void DbGridControl::ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_ } } - if (bBackground) + if ( ( _eInitWhat & InitBackground ) != 0 ) { if (IsControlBackground()) { |