edelib  2.1.0
Public Member Functions | List of all members
SchemeEditor Class Reference

Editing component for Scheme language. More...

#include <edelib/SchemeEditor.h>

Inheritance diagram for SchemeEditor:

Public Member Functions

 SchemeEditor (int X, int Y, int W, int H, const char *l=0)
void textsize (int sz)
virtual int handle (int e)
Fl_Text_Buffer * style_buffer (void)
void object_color (int id, int color)
void object_color (int id, const char *color)
void match_parenthesis (bool m)

Detailed Description

Editing component for Scheme language.

SchemeEditor is extension of Fl_Text_Editor, where is provided syntax higlighting for Scheme-like languages (and the rest of LISP family) with parenthesis matching. It will highligh known Scheme keywords and functions, plus some extensions from edelib-script (see sslib/init-2.ss for those extensions).

This is simple editor intended for small code snippets where full editor is not suitable.

There are few caveats you should be aware of, if you are planning to use this component. First, you should not explicitly set editor buffer (via Fl_Text_Editor::buffer) as SchemeEditor will set it when object is constructed. This is needed so class can correctly setup style buffer too (for syntax highlight). If you specify own buffer object, syntax highlight will not work.

The second is how SchemeEditor will use Fl_Text_Editor::add_modify_callback internally to match parenthesis, so if you overwrite it, editor will not highlight them any more.

Constructor & Destructor Documentation

SchemeEditor ( int  X,
int  Y,
int  W,
int  H,
const char *  l = 0 

Create widget at given position with given size.

Member Function Documentation

virtual int handle ( int  e)

Event handler.

void match_parenthesis ( bool  m)

Match or highlight block of parenthesis.

void object_color ( int  id,
int  color 

Set color for text object. Object can be keyword, comment, parenthesis, etc. and is setup according to given list:

  • 0 - plain text
  • 1 - comments
  • 2 - strings
  • 3 - directives
  • 4 - types
  • 5 - keywords
  • 6 - parenthesis

For example, to draw comments in red color, you would use object_color(2, FL_RED).

void object_color ( int  id,
const char *  color 

Set color using html color

Fl_Text_Buffer* style_buffer ( void  )

Return style buffer.

void textsize ( int  sz)

Set text size; applied on all styles.

The documentation for this class was generated from the following file: