From da9f6e8a856fc87172fb0d5997c607b4a930c102 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 20 Jul 2012 09:19:04 +0000 Subject: IEView, IgnoreState: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1070 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/IEView/src/Template.h | 124 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 plugins/IEView/src/Template.h (limited to 'plugins/IEView/src/Template.h') diff --git a/plugins/IEView/src/Template.h b/plugins/IEView/src/Template.h new file mode 100644 index 0000000000..c0ee5f28fe --- /dev/null +++ b/plugins/IEView/src/Template.h @@ -0,0 +1,124 @@ +/* + +IEView Plugin for Miranda IM +Copyright (C) 2005-2010 Piotr Piastucki + +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. + +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. + +*/ +class TemplateMap; +class Template; +#ifndef TEMPLATE_INCLUDED +#define TEMPLATE_INCLUDED + +#include "ieview_common.h" + +class TokenDef { +public: + const char *tokenString; + int token; + int tokenLen; + int escape; + TokenDef(const char *tokenString); + TokenDef(const char *tokenString, int token, int escape); +}; + +class Token { +private: + int escape; + int type; + char *text; + Token *next; +public: + enum TOKENS { + END = 0, + BASE, + PLAIN, + TEXT, + NAME, + TIME, + DATE, + AVATAR, + CID, + PROTO, + AVATARIN, + AVATAROUT, + NAMEIN, + NAMEOUT, + UIN, + UININ, + UINOUT, + STATUSMSG, + NICKIN, + NICKOUT, + FILEDESC, + }; + Token(int, const char *, int ); + ~Token(); + int getType(); + int getEscape(); + const char *getText(); + Token *getNext(); + void setNext(Token *); +}; + +class Template { +private: + char *name; + char *text; + Template *next; + Token *tokens; +protected: + friend class TemplateMap; + bool equals(const char *name); + void tokenize(); + Template * getNext(); + Template(const char *name, const char *text); +public: + ~Template(); + const char *getText(); + const char *getName(); + Token *getTokens(); +}; + +class TemplateMap { +private: + static TemplateMap *mapList; + char * name; + char * filename; + bool grouping; + bool rtl; + Template * entries; + TemplateMap * next; + TemplateMap(const char *name); + void addTemplate(const char *name, const char *text); + void setFilename(const char *filename); + void clear(); + static TemplateMap* add(const char *id, const char *filename); + static void appendText(char **str, int *sizeAlloced, const char *fmt, ...); + static TemplateMap* loadTemplateFile(const char *proto, const char *filename, bool onlyInfo); +public: + ~TemplateMap(); + static Template * getTemplate(const char *id, const char *name); + static TemplateMap *getTemplateMap(const char *id); + static TemplateMap* loadTemplates(const char *id, const char *filename, bool onlyInfo); + Template * getTemplate(const char *text); + const char * getFilename(); + bool isGrouping(); + bool isRTL(); +}; + + +#endif -- cgit v1.2.3