1 /*
2  * Patchbay Canvas engine using QGraphicsView/Scene
3  * Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * For a full copy of the GNU General Public License see the COPYING file
16  */
17 
18 #ifndef PATCHCANVAS_THEME_H
19 #define PATCHCANVAS_THEME_H
20 
21 #include <QtGui/QColor>
22 #include <QtGui/QFont>
23 #include <QtGui/QPen>
24 
25 #include "../patchcanvas.h"
26 
27 START_NAMESPACE_PATCHCANVAS
28 
29 class Theme
30 {
31 public:
32     enum PortType {
33         THEME_PORT_SQUARE  = 0,
34         THEME_PORT_POLYGON = 1
35     };
36 
37     enum List {
38         THEME_MODERN_DARK  = 0,
39         THEME_CLASSIC_DARK = 1,
40         THEME_MAX = 2
41     };
42 
43     Theme(List id);
44 
45     // Canvas
46     QString name;
47 
48     // Boxes
49     QColor canvas_bg;
50     QPen box_pen;
51     QPen box_pen_sel;
52     QColor box_bg_1;
53     QColor box_bg_2;
54     QColor box_shadow;
55     QPen box_text;
56     QString box_font_name;
57     int box_font_size;
58     QFont::Weight box_font_state;
59 
60     // Ports
61     QPen port_audio_jack_pen;
62     QPen port_audio_jack_pen_sel;
63     QPen port_midi_jack_pen;
64     QPen port_midi_jack_pen_sel;
65     QPen port_midi_a2j_pen;
66     QPen port_midi_a2j_pen_sel;
67     QPen port_midi_alsa_pen;
68     QPen port_midi_alsa_pen_sel;
69     QColor port_audio_jack_bg;
70     QColor port_audio_jack_bg_sel;
71     QColor port_midi_jack_bg;
72     QColor port_midi_jack_bg_sel;
73     QColor port_midi_a2j_bg;
74     QColor port_midi_a2j_bg_sel;
75     QColor port_midi_alsa_bg;
76     QColor port_midi_alsa_bg_sel;
77     QPen port_text;
78     QString port_font_name;
79     int port_font_size;
80     QFont::Weight port_font_state;
81     PortType port_mode;
82 
83     // Lines
84     QColor line_audio_jack;
85     QColor line_audio_jack_sel;
86     QColor line_audio_jack_glow;
87     QColor line_midi_jack;
88     QColor line_midi_jack_sel;
89     QColor line_midi_jack_glow;
90     QColor line_midi_a2j;
91     QColor line_midi_a2j_sel;
92     QColor line_midi_a2j_glow;
93     QColor line_midi_alsa;
94     QColor line_midi_alsa_sel;
95     QColor line_midi_alsa_glow;
96     QPen rubberband_pen;
97     QColor rubberband_brush;
98 };
99 
100 END_NAMESPACE_PATCHCANVAS
101 
102 #endif // PATCHCANVAS_THEME_H
103