38
40
GNC::GCS::IConfigurationController::TListGroups groups;
39
41
GNC::GCS::ConfigurationController::Instance()->readGroupUser(ATTRIBUTES_SCOPE, groups);
41
int maxX = 0, maxY = 0;
42
int deviceCount = wxDisplay::GetCount();
43
for (int i = 0; i < deviceCount; ++i) {
45
maxX = std::max<int>(maxX, dsply.GetClientArea().x + dsply.GetCurrentMode().GetWidth());
46
maxY = std::max<int>(maxY, dsply.GetClientArea().y + dsply.GetCurrentMode().GetHeight());
43
int maxX = 0, maxY = 0, minX=std::numeric_limits<int>::max(), minY=std::numeric_limits<int>::max();
44
int deviceCount = wxDisplay::GetCount();
45
for (int i = 0; i < deviceCount; ++i) {
47
maxX = std::max<int>(maxX, dsply.GetClientArea().x + dsply.GetCurrentMode().GetWidth());
48
maxY = std::max<int>(maxY, dsply.GetClientArea().y + dsply.GetCurrentMode().GetHeight());
49
minX = std::min<int>(minX, dsply.GetClientArea().x);
50
minY = std::min<int>(minY, dsply.GetClientArea().y);
52
LOG_DEBUG ("WindowAttributes", "Client area X: " << minX << ", " << maxX << " Y: " << minY << ", " << maxY << std::endl);
49
53
std::string windowIdTmp;
50
54
for (GNC::GCS::IConfigurationController::TListGroups::iterator it = groups.begin(); it != groups.end(); ++it)
52
56
(*it).readStringValue(WINDOW_ID_KEY, windowIdTmp);
53
57
if (windowId.compare(windowIdTmp) == 0) {
55
60
(*it).readIntValue(X_KEY_POSITION, position.x, -1);
56
61
(*it).readIntValue(Y_KEY_POSITION, position.y, -1);
57
if (position.x > -50 && position.x < maxX
58
&& position.y > -50 && position.y < maxY) {
62
if (position.x >= (minX - pWindow->GetMinSize().x) && position.x < maxX
63
&& position.y >= (minY - pWindow->GetMinSize().y) && position.y < maxY) {
59
64
pWindow->SetPosition(position);
62
66
wxTopLevelWindow* pTopLevel = dynamic_cast<wxTopLevelWindow*>(pWindow);
63
67
if (pTopLevel != NULL) {
64
68
bool isMaximized = defaultMaximized;
65
69
(*it).readBoolValue(IS_MAXIMIZED_KEY, isMaximized);
66
70
pTopLevel->Maximize(isMaximized);
67
71
if (!isMaximized) {
68
(*it).readIntValue(WIDTH_KEY_POSITION, size.x, -1);
69
(*it).readIntValue(HEIGH_KEY_POSITION, size.y, -1);
72
(*it).readIntValue(WIDTH_KEY_POSITION, size.x, 0);
73
(*it).readIntValue(HEIGH_KEY_POSITION, size.y, 0);
72
(*it).readIntValue(WIDTH_KEY_POSITION, size.x, -1);
73
(*it).readIntValue(HEIGH_KEY_POSITION, size.y, -1);
76
(*it).readIntValue(WIDTH_KEY_POSITION, size.x, 0);
77
(*it).readIntValue(HEIGH_KEY_POSITION, size.y, 0);
75
79
pWindow->SetSize(size);