edelib Namespace Reference

Classes

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  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 void(* NetwmCallback )(int action, Window xid, void *data)
typedef void(* SipcCallback )(const char *, void *)

Enumerations

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

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)
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_remove_strut (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)
Window netwm_window_get_active (void)
void netwm_window_set_active (Window win)
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)
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_program (const char *cmd, bool wait=true)
int run_program_fmt (bool wait, const char *fmt,...)
int run_sync (const char *fmt,...)
int run_async (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)
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)
XSettingsSettingxsettings_list_find (XSettingsList *list, const char *name)
void xsettings_list_free (XSettingsList *list)
XSettingsSettingxsettings_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)
XSettingsListxsettings_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 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

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

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).

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

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

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.

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.

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
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,
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_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_remove_fd ( int  fd  )  [inline]

listener_remove_fd() function with LISTENER_READ bit set.

References LISTENER_READ, and listener_remove_fd().

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().

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().

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().

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_program ( const char *  cmd,
bool  wait = true 
)

Executes given program. Path for the program can be specified or not, but for case when is not specified, environment PATH should contain a path where is executable placed.

If parameter wait is set to true (default), this function will wait untill started program is not exited; in that case will return code from started program. On other hand, will just run program (will not check if program can be run or not) and return 0, which is default value for succesfull execution.

Returns:
0 if starting and quitting program went fine; otherwise return one of above codes, or errno value for not checked codes
Parameters:
cmd is commad to be executed with optional full path and parameters
wait if is true (default) function will not exit until program exists
Deprecated:
in a favor of run_sync() and run_async()
int edelib::run_program_fmt ( bool  wait,
const char *  fmt,
  ... 
)

Same as run_program(), but run printf-like constructed command

Deprecated:
in a favor of run_sync() and run_async()
int edelib::run_sync ( const char *  fmt,
  ... 
)

Executes the given program. 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.

Note:
Some programs that exists and are run without parameters (but internaly are executed via shell) could set errno to 2 which is usually interpreted as ENOENT (or program does not exists); for examle tar is known for this. Solution? Rewrite that tar!!!

This function will run a command and wait until it finishes.

Returns:
0 if starting and quitting program went fine; otherwise return one of above codes, or errno value for not checked codes
Parameters:
fmt is printf-like formated 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 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" 
) [inline]

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.


Generated on 23 May 2013 for edelib by  doxygen 1.6.1