Browse Source

Internals: Renaming of non-user facing parts from ValueChanged to Edited terminology. (#2034, #820, #956, #1875)

omar 7 years ago
parent
commit
06e917f135
3 changed files with 29 additions and 28 deletions
  1. 3 2
      CHANGELOG.txt
  2. 20 20
      imgui.cpp
  3. 6 6
      imgui_internal.h

+ 3 - 2
CHANGELOG.txt

@@ -145,8 +145,9 @@ Other Changes:
    - Some frameworks (such as the Allegro, Marmalade) handle both the "platform" and "rendering" part, and your custom engine may as well.
    - Some frameworks (such as the Allegro, Marmalade) handle both the "platform" and "rendering" part, and your custom engine may as well.
    - Read examples/README.txt for details.
    - Read examples/README.txt for details.
  - Added IsItemDeactivated() to query if the last item was active previously and isn't anymore. Useful for Undo/Redo patterns. (#820, #956, #1875)
  - Added IsItemDeactivated() to query if the last item was active previously and isn't anymore. Useful for Undo/Redo patterns. (#820, #956, #1875)
- - Added IsItemDeactivatedAfterChange() if the last item was active previously, isn't anymore, and during its active state modified a value. 
-   Note that you may still get false positive (e.g. drag value and while holding return on the same value). (#820, #956, #1875)
+ - Added IsItemDeactivatedAfterChange() [*EDIT* renamed to IsItemDeactivatedAfterEdit() in 1.63) if the last item was active previously, 
+   is not anymore, and during its active state modified a value. Note that you may still get false positive (e.g. drag value and while 
+   holding return on the same value). (#820, #956, #1875)
  - Nav: Added support for PageUp/PageDown (explorer-style: first aim at bottom/top most item, when scroll a page worth of contents). (#787)
  - Nav: Added support for PageUp/PageDown (explorer-style: first aim at bottom/top most item, when scroll a page worth of contents). (#787)
  - Nav: To keep the navigated item in view we also attempt to scroll the parent window as well as the current window. (#787)
  - Nav: To keep the navigated item in view we also attempt to scroll the parent window as well as the current window. (#787)
  - ColorEdit3, ColorEdit4, ColorButton: Added ImGuiColorEditFlags_NoDragDrop flag to disable ColorEditX as drag target and ColorButton as drag source. (#1826) 
  - ColorEdit3, ColorEdit4, ColorButton: Added ImGuiColorEditFlags_NoDragDrop flag to disable ColorEditX as drag target and ColorButton as drag source. (#1826) 

+ 20 - 20
imgui.cpp

@@ -2269,7 +2269,7 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window)
     if (g.ActiveIdIsJustActivated)
     if (g.ActiveIdIsJustActivated)
     {
     {
         g.ActiveIdTimer = 0.0f;
         g.ActiveIdTimer = 0.0f;
-        g.ActiveIdValueChanged = false;
+        g.ActiveIdHasBeenEdited = false;
         if (id != 0)
         if (id != 0)
         {
         {
             g.LastActiveId = id;
             g.LastActiveId = id;
@@ -2338,7 +2338,7 @@ void ImGui::KeepAliveID(ImGuiID id)
         g.ActiveIdPreviousFrameIsAlive = true;
         g.ActiveIdPreviousFrameIsAlive = true;
 }
 }
 
 
-void ImGui::MarkItemValueChanged(ImGuiID id)
+void ImGui::MarkItemEdited(ImGuiID id)
 {
 {
     // This marking is solely to be able to provide info for IsItemDeactivatedAfterEdit().
     // This marking is solely to be able to provide info for IsItemDeactivatedAfterEdit().
     // ActiveId might have been released by the time we call this (as in the typical press/release button behavior) but still need need to fill the data.
     // ActiveId might have been released by the time we call this (as in the typical press/release button behavior) but still need need to fill the data.
@@ -2346,8 +2346,8 @@ void ImGui::MarkItemValueChanged(ImGuiID id)
     ImGuiContext& g = *GImGui;
     ImGuiContext& g = *GImGui;
     IM_ASSERT(g.ActiveId == id || g.ActiveId == 0 || g.DragDropActive);
     IM_ASSERT(g.ActiveId == id || g.ActiveId == 0 || g.DragDropActive);
     //IM_ASSERT(g.CurrentWindow->DC.LastItemId == id);
     //IM_ASSERT(g.CurrentWindow->DC.LastItemId == id);
-    g.ActiveIdValueChanged = true;
-    g.CurrentWindow->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ValueChanged;
+    g.ActiveIdHasBeenEdited = true;
+    g.CurrentWindow->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_Edited;
 }
 }
 
 
 static inline bool IsWindowContentHoverable(ImGuiWindow* window, ImGuiHoveredFlags flags)
 static inline bool IsWindowContentHoverable(ImGuiWindow* window, ImGuiHoveredFlags flags)
@@ -3954,7 +3954,7 @@ void ImGui::NewFrame()
     g.LastActiveIdTimer += g.IO.DeltaTime;
     g.LastActiveIdTimer += g.IO.DeltaTime;
     g.ActiveIdPreviousFrame = g.ActiveId;
     g.ActiveIdPreviousFrame = g.ActiveId;
     g.ActiveIdPreviousFrameWindow = g.ActiveIdWindow;
     g.ActiveIdPreviousFrameWindow = g.ActiveIdWindow;
-    g.ActiveIdPreviousFrameValueChanged = g.ActiveIdValueChanged;
+    g.ActiveIdPreviousFrameHasBeenEdited = g.ActiveIdHasBeenEdited;
     g.ActiveIdIsAlive = 0;
     g.ActiveIdIsAlive = 0;
     g.ActiveIdPreviousFrameIsAlive = false;
     g.ActiveIdPreviousFrameIsAlive = false;
     g.ActiveIdIsJustActivated = false;
     g.ActiveIdIsJustActivated = false;
@@ -5209,7 +5209,7 @@ bool ImGui::IsItemDeactivated()
 bool ImGui::IsItemDeactivatedAfterEdit()
 bool ImGui::IsItemDeactivatedAfterEdit()
 {
 {
     ImGuiContext& g = *GImGui;
     ImGuiContext& g = *GImGui;
-    return IsItemDeactivated() && (g.ActiveIdPreviousFrameValueChanged || (g.ActiveId == 0 && g.ActiveIdValueChanged));
+    return IsItemDeactivated() && (g.ActiveIdPreviousFrameHasBeenEdited || (g.ActiveId == 0 && g.ActiveIdHasBeenEdited));
 }
 }
 
 
 bool ImGui::IsItemFocused()
 bool ImGui::IsItemFocused()
@@ -5250,7 +5250,7 @@ bool ImGui::IsItemVisible()
 bool ImGui::IsItemEdited()
 bool ImGui::IsItemEdited()
 {
 {
     ImGuiWindow* window = GetCurrentWindowRead();
     ImGuiWindow* window = GetCurrentWindowRead();
-    return (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_ValueChanged) != 0;
+    return (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_Edited) != 0;
 }
 }
 
 
 // Allow last item to be overlapped by a subsequent item. Both may be activated during the same frame before the later one takes priority.
 // Allow last item to be overlapped by a subsequent item. Both may be activated during the same frame before the later one takes priority.
@@ -8294,7 +8294,7 @@ bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags
     bool hovered, held;
     bool hovered, held;
     bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
     bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
     if (pressed)
     if (pressed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     // Render
     // Render
     const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
     const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
@@ -9635,7 +9635,7 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* v, co
     ImRect grab_bb;
     ImRect grab_bb;
     const bool value_changed = SliderBehavior(frame_bb, id, data_type, v, v_min, v_max, format, power, ImGuiSliderFlags_None, &grab_bb);
     const bool value_changed = SliderBehavior(frame_bb, id, data_type, v, v_min, v_max, format, power, ImGuiSliderFlags_None, &grab_bb);
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     // Render grab
     // Render grab
     window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding);
     window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding);
@@ -9701,7 +9701,7 @@ bool ImGui::VSliderScalar(const char* label, const ImVec2& size, ImGuiDataType d
     ImRect grab_bb;
     ImRect grab_bb;
     const bool value_changed = SliderBehavior(frame_bb, id, data_type, v, v_min, v_max, format, power, ImGuiSliderFlags_Vertical, &grab_bb);
     const bool value_changed = SliderBehavior(frame_bb, id, data_type, v, v_min, v_max, format, power, ImGuiSliderFlags_Vertical, &grab_bb);
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     // Render grab
     // Render grab
     window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding);
     window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding);
@@ -9982,7 +9982,7 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* v, floa
     ItemSize(total_bb, style.FramePadding.y);
     ItemSize(total_bb, style.FramePadding.y);
     const bool value_changed = DragBehavior(id, data_type, v, v_speed, v_min, v_max, format, power);
     const bool value_changed = DragBehavior(id, data_type, v, v_speed, v_min, v_max, format, power);
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     // Draw frame
     // Draw frame
     const ImU32 frame_col = GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg);
     const ImU32 frame_col = GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg);
@@ -10333,7 +10333,7 @@ bool ImGui::Checkbox(const char* label, bool* v)
     if (pressed)
     if (pressed)
     {
     {
         *v = !(*v);
         *v = !(*v);
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
     }
     }
 
 
     RenderNavHighlight(total_bb, id);
     RenderNavHighlight(total_bb, id);
@@ -10403,7 +10403,7 @@ bool ImGui::RadioButton(const char* label, bool active)
     bool hovered, held;
     bool hovered, held;
     bool pressed = ButtonBehavior(total_bb, id, &hovered, &held);
     bool pressed = ButtonBehavior(total_bb, id, &hovered, &held);
     if (pressed)
     if (pressed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     RenderNavHighlight(total_bb, id);
     RenderNavHighlight(total_bb, id);
     window->DrawList->AddCircleFilled(center, radius, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16);
     window->DrawList->AddCircleFilled(center, radius, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16);
@@ -11384,7 +11384,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
         RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
         RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
 
 
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0)
     if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0)
         return enter_pressed;
         return enter_pressed;
@@ -11851,7 +11851,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
             SetNavID(id, window->DC.NavLayerCurrent);
             SetNavID(id, window->DC.NavLayerCurrent);
         }
         }
     if (pressed)
     if (pressed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     // Render
     // Render
     if (hovered || selected)
     if (hovered || selected)
@@ -11984,7 +11984,7 @@ bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(v
         }
         }
     ListBoxFooter();
     ListBoxFooter();
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(g.CurrentWindow->DC.LastItemId);
+        MarkItemEdited(g.CurrentWindow->DC.LastItemId);
 
 
     return value_changed;
     return value_changed;
 }
 }
@@ -12451,7 +12451,7 @@ bool ImGui::ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFl
         ColorTooltip(desc_id, &col.x, flags & (ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf));
         ColorTooltip(desc_id, &col.x, flags & (ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf));
 
 
     if (pressed)
     if (pressed)
-        MarkItemValueChanged(id);
+        MarkItemEdited(id);
 
 
     return pressed;
     return pressed;
 }
 }
@@ -12748,7 +12748,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
         window->DC.LastItemId = g.ActiveId;
         window->DC.LastItemId = g.ActiveId;
 
 
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(window->DC.LastItemId);
+        MarkItemEdited(window->DC.LastItemId);
 
 
     return value_changed;
     return value_changed;
 }
 }
@@ -13064,7 +13064,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
     if (value_changed && memcmp(backup_initial_col, col, components * sizeof(float)) == 0)
     if (value_changed && memcmp(backup_initial_col, col, components * sizeof(float)) == 0)
         value_changed = false;
         value_changed = false;
     if (value_changed)
     if (value_changed)
-        MarkItemValueChanged(window->DC.LastItemId);
+        MarkItemEdited(window->DC.LastItemId);
 
 
     PopID();
     PopID();
 
 
@@ -13184,7 +13184,7 @@ bool ImGui::SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float
             *size1 += mouse_delta;
             *size1 += mouse_delta;
             *size2 -= mouse_delta;
             *size2 -= mouse_delta;
             bb_render.Translate((axis == ImGuiAxis_X) ? ImVec2(mouse_delta, 0.0f) : ImVec2(0.0f, mouse_delta));
             bb_render.Translate((axis == ImGuiAxis_X) ? ImVec2(mouse_delta, 0.0f) : ImVec2(0.0f, mouse_delta));
-            MarkItemValueChanged(id);
+            MarkItemEdited(id);
         }
         }
     }
     }
 
 

+ 6 - 6
imgui_internal.h

@@ -269,7 +269,7 @@ enum ImGuiItemStatusFlags_
     ImGuiItemStatusFlags_None               = 0,
     ImGuiItemStatusFlags_None               = 0,
     ImGuiItemStatusFlags_HoveredRect        = 1 << 0,
     ImGuiItemStatusFlags_HoveredRect        = 1 << 0,
     ImGuiItemStatusFlags_HasDisplayRect     = 1 << 1,
     ImGuiItemStatusFlags_HasDisplayRect     = 1 << 1,
-    ImGuiItemStatusFlags_ValueChanged       = 1 << 2    // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
+    ImGuiItemStatusFlags_Edited             = 1 << 2    // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
 };
 };
 
 
 // FIXME: this is in development, not exposed/functional as a generic feature yet.
 // FIXME: this is in development, not exposed/functional as a generic feature yet.
@@ -649,9 +649,9 @@ struct ImGuiContext
     float                   ActiveIdTimer;
     float                   ActiveIdTimer;
     bool                    ActiveIdIsJustActivated;            // Set at the time of activation for one frame
     bool                    ActiveIdIsJustActivated;            // Set at the time of activation for one frame
     bool                    ActiveIdAllowOverlap;               // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always)
     bool                    ActiveIdAllowOverlap;               // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always)
-    bool                    ActiveIdValueChanged;               // Was the value associated to the widget changed over the course of the Active state.
+    bool                    ActiveIdHasBeenEdited;              // Was the value associated to the widget Edited over the course of the Active state.
     bool                    ActiveIdPreviousFrameIsAlive;
     bool                    ActiveIdPreviousFrameIsAlive;
-    bool                    ActiveIdPreviousFrameValueChanged;
+    bool                    ActiveIdPreviousFrameHasBeenEdited;
     int                     ActiveIdAllowNavDirFlags;           // Active widget allows using directional navigation (e.g. can activate a button and move away from it)
     int                     ActiveIdAllowNavDirFlags;           // Active widget allows using directional navigation (e.g. can activate a button and move away from it)
     ImVec2                  ActiveIdClickOffset;                // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
     ImVec2                  ActiveIdClickOffset;                // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
     ImGuiWindow*            ActiveIdWindow;
     ImGuiWindow*            ActiveIdWindow;
@@ -796,9 +796,9 @@ struct ImGuiContext
         ActiveIdTimer = 0.0f;
         ActiveIdTimer = 0.0f;
         ActiveIdIsJustActivated = false;
         ActiveIdIsJustActivated = false;
         ActiveIdAllowOverlap = false;
         ActiveIdAllowOverlap = false;
-        ActiveIdValueChanged = false;
+        ActiveIdHasBeenEdited = false;
         ActiveIdPreviousFrameIsAlive = false;
         ActiveIdPreviousFrameIsAlive = false;
-        ActiveIdPreviousFrameValueChanged = false;
+        ActiveIdPreviousFrameHasBeenEdited = false;
         ActiveIdAllowNavDirFlags = 0;
         ActiveIdAllowNavDirFlags = 0;
         ActiveIdClickOffset = ImVec2(-1,-1);
         ActiveIdClickOffset = ImVec2(-1,-1);
         ActiveIdWindow = ActiveIdPreviousFrameWindow = NULL;
         ActiveIdWindow = ActiveIdPreviousFrameWindow = NULL;
@@ -1128,7 +1128,7 @@ namespace ImGui
     IMGUI_API ImGuiID       GetHoveredID();
     IMGUI_API ImGuiID       GetHoveredID();
     IMGUI_API void          SetHoveredID(ImGuiID id);
     IMGUI_API void          SetHoveredID(ImGuiID id);
     IMGUI_API void          KeepAliveID(ImGuiID id);
     IMGUI_API void          KeepAliveID(ImGuiID id);
-    IMGUI_API void          MarkItemValueChanged(ImGuiID id);
+    IMGUI_API void          MarkItemEdited(ImGuiID id);
 
 
     // Basic Helpers for widget code
     // Basic Helpers for widget code
     IMGUI_API void          ItemSize(const ImVec2& size, float text_offset_y = 0.0f);
     IMGUI_API void          ItemSize(const ImVec2& size, float text_offset_y = 0.0f);