9 #include FORMS_H_LOCATION
10 #include "insetindex.h"
13 #include "LaTeXFeatures.h"
16 #include "lyx_gui_misc.h" // WarnReadonly
18 extern BufferView * current_view;
20 FD_index_form * index_form = 0;
22 extern "C" void index_cb(FL_OBJECT *, long data)
24 InsetIndex * inset = static_cast<InsetIndex*>(index_form->index_form->u_vdata);
28 if(!current_view->buffer()->isReadonly()) {
29 string tmp = fl_get_input(index_form->key);
30 if(tmp != inset->getContents()) {
31 inset->setContents(tmp);
32 fl_hide_form(index_form->index_form);
33 current_view->updateInset(inset, true);
36 } // fall through to Cancel on RO
38 fl_hide_form(index_form->index_form); break;
44 FD_index_form * create_form_index_form()
47 FD_index_form *fdui = (FD_index_form *) fl_calloc(1, sizeof(FD_index_form));
49 fdui->index_form = fl_bgn_form(FL_NO_BOX, 258, 196);
50 obj = fl_add_box(FL_UP_BOX, 0, 0, 258, 196, "");
51 fdui->key = obj = fl_add_input(FL_NORMAL_INPUT, 93, 26, 130, 30,
52 idex(_("Keyword:|#K")));
53 fl_set_object_shortcut(obj, scex(_("Keyword:|#K")), 1);
54 fl_set_object_lsize(obj, FL_NORMAL_SIZE);
55 obj = fl_add_button(FL_RETURN_BUTTON, 50, 140, 80, 30, _("OK"));
56 obj->u_vdata = index_form;
57 fl_set_object_callback(obj, index_cb, 1);
58 obj = fl_add_button(FL_NORMAL_BUTTON, 150, 140, 80, 30,
59 idex(_("Cancel|^[")));
60 fl_set_object_shortcut(obj, scex(_("Cancel|^[")), 1);
61 obj->u_vdata = index_form;
62 fl_set_object_callback(obj, index_cb, 0);
70 /*---------------------------------------*/
73 InsetIndex::InsetIndex(string const & key)
74 : InsetCommand("index", key)
79 InsetIndex::~InsetIndex()
81 if(index_form && index_form->index_form
82 && index_form->index_form->visible
83 && index_form->index_form->u_vdata == this)
84 fl_hide_form(index_form->index_form);
88 void InsetIndex::Edit(BufferView * bv, int, int, unsigned int)
90 if(bv->buffer()->isReadonly())
91 WarnReadonly(bv->buffer()->fileName());
94 index_form = create_form_index_form();
96 index_form->index_form->u_vdata = this;
97 fl_set_input(index_form->key, getContents().c_str());
98 if (index_form->index_form->visible) {
99 fl_raise_form(index_form->index_form);
101 fl_show_form(index_form->index_form,
102 FL_PLACE_MOUSE, FL_FULLBORDER,
108 string InsetIndex::getScreenLabel() const
118 InsetPrintIndex::InsetPrintIndex()
119 : InsetCommand("printindex")
125 InsetPrintIndex::InsetPrintIndex(Buffer * o)
126 : InsetCommand("printindex"), owner(o)
131 InsetPrintIndex::~InsetPrintIndex()
136 string InsetPrintIndex::getScreenLabel() const
138 return _("PrintIndex");
142 void InsetPrintIndex::Validate(LaTeXFeatures & features) const
144 features.makeidx = true;
148 Inset::Code InsetPrintIndex::LyxCode() const
150 return Inset::INDEX_CODE;