--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gstreamer_test_apps/gstplayer/src/RichTextEditor.cpp Tue Aug 31 15:30:33 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the
+* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+* Boston, MA 02111-1307, USA.
+*
+* Description:
+*
+*/
+/*
+* ============================================================================
+* Name : RichTextEditorRTE.cpp
+* Part of : VoIP test application.
+* Description : Utility for outputting formatted text to the display.
+* Version : %version: 2 %
+* ============================================================================
+*/
+
+// INCLUDES
+#include <barsread.h> // TResourceReader
+#include <eikrted.h> // CEikRichTextEditor
+#include <txtrich.h> // CRichText
+#include <gstplayer.rsg>
+#include "RichTextEditor.h"
+
+
+// ----------------------------------------------------------------------------
+// CRichTextEditorRTE::NewL
+// Symbian constructor.
+// ----------------------------------------------------------------------------
+//
+CRichTextEditorRTE* CRichTextEditorRTE::NewL(const CCoeControl& aView)
+ {
+ CRichTextEditorRTE* self = CRichTextEditorRTE::NewLC(aView);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CRichTextEditorRTE::NewLC
+// Symbian constructor with self pointer pushed into cleanup stack.
+// ----------------------------------------------------------------------------
+//
+CRichTextEditorRTE* CRichTextEditorRTE::NewLC(const CCoeControl& aView)
+ {
+ CRichTextEditorRTE* self = new (ELeave) CRichTextEditorRTE;
+ CleanupStack::PushL(self);
+ self->ConstructL(aView);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CRichTextEditorRTE::ConstructL
+// Standard EPOC 2nd phase constructor
+// -----------------------------------------------------------------------------
+//
+void CRichTextEditorRTE::ConstructL(const CCoeControl& aView)
+ {
+ TResourceReader reader;
+ // Construct RichTextEditor from resource
+ iCoeEnv->CreateResourceReaderLC(reader, R_RICHTEXTEDITOR_RICH_TEXT_EDITOR);
+ SetContainerWindowL(aView);
+ ConstructFromResourceL(reader);
+ CleanupStack::PopAndDestroy(); //reader
+ // Sets that the control has keyboard focus
+ SetFocus(ETrue);
+ }
+
+// ----------------------------------------------------------------------------
+// CRichTextEditorRTE::CRichTextEditorRTE
+// constructor
+// ----------------------------------------------------------------------------
+//
+CRichTextEditorRTE::CRichTextEditorRTE(void)
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CRichTextEditorRTE::AddCarriageReturnL
+// Insert one line break at the end of the text.
+// ----------------------------------------------------------------------------
+//
+void CRichTextEditorRTE::AddCarriageReturnL()
+ {
+ CRichText* text = RichText();
+ TInt len = text->DocumentLength();
+ text->InsertL(len, CEditableText::ELineBreak);
+ }
+
+// ----------------------------------------------------------------------------
+// CRichTextEditorRTE::AddTextL
+// Draws text using selected color.
+// ----------------------------------------------------------------------------
+//
+void CRichTextEditorRTE::AddTextL(const TDesC& aText, TRgb aRgb)
+ {
+ CRichText* text = RichText();
+ TInt len = text->DocumentLength();
+
+ // Interested in color
+ iCharacterFormatMask.SetAttrib(EAttColor);
+ // Set it to Black
+ iCharacterFormat.iFontPresentation.iTextColor = aRgb;
+ text->InsertL(len, aText);
+ // Apply formatting
+ text->ApplyCharFormatL(iCharacterFormat,
+ iCharacterFormatMask,
+ len,
+ aText.Length());
+ AddCarriageReturnL();
+ HandleTextChangedL();
+
+ // Scroll pages to always display at the bottom of the screen
+ for (TInt i = len + aText.Length(); (i / 50) > 1; i -= 50)
+ {
+ MoveCursorL(TCursorPosition::EFPageDown, EFalse);
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// TKeyResponse CRichTextEditorRTE::OfferKeyEventL(const TKeyEvent& aKeyEvent,
+// TEventCode aType)
+//
+// Called by the framework whenever a key event occurs. Handles scrolling
+// events.
+// ----------------------------------------------------------------------------
+TKeyResponse CRichTextEditorRTE::OfferKeyEventL(const TKeyEvent& aKeyEvent,
+ TEventCode aType)
+ {
+ if (aType == EEventKey)
+ {
+ if (aKeyEvent.iCode == EKeyDownArrow)
+ {
+ MoveCursorL (TCursorPosition::EFPageDown, EFalse);
+
+ return EKeyWasConsumed;
+ }
+ else if (aKeyEvent.iCode == EKeyUpArrow)
+ {
+ MoveCursorL (TCursorPosition::EFPageUp, EFalse);
+
+ return EKeyWasConsumed;
+ }
+ else
+ {
+ return CEikRichTextEditor::OfferKeyEventL(aKeyEvent, aType);
+ }
+ }
+
+ return EKeyWasNotConsumed;
+ }
+
+// End of file