summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2014-10-21 14:55:56 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2014-10-21 14:55:56 +0200
commit4c4c5e8f3f6069977289055903ae54b7affcba23 (patch)
tree664b8183052bcc02a5c177d83a2ea534c7e4e6d6
parentb1a0139e12be5a081a608834b22744100320841a (diff)
Added drumkit information widget and message to get drumkit information.
-rw-r--r--plugingui/plugingui.cc40
-rw-r--r--plugingui/plugingui.h3
-rw-r--r--src/drumgizmo.cc5
-rw-r--r--src/message.h27
4 files changed, 58 insertions, 17 deletions
diff --git a/plugingui/plugingui.cc b/plugingui/plugingui.cc
index f345660..053f082 100644
--- a/plugingui/plugingui.cc
+++ b/plugingui/plugingui.cc
@@ -228,6 +228,12 @@ void PluginGUI::handleMessage(Message *msg)
}
}
break;
+ case Message::DrumkitInfoMessage:
+ {
+ DrumkitInfoMessage *dim = (DrumkitInfoMessage*)msg;
+ drumkitinfo->setText(dim->metadata.version);
+ }
+ break;
case Message::EngineSettingsMessage:
{
EngineSettingsMessage *settings = (EngineSettingsMessage *)msg;
@@ -308,7 +314,10 @@ void PluginGUI::init()
window->eventHandler()->registerCloseHandler(closeEventHandler,
(void*)&closing);
- window->setFixedSize(370, 330);
+#define WINDOWXSIZE 670
+#define WINDOWYSIZE 330
+// window->setFixedSize(370, 330);
+ window->setFixedSize(670, 330);
window->setCaption("DrumGizmo v"VERSION);
GUI::Label *lbl_title = new GUI::Label(window);
@@ -318,7 +327,8 @@ void PluginGUI::init()
GUI::VerticalLine *l1 = new GUI::VerticalLine(window);
l1->move(20, 30);
- l1->resize(window->width() - 40, 2);
+// l1->resize(window->width() - 40, 2);
+ l1->resize(window->width() - 300 - 40, 2);
#define OFFSET1 17
#define OFFSET2 38
@@ -348,12 +358,14 @@ void PluginGUI::init()
y += OFFSET2;
progress = new GUI::ProgressBar(window);
progress->move(XOFFSET, y);
- progress->resize(window->width() - 2*XOFFSET, 11);
+// progress->resize(window->width() - 2*XOFFSET, 11);
+ progress->resize(window->width() - 300 - 2*XOFFSET, 11);
y += OFFSET3;
GUI::VerticalLine *l = new GUI::VerticalLine(window);
l->move(XOFFSET, y);
- l->resize(window->width() - 2*XOFFSET, 2);
+// l->resize(window->width() - 2*XOFFSET, 2);
+ l->resize(window->width() - 300 - 2*XOFFSET, 2);
}
// Midimap file
@@ -379,12 +391,14 @@ void PluginGUI::init()
y += OFFSET2;
progress2 = new GUI::ProgressBar(window);
progress2->move(XOFFSET, y);
- progress2->resize(window->width() - 2*XOFFSET, 11);
+// progress2->resize(window->width() - 2*XOFFSET, 11);
+ progress2->resize(window->width() - 300 - 2*XOFFSET, 11);
y += OFFSET3;
GUI::VerticalLine *l = new GUI::VerticalLine(window);
l->move(XOFFSET, y);
- l->resize(window->width() - 2*XOFFSET, 2);
+// l->resize(window->width() - 2*XOFFSET, 2);
+ l->resize(window->width() - 300 - 2*XOFFSET, 2);
}
{
@@ -432,12 +446,14 @@ void PluginGUI::init()
GUI::VerticalLine *l2 = new GUI::VerticalLine(window);
l2->move(20, 310 - 15 - 9);
- l2->resize(window->width() - 40, 2);
+// l2->resize(window->width() - 40, 2);
+ l2->resize(window->width() - 300 - 40, 2);
GUI::Label *lbl_version = new GUI::Label(window);
lbl_version->setText(".::. v"VERSION" .::. http://www.drumgizmo.org .::. GPLv3 .::.");
lbl_version->move(16, 300);
- lbl_version->resize(window->width(), 20);
+// lbl_version->resize(window->width(), 20);
+ lbl_version->resize(window->width() - 300, 20);
/*
{
GUI::ComboBox *cmb = new GUI::ComboBox(window);
@@ -447,6 +463,13 @@ void PluginGUI::init()
cmb->resize(70, 30);
}
*/
+
+ drumkitinfo = new GUI::TextEdit(window);
+// textedit->setText("Hello World\ten\tto\ttre fire fem seks syv otte ni ti elleve tolv tretten fjorten femten seksten sytten atten nitten \nHello World\nHello World\n");
+ drumkitinfo->move(370, 25);
+ drumkitinfo->resize(300, 300);
+
+
// Create filebrowser
filebrowser = new GUI::FileBrowser(window);
filebrowser->move(0, 0);
@@ -454,6 +477,7 @@ void PluginGUI::init()
filebrowser->hide();
fb = filebrowser;
+
// Enable quit button
// GUI::Button *btn_quit = new GUI::Button(window);
// btn_quit->setText("Quit");
diff --git a/plugingui/plugingui.h b/plugingui/plugingui.h
index f94a062..0f47c80 100644
--- a/plugingui/plugingui.h
+++ b/plugingui/plugingui.h
@@ -37,6 +37,7 @@
#include "knob.h"
#include "progressbar.h"
#include "pluginconfig.h"
+#include "textedit.h"
#include "filebrowser.h"
@@ -81,6 +82,8 @@ public:
GUI::LineEdit *lineedit2;
GUI::ProgressBar *progress2;
+ GUI::TextEdit *drumkitinfo;
+
Config *config;
void (*windowClosedHandler)(void *);
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc
index 0337fae..d6a48de 100644
--- a/src/drumgizmo.cc
+++ b/src/drumgizmo.cc
@@ -69,6 +69,11 @@ bool DrumGizmo::loadkit(std::string file)
return false;
}
+ DrumkitInfoMessage *msg = new DrumkitInfoMessage();
+ MetaData metadata = parser.getMetaData();
+ msg->metadata = metadata;
+ msghandler.sendMessage(MSGRCV_UI, msg);
+
loader.loadKit(&kit);
DEBUG(loadkit, "loadkit: Success\n");
diff --git a/src/message.h b/src/message.h
index 07b0300..4bcaead 100644
--- a/src/message.h
+++ b/src/message.h
@@ -29,6 +29,8 @@
#include <string>
+#include "drumkitparser.h"
+
class MessageHandler;
class Message {
@@ -43,6 +45,7 @@ public:
LoadMidimap, // Signal engine to load midimap.
EngineSettingsMessage, // Request or receive engine settings.
ChangeSettingMessage, // Update named setting in engine.
+ DrumkitInfoMessage // Drumkit information
} type_t;
typedef enum {
@@ -66,21 +69,27 @@ public:
};
class LoadStatusMessageMidimap : public Message {
-public:
- type_t type() { return Message::LoadStatusMidimap; }
- bool success;
+ public:
+ type_t type() { return Message::LoadStatusMidimap; }
+ bool success;
};
class LoadDrumKitMessage : public Message {
-public:
- type_t type() { return Message::LoadDrumKit; }
- std::string drumkitfile;
+ public:
+ type_t type() { return Message::LoadDrumKit; }
+ std::string drumkitfile;
};
class LoadMidimapMessage : public Message {
-public:
- type_t type() { return Message::LoadMidimap; }
- std::string midimapfile;
+ public:
+ type_t type() { return Message::LoadMidimap; }
+ std::string midimapfile;
+};
+
+class DrumkitInfoMessage : public Message {
+ public:
+ type_t type() { return Message::DrumkitInfoMessage; }
+ MetaData metadata;
};
class EngineSettingsMessage : public Message {