The Rapicorn task list gives a high level overview of features that are still unimplemented.
Feedback and discussions are welcome on the Rapicorn Mailing list.
| Feature |
Notes
|
| Simple API |
- Implemented
- Simplify Python API, minimize API calls to get UI up
- Simplify C++ API to be as simple as Python, except for decorators
|
| Level 3 Selectors |
|
| Resource References |
- Implemented
- Support resource IDs: @string/...
- Android resource specification
- The rapidres(1) utility now replaces zintern (former internal tool) and automatically compiles the res/ build directory
|
| 9-Patch Rendering |
- Implemented
- Add widget with 9-Patch (SVG) element rendering [1]
- Add container for child allocation with the child size specified by a 9-Patch fill area
- Revamp widget states to allow state coverage with SVG elements
|
| SVG Widgets |
- Implemented
- Support SVG
warping and stretching similar to 9-patch images
- Support child size allocation based on SVG images
|
| Image Loaders |
- Implemented (PNG, SVG)
- Add PNG loader & rendering
- Add SVG loader & rendering
|
| Cairo Rendering |
- Implemented
- Port all rendering primitives to use Cairo API
- Use Cairo surfaces as widget rendering buffer internally
|
| Keyboard Input |
- Implemented (FocusFrame)
- Add support for X11 XIM input methods and compose key
- Generate UTF-8 text input from X11 keyboard input
- Add widget focus, move on LEFT/RIGHT/UP/DOWN/PREV/NEXT
|
| Data Widgets |
- Implemented
- Implement WidgetList, Label, Text::Editor
|
| Control Containers |
- Implemented
- Implement Button types, FocusFrame, Slider
|
| Layout Containers |
- Implemented
- Implement Alignment, HBox, VBox, Table, Arrangement, ScrollArea, Window
|
| Paint Widgets |
- Implemented
- Implement Arrow, Image, Ambience, Frame, DotGrid, Drawable
|
| Widget Groups |
- Implemented
- Support SizeGroup specification in XML declarations (Widget::hsize_group, Widget::vsize_group)
- Generalize SizeGroup to WidgetGroup to allow arbitrary grouping of widgets
|
| Arbitrary Size Negotiation |
- Implemented (Negotiation)
- Support widgets tuning (changing) size requisition in response to certain size allocations.
- Support widget sizes below optimum requisition size for all widgets.
|
| Widget Spreading |
- Implemented (Spreading)
- Propagate SPEAD flags up the hierarchy as if the corresponding EXPAND flag is set on all ancestors.
|
| Micro Widget Composition |
- Implemented ([file:///opt/share/doc/rapicorn1307/html/factory_8hh.html factory.hh], Micro, Composites)
- Export Widget types to factory
- Generate widget hierarchies via factory from concise XML descriptions
- Allow XML definitions of widget composite types
- Forward adding/removing children of composite types to sub container with 'child-container' attribute
- Generalize SizeGroup to WidgetGroup to allow arbitrary grouping of widgets
- Compose complex widgets (e.g. Scrollbar) from multiple micro widgets (Arrows, Frames, FocusFrame, GripHandle, HBox/VBox, ScrollController, etc)
|
| Event Processing |
- Implemented
- Add Event classes to process user input events and window resizing
|
| X11 Copy & Paste |
- Implemented
- Support X11 PRIMARY and CLIPBOARD selections
- Translate X11 selection atoms into proper mime types (e.g. "text/plain;charset=utf-8")
|
| X11 Backend |
- Implemented (ScreenWindow)
- Implement standalone X11 backend without further toolkit dependencies.
|
| Seperate UI Thread |
- Implemented (UIThread)
- Move widget sizing, rendering, etc logic into its own thread
|
| Asynchronous C++ Signals |
|
| Dynamic Any |
- Implemented (Aida::Any)
- Implement dynamic Any type to pass arbitrary values
|
| Tarball Docs |
- Implemented
- Include full documentation builds in tarballs.
|
| Reference Documentation |
- Implemented
- Build reference documentation of all sources with Doxygen
- Extract IDL (property) documentation strings for Doxygen
- Include manual pages (from testbit.eu/wiki) as HTML
- Provide HTML coverage report online
|
| IDL based Remote API |
- Implemented (AIDA)
- Introduce IDL files to specify external API
- Generate cross-thread remote API invocation from IDL
- Generate C++ language binding from IDL files
- Generate Python language binding from IDL files
|
| PRNG & Entropy |
- Implemented
- Provide a Keccak based CSPRNG
- Collect Entropy from process stats, devices and /proc
- Provide SHA3 hash functions
|
| cxxprintf |
- Implemented (StringFormatter)
- string_format: Provide fully functional printf substitute in C++11 without the downsides
- Replace all printf-like uses with string_format()
|
| configure.ac |
- Implemented
- Port build system to newer autoconf and automake
|