Rapicorn - Experimental UI Toolkit  16.0.0
Rapicorn Namespace Reference

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

Namespaces

 Aida
 The Aida namespace provides all IDL functionality exported to C++.
 
 AnsiColors
 The AnsiColors namespace contains utility functions for colored terminal output.
 
 Path
 The Path namespace provides functions for file path manipulation and testing.
 
 Svg
 The Rapicorn::Svg namespace provides functions for handling and rendering of SVG files and elements.
 
 Test
 The Test namespace offers utilities for unit tests.
 
 ThisThread
 The ThisThread namespace provides functions for the current thread of execution.
 
 Unicode
 The Unicode namespace provides support for the Unicode standard and UTF-8 encoding.
 

Classes

class  Adjustment
 
class  AdjustmentSource
 
class  Affine
 
struct  AffineHFlip
 
struct  AffineIdentity
 
struct  AffineRotate
 
struct  AffineScale
 
struct  AffineShear
 
struct  AffineTranslate
 
struct  AffineVFlip
 
class  AlignedArray
 Class to maintain an array of aligned memory. More...
 
interface  Alignment
 The Alignment layout container allows adding of extra padding around its child. More...
 
class  AlignmentHandle
 See also the corresponding IDL class Alignment. More...
 
class  AlignmentIface
 See also the corresponding IDL class Alignment. More...
 
class  AlignmentImpl
 
interface  Ambience
 The Ambience container provides its single child with state dependant background painting. More...
 
class  AmbienceHandle
 See also the corresponding IDL class Ambience. More...
 
class  AmbienceIface
 See also the corresponding IDL class Ambience. More...
 
class  AmbienceImpl
 
struct  AnchorInfo
 
struct  AnySeq
 A sequence of Any objects. More...
 
struct  AnySeqSeq
 A sequence of AnySeq sequence objects, useful when multiple AnySeq instances are needed. More...
 
interface  Application
 Application singleton. More...
 
class  ApplicationHandle
 See also the corresponding IDL class Application. More...
 
class  ApplicationIface
 See also the corresponding IDL class Application. More...
 
class  ApplicationImpl
 
interface  Arrangement
 The Arrangement layout container allows coordinate driven free form positioning of children. More...
 
class  ArrangementHandle
 See also the corresponding IDL class Arrangement. More...
 
class  ArrangementIface
 See also the corresponding IDL class Arrangement. More...
 
class  ArrangementImpl
 
interface  Arrow
 The Arrow widget paints a single arrow with configurable direction. More...
 
class  ArrowHandle
 See also the corresponding IDL class Arrow. More...
 
class  ArrowIface
 See also the corresponding IDL class Arrow. More...
 
class  ArrowImpl
 
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...
 
struct  AUTOMATIC_LOCK
 
class  AutoSeeder
 AutoSeeder provides non-deterministic seeding entropy. More...
 
struct  BALANCED_LOCK
 
class  BinadableAccessor
 BinadableAccessor - A client side driver object that uses the BindableIface API on behalf of a BindableRelay. More...
 
class  BindableAdaptor
 BindableAdaptor - Glue template to implement the BindableIface for client objects that don't derive BindableIface. More...
 
class  BindableAdaptor< std::shared_ptr< Source > >
 BindableAdaptor specialisation for std::shared_ptr<>. More...
 
class  BindableAdaptor< std::weak_ptr< Source > >
 BindableAdaptor specialisation for std::weak_ptr<>. More...
 
class  BindableAdaptorBase
 BindableAdaptorBase - Base template for BindableAdaptor. More...
 
struct  BindableIface
 BindableIface - An interface implemented by custom user objects to be accessible to data bindings. More...
 
interface  BindableRelay
 BinadbleRelay - A server side relay to provide the BindableIface API for client objects to servants. More...
 
class  BindableRelayHandle
 See also the corresponding IDL class BindableRelay. More...
 
class  BindableRelayIface
 See also the corresponding IDL class BindableRelay. More...
 
class  BindableRelayImpl
 
class  Binding
 Binding class to bind an instance property to another object's property. More...
 
class  Blob
 Binary data access for builtin resources and files. More...
 
struct  BoolSeq
 A sequence of booleans. More...
 
interface  ButtonArea
 The ButtonArea container provides an area with the ability to process button clicks. More...
 
class  ButtonAreaHandle
 See also the corresponding IDL class ButtonArea. More...
 
class  ButtonAreaIface
 See also the corresponding IDL class ButtonArea. More...
 
class  ButtonAreaImpl
 
class  CheckDerivedFrom
 
struct  CheckDerivedFrom< Child *, Base * >
 
struct  ClassDoctor
 ClassDoctor (used for private class copies), use discouraged. More...
 
struct  ClnT_AnySeq
 
struct  ClnT_AnySeqSeq
 
struct  ClnT_BoolSeq
 
struct  ClnT_Pixbuf
 
struct  ClnT_PixelSeq
 
struct  ClnT_Requisition
 
struct  ClnT_StringSeq
 
struct  ClnT_UpdateRequest
 
struct  ClnT_UpdateSpan
 
struct  ClnT_WidgetSeq
 
struct  ClnT_WindowList
 
class  Color
 
struct  Command
 
struct  CommandArg
 
struct  CommandData
 
struct  CommandDataArg
 
struct  CommandList
 
class  Cond
 The Cond synchronization primitive is a thin wrapper around pthread_cond_wait(). More...
 
interface  Container
 Container is a special type of Widget that can contain other widgets. More...
 
class  ContainerHandle
 See also the corresponding IDL class Container. More...
 
class  ContainerIface
 See also the corresponding IDL class Container. More...
 
struct  ContainerImpl
 
class  CPainter
 Cairo painting helper class. More...
 
class  DataKey
 DataKey objects are used to identify and manage custom data members of DataListContainer objects. More...
 
class  DataList
 
class  DataListContainer
 DataListContainer - typesafe storage and retrieval of arbitrary members. More...
 
struct  Dereference
 
struct  Dereference< const Type * >
 
struct  Dereference< const Type *const >
 
struct  Dereference< Type * >
 
struct  Dereference< Type *const >
 
struct  DerivesSharedPtr
 DerivesSharedPtr<T> - Check if T derives from std::shared_ptr<>. More...
 
struct  DerivesSharedPtr< T, Rapicorn::void_t< typename T::element_type > >
 
struct  DerivesVector
 DerivesVector<T> - Check if T derives from std::vector<>. More...
 
struct  DerivesVector< T, void_t< typename T::value_type, typename T::allocator_type > >
 
class  DispatcherSource
 EventLoop source for timer execution. More...
 
struct  DisplayCommand
 Structure for internal asynchronous communication between DisplayWindow and DisplayDriver. More...
 
class  DisplayDriver
 Management class for DisplayWindow driver implementations. More...
 
struct  DisplayDriverFactory
 Template for factory registration of DisplayDriver implementations. More...
 
class  DisplayWindow
 Interface class for managing window contents on screens and display devices. More...
 
interface  DotGrid
 The DotGrid widget paints a configurable set of dots arranged in a grid. More...
 
class  DotGridHandle
 See also the corresponding IDL class DotGrid. More...
 
class  DotGridIface
 See also the corresponding IDL class DotGrid. More...
 
class  DotGridImpl
 
interface  Drawable
 The Drawable widget allows display of custom graphics. More...
 
class  DrawableHandle
 See also the corresponding IDL class Drawable. More...
 
class  DrawableIface
 See also the corresponding IDL class Drawable. More...
 
class  DrawableImpl
 
class  DurableInstance
 Create an instance of Class on demand that is constructed and never destructed. More...
 
interface  ElementPainter
 The ElementPainter widget displays state dependent SVG image elements and places its child within the fill area. More...
 
class  ElementPainterHandle
 See also the corresponding IDL class ElementPainter. More...
 
class  ElementPainterIface
 See also the corresponding IDL class ElementPainter. More...
 
class  ElementPainterImpl
 
struct  EnforceDerivedFrom
 
struct  EnforceDerivedFrom< Derived *, Base * >
 
struct  Evaluator
 Simple infix expression parser and evaluator. More...
 
class  Event
 
class  EventButton
 
struct  EventContext
 
class  EventData
 
class  EventHandler
 
class  EventKey
 
class  EventLoop
 Loop object, polling for events and executing callbacks in accordance. More...
 
class  EventSource
 EventLoop source for callback execution. More...
 
struct  EventWinSize
 
struct  Exception
 
class  Exclusive
 Exclusive<> is a type wrapper that provides non-racy atomic access to a copyable Type. More...
 
interface  FocusFrame
 The FocusFrame container decorates its single child depending on whether its descendants have focus. More...
 
class  FocusFrameHandle
 See also the corresponding IDL class FocusFrame. More...
 
class  FocusFrameIface
 See also the corresponding IDL class FocusFrame. More...
 
class  FocusFrameImpl
 
class  FocusIndicator
 
interface  FocusPainter
 The FocusPainter container decorates its single child according to focus changes. More...
 
class  FocusPainterHandle
 See also the corresponding IDL class FocusPainter. More...
 
class  FocusPainterIface
 See also the corresponding IDL class FocusPainter. More...
 
class  FocusPainterImpl
 
interface  Frame
 The Frame container decorates its single child with a state dependant frame drawing. More...
 
class  FrameHandle
 See also the corresponding IDL class Frame. More...
 
class  FrameIface
 See also the corresponding IDL class Frame. More...
 
class  FrameImpl
 
struct  FriendAllocator
 A std::make_shared<>() wrapper class to access private ctor & dtor. More...
 
class  FromAnyFieldsVisitor
 Visitor to construct a visitable class from an Any::FieldVector. More...
 
class  FromAnyVectorVisitor
 Visitor to construct an Any::AnyVector from a visitable class. More...
 
class  FromIniVisitor
 Visitor to construct a visitable class from an INI file. More...
 
class  FromXmlVisitor
 Visitor to construct a visitable class from XML nodes. More...
 
struct  Has__accept__
 Has__accept__<T,Visitor> - Check if T provides a member template accept<>(Visitor). More...
 
struct  Has__accept__< T, V, void_t< decltype(std::declval< T >().template __accept__< V >(*(V *) NULL)) > >
 
struct  Has__accept_accessor__
 Has__accept_accessor__<T,Visitor> - Check if T provides a member template accept_accessor<>(Visitor). More...
 
struct  Has__accept_accessor__< T, V, void_t< decltype(std::declval< T >().template __accept_accessor__< V >(*(V *) NULL)) > >
 
struct  Has__aida_from_any__
 Has__aida_from_any__<T> - Check if T provides a member aida_from_any(const Any&). More...
 
struct  Has__aida_from_any__< T, void_t< decltype(std::declval< T >().__aida_from_any__(Aida::Any())) > >
 
struct  Has__aida_to_any__
 Has__aida_to_any__<T> - Check if T provides a member Has__aida_to_any__(). More...
 
struct  Has__aida_to_any__< T, void_t< decltype(std::declval< T >().__aida_to_any__()) > >
 
interface  HBox
 The HBox layout container arranges its children horizontally. More...
 
class  HBoxHandle
 See also the corresponding IDL class HBox. More...
 
class  HBoxIface
 See also the corresponding IDL class HBox. More...
 
class  HBoxImpl
 
class  Heritage
 
class  IdAllocator
 Class for randomized and thread safe ID allocation. More...
 
interface  IdlTestWidget
 A widget used exclusively for unit testing. More...
 
class  IdlTestWidgetHandle
 See also the corresponding IDL class IdlTestWidget. More...
 
class  IdlTestWidgetIface
 See also the corresponding IDL class IdlTestWidget. More...
 
class  IdlTestWidgetImpl
 
interface  Image
 Image widgets are used to display pixel or vector images. More...
 
class  ImageHandle
 See also the corresponding IDL class Image. More...
 
class  ImageIface
 See also the corresponding IDL class Image. More...
 
class  ImageImpl
 
class  ImagePainter
 Image painting and transformation. More...
 
class  IniFile
 Class to parse INI configuration file sections and values. More...
 
struct  Init
 Simple helper class to call one-line lambda initializers as static constructor. More...
 
class  InitSettings
 
class  IniWriter
 Class to write INI configuration file sections and values. More...
 
struct  IRect
 
struct  IsComparable
 IsComparable<T> - Check if type T is comparable for equality. More...
 
struct  IsComparable< T, void_t< decltype(std::declval< T >()==std::declval< T >()) > >
 
struct  IsSharedPtr
 IsSharedPtr<T> - Check if a type T is a std::shared_ptr<>. More...
 
struct  IsSharedPtr< std::shared_ptr< T > >
 
struct  IsWeakPtr
 IsWeakPtr<T> - Check if a type T is a std::weak_ptr<>. More...
 
struct  IsWeakPtr< std::weak_ptr< T > >
 
class  IteratorRange
 
class  KeccakCryptoRng
 KeccakCryptoRng - A KeccakF1600 based cryptographic quality pseudo-random number generator. More...
 
class  KeccakFastRng
 KeccakFastRng - A KeccakF1600 based fast pseudo-random number generator. More...
 
class  KeccakGoodRng
 KeccakGoodRng - A KeccakF1600 based good quality pseudo-random number generator. More...
 
class  KeccakRng
 KeccakRng - A KeccakF1600 based pseudo-random number generator. More...
 
interface  Label
 A widget for text display. More...
 
class  LabelHandle
 See also the corresponding IDL class Label. More...
 
class  LabelIface
 See also the corresponding IDL class Label. More...
 
class  LabelImpl
 
interface  LayerPainter
 The LayerPainter container allows rendering widgets on top of each other. More...
 
class  LayerPainterHandle
 See also the corresponding IDL class LayerPainter. More...
 
class  LayerPainterIface
 See also the corresponding IDL class LayerPainter. More...
 
class  LayerPainterImpl
 
interface  ListModel
 A row-oriented data provider. More...
 
class  ListModelHandle
 See also the corresponding IDL class ListModel. More...
 
class  ListModelIface
 See also the corresponding IDL class ListModel. More...
 
interface  ListModelRelay
 Adapter for ListModel classes. More...
 
class  ListModelRelayHandle
 See also the corresponding IDL class ListModelRelay. More...
 
class  ListModelRelayIface
 See also the corresponding IDL class ListModelRelay. More...
 
class  ListModelRelayImpl
 
struct  ListRow
 
struct  LoopState
 
class  MainLoop
 An EventLoop implementation that offers public API for running the loop. More...
 
class  MarkupParser
 Simple XML markup parser, based on glib/gmarkup.c. More...
 
class  MemoryListStore
 
class  MultiContainerImpl
 
class  Mutex
 The Mutex synchronization primitive is a thin wrapper around std::mutex. More...
 
struct  NullPointer
 
interface  Object
 Base class for all interface types. More...
 
class  ObjectHandle
 See also the corresponding IDL class Object. More...
 
class  ObjectIface
 See also the corresponding IDL class Object. More...
 
class  ObjectImpl
 ObjectImpl is the base type for all server side objects in Rapicorn and implements the IDL base type ObjectIface. More...
 
struct  ParagraphState
 Configurable aspects about text paragraphs. More...
 
class  Pcg32Rng
 Pcg32Rng is a permutating linear congruential PRNG. More...
 
struct  Pixbuf
 Pixbuf is a simple pixel buffer. More...
 
struct  PixelSeq
 A sequence of ARGB pixel values. More...
 
class  PixmapT
 Pixmap (PixmapT) is a Pixbuf wrapper template which provides various pixel operations. More...
 
class  Point
 
class  PointerIterator
 
struct  PollFD
 Mirrors struct pollfd for poll(3posix) More...
 
class  PollFDSource
 EventLoop source for IO callbacks. More...
 
class  QuickTimer
 The QuickTimer class allows fast timer expiration checks from inner loops. More...
 
class  Rect
 
struct  RECURSIVE_LOCK
 
class  Region
 The Region class manages areas defined through a list of rectangles. More...
 
struct  RemoveSharedPtr
 Provide the member typedef type which is the element_type of the shared_ptr type T. More...
 
struct  RemoveSharedPtr< const ::std::shared_ptr< T > >
 
struct  RemoveSharedPtr< const volatile::std::shared_ptr< T > >
 
struct  RemoveSharedPtr< volatile::std::shared_ptr< T > >
 
struct  RemoveSharedPtr<::std::shared_ptr< T > >
 
struct  Requisition
 Requisition information, providing requisition width and height. More...
 
class  Res
 Res provides access to resource files at runtime, see also rapidres(1). More...
 
class  ResizeContainerImpl
 
class  RWLock
 The RWLock allows multiple readers to simultaneously access a critical code section or one writer. More...
 
class  ScopedLocale
 Class to push a specific locale_t for the scope of its lifetime. More...
 
class  ScopedLock
 The ScopedLock is a scope based lock ownership wrapper. More...
 
class  ScopedPosixLocale
 Class to push the POSIX/C locale_t (UTF-8) for the scope of its lifetime. More...
 
interface  ScrollArea
 The ScrollArea container can display its child paritally and scroll to different parts. More...
 
class  ScrollAreaHandle
 See also the corresponding IDL class ScrollArea. More...
 
class  ScrollAreaIface
 See also the corresponding IDL class ScrollArea. More...
 
class  ScrollAreaImpl
 
class  ScrollPortImpl
 
struct  SHA3_224
 SHA3_224 - 224 Bit digest generation. More...
 
struct  SHA3_256
 SHA3_256 - 256 Bit digest generation. More...
 
struct  SHA3_384
 SHA3_384 - 384 Bit digest generation. More...
 
struct  SHA3_512
 SHA3_512 - 512 Bit digest generation. More...
 
struct  SHAKE128
 SHAKE128 - 128 Bit extendable output digest generation. More...
 
struct  SHAKE256
 SHAKE256 - 256 Bit extendable output digest generation. More...
 
class  Sinfex
 
class  SingleContainerImpl
 
class  SizeGroup
 
interface  SliderArea
 The SliderArea container serves as control area for a slider trough and skid. More...
 
class  SliderAreaHandle
 See also the corresponding IDL class SliderArea. More...
 
class  SliderAreaIface
 See also the corresponding IDL class SliderArea. More...
 
class  SliderAreaImpl
 
interface  SliderSkid
 The SliderSkid widget indicates the current slider position within a SliderArea. More...
 
class  SliderSkidHandle
 See also the corresponding IDL class SliderSkid. More...
 
class  SliderSkidIface
 See also the corresponding IDL class SliderSkid. More...
 
class  SliderSkidImpl
 
interface  SliderTrough
 The SliderTrough container reflects the range of possible slider values, it contains the SliderSkid. More...
 
class  SliderTroughHandle
 See also the corresponding IDL class SliderTrough. More...
 
class  SliderTroughIface
 See also the corresponding IDL class SliderTrough. More...
 
class  SliderTroughImpl
 
class  Spinlock
 The Spinlock uses low-latency busy spinning to acquire locks. More...
 
struct  SrvT_AnySeq
 
struct  SrvT_AnySeqSeq
 
struct  SrvT_BoolSeq
 
struct  SrvT_Pixbuf
 
struct  SrvT_PixelSeq
 
struct  SrvT_Requisition
 
struct  SrvT_StringSeq
 
struct  SrvT_UpdateRequest
 
struct  SrvT_UpdateSpan
 
struct  SrvT_WidgetSeq
 
struct  SrvT_WindowList
 
struct  StdVectorValueHandle
 Special case handling for std::vector<> value references due to std::vector<bool> oddities. More...
 
struct  StdVectorValueHandle<::std::vector< bool > >
 Special case handling for std::vector<bool> elements which provide no bool& references. More...
 
class  Stock
 Stock resource retrieval facility. More...
 
class  Strings
 Convenience Constructor for StringSeq or std::vector<std::string> More...
 
struct  StringSeq
 A sequence of strings (in C++ of std::string). More...
 
class  StyleImpl
 
interface  Table
 The Table layout container allows to arrange widgets in rows and columns. More...
 
class  TableHandle
 See also the corresponding IDL class Table. More...
 
class  TableIface
 See also the corresponding IDL class Table. More...
 
class  TableImpl
 
class  TableLayoutImpl
 
struct  TaskStatus
 Acquire information about a task (process or thread) at runtime. More...
 
interface  TestBox
 A container used for snapshooting and unit testing. More...
 
class  TestBoxHandle
 See also the corresponding IDL class TestBox. More...
 
class  TestBoxIface
 See also the corresponding IDL class TestBox. More...
 
class  TestBoxImpl
 
interface  TestContainer
 A container used exclusively for unit testing. More...
 
class  TestContainerHandle
 See also the corresponding IDL class TestContainer. More...
 
class  TestContainerIface
 See also the corresponding IDL class TestContainer. More...
 
class  TestContainerImpl
 
class  TestStream
 
struct  TextAttrState
 Configurable aspects about text characters. More...
 
class  TextBlock
 Interface for editable text widgets. More...
 
class  TextControllerImpl
 Text layout controller supporting edits, selection and pasting. More...
 
interface  TextEditor
 A widget for text display, editing, selecting and pasting. More...
 
class  TextEditorHandle
 See also the corresponding IDL class TextEditor. More...
 
class  TextEditorIface
 See also the corresponding IDL class TextEditor. More...
 
class  TextEditorImpl
 
class  ThemeInfo
 
struct  ThreadInfo
 Class keeping information per Thread. More...
 
class  TimedSource
 EventLoop source for timer execution. More...
 
class  ToAnyFieldsVisitor
 Visitor to construct an Any::FieldVector from a visitable class. More...
 
class  ToAnyVectorVisitor
 Visitor to construct an Any::AnyVector from a visitable class. More...
 
class  ToIniVisitor
 Visitor to generate an INI file from a visitable class. More...
 
class  ToXmlVisitor
 Visitor to generate XML nodes from a visitable class. More...
 
struct  UpdateRequest
 Structure describing an update for a list or table. More...
 
struct  UpdateSpan
 Structure identifying an index span. More...
 
struct  UserSource
 < Helper structure to capture the origin of a user message. More...
 
struct  ValueIterator
 
class  ValueIteratorRange
 
interface  VBox
 The VBox layout container arranges its children vertically. More...
 
class  VBoxHandle
 See also the corresponding IDL class VBox. More...
 
class  VBoxIface
 See also the corresponding IDL class VBox. More...
 
class  VBoxImpl
 
class  ViewportImpl
 
class  VisitorDispatcher
 Base template for Visitor classes, dispatches operator() to visit_<type>() methods. More...
 
interface  Widget
 Widget is the base type for all UI elements. More...
 
class  WidgetFactory
 
class  WidgetGroup
 
class  WidgetHandle
 See also the corresponding IDL class Widget. More...
 
class  WidgetIface
 See also the corresponding IDL class Widget. More...
 
class  WidgetImpl
 WidgetImpl is the base type for all UI element implementations and implements the Widget interface. More...
 
interface  WidgetList
 A list widget containing scrollable and selectable widgets. More...
 
class  WidgetListHandle
 See also the corresponding IDL class WidgetList. More...
 
class  WidgetListIface
 See also the corresponding IDL class WidgetList. More...
 
class  WidgetListImpl
 
interface  WidgetListRow
 A container for WidgetList rows. More...
 
class  WidgetListRowHandle
 See also the corresponding IDL class WidgetListRow. More...
 
class  WidgetListRowIface
 See also the corresponding IDL class WidgetListRow. More...
 
class  WidgetListRowImpl
 
struct  WidgetSeq
 A sequence of Widget objects. More...
 
interface  Window
 Window represents the toplevel onscreen widget. More...
 
class  WindowHandle
 See also the corresponding IDL class Window. More...
 
class  WindowIface
 See also the corresponding IDL class Window. More...
 
class  WindowImpl
 
struct  WindowList
 A sequence of Window objects. More...
 
class  XmlNode
 Simple XML tree representation. More...
 

Typedefs

typedef std::shared_ptr< BindableIface::BindableNotifySignal > BindableNotifySignalP
 
typedef std::shared_ptr< BindableIfaceBindableIfaceP
 
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>.
 
template<class... >
using void_t = void
 Template to map all type arguments to void, useful for SFINAE. More...
 
template<bool value>
using REQUIRES = typename::std::enable_if< value, bool >::type
 REQUIRES<value> - Simplified version of std::enable_if<> to use SFINAE in function templates.
 
template<class T >
using IsBool = ::std::is_same< bool, typename::std::remove_cv< T >::type >
 IsBool<T> - Check if T is of type 'bool'.
 
template<class T >
using IsInteger = ::std::integral_constant< bool,!IsBool< T >::value &&::std::is_integral< T >::value >
 IsInteger<T> - Check if T is of integral type (except bool).
 
template<class T >
using DerivesString = typename std::is_base_of<::std::string, T >
 DerivesString<T> - Check if T is of type 'std::string'.
 
typedef std::shared_ptr< EventSourceEventSourceP
 
typedef std::shared_ptr< TimedSourceTimedSourceP
 
typedef std::shared_ptr< PollFDSourcePollFDSourceP
 
typedef std::shared_ptr< DispatcherSourceDispatcherSourceP
 
typedef std::shared_ptr< EventLoopEventLoopP
 
typedef std::shared_ptr< MainLoopMainLoopP
 
typedef MarkupParser::Error MarkupError
 
typedef MarkupParser::ErrorType MarkupErrorType
 
typedef MarkupParser::Context MarkupParserContext
 
typedef std::shared_ptr< XmlNodeXmlNodeP
 
typedef std::weak_ptr< XmlNodeXmlNodeW
 
typedef std::shared_ptr< AdjustmentAdjustmentP
 
typedef std::weak_ptr< AdjustmentAdjustmentW
 
typedef std::shared_ptr< ApplicationImplApplicationImplP
 
typedef std::shared_ptr< BindingBindingP
 Pointer type to manage Binding objects as shared_ptr.
 
typedef ObjectHandle ObjectH
 Convenience alias for the IDL type Object.
 
typedef BindableRelayHandle BindableRelayH
 Convenience alias for the IDL type BindableRelay.
 
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 WindowHandle WindowH
 Convenience alias for the IDL type Window.
 
typedef ArrangementHandle ArrangementH
 Convenience alias for the IDL type Arrangement.
 
typedef AlignmentHandle AlignmentH
 Convenience alias for the IDL type Alignment.
 
typedef FrameHandle FrameH
 Convenience alias for the IDL type Frame.
 
typedef FocusFrameHandle FocusFrameH
 Convenience alias for the IDL type FocusFrame.
 
typedef AmbienceHandle AmbienceH
 Convenience alias for the IDL type Ambience.
 
typedef TableHandle TableH
 Convenience alias for the IDL type Table.
 
typedef HBoxHandle HBoxH
 Convenience alias for the IDL type HBox.
 
typedef VBoxHandle VBoxH
 Convenience alias for the IDL type VBox.
 
typedef ButtonAreaHandle ButtonAreaH
 Convenience alias for the IDL type ButtonArea.
 
typedef ScrollAreaHandle ScrollAreaH
 Convenience alias for the IDL type ScrollArea.
 
typedef SliderAreaHandle SliderAreaH
 Convenience alias for the IDL type SliderArea.
 
typedef SliderTroughHandle SliderTroughH
 Convenience alias for the IDL type SliderTrough.
 
typedef SliderSkidHandle SliderSkidH
 Convenience alias for the IDL type SliderSkid.
 
typedef ArrowHandle ArrowH
 Convenience alias for the IDL type Arrow.
 
typedef DotGridHandle DotGridH
 Convenience alias for the IDL type DotGrid.
 
typedef DrawableHandle DrawableH
 Convenience alias for the IDL type Drawable.
 
typedef LayerPainterHandle LayerPainterH
 Convenience alias for the IDL type LayerPainter.
 
typedef ImageHandle ImageH
 Convenience alias for the IDL type Image.
 
typedef ElementPainterHandle ElementPainterH
 Convenience alias for the IDL type ElementPainter.
 
typedef FocusPainterHandle FocusPainterH
 Convenience alias for the IDL type FocusPainter.
 
typedef LabelHandle LabelH
 Convenience alias for the IDL type Label.
 
typedef TextEditorHandle TextEditorH
 Convenience alias for the IDL type TextEditor.
 
typedef WidgetListRowHandle WidgetListRowH
 Convenience alias for the IDL type WidgetListRow.
 
typedef WidgetListHandle WidgetListH
 Convenience alias for the IDL type WidgetList.
 
typedef ApplicationHandle ApplicationH
 Convenience alias for the IDL type Application.
 
typedef IdlTestWidgetHandle IdlTestWidgetH
 Convenience alias for the IDL type IdlTestWidget.
 
typedef TestBoxHandle TestBoxH
 Convenience alias for the IDL type TestBox.
 
typedef TestContainerHandle TestContainerH
 Convenience alias for the IDL type TestContainer.
 
typedef ClnT_BoolSeq BoolSeq
 
typedef ClnT_StringSeq StringSeq
 
typedef ClnT_AnySeq AnySeq
 
typedef ClnT_AnySeqSeq AnySeqSeq
 
typedef ClnT_PixelSeq PixelSeq
 
typedef ClnT_Pixbuf Pixbuf
 
typedef ClnT_UpdateSpan UpdateSpan
 
typedef ClnT_UpdateRequest UpdateRequest
 
typedef ClnT_Requisition Requisition
 
typedef ClnT_WidgetSeq WidgetSeq
 
typedef ClnT_WindowList WindowList
 
typedef std::shared_ptr< AppSource > AppSourceP
 
typedef std::shared_ptr< CommandCommandP
 
typedef vector< WidgetGroupPWidgetGroups
 
typedef Evaluator::VariableMapList VariableMapList
 
typedef Event EventMouse
 
typedef Event EventScroll
 
typedef Event EventFocus
 
typedef Event EventWinDelete
 
typedef Event EventWinDestroy
 
typedef Color(* ColorFunc) (WidgetState, ColorType)
 
typedef Heritage::HeritageP HeritageP
 
typedef std::shared_ptr< WidgetListRowImplWidgetListRowImplP
 
typedef std::shared_ptr< ListModelRelayImplListModelRelayImplP
 
typedef std::weak_ptr< ListModelRelayImplListModelRelayImplW
 
typedef std::shared_ptr< MemoryListStoreMemoryListStoreP
 
typedef std::weak_ptr< MemoryListStoreMemoryListStoreW
 
typedef std::shared_ptr< ObjectIfaceObjectIfaceP
 
typedef std::shared_ptr< ObjectImplObjectImplP
 
typedef std::weak_ptr< ObjectIfaceObjectIfaceW
 
typedef std::shared_ptr< BindableRelayIfaceBindableRelayIfaceP
 
typedef std::weak_ptr< BindableRelayIfaceBindableRelayIfaceW
 
typedef std::shared_ptr< ListModelIfaceListModelIfaceP
 
typedef std::weak_ptr< ListModelIfaceListModelIfaceW
 
typedef std::shared_ptr< ListModelRelayIfaceListModelRelayIfaceP
 
typedef std::weak_ptr< ListModelRelayIfaceListModelRelayIfaceW
 
typedef std::shared_ptr< WidgetIfaceWidgetIfaceP
 
typedef std::weak_ptr< WidgetIfaceWidgetIfaceW
 
typedef std::shared_ptr< ContainerIfaceContainerIfaceP
 
typedef std::weak_ptr< ContainerIfaceContainerIfaceW
 
typedef std::shared_ptr< WindowIfaceWindowIfaceP
 
typedef std::weak_ptr< WindowIfaceWindowIfaceW
 
typedef std::shared_ptr< ArrangementIfaceArrangementIfaceP
 
typedef std::weak_ptr< ArrangementIfaceArrangementIfaceW
 
typedef std::shared_ptr< AlignmentIfaceAlignmentIfaceP
 
typedef std::weak_ptr< AlignmentIfaceAlignmentIfaceW
 
typedef std::shared_ptr< FrameIfaceFrameIfaceP
 
typedef std::weak_ptr< FrameIfaceFrameIfaceW
 
typedef std::shared_ptr< FocusFrameIfaceFocusFrameIfaceP
 
typedef std::weak_ptr< FocusFrameIfaceFocusFrameIfaceW
 
typedef std::shared_ptr< AmbienceIfaceAmbienceIfaceP
 
typedef std::weak_ptr< AmbienceIfaceAmbienceIfaceW
 
typedef std::shared_ptr< TableIfaceTableIfaceP
 
typedef std::weak_ptr< TableIfaceTableIfaceW
 
typedef std::shared_ptr< HBoxIfaceHBoxIfaceP
 
typedef std::weak_ptr< HBoxIfaceHBoxIfaceW
 
typedef std::shared_ptr< VBoxIfaceVBoxIfaceP
 
typedef std::weak_ptr< VBoxIfaceVBoxIfaceW
 
typedef std::shared_ptr< ButtonAreaIfaceButtonAreaIfaceP
 
typedef std::weak_ptr< ButtonAreaIfaceButtonAreaIfaceW
 
typedef std::shared_ptr< ScrollAreaIfaceScrollAreaIfaceP
 
typedef std::weak_ptr< ScrollAreaIfaceScrollAreaIfaceW
 
typedef std::shared_ptr< SliderAreaIfaceSliderAreaIfaceP
 
typedef std::weak_ptr< SliderAreaIfaceSliderAreaIfaceW
 
typedef std::shared_ptr< SliderTroughIfaceSliderTroughIfaceP
 
typedef std::weak_ptr< SliderTroughIfaceSliderTroughIfaceW
 
typedef std::shared_ptr< SliderSkidIfaceSliderSkidIfaceP
 
typedef std::weak_ptr< SliderSkidIfaceSliderSkidIfaceW
 
typedef std::shared_ptr< ArrowIfaceArrowIfaceP
 
typedef std::weak_ptr< ArrowIfaceArrowIfaceW
 
typedef std::shared_ptr< DotGridIfaceDotGridIfaceP
 
typedef std::weak_ptr< DotGridIfaceDotGridIfaceW
 
typedef std::shared_ptr< DrawableIfaceDrawableIfaceP
 
typedef std::weak_ptr< DrawableIfaceDrawableIfaceW
 
typedef std::shared_ptr< LayerPainterIfaceLayerPainterIfaceP
 
typedef std::weak_ptr< LayerPainterIfaceLayerPainterIfaceW
 
typedef std::shared_ptr< ImageIfaceImageIfaceP
 
typedef std::weak_ptr< ImageIfaceImageIfaceW
 
typedef std::shared_ptr< ElementPainterIfaceElementPainterIfaceP
 
typedef std::weak_ptr< ElementPainterIfaceElementPainterIfaceW
 
typedef std::shared_ptr< FocusPainterIfaceFocusPainterIfaceP
 
typedef std::weak_ptr< FocusPainterIfaceFocusPainterIfaceW
 
typedef std::shared_ptr< LabelIfaceLabelIfaceP
 
typedef std::weak_ptr< LabelIfaceLabelIfaceW
 
typedef std::shared_ptr< TextEditorIfaceTextEditorIfaceP
 
typedef std::weak_ptr< TextEditorIfaceTextEditorIfaceW
 
typedef std::shared_ptr< WidgetListRowIfaceWidgetListRowIfaceP
 
typedef std::weak_ptr< WidgetListRowIfaceWidgetListRowIfaceW
 
typedef std::shared_ptr< WidgetListIfaceWidgetListIfaceP
 
typedef std::weak_ptr< WidgetListIfaceWidgetListIfaceW
 
typedef std::shared_ptr< ApplicationIfaceApplicationIfaceP
 
typedef std::weak_ptr< ApplicationIfaceApplicationIfaceW
 
typedef std::shared_ptr< IdlTestWidgetIfaceIdlTestWidgetIfaceP
 
typedef std::weak_ptr< IdlTestWidgetIfaceIdlTestWidgetIfaceW
 
typedef std::shared_ptr< TestBoxIfaceTestBoxIfaceP
 
typedef std::weak_ptr< TestBoxIfaceTestBoxIfaceW
 
typedef std::shared_ptr< TestContainerIfaceTestContainerIfaceP
 
typedef std::weak_ptr< TestContainerIfaceTestContainerIfaceW
 
typedef std::shared_ptr< SinfexSinfexP
 
typedef std::weak_ptr< SinfexSinfexW
 
typedef std::shared_ptr< WidgetGroupWidgetGroupP
 
typedef std::weak_ptr< WidgetGroupWidgetGroupW
 
typedef std::shared_ptr< SizeGroupSizeGroupP
 
typedef std::weak_ptr< SizeGroupSizeGroupW
 
typedef std::shared_ptr< StyleImplStyleImplP
 
typedef std::shared_ptr< ThemeInfoThemeInfoP
 
typedef std::shared_ptr< TextBlockTextBlockP
 
typedef std::shared_ptr< ServerConnectionSource > ServerConnectionSourceP
 
typedef vector< NamedAny > NamedAnyVector
 
typedef vector< BindingPBindingVector
 
typedef Rect Allocation
 
typedef std::shared_ptr< ContainerImplContainerImplP
 
typedef std::weak_ptr< ContainerImplContainerImplW
 
typedef std::shared_ptr< WidgetImplWidgetImplP
 
typedef std::weak_ptr< WidgetImplWidgetImplW
 
typedef std::shared_ptr< WindowImplWindowImplP
 
typedef std::weak_ptr< WindowImplWindowImplW
 
typedef long long signed int LongIffy
 LongIffy, ULongIffy, CastIffy, UCastIffy - types for 32bit/64bit overloading. More...
 
typedef long long unsigned int ULongIffy
 
typedef int64_t CastIffy
 
typedef uint64_t UCastIffy
 

Enumerations

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
 Common key values, all starting with KEY_, see ui/keysymbols.hh.
 
enum  ActivateKeyType { ACTIVATE_NONE, ACTIVATE_FOCUS, ACTIVATE_DEFAULT }
 
enum  ContentSourceType { CONTENT_SOURCE_SELECTION, CONTENT_SOURCE_CLIPBOARD }
 
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,
  CONTENT_DATA, CONTENT_CLEAR, CONTENT_REQUEST, SCROLL_UP,
  SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT, CANCEL_EVENTS,
  WIN_SIZE, WIN_DELETE, WIN_DESTROY, EVENT_LAST
}
 
enum  AdjustmentSourceType { NONE, ANCESTRY_HORIZONTAL, ANCESTRY_VERTICAL, ANCESTRY_VALUE }
 Enum used to specify how adjustments are picked from Widget ancestry. More...
 
enum  Align { LEFT, CENTER, RIGHT }
 Enum generally used for text paragraph alignments.
 
enum  Anchor {
  NONE, CENTER, EAST, NORTH_EAST,
  NORTH, NORTH_WEST, WEST, SOUTH_WEST,
  SOUTH, SOUTH_EAST
}
 Enum to specify an anchoring point for graphical elements. More...
 
enum  Click {
  ON_PRESS, ON_RELEASE, SLOW_REPEAT, FAST_REPEAT,
  KEY_REPEAT
}
 Enum to specify button click behaviour.
 
enum  ColorType {
  NONE, FOREGROUND, BACKGROUND, BACKGROUND_EVEN,
  BACKGROUND_ODD, DARK, DARK_SHADOW, DARK_GLINT,
  LIGHT, LIGHT_SHADOW, LIGHT_GLINT, FOCUS,
  BLACK, WHITE, RED, YELLOW,
  GREEN, CYAN, BLUE, MAGENTA
}
 Enum used to index various predefined colors. More...
 
enum  ColorScheme { INHERIT, NORMAL, SELECTED, BASE }
 Enum used to specify the color schemes of a Widget. More...
 
enum  Direction {
  NONE, RIGHT, UP, LEFT,
  DOWN
}
 Enum type for directional elements like arrows. More...
 
enum  Ellipsize { START, MIDDLE, END }
 Enum type for text ellipsization.
 
enum  FocusDir {
  NONE, NEXT, PREV, RIGHT,
  UP, LEFT, DOWN
}
 Enum values used to navigate the focus chain. More...
 
enum  DrawFrame {
  NONE, BACKGROUND, IN, OUT,
  ETCHED_IN, ETCHED_OUT, FOCUS, ALERT_FOCUS
}
 Enum type to discriminate various Frame widget types. More...
 
enum  Lighting {
  NONE, UPPER_LEFT, UPPER_RIGHT, LOWER_LEFT,
  LOWER_RIGHT, CENTER, DIFFUSE, DARK_FLAG,
  DARK_UPPER_LEFT, DARK_UPPER_RIGHT, DARK_LOWER_LEFT, DARK_LOWER_RIGHT,
  DARK_CENTER, DARK_DIFFUSE
}
 Enum with various lighting types. More...
 
enum  SelectionMode { NONE, SINGLE, BROWSE, MULTIPLE }
 Enum type for list widget selection behaviour. More...
 
enum  SizePolicy { NORMAL, WIDTH_FROM_HEIGHT, HEIGHT_FROM_WIDTH }
 Enum policy type for sizing trade offs. More...
 
enum  WidgetState {
  NORMAL, HOVER, PANEL, ACCELERATABLE,
  DEFAULT, SELECTED, FOCUSED, INSENSITIVE,
  ACTIVE, RETAINED, RESERVED1, RESERVED2,
  RESERVED3
}
 Enum flags type to indicate Widget states. More...
 
enum  WindowType {
  NORMAL, DESKTOP, DOCK, TOOLBAR,
  MENU, UTILITY, SPLASH, DIALOG,
  DROPDOWN_MENU, POPUP_MENU, TOOLTIP, NOTIFICATION,
  COMBO, DND
}
 Enum type to discriminate various toplevel Window types. More...
 
enum  UpdateKind { READ, CHANGE, INSERTION, DELETION }
 Classification for element update request messages. More...
 
enum  TestEnum { VALUE1, VALUE2, VALUE3 }
 An enum used exclusively for unit testing.
 
enum  CombineType {
  COMBINE_NORMAL, COMBINE_OVER, COMBINE_UNDER, COMBINE_ADD,
  COMBINE_DEL, COMBINE_ATOP, COMBINE_XOR, COMBINE_BLEND,
  COMBINE_VALUE
}
 
enum  TextMode { TEXT_MODE_WRAPPED, TEXT_MODE_ELLIPSIZED, TEXT_MODE_SINGLE_LINE }
 < Enum type to discriminate various Text widget types.
 
enum  WidgetGroupType { WIDGET_GROUP_HSIZE, WIDGET_GROUP_VSIZE }
 

Functions

template<class Source >
void bindable_accessor_get (const BindableIface &paccessible, const String &bpath, Any &any, Source &)
 Global function template to be overridden to implement non-intrusive property getters via BindableAdaptor.
 
template<class Source >
void bindable_accessor_set (const BindableIface &paccessible, const String &bpath, const Any &any, Source &)
 Global function template to be overridden to implement non-intrusive property setters via BindableAdaptor.
 
template<class Target , class Source >
std::shared_ptr< typename std::remove_pointer< Target >::type > shared_ptr_cast (Source *object)
 Shorthand for std::dynamic_pointer_cast<>(shared_from_this()). More...
 
template<class Target , class Source >
const std::shared_ptr< typename std::remove_pointer< Target >::type > shared_ptr_cast (const Source *object)
 See shared_ptr_cast(Source*).
 
template<class Target , class Source >
std::shared_ptr< typename std::remove_pointer< Target >::type > shared_ptr_cast (std::shared_ptr< Source > &sptr)
 See shared_ptr_cast(Source*).
 
template<class Target , class Source >
const std::shared_ptr< typename std::remove_pointer< Target >::type > shared_ptr_cast (const std::shared_ptr< Source > &sptr)
 See shared_ptr_cast(Source*).
 
String cxx_demangle (const char *mangled_identifier)
 Demangle a std::typeinfo.name() string into a proper C++ type name. More...
 
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_feature_check (const char *env_var, const char *key, bool vdefault, volatile bool *cachep, bool include_all)
 Check whether a feature is enabled, use envkey_flipper_check() instead. More...
 
bool envkey_flipper_check (const char *env_var, const char *key, bool vdefault, volatile bool *cachep)
 Check whether a flipper (feature toggle) is enabled. More...
 
bool envkey_debug_check (const char *env_var, const char *key, volatile bool *cachep)
 Check whether to print debugging message. More...
 
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. More...
 
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. More...
 
bool rapicorn_debug_check (const char *key)
 Check if debugging is enabled for key. More...
 
template<class... Args>
void printout (const char *format, const Args &...args)
 Print a message on stdout (and flush stdout) ala printf(), using the POSIX/C locale.
 
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.
 
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. More...
 
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. More...
 
int arg_parse_collapse (int *argcp, char **argv)
 Collapse argv by eliminating NULL strings. More...
 
bool parse_init_args (int *argcp, char **argv, const StringVector &args)
 Parse Rapicorn initialization arguments and adjust global settings. More...
 
String program_argv0 ()
 File name of the current process as set in argv[0] at startup.
 
void program_argv0_init (const char *argv0)
 
String program_name ()
 Formal name of the program, used to retrieve resources and store session data.
 
String program_alias ()
 Provide short name for the current process. More...
 
String program_cwd ()
 The current working directory during startup.
 
String application_name ()
 Application name suitable for user interface display.
 
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. More...
 
String cpu_info ()
 Retrieve string identifying the runtime CPU type. More...
 
void collect_runtime_entropy (uint64 *data, size_t n)
 To provide good quality random number seeds, this function gathers entropy from a variety of process specific sources. More...
 
void collect_system_entropy (uint64 *data, size_t n)
 This function adds to collect_runtime_entropy() by collecting entropy from aditional but potentially slower system sources, such as interrupt counters, disk + network statistics, system load, execution + pipelining + scheduling latencies and device MACs. More...
 
void sha3_224_hash (const void *data, size_t data_length, uint8_t hashvalue[28])
 Calculate 224 bit SHA3 digest from data, see also class SHA3_224.
 
void sha3_256_hash (const void *data, size_t data_length, uint8_t hashvalue[32])
 Calculate 256 bit SHA3 digest from data, see also class SHA3_256.
 
void sha3_384_hash (const void *data, size_t data_length, uint8_t hashvalue[48])
 Calculate 384 bit SHA3 digest from data, see also class SHA3_384.
 
void sha3_512_hash (const void *data, size_t data_length, uint8_t hashvalue[64])
 Calculate 512 bit SHA3 digest from data, see also class SHA3_512.
 
void shake128_hash (const void *data, size_t data_length, uint8_t *hashvalues, size_t n)
 Calculate SHA3 extendable output digest for 128 bit security strength, see also class SHAKE128.
 
void shake256_hash (const void *data, size_t data_length, uint8_t *hashvalues, size_t n)
 Calculate SHA3 extendable output digest for 256 bit security strength, see also class SHAKE256.
 
uint64_t random_int64 ()
 Generate a non-deterministic, uniformly distributed 64 bit pseudo-random number. More...
 
int64_t random_irange (int64_t begin, int64_t end)
 Generate uniformly distributed pseudo-random integer within range. More...
 
double random_float ()
 Generate uniformly distributed pseudo-random floating point number. More...
 
double random_frange (double begin, double end)
 Generate uniformly distributed pseudo-random floating point number within a range. More...
 
uint64_t random_nonce ()
 Provide a unique 64 bit identifier that is not 0, see also random_int64().
 
void random_secret (uint64_t *secret_var)
 Generate a secret non-zero nonce in secret_var, unless it has already been assigned.
 
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. More...
 
bool string_is_canonified (const String &string, const String &valid_chars)
 Check if string_canonify() would modify 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_capitalize (const String &str, size_t maxn)
 Capitalize words, so the first letter is upper case, the rest lower case.
 
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, size_t maxn)
 Split a string, using splitter as delimiter. More...
 
StringVector string_split_any (const String &string, const String &splitchars, size_t maxn)
 Split a string, using any of the splitchars as delimiter. More...
 
void string_vector_erase_empty (StringVector &svector)
 Remove empty elements from a string vector.
 
void string_vector_lstrip (StringVector &svector)
 Left-strip all elements of a string vector, see string_lstrip().
 
void string_vector_rstrip (StringVector &svector)
 Right-strip all elements of a string vector, see string_rstrip().
 
void string_vector_strip (StringVector &svector)
 Strip all elements of a string vector, see string_strip().
 
String string_join (const String &junctor, const StringVector &strvec)
 Join a number of strings. More...
 
bool string_to_bool (const String &string, bool fallback)
 Interpret a string as boolean value. More...
 
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, size_t *consumed, 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, size_t *consumed, 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. More...
 
String string_to_cescape (const String &str)
 Escape text like a C string. More...
 
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_replace (const String &input, const String &marker, const String &replacement, size_t maxn)
 Replace substring marker in input with replacement, at most maxn times.
 
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. More...
 
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 &prefix, const String &fallback)
 Search for prefix in svector and return the matching element. More...
 
String string_vector_find_value (const StringVector &svector, const String &prefix, const String &fallback)
 Search for prefix in svector and return reminder of the matching string. More...
 
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. More...
 
const charstrerror ()
 
const charrapicorn_gettext (const char *text)
 
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)
 Convert a string to template argument type, such as bool, int, double.
 
template<typename Type >
String string_from_type (Type value)
 Create a string from a templated argument value, such as bool, int, double.
 
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 &application, int *argcp, char **argv, const StringVector &args)
 Initialize the Rapicorn toolkit core for a test program. More...
 
unichar utf8_to_unichar (const char *str)
 
int utf8_from_unichar (unichar uc, char str[8])
 
bool utf8_validate (const String &strng, int *bound)
 
bool utf8_is_locale_charset ()
 Check wether the current locale uses an UTF-8 charset. More...
 
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)
 
uint64 timestamp_startup ()
 Provides the timestamp_realtime() value from program startup. More...
 
uint64 timestamp_realtime ()
 Return the current time as uint64 in µseconds. More...
 
uint64 timestamp_resolution ()
 Provides resolution of timestamp_benchmark() in nano-seconds. More...
 
uint64 timestamp_benchmark ()
 Returns benchmark timestamp in nano-seconds, clock starts around program startup. More...
 
String timestamp_format (uint64 stamp)
 
uint64 monotonic_counter ()
 A monotonically increasing counter, increments are atomic and visible on all threads.
 
String pretty_file (const char *file_dir, const char *file)
 
std::vector< std::stringpretty_backtrace (uint level, size_t *parent_addr)
 
void debug_backtrace_snapshot (size_t key)
 
String debug_backtrace_showshot (size_t key)
 
bool url_show (const char *url)
 
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 ()
 
template<class Visitable >
Any any_from_visitable (Visitable &visitable)
 
template<class Visitable >
void any_to_visitable (const Any &any, Visitable &visitable)
 
template<class Vector >
Any any_from_sequence (Vector &vector)
 
template<class Vector >
void any_to_sequence (const Any &any, Vector &vector)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_BoolSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_BoolSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_StringSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_StringSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_AnySeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_AnySeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_AnySeqSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_AnySeqSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_PixelSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_PixelSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_Pixbuf &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_Pixbuf &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_UpdateSpan &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_UpdateSpan &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_UpdateRequest &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_UpdateRequest &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_Requisition &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_Requisition &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_WidgetSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_WidgetSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const ClnT_WindowList &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, ClnT_WindowList &self)
 
ApplicationHandle init_app (const String &application_name, int *argcp, char **argv, const StringVector &args)
 Initialize Rapicorn and the main Application object. More...
 
ApplicationHandle init_test_app (const String &application_name, int *argcp, char **argv, const StringVector &args)
 Initialize Rapicorn like init_app(), and boots up the test suite framework. More...
 
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)
 
template<class Class , class Data >
CommandP create_command (bool(Class::*method)(Data, const String &), const char *ident, const char *blurb, const Data &method_data)
 
template<class Class , class Data >
CommandP create_command (bool(Class::*method)(Data), const char *ident, const char *blurb, const Data &method_data)
 
template<class Class >
CommandP create_command (bool(Class::*method)(const String &), const char *ident, const char *blurb)
 
template<class Container , class PtrPredicate >
Container::value_type * find_element (Container &container, PtrPredicate f)
 
const charstring_from_content_source_type (ContentSourceType ctype)
 
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 String &utf8input)
 
EventDatacreate_event_data (EventType type, const EventContext &econtext, ContentSourceType content_source, uint64 nonce, const String &data_type, const String &data, uint64 request_id)
 
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)
 
FocusDir 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)
 
bool operator== (const ObjectImpl &object1, const ObjectImpl &object2)
 
bool operator!= (const ObjectImpl &object1, const ObjectImpl &object2)
 
cairo_surface_t * cairo_surface_from_pixmap (Pixmap pixmap)
 
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::ProtoMsg &dst, const SrvT_BoolSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_BoolSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_StringSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_StringSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_AnySeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_AnySeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_AnySeqSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_AnySeqSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_PixelSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_PixelSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_Pixbuf &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_Pixbuf &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ObjectIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ObjectIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ObjectIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const BindableRelayIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, BindableRelayIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, BindableRelayIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_UpdateSpan &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_UpdateSpan &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_UpdateRequest &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_UpdateRequest &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ListModelIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ListModelIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ListModelIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ListModelRelayIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ListModelRelayIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ListModelRelayIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_Requisition &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_Requisition &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_WidgetSeq &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_WidgetSeq &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const WidgetIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ContainerIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ContainerIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ContainerIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const WindowIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WindowIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WindowIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &dst, const SrvT_WindowList &self)
 
void operator>>= (Rapicorn::Aida::ProtoReader &src, SrvT_WindowList &self)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ArrangementIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ArrangementIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ArrangementIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const AlignmentIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, AlignmentIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, AlignmentIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const FrameIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FrameIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FrameIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const FocusFrameIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FocusFrameIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FocusFrameIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const AmbienceIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, AmbienceIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, AmbienceIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const TableIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TableIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TableIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const HBoxIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, HBoxIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, HBoxIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const VBoxIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, VBoxIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, VBoxIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ButtonAreaIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ButtonAreaIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ButtonAreaIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ScrollAreaIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ScrollAreaIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ScrollAreaIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const SliderAreaIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderAreaIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderAreaIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const SliderTroughIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderTroughIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderTroughIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const SliderSkidIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderSkidIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, SliderSkidIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ArrowIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ArrowIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ArrowIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const DotGridIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, DotGridIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, DotGridIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const DrawableIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, DrawableIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, DrawableIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const LayerPainterIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, LayerPainterIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, LayerPainterIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ImageIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ImageIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ImageIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ElementPainterIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ElementPainterIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ElementPainterIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const FocusPainterIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FocusPainterIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, FocusPainterIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const LabelIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, LabelIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, LabelIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const TextEditorIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TextEditorIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TextEditorIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const WidgetListRowIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetListRowIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetListRowIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const WidgetListIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetListIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, WidgetListIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const ApplicationIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ApplicationIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, ApplicationIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const IdlTestWidgetIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, IdlTestWidgetIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, IdlTestWidgetIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const TestBoxIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TestBoxIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TestBoxIface *&obj)
 
void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, const TestContainerIfaceP &ptr)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TestContainerIfaceP &obj)
 
void operator>>= (Rapicorn::Aida::ProtoReader &__f_, TestContainerIface *&obj)
 
MainLoopP uithread_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)
 

Variables

bool volatile _rapicorn_debug_check_cache
 
 Enum
 
uint64_t cached_hash_secret
 Use hash_secret() for access.
 
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]
 
Enum SelectionInputState WAIT_INVALID
 
Enum SelectionInputState WAIT_FOR_NOTIFY
 
Enum SelectionInputState WAIT_FOR_PROPERTY
 
Enum SelectionInputState WAIT_FOR_RESULT
 
Const MAXINT32
 
Const MAXINT31
 
Const MININT31
 
Const MAXFLOAT64
 
const std::nothrow_t dothrow
 

Detailed Description

The Rapicorn namespace encompasses core utilities and toolkit functionality.

Issues:
TODO:
  • StringFormatter: support directives: %n %S %ls
  • StringFormatter: support directive flags: I

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.

template<class... >
using Rapicorn::void_t = typedef void

Template to map all type arguments to void, useful for SFINAE.

See also: http://open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3911.pdf

Enumeration Type Documentation

Enum used to specify how adjustments are picked from Widget ancestry.

Enumerator
NONE 

No selection possible.

Enum to specify an anchoring point for graphical elements.

Enumerator
NONE 

No selection possible.

Enum used to specify the color schemes of a Widget.

Enumerator
INHERIT 

Inherit color from parent component.

NORMAL 

Normal color specification.

Normal window.

Widget factory / initial state.

SELECTED 

Color used for selected areas.

Widget is currently selected.

BASE 

Color used for text or scroll fields.

Enum used to index various predefined colors.

Enumerator
NONE 

No selection possible.

Enumerator
CONTENT_SOURCE_SELECTION 

Current selection of a window or screen, under X11 this is the PRIMARY selection.

CONTENT_SOURCE_CLIPBOARD 

Clipboard associated with a window or screen, under X11 this is the global CLIPBOARD.

Enum type for directional elements like arrows.

Enumerator
NONE 

No selection possible.

Enum type to discriminate various Frame widget types.

Enumerator
NONE 

No selection possible.

Enum values used to navigate the focus chain.

Enumerator
NONE 

No selection possible.

Enum with various lighting types.

Enumerator
NONE 

No selection possible.

Enum type for list widget selection behaviour.

Enumerator
NONE 

No selection possible.

SINGLE 

Allow selection toggling of a single widget.

BROWSE 

Browse by always forcing a single selected widget.

MULTIPLE 

Allow arbitrary combinations of selected widgets.

Enum policy type for sizing trade offs.

Enumerator
NORMAL 

Normal color specification.

Normal window.

Widget factory / initial state.

Classification for element update request messages.

Enumerator
READ 

Indicates an element range read request.

CHANGE 

Indicates element range changes.

INSERTION 

Indicates element range insertions.

DELETION 

Indicates deletion of a range of elements.

Enum flags type to indicate Widget states.

Enumerator
NORMAL 

Normal color specification.

Normal window.

Widget factory / initial state.

HOVER 

A pointing device (e.g. mouse) is above the Widget.

PANEL 

Widget is rendered as part of a panel section.

ACCELERATABLE 

Widget participates in mnemonic activation.

DEFAULT 

Widget receives the default activation.

SELECTED 

Color used for selected areas.

Widget is currently selected.

FOCUSED 

Widget has the focus.

INSENSITIVE 

Widget cannot process input events.

ACTIVE 

Widget and its children are active or pressed.

RETAINED 

Widget activation state is held back.

Enum type to discriminate various toplevel Window types.

Enumerator
NORMAL 

Normal color specification.

Normal window.

Widget factory / initial state.

DESKTOP 

Desktop background.

DOCK 

Dock or panel.

TOOLBAR 

Torn-off toolbar.

MENU 

Torn-off menu.

UTILITY 

Palette or toolbox.

SPLASH 

Startup/splash screen.

DIALOG 

Dialog window, usually transient.

DROPDOWN_MENU 

Menu, opened from menubar.

POPUP_MENU 

Menu, opened as context menu.

TOOLTIP 

Transient context info window.

NOTIFICATION 

Transient info window (e.g. info bubble)

COMBO 

Combo box menu or list window.

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.
void Rapicorn::collect_runtime_entropy ( uint64 data,
size_t  n 
)

To provide good quality random number seeds, this function gathers entropy from a variety of process specific sources.

Collect entropy from the current process, usually quicker than collect_system_entropy().

Under Linux, this includes the CPU counters, clocks and random devices. In combination with well established techniques like syscall timings (see Entropics13 [4]) and a SHA3 algorithm derived random number generator for the mixing, the entropy collection is designed to be fast and good enough for all non-cryptographic uses. On an Intel Core i7, this function takes around 25µs.

void Rapicorn::collect_system_entropy ( uint64 data,
size_t  n 
)

This function adds to collect_runtime_entropy() by collecting entropy from aditional but potentially slower system sources, such as interrupt counters, disk + network statistics, system load, execution + pipelining + scheduling latencies and device MACs.

Collect entropy from system devices, like interrupt counters, clocks and random devices.

The function is designed to yield random number seeds good enough to generate cryptographic tokens like session keys. On an Intel Core i7, this function takes around 2ms, so it's roughly 80 times slower than collect_runtime_entropy().

String Rapicorn::cpu_info ( )

Retrieve string identifying the runtime CPU type.

The returned string contains: number of online CPUs, a string describing the CPU architecture, the vendor and finally a number of flag words describing CPU features plus a trailing space. This allows checks for CPU features via a simple string search for " FEATURE ".

Returns
Example: "4 AMD64 GenuineIntel FPU TSC HTT CMPXCHG16B MMX MMXEXT SSESYS SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 "

Referenced by init_app().

String Rapicorn::cxx_demangle ( const char mangled_identifier)

Demangle a std::typeinfo.name() string into a proper C++ type name.

This function uses abi::__cxa_demangle() from <cxxabi.h> to demangle C++ type names, which works for g++, libstdc++, clang++, libc++.

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

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

Referenced by rapicorn_debug().

bool Rapicorn::envkey_feature_check ( const char env_var,
const char key,
bool  vdefault,
volatile bool *  cachep,
bool  include_all 
)

Check whether a feature is enabled, use envkey_flipper_check() instead.

Variant of envkey_flipper_check() that ignores 'all' as a feature toggle.

Referenced by envkey_flipper_check().

bool Rapicorn::envkey_flipper_check ( const char env_var,
const char key,
bool  vdefault,
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 'all' is present, the function returns true, otherwise vdefault (usually 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.

Referenced by envkey_debug_check().

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 application_name,
int argcp,
char **  argv,
const StringVector args 
)

Initialize Rapicorn and the main Application object.

This funciton initializes the Rapicorn toolkit and starts an asynchronously running UI thread. The UI thread creates the main Application object, manages all UI related components and processes UI events.The arguments passed in argcp and argv are parsed and any Rapicorn specific arguments are stripped. Note that Rapicorn requires the exact argv0 as provided by main(). If argv[0] as passed into this function is empty or otherwise altered, the correct value needs to be supplied previously by a call to program_argv0_init(). If 'testing=1' is passed in args, these command line arguments are supported:

  • –test-verbose - Execute test cases with verbose message generation.
  • –test-slow - Execute only test cases excercising slow code paths or loops.

The initialization arguments currenlty supported for args are as follows:

  • autonomous - Avoid loading external rc-files or other configurations that could affect test runs.
  • cpu-affinity - The CPU# to bind the Rapicorn UI thread to.
  • testing - Enable testing framework, used by init_core_test(), see also $RAPICORN_TEST.
  • test-verbose - acts like –test-verbose.
  • 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.
Parameters
application_namePossibly localized string useful to display the application name in user interfaces.
argcpLocation of the 'argc' argument to main()
argvLocation of the 'argv' arguments to main()
argsRapicorn initialization arguments.

Referenced by init_test_app().

void Rapicorn::init_core_test ( const String application,
int argcp,
char **  argv,
const StringVector args 
)

Initialize the Rapicorn toolkit core for a test program.

Initializes the Rapicorn toolkit core to execute unit tests by calling parse_settings_and_args() with args "autonomous=1" and "testing=1" and setting the application name. See also $RAPICORN_TEST.

ApplicationH Rapicorn::init_test_app ( const String application_name,
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.

bool Rapicorn::parse_init_args ( int argcp,
char **  argv,
const StringVector args 
)

Parse Rapicorn initialization arguments and adjust global settings.

Note that parse_init_args() only parses arguments the first time it is called. Arguments specific to the Rapicorn toolkit are removed from the argc, argv array passed in.

Referenced by init_app().

String Rapicorn::program_alias ( )

Provide short name for the current process.

The short name is usually the last part of argv[0]. See also GNU Libc program_invocation_short_name.

Referenced by application_name().

double Rapicorn::random_float ( )

Generate uniformly distributed pseudo-random floating point number.

This function generates a pseudo-random number like random_int64(), constrained to the range: 0.0 <= number < 1.0.

Referenced by Rapicorn::Test::random_float().

double Rapicorn::random_frange ( double  begin,
double  end 
)

Generate uniformly distributed pseudo-random floating point number within a range.

This function generates a pseudo-random number like random_float(), constrained to the range: begin <= number < end.

Referenced by Rapicorn::Test::random_frange().

uint64_t Rapicorn::random_int64 ( )

Generate a non-deterministic, uniformly distributed 64 bit pseudo-random number.

This function generates pseudo-random numbers using the system state as entropy and class KeccakRng for the mixing. No seeding is required.

Referenced by Rapicorn::AutoSeeder::random(), and Rapicorn::Test::random_int64().

int64_t Rapicorn::random_irange ( int64_t  begin,
int64_t  end 
)

Generate uniformly distributed pseudo-random integer within range.

This function generates a pseudo-random number like random_int64(), constrained to the range: begin <= number < end.

Referenced by Rapicorn::Test::random_irange().

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.

template<class Target , class Source >
std::shared_ptr<typename std::remove_pointer<Target>::type> Rapicorn::shared_ptr_cast ( Source *  object)

Shorthand for std::dynamic_pointer_cast<>(shared_from_this()).

A shared_ptr_cast() takes a std::shared_ptr or a pointer to an object that supports std::enable_shared_from_this::shared_from_this(). Using std::dynamic_pointer_cast(), the shared_ptr passed in (or retrieved via calling shared_from_this()) is cast into a std::shared_ptr<Target>, possibly resulting in an empty (NULL) std::shared_ptr if the underlying dynamic_cast() was not successful or if a NULL object was passed in. Note that shared_from_this() can throw a std::bad_weak_ptr exception if the object has no associated std::shared_ptr (usually during ctor and dtor), in which case the exception will also be thrown from shared_ptr_cast<Target>(). However a shared_ptr_cast<Target*>() call will not throw and yield an empty (NULL) std::shared_ptr<Target>. This is analogous to dynamic_cast<T&> which throws, versus dynamic_cast<T*> which yields NULL.

Returns
A std::shared_ptr<Target> storing a pointer to object or NULL.
Exceptions
std::bad_weak_ptrif shared_from_this() throws, unless the Target* form is used.

Referenced by Rapicorn::WidgetImpl::data_context(), Rapicorn::EventLoop::destroy_loop(), Rapicorn::MainLoop::iterate(), Rapicorn::MainLoop::iterate_pending(), Rapicorn::MainLoop::pending(), Rapicorn::WidgetImpl::query_selector(), Rapicorn::WidgetImpl::query_selector_unique(), Rapicorn::ApplicationImpl::query_window(), Rapicorn::ApplicationImpl::query_windows(), Rapicorn::MainLoop::run(), Rapicorn::IdlTestWidgetImpl::self_prop(), Rapicorn::WidgetListImpl::set_list_model(), and shared_ptr_cast().

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.

Referenced by Rapicorn::WidgetImpl::hsize_group(), and Rapicorn::WidgetImpl::vsize_group().

StringVector Rapicorn::string_split ( const String string,
const String splitter,
size_t  maxn 
)

Split a string, using splitter as delimiter.

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

StringVector Rapicorn::string_split_any ( const String string,
const String splitchars,
size_t  maxn 
)

Split a string, using any of the splitchars as delimiter.

Passing "" as splitter will split the string between all position.

Referenced by Rapicorn::Aida::aux_vector_check_options().

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.

Referenced by Rapicorn::AnsiColors::colorize_tty(), debug_config_bool(), and string_option_check().

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.

Referenced by string_to_cquote().

String Rapicorn::string_vector_find ( const StringVector svector,
const String prefix,
const String fallback 
)

Search for prefix in svector and return the matching element.

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

Returns
fallback if no match was found.
String Rapicorn::string_vector_find_value ( const StringVector svector,
const String prefix,
const String fallback 
)

Search for prefix 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.

Referenced by Rapicorn::PixmapT< Pixbuf >::save_png().

uint64 Rapicorn::timestamp_benchmark ( )

Returns benchmark timestamp in nano-seconds, clock starts around program startup.

uint64 Rapicorn::timestamp_realtime ( )
uint64 Rapicorn::timestamp_resolution ( )

Provides resolution of timestamp_benchmark() in nano-seconds.

uint64 Rapicorn::timestamp_startup ( )

Provides the timestamp_realtime() value from program startup.

bool Rapicorn::utf8_is_locale_charset ( )

Check wether the current locale uses an UTF-8 charset.

On most systems nl_langinfo(3) provides the needed codeset information. Otherwise, the charset is extracted from LC_ALL, LC_CTYPE, or LANG. Note that in the latter case per-thread locales may be misidentified.

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

Referenced by Rapicorn::Blob::asres().