+//
// container.cpp: Container object
//
// Part of the Architektonas Project
#include "dimension.h"
#include "painter.h"
-
Container::Container(Vector p1, Object * p/*= NULL*/): Object(p1, p),
isTopLevelContainer(false),
dragging(false), draggingHandle1(false), draggingHandle2(false),
state = OSInactive;
}
-
// Copy constructor
Container::Container(const Container & copy): Object(copy.position, copy.parent)
{
state = OSInactive;
}
-
Container::~Container()
{
Clear();
}
-
// Assignment operator
Container & Container::operator=(const Container & from)
{
return *this;
}
-
/*virtual*/ void Container::Draw(Painter * painter)
{
QRectF boundary;
}
}
-
/*virtual*/ Vector Container::Center(void)
{
return position;
}
-
/*
We need at least *three* handles for this object:
- one for moving
Also: should put the snap logic into the Object base class (as a static method)...
*/
-
// Need to add checking here for clicking on a member of a group (Container),
// and checking for if it's a top level container (the DrawingView's document).
/*
return (lastObjectHovered == NULL ? false : true);
}
-
/*virtual*/ void Container::PointerReleased(void)
{
if (!isTopLevelContainer)
(*i)->PointerReleased();
}
-
/*virtual*/ bool Container::NeedsUpdate(void)
{
// If this is *not* a top level container, then we treat it as an
return false;
}
-
/*virtual*/ void Container::Add(Object * object)
{
objects.push_back(object);
printf("Container: Added object (=$%X). size = %li\n", object, objects.size());
}
-
/*virtual*/ QRectF Container::Extents(void)
{
QRectF bounds;
return bounds;
}
-
void Container::Delete(Object * objectToDelete)
{
std::vector<Object *>::iterator i = objects.begin();
}
}
-
void Container::DeleteSelectedItems(void)
{
std::vector<Object *>::iterator i = objects.begin();
}
}
-
void Container::Clear(void)
{
std::vector<Object *>::iterator i = objects.begin();
}
}
-
void Container::SelectAll(void)
{
for(unsigned int i=0; i<objects.size(); i++)
objects[i]->state = OSSelected;
}
-
void Container::DeselectAll(void)
{
for(unsigned int i=0; i<objects.size(); i++)
objects[i]->state = OSInactive;
}
-
int Container::ItemsSelected(void)
{
int selected = 0;
return selected;
}
-
Object * Container::SelectedItem(unsigned int index)
{
unsigned int selectedIndex = 0;
return NULL;
}
-
void Container::MoveContentsTo(Container * newContainer)
{
// Sanity check
objects.clear();
}
-
void Container::CopyContentsTo(Container * newContainer)
{
// Sanity check
newContainer->Add((*i)->Copy());
}
-
void Container::MoveSelectedContentsTo(Container * newContainer)
{
// Sanity check
}
}
-
void Container::CopySelectedContentsTo(Container * newContainer)
{
// Sanity check
}
}
-
void Container::ResizeAllDimensions(double newSize)
{
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
}
}
-
/*virtual*/ void Container::Enumerate(FILE * file)
{
// Only put "CONTAINER" markers if *not* the top level container
fprintf(file, "ENDCONTAINER\n");
}
-
/*virtual*/ Object * Container::Copy(void)
{
#warning "!!! This doesn't take care of attached Dimensions !!!"
return c;
}
-
/*virtual*/ void Container::Rotate(Point point, double angle)
{
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
(*i)->Rotate(point, angle);
}
-
/*virtual*/ void Container::RotateSelected(Point point, double angle)
{
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
}
}
-
/*virtual*/ void Container::Mirror(Point p1, Point p2)
{
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
(*i)->Mirror(p1, p2);
}
-
/*virtual*/ void Container::MirrorSelected(Point p1, Point p2)
{
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
}
}
-
/*virtual*/ void Container::Save(void)
{
Object::Save();
(*i)->Save();
}
-
/*virtual*/ void Container::Restore(void)
{
Object::Restore();
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
(*i)->Restore();
}
-