From: Jeffrey D. <ha...@us...> - 2003-09-28 19:05:48
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: Panel.cpp Panel.h View.h Revision Data ------------- Index: Panel.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Panel.cpp 17 Sep 2003 23:10:06 -0000 1.14 +++ Panel.cpp 28 Sep 2003 19:05:05 -0000 1.15 @@ -557,4 +557,28 @@ } } return S_OK; -} \ No newline at end of file +} + +STDMETHODIMP cPanel::get_Transparent(VARIANT_BOOL *pVal) +{ + *pVal = ( m_bTransparent ? VARIANT_TRUE : VARIANT_FALSE ); + return S_OK; +} + +STDMETHODIMP cPanel::put_Transparent(VARIANT_BOOL newVal) +{ + if( newVal == VARIANT_FALSE ) + m_bTransparent = false; + else + m_bTransparent = true; + + if( m_pVP->alpha == -1 ) + m_pSite->put_Alpha( m_Alpha ); + else + m_pSite->put_Alpha( m_pVP->alpha ); + + m_pSite->Invalidate(); + m_pSite->Reformat(); + + return S_OK; +} Index: Panel.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Panel.h 17 Sep 2003 23:10:06 -0000 1.7 +++ Panel.h 28 Sep 2003 19:05:05 -0000 1.8 @@ -80,6 +80,8 @@ STDMETHOD(ActivateView)(long nViewID, ViewParams *pParams, long *pVal); STDMETHOD(Deactivate)(); STDMETHOD(putref_Sink)(/*[in]*/ IPanelSink* newVal); + STDMETHOD(get_Transparent)(/*[out, retval]*/ VARIANT_BOOL *pVal); + STDMETHOD(put_Transparent)(/*[in]*/ VARIANT_BOOL newVal); // ILayerRender Methods STDMETHOD(Render)(ICanvas *); Index: View.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- View.h 25 Sep 2003 19:50:11 -0000 1.12 +++ View.h 28 Sep 2003 19:05:05 -0000 1.13 @@ -22,6 +22,7 @@ cView( ) { m_VP.alpha = -1; + m_lOldTrans = 255; } ~cView(); @@ -35,6 +36,7 @@ CComPtr< IPanel > m_pPanel; ViewParams m_VP; + long m_lOldTrans; bool m_bTransparent; // Named controls |
From: Jeffrey D. <ha...@us...> - 2003-09-28 19:12:44
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: View.cpp Revision Data ------------- Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- View.cpp 28 Sep 2003 02:06:58 -0000 1.25 +++ View.cpp 28 Sep 2003 19:12:30 -0000 1.26 @@ -442,7 +442,6 @@ return E_POINTER; *pVal = m_VP.alpha; - return S_OK; } @@ -487,21 +486,24 @@ { if( newVal == VARIANT_FALSE ) { + if( !m_bTransparent ) + return S_OK; + m_bTransparent = false; - m_VP.alpha = -1; + m_VP.alpha = m_lOldTrans; + m_pPanel->put_Transparent( VARIANT_FALSE ); } else { + if( m_bTransparent ) + return S_OK; + m_bTransparent = true; + m_lOldTrans = m_VP.alpha; m_VP.alpha = 255; + m_pPanel->put_Transparent( VARIANT_TRUE ); } - - long nActiveView; - m_pPanel->get_ActiveView( &nActiveView ); - - if( nActiveView == m_nViewID ) - m_pPanel->ActivateView(m_nViewID, &m_VP, (long*)this); return S_OK; } |
From: Jeffrey D. <ha...@us...> - 2003-09-28 20:06:34
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.idl Revision Data ------------- Index: Inject.idl =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.idl,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- Inject.idl 26 Sep 2003 08:25:25 -0000 1.43 +++ Inject.idl 28 Sep 2003 19:01:28 -0000 1.44 @@ -552,6 +552,8 @@ [helpstring("method Deactivate")] HRESULT Deactivate(); [propputref, helpstring("property Sink")] HRESULT Sink([in] IPanelSink* newVal); [helpstring("method LoadViewEx")] HRESULT LoadViewEx(long nViewID, IView *pView, IUnknown *pSchema, long lViewFlags); + [propget, helpstring("property Transparent")] HRESULT Transparent([out, retval] VARIANT_BOOL* pVal); + [propput, helpstring("property Transparent")] HRESULT Transparent([in] VARIANT_BOOL newVal); }; [ |