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;
21 void index_cb(FL_OBJECT *, long data)
23 InsetIndex::Holder * holder =
24 static_cast<InsetIndex::Holder*>
25 (index_form->index_form->u_vdata);
27 holder->inset->callback( index_form, data );
32 FD_index_form * create_form_index_form()
35 FD_index_form *fdui = (FD_index_form *) fl_calloc(1, sizeof(FD_index_form));
37 fdui->index_form = fl_bgn_form(FL_NO_BOX, 258, 196);
38 obj = fl_add_box(FL_UP_BOX, 0, 0, 258, 196, "");
39 fdui->key = obj = fl_add_input(FL_NORMAL_INPUT, 93, 26, 130, 30,
40 idex(_("Keyword:|#K")));
41 fl_set_object_shortcut(obj, scex(_("Keyword:|#K")), 1);
42 fl_set_object_lsize(obj, FL_NORMAL_SIZE);
43 obj = fl_add_button(FL_RETURN_BUTTON, 50, 140, 80, 30, _("OK"));
44 obj->u_vdata = index_form;
45 fl_set_object_callback(obj, index_cb, 1);
46 obj = fl_add_button(FL_NORMAL_BUTTON, 150, 140, 80, 30,
47 idex(_("Cancel|^[")));
48 fl_set_object_shortcut(obj, scex(_("Cancel|^[")), 1);
49 obj->u_vdata = index_form;
50 fl_set_object_callback(obj, index_cb, 0);
58 /*---------------------------------------*/
61 InsetIndex::InsetIndex(string const & key)
62 : 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,
104 CancelCloseBoxCB, 0);
110 index_form->index_form->u_vdata = &holder;
111 fl_set_input(index_form->key, getContents().c_str());
112 if (index_form->index_form->visible) {
113 fl_raise_form(index_form->index_form);
115 fl_show_form(index_form->index_form,
116 FL_PLACE_MOUSE, FL_FULLBORDER,
122 string InsetIndex::getScreenLabel() const
133 InsetPrintIndex::InsetPrintIndex()
134 : InsetCommand("printindex")
141 InsetPrintIndex::InsetPrintIndex(Buffer * o)
142 : InsetCommand("printindex"), owner(o)
147 InsetPrintIndex::~InsetPrintIndex()
153 string InsetPrintIndex::getScreenLabel() const
155 return _("PrintIndex");
159 void InsetPrintIndex::Validate(LaTeXFeatures & features) const
161 features.makeidx = true;
165 Inset::Code InsetPrintIndex::LyxCode() const
167 return Inset::INDEX_CODE;