summaryrefslogtreecommitdiffstats
path: root/Project/ElementDataObject.cpp
blob: e4752ea8faeadd05769a21519c43ac0c0038f7b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "ElectricCalculation.h"
#include "ElementDataObject.h"

ElementDataObject::ElementDataObject(Workspace* workspace) : wxDataObjectSimple(wxDataFormat("PSPCopy"))
{
    m_allElements.GetElementsFromList(workspace->GetElementList());
    std::vector<Text*> textList = workspace->GetTextList();
    
    std::vector<Bus*> busList = m_allElements.GetBusList();
    for(int i = 0; i<(int)busList.size(); i++) {
        Bus* origBus = busList[i];
        if(origBus->IsSelected()) {
            Bus* copyBus = new Bus();
            *copyBus = *origBus;
            m_elementsLists->busList.push_back(copyBus);
        }
    }
}

ElementDataObject::~ElementDataObject()
{
}

size_t ElementDataObject::GetDataSize() const
{
    return sizeof(void*);
}

bool ElementDataObject::GetDataHere(void* buf) const
{
    *(ElementsLists**)buf = m_elementsLists; 
	return true;
}

bool ElementDataObject::SetData(size_t len, const void* buf)
{
    m_elementsLists = *(ElementsLists**)buf;
	return true;
}