00001 /* 00002 * Copyright � 2008 Nokia Corporation. 00003 */ 00004 00005 // INCLUDES 00006 #include <aknviewappui.h> 00007 #include <aknconsts.h> 00008 #include <aknutils.h> // AknLayoutUtils 00009 #include <smsexample.rsg> 00010 00011 #include "SMSExampleRTEContainer.h" 00012 #include "SMSExampleLogView.h" 00013 #include "SmsExample.hrh" 00014 00015 // ---------------------------------------------------------------------------- 00016 // CLogView::NewL() 00017 // 00018 // Symbian OS 2 phase constructor. 00019 // ---------------------------------------------------------------------------- 00020 CLogView* CLogView::NewL() 00021 { 00022 CLogView* self = CLogView::NewLC(); 00023 CleanupStack::Pop(self); 00024 return self; 00025 } 00026 00027 // ---------------------------------------------------------------------------- 00028 // CLogView::NewLC() 00029 // 00030 // Symbian OS 2 phase constructor. 00031 // ---------------------------------------------------------------------------- 00032 CLogView* CLogView::NewLC() 00033 { 00034 CLogView* self = new (ELeave) CLogView(); 00035 CleanupStack::PushL(self); 00036 self->ConstructL(); 00037 return self; 00038 } 00039 00040 // ---------------------------------------------------------------------------- 00041 // CLogView::CLogView() 00042 // 00043 // Default constructor 00044 // ---------------------------------------------------------------------------- 00045 CLogView::CLogView() 00046 { 00047 } 00048 00049 // ---------------------------------------------------------------------------- 00050 // CLogView::~CLogView() 00051 // 00052 // Destructor 00053 // ---------------------------------------------------------------------------- 00054 CLogView::~CLogView() 00055 { 00056 delete iContainer; 00057 iContainer = NULL; 00058 } 00059 00060 // ---------------------------------------------------------------------------- 00061 // CLogView::ConstructL() 00062 // 00063 // Symbian OS 2 phase constructor. 00064 // ---------------------------------------------------------------------------- 00065 void CLogView::ConstructL() 00066 { 00067 BaseConstructL(R_RICHTEXTEDITOR_MULTIVIEWS_VIEW); 00068 00069 TRect rect; 00070 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect); 00071 iContainer = CSMSExampleRTEContainer::NewL(rect); 00072 iContainer->SetMopParent( this ); 00073 } 00074 00075 // ---------------------------------------------------------------------------- 00076 // CLogView::Id() const 00077 // 00078 // Id of the view. 00079 // ---------------------------------------------------------------------------- 00080 TUid CLogView::Id() const 00081 { 00082 return TUid::Uid(ELogViewId); 00083 } 00084 00085 00086 // ---------------------------------------------------------------------------- 00087 // CLogView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, 00088 // TUid /*aCustomMessageId*/, 00089 // const TDesC8& /*aCustomMessage*/) 00090 // 00091 // Activate this view (make it visible again). 00092 // ---------------------------------------------------------------------------- 00093 void CLogView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, 00094 TUid /*aCustomMessageId*/, 00095 const TDesC8& /*aCustomMessage*/) 00096 { 00097 AppUi()->AddToStackL(*this, iContainer); 00098 iContainer->MakeVisible(ETrue); 00099 } 00100 00101 00102 // ---------------------------------------------------------------------------- 00103 // CLogView::DoDeactivate() 00104 // 00105 // DeActivate this view (Hide the view). Do not destroy it. 00106 // ---------------------------------------------------------------------------- 00107 void CLogView::DoDeactivate() 00108 { 00109 00110 if (iContainer) 00111 { 00112 iContainer->MakeVisible(EFalse); 00113 AppUi()->RemoveFromStack(iContainer); 00114 00115 } 00116 } 00117 00118 // ---------------------------------------------------------------------------- 00119 // CLogView::LogEventBeginningL() 00120 // 00121 // Begin a log event. 00122 // ---------------------------------------------------------------------------- 00123 void CLogView::LogEventBeginningL() 00124 { 00125 iContainer->DrawLineL(); 00126 TBuf<KMaxTimeFormatSpec+KMaxTimeFormatSpec> time; 00127 TTime now; 00128 now.HomeTime(); // Current time 00129 now.FormatL(time,TTimeFormatSpec()); 00130 iContainer->DrawTextL( time ); 00131 } 00132 00133 // ---------------------------------------------------------------------------- 00134 // CLogView::DrawUnderlinedTextL( const TDesC& aText) 00135 // 00136 // Draw underlined text. 00137 // ---------------------------------------------------------------------------- 00138 void CLogView::DrawUnderlinedTextL( const TDesC& aText) 00139 { 00140 iContainer->DrawUnderlinedTextL(aText); 00141 } 00142 00143 // ---------------------------------------------------------------------------- 00144 // CLogView::DrawTextWithoutCarriageL( const TDesC& aText ) 00145 // 00146 // Draw text without carriage. 00147 // ---------------------------------------------------------------------------- 00148 void CLogView::DrawTextWithoutCarriageL( const TDesC& aText ) 00149 { 00150 iContainer->DrawTextWithoutCarriageL(aText); 00151 } 00152 00153 // ---------------------------------------------------------------------------- 00154 // CLogView::HandleCommandL(TInt aCommand) 00155 // 00156 // Handle view commands. Forward command handling to AppUi 00157 // ---------------------------------------------------------------------------- 00158 void CLogView::HandleCommandL(TInt aCommand) 00159 { 00160 AppUi()->HandleCommandL(aCommand); 00161 } 00162 00163 // ---------------------------------------------------------------------------- 00164 // CLogView::DrawTextL( const TDesC& aText ) 00165 // 00166 // Draw into log. 00167 // ---------------------------------------------------------------------------- 00168 void CLogView::DrawTextL( const TDesC& aText ) 00169 { 00170 iContainer->DrawTextL( aText ); 00171 } 00172 00173 // ---------------------------------------------------------------------------- 00174 // CLogView::AddCarriageReturnL() 00175 // 00176 // Add line break into log. 00177 // ---------------------------------------------------------------------------- 00178 void CLogView::AddCarriageReturnL() 00179 { 00180 iContainer->AddCarriageReturnL(); 00181 } 00182 00183 void CLogView::SizeChanged() 00184 { 00185 if( iContainer ) 00186 iContainer->SetRect( ClientRect() ); 00187 } 00188 00189 // End of File