3.0 KiB
3.0 KiB
CONTRIBUTING
Submitting changes
Please send a GitHub Pull Request with a clear list of what you've done (read more about pull requests).
Features
If you have an idea for new features just open an issue with your suggestion.
- Find and correct spelling mistakes
- Add (insert your favorite platform or render backend here) demo implementation (some possibilities: DirectX 9/DirectX 10/DirectX 11 and win32 with OpenGL)
- Add clipboard user callbacks back into all demos
- Add additional widgets
- Find a better way to change the style or group style options
- Add support for multiple pointers for touch input devices (probably requires to rewrite mouse handling in
struct zr_input
) - Extend xlib demo to support image drawing with arbitrary image width and height
- Change cursor in
zr_widget_edit_box
andzr_widget_edit_field
to thin standard cursor version used in editors - Extend piemenu to support submenus (another ring around the first ring or something like this:) and turn it into a default library widget.
- Add label describing the currently active piemenu entry
- Add tables with scaleable column width
- Rewrite the chart API to support a better range of charts (maybe take notes from Javascript chart frameworks)
- Create an API to allow scaling between groups (maybe extend and convert the demo example)
- Come up with a better way to provide and create widget and window styles
- Add multiple Tab support (maybe use
zr_group
and add a header) - Extend context to not only support overlapping windows but tiled windows as well
Bugs
- Seperator widget is currently bugged and does not work as intended
- Text handling is still a little bit janky and probably needs to be further tested and polished
zr_edit_buffer
with multiline flag is bugged for '\n', need to differentiate between visible and non-visible characters
Coding conventions
- Only use C89 (ANSI C)
- Do not use any compiler specific extensions
- For indent use four spaces
- Do not typedef structs, unions and enums
- Variable, object and function names should always be lowercase and use underscores instead of camel case
- Whitespace after for, while, if, do and switch
- Always use parentheses if you use the sizeof operator (e.g: sizeof(struct zr_context) and not sizeof struct zr_context)
- Beginning braces on the new line for functions and on the same line otherwise.
- If function becomes to big either a.) create a subblock inside the function and comment or b.) write a functional function
- Only use fixed size types (zr_uint, zr_size, ...) if you really need to and use basic types otherwise
- Do not include any header files in either zahnrad.h or zahnrad.c
- Do not add dependencies rather write your own version if possible
- Write correct commit messages: (http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)