//BrowserWindow::BrowserWindow( BRect cFrame, std::vector<HistoryEntry*>* pcHistory, bool bLoadPos ) : BrowserWindow::BrowserWindow( BRect cFrame, bool /*bLoadPos*/ ) :BWindow( cFrame, "ABrowse", B_TITLED_WINDOW, 0 ) ,m_pcHTMLPart( NULL ) ,m_pcStatusBar( NULL ) ,m_pcURLView( NULL ) { atomic_add( &s_nWndCount, 1 ); // BAutolock al( GlobalMutex::GetMutex() ); // GlobalMutex::Lock(); RootView *pcRoot = new RootView( Bounds() ); AddChild( pcRoot ); // AddChild( pcRoot ); // AddTimer( this, 1, 100000, false ); // GlobalMutex::Unlock(); //-------------------------------------------------------------------------- #if 0 LayoutView* pcFrame = new LayoutView( cWndBounds, "frame_view" ); VLayoutNode* pcRoot = new VLayoutNode( "root" ); FrameView* pcNavBarFrame = new FrameView( Rect(0,0,0,0), "nav_bar_frame", "" ); HLayoutNode* pcNavBar = new HLayoutNode( "nav_bar" ); m_pcURLView = new TextView( Rect(0,0,0,0), "url_view", ""/*g_pzDefaultURL*/ ); m_pcURLView->SetEventMask( os::TextView::EI_ENTER_PRESSED | os::TextView::EI_ESC_PRESSED ); m_pcURLView->SetMultiLine( false ); m_pcURLView->SetMessage( new Message( ID_URL_CHANGED ) ); m_pcToolBar = new ToolBar( Rect(0,0,0,0), "tool_bar" ); m_pcStatusBar = new StatusBar( Rect(), "status_bar" ); m_pcToolBar->AddButton( "hi16-action-back.png", os::Message( ID_PREV_URL ) ); m_pcToolBar->AddButton( "hi16-action-forward.png", os::Message( ID_NEXT_URL ) ); m_pcToolBar->AddButton( "hi16-action-gohome.png", os::Message( ID_GOHOME ) ); m_pcToolBar->AddButton( "hi16-action-reload.png", os::Message( ID_RELOAD ) ); m_pcToolBar->AddButton( "hi16-action-find.png", os::Message( ID_FIND ) ); m_pcToolBar->AddButton( "hi16-action-editcopy.png", os::Message( ID_COPY ) ); pcNavBar->AddChild( m_pcToolBar )->SetBorders( Rect( 4, 2, 10, 2 ) ); pcNavBar->AddChild( m_pcURLView ); pcNavBarFrame->SetRoot( pcNavBar ); pcRoot->AddChild( pcNavBarFrame ); QWidget* pcTopView = new TopView; pcTopView->show(); pcTopView->SetResizeMask( CF_FOLLOW_ALL ); pcTopView->SetFrame( cWndBounds.Bounds() ); pcRoot->AddChild( pcTopView ); pcRoot->AddChild( m_pcStatusBar ); pcFrame->SetRoot( pcRoot ); m_pcHTMLPart = new KHTMLPart( pcTopView, "khtmlpart" ); // ### frame name m_pcHTMLPart->browserExtension()->SetCallback( this ); AddChild( pcFrame ); KHTMLView* pcView = m_pcHTMLPart->view(); pcView->SetResizeMask( CF_FOLLOW_ALL ); pcView->SetFrame( pcTopView->GetBounds() ); pcView->MakeFocus(); pcView->SetMsgTarget( Messenger( this ) ); pcView->show(); m_pcURLView->SetTarget( this ); m_pcToolBar->SetTarget( Messenger( this ) ); m_pcToolBar->EnableButton( BI_BACK, false ); m_pcToolBar->EnableButton( BI_FORWARD, false ); m_pcToolBar->EnableButton( BI_COPY, false ); char* pzHome = getenv( "HOME" ); if ( bLoadPos && NULL != pzHome ) { FILE* hFile; char zPath[ 256 ]; strcpy( zPath, pzHome ); strcat( zPath, "/config/abrowse.cfg" ); hFile = fopen( zPath, "rb" ); if ( NULL != hFile ) { Rect cNewFrame; fread( &cNewFrame, sizeof( cNewFrame ), 1, hFile ); fclose( hFile ); SetFrame( cNewFrame ); } } if ( pcHistory != NULL ) { for ( uint i = 0 ; i < pcHistory->size() ; ++i ) { HistoryEntry* pcEntry = new HistoryEntry; // *pcEntry = *(*pcHistory)[i]; pcEntry->m_cURL = (*pcHistory)[i]->m_cURL; pcEntry->m_cState = (*pcHistory)[i]->m_cState; m_cHistory.push_back( pcEntry ); } m_nCurHistoryPos = m_cHistory.size() - 1; m_pcToolBar->EnableButton( BI_BACK, true ); } // AddTimer( this, 1, 100000, false ); GlobalMutex::PopLooper(); // GlobalMutex::Unlock(); #endif }