lyx_mirror/src/frontends/xforms/xforms_helpers.h

96 lines
2.8 KiB
C
Raw Normal View History

// -*- C++ -*-
#ifndef XFORMSHELPERS_H
#define XFORMSHELPERS_H
#ifdef __GNUG_
#pragma interface
#endif
#include FORMS_H_LOCATION
#include "Color.h"
#include "LString.h"
#include <vector>
class LyXLength;
/// Extract shortcut from <ident>|<shortcut> string
char const * flyx_shortcut_extract(char const * sc);
/// Shortcut for flyx_shortcut_extract
#define scex flyx_shortcut_extract
/// Extract shortcut from <ident>|<shortcut> string
char const * flyx_ident_extract(char const * sc);
/// Shortcut for flyx_ident_extract
#define idex flyx_ident_extract
/// Set an FL_OBJECT to activated or deactivated
void setEnabled(FL_OBJECT *, bool enable);
/// Take a string and add breaks so that it fits into a desired label width, w
string formatted(string const &label, int w,
int = FL_NORMAL_SIZE, int = FL_NORMAL_STYLE);
/// Given an fl_choice, create a vector of its entries
std::vector<string> const getVectorFromChoice(FL_OBJECT *);
/// Given an fl_browser, create a vector of its entries
std::vector<string> const getVectorFromBrowser(FL_OBJECT *);
/** Given an fl_browser, return the contents of the currently
highlighted line (xforms numbering convention; starts at 1).
If nothing is selected, return an empty string.
This function, although apparently overkill, ensures that we don't get
unexpected crashes.
*/
string const getStringFromBrowser(FL_OBJECT * ob, int line);
/// Given input and choice widgets, create a string such as "1cm"
string getLengthFromWidgets(FL_OBJECT * input, FL_OBJECT * choice);
/** Given a string such as "1cm", set the input and choice widgets.
If the string is empty, the choice will be set to default_unit.
*/
void updateWidgetsFromLengthString(FL_OBJECT * input, FL_OBJECT * choice,
string const & str,
string const & default_unit);
/** Given a LyXLength, set the input and choice widgets.
If the length is null, the choice will be set to default_unit.
*/
void updateWidgetsFromLength(FL_OBJECT * input, FL_OBJECT * choice,
LyXLength const & len,
string const & default_unit);
/// struct holding xform-specific colors
struct XformsColor : public NamedColor {
int colorID;
XformsColor() : NamedColor(), colorID(0) {}
static bool read(string const &);
static bool write(string const &);
};
/** Some functions that perform some quite detailed tests to ascertain whether
the directory or file is readable or writeable. If not, then an error
message is placed in error_message. */
class RWInfo {
public:
///
static bool WriteableDir(string const & dir);
///
static bool ReadableDir(string const & dir);
///
static bool WriteableFile(string const & file);
///
static bool ReadableFile(string const & file);
///
static string const & ErrorMessage() { return error_message; }
private:
///
static string error_message;
};
#endif // XFORMSHELPERS_H