MCPcopy Create free account
hub / github.com/GeoDaCenter/geoda / Select

Method Select

ogl/lines.cpp:1630–1677  ·  view source on GitHub ↗

Override select, to create/delete temporary label-moving objects

Source from the content-addressed store, hash-verified

1628
1629// Override select, to create/delete temporary label-moving objects
1630void wxLineShape::Select(bool select, wxDC* dc)
1631{
1632 wxShape::Select(select, dc);
1633 if (select)
1634 {
1635 for (int i = 0; i < 3; i++)
1636 {
1637 wxNode *node = m_regions.Item(i);
1638 if (node)
1639 {
1640 wxShapeRegion *region = (wxShapeRegion *)node->GetData();
1641 if (region->m_formattedText.GetCount() > 0)
1642 {
1643 double w, h, x, y, xx, yy;
1644 region->GetSize(&w, &h);
1645 region->GetPosition(&x, &y);
1646 GetLabelPosition(i, &xx, &yy);
1647 if (m_labelObjects[i])
1648 {
1649 m_labelObjects[i]->Select(false);
1650 m_labelObjects[i]->RemoveFromCanvas(m_canvas);
1651 delete m_labelObjects[i];
1652 }
1653 m_labelObjects[i] = OnCreateLabelShape(this, region, w, h);
1654 m_labelObjects[i]->AddToCanvas(m_canvas);
1655 m_labelObjects[i]->Show(true);
1656 if (dc)
1657 m_labelObjects[i]->Move(*dc, (double)(x + xx), (double)(y + yy));
1658 m_labelObjects[i]->Select(true, dc);
1659 }
1660 }
1661 }
1662 }
1663 else
1664 {
1665 for (int i = 0; i < 3; i++)
1666 {
1667 if (m_labelObjects[i])
1668 {
1669 m_labelObjects[i]->Select(false, dc);
1670 m_labelObjects[i]->Erase(*dc);
1671 m_labelObjects[i]->RemoveFromCanvas(m_canvas);
1672 delete m_labelObjects[i];
1673 m_labelObjects[i] = NULL;
1674 }
1675 }
1676 }
1677}
1678
1679/*
1680 * Line control point

Callers 2

~wxLineShapeMethod · 0.45
FormatTextMethod · 0.45

Calls 7

RemoveFromCanvasMethod · 0.80
AddToCanvasMethod · 0.80
MoveMethod · 0.80
EraseMethod · 0.80
GetSizeMethod · 0.45
GetPositionMethod · 0.45
ShowMethod · 0.45

Tested by

no test coverage detected