edelib 1.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Classes | Typedefs | Enumerations | Functions
edelib Namespace Reference

## Classes
class | AnimateBox
| Animate list of images inside box. More...
class | ColorDb
| X11 color database. More...
class | Config
| A config file reader. More...
class | TimeZone
| A class for getting time from desired time zone. More...
class | Date
| A class for date manipulation. More...
class | Time
| A class for time manipulation. More...
class | DesktopFile
| .desktop file reader and writer More...
class | DirWatch
| Directory changes notifier. More...
class | EdbusConnection
| D-Bus connection and data sender. More...
class | EdbusContainer
| Abstract container for D-Bus containers. More...
class | EdbusData
| Class for representing D-Bus data types. More...
class | EdbusVariant
| Represents D-Bus variant. More...
class | EdbusDictEntry
| An entry in EdbusDict. More...
class | EdbusDict
| Dictionary container for D-Bus types. More...
class | EdbusError
| A class representing D-Bus error. More...
class | EdbusList
| A class representing D-Bus struct and array. More...
class | EdbusMessage
| Data transporter for D-Bus. More...
class | EdbusObjectPath
| Represents D-Bus object path. More...
class | ApplicationBootstrap
| EDE application bootstrapper. More...
class | ExpandableGroup
| A group with applied layout on childs. More...
class | File
| A system file io stream. More...
class | FontInfo
| Base structure for storing font information; used by FontCache. More...
class | FontCache
| Allow readable font names and cache their access. More...
class | IconLoader
| Loads icons with IconTheme. More...
class | IconTheme
| Finds named icon according to the given theme. More...
class | list
| Linked list class. More...
class | MenuBar
| Menu bar. More...
class | MenuBase
| Menu base class. More...
class | MenuButton
| Button with attached menu. More...
class | MenuItem
| The item in menu list. More...
class | MenuTooltip
| Tooltip support inside menus. More...
class | MessageBox
| Standard dialog. More...
class | MimeType
| Mime handling class. More...
class | PTY
| emulate pty api More...
class | PtyProcess
| Synchronous communication with tty programs. More...
class | RegexMatch
| RegexMatch class. More...
class | Regex
| Regex class. More...
class | Resource
| Resource loader and saver. More...
class | SchemeEditor
| Editing component for Scheme language. More...
class | SevenSeg
| Digital number widget. More...
class | SipcServer
| Simple IPC server. More...
class | SipcClient
| Simple IPC client. More...
class | String
| A (relatively simple) string implementation. More...
class | TableBase
| A base class for table widgets. More...
class | TempFile
| Temporary file class. More...
class | Theme
| Theming engine for widgets. More...
class | ThemeLoader
| Themes loader. More...
class | Window
| Window class. More...
class | XSettingsClient
| Client part of XSETTINGS protocol. More...
class | XSettingsColor
| Color data for XSETTINGS. More...
class | XSettingsSetting
| Structure for tracking XSETTINGS values. More...
class | XSettingsList
| List internaly used by XSETTINGS classes. More...
class | XSettingsData
| Main data shared between client and manager. More...
class | XSettingsManager
| Manager part of XSETTINGS protocol. More...

## Typedefs
typedef int(* | EdbusCallback )(const EdbusMessage *, void *)
typedef void(* | NetwmCallback )(int action, Window xid, void *data)
typedef void(* | SipcCallback )(const char *, void *)

## Enumerations
enum | ConfigErrors { CONF_SUCCESS = 0, CONF_ERR_FILE, CONF_ERR_BAD, CONF_ERR_SECTION, CONF_ERR_KEY, CONF_ERR_MEMORY, CONF_ERR_NOVALUE }
| Error codes from Config class. More...
enum | DateType { DATE_LOCAL = 0, DATE_UTC }
| Types of date settable via Date::set() More...
enum | DesktopFileErrors { DESK_FILE_SUCCESS = 0, DESK_FILE_EMPTY, DESK_FILE_ERR_FILE, DESK_FILE_ERR_BAD }
| Error codes from DesktopFile class. More...
enum | DesktopFileType { DESK_FILE_TYPE_UNKNOWN = 0, DESK_FILE_TYPE_APPLICATION, DESK_FILE_TYPE_LINK, DESK_FILE_TYPE_DIRECTORY }
| Reported file type from DesktopFile::type() More...
enum | DirWatchFlags { DW_CREATE = (1 << 1), DW_MODIFY = (1 << 2), DW_ACCESS = (1 << 3), DW_RENAME = (1 << 4), DW_ATTRIB = (1 << 5), DW_DELETE = (1 << 6) }
| Flags telling to DirWatch what changes to monitor. More...
enum | DirWatchNotifier { DW_NONE = 0, DW_INOTIFY, DW_FAM }
| Notifier type used by DirWatch. More...
enum | DirWatchReportFlags { DW_REPORT_NONE = -1, DW_REPORT_CREATE = 0, DW_REPORT_MODIFY, DW_REPORT_RENAME, DW_REPORT_DELETE }
| Returned codes for received event. More...
enum | EdbusConnectionType { EDBUS_SYSTEM, EDBUS_SESSION }
| Represents connection either to system or session bus. More...
enum | EdbusNameMode { EDBUS_NAME_NO_REPLACE = 0, EDBUS_NAME_ALLOW_REPLACE = 1, EDBUS_NAME_REPLACE_EXISTING = 2 }
| What to do when known name is acquired. More...
enum | EdbusDataType { EDBUS_TYPE_INVALID, EDBUS_TYPE_BYTE, EDBUS_TYPE_BOOL, EDBUS_TYPE_INT16, EDBUS_TYPE_UINT16, EDBUS_TYPE_INT32, EDBUS_TYPE_UINT32, EDBUS_TYPE_INT64, EDBUS_TYPE_UINT64, EDBUS_TYPE_DOUBLE, EDBUS_TYPE_STRING, EDBUS_TYPE_OBJECT_PATH, EDBUS_TYPE_ARRAY, EDBUS_TYPE_STRUCT, EDBUS_TYPE_DICT, EDBUS_TYPE_VARIANT }
| Type of data current EdbusData object holds. More...
enum | EdbusErrorType { EDBUS_ERROR_INVALID, EDBUS_ERROR_FAILED, EDBUS_ERROR_NO_MEMORY, EDBUS_ERROR_SERVICE_UNKNOWN, EDBUS_ERROR_NAME_HAS_NO_OWNER, EDBUS_ERROR_NO_REPLY, EDBUS_ERROR_IO_ERROR, EDBUS_ERROR_BAD_ADDRESS, EDBUS_ERROR_NOT_SUPPORTED, EDBUS_ERROR_LIMITS_EXCEEDED, EDBUS_ERROR_ACCESS_DENIED, EDBUS_ERROR_AUTH_FAILED, EDBUS_ERROR_NO_SERVER, EDBUS_ERROR_TIMEOUT, EDBUS_ERROR_NO_NETWORK, EDBUS_ERROR_DISCONNECTED, EDBUS_ERROR_INVALID_ARGS, EDBUS_ERROR_FILE_NOT_FOUND, EDBUS_ERROR_FILE_EXISTS, EDBUS_ERROR_UNKNOWN_METHOD, EDBUS_ERROR_TIMED_OUT, EDBUS_ERROR_INVALID_SIGNATURE, EDBUS_ERROR_USER_DEFINED }
| EdbusError error type. More...
enum | FileErrors { FILE_SUCCESS = 0, FILE_EACCESS, FILE_ENOENT, FILE_EMFILE, FILE_ENSPC, FILE_FLAG }
| Error codes returned by File class. More...
enum | FileIOMode { FIO_READ = (1<<1), FIO_WRITE = (1<<2), FIO_APPEND = (1<<3), FIO_BINARY = (1<<4), FIO_TRUNC = (1<<5) }
| Open and write flags for File class. More...
enum | FileTestFlags { FILE_TEST_IS_REGULAR = 1 << 0, FILE_TEST_IS_DIR = 1 << 1, FILE_TEST_IS_SYMLINK = 1 << 2, FILE_TEST_IS_CHAR = 1 << 3, FILE_TEST_IS_BLOCK = 1 << 4, FILE_TEST_IS_FIFO = 1 << 5, FILE_TEST_IS_SOCKET = 1 << 6, FILE_TEST_IS_READABLE = 1 << 7, FILE_TEST_IS_WRITEABLE = 1 << 8, FILE_TEST_IS_EXECUTABLE = 1 << 9, FILE_TEST_EXISTS = 1 << 10 }
| Available flags for file_test() More...
enum | IconLoaderOptions { ICON_LOADER_OPTION_NO_ABSOLUTE_PATH = (1 << 1), ICON_LOADER_OPTION_NO_WIDGET_REDRAW = (1 << 2), ICON_LOADER_OPTION_NO_ICON_SCALE = (1 << 3) }
| Settable options for IconLoader functions. More...
enum | IconSizes { ICON_SIZE_TINY = 16, ICON_SIZE_SMALL = 22, ICON_SIZE_MEDIUM = 32, ICON_SIZE_LARGE = 48, ICON_SIZE_HUGE = 64, ICON_SIZE_ENORMOUS = 128 }
| Icon sizes to look for. More...
enum | IconContext { ICON_CONTEXT_ANY = 0, ICON_CONTEXT_ACTION, ICON_CONTEXT_APPLICATION, ICON_CONTEXT_DEVICE, ICON_CONTEXT_FILESYSTEM, ICON_CONTEXT_MIMETYPE, ICON_CONTEXT_STOCK, ICON_CONTEXT_EMBLEM, ICON_CONTEXT_MISC }
| Icon types to look for. More...
enum | { LISTENER_READ = 1, LISTENER_WRITE = 4, LISTENER_EXCEPT = 8 }
enum | MessageBoxType { MSGBOX_PLAIN = 0, MSGBOX_INPUT, MSGBOX_INPUT_SECRET }
| Type of MessageBox dialog. More...
enum | MessageBoxButtonType { MSGBOX_BUTTON_PLAIN = 0, MSGBOX_BUTTON_RETURN }
| Type of added button to MessageBox class. More...
enum | MessageBoxIconType { MSGBOX_ICON_TYPE_INFO = 0, MSGBOX_ICON_TYPE_ALERT, MSGBOX_ICON_TYPE_QUESTION, MSGBOX_ICON_TYPE_INPUT, MSGBOX_ICON_TYPE_PASSWORD }
| Type of the icon in message box. More...
enum | { NETWM_CHANGED_WORKSPACE_COUNT, NETWM_CHANGED_WORKSPACE_NAMES, NETWM_CHANGED_CURRENT_WORKSPACE, NETWM_CHANGED_CURRENT_WORKAREA, NETWM_CHANGED_ACTIVE_WINDOW, NETWM_CHANGED_WINDOW_NAME, NETWM_CHANGED_WINDOW_VISIBLE_NAME, NETWM_CHANGED_WINDOW_DESKTOP, NETWM_CHANGED_WINDOW_ICON, NETWM_CHANGED_WINDOW_LIST }
enum | { NETWM_WINDOW_TYPE_NORMAL, NETWM_WINDOW_TYPE_DESKTOP, NETWM_WINDOW_TYPE_DOCK, NETWM_WINDOW_TYPE_TOOLBAR, NETWM_WINDOW_TYPE_MENU, NETWM_WINDOW_TYPE_UTILITY, NETWM_WINDOW_TYPE_SPLASH, NETWM_WINDOW_TYPE_DIALOG, NETWM_WINDOW_TYPE_DROPDOWN_MENU, NETWM_WINDOW_TYPE_POPUP_MENU, NETWM_WINDOW_TYPE_TOOLTIP, NETWM_WINDOW_TYPE_NOTIFICATION, NETWM_WINDOW_TYPE_COMBO, NETWM_WINDOW_TYPE_DND }
enum | WmStateValue { WM_WINDOW_STATE_NONE = -1, WM_WINDOW_STATE_WITHDRAW = 0, WM_WINDOW_STATE_NORMAL = 1, WM_WINDOW_STATE_ICONIC = 3 }
enum | NetwmStateValue { NETWM_STATE_NONE = -1, NETWM_STATE_MODAL, NETWM_STATE_STICKY, NETWM_STATE_MAXIMIZED_VERT, NETWM_STATE_MAXIMIZED_HORZ, NETWM_STATE_MAXIMIZED, NETWM_STATE_SHADED, NETWM_STATE_SKIP_TASKBAR, NETWM_STATE_SKIP_PAGER, NETWM_STATE_HIDDEN, NETWM_STATE_FULLSCREEN, NETWM_STATE_ABOVE, NETWM_STATE_BELOW, NETWM_STATE_DEMANDS_ATTENTION }
enum | NetwmStateAction { NETWM_STATE_ACTION_REMOVE, NETWM_STATE_ACTION_ADD, NETWM_STATE_ACTION_TOGGLE }
enum | RegexMode { RX_EXTENDED = (1 << 1), RX_CASELESS = (1 << 2), RX_DOLLAR_ENDONLY = (1 << 3), RX_DOTALL = (1 << 4), RX_MULTILINE = (1 << 5), RX_UNGREEDY = (1 << 6) }
| Flags used for compile() More...
enum | RegexMatchMode { RX_MATCH_ANCHORED = (1 << 1), RX_MATCH_NOTBOL = (1 << 2), RX_MATCH_NOTEOL = (1 << 3), RX_MATCH_NOTEMPTY = (1 << 4) }
| Flags used for match() More...
enum | ResourceType { RES_SYS_FIRST, RES_USER_FIRST, RES_SYS_ONLY, RES_USER_ONLY }
| Flags showing what resource to load first or to load it only. More...
enum | { RUN_NOT_FOUND = 65535, RUN_EMPTY = 65534, RUN_NOT_EXEC = 65533, RUN_FORK_FAILED = 65532, RUN_WAITPID_FAILED = 65531, RUN_EXECVE_FAILED = 65530, RUN_PIPE_FAILED = 65529, RUN_NO_ACCESS = 65528 }
enum | WindowComponents { WIN_INIT_NONE = (1 << 1), WIN_INIT_ICON_THEME = (1 << 2), WIN_INIT_IMAGES = (1 << 3), WIN_INIT_ALL = (WIN_INIT_ICON_THEME | WIN_INIT_IMAGES) }
| Components used to be loaded with the window. More...
enum | XSettingsAction { XSETTINGS_ACTION_NEW = 0, XSETTINGS_ACTION_CHANGED, XSETTINGS_ACTION_DELETED }
| Flags telling what was done with setting. More...
enum | XSettingsType { XSETTINGS_TYPE_INT = 0, XSETTINGS_TYPE_STRING, XSETTINGS_TYPE_COLOR }
| Types used for XSETTINGS. More...

## Functions
unsigned int | color_rgb_to_fltk (unsigned char r, unsigned char g, unsigned char b)
void | color_fltk_to_rgb (unsigned int color, unsigned char &r, unsigned char &g, unsigned char &b)
unsigned int | color_html_to_fltk (const char *col)
void | color_fltk_to_html (unsigned int color, char *buf)
void | color_rgb_to_html (unsigned char r, unsigned char g, unsigned char b, char *buf)
void | color_html_to_rgb (const char *buf, unsigned char &r, unsigned char &g, unsigned char &b)
bool | dir_exists (const char *name)
bool | dir_readable (const char *name)
bool | dir_writeable (const char *name)
bool | dir_create (const char *name, int perm=0777)
bool | dir_create_with_parents (const char *name, int perm=0777)
bool | dir_remove (const char *name)
bool | dir_rename (const char *from, const char *to)
bool | dir_empty (const char *name)
String | dir_home (void)
String | dir_current (void)
bool | dir_list (const char *dir, list< String > &lst, bool full_path=false, bool show_hidden=false, bool show_dots=false)
EdbusList & | operator<< (EdbusList &lst, const EdbusData &val)
EdbusMessage & | operator<< (EdbusMessage &m, const EdbusData &val)
EdbusObjectPath & | operator<< (EdbusObjectPath &p, const char *el)
bool | file_test (const char *path, unsigned int flags)
bool | font_cache_find (const char *face, Fl_Font &f, int &s, Fl_Font df=FL_HELVETICA, int ds=12)
int | font_chooser (const char *name, const char *family, int &retsize, const char *default_name=0, int default_size=0)
void | foreign_callback_add (Fl_Window *win, const char *id, void(*cb)(Fl_Window *, void *), void *data=0)
void | foreign_callback_remove (void(*cb)(Fl_Window *, void *))
void | foreign_callback_call (const char *id)
template<typename T , typename F >
unsigned int | filter (const F &func, const T &container, T &ret)
template<typename T , typename F >
void | map (F &func, const T &container, T &ret)
template<typename T , typename R , typename F >
void | reduce (F &func, const T &container, R &ret)
template<typename T , typename F >
void | for_each (const F &func, const T &container)
template<typename T , typename F >
void | for_each (const F &func, const T &container, void *p)
String | icon_chooser (const char *dir)
String | icon_chooser (IconSizes sz, IconContext ctx=ICON_CONTEXT_ANY, bool always_full_path=false, bool *outside_theme_ret=((void *) 0))
void | listener_add_fd (int fd, int when, void(*cb)(int, void *), void *arg=0)
void | listener_add_fd (int fd, void(*cb)(int, void *), void *arg=0)
void | listener_remove_fd (int fd, int when)
void | listener_remove_fd (int fd)
double | listener_wait (double t)
int | listener_wait (void)
void | clear_dialog_icons (void)
void | netwm_callback_add (NetwmCallback cb, void *data=0)
void | netwm_callback_remove (NetwmCallback cb)
bool | netwm_workarea_get_size (int &x, int &y, int &w, int &h)
int | netwm_workspace_get_count (void)
void | netwm_workspace_change (int n)
int | netwm_workspace_get_current (void)
int | netwm_workspace_get_names (char **&names)
void | netwm_workspace_free_names (char **names)
void | netwm_window_set_type (Window win, int t)
int | netwm_window_get_type (Window win)
void | netwm_window_set_strut (Window win, int left, int right, int top, int bottom)
void | netwm_window_set_strut_partial (Window win, int sizes[12])
void | netwm_window_remove_strut (Window win)
void | netwm_window_remove_strut_partial (Window win)
int | netwm_window_get_all_mapped (Window **windows)
int | netwm_window_get_workspace (Window win)
int | netwm_window_is_manageable (Window win)
char * | netwm_window_get_title (Window win)
Fl_RGB_Image * | netwm_window_get_icon (Window win, unsigned int requested_width=0)
Window | netwm_window_get_active (void)
void | netwm_window_set_active (Window win, int source=0)
void | netwm_window_maximize (Window win)
void | netwm_window_close (Window win)
void | wm_window_ede_restore (Window win)
void | netwm_window_set_state (Window win, NetwmStateValue val, NetwmStateAction action)
bool | netwm_window_get_all_states (Window win, list< NetwmStateValue > &ret)
bool | netwm_window_have_state (Window win, NetwmStateValue val)
WmStateValue | wm_window_get_state (Window win)
void | wm_window_set_state (Window win, WmStateValue state)
char * | nls_locale_to_c (void)
void | nls_locale_from_c (char *old)
void | nls_support_init (const char *appname, const char *dir)
int | run_sync (const char *fmt,...)
int | run_async (const char *fmt,...)
int | run_async_with_pid (int *child_pid, const char *fmt,...)
char * | str_trimleft (char *str)
char * | str_trimright (char *str)
char * | str_trim (char *str)
unsigned char * | str_tolower (unsigned char *str)
unsigned char * | str_toupper (unsigned char *str)
bool | str_ends (const char *str, const char *test)
unsigned int | str_hash (const char *str, unsigned int len=0)
template<typename Container >
void | stringtok (Container &c, const String &str, const char *ws=" \t\n")
String | user_config_dir (void)
String | user_data_dir (void)
String | user_cache_dir (void)
int | system_config_dirs (list< String > &lst)
int | system_data_dirs (list< String > &lst)
String | build_filename (const char *p1, const char *p2=((void *) 0), const char *p3=((void *) 0))
void | window_xid_create (Fl_Window *win, void(*before_map_func)(Fl_Window *)=((void *) 0), int background_pixel=-1)
void | window_center_on_screen (Fl_Window *win)
bool | xsettings_list_add (XSettingsList **list, XSettingsSetting *setting)
bool | xsettings_list_remove (XSettingsList **list, const char *name)
XSettingsSetting * | xsettings_list_find (XSettingsList *list, const char *name)
void | xsettings_list_free (XSettingsList *list)
XSettingsSetting * | xsettings_setting_copy (XSettingsSetting *setting)
void | xsettings_setting_free (XSettingsSetting *setting)
bool | xsettings_setting_equal (XSettingsSetting *s1, XSettingsSetting *s2)
int | xsettings_setting_len (const XSettingsSetting *setting)
char | xsettings_byte_order (void)
XSettingsList * | xsettings_decode (unsigned char *data, int len, unsigned long *serial)
void | xsettings_encode (const XSettingsSetting *setting, XSettingsBuffer *buffer)

## Detailed Description

This is a main namespace where all edelib components laid. Also namespace usage can be optional, and disabled during compilation phase.

## Typedef Documentation

typedef void(* SipcCallback)(const char *, void *)

A callback type for SipcServer message callbacks

## Enumeration Type Documentation

anonymous enum

Enumerator:

  LISTENER_READ | callback is called when there is data to be read
  LISTENER_WRITE | callback is called when there is data to be written without blocking
  LISTENER_EXCEPT | callback is called when exception happens on descriptor

anonymous enum

Enumerator:

  RUN_NOT_FOUND | executable not found
  RUN_EMPTY | given parameter is NULL
  RUN_NOT_EXEC | given parameter is not executable on system
  RUN_FORK_FAILED | internal fork failed
  RUN_WAITPID_FAILED | internal waitpid failed
  RUN_EXECVE_FAILED | internal execve failed
  RUN_PIPE_FAILED | internal pipe failed
  RUN_NO_ACCESS | not enough permissions to execute it

enum ConfigErrors

Error codes from Config class.

Enumerator:

  CONF_SUCCESS | successful operation
  CONF_ERR_FILE | trouble accessing config file or directory
  CONF_ERR_BAD | malformed file
  CONF_ERR_SECTION | requested section was not found
  CONF_ERR_KEY | requested key was not found
  CONF_ERR_MEMORY | memory allocation error
  CONF_ERR_NOVALUE | key found, but invalid value associated with it

enum DateType

Types of date settable via Date::set()

Enumerator:

  DATE_LOCAL | use local date
  DATE_UTC | use UTC date

enum DesktopFileErrors

Error codes from DesktopFile class.

Enumerator:

  DESK_FILE_SUCCESS | successful operation
  DESK_FILE_EMPTY | file not loaded
  DESK_FILE_ERR_FILE | trouble accessing config file or directory
  DESK_FILE_ERR_BAD | malformed file, or not .desktop file

enum DesktopFileType

Reported file type from DesktopFile::type()

Enumerator:

  DESK_FILE_TYPE_UNKNOWN | Unknown type (Type key)
  DESK_FILE_TYPE_APPLICATION | Application type.
  DESK_FILE_TYPE_LINK | Link type.
  DESK_FILE_TYPE_DIRECTORY | Directory type.

enum DirWatchFlags

Flags telling to DirWatch what changes to monitor.

Enumerator:

  DW_CREATE | In directory item created.
  DW_MODIFY | In directory item modified.
  DW_ACCESS | In directory item is accessed (read, ...)
  DW_RENAME | In directory item renamed.
  DW_ATTRIB | In directory item's attributes changed.
  DW_DELETE | In directory item is deleted.

enum DirWatchNotifier

Notifier type used by DirWatch.

Enumerator:

  DW_NONE | None notifier; watching disabled.
  DW_INOTIFY | inotify (linux kernel >= 2.6.13)
  DW_FAM | FAM/gamin.

enum DirWatchReportFlags

Returned codes for received event.

Enumerator:

  DW_REPORT_NONE | Not figured out what happened.
  DW_REPORT_CREATE | A new item was created.
  DW_REPORT_MODIFY | Existing item was modified.
  DW_REPORT_RENAME | Existing item was renamed.
  DW_REPORT_DELETE | Existing item was deleted.

enum FileErrors

Error codes returned by File class.

Enumerator:

  FILE_SUCCESS | successful operation
  FILE_EACCESS | permission denied
  FILE_ENOENT | no such file
  FILE_EMFILE | too many opened files
  FILE_ENSPC | no space left on device
  FILE_FLAG | bad flag

enum FileIOMode

Open and write flags for File class.

Enumerator:

  FIO_READ | open file in read-only mode
  FIO_WRITE | open file in write mode, and truncate it to zero length
  FIO_APPEND | open file in append mode
  FIO_BINARY | open file in binary mode
  FIO_TRUNC | truncate currently opened file

enum FileTestFlags

Available flags for file_test()

Enumerator:

  FILE_TEST_IS_REGULAR | file
  FILE_TEST_IS_DIR | directory
  FILE_TEST_IS_SYMLINK | symbolic link
  FILE_TEST_IS_CHAR | character device
  FILE_TEST_IS_BLOCK | block device
  FILE_TEST_IS_FIFO | FIFO (pipes)
  FILE_TEST_IS_SOCKET | socket
  FILE_TEST_IS_READABLE | readable
  FILE_TEST_IS_WRITEABLE | writeable
  FILE_TEST_IS_EXECUTABLE | executable
  FILE_TEST_EXISTS | exists, no matter what type

enum IconContext

Icon types to look for.

Enumerator:

  ICON_CONTEXT_ANY | Can be any icon context.
  ICON_CONTEXT_ACTION | Icons representing actions.
  ICON_CONTEXT_APPLICATION | Icons representing applications.
  ICON_CONTEXT_DEVICE | Icons representing devices.
  ICON_CONTEXT_FILESYSTEM | Icons representing objects that are part of system.
  ICON_CONTEXT_MIMETYPE | Icons representing MIME types.
  ICON_CONTEXT_STOCK | Icons representing stock objects (gnome themes usually)
  ICON_CONTEXT_EMBLEM | Icons representing emblem objects (gnome themes usually)
  ICON_CONTEXT_MISC | Misc icons (gnome themes usually)

enum IconLoaderOptions

Settable options for IconLoader functions.

Todo:
  Explain these better in IconLoader class, with some examples

Enumerator:

  ICON_LOADER_OPTION_NO_ABSOLUTE_PATH | do not see given the path as absolute icon path
  ICON_LOADER_OPTION_NO_WIDGET_REDRAW | do not redraw widget
  ICON_LOADER_OPTION_NO_ICON_SCALE | do not scale icon

enum IconSizes

Icon sizes to look for.

Enumerator:

  ICON_SIZE_TINY | 16x16 icons
  ICON_SIZE_SMALL | 22x22 icons
  ICON_SIZE_MEDIUM | 32x32
  ICON_SIZE_LARGE | 48x48
  ICON_SIZE_HUGE | 64x64
  ICON_SIZE_ENORMOUS | 128x128

enum RegexMatchMode

Flags used for match()

Enumerator:

  RX_MATCH_ANCHORED | Match only at the first position.
  RX_MATCH_NOTBOL | Subject is not the beginning of a line.
  RX_MATCH_NOTEOL | Subject is not the end of a line.
  RX_MATCH_NOTEMPTY | An empty string is not a valid match.

enum RegexMode

Flags used for compile()

Enumerator:

  RX_EXTENDED | extended features
  RX_CASELESS | ignore cases
  RX_DOLLAR_ENDONLY | $ not to match newline at end
  RX_DOTALL | . matches anything including newline
  RX_MULTILINE | ^ and $ match newlines within data
  RX_UNGREEDY | invert greediness of quantifiers

enum ResourceType

Flags showing what resource to load first or to load it only.

Enumerator:

  RES_SYS_FIRST | Load system resource first.
  RES_USER_FIRST | Load user resource first.
  RES_SYS_ONLY | Load system resource ignoring user one.
  RES_USER_ONLY | Load user resource ignoring system one.

enum XSettingsAction

Flags telling what was done with setting.

Enumerator:

  XSETTINGS_ACTION_NEW | New setting added.
  XSETTINGS_ACTION_CHANGED | One of the settings changed.
  XSETTINGS_ACTION_DELETED | One of the settings deleted.

enum XSettingsType

Types used for XSETTINGS.

Enumerator:

  XSETTINGS_TYPE_INT | int type
  XSETTINGS_TYPE_STRING | string (char*) type
  XSETTINGS_TYPE_COLOR | RGBA type.

## Function Documentation

String edelib::build_filename | ( | const char * | p1,
|  | const char * | p2 = `((void *) 0)`,
|  | const char * | p3 = `((void *) 0)`
| ) |  |

This function will construct a path, separating each item with E_DIR_SEPARATOR separator. Each parameter will be separated with the one separator, except the case when one of the parameters contains multiple path elements separated with multiple separators.

Also, the number of leading separators in the first parameter and the number of trailing separators in the last parameter will be preserved.

For example:

build_filename("home", "foo", "baz") == "home/foo/baz";
build_filename("myplace/dir", "myfile") == "myplace/dir/myfile";
// keep heading separators
build_filename("/home", "foo", "baz") == "/home/foo/baz";
build_filename("///home", "foo", "baz") == "///home/foo/baz";
// keep trailing separators
build_filename("/home/foo", "foofile", "baz/") == "/home/foo/foofile/baz/";
build_filename("/home/foo", "foofile", "baz///") == "/home/foo/foofile/baz///";
// first parameter have multiple elements, it will be preserved as is
build_filename("/home///foo", "//foofile///", "/baz") == "/home///foo/foofile/baz";
// correct trailing data, since does not match to separator
build_filename("///home////foo", "//foofile///", "/baz//") == "/home/foo/foofile/baz";
// if given only one parameter, heading and trailing number of separator will be preserved
build_filename("///home///") == "///home///";

Returns
  constructed filename path

Parameters

  p1 | first parameter
  p2 | optional second; if is NULL (default), it is ignored
  p3 | optional third; if is NULL (default), it is ignored

void edelib::color_fltk_to_html | ( | unsigned int | color,
|  | char * | buf
| ) |  |

Convert FLTK color to html representation. Given buffer is assumed to be a prior allocated and must be at least 8 character wide. Final result will be in form #rrggbb and string will be null terminated.

Note
  For this function the same applies as for color_fltk_to_rgb()

Parameters

  color | is FLTK color
  buf | is buffer where to place html color

void edelib::color_fltk_to_rgb | ( | unsigned int | color,
|  | unsigned char & | r,
|  | unsigned char & | g,
|  | unsigned char & | b
| ) |  |

Decompose FLTK color to rgb components.

Note
  This function will decompose corectly values grater than 255 or FLTK colors (FL_WHIRE, FL_RED,...). When FLTK color is given, it will use colormap, the same one used by fltk.

Parameters

  color | is FLTK color
  r | is extracted red component
  g | is extracted green component
  b | is extracted blue component

unsigned int edelib::color_html_to_fltk | ( | const char * | col | ) |

Tries to convert html-like color names to FLTK color space. This function does not support named colors, like #black, but only their hex values, like #abc. It will fail (return 0) if one of components is missing (eg. given #a or #ab).

Returns
  color value coresponding to FLTK color space or return 0 (black)

Parameters

  col | is named color, if is NULL, it will return 0 (black)

void edelib::color_html_to_rgb | ( | const char * | buf,
|  | unsigned char & | r,
|  | unsigned char & | g,
|  | unsigned char & | b
| ) |  |

Decompose html representation to rgb compontents. Because this function uses color_fltk_to_rgb(), the same properties applies here.

Parameters

  buf | is buffer where to place html color (8 character wide)
  r | is extracted red component
  g | is extracted green component
  b | is extracted blue component

unsigned int edelib::color_rgb_to_fltk | ( | unsigned char | r,
|  | unsigned char | g,
|  | unsigned char | b
| ) |  |

Convert separated rgb color components to FLTK color space.

Returns
  color value that can be used for widget color

Parameters

  r | is red component
  g | is green component
  b | is blue component

void edelib::color_rgb_to_html | ( | unsigned char | r,
|  | unsigned char | g,
|  | unsigned char | b,
|  | char * | buf
| ) |  |

Convert RGB color to html representation. Given buffer is assumed to be a prior allocated and must be at least 8 character wide. Final result will be in form #rrggbb and string will be null terminated.

Parameters

  r | is red component
  g | is green component
  b | is blue component
  buf | is buffer where to place html color

bool edelib::dir_create | ( | const char * | name,
|  | int | perm = `0777`
| ) |  |

Creates directory calling system's mkdir() with apropriate permission (default is 0777).

This function will fail if given path exists (directory, file, link, etc.) Return true if succeded or false if failed.

bool edelib::dir_create_with_parents | ( | const char * | name,
|  | int | perm = `0777`
| ) |  |

Creates directory if does not exists and create intermedaite parents if needed too.

Return true if succeded or false if failed.

String edelib::dir_current | ( | void |  | ) |

Returns current directory or empty String if fails

bool edelib::dir_empty | ( | const char * | name | ) |

Return true if given directory is empty. If path is pointing to anything else than directory, it will return false. Use dir_exists() to check is path really a directory.

This function is alternative to this code:

list<String> dlist;
dir_list(path, dlist);
dlist.empty() == true;

but is much faster.

bool edelib::dir_exists | ( | const char * | name | ) |

Check if directory exists

Deprecated:
  with file_test()

String edelib::dir_home | ( | void |  | ) |

Returns user home directory or empty String if fails

bool edelib::dir_list | ( | const char * | dir,
|  | list< String > & | lst,
|  | bool | full_path = `false`,
|  | bool | show_hidden = `false`,
|  | bool | show_dots = `false`
| ) |  |

List content of given directory. If directory is accessible, given parameter will be filled with the content.

dir_list() can accept "." which will resolve to the current directory, but will not accept ".." (directory up), nor will resolve chainings on it (like "../../../").

list content will be cleared before items are added.

Returns
  true if target directory reading went fine; otherwise false

Parameters

  dir | target directory
  lst | is a content of directory
  full_path | if set will append directory name to the each entry
  show_hidden | if set will show hidden files
  show_dots | if set will show . and .. directories

bool edelib::dir_readable | ( | const char * | name | ) |

Check if directory is readable

Deprecated:
  with file_test()

bool edelib::dir_remove | ( | const char * | name | ) |

Remove given path (must be directory) calling system's rmdir(). Directory must be empty or operation will fail. Return true if succeded or false if failed.

bool edelib::dir_rename | ( | const char * | from,
|  | const char * | to
| ) |  |

Rename given directory name. If name to be renamed to exists (file, directory, link and etc.) it will fail. Directory to be renamed must be empty.

bool edelib::dir_writeable | ( | const char * | name | ) |

Check if directory is writeable

Deprecated:
  with file_test()

bool edelib::file_test | ( | const char * | path,
|  | unsigned int | flags
| ) |  |

file_test() is generic checker for target file type on the system, where file type could be directory, regular file socket and etc. This function, besides deducing type, can also check for file's existance and it's access flags.

flags should be set to specify what to test. These values can be OR-ed, so if you wan't to see if target object is file and is executable, you will use FILE_TEST_IS_REGULAR | FILE_TEST_IS_EXECUTABLE.

See Also
  FileTestFlags for possible flags

Care must be taken when combine certain flags. For example, since file can be readable, writeable and executable, combination like FILE_TEST_IS_READABLE | FILE_TEST_IS_WRITEABLE | FILE_TEST_IS_EXECUTABLE | FILE_TEST_IS_REGULAR is perfectly valid. On other hand, FILE_TEST_IS_DIR | FILE_TEST_IS_REGULAR makes no sense, so only first bits will be considered (FILE_TEST_IS_DIR only), and these flags will yield false from file_test().

void edelib::listener_add_fd | ( | int | fd,
|  | int | when,
|  | void(*)(int, void *) | cb,
|  | void * | arg = `0`
| ) |  |

listener_xxx are set of functions with ability to monitor file descriptors (files, sockets, etc.). They are doing much the same work as FLTK's Fl::add_fd() and Fl::remove_fd() with the Fl::wait() loop.

They are mainly created to avoid linking with FLTK libraries when is not needed, eg. console applications.

listener_add_fd() will add file descriptor to listen to. Whem descriptor becomes ready, a cb callback will be called.

Parameters

  fd | is descriptor to be monitored
  when | is bitfield (LISTENER_READ, LISTENER_WRITE and LISTENER_EXCEPT) to indicate when callback should be done
  cb | is callback to be called
  arg | is optional parameter passed to the callback

Referenced by listener_add_fd().

void edelib::listener_add_fd | ( | int | fd,
|  | void(*)(int, void *) | cb,
|  | void * | arg = `0`
| ) |  |
| inline

listener_add_fd() function with LISTENER_READ bit set.

References listener_add_fd(), and LISTENER_READ.

void edelib::listener_remove_fd | ( | int | fd,
|  | int | when
| ) |  |

Removes added descriptor.

Parameters

  fd | is descriptor to be removed
  when | are bits to be removed from fd.

Referenced by listener_remove_fd().

void edelib::listener_remove_fd | ( | int | fd | ) |
| inline

listener_remove_fd() function with LISTENER_READ bit set.

References LISTENER_READ, and listener_remove_fd().

double edelib::listener_wait | ( | double | t | ) |

This function corresponds (in some parts) to the FLTK's Fl::wait(). In this case, it will wait until some changes happens on monitored descriptors and will return. It will also call given callbacks (via listener_add_fd()).

listener_wait(), on other hand, is not replacement for Fl::wait(). It will not handle all things Fl::wait() does (like refreshing windows, calling idle callbacks, etc.) and in case listener_xxx be used with FLTK elements, listener_wait() must be called too.

Returns
  positive value if an event or fd happens before time elapsed. It is zero if nothing happens and negative is if error occurs, like signal

Parameters

  t | is time to wait maximum seconds. It can return much sooner if something happens

Referenced by listener_wait().

int edelib::listener_wait | ( | void |  | ) |
| inline

The same as for listener_wait(time), except it will run forever, until something happens and will return

References listener_wait().

void edelib::nls_locale_from_c | ( | char * | old | ) |

Restore locale set with nls_locale_to_c().

Parameters

  old | is previous locale retrieved with nls_locale_to_c()

char* edelib::nls_locale_to_c | ( | void |  | ) |

Forces current locale to be set to "C".

The main intent for this function is to provide uniform data representation for some functions across locales. For example, strtod or printf family depends on current locale and if you want predictable behaviour or reading/writing across locales, the best way is to set "C" locale, call this functions and restore previous locale.

nls_locale_to_c() will return information of current locale, which is allocated c-string. You should not free it, use nls_locale_from_c(ret_value) instead, like:

char* loc = nls_locale_to_c();
strtod(...)
nls_locale_from_c(loc);

Returns
  old locale. It can return NULL if NLS is disabled; nls_locale_from_c() will handle that too.

void edelib::nls_support_init | ( | const char * | appname,
|  | const char * | dir
| ) |  |

A shorthand for textdomain() and bindtextdomain()

This function can be called before application starts, like:

int main()
{
// LOCALEDIR should be set somewhere
// and advice is to use autoconf for that
nls_support_init("my_killer_app", LOCALEDIR);
// app init, starting and etc.
}

Todo:
  what should set_textdomain_dir() and set_textdomain() return when NLS is disabled?

Parameters

  appname | is a set of translatable messages, coresponding to the target application's executable
  dir | the base directory for appname

int edelib::run_async | ( | const char * | fmt,
|  |  | ...
| ) |  |

Same as run_sync(), except it will run command without blocking.

int edelib::run_async_with_pid | ( | int * | child_pid,
|  | const char * | fmt,
|  |  | ...
| ) |  |

Run program without blocking, but return successfully started child PID value.

Returns
  the same values as run_sync()

Parameters

  child_pid | if not NULL will be set PID value of started child
  fmt | is printf-like formatted string

int edelib::run_sync | ( | const char * | fmt,
|  |  | ...
| ) |  |

Executes the given program until it completes. If full path to the executable was given, it will be directly called; if not, PATH environment variable should contain a path where executable is placed.

Please note how some programs run without parameters (but internaly are executed via shell) can set errno to 2 which is usually interpreted as ENOENT (or program does not exists); for examle tar is known for this.

Returns
  0 if starting and quitting program went fine; otherwise return one of RUN_* codes or errno value for not checked codes

Parameters

  fmt | is printf-like formatted string

bool edelib::str_ends | ( | const char * | str,
|  | const char * | test
| ) |  |

Check if string ends with given test string.

Returns
  true if ends or false if not

Parameters

  str | is where to search
  test | is what to search

unsigned int edelib::str_hash | ( | const char * | str,
|  | unsigned int | len = `0`
| ) |  |

Compute hash from given string.

Returns
  computed hash number

Parameters

  str | is input C string
  len | is length of str; if set to 0, str_hash() will compute string length using strlen.

unsigned char* edelib::str_tolower | ( | unsigned char * | str | ) |

Makes all characters lower. Operates directly on buffer.

unsigned char* edelib::str_toupper | ( | unsigned char * | str | ) |

Makes all characters upper. Operates directly on buffer.

char* edelib::str_trim | ( | char * | str | ) |

Same as str_trimleft(str_trimright(str)).

char* edelib::str_trimleft | ( | char * | str | ) |

Removes leading space. Operates directly on buffer.

char* edelib::str_trimright | ( | char * | str | ) |

Removes leading space. Operates directly on buffer.

void edelib::stringtok | ( | Container & | c,
|  | const String & | str,
|  | const char * | ws = `" \t\n"`
| ) |  |

A generic String tokenizer (or spliter), similar to stringtok, but works on given container (container that have push_back()).

If delimiter is not found * in container will be put whole string parameter (or container will be size 1). If given string is empty, in container will not be put anything.

This tokenizer is found in libstdc++ documentation. Author is unknown.

Parameters

  c | is container where will be tokenized data placed
  str | is string which should be tokenized
  ws | is delimiter by which we do splitting

References String::length(), stringtok(), and String::substr().

Referenced by stringtok().

int edelib::system_config_dirs | ( | list< String > & | lst | ) |

Get a list of directories where configuration files should be searched. List is determined according to the XDG Base Directory Specification.

Returns
  a size of list

Parameters

  lst | is where to put founded data

int edelib::system_data_dirs | ( | list< String > & | lst | ) |

Get a list of directories where data files should be searched. List is determined according to the XDG Base Directory Specification.

Returns
  a size of list

Parameters

  lst | is where to put founded data

String edelib::user_cache_dir | ( | void |  | ) |

Get default directory where should be stored application specific cached data. Place is determined according to the XDG Base Directory Specification.

Returns
  filled String with path or empty String if fails without directory separator at the end

String edelib::user_config_dir | ( | void |  | ) |

Get default directory where should be stored user specific configuration files. Place is determined according to the XDG Base Directory Specification.

Returns
  filled String with path or empty String if fails without directory separator at the end

String edelib::user_data_dir | ( | void |  | ) |

Get default directory where should be stored user specific data files like icons. Place is determined according to the XDG Base Directory Specification.

Returns
  filled String with path or empty String if fails without directory separator at the end

char edelib::xsettings_byte_order | ( | void |  | ) |

Returns byte order (MSBFirst/LSBFirst) used on client side.

XSettingsList* edelib::xsettings_decode | ( | unsigned char * | data,
|  | int | len,
|  | unsigned long * | serial
| ) |  |

Decode settings from given buffer. Returns NULL if failed or buffer was empty; otherwise returns list of recognised ones.

void edelib::xsettings_encode | ( | const XSettingsSetting * | setting,
|  | XSettingsBuffer * | buffer
| ) |  |

Encode settings from list into buffer.

bool edelib::xsettings_list_add | ( | XSettingsList ** | list,
|  | XSettingsSetting * | setting
| ) |  |

Adds setting to the current list. Only pointer will be stored in list.

XSettingsSetting* edelib::xsettings_list_find | ( | XSettingsList * | list,
|  | const char * | name
| ) |  |

Find setting with given name. Returns NULL if nothing was found.

void edelib::xsettings_list_free | ( | XSettingsList * | list | ) |

Clears settings list.

bool edelib::xsettings_list_remove | ( | XSettingsList ** | list,
|  | const char * | name
| ) |  |

Remove setting with given name. If not found, it will do nothing.

XSettingsSetting* edelib::xsettings_setting_copy | ( | XSettingsSetting * | setting | ) |

Copy given setting. Copy will be allocated, and should be freed with xsettings_setting_free().

bool edelib::xsettings_setting_equal | ( | XSettingsSetting * | s1,
|  | XSettingsSetting * | s2
| ) |  |

Returns true if given two settings are equal or false if not.

void edelib::xsettings_setting_free | ( | XSettingsSetting * | setting | ) |

Free data allocated by given setting.

int edelib::xsettings_setting_len | ( | const XSettingsSetting * | setting | ) |

Returns setting lenght.