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;


Reply via email to