diff --git a/gui/queue.cpp b/gui/queue.cpp index 6c8a6939..13760217 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -39,11 +40,7 @@ private: /** * Queue tab widgets */ - Gtk::HBox q_tab_box; - Gtk::Label q_tab_number; - Gtk::Label q_tab_size; - Gtk::Button q_tab_close; - + TempLabel *q_label; /** * Queue page widgets @@ -93,25 +90,19 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num) { builder = Gtk::Builder::create(); builder->add_from_file(gui :: share_file("QueueView.ui")); + builder->add_from_file(gui :: share_file("QueueLabel.ui")); builder->add_from_file(gui :: share_file("QueueToolbar.ui")); /* * Create our tab widget */ - q_tab_size.set_justify(Gtk::JUSTIFY_CENTER); + builder->get_widget_derived("TempLabel", q_label); - q_tab_close.set_image_from_icon_name("window-close", Gtk::ICON_SIZE_MENU); - q_tab_close.set_relief(Gtk::RELIEF_NONE); - q_tab_close.signal_clicked().connect(sigc::mem_fun(*this, + q_label->temp_close->signal_clicked().connect(sigc::mem_fun(*this, &QueueTab::on_close_clicked)); - q_tab_box.pack_start(q_tab_number, false, true); - q_tab_box.pack_start(q_tab_size, true, true); - q_tab_box.pack_start(q_tab_close, false, true); - tab_set_size(); queue_set_number(num); - q_tab_box.show_all(); /* @@ -148,14 +139,14 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num) tab_random = q_toolbar->q_random; tab_repeat = q_toolbar->q_repeat; tab_search = q_toolbar->q_search; - tab_size = &q_tab_size; + tab_size = q_label->temp_size; tab_treeview = q_treeview; tab_widget = &q_vbox; tab_finish_init(); queue_mapping[tab_widget] = this; - gui :: get_widget("o_notebook")->insert_page(q_vbox, q_tab_box, num); + gui :: get_widget("o_notebook")->insert_page(q_vbox, *q_label, num); gui :: get_widget("o_notebook")->set_tab_reorderable(q_vbox); q_vbox.show_all(); } @@ -224,14 +215,14 @@ void QueueTab :: tab_set_size() { std::string span = ""; span += string :: utos(tab_pq->size()) + ""; - q_tab_size.set_markup(span); + q_label->temp_size->set_markup(span); } void QueueTab :: queue_set_number(unsigned int num) { std::string span = ""; span += string :: utos(num) + ". "; - q_tab_number.set_markup(span); + q_label->temp_number->set_markup(span); } void QueueTab :: on_tab_reordered() @@ -246,8 +237,8 @@ void QueueTab :: on_move_queue(int num) void QueueTab :: queue_set_sensitive(bool sensitive) { - q_tab_number.set_sensitive(sensitive); - q_tab_size.set_sensitive(sensitive); + q_label->temp_number->set_sensitive(sensitive); + q_label->temp_size->set_sensitive(sensitive); q_treeview->set_sensitive(sensitive); } diff --git a/gui/queue/label.cpp b/gui/queue/label.cpp new file mode 100644 index 00000000..6d45f88e --- /dev/null +++ b/gui/queue/label.cpp @@ -0,0 +1,17 @@ +/* + * Copyright 2015 (c) Anna Schumaker. + */ +#include + +TempLabel :: TempLabel(BaseObjectType *cobject, + const Glib::RefPtr builder) + : Gtk::HBox(cobject), _builder(builder) +{ + _builder->get_widget("temp_number", temp_number); + _builder->get_widget("temp_size", temp_size); + _builder->get_widget("temp_close", temp_close); +} + +TempLabel :: ~TempLabel() +{ +} diff --git a/include/gui/queue/label.h b/include/gui/queue/label.h new file mode 100644 index 00000000..5c6c7b90 --- /dev/null +++ b/include/gui/queue/label.h @@ -0,0 +1,22 @@ +/* + * Copyright 2015 (c) Anna Schumaker. + */ +#ifndef OCARINA_GUI_QUEUE_LABEL_H +#define OCARINA_GUI_QUEUE_LABEL_H + +#include + +class TempLabel : public Gtk::HBox { +private: + Glib::RefPtr _builder; + +public: + Gtk::Label *temp_number; + Gtk::Label *temp_size; + Gtk::Button *temp_close; + + TempLabel(BaseObjectType *, const Glib::RefPtr); + ~TempLabel(); +}; + +#endif /* OCARINA_GUI_QUEUE_LABEL_H */ diff --git a/share/ocarina/QueueLabel.ui b/share/ocarina/QueueLabel.ui new file mode 100644 index 00000000..349b101b --- /dev/null +++ b/share/ocarina/QueueLabel.ui @@ -0,0 +1,58 @@ + + + + + + True + False + + + True + False + 0. + end + 0 + + + False + True + 0 + + + + + True + False + 4242 + center + 0.01 + + + True + True + 1 + + + + + True + True + True + none + + + True + False + window-close + 1 + + + + + False + True + 2 + + + +