00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 00004 ** All rights reserved. 00005 ** Contact: Nokia Corporation 00006 ** 00007 ** 00008 ** $QT_BEGIN_LICENSE:BSD$ 00009 ** You may use this file under the terms of the BSD license as follows: 00010 ** 00011 ** "Redistribution and use in source and binary forms, with or without 00012 ** modification, are permitted provided that the following conditions are 00013 ** met: 00014 ** * Redistributions of source code must retain the above copyright 00015 ** notice, this list of conditions and the following disclaimer. 00016 ** * Redistributions in binary form must reproduce the above copyright 00017 ** notice, this list of conditions and the following disclaimer in 00018 ** the documentation and/or other materials provided with the 00019 ** distribution. 00020 ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor 00021 ** the names of its contributors may be used to endorse or promote 00022 ** products derived from this software without specific prior written 00023 ** permission. 00024 ** 00025 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00026 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00027 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00028 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00029 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00030 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00031 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00032 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00033 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00034 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00035 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 00036 ** $QT_END_LICENSE$ 00037 ** Description: videocontainer.cpp, source file for video display container. 00038 ****************************************************************************/ 00039 00040 00041 #include "videocontainer.h" 00042 00046 CVideoContainer::CVideoContainer() 00047 { 00048 } 00049 00050 00055 CVideoContainer* CVideoContainer::NewL() 00056 { 00057 CVideoContainer* self = CVideoContainer::NewLC(); 00058 return self; 00059 } 00060 00061 CVideoContainer* CVideoContainer::NewLC() 00062 { 00063 CVideoContainer* self = new(ELeave) CVideoContainer(); 00064 CleanupStack::PushL(self); 00065 self->ConstructL(); 00066 CleanupStack::Pop(); 00067 return self; 00068 } 00072 CVideoContainer::~CVideoContainer() 00073 { 00074 } 00075 00076 00080 void CVideoContainer::ConstructL() 00081 { 00082 // Creates a window for this application view 00083 CreateWindowL(); 00084 00085 // Sets the windows size 00086 TRect displayRect(TPoint(0,120),TSize(400,400)); 00087 SetRect(displayRect); 00088 iVideoRect = displayRect; 00089 00090 Window().SetRequiredDisplayMode(EColor16MA); 00091 TRgb backgroundColour = KRgbWhite; 00092 if( KErrNone == Window().SetTransparencyAlphaChannel() ) 00093 { 00094 // we now have a semi-transparent window, 00095 // so we have to not clear the window region in an 00096 // opaque colour before drawing it each time; 00097 // 0 alpha is completely transparent, 00098 // 255 alpha is completely opaque 00099 backgroundColour.SetAlpha(0); 00100 } 00101 Window().SetBackgroundColor(backgroundColour); 00102 ActivateL(); 00103 } 00104 00108 void CVideoContainer::Draw(const TRect& /*aRect*/) const 00109 { 00110 // Get the standard graphics context 00111 CWindowGc& gc = SystemGc(); 00112 00113 // Gets the control's extent 00114 TRect drawRect( Rect() ); 00115 00116 // Clears the screen 00117 gc.Clear( drawRect ); 00118 00119 } 00120 00126 void CVideoContainer::SizeChanged() 00127 { 00128 DrawNow(); 00129 } 00130 00131 00132 // End of file