summaryrefslogtreecommitdiff
path: root/svx/source/fmcomp/gridctrl.cxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2008-12-16 13:30:53 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2008-12-16 13:30:53 +0000
commit2aba9f078c1e241eec4d453eb52c08eca743d695 (patch)
tree72fbd284b917da8f25e423fafd272174bf463692 /svx/source/fmcomp/gridctrl.cxx
parentac20273a69b2557e89a4c3e6eb9a1d543390739d (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/gridctrl.cxx')
-rw-r--r--svx/source/fmcomp/gridctrl.cxx92
1 files changed, 59 insertions, 33 deletions
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index f275be4973..ddf8f54e03 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())
{