Caro visitante,
este repositório, rastreador de problemas, etc. foi abandonado em favor de https://github.com/Immediate-Mode-UI/Nuklear . Qualquer atividade neste rastreador de problemas, quaisquer solicitações pull, etc. serão ignoradas.
Ansioso para ouvir de você em https://github.com/Immediate-Mode-UI/Nuklear
Comunidade nuclear
Este é um kit de ferramentas de interface gráfica com o usuário de modo imediato de estado mínimo escrito em ANSI C e licenciado sob domínio público. Ele foi projetado como uma interface de usuário simples e incorporável para aplicativos e não possui nenhuma dependência, um back-end de renderização padrão ou janela de sistema operacional e manipulação de entrada, mas fornece uma abordagem de biblioteca muito modular usando estado de entrada simples para comandos de entrada e desenho que descrevem formas primitivas como saída. Portanto, em vez de fornecer uma biblioteca em camadas que tenta abstrair várias plataformas e renderizar back-ends, ela se concentra apenas na interface do usuário real.
Esta biblioteca está contida em um único arquivo de cabeçalho e pode ser usada no modo somente cabeçalho ou no modo de implementação. O modo somente cabeçalho é usado por padrão quando incluído e permite incluir este cabeçalho em outros cabeçalhos e não contém a implementação real.
O modo de implementação requer a definição da macro de pré-processador NK_IMPLEMENTATION
em um arquivo .c/.cpp antes de #include
este arquivo, por exemplo:
#define NK_IMPLEMENTATION
#include "nuklear.h"
IMPORTANTE: Cada vez que você incluir "nuklear.h" você deverá definir os mesmos flags opcionais. Isso é muito importante, pois não leva a erros do compilador ou a corrupções de pilha ainda piores.
/* init gui state */
struct nk_context ctx ;
nk_init_fixed ( & ctx , calloc ( 1 , MAX_MEMORY ), MAX_MEMORY , & font );
enum { EASY , HARD };
static int op = EASY ;
static float value = 0.6f ;
static int i = 20 ;
if ( nk_begin ( & ctx , "Show" , nk_rect ( 50 , 50 , 220 , 220 ),
NK_WINDOW_BORDER | NK_WINDOW_MOVABLE | NK_WINDOW_CLOSABLE )) {
/* fixed widget pixel width */
nk_layout_row_static ( & ctx , 30 , 80 , 1 );
if ( nk_button_label ( & ctx , "button" )) {
/* event handling */
}
/* fixed widget window ratio width */
nk_layout_row_dynamic ( & ctx , 30 , 2 );
if ( nk_option_label ( & ctx , "easy" , op == EASY )) op = EASY ;
if ( nk_option_label ( & ctx , "hard" , op == HARD )) op = HARD ;
/* custom widget pixel width */
nk_layout_row_begin ( & ctx , NK_STATIC , 30 , 2 );
{
nk_layout_row_push ( & ctx , 50 );
nk_label ( & ctx , "Volume:" , NK_TEXT_LEFT );
nk_layout_row_push ( & ctx , 110 );
nk_slider_float ( & ctx , 0 , & value , 1.0f , 0.1f );
}
nk_layout_row_end ( & ctx );
}
nk_end ( & ctx );
Existem várias ligações nucleares para diferentes idiomas criadas por outros autores. Não posso atestar sua qualidade, pois não sou necessariamente proficiente em nenhum desses idiomas. Além disso, não há garantia de que todas as ligações serão sempre mantidas atualizadas:
Desenvolvido por Micha Mettke e todos os colaboradores diretos ou indiretos do GitHub.
Incorpora stb_texedit
, stb_truetype
e stb_rectpack
de Sean Barrett (domínio público) Incorpora a fonte ProggyClean.ttf
de Tristan Grimmer (licença MIT).
Muito obrigado a Omar Cornut (ocornut@github) por sua biblioteca imgui e por me dar a inspiração para esta biblioteca, Casey Muratori pelo herói feito à mão e sua ideia original de interface gráfica de usuário de modo imediato e Sean Barrett por suas incríveis bibliotecas de cabeçalho único que restauraram meu fé em bibliotecas e me levou a criar algumas minhas. Finalmente Apoorva Joshi por seu compactador de arquivos de cabeçalho único.
------------------------------------------------------------------------------
This software is available under 2 licenses -- choose whichever you prefer.
------------------------------------------------------------------------------
ALTERNATIVE A - MIT License
Copyright (c) 2017 Micha Mettke
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
------------------------------------------------------------------------------
ALTERNATIVE B - Public Domain (www.unlicense.org)
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
software, either in source code form or as a compiled binary, for any purpose,
commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this
software dedicate any and all copyright interest in the software to the public
domain. We make this dedication for the benefit of the public at large and to
the detriment of our heirs and successors. We intend this dedication to be an
overt act of relinquishment in perpetuity of all present and future rights to
this software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----------------------------------------------------------------------------