using std::pair;
using std::vector;
using std::sort;
+using std::equal;
extern Combox * combo_language;
extern Combox * combo_language2;
extern FD_LaTeXOptions * fd_latex_options;
extern FD_form_bullet * fd_form_bullet;
+#define XFORMS_CLIPBOARD 1
+
extern BufferView * current_view; // called too many times in this file...
extern void DeleteSimpleCutBuffer(); /* for the cleanup when exiting */
if (lyxrc.use_tempdir || (IsDirWriteable(path) < 1)) {
path = buffer->tmppath;
}
- if (!buffer->isDviClean()) {
+ //if (!buffer->isDviClean()) {
Path p(path);
ret = MenuRunLaTeX(buffer);
- }
+ //}
return ret;
}
}
+#ifndef XFORMS_CLIPBOARD
void MenuPasteSelection(char at)
{
if (!current_view->available())
return;
-
ascii_type = at;
Atom data_prop = XInternAtom(fl_display,
XA_PRIMARY, XA_STRING, data_prop,
current_view->owner()->getForm()->window, 0);
XFlush(fl_display);
-}
+}
+#endif
if (current_view->available()) {
if (old_language != new_language &&
old_language->RightToLeft == new_language->RightToLeft &&
- ! current_view->buffer()->isMultiLingual() ) {
+ ! current_view->buffer()->isMultiLingual() )
current_view->buffer()->ChangeLanguage(old_language,
new_language);
- current_view->buffer()->redraw();
+ if (old_language != new_language) {
+ //current_view->buffer()->redraw();
+ redo = true;
}
}
params->language_info = new_language;
}
-extern "C" void TocUpdateCB(FL_OBJECT *, long)
+extern "C"
+void TocUpdateCB(FL_OBJECT *, long)
{
if (!current_view->available()) {
toclist.clear();
vector<vector<Buffer::TocItem> > tmp =
current_view->buffer()->getTocList();
- if (toclist == tmp[0])
- return;
- toclist = tmp[0];
+ int type = fl_get_choice(fd_form_toc->toctype)-1;
+ //if (toclist == tmp[type])
+ // return;
+ if (toclist.size() == tmp[type].size()) {
+ // Check if all elements are the same.
+ unsigned int i = 0;
+ for (; i < toclist.size(); ++i) {
+ if (toclist[i] != tmp[type][i])
+ break;
+ }
+ if (i >= toclist.size()) return;
+ }
+
+ toclist = tmp[type];
static Buffer * buffer = 0;
int topline = 0;
if (s.empty())
return;
- if (data >= 5) {
+ if (data == 5) {
current_view->owner()->getLyXFunc()->Dispatch(LFUN_REFGOTO, s.c_str());
+ if (!current_view->NoSavedPositions()) {
+ fl_activate_object(fd_form_ref->back);
+ fl_set_object_lcol(fd_form_ref->back, FL_BLACK);
+ }
return;
- }
+ } else if (data >= 6) {
+ current_view->owner()->getLyXFunc()->Dispatch(LFUN_REFBACK);
+ if (current_view->NoSavedPositions()) {
+ fl_deactivate_object(fd_form_ref->back);
+ fl_set_object_lcol(fd_form_ref->back, FL_INACTIVE);
+ }
+ return;
+ }
static string const commands[5]
= { "\\ref", "\\pageref", "\\vref", "\\vpageref",
}
fl_set_browser_topline(brow, topline);
- if (!fl_get_browser_maxline(brow)) {
+ bool empty = refs.empty();
+ bool sgml = current_view->buffer()->isSGML();
+ bool readonly = current_view->buffer()->isReadonly();
+
+ if (current_view->NoSavedPositions()) {
+ fl_deactivate_object(fd_form_ref->back);
+ fl_set_object_lcol(fd_form_ref->back, FL_INACTIVE);
+ } else {
+ fl_activate_object(fd_form_ref->back);
+ fl_set_object_lcol(fd_form_ref->back, FL_BLACK);
+ }
+
+ if (empty) {
fl_add_browser_line(brow,
_("*** No labels found in document ***"));
fl_deactivate_object(brow);
+ fl_deactivate_object(fd_form_ref->gotoref);
+ fl_set_object_lcol(fd_form_ref->gotoref, FL_INACTIVE);
} else {
fl_select_browser_line(brow, topline);
fl_activate_object(brow);
+ fl_activate_object(fd_form_ref->gotoref);
+ fl_set_object_lcol(fd_form_ref->gotoref, FL_BLACK);
}
- if (current_view->buffer()->isReadonly()) {
- // would be better to de/activate insert buttons
- // but that's more work... besides this works. ARRae
- fl_hide_form(fd_form_ref->form_ref);
- }
- if (!current_view->buffer()->isSGML()) {
- fl_deactivate_object(fd_form_ref->ref_name);
- fl_set_object_lcol(fd_form_ref->ref_name, FL_INACTIVE);
+ if (empty || readonly) {
+ fl_deactivate_object(fd_form_ref->ref);
+ fl_set_object_lcol(fd_form_ref->ref, FL_INACTIVE);
+ fl_deactivate_object(fd_form_ref->pageref);
+ fl_set_object_lcol(fd_form_ref->pageref, FL_INACTIVE);
+ } else {
+ fl_activate_object(fd_form_ref->ref);
+ fl_set_object_lcol(fd_form_ref->ref, FL_BLACK);
+ fl_activate_object(fd_form_ref->pageref);
+ fl_set_object_lcol(fd_form_ref->pageref, FL_BLACK);
+ }
+
+ if (empty || readonly || sgml) {
+ fl_deactivate_object(fd_form_ref->vref);
+ fl_set_object_lcol(fd_form_ref->vref, FL_INACTIVE);
+ fl_deactivate_object(fd_form_ref->vpageref);
+ fl_set_object_lcol(fd_form_ref->vpageref, FL_INACTIVE);
+ fl_deactivate_object(fd_form_ref->prettyref);
+ fl_set_object_lcol(fd_form_ref->prettyref, FL_INACTIVE);
+ } else {
fl_activate_object(fd_form_ref->vref);
fl_set_object_lcol(fd_form_ref->vref, FL_BLACK);
fl_activate_object(fd_form_ref->vpageref);
fl_set_object_lcol(fd_form_ref->vpageref, FL_BLACK);
fl_activate_object(fd_form_ref->prettyref);
fl_set_object_lcol(fd_form_ref->prettyref, FL_BLACK);
- } else {
+ }
+
+ if (sgml) {
fl_activate_object(fd_form_ref->ref_name);
fl_set_object_lcol(fd_form_ref->ref_name, FL_BLACK);
-
- fl_deactivate_object(fd_form_ref->vref);
- fl_set_object_lcol(fd_form_ref->vref, FL_INACTIVE);
- fl_deactivate_object(fd_form_ref->vpageref);
- fl_set_object_lcol(fd_form_ref->vpageref, FL_INACTIVE);
- fl_deactivate_object(fd_form_ref->prettyref);
- fl_set_object_lcol(fd_form_ref->prettyref, FL_INACTIVE);
+ } else {
+ fl_deactivate_object(fd_form_ref->ref_name);
+ fl_set_object_lcol(fd_form_ref->ref_name, FL_INACTIVE);
}
+
fl_show_object(brow);
}