From 4c4c5e8f3f6069977289055903ae54b7affcba23 Mon Sep 17 00:00:00 2001 From: Jonas Suhr Christensen Date: Tue, 21 Oct 2014 14:55:56 +0200 Subject: Added drumkit information widget and message to get drumkit information. --- plugingui/plugingui.cc | 40 ++++++++++++++++++++++++++++++++-------- plugingui/plugingui.h | 3 +++ src/drumgizmo.cc | 5 +++++ src/message.h | 27 ++++++++++++++++++--------- 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 +#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 { -- cgit v1.2.3