LCOV - code coverage report
Current view: top level - libreoffice/cui/source/dialogs - cuigrfflt.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 1 247 0.4 %
Date: 2012-12-27 Functions: 2 39 5.1 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <tools/shl.hxx>
      21             : #include <vcl/msgbox.hxx>
      22             : #include <sfx2/viewfrm.hxx>
      23             : #include <sfx2/viewsh.hxx>
      24             : #include <sfx2/objsh.hxx>
      25             : #include <sfx2/request.hxx>
      26             : #include <dialmgr.hxx>
      27             : #include "cuigrfflt.hxx"
      28             : #include "grfflt.hrc"
      29             : #include <cuires.hrc>
      30             : #include <svx/dialogs.hrc> // RID_SVX_GRFFILTER_DLG_...
      31             : 
      32             : // --------------------------------------
      33             : // - GraphicFilterDialog::PreviewWindow -
      34             : // --------------------------------------
      35             : 
      36           0 : GraphicFilterDialog::PreviewWindow::PreviewWindow( Window* pParent, const ResId& rResId ) :
      37           0 :     Control( pParent, rResId )
      38             : {
      39           0 : }
      40             : 
      41             : // -----------------------------------------------------------------------------
      42             : 
      43           0 : GraphicFilterDialog::PreviewWindow::~PreviewWindow()
      44             : {
      45           0 : }
      46             : 
      47             : // -----------------------------------------------------------------------------
      48             : 
      49           0 : void GraphicFilterDialog::PreviewWindow::Paint( const Rectangle& rRect )
      50             : {
      51           0 :     Control::Paint( rRect );
      52             : 
      53           0 :     const Size  aOutputSize( GetOutputSizePixel() );
      54             : 
      55           0 :     if( maGraphic.IsAnimated() )
      56             :     {
      57           0 :         const Size  aGraphicSize( LogicToPixel( maGraphic.GetPrefSize(), maGraphic.GetPrefMapMode() ) );
      58           0 :         const Point aGraphicPosition( ( aOutputSize.Width()  - aGraphicSize.Width()  ) >> 1,
      59           0 :                                       ( aOutputSize.Height() - aGraphicSize.Height() ) >> 1 );
      60           0 :         maGraphic.StartAnimation( this, aGraphicPosition, aGraphicSize );
      61             :     }
      62             :     else
      63             :     {
      64           0 :         const Size  aGraphicSize( maGraphic.GetSizePixel() );
      65           0 :         const Point aGraphicPosition( ( aOutputSize.Width()  - aGraphicSize.Width()  ) >> 1,
      66           0 :                                       ( aOutputSize.Height() - aGraphicSize.Height() ) >> 1 );
      67           0 :         maGraphic.Draw( this, aGraphicPosition, aGraphicSize );
      68             :     }
      69           0 : }
      70             : 
      71             : // -----------------------------------------------------------------------------
      72             : 
      73           0 : void GraphicFilterDialog::PreviewWindow::SetGraphic( const Graphic& rGraphic )
      74             : {
      75           0 :     maGraphic = rGraphic;
      76             : 
      77           0 :     if( maGraphic.IsAnimated() || maGraphic.IsTransparent() )
      78           0 :         Invalidate();
      79             :     else
      80           0 :         Paint( Rectangle( Point(), GetOutputSizePixel() ) );
      81           0 : }
      82             : 
      83             : // -----------------------
      84             : // - GraphicFilterDialog -
      85             : // -----------------------
      86             : 
      87           0 : GraphicFilterDialog::GraphicFilterDialog( Window* pParent, const ResId& rResId, const Graphic& rGraphic ) :
      88             :     ModalDialog     ( pParent, rResId ),
      89             :     maModifyHdl     ( LINK( this, GraphicFilterDialog, ImplModifyHdl ) ),
      90             :     mfScaleX        ( 0.0 ),
      91             :     mfScaleY        ( 0.0 ),
      92           0 :     maSizePixel     ( LogicToPixel( rGraphic.GetPrefSize(), rGraphic.GetPrefMapMode() ) ),
      93           0 :     maPreview       ( this, CUI_RES( CTL_PREVIEW ) ),
      94           0 :     maBtnOK         ( this, CUI_RES( BTN_OK ) ),
      95           0 :     maBtnCancel     ( this, CUI_RES( BTN_CANCEL ) ),
      96           0 :     maBtnHelp       ( this, CUI_RES( BTN_HELP ) ),
      97           0 :     maFlParameter   ( this, CUI_RES( FL_PARAMETER ) )
      98             : {
      99           0 :     const Size  aPreviewSize( maPreview.GetOutputSizePixel() );
     100           0 :     Size        aGrfSize( maSizePixel );
     101             : 
     102           0 :     if( rGraphic.GetType() == GRAPHIC_BITMAP &&
     103           0 :         aPreviewSize.Width() && aPreviewSize.Height() &&
     104           0 :         aGrfSize.Width() && aGrfSize.Height() )
     105             :     {
     106           0 :         const double fGrfWH = (double) aGrfSize.Width() / aGrfSize.Height();
     107           0 :         const double fPreWH = (double) aPreviewSize.Width() / aPreviewSize.Height();
     108             : 
     109           0 :         if( fGrfWH < fPreWH )
     110             :         {
     111           0 :             aGrfSize.Width()  = (long) ( aPreviewSize.Height() * fGrfWH );
     112           0 :             aGrfSize.Height() = aPreviewSize.Height();
     113             :         }
     114             :         else
     115             :         {
     116           0 :             aGrfSize.Width()  = aPreviewSize.Width();
     117           0 :             aGrfSize.Height() = (long) ( aPreviewSize.Width() / fGrfWH );
     118             :         }
     119             : 
     120           0 :         mfScaleX = (double) aGrfSize.Width() / maSizePixel.Width();
     121           0 :         mfScaleY = (double) aGrfSize.Height() / maSizePixel.Height();
     122             : 
     123           0 :         if( !rGraphic.IsAnimated() )
     124             :         {
     125           0 :             BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     126             : 
     127           0 :             if( aBmpEx.Scale( aGrfSize, BMP_SCALE_DEFAULT ) )
     128           0 :                 maGraphic = aBmpEx;
     129             :         }
     130             :     }
     131             : 
     132           0 :     maTimer.SetTimeoutHdl( LINK( this, GraphicFilterDialog, ImplPreviewTimeoutHdl ) );
     133           0 :     maTimer.SetTimeout( 100 );
     134           0 :     ImplModifyHdl( NULL );
     135           0 : }
     136             : 
     137             : // -----------------------------------------------------------------------------
     138             : 
     139           0 : GraphicFilterDialog::~GraphicFilterDialog()
     140             : {
     141           0 : }
     142             : 
     143             : // -----------------------------------------------------------------------------
     144             : 
     145           0 : IMPL_LINK_NOARG(GraphicFilterDialog, ImplPreviewTimeoutHdl)
     146             : {
     147           0 :     maTimer.Stop();
     148           0 :     maPreview.SetGraphic( GetFilteredGraphic( maGraphic, mfScaleX, mfScaleY ) );
     149             : 
     150           0 :     return 0;
     151             : }
     152             : 
     153             : // -----------------------------------------------------------------------------
     154             : 
     155           0 : IMPL_LINK_NOARG(GraphicFilterDialog, ImplModifyHdl)
     156             : {
     157           0 :     if( maGraphic.GetType() == GRAPHIC_BITMAP )
     158             :     {
     159           0 :         maTimer.Stop();
     160           0 :         maTimer.Start();
     161             :     }
     162             : 
     163           0 :     return 0;
     164             : }
     165             : 
     166             : // ----------------
     167             : // - FilterMosaic -
     168             : // ----------------
     169             : 
     170           0 : GraphicFilterMosaic::GraphicFilterMosaic( Window* pParent, const Graphic& rGraphic,
     171             :                                           sal_uInt16 nTileWidth, sal_uInt16 nTileHeight, sal_Bool bEnhanceEdges ) :
     172           0 :     GraphicFilterDialog( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_MOSAIC ), rGraphic ),
     173           0 :     maFtWidth   ( this, CUI_RES( DLG_FILTERMOSAIC_FT_WIDTH ) ),
     174           0 :     maMtrWidth  ( this, CUI_RES( DLG_FILTERMOSAIC_MTR_WIDTH ) ),
     175           0 :     maFtHeight  ( this, CUI_RES( DLG_FILTERMOSAIC_FT_HEIGHT ) ),
     176           0 :     maMtrHeight ( this, CUI_RES( DLG_FILTERMOSAIC_MTR_HEIGHT ) ),
     177           0 :     maCbxEdges  ( this, CUI_RES( DLG_FILTERMOSAIC_CBX_EDGES ) )
     178             : {
     179           0 :     FreeResource();
     180             : 
     181           0 :     maMtrWidth.SetValue( nTileWidth );
     182           0 :     maMtrWidth.SetLast( GetGraphicSizePixel().Width() );
     183           0 :     maMtrWidth.SetModifyHdl( GetModifyHdl() );
     184             : 
     185           0 :     maMtrHeight.SetValue( nTileHeight );
     186           0 :     maMtrHeight.SetLast( GetGraphicSizePixel().Height() );
     187           0 :     maMtrHeight.SetModifyHdl( GetModifyHdl() );
     188             : 
     189           0 :     maCbxEdges.Check( bEnhanceEdges );
     190           0 :     maCbxEdges.SetToggleHdl( GetModifyHdl() );
     191             : 
     192           0 :     maMtrWidth.GrabFocus();
     193             : 
     194           0 :     maFtWidth.SetAccessibleRelationMemberOf(&maFlParameter);
     195           0 :     maMtrWidth.SetAccessibleRelationMemberOf(&maFlParameter);
     196           0 :     maFtHeight.SetAccessibleRelationMemberOf(&maFlParameter);
     197           0 :     maMtrHeight.SetAccessibleRelationMemberOf(&maFlParameter);
     198           0 :     maCbxEdges.SetAccessibleRelationMemberOf(&maFlParameter);
     199           0 : }
     200             : 
     201             : // -----------------------------------------------------------------------------
     202             : 
     203           0 : GraphicFilterMosaic::~GraphicFilterMosaic()
     204             : {
     205           0 : }
     206             : 
     207             : // -----------------------------------------------------------------------------
     208             : 
     209           0 : Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
     210             :                                                  double fScaleX, double fScaleY )
     211             : {
     212           0 :     Graphic         aRet;
     213           0 :     const Size      aSize( Max( FRound( GetTileWidth() * fScaleX ), 1L ),
     214           0 :                            Max( FRound( GetTileHeight() * fScaleY ), 1L ) );
     215           0 :     BmpFilterParam  aParam( aSize );
     216             : 
     217           0 :     if( rGraphic.IsAnimated() )
     218             :     {
     219           0 :         Animation aAnim( rGraphic.GetAnimation() );
     220             : 
     221           0 :         if( aAnim.Filter( BMP_FILTER_MOSAIC, &aParam ) )
     222             :         {
     223           0 :             if( IsEnhanceEdges() )
     224           0 :                 aAnim.Filter( BMP_FILTER_SHARPEN );
     225             : 
     226           0 :             aRet = aAnim;
     227           0 :         }
     228             :     }
     229             :     else
     230             :     {
     231           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     232             : 
     233           0 :         if( aBmpEx.Filter( BMP_FILTER_MOSAIC, &aParam ) )
     234             :         {
     235           0 :             if( IsEnhanceEdges() )
     236           0 :                 aBmpEx.Filter( BMP_FILTER_SHARPEN );
     237             : 
     238           0 :             aRet = aBmpEx;
     239           0 :         }
     240             :     }
     241             : 
     242           0 :     return aRet;
     243             : }
     244             : 
     245             : // ------------------
     246             : // - GraphicFilterSmooth -
     247             : // ------------------
     248             : 
     249           0 : GraphicFilterSmooth::GraphicFilterSmooth( Window* pParent, const Graphic& rGraphic, double nRadius) :
     250           0 :     GraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_SMOOTH ), rGraphic ),
     251           0 :     maFtRadius   ( this, CUI_RES( DLG_FILTERSMOOTH_FT_RADIUS ) ),
     252           0 :     maMtrRadius  ( this, CUI_RES( DLG_FILTERSMOOTH_MTR_RADIUS ) )
     253             : {
     254           0 :     FreeResource();
     255             : 
     256           0 :     maMtrRadius.SetValue( nRadius* 10  );
     257           0 :     maMtrRadius.SetModifyHdl( GetModifyHdl() );
     258           0 :     maMtrRadius.GrabFocus();
     259           0 : }
     260             : 
     261             : // -----------------------------------------------------------------------------
     262             : 
     263           0 : GraphicFilterSmooth::~GraphicFilterSmooth()
     264             : {
     265           0 : }
     266             : 
     267             : // -----------------------------------------------------------------------------
     268             : 
     269           0 : Graphic GraphicFilterSmooth::GetFilteredGraphic( const Graphic& rGraphic, double /*fScaleX*/, double /*fScaleY*/ )
     270             : {
     271           0 :     Graphic         aRet;
     272           0 :     BmpFilterParam  aParam( GetRadius() );
     273             : 
     274           0 :     if( rGraphic.IsAnimated() )
     275             :     {
     276           0 :         Animation aAnim( rGraphic.GetAnimation() );
     277             : 
     278           0 :         if( aAnim.Filter( BMP_FILTER_SMOOTH, &aParam ) )
     279             :         {
     280           0 :             aRet = aAnim;
     281           0 :         }
     282             :     }
     283             :     else
     284             :     {
     285           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     286             : 
     287           0 :         if( aBmpEx.Filter( BMP_FILTER_SMOOTH, &aParam ) )
     288             :         {
     289           0 :             aRet = aBmpEx;
     290           0 :         }
     291             :     }
     292             : 
     293           0 :     return aRet;
     294             : }
     295             : 
     296             : // ------------------
     297             : // - GraphicFilterSolarize -
     298             : // ------------------
     299             : 
     300           0 : GraphicFilterSolarize::GraphicFilterSolarize( Window* pParent, const Graphic& rGraphic,
     301             :                                               sal_uInt8 cGreyThreshold, sal_Bool bInvert ) :
     302           0 :     GraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_SOLARIZE ), rGraphic ),
     303           0 :     maFtThreshold   ( this, CUI_RES( DLG_FILTERSOLARIZE_FT_THRESHOLD ) ),
     304           0 :     maMtrThreshold  ( this, CUI_RES( DLG_FILTERSOLARIZE_MTR_THRESHOLD ) ),
     305           0 :     maCbxInvert     ( this, CUI_RES( DLG_FILTERSOLARIZE_CBX_INVERT ) )
     306             : {
     307           0 :     FreeResource();
     308             : 
     309           0 :     maMtrThreshold.SetValue( FRound( cGreyThreshold / 2.55 ) );
     310           0 :     maMtrThreshold.SetModifyHdl( GetModifyHdl() );
     311             : 
     312           0 :     maCbxInvert.Check( bInvert );
     313           0 :     maCbxInvert.SetToggleHdl( GetModifyHdl() );
     314             : 
     315           0 :     maMtrThreshold.GrabFocus();
     316           0 : }
     317             : 
     318             : // -----------------------------------------------------------------------------
     319             : 
     320           0 : GraphicFilterSolarize::~GraphicFilterSolarize()
     321             : {
     322           0 : }
     323             : 
     324             : // -----------------------------------------------------------------------------
     325             : 
     326           0 : Graphic GraphicFilterSolarize::GetFilteredGraphic( const Graphic& rGraphic,
     327             :                                                    double /*fScaleX*/, double /*fScaleY*/ )
     328             : {
     329           0 :     Graphic         aRet;
     330           0 :     BmpFilterParam  aParam( GetGreyThreshold() );
     331             : 
     332           0 :     if( rGraphic.IsAnimated() )
     333             :     {
     334           0 :         Animation aAnim( rGraphic.GetAnimation() );
     335             : 
     336           0 :         if( aAnim.Filter( BMP_FILTER_SOLARIZE, &aParam ) )
     337             :         {
     338           0 :             if( IsInvert() )
     339           0 :                 aAnim.Invert();
     340             : 
     341           0 :             aRet = aAnim;
     342           0 :         }
     343             :     }
     344             :     else
     345             :     {
     346           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     347             : 
     348           0 :         if( aBmpEx.Filter( BMP_FILTER_SOLARIZE, &aParam ) )
     349             :         {
     350           0 :             if( IsInvert() )
     351           0 :                 aBmpEx.Invert();
     352             : 
     353           0 :             aRet = aBmpEx;
     354           0 :         }
     355             :     }
     356             : 
     357           0 :     return aRet;
     358             : }
     359             : 
     360             : // ----------------------
     361             : // - GraphicFilterSepia -
     362             : // ----------------------
     363             : 
     364           0 : GraphicFilterSepia::GraphicFilterSepia( Window* pParent, const Graphic& rGraphic,
     365             :                                         sal_uInt16 nSepiaPercent ) :
     366           0 :     GraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_SEPIA ), rGraphic ),
     367           0 :     maFtSepia       ( this, CUI_RES( DLG_FILTERSEPIA_FT_SEPIA ) ),
     368           0 :     maMtrSepia      ( this, CUI_RES( DLG_FILTERSEPIA_MTR_SEPIA ) )
     369             : {
     370           0 :     FreeResource();
     371             : 
     372           0 :     maMtrSepia.SetValue( nSepiaPercent );
     373           0 :     maMtrSepia.SetModifyHdl( GetModifyHdl() );
     374             : 
     375           0 :     maMtrSepia.GrabFocus();
     376           0 : }
     377             : 
     378             : // -----------------------------------------------------------------------------
     379             : 
     380           0 : GraphicFilterSepia::~GraphicFilterSepia()
     381             : {
     382           0 : }
     383             : 
     384             : // -----------------------------------------------------------------------------
     385             : 
     386           0 : Graphic GraphicFilterSepia::GetFilteredGraphic( const Graphic& rGraphic,
     387             :                                                 double /*fScaleX*/, double /*fScaleY*/ )
     388             : {
     389           0 :     Graphic         aRet;
     390           0 :     BmpFilterParam  aParam( GetSepiaPercent() );
     391             : 
     392           0 :     if( rGraphic.IsAnimated() )
     393             :     {
     394           0 :         Animation aAnim( rGraphic.GetAnimation() );
     395             : 
     396           0 :         if( aAnim.Filter( BMP_FILTER_SEPIA, &aParam ) )
     397           0 :             aRet = aAnim;
     398             :     }
     399             :     else
     400             :     {
     401           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     402             : 
     403           0 :         if( aBmpEx.Filter( BMP_FILTER_SEPIA, &aParam ) )
     404           0 :             aRet = aBmpEx;
     405             :     }
     406             : 
     407           0 :     return aRet;
     408             : }
     409             : 
     410             : // -----------------------
     411             : // - GraphicFilterPoster -
     412             : // -----------------------
     413             : 
     414           0 : GraphicFilterPoster::GraphicFilterPoster( Window* pParent, const Graphic& rGraphic,
     415             :                                           sal_uInt16 nPosterCount ) :
     416           0 :     GraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_POSTER ), rGraphic ),
     417           0 :     maFtPoster      ( this, CUI_RES( DLG_FILTERPOSTER_FT_POSTER ) ),
     418           0 :     maNumPoster     ( this, CUI_RES( DLG_FILTERPOSTER_NUM_POSTER ) )
     419             : {
     420           0 :     FreeResource();
     421             : 
     422           0 :     maNumPoster.SetFirst( 2 );
     423           0 :     maNumPoster.SetLast( rGraphic.GetBitmapEx().GetBitCount() );
     424           0 :     maNumPoster.SetValue( nPosterCount );
     425           0 :     maNumPoster.SetModifyHdl( GetModifyHdl() );
     426           0 :     maNumPoster.GrabFocus();
     427           0 : }
     428             : 
     429             : // -----------------------------------------------------------------------------
     430             : 
     431           0 : GraphicFilterPoster::~GraphicFilterPoster()
     432             : {
     433           0 : }
     434             : 
     435             : // -----------------------------------------------------------------------------
     436             : 
     437           0 : Graphic GraphicFilterPoster::GetFilteredGraphic( const Graphic& rGraphic,
     438             :                                                  double /*fScaleX*/, double /*fScaleY*/ )
     439             : {
     440           0 :     Graphic         aRet;
     441           0 :     const sal_uInt16    nPosterCount = GetPosterColorCount();
     442             : 
     443           0 :     if( rGraphic.IsAnimated() )
     444             :     {
     445           0 :         Animation aAnim( rGraphic.GetAnimation() );
     446             : 
     447           0 :         if( aAnim.ReduceColors( nPosterCount, BMP_REDUCE_POPULAR ) )
     448           0 :             aRet = aAnim;
     449             :     }
     450             :     else
     451             :     {
     452           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     453             : 
     454           0 :         if( aBmpEx.ReduceColors( nPosterCount, BMP_REDUCE_POPULAR ) )
     455           0 :             aRet = aBmpEx;
     456             :     }
     457             : 
     458           0 :     return aRet;
     459             : }
     460             : 
     461             : // -----------------------
     462             : // - GraphicFilterEmboss -
     463             : // -----------------------
     464             : 
     465           0 : void GraphicFilterEmboss::EmbossControl::MouseButtonDown( const MouseEvent& rEvt )
     466             : {
     467           0 :     const RECT_POINT eOldRP = GetActualRP();
     468             : 
     469           0 :     SvxRectCtl::MouseButtonDown( rEvt );
     470             : 
     471           0 :     if( GetActualRP() != eOldRP )
     472           0 :         maModifyHdl.Call( this );
     473           0 : }
     474             : 
     475             : // -----------------------------------------------------------------------------
     476             : 
     477           0 : GraphicFilterEmboss::GraphicFilterEmboss( Window* pParent, const Graphic& rGraphic,
     478             :                                           RECT_POINT eLightSource ) :
     479           0 :     GraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_EMBOSS ), rGraphic ),
     480           0 :     maFtLight       ( this, CUI_RES( DLG_FILTEREMBOSS_FT_LIGHT ) ),
     481           0 :     maCtlLight      ( this, CUI_RES( DLG_FILTEREMBOSS_CTL_LIGHT ), eLightSource )
     482             : {
     483           0 :     FreeResource();
     484             : 
     485           0 :     maCtlLight.SetModifyHdl( GetModifyHdl() );
     486           0 :     maCtlLight.GrabFocus();
     487           0 : }
     488             : 
     489             : // -----------------------------------------------------------------------------
     490             : 
     491           0 : GraphicFilterEmboss::~GraphicFilterEmboss()
     492             : {
     493           0 : }
     494             : 
     495             : // -----------------------------------------------------------------------------
     496             : 
     497           0 : Graphic GraphicFilterEmboss::GetFilteredGraphic( const Graphic& rGraphic,
     498             :                                                  double /*fScaleX*/, double /*fScaleY*/ )
     499             : {
     500           0 :     Graphic aRet;
     501             :     sal_uInt16  nAzim, nElev;
     502             : 
     503           0 :     switch( maCtlLight.GetActualRP() )
     504             :     {
     505             :         default:       OSL_FAIL("svx::GraphicFilterEmboss::GetFilteredGraphic(), unknown Reference Point!" );
     506           0 :         case( RP_LT ): nAzim = 4500,    nElev = 4500; break;
     507           0 :         case( RP_MT ): nAzim = 9000,    nElev = 4500; break;
     508           0 :         case( RP_RT ): nAzim = 13500,   nElev = 4500; break;
     509           0 :         case( RP_LM ): nAzim = 0,       nElev = 4500; break;
     510           0 :         case( RP_MM ): nAzim = 0,       nElev = 9000; break;
     511           0 :         case( RP_RM ): nAzim = 18000,   nElev = 4500; break;
     512           0 :         case( RP_LB ): nAzim = 31500,   nElev = 4500; break;
     513           0 :         case( RP_MB ): nAzim = 27000,   nElev = 4500; break;
     514           0 :         case( RP_RB ): nAzim = 22500,   nElev = 4500; break;
     515             :     }
     516             : 
     517           0 :     BmpFilterParam aParam( nAzim, nElev );
     518             : 
     519           0 :     if( rGraphic.IsAnimated() )
     520             :     {
     521           0 :         Animation aAnim( rGraphic.GetAnimation() );
     522             : 
     523           0 :         if( aAnim.Filter( BMP_FILTER_EMBOSS_GREY, &aParam ) )
     524           0 :             aRet = aAnim;
     525             :     }
     526             :     else
     527             :     {
     528           0 :         BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
     529             : 
     530           0 :         if( aBmpEx.Filter( BMP_FILTER_EMBOSS_GREY, &aParam ) )
     531           0 :             aRet = aBmpEx;
     532             :     }
     533             : 
     534           0 :     return aRet;
     535           3 : }
     536             : 
     537             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10