edelib 2.0.0

edelib/SchemeEditor.h

00001 /*
00002  * $Id: String.h 2839 2009-09-28 11:36:20Z karijes $
00003  *
00004  * Fl_Text_Editor enhacement for scheme editing
00005  * Copyright (c) 2005-2012 edelib authors
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library. If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00021 #ifndef __EDELIB_SCHEME_EDITOR_H__
00022 #define __EDELIB_SCHEME_EDITOR_H__
00023 
00024 #include "edelib-global.h"
00025 
00026 #include <FL/Fl_Text_Editor.H>
00027 #include <FL/Fl_Text_Buffer.H>
00028 
00029 EDELIB_NS_BEGIN
00030 
00050 class SchemeEditor : public Fl_Text_Editor {
00051 private:
00052         Fl_Text_Buffer *stylebuf, *textbuf;
00053         bool pmatch;
00054 public:
00056         SchemeEditor(int X, int Y, int W, int H, const char *l = 0);
00057 
00059         void textsize(int sz);
00060 
00062         virtual int handle(int e);
00063 
00065         Fl_Text_Buffer *style_buffer(void) { return stylebuf; }
00066 
00081         void object_color(int id, int color);
00082 
00084         void object_color(int id, const char *color);
00085 
00087         void match_parenthesis(bool m) { pmatch = m; }
00088 };
00089 
00090 EDELIB_NS_END
00091 #endif