diff options
author | Robert Jonsson <spamatica@gmail.com> | 2010-10-13 19:34:22 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2010-10-13 19:34:22 +0000 |
commit | 8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch) | |
tree | 064ad3f2bf8daab0ad27b128abd86a9bbdb1e496 /muse2/muse/widgets/musewidgetsplug.cpp | |
parent | a27706d9629e8b592cca4659f865b70adef24e6d (diff) |
new branch muse2, first checkin
Diffstat (limited to 'muse2/muse/widgets/musewidgetsplug.cpp')
-rw-r--r-- | muse2/muse/widgets/musewidgetsplug.cpp | 539 |
1 files changed, 539 insertions, 0 deletions
diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp new file mode 100644 index 00000000..4a7f5f24 --- /dev/null +++ b/muse2/muse/widgets/musewidgetsplug.cpp @@ -0,0 +1,539 @@ +//========================================================= +// MusE +// Linux Music Editor +// $Id: musewidgetsplug.cpp,v 1.9.2.9 2009/12/01 03:52:40 terminator356 Exp $ +// (C) Copyright 2001-2003 Werner Schweer (ws@seh.de) +//========================================================= + +// this file makes some of the MusE widgets available +// to QT-Designer + +#include <qwidgetplugin.h> +//Added by qt3to4: +#include <QPixmap> +#include "posedit.h" +#include "poslabel.h" +#include "pitchedit.h" +#include "pitchlabel.h" +#include "sig.h" +#include "tempo.h" +#include "tempolabel.h" +#include "sigedit.h" +#include "slider.h" +#include "doublelabel.h" +#include "checkbox.h" +#include "combobox.h" +#include "gconfig.h" + +int sampleRate = 44100; // some dummy values to get things compiled/linked +int division = 384; +int mtcType = 0; +bool hIsB = false; + +static const char* vall[] = { + "c","c#","d","d#","e","f","f#","g","g#","a","a#","h" + }; +static const char* valu[] = { + "C","C#","D","D#","E","F","F#","G","G#","A","A#","H" + }; + +GlobalConfigValues config = { + { + QColor(0xff, 0xff, 0xff), // palette + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff), + QColor(0xff, 0xff, 0xff) + }, + { + QColor(255, 232, 140), // part colors + QColor(0xff, 0x00, 0x00), + QColor(0x00, 0xff, 0x00), + QColor(0x00, 0x00, 0xff), + QColor(0xff, 0xff, 0x00), + QColor(0x00, 0xff, 0xff), + QColor(0xff, 0x00, 0xff), + QColor(0x9f, 0xc7, 0xef), + QColor(0x00, 0xff, 0x7f), + QColor(0x7f, 0x00, 0x00), + QColor(0x00, 0x7f, 0x00), + QColor(0x00, 0x00, 0x7f), + QColor(0x7f, 0x7f, 0x3f), + QColor(0x00, 0x7f, 0x7f), + QColor(0x7f, 0x00, 0x7f), + QColor(0x00, 0x7f, 0xff), + QColor(0x00, 0x3f, 0x3f) + }, + QColor(0, 0, 255), // transportHandleColor; + QColor(255, 0, 0), // bigTimeForegroundColor; + QColor(0, 0, 0), // bigTimeBackgroundColor; + QColor(200, 200, 200), // waveEditBackgroundColor; + { + QFont(QString("arial"), 10, QFont::Normal), + QFont(QString("arial"), 8, QFont::Normal), + QFont(QString("arial"), 10, QFont::Normal), + QFont(QString("arial"), 10, QFont::Bold), + QFont(QString("arial"), 8, QFont::Bold), // timescale numbers + QFont(QString("Lucidatypewriter"), 14, QFont::Bold), + QFont(QString("arial"), 8, QFont::Bold, true) // Mixer strip labels. Looks and fits better with bold + italic than bold alone, + // at the price of only few more pixels than Normal mode. + }, + QColor(0xff, 0xff, 0xff), // trackBg; + QColor(0x80, 0xff, 0x80), // selected track Bg; + QColor(0x00, 0x00, 0x00), // selected track Fg; + QColor(0xff, 0xff, 0xff), // midiTrackBg; + QColor(255, 170, 0), // ctrlGraphFg; Medium orange + QColor(0xff, 0xff, 0xff), // drumTrackBg; + QColor(0xff, 0xff, 0xff), // waveTrackBg; + QColor(0xff, 0xff, 0xff), // outputTrackBg; + QColor(0xff, 0xff, 0xff), // inputTrackBg; + QColor(0xff, 0xff, 0xff), // groupTrackBg; + QColor(0xff, 0xff, 0xff), // auxTrackBg; + QColor(0xff, 0xff, 0xff), // synthTrackBg; + QColor(98, 124, 168), // part canvas bg + QColor(98, 124, 168), // mixerBg; + + 384, // division; + 1024, // rtcTicks + -60, // int minMeter; + -60.0, // double minSlider; + false, // use Jack freewheel + 20, // int guiRefresh; + QString(""), // helpBrowser + true, // extendedMidi + 384, // division for smf export + QString(""), // copyright string for smf export + 1, // smf export file format + false, // midi export file 2 byte timesigs instead of 4 + true, // optimize midi export file note offs + true, // Split imported tracks into multiple parts. + 1, // startMode + QString(""), // start song path + 384, // gui division + QRect(0, 0, 400, 300), // GeometryMain; + QRect(0, 0, 200, 100), // GeometryTransport; + QRect(0, 0, 600, 200), // GeometryBigTime; + QRect(0, 0, 400, 300), // GeometryPianoroll; + QRect(0, 0, 400, 300), // GeometryDrumedit; + //QRect(0, 0, 300, 500), // GeometryMixer; // Obsolete + { + QString("Mixer A"), + QRect(0, 0, 300, 500), // Mixer1 + true, true, true, true, + true, true, true, true + }, + { + QString("Mixer B"), + QRect(200, 200, 300, 500), // Mixer2 + true, true, true, true, + true, true, true, true + }, + true, // TransportVisible; + false, // BigTimeVisible; + false, // mixer1Visible; + false, // mixer2Visible; + + false, // markerVisible; // This line was missing 2007-01-08 (willyfoobar) + true, // showSplashScreen + 1, // canvasShowPartType 1 - names, 2 events + 5, // canvasShowPartEvent + false, // canvasShowGrid; + QString(""), // canvasBgPixmap; + QString(""), // style + QString(""), // externalWavEditor //this line was missing 2007-01-08 (willyfoobar) + false, // useOldStyleStopShortCut + true, // moveArmedCheckBox + true, // useDenormalBias + false, // useOutputLimiter + true, // showDidYouKnow + false // vstInPlace Enable VST in-place processing + 44100, // Dummy audio preferred sample rate + 512 // Dummy audio buffer size + }; + +//--------------------------------------------------------- +// pitch2string +//--------------------------------------------------------- + +QString pitch2string(int v) + { + if (v < 0 || v > 127) + return QString("----"); + int octave = (v / 12) - 2; + QString o; + o.sprintf("%d", octave); + int i = v % 12; + QString s(octave < 0 ? valu[i] : vall[i]); + if (hIsB) { + if (s == "h") + s = "b"; + else if (s == "H") + s = "B"; + } + return s + o; + } + + +/* XPM */ +static const char* slider_pixmap[]={ +"22 22 50 1", +". c None", +"f c #004005", +"g c #004007", +"h c #004107", +"m c #004108", +"j c #00430a", +"E c #00501f", +"s c #005021", +"e c #014006", +"l c #024006", +"F c #095e34", +"D c #0b572a", +"k c #0b582b", +"n c #0f5328", +"u c #12562d", +"o c #155a35", +"p c #165c38", +"q c #165c39", +"i c #17501a", +"I c #175522", +"r c #18603f", +"N c #18795e", +"t c #187a60", +"R c #1e5a29", +"y c #22633d", +"O c #307755", +"B c #408262", +"v c #439191", +"G c #468667", +"d c #4c7a51", +"H c #4d8a6c", +"J c #569174", +"C c #599276", +"P c #5e967a", +"A c #63b1c2", +"V c #659477", +"Q c #659b80", +"S c #6da087", +"w c #70b2bc", +"x c #72b5c0", +"z c #74b7c3", +"K c #79a891", +"a c #7ea48a", +"T c #8cb4a0", +"L c #a3c3b3", +"M c #b7d8d1", +"U c #bedcd5", +"c c #c3d2c3", +"b c #f1f5f1", +"# c #ffffff", +"......................", +"......................", +"......................", +"......................", +"......................", +"......###a............", +"......#bcad...........", +"......#bcad...........", +"......#bcad...........", +"..efgh#bcaihhhhhhhjk..", +".lmnop#bcaippppppqrst.", +".huvwx#bcayxxxxxxzABC.", +".DEFGH#bcaIHHHHHHJKLM.", +"..NOPQ#bcaRQQQQQQSTU..", +"......#bcad...........", +"......#bcad...........", +"......#bcad...........", +"......VVVVd...........", +".......dddd...........", +"......................", +"......................", +"......................"}; +static const char *posedit_pixmap[] = { + "22 22 8 1", + " c Gray100", + ". c Gray97", + "X c #4f504f", + "o c #00007f", + "O c Gray0", + "+ c none", + "@ c Gray0", + "# c Gray0", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "+OOOOOOOOOOOOOOOOOOOO+", + "OOXXXXXXXXXXXXXXXXXXOO", + "OXX. OO OO O", + "OX. oo O O", + "OX. oo O .O", + "OX ooo oooo O O", + "OX oo oo oo O O", + "OX oooo oo oo O O", + "OX oo oo oo oo O O", + "OX oo oo oo oo O O", + "OX oooo oooo O O", + "OX OO OO O", + "OO..................OO", + "+OOOOOOOOOOOOOOOOOOOO+", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++" + }; + +static const char *pitchedit_pixmap[] = { + "22 22 8 1", + " c Gray100", + ". c Gray97", + "X c #4f504f", + "o c #00007f", + "O c Gray0", + "+ c none", + "@ c Gray0", + "# c Gray0", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "+OOOOOOOOOOOOOOOOOOOO+", + "OOXXXXXXXXXXXXXXXXXXOO", + "OXX. OO OO O", + "OX. o O O", + "OX. oo O .O", + "OX o o O O", + "OX o O O", + "OX o o O O", + "OX oooo O O", + "OX o O O", + "OX O O", + "OX OO OO O", + "OO..................OO", + "+OOOOOOOOOOOOOOOOOOOO+", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++" + }; + +//--------------------------------------------------------- +// MusEPlugin +//--------------------------------------------------------- + +class MusEPlugin : public QWidgetPlugin { + public: + MusEPlugin() {} + ~MusEPlugin() {} + QStringList keys() const; + QWidget* create(const QString& key, QWidget* parent=0, + const char* name = 0); + QString group(const QString& key) const; + QIcon iconSet(const QString& key) const; + QString includeFile(const QString& key) const; + QString toolTip(const QString& key) const; + QString whatsThis(const QString& key) const; + bool isContainer(const QString& key) const; + }; + +//--------------------------------------------------------- +// keys +//--------------------------------------------------------- + +QStringList MusEPlugin::keys() const + { + QStringList list; + list << QString("PosEdit") + << QString("PitchEdit") + << QString("PosLabel") + << QString("PitchLabel") + << QString("TempoLabel") + << QString("TempoEdit") + << QString("SigEdit") + << QString("Slider") + << QString("DoubleLabel") + << QString("CheckBox") + << QString("ComboBox") + ; + return list; + } + +//--------------------------------------------------------- +// create +//--------------------------------------------------------- + +QWidget* MusEPlugin::create(const QString& key, QWidget* parent, + const char* name) + { + if (key == QString("PosEdit")) + return new PosEdit(parent, name); + else if (key == QString("PitchEdit")) + return new PitchEdit(parent, name); + else if (key == QString("PitchLabel")) + return new PitchLabel(parent, name); + else if (key == QString("PosLabel")) + return new PosLabel(parent, name); + else if (key == QString("TempoLabel")) + return new TempoLabel(parent, name); + else if (key == QString("TempoEdit")) + return new TempoEdit(parent, name); + else if (key == QString("SigEdit")) + return new SigEdit(parent, name); + else if (key == QString("Slider")) + return new Slider(parent, name); + else if (key == QString("DoubleLabel")) + return new DoubleLabel(parent, name); + else if (key == QString("CheckBox")) + return new CheckBox(parent, -1, name); + else if (key == QString("ComboBox")) + return new ComboBox(parent, name); + return 0; + } + +//--------------------------------------------------------- +// group +//--------------------------------------------------------- + +QString MusEPlugin::group(const QString& /*key*/) const + { + return QString("MusE"); + } + +//--------------------------------------------------------- +// iconSet +//--------------------------------------------------------- + +QIcon MusEPlugin::iconSet(const QString& key) const + { + if (key == "PosEdit" || key == "PosLabel") + return QIcon(QPixmap(posedit_pixmap)); + else if (key == "PitchEdit" || key == "PitchLabel") + return QIcon(QPixmap(pitchedit_pixmap)); + else if (key == "TempoEdit" || key == "TempoLabel") + return QIcon(QPixmap(pitchedit_pixmap)); + else if (key == "SigEdit") + return QIcon(QPixmap(pitchedit_pixmap)); + else if (key == QString("Slider")) + return QIcon(QPixmap(slider_pixmap)); +// else if (key == QString("CheckBox")) +// return QIconSet(QPixmap(slider_pixmap)); +// else if (key == QString("ComboBox")) +// return QIconSet(QPixmap(slider_pixmap)); + return QIcon(); + } + +//--------------------------------------------------------- +// includeFile +//--------------------------------------------------------- + +QString MusEPlugin::includeFile(const QString& key) const + { + if (key == QString("PosEdit")) + return QString("posedit.h"); + else if (key == QString("PitchEdit")) + return QString("pitchedit.h"); + else if (key == QString("PitchLabel")) + return QString("pitchlabel.h"); + else if (key == QString("PosLabel")) + return QString("poslabel.h"); + else if (key == QString("TempoLabel")) + return QString("tempolabel.h"); + else if (key == QString("TempoEdit")) + return QString("tempolabel.h"); + else if (key == QString("SigEdit")) + return QString("sigedit.h"); + else if (key == QString("Slider")) + return QString("slider.h"); + else if (key == QString("DoubleLabel")) + return QString("dentry.h"); + else if (key == QString("CheckBox")) + return QString("checkbox.h"); + else if (key == QString("ComboBox")) + return QString("combobox.h"); + return QString::null; + } + +//--------------------------------------------------------- +// toolTip +//--------------------------------------------------------- + +QString MusEPlugin::toolTip (const QString& key) const + { + if (key == QString("PosEdit")) + return QString("midi time position editor"); + else if (key == QString("PitchEdit")) + return QString("midi pitch spinbox"); + else if (key == QString("PitchLabel")) + return QString("midi pitch label"); + else if (key == QString("PosLabel")) + return QString("midi time position label"); + else if (key == QString("TempoLabel")) + return QString("midi tempo label"); + else if (key == QString("TempoEdit")) + return QString("midi tempo spinbox"); + else if (key == QString("SigEdit")) + return QString("midi signature spinbox"); + else if (key == QString("Slider")) + return QString("slider for double values"); + else if (key == QString("DoubleLabel")) + return QString("entry/label for double values"); + else if (key == QString("CheckBox")) + return QString("checkbox with id"); + else if (key == QString("ComboBox")) + return QString("combobox with id"); + return QString::null; + } + +//--------------------------------------------------------- +// whatsThis +//--------------------------------------------------------- + +QString MusEPlugin::whatsThis (const QString& key) const + { + if (key == QString("PosEdit")) + return QString("midi time position editor"); + else if (key == QString("PitchEdit")) + return QString("midi pitch spinbox"); + else if (key == QString("PitchLabel")) + return QString("midi pitch label"); + else if (key == QString("PosLabel")) + return QString("midi time position label"); + else if (key == QString("TempoLabel")) + return QString("midi tempo label"); + else if (key == QString("TempoEdit")) + return QString("midi tempo spinbox"); + else if (key == QString("SigEdit")) + return QString("midi signature spinbox"); + else if (key == QString("Slider")) + return QString("slider for double values"); + else if (key == QString("DoubleLabel")) + return QString("entry/label for double values"); + else if (key == QString("CheckBox")) + return QString("checkbox with id"); + else if (key == QString("ComboBox")) + return QString("combobox with id"); + return QString::null; + } + +//--------------------------------------------------------- +// isContainer +//--------------------------------------------------------- + +bool MusEPlugin::isContainer (const QString& /*key*/) const + { + return false; + } + +Q_EXPORT_PLUGIN(MusEPlugin) + |