1
//=========================================================
4
// $Id: ctrledit.cpp,v 1.1 2002/01/30 12:08:38 muse Exp $
5
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
6
//=========================================================
10
#include "ctrlcanvas.h"
11
#include "midieditor.h"
14
#include "ctrlpanel.h"
18
#include <qtoolbutton.h>
19
#include <qpopupmenu.h>
22
//---------------------------------------------------------
24
//---------------------------------------------------------
26
void CtrlEdit::setTool(int t)
31
//---------------------------------------------------------
33
//---------------------------------------------------------
35
CtrlEdit::CtrlEdit(QWidget* parent, MidiEditor* e, int xmag,
36
bool expand=false, const char* name = 0) : QWidget(parent, name)
38
QHBoxLayout* hbox = new QHBoxLayout(this);
39
panel = new CtrlPanel(this, e, "panel");
40
canvas = new CtrlCanvas(e, this, xmag, "ctrlcanvas");
41
QWidget* vscale = new VScale(this);
43
canvas->setOrigin(-(division/4), 0);
45
canvas->setMinimumHeight(50);
46
panel->setFixedWidth(40);
48
hbox->addWidget(panel, expand ? 100 : 0, AlignRight);
49
hbox->addWidget(canvas, 100);
50
hbox->addWidget(vscale, 0);
52
connect(panel, SIGNAL(destroyPanel()), SLOT(destroy()));
53
connect(panel, SIGNAL(controllerChanged(const MidiController&)),
54
canvas, SLOT(setController(const MidiController&)));
55
connect(canvas, SIGNAL(xposChanged(int)), SIGNAL(timeChanged(int)));
56
connect(canvas, SIGNAL(yposChanged(int)), SIGNAL(yposChanged(int)));
59
//---------------------------------------------------------
61
//---------------------------------------------------------
63
void CtrlEdit::writeStatus(int level, Xml& xml)
65
xml.tag(level++, "ctrledit");
66
canvas->controller().write(level, xml);
67
xml.tag(level, "/ctrledit");
70
//---------------------------------------------------------
72
//---------------------------------------------------------
74
void CtrlEdit::readStatus(Xml& xml)
77
Xml::Token token = xml.parse();
78
const QString& tag = xml.s1();
87
canvas->setController(ctrl);
90
xml.unknown("CtrlEdit");
93
if (tag == "ctrledit")
101
//---------------------------------------------------------
103
//---------------------------------------------------------
105
void CtrlEdit::destroy()
107
emit destroyedCtrl(this);
108
close(true); // close and destroy widget