uigraphics/AknIcon/srvinc/AknIconSrvDef.h
changeset 0 05e9090e2422
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/srvinc/AknIconSrvDef.h	Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   
+*
+*/
+
+
+
+
+#ifndef AKN_ICON_SRV_DEF_H
+#define AKN_ICON_SRV_DEF_H
+
+// INCLUDES
+#include <e32std.h>
+#include <gdi.h>
+#include <AknIconUtils.h>
+#include "AknIconTraces.h"
+
+// FORWARD DECLARATIONS
+class CBitwiseBitmap;
+class CAknIconSrvIconItem;
+class CAknIconDataItem;
+
+// CONSTANTS
+
+const TUint32 KColorNotDefined = 0xFF000000;
+
+_LIT( KAknIconDefaultDir, "z:\\resource\\apps\\" );
+const TInt KAknIconDefaultDirLength = 17;
+_LIT( KDriveZ, "Z:" );
+const TInt KDriveLength = 2;
+
+// DATA STRUCTURES
+
+struct TAknIconSrvReturnData
+    {
+    // bitmap
+    TInt iBitmapHandle;
+    // mask
+    TInt iMaskHandle;
+    // content dimensions
+    TAknContentDimensions iContentDimensions;
+    };
+
+// Init. data moved from server side to client side when session is connected.
+struct TAknIconInitData
+    {
+    // configuration from resource file
+    TInt iCompression;
+
+    TDisplayMode iIconMode;
+    TDisplayMode iIconMaskMode;
+
+    TDisplayMode iPhotoMode;
+
+    TDisplayMode iVideoMode;
+
+    TDisplayMode iOffscreenMode;
+    TDisplayMode iOffscreenMaskMode;
+    };
+
+struct TAknIconParams
+    {
+    enum TFlags
+        {
+        EFlagUsesDefaultIconDir  = 0x0001,
+        EFlagMbmIcon             = 0x0002,
+        EFlagExcludeFromCache    = 0x0004, // do not cache dynamically
+        EFlagDisableCompression  = 0x0008  // disable bitmap compression
+        };
+        
+    TAknIconParams::TAknIconParams():iFlags(0)
+        {        
+        }
+
+    TBool IsDefaultIconDirUsed() const
+        {
+        return iFlags & EFlagUsesDefaultIconDir;
+        }
+        
+    void SetDefaultIconDirUsed()
+        {
+        iFlags |= EFlagUsesDefaultIconDir;
+        }
+
+    TBool IsMbmIcon() const
+        {
+        return iFlags & EFlagMbmIcon;
+        }
+        
+    void SetMbmIcon()
+        {
+        iFlags |= EFlagMbmIcon;
+        }
+        
+   TBool IsExcludedFromCache() const
+        {
+        return iFlags & EFlagExcludeFromCache;
+        } 
+               
+    void ExcludeFromCache()
+        {
+        iFlags |= EFlagExcludeFromCache;
+        }
+        
+    TBool IsCompressionDisabled() const
+        {
+        return iFlags & EFlagDisableCompression;
+        }   
+
+    void DisableCompression()
+        {
+        iFlags |= EFlagDisableCompression;
+        }
+                        
+#ifdef __AKNICON_TRACES
+    void PrintInfo()
+        {
+        RDebug::Print( _L("AknIcon: %x TAknIconParams info begin"), this);  
+        RDebug::Print( _L("AknIcon: %x TAknIconParams iFileName=%S"), this,&iFileName);    
+        RDebug::Print( _L("AknIcon: %x TAknIconParams iBitmapId=%d, iMaskId=%d"), this, iBitmapId, iMaskId);      
+        RDebug::Print( _L("AknIcon: %x TAknIconParams iSize=(%d,%d), iMode=%d, iRotationAngle=%d"), this, iSize.iWidth, iSize.iHeight, iMode, iRotationAngle);              
+        RDebug::Print( _L("AknIcon: %x TAknIconParams iColor=%d, iFile=%x, iFlags=%x"), this, iColor, iFlags);              
+        RDebug::Print( _L("AknIcon: %x TAknIconParams info end"), this);    
+        }    
+#endif           
+                       
+    // Note! Default icon dir must always be excluded from this file name!
+    TFileName iFileName;
+    TInt iBitmapId;
+    TInt iMaskId;
+    TSize iSize;
+    TInt iMode;
+    TInt iRotationAngle;
+    TRgb iColor;
+    
+    // Used when client supplies file handle. This cannot be used directly
+    // on the other side of an IPC boundary. Instead, RFile's "transfer"
+    // and "adopt" methods must be used.
+    RFile iFile;
+    TBool iAppIcon;
+    private:
+    TInt iFlags; // flags
+    };
+
+struct TAknIconSrvSessionIconItem
+    {
+    const CAknIconSrvIconItem* iIcon;
+    TInt iUserCount; // both bitmap and mask increase this
+    
+    static TInt LinearOrder(
+            const TAknIconSrvSessionIconItem& aFirst,
+            const TAknIconSrvSessionIconItem& aSecond ) 
+        {
+        return reinterpret_cast<TInt>(aFirst.iIcon)-
+               reinterpret_cast<TInt>(aSecond.iIcon);
+        }
+    };
+
+struct TAknIconSrvSessionPreservedItem
+    {
+    const CAknIconDataItem* iDataItem;
+    TInt iUserCount;
+    };
+
+#endif // AKN_ICON_SRV_DEF_H
+
+// End of File