Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
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
32class Cadabra;
33
34namespace 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 SliderView change events.
73 void on_slider_changed(std::string variable, double value);
74
75 // Handler for mouse wheel events.
76 // bool on_mouse_wheel(GdkEventButton*);
77
78 // Handler for scroll events.
80
81 // When something inside the large notebook canvas changes, we need
82 // to make sure that the current cell stays into view (if we are
83 // editing that cell). We can only do that once all size info is
84 // known, which is when the scrolledwindow gets its size_allocate
85 // signal. Here's the handler for it.
86 void on_scroll_size_allocate(Gtk::Allocation&);
87
88 // Ensure that the current cell is visible. This will assume
89 // that all size allocations of widgets inside the scrolled window
90 // have been made; it only does scrolling, based on the current
91 // allocations. Calls `scroll_cell_into_view`.
93
94 // Ensure that the indicated cell is visible.
95 void scroll_cell_into_view(DTree::iterator cell);
96
97 void set_name(const std::string&);
98 void set_title_prefix(const std::string&);
99
100 void load_file(const std::string& notebook_contents);
102 void on_help_register();
103
104 void set_statusbar_message(const std::string& message = "", int line = -1, int col = -1);
105
107 void select_git_path();
108 void compare_to_file();
109 void compare_git_latest();
110 void compare_git_choose();
112 void compare_git(const std::string& commit_hash);
113 std::string run_git_command(const std::string& args);
114
115 virtual void set_compute_thread(ComputeThread* compute) override;
116
117 virtual void on_interactive_output(const nlohmann::json& msg) override;
118 virtual void set_progress(const std::string& msg, int cur_step, int total_steps) override;
119 protected:
120 virtual bool on_key_press_event(GdkEventKey*) override;
121 virtual bool on_delete_event(GdkEventAny*) override;
122 virtual bool on_configure_event(GdkEventConfigure *cfg) override;
123 virtual bool on_unhandled_error(const std::exception& err) override;
124
125 DTree::iterator current_cell;
126
127 bool handle_outbox_select(GdkEventButton *, DTree::iterator it);
128 DTree::iterator selected_cell;
130 void on_outbox_copy(Glib::RefPtr<Gtk::Clipboard> refClipboard, DTree::iterator it);
131
132 private:
133 Glib::RefPtr<Cadabra> cdbapp;
134
135 std::vector<Glib::RefPtr<Gio::SimpleAction>> default_actions;
136
137 // Main handler which fires whenever the Client object signals
138 // that the document is changing or the network status is modified.
139 // Runs on the GUI thread.
140
141 Glib::Dispatcher dispatcher;
142
143 // GUI elements.
144
145 Glib::RefPtr<Gio::SimpleActionGroup> actiongroup;
146 Glib::RefPtr<Gtk::Builder> uimanager;
147
148 Gtk::VBox topbox;
149 Gtk::HBox toolbar;
152 Gtk::HBox supermainbox;
153 Gtk::Paned dragbox;
154 Gtk::VBox mainbox;
155 // Gtk::HBox buttonbox;
156 Gtk::SearchBar searchbar;
157 Gtk::HBox search_hbox;
158 Gtk::SearchEntry searchentry;
159 Gtk::CheckButton search_case_insensitive;
160 Gtk::Label search_result;
161 Gtk::HBox statusbarbox;
162
164 Gtk::Dialog console_win;
165
166 std::unique_ptr<DiffViewer> diffviewer;
167
168 // All canvasses which are stored in the ...
169 // These pointers are managed by gtkmm.
170 std::vector<NotebookCanvas *> canvasses;
172
173 // Buttons
174 // Gtk::Button b_kill, b_run, b_run_to, b_run_from, b_help, b_stop, b_undo, b_redo;
175
176 // Status bar
177 Gtk::ProgressBar progressbar;
178 Gtk::Spinner kernel_spinner;
181
182 // GUI data which is the autoritative source for things displayed in
183 // the status bars declared above. These strings are filled on the
184 // compute thread and then updated into the gui on the gui thread.
185
186 std::mutex status_mutex;
191 void update_status();
192
193 // Run the TeX engine on a separate thread, then call
194 // `dispatch_refresh` to update the display.
195 void tex_run_async();
196
197 // Name and modification data.
198 void update_title();
199 void set_stop_sensitive(bool);
200 std::string name, title_prefix;
202
203 // Menu and button callbacks.
204 void on_file_new();
205 void on_file_open();
206 void on_file_close();
207 void on_file_save();
208 void on_file_save_as();
210 void on_file_export_html();
214 void on_file_quit();
215 bool quit_safeguard(bool quit);
216 bool on_first_redraw();
217
218 void on_edit_undo(const Glib::VariantBase&);
219 void on_edit_redo(const Glib::VariantBase&);
220 void on_edit_copy(const Glib::VariantBase&);
221 void on_edit_paste();
224 void on_edit_delete();
225 void on_edit_split();
229 void on_edit_find();
230
231 void on_view_split();
232 void on_view_close(const Glib::VariantBase&);
233
234 void on_run_cell();
235 void on_run_runall();
236 void on_run_runtocursor();
237 void on_run_stop();
238
239 void on_prefs_set_cv(int vis);
240 void on_prefs_auto_close_latex(const Glib::VariantBase& vb);
241 void on_prefs_font_size(int num);
242 void on_prefs_highlight_syntax(bool on);
243 void on_prefs_microtex(bool on);
246
247 void on_tools_options();
249
250 void on_help_about();
251 void on_help() const;
252
253 void on_kernel_restart();
254
257
259 void on_clipboard_get(Gtk::SelectionData&, guint info);
260 void on_clipboard_clear();
262
263 // FIXME: move to DocumentThread
264 std::string save(const std::string& fn) const;
265
269 void process_todo_queue();
270
276
280
281 void on_crash_window_closed(int);
283
284 // The following are handlers that get called when the cell
285 // gets focus, the content of a cell is changed, the user
286 // requests to run it (shift-enter). The last two parameters are
287 // always the cell in the DTree and the canvas number.
288
289 bool cell_got_focus(DTree::iterator, int);
290 bool cell_toggle_visibility(DTree::iterator it, int);
291 bool cell_content_insert(const std::string&, int, DTree::iterator, int);
292 bool cell_content_erase(int, int, DTree::iterator, int);
293 bool cell_content_execute(DTree::iterator, int, bool shift_enter_pressed);
294 bool cell_content_changed(DTree::iterator it, int i);
295 bool cell_complete_request(DTree::iterator it, int pos, int i);
296
297 void interactive_execute();
298
299 void dim_output_cells(DTree::iterator it);
300 void resize_codeinput_texview_all(int width);
301 void resize_codeinput_texview(DTree::iterator, int width);
302
303 // Handler for callbacks from TeXView cells.
304
305 bool on_tex_error(const std::string&, DTree::iterator);
306
307 // Styling through CSS
308 void load_css();
309 Glib::RefPtr<Gtk::CssProvider> css_provider;
310 Glib::RefPtr<Gio::Settings> settings;
311 void on_text_scaling_factor_changed(const std::string& key);
312
314 DTree::iterator follow_cell;
315
316 // Mutex to protect the variables below.
317 std::recursive_mutex tex_need_width_mutex;
318 std::unique_ptr<std::thread> tex_thread;
321 std::string tex_error_string;
322
323 std::pair<DTree::iterator, size_t> last_find_location;
324 std::string last_find_string;
325
327
328 // We keep references to a few menu actions so we can
329 // enable/disable them at runtime.
330 Glib::RefPtr<Gio::SimpleAction> action_copy, action_undo, action_redo,
334
335 // Transition animations.
336#if GTKMM_MINOR_VERSION>=10
337 std::vector<Gtk::Revealer *> to_reveal;
338#endif
339 bool idle_handler();
340 };
341
342 };
int quit(void *)
Definition Server.cc:328
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:29
Definition Console.hh:15
A base class with all the logic to manipulate a Cadabra notebook document.
Definition DocumentThread.hh:41
ComputeThread * compute
Definition DocumentThread.hh:146
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:2390
void on_view_split()
Definition NotebookWindow.cc:2598
bool kernel_spinner_status
Definition NotebookWindow.hh:179
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:1064
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:2709
bool cell_content_erase(int, int, DTree::iterator, int)
Definition NotebookWindow.cc:1882
DTree::iterator current_cell
Definition NotebookWindow.hh:125
void tex_run_async()
Definition NotebookWindow.cc:1108
Gtk::HBox toolbar
Definition NotebookWindow.hh:149
Gtk::VBox topbox
Definition NotebookWindow.hh:148
std::unique_ptr< DiffViewer > diffviewer
Definition NotebookWindow.hh:166
Gtk::Label kernel_label
Definition NotebookWindow.hh:180
Gtk::HBox statusbarbox
Definition NotebookWindow.hh:161
Glib::RefPtr< Gio::SimpleAction > action_fontsize
Definition NotebookWindow.hh:331
virtual void set_progress(const std::string &msg, int cur_step, int total_steps) override
Definition NotebookWindow.cc:1482
std::string progress_string
Definition NotebookWindow.hh:187
void on_tools_options()
Definition NotebookWindow.cc:3166
void on_file_export_html()
Definition NotebookWindow.cc:2241
virtual void on_connect() override
Network status is propagated from the ComputeThread to the GUI using the following methods.
Definition NotebookWindow.cc:1070
std::recursive_mutex tex_need_width_mutex
Definition NotebookWindow.hh:317
bool tex_running
Definition NotebookWindow.hh:319
double display_scale
Definition NotebookWindow.hh:67
Glib::RefPtr< Gtk::CssProvider > css_provider
Definition NotebookWindow.hh:309
void on_edit_copy(const Glib::VariantBase &)
Definition NotebookWindow.cc:2408
void compare_to_file()
Definition NotebookWindow.cc:2848
void on_scroll_size_allocate(Gtk::Allocation &)
Definition NotebookWindow.cc:1786
Glib::Dispatcher dispatch_update_status
Definition NotebookWindow.hh:190
virtual bool on_configure_event(GdkEventConfigure *cfg) override
Definition NotebookWindow.cc:967
void on_crash_window_closed(int)
Definition NotebookWindow.cc:1211
void on_prefs_choose_colours()
Definition NotebookWindow.cc:3143
int status_col
Definition NotebookWindow.hh:189
bool cell_content_execute(DTree::iterator, int, bool shift_enter_pressed)
Definition NotebookWindow.cc:1949
void on_run_cell()
Definition NotebookWindow.cc:2619
void on_search_text_changed()
Search handling.
Definition NotebookWindow.cc:2523
int tex_need_width
Definition NotebookWindow.hh:320
int last_configure_width
Definition NotebookWindow.hh:313
void select_range(const DTree &, DTree::iterator, int start, int len)
Definition NotebookWindow.cc:1662
void process_todo_queue()
Todo deque processing logic.
Definition NotebookWindow.cc:1161
void on_edit_undo(const Glib::VariantBase &)
Definition NotebookWindow.cc:2398
virtual void remove_cell(const DTree &, DTree::iterator) override
Remove a single cell together with all its child cells.
Definition NotebookWindow.cc:1515
double progress_frac
Definition NotebookWindow.hh:188
virtual size_t get_cursor_position(const DTree &, DTree::iterator) override
Retrieve the position of the cursor in the current cell.
Definition NotebookWindow.cc:1684
Gtk::Button tool_restart
Definition NotebookWindow.hh:151
Glib::RefPtr< Gio::SimpleActionGroup > actiongroup
Definition NotebookWindow.hh:145
void on_run_runall()
Definition NotebookWindow.cc:2632
void compare_git_latest()
Definition NotebookWindow.cc:2920
Glib::Dispatcher dispatcher
Definition NotebookWindow.hh:141
virtual bool on_unhandled_error(const std::exception &err) override
Definition NotebookWindow.cc:1011
void interactive_execute()
Definition NotebookWindow.cc:1923
void on_edit_find()
Definition NotebookWindow.cc:2515
std::string kernel_string
Definition NotebookWindow.hh:187
Glib::RefPtr< Gio::SimpleAction > action_undo
Definition NotebookWindow.hh:330
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:1004
bool read_only
Definition NotebookWindow.hh:201
DTree::iterator selected_cell
Definition NotebookWindow.hh:128
void load_file(const std::string &notebook_contents)
Definition NotebookWindow.cc:2129
Gtk::Button tool_run
Definition NotebookWindow.hh:151
Glib::RefPtr< Gio::SimpleAction > action_paste
Definition NotebookWindow.hh:331
Gtk::Label status_label
Definition NotebookWindow.hh:180
void on_edit_paste()
Definition NotebookWindow.cc:2420
Glib::RefPtr< Cadabra > cdbapp
Definition NotebookWindow.hh:133
void on_file_export_python()
Definition NotebookWindow.cc:2284
std::mutex status_mutex
Definition NotebookWindow.hh:186
Gtk::Label top_label
Definition NotebookWindow.hh:180
Gtk::SearchBar searchbar
Definition NotebookWindow.hh:156
void refresh_highlighting()
Definition NotebookWindow.cc:3272
std::string last_find_string
Definition NotebookWindow.hh:324
Gtk::ProgressBar progressbar
Definition NotebookWindow.hh:177
Gtk::CheckButton search_case_insensitive
Definition NotebookWindow.hh:159
void on_help_about()
Definition NotebookWindow.cc:2714
void resize_codeinput_texview_all(int width)
Definition NotebookWindow.cc:912
Gtk::Label search_result
Definition NotebookWindow.hh:160
void on_edit_insert_below()
Definition NotebookWindow.cc:2477
void on_edit_insert_above()
Definition NotebookWindow.cc:2461
void on_prefs_use_defaults()
Definition NotebookWindow.cc:3150
std::string run_git_command(const std::string &args)
Definition NotebookWindow.cc:2875
void on_help() const
Definition NotebookWindow.cc:2676
Glib::Dispatcher dispatch_tex_error
Definition NotebookWindow.hh:190
void on_edit_split()
Definition NotebookWindow.cc:2560
virtual bool on_key_press_event(GdkEventKey *) override
Definition NotebookWindow.cc:1216
std::string clipboard_cdb
Definition NotebookWindow.hh:261
void on_help_register()
Definition NotebookWindow.cc:2745
void update_title()
Definition NotebookWindow.cc:1023
Gtk::Button tool_stop
Definition NotebookWindow.hh:151
std::vector< Glib::RefPtr< Gio::SimpleAction > > default_actions
Definition NotebookWindow.hh:135
std::unique_ptr< std::thread > tex_thread
Definition NotebookWindow.hh:318
void on_edit_delete()
Definition NotebookWindow.cc:2495
bool is_configured
Definition NotebookWindow.hh:326
void on_edit_redo(const Glib::VariantBase &)
Definition NotebookWindow.cc:2403
void on_clipboard_get(Gtk::SelectionData &, guint info)
Clipboard handling.
Definition NotebookWindow.cc:3361
Gtk::Paned dragbox
Definition NotebookWindow.hh:153
std::string clipboard_txt
Definition NotebookWindow.hh:261
void on_prefs_microtex(bool on)
Definition NotebookWindow.cc:3111
void on_prefs_highlight_syntax(bool on)
Definition NotebookWindow.cc:3079
void on_file_save_as_jupyter()
Definition NotebookWindow.cc:2208
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:1636
Glib::RefPtr< Gio::SimpleAction > action_copy
Definition NotebookWindow.hh:330
bool on_first_redraw()
Definition NotebookWindow.cc:2142
void set_stop_sensitive(bool)
Definition NotebookWindow.cc:1056
void on_clipboard_clear()
Definition NotebookWindow.cc:3374
void unselect_output_cell()
Definition NotebookWindow.cc:3291
std::string tex_error_string
Definition NotebookWindow.hh:321
void scroll_cell_into_view(DTree::iterator cell)
Definition NotebookWindow.cc:1703
void on_file_export_latex()
Definition NotebookWindow.cc:2261
void on_run_stop()
Definition NotebookWindow.cc:2656
double scale
Definition NotebookWindow.hh:66
void on_prefs_font_size(int num)
Definition NotebookWindow.cc:3046
std::pair< DTree::iterator, size_t > last_find_location
Definition NotebookWindow.hh:323
void select_git_path()
Functionality for the diff viewer.
Definition NotebookWindow.cc:2838
void on_text_scaling_factor_changed(const std::string &key)
Definition NotebookWindow.cc:2816
bool crash_window_hidden
Definition NotebookWindow.hh:282
std::vector< NotebookCanvas * > canvasses
Definition NotebookWindow.hh:170
virtual void on_disconnect(const std::string &) override
Definition NotebookWindow.cc:1087
bool cell_complete_request(DTree::iterator it, int pos, int i)
Definition NotebookWindow.cc:1930
void on_ignore_cell_on_import()
Definition NotebookWindow.cc:2578
bool on_vscroll_changed(Gtk::ScrollType, double)
Definition NotebookWindow.cc:1756
void on_prefs_auto_close_latex(const Glib::VariantBase &vb)
Definition NotebookWindow.cc:3034
virtual void on_interactive_output(const nlohmann::json &msg) override
Definition NotebookWindow.cc:1477
void on_file_new()
Definition NotebookWindow.cc:2063
void refresh_after_tex_engine_run()
Refresh the display after a TeX engine run has completed.
Definition NotebookWindow.cc:998
Glib::RefPtr< Gio::SimpleAction > action_redo
Definition NotebookWindow.hh:330
bool quit_safeguard(bool quit)
Definition NotebookWindow.cc:2352
virtual void on_network_error() override
Definition NotebookWindow.cc:1094
void on_outbox_copy(Glib::RefPtr< Gtk::Clipboard > refClipboard, DTree::iterator it)
Definition NotebookWindow.cc:3331
virtual bool on_delete_event(GdkEventAny *) override
Definition NotebookWindow.cc:859
TeXEngine engine
Definition NotebookWindow.hh:65
void on_edit_cell_is_python()
Definition NotebookWindow.cc:2567
Glib::RefPtr< Gio::SimpleAction > action_console
Definition NotebookWindow.hh:333
void dim_output_cells(DTree::iterator it)
Definition NotebookWindow.cc:1895
std::string save(const std::string &fn) const
Definition NotebookWindow.cc:2327
void on_kernel_restart()
Definition NotebookWindow.cc:2661
void on_prefs_set_cv(int vis)
Definition NotebookWindow.cc:869
Glib::RefPtr< Gtk::Builder > uimanager
Definition NotebookWindow.hh:146
void on_file_save()
Definition NotebookWindow.cc:2148
void scroll_current_cell_into_view()
Definition NotebookWindow.cc:1697
Gtk::Button tool_save_as
Definition NotebookWindow.hh:150
void on_run_runtocursor()
Definition NotebookWindow.cc:2644
Gtk::HBox supermainbox
Definition NotebookWindow.hh:152
Gtk::Button tool_run_to
Definition NotebookWindow.hh:151
void on_file_save_as()
Definition NotebookWindow.cc:2171
bool idle_handler()
Definition NotebookWindow.cc:3280
Gtk::Button tool_save
Definition NotebookWindow.hh:150
void compare_git_choose()
Definition NotebookWindow.cc:2952
Gtk::VBox mainbox
Definition NotebookWindow.hh:154
void set_title_prefix(const std::string &)
Definition NotebookWindow.cc:1018
bool cell_got_focus(DTree::iterator, int)
Definition NotebookWindow.cc:1912
bool on_tex_error(const std::string &, DTree::iterator)
Definition NotebookWindow.cc:2015
Gtk::SearchEntry searchentry
Definition NotebookWindow.hh:158
bool modified
Definition NotebookWindow.hh:201
void update_status()
Definition NotebookWindow.cc:1498
Gtk::Dialog console_win
Definition NotebookWindow.hh:164
void on_edit_cell_is_latex()
Definition NotebookWindow.cc:2587
bool cell_toggle_visibility(DTree::iterator it, int)
Definition NotebookWindow.cc:1803
Glib::RefPtr< Gio::SimpleAction > action_highlight
Definition NotebookWindow.hh:331
void on_view_close(const Glib::VariantBase &)
Definition NotebookWindow.cc:2608
Console console
Definition NotebookWindow.hh:163
int status_line
Definition NotebookWindow.hh:189
Glib::RefPtr< Gio::SimpleAction > action_stop
Definition NotebookWindow.hh:333
void on_tools_clear_cache()
Definition NotebookWindow.cc:3254
void compare_git_specific()
Definition NotebookWindow.cc:3007
bool handle_outbox_select(GdkEventButton *, DTree::iterator it)
Definition NotebookWindow.cc:3306
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:1605
std::string name
Definition NotebookWindow.hh:200
void on_slider_changed(std::string variable, double value)
Definition NotebookWindow.cc:1764
Gtk::HBox search_hbox
Definition NotebookWindow.hh:157
void set_statusbar_message(const std::string &message="", int line=-1, int col=-1)
Definition NotebookWindow.cc:1045
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:1274
bool cell_content_changed(DTree::iterator it, int i)
Definition NotebookWindow.cc:1859
~NotebookWindow()
Definition NotebookWindow.cc:782
bool on_scroll(GdkEventScroll *)
Definition NotebookWindow.cc:1777
Glib::RefPtr< Gio::SimpleAction > action_microtex
Definition NotebookWindow.hh:333
Gtk::Button tool_open
Definition NotebookWindow.hh:150
void compare_git(const std::string &commit_hash)
Definition NotebookWindow.cc:2902
void on_file_open()
Definition NotebookWindow.cc:2090
std::string status_string
Definition NotebookWindow.hh:187
virtual void on_kernel_runstatus(bool) override
Definition NotebookWindow.cc:1101
void on_file_export_html_segment()
Definition NotebookWindow.cc:2304
Glib::Dispatcher dispatch_refresh
Definition NotebookWindow.hh:190
DTree::iterator follow_cell
Definition NotebookWindow.hh:314
Gtk::Spinner kernel_spinner
Definition NotebookWindow.hh:178
Glib::RefPtr< Gio::Settings > settings
Definition NotebookWindow.hh:310
void on_file_close()
Definition NotebookWindow.cc:2076
Glib::RefPtr< Gio::SimpleAction > action_view_close
Definition NotebookWindow.hh:331
bool cell_content_insert(const std::string &, int, DTree::iterator, int)
Definition NotebookWindow.cc:1870
void load_css()
Definition NotebookWindow.cc:786
int current_canvas
Definition NotebookWindow.hh:171
Glib::RefPtr< Gio::SimpleAction > action_auto_close_latex
Definition NotebookWindow.hh:332
std::string title_prefix
Definition NotebookWindow.hh:200
void set_name(const std::string &)
Definition NotebookWindow.cc:2123
void resize_codeinput_texview(DTree::iterator, int width)
Definition NotebookWindow.cc:925
Glib::RefPtr< Gio::SimpleAction > action_register
Definition NotebookWindow.hh:333
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:1594
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:116
void set(rset_t::iterator &num, multiplier_t fac)
Definition Storage.cc:1064