gui: Build TempLabel from a .ui file
This is better than needing to hard code in all of the widgets. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
5859adc074
commit
494ef04e67
|
@ -4,6 +4,7 @@
|
|||
#include <core/deck.h>
|
||||
#include <core/string.h>
|
||||
#include <gui/tabs.h>
|
||||
#include <gui/queue/label.h>
|
||||
#include <gui/queue/toolbar.h>
|
||||
#include <gui/queue/view.h>
|
||||
|
||||
|
@ -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<Gtk::Notebook>("o_notebook")->insert_page(q_vbox, q_tab_box, num);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(q_vbox, *q_label, num);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->set_tab_reorderable(q_vbox);
|
||||
q_vbox.show_all();
|
||||
}
|
||||
|
@ -224,14 +215,14 @@ void QueueTab :: tab_set_size()
|
|||
{
|
||||
std::string span = "<span size='x-large'>";
|
||||
span += string :: utos(tab_pq->size()) + "</span>";
|
||||
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 size='x-large'>";
|
||||
span += string :: utos(num) + ". </span>";
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright 2015 (c) Anna Schumaker.
|
||||
*/
|
||||
#include <gui/queue/label.h>
|
||||
|
||||
TempLabel :: TempLabel(BaseObjectType *cobject,
|
||||
const Glib::RefPtr<Gtk::Builder> 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()
|
||||
{
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* Copyright 2015 (c) Anna Schumaker.
|
||||
*/
|
||||
#ifndef OCARINA_GUI_QUEUE_LABEL_H
|
||||
#define OCARINA_GUI_QUEUE_LABEL_H
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
class TempLabel : public Gtk::HBox {
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> _builder;
|
||||
|
||||
public:
|
||||
Gtk::Label *temp_number;
|
||||
Gtk::Label *temp_size;
|
||||
Gtk::Button *temp_close;
|
||||
|
||||
TempLabel(BaseObjectType *, const Glib::RefPtr<Gtk::Builder>);
|
||||
~TempLabel();
|
||||
};
|
||||
|
||||
#endif /* OCARINA_GUI_QUEUE_LABEL_H */
|
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.18.3 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkBox" id="TempLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="temp_number">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">0.</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="temp_size">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4242</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="angle">0.01</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="temp_close">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="relief">none</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon_name">window-close</property>
|
||||
<property name="icon_size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
Loading…
Reference in New Issue