Renamed GetTreeStateStorage() to GetStateStorage(). Columns storing floats instead of fixed point integers

This commit is contained in:
ocornut 2014-12-29 18:17:54 +00:00
parent 1b25fa8169
commit 39952d2362
2 changed files with 10 additions and 10 deletions

View File

@ -3078,13 +3078,13 @@ void ImGui::SetKeyboardFocusHere(int offset)
window->FocusIdxTabRequestNext = IM_INT_MAX; window->FocusIdxTabRequestNext = IM_INT_MAX;
} }
void ImGui::SetTreeStateStorage(ImGuiStorage* tree) void ImGui::SetStateStorage(ImGuiStorage* tree)
{ {
ImGuiWindow* window = GetCurrentWindow(); ImGuiWindow* window = GetCurrentWindow();
window->DC.StateStorage = tree ? tree : &window->StateStorage; window->DC.StateStorage = tree ? tree : &window->StateStorage;
} }
ImGuiStorage* ImGui::GetTreeStateStorage() ImGuiStorage* ImGui::GetStateStorage()
{ {
ImGuiWindow* window = GetCurrentWindow(); ImGuiWindow* window = GetCurrentWindow();
return window->DC.StateStorage; return window->DC.StateStorage;
@ -3539,17 +3539,17 @@ bool ImGui::CollapsingHeader(const char* label, const char* str_id, const bool d
const ImGuiID id = window->GetID(str_id); const ImGuiID id = window->GetID(str_id);
// We only write to the tree storage if the user clicks // We only write to the tree storage if the user clicks
ImGuiStorage* tree = window->DC.StateStorage; ImGuiStorage* storage = window->DC.StateStorage;
bool opened; bool opened;
if (window->DC.OpenNextNode != -1) if (window->DC.OpenNextNode != -1)
{ {
opened = window->DC.OpenNextNode > 0; opened = window->DC.OpenNextNode > 0;
tree->SetInt(id, opened); storage->SetInt(id, opened);
window->DC.OpenNextNode = -1; window->DC.OpenNextNode = -1;
} }
else else
{ {
opened = tree->GetInt(id, default_open) != 0; opened = storage->GetInt(id, default_open) != 0;
} }
// Framed header expand a little outside the default padding // Framed header expand a little outside the default padding
@ -3582,7 +3582,7 @@ bool ImGui::CollapsingHeader(const char* label, const char* str_id, const bool d
if (pressed) if (pressed)
{ {
opened = !opened; opened = !opened;
tree->SetInt(id, opened); storage->SetInt(id, opened);
} }
// Render // Render
@ -5444,7 +5444,7 @@ float ImGui::GetColumnOffset(int column_index)
const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index);
RegisterAliveId(column_id); RegisterAliveId(column_id);
const float default_t = column_index / (float)window->DC.ColumnsCount; const float default_t = column_index / (float)window->DC.ColumnsCount;
const float t = (float)window->StateStorage.GetInt(column_id, (int)(default_t * 8192)) / 8192; // Cheaply store our floating point value inside the integer (could store an union into the map?) const float t = window->StateStorage.GetFloat(column_id, default_t); // Cheaply store our floating point value inside the integer (could store an union into the map?)
const float offset = window->DC.ColumnsStartX + t * (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnsStartX); const float offset = window->DC.ColumnsStartX + t * (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnsStartX);
return offset; return offset;
@ -5459,7 +5459,7 @@ void ImGui::SetColumnOffset(int column_index, float offset)
const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index);
const float t = (offset - window->DC.ColumnsStartX) / (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnsStartX); const float t = (offset - window->DC.ColumnsStartX) / (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnsStartX);
window->StateStorage.SetInt(column_id, (int)(t*8192)); window->StateStorage.SetFloat(column_id, t);
} }
float ImGui::GetColumnWidth(int column_index) float ImGui::GetColumnWidth(int column_index)

View File

@ -170,8 +170,8 @@ namespace ImGui
IMGUI_API void SetScrollPosHere(); // adjust scrolling position to center into the current cursor position. IMGUI_API void SetScrollPosHere(); // adjust scrolling position to center into the current cursor position.
IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget.
IMGUI_API void SetTreeStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it). IMGUI_API void SetStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it).
IMGUI_API ImGuiStorage* GetTreeStateStorage(); IMGUI_API ImGuiStorage* GetStateStorage();
IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case. default to ~2/3 of windows width. IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case. default to ~2/3 of windows width.
IMGUI_API void PopItemWidth(); IMGUI_API void PopItemWidth();