gui: Add a scrolled window around the treeview

I'm going to want this on all tab pages, so let's just add this to the
treeview widget definition.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-04-11 15:44:53 -04:00
parent d9a9b2b9ca
commit d746db6624
6 changed files with 204 additions and 45 deletions

View File

@ -6,7 +6,7 @@
#include <gui/tabs.h>
#include <gui/queue/label.h>
#include <gui/queue/toolbar.h>
#include <gui/queue/view.h>
#include <gui/queue/window.h>
static void renumber_queues();
@ -53,8 +53,7 @@ private:
QueueToolbar *q_toolbar;
/* Treeview widgets */
Gtk::ScrolledWindow q_window;
QueueView *q_treeview;
QueueWindow *q_window;
public:
@ -89,7 +88,7 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
: Tab(pq)
{
builder = Gtk::Builder::create();
builder->add_from_file(gui :: share_file("QueueView.ui"));
builder->add_from_file(gui :: share_file("QueueWindow.ui"));
builder->add_from_file(gui :: share_file("QueueLabel.ui"));
builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
@ -113,12 +112,7 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
/*
* And the treeview with scrolled window
*/
builder->get_widget_derived("QueueView", q_treeview);
q_window.set_shadow_type(Gtk::SHADOW_IN);
q_window.set_margin_left(5);
q_window.set_margin_right(5);
q_window.set_margin_bottom(5);
q_window.add(*q_treeview);
builder->get_widget_derived("QueueWindow", q_window);
/*
@ -129,7 +123,7 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
q_vbox.set_margin_right(1);
q_vbox.set_homogeneous(false);
q_vbox.pack_start(*q_toolbar, false, true, 2);
q_vbox.pack_start(q_window, true, true);
q_vbox.pack_start(*q_window, true, true);
/*
@ -140,7 +134,7 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
tab_repeat = q_toolbar->q_repeat;
tab_search = q_toolbar->q_search;
tab_size = q_label->temp_size;
tab_treeview = q_treeview;
tab_treeview = q_window->q_treeview;
tab_widget = &q_vbox;
tab_finish_init();
@ -235,7 +229,7 @@ void QueueTab :: queue_set_sensitive(bool sensitive)
{
q_label->temp_number->set_sensitive(sensitive);
q_label->temp_size->set_sensitive(sensitive);
q_treeview->set_sensitive(sensitive);
q_window->q_treeview->set_sensitive(sensitive);
}

View File

@ -1,14 +0,0 @@
/*
* Copyright 2015 (c) Anna Schumaker.
*/
#include <gui/queue/view.h>
QueueView :: QueueView(BaseObjectType *cobject,
const Glib::RefPtr<Gtk::Builder> builder)
: Gtk::TreeView(cobject), _builder(builder)
{
}
QueueView :: ~QueueView()
{
}

15
gui/queue/window.cpp Normal file
View File

@ -0,0 +1,15 @@
/*
* Copyright 2015 (c) Anna Schumaker.
*/
#include <gui/queue/window.h>
QueueWindow :: QueueWindow(BaseObjectType *cobject,
const Glib::RefPtr<Gtk::Builder> builder)
: Gtk::ScrolledWindow(cobject), _builder(builder)
{
_builder->get_widget("q_treeview", q_treeview);
}
QueueWindow :: ~QueueWindow()
{
}

View File

@ -1,18 +0,0 @@
/*
* Copyright 2015 (c) Anna Schumaker.
*/
#ifndef OCARINA_GUI_QUEUE_VIEW_H
#define OCARINA_GUI_QUEUE_VIEW_H
#include <gtkmm.h>
class QueueView : public Gtk::TreeView {
private:
Glib::RefPtr<Gtk::Builder> _builder;
public:
QueueView(BaseObjectType *, const Glib::RefPtr<Gtk::Builder>);
~QueueView();
};
#endif /* OCARINA_GUI_QUEUE_VIEW_H */

View File

@ -0,0 +1,20 @@
/*
* Copyright 2015 (c) Anna Schumaker.
*/
#ifndef OCARINA_GUI_QUEUE_WINDOW_H
#define OCARINA_GUI_QUEUE_WINDOW_H
#include <gtkmm.h>
class QueueWindow : public Gtk::ScrolledWindow {
private:
Glib::RefPtr<Gtk::Builder> _builder;
public:
Gtk::TreeView *q_treeview;
QueueWindow(BaseObjectType *, const Glib::RefPtr<Gtk::Builder>);
~QueueWindow();
};
#endif /* OCARINA_GUI_QUEUE_WINDOW_H */

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkScrolledWindow" id="QueueWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
<property name="margin_bottom">5</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="q_treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="enable_search">False</property>
<property name="rubber_banding">True</property>
<property name="tooltip_column">9</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1">
<property name="mode">multiple</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">20</property>
<property name="title" translatable="yes">#</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">300</property>
<property name="title" translatable="yes">Title</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">60</property>
<property name="title" translatable="yes">Length</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn4">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">100</property>
<property name="title" translatable="yes">Artist</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext4"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn5">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">100</property>
<property name="title" translatable="yes">Album</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext5"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn6">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">45</property>
<property name="title" translatable="yes">Year</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext6"/>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn7">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">100</property>
<property name="title" translatable="yes">Genre</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext7"/>
<attributes>
<attribute name="text">6</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn8">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">60</property>
<property name="title" translatable="yes">Count</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext8"/>
<attributes>
<attribute name="text">7</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn9">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed_width">1</property>
<property name="title" translatable="yes">Played</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext9"/>
<attributes>
<attribute name="text">8</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>