Made parent selectable if exists

This commit is contained in:
andreja6
2018-10-25 10:06:52 -07:00
parent 5020de484c
commit 99d5a1de38
2 changed files with 37 additions and 7 deletions

View File

@@ -10,8 +10,8 @@ DataModelInstance::DataModelInstance(void)
workspace = new WorkspaceInstance();
guiRoot = new Instance();
level = new LevelInstance();
children.push_back(workspace);
children.push_back(level);
//children.push_back(workspace);
//children.push_back(level);
className = "dataModel";
mousex = 0;
mousey = 0;
@@ -19,6 +19,9 @@ DataModelInstance::DataModelInstance(void)
showMessage = false;
canDelete = false;
workspace->setParent(this);
level->setParent(this);
}
DataModelInstance::~DataModelInstance(void)

View File

@@ -13,7 +13,7 @@
std::vector<PROPGRIDITEM> prop;
std::vector<Instance*> children;
Instance * selectedInstance;
Instance * parent = NULL;
const int CX_BITMAP = 16;
const int CY_BITMAP = 16;
@@ -128,11 +128,29 @@ LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
propWind->ClearProperties();
while(g_selectedInstances.size() != 0)
g_selectedInstances.erase(g_selectedInstances.begin());
if(parent != NULL)
{
std::cout << ItemIndex << std::endl;
if(ItemIndex == 1)
{
g_selectedInstances.push_back(parent);
propWind->SetProperties(parent);
}
else
{
g_selectedInstances.push_back(children.at(ItemIndex+2));
propWind->SetProperties(children.at(ItemIndex+2));
}
}
else
{
g_selectedInstances.push_back(children.at(ItemIndex-1));
propWind->SetProperties(children.at(ItemIndex-1));
}
}
}
}
break;
case WM_NOTIFY:
@@ -162,15 +180,24 @@ LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
void PropertyWindow::refreshExplorer()
{
SendMessage(_explorerComboBox,CB_RESETCONTENT,0,0);
parent = NULL;
for (unsigned int i=0;i<g_selectedInstances.size();i++) {
SendMessage(_explorerComboBox,CB_ADDSTRING, 0,(LPARAM)g_selectedInstances[i]->name.c_str());
if(g_selectedInstances[i]->getParent() != NULL)
{
std::string title = ".. (";
title += g_selectedInstances[i]->getParent()->name;
title += ")";
SendMessage(_explorerComboBox,CB_ADDSTRING, 0,(LPARAM)title.c_str());
parent = g_selectedInstances[i]->getParent();
}
children = g_selectedInstances[i]->getChildren();
for(size_t z = 0; z < children.size(); z++)
{
SendMessage(_explorerComboBox,CB_ADDSTRING, 0,(LPARAM)children.at(z)->name.c_str());
}
SendMessage(_explorerComboBox,CB_SETCURSEL,0,(LPARAM)0);
InvalidateRect(_explorerComboBox, NULL, NULL);
}
}