diff options
Diffstat (limited to 'src/gui/general/GUIPalette.cpp')
-rw-r--r-- | src/gui/general/GUIPalette.cpp | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/src/gui/general/GUIPalette.cpp b/src/gui/general/GUIPalette.cpp new file mode 100644 index 0000000..4705c21 --- /dev/null +++ b/src/gui/general/GUIPalette.cpp @@ -0,0 +1,311 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Rosegarden + A MIDI and audio sequencer and musical notation editor. + + This program is Copyright 2000-2008 + Guillaume Laurent <[email protected]>, + Chris Cannam <[email protected]>, + Richard Bown <[email protected]> + + The moral rights of Guillaume Laurent, Chris Cannam, and Richard + Bown to claim authorship of this work have been asserted. + + Other copyrights also apply to some parts of this work. Please + see the AUTHORS file and individual file headers for details. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + + +#include "GUIPalette.h" +#include <kapplication.h> + +#include "base/Colour.h" +#include "document/ConfigGroups.h" +#include <kconfig.h> +#include <qcolor.h> + + +namespace Rosegarden +{ + +QColor GUIPalette::getColour(const char* const colourName) +{ + KConfig* config = kapp->config(); + config->setGroup(ColoursConfigGroup); + + QColor res = getInstance()->m_defaultsMap[colourName]; + config->readColorEntry(colourName, &res); + return res; +} + +Colour GUIPalette::convertColour(const QColor &input) +{ + int r, g, b; + input.rgb(&r, &g, &b); + return Colour(r, g, b); +} + +QColor GUIPalette::convertColour(const Colour& input) +{ + return QColor(input.getRed(), input.getGreen(), input.getBlue()); +} + +GUIPalette::GUIPalette() +{ + m_defaultsMap[ActiveRecordTrack] = Qt::red; + + m_defaultsMap[SegmentCanvas] = QColor(230, 230, 230); + m_defaultsMap[SegmentBorder] = Qt::black; + + // 1.0 colors + // m_defaultsMap[RecordingInternalSegmentBlock] = QColor(255, 182, 193); + // m_defaultsMap[RecordingAudioSegmentBlock] = QColor(182, 222, 255); + + // MIDI recording preview (pale yellow) + m_defaultsMap[RecordingInternalSegmentBlock] = QColor(255, 234, 182); + + // audio recording preview (pale red) + m_defaultsMap[RecordingAudioSegmentBlock] = QColor(255, 182, 193); + + m_defaultsMap[RecordingSegmentBorder] = Qt::black; + + m_defaultsMap[RepeatSegmentBorder] = QColor(130, 133, 170); + + m_defaultsMap[SegmentAudioPreview] = QColor(39, 71, 22); + m_defaultsMap[SegmentInternalPreview] = Qt::white; + m_defaultsMap[SegmentLabel] = Qt::black; + m_defaultsMap[SegmentSplitLine] = Qt::black; + + m_defaultsMap[MatrixElementBorder] = Qt::black; + m_defaultsMap[MatrixElementBlock] = QColor(98, 128, 232); + m_defaultsMap[MatrixOverlapBlock] = Qt::black; + + m_defaultsMap[LoopRulerBackground] = QColor(120, 120, 120); + m_defaultsMap[LoopRulerForeground] = Qt::white; + m_defaultsMap[LoopHighlight] = Qt::white; + + m_defaultsMap[TempoBase] = QColor(197, 211, 125); + + //m_defaultsMap[TextRulerBackground] = QColor(60, 205, 230, QColor::Hsv); + // m_defaultsMap[TextRulerBackground] = QColor(120, 90, 238, QColor::Hsv); + // m_defaultsMap[TextRulerBackground] = QColor(210, 220, 140); + m_defaultsMap[TextRulerBackground] = QColor(226, 232, 187); + m_defaultsMap[TextRulerForeground] = Qt::white; + + m_defaultsMap[ChordNameRulerBackground] = QColor(230, 230, 230); + m_defaultsMap[ChordNameRulerForeground] = Qt::black; + + m_defaultsMap[RawNoteRulerBackground] = QColor(240, 240, 240); + m_defaultsMap[RawNoteRulerForeground] = Qt::black; + + m_defaultsMap[LevelMeterGreen] = QColor(0, 200, 0); + m_defaultsMap[LevelMeterOrange] = QColor(255, 165, 0); + m_defaultsMap[LevelMeterRed] = QColor(200, 0, 0); + + // m_defaultsMap[LevelMeterSolidGreen] = QColor(0, 140, 0); + m_defaultsMap[LevelMeterSolidGreen] = QColor(84, 177, 248); // blue! + // m_defaultsMap[LevelMeterSolidOrange] = QColor(220, 120, 0); + m_defaultsMap[LevelMeterSolidOrange] = QColor(255, 225, 0); + // m_defaultsMap[LevelMeterSolidRed] = QColor(255, 50, 50); + m_defaultsMap[LevelMeterSolidRed] = QColor(255, 0, 0); + + m_defaultsMap[BarLine] = Qt::black; + m_defaultsMap[BarLineIncorrect] = QColor(211, 0, 31); + m_defaultsMap[BeatLine] = QColor(100, 100, 100); + m_defaultsMap[SubBeatLine] = QColor(212, 212, 212); + m_defaultsMap[StaffConnectingLine] = QColor(192, 192, 192); + m_defaultsMap[StaffConnectingTerminatingLine] = QColor(128, 128, 128); + + m_defaultsMap[Pointer] = Qt::darkBlue; + m_defaultsMap[PointerRuler] = QColor(100, 100, 100); + + m_defaultsMap[InsertCursor] = QColor(160, 104, 186); + m_defaultsMap[InsertCursorRuler] = QColor(160, 136, 170); + + m_defaultsMap[TrackDivider] = QColor(145, 145, 145); + //m_defaultsMap[MovementGuide] = QColor(172, 230, 139); + m_defaultsMap[MovementGuide] = QColor(62, 161, 194); + //m_defaultsMap[MovementGuide] = QColor(255, 189, 89); + m_defaultsMap[SelectionRectangle] = QColor(103, 128, 211); + m_defaultsMap[SelectedElement] = QColor(0, 54, 232); + + const int SelectedElementHue = 225; + const int SelectedElementMinValue = 220; + const int HighlightedElementHue = 25; + const int HighlightedElementMinValue = 220; + const int QuantizedNoteHue = 69; + const int QuantizedNoteMinValue = 140; + const int TriggerNoteHue = 4; + const int TriggerNoteMinValue = 140; + const int OutRangeNoteHue = 0; + const int OutRangeNoteMinValue = 200; + + m_defaultsMap[TextAnnotationBackground] = QColor(255, 255, 180); + + m_defaultsMap[TextLilyPondDirectiveBackground] = QColor(95, 157, 87); + + m_defaultsMap[AudioCountdownBackground] = Qt::darkGray; + m_defaultsMap[AudioCountdownForeground] = Qt::red; + +// m_defaultsMap[RotaryFloatBackground] = Qt::cyan; + m_defaultsMap[RotaryFloatBackground] = QColor(182, 222, 255); + m_defaultsMap[RotaryFloatForeground] = Qt::black; + + m_defaultsMap[RotaryPastelBlue] = QColor(205, 212, 255); + m_defaultsMap[RotaryPastelRed] = QColor(255, 168, 169); + m_defaultsMap[RotaryPastelGreen] = QColor(231, 255, 223); + m_defaultsMap[RotaryPastelOrange] = QColor(255, 233, 208); + m_defaultsMap[RotaryPastelYellow] = QColor(249, 255, 208); + + m_defaultsMap[MatrixKeyboardFocus] = QColor(224, 112, 8); + + // m_defaultsMap[RotaryPlugin] = QColor(185, 255, 248); + m_defaultsMap[RotaryPlugin] = QColor(185, 200, 248); + // m_defaultsMap[RotaryPlugin] = QColor(185, 185, 185); + + m_defaultsMap[RotaryMeter] = QColor(255, 100, 0); + + m_defaultsMap[MarkerBackground] = QColor(185, 255, 248); + + m_defaultsMap[QuickMarker] = Qt::red; + + // m_defaultsMap[MuteTrackLED] = QColor(218, 190, 230, QColor::Hsv); + m_defaultsMap[MuteTrackLED] = QColor(211, 194, 238, QColor::Hsv); + m_defaultsMap[RecordMIDITrackLED] = QColor(45, 250, 225, QColor::Hsv); + m_defaultsMap[RecordAudioTrackLED] = QColor(0, 250, 225, QColor::Hsv); + + m_defaultsMap[PlaybackFaderOutline] = QColor(211, 194, 238, QColor::Hsv); + m_defaultsMap[RecordFaderOutline] = QColor(0, 250, 225, QColor::Hsv); +} + +GUIPalette* GUIPalette::getInstance() +{ + if (!m_instance) m_instance = new GUIPalette(); + return m_instance; +} + +const char* const GUIPalette::ActiveRecordTrack = "activerecordtrack"; + + +const char* const GUIPalette::SegmentCanvas = "segmentcanvas"; +const char* const GUIPalette::SegmentBorder = "segmentborder"; +const char* const GUIPalette::RecordingInternalSegmentBlock = "recordinginternalsegmentblock"; +const char* const GUIPalette::RecordingAudioSegmentBlock = "recordingaudiosegmentblock"; +const char* const GUIPalette::RecordingSegmentBorder = "recordingsegmentborder"; + +const char* const GUIPalette::RepeatSegmentBorder = "repeatsegmentborder"; + +const char* const GUIPalette::SegmentAudioPreview = "segmentaudiopreview"; +const char* const GUIPalette::SegmentInternalPreview = "segmentinternalpreview"; +const char* const GUIPalette::SegmentLabel = "segmentlabel"; +const char* const GUIPalette::SegmentSplitLine = "segmentsplitline"; + +const char* const GUIPalette::MatrixElementBorder = "matrixelementborder"; +const char* const GUIPalette::MatrixElementBlock = "matrixelementblock"; +const char* const GUIPalette::MatrixOverlapBlock = "matrixoverlapblock"; + +const char* const GUIPalette::LoopRulerBackground = "looprulerbackground"; +const char* const GUIPalette::LoopRulerForeground = "looprulerforeground"; +const char* const GUIPalette::LoopHighlight = "loophighlight"; + +const char* const GUIPalette::TempoBase = "tempobase"; + +const char* const GUIPalette::TextRulerBackground = "textrulerbackground"; +const char* const GUIPalette::TextRulerForeground = "textrulerforeground"; + +const char* const GUIPalette::ChordNameRulerBackground = "chordnamerulerbackground"; +const char* const GUIPalette::ChordNameRulerForeground = "chordnamerulerforeground"; + +const char* const GUIPalette::RawNoteRulerBackground = "rawnoterulerbackground"; +const char* const GUIPalette::RawNoteRulerForeground = "rawnoterulerforeground"; + +const char* const GUIPalette::LevelMeterGreen = "levelmetergreen"; +const char* const GUIPalette::LevelMeterOrange = "levelmeterorange"; +const char* const GUIPalette::LevelMeterRed = "levelmeterred"; + +const char* const GUIPalette::LevelMeterSolidGreen = "levelmetersolidgreen"; +const char* const GUIPalette::LevelMeterSolidOrange = "levelmetersolidorange"; +const char* const GUIPalette::LevelMeterSolidRed = "levelmetersolidred"; + +const char* const GUIPalette::BarLine = "barline"; +const char* const GUIPalette::BarLineIncorrect = "barlineincorrect"; +const char* const GUIPalette::BeatLine = "beatline"; +const char* const GUIPalette::SubBeatLine = "subbeatline"; +const char* const GUIPalette::StaffConnectingLine = "staffconnectingline"; +const char* const GUIPalette::StaffConnectingTerminatingLine = "staffconnectingterminatingline"; + +const char* const GUIPalette::Pointer = "pointer"; +const char* const GUIPalette::PointerRuler = "pointerruler"; + +const char* const GUIPalette::InsertCursor = "insertcursor"; +const char* const GUIPalette::InsertCursorRuler = "insertcursorruler"; + +const char* const GUIPalette::TrackDivider = "trackdivider"; +const char* const GUIPalette::MovementGuide = "movementguide"; +const char* const GUIPalette::SelectionRectangle = "selectionrectangle"; +const char* const GUIPalette::SelectedElement = "selectedelement"; + +const int GUIPalette::SelectedElementHue = 225; +const int GUIPalette::SelectedElementMinValue = 220; +const int GUIPalette::HighlightedElementHue = 25; +const int GUIPalette::HighlightedElementMinValue = 220; +const int GUIPalette::QuantizedNoteHue = 69; +const int GUIPalette::QuantizedNoteMinValue = 140; +const int GUIPalette::TriggerNoteHue = 4; +const int GUIPalette::TriggerNoteMinValue = 140; +const int GUIPalette::OutRangeNoteHue = 0; +const int GUIPalette::OutRangeNoteMinValue = 200; + +const int GUIPalette::CollisionHaloHue = 42; +const int GUIPalette::CollisionHaloSaturation = 200; + +const char* const GUIPalette::TextAnnotationBackground = "textannotationbackground"; + +const char* const GUIPalette::TextLilyPondDirectiveBackground = "textlilyponddirectivebackground"; + +const char* const GUIPalette::AudioCountdownBackground = "audiocountdownbackground"; +const char* const GUIPalette::AudioCountdownForeground = "audiocountdownforeground"; + +const char* const GUIPalette::RotaryFloatBackground = "rotaryfloatbackground"; +const char* const GUIPalette::RotaryFloatForeground = "rotaryfloatforeground"; + +const char* const GUIPalette::RotaryPastelBlue = "rotarypastelblue"; +const char* const GUIPalette::RotaryPastelRed = "rotarypastelred"; +const char* const GUIPalette::RotaryPastelGreen = "rotarypastelgreen"; +const char* const GUIPalette::RotaryPastelOrange = "rotarypastelorange"; +const char* const GUIPalette::RotaryPastelYellow = "rotarypastelyellow"; + +const char* const GUIPalette::MatrixKeyboardFocus = "matrixkeyboardfocus"; + +const char* const GUIPalette::RotaryPlugin = "rotaryplugin"; + +const char* const GUIPalette::RotaryMeter = "rotarymeter"; + +const char* const GUIPalette::MarkerBackground = "markerbackground"; + +const char* const GUIPalette::QuickMarker = "quickmarker"; + +const char* const GUIPalette::MuteTrackLED = "mutetrackled"; +const char* const GUIPalette::RecordMIDITrackLED = "recordmiditrackled"; +const char* const GUIPalette::RecordAudioTrackLED = "recordaudiotrackled"; + +const char* const GUIPalette::PlaybackFaderOutline = "playbackfaderoutline"; +const char* const GUIPalette::RecordFaderOutline = "recordfaderoutline"; + + +GUIPalette* GUIPalette::m_instance = 0; + +// defines which index in the document's colourmap should be used as the color +// when creating new audio segments from recordings, or inserting from the +// audio file manager (presumes a file derived from the updated autoload.rg +// that shipped along with this change) +const int GUIPalette::AudioDefaultIndex = 1; + +} |