diff -r 000000000000 -r ca70ae20a155 src/ext/amaretto/topwindow/inc/topwindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ext/amaretto/topwindow/inc/topwindow.h Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,102 @@ +/** + * ==================================================================== + * topwindow.h + * + * Copyright (c) 2006 Nokia Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +#include "Python.h" +#include "symbian_python_ext_util.h" + +#include + + +// white non-transparent background. +#define DEFAULT_BG_COLOR 0xffffffff + + +/* + * Helper class for storing images. + */ +#ifndef EKA2 +class CImageData : public CBase +#else +NONSHARABLE_CLASS(CImageData) : public CBase +#endif +{ + private: + TRect iRect; + PyObject* iImageObj; + CFbsBitmap* iBitmap; + public: + static CImageData* NewL(PyObject* aImageObj, TRect& aRect); + CImageData(PyObject* aImageObj, TRect& aRect); + virtual ~CImageData(); + // Draw the image if the drawArea and iRect intersect. + void Draw(CWindowGc* aGc, TRect& aDrawArea); + TRect Rect(); +}; + + +#ifndef EKA2 +class CTopWindow : public CActive +#else +NONSHARABLE_CLASS(CTopWindow) : public CActive +#endif +{ + public: + virtual ~CTopWindow(); + static CTopWindow* NewL(); + void ShowL(); + void HideL(); + void SetSize(TSize& aSize); + TSize Size(); + TSize MaxSize(); + void SetPosition(TPoint& aPos); + TUint PutImageL(PyObject* aBitmapObj, TRect& aRect); + TInt RemoveImage(TUint aKey); + void SetCornerType(TInt aCornerType); + void SetShadow(TInt aShadow); + void SetBgColor(TRgb& aRgb); + void SetFocus(TBool aFocus); + void SetFading(TInt aFading); + void RunL(); + void DoCancel(); + void Start(); + void Flush(); // Sends all pending commands in the buffer to the window server. + // Normally this is not needed. + void DoRedraw(); // Causes the window to get a redraw message. + void DoRedraw(TRect& aRect); // Causes the window to get a redraw message + // concerning the specified area. + + + RWindow* RWindowPtr(); + RWsSession* RWsSessionPtr(); + RWindowGroup* RWindowGroupPtr(); + CWsScreenDevice* ScreenDevicePtr(); + private: + void Redraw(TWsRedrawEvent* aRedrawEvent=NULL); + void ConstructL(); + CTopWindow(); + RWsSession* iSession; + RWindowGroup* iWinGroup; + RWindow* iWindow; + CWsScreenDevice* iScrDevice; + CWindowGc* iGc; + TWsRedrawEvent iRedrawEvent; + RPointerArray iImages; +}; +