summaryrefslogtreecommitdiff
path: root/svx/source/fmcomp
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
commitba13251d79d9eee4e77beebe3f6b02e8127b8892 (patch)
tree4aa004ed142c1eb3ce30b80760a24fa2e064be30 /svx/source/fmcomp
parent4f70cd8e18074e87aa8af64bf37585e5fcebfc3f (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.cxx29
-rw-r--r--svx/source/fmcomp/gridctrl.cxx92
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())
{