From 05bb6ad8f1ad6d3abf835a9ad91a5b42f90db920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Fri, 21 Apr 2017 21:42:29 +0200 Subject: Add AboutTab class instead of having a TextEdit widget as tab. --- plugin/Makefile.mingw32.in | 1 + plugingui/Makefile.am | 1 + plugingui/abouttab.cc | 96 ++++++++++++++++++++++++++++++++++++++++++++++ plugingui/abouttab.h | 58 ++++++++++++++++++++++++++++ plugingui/mainwindow.cc | 52 +------------------------ plugingui/mainwindow.h | 14 ++----- 6 files changed, 160 insertions(+), 62 deletions(-) create mode 100644 plugingui/abouttab.cc create mode 100644 plugingui/abouttab.h diff --git a/plugin/Makefile.mingw32.in b/plugin/Makefile.mingw32.in index ffdb28b..5f588f9 100644 --- a/plugin/Makefile.mingw32.in +++ b/plugin/Makefile.mingw32.in @@ -47,6 +47,7 @@ DG_CFLAGS = -I@top_srcdir@ -I@top_srcdir@/include -I@top_srcdir@/src \ # -DDISABLE_HUGIN GUI_SRC = \ + @top_srcdir@/plugingui/abouttab.cc \ @top_srcdir@/plugingui/button.cc \ @top_srcdir@/plugingui/button_base.cc \ @top_srcdir@/plugingui/checkbox.cc \ diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am index 2be22fb..f6bd705 100644 --- a/plugingui/Makefile.am +++ b/plugingui/Makefile.am @@ -47,6 +47,7 @@ libdggui_la_LIBADD = \ # If you add a file here, remember to add it to plugin/Makefile.mingw32.in nodist_libdggui_la_SOURCES = \ + abouttab.cc \ button.cc \ button_base.cc \ checkbox.cc \ diff --git a/plugingui/abouttab.cc b/plugingui/abouttab.cc new file mode 100644 index 0000000..ffbe12a --- /dev/null +++ b/plugingui/abouttab.cc @@ -0,0 +1,96 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + * abouttab.cc + * + * Fri Apr 21 18:51:13 CEST 2017 + * Copyright 2017 André Nusser + * andre.nusser@googlemail.com + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include "abouttab.h" + +#include + +#include "utf8.h" + +namespace GUI +{ + +AboutTab::AboutTab(Widget* parent) + : Widget(parent) +{ + text_edit.setText(getAboutText()); + text_edit.setReadOnly(true); + text_edit.resize(width() - 2*margin, height() - 2*margin); + text_edit.move(margin, margin); +} + +void AboutTab::resize(std::size_t width, std::size_t height) +{ + Widget::resize(width, height); + text_edit.resize(width - 2*margin, height - 2*margin); +} + +std::string AboutTab::getAboutText() +{ + std::string about_text; + + // About + about_text.append( + "=============\n" + " About\n" + "=============\n" + "\n"); + about_text.append(about.data()); + + // Version + about_text.append( + "\n" + "\n" + "=============\n" + " Version\n" + "=============\n" + "\n"); + about_text.append(std::string(VERSION) + "\n"); + + // Authors + about_text.append( + "\n" + "\n" + "=============\n" + " Authors\n" + "=============\n" + "\n"); + about_text.append(UTF8().toLatin1(authors.data())); + + // GPL + about_text.append( + "\n" + "\n" + "=============\n" + " License\n" + "=============\n" + "\n"); + about_text.append(gpl.data()); + + return about_text; +} + +} // GUI:: diff --git a/plugingui/abouttab.h b/plugingui/abouttab.h new file mode 100644 index 0000000..556b5bb --- /dev/null +++ b/plugingui/abouttab.h @@ -0,0 +1,58 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + * abouttab.h + * + * Fri Apr 21 18:51:13 CEST 2017 + * Copyright 2017 André Nusser + * andre.nusser@googlemail.com + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#pragma once + +#include "widget.h" +#include "resource.h" +#include "textedit.h" + +#include + +namespace GUI +{ + +class AboutTab + : public Widget +{ +public: + AboutTab(Widget* parent); + + // From Widget: + void resize(std::size_t width, std::size_t height) override; + +private: + std::string getAboutText(); + + TextEdit text_edit{this}; + std::size_t margin{10}; + + Resource about{":../ABOUT"}; + Resource authors{":../AUTHORS"}; + Resource gpl{":../COPYING"}; +}; + +} // GUI:: diff --git a/plugingui/mainwindow.cc b/plugingui/mainwindow.cc index c8cfb71..071bafe 100644 --- a/plugingui/mainwindow.cc +++ b/plugingui/mainwindow.cc @@ -30,7 +30,6 @@ #include #include "painter.h" -#include "utf8.h" #include @@ -50,12 +49,8 @@ MainWindow::MainWindow(Settings& settings, void* native_window) setCaption("DrumGizmo v" VERSION); tabs.move(16, 0); // x-offset to make room for the left side bar. - tabs.addTab("Main", &main_tab); - tabs.addTab("About", &about_text_field); - - about_text_field.setText(getAboutText()); - about_text_field.setReadOnly(true); + tabs.addTab("About", &about_tab); } MainWindow::~MainWindow() @@ -129,49 +124,4 @@ void MainWindow::closeEventHandler() closing = true; } -std::string MainWindow::getAboutText() -{ - std::string about_text; - - // About - about_text.append( - "=============\n" - " About\n" - "=============\n" - "\n"); - about_text.append(about.data()); - - // Version - about_text.append( - "\n" - "\n" - "=============\n" - " Version\n" - "=============\n" - "\n"); - about_text.append(std::string(VERSION) + "\n"); - - // Authors - about_text.append( - "\n" - "\n" - "=============\n" - " Authors\n" - "=============\n" - "\n"); - about_text.append(UTF8().toLatin1(authors.data())); - - // GPL - about_text.append( - "\n" - "\n" - "=============\n" - " License\n" - "=============\n" - "\n"); - about_text.append(gpl.data()); - - return about_text; -} - } // GUI:: diff --git a/plugingui/mainwindow.h b/plugingui/mainwindow.h index cd2eb1f..7f95794 100644 --- a/plugingui/mainwindow.h +++ b/plugingui/mainwindow.h @@ -28,9 +28,8 @@ #include -#include "frame.h" +#include "abouttab.h" #include "image.h" -#include "textedit.h" #include "tabwidget.h" #include "texturedbox.h" #include "window.h" @@ -62,15 +61,12 @@ private: // From Widget void repaintEvent(RepaintEvent* repaintEvent) override final; - std::string getAboutText(); - - TabWidget tabs{this}; - Config config; SettingsNotifier settings_notifier; + TabWidget tabs{this}; MainTab main_tab; - TextEdit about_text_field{&tabs}; + AboutTab about_tab{&tabs}; Image back{":resources/bg.png"}; Image logo{":resources/logo.png"}; @@ -87,10 +83,6 @@ private: bool closing{false}; - Resource about{":../ABOUT"}; - Resource authors{":../AUTHORS"}; - Resource gpl{":../COPYING"}; - Font font; }; -- cgit v1.2.3