MCPcopy Create free account
hub / github.com/MyGUI/mygui / selectWidget

Method selectWidget

Tools/LayoutEditor/WidgetSelectorManager.cpp:44–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42 }
43
44 void WidgetSelectorManager::selectWidget(const MyGUI::IntPoint& _mousePosition)
45 {
46 if (mLastClickPoint != _mousePosition)
47 {
48 mSelectDepth = 0;
49 mLastClickPoint = _mousePosition;
50 }
51
52 // здесь кликать вглубь
53 MyGUI::Widget* item = getTopWidget(_mousePosition);
54 if (nullptr != item)
55 {
56 // find widget registered as container
57 while ((nullptr == EditorWidgets::getInstance().find(item)) && (nullptr != item))
58 item = item->getParent();
59 MyGUI::Widget* oldItem = item;
60
61 // try to selectin depth
62 size_t depth = mSelectDepth;
63 while (depth && (nullptr != item))
64 {
65 item = item->getParent();
66 while ((nullptr == EditorWidgets::getInstance().find(item)) && (nullptr != item))
67 item = item->getParent();
68 MYGUI_ASSERT(depth != 0, "depth != 0");
69 depth--;
70 }
71
72 if (nullptr == item)
73 {
74 item = oldItem;
75 mSelectDepth = 0;
76 }
77
78 // found widget
79 if (nullptr != item)
80 {
81 depth = mSelectDepth;
82 WidgetSelectorManager::getInstance().setSelectedWidget(item);
83 mSelectDepth = depth + 1;
84 }
85 else
86 {
87 WidgetSelectorManager::getInstance().setSelectedWidget(nullptr);
88 }
89 }
90 else
91 {
92 WidgetSelectorManager::getInstance().setSelectedWidget(nullptr);
93 }
94 }
95
96 MyGUI::Widget* WidgetSelectorManager::getTopWidget(const MyGUI::IntPoint& _point)
97 {

Callers 2

moveNewWidgetMethod · 0.80
onMouseButtonClickMethod · 0.80

Calls 3

setSelectedWidgetMethod · 0.80
findMethod · 0.45
getParentMethod · 0.45

Tested by

no test coverage detected