#include "gettext.h"
#include "support/LAssert.h"
#include "lyxlength.h"
+#include "lyxgluelength.h"
using std::ofstream;
using std::pair;
}
+/// Given an fl_input, return its contents.
+string const getStringFromInput(FL_OBJECT * ob)
+{
+ if (!ob || ob->objclass != FL_INPUT)
+ return string();
+
+ char const * tmp = fl_get_input(ob);
+ return (tmp) ? tmp : string();
+}
+
+
+// Given an fl_browser, return the contents of line
+string const getStringFromBrowser(FL_OBJECT * ob, int line)
+{
+ if (!ob || ob->objclass != FL_BROWSER ||
+ line < 1 || line > fl_get_browser_maxline(ob))
+ return string();
+
+ char const * tmp = fl_get_browser_line(ob, line);
+ return (tmp) ? tmp : string();
+}
+
+// Given an fl_browser, return the contents of the currently
+// highlighted line.
+// If nothing is selected, return an empty string
+string const getSelectedStringFromBrowser(FL_OBJECT * ob)
+{
+ if (!ob || ob->objclass != FL_BROWSER)
+ return string();
+
+ int const line = fl_get_browser(ob);
+ if (line < 1 || line > fl_get_browser_maxline(ob))
+ return string();
+
+ if (!fl_isselected_browser_line(ob, line))
+ return string();
+
+ char const * tmp = fl_get_browser_line(ob, line);
+ return (tmp) ? tmp : string();
+}
+
+
// Given an fl_browser, create a vector of its entries
vector<string> const getVectorFromBrowser(FL_OBJECT * ob)
{
if (length.empty())
return string();
+ //don't return unit-from-choice if the input(field) contains a unit
+ if (isValidGlueLength(length))
+ return length;
+
string unit = strip(frontStrip(fl_get_choice_text(choice)));
unit = subst(unit, "%%", "%");
}
FileInfo const tp(name);
- if (!tp.isDir()) {
+ if (!tp.isOK() || !tp.isDir()) {
error_message = N_("Directory does not exist.");
return false;
}
}
FileInfo const tp(name);
- if (!tp.isDir()) {
+ if (!tp.isOK() || !tp.isDir()) {
error_message = N_("Directory does not exist.");
return false;
}
}
FileInfo d(name);
- if (!d.isDir()) {
+
+ if (!d.isOK() || !d.isDir()) {
d.newFile(dir);
}
- if (!d.isDir()) {
+ if (!d.isOK() || !d.isDir()) {
error_message = N_("Directory does not exist.");
return false;
}
}
FileInfo f(name);
- if (dir == name || f.isDir()) {
+ if (dir == name || (f.isOK() && f.isDir())) {
error_message = N_("A file is required, not a directory.");
return false;
}
- if (f.exist() && !f.writable()) {
+ if (f.isOK() && f.exist() && !f.writable()) {
error_message = N_("Cannot write to this file.");
return false;
}
}
FileInfo d(name);
- if (!d.isDir()) {
+
+ if (!d.isOK() && !d.isDir()) {
d.newFile(dir);
}
- if (!d.isDir()) {
+ if (!d.isOK() || !d.isDir()) {
error_message = N_("Directory does not exist.");
return false;
}
}
FileInfo f(name);
- if (dir == name || f.isDir()) {
+ if (dir == name || (f.isOK() && f.isDir())) {
error_message = N_("A file is required, not a directory.");
return false;
}