raais / imstudio Goto Github PK
View Code? Open in Web Editor NEWReal-time GUI layout designer for Dear ImGui
Home Page: https://raais.github.io/ImStudio
License: MIT License
Real-time GUI layout designer for Dear ImGui
Home Page: https://raais.github.io/ImStudio
License: MIT License
The Program Would Be Great If You Could Add a Creating Tab Feature In it :)
I'm working on a serializer for ImStudio so that I can save and load GUI projects (using yaml-cpp).
Admittedly, I'm not super familiar with how ImStudio stores and looks up children/parents, or rather, how the object hierarchy works, at the moment.
I wrote something like this pseudo code:
if (obj.parent)
out << "ParentID" << obj.parent->id;
else
out << "ParentID" << 0;
I then tested this serialization with a few widgets (no nesting) in a window, and the objects' parent ID always serialize as:
ParentID: 30198988
(This turns out to be 0x01CCCCCC, probably some kind of magic number.)
I tried adding the line parent = nullptr;
to BaseObject's constructor, but this doesn't seem to make a difference.
And also, when I put in a break point and look at the object that is currently being serialized, the obj.parent doesn't appear to be valid memory.
I was hoping you might be able to see if you have similar results with your object.parent, or if it's just something I did.
Also, I did notice that in the Object constructor, it seems to set itself as the parent of itself, so I'm thinking I may be misunderstanding your data structure, and it isn't tree-like?
While designing, I wanted to examine the design and copied the code, then the program gave an error and when I opened it again, I realized that I could not load the old project, this creates a problem for me. If you are still coding, can you add an import feature?
I was able to build this on MacOS as well and it would be good to add the following to the project readme
MacOS
in the project directory create a build directory and change into the directory, then run cmake and then make.
git clone --depth 1 https://github.com/Raais/ImStudio.git
cd ImStudio
mkdir build
cd build
cmake ..
make
The resulting ImStudio.app application will be found in
project-root/build/src/
Open program
Press Window
Press Beginchild
Press Button
... Profit :)
allow users to import imgui code instead of it being read only
ImGui::End()
should always be called, even if ImGui::Begin()
returns false. Otherwise ImGui will assert on a begin/end stack mismatch.
This might seem confusing initially, because ImGui widgets that have Begin/End calls should have their End calls inside the if block. However, that rule does not apply to ImGui windows.
Can you support Chinese
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.