Cadabra
Computer algebra system for field theory problems
NotebookWindow.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include <gtkmm/window.h>
5 #include <gtkmm/applicationwindow.h>
6 #include <gtkmm/box.h>
7 #include <gtkmm/progressbar.h>
8 #include <gtkmm/spinner.h>
9 #include <gtkmm/label.h>
10 #include <gtkmm/stock.h>
11 #include <gtkmm/button.h>
12 #include <gtkmm/builder.h>
13 #include <gtkmm/cssprovider.h>
14 #include <gtkmm/toolbar.h>
15 #include <glibmm/dispatcher.h>
16 #include <giomm/settings.h>
17 #include <giomm/actiongroup.h>
18 
19 #include <thread>
20 #include <mutex>
21 
22 #include "nlohmann/json.hpp"
23 
24 #include "DocumentThread.hh"
25 #include "ComputeThread.hh"
26 #include "Console.hh"
27 #include "GUIBase.hh"
28 #include "NotebookCanvas.hh"
29 #include "../common/TeXEngine.hh"
30 #include "DiffViewer.hh"
31 
32 class Cadabra;
33 
34 namespace cadabra {
35 
40 
41  class NotebookWindow : public Gtk::ApplicationWindow, public DocumentThread, public GUIBase {
42  public:
43  NotebookWindow(Cadabra *, bool read_only=false);
45 
46  // Virtual functions from GUIBase.
47 
48  virtual void add_cell(const DTree&, DTree::iterator, bool) override;
49  virtual void remove_cell(const DTree&, DTree::iterator) override;
50  virtual void remove_all_cells() override;
51  virtual void update_cell(const DTree&, DTree::iterator) override;
52  virtual void position_cursor(const DTree&, DTree::iterator, int pos) override;
53  virtual size_t get_cursor_position(const DTree&, DTree::iterator) override;
54 
55  void select_range(const DTree&, DTree::iterator, int start, int len);
56 
57  virtual void on_connect() override;
58  virtual void on_disconnect(const std::string&) override;
59  virtual void on_network_error() override;
60  virtual void on_kernel_runstatus(bool) override;
61 
62  virtual void process_data() override;
63 
64  // TeX stuff
66  double scale; // total scale factor (hdpi and textscale)
67  double display_scale; // hdpi scale only
68 
69  // Handler for vertical scrollbar changes.
70  bool on_vscroll_changed(Gtk::ScrollType, double);
71 
72  // Handler for mouse wheel events.
73  // bool on_mouse_wheel(GdkEventButton*);
74 
75  // Handler for scroll events.
76  bool on_scroll(GdkEventScroll*);
77 
78  // When something inside the large notebook canvas changes, we need
79  // to make sure that the current cell stays into view (if we are
80  // editing that cell). We can only do that once all size info is
81  // known, which is when the scrolledwindow gets its size_allocate
82  // signal. Here's the handler for it.
83  void on_scroll_size_allocate(Gtk::Allocation&);
84 
85  // Ensure that the current cell is visible. This will assume
86  // that all size allocations of widgets inside the scrolled window
87  // have been made; it only does scrolling, based on the current
88  // allocations. Calls `scroll_cell_into_view`.
90 
91  // Ensure that the indicated cell is visible.
92  void scroll_cell_into_view(DTree::iterator cell);
93 
94  void set_name(const std::string&);
95  void set_title_prefix(const std::string&);
96 
97  void load_file(const std::string& notebook_contents);
98  void refresh_highlighting();
99  void on_help_register();
100 
101  void set_statusbar_message(const std::string& message = "", int line = -1, int col = -1);
102 
104  void select_git_path();
105  void compare_to_file();
106  void compare_git_latest();
107  void compare_git_choose();
108  void compare_git_specific();
109  void compare_git(const std::string& commit_hash);
110  std::string run_git_command(const std::string& args);
111 
112  virtual void set_compute_thread(ComputeThread* compute) override;
113 
114  virtual void on_interactive_output(const nlohmann::json& msg) override;
115  virtual void set_progress(const std::string& msg, int cur_step, int total_steps) override;
116  protected:
117  virtual bool on_key_press_event(GdkEventKey*) override;
118  virtual bool on_delete_event(GdkEventAny*) override;
119  virtual bool on_configure_event(GdkEventConfigure *cfg) override;
120  virtual bool on_unhandled_error(const std::exception& err) override;
121 
122  DTree::iterator current_cell;
123 
124  bool handle_outbox_select(GdkEventButton *, DTree::iterator it);
125  DTree::iterator selected_cell;
126  void unselect_output_cell();
127  void on_outbox_copy(Glib::RefPtr<Gtk::Clipboard> refClipboard, DTree::iterator it);
128 
129  private:
130  Glib::RefPtr<Cadabra> cdbapp;
131 
132  std::vector<Glib::RefPtr<Gio::SimpleAction>> default_actions;
133 
134  // Main handler which fires whenever the Client object signals
135  // that the document is changing or the network status is modified.
136  // Runs on the GUI thread.
137 
138  Glib::Dispatcher dispatcher;
139 
140  // GUI elements.
141 
142  Glib::RefPtr<Gio::SimpleActionGroup> actiongroup;
143  Glib::RefPtr<Gtk::Builder> uimanager;
144 
145  Gtk::VBox topbox;
146  Gtk::HBox toolbar;
149  Gtk::HBox supermainbox;
150  Gtk::Paned dragbox;
151  Gtk::VBox mainbox;
152  // Gtk::HBox buttonbox;
153  Gtk::SearchBar searchbar;
154  Gtk::HBox search_hbox;
155  Gtk::SearchEntry searchentry;
156  Gtk::CheckButton search_case_insensitive;
157  Gtk::Label search_result;
158  Gtk::HBox statusbarbox;
159 
161  Gtk::Dialog console_win;
162 
163  std::unique_ptr<DiffViewer> diffviewer;
164 
165  // All canvasses which are stored in the ...
166  // These pointers are managed by gtkmm.
167  std::vector<NotebookCanvas *> canvasses;
169 
170  // Buttons
171  // Gtk::Button b_kill, b_run, b_run_to, b_run_from, b_help, b_stop, b_undo, b_redo;
172 
173  // Status bar
174  Gtk::ProgressBar progressbar;
175  Gtk::Spinner kernel_spinner;
178 
179  // GUI data which is the autoritative source for things displayed in
180  // the status bars declared above. These strings are filled on the
181  // compute thread and then updated into the gui on the gui thread.
182 
183  std::mutex status_mutex;
188  void update_status();
189 
190  // Run the TeX engine on a separate thread, then call
191  // `dispatch_refresh` to update the display.
192  void tex_run_async();
193 
194  // Name and modification data.
195  void update_title();
196  void set_stop_sensitive(bool);
197  std::string name, title_prefix;
199 
200  // Menu and button callbacks.
201  void on_file_new();
202  void on_file_open();
203  void on_file_close();
204  void on_file_save();
205  void on_file_save_as();
207  void on_file_export_html();
209  void on_file_export_latex();
210  void on_file_export_python();
211  void on_file_quit();
212  bool quit_safeguard(bool quit);
213 
214  void on_edit_undo();
215  void on_edit_copy(const Glib::VariantBase&);
216  void on_edit_paste();
217  void on_edit_insert_above();
218  void on_edit_insert_below();
219  void on_edit_delete();
220  void on_edit_split();
221  void on_edit_cell_is_latex();
222  void on_edit_cell_is_python();
224  void on_edit_find();
225 
226  void on_view_split();
227  void on_view_close();
228 
229  void on_run_cell();
230  void on_run_runall();
231  void on_run_runtocursor();
232  void on_run_stop();
233 
234  void on_prefs_set_cv(int vis);
235  void on_prefs_font_size(int num);
236  void on_prefs_highlight_syntax(bool on);
237  void on_prefs_microtex(bool on);
239  void on_prefs_use_defaults();
240 
241  void on_tools_options();
242  void on_tools_clear_cache();
243 
244  void on_help_about();
245  void on_help() const;
246 
247  void on_kernel_restart();
248 
250  void on_search_text_changed();
251 
253  void on_clipboard_get(Gtk::SelectionData&, guint info);
254  void on_clipboard_clear();
256 
257  // FIXME: move to DocumentThread
258  std::string save(const std::string& fn) const;
259 
263  void process_todo_queue();
264 
270 
274 
275  void on_crash_window_closed(int);
277 
278  // The following are handlers that get called when the cell
279  // gets focus, the content of a cell is changed, the user
280  // requests to run it (shift-enter). The last two parameters are
281  // always the cell in the DTree and the canvas number.
282 
283  bool cell_got_focus(DTree::iterator, int);
284  bool cell_toggle_visibility(DTree::iterator it, int);
285  bool cell_content_insert(const std::string&, int, DTree::iterator, int);
286  bool cell_content_erase(int, int, DTree::iterator, int);
287  bool cell_content_execute(DTree::iterator, int, bool shift_enter_pressed);
288  bool cell_content_changed(DTree::iterator it, int i);
289  bool cell_complete_request(DTree::iterator it, int pos, int i);
290 
291  void interactive_execute();
292 
293  void dim_output_cells(DTree::iterator it);
294 
295  // Handler for callbacks from TeXView cells.
296 
297  bool on_tex_error(const std::string&, DTree::iterator);
298 
299  // Styling through CSS
300  void load_css();
301  Glib::RefPtr<Gtk::CssProvider> css_provider;
302  Glib::RefPtr<Gio::Settings> settings;
303  void on_text_scaling_factor_changed(const std::string& key);
304 
306  DTree::iterator follow_cell;
307 
308  // Mutex to protect the variables below.
309  std::recursive_mutex tex_need_width_mutex;
310  std::unique_ptr<std::thread> tex_thread;
313  std::string tex_error_string;
314 
315  std::pair<DTree::iterator, size_t> last_find_location;
316  std::string last_find_string;
317 
319 
320  // We keep references to a few menu actions so we can
321  // enable/disable them at runtime.
322  Glib::RefPtr<Gio::SimpleAction> action_copy, action_paste, action_fontsize, action_highlight,
324 
325  // Transition animations.
326 #if GTKMM_MINOR_VERSION>=10
327  std::vector<Gtk::Revealer *> to_reveal;
328 #endif
329  bool idle_handler();
330  };
331 
332  };
int quit(void *)
Definition: Server.cc:309
The Cadabra notebook application.
Definition: Cadabra.hh:11
Base class which talks to the server and sends Action objects back to the DocumentThread.
Definition: ComputeThread.hh:36
Definition: Console.hh:15
A base class with all the logic to manipulate a Cadabra notebook document.
Definition: DocumentThread.hh:40
ComputeThread * compute
Definition: DocumentThread.hh:129
Abstract base class with methods that need to be implemented by any GUI.
Definition: GUIBase.hh:16
Each notebook has one main window which controls it.
Definition: NotebookWindow.hh:41
void on_file_quit()
Definition: NotebookWindow.cc:2125
void on_view_split()
Definition: NotebookWindow.cc:2286
bool kernel_spinner_status
Definition: NotebookWindow.hh:176
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:947
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:2396
bool cell_content_erase(int, int, DTree::iterator, int)
Definition: NotebookWindow.cc:1680
DTree::iterator current_cell
Definition: NotebookWindow.hh:122
void tex_run_async()
Definition: NotebookWindow.cc:991
Gtk::HBox toolbar
Definition: NotebookWindow.hh:146
Gtk::VBox topbox
Definition: NotebookWindow.hh:145
std::unique_ptr< DiffViewer > diffviewer
Definition: NotebookWindow.hh:163
Gtk::Label kernel_label
Definition: NotebookWindow.hh:177
Gtk::HBox statusbarbox
Definition: NotebookWindow.hh:158
Glib::RefPtr< Gio::SimpleAction > action_fontsize
Definition: NotebookWindow.hh:322
virtual void set_progress(const std::string &msg, int cur_step, int total_steps) override
Definition: NotebookWindow.cc:1334
std::string progress_string
Definition: NotebookWindow.hh:184
void on_tools_options()
Definition: NotebookWindow.cc:2837
void on_file_export_html()
Definition: NotebookWindow.cc:1976
virtual void on_connect() override
Network status is propagated from the ComputeThread to the GUI using the following methods.
Definition: NotebookWindow.cc:953
std::recursive_mutex tex_need_width_mutex
Definition: NotebookWindow.hh:309
bool tex_running
Definition: NotebookWindow.hh:311
double display_scale
Definition: NotebookWindow.hh:67
Glib::RefPtr< Gtk::CssProvider > css_provider
Definition: NotebookWindow.hh:301
void on_edit_copy(const Glib::VariantBase &)
Definition: NotebookWindow.cc:2138
void compare_to_file()
Definition: NotebookWindow.cc:2531
void on_scroll_size_allocate(Gtk::Allocation &)
Definition: NotebookWindow.cc:1611
Glib::Dispatcher dispatch_update_status
Definition: NotebookWindow.hh:187
virtual bool on_configure_event(GdkEventConfigure *cfg) override
Definition: NotebookWindow.cc:863
void on_crash_window_closed(int)
Definition: NotebookWindow.cc:1093
void on_prefs_choose_colours()
Definition: NotebookWindow.cc:2814
int status_col
Definition: NotebookWindow.hh:186
bool cell_content_execute(DTree::iterator, int, bool shift_enter_pressed)
Definition: NotebookWindow.cc:1746
void on_run_cell()
Definition: NotebookWindow.cc:2307
void on_search_text_changed()
Search handling.
Definition: NotebookWindow.cc:2211
int tex_need_width
Definition: NotebookWindow.hh:312
int last_configure_width
Definition: NotebookWindow.hh:305
void select_range(const DTree &, DTree::iterator, int start, int len)
Definition: NotebookWindow.cc:1497
void process_todo_queue()
Todo deque processing logic.
Definition: NotebookWindow.cc:1044
virtual void remove_cell(const DTree &, DTree::iterator) override
Remove a single cell together with all its child cells.
Definition: NotebookWindow.cc:1367
double progress_frac
Definition: NotebookWindow.hh:185
virtual size_t get_cursor_position(const DTree &, DTree::iterator) override
Retrieve the position of the cursor in the current cell.
Definition: NotebookWindow.cc:1519
Gtk::Button tool_restart
Definition: NotebookWindow.hh:148
Glib::RefPtr< Gio::SimpleActionGroup > actiongroup
Definition: NotebookWindow.hh:142
void on_run_runall()
Definition: NotebookWindow.cc:2320
void compare_git_latest()
Definition: NotebookWindow.cc:2603
Glib::Dispatcher dispatcher
Definition: NotebookWindow.hh:138
virtual bool on_unhandled_error(const std::exception &err) override
Definition: NotebookWindow.cc:900
void interactive_execute()
Definition: NotebookWindow.cc:1720
void on_edit_find()
Definition: NotebookWindow.cc:2203
std::string kernel_string
Definition: NotebookWindow.hh:184
void handle_thread_tex_error()
Handle a TeX error which occurred on a threaded TeX run (activated by tex_run_async) and is stored in...
Definition: NotebookWindow.cc:893
bool read_only
Definition: NotebookWindow.hh:198
DTree::iterator selected_cell
Definition: NotebookWindow.hh:125
void load_file(const std::string &notebook_contents)
Definition: NotebookWindow.cc:1880
Gtk::Button tool_run
Definition: NotebookWindow.hh:148
Glib::RefPtr< Gio::SimpleAction > action_paste
Definition: NotebookWindow.hh:322
Gtk::Label status_label
Definition: NotebookWindow.hh:177
void on_edit_paste()
Definition: NotebookWindow.cc:2149
Glib::RefPtr< Cadabra > cdbapp
Definition: NotebookWindow.hh:130
void on_file_export_python()
Definition: NotebookWindow.cc:2019
std::mutex status_mutex
Definition: NotebookWindow.hh:183
Gtk::Label top_label
Definition: NotebookWindow.hh:177
Gtk::SearchBar searchbar
Definition: NotebookWindow.hh:153
void refresh_highlighting()
Definition: NotebookWindow.cc:2943
std::string last_find_string
Definition: NotebookWindow.hh:316
Gtk::ProgressBar progressbar
Definition: NotebookWindow.hh:174
void on_view_close()
Definition: NotebookWindow.cc:2296
Gtk::CheckButton search_case_insensitive
Definition: NotebookWindow.hh:156
void on_help_about()
Definition: NotebookWindow.cc:2401
Gtk::Label search_result
Definition: NotebookWindow.hh:157
void on_edit_insert_below()
Definition: NotebookWindow.cc:2169
void on_edit_insert_above()
Definition: NotebookWindow.cc:2153
void on_prefs_use_defaults()
Definition: NotebookWindow.cc:2821
std::string run_git_command(const std::string &args)
Definition: NotebookWindow.cc:2558
void on_help() const
Definition: NotebookWindow.cc:2364
Glib::Dispatcher dispatch_tex_error
Definition: NotebookWindow.hh:187
void on_edit_split()
Definition: NotebookWindow.cc:2248
virtual bool on_key_press_event(GdkEventKey *) override
Definition: NotebookWindow.cc:1098
std::string clipboard_cdb
Definition: NotebookWindow.hh:255
void on_help_register()
Definition: NotebookWindow.cc:2431
void update_title()
Definition: NotebookWindow.cc:912
Gtk::Button tool_stop
Definition: NotebookWindow.hh:148
std::vector< Glib::RefPtr< Gio::SimpleAction > > default_actions
Definition: NotebookWindow.hh:132
std::unique_ptr< std::thread > tex_thread
Definition: NotebookWindow.hh:310
NotebookWindow(Cadabra *, bool read_only=false)
Definition: NotebookWindow.cc:40
void on_edit_delete()
Definition: NotebookWindow.cc:2185
bool is_configured
Definition: NotebookWindow.hh:318
void on_clipboard_get(Gtk::SelectionData &, guint info)
Clipboard handling.
Definition: NotebookWindow.cc:3027
Gtk::Paned dragbox
Definition: NotebookWindow.hh:150
std::string clipboard_txt
Definition: NotebookWindow.hh:255
void on_prefs_microtex(bool on)
Definition: NotebookWindow.cc:2782
void on_prefs_highlight_syntax(bool on)
Definition: NotebookWindow.cc:2750
void on_file_save_as_jupyter()
Definition: NotebookWindow.cc:1943
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:1472
Glib::RefPtr< Gio::SimpleAction > action_copy
Definition: NotebookWindow.hh:322
void set_stop_sensitive(bool)
Definition: NotebookWindow.cc:939
void on_clipboard_clear()
Definition: NotebookWindow.cc:3038
void unselect_output_cell()
Definition: NotebookWindow.cc:2962
std::string tex_error_string
Definition: NotebookWindow.hh:313
void scroll_cell_into_view(DTree::iterator cell)
Definition: NotebookWindow.cc:1538
void on_file_export_latex()
Definition: NotebookWindow.cc:1996
void on_run_stop()
Definition: NotebookWindow.cc:2344
double scale
Definition: NotebookWindow.hh:66
void on_prefs_font_size(int num)
Definition: NotebookWindow.cc:2717
std::pair< DTree::iterator, size_t > last_find_location
Definition: NotebookWindow.hh:315
void select_git_path()
Functionality for the diff viewer.
Definition: NotebookWindow.cc:2521
void on_text_scaling_factor_changed(const std::string &key)
Definition: NotebookWindow.cc:2499
bool crash_window_hidden
Definition: NotebookWindow.hh:276
std::vector< NotebookCanvas * > canvasses
Definition: NotebookWindow.hh:167
virtual void on_disconnect(const std::string &) override
Definition: NotebookWindow.cc:970
bool cell_complete_request(DTree::iterator it, int pos, int i)
Definition: NotebookWindow.cc:1727
void on_ignore_cell_on_import()
Definition: NotebookWindow.cc:2266
bool on_vscroll_changed(Gtk::ScrollType, double)
Definition: NotebookWindow.cc:1587
void on_edit_undo()
Definition: NotebookWindow.cc:2133
virtual void on_interactive_output(const nlohmann::json &msg) override
Definition: NotebookWindow.cc:1329
void on_file_new()
Definition: NotebookWindow.cc:1814
void refresh_after_tex_engine_run()
Refresh the display after a TeX engine run has completed.
Definition: NotebookWindow.cc:887
bool quit_safeguard(bool quit)
Definition: NotebookWindow.cc:2087
virtual void on_network_error() override
Definition: NotebookWindow.cc:977
void on_outbox_copy(Glib::RefPtr< Gtk::Clipboard > refClipboard, DTree::iterator it)
Definition: NotebookWindow.cc:3000
virtual bool on_delete_event(GdkEventAny *) override
Definition: NotebookWindow.cc:810
TeXEngine engine
Definition: NotebookWindow.hh:65
void on_edit_cell_is_python()
Definition: NotebookWindow.cc:2255
Glib::RefPtr< Gio::SimpleAction > action_console
Definition: NotebookWindow.hh:323
void dim_output_cells(DTree::iterator it)
Definition: NotebookWindow.cc:1693
std::string save(const std::string &fn) const
Definition: NotebookWindow.cc:2062
void on_kernel_restart()
Definition: NotebookWindow.cc:2349
void on_prefs_set_cv(int vis)
Definition: NotebookWindow.cc:820
Glib::RefPtr< Gtk::Builder > uimanager
Definition: NotebookWindow.hh:143
void on_file_save()
Definition: NotebookWindow.cc:1889
void scroll_current_cell_into_view()
Definition: NotebookWindow.cc:1532
Gtk::Button tool_save_as
Definition: NotebookWindow.hh:147
void on_run_runtocursor()
Definition: NotebookWindow.cc:2332
Gtk::HBox supermainbox
Definition: NotebookWindow.hh:149
Gtk::Button tool_run_to
Definition: NotebookWindow.hh:148
void on_file_save_as()
Definition: NotebookWindow.cc:1909
bool idle_handler()
Definition: NotebookWindow.cc:2951
Gtk::Button tool_save
Definition: NotebookWindow.hh:147
void compare_git_choose()
Definition: NotebookWindow.cc:2635
Gtk::VBox mainbox
Definition: NotebookWindow.hh:151
void set_title_prefix(const std::string &)
Definition: NotebookWindow.cc:907
bool cell_got_focus(DTree::iterator, int)
Definition: NotebookWindow.cc:1710
bool on_tex_error(const std::string &, DTree::iterator)
Definition: NotebookWindow.cc:1786
Gtk::SearchEntry searchentry
Definition: NotebookWindow.hh:155
bool modified
Definition: NotebookWindow.hh:198
void update_status()
Definition: NotebookWindow.cc:1350
Gtk::Dialog console_win
Definition: NotebookWindow.hh:161
void on_edit_cell_is_latex()
Definition: NotebookWindow.cc:2275
bool cell_toggle_visibility(DTree::iterator it, int)
Definition: NotebookWindow.cc:1628
Glib::RefPtr< Gio::SimpleAction > action_highlight
Definition: NotebookWindow.hh:322
Console console
Definition: NotebookWindow.hh:160
int status_line
Definition: NotebookWindow.hh:186
Glib::RefPtr< Gio::SimpleAction > action_stop
Definition: NotebookWindow.hh:323
void on_tools_clear_cache()
Definition: NotebookWindow.cc:2925
void compare_git_specific()
Definition: NotebookWindow.cc:2690
bool handle_outbox_select(GdkEventButton *, DTree::iterator it)
Definition: NotebookWindow.cc:2976
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:1456
std::string name
Definition: NotebookWindow.hh:197
Gtk::HBox search_hbox
Definition: NotebookWindow.hh:154
void set_statusbar_message(const std::string &message="", int line=-1, int col=-1)
Definition: NotebookWindow.cc:928
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:1156
bool cell_content_changed(DTree::iterator it, int i)
Definition: NotebookWindow.cc:1656
~NotebookWindow()
Definition: NotebookWindow.cc:737
bool on_scroll(GdkEventScroll *)
Definition: NotebookWindow.cc:1602
Glib::RefPtr< Gio::SimpleAction > action_microtex
Definition: NotebookWindow.hh:323
Gtk::Button tool_open
Definition: NotebookWindow.hh:147
void compare_git(const std::string &commit_hash)
Definition: NotebookWindow.cc:2585
void on_file_open()
Definition: NotebookWindow.cc:1841
std::string status_string
Definition: NotebookWindow.hh:184
virtual void on_kernel_runstatus(bool) override
Definition: NotebookWindow.cc:984
void on_file_export_html_segment()
Definition: NotebookWindow.cc:2039
Glib::Dispatcher dispatch_refresh
Definition: NotebookWindow.hh:187
DTree::iterator follow_cell
Definition: NotebookWindow.hh:306
Gtk::Spinner kernel_spinner
Definition: NotebookWindow.hh:175
Glib::RefPtr< Gio::Settings > settings
Definition: NotebookWindow.hh:302
void on_file_close()
Definition: NotebookWindow.cc:1827
bool cell_content_insert(const std::string &, int, DTree::iterator, int)
Definition: NotebookWindow.cc:1667
void load_css()
Definition: NotebookWindow.cc:741
int current_canvas
Definition: NotebookWindow.hh:168
std::string title_prefix
Definition: NotebookWindow.hh:197
void set_name(const std::string &)
Definition: NotebookWindow.cc:1874
Glib::RefPtr< Gio::SimpleAction > action_register
Definition: NotebookWindow.hh:323
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:1446
TeXEngine is used to convert LaTeX strings into PNG images.
Definition: TeXEngine.hh:23
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
tree< DataCell > DTree
Definition: DataCell.hh:108
start
Definition: nevaluate.py:20
const char info[]
Definition: Snoop.hh:336