/** * @brief * Get screen by name */ Screen *Gui::GetScreen(const String &sName) const { // Find screen with that name for (uint32 i=0; i<m_lstScreens.GetNumOfElements(); i++) { Screen *pScreen = m_lstScreens[i]; if (pScreen->GetName() == sName) { return pScreen; } } // Not found return nullptr; }
void CFlowTreeView::DoScreenProperties(void) { Screen *pWorkScreen; CFEManDoc* pDoc = GetDocument(); pWorkScreen = pDoc->GetFirstSelectedScreen(); if(pWorkScreen) { pDoc->ClearAllSelectedScreenIcons(); pDoc->SelectScreenIcon(pWorkScreen); Invalidate(); // Load up the screen properties dialog. CScreenPropertiesDlg screenProperties; // Set the screen name. strcpy(screenProperties.screenName, pWorkScreen->GetName()); screenProperties.screenWidth = pWorkScreen->GetPageBounds()->Width(); screenProperties.screenHeight = pWorkScreen->GetPageBounds()->Height(); // Set the user info. if(pWorkScreen->GetMyUserInfo()) { screenProperties.userInfo = new char [strlen(pWorkScreen->GetMyUserInfo()) + 1]; strcpy(screenProperties.userInfo, pWorkScreen->GetMyUserInfo()); } if(screenProperties.DoModal() == IDOK) { CDC *pDC = GetDC(); pWorkScreen->SetScreenName(pDC, screenProperties.screenName); pWorkScreen->SetMyUserInfo(screenProperties.userInfo); pWorkScreen->SetPageWidth(screenProperties.screenWidth); pWorkScreen->SetPageHeight(screenProperties.screenHeight); Invalidate(); pDoc->UpdateScreenEditView(); } pDoc->SetModifiedFlag(); if(screenProperties.userInfo) delete [] screenProperties.userInfo; } }
void CFlowTreeView::DrawScreenIcons(CDC *pDC) { CPoint *pWorkPoint; CRect *pWorkRect; CSize *pWorkSize; char *pWorkName; Screen *pWorkScreen; CFEManDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // Create the pens we need to draw the screen icons in both thier selected and // non-selected forms. CPen normalPen(PS_SOLID, 1, RGB(0, 0, 0)); CPen selectedPen(PS_SOLID, 3, RGB(255, 0, 0)); pWorkScreen = pDoc->GetFirstScreen(); while(pWorkScreen) { pWorkPoint = pWorkScreen->GetIconPos(); pWorkRect = pWorkScreen->GetIconBounds(); pWorkSize = pWorkScreen->GetNameSize(); pWorkName = pWorkScreen->GetName(); // Check to see if the screen icon is selected. If it is, draw it with // a thicker border. if(pWorkScreen->GetScreenStatus() == Screen::SS_SELECTED) { pDC->SelectObject(selectedPen); } else { pDC->SelectObject(normalPen); } // Draw the bounds of the icon. pDC->Rectangle(pWorkRect->left, pWorkRect->top, pWorkRect->right, pWorkRect->bottom); // Draw the text in the icon. pDC->SetTextAlign(TA_CENTER | TA_TOP); pDC->TextOut(pWorkPoint->x + (pWorkSize->cx / 2), pWorkPoint->y, pWorkName, strlen(pWorkName)); pWorkScreen = (Screen *)pWorkScreen->GetNext(); } }
//[-------------------------------------------------------] //[ Protected virtual PLGui::GuiApplication functions ] //[-------------------------------------------------------] void Application::OnCreateMainWindow() { // [sbusch] // String sDir = Url(sFilename).CutFilename(); // System::GetInstance()->SetCurrentDir(sDir); // LoadableManager::GetInstance()->AddBaseDir(sDir); // Get GUI Gui *pGui = Gui::GetSystemGui(); // List screens System::GetInstance()->GetConsole().Print("Screens:\n"); for (uint32 i=0; i<pGui->GetScreens().GetNumOfElements(); i++) { Screen *pScreen = pGui->GetScreens().Get(i); String sName = pScreen->GetName(); Vector2i vSize = pScreen->GetSize(); Vector2i vPos = pScreen->GetPos(); bool bDefault = pScreen->IsDefault(); System::GetInstance()->GetConsole().Print( String("- ") + sName + " [" + vSize.x + 'x' + vSize.y +']' + " (" + vPos .x + ',' + vPos .y + ')' + (bDefault ? " (*)" : "") + '\n'); } // Create window TestWindow *pWindow = new TestWindow(); // pWindow->SetFullscreenEnabled(true); pWindow->SetPos(Vector2i(0, 0)); pWindow->SetSize(Vector2i(640, 480)); pWindow->Center(CenterScreen); pWindow->SetVisible(true); // Add modifiers pWindow->AddModifier("PLGui::ModClose", "ExitApplication=1"); // pWindow->AddModifier("PLGui::ModBlend", ""); // Set main window SetMainWindow(pWindow); }