00001 /* 00002 * Copyright (C) 2008-2010 Lorenzo Bettini, http://www.lorenzobettini.it 00003 * License: See COPYING file that comes with this distribution 00004 */ 00005 00006 #ifndef TEXTEDITHIGHLIGHTED_H 00007 #define TEXTEDITHIGHLIGHTED_H 00008 00009 #include <QTextEdit> 00010 00011 #include "Qt4SyntaxHighlighter.h" 00012 00013 namespace srchiliteqt { 00014 00015 class LanguageComboBox; 00016 class StyleComboBox; 00017 00027 class TextEditHighlighted : public QTextEdit 00028 { 00029 Q_OBJECT 00030 00031 private: 00033 srchiliteqt::Qt4SyntaxHighlighter *highlighter; 00034 00036 LanguageComboBox *languageComboBox; 00037 00039 StyleComboBox *styleComboBox; 00040 00042 QString styleFile; 00043 00044 public: 00045 TextEditHighlighted(); 00046 TextEditHighlighted(QWidget * parent); 00047 00053 void connectLanguageComboBox(LanguageComboBox *lcb); 00054 00060 void connectStyleComboBox(StyleComboBox *lcb); 00061 00062 srchiliteqt::Qt4SyntaxHighlighter *getHighlighter() const { 00063 return highlighter; 00064 } 00065 00070 void setHighlighter(const QString &langFile); 00071 00080 const QString loadFile(const QString &fileName); 00081 00087 void changeColors(const QString &fgColor, const QString &bgColor); 00088 00089 public slots: 00094 void changeHighlightingLanguage(const QString &newLang); 00095 00100 void changeHighlightingStyle(const QString &newStyle); 00101 00107 void changeFileName(const QString &fileName); 00108 00119 const QString getLangDefFileFromFileName(const QString &filename); 00120 00121 signals: 00126 void changedHighlightingLanguage(const QString &newLang); 00127 00132 void changedHighlightingStyle(const QString &newLang); 00133 00134 }; 00135 00136 } 00137 00138 #endif // TEXTEDITHIGHLIGHTED_H