Rapicorn - Experimental UI Toolkit - Source Code  13.07.0
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Rapicorn Namespace Reference

The Rapicorn namespace encompasses core utilities and toolkit functionality. More...

Namespaces

namespace  Aida
 

The Aida namespace provides all IDL functionality exported to C++.


namespace  AnsiColors
 

The AnsiColors namespace contains utility functions for colored terminal output.


namespace  Path
 

The Path namespace provides functions for file path manipulation and testing.


namespace  Test
 

The Test namespace offers utilities for unit tests.


namespace  ThisThread
 

The ThisThread namespace provides functions for the current thread of execution.


namespace  Unicode
 

The Unicode namespace provides support for the Unicode standard and UTF-8 encoding.


Classes

class  Blob
 Binary data access for builtin resources and files. More...
struct  Init
 Simple helper class to call one-line lambda initializers as static constructor. More...
class  TestStream
class  IniFile
 Configuration parser for INI files. More...
struct  UserSource
 < Helper structure to capture the origin of a user message. More...
struct  PollFD
 Mirrors struct pollfd for poll(3posix) More...
class  EventLoop
 Loop object, polling for events and executing callbacks in accordance. More...
class  MainLoop
 An EventLoop implementation that offers public API for running the loop. More...
class  InitSettings
class  ScopedLocale
 Class to push a specific locale_t for the scope of its lifetime. More...
class  ScopedPosixLocale
 Class to push the POSIX/C locale_t (UTF-8) for the scope of its lifetime. More...
class  InitHook
class  MarkupParser
class  IdAllocator
 Class for randomized and thread safe ID allocation. More...
class  AlignedArray
 Class to maintain an array of aligned memory. More...
class  VirtualTypeid
struct  ClassDoctor
class  Deletable
 Deletable is a virtual base class that can be derived from (usually with public virtual) to ensure an object has a vtable and a virtual destructor. More...
class  DataListContainer
 By using a DataKey, DataListContainer objects allow storage and retrieval of custom data members in a typesafe fashion. More...
class  ReferenceCountable
interface  BaseObject
 Helper class, part of the IDL interface but implemented by rapicorn-core. More...
class  NullInterface
struct  CPUInfo
 Acquire information about the runtime architecture and CPU type. More...
struct  TaskStatus
 Acquire information about a task (process or thread) at runtime. More...
class  QuickTimer
 The QuickTimer class allows fast timer expiration checks from inner loops. More...
class  Strings
 Convenience Constructor for StringSeq or std::vector<std::string> More...
struct  RECURSIVE_LOCK
class  Mutex
 The Mutex synchronization primitive is a thin wrapper around std::mutex. More...
class  Spinlock
 The Spinlock uses low-latency busy spinning to acquire locks. More...
class  RWLock
 The RWLock allows multiple readers to simultaneously access a critical code section or one writer. More...
struct  ThreadInfo
 Class keeping information per Thread. More...
struct  AUTOMATIC_LOCK
struct  BALANCED_LOCK
class  ScopedLock
 The ScopedLock is a scope based lock ownership wrapper. More...
class  Cond
 The Cond synchronization primitive is a thin wrapper around pthread_cond_wait(). More...
struct  Atomic< char >
 Atomic char type. More...
struct  Atomic< int8 >
 Atomic int8 type. More...
struct  Atomic< uint8 >
 Atomic uint8 type. More...
struct  Atomic< int32 >
 Atomic int32 type. More...
struct  Atomic< uint32 >
 Atomic uint32 type. More...
struct  Atomic< int64 >
 Atomic int64 type. More...
struct  Atomic< uint64 >
 Atomic uint64 type. More...
class  Atomic< V * >
 Atomic pointer type. More...
class  Exclusive
 Exclusive<> is a type wrapper that provides non-racy atomic access to a copyable Type. More...
class  AsyncBlockingQueue
 This is a thread-safe asyncronous queue which blocks in pop() until data is provided through push(). More...
class  AsyncNotifyingQueue
 This is a thread-safe asyncronous queue which returns 0 from pop() until data is provided through push(). More...
class  AsyncRingBuffer
 This is a thread-safe lock-free ring buffer of fixed size. More...
class  TraitConvertible
class  DataKey
 DataKey objects are used to identify and manage custom data members of DataListContainer objects. More...
class  DataList
class  XmlNode
class  Adjustment
class  AdjustmentSource
class  ApplicationImpl
class  Arrangement
class  ArrangementImpl
class  ButtonAreaImpl
class  CairoContext
class  CairoPainter
struct  BoolSeq
 A sequence of booleans. More...
struct  StringSeq
 A sequence of strings (in C++ of std::string). More...
struct  AnySeq
 A sequence of Any objects. More...
struct  AnySeqSeq
 A sequence of AnySeq sequence objects, useful when multiple AnySeq instances are needed. More...
struct  PixelSeq
 A sequence of ARGB pixel values. More...
struct  Pixbuf
 Pixbuf is a simple pixel buffer. More...
struct  UpdateSpan
 Structure identifying an index span. More...
struct  UpdateRequest
 Structure describing an update for a list or table. More...
class  ListModelHandle
 See also the corresponding IDL class ListModel. More...
class  ListModelRelayHandle
 See also the corresponding IDL class ListModelRelay. More...
struct  Requisition
 Requisition information, providing requisition width and height. More...
struct  WidgetSeq
 A sequence of Widget objects. More...
class  WidgetHandle
 See also the corresponding IDL class Widget. More...
class  ContainerHandle
 See also the corresponding IDL class Container. More...
class  ButtonAreaHandle
 See also the corresponding IDL class ButtonArea. More...
class  DrawableHandle
 See also the corresponding IDL class Drawable. More...
class  WidgetListHandle
 See also the corresponding IDL class WidgetList. More...
class  WindowHandle
 See also the corresponding IDL class Window. More...
struct  WindowList
 A sequence of Window objects. More...
class  ApplicationHandle
 See also the corresponding IDL class Application. More...
class  IdlTestWidgetHandle
 See also the corresponding IDL class IdlTestWidget. More...
struct  ContainerImpl
class  SingleContainerImpl
struct  AnchorInfo
class  ResizeContainerImpl
class  MultiContainerImpl
struct  Evaluator
class  Event
class  EventButton
class  EventKey
struct  EventWinSize
struct  EventContext
class  WidgetFactory
class  Heritage
class  Image
interface  ListModel
 A row-oriented data provider. More...
interface  ListModelRelay
 Adapter for ListModel classes. More...
interface  Widget
 Widget is the base type for all UI elements. More...
interface  Container
 Container is a special type of Widget that can contain other widgets. More...
interface  ButtonArea
 The ButtonArea interface provides button click handling. More...
interface  Drawable
 The Drawable interface allows display of custom images. More...
interface  WidgetList
 Widget containing a list of selectable widgets. More...
interface  Window
 Window represents the toplevel onscreen widget. More...
interface  Application
 Application singleton. More...
interface  IdlTestWidget
 See also the corresponding C++ stub class IdlTestWidgetHandle. More...
class  Alignment
class  HBox
class  VBox
struct  ListRow
class  WidgetListImpl
class  ListModelRelayImpl
class  MemoryListStore
class  Ambience
class  Frame
class  FocusFrame
class  CPainter
class  Arrow
class  DotGrid
class  DrawableImpl
class  PixmapT
 Pixmap (PixmapT) is a Pixbuf wrapper template which provides various pixel operations. More...
class  Point
class  Rect
struct  IRect
class  Color
class  Affine
struct  AffineIdentity
struct  AffineHFlip
struct  AffineVFlip
struct  AffineTranslate
struct  AffineScale
struct  AffineRotate
struct  AffineShear
class  Region
 The Region class manages areas defined through a list of rectangles. More...
class  ScreenWindow
 Interface class for managing window contents on screens and display devices. More...
struct  ScreenCommand
 Structure for internal asynchronous communication between ScreenWindow and ScreenDriver. More...
class  ScreenDriver
 Management class for ScreenWindow driver implementations. More...
struct  ScreenDriverFactory
 Template for factory registration of ScreenDriver implementations. More...
class  ScrollArea
class  ScrollAreaImpl
class  ListModelIface
 See also the corresponding IDL class ListModel. More...
class  ListModelRelayIface
 See also the corresponding IDL class ListModelRelay. More...
class  WidgetIface
 See also the corresponding IDL class Widget. More...
class  ContainerIface
 See also the corresponding IDL class Container. More...
class  ButtonAreaIface
 See also the corresponding IDL class ButtonArea. More...
class  DrawableIface
 See also the corresponding IDL class Drawable. More...
class  WidgetListIface
 See also the corresponding IDL class WidgetList. More...
class  WindowIface
 See also the corresponding IDL class Window. More...
class  ApplicationIface
 See also the corresponding IDL class Application. More...
class  IdlTestWidgetIface
 See also the corresponding IDL class IdlTestWidget. More...
class  Sinfex
class  SinfexExpressionStack
class  SizeGroup
class  SliderArea
class  Stock
 Stock resource retrieval facility. More...
class  Table
class  TableImpl
class  TestContainer
class  TestBox
struct  Exception
struct  NullPointer
struct  EnforceDerivedFrom
struct  EnforceDerivedFrom< Derived *, Base * >
class  CheckDerivedFrom
struct  CheckDerivedFrom< Child *, Base * >
struct  Dereference< Type * >
struct  Dereference< Type *const >
struct  Dereference< const Type * >
struct  Dereference< const Type *const >
class  PointerIterator
struct  ValueIterator
class  IteratorRange
class  ValueIteratorRange
class  Walker
class  ViewportImpl
class  EventHandler
class  WidgetImpl
 WidgetImpl is the base type for all UI element implementations and implements the Widget interface. More...
struct  WidgetIfaceVector
class  WindowImpl

Typedefs

typedef uint8_t uint8
 An 8-bit unsigned integer.
typedef uint16_t uint16
 A 16-bit unsigned integer.
typedef uint32_t uint32
 A 32-bit unsigned integer.
typedef uint64_t uint64
 A 64-bit unsigned integer, use PRI*64 in format strings.
typedef int8_t int8
 An 8-bit signed integer.
typedef int16_t int16
 A 16-bit signed integer.
typedef int32_t int32
 A 32-bit signed integer.
typedef int64_t int64
 A 64-bit unsigned integer, use PRI*64 in format strings.
typedef uint32_t unichar
 A 32-bit unsigned integer used for Unicode characters.
typedef std::string String
 Convenience alias for std::string.
typedef vector< StringStringVector
 Convenience alias for a std::vector<std::string>.
typedef MarkupParser::Error MarkupError
typedef MarkupParser::ErrorType MarkupErrorType
typedef MarkupParser::Context MarkupParserContext
typedef std::map< Deletable
*, DeletableAuxData >
::iterator 
DMapIterator
typedef Aida::PropertyList PropertyList
typedef Aida::Property Property
typedef ListModelHandle ListModelH
 Convenience alias for the IDL type ListModel.
typedef ListModelRelayHandle ListModelRelayH
 Convenience alias for the IDL type ListModelRelay.
typedef WidgetHandle WidgetH
 Convenience alias for the IDL type Widget.
typedef ContainerHandle ContainerH
 Convenience alias for the IDL type Container.
typedef ButtonAreaHandle ButtonAreaH
 Convenience alias for the IDL type ButtonArea.
typedef DrawableHandle DrawableH
 Convenience alias for the IDL type Drawable.
typedef WidgetListHandle WidgetListH
 Convenience alias for the IDL type WidgetList.
typedef WindowHandle WindowH
 Convenience alias for the IDL type Window.
typedef ApplicationHandle ApplicationH
 Convenience alias for the IDL type Application.
typedef IdlTestWidgetHandle IdlTestWidgetH
 Convenience alias for the IDL type IdlTestWidget.
typedef Evaluator::VariableMapList VariableMapList
typedef Event EventMouse
typedef Event EventScroll
typedef Event EventFocus
typedef Event EventWinDelete
typedef Event EventWinDestroy
typedef Color(* ColorFunc )(StateType, ColorType)
typedef PixmapT< PixbufPixmap
 Pixmap is a convenience alias for PixmapT<Pixbuf>.
typedef std::shared_ptr
< ScreenWindow
ScreenWindowP
typedef Rect Allocation
typedef long long signed int LongIffy
 LongIffy, ULongIffy, CastIffy, UCastIffy - types for 32bit/64bit overloading.
typedef long long unsigned int ULongIffy
typedef int64_t CastIffy
typedef uint64_t UCastIffy

Enumerations

enum  { WAITING, PREPARED, NEEDS_DISPATCH }
enum  GMarkupParseState {
  STATE_START, STATE_AFTER_OPEN_ANGLE, STATE_AFTER_CLOSE_ANGLE, STATE_AFTER_ELISION_SLASH,
  STATE_INSIDE_OPEN_TAG_NAME, STATE_INSIDE_ATTRIBUTE_NAME, STATE_AFTER_ATTRIBUTE_NAME, STATE_BETWEEN_ATTRIBUTES,
  STATE_AFTER_ATTRIBUTE_EQUALS_SIGN, STATE_INSIDE_ATTRIBUTE_VALUE_SQ, STATE_INSIDE_ATTRIBUTE_VALUE_DQ, STATE_INSIDE_TEXT,
  STATE_AFTER_CLOSE_TAG_SLASH, STATE_INSIDE_CLOSE_TAG_NAME, STATE_AFTER_CLOSE_TAG_NAME, STATE_INSIDE_PASSTHROUGH,
  STATE_ERROR
}
enum  UnescapeState { USTATE_INSIDE_TEXT, USTATE_AFTER_AMPERSAND, USTATE_INSIDE_ENTITY_NAME, USTATE_AFTER_CHARREF_HASH }
enum  {
  SQ, DQ, AP, BS,
  LT, GT, ALL
}
enum  MoveType {
  MOVE_NONE, MOVE_STEP_FORWARD, MOVE_STEP_BACKWARD, MOVE_PAGE_FORWARD,
  MOVE_PAGE_BACKWARD
}
enum  ModifierState {
  MOD_0, MOD_SHIFT, MOD_CAPS_LOCK, MOD_CONTROL,
  MOD_ALT, MOD_MOD1, MOD_MOD2, MOD_MOD3,
  MOD_MOD4, MOD_MOD5, MOD_BUTTON1, MOD_BUTTON2,
  MOD_BUTTON3, MOD_KEY_MASK, MOD_MASK
}
enum  KeyValue
enum  ActivateKeyType { ACTIVATE_NONE, ACTIVATE_FOCUS, ACTIVATE_DEFAULT }
enum  EventType {
  EVENT_NONE, MOUSE_ENTER, MOUSE_MOVE, MOUSE_LEAVE,
  BUTTON_PRESS, BUTTON_2PRESS, BUTTON_3PRESS, BUTTON_CANCELED,
  BUTTON_RELEASE, BUTTON_2RELEASE, BUTTON_3RELEASE, FOCUS_IN,
  FOCUS_OUT, KEY_PRESS, KEY_CANCELED, KEY_RELEASE,
  SCROLL_UP, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT,
  CANCEL_EVENTS, WIN_SIZE, WIN_DELETE, WIN_DESTROY,
  EVENT_LAST
}
enum  AdjustmentSourceType { ADJUSTMENT_SOURCE_NONE, ADJUSTMENT_SOURCE_ANCESTRY_HORIZONTAL, ADJUSTMENT_SOURCE_ANCESTRY_VERTICAL, ADJUSTMENT_SOURCE_ANCESTRY_VALUE }
 Enum used to specify how adjustments are picked from widget ancestry.
enum  AlignType { ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT }
 Enum generally used for text paragraph alignments.
enum  AnchorType {
  ANCHOR_NONE, ANCHOR_CENTER, ANCHOR_EAST, ANCHOR_NORTH_EAST,
  ANCHOR_NORTH, ANCHOR_NORTH_WEST, ANCHOR_WEST, ANCHOR_SOUTH_WEST,
  ANCHOR_SOUTH, ANCHOR_SOUTH_EAST
}
 Enum to specify an anchoring point for graphical elements.
enum  ClickType {
  CLICK_ON_PRESS, CLICK_ON_RELEASE, CLICK_SLOW_REPEAT, CLICK_FAST_REPEAT,
  CLICK_KEY_REPEAT
}
 Enum to specify button click behaviour.
enum  ColorType {
  COLOR_NONE, COLOR_FOREGROUND, COLOR_BACKGROUND, COLOR_BACKGROUND_EVEN,
  COLOR_BACKGROUND_ODD, COLOR_DARK, COLOR_DARK_SHADOW, COLOR_DARK_GLINT,
  COLOR_LIGHT, COLOR_LIGHT_SHADOW, COLOR_LIGHT_GLINT, COLOR_FOCUS,
  COLOR_BLACK, COLOR_WHITE, COLOR_RED, COLOR_YELLOW,
  COLOR_GREEN, COLOR_CYAN, COLOR_BLUE, COLOR_MAGENTA
}
 Enum used to index various predefined colors.
enum  ColorSchemeType { COLOR_INHERIT, COLOR_NORMAL, COLOR_SELECTED, COLOR_BASE }
 Enum used to specify the color schemes of widgets. More...
enum  DirType {
  DIR_NONE, DIR_RIGHT, DIR_UP, DIR_LEFT,
  DIR_DOWN
}
enum  EllipsizeType { ELLIPSIZE_START, ELLIPSIZE_MIDDLE, ELLIPSIZE_END }
enum  FocusDirType {
  FOCUS_NEXT, FOCUS_PREV, FOCUS_RIGHT, FOCUS_UP,
  FOCUS_LEFT, FOCUS_DOWN
}
enum  FrameType {
  FRAME_NONE, FRAME_BACKGROUND, FRAME_IN, FRAME_OUT,
  FRAME_ETCHED_IN, FRAME_ETCHED_OUT, FRAME_FOCUS, FRAME_ALERT_FOCUS
}
enum  LightingType {
  LIGHTING_NONE, LIGHTING_UPPER_LEFT, LIGHTING_UPPER_RIGHT, LIGHTING_LOWER_LEFT,
  LIGHTING_LOWER_RIGHT, LIGHTING_CENTER, LIGHTING_DIFFUSE, LIGHTING_DARK_FLAG,
  LIGHTING_DARK_UPPER_LEFT, LIGHTING_DARK_UPPER_RIGHT, LIGHTING_DARK_LOWER_LEFT, LIGHTING_DARK_LOWER_RIGHT,
  LIGHTING_DARK_CENTER, LIGHTING_DARK_DIFFUSE
}
enum  SelectionMode { SELECTION_NONE, SELECTION_SINGLE, SELECTION_BROWSE, SELECTION_MULTIPLE }
enum  SizePolicyType { SIZE_POLICY_NORMAL, SIZE_POLICY_WIDTH_FROM_HEIGHT, SIZE_POLICY_HEIGHT_FROM_WIDTH }
enum  StateType {
  STATE_NORMAL, STATE_INSENSITIVE, STATE_PRELIGHT, STATE_IMPRESSED,
  STATE_FOCUS, STATE_DEFAULT
}
enum  TextMode { TEXT_MODE_WRAPPED, TEXT_MODE_ELLIPSIZED, TEXT_MODE_SINGLE_LINE }
enum  WindowType {
  WINDOW_TYPE_NORMAL, WINDOW_TYPE_DESKTOP, WINDOW_TYPE_DOCK, WINDOW_TYPE_TOOLBAR,
  WINDOW_TYPE_MENU, WINDOW_TYPE_UTILITY, WINDOW_TYPE_SPLASH, WINDOW_TYPE_DIALOG,
  WINDOW_TYPE_DROPDOWN_MENU, WINDOW_TYPE_POPUP_MENU, WINDOW_TYPE_TOOLTIP, WINDOW_TYPE_NOTIFICATION,
  WINDOW_TYPE_COMBO, WINDOW_TYPE_DND
}
enum  UpdateKind { UPDATE_READ, UPDATE_CHANGE, UPDATE_INSERTION, UPDATE_DELETION }
 Classification for element update request messages. More...
enum  TestEnum { TEST_ENUM_VALUE1, TEST_ENUM_VALUE2, TEST_ENUM_VALUE3 }
enum  CombineType {
  COMBINE_NORMAL, COMBINE_OVER, COMBINE_UNDER, COMBINE_ADD,
  COMBINE_DEL, COMBINE_ATOP, COMBINE_XOR, COMBINE_BLEND,
  COMBINE_VALUE
}
enum  SinfexOp {
  SINFEX_0, SINFEX_REAL, SINFEX_STRING, SINFEX_VARIABLE,
  SINFEX_ENTITY_VARIABLE, SINFEX_OR, SINFEX_AND, SINFEX_NOT,
  SINFEX_NEG, SINFEX_POS, SINFEX_ADD, SINFEX_SUB,
  SINFEX_MUL, SINFEX_DIV, SINFEX_POW, SINFEX_EQ,
  SINFEX_NE, SINFEX_LT, SINFEX_GT, SINFEX_LE,
  SINFEX_GE, SINFEX_ARG, SINFEX_FUNCTION
}

Functions

 sizeof (uint8)
 sizeof (int8)
 sizeof (int)
void printout_string (const String &string)
void printerr_string (const String &string)
void user_notice_string (const UserSource &source, const String &string)
void user_warning_string (const UserSource &source, const String &string)
bool envkey_flipper_check (const char *env_var, const char *key, bool with_all_toggle, volatile bool *cachep)
 Check whether a flipper (feature toggle) is enabled.
bool envkey_debug_check (const char *env_var, const char *key, volatile bool *cachep)
 Check whether to print debugging message.
void envkey_debug_message (const char *env_var, const char *key, const char *file, const int line, const String &message, volatile bool *cachep)
 Conditionally print debugging message.
void debug_message (char kind, const char *file, int line, const String &message)
void debug_fmessage (const char *file, int line, const String &message)
void debug_assert (const char *file, const int line, const char *message)
void debug_fassert (const char *file, const int line, const char *message)
void debug_envvar (const String &name)
 Parse environment variable name for debug configuration.
void debug_config_add (const String &option)
 Set debug configuration override.
void debug_config_del (const String &key)
 Unset debug configuration override.
String debug_config_get (const String &key, const String &default_value)
 Query debug configuration for option key, defaulting to default_value.
bool debug_config_bool (const String &key, bool default_value)
 Query debug configuration for option key, defaulting to default_value, return boolean.
bool debug_devel_check ()
 Check if debugging features for development versions should be enabled, see also $RAPICORN_DEBUG.
void rapicorn_debug (const char *key, const char *file, const int line, const String &msg)
 Issue debugging messages according to configuration.
bool rapicorn_debug_check (const char *key)
 Check if debugging is enabled for key.
template<class... Args>
void printout (const char *format, const Args &...args)
template<class... Args>
void printerr (const char *format, const Args &...args)
 Print a message on stderr (and flush stderr) ala printf(), using the POSIX/C locale.
template<class... Args>
void user_notice (const UserSource &source, const char *format, const Args &...args)
 Issue a notice about user resources, format uses printf-like syntax.
template<class... Args>
void user_warning (const UserSource &source, const char *format, const Args &...args)
 Issue a notice about user resources, format uses printf-like syntax.
 sizeof (PollFD)
 offsetof (PollFD, fd)
 sizeof (((PollFD *) 0)->fd)
 offsetof (PollFD, events)
 offsetof (PollFD, revents)
 ignore_errors_ (strchr(mode.c_str(), 'E')!=NULL)
 ignore_hangup_ (strchr(mode.c_str(), 'H')!=NULL)
 never_close_ (strchr(mode.c_str(), 'C')!=NULL)
 oneshot_ (false)
 bool_poll_slot_ (slot)
 oneshot_ (true)
 void_poll_slot_ (slot)
String rapicorn_version ()
String rapicorn_buildid ()
bool arg_parse_option (uint argc, char **argv, size_t *i, const char *arg)
 Try to parse argument arg at position i in argv.
bool arg_parse_string_option (uint argc, char **argv, size_t *i, const char *arg, const char **strp)
 Try to parse argument arg at position i in argv.
int arg_parse_collapse (int *argcp, char **argv)
 Collapse argv by eliminating NULL strings.
String program_file ()
 File name of the current process as set in argv[0] at startup.
String program_alias ()
 Provides a short name for the current process, usually the last part of argv[0].
String program_ident ()
 The program identifier app_ident as specified during initialization of Rapicorn.
String program_cwd ()
 The current working directory during startup.
bool init_core_initialized ()
 Check and return if init_core() has already been called.
void init_core (const String &app_ident, int *argcp, char **argv, const StringVector &args)
int dtoi32 (double d)
int64 dtoi64 (double d)
int64 iround (double d)
int64 ifloor (double d)
int64 iceil (double d)
int _dtoi32_generic (double d)
int64 _dtoi64_generic (double d)
void * aligned_alloc (size_t total_size, size_t alignment, uint8 **free_pointer)
 Allocate a block of memory aligned to at least alignment bytes.
void aligned_free (uint8 **free_pointer)
 Release a block of memory allocated through aligned_malloc().
int fmsb (uint64 val)
 The fmsb() function returns the position of the most significant bit set in the word val.
CPUInfo cpu_info (void)
String cpu_info_string (const CPUInfo &cpu_info)
const charrapicorn_gettext (const char *text)
String string_multiply (const String &s, uint64 count)
 Reproduce a string s for count times.
String string_canonify (const String &string, const String &valid_chars, const String &substitute)
 Enforce a canonical charset for a string.
String string_set_a2z ()
 Returns a string containing all of a-z.
String string_set_A2Z ()
 Returns a string containing all of A-Z.
String string_set_ascii_alnum ()
 Returns a string containing all of 0-9, A-Z and a-z.
String string_tolower (const String &str)
 Convert all string characters into Unicode lower case characters.
String string_toupper (const String &str)
 Convert all string characters into Unicode upper case characters.
String string_totitle (const String &str)
 Convert all string characters into Unicode title characters.
String string_cprintf (const char *format,...)
 Formatted printing ala printf() into a String, using the POSIX/C locale.
String string_locale_cprintf (const char *format,...)
 Formatted printing like string_cprintf using the current locale.
String string_vprintf (const char *format, va_list vargs)
 Formatted printing ala vprintf() into a String, using the POSIX/C locale.
String string_locale_vprintf (const char *format, va_list vargs)
 Formatted printing like string_vprintf using the current locale.
StringVector string_split (const String &string, const String &splitter)
 Split a string, using splitter as delimiter.
String string_join (const String &junctor, const StringVector &strvec)
 Join a number of strings.
bool string_to_bool (const String &string, bool fallback)
 Interpret a string as boolean value.
bool cstring_to_bool (const char *string, bool fallback)
String string_from_bool (bool value)
 Convert a boolean value into a string.
uint64 string_to_uint (const String &string, uint base)
 Parse a string into a 64bit unsigned integer, optionally specifying the expected number base.
String string_from_uint (uint64 value)
 Convert a 64bit unsigned integer into a string.
bool string_has_int (const String &string)
 Checks if a string contains a digit, optionally preceeded by whitespaces.
int64 string_to_int (const String &string, uint base)
 Parse a string into a 64bit integer, optionally specifying the expected number base.
String string_from_int (int64 value)
 Convert a 64bit signed integer into a string.
long double posix_locale_strtold (const char *nptr, char **endptr)
 Parse a double from a string ala strtod(), trying locale specific characters and POSIX/C formatting.
long double current_locale_strtold (const char *nptr, char **endptr)
 Parse a double from a string ala strtod(), trying locale specific characters and POSIX/C formatting.
double string_to_double (const String &string)
 Parse a double from a string, trying locale specific characters and POSIX/C formatting.
double string_to_double (const char *dblstring, const char **endptr)
 Similar to string_to_double(const String&), but returns the first failing character position in endptr.
String string_from_float (float value)
 Convert a float into a string, using the POSIX/C locale.
String string_from_double (double value)
 Convert a double into a string, using the POSIX/C locale.
vector< doublestring_to_double_vector (const String &string)
 Parse a string into a list of doubles, expects ';' as delimiter.
String string_from_double_vector (const vector< double > &dvec, const String &delim)
 Construct a string out of all double values passed in dvec, separated by delim.
String string_from_errno (int errno_val)
 Returns a String describing the passed in errno value, similar to strerror().
bool string_is_uuid (const String &uuid_string)
 Returns whether uuid_string contains a properly formatted UUID string.
int string_cmp_uuid (const String &uuid_string1, const String &uuid_string2)
 Returns whether uuid_string1 compares smaller (-1), equal (0) or greater (+1) to uuid_string2.
bool string_startswith (const String &string, const String &fragment)
 Returns whether string starts with fragment.
bool string_endswith (const String &string, const String &fragment)
 Returns whether string ends with fragment.
bool string_match_identifier_tail (const String &ident, const String &tail)
 Variant of string_match_identifier() that matches tail against ident at word boundary.
bool string_match_identifier (const String &ident1, const String &ident2)
 Check equality of strings canonicalized to "[0-9a-z_]+".
String string_from_pretty_function_name (const char *gnuc_pretty_function)
 Extract the full function name from __PRETTY_FUNCTION__.
String string_to_cescape (const String &str)
 Escape text like a C string.
String string_to_cquote (const String &str)
 Returns a string as C string including double quotes.
String string_from_cquote (const String &input)
 Parse a possibly quoted C string into regular string.
String string_lstrip (const String &input)
 Strip whitespaces from the left of a string.
String string_rstrip (const String &input)
 Strip whitespaces from the right of a string.
String string_strip (const String &input)
 Strip whitespaces from the left and right of a string.
String string_substitute_char (const String &input, const char match, const char subst)
 Replace all occouranes of match in input with subst.
String string_hexdump (const void *addr, size_t length, size_t initial_offset)
 Produce hexdump of a memory region.
void memset4 (uint32 *mem, uint32 filler, uint length)
 Fill a memory area with a 32-bit quantitiy.
String string_vector_find (const StringVector &svector, const String &key, const String &fallback)
 Search for key in svector and return reminder of the matching string.
StringVector cstrings_to_vector (const char *s,...)
 Construct a StringVector from a NULL terminated list of string arguments.
void string_options_split (const String &option_string, vector< String > &option_names, vector< String > &option_values, const String &empty_default)
 Split an option list string into name/value pairs.
String string_option_get (const String &option_string, const String &option)
 Retrieve the option value from an options list separated by ':' or ';'.
bool string_option_check (const String &option_string, const String &option)
 Check if an option is set/unset in an options list string.
bool text_convert (const String &to_charset, String &output_string, const String &from_charset, const String &input_string, const String &fallback_charset, const String &output_mark)
 Convert a string from one encoding to another.
const charstrerror ()
template<class... Args>
String string_format (const char *format, const Args &...args)
 Formatted printing ala printf() into a String, using the POSIX/C locale.
template<class... Args>
String string_locale_format (const char *format, const Args &...args)
 Formatted printing ala printf() into a String, using the current locale.
String string_from_float (double value)
double string_to_float (const String &string)
template<typename Type >
Type string_to_type (const String &string)
template<typename Type >
String string_from_type (Type value)
template<>
double string_to_type< double > (const String &string)
template<>
String string_from_type< double > (double value)
template<>
float string_to_type< float > (const String &string)
template<>
String string_from_type< float > (float value)
template<>
bool string_to_type< bool > (const String &string)
template<>
String string_from_type< bool > (bool value)
template<>
int16 string_to_type< int16 > (const String &string)
template<>
String string_from_type< int16 > (int16 value)
template<>
uint16 string_to_type< uint16 > (const String &string)
template<>
String string_from_type< uint16 > (uint16 value)
template<>
int string_to_type< int > (const String &string)
template<>
String string_from_type< int > (int value)
template<>
uint string_to_type< uint > (const String &string)
template<>
String string_from_type< uint > (uint value)
template<>
int64 string_to_type< int64 > (const String &string)
template<>
String string_from_type< int64 > (int64 value)
template<>
uint64 string_to_type< uint64 > (const String &string)
template<>
String string_from_type< uint64 > (uint64 value)
template<>
String string_to_type< String > (const String &string)
template<>
String string_from_type< String > (String value)
void init_core_test (const String &app_ident, int *argcp, char **argv, const StringVector &args)
 Initialize the Rapicorn toolkit core for a test program.
 next (NULL)
 pth_thread_id (pthread_self())
unichar utf8_to_unichar (const char *str)
int utf8_from_unichar (unichar uc, char str[8])
bool utf8_validate (const String &strng, int *bound)
const charutf8_next (const char *c)
charutf8_next (char *c)
const charutf8_prev (const char *c)
charutf8_prev (char *c)
const charutf8_find_next (const char *c, const char *bound=NULL)
charutf8_find_next (char *current, const char *bound=NULL)
const charutf8_find_prev (const char *start, const char *current)
charutf8_find_prev (const char *start, char *currrent)
const charutf8_align (const char *start, const char *current)
charutf8_align (const char *start, char *current)
bool utf8_aligned (const char *c)
String timestamp_format (uint64 stamp)
String pretty_file (const char *file_dir, const char *file)
std::vector< std::string > pretty_backtrace (uint level, size_t *parent_addr)
void debug_backtrace_snapshot (size_t key)
String debug_backtrace_showshot (size_t key)
String process_handle ()
bool url_test_show (const char *url)
void url_show (const char *url)
bool url_test_show_with_cookie (const char *url, const char *url_title, const char *cookie)
void url_show_with_cookie (const char *url, const char *url_title, const char *cookie)
void cleanup_force_handlers (void)
 Force all cleanup handlers (see rapicorn_cleanup_add()) to be immediately executed.
uint cleanup_add (guint timeout_ms, GDestroyNotify handler, void *data)
uint8zintern_decompress (unsigned int decompressed_size, const unsigned char *cdata, unsigned int cdata_size)
void zintern_free (uint8 *dc_data)
template<typename T >
const T & abs (const T &value)
template<typename T >
const T & clamp (const T &value, const T &minimum, const T &maximum)
template<class T , size_t S>
std::vector< T > vector_from_array (const T(&array_entries)[S])
 Construct a std::vector<T> from a C array of type T[].
void breakpoint ()
uint64 timestamp_startup ()
uint64 timestamp_realtime ()
uint64 timestamp_benchmark ()
uint64 timestamp_resolution ()
uint cleanup_add (uint timeout_ms, void(*destroy_data)(void *), void *data)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const BoolSeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, BoolSeq &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const StringSeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, StringSeq &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const AnySeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, AnySeq &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const AnySeqSeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, AnySeqSeq &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const PixelSeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, PixelSeq &self)
void operator<<= (Rapicorn::Aida::Any &any, const Pixbuf &rec)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const Pixbuf &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, Pixbuf &self)
void operator<<= (Rapicorn::Aida::Any &any, const UpdateSpan &rec)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const UpdateSpan &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, UpdateSpan &self)
void operator<<= (Rapicorn::Aida::Any &any, const UpdateRequest &rec)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const UpdateRequest &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, UpdateRequest &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const ListModelHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ListModelHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const ListModelRelayHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ListModelRelayHandle &handle)
void operator<<= (Rapicorn::Aida::Any &any, const Requisition &rec)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const Requisition &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, Requisition &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const WidgetSeq &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, WidgetSeq &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const WidgetHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WidgetHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const ContainerHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ContainerHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const ButtonAreaHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ButtonAreaHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const DrawableHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, DrawableHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const WidgetListHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WidgetListHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const WindowHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WindowHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &dst, const WindowList &self)
void operator>>= (Rapicorn::Aida::FieldReader &src, WindowList &self)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const ApplicationHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ApplicationHandle &handle)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, const IdlTestWidgetHandle &handle)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, IdlTestWidgetHandle &handle)
bool init_app_initialized ()
 Check and return if init_app() or init_test_app() has already been called.
ApplicationHandle init_app (const String &app_ident, int *argcp, char **argv, const StringVector &args)
 Initialize Rapicorn core via init_core(), and then starts a seperately running UI thread.
ApplicationHandle init_test_app (const String &app_ident, int *argcp, char **argv, const StringVector &args)
 Initialize Rapicorn like init_app(), and boots up the test suite framework.
void exit_app (int status)
 This function calls Application::shutdown() first, to properly terminate Rapicorn's concurrently running ui-thread, and then terminates the program via exit(3posix).
int64 client_app_test_hook ()
bool command_lib_exec (WidgetImpl &widget, const String &cmd_name, const StringSeq &args)
bool command_scan (const String &input, String *cmd_name, StringSeq *args)
String command_string_unquote (const String &input)
const charstring_from_event_type (EventType etype)
Eventcreate_event_transformed (const Event &source_event, const Affine &affine)
Eventcreate_event_cancellation (const EventContext &econtext)
EventMousecreate_event_mouse (EventType type, const EventContext &econtext)
EventButtoncreate_event_button (EventType type, const EventContext &econtext, uint button)
EventScrollcreate_event_scroll (EventType type, const EventContext &econtext)
EventFocuscreate_event_focus (EventType type, const EventContext &econtext)
EventKeycreate_event_key (EventType type, const EventContext &econtext, uint32 key, const char *name)
EventWinSizecreate_event_win_size (const EventContext &econtext, double width, double height, bool intermediate)
EventWinDeletecreate_event_win_delete (const EventContext &econtext)
EventWinDestroycreate_event_win_destroy (const EventContext &econtext)
bool key_value_is_modifier (uint32 keysym)
bool key_value_is_accelerator (uint32 keysym)
FocusDirType key_value_to_focus_dir (uint32 keysym)
bool key_value_is_focus_dir (uint32 keysym)
ActivateKeyType key_value_to_activation (uint32 keysym)
bool key_value_is_cancellation (uint32 keysym)
unichar key_value_to_unichar (uint32 keysym)
ApplicationH uithread_bootup (int *argcp, char **argv, const StringVector &args)
void uithread_shutdown ()
int64 server_app_test_hook ()
double degree (double radians)
double radians (double degree)
Point min (const Point &p1, const Point &p2)
Point max (const Point &p1, const Point &p2)
Point floor (const Point &s)
Point ceil (const Point &s)
Point round (const Point &s)
bool operator== (const Region &r1, const Region &r2)
 Compare two Region structures for equality.
bool operator!= (const Region &r1, const Region &r2)
 Compare two Region structures returns if these are unequal.
bool operator< (const Region &r1, const Region &r2)
 Provides linear ordering for regions.
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, ListModelIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ListModelIface *&obj)
ListModelIfaceoperator->* (ListModelHandle &sh, Rapicorn::Aida::_ServantType)
ListModelHandle operator->* (ListModelIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, ListModelRelayIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ListModelRelayIface *&obj)
ListModelRelayIfaceoperator->* (ListModelRelayHandle &sh, Rapicorn::Aida::_ServantType)
ListModelRelayHandle operator->* (ListModelRelayIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, WidgetIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WidgetIface *&obj)
WidgetIfaceoperator->* (WidgetHandle &sh, Rapicorn::Aida::_ServantType)
WidgetHandle operator->* (WidgetIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, ContainerIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ContainerIface *&obj)
ContainerIfaceoperator->* (ContainerHandle &sh, Rapicorn::Aida::_ServantType)
ContainerHandle operator->* (ContainerIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, ButtonAreaIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ButtonAreaIface *&obj)
ButtonAreaIfaceoperator->* (ButtonAreaHandle &sh, Rapicorn::Aida::_ServantType)
ButtonAreaHandle operator->* (ButtonAreaIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, DrawableIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, DrawableIface *&obj)
DrawableIfaceoperator->* (DrawableHandle &sh, Rapicorn::Aida::_ServantType)
DrawableHandle operator->* (DrawableIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, WidgetListIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WidgetListIface *&obj)
WidgetListIfaceoperator->* (WidgetListHandle &sh, Rapicorn::Aida::_ServantType)
WidgetListHandle operator->* (WidgetListIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, WindowIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, WindowIface *&obj)
WindowIfaceoperator->* (WindowHandle &sh, Rapicorn::Aida::_ServantType)
WindowHandle operator->* (WindowIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, ApplicationIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, ApplicationIface *&obj)
ApplicationIfaceoperator->* (ApplicationHandle &sh, Rapicorn::Aida::_ServantType)
ApplicationHandle operator->* (ApplicationIface *obj, Rapicorn::Aida::_HandleType)
void operator<<= (Rapicorn::Aida::FieldBuffer &fb, IdlTestWidgetIface *obj)
void operator>>= (Rapicorn::Aida::FieldReader &fbr, IdlTestWidgetIface *&obj)
IdlTestWidgetIfaceoperator->* (IdlTestWidgetHandle &sh, Rapicorn::Aida::_ServantType)
IdlTestWidgetHandle operator->* (IdlTestWidgetIface *obj, Rapicorn::Aida::_HandleType)
MainLoopuithread_main_loop ()
bool uithread_is_current ()
void uithread_test_trigger (void(*test_func)())
double min (double a, int64 b)
double min (int64 a, double b)
double max (double a, int64 b)
double max (int64 a, double b)
template<class Derived , class Base >
void assert_derived_from (void)
template<class Derived , class Base >
bool is_derived ()
template<typename Value >
PointerIterator< Value > pointer_iterator (Value *const val)
template<typename Value >
bool operator== (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
bool operator!= (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
bool operator< (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
bool operator<= (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
bool operator> (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
bool operator>= (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
PointerIterator< Value >
::difference_type 
operator- (const PointerIterator< Value > &x, const PointerIterator< Value > &y)
template<typename Value >
PointerIterator< Value > operator+ (typename PointerIterator< Value >::difference_type n, const PointerIterator< Value > &x)
template<class Iterator >
ValueIterator< Iterator > value_iterator (const Iterator &iter)
template<class Iterator >
bool operator== (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
bool operator!= (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
bool operator< (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
bool operator<= (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
bool operator> (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
bool operator>= (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
ValueIterator< Iterator >
::difference_type 
operator- (const ValueIterator< Iterator > &x, const ValueIterator< Iterator > &y)
template<class Iterator >
ValueIterator< Iterator > operator+ (typename ValueIterator< Iterator >::difference_type n, const ValueIterator< Iterator > &x)
template<class Iterator >
IteratorRange< Iterator > iterator_range (const Iterator &begin, const Iterator &end)
template<class Iterator >
ValueIteratorRange< Iterator > value_iterator_range (const Iterator &begin, const Iterator &end)
template<class Container >
Walker< const typename
Container::const_iterator::value_type > 
walker (const Container &container)
template<class Container >
Walker< typename
Container::iterator::value_type > 
walker (Container &container)
template<class Container >
Walker< typename Dereference
< const typename
Container::const_iterator::value_type >
::Value > 
value_walker (const Container &container)
template<class Container >
Walker< typename Dereference
< typename
Container::iterator::value_type >
::Value > 
value_walker (Container &container)
template<class Iterator >
Walker< typename
Iterator::value_type > 
walker (const Iterator &begin, const Iterator &end)
template<class Iterator >
Walker< typename Dereference
< typename
Iterator::value_type >::Value > 
value_walker (const Iterator &begin, const Iterator &end)
bool operator== (const WidgetImpl &widget1, const WidgetImpl &widget2)
bool operator!= (const WidgetImpl &widget1, const WidgetImpl &widget2)

Variables

bool volatile _rapicorn_debug_check_cache
struct Rapicorn::RECURSIVE_LOCK RECURSIVE_LOCK
 Flag for recursive Mutex initialization.
struct Rapicorn::AUTOMATIC_LOCK AUTOMATIC_LOCK
 Flag for automatic locking of a ScopedLock<Mutex>.
struct Rapicorn::BALANCED_LOCK BALANCED_LOCK
 Flag for balancing unlock/lock in a ScopedLock<Mutex>.
const int8 utf8_skip_table [256]
 CHAR_BIT
 SCHAR_MIN
 SCHAR_MAX
 UCHAR_MAX
 SHRT_MIN
 SHRT_MAX
 USHRT_MAX
 INT_MIN
 INT_MAX
 UINT_MAX
 INT64_MIN
 INT64_MAX
 UINT64_MAX
 LDBL_MIN<=1E-37);1(LDBL_MAX >
Const MAXINT32
Const MAXINT31
Const MININT31
const std::nothrow_t dothrow

Detailed Description

The Rapicorn namespace encompasses core utilities and toolkit functionality.

The core utilities are available via including <rapicorn-core.hh> and the toolkit functionality can be included via <rapicorn.hh>.


Typedef Documentation

typedef long long signed int Rapicorn::LongIffy

LongIffy, ULongIffy, CastIffy, UCastIffy - types for 32bit/64bit overloading.

On 64bit, int64_t is aliased to "long int" which is 64 bit wide. On 32bit, int64_t is aliased to "long long int", which is 64 bit wide (and long is 32bit wide). For int-type function overloading, this means that int32, int64 and either "long" or "long long" need to be overloaded, depending on platform. To aid this case, LongIffy and ULongIffy are defined to signed and unsigned "long" (for 32bit) and "long long" (for 64bit). Correspondingly, CastIffy and UCastIffy are defined to signed and unsigned int32 (for 32bit) or int64 (for 64bit), so LongIffy can be cast losslessly into a known type.


Enumeration Type Documentation

Enum used to specify the color schemes of widgets.

Enumerator:
COLOR_INHERIT 

Inherit color from parent component.

COLOR_NORMAL 

Normal color specification.

COLOR_SELECTED 

Color used for selected areas.

COLOR_BASE 

Color used for text or scroll fields.

Enumerator:
SELECTION_NONE 

No selection possible.

SELECTION_SINGLE 

Allow selection toggling of a single widget.

SELECTION_BROWSE 

Browse by always forcing a single selected widget.

SELECTION_MULTIPLE 

Allow arbitrary combinations of selected widgets.

Classification for element update request messages.

Enumerator:
UPDATE_READ 

Indicates an element range read request.

UPDATE_CHANGE 

Indicates element range changes.

UPDATE_INSERTION 

Indicates element range insertions.

UPDATE_DELETION 

Indicates deletion of a range of elements.

Enumerator:
WINDOW_TYPE_NORMAL 

Normal window.

WINDOW_TYPE_DESKTOP 

Desktop background.

WINDOW_TYPE_DOCK 

Dock or panel.

WINDOW_TYPE_TOOLBAR 

Torn-off toolbar.

WINDOW_TYPE_MENU 

Torn-off menu.

WINDOW_TYPE_UTILITY 

Palette or toolbox.

WINDOW_TYPE_SPLASH 

Startup/splash screen.

WINDOW_TYPE_DIALOG 

Dialog window, usually transient.

WINDOW_TYPE_DROPDOWN_MENU 

Menu, opened from menubar.

WINDOW_TYPE_POPUP_MENU 

Menu, opened as context menu.

WINDOW_TYPE_TOOLTIP 

Transient context info window.

WINDOW_TYPE_NOTIFICATION 

Transient info window (e.g. info bubble)

WINDOW_TYPE_COMBO 

Combo box menu or list window.

WINDOW_TYPE_DND 

Window for dragged during DND operations.


Function Documentation

int Rapicorn::arg_parse_collapse ( int argcp,
char **  argv 
)

Collapse argv by eliminating NULL strings.

Returns:
Number of collapsed arguments.
bool Rapicorn::arg_parse_option ( uint  argc,
char **  argv,
size_t i,
const char arg 
)

Try to parse argument arg at position i in argv.

If successfull, i is incremented and the argument is set to NULL.

Returns:
true if successfull.
bool Rapicorn::arg_parse_string_option ( uint  argc,
char **  argv,
size_t i,
const char arg,
const char **  strp 
)

Try to parse argument arg at position i in argv.

If successfull, i is incremented and the argument and possibly the next option argument are set to NULL.

Returns:
true if successfull and the string option in strp.
uint Rapicorn::cleanup_add ( guint  timeout_ms,
GDestroyNotify  handler,
void *  data 
)
Parameters:
timeout_mstimeout in milliseconds
handlercleanup handler to run
datacleanup handler data

Register a cleanup handler, the handler is guaranteed to be run asyncronously (i.e. not from within cleanup_add()). The cleanup handler will be called as soon as timeout_ms has elapsed or cleanup_force_handlers() is called.

Force all cleanup handlers (see rapicorn_cleanup_add()) to be immediately executed.

This function should be called at program exit to execute cleanup handlers which have timeouts that have not yet expired.

bool Rapicorn::envkey_debug_check ( const char env_var,
const char key,
volatile bool *  cachep 
)

Check whether to print debugging message.

This function first checks the environment variable env_var for key, if the key is present, 'all' is present or if env_var is NULL, the debugging message will be printed. A NULL key checks for general debugging, it's equivalent to passing "debug" as key. The cachep argument may point to a caching variable which is reset to 0 if env_var is empty (so no debugging is enabled), so the caching variable can be used to prevent unneccessary future debugging calls, e.g. to envkey_debug_message().

void Rapicorn::envkey_debug_message ( const char env_var,
const char key,
const char file,
const int  line,
const String &  message,
volatile bool *  cachep 
)

Conditionally print debugging message.

This function first checks whether debugging is enabled via envkey_debug_check() and returns if not. The arguments file_path and line are used to denote the debugging message source location, format and va_args are formatting the message analogously to vprintf().

bool Rapicorn::envkey_flipper_check ( const char env_var,
const char key,
bool  with_all_toggle,
volatile bool *  cachep 
)

Check whether a flipper (feature toggle) is enabled.

This function first checks the environment variable env_var for key, if it is present or if with_all_toggle is true and 'all' is present, the function returns true, otherwise false. The cachep argument may point to a caching variable which is reset to 0 if env_var is empty (i.e. no features can be enabled), so the caching variable can be used to prevent unneccessary future envkey_flipper_check() calls.

void Rapicorn::exit_app ( int  status)

This function calls Application::shutdown() first, to properly terminate Rapicorn's concurrently running ui-thread, and then terminates the program via exit(3posix).

This function does not return.

Parameters:
statusThe exit status returned to the parent process.
int Rapicorn::fmsb ( uint64  val)

The fmsb() function returns the position of the most significant bit set in the word val.

The least significant bit is position 1 and the most significant position is, for example, 32 or 64.

Returns:
The position of the most significant bit set is returned, or 0 if no bits were set.
ApplicationH Rapicorn::init_app ( const String app_ident,
int argcp,
char **  argv,
const StringVector args 
)

Initialize Rapicorn core via init_core(), and then starts a seperately running UI thread.

This UI thread initializes all UI related components and the global Application object. After initialization, it enters the main event loop for UI processing.

Parameters:
app_identIdentifier for this application, this is used to distinguish persistent application resources and window configurations from other applications.
argcpPointer to argc as passed into main().
argvThe argv argument as passed into main().
argsInternal initialization arguments, see init_core() for details.
void Rapicorn::init_core ( const String &  app_ident,
int argcp,
char **  argv,
const StringVector &  args 
)
Parameters:
app_identApplication identifier, used to associate persistent resources
argcplocation of the 'argc' argument to main()
argvlocation of the 'argv' arguments to main()
argsprogram specific initialization values

Initialize the Rapicorn toolkit core, including threading, CPU detection, loading resource libraries, etc. The arguments passed in argcp and argv are parsed and any Rapicorn specific arguments are stripped. If 'rapicorn-test-initialization=1' is passed in args, these command line arguments are supported:

  • --test-verbose - Execute test cases with verbose message generation.
  • --test-readout - Execute only data driven test cases to verify readouts.
  • --test-slow - Execute only test cases excercising slow code paths or loops.

Additional initialization arguments can be passed in args, currently supported are:

  • autonomous - Flag indicating a self-contained runtime environment (e.g. for tests) without loading rc-files, etc.
  • cpu-affinity - CPU# to bind rapicorn thread to.
  • rapicorn-test-initialization - Enable testing framework, used by init_core_test(), see also $RAPICORN_TEST.
  • test-verbose - acts like --test-verbose.
  • test-readout - acts like --test-readout.
  • test-slow - acts like --test-slow.

Additionally, the $RAPICORN environment variable affects toolkit behaviour. It supports multiple colon (':') separated options (options can be prfixed with 'no-' to disable):

  • debug - Enables verbose debugging output (default=off).
  • fatal-syslog - Fatal program conditions that lead to aborting are recorded via syslog (default=on).
  • syslog - Critical and warning conditions are recorded via syslog (default=off).
  • fatal-warnings - Critical and warning conditions are treated as fatal conditions (default=off).
  • logfile=FILENAME - Record all messages and conditions into FILENAME.
void Rapicorn::init_core_test ( const String &  app_ident,
int argcp,
char **  argv,
const StringVector &  args 
)

Initialize the Rapicorn toolkit core for a test program.

Initialize the Rapicorn toolkit core to execute unit tests. Calling this function is equivalent to calling init_core() with args "autonomous=1" and "rapicorn-test-initialization=1". See also $RAPICORN_TEST.

ApplicationH Rapicorn::init_test_app ( const String app_ident,
int argcp,
char **  argv,
const StringVector args 
)

Initialize Rapicorn like init_app(), and boots up the test suite framework.

Normally, Test::run() should be called next to execute all unit tests.

template<class... Args>
void Rapicorn::printout ( const char format,
const Args &...  args 
)

Print a message on stdout (and flush stdout) ala printf(), using the POSIX/C locale.

Provides a short name for the current process, usually the last part of argv[0].

See also GNU Libc program_invocation_short_name.

void Rapicorn::rapicorn_debug ( const char key,
const char file,
const int  line,
const String &  msg 
)

Issue debugging messages according to configuration.

Checks the environment variable $RAPICORN_DEBUG for key like rapicorn_debug_check(), and issues a debugging message with source location file_path and line. The message format uses printf-like syntax.

bool Rapicorn::rapicorn_debug_check ( const char key)

Check if debugging is enabled for key.

This function checks if $RAPICORN_DEBUG contains key or "all" and returns true if debugging is enabled for the given key.

String Rapicorn::string_canonify ( const String &  string,
const String &  valid_chars,
const String &  substitute 
)

Enforce a canonical charset for a string.

Convert all chars in string that are not listed as valid_chars with substitute.

String Rapicorn::string_from_pretty_function_name ( const char gnuc_pretty_function)

Extract the full function name from __PRETTY_FUNCTION__.

See also RAPICORN_SIMPLE_FUNCTION.

String Rapicorn::string_hexdump ( const void *  addr,
size_t  length,
size_t  initial_offset 
)

Produce hexdump of a memory region.

Each output line consists of its hexadecimal offset, 16 hexadecimal bytes and the ASCII representation of the same 16 bytes.

String Rapicorn::string_join ( const String &  junctor,
const StringVector &  strvec 
)

Join a number of strings.

Join a string vector into a single string, using junctor inbetween each pair of strings.

StringVector Rapicorn::string_split ( const String &  string,
const String &  splitter 
)

Split a string, using splitter as delimiter.

Passing "" as splitter will split the string at whitespace positions.

bool Rapicorn::string_to_bool ( const String &  string,
bool  fallback 
)

Interpret a string as boolean value.

Interpret the string as number, "ON"/"OFF" or distinguish "false"/"true" or "yes"/"no" by starting letter. For empty strings, fallback is returned.

String Rapicorn::string_to_cescape ( const String &  str)

Escape text like a C string.

Returns a string that escapes all characters with a backslash '\' that need escaping in C language string syntax.

String Rapicorn::string_vector_find ( const StringVector &  svector,
const String &  key,
const String &  fallback 
)

Search for key in svector and return reminder of the matching string.

If multiple matches are possible, the last one is returned.

Returns:
fallback if no match was found.
bool Rapicorn::text_convert ( const String &  to_charset,
String &  output_string,
const String &  from_charset,
const String &  input_string,
const String &  fallback_charset,
const String &  output_mark 
)

Convert a string from one encoding to another.

Convert input_string from encoding from_charset to to_charset, returning output_string. Interpret unknown characters according to fallback_charset. Use output_mark in place of unconvertible characters. Returns whether the conversion was successful.

uint8 * Rapicorn::zintern_decompress ( unsigned int  decompressed_size,
const unsigned char cdata,
unsigned int  cdata_size 
)
Parameters:
decompressed_sizeexact size of the decompressed data to be returned
cdatacompressed data block
cdata_sizeexact size of the compressed data block
Returns:
decompressed data block or NULL in low memory situations

Decompress the data from cdata of length cdata_size into a newly allocated block of size decompressed_size which is returned. The returned block needs to be freed with g_free(). This function is intended to decompress data which has been compressed with the rapicorn-zintern utility, so no errors should occour during decompression. Consequently, if any error occours during decompression or if the resulting data block is of a size other than decompressed_size, the program will abort with an appropriate error message. If not enough memory could be allocated for decompression, NULL is returned.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines