9 #include FORMS_H_LOCATION
10 #include "insetindex.h"
13 #include "LaTeXFeatures.h"
16 #include "lyx_gui_misc.h" // WarnReadonly
18 FD_index_form * index_form = 0;
20 extern "C" void index_cb(FL_OBJECT *, long data)
22 InsetIndex::Holder * holder =
23 static_cast<InsetIndex::Holder*>
24 (index_form->index_form->u_vdata);
26 holder->inset->callback( index_form, data );
31 FD_index_form * create_form_index_form()
34 FD_index_form *fdui = (FD_index_form *) fl_calloc(1, sizeof(FD_index_form));
36 fdui->index_form = fl_bgn_form(FL_NO_BOX, 258, 196);
37 obj = fl_add_box(FL_UP_BOX, 0, 0, 258, 196, "");
38 fdui->key = obj = fl_add_input(FL_NORMAL_INPUT, 93, 26, 130, 30,
39 idex(_("Keyword:|#K")));
40 fl_set_object_shortcut(obj, scex(_("Keyword:|#K")), 1);
41 fl_set_object_lsize(obj, FL_NORMAL_SIZE);
42 obj = fl_add_button(FL_RETURN_BUTTON, 50, 140, 80, 30, _("OK"));
43 obj->u_vdata = index_form;
44 fl_set_object_callback(obj, index_cb, 1);
45 obj = fl_add_button(FL_NORMAL_BUTTON, 150, 140, 80, 30,
46 idex(_("Cancel|^[")));
47 fl_set_object_shortcut(obj, scex(_("Cancel|^[")), 1);
48 obj->u_vdata = index_form;
49 fl_set_object_callback(obj, index_cb, 0);
57 /*---------------------------------------*/
60 InsetIndex::InsetIndex(string const & key)
61 : InsetCommand("index", key)
66 InsetIndex::~InsetIndex()
68 if(index_form && index_form->index_form
69 && index_form->index_form->visible
70 && index_form->index_form->u_vdata == &holder)
71 fl_hide_form(index_form->index_form);
75 void InsetIndex::callback( FD_index_form * form, long data )
80 if(!holder.view->buffer()->isReadonly())
82 string tmp = fl_get_input(form->key);
83 if(tmp != getContents())
86 holder.view->updateInset( this, true );
88 } // fall through to Cancel
90 fl_hide_form(form->index_form);
96 void InsetIndex::Edit(BufferView * bv, int, int, unsigned int)
98 if(bv->buffer()->isReadonly())
99 WarnReadonly(bv->buffer()->fileName());
102 index_form = create_form_index_form();
103 fl_set_form_atclose(index_form->index_form, CancelCloseBoxCB, 0);
109 index_form->index_form->u_vdata = &holder;
110 fl_set_input(index_form->key, getContents().c_str());
111 if (index_form->index_form->visible) {
112 fl_raise_form(index_form->index_form);
114 fl_show_form(index_form->index_form,
115 FL_PLACE_MOUSE, FL_FULLBORDER,
121 string InsetIndex::getScreenLabel() const
131 InsetPrintIndex::InsetPrintIndex()
132 : InsetCommand("printindex")
138 InsetPrintIndex::InsetPrintIndex(Buffer * o)
139 : InsetCommand("printindex"), owner(o)
144 InsetPrintIndex::~InsetPrintIndex()
149 string InsetPrintIndex::getScreenLabel() const
151 return _("PrintIndex");
155 void InsetPrintIndex::Validate(LaTeXFeatures & features) const
157 features.makeidx = true;
161 Inset::Code InsetPrintIndex::LyxCode() const
163 return Inset::INDEX_CODE;