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 = (InsetIndex*)index_form->vdata;
28 // - case 0: fl_hide_form(index_form->index_form); break;
31 // - inset->setContents(fl_get_input(index_form->key));
32 // - fl_hide_form(index_form->index_form);
33 // - UpdateInset(inset);
37 if(!current_view->currentBuffer()->isReadonly()) {
38 string tmp = fl_get_input(index_form->key);
39 if(tmp != inset->getContents()) {
40 inset->setContents(tmp);
41 fl_hide_form(index_form->index_form);
45 } // fall through to Cancel on RO
47 fl_hide_form(index_form->index_form); break;
53 FD_index_form *create_form_index_form()
56 FD_index_form *fdui = (FD_index_form *) fl_calloc(1, sizeof(FD_index_form));
58 fdui->index_form = fl_bgn_form(FL_NO_BOX, 258, 196);
59 obj = fl_add_box(FL_UP_BOX,0,0,258,196,"");
60 fdui->key = obj = fl_add_input(FL_NORMAL_INPUT,93,26,130,30,
61 idex(_("Keyword:|#K")));
62 fl_set_object_shortcut(obj,scex(_("Keyword:|#K")),1);
63 fl_set_object_lsize(obj,FL_NORMAL_SIZE);
64 obj = fl_add_button(FL_RETURN_BUTTON,50,140,80,30,_("OK"));
65 obj->u_vdata = index_form;
66 fl_set_object_callback(obj,index_cb,1);
67 obj = fl_add_button(FL_NORMAL_BUTTON,150,140,80,30,
68 idex(_("Cancel|^[")));
69 fl_set_object_shortcut(obj,scex(_("Cancel|^[")),1);
70 obj->u_vdata = index_form;
71 fl_set_object_callback(obj,index_cb,0);
79 /*---------------------------------------*/
82 InsetIndex::InsetIndex(string const & key)
83 : InsetCommand("index", key)
88 InsetIndex::~InsetIndex()
90 if(index_form && index_form->index_form
91 && index_form->index_form->visible
92 && index_form->vdata == this)
93 fl_hide_form(index_form->index_form);
97 void InsetIndex::Edit(int, int)
99 if(current_view->currentBuffer()->isReadonly())
103 index_form = create_form_index_form();
105 index_form->vdata = this;
106 fl_set_input(index_form->key, getContents().c_str());
107 if (index_form->index_form->visible) {
108 fl_raise_form(index_form->index_form);
110 fl_show_form(index_form->index_form,
111 FL_PLACE_MOUSE, FL_FULLBORDER,
117 string InsetIndex::getScreenLabel() const
127 InsetPrintIndex::InsetPrintIndex()
128 : InsetCommand("printindex")
134 InsetPrintIndex::InsetPrintIndex(Buffer *o)
135 : InsetCommand("printindex"), owner(o)
140 InsetPrintIndex::~InsetPrintIndex()
145 string InsetPrintIndex::getScreenLabel() const
147 return _("PrintIndex");
151 void InsetPrintIndex::Validate(LaTeXFeatures &features) const
153 features.makeidx = true;
157 Inset::Code InsetPrintIndex::LyxCode() const
159 return Inset::INDEX_CODE;