Пример #1
0
/**
*  @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();
	}
}
Пример #4
0
//[-------------------------------------------------------]
//[ 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);
}