gui: Switch over to the new gui_builder system

Glib::wrap() all the things!

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-12-24 09:35:36 -05:00
parent 0eb8521094
commit 61436d5ccd
10 changed files with 72 additions and 77 deletions

View File

@ -4,6 +4,7 @@
extern "C" {
#include <core/collection.h>
#include <core/playlist.h>
#include <gui/builder.h>
}
#include <gui/tabs.h>
#include <gui/queue/label.h>
@ -24,7 +25,9 @@ public:
tab_label = collection_label;
tab_vbox.pack_start(*tab_window, true, true);
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(tab_vbox, *collection_label, 0);
Glib::wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")),
false)->insert_page(tab_vbox, *collection_label, 0);
}
~CollectionTab()

View File

@ -8,6 +8,7 @@
extern "C" {
#include <core/audio.h>
#include <core/string.h>
#include <gui/builder.h>
}
#include <gui/ocarina.h>
#include <gst/gst.h>
@ -133,22 +134,22 @@ void gst :: toggle()
void gst :: init_pre()
{
o_next = gui :: get_widget<Gtk::Button>("o_next");
o_pause = gui :: get_widget<Gtk::Button>("o_pause");
o_play = gui :: get_widget<Gtk::Button>("o_play");
o_prev = gui :: get_widget<Gtk::Button>("o_prev");
o_seek = gui :: get_widget<Gtk::Scale>("o_seek");
o_stop = gui :: get_widget<Gtk::Button>("o_stop");
o_next = Glib :: wrap(GTK_BUTTON(gui_builder_widget("o_next")), false);
o_pause = Glib :: wrap(GTK_BUTTON(gui_builder_widget("o_pause")), false);
o_play = Glib :: wrap(GTK_BUTTON(gui_builder_widget("o_play")), false);
o_prev = Glib :: wrap(GTK_BUTTON(gui_builder_widget("o_prev")), false);
o_stop = Glib :: wrap(GTK_BUTTON(gui_builder_widget("o_stop")), false);
o_seek = Glib :: wrap(GTK_SCALE(gui_builder_widget("o_seek")), false);
o_count = gui :: get_widget<Gtk::SpinButton>("o_pause_count");
o_enabled = gui :: get_widget<Gtk::CheckButton>("o_pause_enabled");
o_count = Glib :: wrap(GTK_SPIN_BUTTON(gui_builder_widget("o_pause_count")), false);
o_enabled = Glib :: wrap(GTK_CHECK_BUTTON(gui_builder_widget("o_pause_enabled")), false);
o_album = gui :: get_widget<Gtk::Label>("o_album");
o_artist = gui :: get_widget<Gtk::Label>("o_artist");
o_duration = gui :: get_widget<Gtk::Label>("o_duration");
o_position = gui :: get_widget<Gtk::Label>("o_position");
o_title = gui :: get_widget<Gtk::Label>("o_title");
o_progress = gui :: get_object<Gtk::Adjustment>("o_progress");
o_album = Glib :: wrap(GTK_LABEL(gui_builder_widget("o_album")), false);
o_artist = Glib :: wrap(GTK_LABEL(gui_builder_widget("o_artist")), false);
o_duration = Glib :: wrap(GTK_LABEL(gui_builder_widget("o_duration")), false);
o_position = Glib :: wrap(GTK_LABEL(gui_builder_widget("o_position")), false);
o_title = Glib ::wrap(GTK_LABEL(gui_builder_widget("o_title")), false);
o_progress = Glib :: wrap(GTK_ADJUSTMENT(gui_builder_object("o_progress")), false);
o_next->signal_clicked().connect(sigc::ptr_fun(next));
o_pause->signal_clicked().connect(sigc::ptr_fun(gst :: pause));

View File

@ -3,6 +3,7 @@
*/
extern "C" {
#include <core/history.h>
#include <gui/builder.h>
}
#include <gui/tabs.h>
#include <gui/queue/label.h>
@ -24,7 +25,8 @@ public:
tab_vbox.pack_start(*tab_window, true, true);
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(tab_vbox, *history_label, 0);
Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")),
false)->insert_page(tab_vbox, *history_label, 0);
}
~HistoryTab()

View File

@ -6,6 +6,7 @@ extern "C" {
#include <core/containers/index.h>
#include <core/idle.h>
#include <core/playlist.h>
#include <gui/builder.h>
}
#include <gui/ocarina.h>
@ -16,7 +17,7 @@ static Gtk::FileChooserWidget *c_chooser;
static Gtk::ProgressBar *c_progress;
static Gtk::TreeView *c_treeview;
static Glib::RefPtr<Gtk::ListStore> c_list;
static Glib::RefPtr<Gtk::CellRendererToggle> c_toggle;
static Gtk::CellRendererToggle *c_toggle;
static class CollectionColumns : public Gtk::TreeModelColumnRecord {
public:
@ -164,14 +165,14 @@ void manager :: init()
{
struct db_entry *library, *next;
c_add = gui :: get_widget<Gtk::Button>("colmgr_add");
c_update = gui :: get_widget<Gtk::Button>("colmgr_update");
c_add = Glib :: wrap(GTK_BUTTON(gui_builder_widget("colmgr_add")), false);
c_update = Glib :: wrap(GTK_BUTTON(gui_builder_widget("colmgr_update")), false);
c_chooser = gui :: get_widget<Gtk::FileChooserWidget>("colmgr_chooser");
c_progress = gui :: get_widget<Gtk::ProgressBar>("o_idle_progress");
c_toggle = gui :: get_object<Gtk::CellRendererToggle>("colmgr_toggle");
c_list = gui :: get_object<Gtk::ListStore>("colmgr_list");
c_treeview = gui :: get_widget<Gtk::TreeView>("colmgr_treeview");
c_chooser = Glib :: wrap(GTK_FILE_CHOOSER_WIDGET(gui_builder_widget("colmgr_chooser")), false);
c_progress = Glib :: wrap(GTK_PROGRESS_BAR(gui_builder_widget("o_idle_progress")), false);
c_list = Glib :: wrap(GTK_LIST_STORE(gui_builder_object("colmgr_list")), false);
c_toggle = Glib :: wrap(GTK_CELL_RENDERER_TOGGLE(gui_builder_object("colmgr_toggle")), false);
c_treeview = Glib :: wrap(GTK_TREE_VIEW(gui_builder_widget("colmgr_treeview")), false);
c_add->signal_clicked().connect(sigc::ptr_fun(on_add));
c_update->signal_clicked().connect(sigc::ptr_fun(on_update));

View File

@ -5,6 +5,7 @@ extern "C" {
#include <core/core.h>
#include <core/idle.h>
#include <gui/settings.h>
#include <gui/builder.h>
}
#include <gui/ocarina.h>
#include <gui/tabs.h>
@ -24,8 +25,6 @@ struct core_init_data init_data = {
namespace gui
{
Glib::RefPtr<Gtk::Builder> __O_BUILDER;
const std::string share_file(const std::string &f)
{
return ocarina_dir + f;
@ -59,10 +58,7 @@ int main(int argc, char **argv)
setup_share(argv[0]);
ocarina_app = Gtk::Application::create(argc, argv, "org.gtkmm.ocarina");
gui :: __O_BUILDER = Gtk::Builder::create();
if (!gui::__O_BUILDER->add_from_file(gui::share_file("ocarina6.glade")))
exit(1);
gui_builder_init(gui :: share_file("ocarina6.glade").c_str());
gst :: init_pre();
core_init(&argc, &argv, &init_data);

View File

@ -5,6 +5,7 @@ extern "C" {
#include <core/audio.h>
#include <core/collection.h>
#include <core/playlist.h>
#include <gui/builder.h>
}
#include <gui/tabs.h>
#include <gui/queue/label.h>
@ -105,7 +106,8 @@ public:
tab_vbox.pack_start(playlist_hbox, true, true);
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(tab_vbox, *playlist_label, 0);
Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")),
false)->insert_page(tab_vbox, *playlist_label, 0);
}
~PlaylistTab()
@ -195,8 +197,8 @@ void plist :: init()
{
p_tab = new PlaylistTab;
o_ban = gui :: get_widget<Gtk::ToggleButton>("o_ban");
o_fav = gui :: get_widget<Gtk::ToggleButton>("o_favorite");
o_ban = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_ban")), false);
o_fav = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_favorite")), false);
track_loaded(audio_cur_track());

View File

@ -4,6 +4,7 @@
extern "C" {
#include <core/string.h>
#include <core/tempq.h>
#include <gui/builder.h>
}
#include <gui/tabs.h>
#include <gui/queue/label.h>
@ -66,6 +67,8 @@ static std::map<Gtk::Widget *, QueueTab *> queue_mapping;
QueueTab :: QueueTab(queue *pq, unsigned int num)
: Tab(pq)
{
Gtk::Notebook *notebook;
tab_builder->add_from_file(gui :: share_file("QueueLabel.ui"));
/*
@ -95,15 +98,16 @@ QueueTab :: QueueTab(queue *pq, unsigned int num)
queue_mapping[&tab_vbox] = this;
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(tab_vbox, *q_label, num);
gui :: get_widget<Gtk::Notebook>("o_notebook")->set_tab_reorderable(tab_vbox);
notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
notebook->insert_page(tab_vbox, *q_label, num);
notebook->set_tab_reorderable(tab_vbox);
}
QueueTab :: ~QueueTab()
{
queue_mapping.erase(&tab_vbox);
tab_unmap();
gui :: get_widget<Gtk::Notebook>("o_notebook")->remove_page(tab_vbox);
Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false)->remove_page(tab_vbox);
renumber_queues();
}
@ -199,7 +203,7 @@ void on_pq_created(queue *pq, unsigned int num)
static void on_page_reordered(Gtk::Widget *page, int num)
{
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
if ((unsigned int)num >= tempq_count()) {
notebook->reorder_child(*page, tempq_count() - 1);
@ -216,7 +220,7 @@ static void on_page_reordered(Gtk::Widget *page, int num)
void init_queue_tabs()
{
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
notebook->signal_page_reordered().connect(sigc::ptr_fun(on_page_reordered));
}

View File

@ -6,6 +6,7 @@ extern "C" {
#include <core/playlist.h>
#include <core/string.h>
#include <core/tempq.h>
#include <gui/builder.h>
}
#include <gui/tabs.h>
@ -137,13 +138,13 @@ void Tab :: on_track_updated(unsigned int row)
int Tab :: tab_page_num()
{
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
return notebook->page_num(tab_vbox);
}
bool Tab :: tab_is_cur()
{
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
return notebook->page_num(tab_vbox) == notebook->get_current_page();
}
@ -151,7 +152,7 @@ void Tab :: tab_runtime_changed()
{
gchar *len = string_sec2str_long(tab_pq->q_length);
if (tab_is_cur())
gui :: get_widget<Gtk::Label>("o_queue_time")->set_text(len);
Glib :: wrap(GTK_LABEL(gui_builder_widget("o_queue_time")), false)->set_text(len);
g_free(len);
}
@ -160,7 +161,7 @@ void Tab :: tab_display_sorting()
std::string text = "";
if ((tab_sorting_count > 0) && tab_is_cur())
text = "Sorting within " + tab_sorting_title;
gui :: get_widget<Gtk::Label>("o_sorting_indicator")->set_text(text);
Glib :: wrap(GTK_LABEL(gui_builder_widget("o_sorting_indicator")), false)->set_text(text);
}
void Tab :: tab_dec_sort_count()
@ -275,23 +276,23 @@ void Tab :: on_show_rc_menu()
unsigned int size = tempq_count();
if (size == 0) {
gui :: get_widget<Gtk::MenuItem>("o_add_to_pq")->hide();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_add_to_pq")), false)->hide();
return;
}
gui :: get_widget<Gtk::MenuItem>("o_add_to_pq")->show();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_add_to_pq")), false)->show();
if (size == 10)
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->hide();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_new_pq")), false)->hide();
else
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->show();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_new_pq")), false)->show();
for (unsigned int i = 0; i < 10; i++) {
item = "o_pq_";
item += '0' + i;
if (i < size)
gui :: get_widget<Gtk::MenuItem>(item)->show();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget(item.c_str())), false)->show();
else
gui :: get_widget<Gtk::MenuItem>(item)->hide();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget(item.c_str())), false)->hide();
}
}
@ -339,7 +340,7 @@ bool Tab :: on_button_pressed(GdkEventButton *button)
tab_window->q_treeview->get_selection()->select(path);
on_show_rc_menu();
gui :: get_widget<Gtk::Menu>("o_rc_menu")->popup(button->button, button->time);
Glib :: wrap(GTK_MENU(gui_builder_widget("o_rc_menu")), false)->popup(button->button, button->time);
return true;
}
@ -387,12 +388,12 @@ static void on_switch_page(Gtk::Widget *page, int num)
tab->tab_runtime_changed();
tab->tab_display_sorting();
} else
gui :: get_widget<Gtk::Label>("o_queue_time")->set_text("");
Glib :: wrap(GTK_LABEL(gui_builder_widget("o_queue_time")), false)->set_text("");
}
void tab_focus_search()
{
int page = gui :: get_widget<Gtk::Notebook>("o_notebook")->get_current_page();
int page = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false)->get_current_page();
Tab *tab = find_tab(page);
if (tab)
tab->tab_focus_search();
@ -429,23 +430,23 @@ static void on_add_to_queue(unsigned int n)
static void init_menu_item(const std::string &pq, unsigned int n)
{
gui :: get_widget<Gtk::MenuItem>(pq)->signal_activate().connect(
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget(pq.c_str())), false)->signal_activate().connect(
sigc::bind<unsigned int> (sigc::ptr_fun(on_add_to_queue), n));
}
void init_tabs()
{
/* Notebook signals */
struct Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
struct Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
notebook->signal_switch_page().connect(sigc::ptr_fun(on_switch_page));
/* Menu signals */
gui :: get_widget<Gtk::Menu>("o_rc_menu")->show_all();
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->signal_activate().connect(
Glib :: wrap(GTK_MENU(gui_builder_widget("o_rc_menu")), false)->show_all();
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_new_pq")), false)->signal_activate().connect(
sigc::ptr_fun(on_new_pq));
gui :: get_widget<Gtk::MenuItem>("o_add_to_favorites")->signal_activate().connect(
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_add_to_favorites")), false)->signal_activate().connect(
sigc::ptr_fun(on_add_to_favs));
gui :: get_widget<Gtk::MenuItem>("o_add_to_banned")->signal_activate().connect(
Glib :: wrap(GTK_MENU_ITEM(gui_builder_widget("o_add_to_banned")), false)->signal_activate().connect(
sigc::ptr_fun(on_add_to_banned));
for (unsigned int i = 0; i < 10; i++) {
std::string pq = "o_pq_";
@ -468,7 +469,7 @@ void post_init_tabs()
if (queue_has_flag(tempq_get(tab), Q_ENABLED))
break;
}
gui :: get_widget<Gtk::Notebook>("o_notebook")->set_current_page(tab);
Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false)->set_current_page(tab);
}
void cleanup_tabs()

View File

@ -5,6 +5,7 @@ extern "C" {
#include <core/audio.h>
#include <core/tempq.h>
#include <core/version.h>
#include <gui/builder.h>
}
#include <gui/ocarina.h>
#include <gui/tabs.h>
@ -13,8 +14,8 @@ const std::string appname = "Ocarina ";
static bool on_window_key_pressed(GdkEventKey *event)
{
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
Gtk::Window *window = gui :: get_widget<Gtk::Window>("o_window");
Gtk::Notebook *notebook = Glib :: wrap(GTK_NOTEBOOK(gui_builder_widget("o_notebook")), false);
Gtk::Window *window = Glib :: wrap(GTK_WINDOW(gui_builder_widget("o_window")), false);
std::string key = gdk_keyval_name(event->keyval);
if (key.size() >= 3) {
@ -60,7 +61,7 @@ static bool on_window_key_released(GdkEventKey *event)
Gtk::Window *window_init()
{
Gtk::Window *window = gui :: get_widget<Gtk::Window>("o_window");
Gtk::Window *window = Glib :: wrap(GTK_WINDOW(gui_builder_widget("o_window")), false);
window->set_can_focus();
window->set_title(appname + get_version());

View File

@ -11,23 +11,7 @@
/* main.cpp */
namespace gui
{
extern Glib::RefPtr<Gtk::Builder> __O_BUILDER;
const std::string share_file(const std::string &);
template <class T>
static inline T *get_widget(const std::string &name)
{
T *widget;
__O_BUILDER->get_widget(name, widget);
return widget;
}
template <class T>
static inline Glib::RefPtr<T> get_object(const std::string &name)
{
return Glib::RefPtr<T>::cast_static(__O_BUILDER->get_object(name));
}
}
extern struct queue_ops collection_ops;