|
|
|
@ -69,18 +69,6 @@ Notebook::Notebook() : Gtk::HPaned(), notebooks(2) { |
|
|
|
if(on_switch_page) |
|
|
|
if(on_switch_page) |
|
|
|
on_switch_page(); |
|
|
|
on_switch_page(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
notebook.signal_page_removed().connect([this](Gtk::Widget *widget, guint) { |
|
|
|
|
|
|
|
if(on_page_removed) { |
|
|
|
|
|
|
|
auto hbox=dynamic_cast<Gtk::HBox*>(widget); |
|
|
|
|
|
|
|
for(size_t c=0;c<hboxes.size();++c) { |
|
|
|
|
|
|
|
if(hboxes[c].get()==hbox) { |
|
|
|
|
|
|
|
on_page_removed(source_views[c]); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
on_page_removed(nullptr); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
notebook.signal_page_added().connect([this](Gtk::Widget* widget, guint) { |
|
|
|
notebook.signal_page_added().connect([this](Gtk::Widget* widget, guint) { |
|
|
|
auto hbox=dynamic_cast<Gtk::HBox*>(widget); |
|
|
|
auto hbox=dynamic_cast<Gtk::HBox*>(widget); |
|
|
|
for(size_t c=0;c<hboxes.size();++c) { |
|
|
|
for(size_t c=0;c<hboxes.size();++c) { |
|
|
|
@ -356,11 +344,13 @@ bool Notebook::close(size_t index) { |
|
|
|
source_maps.erase(source_maps.begin()+index); |
|
|
|
source_maps.erase(source_maps.begin()+index); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
auto source_view=source_views.at(index); |
|
|
|
if(on_close) |
|
|
|
if(auto source_clang_view=dynamic_cast<Source::ClangView*>(source_view)) |
|
|
|
on_close(view); |
|
|
|
source_clang_view->async_delete(); |
|
|
|
|
|
|
|
|
|
|
|
if(auto clang_view=dynamic_cast<Source::ClangView*>(view)) |
|
|
|
|
|
|
|
clang_view->async_delete(); |
|
|
|
else |
|
|
|
else |
|
|
|
delete source_view; |
|
|
|
delete view; |
|
|
|
source_views.erase(source_views.begin()+index); |
|
|
|
source_views.erase(source_views.begin()+index); |
|
|
|
scrolled_windows.erase(scrolled_windows.begin()+index); |
|
|
|
scrolled_windows.erase(scrolled_windows.begin()+index); |
|
|
|
hboxes.erase(hboxes.begin()+index); |
|
|
|
hboxes.erase(hboxes.begin()+index); |
|
|
|
|