diff --git a/BaseButtonInstance.cpp b/BaseButtonInstance.cpp index 99dfa46..7f3f05e 100644 --- a/BaseButtonInstance.cpp +++ b/BaseButtonInstance.cpp @@ -11,6 +11,7 @@ ButtonListener* listener = NULL; BaseButtonInstance::BaseButtonInstance(void) { listener = NULL; + initProperties(); } void BaseButtonInstance::render(RenderDevice* rd) diff --git a/DataModelInstance.cpp b/DataModelInstance.cpp index cc4ad49..da1c4b6 100644 --- a/DataModelInstance.cpp +++ b/DataModelInstance.cpp @@ -14,6 +14,7 @@ DataModelInstance::DataModelInstance(void) mousey = 0; mouseButton1Down = false; showMessage = false; + initProperties(); } DataModelInstance::~DataModelInstance(void) diff --git a/ImageButtonInstance.cpp b/ImageButtonInstance.cpp index 6268941..461e380 100644 --- a/ImageButtonInstance.cpp +++ b/ImageButtonInstance.cpp @@ -21,6 +21,7 @@ ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage, G3D::TextureR floatRight = false; disabled = false; className = "ImageButton"; + initProperties(); } ImageButtonInstance::~ImageButtonInstance(void) diff --git a/Instance.cpp b/Instance.cpp index 71b1125..f9030ec 100644 --- a/Instance.cpp +++ b/Instance.cpp @@ -15,6 +15,7 @@ Instance::Instance(const Instance &oinst) setParent(oinst.parent); name = oinst.name; className = oinst.className; + initProperties(); } void Instance::render(RenderDevice* rd) @@ -25,6 +26,24 @@ void Instance::render(RenderDevice* rd) } } +void Update(PROPGRIDITEM) +{ + +} + +void Instance::initProperties() +{ + ::PROPGRIDITEM pItem; + pItem.lpszCatalog="Test"; + pItem.lpszPropName="Offset"; + pItem.lpszzCmbItems="What"; + pItem.lpszPropDesc="Description"; + pItem.lpCurValue=(LPARAM)"0, 0, 0"; + properties.push_back(Property(pItem, Update)); +} + + + Instance::~Instance(void) { for(size_t i = 0; i < children.size(); i++) diff --git a/Instance.h b/Instance.h index dc039aa..68b770c 100644 --- a/Instance.h +++ b/Instance.h @@ -5,6 +5,7 @@ class Instance { public: + std::vector properties; Instance(void); Instance(const Instance&); virtual ~Instance(void); @@ -23,4 +24,5 @@ public: protected: std::string className; Instance* parent; // Another pointer. + void initProperties(); }; diff --git a/PhysicalInstance.cpp b/PhysicalInstance.cpp index 3c8bf35..0f84e41 100644 --- a/PhysicalInstance.cpp +++ b/PhysicalInstance.cpp @@ -19,6 +19,7 @@ PhysicalInstance::PhysicalInstance(void) back = Smooth; left = Smooth; bottom = Smooth; + initProperties(); } PhysicalInstance::PhysicalInstance(const PhysicalInstance &oinst) diff --git a/PropertyWindow.cpp b/PropertyWindow.cpp index 7f1be4e..c0c176a 100644 --- a/PropertyWindow.cpp +++ b/PropertyWindow.cpp @@ -1,7 +1,7 @@ #define _WINSOCKAPI_ #include #include "WindowFunctions.h" -#include "propertyGrid.h" +#include "Property.h" #include "resource.h" #include "PropertyWindow.h" @@ -111,4 +111,11 @@ void PropertyWindow::_redraw() void PropertyWindow::SetProperties(Instance * instance) { + PropGrid_ResetContent(_propGrid); + for(size_t i = 0; i < instance->properties.size(); i++) + { + PropGrid_AddItem(_propGrid, &instance->properties.at(i)); + } + SetWindowLongPtr(_propGrid,GWL_USERDATA,(LONG)this); + _redraw(); } \ No newline at end of file diff --git a/TextButtonInstance.cpp b/TextButtonInstance.cpp index 349b439..da78ebb 100644 --- a/TextButtonInstance.cpp +++ b/TextButtonInstance.cpp @@ -20,6 +20,7 @@ TextButtonInstance::TextButtonInstance(void) visible = true; className = "TextButton"; disabled = false; + initProperties(); } bool TextButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd) diff --git a/WorkspaceInstance.cpp b/WorkspaceInstance.cpp index f4cf49e..0a01c83 100644 --- a/WorkspaceInstance.cpp +++ b/WorkspaceInstance.cpp @@ -6,6 +6,7 @@ WorkspaceInstance::WorkspaceInstance(void) className = "Workspace"; timer = 60.0F; score = 0; + initProperties(); } WorkspaceInstance::~WorkspaceInstance(void) diff --git a/main.cpp b/main.cpp index f1740a3..5bab5fe 100644 --- a/main.cpp +++ b/main.cpp @@ -1269,6 +1269,7 @@ void Demo::onMouseLeftPressed(HWND hwnd,int x,int y) while(selectedInstances.size() > 0) selectedInstances.erase(selectedInstances.begin()); selectedInstances.push_back(test); + _propWindow->SetProperties(test); //message = "Dragging = true."; //messageTime = System::time(); //dragging = true;