Пример #1
0
void LoginView::Layout()
{
	VLayoutNode* pcRoot = new VLayoutNode("root");
	
	pcUserIconView = new os::IconView(Rect(1,2,2000,82),"",CF_FOLLOW_ALL);
	pcUserIconView->SetSelChangeMsg(new Message(M_SEL_CHANGED));
	PopulateIcons();
	pcUserIconView->SetTabOrder( 1 );

	FrameView* pcFrameView = new FrameView(Rect(0,0,2000,84),"","");
	pcFrameView->AddChild(pcUserIconView);
	AddChild(pcFrameView);
	
	pcLayoutView = new LayoutView(Rect(0,89,GetBounds().Width(),GetBounds().Height()),"layout_view",NULL);
	
	HLayoutNode* pcPassNode = new HLayoutNode("pass_node");
	pcPassNode->AddChild(new HLayoutSpacer("",2,2));
	pcPassNode->AddChild(pcPassString = new StringView(Rect(),"pass_string","Password:"******"",2,2));
	pcPassNode->AddChild(pcPassText = new TextView(Rect(),"pass_text",""));
	pcPassText->SetPasswordMode(true);
	pcPassText->SetMaxPreferredSize(28,1);
	pcPassText->SetMinPreferredSize(28,1);
	pcPassText->SetTabOrder( 2 );
	pcPassNode->AddChild(new HLayoutSpacer("",5,5));
	pcPassNode->AddChild(pcLoginButton = new Button(Rect(),"login_but","_Login",new Message(M_LOGIN)));
	pcLoginButton->SetTabOrder( 3 );
	pcPassNode->AddChild(new HLayoutSpacer("",2,2));
	pcPassNode->SameHeight("login_but",NULL);
	pcPassNode->ExtendMaxSize(pcPassNode->GetPreferredSize(false));
	

	HLayoutNode* pcKeymapNode = new HLayoutNode("keymap_node");
	pcKeymapNode->AddChild(selector = new KeymapSelector(os::Messenger(pcParentWindow)));
	
	
	HLayoutNode* pcOtherNode = new HLayoutNode("other_node");
	pcOtherNode->SetHAlignment(ALIGN_RIGHT);	
	pcOtherNode->AddChild(pcShutdownButton = new Button(Rect(),"shut_but","_Shutdown",new Message(M_SHUTDOWN)));
	pcShutdownButton->SetTabOrder( 4 );
	pcOtherNode->AddChild(new HLayoutSpacer("",150,150));
	pcOtherNode->AddChild(pcDateString = new StringView(Rect(),"","9 Aug 05, 10:00am"));
	UpdateTime();
	
	pcRoot->AddChild(pcPassNode);
	pcRoot->AddChild(new os::VLayoutSpacer("",10,10));
	pcRoot->AddChild(pcKeymapNode);
	pcRoot->AddChild(new os::VLayoutSpacer("",10,10));
	pcRoot->AddChild(pcOtherNode);
	
	pcRoot->SameHeight("shut_but","login_but",NULL);
	pcRoot->SameWidth("shut_but","login_but",NULL);
	
	pcLayoutView->SetRoot(pcRoot);
	AddChild(pcLayoutView);
	
	ResizeTo(os::Point(pcLayoutView->GetPreferredSize(false).x,GetBounds().Height()));
}
DownloadRequesterView::DownloadRequesterView( const Rect&          cFrame,
					      const std::string&   cURL,
					      const std::string&   cPreferredName,
					      const std::string&   cType,
					      off_t		   nContentSize,
					      const os::Messenger& cMsgTarget,
					      const os::Message&   cOkMsg,
					      const os::Message&   cCancelMessage ) :
	LayoutView( cFrame, "download_diag", NULL, CF_FOLLOW_ALL ),
	m_cMsgTarget( cMsgTarget ), m_cOkMsg( cOkMsg ), m_cCancelMsg( cCancelMessage ), m_cPreferredName(cPreferredName)
{
    VLayoutNode* pcRoot = new VLayoutNode( "root" );

    m_pcTermMsg = &m_cCancelMsg;
    
    m_pcOkBut = new Button( Rect(0,0,0,0), "ok", "Ok", new Message( ID_OK ) );
    m_pcCancelBut = new Button( Rect(0,0,0,0), "cancel", "Cancel", new Message( ID_CANCEL ) );
    
    HLayoutNode* pcButtonBar = new HLayoutNode( "button_bar" );

    StatusView* m_pcStatusView = new StatusView( Rect(), "status_view" );

    m_pcStatusView->AddLabel( "Location:", cURL );
    m_pcStatusView->AddLabel( "File type:", cType );
    if ( nContentSize != -1 ) {
	m_pcStatusView->AddLabel( "File size:", get_size_str( nContentSize ) );
    } else {
	m_pcStatusView->AddLabel( "File size:", "UNKNOWN" );
    }
    
    
    pcButtonBar->AddChild( new HLayoutSpacer( "space" ) );
    pcButtonBar->AddChild( m_pcOkBut )->SetBorders( Rect( 0, 0, 10, 10 ) );
    pcButtonBar->AddChild( m_pcCancelBut )->SetBorders( Rect( 0, 0, 10, 10 ) );
    
    pcRoot->AddChild( new VLayoutSpacer( "space" ) );
    pcRoot->AddChild( m_pcStatusView )->SetBorders( Rect( 10.0f, 5.0f, 5.0f, 5.0f ) );
    pcRoot->AddChild( new VLayoutSpacer( "space" ) );
    pcRoot->AddChild( pcButtonBar );

    pcRoot->SameWidth( "ok", "cancel", NULL );
    
    SetRoot( pcRoot );
}
Пример #3
0
IFaceWin::IFaceWin( Window * pcParent, Interface * pcIFace, bool bReadOnly ):Window( Rect( 0, 0, 180, 180 ), "IFaceWin", "" )
{
	m_pcIFace = pcIFace;
	m_bReadOnly = bReadOnly;
	m_pcParent = pcParent;

	SetTitle( MSG_IFWIN_TITLE + " " + pcIFace->GetName() );

	LayoutView *pcLayout;
	VLayoutNode *pcRoot;
	HLayoutNode *pcTypeRow;
	StringView *pcLblType;
	HLayoutNode *pcAddressRow;
	StringView *pcLblAddress;
	HLayoutNode *pcNetmaskRow;
	StringView *pcLblNetmask;
	HLayoutNode *pcGatewayRow;
	StringView *pcLblGateway;
	HLayoutNode *pcEnabledRow;
	StringView *pcLblEnabled;
	HLayoutNode *pcBtnRow;
	HLayoutSpacer *pcSpacer;
	Button *pcBtnApply;
	Button *pcBtnClose;

	pcRoot = new VLayoutNode( "pcRoot" );
	pcLayout = new LayoutView( Rect( 0, 0, 180, 180 ), "pcLayout", pcRoot );

	pcTypeRow = new HLayoutNode( "pcTypeRow" );
	pcLblType = new StringView( Rect(), "pcLblType", MSG_IFWIN_TYPE );
	m_pcDdmType = new DropdownMenu( Rect(), "m_pcDdmType" );
	m_pcDdmType->SetReadOnly( true );
	m_pcDdmType->AppendItem( MSG_IFWIN_TYPE_STATIC );
	m_pcDdmType->AppendItem( MSG_IFWIN_TYPE_DHCP );
	m_pcDdmType->SetSelectionMessage( new Message( ChangeType ) );
	m_pcDdmType->SetTarget( this );
	m_pcDdmType->SetTabOrder( 0 );
	pcTypeRow->AddChild( pcLblType );
	pcTypeRow->AddChild( m_pcDdmType );
	pcTypeRow->LimitMaxSize( Point( INT_MAX, m_pcDdmType->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcTypeRow );

	pcAddressRow = new HLayoutNode( "pcAddressRow" );
	pcLblAddress = new StringView( Rect(), "pcLblAddress", MSG_IFWIN_ADDRESS );
	m_pcTxtAddress = new TextView( Rect(), "m_pcTxtAddress", "" );
	m_pcTxtAddress->SetMaxLength( 15 );
	m_pcTxtAddress->SetTabOrder( 1 );
	pcAddressRow->AddChild( pcLblAddress );
	pcAddressRow->AddChild( m_pcTxtAddress );
	pcAddressRow->LimitMaxSize( Point( INT_MAX, m_pcTxtAddress->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcAddressRow );

	pcNetmaskRow = new HLayoutNode( "pcNetmaskRow" );
	pcLblNetmask = new StringView( Rect(), "pcLblNetmask", MSG_IFWIN_NETMASK );
	m_pcTxtNetmask = new TextView( Rect(), "m_pcTxtNetmask", "" );
	m_pcTxtNetmask->SetMaxLength( 15 );
	m_pcTxtNetmask->SetTabOrder( 2 );
	pcNetmaskRow->AddChild( pcLblNetmask );
	pcNetmaskRow->AddChild( m_pcTxtNetmask );
	pcNetmaskRow->LimitMaxSize( Point( INT_MAX, m_pcTxtNetmask->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcNetmaskRow );

	pcGatewayRow = new HLayoutNode( "pcGatewayRow" );
	pcLblGateway = new StringView( Rect(), "pcLblGateway", MSG_IFWIN_GATEWAY );
	m_pcTxtGateway = new TextView( Rect(), "m_pcTxtGateway", "" );
	m_pcTxtGateway->SetMaxLength( 15 );
	m_pcTxtGateway->SetTabOrder( 3 );
	pcGatewayRow->AddChild( pcLblGateway );
	pcGatewayRow->AddChild( m_pcTxtGateway );
	pcGatewayRow->LimitMaxSize( Point( INT_MAX, m_pcTxtGateway->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcGatewayRow );

	pcEnabledRow = new HLayoutNode( "pcEnabledRow" );
	pcLblEnabled = new StringView( Rect(), "pcLblEnabled", MSG_IFWIN_ENABLED );
	m_pcCbEnabled = new CheckBox( Rect(), "m_pcCbEnabled", "", new Message( ChangeEnabled ) );
	m_pcCbEnabled->SetTabOrder( 4 );
	pcEnabledRow->AddChild( pcLblEnabled );
	pcEnabledRow->AddChild( m_pcCbEnabled );
	pcEnabledRow->LimitMaxSize( Point( INT_MAX, m_pcCbEnabled->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcEnabledRow );

	pcBtnRow = new HLayoutNode( "pcBtnRow" );
	pcSpacer = new HLayoutSpacer( "pcSpacer" );
	pcBtnApply = new Button( Rect(), "pcBtnApply", MSG_IFWIN_APPLY, new Message( Apply ) );
	pcBtnApply->SetTabOrder( 5 );
	pcBtnClose = new Button( Rect(), "pcBtnClose", MSG_IFWIN_CLOSE, new Message( Close ) );
	pcBtnClose->SetTabOrder( 6 );
	pcBtnRow->AddChild( pcSpacer );
	pcBtnRow->AddChild( pcBtnApply );
	pcBtnRow->AddChild( pcBtnClose );
	pcBtnRow->LimitMaxSize( Point( INT_MAX, pcBtnApply->GetPreferredSize( false ).y ) );
	pcRoot->AddChild( pcBtnRow );

	pcRoot->SameWidth( "pcLblEnabled", "pcLblGateway", "pcLblNetmask", "pcLblAddress", "pcLblType", NULL );
	pcRoot->SameWidth( "m_pcTxtGateway", "m_pcTxtNetmask", "m_pcTxtAddress", "m_pcDdmType", "m_pcCbEnabled", NULL );
	pcRoot->SetBorders( Rect( 2, 2, 2, 2 ), "pcLblEnabled", "pcLblGateway", "pcLblNetmask", "pcLblAddress", "pcLblType", "m_pcTxtGateway", "m_pcTxtNetmask", "m_pcTxtAddress", "m_pcDdmType", "m_pcCbEnabled", "pcBtnApply", "pcBtnClose", NULL );
	AddChild( pcLayout );

	Load();

	if( m_bReadOnly )
	{
		m_pcDdmType->SetEnable( false );
		m_pcTxtAddress->SetEnable( false );
		m_pcTxtNetmask->SetEnable( false );
		m_pcTxtGateway->SetEnable( false );
		m_pcCbEnabled->SetEnable( false );
		pcBtnApply->SetEnable( false );
	}
}