#ifndef JUCI_DIRECTORIES_H_ #define JUCI_DIRECTORIES_H_ #include #include #include #include "boost/filesystem.hpp" #include "cmake.h" class Directories : public Gtk::ScrolledWindow { public: class Config { public: std::vector ignored; std::vector exceptions; }; class ColumnRecord : public Gtk::TreeModel::ColumnRecord { public: ColumnRecord() { add(id); add(name); add(path); } Gtk::TreeModelColumn id; Gtk::TreeModelColumn name; Gtk::TreeModelColumn path; }; Directories(); void open_folder(const boost::filesystem::path& dir_path=""); void select_path(const boost::filesystem::path &path); std::function on_row_activated; std::unique_ptr cmake; boost::filesystem::path current_path; private: void add_paths(const boost::filesystem::path& dir_path, const Gtk::TreeModel::Row &row, unsigned depth); bool ignored(std::string path); Gtk::TreeView tree_view; Glib::RefPtr tree_store; ColumnRecord column_record; boost::filesystem::path selected_path; }; #endif // JUCI_DIRECTORIES_H_