/*
- Copyright (C) 2000-2016 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
+ * Copyright (C) 2016-2017 Robin Gareus <robin@gareus.org>
+ * Copyright (C) 2016-2019 Paul Davis <paul@linuxaudiosystems.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
#include <cmath>
#include <errno.h>
+#include <gtkmm/stock.h>
+
#include "fix_carbon.h"
#include "pbd/gstdio_compat.h"
-#include "gtkmm2ext/cell_renderer_color_selector.h"
-#include "gtkmm2ext/utils.h"
-
#include "pbd/compose.h"
#include "pbd/file_utils.h"
#include "pbd/replace_all.h"
#include "ardour/filesystem_paths.h"
#include "ardour/profile.h"
+#include "gtkmm2ext/cell_renderer_color_selector.h"
+#include "gtkmm2ext/utils.h"
+
#include "canvas/container.h"
#include "canvas/rectangle.h"
#include "canvas/scroll_group.h"
-#include "canvas/wave_view.h"
+
+#include "waveview/wave_view.h"
#include "ardour_dialog.h"
#include "color_theme_manager.h"
using namespace Gtk;
using namespace PBD;
using namespace ARDOUR;
+using namespace Gtkmm2ext;
using namespace ARDOUR_UI_UTILS;
ColorThemeManager::ColorThemeManager ()
}
Gtk::HBox* hbox = Gtk::manage (new Gtk::HBox());
- Gtk::Alignment* align = Gtk::manage (new Gtk::Alignment);
- align->set (0, 0.5);
+ Gtk::Alignment* align = Gtk::manage (new Gtk::Alignment (0, 0.5, 0, 1.0));
align->add (color_theme_dropdown);
hbox->set_spacing (6);
hbox->pack_start (color_theme_label, false, false);
table.attach (notebook, 0, 3, n, n + 1);
++n;
- table.attach (reset_button, 0, 3, n, n + 1);
+
+ Alignment* a = manage (new Alignment (0, 0.5, 0, 1.0));
+ a->add (reset_button);
+ table.attach (*a, 0, 1, n, n + 1);
color_dialog.get_colorsel()->set_has_opacity_control (true);
color_dialog.get_colorsel()->set_has_palette (true);
ColorThemeManager::~ColorThemeManager ()
{
- if (palette_group) {
- palette_group->clear (true);
+ if (palette_group) {
+ palette_group->clear (true);
delete palette_group;
}
}
struct NamedColor {
string name;
- ArdourCanvas::HSV color;
- NamedColor (string s, ArdourCanvas::HSV c) : name (s), color (c) {}
+ Gtkmm2ext::HSV color;
+ NamedColor (string s, Gtkmm2ext::HSV c) : name (s), color (c) {}
};
-struct SortByHue {
+struct SortNamedColor {
bool operator() (NamedColor const & a, NamedColor const & b) {
- using namespace ArdourCanvas;
- const HSV black (0, 0, 0);
- if (a.color.is_gray() || b.color.is_gray()) {
- return black.distance (a.color) < black.distance (b.color);
- } else {
- return a.color.h < b.color.h;
- // const HSV red (rgba_to_color (1.0, 0.0, 0.0, 1.0));
- // return red.distance (a.color) < red.distance (b.color);
- }
+ return a.name < b.name;
}
};
for (UIConfiguration::Colors::const_iterator x = colors.begin(); x != colors.end(); ++x) {
nc.push_back (NamedColor (x->first, HSV (x->second)));
}
- SortByHue sorter;
+ SortNamedColor sorter;
sort (nc.begin(), nc.end(), sorter);
const uint32_t color_limit = nc.size();
using namespace ArdourCanvas;
double r,g, b, a;
UIConfiguration* uic (&UIConfiguration::instance());
- ArdourCanvas::Color c = uic->color (name);
+ Gtkmm2ext::Color c = uic->color (name);
Gdk::Color gdkcolor;
color_to_rgba (c, r, g, b, a);