DiagramItem
DiagramBox::RemoveItem(DiagramItem *item)
DiagramItem *item = ItemAt(i);
DiagramItem *item = ItemAt(i);
DiagramItem *item = ItemUnder(point);
DiagramItem *last = _LastItemUnder();
DiagramItem *item = ItemUnder(point);
DiagramItem *last = _LastItemUnder();
DiagramItem *item = ItemUnder(point);
DiagramItem *item = ItemUnder(point);
for (uint32 i = 0; i < CountItems(DiagramItem::M_ENDPOINT); i++) {
DiagramItem *item = ItemAt(i);
: DiagramItem(DiagramItem::M_BOX),
DiagramItemGroup(DiagramItem::M_ENDPOINT),
DiagramBox::AddItem(DiagramItem *item)
class DiagramBox : public DiagramItem, public DiagramItemGroup {
virtual bool AddItem(DiagramItem *item);
virtual bool RemoveItem(DiagramItem *item);
DiagramItem::MessageDragged(point, transit, message);
DiagramItem::MessageDropped(point, message);
: DiagramItem(DiagramItem::M_ENDPOINT),
class DiagramEndPoint : public DiagramItem
void DiagramItem::deselect()
float DiagramItem::howCloseTo(
const DiagramItem *lItem = *(reinterpret_cast<const DiagramItem* const*>(reinterpret_cast<const void* const*>(lValue)));
const DiagramItem *rItem = *(reinterpret_cast<const DiagramItem* const*>(reinterpret_cast<const void* const*>(rValue)));
bigtime_t DiagramItem::m_lastSelectionTime = 0;
int32 DiagramItem::m_countSelected = 0;
DiagramItem::DiagramItem(
DiagramItem::~DiagramItem()
void DiagramItem::select()
void DiagramItem::selectAdding()
class DiagramItem
DiagramItem(
virtual ~DiagramItem();
if (whichType & DiagramItem::M_BOX) {
if (whichType & DiagramItem::M_WIRE) {
if (whichType & DiagramItem::M_ENDPOINT) {
DiagramItem*
if (whichType & DiagramItem::M_BOX) {
if (fBoxes && (index < CountItems(DiagramItem::M_BOX)))
return static_cast<DiagramItem *>(fBoxes->ItemAt(index));
index -= CountItems(DiagramItem::M_BOX);
if (whichType & DiagramItem::M_WIRE) {
if (fWires && (index < CountItems(DiagramItem::M_WIRE)))
return static_cast<DiagramItem *>(fWires->ItemAt(index));
index -= CountItems(DiagramItem::M_WIRE);
if (whichType & DiagramItem::M_ENDPOINT) {
if (fEndPoints && (index < CountItems(DiagramItem::M_ENDPOINT)))
return static_cast<DiagramItem *>(fEndPoints->ItemAt(index));
DiagramItem*
if (fTypes & DiagramItem::M_BOX) {
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++) {
DiagramItem *item = ItemAt(i, DiagramItem::M_BOX);
if (fTypes & DiagramItem::M_WIRE) {
DiagramItem *closestItem = 0;
for (uint32 i = 0; i < CountItems(DiagramItem::M_WIRE); i++) {
DiagramItem *item = ItemAt(i, DiagramItem::M_WIRE);
if (fTypes & DiagramItem::M_ENDPOINT) {
for (uint32 i = 0; i < CountItems(DiagramItem::M_ENDPOINT); i++) {
DiagramItem *item = ItemAt(i, DiagramItem::M_ENDPOINT);
DiagramItemGroup::AddItem(DiagramItem *item)
case DiagramItem::M_BOX:
case DiagramItem::M_WIRE:
case DiagramItem::M_ENDPOINT:
DiagramItemGroup::RemoveItem(DiagramItem* item)
case DiagramItem::M_BOX:
case DiagramItem::M_WIRE:
case DiagramItem::M_ENDPOINT:
if ((whichType != DiagramItem::M_ANY) && (fTypes & whichType)) {
case DiagramItem::M_BOX:
case DiagramItem::M_WIRE:
case DiagramItem::M_ENDPOINT:
if (whichType & DiagramItem::M_WIRE) {
for (int32 i = CountItems(DiagramItem::M_WIRE) - 1; i >= 0; i--) {
DiagramItem *item = ItemAt(i, DiagramItem::M_WIRE);
if (whichType & DiagramItem::M_BOX) {
for (int32 i = CountItems(DiagramItem::M_BOX) - 1; i >= 0; i--) {
DiagramItem *item = ItemAt(i, DiagramItem::M_BOX);
if (whichType & DiagramItem::M_ENDPOINT) {
for (int32 i = CountItems(DiagramItem::M_ENDPOINT) - 1; i >= 0; i--) {
DiagramItem *item = ItemAt(i, DiagramItem::M_ENDPOINT);
DiagramItemGroup::GetClippingAbove(DiagramItem *which, BRegion *region)
case DiagramItem::M_BOX:
DiagramItem *item = ItemAt(i, DiagramItem::M_BOX);
case DiagramItem::M_WIRE:
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++) {
DiagramItem *item = ItemAt(i, DiagramItem::M_BOX);
DiagramItem*
return static_cast<DiagramItem *>(fSelection->ItemAt(index));
DiagramItemGroup::SelectItem(DiagramItem* which, bool deselectOthers)
DiagramItemGroup::DeselectItem(DiagramItem* which)
if (SelectedType() == DiagramItem::M_BOX) {
DiagramItem *item = dynamic_cast<DiagramItem *>(SelectedItemAt(i));
if (fWires && (fTypes & DiagramItem::M_WIRE)) {
delete static_cast<DiagramItem*>(fWires->ItemAt(i));
if (fBoxes && (fTypes & DiagramItem::M_BOX)) {
delete static_cast<DiagramItem*>(fBoxes->ItemAt(i));
if (fEndPoints && (fTypes & DiagramItem::M_ENDPOINT)) {
delete static_cast<DiagramItem*>(fEndPoints->ItemAt(i));
bool DeselectAll(uint32 itemType = DiagramItem::M_ANY);
DiagramItem* _LastItemUnder()
DiagramItem* fLastItemUnder;
uint32 CountItems(uint32 whichType = DiagramItem::M_ANY) const;
DiagramItem* ItemAt(uint32 index,
uint32 whichType = DiagramItem::M_ANY) const;
DiagramItem* ItemUnder(BPoint point);
virtual bool AddItem(DiagramItem* item);
bool RemoveItem(DiagramItem* item);
void DrawItems(BRect updateRect, uint32 whichType = DiagramItem::M_ANY,
bool GetClippingAbove(DiagramItem* which, BRegion* outRegion);
DiagramItem* SelectedItemAt(uint32 index) const;
bool SelectItem(DiagramItem* which, bool deselectOthers = true);
bool DeselectItem(DiagramItem *which);
bool SelectAll(uint32 itemType = DiagramItem::M_ANY);
DrawItems(updateRect, DiagramItem::M_WIRE);
DrawItems(updateRect, DiagramItem::M_BOX);
DiagramItem *item;
DiagramItem *item = ItemUnder(point);
DiagramItem *item = ItemUnder(point);
if (!(modifiers() & B_SHIFT_KEY) && DeselectAll(DiagramItem::M_ANY))
DiagramItem *last = _LastItemUnder();
DiagramItem *item = ItemUnder(point);
DiagramItem *last = _LastItemUnder();
DiagramItem *item = ItemUnder(point);
DiagramItem *item)
if (item->type() == DiagramItem::M_BOX)
DiagramItem *item)
if (item->type() == DiagramItem::M_BOX)
DiagramItemGroup(DiagramItem::M_BOX | DiagramItem::M_WIRE),
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++) {
m_boxRegion.Include(ItemAt(i, DiagramItem::M_BOX)->Frame());
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++) {
DiagramBox *box = dynamic_cast<DiagramBox *>(ItemAt(i, DiagramItem::M_BOX));
SortItems(DiagramItem::M_BOX, &compareSelectionTime);
DiagramItem *item);
DiagramItem *item);
DiagramItem::MessageDragged(point, transit, message);
: DiagramItem(DiagramItem::M_WIRE),
: DiagramItem(DiagramItem::M_WIRE),
class DiagramWire : public DiagramItem
SortItems(DiagramItem::M_ENDPOINT, &compareTypeAndID);
uint32 items = CountItems(DiagramItem::M_BOX);
ItemAt(panelIndex, DiagramItem::M_BOX));
for(uint32 n = 0; n < CountItems(DiagramItem::M_BOX); ++n) {
ItemAt(n, DiagramItem::M_BOX));
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
MediaNodePanel *panel = dynamic_cast<MediaNodePanel *>(ItemAt(i, DiagramItem::M_BOX));
for (uint32 i = 0; i < CountItems(DiagramItem::M_WIRE); i++)
MediaWire *wire = dynamic_cast<MediaWire *>(ItemAt(i, DiagramItem::M_WIRE));
if (SelectedType() == DiagramItem::M_BOX)
if (SelectedType() == DiagramItem::M_BOX)
if (SelectedType() == DiagramItem::M_BOX) {
else if (SelectedType() == DiagramItem::M_WIRE) {
if (SelectedType() != DiagramItem::M_BOX) {
if (SelectedType() != DiagramItem::M_BOX) {
if (SelectedType() == DiagramItem::M_BOX)
else if (SelectedType() == DiagramItem::M_WIRE)
if (SelectedType() == DiagramItem::M_BOX) {
SelectAll(DiagramItem::M_BOX);
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
BRect r = ItemAt(i, DiagramItem::M_BOX)->Frame();
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
BRect r = ItemAt(i, DiagramItem::M_BOX)->Frame();
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
MediaNodePanel *panel = dynamic_cast<MediaNodePanel *>(ItemAt(i, DiagramItem::M_BOX));
SortItems(DiagramItem::M_BOX, compareID);
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
ItemAt(i, DiagramItem::M_BOX)->moveTo(BPoint(-200.0, -200.0));
for (uint32 i = 0; i < CountItems(DiagramItem::M_BOX); i++)
panel = dynamic_cast<MediaNodePanel *>(ItemAt(i, DiagramItem::M_BOX));
SortItems(DiagramItem::M_BOX, compareSelectionTime);
v->SelectedType() != DiagramItem::M_BOX) {