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;
19 extern void UpdateInset(Inset * inset, bool mark_dirty = true);
21 FD_index_form * index_form = 0;
23 extern "C" void index_cb(FL_OBJECT *, long data)
25 InsetIndex * inset = static_cast<InsetIndex*>(index_form->index_form->u_vdata);
29 if(!current_view->buffer()->isReadonly()) {
30 string tmp = fl_get_input(index_form->key);
31 if(tmp != inset->getContents()) {
32 inset->setContents(tmp);
33 fl_hide_form(index_form->index_form);
37 } // fall through to Cancel on RO
39 fl_hide_form(index_form->index_form); break;
45 FD_index_form * create_form_index_form()
48 FD_index_form *fdui = (FD_index_form *) fl_calloc(1, sizeof(FD_index_form));
50 fdui->index_form = fl_bgn_form(FL_NO_BOX, 258, 196);
51 obj = fl_add_box(FL_UP_BOX, 0, 0, 258, 196, "");
52 fdui->key = obj = fl_add_input(FL_NORMAL_INPUT, 93, 26, 130, 30,
53 idex(_("Keyword:|#K")));
54 fl_set_object_shortcut(obj, scex(_("Keyword:|#K")), 1);
55 fl_set_object_lsize(obj, FL_NORMAL_SIZE);
56 obj = fl_add_button(FL_RETURN_BUTTON, 50, 140, 80, 30, _("OK"));
57 obj->u_vdata = index_form;
58 fl_set_object_callback(obj, index_cb, 1);
59 obj = fl_add_button(FL_NORMAL_BUTTON, 150, 140, 80, 30,
60 idex(_("Cancel|^[")));
61 fl_set_object_shortcut(obj, scex(_("Cancel|^[")), 1);
62 obj->u_vdata = index_form;
63 fl_set_object_callback(obj, index_cb, 0);
71 /*---------------------------------------*/
74 InsetIndex::InsetIndex(string const & key)
75 : InsetCommand("index", key)
80 InsetIndex::~InsetIndex()
82 if(index_form && index_form->index_form
83 && index_form->index_form->visible
84 && index_form->index_form->u_vdata == this)
85 fl_hide_form(index_form->index_form);
89 void InsetIndex::Edit(int, int)
91 if(current_view->buffer()->isReadonly())
95 index_form = create_form_index_form();
97 index_form->index_form->u_vdata = this;
98 fl_set_input(index_form->key, getContents().c_str());
99 if (index_form->index_form->visible) {
100 fl_raise_form(index_form->index_form);
102 fl_show_form(index_form->index_form,
103 FL_PLACE_MOUSE, FL_FULLBORDER,
109 string InsetIndex::getScreenLabel() const
119 InsetPrintIndex::InsetPrintIndex()
120 : InsetCommand("printindex")
126 InsetPrintIndex::InsetPrintIndex(Buffer * o)
127 : InsetCommand("printindex"), owner(o)
132 InsetPrintIndex::~InsetPrintIndex()
137 string InsetPrintIndex::getScreenLabel() const
139 return _("PrintIndex");
143 void InsetPrintIndex::Validate(LaTeXFeatures & features) const
145 features.makeidx = true;
149 Inset::Code InsetPrintIndex::LyxCode() const
151 return Inset::INDEX_CODE;