williamr@4: /* williamr@4: * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: williamr@4: * williamr@4: */ williamr@4: williamr@2: williamr@2: #ifndef __FRMVIS_H__ williamr@2: #define __FRMVIS_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class RReadStream; williamr@2: class RWriteStream; williamr@2: williamr@2: /** williamr@2: A set of flags to indicate which non-printing characters (e.g. space, tab, williamr@2: paragraph break, etc.) should be drawn using symbols. By default, all williamr@2: non-printing characters are hidden. williamr@2: williamr@2: An instance of this class is used in williamr@2: CTextLayout::SetNonPrintingCharsVisibility(). williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class TNonPrintingCharVisibility williamr@2: williamr@2: { williamr@2: private: williamr@2: enum TShowFormatChars williamr@2: { williamr@2: EFNothingVisible=0x000, williamr@2: EFTabsVisible=0x001, williamr@2: EFSpacesVisible=0x002, williamr@2: EFParagraphDelimitersVisible=0x004, williamr@2: EFLineBreaksVisible=0x008, williamr@2: EFPotentialHyphensVisible=0x010, williamr@2: EFNonBreakingHyphensVisible=0x020, williamr@2: EFNonBreakingSpacesVisible=0x040, williamr@2: EFPageBreaksVisible=0x080, williamr@2: EFEverythingVisible=0xffffffff williamr@2: }; williamr@2: public: williamr@2: IMPORT_C TNonPrintingCharVisibility(); williamr@2: IMPORT_C TNonPrintingCharVisibility(const TNonPrintingCharVisibility& aVisibility); williamr@2: IMPORT_C TNonPrintingCharVisibility& operator=(const TNonPrintingCharVisibility& aVisibility); williamr@2: IMPORT_C void ExternalizeL(RWriteStream& aStream)const; williamr@2: IMPORT_C void InternalizeL(RReadStream& aStream); williamr@2: IMPORT_C void SetAllVisible(); williamr@2: IMPORT_C void SetNoneVisible(); williamr@2: IMPORT_C void SetTabsVisible(TBool aVisible); williamr@2: IMPORT_C void SetSpacesVisible(TBool aVisible); williamr@2: IMPORT_C void SetParagraphDelimitersVisible(TBool aVisible); williamr@2: IMPORT_C void SetLineBreaksVisible(TBool aVisible); williamr@2: IMPORT_C void SetPotentialHyphensVisible(TBool aVisible); williamr@2: IMPORT_C void SetNonBreakingHyphensVisible(TBool aVisible); williamr@2: IMPORT_C void SetNonBreakingSpacesVisible(TBool aVisible); williamr@2: IMPORT_C void SetPageBreaksVisible(TBool aVisible); williamr@2: williamr@2: /** Tests whether all non-printing characters are visible. williamr@2: @return ETrue if all non-printing characters are visible. EFalse if any or williamr@2: all hidden. */ williamr@2: inline TBool AllVisible()const{return iVisible==EFEverythingVisible;}; williamr@2: williamr@2: /** Tests whether all non-printing characters are hidden. williamr@2: @return ETrue if all non-printing characters are hidden. EFalse if any are williamr@2: visible. */ williamr@2: inline TBool NoneVisible()const{return iVisible==EFNothingVisible;}; williamr@2: williamr@2: /** Tests whether tab stop characters are visible. williamr@2: @return ETrue if tab stop characters are visible. EFalse if hidden. */ williamr@2: inline TBool TabsVisible()const{return iVisible&EFTabsVisible;}; williamr@2: williamr@2: /** Tests whether space characters are visible. williamr@2: williamr@2: Note: To get the the visibility of non-breaking space characters, use williamr@2: NonBreakingSpacesVisible() instead. williamr@2: @return ETrue if space characters are visible. EFalse if hidden. */ williamr@2: inline TBool SpacesVisible()const{return iVisible&EFSpacesVisible;}; williamr@2: williamr@2: /** Tests whether paragraph delimiters are visible. williamr@2: @return ETrue if paragraph delimiters are visible. EFalse if hidden. */ williamr@2: inline TBool ParagraphDelimitersVisible()const{return iVisible&EFParagraphDelimitersVisible;}; williamr@2: williamr@2: /** Tests whether forced line break characters are visible. williamr@2: @return ETrue if forced line break characters are visible. EFalse if hidden. williamr@2: */ williamr@2: inline TBool LineBreaksVisible()const{return iVisible&EFLineBreaksVisible;}; williamr@2: williamr@2: /** Tests whether potential hyphen characters (inserted before a line break williamr@2: within a word) are visible. williamr@2: williamr@2: @return ETrue if potential hyphen characters are visible. EFalse if hidden. williamr@2: */ williamr@2: inline TBool PotentialHyphensVisible()const{return iVisible&EFPotentialHyphensVisible;}; williamr@2: williamr@2: /** Tests whether non-breaking hyphens (enclosing word is always kept on williamr@2: the same line) are visible. williamr@2: @return ETrue if non-breaking hyphens are visible. EFalse if hidden. */ williamr@2: inline TBool NonBreakingHyphensVisible()const{return iVisible&EFNonBreakingHyphensVisible;}; williamr@2: williamr@2: /** Tests whether non-breaking spaces are visible. williamr@2: @return ETrue if non-breaking spaces are visible. EFalse if hidden. */ williamr@2: inline TBool NonBreakingSpacesVisible()const{return iVisible&EFNonBreakingSpacesVisible;}; williamr@2: williamr@2: /** Tests whether page break characters are visible. williamr@2: @return ETrue if page break characters are visible. EFalse if hidden. */ williamr@2: inline TBool PageBreaksVisible()const{return iVisible&EFPageBreaksVisible;}; williamr@2: williamr@2: private: williamr@2: TUint32 iVisible; williamr@2: }; williamr@2: williamr@2: #endif williamr@4: williamr@4: