/***************************************************/ /* tool_cvpcb.cpp: construction du menu principal */ /***************************************************/ #include "fctsys.h" #include "gr_basic.h" #include "common.h" #include "cvpcb.h" #include "trigo.h" #include "protos.h" #define BITMAP wxBitmap #include "bitmaps.h" #include "id.h" /*********************************************/ void WinEDA_CvpcbFrame::ReCreateHToolbar() /*********************************************/ { if ( m_HToolBar != NULL ) return; m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE); SetToolBar(m_HToolBar); m_HToolBar->AddTool(ID_CVPCB_READ_INPUT_NETLIST, BITMAP(open_xpm), _("Open a NetList file")); m_HToolBar->AddTool(ID_CVPCB_SAVEQUITCVPCB, BITMAP(save_xpm), _("Save NetList and Components List files")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_CVPCB_CREATE_CONFIGWINDOW, BITMAP(config_xpm), _("Configuration")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_CVPCB_CREATE_SCREENCMP, BITMAP(module_xpm), _("View selected part")); m_HToolBar->AddTool(ID_CVPCB_AUTO_ASSOCIE, BITMAP(auto_associe_xpm), _("Automatic Association")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_CVPCB_GOTO_PREVIOUSNA, BITMAP(left_xpm), _("Select previous free component")); m_HToolBar->AddTool(ID_CVPCB_GOTO_FIRSTNA, BITMAP(right_xpm), _("Select next free component")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_CVPCB_DEL_ASSOCIATIONS, BITMAP(delete_association_xpm), _("Delete all associations")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_CVPCB_CREATE_STUFF_FILE, BITMAP(save_cmpstuff_xpm), _("Create stuff file (component/module list)")); m_HToolBar->AddSeparator(); m_HToolBar->AddTool(ID_PCB_DISPLAY_FOOTPRINT_DOC, BITMAP(file_footprint_xpm), _("Display/print component documentation (footprint.pdf)")); m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator(); m_HToolBar->AddRadioTool(ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, wxEmptyString, BITMAP(module_filtered_list_xpm), wxNullBitmap, _("Display the filtered footprint list for the current component")); m_HToolBar->AddRadioTool(ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, wxEmptyString, BITMAP(module_full_list_xpm), wxNullBitmap, _("Display the full footprint list (without filtering)")); if( m_Parent->m_EDA_Config ) { wxString key = wxT(FILTERFOOTPRINTKEY); int opt = m_Parent->m_EDA_Config->Read(key, (long)1); m_HToolBar->ToggleTool(ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, opt); m_HToolBar->ToggleTool(ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, ! opt); } // after adding the buttons to the toolbar, must call Realize() to reflect // the changes m_HToolBar->Realize(); } /*******************************************/ void WinEDA_CvpcbFrame::ReCreateMenuBar() /*******************************************/ /* Creation des menus de la fenetre principale */ { int ii; wxMenuBar * menuBar = GetMenuBar(); if( menuBar == NULL ) { menuBar = new wxMenuBar(); // Associate the menu bar with the frame SetMenuBar(menuBar); m_FilesMenu = new wxMenu; wxMenuItem *item = new wxMenuItem(m_FilesMenu, ID_LOAD_PROJECT, _("&Open"), _("Open a NetList file") ); item->SetBitmap(open_xpm); m_FilesMenu->Append(item); m_FilesMenu->AppendSeparator(); item = new wxMenuItem(m_FilesMenu, ID_SAVE_PROJECT, _("&Save As..."), _("Save New NetList and Components List files") ); item->SetBitmap(save_xpm); m_FilesMenu->Append(item); m_FilesMenu->AppendSeparator(); item = new wxMenuItem(m_FilesMenu, ID_CVPCB_QUIT, _("E&xit"), _("Quit Cvpcb" )); item->SetBitmap(exit_xpm); m_FilesMenu->Append(item); // Creation des selections des anciens fichiers m_FilesMenu->AppendSeparator(); for ( ii = 0; ii < 10; ii++ ) { if ( GetLastProject(ii).IsEmpty() ) break; m_FilesMenu->Append(ID_LOAD_FILE_1 + ii, GetLastProject(ii) ); } // Menu Configuration: wxMenu * configmenu = new wxMenu; item = new wxMenuItem(configmenu, ID_CONFIG_REQ, _("&Configuration"), _("Setting Libraries, Directories and others...")); item->SetBitmap(config_xpm); configmenu->Append(item); // Font selection and setup AddFontSelectionMenu(configmenu); m_Parent->SetLanguageList(configmenu); configmenu->AppendSeparator(); item = new wxMenuItem(configmenu, ID_CONFIG_SAVE, _("&Save config"), _("Save configuration in current dir")); item->SetBitmap(save_setup_xpm); configmenu->Append(item); // Menu Help: wxMenu *helpMenu = new wxMenu; item = new wxMenuItem(helpMenu , ID_CVPCB_DISPLAY_HELP, _("&Contents"), _("Open the cvpcb manual")); item->SetBitmap(help_xpm); helpMenu->Append(item); item = new wxMenuItem(helpMenu , ID_CVPCB_DISPLAY_LICENCE, _("&About"), _("About this application")); item->SetBitmap(info_xpm); helpMenu->Append(item); menuBar->Append(m_FilesMenu, _("&File")); menuBar->Append(configmenu, _("&Preferences")); menuBar->Append(helpMenu, _("&Help")); } else // simple mise a jour de la liste des fichiers anciens { wxMenuItem * item; int max_file = m_Parent->m_LastProjectMaxCount; for ( ii = max_file-1; ii >=0 ; ii-- ) { if( m_FilesMenu->FindItem(ID_LOAD_FILE_1 + ii) ) { item = m_FilesMenu->Remove(ID_LOAD_FILE_1 + ii); if ( item ) delete item; } } for ( ii = 0; ii < max_file; ii++ ) { if ( GetLastProject(ii).IsEmpty() ) break; m_FilesMenu->Append(ID_LOAD_FILE_1 + ii, GetLastProject(ii) ); } } }