From 900dd3bd0fb8a04546dc7a62aa034f80c40527d3 Mon Sep 17 00:00:00 2001 From: ocornut Date: Mon, 11 Aug 2014 12:45:47 +0100 Subject: [PATCH] Update README.md Clarifying C++ Added item in todo list --- README.md | 2 +- imgui.cpp | 1 + web/code_sample_01.png | Bin 11345 -> 8005 bytes 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b1b73dee..876bd29e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ImGui ===== -ImGui is a bloat-free graphical user interface library for C/C++. It is portable, renderer agnostic and carries minimal amount of dependencies (only 3 files are needed). It is based on an "immediate" graphical user interface paradigm which allows you to build simple user interfaces with ease. +ImGui is a bloat-free graphical user interface library for C++. It is portable, renderer agnostic and carries minimal amount of dependencies (only 3 files are needed). It is based on an "immediate" graphical user interface paradigm which allows you to build simple user interfaces with ease. ImGui is designed to allow programmers to create "content creation" or "debug" tools (as opposed to tools for the average end-user). It favors simplicity and thus lacks certain features normally found in more high-level libraries, such as string localisation. diff --git a/imgui.cpp b/imgui.cpp index 1ef8ad33..1ce8cce1 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -144,6 +144,7 @@ - filters: handle wildcards (with implicit leading/trailing *), regexps - shortcuts: add a shortcut api, e.g. parse "&Save" and/or "Save (CTRL+S)", pass in to widgets or provide simple ways to use (button=activate, input=focus) - keyboard: full keyboard navigation and focus + - clipboard: add a default "local" implementation of clipboard functions (user will only need to override them to connect to OS clipboard) - misc: not thread-safe - optimisation/render: use indexed rendering - optimisation/render: move clip-rect to vertex data? would allow merging all commands diff --git a/web/code_sample_01.png b/web/code_sample_01.png index 6ff370cf2637f35396b6c583e0bfb247458559f9..6178f8d8c2505d265b0bc9329b70f79bb1d2835a 100644 GIT binary patch literal 8005 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 literal 11345 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 qF#pBJACcXE!0j