-extern "C" void bibitem_cb(FL_OBJECT *, long data)
-{
- switch (data) {
- case 1: // OK, citation
- {
- if(!current_view->buffer()->isReadonly()) {
- InsetCommand * inset = static_cast<InsetCommand*>(citation_form->citation_form->u_vdata);
- inset->setContents(bibcombox->getline());
- inset->setOptions(fl_get_input(citation_form->label));
- fl_hide_form(citation_form->citation_form);
- // shouldn't mark the buffer dirty unless something
- // was actually altered
- UpdateInset(inset);
- break;
- }
- // fall through to Cancel on RO-mode
- }
- case 0: fl_hide_form(citation_form->citation_form);
- break;
- case 3: // OK, bibitem
- {
- if(!current_view->buffer()->isReadonly()) {
- InsetCommand *inset = static_cast<InsetCommand*>(bibitem_form->bibitem_form->u_vdata);
- inset->setContents(fl_get_input(bibitem_form->key));
- inset->setOptions(fl_get_input(bibitem_form->label));
- fl_hide_form(bibitem_form->bibitem_form);
- // Does look like a hack? It is! (but will change at 0.13)
- current_view->buffer()->text->RedoParagraph();
- current_view->buffer()->update(1);
- break;
- } // fall through to Cancel on RO-mode
- }
- case 2: // Cancel, bibitem
- fl_hide_form(bibitem_form->bibitem_form); // Cancel, bibitem
- break;
- }
-}
-
-FD_citation_form *create_form_citation_form(void)
-{
- FL_OBJECT *obj;
- FD_citation_form *fdui = (FD_citation_form *) fl_calloc(1, sizeof(FD_citation_form));
-
- fdui->citation_form = fl_bgn_form(FL_NO_BOX, 220, 130);
- obj = fl_add_box(FL_UP_BOX,0,0,220,130,"");
- fdui->key = obj = fl_add_text(FL_NORMAL_TEXT,20,10,60,30,_("Key:"));
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_RIGHT);
-
- bibcombox = new Combox(FL_COMBOX_INPUT);
- bibcombox->add(80,10,130,30, 120);
-
- obj = fl_add_button(FL_RETURN_BUTTON,20,90,90,30,_("OK"));
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_set_object_callback(obj,bibitem_cb,1);
- obj = fl_add_button(FL_NORMAL_BUTTON,120,90,90,30,idex(_("Cancel|^[")));
- fl_set_button_shortcut(obj,scex(_("Cancel|^[")),1);
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_set_object_callback(obj,bibitem_cb,0);
- fdui->label = obj = fl_add_input(FL_NORMAL_INPUT,80,50,130,30,idex(_("Remark:|#R")));
- fl_set_input_shortcut(obj,scex(_("Remark:|#R")),1);
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_end_form();
-
- //fdui->citation_form->fdui = fdui;
-
- return fdui;
-}
-/*---------------------------------------*/
-
-FD_bibitem_form *create_form_bibitem_form(void)
-{
- FL_OBJECT *obj;
- FD_bibitem_form *fdui = (FD_bibitem_form *) fl_calloc(1, sizeof(FD_bibitem_form));
-
- fdui->bibitem_form = fl_bgn_form(FL_NO_BOX, 220, 130);
- obj = fl_add_box(FL_UP_BOX,0,0,220,130,"");
- fdui->key = obj = fl_add_input(FL_NORMAL_INPUT,80,10,130,30,idex(_("Key:|#K")));
- fl_set_input_shortcut(obj,scex(_("Key:|#K")),1);
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- obj = fl_add_button(FL_RETURN_BUTTON,20,90,90,30,_("OK"));
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_set_object_callback(obj,bibitem_cb,3);
- obj = fl_add_button(FL_NORMAL_BUTTON,120,90,90,30,idex(_("Cancel|^[")));
- fl_set_button_shortcut(obj,scex(_("Cancel|^[")),1);
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_set_object_callback(obj,bibitem_cb,2);
- fdui->label = obj = fl_add_input(FL_NORMAL_INPUT,80,50,130,30,idex(_("Label:|#L")));
- fl_set_input_shortcut(obj,scex(_("Label:|#L")),1);
- fl_set_object_lsize(obj,FL_NORMAL_SIZE);
- fl_end_form();
-
- //fdui->bibitem_form->fdui = fdui;
-
- return fdui;
-}
-/*---------------------------------------*/
-
-
-InsetCitation::InsetCitation(string const & key, string const & note):
- InsetCommand("cite", key, note)
-{
-
-}
-InsetCitation::~InsetCitation()
-{
- if(citation_form && citation_form->citation_form
- && citation_form->citation_form->visible
- && citation_form->citation_form->u_vdata == this)
- fl_hide_form(citation_form->citation_form);
-}
-