commit
c91ca8b503
@ -92,7 +92,7 @@ nk_end(&ctx);
|
||||
![example](https://cloud.githubusercontent.com/assets/8057201/10187981/584ecd68-675c-11e5-897c-822ef534a876.png)
|
||||
|
||||
## Bindings
|
||||
There are a number of nuklear bindings for different languges created by other authors.
|
||||
There are a number of nuklear bindings for different languages created by other authors.
|
||||
I cannot attest for their quality since I am not necessarily proficient in any of these
|
||||
languages. Furthermore there are no guarantee that all bindings will always be kept up to date:
|
||||
|
||||
@ -185,7 +185,7 @@ Reviewing changes to `src/*` and `nuklear.h`:
|
||||
* Variable/function name casing.
|
||||
* Indentation.
|
||||
* Curly bracket (`{}`) placement.
|
||||
* Ensure that the contributer have bumped the appropriate version in
|
||||
* Ensure that the contributor has bumped the appropriate version in
|
||||
[package.json](https://github.com/Immediate-Mode-UI/Nuklear/blob/master/package.json)
|
||||
and added their changes to the
|
||||
[CHANGELOG](https://github.com/Immediate-Mode-UI/Nuklear/blob/master/src/CHANGELOG).
|
||||
|
@ -765,7 +765,7 @@ overview(struct nk_context *ctx)
|
||||
if (nk_popup_begin(ctx, NK_POPUP_STATIC, "Error", 0, s))
|
||||
{
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
nk_label(ctx, "A terrible error as occured", NK_TEXT_LEFT);
|
||||
nk_label(ctx, "A terrible error as occurred", NK_TEXT_LEFT);
|
||||
nk_layout_row_dynamic(ctx, 25, 2);
|
||||
if (nk_button_label(ctx, "OK")) {
|
||||
popup_active = 0;
|
||||
|
@ -265,7 +265,7 @@ nk_load_opengl(struct opengl_info *gl)
|
||||
glGetIntegerv(GL_MAJOR_VERSION, &gl->major_version);
|
||||
glGetIntegerv(GL_MINOR_VERSION, &gl->minor_version);
|
||||
if (gl->major_version < 2) {
|
||||
fprintf(stderr, "[GL]: Graphics card does not fullfill minimum OpenGL 2.0 support\n");
|
||||
fprintf(stderr, "[GL]: Graphics card does not fulfill minimum OpenGL 2.0 support\n");
|
||||
return 0;
|
||||
}
|
||||
gl->version = (float)gl->major_version + (float)gl->minor_version * 0.1f;
|
||||
|
108
doc/nuklear.html
108
doc/nuklear.html
@ -72,7 +72,7 @@ in header only mode or in implementation mode. The header only mode is used
|
||||
by default when included and allows including this header in other headers
|
||||
and does not contain the actual implementation. <br /><br />
|
||||
The implementation mode requires to define the preprocessor macro
|
||||
NK_IMPLEMENTATION in *one* .c/.cpp file before #includeing this file, e.g.:
|
||||
NK_IMPLEMENTATION in *one* .c/.cpp file before #including this file, e.g.:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C
|
||||
#define NK_IMPLEMENTATION
|
||||
#include "nuklear.h"
|
||||
@ -320,7 +320,7 @@ while (GetEvent(&evt)) {
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#### Usage
|
||||
Input state needs to be provided to nuklear by first calling `nk_input_begin`
|
||||
which resets internal state like delta mouse position and button transistions.
|
||||
which resets internal state like delta mouse position and button transitions.
|
||||
After `nk_input_begin` all current input state needs to be provided. This includes
|
||||
mouse motion, button and key pressed and released, text input and scrolling.
|
||||
Both event- or state-based input handling are supported by this API
|
||||
@ -718,7 +718,7 @@ NK_CONVERT_SUCCESS | Signals a successful draw command to vertex bu
|
||||
NK_CONVERT_INVALID_PARAM | An invalid argument was passed in the function call
|
||||
NK_CONVERT_COMMAND_BUFFER_FULL | The provided buffer for storing draw commands is full or failed to allocate more memory
|
||||
NK_CONVERT_VERTEX_BUFFER_FULL | The provided buffer for storing vertices is full or failed to allocate more memory
|
||||
NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indicies is full or failed to allocate more memory
|
||||
NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indices is full or failed to allocate more memory
|
||||
#### nk__draw_begin
|
||||
Returns a draw vertex command buffer iterator to iterate over the vertex draw command buffer
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
@ -883,8 +883,8 @@ NK_WINDOW_NO_INPUT | Prevents window of scaling, moving or getting focu
|
||||
#### nk_collapse_states
|
||||
State | Description
|
||||
----------------|-----------------------------------------------------------
|
||||
__NK_MINIMIZED__| UI section is collased and not visibile until maximized
|
||||
__NK_MAXIMIZED__| UI section is extended and visibile until minimized
|
||||
__NK_MINIMIZED__| UI section is collased and not visible until maximized
|
||||
__NK_MAXIMIZED__| UI section is extended and visible until minimized
|
||||
<br /><br />
|
||||
#### nk_begin
|
||||
Starts a new window; needs to be called every frame for every
|
||||
@ -1744,7 +1744,7 @@ is required to check the return value of `nk_group_begin_xxx` and only process
|
||||
widgets inside the window if the value is not 0.
|
||||
Nesting groups is possible and even encouraged since many layouting schemes
|
||||
can only be achieved by nesting. Groups, unlike windows, need `nk_group_end`
|
||||
to be only called if the corosponding `nk_group_begin_xxx` call does not return 0:
|
||||
to be only called if the corresponding `nk_group_begin_xxx` call does not return 0:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
if (nk_group_begin_xxx(ctx, ...) {
|
||||
// [... widgets ...]
|
||||
@ -1801,7 +1801,7 @@ nk_free(&ctx);
|
||||
Function | Description
|
||||
--------------------------------|-------------------------------------------
|
||||
nk_group_begin | Start a new group with internal scrollbar handling
|
||||
nk_group_begin_titled | Start a new group with separeted name and title and internal scrollbar handling
|
||||
nk_group_begin_titled | Start a new group with separated name and title and internal scrollbar handling
|
||||
nk_group_end | Ends a group. Should only be called if nk_group_begin returned non-zero
|
||||
nk_group_scrolled_offset_begin | Start a new group with manual separated handling of scrollbar x- and y-offset
|
||||
nk_group_scrolled_begin | Start a new group with manual scrollbar handling
|
||||
@ -1897,12 +1897,12 @@ __id__ | The id of the group to scroll
|
||||
__x_offset__ | The x offset to scroll to
|
||||
__y_offset__ | The y offset to scroll to
|
||||
### Tree
|
||||
Trees represent two different concept. First the concept of a collapsable
|
||||
UI section that can be either in a hidden or visibile state. They allow the UI
|
||||
Trees represent two different concept. First the concept of a collapsible
|
||||
UI section that can be either in a hidden or visible state. They allow the UI
|
||||
user to selectively minimize the current set of visible UI to comprehend.
|
||||
The second concept are tree widgets for visual UI representation of trees.<br /><br />
|
||||
Trees thereby can be nested for tree representations and multiple nested
|
||||
collapsable UI sections. All trees are started by calling of the
|
||||
collapsible UI sections. All trees are started by calling of the
|
||||
`nk_tree_xxx_push_tree` functions and ended by calling one of the
|
||||
`nk_tree_xxx_pop_xxx()` functions. Each starting functions takes a title label
|
||||
and optionally an image to be displayed and the initial collapse state from
|
||||
@ -1915,7 +1915,7 @@ function `nk_tree_push_id` or completely provided from outside by user with
|
||||
function `nk_tree_push_hashed`.
|
||||
#### Usage
|
||||
To create a tree you have to call one of the seven `nk_tree_xxx_push_xxx`
|
||||
functions to start a collapsable UI section and `nk_tree_xxx_pop` to mark the
|
||||
functions to start a collapsible UI section and `nk_tree_xxx_pop` to mark the
|
||||
end.
|
||||
Each starting function will either return `false(0)` if the tree is collapsed
|
||||
or hidden and therefore does not need to be filled with content or `true(1)`
|
||||
@ -1936,25 +1936,25 @@ if (nk_tree_push(ctx, NK_TREE_TAB, "Tree", NK_MINIMIZED)) {
|
||||
#### Reference
|
||||
Function | Description
|
||||
----------------------------|-------------------------------------------
|
||||
nk_tree_push | Start a collapsable UI section with internal state management
|
||||
nk_tree_push_id | Start a collapsable UI section with internal state management callable in a look
|
||||
nk_tree_push_hashed | Start a collapsable UI section with internal state management with full control over internal unique ID use to store state
|
||||
nk_tree_image_push | Start a collapsable UI section with image and label header
|
||||
nk_tree_image_push_id | Start a collapsable UI section with image and label header and internal state management callable in a look
|
||||
nk_tree_image_push_hashed | Start a collapsable UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
nk_tree_pop | Ends a collapsable UI section
|
||||
nk_tree_state_push | Start a collapsable UI section with external state management
|
||||
nk_tree_state_image_push | Start a collapsable UI section with image and label header and external state management
|
||||
nk_tree_push | Start a collapsible UI section with internal state management
|
||||
nk_tree_push_id | Start a collapsible UI section with internal state management callable in a look
|
||||
nk_tree_push_hashed | Start a collapsible UI section with internal state management with full control over internal unique ID use to store state
|
||||
nk_tree_image_push | Start a collapsible UI section with image and label header
|
||||
nk_tree_image_push_id | Start a collapsible UI section with image and label header and internal state management callable in a look
|
||||
nk_tree_image_push_hashed | Start a collapsible UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
nk_tree_pop | Ends a collapsible UI section
|
||||
nk_tree_state_push | Start a collapsible UI section with external state management
|
||||
nk_tree_state_image_push | Start a collapsible UI section with image and label header and external state management
|
||||
nk_tree_state_pop | Ends a collapsabale UI section
|
||||
#### nk_tree_type
|
||||
Flag | Description
|
||||
----------------|----------------------------------------
|
||||
NK_TREE_NODE | Highlighted tree header to mark a collapsable UI section
|
||||
NK_TREE_TAB | Non-highighted tree header closer to tree representations
|
||||
NK_TREE_NODE | Highlighted tree header to mark a collapsible UI section
|
||||
NK_TREE_TAB | Non-highlighted tree header closer to tree representations
|
||||
#### nk_tree_push
|
||||
Starts a collapsable UI section with internal state management
|
||||
Starts a collapsible UI section with internal state management
|
||||
!!! WARNING
|
||||
To keep track of the runtime tree collapsable state this function uses
|
||||
To keep track of the runtime tree collapsible state this function uses
|
||||
defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
to call this function in a loop please use `nk_tree_push_id` or
|
||||
`nk_tree_push_hashed` instead.
|
||||
@ -1969,7 +1969,7 @@ __title__ | Label printed in the tree header
|
||||
__state__ | Initial tree state value out of nk_collapse_states
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_push_id
|
||||
Starts a collapsable UI section with internal state management callable in a look
|
||||
Starts a collapsible UI section with internal state management callable in a look
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
#define nk_tree_push_id(ctx, type, title, state, id)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -1982,7 +1982,7 @@ __state__ | Initial tree state value out of nk_collapse_states
|
||||
__id__ | Loop counter index if this function is called in a loop
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_push_hashed
|
||||
Start a collapsable UI section with internal state management with full
|
||||
Start a collapsible UI section with internal state management with full
|
||||
control over internal unique ID used to store state
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
int nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -1998,9 +1998,9 @@ __len__ | Size of passed memory block or string in __hash__
|
||||
__seed__ | Seeding value if this function is called in a loop or default to `0`
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_image_push
|
||||
Start a collapsable UI section with image and label header
|
||||
Start a collapsible UI section with image and label header
|
||||
!!! WARNING
|
||||
To keep track of the runtime tree collapsable state this function uses
|
||||
To keep track of the runtime tree collapsible state this function uses
|
||||
defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
to call this function in a loop please use `nk_tree_image_push_id` or
|
||||
`nk_tree_image_push_hashed` instead.
|
||||
@ -2016,7 +2016,7 @@ __title__ | Label printed in the tree header
|
||||
__state__ | Initial tree state value out of nk_collapse_states
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_image_push_id
|
||||
Start a collapsable UI section with image and label header and internal state
|
||||
Start a collapsible UI section with image and label header and internal state
|
||||
management callable in a look
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
#define nk_tree_image_push_id(ctx, type, img, title, state, id)
|
||||
@ -2031,7 +2031,7 @@ __state__ | Initial tree state value out of nk_collapse_states
|
||||
__id__ | Loop counter index if this function is called in a loop
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_image_push_hashed
|
||||
Start a collapsable UI section with internal state management with full
|
||||
Start a collapsible UI section with internal state management with full
|
||||
control over internal unique ID used to store state
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
int nk_tree_image_push_hashed(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -2056,7 +2056,7 @@ Parameter | Description
|
||||
------------|-----------------------------------------------------------
|
||||
__ctx__ | Must point to an previously initialized `nk_context` struct after calling `nk_tree_xxx_push_xxx`
|
||||
#### nk_tree_state_push
|
||||
Start a collapsable UI section with external state management
|
||||
Start a collapsible UI section with external state management
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
int nk_tree_state_push(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states *state);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -2068,7 +2068,7 @@ __title__ | Label printed in the tree header
|
||||
__state__ | Persistent state to update
|
||||
Returns `true(1)` if visible and fillable with widgets or `false(0)` otherwise
|
||||
#### nk_tree_state_image_push
|
||||
Start a collapsable UI section with image and label header and external state management
|
||||
Start a collapsible UI section with image and label header and external state management
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
int nk_tree_state_image_push(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states *state);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -2093,10 +2093,10 @@ Properties are the main value modification widgets in Nuklear. Changing a value
|
||||
can be achieved by dragging, adding/removing incremental steps on button click
|
||||
or by directly typing a number.
|
||||
#### Usage
|
||||
Each property requires a unique name for identifaction that is also used for
|
||||
Each property requires a unique name for identification that is also used for
|
||||
displaying a label. If you want to use the same name multiple times make sure
|
||||
add a '#' before your name. The '#' will not be shown but will generate a
|
||||
unique ID. Each propery also takes in a minimum and maximum value. If you want
|
||||
unique ID. Each property also takes in a minimum and maximum value. If you want
|
||||
to make use of the complete number range of a type just use the provided
|
||||
type limits from `limits.h`. For example `INT_MIN` and `INT_MAX` for
|
||||
`nk_property_int` and `nk_propertyi`. In additional each property takes in
|
||||
@ -2148,14 +2148,14 @@ nk_free(&ctx);
|
||||
#### Reference
|
||||
Function | Description
|
||||
--------------------|-------------------------------------------
|
||||
nk_property_int | Integer property directly modifing a passed in value
|
||||
nk_property_float | Float property directly modifing a passed in value
|
||||
nk_property_double | Double property directly modifing a passed in value
|
||||
nk_property_int | Integer property directly modifying a passed in value
|
||||
nk_property_float | Float property directly modifying a passed in value
|
||||
nk_property_double | Double property directly modifying a passed in value
|
||||
nk_propertyi | Integer property returning the modified int value
|
||||
nk_propertyf | Float property returning the modified float value
|
||||
nk_propertyd | Double property returning the modified double value
|
||||
#### nk_property_int
|
||||
Integer property directly modifing a passed in value
|
||||
Integer property directly modifying a passed in value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2172,7 +2172,7 @@ __max__ | Maximum value not allowed to be overflown
|
||||
__step__ | Increment added and subtracted on increment and decrement button
|
||||
__inc_per_pixel__ | Value per pixel added or subtracted on dragging
|
||||
#### nk_property_float
|
||||
Float property directly modifing a passed in value
|
||||
Float property directly modifying a passed in value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2189,7 +2189,7 @@ __max__ | Maximum value not allowed to be overflown
|
||||
__step__ | Increment added and subtracted on increment and decrement button
|
||||
__inc_per_pixel__ | Value per pixel added or subtracted on dragging
|
||||
#### nk_property_double
|
||||
Double property directly modifing a passed in value
|
||||
Double property directly modifying a passed in value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2206,7 +2206,7 @@ __max__ | Maximum value not allowed to be overflown
|
||||
__step__ | Increment added and subtracted on increment and decrement button
|
||||
__inc_per_pixel__ | Value per pixel added or subtracted on dragging
|
||||
#### nk_propertyi
|
||||
Integer property modifing a passed in value and returning the new value
|
||||
Integer property modifying a passed in value and returning the new value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2224,7 +2224,7 @@ __step__ | Increment added and subtracted on increment and decrement
|
||||
__inc_per_pixel__ | Value per pixel added or subtracted on dragging
|
||||
Returns the new modified integer value
|
||||
#### nk_propertyf
|
||||
Float property modifing a passed in value and returning the new value
|
||||
Float property modifying a passed in value and returning the new value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2242,7 +2242,7 @@ __step__ | Increment added and subtracted on increment and decrement
|
||||
__inc_per_pixel__ | Value per pixel added or subtracted on dragging
|
||||
Returns the new modified float value
|
||||
#### nk_propertyd
|
||||
Float property modifing a passed in value and returning the new value
|
||||
Float property modifying a passed in value and returning the new value
|
||||
!!! WARNING
|
||||
To generate a unique property ID using the same label make sure to insert
|
||||
a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -2341,7 +2341,7 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2018/01/31 (3.00.5) - Fixed overcalculation of cursor data in font baking process.
|
||||
- 2018/01/31 (3.00.4) - Removed name collision with stb_truetype.
|
||||
- 2018/01/28 (3.00.3) - Fixed panel window border drawing bug.
|
||||
- 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separed group identifier and title.
|
||||
- 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separated group identifier and title.
|
||||
- 2018/01/07 (3.00.1) - Started to change documentation style.
|
||||
- 2018/01/05 (3.00.0) - BREAKING CHANGE: The previous color picker API was broken
|
||||
because of conversions between float and byte color representation.
|
||||
@ -2352,13 +2352,13 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2017/12/23 (2.00.7) - Fixed small warning.
|
||||
- 2017/12/23 (2.00.7) - Fixed `nk_edit_buffer` behavior if activated to allow input.
|
||||
- 2017/12/23 (2.00.7) - Fixed modifyable progressbar dragging visuals and input behavior.
|
||||
- 2017/12/04 (2.00.6) - Added formated string tooltip widget.
|
||||
- 2017/12/04 (2.00.6) - Added formatted string tooltip widget.
|
||||
- 2017/11/18 (2.00.5) - Fixed window becoming hidden with flag `NK_WINDOW_NO_INPUT`.
|
||||
- 2017/11/15 (2.00.4) - Fixed font merging.
|
||||
- 2017/11/07 (2.00.3) - Fixed window size and position modifier functions.
|
||||
- 2017/09/14 (2.00.2) - Fixed `nk_edit_buffer` and `nk_edit_focus` behavior.
|
||||
- 2017/09/14 (2.00.1) - Fixed window closing behavior.
|
||||
- 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifing window position and size funtions now
|
||||
- 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifying window position and size functions now
|
||||
require the name of the window and must happen outside the window
|
||||
building process (between function call nk_begin and nk_end).
|
||||
- 2017/09/11 (1.40.9) - Fixed window background flag if background window is declared last.
|
||||
@ -2385,7 +2385,7 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2017/06/08 (1.39.0) - Added function to retrieve window space without calling a `nk_layout_xxx` function.
|
||||
- 2017/06/06 (1.38.5) - Fixed `nk_convert` return flag for command buffer.
|
||||
- 2017/05/23 (1.38.4) - Fixed activation behavior for widgets partially clipped.
|
||||
- 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundries.
|
||||
- 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundaries.
|
||||
- 2017/05/09 (1.38.2) - Fixed vertical scrollbar drawing with not enough space.
|
||||
- 2017/05/09 (1.38.1) - Fixed scaler dragging behavior if window size hits minimum size.
|
||||
- 2017/05/06 (1.38.0) - Added platform double-click support.
|
||||
@ -2402,7 +2402,7 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2017/03/04 (1.34.2) - Fixed text edit filtering.
|
||||
- 2017/03/04 (1.34.1) - Fixed group closable flag.
|
||||
- 2017/02/25 (1.34.0) - Added custom draw command for better language binding support.
|
||||
- 2017/01/24 (1.33.0) - Added programatic way of remove edit focus.
|
||||
- 2017/01/24 (1.33.0) - Added programmatic way to remove edit focus.
|
||||
- 2017/01/24 (1.32.3) - Fixed wrong define for basic type definitions for windows.
|
||||
- 2017/01/21 (1.32.2) - Fixed input capture from hidden or closed windows.
|
||||
- 2017/01/21 (1.32.1) - Fixed slider behavior and drawing.
|
||||
@ -2447,7 +2447,7 @@ X...XXXXXXXXXXXXX...X - "
|
||||
text in every edit widget if one of them is scrolled.
|
||||
- 2016/09/28 (1.22.3) - Fixed small bug in edit widgets if not active. The wrong
|
||||
text length is passed. It should have been in bytes but
|
||||
was passed as glyphes.
|
||||
was passed as glyphs.
|
||||
- 2016/09/20 (1.22.2) - Fixed color button size calculation.
|
||||
- 2016/09/20 (1.22.1) - Fixed some `nk_vsnprintf` behavior bugs and removed `<stdio.h>`
|
||||
again from `NK_INCLUDE_STANDARD_VARARGS`.
|
||||
@ -2527,13 +2527,13 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2016/08/16 (1.09.5) - Fixed ROM mode for deeper levels of popup windows parents.
|
||||
- 2016/08/15 (1.09.4) - Editbox are now still active if enter was pressed with flag
|
||||
`NK_EDIT_SIG_ENTER`. Main reasoning is to be able to keep
|
||||
typing after commiting.
|
||||
typing after committing.
|
||||
- 2016/08/15 (1.09.4) - Removed redundant code.
|
||||
- 2016/08/15 (1.09.4) - Fixed negative numbers in `nk_strtoi` and remove unused variable.
|
||||
- 2016/08/15 (1.09.3) - Fixed `NK_WINDOW_BACKGROUND` flag behavior to select a background
|
||||
window only as selected by hovering and not by clicking.
|
||||
- 2016/08/14 (1.09.2) - Fixed a bug in font atlas which caused wrong loading
|
||||
of glyphes for font with multiple ranges.
|
||||
of glyphs for font with multiple ranges.
|
||||
- 2016/08/12 (1.09.1) - Added additional function to check if window is currently
|
||||
hidden and therefore not visible.
|
||||
- 2016/08/12 (1.09.1) - nk_window_is_closed now queries the correct flag `NK_WINDOW_CLOSED`
|
||||
@ -2549,8 +2549,8 @@ X...XXXXXXXXXXXXX...X - "
|
||||
precision.
|
||||
- 2016/08/08 (1.07.2) - Fixed compiling error without define `NK_INCLUDE_FIXED_TYPE`.
|
||||
- 2016/08/08 (1.07.1) - Fixed possible floating point error inside `nk_widget` leading
|
||||
to wrong wiget width calculation which results in widgets falsly
|
||||
becomming tagged as not inside window and cannot be accessed.
|
||||
to wrong wiget width calculation which results in widgets falsely
|
||||
becoming tagged as not inside window and cannot be accessed.
|
||||
- 2016/08/08 (1.07.0) - Nuklear now differentiates between hiding a window (NK_WINDOW_HIDDEN) and
|
||||
closing a window (NK_WINDOW_CLOSED). A window can be hidden/shown
|
||||
by using `nk_window_show` and closed by either clicking the close
|
||||
@ -2597,7 +2597,7 @@ X...XXXXXXXXXXXXX...X - "
|
||||
- 2016/07/15 (1.01.0) - Removed internal font baking API and simplified
|
||||
font atlas memory management by converting pointer
|
||||
arrays for fonts and font configurations to lists.
|
||||
- 2016/07/15 (1.00.0) - Changed button API to use context dependend button
|
||||
- 2016/07/15 (1.00.0) - Changed button API to use context dependent button
|
||||
behavior instead of passing it for every function call.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
## Gallery
|
||||
|
@ -71,7 +71,7 @@ int main() {
|
||||
/// 1. Numbered
|
||||
/// 1. List!
|
||||
///
|
||||
/// Symbol substitutions: a 45-degree turn; som x -> y arrows; some whoa ==> fancy <==> arrows.
|
||||
/// Symbol substitutions: a 45-degree turn; some x -> y arrows; some whoa ==> fancy <==> arrows.
|
||||
///
|
||||
/// Is this a definition list?
|
||||
/// : Looks like one to me
|
||||
|
@ -4081,13 +4081,13 @@ static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 r
|
||||
|
||||
// we make a separate pass to expand bits to pixels; for performance,
|
||||
// this could run two scanlines behind the above code, so it won't
|
||||
// intefere with filtering but will still be in the cache.
|
||||
// interfere with filtering but will still be in the cache.
|
||||
if (depth < 8) {
|
||||
for (j=0; j < y; ++j) {
|
||||
stbi_uc *cur = a->out + stride*j;
|
||||
stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes;
|
||||
// unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
|
||||
// png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
|
||||
// png guarantee byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
|
||||
stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range
|
||||
|
||||
// note that the final byte might overshoot and write more data than desired.
|
||||
@ -4231,7 +4231,7 @@ static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int
|
||||
p = (stbi_uc *) stbi__malloc(pixel_count * pal_img_n);
|
||||
if (p == NULL) return stbi__err("outofmem", "Out of memory");
|
||||
|
||||
// between here and free(out) below, exitting would leak
|
||||
// between here and free(out) below, exiting would leak
|
||||
temp_out = p;
|
||||
|
||||
if (pal_img_n == 3) {
|
||||
@ -4899,7 +4899,7 @@ static stbi_uc *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int
|
||||
int RLE_repeating = 0;
|
||||
int read_next_pixel = 1;
|
||||
|
||||
// do a tiny bit of precessing
|
||||
// do a tiny bit of processing
|
||||
if ( tga_image_type >= 8 )
|
||||
{
|
||||
tga_image_type -= 8;
|
||||
@ -5161,7 +5161,7 @@ static stbi_uc *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int
|
||||
// Else if n is 128, noop.
|
||||
// Endloop
|
||||
|
||||
// The RLE-compressed data is preceeded by a 2-byte data count for each row in the data,
|
||||
// The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
|
||||
// which we're going to just skip.
|
||||
stbi__skip(s, h * channelCount * 2 );
|
||||
|
||||
@ -6429,7 +6429,7 @@ STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int
|
||||
1.31 (2011-06-20)
|
||||
a few more leak fixes, bug in PNG handling (SpartanJ)
|
||||
1.30 (2011-06-11)
|
||||
added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
|
||||
added ability to load files via callbacks to accommodate custom input streams (Ben Wenger)
|
||||
removed deprecated format-specific test/load functions
|
||||
removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
|
||||
error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
|
||||
|
122
nuklear.h
122
nuklear.h
@ -77,7 +77,7 @@
|
||||
/// and does not contain the actual implementation. <br /><br />
|
||||
///
|
||||
/// The implementation mode requires to define the preprocessor macro
|
||||
/// NK_IMPLEMENTATION in *one* .c/.cpp file before #includeing this file, e.g.:
|
||||
/// NK_IMPLEMENTATION in *one* .c/.cpp file before #including this file, e.g.:
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C
|
||||
/// #define NK_IMPLEMENTATION
|
||||
@ -712,7 +712,7 @@ NK_API void nk_set_user_data(struct nk_context*, nk_handle handle);
|
||||
///
|
||||
/// #### Usage
|
||||
/// Input state needs to be provided to nuklear by first calling `nk_input_begin`
|
||||
/// which resets internal state like delta mouse position and button transistions.
|
||||
/// which resets internal state like delta mouse position and button transitions.
|
||||
/// After `nk_input_begin` all current input state needs to be provided. This includes
|
||||
/// mouse motion, button and key pressed and released, text input and scrolling.
|
||||
/// Both event- or state-based input handling are supported by this API
|
||||
@ -1255,7 +1255,7 @@ NK_API const struct nk_command* nk__next(struct nk_context*, const struct nk_com
|
||||
/// NK_CONVERT_INVALID_PARAM | An invalid argument was passed in the function call
|
||||
/// NK_CONVERT_COMMAND_BUFFER_FULL | The provided buffer for storing draw commands is full or failed to allocate more memory
|
||||
/// NK_CONVERT_VERTEX_BUFFER_FULL | The provided buffer for storing vertices is full or failed to allocate more memory
|
||||
/// NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indicies is full or failed to allocate more memory
|
||||
/// NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indices is full or failed to allocate more memory
|
||||
*/
|
||||
NK_API nk_flags nk_convert(struct nk_context*, struct nk_buffer *cmds, struct nk_buffer *vertices, struct nk_buffer *elements, const struct nk_convert_config*);
|
||||
/*/// #### nk__draw_begin
|
||||
@ -1462,8 +1462,8 @@ NK_API const struct nk_draw_command* nk__draw_next(const struct nk_draw_command*
|
||||
/// #### nk_collapse_states
|
||||
/// State | Description
|
||||
/// ----------------|-----------------------------------------------------------
|
||||
/// __NK_MINIMIZED__| UI section is collased and not visibile until maximized
|
||||
/// __NK_MAXIMIZED__| UI section is extended and visibile until minimized
|
||||
/// __NK_MINIMIZED__| UI section is collased and not visible until maximized
|
||||
/// __NK_MAXIMIZED__| UI section is extended and visible until minimized
|
||||
/// <br /><br />
|
||||
*/
|
||||
enum nk_panel_flags {
|
||||
@ -2612,7 +2612,7 @@ NK_API void nk_spacer(struct nk_context* );
|
||||
/// widgets inside the window if the value is not 0.
|
||||
/// Nesting groups is possible and even encouraged since many layouting schemes
|
||||
/// can only be achieved by nesting. Groups, unlike windows, need `nk_group_end`
|
||||
/// to be only called if the corosponding `nk_group_begin_xxx` call does not return 0:
|
||||
/// to be only called if the corresponding `nk_group_begin_xxx` call does not return 0:
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// if (nk_group_begin_xxx(ctx, ...) {
|
||||
@ -2672,7 +2672,7 @@ NK_API void nk_spacer(struct nk_context* );
|
||||
/// Function | Description
|
||||
/// --------------------------------|-------------------------------------------
|
||||
/// nk_group_begin | Start a new group with internal scrollbar handling
|
||||
/// nk_group_begin_titled | Start a new group with separeted name and title and internal scrollbar handling
|
||||
/// nk_group_begin_titled | Start a new group with separated name and title and internal scrollbar handling
|
||||
/// nk_group_end | Ends a group. Should only be called if nk_group_begin returned non-zero
|
||||
/// nk_group_scrolled_offset_begin | Start a new group with manual separated handling of scrollbar x- and y-offset
|
||||
/// nk_group_scrolled_begin | Start a new group with manual scrollbar handling
|
||||
@ -2802,13 +2802,13 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*
|
||||
* =============================================================================
|
||||
/// ### Tree
|
||||
/// Trees represent two different concept. First the concept of a collapsable
|
||||
/// UI section that can be either in a hidden or visibile state. They allow the UI
|
||||
/// Trees represent two different concept. First the concept of a collapsible
|
||||
/// UI section that can be either in a hidden or visible state. They allow the UI
|
||||
/// user to selectively minimize the current set of visible UI to comprehend.
|
||||
/// The second concept are tree widgets for visual UI representation of trees.<br /><br />
|
||||
///
|
||||
/// Trees thereby can be nested for tree representations and multiple nested
|
||||
/// collapsable UI sections. All trees are started by calling of the
|
||||
/// collapsible UI sections. All trees are started by calling of the
|
||||
/// `nk_tree_xxx_push_tree` functions and ended by calling one of the
|
||||
/// `nk_tree_xxx_pop_xxx()` functions. Each starting functions takes a title label
|
||||
/// and optionally an image to be displayed and the initial collapse state from
|
||||
@ -2823,7 +2823,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
///
|
||||
/// #### Usage
|
||||
/// To create a tree you have to call one of the seven `nk_tree_xxx_push_xxx`
|
||||
/// functions to start a collapsable UI section and `nk_tree_xxx_pop` to mark the
|
||||
/// functions to start a collapsible UI section and `nk_tree_xxx_pop` to mark the
|
||||
/// end.
|
||||
/// Each starting function will either return `false(0)` if the tree is collapsed
|
||||
/// or hidden and therefore does not need to be filled with content or `true(1)`
|
||||
@ -2848,28 +2848,28 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
/// #### Reference
|
||||
/// Function | Description
|
||||
/// ----------------------------|-------------------------------------------
|
||||
/// nk_tree_push | Start a collapsable UI section with internal state management
|
||||
/// nk_tree_push_id | Start a collapsable UI section with internal state management callable in a look
|
||||
/// nk_tree_push_hashed | Start a collapsable UI section with internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_image_push | Start a collapsable UI section with image and label header
|
||||
/// nk_tree_image_push_id | Start a collapsable UI section with image and label header and internal state management callable in a look
|
||||
/// nk_tree_image_push_hashed | Start a collapsable UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_pop | Ends a collapsable UI section
|
||||
/// nk_tree_push | Start a collapsible UI section with internal state management
|
||||
/// nk_tree_push_id | Start a collapsible UI section with internal state management callable in a look
|
||||
/// nk_tree_push_hashed | Start a collapsible UI section with internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_image_push | Start a collapsible UI section with image and label header
|
||||
/// nk_tree_image_push_id | Start a collapsible UI section with image and label header and internal state management callable in a look
|
||||
/// nk_tree_image_push_hashed | Start a collapsible UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_pop | Ends a collapsible UI section
|
||||
//
|
||||
/// nk_tree_state_push | Start a collapsable UI section with external state management
|
||||
/// nk_tree_state_image_push | Start a collapsable UI section with image and label header and external state management
|
||||
/// nk_tree_state_push | Start a collapsible UI section with external state management
|
||||
/// nk_tree_state_image_push | Start a collapsible UI section with image and label header and external state management
|
||||
/// nk_tree_state_pop | Ends a collapsabale UI section
|
||||
///
|
||||
/// #### nk_tree_type
|
||||
/// Flag | Description
|
||||
/// ----------------|----------------------------------------
|
||||
/// NK_TREE_NODE | Highlighted tree header to mark a collapsable UI section
|
||||
/// NK_TREE_TAB | Non-highighted tree header closer to tree representations
|
||||
/// NK_TREE_NODE | Highlighted tree header to mark a collapsible UI section
|
||||
/// NK_TREE_TAB | Non-highlighted tree header closer to tree representations
|
||||
*/
|
||||
/*/// #### nk_tree_push
|
||||
/// Starts a collapsable UI section with internal state management
|
||||
/// Starts a collapsible UI section with internal state management
|
||||
/// !!! WARNING
|
||||
/// To keep track of the runtime tree collapsable state this function uses
|
||||
/// To keep track of the runtime tree collapsible state this function uses
|
||||
/// defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
/// to call this function in a loop please use `nk_tree_push_id` or
|
||||
/// `nk_tree_push_hashed` instead.
|
||||
@ -2889,7 +2889,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
#define nk_tree_push(ctx, type, title, state) nk_tree_push_hashed(ctx, type, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),__LINE__)
|
||||
/*/// #### nk_tree_push_id
|
||||
/// Starts a collapsable UI section with internal state management callable in a look
|
||||
/// Starts a collapsible UI section with internal state management callable in a look
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// #define nk_tree_push_id(ctx, type, title, state, id)
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -2906,7 +2906,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
#define nk_tree_push_id(ctx, type, title, state, id) nk_tree_push_hashed(ctx, type, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),id)
|
||||
/*/// #### nk_tree_push_hashed
|
||||
/// Start a collapsable UI section with internal state management with full
|
||||
/// Start a collapsible UI section with internal state management with full
|
||||
/// control over internal unique ID used to store state
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -2926,9 +2926,9 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
/*/// #### nk_tree_image_push
|
||||
/// Start a collapsable UI section with image and label header
|
||||
/// Start a collapsible UI section with image and label header
|
||||
/// !!! WARNING
|
||||
/// To keep track of the runtime tree collapsable state this function uses
|
||||
/// To keep track of the runtime tree collapsible state this function uses
|
||||
/// defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
/// to call this function in a loop please use `nk_tree_image_push_id` or
|
||||
/// `nk_tree_image_push_hashed` instead.
|
||||
@ -2949,7 +2949,7 @@ NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const
|
||||
*/
|
||||
#define nk_tree_image_push(ctx, type, img, title, state) nk_tree_image_push_hashed(ctx, type, img, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),__LINE__)
|
||||
/*/// #### nk_tree_image_push_id
|
||||
/// Start a collapsable UI section with image and label header and internal state
|
||||
/// Start a collapsible UI section with image and label header and internal state
|
||||
/// management callable in a look
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
@ -2969,7 +2969,7 @@ NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const
|
||||
*/
|
||||
#define nk_tree_image_push_id(ctx, type, img, title, state, id) nk_tree_image_push_hashed(ctx, type, img, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),id)
|
||||
/*/// #### nk_tree_image_push_hashed
|
||||
/// Start a collapsable UI section with internal state management with full
|
||||
/// Start a collapsible UI section with internal state management with full
|
||||
/// control over internal unique ID used to store state
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_image_push_hashed(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -3001,7 +3001,7 @@ NK_API nk_bool nk_tree_image_push_hashed(struct nk_context*, enum nk_tree_type,
|
||||
*/
|
||||
NK_API void nk_tree_pop(struct nk_context*);
|
||||
/*/// #### nk_tree_state_push
|
||||
/// Start a collapsable UI section with external state management
|
||||
/// Start a collapsible UI section with external state management
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_state_push(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states *state);
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -3017,7 +3017,7 @@ NK_API void nk_tree_pop(struct nk_context*);
|
||||
*/
|
||||
NK_API nk_bool nk_tree_state_push(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states *state);
|
||||
/*/// #### nk_tree_state_image_push
|
||||
/// Start a collapsable UI section with image and label header and external state management
|
||||
/// Start a collapsible UI section with image and label header and external state management
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_state_image_push(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states *state);
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -3244,10 +3244,10 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
/// or by directly typing a number.
|
||||
///
|
||||
/// #### Usage
|
||||
/// Each property requires a unique name for identifaction that is also used for
|
||||
/// Each property requires a unique name for identification that is also used for
|
||||
/// displaying a label. If you want to use the same name multiple times make sure
|
||||
/// add a '#' before your name. The '#' will not be shown but will generate a
|
||||
/// unique ID. Each propery also takes in a minimum and maximum value. If you want
|
||||
/// unique ID. Each property also takes in a minimum and maximum value. If you want
|
||||
/// to make use of the complete number range of a type just use the provided
|
||||
/// type limits from `limits.h`. For example `INT_MIN` and `INT_MAX` for
|
||||
/// `nk_property_int` and `nk_propertyi`. In additional each property takes in
|
||||
@ -3301,16 +3301,16 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
/// #### Reference
|
||||
/// Function | Description
|
||||
/// --------------------|-------------------------------------------
|
||||
/// nk_property_int | Integer property directly modifing a passed in value
|
||||
/// nk_property_float | Float property directly modifing a passed in value
|
||||
/// nk_property_double | Double property directly modifing a passed in value
|
||||
/// nk_property_int | Integer property directly modifying a passed in value
|
||||
/// nk_property_float | Float property directly modifying a passed in value
|
||||
/// nk_property_double | Double property directly modifying a passed in value
|
||||
/// nk_propertyi | Integer property returning the modified int value
|
||||
/// nk_propertyf | Float property returning the modified float value
|
||||
/// nk_propertyd | Double property returning the modified double value
|
||||
///
|
||||
*/
|
||||
/*/// #### nk_property_int
|
||||
/// Integer property directly modifing a passed in value
|
||||
/// Integer property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3331,7 +3331,7 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
*/
|
||||
NK_API void nk_property_int(struct nk_context*, const char *name, int min, int *val, int max, int step, float inc_per_pixel);
|
||||
/*/// #### nk_property_float
|
||||
/// Float property directly modifing a passed in value
|
||||
/// Float property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3352,7 +3352,7 @@ NK_API void nk_property_int(struct nk_context*, const char *name, int min, int *
|
||||
*/
|
||||
NK_API void nk_property_float(struct nk_context*, const char *name, float min, float *val, float max, float step, float inc_per_pixel);
|
||||
/*/// #### nk_property_double
|
||||
/// Double property directly modifing a passed in value
|
||||
/// Double property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3373,7 +3373,7 @@ NK_API void nk_property_float(struct nk_context*, const char *name, float min, f
|
||||
*/
|
||||
NK_API void nk_property_double(struct nk_context*, const char *name, double min, double *val, double max, double step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyi
|
||||
/// Integer property modifing a passed in value and returning the new value
|
||||
/// Integer property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3396,7 +3396,7 @@ NK_API void nk_property_double(struct nk_context*, const char *name, double min,
|
||||
*/
|
||||
NK_API int nk_propertyi(struct nk_context*, const char *name, int min, int val, int max, int step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyf
|
||||
/// Float property modifing a passed in value and returning the new value
|
||||
/// Float property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3419,7 +3419,7 @@ NK_API int nk_propertyi(struct nk_context*, const char *name, int min, int val,
|
||||
*/
|
||||
NK_API float nk_propertyf(struct nk_context*, const char *name, float min, float val, float max, float step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyd
|
||||
/// Float property modifing a passed in value and returning the new value
|
||||
/// Float property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -4012,7 +4012,7 @@ struct nk_font_config {
|
||||
unsigned char pixel_snap;
|
||||
/* align every character to pixel boundary (if true set oversample (1,1)) */
|
||||
unsigned char oversample_v, oversample_h;
|
||||
/* rasterize at hight quality for sub-pixel position */
|
||||
/* rasterize at high quality for sub-pixel position */
|
||||
unsigned char padding[3];
|
||||
|
||||
float size;
|
||||
@ -9604,14 +9604,14 @@ nk_draw_list_alloc_vertices(struct nk_draw_list *list, nk_size count)
|
||||
/* This assert triggers because your are drawing a lot of stuff and nuklear
|
||||
* defined `nk_draw_index` as `nk_ushort` to safe space be default.
|
||||
*
|
||||
* So you reached the maximum number of indicies or rather vertexes.
|
||||
* To solve this issue please change typdef `nk_draw_index` to `nk_uint`
|
||||
* So you reached the maximum number of indices or rather vertexes.
|
||||
* To solve this issue please change typedef `nk_draw_index` to `nk_uint`
|
||||
* and don't forget to specify the new element size in your drawing
|
||||
* backend (OpenGL, DirectX, ...). For example in OpenGL for `glDrawElements`
|
||||
* instead of specifing `GL_UNSIGNED_SHORT` you have to define `GL_UNSIGNED_INT`.
|
||||
* instead of specifying `GL_UNSIGNED_SHORT` you have to define `GL_UNSIGNED_INT`.
|
||||
* Sorry for the inconvenience. */
|
||||
if(sizeof(nk_draw_index)==2) NK_ASSERT((list->vertex_count < NK_USHORT_MAX &&
|
||||
"To many verticies for 16-bit vertex indicies. Please read comment above on how to solve this problem"));
|
||||
"To many vertices for 16-bit vertex indices. Please read comment above on how to solve this problem"));
|
||||
return vtx;
|
||||
}
|
||||
NK_INTERN nk_draw_index*
|
||||
@ -11026,7 +11026,7 @@ static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0
|
||||
if (node->y > min_y) {
|
||||
/* raise min_y higher. */
|
||||
/* we've accounted for all waste up to min_y, */
|
||||
/* but we'll now add more waste for everything we've visted */
|
||||
/* but we'll now add more waste for everything we've visited */
|
||||
waste_area += visited_width * (node->y - min_y);
|
||||
min_y = node->y;
|
||||
/* the first time through, visited_width might be reduced */
|
||||
@ -11992,7 +11992,7 @@ STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h
|
||||
STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip);
|
||||
/* If skip != 0, this tells stb_truetype to skip any codepoints for which */
|
||||
/* there is no corresponding glyph. If skip=0, which is the default, then */
|
||||
/* codepoints without a glyph recived the font's "missing character" glyph, */
|
||||
/* codepoints without a glyph received the font's "missing character" glyph, */
|
||||
/* typically an empty box by convention. */
|
||||
|
||||
STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, /* same data as above */
|
||||
@ -29617,7 +29617,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2018/01/31 (3.00.5) - Fixed overcalculation of cursor data in font baking process.
|
||||
/// - 2018/01/31 (3.00.4) - Removed name collision with stb_truetype.
|
||||
/// - 2018/01/28 (3.00.3) - Fixed panel window border drawing bug.
|
||||
/// - 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separed group identifier and title.
|
||||
/// - 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separated group identifier and title.
|
||||
/// - 2018/01/07 (3.00.1) - Started to change documentation style.
|
||||
/// - 2018/01/05 (3.00.0) - BREAKING CHANGE: The previous color picker API was broken
|
||||
/// because of conversions between float and byte color representation.
|
||||
@ -29628,13 +29628,13 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2017/12/23 (2.00.7) - Fixed small warning.
|
||||
/// - 2017/12/23 (2.00.7) - Fixed `nk_edit_buffer` behavior if activated to allow input.
|
||||
/// - 2017/12/23 (2.00.7) - Fixed modifyable progressbar dragging visuals and input behavior.
|
||||
/// - 2017/12/04 (2.00.6) - Added formated string tooltip widget.
|
||||
/// - 2017/12/04 (2.00.6) - Added formatted string tooltip widget.
|
||||
/// - 2017/11/18 (2.00.5) - Fixed window becoming hidden with flag `NK_WINDOW_NO_INPUT`.
|
||||
/// - 2017/11/15 (2.00.4) - Fixed font merging.
|
||||
/// - 2017/11/07 (2.00.3) - Fixed window size and position modifier functions.
|
||||
/// - 2017/09/14 (2.00.2) - Fixed `nk_edit_buffer` and `nk_edit_focus` behavior.
|
||||
/// - 2017/09/14 (2.00.1) - Fixed window closing behavior.
|
||||
/// - 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifing window position and size funtions now
|
||||
/// - 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifying window position and size functions now
|
||||
/// require the name of the window and must happen outside the window
|
||||
/// building process (between function call nk_begin and nk_end).
|
||||
/// - 2017/09/11 (1.40.9) - Fixed window background flag if background window is declared last.
|
||||
@ -29661,7 +29661,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2017/06/08 (1.39.0) - Added function to retrieve window space without calling a `nk_layout_xxx` function.
|
||||
/// - 2017/06/06 (1.38.5) - Fixed `nk_convert` return flag for command buffer.
|
||||
/// - 2017/05/23 (1.38.4) - Fixed activation behavior for widgets partially clipped.
|
||||
/// - 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundries.
|
||||
/// - 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundaries.
|
||||
/// - 2017/05/09 (1.38.2) - Fixed vertical scrollbar drawing with not enough space.
|
||||
/// - 2017/05/09 (1.38.1) - Fixed scaler dragging behavior if window size hits minimum size.
|
||||
/// - 2017/05/06 (1.38.0) - Added platform double-click support.
|
||||
@ -29678,7 +29678,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2017/03/04 (1.34.2) - Fixed text edit filtering.
|
||||
/// - 2017/03/04 (1.34.1) - Fixed group closable flag.
|
||||
/// - 2017/02/25 (1.34.0) - Added custom draw command for better language binding support.
|
||||
/// - 2017/01/24 (1.33.0) - Added programatic way of remove edit focus.
|
||||
/// - 2017/01/24 (1.33.0) - Added programmatic way to remove edit focus.
|
||||
/// - 2017/01/24 (1.32.3) - Fixed wrong define for basic type definitions for windows.
|
||||
/// - 2017/01/21 (1.32.2) - Fixed input capture from hidden or closed windows.
|
||||
/// - 2017/01/21 (1.32.1) - Fixed slider behavior and drawing.
|
||||
@ -29723,7 +29723,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// text in every edit widget if one of them is scrolled.
|
||||
/// - 2016/09/28 (1.22.3) - Fixed small bug in edit widgets if not active. The wrong
|
||||
/// text length is passed. It should have been in bytes but
|
||||
/// was passed as glyphes.
|
||||
/// was passed as glyphs.
|
||||
/// - 2016/09/20 (1.22.2) - Fixed color button size calculation.
|
||||
/// - 2016/09/20 (1.22.1) - Fixed some `nk_vsnprintf` behavior bugs and removed `<stdio.h>`
|
||||
/// again from `NK_INCLUDE_STANDARD_VARARGS`.
|
||||
@ -29803,13 +29803,13 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2016/08/16 (1.09.5) - Fixed ROM mode for deeper levels of popup windows parents.
|
||||
/// - 2016/08/15 (1.09.4) - Editbox are now still active if enter was pressed with flag
|
||||
/// `NK_EDIT_SIG_ENTER`. Main reasoning is to be able to keep
|
||||
/// typing after commiting.
|
||||
/// typing after committing.
|
||||
/// - 2016/08/15 (1.09.4) - Removed redundant code.
|
||||
/// - 2016/08/15 (1.09.4) - Fixed negative numbers in `nk_strtoi` and remove unused variable.
|
||||
/// - 2016/08/15 (1.09.3) - Fixed `NK_WINDOW_BACKGROUND` flag behavior to select a background
|
||||
/// window only as selected by hovering and not by clicking.
|
||||
/// - 2016/08/14 (1.09.2) - Fixed a bug in font atlas which caused wrong loading
|
||||
/// of glyphes for font with multiple ranges.
|
||||
/// of glyphs for font with multiple ranges.
|
||||
/// - 2016/08/12 (1.09.1) - Added additional function to check if window is currently
|
||||
/// hidden and therefore not visible.
|
||||
/// - 2016/08/12 (1.09.1) - nk_window_is_closed now queries the correct flag `NK_WINDOW_CLOSED`
|
||||
@ -29825,8 +29825,8 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// precision.
|
||||
/// - 2016/08/08 (1.07.2) - Fixed compiling error without define `NK_INCLUDE_FIXED_TYPE`.
|
||||
/// - 2016/08/08 (1.07.1) - Fixed possible floating point error inside `nk_widget` leading
|
||||
/// to wrong wiget width calculation which results in widgets falsly
|
||||
/// becomming tagged as not inside window and cannot be accessed.
|
||||
/// to wrong wiget width calculation which results in widgets falsely
|
||||
/// becoming tagged as not inside window and cannot be accessed.
|
||||
/// - 2016/08/08 (1.07.0) - Nuklear now differentiates between hiding a window (NK_WINDOW_HIDDEN) and
|
||||
/// closing a window (NK_WINDOW_CLOSED). A window can be hidden/shown
|
||||
/// by using `nk_window_show` and closed by either clicking the close
|
||||
@ -29873,7 +29873,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
|
||||
/// - 2016/07/15 (1.01.0) - Removed internal font baking API and simplified
|
||||
/// font atlas memory management by converting pointer
|
||||
/// arrays for fonts and font configurations to lists.
|
||||
/// - 2016/07/15 (1.00.0) - Changed button API to use context dependend button
|
||||
/// - 2016/07/15 (1.00.0) - Changed button API to use context dependent button
|
||||
/// behavior instead of passing it for every function call.
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/// ## Gallery
|
||||
|
@ -65,7 +65,7 @@
|
||||
/// - 2018/01/31 (3.00.5) - Fixed overcalculation of cursor data in font baking process.
|
||||
/// - 2018/01/31 (3.00.4) - Removed name collision with stb_truetype.
|
||||
/// - 2018/01/28 (3.00.3) - Fixed panel window border drawing bug.
|
||||
/// - 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separed group identifier and title.
|
||||
/// - 2018/01/12 (3.00.2) - Added `nk_group_begin_titled` for separated group identifier and title.
|
||||
/// - 2018/01/07 (3.00.1) - Started to change documentation style.
|
||||
/// - 2018/01/05 (3.00.0) - BREAKING CHANGE: The previous color picker API was broken
|
||||
/// because of conversions between float and byte color representation.
|
||||
@ -76,13 +76,13 @@
|
||||
/// - 2017/12/23 (2.00.7) - Fixed small warning.
|
||||
/// - 2017/12/23 (2.00.7) - Fixed `nk_edit_buffer` behavior if activated to allow input.
|
||||
/// - 2017/12/23 (2.00.7) - Fixed modifyable progressbar dragging visuals and input behavior.
|
||||
/// - 2017/12/04 (2.00.6) - Added formated string tooltip widget.
|
||||
/// - 2017/12/04 (2.00.6) - Added formatted string tooltip widget.
|
||||
/// - 2017/11/18 (2.00.5) - Fixed window becoming hidden with flag `NK_WINDOW_NO_INPUT`.
|
||||
/// - 2017/11/15 (2.00.4) - Fixed font merging.
|
||||
/// - 2017/11/07 (2.00.3) - Fixed window size and position modifier functions.
|
||||
/// - 2017/09/14 (2.00.2) - Fixed `nk_edit_buffer` and `nk_edit_focus` behavior.
|
||||
/// - 2017/09/14 (2.00.1) - Fixed window closing behavior.
|
||||
/// - 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifing window position and size funtions now
|
||||
/// - 2017/09/14 (2.00.0) - BREAKING CHANGE: Modifying window position and size functions now
|
||||
/// require the name of the window and must happen outside the window
|
||||
/// building process (between function call nk_begin and nk_end).
|
||||
/// - 2017/09/11 (1.40.9) - Fixed window background flag if background window is declared last.
|
||||
@ -109,7 +109,7 @@
|
||||
/// - 2017/06/08 (1.39.0) - Added function to retrieve window space without calling a `nk_layout_xxx` function.
|
||||
/// - 2017/06/06 (1.38.5) - Fixed `nk_convert` return flag for command buffer.
|
||||
/// - 2017/05/23 (1.38.4) - Fixed activation behavior for widgets partially clipped.
|
||||
/// - 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundries.
|
||||
/// - 2017/05/10 (1.38.3) - Fixed wrong min window size mouse scaling over boundaries.
|
||||
/// - 2017/05/09 (1.38.2) - Fixed vertical scrollbar drawing with not enough space.
|
||||
/// - 2017/05/09 (1.38.1) - Fixed scaler dragging behavior if window size hits minimum size.
|
||||
/// - 2017/05/06 (1.38.0) - Added platform double-click support.
|
||||
@ -126,7 +126,7 @@
|
||||
/// - 2017/03/04 (1.34.2) - Fixed text edit filtering.
|
||||
/// - 2017/03/04 (1.34.1) - Fixed group closable flag.
|
||||
/// - 2017/02/25 (1.34.0) - Added custom draw command for better language binding support.
|
||||
/// - 2017/01/24 (1.33.0) - Added programatic way of remove edit focus.
|
||||
/// - 2017/01/24 (1.33.0) - Added programmatic way to remove edit focus.
|
||||
/// - 2017/01/24 (1.32.3) - Fixed wrong define for basic type definitions for windows.
|
||||
/// - 2017/01/21 (1.32.2) - Fixed input capture from hidden or closed windows.
|
||||
/// - 2017/01/21 (1.32.1) - Fixed slider behavior and drawing.
|
||||
@ -171,7 +171,7 @@
|
||||
/// text in every edit widget if one of them is scrolled.
|
||||
/// - 2016/09/28 (1.22.3) - Fixed small bug in edit widgets if not active. The wrong
|
||||
/// text length is passed. It should have been in bytes but
|
||||
/// was passed as glyphes.
|
||||
/// was passed as glyphs.
|
||||
/// - 2016/09/20 (1.22.2) - Fixed color button size calculation.
|
||||
/// - 2016/09/20 (1.22.1) - Fixed some `nk_vsnprintf` behavior bugs and removed `<stdio.h>`
|
||||
/// again from `NK_INCLUDE_STANDARD_VARARGS`.
|
||||
@ -251,13 +251,13 @@
|
||||
/// - 2016/08/16 (1.09.5) - Fixed ROM mode for deeper levels of popup windows parents.
|
||||
/// - 2016/08/15 (1.09.4) - Editbox are now still active if enter was pressed with flag
|
||||
/// `NK_EDIT_SIG_ENTER`. Main reasoning is to be able to keep
|
||||
/// typing after commiting.
|
||||
/// typing after committing.
|
||||
/// - 2016/08/15 (1.09.4) - Removed redundant code.
|
||||
/// - 2016/08/15 (1.09.4) - Fixed negative numbers in `nk_strtoi` and remove unused variable.
|
||||
/// - 2016/08/15 (1.09.3) - Fixed `NK_WINDOW_BACKGROUND` flag behavior to select a background
|
||||
/// window only as selected by hovering and not by clicking.
|
||||
/// - 2016/08/14 (1.09.2) - Fixed a bug in font atlas which caused wrong loading
|
||||
/// of glyphes for font with multiple ranges.
|
||||
/// of glyphs for font with multiple ranges.
|
||||
/// - 2016/08/12 (1.09.1) - Added additional function to check if window is currently
|
||||
/// hidden and therefore not visible.
|
||||
/// - 2016/08/12 (1.09.1) - nk_window_is_closed now queries the correct flag `NK_WINDOW_CLOSED`
|
||||
@ -273,8 +273,8 @@
|
||||
/// precision.
|
||||
/// - 2016/08/08 (1.07.2) - Fixed compiling error without define `NK_INCLUDE_FIXED_TYPE`.
|
||||
/// - 2016/08/08 (1.07.1) - Fixed possible floating point error inside `nk_widget` leading
|
||||
/// to wrong wiget width calculation which results in widgets falsly
|
||||
/// becomming tagged as not inside window and cannot be accessed.
|
||||
/// to wrong wiget width calculation which results in widgets falsely
|
||||
/// becoming tagged as not inside window and cannot be accessed.
|
||||
/// - 2016/08/08 (1.07.0) - Nuklear now differentiates between hiding a window (NK_WINDOW_HIDDEN) and
|
||||
/// closing a window (NK_WINDOW_CLOSED). A window can be hidden/shown
|
||||
/// by using `nk_window_show` and closed by either clicking the close
|
||||
@ -321,6 +321,6 @@
|
||||
/// - 2016/07/15 (1.01.0) - Removed internal font baking API and simplified
|
||||
/// font atlas memory management by converting pointer
|
||||
/// arrays for fonts and font configurations to lists.
|
||||
/// - 2016/07/15 (1.00.0) - Changed button API to use context dependend button
|
||||
/// - 2016/07/15 (1.00.0) - Changed button API to use context dependent button
|
||||
/// behavior instead of passing it for every function call.
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -76,7 +76,7 @@
|
||||
/// and does not contain the actual implementation. <br /><br />
|
||||
///
|
||||
/// The implementation mode requires to define the preprocessor macro
|
||||
/// NK_IMPLEMENTATION in *one* .c/.cpp file before #includeing this file, e.g.:
|
||||
/// NK_IMPLEMENTATION in *one* .c/.cpp file before #including this file, e.g.:
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C
|
||||
/// #define NK_IMPLEMENTATION
|
||||
|
@ -491,7 +491,7 @@ NK_API void nk_set_user_data(struct nk_context*, nk_handle handle);
|
||||
///
|
||||
/// #### Usage
|
||||
/// Input state needs to be provided to nuklear by first calling `nk_input_begin`
|
||||
/// which resets internal state like delta mouse position and button transistions.
|
||||
/// which resets internal state like delta mouse position and button transitions.
|
||||
/// After `nk_input_begin` all current input state needs to be provided. This includes
|
||||
/// mouse motion, button and key pressed and released, text input and scrolling.
|
||||
/// Both event- or state-based input handling are supported by this API
|
||||
@ -1034,7 +1034,7 @@ NK_API const struct nk_command* nk__next(struct nk_context*, const struct nk_com
|
||||
/// NK_CONVERT_INVALID_PARAM | An invalid argument was passed in the function call
|
||||
/// NK_CONVERT_COMMAND_BUFFER_FULL | The provided buffer for storing draw commands is full or failed to allocate more memory
|
||||
/// NK_CONVERT_VERTEX_BUFFER_FULL | The provided buffer for storing vertices is full or failed to allocate more memory
|
||||
/// NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indicies is full or failed to allocate more memory
|
||||
/// NK_CONVERT_ELEMENT_BUFFER_FULL | The provided buffer for storing indices is full or failed to allocate more memory
|
||||
*/
|
||||
NK_API nk_flags nk_convert(struct nk_context*, struct nk_buffer *cmds, struct nk_buffer *vertices, struct nk_buffer *elements, const struct nk_convert_config*);
|
||||
/*/// #### nk__draw_begin
|
||||
@ -1241,8 +1241,8 @@ NK_API const struct nk_draw_command* nk__draw_next(const struct nk_draw_command*
|
||||
/// #### nk_collapse_states
|
||||
/// State | Description
|
||||
/// ----------------|-----------------------------------------------------------
|
||||
/// __NK_MINIMIZED__| UI section is collased and not visibile until maximized
|
||||
/// __NK_MAXIMIZED__| UI section is extended and visibile until minimized
|
||||
/// __NK_MINIMIZED__| UI section is collased and not visible until maximized
|
||||
/// __NK_MAXIMIZED__| UI section is extended and visible until minimized
|
||||
/// <br /><br />
|
||||
*/
|
||||
enum nk_panel_flags {
|
||||
@ -2391,7 +2391,7 @@ NK_API void nk_spacer(struct nk_context* );
|
||||
/// widgets inside the window if the value is not 0.
|
||||
/// Nesting groups is possible and even encouraged since many layouting schemes
|
||||
/// can only be achieved by nesting. Groups, unlike windows, need `nk_group_end`
|
||||
/// to be only called if the corosponding `nk_group_begin_xxx` call does not return 0:
|
||||
/// to be only called if the corresponding `nk_group_begin_xxx` call does not return 0:
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// if (nk_group_begin_xxx(ctx, ...) {
|
||||
@ -2451,7 +2451,7 @@ NK_API void nk_spacer(struct nk_context* );
|
||||
/// Function | Description
|
||||
/// --------------------------------|-------------------------------------------
|
||||
/// nk_group_begin | Start a new group with internal scrollbar handling
|
||||
/// nk_group_begin_titled | Start a new group with separeted name and title and internal scrollbar handling
|
||||
/// nk_group_begin_titled | Start a new group with separated name and title and internal scrollbar handling
|
||||
/// nk_group_end | Ends a group. Should only be called if nk_group_begin returned non-zero
|
||||
/// nk_group_scrolled_offset_begin | Start a new group with manual separated handling of scrollbar x- and y-offset
|
||||
/// nk_group_scrolled_begin | Start a new group with manual scrollbar handling
|
||||
@ -2581,13 +2581,13 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*
|
||||
* =============================================================================
|
||||
/// ### Tree
|
||||
/// Trees represent two different concept. First the concept of a collapsable
|
||||
/// UI section that can be either in a hidden or visibile state. They allow the UI
|
||||
/// Trees represent two different concept. First the concept of a collapsible
|
||||
/// UI section that can be either in a hidden or visible state. They allow the UI
|
||||
/// user to selectively minimize the current set of visible UI to comprehend.
|
||||
/// The second concept are tree widgets for visual UI representation of trees.<br /><br />
|
||||
///
|
||||
/// Trees thereby can be nested for tree representations and multiple nested
|
||||
/// collapsable UI sections. All trees are started by calling of the
|
||||
/// collapsible UI sections. All trees are started by calling of the
|
||||
/// `nk_tree_xxx_push_tree` functions and ended by calling one of the
|
||||
/// `nk_tree_xxx_pop_xxx()` functions. Each starting functions takes a title label
|
||||
/// and optionally an image to be displayed and the initial collapse state from
|
||||
@ -2602,7 +2602,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
///
|
||||
/// #### Usage
|
||||
/// To create a tree you have to call one of the seven `nk_tree_xxx_push_xxx`
|
||||
/// functions to start a collapsable UI section and `nk_tree_xxx_pop` to mark the
|
||||
/// functions to start a collapsible UI section and `nk_tree_xxx_pop` to mark the
|
||||
/// end.
|
||||
/// Each starting function will either return `false(0)` if the tree is collapsed
|
||||
/// or hidden and therefore does not need to be filled with content or `true(1)`
|
||||
@ -2627,28 +2627,28 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
/// #### Reference
|
||||
/// Function | Description
|
||||
/// ----------------------------|-------------------------------------------
|
||||
/// nk_tree_push | Start a collapsable UI section with internal state management
|
||||
/// nk_tree_push_id | Start a collapsable UI section with internal state management callable in a look
|
||||
/// nk_tree_push_hashed | Start a collapsable UI section with internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_image_push | Start a collapsable UI section with image and label header
|
||||
/// nk_tree_image_push_id | Start a collapsable UI section with image and label header and internal state management callable in a look
|
||||
/// nk_tree_image_push_hashed | Start a collapsable UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_pop | Ends a collapsable UI section
|
||||
/// nk_tree_push | Start a collapsible UI section with internal state management
|
||||
/// nk_tree_push_id | Start a collapsible UI section with internal state management callable in a look
|
||||
/// nk_tree_push_hashed | Start a collapsible UI section with internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_image_push | Start a collapsible UI section with image and label header
|
||||
/// nk_tree_image_push_id | Start a collapsible UI section with image and label header and internal state management callable in a look
|
||||
/// nk_tree_image_push_hashed | Start a collapsible UI section with image and label header and internal state management with full control over internal unique ID use to store state
|
||||
/// nk_tree_pop | Ends a collapsible UI section
|
||||
//
|
||||
/// nk_tree_state_push | Start a collapsable UI section with external state management
|
||||
/// nk_tree_state_image_push | Start a collapsable UI section with image and label header and external state management
|
||||
/// nk_tree_state_push | Start a collapsible UI section with external state management
|
||||
/// nk_tree_state_image_push | Start a collapsible UI section with image and label header and external state management
|
||||
/// nk_tree_state_pop | Ends a collapsabale UI section
|
||||
///
|
||||
/// #### nk_tree_type
|
||||
/// Flag | Description
|
||||
/// ----------------|----------------------------------------
|
||||
/// NK_TREE_NODE | Highlighted tree header to mark a collapsable UI section
|
||||
/// NK_TREE_TAB | Non-highighted tree header closer to tree representations
|
||||
/// NK_TREE_NODE | Highlighted tree header to mark a collapsible UI section
|
||||
/// NK_TREE_TAB | Non-highlighted tree header closer to tree representations
|
||||
*/
|
||||
/*/// #### nk_tree_push
|
||||
/// Starts a collapsable UI section with internal state management
|
||||
/// Starts a collapsible UI section with internal state management
|
||||
/// !!! WARNING
|
||||
/// To keep track of the runtime tree collapsable state this function uses
|
||||
/// To keep track of the runtime tree collapsible state this function uses
|
||||
/// defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
/// to call this function in a loop please use `nk_tree_push_id` or
|
||||
/// `nk_tree_push_hashed` instead.
|
||||
@ -2668,7 +2668,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
#define nk_tree_push(ctx, type, title, state) nk_tree_push_hashed(ctx, type, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),__LINE__)
|
||||
/*/// #### nk_tree_push_id
|
||||
/// Starts a collapsable UI section with internal state management callable in a look
|
||||
/// Starts a collapsible UI section with internal state management callable in a look
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// #define nk_tree_push_id(ctx, type, title, state, id)
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -2685,7 +2685,7 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
#define nk_tree_push_id(ctx, type, title, state, id) nk_tree_push_hashed(ctx, type, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),id)
|
||||
/*/// #### nk_tree_push_hashed
|
||||
/// Start a collapsable UI section with internal state management with full
|
||||
/// Start a collapsible UI section with internal state management with full
|
||||
/// control over internal unique ID used to store state
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -2705,9 +2705,9 @@ NK_API void nk_group_set_scroll(struct nk_context*, const char *id, nk_uint x_of
|
||||
*/
|
||||
NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
/*/// #### nk_tree_image_push
|
||||
/// Start a collapsable UI section with image and label header
|
||||
/// Start a collapsible UI section with image and label header
|
||||
/// !!! WARNING
|
||||
/// To keep track of the runtime tree collapsable state this function uses
|
||||
/// To keep track of the runtime tree collapsible state this function uses
|
||||
/// defines `__FILE__` and `__LINE__` to generate a unique ID. If you want
|
||||
/// to call this function in a loop please use `nk_tree_image_push_id` or
|
||||
/// `nk_tree_image_push_hashed` instead.
|
||||
@ -2728,7 +2728,7 @@ NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const
|
||||
*/
|
||||
#define nk_tree_image_push(ctx, type, img, title, state) nk_tree_image_push_hashed(ctx, type, img, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),__LINE__)
|
||||
/*/// #### nk_tree_image_push_id
|
||||
/// Start a collapsable UI section with image and label header and internal state
|
||||
/// Start a collapsible UI section with image and label header and internal state
|
||||
/// management callable in a look
|
||||
///
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
@ -2748,7 +2748,7 @@ NK_API nk_bool nk_tree_push_hashed(struct nk_context*, enum nk_tree_type, const
|
||||
*/
|
||||
#define nk_tree_image_push_id(ctx, type, img, title, state, id) nk_tree_image_push_hashed(ctx, type, img, title, state, NK_FILE_LINE,nk_strlen(NK_FILE_LINE),id)
|
||||
/*/// #### nk_tree_image_push_hashed
|
||||
/// Start a collapsable UI section with internal state management with full
|
||||
/// Start a collapsible UI section with internal state management with full
|
||||
/// control over internal unique ID used to store state
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_image_push_hashed(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states initial_state, const char *hash, int len,int seed);
|
||||
@ -2780,7 +2780,7 @@ NK_API nk_bool nk_tree_image_push_hashed(struct nk_context*, enum nk_tree_type,
|
||||
*/
|
||||
NK_API void nk_tree_pop(struct nk_context*);
|
||||
/*/// #### nk_tree_state_push
|
||||
/// Start a collapsable UI section with external state management
|
||||
/// Start a collapsible UI section with external state management
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_state_push(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states *state);
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -2796,7 +2796,7 @@ NK_API void nk_tree_pop(struct nk_context*);
|
||||
*/
|
||||
NK_API nk_bool nk_tree_state_push(struct nk_context*, enum nk_tree_type, const char *title, enum nk_collapse_states *state);
|
||||
/*/// #### nk_tree_state_image_push
|
||||
/// Start a collapsable UI section with image and label header and external state management
|
||||
/// Start a collapsible UI section with image and label header and external state management
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
|
||||
/// nk_bool nk_tree_state_image_push(struct nk_context*, enum nk_tree_type, struct nk_image, const char *title, enum nk_collapse_states *state);
|
||||
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -3023,10 +3023,10 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
/// or by directly typing a number.
|
||||
///
|
||||
/// #### Usage
|
||||
/// Each property requires a unique name for identifaction that is also used for
|
||||
/// Each property requires a unique name for identification that is also used for
|
||||
/// displaying a label. If you want to use the same name multiple times make sure
|
||||
/// add a '#' before your name. The '#' will not be shown but will generate a
|
||||
/// unique ID. Each propery also takes in a minimum and maximum value. If you want
|
||||
/// unique ID. Each property also takes in a minimum and maximum value. If you want
|
||||
/// to make use of the complete number range of a type just use the provided
|
||||
/// type limits from `limits.h`. For example `INT_MIN` and `INT_MAX` for
|
||||
/// `nk_property_int` and `nk_propertyi`. In additional each property takes in
|
||||
@ -3080,16 +3080,16 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
/// #### Reference
|
||||
/// Function | Description
|
||||
/// --------------------|-------------------------------------------
|
||||
/// nk_property_int | Integer property directly modifing a passed in value
|
||||
/// nk_property_float | Float property directly modifing a passed in value
|
||||
/// nk_property_double | Double property directly modifing a passed in value
|
||||
/// nk_property_int | Integer property directly modifying a passed in value
|
||||
/// nk_property_float | Float property directly modifying a passed in value
|
||||
/// nk_property_double | Double property directly modifying a passed in value
|
||||
/// nk_propertyi | Integer property returning the modified int value
|
||||
/// nk_propertyf | Float property returning the modified float value
|
||||
/// nk_propertyd | Double property returning the modified double value
|
||||
///
|
||||
*/
|
||||
/*/// #### nk_property_int
|
||||
/// Integer property directly modifing a passed in value
|
||||
/// Integer property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3110,7 +3110,7 @@ NK_API nk_bool nk_color_pick(struct nk_context*, struct nk_colorf*, enum nk_colo
|
||||
*/
|
||||
NK_API void nk_property_int(struct nk_context*, const char *name, int min, int *val, int max, int step, float inc_per_pixel);
|
||||
/*/// #### nk_property_float
|
||||
/// Float property directly modifing a passed in value
|
||||
/// Float property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3131,7 +3131,7 @@ NK_API void nk_property_int(struct nk_context*, const char *name, int min, int *
|
||||
*/
|
||||
NK_API void nk_property_float(struct nk_context*, const char *name, float min, float *val, float max, float step, float inc_per_pixel);
|
||||
/*/// #### nk_property_double
|
||||
/// Double property directly modifing a passed in value
|
||||
/// Double property directly modifying a passed in value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3152,7 +3152,7 @@ NK_API void nk_property_float(struct nk_context*, const char *name, float min, f
|
||||
*/
|
||||
NK_API void nk_property_double(struct nk_context*, const char *name, double min, double *val, double max, double step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyi
|
||||
/// Integer property modifing a passed in value and returning the new value
|
||||
/// Integer property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3175,7 +3175,7 @@ NK_API void nk_property_double(struct nk_context*, const char *name, double min,
|
||||
*/
|
||||
NK_API int nk_propertyi(struct nk_context*, const char *name, int min, int val, int max, int step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyf
|
||||
/// Float property modifing a passed in value and returning the new value
|
||||
/// Float property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3198,7 +3198,7 @@ NK_API int nk_propertyi(struct nk_context*, const char *name, int min, int val,
|
||||
*/
|
||||
NK_API float nk_propertyf(struct nk_context*, const char *name, float min, float val, float max, float step, float inc_per_pixel);
|
||||
/*/// #### nk_propertyd
|
||||
/// Float property modifing a passed in value and returning the new value
|
||||
/// Float property modifying a passed in value and returning the new value
|
||||
/// !!! WARNING
|
||||
/// To generate a unique property ID using the same label make sure to insert
|
||||
/// a `#` at the beginning. It will not be shown but guarantees correct behavior.
|
||||
@ -3791,7 +3791,7 @@ struct nk_font_config {
|
||||
unsigned char pixel_snap;
|
||||
/* align every character to pixel boundary (if true set oversample (1,1)) */
|
||||
unsigned char oversample_v, oversample_h;
|
||||
/* rasterize at hight quality for sub-pixel position */
|
||||
/* rasterize at high quality for sub-pixel position */
|
||||
unsigned char padding[3];
|
||||
|
||||
float size;
|
||||
|
@ -227,14 +227,14 @@ nk_draw_list_alloc_vertices(struct nk_draw_list *list, nk_size count)
|
||||
/* This assert triggers because your are drawing a lot of stuff and nuklear
|
||||
* defined `nk_draw_index` as `nk_ushort` to safe space be default.
|
||||
*
|
||||
* So you reached the maximum number of indicies or rather vertexes.
|
||||
* To solve this issue please change typdef `nk_draw_index` to `nk_uint`
|
||||
* So you reached the maximum number of indices or rather vertexes.
|
||||
* To solve this issue please change typedef `nk_draw_index` to `nk_uint`
|
||||
* and don't forget to specify the new element size in your drawing
|
||||
* backend (OpenGL, DirectX, ...). For example in OpenGL for `glDrawElements`
|
||||
* instead of specifing `GL_UNSIGNED_SHORT` you have to define `GL_UNSIGNED_INT`.
|
||||
* instead of specifying `GL_UNSIGNED_SHORT` you have to define `GL_UNSIGNED_INT`.
|
||||
* Sorry for the inconvenience. */
|
||||
if(sizeof(nk_draw_index)==2) NK_ASSERT((list->vertex_count < NK_USHORT_MAX &&
|
||||
"To many verticies for 16-bit vertex indicies. Please read comment above on how to solve this problem"));
|
||||
"To many vertices for 16-bit vertex indices. Please read comment above on how to solve this problem"));
|
||||
return vtx;
|
||||
}
|
||||
NK_INTERN nk_draw_index*
|
||||
|
@ -310,7 +310,7 @@ static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0
|
||||
if (node->y > min_y) {
|
||||
// raise min_y higher.
|
||||
// we've accounted for all waste up to min_y,
|
||||
// but we'll now add more waste for everything we've visted
|
||||
// but we'll now add more waste for everything we've visited
|
||||
waste_area += visited_width * (node->y - min_y);
|
||||
min_y = node->y;
|
||||
// the first time through, visited_width might be reduced
|
||||
|
@ -647,7 +647,7 @@ STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h
|
||||
STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip);
|
||||
// If skip != 0, this tells stb_truetype to skip any codepoints for which
|
||||
// there is no corresponding glyph. If skip=0, which is the default, then
|
||||
// codepoints without a glyph recived the font's "missing character" glyph,
|
||||
// codepoints without a glyph received the font's "missing character" glyph,
|
||||
// typically an empty box by convention.
|
||||
|
||||
STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, // same data as above
|
||||
|
Loading…
Reference in New Issue
Block a user