ocarina/include/gui/ocarina.h

88 lines
2.4 KiB
C++

/*
* Copyright 2014 (c) Anna Schumaker.
*/
#ifndef OCARINA_H
#define OCARINA_H
#include <core/queue.h>
#include <gtkmm.h>
/* collection_mgr.cpp */
void collection_mgr_init();
/* main.cpp */
const std::string share_file(const std::string &);
Gtk::Window *ocarina_init(int *, char ***);
/* model.cpp */
class QueueModel : public Gtk::TreeModel, public Glib::Object {
private:
void increment_stamp();
void get_value_uint(Track *, int, Glib::ValueBase &) const;
void get_value_str(Track *, int, Glib::ValueBase &) const;
bool check_iter_validity(const Gtk::TreeIter &) const;
protected:
/* Inherited from Gtk::TreeModel */
Gtk::TreeModelFlags get_flags_vfunc() const;
int get_n_columns_vfunc() const;
GType get_column_type_vfunc(int) const;
void get_value_vfunc(const Gtk::TreeIter &, int, Glib::ValueBase &) const;
bool iter_next_vfunc(const Gtk::TreeIter &, Gtk::TreeIter &) const;
bool iter_children_vfunc(const Gtk::TreeIter &, Gtk::TreeIter &) const;
bool iter_has_child_vfunc(const Gtk::TreeIter &) const;
int iter_n_children_vfunc(const Gtk::TreeIter &) const;
int iter_n_root_children_vfunc() const;
bool iter_nth_child_vfunc(const Gtk::TreeIter &, int, Gtk::TreeIter &) const;
bool iter_nth_root_child_vfunc(int, Gtk::TreeIter &) const;
bool iter_parent_vfunc(const Gtk::TreeIter &, Gtk::TreeIter &) const;
Gtk::TreeModel::Path get_path_vfunc(const Gtk::TreeIter &) const;
bool get_iter_vfunc(const Gtk::TreePath &, Gtk::TreeIter &) const;
public:
int stamp;
Queue *queue;
QueueModel(Queue *);
void on_row_inserted(unsigned int);
void on_row_deleted(unsigned int);
void on_row_changed(unsigned int);
void on_path_selected(const Gtk::TreePath &);
unsigned int iter_to_id(const Gtk::TreeIter &);
unsigned int path_to_id(const Gtk::TreePath &);
};
/* gui.cpp */
void enable_idle();
void connect_button(const std::string &, void (*func)());
Gtk::Window *setup_gui();
Glib::RefPtr<Gtk::Builder> &get_builder();
template <class T>
static T *get_widget(const std::string &name)
{
T *widget;
get_builder()->get_widget(name, widget);
return widget;
}
template <class T>
static Glib::RefPtr<T> get_object(const std::string &name)
{
return Glib::RefPtr<T>::cast_static(get_builder()->get_object(name));
}
void on_pq_created(Queue *, unsigned int);
void post_init_queue_tabs();
#ifdef CONFIG_TEST
void do_collection_delete();
void on_collection_toggled(const Glib::ustring &);
#endif /* CONFIG_TEST */
#endif /* OCARINA_H */