您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetToolId函数代码示例

51自学网 2021-06-01 21:16:44
  C++
这篇教程C++ GetToolId函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetToolId函数的典型用法代码示例。如果您正苦于以下问题:C++ GetToolId函数的具体用法?C++ GetToolId怎么用?C++ GetToolId使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetToolId函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: GetCurItem

bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC ){    BOARD_ITEM* item = GetCurItem();    bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED;    bool itemCurrentlyEdited = item && item->GetFlags();    m_canvas->SetAutoPanRequest( false );    if( itemCurrentlyEdited )    {        m_canvas->SetIgnoreMouseEvents( true );        m_canvas->CrossHairOff( aDC );        switch( item->Type() )        {        case PCB_TRACE_T:        case PCB_VIA_T:            if( item->IsDragging() )                PlaceDraggedOrMovedTrackSegment( static_cast<TRACK*>( item ), aDC );            break;        case PCB_TEXT_T:            Place_Texte_Pcb( static_cast<TEXTE_PCB*>( item ), aDC );            break;        case PCB_MODULE_TEXT_T:            PlaceTexteModule( static_cast<TEXTE_MODULE*>( item ), aDC );            break;        case PCB_PAD_T:            PlacePad( static_cast<D_PAD*>( item ), aDC );            break;        case PCB_MODULE_T:            PlaceModule( static_cast<MODULE*>( item ), aDC );            break;        case PCB_TARGET_T:            PlaceTarget( static_cast<PCB_TARGET*>( item ), aDC );            break;        case PCB_LINE_T:            if( no_tool )   // when no tools: existing item moving.                Place_DrawItem( static_cast<DRAWSEGMENT*>( item ), aDC );            break;        default:            break;        }        m_canvas->SetIgnoreMouseEvents( false );        m_canvas->CrossHairOn( aDC );        return true;    }    return false;}
开发者ID:johnbeard,项目名称:kicad,代码行数:60,


示例2: GetToolId

void LIB_EDIT_FRAME::OnUpdateEditingPart( wxUpdateUIEvent& aEvent ){    aEvent.Enable( m_component != NULL );    if( m_component != NULL && aEvent.GetEventObject() == m_drawToolBar )        aEvent.Check( GetToolId() == aEvent.GetId() );}
开发者ID:manasdas17,项目名称:kicad-source-mirror,代码行数:7,


示例3: wxASSERT

void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC ){    wxASSERT( m_canvas->IsMouseCaptured() );    GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );    switch( GetScreen()->m_BlockLocate.GetCommand() )    {    case BLOCK_MOVE:                /* Move */        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        Block_Move( DC );        GetScreen()->m_BlockLocate.ClearItemsList();        break;    default:        wxFAIL_MSG( wxT("HandleBlockPlace: Unexpected block command") );        break;    }    m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false );    GetScreen()->SetModify();    GetScreen()->ClearBlockCommand();    wxASSERT( GetScreen()->m_BlockLocate.GetCount() == 0 );    DisplayToolMsg( wxEmptyString );}
开发者ID:barrem,项目名称:kicad-source-mirror,代码行数:29,


示例4: GetBoard

void FOOTPRINT_EDIT_FRAME::OnUpdateVerticalToolbar( wxUpdateUIEvent& aEvent ){    aEvent.Enable( GetBoard()->m_Modules != NULL );    if( aEvent.GetEventObject() == m_drawToolBar )        aEvent.Check( GetToolId() == aEvent.GetId() );}
开发者ID:flighta-zeng,项目名称:kicad-source-mirror,代码行数:7,


示例5: GetCurPart

void LIB_EDIT_FRAME::OnUpdateEditingPart( wxUpdateUIEvent& aEvent ){    LIB_PART* part = GetCurPart();    aEvent.Enable( part != NULL );    if( part && aEvent.GetEventObject() == m_drawToolBar )        aEvent.Check( GetToolId() == aEvent.GetId() );}
开发者ID:KiCad,项目名称:kicad-source-mirror,代码行数:9,


示例6: GetBoard

void PCB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ){    GetBoard()->m_Status_Pcb &= ~DO_NOT_SHOW_GENERAL_RASTNEST;    if( !m_canvas->IsMouseCaptured() )    {        DisplayError( this, wxT( "Error in HandleBlockPLace : m_mouseCaptureCallback = NULL" ) );    }    GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );    const BLOCK_COMMAND_T command = GetScreen()->m_BlockLocate.GetCommand();    switch( command )    {    case BLOCK_IDLE:        break;    case BLOCK_DRAG:                // Drag    case BLOCK_MOVE:                // Move    case BLOCK_PRESELECT_MOVE:      // Move with preselection list        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        Block_Move();        GetScreen()->m_BlockLocate.ClearItemsList();        break;    case BLOCK_COPY:     // Copy    case BLOCK_COPY_AND_INCREMENT:        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        Block_Duplicate( command == BLOCK_COPY_AND_INCREMENT );        GetScreen()->m_BlockLocate.ClearItemsList();        break;    case BLOCK_PASTE:        break;    case BLOCK_ZOOM:        // Handled by HandleBlockEnd()    default:        break;    }    OnModify();    m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false );    GetScreen()->ClearBlockCommand();    if( GetScreen()->m_BlockLocate.GetCount() )    {        DisplayError( this, wxT( "Error in HandleBlockPLace some items left in list" ) );        GetScreen()->m_BlockLocate.ClearItemsList();    }}
开发者ID:BTR1,项目名称:kicad-source-mirror,代码行数:56,


示例7: wxUnusedVar

void NewToolDlg::OnButtonOk( wxCommandEvent& event ){	wxUnusedVar(event);	int rc(wxID_OK);		// load all the tools	ExternalToolsData inData;	m_mgr->GetConfigTool()->ReadObject(wxT("ExternalTools"), &inData);	for(size_t i=0; i<inData.GetTools().size(); i++){		if(GetToolId() == inData.GetTools().at(i).GetId()){			int answer = wxMessageBox(wxString::Format(wxT("Continue updating tool ID '%s'"), GetToolId().c_str()), wxT("EmbeddedLite"), wxYES_NO|wxCANCEL, this);			if(answer != wxYES){				rc = wxID_CANCEL;			}			break;		}	}		EndModal(rc);}
开发者ID:RVictor,项目名称:EmbeddedLite,代码行数:20,


示例8: GetToolId

void PCB_BASE_FRAME::SetToolID( int aId, int aCursor, const wxString& aToolMsg ){    bool redraw = false;    EDA_DRAW_FRAME::SetToolID( aId, aCursor, aToolMsg );    if( aId < 0 )        return;    // handle color changes for transitions in and out of ID_TRACK_BUTT    if( ( GetToolId() == ID_TRACK_BUTT && aId != ID_TRACK_BUTT )        || ( GetToolId() != ID_TRACK_BUTT && aId== ID_TRACK_BUTT ) )    {        if( DisplayOpt.ContrastModeDisplay )            redraw = true;    }    // must do this after the tool has been set, otherwise pad::Draw() does    // not show proper color when DisplayOpt.ContrastModeDisplay is true.    if( redraw && m_canvas)        m_canvas->Refresh();}
开发者ID:james-sakalaukus,项目名称:kicad,代码行数:22,


示例9: SaveCopyInUndoList

void LIB_EDIT_FRAME::OnRotateItem( wxCommandEvent& aEvent ){    if( m_drawItem == NULL )        return;    if( !m_drawItem->InEditMode() )    {        SaveCopyInUndoList( m_component );        m_drawItem->SetUnit( m_unit );    }    m_drawItem->Rotate();    OnModify();    if( !m_drawItem->InEditMode() )        m_drawItem->ClearFlags();    m_canvas->Refresh();    if( GetToolId() == ID_NO_TOOL_SELECTED )        m_lastDrawItem = NULL;}
开发者ID:manasdas17,项目名称:kicad-source-mirror,代码行数:22,


示例10: switch

bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ){    bool nextcmd  = false;    bool zoom_command = false;    if( m_canvas->IsMouseCaptured() )        switch( GetScreen()->m_BlockLocate.GetCommand() )        {        case BLOCK_MOVE:            /* Move */            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE );            nextcmd = true;            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );            m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines );            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );            break;        case BLOCK_ZOOM: /* Window Zoom */            zoom_command = true;            break;        default:            wxFAIL_MSG( wxT("HandleBlockEnd: Unexpected block command") );            break;        }    if( ! nextcmd )    {        GetScreen()->ClearBlockCommand();        m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString,                                   false );    }    if( zoom_command )        Window_Zoom( GetScreen()->m_BlockLocate );    return nextcmd ;}
开发者ID:barrem,项目名称:kicad-source-mirror,代码行数:38,


示例11: GetDrawItem

void LIB_EDIT_FRAME::EndDrawGraphicItem( wxDC* DC ){    LIB_ITEM* item = GetDrawItem();    if( item == NULL )        return;    if( LIB_PART* part = GetCurPart() )    {        if( GetToolId() != ID_NO_TOOL_SELECTED )            SetCursor( wxCURSOR_PENCIL );        else            SetCursor( (wxStockCursor) m_canvas->GetDefaultCursor() );        if( GetTempCopyComponent() )    // used when editing an existing item            SaveCopyInUndoList( GetTempCopyComponent() );        else        {            // When creating a new item, there is still no change for the            // current symbol. So save it.            SaveCopyInUndoList( part );        }        if( item->IsNew() )            part->AddDrawItem( item );        item->EndEdit( GetCrossHairPosition( true ) );        SetDrawItem( NULL );        OnModify();        m_canvas->SetMouseCapture( NULL, NULL );        m_canvas->Refresh();    }}
开发者ID:cpavlina,项目名称:kicad,代码行数:36,


示例12: GetCurItem

/* * Called on a mouse left button double click */void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ){    BOARD_ITEM* item = GetCurItem();    switch( GetToolId() )    {    case ID_NO_TOOL_SELECTED:        if( ( item == NULL ) || ( item->GetFlags() == 0 ) )        {            item = ModeditLocateAndDisplay();        }        if( ( item == NULL ) || ( item->GetFlags() != 0 ) )            break;        // Item found        SetCurItem( item );        OnEditItemRequest( DC, item );        break;      // end case 0    case ID_PCB_ADD_LINE_BUTT:    {        if( item && item->IsNew() )        {            End_Edge_Module( (EDGE_MODULE*) item );            SetCurItem( NULL );            m_canvas->Refresh();        }        break;    }    default:        break;    }}
开发者ID:danstiurca,项目名称:kicad-source-mirror,代码行数:39,


示例13: switch

/* Must be called on a click on the left toolbar (options toolbar * Update variables according to tools states */void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ){    int id = event.GetId();    bool state = event.IsChecked();    switch( id )    {    case ID_TB_OPTIONS_DRC_OFF:        g_Drc_On = !state;        if( GetToolId() == ID_TRACK_BUTT )        {            if( g_Drc_On )                m_canvas->SetCursor( wxCURSOR_PENCIL );            else                m_canvas->SetCursor( wxCURSOR_QUESTION_ARROW );        }        break;    case ID_TB_OPTIONS_SHOW_RATSNEST:        SetElementVisibility( RATSNEST_VISIBLE, state );        if( state && (GetBoard()->m_Status_Pcb & LISTE_RATSNEST_ITEM_OK) == 0 )            Compile_Ratsnest( NULL, true );        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST:        g_Show_Module_Ratsnest = state; // TODO: use the visibility list        break;    case ID_TB_OPTIONS_AUTO_DEL_TRACK:        g_AutoDeleteOldTrack = state;        break;    case ID_TB_OPTIONS_SHOW_ZONES:        DisplayOpt.DisplayZonesMode = 0;        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_ZONES_DISABLE:        DisplayOpt.DisplayZonesMode = 1;        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY:        DisplayOpt.DisplayZonesMode = 2;        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_VIAS_SKETCH:        m_DisplayViaFill = DisplayOpt.DisplayViaFill = !state;        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_TRACKS_SKETCH:        m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = !state;        m_canvas->Refresh();        break;    case ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE:    {        DisplayOpt.ContrastModeDisplay = state;        m_canvas->Refresh();        break;    }    case ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR_MICROWAVE:        m_show_microwave_tools = state;        m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools );        m_auimgr.Update();        GetMenuBar()->SetLabel( ID_MENU_PCB_SHOW_HIDE_MUWAVE_TOOLBAR,                        m_show_microwave_tools ?                        _( "Hide Microwave Toolbar" ): _( "Show Microwave Toolbar" ));        break;    case ID_TB_OPTIONS_SHOW_MANAGE_LAYERS_VERTICAL_TOOLBAR:        // show auxiliary Vertical layers and visibility manager toolbar        m_show_layer_manager_tools = state;        m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );        m_auimgr.Update();        GetMenuBar()->SetLabel( ID_MENU_PCB_SHOW_HIDE_LAYERS_MANAGER_DIALOG,                                m_show_layer_manager_tools ?                                _( "Hide &Layers Manager" ) : _( "Show &Layers Manager" ) );        break;    default:        DisplayError( this,                      wxT( "PCB_EDIT_FRAME::OnSelectOptionToolbar error /n (event not handled!)" ) );        break;    }}
开发者ID:LDavis4559,项目名称:kicad-source-mirror,代码行数:98,


示例14: GetCurPart

void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition ){    LIB_ITEM*   item = m_drawItem;    bool        item_in_edit = item && item->InEditMode();    bool        no_item_edited = !item_in_edit;    LIB_PART*      part = GetCurPart();    if( !part )         // No component loaded !        return;    if( ( GetToolId() == ID_NO_TOOL_SELECTED ) && no_item_edited )    {        item = LocateItemUsingCursor( aPosition );        if( item )        {            MSG_PANEL_ITEMS items;            item->GetMsgPanelInfo( items );            SetMsgPanel( items );        }        else        {            DisplayCmpDoc();            if( m_canvas->GetAbortRequest() )                m_canvas->SetAbortRequest( false );        }    }    switch( GetToolId() )    {    case ID_NO_TOOL_SELECTED:        // If an item is currently in edit, finish edit        if( item_in_edit )        {            switch( item->Type() )            {            case LIB_PIN_T:                PlacePin();                break;            default:                EndDrawGraphicItem( DC );                break;            }        }        break;    case ID_LIBEDIT_PIN_BUTT:        if( no_item_edited )            CreatePin( DC );        else            PlacePin();        break;    case ID_LIBEDIT_BODY_LINE_BUTT:    case ID_LIBEDIT_BODY_ARC_BUTT:    case ID_LIBEDIT_BODY_CIRCLE_BUTT:    case ID_LIBEDIT_BODY_RECT_BUTT:    case ID_LIBEDIT_BODY_TEXT_BUTT:        if( no_item_edited )            m_drawItem = CreateGraphicItem( part, DC );        else if( m_drawItem )        {            if( m_drawItem->IsNew() )                GraphicItemBeginDraw( DC );            else                EndDrawGraphicItem( DC );        }        break;    case ID_LIBEDIT_DELETE_ITEM_BUTT:        m_drawItem = LocateItemUsingCursor( aPosition );        if( m_drawItem )            deleteItem( DC );        else            DisplayCmpDoc();        break;    case ID_LIBEDIT_ANCHOR_ITEM_BUTT:        SaveCopyInUndoList( part );        PlaceAnchor();        SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString );        break;    default:        wxFAIL_MSG( wxString::Format( wxT( "Unhandled command ID %d" ), GetToolId() ) );        SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString );        break;    }}
开发者ID:Caerbannog,项目名称:kicad-git-bzr,代码行数:94,


示例15: GetCrossHairPosition

void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey ){    // Filter out the 'fake' mouse motion after a keyboard movement    if( !aHotKey && m_movingCursorWithKeyboard )    {        m_movingCursorWithKeyboard = false;        return;    }    // when moving mouse, use the "magnetic" grid, unless the shift+ctrl keys is pressed    // for next cursor position    // ( shift or ctrl key down are PAN command with mouse wheel)    bool snapToGrid = true;    if( !aHotKey && wxGetKeyState( WXK_SHIFT ) && wxGetKeyState( WXK_CONTROL ) )        snapToGrid = false;    wxPoint oldpos = GetCrossHairPosition();    wxPoint pos = aPosition;    GeneralControlKeyMovement( aHotKey, &pos, snapToGrid );    // Put cursor in new position, according to the zoom keys (if any).    SetCrossHairPosition( pos, snapToGrid );    /* Put cursor on grid or a pad centre if requested. If the tool DELETE is active the     * cursor is left off grid this is better to reach items to delete off grid,     */    if( GetToolId() == ID_PCB_DELETE_ITEM_BUTT )        snapToGrid = false;    // Cursor is left off grid if no block in progress    if( GetScreen()->m_BlockLocate.GetState() != STATE_NO_BLOCK )        snapToGrid = true;    wxPoint curs_pos = pos;    wxRealPoint gridSize = GetScreen()->GetGridSize();    wxSize igridsize;    igridsize.x = KiROUND( gridSize.x );    igridsize.y = KiROUND( gridSize.y );    if( Magnetize( this, GetToolId(), igridsize, curs_pos, &pos ) )    {        SetCrossHairPosition( pos, false );    }    else    {        // If there's no intrusion and DRC is active, we pass the cursor        // "as is", and let ShowNewTrackWhenMovingCursor figure out what to do.        if( !g_Drc_On || !g_CurrentTrackSegment ||            (BOARD_ITEM*)g_CurrentTrackSegment != this->GetCurItem() ||            !LocateIntrusion( m_Pcb->m_Track, g_CurrentTrackSegment,                              GetScreen()->m_Active_Layer, RefPos( true ) ) )        {            SetCrossHairPosition( curs_pos, snapToGrid );        }    }    RefreshCrossHair( oldpos, aPosition, aDC );    if( aHotKey )    {        OnHotKey( aDC, aHotKey, aPosition );    }    UpdateStatusBar();    // Display new cursor coordinates}
开发者ID:johnbeard,项目名称:kicad-source-mirror,代码行数:66,


示例16: SetCrossHairPosition

//.........这里部分代码省略.........        case BLOCK_DELETE:            GetScreen()->UpdatePickList();            DrawAndSizingBlockOutlines( m_canvas, aDC, wxDefaultPosition, false );            if( block->GetCount() )            {                DeleteItemsInList( m_canvas, block->GetItems() );                OnModify();            }            block->ClearItemsList();            GetScreen()->TestDanglingEnds( m_canvas, aDC );            m_canvas->Refresh();            break;        case BLOCK_SAVE:    // Save a copy of items in paste buffer            GetScreen()->UpdatePickList();            DrawAndSizingBlockOutlines( m_canvas, aDC, wxDefaultPosition, false );            if( block->GetCount() )            {                wxPoint move_vector = -GetScreen()->m_BlockLocate.GetLastCursorPosition();                copyBlockItems( block->GetItems() );                MoveItemsInList( m_blockItems.GetItems(), move_vector );            }            block->ClearItemsList();            break;        case BLOCK_PASTE:            block->SetState( STATE_BLOCK_MOVE );            break;        case BLOCK_ZOOM:            zoom_command = true;            break;        case BLOCK_MIRROR_X:            GetScreen()->UpdatePickList();            DrawAndSizingBlockOutlines( m_canvas, aDC, wxDefaultPosition, false );            if( block->GetCount() )            {                // Compute the mirror center and put it on grid.                wxPoint mirrorPoint = block->Centre();                mirrorPoint = GetNearestGridPosition( mirrorPoint );                SetCrossHairPosition( mirrorPoint );                SaveCopyInUndoList( block->GetItems(), UR_MIRRORED_X, mirrorPoint );                MirrorX( block->GetItems(), mirrorPoint );                OnModify();            }            GetScreen()->TestDanglingEnds( m_canvas, aDC );            m_canvas->Refresh();            break;        case BLOCK_MIRROR_Y:            GetScreen()->UpdatePickList();            DrawAndSizingBlockOutlines( m_canvas, aDC, wxDefaultPosition, false );            if( block->GetCount() )            {                // Compute the mirror center and put it on grid.                wxPoint mirrorPoint = block->Centre();                mirrorPoint = GetNearestGridPosition( mirrorPoint );                SetCrossHairPosition( mirrorPoint );                SaveCopyInUndoList( block->GetItems(), UR_MIRRORED_Y, mirrorPoint );                MirrorY( block->GetItems(), mirrorPoint );                OnModify();            }            GetScreen()->TestDanglingEnds( m_canvas, aDC );            m_canvas->Refresh();            break;        default:            break;        }    }    if( block->GetCommand() == BLOCK_ABORT )    {        GetScreen()->ClearDrawingState();        m_canvas->Refresh();    }    if( ! nextcmd )    {        block->SetState( STATE_NO_BLOCK );        block->SetCommand( BLOCK_IDLE );        GetScreen()->SetCurItem( NULL );        m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString,                                   false );    }    if( zoom_command )        Window_Zoom( GetScreen()->m_BlockLocate );    return nextcmd;}
开发者ID:grtwall,项目名称:kicad-source-mirror,代码行数:101,


示例17: GetToolId

void PCB_EDIT_FRAME::OnUpdateMuWaveToolbar( wxUpdateUIEvent& aEvent ){    if( aEvent.GetEventObject() == m_microWaveToolBar )        aEvent.Check( GetToolId() == aEvent.GetId() );}
开发者ID:UIKit0,项目名称:kicad-source-mirror,代码行数:5,


示例18: GetNearestGridPosition

void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey ){    wxRealPoint gridSize;    wxPoint     oldpos;    wxPoint     pos = aPosition;    // when moving mouse, use the "magnetic" grid, unless the shift+ctrl keys is pressed    // for next cursor position    // ( shift or ctrl key down are PAN command with mouse wheel)    bool snapToGrid = true;    if( !aHotKey && wxGetKeyState( WXK_SHIFT ) && wxGetKeyState( WXK_CONTROL ) )        snapToGrid = false;    if( snapToGrid )        pos = GetNearestGridPosition( pos );    oldpos = GetCrossHairPosition();    gridSize = GetScreen()->GetGridSize();    switch( aHotKey )    {    case WXK_NUMPAD8:    case WXK_UP:        pos.y -= KiROUND( gridSize.y );        m_canvas->MoveCursor( pos );        break;    case WXK_NUMPAD2:    case WXK_DOWN:        pos.y += KiROUND( gridSize.y );        m_canvas->MoveCursor( pos );        break;    case WXK_NUMPAD4:    case WXK_LEFT:        pos.x -= KiROUND( gridSize.x );        m_canvas->MoveCursor( pos );        break;    case WXK_NUMPAD6:    case WXK_RIGHT:        pos.x += KiROUND( gridSize.x );        m_canvas->MoveCursor( pos );        break;    default:        break;    }    // Put cursor in new position, according to the zoom keys (if any).    SetCrossHairPosition( pos, snapToGrid );    /* Put cursor on grid or a pad centre if requested. If the tool DELETE is active the     * cursor is left off grid this is better to reach items to delete off grid,     */    if( GetToolId() == ID_PCB_DELETE_ITEM_BUTT )        snapToGrid = false;    // Cursor is left off grid if no block in progress    if( GetScreen()->m_BlockLocate.GetState() != STATE_NO_BLOCK )        snapToGrid = true;    wxPoint curs_pos = pos;    wxSize igridsize;    igridsize.x = KiROUND( gridSize.x );    igridsize.y = KiROUND( gridSize.y );    if( Magnetize( this, GetToolId(), igridsize, curs_pos, &pos ) )    {        SetCrossHairPosition( pos, false );    }    else    {        // If there's no intrusion and DRC is active, we pass the cursor        // "as is", and let ShowNewTrackWhenMovingCursor figure out what to do.        if( !g_Drc_On || !g_CurrentTrackSegment ||            (BOARD_ITEM*)g_CurrentTrackSegment != this->GetCurItem() ||            !LocateIntrusion( m_Pcb->m_Track, g_CurrentTrackSegment,                              GetScreen()->m_Active_Layer, RefPos( true ) ) )        {            SetCrossHairPosition( curs_pos, snapToGrid );        }    }    if( oldpos != GetCrossHairPosition() )    {        pos = GetCrossHairPosition();        SetCrossHairPosition( oldpos, false );        m_canvas->CrossHairOff( aDC );        SetCrossHairPosition( pos, false );        m_canvas->CrossHairOn( aDC );        if( m_canvas->IsMouseCaptured() )        {#ifdef USE_WX_OVERLAY            wxDCOverlay oDC( m_overlay, (wxWindowDC*)aDC );            oDC.Clear();//.........这里部分代码省略.........
开发者ID:ianohara,项目名称:kicad-source-mirror,代码行数:101,


示例19: GetBoard

//.........这里部分代码省略.........        SetCrossHairPosition( wxPoint(  GetScreen()->m_BlockLocate.GetRight(),                                        GetScreen()->m_BlockLocate.GetBottom() ) );        m_canvas->MoveCursorToCrossHair();    }    switch( GetScreen()->m_BlockLocate.GetCommand() )    {    case  BLOCK_IDLE:        DisplayError( this, wxT( "Error in HandleBlockPLace" ) );        break;    case BLOCK_DRAG:        // Drag    case BLOCK_MOVE:        // Move    case BLOCK_COPY:        // Copy        itemsCount = MarkItemsInBloc( currentModule, GetScreen()->m_BlockLocate );        if( itemsCount )        {            nextcmd = true;            if( m_canvas->IsMouseCaptured() )            {                m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );                m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines );                m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );            }            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE );            m_canvas->Refresh( true );        }        break;    case BLOCK_PRESELECT_MOVE:     // Move with preselection list        nextcmd = true;        m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines );        GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE );        break;    case BLOCK_DELETE:     // Delete        itemsCount = MarkItemsInBloc( currentModule, GetScreen()->m_BlockLocate );        if( itemsCount )            SaveCopyInUndoList( currentModule, UR_MODEDIT );        DeleteMarkedItems( currentModule );        break;    case BLOCK_SAVE:     // Save    case BLOCK_PASTE:        break;    case BLOCK_ROTATE:        itemsCount = MarkItemsInBloc( currentModule, GetScreen()->m_BlockLocate );        if( itemsCount )            SaveCopyInUndoList( currentModule, UR_MODEDIT );        RotateMarkedItems( currentModule, GetScreen()->m_BlockLocate.Centre() );        break;    case BLOCK_MIRROR_X:    case BLOCK_MIRROR_Y:    case BLOCK_FLIP:     // mirror        itemsCount = MarkItemsInBloc( currentModule, GetScreen()->m_BlockLocate );        if( itemsCount )            SaveCopyInUndoList( currentModule, UR_MODEDIT );        MirrorMarkedItems( currentModule, GetScreen()->m_BlockLocate.Centre() );        break;    case BLOCK_ZOOM:     // Window Zoom        Window_Zoom( GetScreen()->m_BlockLocate );        break;    case BLOCK_ABORT:        break;    case BLOCK_SELECT_ITEMS_ONLY:        break;    }    if( !nextcmd )    {        if( GetScreen()->m_BlockLocate.GetCommand() != BLOCK_SELECT_ITEMS_ONLY )        {            ClearMarkItems( currentModule );        }        GetScreen()->ClearBlockCommand();        SetCurItem( NULL );        m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString,                                   false );        m_canvas->Refresh( true );    }    return nextcmd;}
开发者ID:Th0rN13,项目名称:kicad-source-mirror,代码行数:101,


示例20: GeneralControlKeyMovement

bool SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey ){    // Filter out the 'fake' mouse motion after a keyboard movement    if( !aHotKey && m_movingCursorWithKeyboard )    {        m_movingCursorWithKeyboard = false;        return false;    }    // when moving mouse, use the "magnetic" grid, unless the shift+ctrl keys is pressed    // for next cursor position    // ( shift or ctrl key down are PAN command with mouse wheel)    bool snapToGrid = true;    if( !aHotKey && wxGetKeyState( WXK_SHIFT ) && wxGetKeyState( WXK_CONTROL ) )        snapToGrid = false;    // Cursor is left off grid only if no block in progress    if( GetScreen()->m_BlockLocate.GetState() != STATE_NO_BLOCK )        snapToGrid = true;    wxPoint pos = aPosition;    bool keyHandled = GeneralControlKeyMovement( aHotKey, &pos, snapToGrid );    if( GetToolId() == ID_NO_TOOL_SELECTED )        m_canvas->CrossHairOff( aDC );    else        m_canvas->CrossHairOn( aDC );    GetGalCanvas()->GetViewControls()->SetSnapping( snapToGrid );    SetCrossHairPosition( pos, snapToGrid );    if( m_canvas->IsMouseCaptured() )        m_canvas->CallMouseCapture( aDC, aPosition, true );    if( aHotKey )    {        if( m_movingCursorWithKeyboard )    // The hotkey was a move crossahir cursor command        {            // The crossair was moved. move the mouse cursor to the new crosshair position:            GetGalCanvas()->GetViewControls()->WarpCursor( GetCrossHairPosition(), true );            m_movingCursorWithKeyboard = 0;        }        else        {            SCH_SCREEN* screen = GetScreen();            bool hk_handled;            if( screen->GetCurItem() && screen->GetCurItem()->GetFlags() )                hk_handled = OnHotKey( aDC, aHotKey, aPosition, screen->GetCurItem() );            else                hk_handled = OnHotKey( aDC, aHotKey, aPosition, NULL );            if( hk_handled )                keyHandled = true;        }    }    UpdateStatusBar();    /* Display cursor coordinates info */    return keyHandled;}
开发者ID:Lotharyx,项目名称:kicad-source-mirror,代码行数:62,


示例21: GetToolId

bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ){    bool nextcmd = false;       // Will be set to true if a block place is needed    bool cancelCmd = false;    // If coming here after cancel block, clean up and exit    if( GetScreen()->m_BlockLocate.GetState() == STATE_NO_BLOCK )    {        m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString,                                   false );        GetScreen()->ClearBlockCommand();        return false;    }    // Show dialog if there are no selected items and we're not zooming    if( !GetScreen()->m_BlockLocate.GetCount()            && GetScreen()->m_BlockLocate.GetCommand() != BLOCK_ZOOM )    {        if( InstallBlockCmdFrame( this, _( "Block Operation" ) ) == false )        {            cancelCmd = true;            // undraw block outline            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        }        else        {            DrawAndSizingBlockOutlines( m_canvas, DC, wxDefaultPosition, false );            Block_SelectItems();            // Exit if no items found            if( !GetScreen()->m_BlockLocate.GetCount() )                cancelCmd = true;        }    }    if( !cancelCmd && m_canvas->IsMouseCaptured() )    {        switch( GetScreen()->m_BlockLocate.GetCommand() )        {        case BLOCK_IDLE:            DisplayError( this, wxT( "Error in HandleBlockPLace" ) );            break;        case BLOCK_DRAG:                // Drag (not used, for future enhancements)        case BLOCK_MOVE:                // Move        case BLOCK_COPY:                // Copy        case BLOCK_COPY_AND_INCREMENT:  // Copy and increment relevant references        case BLOCK_PRESELECT_MOVE:      // Move with preselection list            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE );            nextcmd = true;            m_canvas->SetMouseCaptureCallback( drawMovingBlock );            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );            break;        case BLOCK_DELETE: // Delete            m_canvas->SetMouseCaptureCallback( NULL );            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );            Block_Delete();            break;        case BLOCK_ROTATE: // Rotation            m_canvas->SetMouseCaptureCallback( NULL );            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );            Block_Rotate();            break;        case BLOCK_FLIP: // Flip            m_canvas->SetMouseCaptureCallback( NULL );            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );            Block_Flip();            break;        case BLOCK_SAVE: // Save (not used, for future enhancements)            GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP );            if( GetScreen()->m_BlockLocate.GetCount() )            {                // @todo (if useful)         Save_Block( );            }            break;        case BLOCK_PASTE:            break;        case BLOCK_ZOOM: // Window Zoom            // Turn off the redraw block routine now so it is not displayed            // with one corner at the new center of the screen            m_canvas->SetMouseCaptureCallback( NULL );            Window_Zoom( GetScreen()->m_BlockLocate );            break;        default:            break;        }    }    if( ! nextcmd )    {        GetBoard()->m_Status_Pcb |= DO_NOT_SHOW_GENERAL_RASTNEST;//.........这里部分代码省略.........
开发者ID:BTR1,项目名称:kicad-source-mirror,代码行数:101,


示例22: GetCollectorsGuide

BOARD_ITEM* PCB_BASE_FRAME::PcbGeneralLocateAndDisplay( int aHotKeyCode ){    BOARD_ITEM* item;    GENERAL_COLLECTORS_GUIDE guide = GetCollectorsGuide();    // Assign to scanList the proper item types desired based on tool type    // or hotkey that is in play.    const KICAD_T* scanList = NULL;    if( aHotKeyCode )    {        // @todo: add switch here and add calls to PcbGeneralLocateAndDisplay( int aHotKeyCode )        // when searching is needed from a hotkey handler    }    else if( GetToolId() == ID_NO_TOOL_SELECTED )    {        if( m_mainToolBar->GetToolToggled( ID_TOOLBARH_PCB_MODE_MODULE ) )            scanList = GENERAL_COLLECTOR::ModuleItems;        else            scanList = (DisplayOpt.DisplayZonesMode == 0) ?                       GENERAL_COLLECTOR::AllBoardItems :                       GENERAL_COLLECTOR::AllButZones;    }    else    {        switch( GetToolId() )        {        case ID_PCB_SHOW_1_RATSNEST_BUTT:            scanList = GENERAL_COLLECTOR::PadsOrModules;            break;        case ID_TRACK_BUTT:            scanList = GENERAL_COLLECTOR::Tracks;            break;        case ID_PCB_MODULE_BUTT:            scanList = GENERAL_COLLECTOR::ModuleItems;            break;        case ID_PCB_ZONES_BUTT:        case ID_PCB_KEEPOUT_AREA_BUTT:            scanList = GENERAL_COLLECTOR::Zones;            break;        default:            scanList = DisplayOpt.DisplayZonesMode == 0 ?                       GENERAL_COLLECTOR::AllBoardItems :                       GENERAL_COLLECTOR::AllButZones;        }    }    m_Collector->Collect( m_Pcb, scanList, RefPos( true ), guide );#if 0    // debugging: print out the collected items, showing their priority order too.    for( int i = 0; i<m_Collector->GetCount();  ++i )        (*m_Collector)[i]->Show( 0, std::cout );#endif    /* Remove redundancies: sometime, legacy zones are found twice,     * because zones can be filled by overlapping segments (this is a fill option)     * Trigger the selection of the current edge for new-style zones     */    time_t timestampzone = 0;    for( int ii = 0;  ii < m_Collector->GetCount(); ii++ )    {        item = (*m_Collector)[ii];        switch( item->Type() )        {        case PCB_ZONE_T:            // Found a TYPE ZONE            if( item->GetTimeStamp() == timestampzone )    // Remove it, redundant, zone already found            {                m_Collector->Remove( ii );                ii--;            }            else            {                timestampzone = item->GetTimeStamp();            }            break;        case PCB_ZONE_AREA_T:            {                /* We need to do the selection now because the menu text                 * depends on it */                ZONE_CONTAINER *zone = static_cast<ZONE_CONTAINER*>( item );                zone->SetSelectedCorner( RefPos( true ) );            }            break;        default:            break;        }    }//.........这里部分代码省略.........
开发者ID:johnbeard,项目名称:kicad-source-mirror,代码行数:101,


示例23: DisplayError

void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ){    BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate;    if( !m_canvas->IsMouseCaptured() )    {        DisplayError( this, wxT( "HandleBlockPLace() : m_mouseCaptureCallback = NULL" ) );    }    if( block->GetCount() == 0 )    {        wxString msg;        msg.Printf( wxT( "HandleBlockPLace() error : no items to place (cmd %d, state %d)" ),                    block->GetCommand(), block->GetState() );        DisplayError( this, msg );    }    block->SetState( STATE_BLOCK_STOP );    switch( block->GetCommand() )    {    case BLOCK_DRAG:        // Drag from mouse    case BLOCK_DRAG_ITEM:   // Drag from a component selection and drag command    case BLOCK_MOVE:        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        SaveCopyInUndoList( block->GetItems(), UR_MOVED, block->GetMoveVector() );        MoveItemsInList( block->GetItems(), block->GetMoveVector() );        block->ClearItemsList();        break;    case BLOCK_COPY:                /* Copy */    case BLOCK_PRESELECT_MOVE:      /* Move with preselection list*/        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        DuplicateItemsInList( GetScreen(), block->GetItems(), block->GetMoveVector() );        SaveCopyInUndoList( block->GetItems(),                            ( block->GetCommand() == BLOCK_PRESELECT_MOVE ) ? UR_CHANGED : UR_NEW );        block->ClearItemsList();        break;    case BLOCK_PASTE:        if( m_canvas->IsMouseCaptured() )            m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );        PasteListOfItems( DC );        block->ClearItemsList();        break;    default:        // others are handled by HandleBlockEnd()        break;    }    OnModify();    // clear dome flags and pointers    GetScreen()->ClearDrawingState();    GetScreen()->ClearBlockCommand();    GetScreen()->SetCurItem( NULL );    GetScreen()->TestDanglingEnds( m_canvas, DC );    if( block->GetCount() )    {        DisplayError( this, wxT( "HandleBlockPLace() error: some items left in buffer" ) );        block->ClearItemsList();    }    m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false );    m_canvas->Refresh();}
开发者ID:grtwall,项目名称:kicad-source-mirror,代码行数:74,



注:本文中的GetToolId函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GetTop函数代码示例
C++ GetToolBarCtrl函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。