/[svn]/gigedit/trunk/src/gigedit/scripteditor.h
ViewVC logotype

Contents of /gigedit/trunk/src/gigedit/scripteditor.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2890 - (show annotations) (download) (as text)
Mon Apr 25 17:35:21 2016 UTC (7 years, 11 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 2212 byte(s)
* Script Editor: Added support for liblinuxsampler's NKSP parser
  backend for displaying parser errors and warnings directly within
  the source code (for now simply errors cause a red background color
  at the relevant location, and warnings a yellow background color;
  error text / warning text is not displayed yet).
* Bumped version (1.0.0.svn4).

1 /*
2 Copyright (c) 2014-2016 Christian Schoenebeck
3
4 This file is part of "gigedit" and released under the terms of the
5 GNU General Public License version 2.
6 */
7
8 #ifndef GIGEDIT_SCRIPTEDITOR_H
9 #define GIGEDIT_SCRIPTEDITOR_H
10
11 #include <gig.h>
12 #include <gtkmm.h>
13 #include <config.h>
14
15 #include "compat.h"
16
17 // Should we use a very simple (and buggy) local NKSP syntax parser, or should
18 // we rather use the full features NKSP syntax highlighting backend from
19 // liblinuxsampler for syntax highlighting of this text editor?
20 #if HAVE_LINUXSAMPLER
21 # define USE_LS_SCRIPTVM 1
22 #endif
23
24 #if USE_LS_SCRIPTVM
25 namespace LinuxSampler {
26 class ScriptVM;
27 }
28 #endif
29
30 class ScriptEditor : public Gtk::Window {
31 public:
32 ScriptEditor();
33 ~ScriptEditor();
34 void setScript(gig::Script* script);
35 protected:
36 Gtk::VBox m_vbox;
37 Gtk::HButtonBox m_buttonBox;
38 Gtk::ScrolledWindow m_scrolledWindow;
39 Glib::RefPtr<Gtk::TextBuffer> m_textBuffer;
40 Glib::RefPtr<Gtk::TextBuffer::TagTable> m_tagTable;
41 Glib::RefPtr<Gtk::TextBuffer::Tag> m_keywordTag;
42 Glib::RefPtr<Gtk::TextBuffer::Tag> m_eventTag;
43 Glib::RefPtr<Gtk::TextBuffer::Tag> m_variableTag;
44 Glib::RefPtr<Gtk::TextBuffer::Tag> m_functionTag;
45 Glib::RefPtr<Gtk::TextBuffer::Tag> m_numberTag;
46 Glib::RefPtr<Gtk::TextBuffer::Tag> m_stringTag;
47 Glib::RefPtr<Gtk::TextBuffer::Tag> m_commentTag;
48 Glib::RefPtr<Gtk::TextBuffer::Tag> m_preprocTag;
49 Glib::RefPtr<Gtk::TextBuffer::Tag> m_errorTag;
50 Glib::RefPtr<Gtk::TextBuffer::Tag> m_warningTag;
51 Gtk::TextView m_textView;
52 Gtk::Button m_applyButton;
53 Gtk::Button m_cancelButton;
54
55 gig::Script* m_script;
56 #if USE_LS_SCRIPTVM
57 LinuxSampler::ScriptVM* m_vm;
58 #endif
59
60 void onButtonCancel();
61 void onButtonApply();
62 void onWindowHide();
63 void onTextInserted(const Gtk::TextBuffer::iterator& it, const Glib::ustring& txt, int length);
64 void onTextErased(const Gtk::TextBuffer::iterator& itStart, const Gtk::TextBuffer::iterator& itEnd);
65 void onModifiedChanged();
66 #if USE_LS_SCRIPTVM
67 void updateSyntaxHighlightingByVM();
68 void updateParserIssuesByVM();
69 LinuxSampler::ScriptVM* GetScriptVM();
70 #endif
71 };
72
73 #endif // GIGEDIT_SCRIPTEDITOR_H

  ViewVC Help
Powered by ViewVC