00001 /* 00002 * Copyright © 2008 Nokia Corporation. 00003 */ 00004 00005 // INCLUDE FILES 00006 #include <aknutils.h> // Fonts 00007 #include <w32std.h> // key codes and events 00008 #include "AudioStreamView.h" 00009 00010 #include <TXTRICH.H> 00011 00012 00013 const TUint KNumberOfLines = 0; 00014 const TUint KTextLimit = 0; 00015 00016 00017 CAudioStreamView* CAudioStreamView::NewL(const TRect & aRect, 00018 CAudioStreamEngine* aEngine) 00019 { 00020 CAudioStreamView* self = NewLC(aRect, aEngine); 00021 CleanupStack::Pop(self); 00022 return self; 00023 } 00024 00025 CAudioStreamView* CAudioStreamView::NewLC(const TRect & aRect, 00026 CAudioStreamEngine* aEngine) 00027 { 00028 CAudioStreamView* self = new (ELeave) CAudioStreamView(); 00029 CleanupStack::PushL(self); 00030 self->ConstructL(aRect, aEngine); 00031 return self; 00032 } 00033 00034 // ---------------------------------------------------------------------------- 00035 // CAudioStreamView::ConstructL(const TRect& aRect, 00036 // CAudioStreamEngine* aEngine) 00037 // 00038 // Standard EPOC 2nd phase constructor 00039 // ---------------------------------------------------------------------------- 00040 void CAudioStreamView::ConstructL(const TRect& aRect, 00041 CAudioStreamEngine* aEngine) 00042 { 00043 iEngine = aEngine; 00044 // create new window, 00045 CreateWindowL(); 00046 00047 // Create a rich text editor into which information can be logged 00048 iLogComponent = new(ELeave) CEikRichTextEditor; 00049 iLogComponent->ConstructL(this, KNumberOfLines, KTextLimit, 00050 CEikEdwin::EReadOnly | CEikEdwin::EAvkonDisableCursor); 00051 iLogComponent->CreateScrollBarFrameL()->SetScrollBarVisibilityL( 00052 CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOn); 00053 00054 // Set font 00055 #ifdef __WINS__ 00056 _LIT(KFontArial,"Arial"); 00057 TFontSpec MyeFontSpec (KFontArial, 8*10); 00058 MyeFontSpec.iTypeface.SetIsProportional(ETrue); 00059 // Set font height 00060 TCharFormatMask charFormatMask; 00061 charFormatMask.SetAttrib(EAttFontHeight); 00062 TCharFormat charFormat(MyeFontSpec.iTypeface.iName, MyeFontSpec.iHeight); 00063 charFormat.iFontPresentation.iTextColor=KRgbBlack; 00064 charFormat.iFontSpec.iHeight=100; 00065 // apply formatting 00066 CRichText* text = iLogComponent->RichText(); 00067 text->ApplyCharFormatL(charFormat,charFormatMask,0,1); 00068 #endif 00069 00070 SetRect(aRect); 00071 _LIT(KInfo, "Audio streaming example"); 00072 ShowMessageL(KInfo); 00073 00074 // activate window 00075 ActivateL(); 00076 00077 // SetRect() is called again after ActivateL() to that ScrollBarFrame widht 00078 // can be readed in SizeChanged() 00079 SetRect(aRect); 00080 } 00081 00082 // ---------------------------------------------------------------------------- 00083 // CAudioStreamView::CAudioStreamView() 00084 // 00085 // constructor 00086 // ---------------------------------------------------------------------------- 00087 CAudioStreamView::CAudioStreamView() 00088 { 00089 } 00090 00091 // ---------------------------------------------------------------------------- 00092 // CAudioStreamView::~CAudioStreamView() 00093 // 00094 // destructor 00095 // ---------------------------------------------------------------------------- 00096 CAudioStreamView::~CAudioStreamView() 00097 { 00098 delete iLogComponent; 00099 } 00100 00101 // ---------------------------------------------------------------------------- 00102 // CAudioStreamView::SizeChanged() 00103 // 00104 // called by framework when the view size is changed 00105 // ---------------------------------------------------------------------------- 00106 void CAudioStreamView::SizeChanged() 00107 { 00108 TRect rect = Rect(); 00109 00110 TInt scrollbarWidth = iLogComponent->ScrollBarFrame()->ScrollBarBreadth(CEikScrollBar::EVertical); 00111 // If scrollbars are not drawn yet, the width remains zero. In this 00112 // case, an intentionally magical number is returned. 00113 if (scrollbarWidth == 0) 00114 { 00115 scrollbarWidth = 8; 00116 } 00117 iLogComponent->SetExtent(TPoint(0, 0), 00118 TSize(rect.Width() - scrollbarWidth, rect.Height())); 00119 DrawNow(); 00120 } 00121 00122 // --------------------------------------------------------- 00123 // CAudioStreamView::HandleResourceChange() 00124 // Called by framework when resource is changed. 00125 // --------------------------------------------------------- 00126 // 00127 void CAudioStreamView::HandleResourceChange(TInt aType) 00128 { 00129 CCoeControl::HandleResourceChange(aType); 00130 if ( aType==KEikDynamicLayoutVariantSwitch ) 00131 { 00132 TRect rect; 00133 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect); 00134 SetRect(rect); 00135 } 00136 } 00137 00138 00139 // ---------------------------------------------------------------------------- 00140 // CAudioStreamView::CountComponentControls() const 00141 // ---------------------------------------------------------------------------- 00142 TInt CAudioStreamView::CountComponentControls() const 00143 { 00144 return 1; // return number of controls inside this container 00145 } 00146 00147 // ---------------------------------------------------------------------------- 00148 // CAudioStreamView::ComponentControl(TInt aIndex) const 00149 // ---------------------------------------------------------------------------- 00150 CCoeControl* CAudioStreamView::ComponentControl(TInt aIndex) const 00151 { 00152 switch ( aIndex ) 00153 { 00154 case 0: 00155 return iLogComponent; 00156 default: 00157 return NULL; 00158 } 00159 } 00160 00161 00162 // ---------------------------------------------------------------------------- 00163 // CAudioStreamView::Draw(const TRect& aRect) const 00164 // ---------------------------------------------------------------------------- 00165 void CAudioStreamView::Draw( const TRect& aRect ) const 00166 { 00167 CWindowGc& gc = SystemGc(); 00168 gc.SetPenStyle( CGraphicsContext::ENullPen ); 00169 gc.SetBrushColor( KRgbWhite ); 00170 gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); 00171 gc.DrawRect( aRect ); 00172 } 00173 00174 // ---------------------------------------------------------------------------- 00175 // CAudioStreamView::ShowMessageL(const TDesC& aMsg) 00176 // 00177 // displays status messages to user 00178 // ---------------------------------------------------------------------------- 00179 void CAudioStreamView::ShowMessageL(const TDesC& aMsg) 00180 { 00181 CPlainText* text = iLogComponent->Text(); 00182 text->InsertL(text->DocumentLength(), aMsg); 00183 text->InsertL(text->DocumentLength(), CEditableText::ELineBreak); 00184 iLogComponent->HandleTextChangedL(); 00185 // Keep displaying the bottom of the screen 00186 iLogComponent->MoveCursorL(TCursorPosition::EFPageDown, EFalse); 00187 DrawNow(); 00188 } 00189 00190 00191 // End of File 00192 00193
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.