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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2604 by schoenebeck, Sat Jun 7 22:34:31 2014 UTC revision 2893 by schoenebeck, Fri Apr 29 14:19:53 2016 UTC
# Line 1  Line 1 
1  /*  /*
2      Copyright (c) 2014 Christian Schoenebeck      Copyright (c) 2014-2016 Christian Schoenebeck
3            
4      This file is part of "gigedit" and released under the terms of the      This file is part of "gigedit" and released under the terms of the
5      GNU General Public License version 2.      GNU General Public License version 2.
# Line 10  Line 10 
10    
11  #include <gig.h>  #include <gig.h>
12  #include <gtkmm.h>  #include <gtkmm.h>
13    #include <config.h>
14  #include "compat.h"  #include "compat.h"
15    #include "ManagedWindow.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 {  class ScriptEditor : public ManagedWindow {
31  public:  public:
32      ScriptEditor();      ScriptEditor();
33     ~ScriptEditor();     ~ScriptEditor();
34      void setScript(gig::Script* script);      void setScript(gig::Script* script);
35    
36        // implementation for abstract methods of interface class "ManagedWindow"
37        virtual Settings::Property<int>* windowSettingX() { return &Settings::singleton()->scriptEditorWindowX; }
38        virtual Settings::Property<int>* windowSettingY() { return &Settings::singleton()->scriptEditorWindowY; }
39        virtual Settings::Property<int>* windowSettingWidth() { return &Settings::singleton()->scriptEditorWindowW; }
40        virtual Settings::Property<int>* windowSettingHeight() { return &Settings::singleton()->scriptEditorWindowH; }
41    
42  protected:  protected:
43      Gtk::VBox m_vbox;      Gtk::VBox m_vbox;
44      Gtk::HButtonBox m_buttonBox;      Gtk::HButtonBox m_buttonBox;
# Line 26  protected: Line 47  protected:
47      Glib::RefPtr<Gtk::TextBuffer::TagTable> m_tagTable;      Glib::RefPtr<Gtk::TextBuffer::TagTable> m_tagTable;
48      Glib::RefPtr<Gtk::TextBuffer::Tag> m_keywordTag;      Glib::RefPtr<Gtk::TextBuffer::Tag> m_keywordTag;
49      Glib::RefPtr<Gtk::TextBuffer::Tag> m_eventTag;      Glib::RefPtr<Gtk::TextBuffer::Tag> m_eventTag;
50        Glib::RefPtr<Gtk::TextBuffer::Tag> m_variableTag;
51        Glib::RefPtr<Gtk::TextBuffer::Tag> m_functionTag;
52        Glib::RefPtr<Gtk::TextBuffer::Tag> m_numberTag;
53        Glib::RefPtr<Gtk::TextBuffer::Tag> m_stringTag;
54        Glib::RefPtr<Gtk::TextBuffer::Tag> m_commentTag;
55        Glib::RefPtr<Gtk::TextBuffer::Tag> m_preprocTag;
56        Glib::RefPtr<Gtk::TextBuffer::Tag> m_errorTag;
57        Glib::RefPtr<Gtk::TextBuffer::Tag> m_warningTag;
58      Gtk::TextView m_textView;      Gtk::TextView m_textView;
59      Gtk::Button m_applyButton;      Gtk::Button m_applyButton;
60      Gtk::Button m_cancelButton;      Gtk::Button m_cancelButton;
61    
62      gig::Script* m_script;      gig::Script* m_script;
63        #if USE_LS_SCRIPTVM
64        LinuxSampler::ScriptVM* m_vm;
65    #endif
66    
67      void onButtonCancel();      void onButtonCancel();
68      void onButtonApply();      void onButtonApply();
69      void onWindowHide();      void onWindowHide();
70      void onTextInserted(const Gtk::TextBuffer::iterator& it, const Glib::ustring& txt, int length);      void onTextInserted(const Gtk::TextBuffer::iterator& it, const Glib::ustring& txt, int length);
71      void onTextErased(const Gtk::TextBuffer::iterator& itStart, const Gtk::TextBuffer::iterator& itEnd);      void onTextErased(const Gtk::TextBuffer::iterator& itStart, const Gtk::TextBuffer::iterator& itEnd);
72      void onModifiedChanged();      void onModifiedChanged();
73    #if USE_LS_SCRIPTVM
74        void updateSyntaxHighlightingByVM();
75        void updateParserIssuesByVM();
76        LinuxSampler::ScriptVM* GetScriptVM();
77    #endif
78  };  };
79    
80  #endif // GIGEDIT_SCRIPTEDITOR_H  #endif // GIGEDIT_SCRIPTEDITOR_H

Legend:
Removed from v.2604  
changed lines
  Added in v.2893

  ViewVC Help
Powered by ViewVC