dear imgui
ISSUES & TODO LIST

Issue numbers (#) refer to github issues listed at https://github.com/ocornut/imgui/issues/XXXX
The list below consist mostly of ideas noted down before they are requested/discussed by users (at which point they usually exist on the github issue tracker).
It's mostly a bunch of personal notes, probably incomplete. Feel free to query if you have any questions.

 - doc/test: add a proper documentation+regression testing system (#435)
 - doc/test: checklist app to verify binding/integration of imgui (test inputs, rendering, callback, etc.).
 - doc/tips: tips of the day: website? applet in imgui_club?
 - project: folder or separate repository with maintained helpers (e.g. imgui_memory_editor.h, imgui_stl.h, maybe imgui_dock would be there?)

 - window: calling SetNextWindowSize() every frame with <= 0 doesn't do anything, may be useful to allow (particularly when used for a single axis). (#690)
 - window: add a way for very transient windows (non-saved, temporary overlay over hundreds of objects) to "clean" up from the global window list. perhaps a lightweight explicit cleanup pass.
 - window: auto-fit feedback loop when user relies on any dynamic layout (window width multiplier, column) appears weird to end-user. clarify.
 - window: allow resizing of child windows (possibly given min/max for each axis?.)
 - window: background options for child windows, border option (disable rounding).
 - window: resizing from any sides? done. > need backends to honor mouse cursors properly. (#822)
 - window: resize from borders: support some form of outer padding to make it easier to grab borders. (#822)
 - window: begin with *p_open == false should return false.
 - window: get size/pos helpers given names (see discussion in #249)
 - window: a collapsed window can be stuck behind the main menu bar?
 - window: when window is very small, prioritize resize button over close button.
 - window: detect extra End() call that pop the "Debug" window out and assert at End() call site instead of at end of frame.
 - window: increase minimum size of a window with menus or fix the menu rendering so that it doesn't look odd.
 - window: double-clicking on title bar to minimize isn't consistent, perhaps move to single-click on left-most collapse icon?
 - window: expose contents size. (#1045)
 - window: GetWindowSize() returns (0,0) when not calculated? (#1045)
 - window: freeze window flag: if not focused/hovered, return false, render with previous ImDrawList. and/or reduce refresh rate. 
!- scrolling: allow immediately effective change of scroll after Begin() if we haven't appended items yet.
 - scrolling/clipping: separator on the initial position of a window is not visible (cursorpos.y <= clippos.y). (2017-08-20: can't repro)

 - drawdata: make it easy to clone (or swap?) a ImDrawData so user can easily save that data if they use threaded renderering.
 - drawlist: end-user probably can't call Clear() directly because we expect a texture to be pushed in the stack.
 - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command).
 - drawlist: primtiives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 - drawlist: make it easier to toggle AA per primitive, so we can use e.g. non-AA fill + AA borders more naturally
 - drawlist: non-AA strokes have gaps between points (#593, #288), especially RenderCheckmark().
 - drawlist: would be good to be able to deep copy of ImDrawData (we have a deep copy of ImDrawList now).
 - drawlist/opt: AddRect() axis aligned pixel aligned (no-aa) could use 8 triangles instead of 16 and no normal calculation.
 - drawlist: rendering: provide a way for imgui to output to a single/global vertex buffer, re-order indices only at the end of the frame (ref: https://gist.github.com/floooh/10388a0afbe08fce9e617d8aefa7d302)
 
 - main: considering adding an Init() function? some constructs are awkward in the implementation because of the lack of them.
 - main: find a way to preserve relative orders of multiple reappearing windows (so an app toggling between "modes" e.g. fullscreen vs all tools) won't lose relative ordering.
 - main: IsItemHovered() make it more consistent for various type of widgets, widgets with multiple components, etc. also effectively IsHovered() region sometimes differs from hot region, e.g tree nodes
 - main: IsItemHovered() info stored in a stack? so that 'if TreeNode() { Text; TreePop; } if IsHovered' return the hover state of the TreeNode?
 - main: rename the main "Debug" window to avoid ID collision with user who may want to use "Debug" with specific flags.

 - widgets: display mode: widget-label, label-widget (aligned on column or using fixed size), label-newline-tab-widget etc. (#395)
 - widgets: clean up widgets internal toward exposing everything and stabilizing imgui_internals.h.
 - widgets: add visauls for Disabled/ReadOnly mode and expose publicly (#211)
 - widgets: add always-allow-overlap mode.
 - widgets: alignment options in style (e.g. center Selectable, Right-Align within Button, etc.) #1260
 - widgets: activate by identifier (trigger button, focus given id)
 - widgets: a way to represent "mixed" values, so e.g. all values replaced with **, including check-boxes, colors, etc. with support for multi-components widgets (e.g. SliderFloat3, make only "Y" mixed)

 - input text: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now and super fragile. 
 - input text: reorganize event handling, allow CharFilter to modify buffers, allow multiple events? (#541)
 - input text: expose CursorPos in char filter event (#816)
 - input text: access public fields via a non-callback API e.g. InputTextGetState("xxx") that may return NULL if not active.
 - input text: flag to disable live update of the user buffer (also applies to float/int text input) (#701)
 - input text: way to dynamically grow the buffer without forcing the user to initially allocate for worse case, e.g. more natural std::string (follow up on #200)
 - input text: hover tooltip could show unclamped text
 - input text: option to Tab after an Enter validation.
 - input text: add ImGuiInputTextFlags_EnterToApply? (off #218)
 - input text: easier ways to update buffer (from source char*) while owned. preserve some sort of cursor position for multi-line text.
 - input text: add discard flag (e.g. ImGuiInputTextFlags_DiscardActiveBuffer) or make it easier to clear active focus for text replacement during edition (#725)
 - input text: display bug when clicking a drag/slider after an input text in a different window has all-selected text (order dependant). actually a very old bug but no one appears to have noticed it.
 - input text multi-line: don't directly call AddText() which does an unnecessary vertex reserve for character count prior to clipping. and/or more line-based clipping to AddText(). and/or reorganize TextUnformatted/RenderText for more efficiency for large text (e.g TextUnformatted could clip and log separately, etc).
 - input text multi-line: support for cut/paste without selection (cut/paste the current line)
 - input text multi-line: line numbers? status bar? (follow up on #200)
 - input text multi-line: behave better when user changes input buffer while editing is active (even though it is illegal behavior). namely, the change of buffer can create a scrollbar glitch (#725)
 - input text multi-line: better horizontal scrolling support (#383, #1224)
 - input text: allow centering/positioning text so that ctrl+clicking Drag or Slider keeps the textual value at the same pixel position.
 - input number: optional range min/max for Input*() functions
 - input number: holding [-]/[+] buttons could increase the step speed non-linearly (or user-controlled)
 - input number: use mouse wheel to step up/down
 - input number: applying arithmetics ops (+,-,*,/) messes up with text edit undo stack.

 - layout: helper or a way to express ImGui::SameLine(ImGui::GetCursorStartPos().x + ImGui::CalcItemWidth() + ImGui::GetStyle().ItemInnerSpacing.x); in a simpler manner.
 - layout: generalization of the above: a concept equivalent to word processor ruler tab stop ~ mini columns (position in X, no clipping implied) (vaguely relate to #267, #395, also what is used internally for menu items)
 - layout: horizontal layout helper (#97)
 - layout: horizontal flow until no space left (#404)
 - layout: more generic alignment state (left/right/centered) for single items?
 - layout: clean up the InputFloatN/SliderFloatN/ColorEdit4 layout code. item width should include frame padding.
 - layout: BeginGroup() needs a border option. (~#1496)
 - layout: vertical alignement of mixed height items (e.g. buttons) within a same line (#1284)
 
 - columns: sizing policy (e.g. for each column: fixed size, %, fill, distribute default size among fills) (#513, #125)
 - columns: add a conditional parameter to SetColumnOffset() (#513, #125)
 - columns: headers. reorderable. (#513, #125)
 - columns: optional sorting modifiers (up/down), sort list so sorting can be done multi-critera. notify user when sort order changed.
 - columns: option to alternate background colors on odd/even scanlines.  
 - columns: allow columns to recurse. 
 - columns: allow a same columns set to be interrupted by e.g. CollapsingHeader and resume with columns in sync when moving them. 
 - columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125)
 - columns: flag to add horizontal separator above/below?
 - columns/layout: setup minimum line height (equivalent of automatically calling AlignFirstTextHeightToWidgets)

!- color: the color conversion helpers/types are a mess and needs sorting out. 
 - color: (api breaking) ImGui::ColorConvertXXX functions should be loose ImColorConvertXX to match imgui_internals.h
 - coloredit: it is still somehow awkward to copy colors around (unless going through Hex mode).

 - plot: full featured plot/graph api w/ scrolling, zooming etc. all bell & whistle. why not!
 - plot: PlotLines() should use the polygon-stroke facilities, less verticles (currently issues with averaging normals)
 - plot: make it easier for user to draw extra stuff into the graph (e.g: draw basis, highlight certain points, 2d plots, multiple plots)
 - plot: "smooth" automatic scale over time, user give an input 0.0(full user scale) 1.0(full derived from value)
 - plot: option/feature: draw the zero line
 - plot: option/feature: draw grid, vertical markers
 - plot: option/feature: draw unit
 - plot: add a helper e.g. Plot(char* label, float value, float time_span=2.0f) that stores values and Plot them for you - probably another function name. and/or automatically allow to plot ANY displayed value (more reliance on stable ID)

 - clipper: ability to force display 1 item in the list would be convenient (for patterns where we need to set active id etc.)
 - clipper: ability to disable the clipping through a simple flag/bool.
 - clipper: ability to run without knowing full count in advance.

 - splitter/separator: formalize the splitter idiom into an official api (we want to handle n-way split) (#319)
 
 - dock: docking extension
 - dock: dock out from a collapsing header? would work nicely but need emitting window to keep submitting the code.

 - tabs: re-ordering, close buttons, context menu, persistent order (#261, #351)

 - ext: stl-ish friendly extension (imgui_stl.h) that has wrapped for std::string, std::vector etc.

 - button: provide a button that looks framed.
 - image/image button: misalignment on padded/bordered button?
 - image/image button: parameters are confusing, image() has tint_col,border_col whereas imagebutton() has bg_col/tint_col. Even thou they are different parameters ordering could be more consistent. can we fix that?
 - image button: not taking an explicit id is odd.
 - slider: allow using the [-]/[+] buttons used by InputFloat()/InputInt()
 - slider: initial absolute click is imprecise. change to relative movement slider (same as scrollbar).
 - slider: add dragging-based widgets to edit values with mouse (on 2 axises), saving screen real-estate.
 - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign)
 - slider: precision dragging
 - slider: step option (#1183)
 - slider style: fill % of the bar instead of positioning a drag.
 - knob: rotating knob widget (#942)
 - drag float: up/down axis
 - drag float: added leeway on edge (e.g. a few invisible steps past the clamp limits)

 - combo: use clipper: make it easier to disable clipper with a single flag.
 - combo: flag for BeginCombo to not return true when unchanged (#1182)
 - combo: a way/helper to customize the combo preview (#1658)
 - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keyboard for custom listbox (pr #203)
 - listbox: refactor and clean the begin/end api
 - listbox: multiple selection.
 - listbox: unselect option (#1208)
 - listbox: make it easier/more natural to implement range-select (need some sort of info/ref about the last clicked/focused item that user can translate to an index?) (wip stash)
 - listbox: user may want to initial scroll to focus on the one selected value?
 - listbox: expose hovered item for a basic ListBox
 - listbox: keyboard navigation.
 - listbox: scrolling should track modified selection.

!- popups/menus: clarify usage of popups id, how MenuItem/Selectable closing parent popups affects the ID, etc. this is quite fishy needs improvement! (#331, #402)
 - popups: reopening context menu at new position should be the behavior by default? (equivalent to internal OpenPopupEx() with reopen_existing=true) (~#1497)
 - popups: if the popup functions took explicit ImGuiID it would allow the user to manage the scope of those ID. (#331)
 - popups: clicking outside (to close popup) and holding shouldn't drag window below.
 - popups: add variant using global identifier similar to Begin/End (#402)
 - popups: border options. richer api like BeginChild() perhaps? (#197)
 - tooltip: tooltip that doesn't fit in entire screen seems to lose their "last preferred direction" and may teleport when moving mouse.
 - tooltip: allow to set the width of a tooltip to allow TextWrapped() etc. while keeping the height automatic.
 - tooltip: allow tooltips with timers? or general timer policy? (instaneous vs timed)
 
 - menus: calling BeginMenu() twice with a same name doesn't append as Begin() does for regular windows (#1207)
 - menus: menu bars inside modals windows are acting weird.
 - statusbar: add a per-window status bar helper similar to what menubar does.
 - shortcuts: local-style shortcut api, e.g. parse "&Save"
 - shortcuts,menus: global-style shortcut api e.g. "Save (CTRL+S)" -> explicit flag for recursing into closed menu
 - shortcuts: programmatically access shortcuts "Focus("&Save"))
 - menus: menubars: main menu-bar could affect clamping of windows position (~ akin to modifying DisplayMin)
 - menus: hovering from menu to menu on a menu-bar has 1 frame without any menu, which is a little annoying. ideally either 0 either longer. 

 - text: selectable text (for copy) as a generic feature (ItemFlags?)
 - text: proper alignment options in imgui_internal.h
 - text wrapped: figure out better way to use TextWrapped() in an always auto-resize context (tooltip, etc.) (#249)
 - text: it's currently impossible to have a window title with "##". perhaps an official workaround would be nice. \ style inhibitor? non-visible ascii code to insert between #?
 - text: provided a framed text helper, e.g. https://pastebin.com/1Laxy8bT
 - text link/url button: underlined. should api expose an ID or use text contents as ID? which colors enum to use?

 - tree node / optimization: avoid formatting when clipped.
 - tree node: tree-node/header right-most side doesn't take account of horizontal scrolling.
 - tree node: add treenode/treepush int variants? not there because (void*) cast from int warns on some platforms/settings?
 - tree node: try to apply scrolling at time of TreePop() if node was just opened and end of node is past scrolling limits?
 - tree node / selectable render mismatch which is visible if you use them both next to each other (e.g. cf. property viewer)
 - tree node: tweak color scheme to distinguish headers from selected tree node (#581)
 - tree node: leaf/non-leaf highlight mismatch.

 - settings: write more decent code to allow saving/loading new fields: columns, selected tree nodes?
 - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file (#437)
 - stb: add defines to disable stb implementations

!- style: better default styles. (#707)
 - style: add a highlighted text color (for headers, etc.)
 - style: border types: out-screen, in-screen, etc. (#447)
 - style/optimization: store rounded corners in texture to use 1 quad per corner (filled and wireframe) to lower the cost of rounding.
 - style: add window shadow (fading away from the window. Paint-style calculation of vertices alpha after drawlist would be easier)
 - style: a concept of "compact style" that the end-user can easily rely on (e.g. PushStyleCompact()?) that maps to other settings? avoid implementing duplicate helpers such as SmallCheckbox(), etc.
 - style: try to make PushStyleVar() more robust to incorrect parameters (to be more friendly to edit & continues situation).
 - style: global scale setting.
 - style: WindowPadding needs to be EVEN as the 0.5 multiplier used on this value probably have a subtle effect on clip rectangle
 - style: have a more global HSV setter (e.g. alter hue on all elements). consider replacing active/hovered by offset in HSV space? (#438, #707, #1223)
 - style: gradients fill (#1223) ~ 2 bg colors for each fill? tricky with rounded shapes and using textures for corners.
 - style editor: color child window height expressed in multiple of line height.

 - log: LogButtons() options for specifying depth and/or hiding depth slider
 - log: have more control over the log scope (e.g. stop logging when leaving current tree node scope)
 - log: be able to log anything (e.g. right-click on a window/tree-node, shows context menu? log into tty/file/clipboard)
 - log: let user copy any window content to clipboard easily (CTRL+C on windows? while moving it? context menu?). code is commented because it fails with multiple Begin/End pairs.

 - filters: set a current filter that tree node can automatically query to hide themselves
 - filters: handle wildcards (with implicit leading/trailing *), regexps
 - filters: fuzzy matches (may use code at blog.forrestthewoods.com/4cffeed33fdb)

 - drag and drop: add demo. (#143, #479)
 - drag and drop: allow using with other mouse buttons (where activeid won't be set). (#1637)
 - drag and drop: test with reordering nodes (in a list, or a tree node). (#143)
 - drag and drop: test integrating with os drag and drop.
 - node/graph editor (#306)
 - pie menus patterns (#434)
 - markup: simple markup language for color change? (#902)

!- font: need handling of missing glyphs by not packing/rasterizing glyph 0 of a given font.
 - font: MergeMode: flags to select overwriting or not.
 - font: MergeMode: duplicate glyphs are stored in the atlas texture which is suboptimal.
 - font: better vertical centering (based e.g on height of lowercase 'x'?). currently Roboto-Medium size 16 px isn't currently centered. (#1619)
 - font: free the Alpha buffer if user only requested RGBA.
!- font: better CalcTextSizeA() API, at least for simple use cases. current one is horrible (perhaps have simple vs extended versions).
 - font: a CalcTextHeight() helper could run faster than CalcTextSize().y
 - font: enforce monospace through ImFontConfig (for icons?) + create dual ImFont output from same input, reusing rasterized data but with different glyphs/AdvanceX
 - font: finish CustomRectRegister() to allow mapping unicode codepoint to custom texture data 
 - font: PushFontSize API (#1018)
 - font/atlas: incremental updates
 - font/atlas: dynamic font atlas to avoid baking huge ranges into bitmap and make scaling easier.
 - font/atlas: allow user to submit its own primitive to be rectpacked, and allow to map them on a Unicode point.
 - font: MemoryTTF taking ownership confusing/not obvious, maybe default should be opposite?
 - font/text: vertical and/or rotated text renderer (#705) - vertical is easier clipping wise
 - font: imgui_freetype.h alternative renderer (#618)
 - font: optimization: for monospace font (like the default one) we can trim IndexXAdvance as long as trailing value is == FallbackXAdvance (need to make sure TAB is still correct).
 - font: add support for kerning, probably optional. A) perhaps default to (32..128)^2 matrix ~ 9K entries = 36KB, then hash for non-ascii?. B) or sparse lookup into per-char list?
 - font: add a simpler CalcTextSizeA() api? current one ok but not welcome if user needs to call it directly (without going through ImGui::CalcTextSize)
 - font: fix AddRemapChar() to work before font has been built.
 - font: (api breaking) removed "TTF" from symbol names. also because it now supports OTF.

 - nav: wrap around logic to allow e.g. grid based layout (pressing NavRight on the right-most element would go to the next row, etc.)
 - nav: patterns to make it possible for arrows key to update selection
 - nav: SetItemDefaultFocus() level of priority, so widget like Selectable when inside a popup could claim a low-priority default focus on the first selected iem
 - nav: allow input system to be be more tolerant of io.DeltaTime=0.0f
 - nav: ESC within a menu of a child window seems to exit the child window.
 - nav: ESC on a flattened child
 - nav: Left within a tree node block as a fallback (ImGuiTreeNodeFlags_NavLeftJumpsBackHere by default?)
 - nav: menus: pressing left-right on a vertically clipped menu bar tends to jump to the collapse/close buttons.
 - nav: menus: allow pressing Menu to leave a sub-menu.
 - nav: simulate right-click or context activation? (SHIFT+F10)
 - nav: tabs should go through most/all widgets (in submission order?).
 - nav: when CTRL-Tab/windowing is active, the HoveredWindow detection doesn't take account of the window display re-ordering.
 - nav: cannot access menubar of a flattened child window with Alt/menu key (not a very common use case..).
 - nav: esc/enter default behavior for popups, e.g. be able to mark an "ok" or "cancel" button that would get triggered by those keys.
 - nav: when activating a button that changes label (without a static ID) or disappear, can we somehow automatically recover into a nearest highlight item?
 - nav: there's currently no way to completely clear focus with the keyboard. depending on patterns used by the application to dispatch inputs, it may be desirable.
 - nav: configuration flag to disable global shortcuts (currently only CTRL-tab) ?
 - focus: preserve ActiveId/focus stack state, e.g. when opening a menu and close it, previously selected InputText() focus gets restored (#622)
 - focus: SetKeyboardFocusHere() on with >= 0 offset could be done on same frame (else latch and modulate on beginning of next frame)
 - focus: unable to use SetKeyboardFocusHere() on clipped widgets. (#787)

 - inputs: we need an explicit flag about whether the imgui window is focused, to be able to distinguish focused key releases vs alt-tabbing all release behaviors.
 - inputs: rework IO system to be able to pass actual ordered/timestamped events. use an event queue? (~#335, #71)
 - inputs: support track pad style scrolling & slider edit.
 - inputs/io: backspace and arrows in the context of a text input could use system repeat rate.
 - inputs/io: clarify/standardize/expose repeat rate and repeat delays (#1808)

 - misc: idle refresh: expose cursor blink animation timer for backend to be able to lower framerate.
 - misc: make the ImGuiCond values linear (non-power-of-two). internal storage for ImGuiWindow can use integers to combine into flags (Why?)
 - misc: provide a way to compile out the entire implementation while providing a dummy API (e.g. #define IMGUI_DUMMY_IMPL)
 - misc: PushItemFlag(): add a flag to disable keyboard capture when used with mouse? (#1682)
 - misc: use more size_t in public api?
 - misc: ImVector: erase_unsorted() helper
-  misc: imgui_cpp: perhaps a misc/ header file with more friendly helper (e.g. type-infer versions of DragScalar, vector<> variants if appropriate for some functions).

 - web/emscriptem: refactor some examples to facilitate integration with emscripten main loop system. (#1713, #336)
 - web/emscriptem: tweak OpenGL renderers to support OpenGL ES. (#1713, #336)
 - web/emscriptem: with refactored examples, we could provide a direct imgui_impl_emscripten platform layer (see eg. https://github.com/floooh/sokol-samples/blob/master/html5/imgui-emsc.cc#L42)

 - remote: make a system like RemoteImGui first-class citizen/project (#75)

 - demo: find a way to demonstrate textures in the examples application, as it such a a common issue for new users.
 - demo: add drag and drop demo.
 - demo: add vertical separator demo
 - demo: add virtual scrolling example?
 - demo: demonstration Plot offset
 - examples: window minimize, maximize (#583)
 - examples: provide a zero-framerate/idle example.
 - examples: glfw: could go idle when minimized? if (glfwGetWindowAttrib(window, GLFW_ICONIFIED)) { glfwWaitEvents(); continue; } // issue: DeltaTime will be super high on resume, perhaps provide a way to let impl know (#440)
 - optimization: replace vsnprintf with stb_printf? or enable the defines/infrastructure to allow it (#1038)
 - optimization: add clipping for multi-component widgets (SliderFloatX, ColorEditX, etc.). one problem is that nav branch can't easily clip parent group when there is a move request.
 - optimization: add a flag to disable most of rendering, for the case where the user expect to skip it (#335)
 - optimization: use another hash function than crc32, e.g. FNV1a
 - optimization/render: merge command-lists with same clip-rect into one even if they aren't sequential? (as long as in-between clip rectangle don't overlap)?
 - optimization: turn some the various stack vectors into statically-sized arrays
