Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d1428ced9 | ||
|
|
0f700aeda5 | ||
|
|
7273ee9ce0 | ||
|
|
1a7cd2e250 | ||
|
|
99f78be344 | ||
|
|
ee528d1245 | ||
|
|
18b856602c | ||
|
|
0dcd054da3 | ||
|
|
268a0cd2ee | ||
|
|
c71dcb8a91 | ||
|
|
24306c04ec | ||
|
|
b986815fcb | ||
|
|
a70cc31d28 | ||
|
|
b097cb15e4 |
@@ -1,14 +1,7 @@
|
|||||||
#include "DataModelInstance.h"
|
#include "DataModelInstance.h"
|
||||||
|
|
||||||
|
|
||||||
WorkspaceInstance* workspace;
|
|
||||||
Instance* guiRoot;
|
|
||||||
float mousex;
|
|
||||||
float mousey;
|
|
||||||
bool mouseButton1Down;
|
|
||||||
std::string message;
|
|
||||||
bool showMessage;
|
|
||||||
G3D::GFontRef font;
|
|
||||||
|
|
||||||
|
|
||||||
DataModelInstance::DataModelInstance(void)
|
DataModelInstance::DataModelInstance(void)
|
||||||
|
|||||||
@@ -11,8 +11,12 @@ public:
|
|||||||
void setMessage(std::string);
|
void setMessage(std::string);
|
||||||
void clearMessage();
|
void clearMessage();
|
||||||
void drawMessage(RenderDevice*);
|
void drawMessage(RenderDevice*);
|
||||||
GFontRef font;
|
|
||||||
WorkspaceInstance* getWorkspace();
|
WorkspaceInstance* getWorkspace();
|
||||||
|
WorkspaceInstance* workspace;
|
||||||
|
Instance* guiRoot;
|
||||||
|
std::string message;
|
||||||
|
bool showMessage;
|
||||||
|
G3D::GFontRef font;
|
||||||
Instance* getGuiRoot();
|
Instance* getGuiRoot();
|
||||||
float mousex;
|
float mousex;
|
||||||
float mousey;
|
float mousey;
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib"
|
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib"
|
||||||
OutputFile="./G3DTest.exe"
|
OutputFile="./G3DTest.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
@@ -147,8 +147,8 @@
|
|||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
BasicRuntimeChecks="0"
|
BasicRuntimeChecks="0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="3"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="false"
|
||||||
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
||||||
AssemblerListingLocation=".\Debug/"
|
AssemblerListingLocation=".\Debug/"
|
||||||
ObjectFile=".\Debug/"
|
ObjectFile=".\Debug/"
|
||||||
@@ -290,6 +290,10 @@
|
|||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Property.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\propertyGrid.cpp"
|
RelativePath=".\propertyGrid.cpp"
|
||||||
>
|
>
|
||||||
@@ -403,6 +407,10 @@
|
|||||||
RelativePath=".\PartType.h"
|
RelativePath=".\PartType.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Property.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\propertyGrid.h"
|
RelativePath=".\propertyGrid.h"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
//#include "WindowFunctions.h"
|
//#include "WindowFunctions.h"
|
||||||
|
#pragma once
|
||||||
#include <mshtml.h>
|
#include <mshtml.h>
|
||||||
#include <exdisp.h>
|
#include <exdisp.h>
|
||||||
//#include <Mshtmhst.h>
|
//#include <Mshtmhst.h>
|
||||||
|
|||||||
@@ -1,14 +1,5 @@
|
|||||||
#include "ImageButtonInstance.h"
|
#include "ImageButtonInstance.h"
|
||||||
G3D::TextureRef image = NULL;
|
|
||||||
int openGLID = 0;
|
|
||||||
G3D::TextureRef image_ovr = NULL;
|
|
||||||
int openGLID_ovr = 0;
|
|
||||||
G3D::TextureRef image_dn = NULL;
|
|
||||||
int openGLID_dn = 0;
|
|
||||||
G3D::TextureRef image_ds = NULL;
|
|
||||||
int openGLID_ds = 0;
|
|
||||||
Vector2 size;
|
|
||||||
Vector2 position;
|
|
||||||
ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
|
ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
48
Instance.cpp
48
Instance.cpp
@@ -2,10 +2,6 @@
|
|||||||
#include <G3DAll.h>
|
#include <G3DAll.h>
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
|
|
||||||
std::string name;
|
|
||||||
Instance* parent = NULL;
|
|
||||||
std::vector<Instance* > children;
|
|
||||||
static std::string className = "BaseInstance";
|
|
||||||
|
|
||||||
Instance::Instance(void)
|
Instance::Instance(void)
|
||||||
{
|
{
|
||||||
@@ -21,6 +17,8 @@ Instance::Instance(const Instance &oinst)
|
|||||||
className = oinst.className;
|
className = oinst.className;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Instance::render(RenderDevice* rd)
|
void Instance::render(RenderDevice* rd)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
for(size_t i = 0; i < children.size(); i++)
|
||||||
@@ -29,6 +27,45 @@ void Instance::render(RenderDevice* rd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PROPGRIDITEM Instance::createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type)
|
||||||
|
{
|
||||||
|
PROPGRIDITEM pItem;
|
||||||
|
PropGrid_ItemInit(pItem);
|
||||||
|
pItem.lpszCatalog=catalog;
|
||||||
|
pItem.lpszPropName=propName;
|
||||||
|
pItem.lpszPropDesc=propDesc;
|
||||||
|
pItem.lpCurValue=curVal;
|
||||||
|
pItem.iItemType=type;
|
||||||
|
return pItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Instance::PropUpdate(DWORD &addr, PROPGRIDITEM &pItem)
|
||||||
|
{
|
||||||
|
if((DWORD)&name == addr)
|
||||||
|
{
|
||||||
|
name = pItem.lpCurValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Property> Instance::getProperties()
|
||||||
|
{
|
||||||
|
std::vector<Property> properties;
|
||||||
|
|
||||||
|
|
||||||
|
properties.push_back(Property(createPGI(
|
||||||
|
"Properties",
|
||||||
|
"Name",
|
||||||
|
"The name of this instance",
|
||||||
|
(LPARAM)name.c_str(),
|
||||||
|
PIT_EDIT
|
||||||
|
), (DWORD)&name));
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Instance::~Instance(void)
|
Instance::~Instance(void)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
for(size_t i = 0; i < children.size(); i++)
|
||||||
@@ -110,3 +147,6 @@ Instance* Instance::findFirstChild(std::string name)
|
|||||||
}
|
}
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include <G3DAll.h>
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include <G3DAll.h>
|
||||||
|
#include "Property.h"
|
||||||
class Instance
|
class Instance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -19,7 +20,11 @@ public:
|
|||||||
void removeChild(Instance*);
|
void removeChild(Instance*);
|
||||||
Instance* getParent();
|
Instance* getParent();
|
||||||
virtual Instance* clone() const { return new Instance(*this); }
|
virtual Instance* clone() const { return new Instance(*this); }
|
||||||
|
virtual std::vector<Property> getProperties();
|
||||||
|
virtual void PropUpdate(DWORD &addr, PROPGRIDITEM &pItem);
|
||||||
protected:
|
protected:
|
||||||
std::string className;
|
std::string className;
|
||||||
Instance* parent; // Another pointer.
|
Instance* parent; // Another pointer.
|
||||||
|
PROPGRIDITEM createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#include "PhysicalInstance.h"
|
#include "PhysicalInstance.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
GLfloat vertecies[96];
|
|
||||||
bool changed = true;
|
|
||||||
Box itemBox = Box();
|
|
||||||
|
|
||||||
PhysicalInstance::PhysicalInstance(void)
|
PhysicalInstance::PhysicalInstance(void)
|
||||||
{
|
{
|
||||||
@@ -216,5 +214,35 @@ PhysicalInstance::~PhysicalInstance(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PhysicalInstance::PropUpdate(DWORD &addr, PROPGRIDITEM &pItem)
|
||||||
|
{
|
||||||
|
if((DWORD)&name == addr)
|
||||||
|
{
|
||||||
|
name = pItem.lpCurValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Property> PhysicalInstance::getProperties()
|
||||||
|
{
|
||||||
|
std::vector<Property> properties;
|
||||||
|
|
||||||
|
|
||||||
|
properties.push_back(Property(createPGI(
|
||||||
|
"Properties",
|
||||||
|
"Name",
|
||||||
|
"The name of this instance",
|
||||||
|
(LPARAM)name.c_str(),
|
||||||
|
PIT_EDIT
|
||||||
|
), (DWORD)&name));
|
||||||
|
char pso[512];
|
||||||
|
|
||||||
|
properties.push_back(Property(createPGI(
|
||||||
|
"Item",
|
||||||
|
"Offset",
|
||||||
|
"The position of the object in the workspace",
|
||||||
|
(LPARAM)"Coming soon",
|
||||||
|
PIT_EDIT
|
||||||
|
), (DWORD)&name));
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,12 @@ public:
|
|||||||
bool anchored;
|
bool anchored;
|
||||||
Vector3 rotVelocity;
|
Vector3 rotVelocity;
|
||||||
bool collides(Box);
|
bool collides(Box);
|
||||||
|
virtual std::vector<Property> getProperties();
|
||||||
|
virtual void PropUpdate(DWORD &addr, PROPGRIDITEM &pItem);
|
||||||
private:
|
private:
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 size;
|
Vector3 size;
|
||||||
|
GLfloat vertecies[96];
|
||||||
|
bool changed;
|
||||||
|
Box itemBox;
|
||||||
};
|
};
|
||||||
|
|||||||
15
Property.cpp
Normal file
15
Property.cpp
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#include "Property.h"
|
||||||
|
|
||||||
|
Property::Property(PROPGRIDITEM item, DWORD addr)
|
||||||
|
{
|
||||||
|
this->addr = addr;
|
||||||
|
this->item = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
Property::~Property(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11
Property.h
Normal file
11
Property.h
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <windows.h>
|
||||||
|
#include "propertyGrid.h"
|
||||||
|
class Property
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PROPGRIDITEM item;
|
||||||
|
DWORD addr;
|
||||||
|
Property(PROPGRIDITEM item, DWORD addr);
|
||||||
|
~Property(void);
|
||||||
|
};
|
||||||
@@ -1,9 +1,16 @@
|
|||||||
|
#define _WINSOCKAPI_
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "WindowFunctions.h"
|
#include "WindowFunctions.h"
|
||||||
#include "propertyGrid.h"
|
#include "Property.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "PropertyWindow.h"
|
#include "PropertyWindow.h"
|
||||||
|
|
||||||
|
/*typedef struct typPRGP {
|
||||||
|
Instance* instance; // Declare member types
|
||||||
|
Property ∝
|
||||||
|
} PRGP;*/
|
||||||
|
|
||||||
|
//std::vector<PRGP> propvec;
|
||||||
LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PropertyWindow *propWind = (PropertyWindow *)GetWindowLongPtr(hwnd, GWL_USERDATA);
|
PropertyWindow *propWind = (PropertyWindow *)GetWindowLongPtr(hwnd, GWL_USERDATA);
|
||||||
@@ -17,6 +24,9 @@ LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||||||
{
|
{
|
||||||
propWind->onResize();
|
propWind->onResize();
|
||||||
}
|
}
|
||||||
|
case WM_NOTIFY:
|
||||||
|
MessageBox(NULL,"Test","Test",0);
|
||||||
|
break;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return DefWindowProc(hwnd, msg, wParam, lParam);
|
return DefWindowProc(hwnd, msg, wParam, lParam);
|
||||||
@@ -86,7 +96,7 @@ bool PropertyWindow::onCreate(int x, int y, int sx, int sy, HMODULE hThisInstanc
|
|||||||
PropGrid_ShowPropertyDescriptions(_propGrid,TRUE);
|
PropGrid_ShowPropertyDescriptions(_propGrid,TRUE);
|
||||||
PropGrid_ExpandAllCatalogs(_propGrid);
|
PropGrid_ExpandAllCatalogs(_propGrid);
|
||||||
|
|
||||||
SetWindowLongPtr(_propGrid,GWL_USERDATA,(LONG)this);
|
SetWindowLongPtr(_hwndProp,GWL_USERDATA,(LONG)this);
|
||||||
_redraw();
|
_redraw();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -107,3 +117,21 @@ void PropertyWindow::_redraw()
|
|||||||
GetClientRect(_hwndProp,&rect);
|
GetClientRect(_hwndProp,&rect);
|
||||||
SetWindowPos(_propGrid, NULL, 0, 20, rect.right, rect.bottom-20, SWP_NOZORDER | SWP_NOACTIVATE);
|
SetWindowPos(_propGrid, NULL, 0, 20, rect.right, rect.bottom-20, SWP_NOZORDER | SWP_NOACTIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PropertyWindow::SetProperties(Instance * instance)
|
||||||
|
{
|
||||||
|
PropGrid_ResetContent(_propGrid);
|
||||||
|
std::vector<Property> prop = instance->getProperties();
|
||||||
|
|
||||||
|
for(size_t i = 0; i < prop.size(); i++)
|
||||||
|
{
|
||||||
|
::PROPGRIDITEM item = prop.at(i).item;
|
||||||
|
PropGrid_AddItem(_propGrid, &item);
|
||||||
|
//PRGP propgp;
|
||||||
|
//propgp.instance = instance;
|
||||||
|
//propgp.prop = prop.at(i);
|
||||||
|
}
|
||||||
|
PropGrid_ExpandAllCatalogs(_propGrid);
|
||||||
|
SetWindowLongPtr(_propGrid,GWL_USERDATA,(LONG)this);
|
||||||
|
_redraw();
|
||||||
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "Instance.h"
|
||||||
class PropertyWindow {
|
class PropertyWindow {
|
||||||
public:
|
public:
|
||||||
PropertyWindow(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
PropertyWindow(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
||||||
bool onCreate(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
bool onCreate(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
||||||
|
void SetProperties(Instance *);
|
||||||
void onResize();
|
void onResize();
|
||||||
private:
|
private:
|
||||||
HWND _propGrid;
|
HWND _propGrid;
|
||||||
|
|||||||
@@ -1,25 +1,5 @@
|
|||||||
#include "TextButtonInstance.h"
|
#include "TextButtonInstance.h"
|
||||||
Vector2 boxBegin;
|
|
||||||
Vector2 boxEnd;
|
|
||||||
Vector2 fontLocationRelativeTo;
|
|
||||||
Color4 textColor;
|
|
||||||
Color4 textOutlineColor;
|
|
||||||
Color4 boxColor;
|
|
||||||
Color4 boxOutlineColor;
|
|
||||||
Color4 textColorOvr;
|
|
||||||
Color4 textOutlineColorOvr;
|
|
||||||
Color4 boxColorOvr;
|
|
||||||
Color4 boxOutlineColorOvr;
|
|
||||||
Color4 textColorDn;
|
|
||||||
Color4 textOutlineColorDn;
|
|
||||||
Color4 boxColorDn;
|
|
||||||
Color4 boxOutlineColorDn;
|
|
||||||
bool centeredWithinBox;
|
|
||||||
std::string title;
|
|
||||||
G3D::GFontRef* font;
|
|
||||||
int textSize;
|
|
||||||
|
|
||||||
bool visible;
|
|
||||||
|
|
||||||
TextButtonInstance::TextButtonInstance(void)
|
TextButtonInstance::TextButtonInstance(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#include "WorkspaceInstance.h"
|
#include "WorkspaceInstance.h"
|
||||||
float timer = 60.0F;
|
|
||||||
int score = 0;
|
|
||||||
|
|
||||||
WorkspaceInstance::WorkspaceInstance(void)
|
WorkspaceInstance::WorkspaceInstance(void)
|
||||||
{
|
{
|
||||||
|
|||||||
13
main.cpp
13
main.cpp
@@ -79,7 +79,7 @@ bool dragging = false;
|
|||||||
Vector2 oldMouse = Vector2(0,0);
|
Vector2 oldMouse = Vector2(0,0);
|
||||||
float moveRate = 0.5;
|
float moveRate = 0.5;
|
||||||
std::vector<Instance*> selectedInstances = std::vector<Instance*>();
|
std::vector<Instance*> selectedInstances = std::vector<Instance*>();
|
||||||
static const std::string PlaceholderName = "Dynamica";
|
static const std::string PlaceholderName = "HyperCube";
|
||||||
|
|
||||||
Demo *usableApp = NULL;
|
Demo *usableApp = NULL;
|
||||||
|
|
||||||
@@ -254,7 +254,15 @@ void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
|||||||
std::vector<Instance*> newinst;
|
std::vector<Instance*> newinst;
|
||||||
for(size_t i = 0; i < selectedInstances.size(); i++)
|
for(size_t i = 0; i < selectedInstances.size(); i++)
|
||||||
{
|
{
|
||||||
newinst.push_back(selectedInstances.at(i)->clone());
|
PhysicalInstance* tempinst = (PhysicalInstance*) selectedInstances.at(i);
|
||||||
|
Vector3 tempPos = tempinst->getPosition();
|
||||||
|
Vector3 tempSize = tempinst->getSize();
|
||||||
|
|
||||||
|
PhysicalInstance* clonedInstance = (PhysicalInstance*) selectedInstances.at(i)->clone();
|
||||||
|
|
||||||
|
newinst.push_back(tempinst);
|
||||||
|
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
||||||
|
usableApp->cameraController.centerCamera(selectedInstances.at(0));*/
|
||||||
}
|
}
|
||||||
selectedInstances = newinst;
|
selectedInstances = newinst;
|
||||||
}
|
}
|
||||||
@@ -1269,6 +1277,7 @@ void Demo::onMouseLeftPressed(HWND hwnd,int x,int y)
|
|||||||
while(selectedInstances.size() > 0)
|
while(selectedInstances.size() > 0)
|
||||||
selectedInstances.erase(selectedInstances.begin());
|
selectedInstances.erase(selectedInstances.begin());
|
||||||
selectedInstances.push_back(test);
|
selectedInstances.push_back(test);
|
||||||
|
_propWindow->SetProperties(test);
|
||||||
//message = "Dragging = true.";
|
//message = "Dragging = true.";
|
||||||
//messageTime = System::time();
|
//messageTime = System::time();
|
||||||
//dragging = true;
|
//dragging = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user