1 /* This file is part of
2 * ======================================================
4 * LyX, The Document Processor
6 * Copyright 1995 Matthias Ettrich,
7 * Copyright 1995-2000 The LyX Team.
9 * ====================================================== */
18 #include FORMS_H_LOCATION
20 #include "figure_form.h"
21 #include "insets/figinset.h"
22 #include "BufferView.h"
27 extern FD_form_figure * fd_form_figure;
28 extern BufferView * current_view;
32 if (fd_form_figure->form_figure->visible) {
33 fl_raise_form(fd_form_figure->form_figure);
35 fl_show_form(fd_form_figure->form_figure,
36 FL_PLACE_MOUSE | FL_FREE_SIZE, FL_TRANSIENT,
42 /* callbacks for form form_figure */
44 void FigureApplyCB(FL_OBJECT *, long)
46 if (!current_view->available())
49 Buffer * buffer = current_view->buffer();
50 if (buffer->isReadonly()) // paranoia
53 current_view->owner()->message(_("Inserting figure..."));
54 if (fl_get_button(fd_form_figure->radio_inline)) {
55 InsetFig * new_inset = new InsetFig(100, 20, *buffer);
56 current_view->insertInset(new_inset);
57 current_view->owner()->message(_("Figure inserted"));
58 new_inset->Edit(current_view, 0, 0, 0);
62 current_view->hideCursor();
63 current_view->update(current_view->text, BufferView::SELECT|BufferView::FITCUR);
64 current_view->beforeChange(current_view->text);
66 current_view->text->SetCursorParUndo(current_view->buffer());
67 current_view->text->FreezeUndo();
69 current_view->text->BreakParagraph(current_view);
70 current_view->update(current_view->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
73 if (current_view->text->cursor.par()->Last()) {
75 if (current_view->text->cursor.par()->size()) {
77 current_view->text->CursorLeft(current_view);
79 current_view->text->BreakParagraph(current_view);
80 current_view->update(current_view->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
83 // The standard layout should always be numer 0;
84 current_view->text->SetLayout(current_view, 0);
87 if (current_view->text->cursor.par()->footnoteflag ==
88 LyXParagraph::NO_FOOTNOTE) {
91 SetParagraph(current_view, 0, 0,
93 VSpace (0.3 * buffer->params.spacing.getValue(),
96 buffer->params.spacing.getValue(),
98 LYX_ALIGN_CENTER, string(), 0);
101 current_view->text->SetParagraph(current_view, 0, 0,
103 VSpace(VSpace::NONE),
104 VSpace(VSpace::NONE),
111 current_view->update(current_view->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
113 Inset * new_inset = new InsetFig(100, 100, *buffer);
114 current_view->insertInset(new_inset);
115 new_inset->Edit(current_view, 0, 0, 0);
116 current_view->update(current_view->text, BufferView::SELECT|BufferView::FITCUR);
117 current_view->owner()->message(_("Figure inserted"));
118 current_view->text->UnFreezeUndo();
119 current_view->setState();
124 void FigureCancelCB(FL_OBJECT *, long)
126 fl_hide_form(fd_form_figure->form_figure);
131 void FigureOKCB(FL_OBJECT * ob, long data)
133 FigureApplyCB(ob, data);
134 FigureCancelCB(ob, data);