Menu

[r7693]: / branches / wxsmith_addons / src / include / loggers.h  Maximize  Restore  History

Download this file

139 lines (110 with data), 3.4 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
* This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
#ifndef LOGGERS_H
#define LOGGERS_H
#include "logger.h"
#include <wx/colour.h>
#include <wx/font.h>
#include <wx/ffile.h>
#include <wx/textctrl.h>
class wxListCtrl;
// Helper function which blends a colour with the default window text colour,
// so that text will be readable in bright and dark colour schemes
wxColour BlendTextColour(wxColour col);
class DLLIMPORT StdoutLogger : public Logger
{
public:
virtual void Append(const wxString& msg, Logger::level lv)
{
fputs(wxSafeConvertWX2MB(msg), lv < error ? stdout : stderr);
fputs(::newline_string.mb_str(), lv < error ? stdout : stderr);
}
};
class DLLIMPORT FileLogger : public Logger
{
protected:
wxFFile f;
public:
FileLogger(const wxString& filename) : f(filename, _T("wb")) {};
FileLogger() {};
virtual void Append(const wxString& msg, Logger::level /*lv*/)
{
fputs(wxSafeConvertWX2MB(msg), f.fp());
fputs(::newline_string.mb_str(), f.fp());
};
virtual void Open(const wxString& filename) { Close(); f.Open(filename, _T("wb")); };
virtual void Close(){ if(f.IsOpened()) f.Close(); };
};
struct CSS
{
wxString caption;
wxString info;
wxString warning;
wxString success;
wxString error;
wxString critical;
wxString failure;
wxString pagetitle;
wxString spacer;
wxString asterisk;
CSS();
operator wxString();
};
class DLLIMPORT HTMLFileLogger : public FileLogger
{
CSS css;
public:
HTMLFileLogger(const wxString& filename);
void SetCSS(const CSS& in_css) { css = in_css; };
virtual void Append(const wxString& msg, Logger::level lv);
virtual void Open(const wxString& filename);
virtual void Close();
};
class DLLIMPORT TextCtrlLogger : public Logger
{
protected:
wxTextCtrl* control;
bool fixed;
wxTextAttr style[num_levels];
public:
TextCtrlLogger(bool fixedPitchFont = false);
~TextCtrlLogger();
virtual void CopyContentsToClipboard(bool selectionOnly = false);
virtual void UpdateSettings();
virtual void Append(const wxString& msg, Logger::level lv = info);
virtual void Clear();
virtual wxWindow* CreateControl(wxWindow* parent);
};
class DLLIMPORT TimestampTextCtrlLogger : public TextCtrlLogger
{
public:
virtual void Append(const wxString& msg, Logger::level lv = info);
};
class DLLIMPORT ListCtrlLogger : public Logger
{
protected:
wxListCtrl* control;
bool fixed;
wxArrayString titles;
wxArrayInt widths;
struct ListStyles
{
wxFont font;
wxColour colour;
};
ListStyles style[num_levels];
wxString GetItemAsText(long item) const;
public:
ListCtrlLogger(const wxArrayString& titles, const wxArrayInt& widths, bool fixedPitchFont = false);
~ListCtrlLogger();
virtual void CopyContentsToClipboard(bool selectionOnly = false);
virtual void UpdateSettings();
virtual void Append(const wxString& msg, Logger::level lv = info);
virtual void Append(const wxArrayString& colValues, Logger::level lv = info);
virtual size_t GetItemsCount() const;
virtual void Clear();
virtual wxWindow* CreateControl(wxWindow* parent);
};
#endif // LOGGERS_H
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.