00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __TXTEXAMP_H
00032 #define __TXTEXAMP_H
00033
00034 #include <coemain.h>
00035 #include <coecntrl.h>
00036 #include <s32file.h>
00037 #include <txtglobl.h>
00038 #include <frmtview.h>
00039 #include <txtfmlyr.h>
00040
00041
00042
00043
00044
00045 class MGraphicsExampleObserver
00046
00047
00048
00049 {
00050 public:
00051
00052 virtual void NotifyGraphicExampleFinished()=0;
00053
00054 virtual void NotifyStatus(const TDesC& aMessage)=0;
00055 };
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 #pragma warning(disable : 4100)
00087
00088
00089 class CGraphicExampleControl : public CCoeControl
00090 {
00091 public:
00092
00093 void ConstructL(const TRect& aRect, MGraphicsExampleObserver* aObserver, const CCoeControl& aParent);
00094
00095 ~CGraphicExampleControl();
00096
00097 TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
00098
00099 protected:
00100
00101 virtual void UpdateModelL() =0;
00102 virtual void Draw(const TRect& ) const {};
00103
00104 TInt Phase() const { return iPhase; };
00105 void SetMaxPhases(TInt aMaxPhases) { iMaxPhases=aMaxPhases; };
00106
00107 CFont* iMessageFont;
00108 private:
00109
00110 void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00111
00112 void Quit();
00113 void NextPhaseL();
00114
00115 TInt iPhase;
00116 TInt iMaxPhases;
00117 protected:
00118 MGraphicsExampleObserver* iFormObserver;
00119 TBool iUpdateModelDoesRedraw;
00120 };
00121
00122
00123
00124 class CGlobalText;
00125 class CRichText;
00126 class CParaFormatLayer;
00127 class CCharFormatLayer;
00128 class CTextLayout;
00129 class CTextView;
00130 class CStyleList;
00131 class CParagraphStyle;
00132
00133
00134 class CGlobalControl : public CGraphicExampleControl
00135 {
00136
00137 public:
00138 CGlobalControl() { SetMaxPhases(16); };
00139 void UpdateModelL();
00140 void Draw(const TRect& aRect) const;
00141 ~CGlobalControl();
00142 private:
00143 CGlobalText* iGlobalText;
00144 CParaFormatLayer* iParaFormatLayer;
00145 CCharFormatLayer* iCharFormatLayer;
00146 TStreamId iStreamId;
00147
00148 CTextLayout* iLayout;
00149 CTextView* iTextView;
00150 TRect iViewRect;
00151 TCharFormat iCharFormat;
00152 TCharFormatMask iCharFormatMask;
00153 };
00154
00155 class CRichControl : public CGraphicExampleControl
00156 {
00157
00158 public:
00159 CRichControl() { SetMaxPhases(14);};
00160 ~CRichControl();
00161 void UpdateModelL();
00162 void Draw(const TRect& aRect) const;
00163 private:
00164 CRichText* iRichText;
00165 CParaFormatLayer* iParaFormatLayer;
00166 CCharFormatLayer* iCharFormatLayer;
00167 TStreamId iStreamId;
00168
00169 CTextLayout* iLayout;
00170 CTextView* iTextView;
00171 TRect iViewRect;
00172 TCharFormat iCharFormat;
00173 TCharFormatMask iCharFormatMask;
00174 };
00175
00176 class CStyleControl : public CGraphicExampleControl
00177 {
00178
00179 public:
00180 CStyleControl() { SetMaxPhases(9);};
00181 ~CStyleControl();
00182 void UpdateModelL();
00183 void Draw(const TRect& aRect) const;
00184 private:
00185 void CreateNormalL();
00186 void CreateStylesL();
00187 private:
00188 CRichText* iRichText;
00189 CParaFormatLayer* iNormalParaFormatLayer;
00190 CCharFormatLayer* iNormalCharFormatLayer;
00191 TStreamId iStreamId;
00192
00193 CTextLayout* iLayout;
00194 CTextView* iTextView;
00195 TRect iViewRect;
00196 CStyleList* iStyleList;
00197 CParagraphStyle* iStyleOne;
00198 CParagraphStyle* iStyleTwo;
00199 TCharFormat iCharFormat;
00200 TCharFormatMask iCharFormatMask;
00201 };
00202
00203 class CViewControl : public CGraphicExampleControl
00204 {
00205
00206 public:
00207 CViewControl() { SetMaxPhases(14);};
00208 ~CViewControl();
00209 void UpdateModelL();
00210 void Draw(const TRect& aRect) const;
00211 private:
00212 CRichText* iRichText;
00213 CParaFormatLayer* iParaFormatLayer;
00214 CCharFormatLayer* iCharFormatLayer;
00215
00216 CTextLayout* iLayout;
00217 CTextView* iTextView;
00218 TRect iViewRect;
00219 CFbsBitmap* iBitmap;
00220 TCharFormat iCharFormat;
00221 TCharFormatMask iCharFormatMask;
00222 };
00223
00224 #endif
00225