/* * Copyright 2014 (c) Anna Schumaker. */ #ifndef OCARINA_H #define OCARINA_H #include #include /* 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 &get_builder(); template static T *get_widget(const std::string &name) { T *widget; get_builder()->get_widget(name, widget); return widget; } template static Glib::RefPtr get_object(const std::string &name) { return Glib::RefPtr::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 */