Author: jsc
Date: Fri Dec 20 05:47:11 2013
New Revision: 1552497
URL: http://svn.apache.org/r1552497
Log:
#120065# apply patch for Enabled property in grid model
Patch By: hanya
Review By: jsc
Modified:
openoffice/trunk/main/svtools/inc/svtools/table/tablemodel.hxx
openoffice/trunk/main/svtools/source/table/gridtablerenderer.cxx
openoffice/trunk/main/svtools/source/table/tablecontrol_impl.cxx
openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.cxx
openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.hxx
openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.cxx
openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.hxx
Modified: openoffice/trunk/main/svtools/inc/svtools/table/tablemodel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/table/tablemodel.hxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/table/tablemodel.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/table/tablemodel.hxx Fri Dec 20
05:47:11 2013
@@ -528,6 +528,10 @@ namespace svt { namespace table
It is legitimate to return <NULL/> here, in this case, the table
model does not support sorting.
*/
virtual ITableDataSort* getSortAdapter() = 0;
+
+ /** returns enabled state.
+ */
+ virtual bool isEnabled() const = 0;
/// destroys the table model instance
virtual ~ITableModel() { }
Modified: openoffice/trunk/main/svtools/source/table/gridtablerenderer.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/table/gridtablerenderer.cxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/table/gridtablerenderer.cxx (original)
+++ openoffice/trunk/main/svtools/source/table/gridtablerenderer.cxx Fri Dec 20
05:47:11 2013
@@ -277,7 +277,9 @@ namespace svt { namespace table
_rDevice.SetTextColor( textColor );
Rectangle const aTextRect( lcl_getTextRenderingArea(
lcl_getContentArea( *m_pImpl, _rArea ) ) );
- sal_uLong const nDrawTextFlags = lcl_getAlignmentTextDrawFlags(
*m_pImpl, _nCol ) | TEXT_DRAW_CLIP;
+ sal_uLong nDrawTextFlags = lcl_getAlignmentTextDrawFlags( *m_pImpl,
_nCol ) | TEXT_DRAW_CLIP;
+ if ( !m_pImpl->rModel.isEnabled() )
+ nDrawTextFlags |= TEXT_DRAW_DISABLE;
_rDevice.DrawText( aTextRect, sHeaderText, nDrawTextFlags );
::boost::optional< ::Color > const aLineColor(
m_pImpl->rModel.getLineColor() );
@@ -413,7 +415,9 @@ namespace svt { namespace table
_rDevice.SetTextColor( textColor );
Rectangle const aTextRect( lcl_getTextRenderingArea(
lcl_getContentArea( *m_pImpl, _rArea ) ) );
- sal_uLong const nDrawTextFlags = lcl_getAlignmentTextDrawFlags(
*m_pImpl, 0 ) | TEXT_DRAW_CLIP;
+ sal_uLong nDrawTextFlags = lcl_getAlignmentTextDrawFlags(
*m_pImpl, 0 ) | TEXT_DRAW_CLIP;
+ if ( !m_pImpl->rModel.isEnabled() )
+ nDrawTextFlags |= TEXT_DRAW_DISABLE;
// TODO: is using the horizontal alignment of the 0'th column
a good idea here? This is pretty ... arbitray ..
_rDevice.DrawText( aTextRect, rowTitle, nDrawTextFlags );
}
@@ -517,8 +521,8 @@ namespace svt { namespace table
}
else
imageSize.Height() = i_context.aContentArea.GetHeight() - 1;
-
- i_context.rDevice.DrawImage( imagePos, imageSize, i_image, 0 );
+ sal_uInt16 const nStyle = m_pImpl->rModel.isEnabled() ? 0 :
IMAGE_DRAW_DISABLE;
+ i_context.rDevice.DrawImage( imagePos, imageSize, i_image, nStyle );
}
//------------------------------------------------------------------------------------------------------------------
@@ -563,7 +567,9 @@ namespace svt { namespace table
}
Rectangle const textRect( lcl_getTextRenderingArea(
i_context.aContentArea ) );
- sal_uLong const nDrawTextFlags = lcl_getAlignmentTextDrawFlags(
*m_pImpl, i_context.nColumn ) | TEXT_DRAW_CLIP;
+ sal_uLong nDrawTextFlags = lcl_getAlignmentTextDrawFlags( *m_pImpl,
i_context.nColumn ) | TEXT_DRAW_CLIP;
+ if ( !m_pImpl->rModel.isEnabled() )
+ nDrawTextFlags |= TEXT_DRAW_DISABLE;
i_context.rDevice.DrawText( textRect, i_text, nDrawTextFlags );
}
Modified: openoffice/trunk/main/svtools/source/table/tablecontrol_impl.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/table/tablecontrol_impl.cxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/table/tablecontrol_impl.cxx (original)
+++ openoffice/trunk/main/svtools/source/table/tablecontrol_impl.cxx Fri Dec 20
05:47:11 2013
@@ -219,6 +219,10 @@ namespace svt { namespace table
{
return NULL;
}
+ virtual bool isEnabled() const
+ {
+ return true;
+ }
virtual void getCellContent( ColPos const i_col, RowPos const i_row,
::com::sun::star::uno::Any& o_cellContent )
{
(void)i_row;
Modified: openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.cxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.cxx (original)
+++ openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.cxx Fri Dec 20
05:47:11 2013
@@ -855,6 +855,20 @@ void SVTXGridControl::ProcessWindowEvent
}
//----------------------------------------------------------------------------------------------------------------------
+void SVTXGridControl::setEnable( sal_Bool bEnable )
throw(::com::sun::star::uno::RuntimeException)
+{
+ ::vos::OGuard aGuard( GetMutex() );
+ m_pTableModel->setEnabled( bEnable );
+ Window * pWindow = GetWindow();
+ if ( pWindow )
+ {
+ pWindow->Enable( bEnable, sal_True );
+ pWindow->EnableInput( bEnable );
+ pWindow->Invalidate();
+ }
+}
+
+//----------------------------------------------------------------------------------------------------------------------
void SVTXGridControl::ImplCallItemListeners()
{
TableControl* pTable = dynamic_cast< TableControl* >( GetWindow() );
Modified: openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.hxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.hxx (original)
+++ openoffice/trunk/main/svtools/source/uno/svtxgridcontrol.hxx Fri Dec 20
05:47:11 2013
@@ -105,6 +105,9 @@ public:
// ::com::sun::star::lang::XComponent
void SAL_CALL dispose( )
throw(::com::sun::star::uno::RuntimeException);
+
+ // XWindow
+ void SAL_CALL setEnable( sal_Bool bEnable )
throw(::com::sun::star::uno::RuntimeException);
protected:
// VCLXWindow
Modified: openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.cxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.cxx (original)
+++ openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.cxx Fri Dec
20 05:47:11 2013
@@ -102,6 +102,7 @@ namespace svt { namespace table
::boost::optional< ::Color > m_aTextLineColor;
::boost::optional< ::std::vector< ::Color > > m_aRowColors;
VerticalAlignment m_eVerticalAlign;
+ bool bEnabled;
ModellListeners m_aListeners;
WeakReference< XGridDataModel > m_aDataModel;
WeakReference< XGridColumnModel > m_aColumnModel;
@@ -128,6 +129,7 @@ namespace svt { namespace table
,m_aTextLineColor ( )
,m_aRowColors ( )
,m_eVerticalAlign ( VerticalAlignment_TOP )
+ ,bEnabled ( true )
{
}
};
@@ -166,6 +168,7 @@ namespace svt { namespace table
DBG_CTOR( UnoControlTableModel, UnoControlTableModel_checkInvariants );
m_pImpl->bHasColumnHeaders = true;
m_pImpl->bHasRowHeaders = false;
+ m_pImpl->bEnabled = true;
m_pImpl->pRenderer.reset( new GridTableRenderer( *this ) );
m_pImpl->pInputHandler.reset( new DefaultInputHandler );
}
@@ -813,6 +816,20 @@ namespace svt { namespace table
return this;
return NULL;
}
+
+
//------------------------------------------------------------------------------------------------------------------
+ bool UnoControlTableModel::isEnabled() const
+ {
+ DBG_CHECK_ME();
+ return m_pImpl->bEnabled;
+ }
+
+
//------------------------------------------------------------------------------------------------------------------
+ void UnoControlTableModel::setEnabled( bool _bEnabled )
+ {
+ DBG_CHECK_ME();
+ m_pImpl->bEnabled = _bEnabled;
+ }
//------------------------------------------------------------------------------------------------------------------
void UnoControlTableModel::sortByColumn( ColPos const i_column,
ColumnSortDirection const i_sortDirection )
Modified: openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.hxx?rev=1552497&r1=1552496&r2=1552497&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.hxx (original)
+++ openoffice/trunk/main/svtools/source/uno/unocontroltablemodel.hxx Fri Dec
20 05:47:11 2013
@@ -96,6 +96,7 @@ namespace svt { namespace table
virtual ::com::sun::star::style::VerticalAlignment
getVerticalAlign() const;
virtual ITableDataSort* getSortAdapter();
+ virtual bool isEnabled() const;
// ITableDataSort overridables
virtual void sortByColumn( ColPos const i_column,
ColumnSortDirection const i_sortDirection );
@@ -139,6 +140,7 @@ namespace svt { namespace table
void setRowBackgroundColors( ::com::sun::star::uno::Any const &
i_APIValue );
void setVerticalAlign(::com::sun::star::style::VerticalAlignment
_rAlign);
+ void setEnabled( bool _bEnabled );
// multiplexing of XGridDataListener events
void notifyRowsInserted( ::com::sun::star::awt::grid::GridDataEvent
const & i_event ) const;