CrystalSpace

Public API Reference

csutil/ansiparse.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2005 by Jorrit Tyberghein
00003               (C) 2005 by Frank Richter
00004               (C) 2006 by Marten Svanfeldt
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public
00017     License along with this library; if not, write to the Free
00018     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019 */
00020 
00021 #ifndef __CS_CSUTIL_ANSIPARSE_H__
00022 #define __CS_CSUTIL_ANSIPARSE_H__
00023 
00024 
00032 
00033 class CS_CRYSTALSPACE_EXPORT csAnsiParser
00034 {
00035 public:
00037   enum Command
00038   {
00040     cmdUnknown,
00042     cmdFormatAttrReset,
00044     cmdFormatAttrEnable,
00046     cmdFormatAttrDisable,
00048     cmdFormatAttrForeground,
00050     cmdFormatAttrBackground,
00052     cmdClearScreen,
00054     cmdClearLine,
00056     cmdCursorSetPosition,
00058     cmdCursorMoveRelative
00059   };
00061   enum CommandClass
00062   {
00064     classNone,
00066     classUnknown,
00068     classFormat,
00070     classClear,
00072     classCursor
00073   };
00078   enum FormatAttr
00079   {
00081     attrBold,
00083     attrItalics,
00085     attrUnderline,
00087     attrBlink,
00089     attrReverse,
00091     attrStrikethrough,
00093     attrDim,
00095     attrInvisible
00096   };
00098   enum FormatColor
00099   {
00101     colNone = -1,
00103     colBlack,
00105     colRed,
00107     colGreen,
00109     colYellow,
00111     colBlue,
00113     colMagenta,
00115     colCyan,
00117     colWhite
00118   };
00119   struct CursorParams
00120   {
00122     int x;
00123 
00125     int y;
00126   };
00128   struct CommandParams
00129   {
00130     union
00131     {
00133       FormatColor colorVal;
00135       FormatAttr attrVal;
00137       CursorParams cursorVal;
00138     };
00139   };
00153   static bool ParseAnsi (const char* str, size_t& ansiCommandLen, 
00154     CommandClass& cmdClass, size_t& textLen);
00167   static bool DecodeCommand (const char*& cmd, size_t& cmdLen, 
00168     Command& command, CommandParams& commandParams);
00169 };
00170 
00173 #endif // __CS_CSUTIL_ANSIPARSE_H__

Generated for Crystal Space by doxygen 1.4.7