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 ); }
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 ); } }