+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: No names yet.
-// Purpose: Contrib. demo
-// Author: Aleksandras Gluchovas
-// Modified by:
-// Created: 22/09/98
-// RCS-ID: $Id$
-// Copyright: (c) Aleskandars Gluchovas
-// Licence: GNU General Public License
-/////////////////////////////////////////////////////////////////////////////
-//
-// 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
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef __SOURCEPAINTER_G__
-#define __SOURCEPAINTER_G__
-
-#ifndef ASSERT
-#define ASSERT(x) if (!(x)) throw
-#endif
-
-#include "wxstldefs.h"
-
-#include "markup.h" // import MarkupTagsT definition
-
-// "colored" codes for highlighted blocks
-
-#define RANK_BLACK 0 // common source fragments
-#define RANK_BLUE 1 // basic types
-#define RANK_RED 2 // reserved words
-#define RANK_GREEN 3 // comments
-
-// colored block description format :
-// int( ( rank << 16 ) | ( source_range_len ) )
-
-inline int get_src_block_rank( int block )
-{
- return (block >> 16) & 0xFFFF;
-}
-
-inline int get_src_block_len( int block )
-{
- return block & 0xFFFF;
-}
-
-// FOR NOW:: no lagnguage-map selection
-
-// source code syntax heighlighter (CPP+JAVA+VB+PASCAL)
-
-class SourcePainter
-{
-protected:
- string mResultStr;
- IntListT mBlocks;
- bool mCollectResultsOn;
-
- // state variables
- bool mIsInComment;
- bool mCommentIsMultiline;
-public:
-
- // assembleResultString == TRUE - instructs painter
- // to collect each chunk of srouce passed to ProcessSource(),
- // so that results cann be futher obtained in a single string
- // instead of vector of block descriptions
-
- SourcePainter( bool assembleResultString = TRUE );
- virtual ~SourcePainter() {}
-
- // can be called multiple times (e.g. on each source line)
- virtual void ProcessSource( char* src, int srcLen );
-
- // method, for manually adjusting state of source painter
- virtual void SetState( bool isInComment,
- bool commentIsMultiline );
-
- // reinitializes object - clears results of previouse processing
- virtual void Init( bool assembleResultString = TRUE );
-
- // generates string of highlighted source for the scipting
- // language given by "tags" argument
-
- virtual void GetResultString(string& result, MarkupTagsT tags);
-
- // returns vector of block descriptors, see IntListT definition
- // (block descriptors can be used for fast custom hightlighted text generation)
-
- virtual IntListT& GetBlocks();
-
- // NOTE:: static method
- // returns if the given word is a reserved word or basic type identifier
- static bool IsKeyword( char* word, int wordLen );
-};
-
-#endif