⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mimerichtextc.h

📁 linux下的E_MAIL客户端源码
💻 H
字号:
/* * $Id: MimeRichTextC.h,v 1.1.1.1 2000/04/25 13:49:01 fnevgeny Exp $ * * Copyright (c) 1993 HAL Computer Systems International, Ltd. *  *          HAL COMPUTER SYSTEMS INTERNATIONAL, LTD. *                  1315 Dell Avenue *                  Campbell, CA  95008 * * Author: Greg Hilton * Contributors: Tom Lang, Frank Bieser, and others * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program 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 General Public License for more details. * * http://www.gnu.org/copyleft/gpl.html * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#ifndef _MimeRichTextC_h_#define _MimeRichTextC_h_#include "RectC.h"#include "StringC.h"#include "CallbackC.h"#include <X11/Intrinsic.h>//// Font commands are stored in the fstack member of the text state//   enum FontCmdT {      FC_PLAIN = 'a',      FC_BOLD,      FC_ITALIC,      FC_FIXED,      FC_SMALLER,      FC_BIGGER,      FC_UNDERLINE,      FC_CHARSET_1,      FC_CHARSET_2,      FC_CHARSET_3,      FC_CHARSET_4,      FC_CHARSET_5,      FC_CHARSET_6,      FC_CHARSET_7,      FC_CHARSET_8,      FC_CHARSET_9,      FC_URL   };#define MAX_CHARSET_COUNT	10//// Justify commands are stored in the jstack member of the text state//   enum JustCmdT {      JC_LEFT = 'a',      JC_RIGHT,      JC_BOTH,      JC_CENTER,      JC_NOFILL,      JC_EXCERPT_MORE,      JC_EXCERPT_LESS   };//// Margin commands//   enum MarginCmdT {      MC_LEFT_IN = 'a',      MC_LEFT_OUT,      MC_RIGHT_IN,      MC_RIGHT_OUT   };//// Text types we understand//   enum TextTypeT {      TT_PLAIN = 0,      TT_RICH,      TT_ENRICHED,      TT_HTML   };//// command types we understand//   enum RichCmdTypeT {      RC_GRAPHIC = 0,      RC_TEXT   };/*---------------------------------------------------------------------- * This class represents an in-line graphic */class MimeRichTextP;class RichGraphicC {   virtual void		HideIt() = 0;   virtual void		ShowIt() = 0;public:   RectC		bounds;   Boolean		okToDelete;   Boolean		shown;   MimeRichTextP	*owner;   			RichGraphicC();   virtual		~RichGraphicC();   void			Hide();   void			Show();   virtual void		Refresh()     = 0;   virtual int		PrefWidth()   = 0;   virtual int		PrefHeight()  = 0;   virtual Boolean	GetText(StringC&) = 0;   virtual void		SingleClick(XButtonEvent*) = 0;   virtual void		DoubleClick(XButtonEvent*) = 0;   virtual void		PostMenu(XButtonEvent*)    = 0;};/*---------------------------------------------------------------------- * Rich/Enriched text drawing class */class CharC;class PtrListC;class MimeRichTextC {   friend class MimeRichTextP;   MimeRichTextP	*priv;public:   MimeRichTextC(Widget, const char*, ArgList argv=NULL, Cardinal argc=0);   ~MimeRichTextC();//// Query//   Pixel		Background() const;   Boolean		CanBePlain() const;   const StringC&	Charset(int) const;   const StringC&	Charset() const;   int			CharWidth() const;   int			CharHeight() const;   int			ColumnCount() const;   StringC		CursorStateString();   const StringC&	DefCharset() const;   const StringC&	DefFixedFontName() const;   const StringC&	DefPlainFontName() const;   Drawable		DrawTo() const;   const StringC&	FixedFontName() const;   Pixel		Foreground() const;   PtrListC&		GraphicList() const;   Widget		MainWidget() const;   Boolean		Has8Bit() const;   Boolean		HasGraphics() const;   Boolean		HasMarkup() const;   Boolean		IsEditable() const;   Boolean		IsEmpty() const;   Boolean		IsSingleGraphic() const;   int			LineHeight() const;   int			MarginHeight() const;   int			MarginWidth() const;   const StringC&	PlainFontName() const;   int			RowCount() const;   Widget		TextArea() const;   Boolean		UndeleteOk() const;//// Methods//   int			AddCharset(CharC);   Boolean		AddCommand(CharC, Boolean negate=False);   void			AddGraphic(RichGraphicC*);   void			AddString(CharC);   void			AddStringEnriched(CharC);   void			AddStringHTML(CharC);   void			AddStringPlain(CharC);   void			AddStringRichtext(CharC);   void			CheckFroms(Boolean val=True);   void			Clear();   void			Defer(Boolean);   void			ForceFixed(Boolean);   RichCmdTypeT		GetNextPart(StringC&, TextTypeT, RichGraphicC**,   				    int lineSize=0);   void			GetString(StringC&, TextTypeT type=TT_PLAIN,   				  int lineSize=0);   void			GraphicChanged(RichGraphicC*, Boolean sizeChanged=True);   void			InsertGraphic(RichGraphicC*);   void			InsertString(CharC);   void			MoveCursor(RichGraphicC*, int);   void			MoveCursor(Widget, int, int);   void			Refresh();   void			RemoveGraphic(RichGraphicC*);   void			ResetPartIndex();   void			ResizeWidth(Boolean val=True);   void			SetBackground(Pixel);   void			SetCharset(StringC);   void			SetCharClasses(const char*);   void			SetDeleteLikeBackspace(Boolean);   void			SetEditable(Boolean);   void			SetEmacsMode(Boolean);   void			SetExcerptString(CharC);   void			SetFixedFont(const char*);   void			SetForeground(Pixel);   void			SetPlainFont(const char*);   void			SetSensitive(Boolean);   void			SetSize(int rows, int cols, Widget reference=NULL);   void			SetString(CharC);   void			SetTextType(TextTypeT);   void			SetWebCommand(const char*);//// Manage state change callbacks//   void		AddStateChangeCallback   (CallbackFn*, void*);   void		RemoveStateChangeCallback(CallbackFn*, void*);   void		AddTextChangeCallback    (CallbackFn*, void*);   void		RemoveTextChangeCallback (CallbackFn*, void*);   void		AddLinkAccessCallback    (CallbackFn*, void*);   void		RemoveLinkAccessCallback (CallbackFn*, void*);//// Editing methods//   void		MoveLeftChar();   void		MoveLeftWord();   void		MoveRightChar();   void		MoveRightWord();   void		MoveLineBeg();   void		MoveLineEnd();   void		MoveUpLine();   void		MoveUpPara();   void		MoveDownLine();   void		MoveDownPara();   void		MoveFileBeg();   void		MoveFileEnd();   void		DeleteLeftChar();   void		DeleteLeftWord();   void		DeleteRightChar();   void		DeleteRightWord();   void		DeleteLineBeg();   void		DeleteLineEnd();   void		SelectLeftChar();   void		SelectLeftWord();   void		SelectRightChar();   void		SelectRightWord();   void		SelectLineBeg();   void		SelectLineEnd();   void		SelectUpLine();   void		SelectUpPara();   void		SelectDownLine();   void		SelectDownPara();   void		SelectFileBeg();   void		SelectFileEnd();   void		Undelete();   void		ScrollUpLine();   void		ScrollUpPage();   void		ScrollDownLine();   void		ScrollDownPage();   void		ScrollTop();   void		ScrollBottom();   void		LineToTop();   void		LineToCenter();   void		LineToBottom();   void		ChangeFont(FontCmdT);   void		ChangeCharset(CharC);   void		ChangeColor(StringC);   void		ChangeJust(JustCmdT);   void		ChangeMargin(MarginCmdT);//// comparison//   int	compare(const MimeRichTextC& t) const;   inline int	operator<(const MimeRichTextC& t) const	{ return (compare(t) < 0); }   inline int	operator>(const MimeRichTextC& t) const	{ return (compare(t) > 0); }   inline int	operator!=(const MimeRichTextC& t) const	{ return (compare(t) != 0); }   inline int	operator==(const MimeRichTextC& t) const	{ return (compare(t) == 0); }};inline ostream& operator<<(ostream& strm, const MimeRichTextC&) {return(strm);}#define	ISHMAIL_ENRICHED_ATOM_NAME	"IshmailEnrichedText"#define	MIME_ENRICHED_ATOM_NAME		"MimeEnrichedText"#endif // _MimeRichTextC_h_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -