uiacceltk/hitchcock/Client/src/alfframebrush.cpp
changeset 0 15bf7259bb7c
equal deleted inserted replaced
-1:000000000000 0:15bf7259bb7c
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Frame brush
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #include "alf/alfframebrush.h"
       
    21 #include "alf/alfenv.h"
       
    22 #include "alf/alfgencomponent.h"
       
    23 #include "alf/alfconstants.h"
       
    24 #include "alflogger.h"
       
    25 #include "alfskinnableimage.h"
       
    26 
       
    27 const TInt KNumberOfFrameParts = 9;
       
    28 
       
    29 // Private data structure
       
    30 struct CAlfFrameBrush::TFrameBrushPrivateData
       
    31     {
       
    32     CAlfSkinnableImage* iImage;
       
    33     CAlfSkinnableImage* iFramePartImages[KNumberOfFrameParts];
       
    34     };
       
    35 
       
    36 
       
    37 // ======== MEMBER FUNCTIONS ========
       
    38 
       
    39 // ---------------------------------------------------------------------------
       
    40 // Constructor
       
    41 // ---------------------------------------------------------------------------
       
    42 //
       
    43 CAlfFrameBrush::CAlfFrameBrush()
       
    44     : CAlfBrush()
       
    45     {
       
    46     }
       
    47 
       
    48 // ---------------------------------------------------------------------------
       
    49 // ConstructL
       
    50 // ---------------------------------------------------------------------------
       
    51 //
       
    52 void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, 
       
    53     const TAlfXYMetric& aEdgeOffset)
       
    54     {
       
    55     iFrameBrushData = new (ELeave) TFrameBrushPrivateData;
       
    56     iFrameBrushData->iImage = NULL;
       
    57     Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts));
       
    58 
       
    59     iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv);       
       
    60     
       
    61     for (TInt i=0; i<KNumberOfFrameParts;i++)
       
    62         {
       
    63         iFrameBrushData->iFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); 
       
    64         }
       
    65     
       
    66     TAlfFrameBrushMetricParams params;
       
    67     params.iInnerRect = TRect(0,0,0,0);
       
    68     params.iOuterRect = TRect(0,0,0,0);
       
    69     params.iFrameIID = aIID;
       
    70     params.iEdgeOffset = aEdgeOffset;
       
    71     
       
    72     TPckgC<TAlfFrameBrushMetricParams> paramsPckg(params);
       
    73         
       
    74     CAlfBrush::ConstructL(
       
    75         aEnv,
       
    76         EAlfFrameBrushCreateMetric,
       
    77         0,
       
    78         paramsPckg
       
    79         );
       
    80     }
       
    81 
       
    82 // ---------------------------------------------------------------------------
       
    83 // ConstructL
       
    84 // ---------------------------------------------------------------------------
       
    85 //
       
    86 void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, 
       
    87     TInt aEdgeOffsetX, TInt aEdgeOffsetY)
       
    88     {
       
    89     iFrameBrushData = new (ELeave) TFrameBrushPrivateData;
       
    90     iFrameBrushData->iImage = NULL;
       
    91     Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts));
       
    92 
       
    93     iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv);       
       
    94 
       
    95     for (TInt i=0; i<KNumberOfFrameParts;i++)
       
    96         {
       
    97         iFrameBrushData->iFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); 
       
    98         }
       
    99     
       
   100     TAlfFrameBrushParams params;
       
   101     params.iInnerRect = TRect(0,0,0,0);
       
   102     params.iOuterRect = TRect(0,0,0,0);
       
   103     params.iFrameIID = aIID;
       
   104     params.iEdgeOffsetX = aEdgeOffsetX;
       
   105     params.iEdgeOffsetY = aEdgeOffsetY;
       
   106     
       
   107     TPckgC<TAlfFrameBrushParams> paramsPckg(params);
       
   108         
       
   109     CAlfBrush::ConstructL(
       
   110         aEnv,
       
   111         EAlfFrameBrushCreate,
       
   112         0,
       
   113         paramsPckg
       
   114         );
       
   115     }
       
   116 
       
   117 // ---------------------------------------------------------------------------
       
   118 // ConstructL
       
   119 // ---------------------------------------------------------------------------
       
   120 //
       
   121 void CAlfFrameBrush::ConstructL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset)
       
   122     {
       
   123     iFrameBrushData = new (ELeave) TFrameBrushPrivateData;
       
   124     iFrameBrushData->iImage = NULL;
       
   125     Mem::FillZ(iFrameBrushData->iFramePartImages, (sizeof(TInt)*KNumberOfFrameParts));
       
   126 
       
   127     iFrameBrushData->iImage = new (ELeave) CAlfSkinnableImage(&aEnv);       
       
   128     for (TInt i=0; i<KNumberOfFrameParts;i++)
       
   129         {
       
   130         iFrameBrushData->iFramePartImages[i] = new (ELeave) CAlfSkinnableImage(&aEnv); 
       
   131         }
       
   132     
       
   133     iFrameBrushData->iImage->SetImage(aImage); // This texturizes skin graphics if needed
       
   134 
       
   135     TAlfFrameBrushImageParams params;
       
   136     params.iEdgeOffset = aEdgeOffset;
       
   137     params.iImage = TAlfImageParams(iFrameBrushData->iImage->Image());
       
   138     
       
   139     TPckgC<TAlfFrameBrushImageParams> paramsPckg(params);
       
   140         
       
   141     CAlfBrush::ConstructL(
       
   142         aEnv,
       
   143         EAlfFrameBrushCreateImage,
       
   144         0,
       
   145         paramsPckg
       
   146         );        
       
   147     }
       
   148 
       
   149 // ---------------------------------------------------------------------------
       
   150 // Constructor
       
   151 // ---------------------------------------------------------------------------
       
   152 //
       
   153 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv,
       
   154     const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY)
       
   155     {
       
   156     CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aIID, aEdgeOffsetX, aEdgeOffsetY );
       
   157     CleanupStack::Pop( self );
       
   158     return self;
       
   159     }
       
   160 
       
   161 
       
   162 // ---------------------------------------------------------------------------
       
   163 // Constructor
       
   164 // ---------------------------------------------------------------------------
       
   165 //
       
   166 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, 
       
   167     const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY)
       
   168     {
       
   169     CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush;
       
   170     CleanupStack::PushL( self );
       
   171     self->ConstructL(aEnv, aIID, aEdgeOffsetX, aEdgeOffsetY);
       
   172     return self;
       
   173     }
       
   174 
       
   175 
       
   176 // ---------------------------------------------------------------------------
       
   177 // Constructor
       
   178 // ---------------------------------------------------------------------------
       
   179 //
       
   180 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv,
       
   181     const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset)
       
   182     {
       
   183     CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aIID, aEdgeOffset );
       
   184     CleanupStack::Pop( self );
       
   185     return self;
       
   186     }
       
   187 
       
   188 
       
   189 // ---------------------------------------------------------------------------
       
   190 // Constructor
       
   191 // ---------------------------------------------------------------------------
       
   192 //
       
   193 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, 
       
   194     const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset)
       
   195     {
       
   196     CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush;
       
   197     CleanupStack::PushL( self );
       
   198     self->ConstructL( aEnv, aIID, aEdgeOffset );
       
   199     return self;
       
   200     }
       
   201 
       
   202 // ---------------------------------------------------------------------------
       
   203 // 
       
   204 // ---------------------------------------------------------------------------
       
   205 //
       
   206 EXPORT_C void CAlfFrameBrush::SetFrameRectsL(const TRect& aInnerRect, const TRect& aOuterRect)
       
   207     {
       
   208     TAlfFrameBrushParams params;
       
   209     params.iInnerRect = aInnerRect;
       
   210     params.iOuterRect = aOuterRect;
       
   211 
       
   212     TPckgC<TAlfFrameBrushParams> paramsPckg(params);        
       
   213 
       
   214     TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetFrameRects, paramsPckg );    
       
   215     
       
   216     if ( err )
       
   217         {
       
   218         __ALFLOGSTRING1( "CAlfFrameBrush::SetFrameRectsL ignore error %d", err )
       
   219         }
       
   220         
       
   221     }
       
   222 
       
   223 
       
   224 // ---------------------------------------------------------------------------
       
   225 // Destructor.
       
   226 // ---------------------------------------------------------------------------
       
   227 //
       
   228 CAlfFrameBrush::~CAlfFrameBrush()
       
   229     {
       
   230     if ( iFrameBrushData )
       
   231         {
       
   232         delete iFrameBrushData->iImage;
       
   233         iFrameBrushData->iImage = NULL;    	        
       
   234         
       
   235         for (TInt i=0; i<KNumberOfFrameParts;i++)
       
   236             {
       
   237             delete iFrameBrushData->iFramePartImages[i]; 
       
   238             iFrameBrushData->iFramePartImages[i] = NULL;
       
   239             }        
       
   240         }
       
   241     delete iFrameBrushData;
       
   242     iFrameBrushData = NULL;
       
   243     }
       
   244 
       
   245 // ---------------------------------------------------------------------------
       
   246 // 
       
   247 // ---------------------------------------------------------------------------
       
   248 //
       
   249 EXPORT_C void CAlfFrameBrush::SetEdgeOffset(const TAlfXYMetric& aEdgeOffset)
       
   250     {
       
   251     TPckgC<TAlfXYMetric> paramsPckg(aEdgeOffset);        
       
   252 
       
   253     TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetEdgeOffsetMetric, paramsPckg);    
       
   254     
       
   255     if ( err )
       
   256         {
       
   257         __ALFLOGSTRING1( "CAlfFrameBrush::SetEdgeOffset (TAlfXYMetric) ignore error %d", err )
       
   258         }                        
       
   259     }
       
   260 
       
   261 
       
   262 // ---------------------------------------------------------------------------
       
   263 // 
       
   264 // ---------------------------------------------------------------------------
       
   265 //
       
   266 EXPORT_C void CAlfFrameBrush::SetImage(const TAlfImage& aImage)
       
   267     {
       
   268     iFrameBrushData->iImage->SetImage(aImage); // This texturizes skin graphics if needed
       
   269 
       
   270     TAlfImageParams params = TAlfImageParams(iFrameBrushData->iImage->Image());
       
   271     TPckgC<TAlfImageParams> paramsPckg(params);        
       
   272 
       
   273     TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetImage, paramsPckg );    
       
   274     
       
   275     if ( err )
       
   276         {
       
   277         __ALFLOGSTRING1( "CAlfFrameBrush::SetImage ignore error %d", err )
       
   278         }        
       
   279     }
       
   280 
       
   281 // ---------------------------------------------------------------------------
       
   282 // 
       
   283 // ---------------------------------------------------------------------------
       
   284 //
       
   285 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset)
       
   286     {
       
   287     CAlfFrameBrush* self = CAlfFrameBrush::NewLC( aEnv, aImage, aEdgeOffset );
       
   288     CleanupStack::Pop( self );
       
   289     return self;        
       
   290     }
       
   291     
       
   292 // ---------------------------------------------------------------------------
       
   293 // 
       
   294 // ---------------------------------------------------------------------------
       
   295 //
       
   296 EXPORT_C CAlfFrameBrush* CAlfFrameBrush::NewLC(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset)
       
   297     {
       
   298     CAlfFrameBrush* self = new( ELeave ) CAlfFrameBrush;
       
   299     CleanupStack::PushL( self );
       
   300     self->ConstructL( aEnv, aImage, aEdgeOffset );
       
   301     return self;        
       
   302     }
       
   303     
       
   304 // ---------------------------------------------------------------------------
       
   305 // 
       
   306 // ---------------------------------------------------------------------------
       
   307 //
       
   308 EXPORT_C void CAlfFrameBrush::SetImage(TFrameParts aFramePart, const TAlfImage& aImage)
       
   309     {
       
   310     iFrameBrushData->iFramePartImages[aFramePart]->SetImage(aImage); // This texturizes skin graphics if needed
       
   311 
       
   312     TAlfImageParams imageparams = TAlfImageParams(iFrameBrushData->iFramePartImages[aFramePart]->Image());
       
   313     
       
   314     TAlfFrameBrushFramePartImageParams params;
       
   315     params.iImage = imageparams;
       
   316     params.iFramePart = aFramePart;
       
   317     
       
   318     TPckgC<TAlfFrameBrushFramePartImageParams> paramsPckg(params);        
       
   319 
       
   320     TInt err = Comms()->DoCmdNoReply(EAlfFrameBrushSetFramePartImage, paramsPckg );    
       
   321     
       
   322     if ( err )
       
   323         {
       
   324         __ALFLOGSTRING1( "CAlfFrameBrush::SetImage () ignore error %d", err )
       
   325         }        
       
   326     }
       
   327