You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

52 lines
1.4 KiB

#ifndef JUCI_NOTEBOOK_H_
#define JUCI_NOTEBOOK_H_
#include <iostream>
#include "gtkmm.h"
#include "entrybox.h"
#include "source.h"
#include "directories.h"
#include <boost/algorithm/string/case_conv.hpp>
#include <type_traits>
#include <map>
#include <sigc++/sigc++.h>
#include "clangmm.h"
namespace Notebook {
class View : public Gtk::Paned {
public:
View();
Gtk::Notebook notebook;
};
class Controller {
public:
Controller();
Source::View* CurrentSourceView();
int CurrentPage();
void OnCloseCurrentPage();
void OnFileNewFile();
bool OnSaveFile();
bool OnSaveFile(std::string path);
void OnDirectoryNavigation(const Gtk::TreeModel::Path& path,
Gtk::TreeViewColumn* column);
void open_file(std::string filename);
int Pages();
View view;
std::string OnSaveFileAs();
std::string project_path;
Directories::Controller directories; //Todo: make private after creating open_directory()
EntryBox entry_box;
std::string last_search;
std::string last_replace;
bool search_entry_shown=false;
std::vector<std::unique_ptr<Source> > source_views;
private:
void CreateKeybindings();
void AskToSaveDialog();
std::vector<std::unique_ptr<Gtk::ScrolledWindow> > scrolled_windows;
std::vector<std::unique_ptr<Gtk::HBox> > hboxes;
Glib::RefPtr<Gtk::Clipboard> clipboard;
}; // class controller
} // namespace Notebook
#endif // JUCI_NOTEBOOK_H_