Browse Source

Added sourcemap for gtk versions>=3.18.

merge-requests/365/head
eidheim 10 years ago
parent
commit
fe497f6022
  1. 13
      src/notebook.cc
  2. 1
      src/notebook.h

13
src/notebook.cc

@ -99,11 +99,17 @@ void Notebook::open(const boost::filesystem::path &file_path) {
scrolled_windows.emplace_back(new Gtk::ScrolledWindow()); scrolled_windows.emplace_back(new Gtk::ScrolledWindow());
hboxes.emplace_back(new Gtk::HBox()); hboxes.emplace_back(new Gtk::HBox());
scrolled_windows.back()->add(*source_views.back()); scrolled_windows.back()->add(*source_views.back());
hboxes.back()->pack_start(*scrolled_windows.back(), true, true); hboxes.back()->pack_start(*scrolled_windows.back());
std::string title=file_path.filename().string(); #if GTK_VERSION_GE(3, 18)
source_maps.emplace_back(Glib::wrap(gtk_source_map_new()));
gtk_source_map_set_view(GTK_SOURCE_MAP(source_maps.back()->gobj()), source_views.back()->gobj());
hboxes.back()->pack_end(*source_maps.back(), Gtk::PACK_SHRINK);
#endif
std::string title=file_path.filename().string();
append_page(*hboxes.back(), title); append_page(*hboxes.back(), title);
set_tab_reorderable(*hboxes.back(), true); set_tab_reorderable(*hboxes.back(), true);
show_all_children(); show_all_children();
set_current_page(size()-1); set_current_page(size()-1);
@ -202,6 +208,9 @@ bool Notebook::close_current_page() {
else else
delete source_view; delete source_view;
source_views.erase(source_views.begin()+index); source_views.erase(source_views.begin()+index);
#if GTK_VERSION_GE(3, 18)
source_maps.erase(source_maps.begin()+index);
#endif
scrolled_windows.erase(scrolled_windows.begin()+index); scrolled_windows.erase(scrolled_windows.begin()+index);
hboxes.erase(hboxes.begin()+index); hboxes.erase(hboxes.begin()+index);
} }

1
src/notebook.h

@ -26,6 +26,7 @@ private:
bool save_modified_dialog(); bool save_modified_dialog();
Directories &directories; Directories &directories;
std::vector<Source::View*> source_views; //Is NOT freed in destructor, this is intended for quick program exit. std::vector<Source::View*> source_views; //Is NOT freed in destructor, this is intended for quick program exit.
std::vector<std::unique_ptr<Gtk::Widget> > source_maps;
std::vector<std::unique_ptr<Gtk::ScrolledWindow> > scrolled_windows; std::vector<std::unique_ptr<Gtk::ScrolledWindow> > scrolled_windows;
std::vector<std::unique_ptr<Gtk::HBox> > hboxes; std::vector<std::unique_ptr<Gtk::HBox> > hboxes;
}; };

Loading…
Cancel
Save