Comments (3)
if (page == 4) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_COG " \n", ImVec2(50, 50))) { page = 4; }
if (page == 4) { ImGui::PopStyleColor(); }
Look carefully at the code and you will understand your mistake: when the Button()
is pressed you are changing the value of page
, creating an assymetry in the Push/Pop logic.
You could do:
int next_page = page;
if (page == 1) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_CROSSHAIRS " \n", ImVec2(50, 50))) { next_page = 1; }
if (page == 1) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 2) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_EYE " \n", ImVec2(50, 50))) { next_page = 2; }
if (page == 2) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 3) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_CLOUD " \n", ImVec2(50, 50))) { next_page = 3; }
if (page == 3) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 4) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_COG " \n", ImVec2(50, 50))) { next_page= 4; }
if (page == 4) { ImGui::PopStyleColor(); }
page = next_page;
Or:
if (page == 1) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_CROSSHAIRS " \n", ImVec2(50, 50))) { next_page = 1; }
if (page == 1) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 2) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_EYE " \n", ImVec2(50, 50))) { next_page = 2; }
if (page == 2) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 3) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_CLOUD " \n", ImVec2(50, 50))) { next_page = 3; }
if (page == 3) { ImGui::PopStyleColor(); }
ImGui::SetCursorPosX(50);
if (page == 4) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(127, 0, 255, 255)); }
if (ImGui::Button("\n " ICON_FA_COG " \n", ImVec2(50, 50))) { next_page= 4; }
if (page == 4) { ImGui::PopStyleColor(); }
You might also want to create yourself a helper function:
// in your own header+source file
bool ImGui::ButtonColored(const ImVec4& col, const char* label)
{
PushStyleColor(ImGuiCol_Text, col);
bool ret = Button(label);
PopStyleColor();
return ret;
}
And use it:
ImGui::Indent(50.0f);
ImVec4 base_color = style.Colors[ImGuiCol_Text];
ImVec4 selected_color = ImVec4(127, 0, 255, 255);
ImVec2 button_sz(50,50);
if (ImGui::ButtonColored(page == 1 ? selected_color : base_color, "\n " ICON_FA_CROSSHAIRS " \n", button_sz)) { page = 1; }
if (ImGui::ButtonColored(page == 2 ? selected_color : base_color, "\n " ICON_FA_EYE " \n", button_sz)) { page = 2; }
[....]
ImGui::Unindent(50.0f);
from imgui.
bro thank u so much lol im new to this
from imgui.
it fixed it
from imgui.
Related Issues (20)
- Exposing [imgui_impl_win32] ImGui_ImplWin32_WndProcHandler in a .dll is problematic HOT 3
- How to prevent imgui ui update from freezing during window move, double click and resize events? HOT 14
- Unneeded horizontal scrolling when navigating the tree with keyboard
- Table API Synced tabled bugs HOT 4
- Table Persistence optimization is breaking reloads.
- PlotLines() doesn't register its ID, does not work with SetItemKeyOwner() HOT 1
- Recording ImGui Vulkan command buffers offline
- Table angled headers, sorting only works on first column HOT 11
- Interact with the game/app when the ImGui is collapsed. How can i do that? HOT 1
- CalcWorkRectSize discrepancy HOT 1
- Find window with focus when main menu used HOT 6
- AddFontFromFileTTF HOT 2
- Item-tooltip for text will disappear for a short time the text get resized HOT 1
- The use of two newFrame() caused ImGui_implWin32_WndFrocHandler to fail
- How do I create a modifiable table? HOT 1
- Regarding opening of two frames, which caused ImGui_implWin32_WndFrocHandler to be unable to accept messages HOT 6
- DockBuilder is overriden by imgui.ini for a new window HOT 4
- SDL: focused viewport pushed into the background by tooltips in its own viewport
- Semi transparent background (Win32, DX11) HOT 5
- "Getting Started" guide misleading step HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imgui.