gui: Move GtkBuilder object into the gui
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
7f6f6395d7
commit
dc3e770c28
|
@ -20,11 +20,11 @@ public:
|
|||
CollectionTab :: CollectionTab()
|
||||
: Tab(library::get_queue())
|
||||
{
|
||||
tab_random = lib :: get_widget<Gtk::ToggleButton>("o_collection_random");
|
||||
tab_search = lib :: get_widget<Gtk::SearchEntry>("o_collection_entry");
|
||||
tab_size = lib :: get_widget<Gtk::Label>("o_collection_size");
|
||||
tab_treeview = lib :: get_widget<Gtk::TreeView>("o_collection_pq_treeview");
|
||||
tab_widget = lib :: get_widget<Gtk::Widget>("o_collection_page");
|
||||
tab_random = gui :: get_widget<Gtk::ToggleButton>("o_collection_random");
|
||||
tab_search = gui :: get_widget<Gtk::SearchEntry>("o_collection_entry");
|
||||
tab_size = gui :: get_widget<Gtk::Label>("o_collection_size");
|
||||
tab_treeview = gui :: get_widget<Gtk::TreeView>("o_collection_pq_treeview");
|
||||
tab_widget = gui :: get_widget<Gtk::Widget>("o_collection_page");
|
||||
|
||||
tab_finish_init();
|
||||
}
|
||||
|
|
28
gui/gst.cpp
28
gui/gst.cpp
|
@ -208,22 +208,22 @@ void gst :: init(int *argc, char ***argv)
|
|||
gst_bus = gst_pipeline_get_bus(GST_PIPELINE(gst_player));
|
||||
gst_driver = new GSTDriver();
|
||||
|
||||
o_next = lib :: get_widget<Gtk::Button>("o_next");
|
||||
o_pause = lib :: get_widget<Gtk::Button>("o_pause");
|
||||
o_play = lib :: get_widget<Gtk::Button>("o_play");
|
||||
o_prev = lib :: get_widget<Gtk::Button>("o_prev");
|
||||
o_seek = lib :: get_widget<Gtk::Scale>("o_seek");
|
||||
o_stop = lib :: get_widget<Gtk::Button>("o_stop");
|
||||
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_count = lib :: get_widget<Gtk::SpinButton>("o_pause_count");
|
||||
o_enabled = lib :: get_widget<Gtk::CheckButton>("o_pause_enabled");
|
||||
o_count = gui :: get_widget<Gtk::SpinButton>("o_pause_count");
|
||||
o_enabled = gui :: get_widget<Gtk::CheckButton>("o_pause_enabled");
|
||||
|
||||
o_album = lib :: get_widget<Gtk::Label>("o_album");
|
||||
o_artist = lib :: get_widget<Gtk::Label>("o_artist");
|
||||
o_duration = lib :: get_widget<Gtk::Label>("o_duration");
|
||||
o_position = lib :: get_widget<Gtk::Label>("o_position");
|
||||
o_title = lib :: get_widget<Gtk::Label>("o_title");
|
||||
o_progress = lib :: get_object<Gtk::Adjustment>("o_progress");
|
||||
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_next->signal_clicked().connect(sigc::ptr_fun(next));
|
||||
o_pause->signal_clicked().connect(sigc::ptr_fun(audio :: pause));
|
||||
|
|
|
@ -15,10 +15,10 @@ public:
|
|||
HistoryTab :: HistoryTab()
|
||||
: Tab(deck :: get_queue())
|
||||
{
|
||||
tab_search = lib :: get_widget<Gtk::SearchEntry>("o_history_entry");
|
||||
tab_size = lib :: get_widget<Gtk::Label>("o_history_size");
|
||||
tab_treeview = lib :: get_widget<Gtk::TreeView>("o_history_treeview");
|
||||
tab_widget = lib :: get_widget<Gtk::Widget>("o_history_page");
|
||||
tab_search = gui :: get_widget<Gtk::SearchEntry>("o_history_entry");
|
||||
tab_size = gui :: get_widget<Gtk::Label>("o_history_size");
|
||||
tab_treeview = gui :: get_widget<Gtk::TreeView>("o_history_treeview");
|
||||
tab_widget = gui :: get_widget<Gtk::Widget>("o_history_page");
|
||||
|
||||
tab_finish_init();
|
||||
}
|
||||
|
|
13
gui/main.cpp
13
gui/main.cpp
|
@ -7,11 +7,22 @@
|
|||
#include <gui/ocarina.h>
|
||||
#include <gui/tabs.h>
|
||||
|
||||
|
||||
namespace gui
|
||||
{
|
||||
Glib::RefPtr<Gtk::Builder> __O_BUILDER;
|
||||
}
|
||||
|
||||
|
||||
Gtk::Window *ocarina_init(int *argc, char ***argv)
|
||||
{
|
||||
Gtk::Window *window;
|
||||
|
||||
lib :: init(argc, argv, "ocarina6.glade");
|
||||
lib :: init(argc, argv);
|
||||
|
||||
gui :: __O_BUILDER = Gtk::Builder::create();
|
||||
if (!gui :: __O_BUILDER->add_from_file(lib :: share_file("ocarina6.glade")))
|
||||
exit(1);
|
||||
|
||||
gst :: init(argc, argv);
|
||||
plist :: init();
|
||||
|
|
|
@ -175,14 +175,14 @@ static void on_toggled(const Glib::ustring &str)
|
|||
|
||||
void manager :: init()
|
||||
{
|
||||
c_add = lib :: get_widget<Gtk::Button>("colmgr_add");
|
||||
c_update = lib :: get_widget<Gtk::Button>("colmgr_update");
|
||||
c_add = gui :: get_widget<Gtk::Button>("colmgr_add");
|
||||
c_update = gui :: get_widget<Gtk::Button>("colmgr_update");
|
||||
|
||||
c_chooser = lib :: get_widget<Gtk::FileChooserWidget>("colmgr_chooser");
|
||||
c_progress = lib :: get_widget<Gtk::ProgressBar>("o_idle_progress");
|
||||
c_toggle = lib :: get_object<Gtk::CellRendererToggle>("colmgr_toggle");
|
||||
c_list = lib :: get_object<Gtk::ListStore>("colmgr_list");
|
||||
c_treeview = lib :: get_widget<Gtk::TreeView>("colmgr_treeview");
|
||||
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_add->signal_clicked().connect(sigc::ptr_fun(on_add));
|
||||
c_update->signal_clicked().connect(sigc::ptr_fun(on_update));
|
||||
|
|
|
@ -26,9 +26,9 @@ static class PlaylistTab : public Tab {
|
|||
public:
|
||||
PlaylistTab() : Tab(playlist :: get_queue())
|
||||
{
|
||||
tab_search = lib :: get_widget<Gtk::SearchEntry>("o_playlist_entry");
|
||||
tab_treeview = lib :: get_widget<Gtk::TreeView>("o_playlist_pq_treeview");
|
||||
tab_widget = lib :: get_widget<Gtk::Widget>("o_playlist_page");
|
||||
tab_search = gui :: get_widget<Gtk::SearchEntry>("o_playlist_entry");
|
||||
tab_treeview = gui :: get_widget<Gtk::TreeView>("o_playlist_pq_treeview");
|
||||
tab_widget = gui :: get_widget<Gtk::Widget>("o_playlist_page");
|
||||
tab_finish_init();
|
||||
}
|
||||
|
||||
|
@ -111,14 +111,14 @@ void plist :: track_loaded(Track *track)
|
|||
void plist :: init()
|
||||
{
|
||||
p_tab = new PlaylistTab;
|
||||
p_list = lib :: get_object<Gtk::ListStore>("plist_list");
|
||||
p_treeview = lib :: get_widget<Gtk::TreeView>("plist_treeview");
|
||||
p_list = gui :: get_object<Gtk::ListStore>("plist_list");
|
||||
p_treeview = gui :: get_widget<Gtk::TreeView>("plist_treeview");
|
||||
|
||||
p_treeview->signal_cursor_changed().connect(sigc::ptr_fun(on_cursor_changed));
|
||||
p_treeview->signal_button_press_event().connect(sigc::ptr_fun(on_clicked));
|
||||
|
||||
o_ban = lib :: get_widget<Gtk::ToggleButton>("o_ban");
|
||||
o_fav = lib :: get_widget<Gtk::ToggleButton>("o_favorite");
|
||||
o_ban = gui :: get_widget<Gtk::ToggleButton>("o_ban");
|
||||
o_fav = gui :: get_widget<Gtk::ToggleButton>("o_favorite");
|
||||
|
||||
o_ban->signal_toggled().connect(sigc::ptr_fun(on_ban));
|
||||
o_fav->signal_toggled().connect(sigc::ptr_fun(on_favorite));
|
||||
|
|
|
@ -165,8 +165,8 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
|
|||
tab_finish_init();
|
||||
queue_mapping[tab_widget] = this;
|
||||
|
||||
lib :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(q_vbox, q_tab_box, num);
|
||||
lib :: get_widget<Gtk::Notebook>("o_notebook")->set_tab_reorderable(q_vbox);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->insert_page(q_vbox, q_tab_box, num);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->set_tab_reorderable(q_vbox);
|
||||
q_vbox.show_all();
|
||||
}
|
||||
|
||||
|
@ -174,7 +174,7 @@ QueueTab :: ~QueueTab()
|
|||
{
|
||||
queue_mapping.erase(tab_widget);
|
||||
tab_unmap();
|
||||
lib :: get_widget<Gtk::Notebook>("o_notebook")->remove_page(q_vbox);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->remove_page(q_vbox);
|
||||
}
|
||||
|
||||
|
||||
|
@ -336,7 +336,7 @@ static void on_pq_removed(Queue *pq)
|
|||
|
||||
static void on_page_reordered(Gtk::Widget *page, int num)
|
||||
{
|
||||
Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
|
||||
if ((unsigned int)num >= deck :: get_queues().size()) {
|
||||
notebook->reorder_child(*page, deck::get_queues().size() - 1);
|
||||
|
@ -356,7 +356,7 @@ void init_queue_tabs()
|
|||
struct Callbacks *cb = get_callbacks();
|
||||
cb->on_pq_removed = on_pq_removed;
|
||||
|
||||
Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
notebook->signal_page_reordered().connect(sigc::ptr_fun(on_page_reordered));
|
||||
}
|
||||
|
||||
|
|
40
gui/tabs.cpp
40
gui/tabs.cpp
|
@ -96,20 +96,20 @@ void Tab :: tab_toggle_button(Gtk::ToggleButton *button, queue_flags flag)
|
|||
|
||||
int Tab :: tab_page_num()
|
||||
{
|
||||
Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
return notebook->page_num(*tab_widget);
|
||||
}
|
||||
|
||||
bool Tab :: tab_is_cur()
|
||||
{
|
||||
Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
return notebook->page_num(*tab_widget) == notebook->get_current_page();
|
||||
}
|
||||
|
||||
void Tab :: tab_runtime_changed()
|
||||
{
|
||||
if (tab_is_cur())
|
||||
lib :: get_widget<Gtk::Label>("o_queue_time")->set_text(tab_pq->length_str());
|
||||
gui :: get_widget<Gtk::Label>("o_queue_time")->set_text(tab_pq->length_str());
|
||||
}
|
||||
|
||||
void Tab :: tab_display_sorting()
|
||||
|
@ -117,7 +117,7 @@ void Tab :: tab_display_sorting()
|
|||
std::string text = "";
|
||||
if ((tab_sorting_count > 0) && tab_is_cur())
|
||||
text = "Sorting within " + tab_sorting_title;
|
||||
lib :: get_widget<Gtk::Label>("o_sorting_indicator")->set_text(text);
|
||||
gui :: get_widget<Gtk::Label>("o_sorting_indicator")->set_text(text);
|
||||
}
|
||||
|
||||
void Tab :: tab_dec_sort_count()
|
||||
|
@ -258,23 +258,23 @@ void Tab :: on_show_rc_menu()
|
|||
unsigned int size = deck :: get_queues().size();
|
||||
|
||||
if (size == 0) {
|
||||
lib :: get_widget<Gtk::MenuItem>("o_add_to_pq")->hide();
|
||||
gui :: get_widget<Gtk::MenuItem>("o_add_to_pq")->hide();
|
||||
return;
|
||||
}
|
||||
lib :: get_widget<Gtk::MenuItem>("o_add_to_pq")->show();
|
||||
gui :: get_widget<Gtk::MenuItem>("o_add_to_pq")->show();
|
||||
|
||||
if (size == 10)
|
||||
lib :: get_widget<Gtk::MenuItem>("o_new_pq")->hide();
|
||||
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->hide();
|
||||
else
|
||||
lib :: get_widget<Gtk::MenuItem>("o_new_pq")->show();
|
||||
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->show();
|
||||
|
||||
for (unsigned int i = 0; i < 10; i++) {
|
||||
item = "o_pq_";
|
||||
item += '0' + i;
|
||||
if (i < size)
|
||||
lib :: get_widget<Gtk::MenuItem>(item)->show();
|
||||
gui :: get_widget<Gtk::MenuItem>(item)->show();
|
||||
else
|
||||
lib :: get_widget<Gtk::MenuItem>(item)->hide();
|
||||
gui :: get_widget<Gtk::MenuItem>(item)->hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,7 +338,7 @@ bool Tab :: on_button_pressed(GdkEventButton *button)
|
|||
tab_treeview->get_selection()->select(path);
|
||||
|
||||
on_show_rc_menu();
|
||||
lib :: get_widget<Gtk::Menu>("o_rc_menu")->popup(button->button, button->time);
|
||||
gui :: get_widget<Gtk::Menu>("o_rc_menu")->popup(button->button, button->time);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -440,12 +440,12 @@ static void on_switch_page(Gtk::Widget *page, int num)
|
|||
tab->tab_runtime_changed();
|
||||
tab->tab_display_sorting();
|
||||
} else
|
||||
lib :: get_widget<Gtk::Label>("o_queue_time")->set_text("");
|
||||
gui :: get_widget<Gtk::Label>("o_queue_time")->set_text("");
|
||||
}
|
||||
|
||||
void tab_focus_search()
|
||||
{
|
||||
int page = lib :: get_widget<Gtk::Notebook>("o_notebook")->get_current_page();
|
||||
int page = gui :: get_widget<Gtk::Notebook>("o_notebook")->get_current_page();
|
||||
Tab *tab = find_tab(page);
|
||||
if (tab)
|
||||
tab->tab_focus_search();
|
||||
|
@ -482,7 +482,7 @@ static void on_add_to_queue(unsigned int n)
|
|||
static void init_menu_item(const std::string &pq, unsigned int n)
|
||||
|
||||
{
|
||||
lib :: get_widget<Gtk::MenuItem>(pq)->signal_activate().connect(
|
||||
gui :: get_widget<Gtk::MenuItem>(pq)->signal_activate().connect(
|
||||
sigc::bind<unsigned int> (sigc::ptr_fun(on_add_to_queue), n));
|
||||
}
|
||||
|
||||
|
@ -494,16 +494,16 @@ void init_tabs()
|
|||
cb->on_queue_track_changed = on_track_changed;
|
||||
|
||||
/* Notebook signals */
|
||||
struct Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
struct Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
notebook->signal_switch_page().connect(sigc::ptr_fun(on_switch_page));
|
||||
|
||||
/* Menu signals */
|
||||
lib :: get_widget<Gtk::Menu>("o_rc_menu")->show_all();
|
||||
lib :: get_widget<Gtk::MenuItem>("o_new_pq")->signal_activate().connect(
|
||||
gui :: get_widget<Gtk::Menu>("o_rc_menu")->show_all();
|
||||
gui :: get_widget<Gtk::MenuItem>("o_new_pq")->signal_activate().connect(
|
||||
sigc::ptr_fun(on_new_pq));
|
||||
lib :: get_widget<Gtk::MenuItem>("o_add_to_favorites")->signal_activate().connect(
|
||||
gui :: get_widget<Gtk::MenuItem>("o_add_to_favorites")->signal_activate().connect(
|
||||
sigc::ptr_fun(on_add_to_favs));
|
||||
lib :: get_widget<Gtk::MenuItem>("o_add_to_banned")->signal_activate().connect(
|
||||
gui :: get_widget<Gtk::MenuItem>("o_add_to_banned")->signal_activate().connect(
|
||||
sigc::ptr_fun(on_add_to_banned));
|
||||
for (unsigned int i = 0; i < 10; i++) {
|
||||
std::string pq = "o_pq_";
|
||||
|
@ -530,7 +530,7 @@ void post_init_tabs()
|
|||
if ((deck :: get(tab)->has_flag(Q_ENABLED)))
|
||||
break;
|
||||
}
|
||||
lib :: get_widget<Gtk::Notebook>("o_notebook")->set_current_page(tab);
|
||||
gui :: get_widget<Gtk::Notebook>("o_notebook")->set_current_page(tab);
|
||||
}
|
||||
|
||||
void cleanup_tabs()
|
||||
|
|
|
@ -11,8 +11,8 @@ const std::string appname = "Ocarina ";
|
|||
|
||||
static bool on_window_key_pressed(GdkEventKey *event)
|
||||
{
|
||||
Gtk::Notebook *notebook = lib :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Window *window = lib :: get_widget<Gtk::Window>("o_window");
|
||||
Gtk::Notebook *notebook = gui :: get_widget<Gtk::Notebook>("o_notebook");
|
||||
Gtk::Window *window = gui :: get_widget<Gtk::Window>("o_window");
|
||||
std::string key = gdk_keyval_name(event->keyval);
|
||||
|
||||
if (key.size() >= 3) {
|
||||
|
@ -58,7 +58,7 @@ static bool on_window_key_released(GdkEventKey *event)
|
|||
|
||||
Gtk::Window *window_init()
|
||||
{
|
||||
Gtk::Window *window = lib :: get_widget<Gtk::Window>("o_window");
|
||||
Gtk::Window *window = gui :: get_widget<Gtk::Window>("o_window");
|
||||
|
||||
window->set_can_focus();
|
||||
window->set_title(appname + get_version());
|
||||
|
|
|
@ -9,6 +9,25 @@
|
|||
|
||||
|
||||
/* main.cpp */
|
||||
namespace gui
|
||||
{
|
||||
extern Glib::RefPtr<Gtk::Builder> __O_BUILDER;
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
Gtk::Window *ocarina_init(int *, char ***);
|
||||
|
||||
|
||||
|
|
|
@ -10,23 +10,8 @@
|
|||
namespace lib
|
||||
{
|
||||
|
||||
void init(int *, char ***, const std::string &);
|
||||
void init(int *, char ***);
|
||||
const std::string share_file(const std::string &);
|
||||
Glib::RefPtr<Gtk::Builder> &get_builder();
|
||||
|
||||
template <class T>
|
||||
static inline T *get_widget(const std::string &name)
|
||||
{
|
||||
T *widget;
|
||||
get_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(get_builder()->get_object(name));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
12
lib/lib.cpp
12
lib/lib.cpp
|
@ -5,7 +5,6 @@
|
|||
#include <lib/lib.h>
|
||||
#include <gtkmm.h>
|
||||
|
||||
static Glib::RefPtr<Gtk::Builder> builder;
|
||||
static std::string share_dir = "";
|
||||
|
||||
static void setup_share(const std::string &path)
|
||||
|
@ -22,21 +21,12 @@ static void setup_share(const std::string &path)
|
|||
share_dir = share_dir + "share/ocarina/";
|
||||
}
|
||||
|
||||
void lib :: init(int *argc, char ***argv, const std::string >k_xml)
|
||||
void lib :: init(int *argc, char ***argv)
|
||||
{
|
||||
setup_share((*argv)[0]);
|
||||
|
||||
builder = Gtk::Builder::create();
|
||||
if (!builder->add_from_file(lib :: share_file(gtk_xml)))
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const std::string lib :: share_file(const std::string &f)
|
||||
{
|
||||
return share_dir + f;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gtk::Builder> &lib :: get_builder()
|
||||
{
|
||||
return builder;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue