4 #include <gtkmm/window.h> 6 #include <gtkmm/progressbar.h> 7 #include <gtkmm/spinner.h> 8 #include <gtkmm/label.h> 9 #include <gtkmm/stock.h> 10 #include <gtkmm/button.h> 11 #include <gtkmm/uimanager.h> 12 #include <gtkmm/cssprovider.h> 13 #include <glibmm/dispatcher.h> 14 #include <giomm/settings.h> 15 #include <gtkmm/action.h> 25 #include "../common/TeXEngine.hh" 44 virtual void add_cell(
const DTree&, DTree::iterator,
bool)
override;
88 void load_file(
const std::string& notebook_contents);
115 void on_outbox_copy(Glib::RefPtr<Gtk::Clipboard> refClipboard, DTree::iterator it);
219 std::string
save(
const std::string& fn)
const;
264 #if GTKMM_MINOR_VERSION>=10 265 std::vector<Gtk::Revealer *> to_reveal;
bool handle_outbox_select(GdkEventButton *, DTree::iterator it)
Definition: NotebookWindow.cc:2102
DTree::iterator selected_cell
Definition: NotebookWindow.hh:113
void dim_output_cells(DTree::iterator it)
Definition: NotebookWindow.cc:1074
NotebookWindow(Cadabra *, bool read_only=false)
Definition: NotebookWindow.cc:31
bool on_scroll(GdkEventScroll *)
Definition: NotebookWindow.cc:985
std::string clipboard_txt
Definition: NotebookWindow.hh:216
std::string save(const std::string &fn) const
Definition: NotebookWindow.cc:1376
TeXEngine engine
Definition: NotebookWindow.hh:59
void on_file_open()
Definition: NotebookWindow.cc:1192
bool cell_content_erase(int, int, DTree::iterator, int)
Definition: NotebookWindow.cc:1061
Cadabra * cdbapp
Definition: NotebookWindow.hh:118
ComputeThread * compute
Definition: DocumentThread.hh:118
virtual size_t get_cursor_position(const DTree &, DTree::iterator) override
Retrieve the position of the cursor in the current cell.
Definition: NotebookWindow.cc:923
void refresh_highlighting()
Definition: NotebookWindow.cc:2069
std::vector< Glib::RefPtr< Gtk::Action > > default_actions
Definition: NotebookWindow.hh:120
A base class with all the logic to manipulate a Cadabra notebook document.
Definition: DocumentThread.hh:39
void on_edit_paste()
Definition: NotebookWindow.cc:1463
bool modified
Definition: NotebookWindow.hh:169
std::string run_git_command(const std::string &args)
Definition: NotebookWindow.cc:1801
Glib::Dispatcher dispatcher
Definition: NotebookWindow.hh:126
virtual void on_disconnect(const std::string &) override
Definition: NotebookWindow.cc:538
void compare_git_specific()
Definition: NotebookWindow.cc:1940
void unselect_output_cell()
Definition: NotebookWindow.cc:2088
void on_view_split()
Definition: NotebookWindow.cc:1536
Definition: Console.hh:25
virtual void process_data() override
When the ComputeThread needs to modify the document, it stores an ActionBase object on the stack (see...
Definition: NotebookWindow.cc:524
void on_file_quit()
Definition: NotebookWindow.cc:1439
void compare_to_file()
Definition: NotebookWindow.cc:1774
int last_configure_width
Definition: NotebookWindow.hh:255
double display_scale
Definition: NotebookWindow.hh:61
void on_help() const
Definition: NotebookWindow.cc:1606
std::vector< NotebookCanvas * > canvasses
Definition: NotebookWindow.hh:146
bool cell_content_execute(DTree::iterator, int, bool shift_enter_pressed)
Definition: NotebookWindow.cc:1106
bool quit_safeguard(bool quit)
Definition: NotebookWindow.cc:1401
Gtk::Spinner kernel_spinner
Definition: NotebookWindow.hh:154
void on_file_save_as()
Definition: NotebookWindow.cc:1258
virtual void on_kernel_runstatus(bool) override
Definition: NotebookWindow.cc:552
virtual void set_compute_thread(ComputeThread *compute) override
Let the notebook know about the ComputeThread so that it can send cells for evaluation.
Definition: NotebookWindow.cc:1638
bool on_tex_error(const std::string &, DTree::iterator)
Definition: NotebookWindow.cc:1145
void on_run_stop()
Definition: NotebookWindow.cc:1594
void on_file_export_python()
Definition: NotebookWindow.cc:1333
Glib::RefPtr< Gtk::ActionGroup > actiongroup
Definition: NotebookWindow.hh:130
void on_prefs_choose_colours()
Definition: NotebookWindow.cc:2046
std::mutex status_mutex
Definition: NotebookWindow.hh:162
void on_clipboard_clear()
Definition: NotebookWindow.cc:2162
~NotebookWindow()
Definition: NotebookWindow.cc:400
Gtk::Label kernel_label
Definition: NotebookWindow.hh:156
Gtk::ProgressBar progressbar
Definition: NotebookWindow.hh:153
void on_scroll_size_allocate(Gtk::Allocation &)
Definition: NotebookWindow.cc:994
void on_crash_window_closed(int)
Definition: NotebookWindow.cc:607
void on_file_export_latex()
Definition: NotebookWindow.cc:1310
bool cell_toggle_visibility(DTree::iterator it, int)
Definition: NotebookWindow.cc:1011
void on_file_close()
Definition: NotebookWindow.cc:1186
double scale
Definition: NotebookWindow.hh:60
virtual bool on_key_press_event(GdkEventKey *) override
Definition: NotebookWindow.cc:612
int quit(void *)
Definition: Server.cc:237
void on_edit_insert_above()
Definition: NotebookWindow.cc:1467
bool read_only
Definition: NotebookWindow.hh:169
void load_file(const std::string ¬ebook_contents)
Definition: NotebookWindow.cc:1229
void on_file_new()
Definition: NotebookWindow.cc:1173
virtual bool on_configure_event(GdkEventConfigure *cfg) override
Definition: NotebookWindow.cc:470
virtual void remove_cell(const DTree &, DTree::iterator) override
Remove a single cell together with all its child cells.
Definition: NotebookWindow.cc:807
Glib::RefPtr< Gtk::Action > menu_help_register
Definition: NotebookWindow.hh:261
DTree::iterator follow_cell
Definition: NotebookWindow.hh:256
std::string kernel_string
Definition: NotebookWindow.hh:163
The Cadabra notebook application.
Definition: Cadabra.hh:11
Abstract base class with methods that need to be implemented by any GUI.
Definition: GUIBase.hh:16
virtual void position_cursor(const DTree &, DTree::iterator, int pos) override
Position the cursor in the current canvas in the widget corresponding to the indicated cell...
Definition: NotebookWindow.cc:898
Each notebook has one main window which controls it.
Definition: NotebookWindow.hh:37
void set_name(const std::string &)
Definition: NotebookWindow.cc:1223
void on_kernel_restart()
Definition: NotebookWindow.cc:1599
bool kernel_spinner_status
Definition: NotebookWindow.hh:155
Glib::RefPtr< Gtk::Action > action_paste
Definition: NotebookWindow.hh:186
void compare_git_choose()
Definition: NotebookWindow.cc:1878
DTree::iterator current_cell
Definition: NotebookWindow.hh:110
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Algorithm.cc:1045
TeXEngine is used to convert LaTeX strings into PNG images.
Definition: TeXEngine.hh:23
bool on_vscroll_changed(Gtk::ScrollType, double)
Definition: NotebookWindow.cc:970
Gtk::Label status_label
Definition: NotebookWindow.hh:156
void on_edit_delete()
Definition: NotebookWindow.cc:1489
std::string clipboard_cdb
Definition: NotebookWindow.hh:216
Gtk::VBox mainbox
Definition: NotebookWindow.hh:135
void on_edit_cell_is_python()
Definition: NotebookWindow.cc:1514
Glib::RefPtr< Gtk::CssProvider > css_provider
Definition: NotebookWindow.hh:251
void set_title_prefix(const std::string &)
Definition: NotebookWindow.cc:495
void on_file_save()
Definition: NotebookWindow.cc:1238
bool is_configured
Definition: NotebookWindow.hh:259
virtual void update_cell(const DTree &, DTree::iterator) override
The basic manipulations that a GUI needs to implement are adding, removing and updating (refreshing t...
Definition: NotebookWindow.cc:884
void select_git_path()
Functionality for the diff viewer.
Definition: NotebookWindow.cc:1764
void on_view_close()
Definition: NotebookWindow.cc:1546
Glib::RefPtr< Gtk::Action > action_copy
Definition: NotebookWindow.hh:186
virtual bool on_delete_event(GdkEventAny *) override
Definition: NotebookWindow.cc:424
void process_todo_queue()
Todo deque processing logic.
Definition: NotebookWindow.cc:559
virtual void remove_all_cells() override
Remove all GUI cells from the display (used as a quick way to clear all before loading a new document...
Definition: NotebookWindow.cc:874
virtual void add_cell(const DTree &, DTree::iterator, bool) override
Add a GUI cell corresponding to the document cell at the iterator.
Definition: NotebookWindow.cc:636
void load_css(const std::string &)
Definition: NotebookWindow.cc:404
const char info[]
Definition: Snoop.hh:159
int current_canvas
Definition: NotebookWindow.hh:147
bool crash_window_hidden
Definition: NotebookWindow.hh:227
void compare_git(const std::string &commit_hash)
Definition: NotebookWindow.cc:1828
bool cell_got_focus(DTree::iterator, int)
Definition: NotebookWindow.cc:1091
tree< DataCell > DTree
Definition: DataCell.hh:103
void on_prefs_highlight_syntax(bool on)
Definition: NotebookWindow.cc:2015
void on_edit_copy()
Definition: NotebookWindow.cc:1452
bool cell_content_insert(const std::string &, int, DTree::iterator, int)
Definition: NotebookWindow.cc:1048
void scroll_current_cell_into_view()
Definition: NotebookWindow.cc:936
Glib::RefPtr< Gtk::UIManager > uimanager
Definition: NotebookWindow.hh:131
void on_clipboard_get(Gtk::SelectionData &, guint info)
Clipboard handling.
Definition: NotebookWindow.cc:2151
std::unique_ptr< DiffViewer > diffviewer
Definition: NotebookWindow.hh:142
Gtk::HBox supermainbox
Definition: NotebookWindow.hh:134
void on_prefs_set_cv(int vis)
Definition: NotebookWindow.cc:434
bool cell_content_changed(DTree::iterator it, int i)
Definition: NotebookWindow.cc:1039
void on_help_register()
Definition: NotebookWindow.cc:1674
void on_run_cell()
Definition: NotebookWindow.cc:1557
void on_file_export_html_segment()
Definition: NotebookWindow.cc:1353
void set_stop_sensitive(bool)
Definition: NotebookWindow.cc:516
void on_edit_undo()
Definition: NotebookWindow.cc:1447
virtual void on_network_error() override
Definition: NotebookWindow.cc:545
void on_prefs_font_size(int num)
Definition: NotebookWindow.cc:1967
void compare_git_latest()
Definition: NotebookWindow.cc:1846
void on_file_export_html()
Definition: NotebookWindow.cc:1290
Gtk::HBox statusbarbox
Definition: NotebookWindow.hh:137
Base class which talks to the server and sends Action objects back to the DocumentThread.
Definition: ComputeThread.hh:35
void on_help_about()
Definition: NotebookWindow.cc:1644
void on_prefs_use_defaults()
Definition: NotebookWindow.cc:2053
void on_edit_cell_is_latex()
Definition: NotebookWindow.cc:1525
virtual void on_interactive_output(const Json::Value &msg) override
Definition: NotebookWindow.cc:802
void on_outbox_copy(Glib::RefPtr< Gtk::Clipboard > refClipboard, DTree::iterator it)
Definition: NotebookWindow.cc:2124
std::string title_prefix
Definition: NotebookWindow.hh:168
void on_text_scaling_factor_changed(const std::string &key)
Definition: NotebookWindow.cc:1742
void on_run_runtocursor()
Definition: NotebookWindow.cc:1582
void on_run_runall()
Definition: NotebookWindow.cc:1570
Gtk::Dialog console_win
Definition: NotebookWindow.hh:140
void on_edit_split()
Definition: NotebookWindow.cc:1507
virtual void on_connect() override
Network status is propagated from the ComputeThread to the GUI using the following methods...
Definition: NotebookWindow.cc:530
void interactive_execute()
Definition: NotebookWindow.cc:1101
std::string name
Definition: NotebookWindow.hh:168
std::string status_string
Definition: NotebookWindow.hh:163
Glib::RefPtr< Gio::Settings > settings
Definition: NotebookWindow.hh:252
Gtk::VBox topbox
Definition: NotebookWindow.hh:133
Console console
Definition: NotebookWindow.hh:139
void on_edit_insert_below()
Definition: NotebookWindow.cc:1478
void update_title()
Definition: NotebookWindow.cc:500
bool idle_handler()
Definition: NotebookWindow.cc:2077