--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/plugins/ResizePlugin/src/ImageEditorResizePlugin.cpp Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "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:
+* Ixonos Plc
+*
+* Description:
+* Resize plugin plugin base class.
+*
+*/
+
+
+
+/// INCLUDES
+#include <resize.mbg>
+#include <resize.rsg>
+#include <aknutils.h>
+#include <aknnotewrappers.h>
+#include <ConeResLoader.h>
+#include <stringloader.h>
+#include "ImageEditorResizePlugin.h"
+#include "ImageEditorPluginBaseDefs.h"
+#include "ResizeControl.h"
+#include "SystemParameters.h"
+
+/// CONSTANTS
+_LIT (KPgnResourceFile, "resize.rsc");
+
+//=============================================================================
+EXPORT_C CImageEditorPluginBase * CreateImageEditorPlugin ()
+ {
+ CImageEditorResizePlugin * plugin = new (ELeave) CImageEditorResizePlugin;
+ CleanupStack::PushL(plugin);
+ plugin->ConstructL();
+ CleanupStack::Pop(); // plugin
+ return plugin;
+ }
+
+//=============================================================================
+CImageEditorResizePlugin::CImageEditorResizePlugin () :
+ CImageEditorPluginBase()
+ {
+
+ }
+
+//=============================================================================
+void CImageEditorResizePlugin::ConstructL ()
+ {
+ CImageEditorPluginBase::ConstructL (KPgnResourcePath, KPgnResourceFile);
+ }
+
+//=============================================================================
+CImageEditorResizePlugin::~CImageEditorResizePlugin ()
+ {
+ ReleasePlugin();
+ iSysPars = NULL;
+ iControl = NULL;
+ }
+
+//=============================================================================
+TInt CImageEditorResizePlugin::SetProperty (
+ TInt aPropertyId,
+ TDesC & aPropertyValue
+ )
+{
+
+ TLex parser;
+
+ // Copy data
+ switch (aPropertyId)
+ {
+ case KCapSystemParameters:
+ {
+ parser.Assign (aPropertyValue);
+ TInt tempval = 0;
+ parser.Val (tempval);
+ iSysPars = (CSystemParameters *)tempval;
+ return KErrNone;
+ }
+ default:
+ {
+ return CImageEditorPluginBase::SetProperty (aPropertyId, aPropertyValue);
+ }
+ }
+}
+
+//=============================================================================
+TInt CImageEditorResizePlugin::GetProperty (
+ TInt aPropertyId,
+ TDes & aPropertyValue
+ )
+{
+ // Clear buffer
+ aPropertyValue.Zero();
+
+ // Copy data
+ switch (aPropertyId)
+ {
+ case KCapGlobalZoomDisabled:
+ {
+ aPropertyValue.AppendNum ( (TInt)ETrue );
+ return KErrNone;
+ }
+ default:
+ {
+ return CImageEditorPluginBase::GetProperty (aPropertyId, aPropertyValue);
+ }
+ }
+}
+
+//=============================================================================
+TInt CImageEditorResizePlugin::InitPluginL (
+ const TRect & aRect,
+ CCoeControl * aParent,
+ CCoeControl* & aPluginControl
+ )
+ {
+ ReleasePlugin();
+
+ // Store image size
+ TInt width =
+ (iSysPars->ViewPortRect().iBr.iX -
+ iSysPars->ViewPortRect().iTl.iX);
+ TInt height =
+ (iSysPars->ViewPortRect().iBr.iY -
+ iSysPars->ViewPortRect().iTl.iY);
+ TInt origSize = 0;
+ // Landscape
+ if (height < width)
+ {
+ origSize = (TInt)(iSysPars->Scale() * width + 0.5);
+ }
+ else
+ {
+ origSize = (TInt)(iSysPars->Scale() * height + 0.5);
+ }
+
+#ifdef RESIZE_CIF_SIZES_SUPPORTED
+ const TInt KMinSize(128);
+#else
+ const TInt KMinSize(320);
+#endif
+
+ if (origSize <= KMinSize)
+ {
+
+ // Read resource
+ TFileName resourcefile;
+ resourcefile.Append(KPgnResourcePath);
+ resourcefile.Append(KPgnResourceFile);
+ User::LeaveIfError( CompleteWithAppPath( resourcefile ) );
+
+ // Get reference to application file session
+ RFs & fs = CEikonEnv::Static()->FsSession();
+
+ // Implementation of RConeResourceLoader uses BaflUtils::NearestLanguageFile
+ // to search for a localised resource in proper search order
+ RConeResourceLoader resLoader( *CEikonEnv::Static() );
+ resLoader.OpenL ( resourcefile );
+ CleanupClosePushL(resLoader);
+
+ TBuf<256> readbuf;
+ CEikonEnv::Static()->ReadResourceAsDes16L(readbuf, R_SIE_TOO_SMALL_TO_RESIZE);
+ CleanupStack::PopAndDestroy(); // resLoader
+
+ CAknInformationNote* infoNote = new( ELeave ) CAknInformationNote( ETrue );
+ infoNote->ExecuteLD( readbuf ); // ignore return value, not used
+
+ return KErrNotSupported;
+ }
+
+ iControl = CResizeControl::NewL (aRect, aParent);
+ ((CResizeControl *)iControl)->SetSystemParameters (iSysPars, this);
+ aPluginControl = iControl;
+
+ return KErrNone;
+ }
+
+//=============================================================================
+void CImageEditorResizePlugin::ProcessImageL (CEditorImage * /*aImage*/ )
+ {
+ // Own image processing functionality here
+ }
+
+//=============================================================================
+void CImageEditorResizePlugin::ReleasePlugin()
+ {
+ delete iControl;
+ iControl = NULL;
+ }
+
+void CImageEditorResizePlugin::ShowPopupNote ()
+ {
+ ((CResizeControl *)iControl)->ShowPopupNote();
+ }
+
+// End of File
+