void SCH_EDIT_FRAME::addJunctionMenuEntries( wxMenu* aMenu, SCH_JUNCTION* aJunction ) { wxString msg; SCH_SCREEN* screen = GetScreen(); msg = AddHotkeyName( _( "Delete Junction" ), s_Schematic_Hokeys_Descr, HK_DELETE ); AddMenuItem( aMenu, ID_POPUP_SCH_DELETE, msg, KiBitmap( delete_xpm ) ); if( !aJunction->IsNew() ) { if( m_collectedItems.IsDraggableJunction() ) AddMenuItem( aMenu, ID_SCH_DRAG_ITEM, _( "Drag Junction" ), KiBitmap( move_xpm ) ); if( screen->GetWire( aJunction->GetPosition(), EXCLUDE_END_POINTS_T ) ) AddMenuItem( aMenu, ID_POPUP_SCH_BREAK_WIRE, _( "Break Wire" ), KiBitmap( break_line_xpm ) ); } if( screen->GetWireOrBus( aJunction->GetPosition() ) ) { AddMenuItem( aMenu, ID_POPUP_SCH_DELETE_NODE, _( "Delete Node" ), KiBitmap( delete_node_xpm ) ); AddMenuItem( aMenu, ID_POPUP_SCH_DELETE_CONNECTION, _( "Delete Connection" ), KiBitmap( delete_connection_xpm ) ); } }
void PCB_EDIT_FRAME::createPopUpMenuForMarkers( MARKER_PCB* aMarker, wxMenu* aPopMenu ) { AddMenuItem( aPopMenu, ID_POPUP_PCB_DELETE_MARKER, _( "Delete Marker" ), KiBitmap( delete_xpm ) ); AddMenuItem( aPopMenu, ID_POPUP_PCB_GETINFO_MARKER, _( "Marker Error Info" ), KiBitmap( info_xpm ) ); }
void prepareImportExportMenu( wxMenu* aParentMenu ) { AddMenuItem( aParentMenu, ID_CONFIG_SAVE, _( "&Save Preferences" ), _( "Save application preferences" ), KiBitmap( save_setup_xpm ) ); AddMenuItem( aParentMenu, ID_CONFIG_READ, _( "Load Prefe&rences" ), _( "Load application preferences" ), KiBitmap( import_setup_xpm ) ); aParentMenu->AppendSeparator(); AddMenuItem( aParentMenu, ID_PREFERENCES_HOTKEY_EXPORT_CONFIG, _( "E&xport Hotkeys" ), _( "Create hotkey configuration file with current hotkeys" ), KiBitmap( hotkeys_export_xpm ) ); AddMenuItem( aParentMenu, ID_PREFERENCES_HOTKEY_IMPORT_CONFIG, _( "&Import Hotkeys" ), _( "Load existing hotkey configuration file" ), KiBitmap( hotkeys_import_xpm ) ); }
void AddMenusForLabel( wxMenu* PopMenu, SCH_LABEL* Label ) { wxMenu* menu_change_type = new wxMenu; wxString msg; if( !Label->GetFlags() ) { msg = AddHotkeyName( _( "Move Label" ), g_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT_OR_ITEM ); AddMenuItem( PopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_text_xpm ) ); msg = AddHotkeyName( _( "Drag Label" ), g_Schematic_Hokeys_Descr, HK_DRAG ); AddMenuItem( PopMenu, ID_SCH_DRAG_ITEM, msg, KiBitmap( move_text_xpm ) ); msg = AddHotkeyName( _( "Copy Label" ), g_Schematic_Hokeys_Descr, HK_COPY_COMPONENT_OR_LABEL ); AddMenuItem( PopMenu, ID_POPUP_SCH_COPY_ITEM, msg, KiBitmap( copy_button_xpm ) ); } msg = AddHotkeyName( _( "Rotate Label" ), g_Schematic_Hokeys_Descr, HK_ROTATE ); AddMenuItem( PopMenu, ID_SCH_ROTATE_CLOCKWISE, msg, KiBitmap( rotate_ccw_xpm ) ); msg = AddHotkeyName( _( "Edit Label" ), g_Schematic_Hokeys_Descr, HK_EDIT ); AddMenuItem( PopMenu, ID_SCH_EDIT_ITEM, msg, KiBitmap( edit_text_xpm ) ); msg = AddHotkeyName( _( "Delete Label" ), g_Schematic_Hokeys_Descr, HK_DELETE ); AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE, msg, KiBitmap( delete_text_xpm ) ); // add menu change type text (to label, glabel, text): AddMenuItem( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL, _( "Change to Hierarchical Label" ), KiBitmap( label2glabel_xpm ) ); AddMenuItem( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT, _( "Change to Text" ), KiBitmap( label2text_xpm ) ); AddMenuItem( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL, _( "Change to Global Label" ), KiBitmap( label2glabel_xpm ) ); AddMenuItem( PopMenu, menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT, _( "Change Type" ), KiBitmap( gl_change_xpm ) ); }
void prepareHelpMenu( wxMenu* aParentMenu ) { AddMenuItem( aParentMenu, wxID_HELP, _( "Eeschema &Manual" ), _( "Open Eeschema Manual" ), KiBitmap( online_help_xpm ) ); AddMenuItem( aParentMenu, wxID_INDEX, _( "&Getting Started in KiCad" ), _( "Open \"Getting Started in KiCad\" guide for beginners" ), KiBitmap( help_xpm ) ); AddMenuItem( aParentMenu, ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST, _( "&List Hotkeys" ), _( "Displays current hotkeys list and corresponding commands" ), KiBitmap( hotkeys_xpm ) ); aParentMenu->AppendSeparator(); AddMenuItem( aParentMenu, ID_HELP_GET_INVOLVED, _( "Get &Involved" ), _( "Contribute to KiCad (open web browser)" ), KiBitmap( info_xpm ) ); aParentMenu->AppendSeparator(); AddMenuItem( aParentMenu, wxID_ABOUT, _( "&About KiCad" ), _( "About KiCad" ), KiBitmap( about_xpm ) ); }
void DIALOG_ANNOTATE::InitValues() { m_Config = Kiface().KifaceSettings(); if( m_Config ) { long option; m_Config->Read( KEY_ANNOTATE_SORT_OPTION, &option, 0L ); switch( option ) { default: case 0: m_rbSortBy_X_Position->SetValue( 1 ); break; case 1: m_rbSortBy_Y_Position->SetValue( 1 ); break; case 2: m_rbUseIncremental->SetValue( 1 ); break; } m_Config->Read( KEY_ANNOTATE_ALGO_OPTION, &option, 0L ); switch( option ) { default: case 0: m_rbUseIncremental->SetValue( 1 ); break; case 1: m_rbUseSheetNum->SetValue( 1 ); break; case 2: m_rbStartSheetNumLarge->SetValue( 1 ); break; } m_Config->Read( KEY_ANNOTATE_KEEP_OPEN_OPTION, &option, 0L ); m_cbKeepDlgOpen->SetValue( option ); m_Config->Read( KEY_ANNOTATE_ASK_FOR_CONFIRMATION, &option, 1L ); m_cbAskForConfirmation->SetValue( option ); } annotate_down_right_bitmap->SetBitmap( KiBitmap( annotate_down_right_xpm ) ); annotate_right_down_bitmap->SetBitmap( KiBitmap( annotate_right_down_xpm ) ); m_btnApply->SetDefault(); }
void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame ) { AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel Block" ), KiBitmap( cancel_xpm ) ); if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) AddMenuItem( PopMenu, ID_POPUP_ZOOM_BLOCK, _( "Zoom Block (drag middle mouse)" ), KiBitmap( zoom_area_xpm ) ); PopMenu->AppendSeparator(); AddMenuItem( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ), KiBitmap( checked_ok_xpm ) ); if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) { AddMenuItem( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _( "Select Items" ), KiBitmap( green_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_COPY_BLOCK, _( "Copy Block" ), KiBitmap( copyblock_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _( "Mirror Block ||" ), KiBitmap( mirror_h_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_MIRROR_X_BLOCK, _( "Mirror Block --" ), KiBitmap( mirror_v_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_ROTATE_BLOCK, _( "Rotate Block ccw" ), KiBitmap( rotate_ccw_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_DELETE_BLOCK, _( "Delete Block" ), KiBitmap( delete_xpm ) ); } }
DIALOG_PNS_LENGTH_TUNING_SETTINGS::DIALOG_PNS_LENGTH_TUNING_SETTINGS( wxWindow* aParent, PNS::MEANDER_SETTINGS& aSettings, PNS::ROUTER_MODE aMode ) : DIALOG_PNS_LENGTH_TUNING_SETTINGS_BASE( aParent ), m_minAmpl( this, m_minAmplText, m_minAmplUnit ), m_maxAmpl( this, m_maxAmplText, m_maxAmplUnit ), m_spacing( this, m_spacingText, m_spacingUnit ), m_targetLength( this, m_targetLengthText, m_targetLengthUnit ), m_settings( aSettings ), m_mode( aMode ) { m_miterStyle->Enable( true ); m_radiusText->Enable( aMode != PNS::PNS_MODE_TUNE_DIFF_PAIR ); //m_minAmpl.Enable ( aMode != PNS_MODE_TUNE_DIFF_PAIR_SKEW ); m_minAmpl.SetValue( m_settings.m_minAmplitude ); m_maxAmpl.SetValue( m_settings.m_maxAmplitude ); m_spacing.SetValue( m_settings.m_spacing ); m_radiusText->SetValue( wxString::Format( wxT( "%i" ), m_settings.m_cornerRadiusPercentage ) ); m_miterStyle->SetSelection( m_settings.m_cornerStyle == PNS::MEANDER_STYLE_ROUND ? 1 : 0 ); switch( aMode ) { case PNS::PNS_MODE_TUNE_SINGLE: SetTitle( _( "Single Track Length Tuning" ) ); m_legend->SetBitmap( KiBitmap( tune_single_track_length_legend_xpm ) ); m_targetLength.SetValue( m_settings.m_targetLength ); break; case PNS::PNS_MODE_TUNE_DIFF_PAIR: SetTitle( _( "Differential Pair Length Tuning" ) ); m_legend->SetBitmap( KiBitmap( tune_diff_pair_length_legend_xpm ) ); m_targetLength.SetValue( m_settings.m_targetLength ); break; case PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW: SetTitle( _( "Differential Pair Skew Tuning" ) ); m_legend->SetBitmap( KiBitmap( tune_diff_pair_skew_legend_xpm ) ); m_targetLengthLabel->SetLabel( _( "Target skew: " ) ); m_targetLength.SetValue ( m_settings.m_targetSkew ); break; default: break; } m_stdButtonsOK->SetDefault(); m_targetLengthText->SetSelection( -1, -1 ); m_targetLengthText->SetFocus(); GetSizer()->SetSizeHints(this); Centre(); }
void AddMenusForComponentField( wxMenu* PopMenu, SCH_FIELD* Field ) { wxString msg, name; if( !Field->GetFlags() ) { switch( Field->GetId() ) { case REFERENCE: name = _( "Move Reference" ); break; case VALUE: name = _( "Move Value" ); break; case FOOTPRINT: name = _( "Move Footprint Field" ); break; default: name = _( "Move Field" ); break; } msg = AddHotkeyName( name, s_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT_OR_ITEM ); AddMenuItem( PopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_text_xpm ) ); } switch( Field->GetId() ) { case REFERENCE: name = _( "Rotate Reference" ); break; case VALUE: name = _( "Rotate Value" ); break; case FOOTPRINT: name = _( "Rotate Footprint Field" ); break; default: name = _( "Rotate Field" ); break; } msg = AddHotkeyName( name, s_Schematic_Hokeys_Descr, HK_ROTATE ); AddMenuItem( PopMenu, ID_SCH_ROTATE_CLOCKWISE, msg, KiBitmap( rotate_field_xpm ) ); // Ref, value and footprint have specific hotkeys. Show the specific hotkey: hotkey_id_commnand id; switch( Field->GetId() ) { case REFERENCE: id = HK_EDIT_COMPONENT_REFERENCE; name = _( "Edit Reference" ); break; case VALUE: id = HK_EDIT_COMPONENT_VALUE; name = _( "Edit Value" ); break; case FOOTPRINT: id = HK_EDIT_COMPONENT_FOOTPRINT; name = _( "Edit Footprint Field" ); break; default: id = HK_EDIT; name = _( "Edit Field" ); break; } msg = AddHotkeyName( name, s_Schematic_Hokeys_Descr, id ); AddMenuItem( PopMenu, ID_SCH_EDIT_ITEM, msg, KiBitmap( edit_text_xpm ) ); }
void PANEL_PREV_3D::initPanel() { m_dummyBoard = new BOARD(); m_selected = -1; // Set the bitmap of 3D view buttons: m_bpvTop->SetBitmap( KiBitmap( axis3d_top_xpm ) ); m_bpvFront->SetBitmap( KiBitmap( axis3d_front_xpm ) ); m_bpvBack->SetBitmap( KiBitmap( axis3d_back_xpm ) ); m_bpvLeft->SetBitmap( KiBitmap( axis3d_left_xpm ) ); m_bpvRight->SetBitmap( KiBitmap( axis3d_right_xpm ) ); m_bpvBottom->SetBitmap( KiBitmap( axis3d_bottom_xpm ) ); m_bpvISO->SetBitmap( KiBitmap( ortho_xpm ) ); m_bpUpdate->SetBitmap( KiBitmap( reload_xpm ) ); // Set the min and max values of spin buttons (mandatory on Linux) // They are not used, so they are set to min and max 32 bits int values // (the min and max values supported by a wxSpinButton) // It avoids blocking the up or down arrows when reaching this limit after // a few clicks. wxSpinButton* spinButtonList[] = { m_spinXscale, m_spinYscale, m_spinZscale, m_spinXrot, m_spinYrot, m_spinZrot, m_spinXoffset,m_spinYoffset, m_spinZoffset }; for( int ii = 0; ii < 9; ii++ ) spinButtonList[ii]->SetRange( INT_MIN, INT_MAX ); }
/** * Function CreateCommandToolbar * create the buttons to call Eeschema CvPcb, Pcbnew and GerbView */ void LAUNCHER_PANEL::CreateCommandToolbar() { wxBitmapButton* btn; btn = AddBitmapButton( ID_TO_SCH, KiBitmap( icon_eeschema_xpm ) ); btn->SetToolTip( _( "Eeschema - Electronic schematic editor" ) ); btn = AddBitmapButton( ID_TO_SCH_LIB_EDITOR, KiBitmap( libedit_icon_xpm ) ); btn->SetToolTip( _( "Schematic library editor" ) ); btn = AddBitmapButton( ID_TO_PCB, KiBitmap( icon_pcbnew_xpm ) ); btn->SetToolTip( _( "Pcbnew - Printed circuit board editor" ) ); btn = AddBitmapButton( ID_TO_PCB_FP_EDITOR, KiBitmap( icon_modedit_xpm ) ); btn->SetToolTip( _( "PCB footprint editor" ) ); btn = AddBitmapButton( ID_TO_GERBVIEW, KiBitmap( icon_gerbview_xpm ) ); btn->SetToolTip( _( "GerbView - Gerber viewer" ) ); btn = AddBitmapButton( ID_TO_BITMAP_CONVERTER, KiBitmap( icon_bitmap2component_xpm ) ); btn->SetToolTip( _( "Bitmap2Component - Convert bitmap images to Eeschema\n" "or Pcbnew elements" ) ); btn = AddBitmapButton( ID_TO_PCB_CALCULATOR, KiBitmap( icon_pcbcalculator_xpm ) ); btn->SetToolTip( _( "Pcb calculator - Calculator for components, track width, etc." ) ); btn = AddBitmapButton( ID_TO_PL_EDITOR, KiBitmap( icon_pagelayout_editor_xpm ) ); btn->SetToolTip( _( "Pl editor - Worksheet layout editor" ) ); }
/* Create pop menu for pads * also update Netclass selection */ void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu ) { wxMenu* sub_menu_Pad; int flags = Pad->GetFlags(); if( flags ) // Currently in edit, no others commands possible return; if( GetBoard()->GetCurrentNetClassName() != Pad->GetNetClassName() ) { GetBoard()->SetCurrentNetClass( Pad->GetNetClassName() ); updateTraceWidthSelectBox(); updateViaSizeSelectBox(); } wxString msg = Pad->GetSelectMenuText(); sub_menu_Pad = new wxMenu; AddMenuItem( menu, sub_menu_Pad, -1, msg, KiBitmap( pad_xpm ) ); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_MOVE_PAD_REQUEST, _( "Move" ), KiBitmap( move_pad_xpm ) ); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_DRAG_PAD_REQUEST, _( "Drag" ), KiBitmap( drag_pad_xpm ) ); msg = AddHotkeyName( _( "Edit" ), g_Board_Editor_Hokeys_Descr, HK_EDIT_ITEM ); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_EDIT_PAD, msg, KiBitmap( options_pad_xpm ) ); sub_menu_Pad->AppendSeparator(); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_IMPORT_PAD_SETTINGS, _( "Copy Current Settings to this Pad" ), wxEmptyString, KiBitmap( options_new_pad_xpm ) ); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_EXPORT_PAD_SETTINGS, _( "Copy this Pad Settings to Current Settings" ), wxEmptyString, KiBitmap( export_options_pad_xpm ) ); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS, _( "Edit All Pads" ), _( "Copy this pad's settings to all pads in this footprint (or similar footprints)" ), KiBitmap( global_options_pad_xpm ) ); sub_menu_Pad->AppendSeparator(); AddMenuItem( sub_menu_Pad, ID_POPUP_PCB_DELETE_PAD, _( "Delete" ), KiBitmap( delete_pad_xpm ) ); if( m_mainToolBar->GetToolToggled( ID_TOOLBARH_PCB_MODE_TRACKS ) ) { menu->Append( ID_POPUP_PCB_AUTOROUTE_PAD, _( "Automatically Route Pad" ) ); menu->Append( ID_POPUP_PCB_AUTOROUTE_NET, _( "Automatically Route Net" ) ); } MODULE* module = (MODULE*) Pad->GetParent(); if( module ) { menu->AppendSeparator(); createPopUpMenuForFootprints( module, menu ); } }
void AddMenusForWire( wxMenu* PopMenu, SCH_LINE* Wire, SCH_EDIT_FRAME* frame ) { SCH_SCREEN* screen = frame->GetScreen(); wxPoint pos = frame->GetCrossHairPosition(); wxString msg; if( Wire == NULL ) { msg = AddHotkeyName( _( "Begin Wire" ), g_Schematic_Hokeys_Descr, HK_BEGIN_WIRE ); AddMenuItem( PopMenu, ID_POPUP_SCH_BEGIN_WIRE, msg, KiBitmap( add_line_xpm ) ); return; } bool is_new = Wire->IsNew(); if( is_new ) { msg = AddHotkeyName( _( "Wire End" ), g_Schematic_Hokeys_Descr, HK_END_CURR_LINEWIREBUS ); AddMenuItem( PopMenu, ID_POPUP_END_LINE, msg, KiBitmap( checked_ok_xpm ) ); return; } msg = AddHotkeyName( _( "Drag Wire" ), g_Schematic_Hokeys_Descr, HK_DRAG ); AddMenuItem( PopMenu, ID_SCH_DRAG_ITEM, msg, KiBitmap( move_track_xpm ) ); PopMenu->AppendSeparator(); msg = AddHotkeyName( _( "Delete Wire" ), g_Schematic_Hokeys_Descr, HK_DELETE ); AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE, msg, KiBitmap( delete_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE_NODE, _( "Delete Node" ), KiBitmap( delete_node_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE_CONNECTION, _( "Delete Connection" ), KiBitmap( delete_connection_xpm ) ); SCH_LINE* line = screen->GetWireOrBus( frame->GetCrossHairPosition() ); if( line && !line->IsEndPoint( frame->GetCrossHairPosition() ) ) AddMenuItem( PopMenu, ID_POPUP_SCH_BREAK_WIRE, _( "Break Wire" ), KiBitmap( break_line_xpm ) ); PopMenu->AppendSeparator(); msg = AddHotkeyName( _( "Add Junction" ), g_Schematic_Hokeys_Descr, HK_ADD_JUNCTION ); AddMenuItem( PopMenu, ID_POPUP_SCH_ADD_JUNCTION, msg, KiBitmap( add_junction_xpm ) ); msg = AddHotkeyName( _( "Add Label" ), g_Schematic_Hokeys_Descr, HK_ADD_LABEL ); AddMenuItem( PopMenu, ID_POPUP_SCH_ADD_LABEL, msg, KiBitmap( add_line_label_xpm ) ); // Add global label command only if the cursor is over one end of the wire. if( Wire->IsEndPoint( pos ) ) AddMenuItem( PopMenu, ID_POPUP_SCH_ADD_GLABEL, _( "Add Global Label" ), KiBitmap( add_glabel_xpm ) ); }
// Helper function to add menuitems relative to items creation void AddNewItemsCommand( wxMenu* aMainMenu ) { AddMenuItem( aMainMenu, ID_POPUP_ITEM_ADD_LINE, _( "Add Line" ), KiBitmap( add_dashed_line_xpm ) ); AddMenuItem( aMainMenu, ID_POPUP_ITEM_ADD_RECT, _( "Add Rectangle" ), KiBitmap( add_rectangle_xpm ) ); AddMenuItem( aMainMenu, ID_POPUP_ITEM_ADD_TEXT, _( "Add Text" ), KiBitmap( add_text_xpm ) ); AddMenuItem( aMainMenu, ID_POPUP_ITEM_APPEND_PAGE_LAYOUT, _( "Append Page Layout Descr File" ), KiBitmap( import_xpm ) ); AddMenuItem( aMainMenu, ID_POPUP_ITEM_ADD_BITMAP, _( "Add Bitmap" ), KiBitmap( image_xpm ) ); }
void EDA_3D_FRAME::ReCreateMenuBar() { bool full_options = true; // If called from the display frame of CvPcb, only some options are relevant if( Parent()->GetName() == wxT( "CmpFrame" ) ) // Called from CvPcb: do not display all options full_options = false; wxMenuBar* menuBar = new wxMenuBar; wxMenu* fileMenu = new wxMenu; menuBar->Append( fileMenu, _( "&File" ) ); fileMenu->Append( ID_MENU_SCREENCOPY_PNG, _( "Create Image (png format)" ) ); fileMenu->Append( ID_MENU_SCREENCOPY_JPEG, _( "Create Image (jpeg format)" ) ); #if (defined(__WINDOWS__) || defined(__APPLE__ ) ) // Does not work properly under linux fileMenu->AppendSeparator(); fileMenu->Append( ID_TOOL_SCREENCOPY_TOCLIBBOARD, _( "Copy 3D Image to Clipboard" ) ); #endif fileMenu->AppendSeparator(); fileMenu->Append( wxID_EXIT, _( "&Exit" ) ); wxMenu* referencesMenu = new wxMenu; menuBar->Append( referencesMenu, _( "&Preferences" ) ); AddMenuItem( referencesMenu, ID_MENU3D_BGCOLOR_SELECTION, _( "Choose background color" ), KiBitmap( palette_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_AXIS_ONOFF, _( "3D Axis On/Off" ), KiBitmap( axis3d_front_xpm ) ); if( full_options ) { AddMenuItem( referencesMenu, ID_MENU3D_MODULE_ONOFF, _( "3D Footprints Shapes On/Off" ), KiBitmap( shape_3d_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_ZONE_ONOFF, _( "Zone Filling On/Off" ), KiBitmap( add_zone_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Comments Layer On/Off" ), KiBitmap( edit_sheet_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_DRAWINGS_ONOFF, _( "Drawings Layer On/Off" ), KiBitmap( add_polygon_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_ECO1_ONOFF, _( "Eco1 Layer On/Off" ), KiBitmap( tools_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_ECO2_ONOFF, _( "Eco2 Layer On/Off" ), KiBitmap( tools_xpm ) ); } SetMenuBar( menuBar ); }
PinTypeComboBox::PinTypeComboBox( wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, int n, const wxString choices[], long style, const wxValidator& validator, const wxString& name ) : wxBitmapComboBox( parent, id, value, pos, size, n, choices, style, validator, name ) { for( unsigned ii = 0; ii < PINTYPE_COUNT; ++ii ) { ELECTRICAL_PINTYPE type = static_cast<ELECTRICAL_PINTYPE>( ii ); wxString text = GetText( type ); BITMAP_DEF bitmap = GetBitmap( type ); if( bitmap == NULL ) Append( text ); else Insert( text, KiBitmap( bitmap ), ii ); } }
void DIALOG_ERC::setDRCMatrixButtonState( wxBitmapButton *aButton, int aState ) { BITMAP_DEF bitmap_butt = NULL; wxString tooltip; switch( aState ) { case OK: bitmap_butt = erc_green_xpm; tooltip = _( "No error or warning" ); break; case WAR: bitmap_butt = ercwarn_xpm; tooltip = _( "Generate warning" ); break; case ERR: bitmap_butt = ercerr_xpm; tooltip = _( "Generate error" ); break; } if( bitmap_butt ) { aButton->SetBitmap( KiBitmap( bitmap_butt ) ); aButton->SetToolTip( tooltip ); } }
wxMenuItem* AddMenuItem( wxMenu* aMenu, int aId, const wxString& aText, const wxString& aHelpText, const wxBitmap& aImage, wxItemKind aType = wxITEM_NORMAL ) { wxMenuItem* item; item = new wxMenuItem( aMenu, aId, aText, aHelpText, aType ); // Retrieve the global applicaton show icon option: bool useImagesInMenus; Pgm().CommonSettings()->Read( USE_ICONS_IN_MENUS_KEY, &useImagesInMenus ); if( useImagesInMenus ) { if( aType == wxITEM_CHECK || aType == wxITEM_RADIO ) { #if defined( __WINDOWS__ ) item->SetBitmaps( KiBitmap( checked_ok_xpm ), aImage ); // A workaround to a strange bug on Windows, wx Widgets 3.0: // size of bitmaps is not taken in account for wxITEM_{CHECK,RADIO} menu // unless we call SetFont item->SetFont( *wxNORMAL_FONT ); #endif } else if( aType != wxITEM_RADIO ) { item->SetBitmap( aImage ); } } aMenu->Append( item ); return item; }
void SIM_PLOT_FRAME::setIconsForMenuItems() { // Give icons to menuitems of the main menubar BM_MENU_INIT_ITEM bm_list[] { // File menu: { wxID_NEW, simulator_xpm }, { wxID_OPEN,directory_browser_xpm }, { wxID_SAVE, directory_xpm}, { ID_SAVE_AS_IMAGE, export_xpm}, { ID_SAVE_AS_CSV, export_xpm}, { wxID_CLOSE, exit_xpm}, // simulator menu: { ID_MENU_RUN_SIM, sim_run_xpm}, { ID_MENU_ADD_SIGNAL, sim_add_signal_xpm}, { ID_MENU_PROBE_SIGNALS, sim_probe_xpm}, { ID_MENU_TUNE_SIGNALS, sim_tune_xpm}, { ID_MENU_SHOW_NETLIST, netlist_xpm}, { ID_MENU_SET_SIMUL, sim_settings_xpm}, // View menu { wxID_ZOOM_IN, zoom_in_xpm}, { wxID_ZOOM_OUT, zoom_out_xpm}, { wxID_ZOOM_FIT, zoom_fit_in_page_xpm}, { ID_MENU_SHOW_GRID, grid_xpm}, { ID_MENU_SHOW_LEGEND, text_xpm}, { 0, nullptr } // Sentinel }; // wxMenuItems are already created and attached to the m_mainMenu wxMenuBar. // A problem is the fact setting bitmaps in wxMenuItems after they are attached // to a wxMenu do not work in all cases. // So the trick is: // Remove the wxMenuItem from its wxMenu // Set the bitmap // Insert the modified wxMenuItem to its previous place for( int ii = 0; bm_list[ii].m_MenuId; ++ii ) { wxMenuItem* item = m_mainMenu->FindItem( bm_list[ii].m_MenuId ); if( !item || !bm_list[ii].m_Bitmap) continue; wxMenu* menu = item->GetMenu(); // Calculate the initial index of item inside the wxMenu parent wxMenuItemList& mlist = menu->GetMenuItems(); int mpos = mlist.IndexOf( item ); if( mpos >= 0 ) // Should be always the case { // Modify the bitmap menu->Remove( item ); AddBitmapToMenuItem( item, KiBitmap( bm_list[ii].m_Bitmap ) ); // Insert item to its the initial index menu->Insert( mpos, item ); } } }
DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR( PCB_EDIT_FRAME* aParent, MODULE* aModule, wxDC* aDC ) : DIALOG_MODULE_BOARD_EDITOR_BASE( aParent ), m_OrientValidator( 1, &m_OrientValue ) { m_Parent = aParent; m_DC = aDC; m_CurrentModule = aModule; // Give an icon wxIcon icon; icon.CopyFromBitmap( KiBitmap( icon_modedit_xpm ) ); SetIcon( icon ); m_OrientValidator.SetRange( -360.0, 360.0 ); m_OrientValueCtrl->SetValidator( m_OrientValidator ); m_OrientValidator.SetWindow( m_OrientValueCtrl ); aParent->Prj().Get3DCacheManager()->GetResolver()->SetProgramBase( &Pgm() ); m_PreviewPane = new PANEL_PREV_3D( m_Panel3D, aParent->Prj().Get3DCacheManager() ); bLowerSizer3D->Add( m_PreviewPane, 1, wxEXPAND, 5 ); m_NoteBook->SetSelection( m_page ); m_sdbSizerStdButtonsOK->SetDefault(); GetSizer()->SetSizeHints( this ); Centre(); Layout(); }
LIB_ITEM* LIB_EDIT_FRAME::locateItem( const wxPoint& aPosition, const KICAD_T aFilterList[] ) { if( m_component == NULL ) return NULL; LIB_ITEM* item = NULL; m_collectedItems.Collect( m_component->GetDrawItemList(), aFilterList, aPosition, m_unit, m_convert ); if( m_collectedItems.GetCount() == 0 ) { ClearMsgPanel(); } else if( m_collectedItems.GetCount() == 1 ) { item = m_collectedItems[0]; } else { if( item == NULL ) { wxASSERT_MSG( m_collectedItems.GetCount() <= MAX_SELECT_ITEM_IDS, wxT( "Select item clarification context menu size limit exceeded." ) ); wxMenu selectMenu; wxMenuItem* title = new wxMenuItem( &selectMenu, wxID_NONE, _( "Clarify Selection" ) ); selectMenu.Append( title ); selectMenu.AppendSeparator(); for( int i = 0; i < m_collectedItems.GetCount() && i < MAX_SELECT_ITEM_IDS; i++ ) { wxString text = m_collectedItems[i]->GetSelectMenuText(); BITMAP_DEF xpm = m_collectedItems[i]->GetMenuImage(); AddMenuItem( &selectMenu, ID_SELECT_ITEM_START + i, text, KiBitmap( xpm ) ); } // Set to NULL in case user aborts the clarification context menu. m_drawItem = NULL; m_canvas->SetAbortRequest( true ); // Changed to false if an item is selected PopupMenu( &selectMenu ); m_canvas->MoveCursorToCrossHair(); item = m_drawItem; } } if( item ) { MSG_PANEL_ITEMS items; item->GetMsgPanelInfo( items ); SetMsgPanel( items ); } else { ClearMsgPanel(); } return item; }
std::list<wxMenuItem*> CONTEXT_MENU::Add( CONTEXT_MENU* aMenu, const wxString& aLabel, bool aExpand ) { std::list<wxMenuItem*> items; CONTEXT_MENU* menuCopy = new CONTEXT_MENU( *aMenu ); m_submenus.push_back( menuCopy ); menuCopy->m_parent = this; if( aExpand ) { for( int i = 0; i < (int) aMenu->GetMenuItemCount(); ++i ) { wxMenuItem* item = aMenu->FindItemByPosition( i ); items.push_back( appendCopy( item ) ); } } else { if( aMenu->m_icon ) { wxMenuItem* newItem = new wxMenuItem( this, -1, aLabel, wxEmptyString, wxITEM_NORMAL ); newItem->SetBitmap( KiBitmap( aMenu->m_icon ) ); newItem->SetSubMenu( menuCopy ); items.push_back( Append( newItem ) ); } else { items.push_back( AppendSubMenu( menuCopy, aLabel ) ); } } return items; }
DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) : DIALOG_PLOT_SCHEMATIC_BASE( parent ), m_parent( parent ), m_plotFormat( PLOT_FORMAT_UNDEFINED ), m_defaultLineWidth( parent, m_lineWidthLabel, m_lineWidthCtrl, m_lineWidthUnits, true ), m_penWidth( parent, m_penWidthLabel, m_penWidthCtrl, m_penWidthUnits, true ) { m_config = Kiface().KifaceSettings(); m_configChanged = false; m_browseButton->SetBitmap( KiBitmap( folder_xpm ) ); // We use a sdbSizer to get platform-dependent ordering of the action buttons, but // that requires us to correct the button labels here. m_sdbSizer1OK->SetLabel( _( "Plot All Pages" ) ); m_sdbSizer1Apply->SetLabel( _( "Plot Current Page" ) ); m_sdbSizer1Cancel->SetLabel( _( "Close" ) ); m_sdbSizer1->Layout(); m_sdbSizer1OK->SetDefault(); initDlg(); // Now all widgets have the size fixed, call FinishDialogSettings FinishDialogSettings(); }
void AddMenusForSheetPin( wxMenu* PopMenu, SCH_SHEET_PIN* PinSheet ) { wxString msg; if( !PinSheet->GetFlags() ) { msg = AddHotkeyName( _( "Move Sheet Pin" ), g_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT_OR_ITEM ); AddMenuItem( PopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_xpm ) ); } AddMenuItem( PopMenu, ID_SCH_EDIT_ITEM, _( "Edit Sheet Pin" ), KiBitmap( edit_xpm ) ); if( !PinSheet->GetFlags() ) AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Sheet Pin" ), KiBitmap( delete_pinsheet_xpm ) ); }
HIERARCHY_TREE::HIERARCHY_TREE( HIERARCHY_NAVIG_DLG* parent ) : wxTreeCtrl( (wxWindow*) parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS, wxDefaultValidator, wxT( "HierachyTreeCtrl" ) ) { m_parent = parent; // Make an image list containing small icons // All icons are expected having the same size. wxBitmap tree_nosel_bm( KiBitmap( tree_nosel_xpm ) ); imageList = new wxImageList( tree_nosel_bm.GetWidth(), tree_nosel_bm.GetHeight(), true, 2 ); imageList->Add( tree_nosel_bm ); imageList->Add( KiBitmap( tree_sel_xpm ) ); AssignImageList( imageList ); }
dialog_about::dialog_about(wxWindow *aParent, AboutAppInfo& appInfo) : dialog_about_base(aParent), info(appInfo) { picInformation = KiBitmap( info_xpm ); picDevelopers = KiBitmap( preference_xpm ); picDocWriters = KiBitmap( editor_xpm ); picArtists = KiBitmap( palette_xpm ); picTranslators = KiBitmap( language_xpm ); picLicense = KiBitmap( tools_xpm ); picPackagers = KiBitmap( zip_xpm ); m_bitmapApp->SetBitmap( info.GetIcon() ); m_staticTextAppTitle->SetLabel( info.GetAppName() ); m_staticTextCopyright->SetLabel( info.GetCopyright() ); m_staticTextBuildVersion->SetLabel( "Version: " + info.GetBuildVersion() ); m_staticTextLibVersion->SetLabel( info.GetLibVersion() ); DeleteNotebooks(); CreateNotebooks(); GetSizer()->SetSizeHints( this ); m_auiNotebook->Update(); SetFocus(); Centre(); Connect( wxID_COPY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_about::OnCopyVersionInfo ) ); }
static void preparePreferencesMenu( SCH_EDIT_FRAME* aFrame, wxMenu* aParentMenu ) { // Library AddMenuItem( aParentMenu, ID_EDIT_SYM_LIB_TABLE, _( "Manage Symbol Library Tables" ), _( "Edit the global and project symbol library tables (list of active libraries)." ), KiBitmap( library_table_xpm ) ); // Path configuration edit dialog. AddMenuItem( aParentMenu, ID_PREFERENCES_CONFIGURE_PATHS, _( "Configure &Paths" ), _( "Edit path configuration environment variables" ), KiBitmap( path_xpm ) ); // Options (Preferences on WXMAC) #ifdef __WXMAC__ aParentMenu->Append( wxID_PREFERENCES ); #else AddMenuItem( aParentMenu, wxID_PREFERENCES, _( "General &Options" ), _( "Edit Eeschema preferences" ), KiBitmap( preference_xpm ) ); #endif // __WXMAC__ // Language submenu aParentMenu->AppendSeparator(); Pgm().AddMenuLanguageList( aParentMenu ); // Icons options submenu aFrame->AddMenuIconsOptions( aParentMenu ); // Import/export (submenu in preferences menu) aParentMenu->AppendSeparator(); wxMenu* importExportSubmenu = new wxMenu(); prepareImportExportMenu( importExportSubmenu ); AddMenuItem( aParentMenu, importExportSubmenu, wxID_ANY, _( "&Import and Export" ), _( "Import and export settings" ), KiBitmap( save_setup_xpm ) ); }
KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& title, const wxPoint& pos, const wxSize& size ) : EDA_BASE_FRAME( parent, KICAD_MAIN_FRAME_T, title, pos, size, KICAD_DEFAULT_DRAWFRAME_STYLE, KICAD_MANAGER_FRAME_NAME ), KIWAY_HOLDER( &::Kiway ) { m_active_project = false; m_leftWinWidth = 60; m_manager_Hotkeys_Descr = NULL; // Create the status line (bottom of the frame) static const int dims[3] = { -1, -1, 100 }; CreateStatusBar( 3 ); SetStatusWidths( 3, dims ); // Give an icon wxIcon icon; icon.CopyFromBitmap( KiBitmap( icon_kicad_xpm ) ); SetIcon( icon ); // Give the last size and pos to main window LoadSettings( config() ); SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y ); // Left window: is the box which display tree project m_LeftWin = new TREE_PROJECT_FRAME( this ); // Right top Window: buttons to launch applications m_Launcher = new LAUNCHER_PANEL( this ); // Add the wxTextCtrl showing all messages from KiCad: m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY | wxBORDER_NONE ); RecreateBaseHToolbar(); ReCreateMenuBar(); m_auimgr.SetManagedWindow( this ); m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) ); m_auimgr.AddPane( m_LeftWin, EDA_PANE().Palette().Name( "ProjectTree" ).Left().Layer(3) .CaptionVisible( false ).PaneBorder( false ) .MinSize( 150, -1 ).BestSize( m_leftWinWidth, -1 ) ); m_auimgr.AddPane( m_Launcher, EDA_PANE().HToolbar().Name( "Launcher" ).Top().Layer(1) .MinSize( m_Launcher->GetPanelWidth(), m_Launcher->GetPanelHeight() ) ); m_auimgr.AddPane( m_MessagesBox, EDA_PANE().Messages().Name( "MsgPanel" ).Center() ); m_auimgr.Update(); SetTitle( wxString( "KiCad " ) + GetBuildVersion() ); }
void EDA_BASE_FRAME::AddHelpVersionInfoMenuEntry( wxMenu* aMenu ) { wxASSERT( aMenu != NULL ); // Copy version string to clipboard for bug report purposes. AddMenuItem( aMenu, ID_HELP_COPY_VERSION_STRING, _( "Copy &Version Information" ), _( "Copy the version string to clipboard to send with bug reports" ), KiBitmap( copy_button_xpm ) ); }
SIM_PLOT_FRAME::SIGNAL_CONTEXT_MENU::SIGNAL_CONTEXT_MENU( const wxString& aSignal, SIM_PLOT_FRAME* aPlotFrame ) : m_signal( aSignal ), m_plotFrame( aPlotFrame ) { SIM_PLOT_PANEL* plot = m_plotFrame->CurrentPlot(); AddMenuItem( this, HIDE_SIGNAL, _( "Hide Signal" ), _( "Erase the signal from plot screen" ), KiBitmap( delete_xpm ) ); TRACE* trace = plot->GetTrace( m_signal ); if( trace->HasCursor() ) AddMenuItem( this, HIDE_CURSOR, _( "Hide Cursor" ), KiBitmap( pcb_target_xpm ) ); else AddMenuItem( this, SHOW_CURSOR, _( "Show Cursor" ), KiBitmap( pcb_target_xpm ) ); Connect( wxEVT_COMMAND_MENU_SELECTED, wxMenuEventHandler( SIGNAL_CONTEXT_MENU::onMenuEvent ), NULL, this ); }