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

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

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

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

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

示例1: GetBoard

void PCB_EDIT_FRAME::PrepareLayerIndicator(){    int        ii, jj;    EDA_COLOR_T active_layer_color, Route_Layer_TOP_color,               Route_Layer_BOTTOM_color, via_color;    bool       change = false;    bool first_call = LayerPairBitmap == NULL;    static int previous_active_layer_color, previous_Route_Layer_TOP_color,               previous_Route_Layer_BOTTOM_color, previous_via_color;    /* get colors, and redraw bitmap button only on changes */    active_layer_color = GetBoard()->GetLayerColor(GetActiveLayer());    if( previous_active_layer_color != active_layer_color )    {        previous_active_layer_color = active_layer_color;        change = true;    }    Route_Layer_TOP_color =        g_ColorsSettings.GetLayerColor( GetScreen()->m_Route_Layer_TOP );    if( previous_Route_Layer_TOP_color != Route_Layer_TOP_color )    {        previous_Route_Layer_TOP_color = Route_Layer_TOP_color;        change = true;    }    Route_Layer_BOTTOM_color =        g_ColorsSettings.GetLayerColor( GetScreen()->m_Route_Layer_BOTTOM );    if( previous_Route_Layer_BOTTOM_color != Route_Layer_BOTTOM_color )    {        previous_Route_Layer_BOTTOM_color = Route_Layer_BOTTOM_color;        change = true;    }    int via_type = GetDesignSettings().m_CurrentViaType;    via_color = GetBoard()->GetVisibleElementColor(VIAS_VISIBLE+via_type);    if( previous_via_color != via_color )    {        previous_via_color = via_color;        change = true;    }    if( !change && (LayerPairBitmap != NULL) )        return;    /* Create the bitmap and its Memory DC, if not already made */    if( LayerPairBitmap == NULL )    {        LayerPairBitmap = new wxBitmap( 24, 24 );    }    /* Draw the icon, with colors according to the active layer and layer     * pairs for via command (change layer)     */    wxMemoryDC iconDC;    iconDC.SelectObject( *LayerPairBitmap );    wxPen      pen;    int buttonColor = -1;    for( ii = 0; ii < BM_LAYERICON_SIZE; ii++ )    {        for( jj = 0; jj < BM_LAYERICON_SIZE; jj++ )        {            if( s_BitmapLayerIcon[ii][jj] != buttonColor )            {                switch( s_BitmapLayerIcon[ii][jj] )                {                default:                case 0:                    pen.SetColour( MakeColour( active_layer_color ) );                    break;                case 1:                    pen.SetColour( MakeColour( Route_Layer_TOP_color) );                    break;                case 2:                    pen.SetColour( MakeColour( Route_Layer_BOTTOM_color ) );                    break;                case 3:                    pen.SetColour( MakeColour( via_color ) );                    break;                }                buttonColor = s_BitmapLayerIcon[ii][jj];                iconDC.SetPen( pen );            }            iconDC.DrawPoint( jj, ii );        }    }    /* Deselect the Tool Bitmap from DC,     *  in order to delete the MemoryDC safely without deleting the bitmap *///.........这里部分代码省略.........
开发者ID:PatMart,项目名称:kicad-source-mirror,代码行数:101,


示例2: GetScreen

wxPoint EDA_DRAW_FRAME::GetNearestGridPosition( const wxPoint& aPosition, wxRealPoint* aGridSize ) const{    BASE_SCREEN* screen = GetScreen();  // virtual call    return screen->getNearestGridPosition( aPosition, GetGridOrigin(), aGridSize );}
开发者ID:KiCad,项目名称:kicad-source-mirror,代码行数:5,


示例3: GetScreen

void EDA_DRAW_FRAME::AdjustScrollBars( const wxPoint& aCenterPositionIU ){    BASE_SCREEN* screen = GetScreen();    if( !screen || !m_canvas )        return;    double scale = screen->GetScalingFactor();    wxLogTrace( traceScrollSettings, wxT( "Center Position = ( %d, %d ), scale = %.10g" ),                aCenterPositionIU.x, aCenterPositionIU.y, scale );    // Calculate the portion of the drawing that can be displayed in the    // client area at the current zoom level.    // visible viewport in device units ~ pixels    wxSize  clientSizeDU = m_canvas->GetClientSize();    // Size of the client window in IU    DSIZE   clientSizeIU( clientSizeDU.x / scale, clientSizeDU.y / scale );    // Full drawing or "page" rectangle in internal units    DBOX    pageRectIU( wxPoint( 0, 0 ), wxSize( GetPageSizeIU().x, GetPageSizeIU().y ) );    // Account for scrollbars    wxSize  scrollbarSizeDU = m_canvas->GetSize() - m_canvas->GetClientSize();    wxSize  scrollbarSizeIU = scrollbarSizeDU * (1 / scale);    wxPoint centerAdjustedIU = aCenterPositionIU + scrollbarSizeIU / 2;    // The upper left corner of the client rectangle in internal units.    double xIU = centerAdjustedIU.x - clientSizeIU.x / 2.0;    double yIU = centerAdjustedIU.y - clientSizeIU.y / 2.0;    // If drawn around the center, adjust the client rectangle accordingly.    if( screen->m_Center )    {        // half page offset.        xIU += pageRectIU.GetWidth()  / 2.0;        yIU += pageRectIU.GetHeight() / 2.0;    }    DBOX    clientRectIU( wxPoint( xIU, yIU ), wxSize( clientSizeIU.x, clientSizeIU.y ) );    wxPoint centerPositionIU;    // put "int" limits on the clientRect    if( clientRectIU.GetLeft() < VIRT_MIN )        clientRectIU.MoveLeftTo( VIRT_MIN );    if( clientRectIU.GetTop() < VIRT_MIN )        clientRectIU.MoveTopTo( VIRT_MIN );    if( clientRectIU.GetRight() > VIRT_MAX )        clientRectIU.MoveRightTo( VIRT_MAX );    if( clientRectIU.GetBottom() > VIRT_MAX )        clientRectIU.MoveBottomTo( VIRT_MAX );    centerPositionIU.x = KiROUND( clientRectIU.GetX() + clientRectIU.GetWidth() / 2 );    centerPositionIU.y = KiROUND( clientRectIU.GetY() + clientRectIU.GetHeight() / 2 );    if( screen->m_Center )    {        centerPositionIU.x -= KiROUND( pageRectIU.GetWidth() / 2.0 );        centerPositionIU.y -= KiROUND( pageRectIU.GetHeight() / 2.0 );    }    DSIZE   virtualSizeIU;    if( pageRectIU.GetLeft() < clientRectIU.GetLeft() && pageRectIU.GetRight() > clientRectIU.GetRight() )    {        virtualSizeIU.x = pageRectIU.GetSize().x;    }    else    {        double pageCenterX    = pageRectIU.GetX()   + ( pageRectIU.GetWidth() / 2 );        double clientCenterX  = clientRectIU.GetX() + ( clientRectIU.GetWidth() / 2 );        if( clientRectIU.GetWidth() > pageRectIU.GetWidth() )        {            if( pageCenterX > clientCenterX )                virtualSizeIU.x = ( pageCenterX - clientRectIU.GetLeft() ) * 2;            else if( pageCenterX < clientCenterX )                virtualSizeIU.x = ( clientRectIU.GetRight() - pageCenterX ) * 2;            else                virtualSizeIU.x = clientRectIU.GetWidth();        }        else        {            if( pageCenterX > clientCenterX )                virtualSizeIU.x = pageRectIU.GetWidth() + ( (pageRectIU.GetLeft() - clientRectIU.GetLeft() ) * 2 );            else if( pageCenterX < clientCenterX )                virtualSizeIU.x = pageRectIU.GetWidth() + ( (clientRectIU.GetRight() - pageRectIU.GetRight() ) * 2 );            else                virtualSizeIU.x = pageRectIU.GetWidth();        }    }    if( pageRectIU.GetTop() < clientRectIU.GetTop() && pageRectIU.GetBottom() > clientRectIU.GetBottom() )    {        virtualSizeIU.y = pageRectIU.GetSize().y;    }    else    {//.........这里部分代码省略.........
开发者ID:cpavlina,项目名称:kicad,代码行数:101,


示例4: GetCurItem

//.........这里部分代码省略.........                shape = S_CIRCLE;            if( GetToolId() == ID_MODEDIT_ARC_TOOL )                shape = S_ARC;            SetCurItem( Begin_Edge_Module( (EDGE_MODULE*) NULL, DC, shape ) );        }        else if( item->IsNew() )        {            if( ( (EDGE_MODULE*) item )->GetShape() == S_CIRCLE )            {                End_Edge_Module( (EDGE_MODULE*) item );                SetCurItem( NULL );                m_canvas->Refresh();            }            else if( ( (EDGE_MODULE*) item )->GetShape() == S_ARC )            {                End_Edge_Module( (EDGE_MODULE*) item );                SetCurItem( NULL );                m_canvas->Refresh();            }            else if( ( (EDGE_MODULE*) item )->GetShape() == S_SEGMENT )            {                SetCurItem( Begin_Edge_Module( (EDGE_MODULE*) item, DC, S_SEGMENT ) );            }            else            {                wxMessageBox( wxT( "ProcessCommand error: unknown shape" ) );            }        }        break;    case ID_MODEDIT_DELETE_TOOL:        if( ! no_item_edited )    // Item in edit, cannot delete it            break;        item = ModeditLocateAndDisplay();        if( item && item->Type() != PCB_MODULE_T ) // Cannot delete the module itself        {            SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT );            RemoveStruct( item );            SetCurItem( NULL );        }        break;    case ID_MODEDIT_ANCHOR_TOOL:        {            MODULE* module = GetBoard()->m_Modules;            if( module == NULL    // No module loaded                || (module->GetFlags() != 0) )                break;            SaveCopyInUndoList( module, UR_MODEDIT );            // set the new relative internal local coordinates of footprint items            wxPoint moveVector = module->GetPosition() - GetCrossHairPosition();            module->MoveAnchorPosition( moveVector );            // Usually, we do not need to change twice the anchor position,            // so deselect the active tool            SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString );            SetCurItem( NULL );            m_canvas->Refresh();        }        break;    case ID_MODEDIT_PLACE_GRID_COORD:        m_canvas->DrawGridAxis( DC, GR_XOR, GetBoard()->GetGridOrigin() );        SetGridOrigin( GetCrossHairPosition() );        m_canvas->DrawGridAxis( DC, GR_COPY, GetBoard()->GetGridOrigin() );        GetScreen()->SetModify();        break;    case ID_MODEDIT_TEXT_TOOL:        if( GetBoard()->m_Modules == NULL )            break;        SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT );        CreateTextModule( GetBoard()->m_Modules, DC );        break;    case ID_MODEDIT_PAD_TOOL:        if( GetBoard()->m_Modules )        {            SaveCopyInUndoList( GetBoard()->m_Modules, UR_MODEDIT );            AddPad( GetBoard()->m_Modules, true );        }        break;    default:        DisplayError( this, wxT( "FOOTPRINT_EDIT_FRAME::ProcessCommand error" ) );        SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString );    }    m_canvas->CrossHairOn( DC );}
开发者ID:asutp,项目名称:kicad-source-mirror,代码行数:101,


示例5: StrPrintf

bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ){    // implement the pseudo code from KIWAY_PLAYER.h:    SCH_SCREENS screenList;    // This is for python:    if( aFileSet.size() != 1 )    {        UTF8 msg = StrPrintf( "Eeschema:%s() takes only a single filename", __func__ );        DisplayError( this, msg );        return false;    }    wxString    fullFileName( aFileSet[0] );    // We insist on caller sending us an absolute path, if it does not, we say it's a bug.    wxASSERT_MSG( wxFileName( fullFileName ).IsAbsolute(),        wxT( "bug in single_top.cpp or project manager." ) );    if( !LockFile( fullFileName ) )    {        wxString msg = wxString::Format( _(                "Schematic file '%s' is already open." ),                GetChars( fullFileName )                );        DisplayError( this, msg );        return false;    }    // save any currently open and modified project files.    for( SCH_SCREEN* screen = screenList.GetFirst(); screen; screen = screenList.GetNext() )    {        if( screen->IsModify() )        {            int response = YesNoCancelDialog( this, _(                "The current schematic has been modified.  Do you wish to save the changes?" ),                wxEmptyString,                _( "Save and Load" ),                _( "Load Without Saving" )                );            if( response == wxID_CANCEL )            {                return false;            }            else if( response == wxID_YES )            {                wxCommandEvent dummy;                OnSaveProject( dummy );            }            else            {                // response == wxID_NO, fall thru            }            break;        }    }    wxFileName pro = fullFileName;    pro.SetExt( ProjectFileExtension );    bool is_new = !wxFileName::IsFileReadable( fullFileName );    // If its a non-existent schematic and caller thinks it exists    if( is_new && !( aCtl & KICTL_CREATE ) )    {        // notify user that fullFileName does not exist, ask if user wants to create it.        wxString ask = wxString::Format( _(                "Schematic '%s' does not exist.  Do you wish to create it?" ),                GetChars( fullFileName )                );        if( !IsOK( this, ask ) )            return false;    }    // unload current project file before loading new    {        delete g_RootSheet;        g_RootSheet = NULL;        CreateScreens();    }    GetScreen()->SetFileName( fullFileName );    g_RootSheet->SetFileName( fullFileName );    g_RootSheet->SetName( "root" );    SetStatusText( wxEmptyString );    ClearMsgPanel();    wxString msg = wxString::Format( _(            "Ready/nProject dir: '%s'/n" ),            GetChars( wxPathOnly( Prj().GetProjectFullName() ) )            );    SetStatusText( msg );    // PROJECT::SetProjectFullName() is an impactful function.  It should only be    // called under carefully considered circumstances.    // The calling code should know not to ask me here to change projects unless//.........这里部分代码省略.........
开发者ID:grtwall,项目名称:kicad-source-mirror,代码行数:101,


示例6: GetScreen

bool SCH_EDIT_FRAME::SaveEEFile( SCH_SCREEN* aScreen, bool aSaveUnderNewName, bool aCreateBackupFile ){    wxString msg;    wxFileName schematicFileName;    bool success;    if( aScreen == NULL )        aScreen = GetScreen();    // If no name exists in the window yet - save as new.    if( aScreen->GetFileName().IsEmpty() )        aSaveUnderNewName = true;    // Construct the name of the file to be saved    schematicFileName = Prj().AbsolutePath( aScreen->GetFileName() );    if( aSaveUnderNewName )    {        wxFileDialog dlg( this, _( "Schematic Files" ),                wxPathOnly( Prj().GetProjectFullName() ),                schematicFileName.GetFullName(), SchematicFileWildcard,                wxFD_SAVE | wxFD_OVERWRITE_PROMPT );        if( dlg.ShowModal() == wxID_CANCEL )            return false;        schematicFileName = dlg.GetPath();        if( schematicFileName.GetExt() != SchematicFileExtension )            schematicFileName.SetExt( SchematicFileExtension );    }    if( !IsWritable( schematicFileName ) )        return false;    // Create backup if requested    if( aCreateBackupFile && schematicFileName.FileExists() )    {        wxFileName backupFileName = schematicFileName;        // Rename the old file to a '.bak' one:        backupFileName.SetExt( SchematicBackupFileExtension );        if( backupFileName.FileExists() )            wxRemoveFile( backupFileName.GetFullPath() );        if( !wxRenameFile( schematicFileName.GetFullPath(), backupFileName.GetFullPath() ) )        {            msg.Printf( _( "Could not save backup of file '%s'" ),                    GetChars( schematicFileName.GetFullPath() ) );            DisplayError( this, msg );        }    }    // Save    wxLogTrace( traceAutoSave,                wxT( "Saving file <" ) + schematicFileName.GetFullPath() + wxT( ">" ) );    FILE* f = wxFopen( schematicFileName.GetFullPath(), wxT( "wt" ) );    if( !f )    {        msg.Printf( _( "Failed to create file '%s'" ),                    GetChars( schematicFileName.GetFullPath() ) );        DisplayError( this, msg );        return false;    }    success = aScreen->Save( f );    if( success )    {        // Delete auto save file.        wxFileName autoSaveFileName = schematicFileName;        autoSaveFileName.SetName( AUTOSAVE_PREFIX_FILENAME + schematicFileName.GetName() );        if( autoSaveFileName.FileExists() )        {            wxLogTrace( traceAutoSave,                        wxT( "Removing auto save file <" ) + autoSaveFileName.GetFullPath() +                        wxT( ">" ) );            wxRemoveFile( autoSaveFileName.GetFullPath() );        }        // Update the screen and frame info.        if( aSaveUnderNewName )            aScreen->SetFileName( schematicFileName.GetFullPath() );        aScreen->ClrSave();        aScreen->ClrModify();        msg.Printf( _( "File %s saved" ), GetChars( aScreen->GetFileName() ) );        SetStatusText( msg, 0 );    }    else    {        DisplayError( this, _( "File write operation failed." ) );    }    fclose( f );//.........这里部分代码省略.........
开发者ID:grtwall,项目名称:kicad-source-mirror,代码行数:101,


示例7: plugin_type

bool PCB_EDIT_FRAME::AppendBoardFile( const wxString& aFullFileName, int aCtl ){    IO_MGR::PCB_FILE_T  pluginType = plugin_type( aFullFileName, aCtl );    PLUGIN::RELEASER pi( IO_MGR::PluginFind( pluginType ) );    // keep trace of existing items, in order to know what are the new items    // (for undo command for instance)    // Tracks are inserted, not append, so mark existing tracks to know what are    // the new tracks    for( TRACK* track = GetBoard()->m_Track; track; track = track->Next() )        track->SetFlags( FLAG0 );    // Other items are append to the item list, so keep trace to the    // last existing item is enough    MODULE* module = GetBoard()->m_Modules.GetLast();    BOARD_ITEM* drawing = GetBoard()->m_Drawings.GetLast();    int zonescount = GetBoard()->GetAreaCount();    // Keep also the count of copper layers, because we can happen boards    // with different copper layers counts,    // and the enabled layers    int initialCopperLayerCount = GetBoard()->GetCopperLayerCount();    LSET initialEnabledLayers = GetBoard()->GetEnabledLayers();    try    {        PROPERTIES  props;        char        xbuf[30];        char        ybuf[30];        // EAGLE_PLUGIN can use this info to center the BOARD, but it does not yet.        sprintf( xbuf, "%d", GetPageSizeIU().x );        sprintf( ybuf, "%d", GetPageSizeIU().y );        props["page_width"]  = xbuf;        props["page_height"] = ybuf;        GetDesignSettings().m_NetClasses.Clear();        pi->Load( aFullFileName, GetBoard(), &props );    }    catch( const IO_ERROR& ioe )    {        for( TRACK* track = GetBoard()->m_Track; track; track = track->Next() )            track->ClearFlags( FLAG0 );        wxString msg = wxString::Format( _(                "Error loading board./n%s" ),                GetChars( ioe.errorText )                );        DisplayError( this, msg );        return false;    }    // Now prepare a block move command to place the new items, and    // prepare the undo command.    BLOCK_SELECTOR& blockmove = GetScreen()->m_BlockLocate;    HandleBlockBegin( NULL, BLOCK_PRESELECT_MOVE, wxPoint( 0, 0) );    PICKED_ITEMS_LIST& blockitemsList = blockmove.GetItems();    PICKED_ITEMS_LIST undoListPicker;    ITEM_PICKER picker( NULL, UR_NEW );    EDA_RECT bbox;          // the new items bounding box, for block move    bool bboxInit = true;   // true until the bounding box is initialized    for( TRACK* track = GetBoard()->m_Track; track; track = track->Next() )    {        if( track->GetFlags() & FLAG0  )        {            track->ClearFlags( FLAG0 );            continue;        }        track->SetFlags( IS_MOVED );        picker.SetItem( track );        undoListPicker.PushItem( picker );        blockitemsList.PushItem( picker );        if( bboxInit )            bbox = track->GetBoundingBox();        else            bbox.Merge( track->GetBoundingBox() );        bboxInit = false;    }    if( module )        module = module->Next();    else        module = GetBoard()->m_Modules;    for( ; module; module = module->Next() )    {        module->SetFlags( IS_MOVED );        picker.SetItem( module );        undoListPicker.PushItem( picker );        blockitemsList.PushItem( picker );        if( bboxInit )//.........这里部分代码省略.........
开发者ID:RyuKojiro,项目名称:kicad-source-mirror,代码行数:101,


示例8: Kiway

bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule ){    MODULE* newModule;    PCB_EDIT_FRAME* frame = (PCB_EDIT_FRAME*) Kiway().Player( FRAME_PCB, false );    if( frame == NULL )     // happens if no board editor opened        return false;    if( aModule == NULL )    {        if( ! frame->GetBoard() || ! frame->GetBoard()->m_Modules )            return false;        aModule = SelectFootprint( frame->GetBoard() );    }    if( aModule == NULL )        return false;    SetCurItem( NULL );    Clear_Pcb( false );    GetBoard()->m_Status_Pcb = 0;    newModule = new MODULE( *aModule );    newModule->SetParent( GetBoard() );    newModule->SetLink( aModule->GetTimeStamp() );    aModule = newModule;    GetBoard()->Add( newModule );    newModule->ClearFlags();    // Clear references to net info, because the footprint editor    // does know any thing about nets handled by the current edited board.    // Morever the main board can change or the net info relative to this main board    // can change while editing this footprint in the footprint editor    for( D_PAD* pad = newModule->Pads(); pad; pad = pad->Next() )        pad->SetNetCode( NETINFO_LIST::UNCONNECTED );    SetCrossHairPosition( wxPoint( 0, 0 ) );    PlaceModule( newModule, NULL );    newModule->SetPosition( wxPoint( 0, 0 ) ); // cursor in GAL may not be initialized at the moment    // Put it on FRONT layer,    // because this is the default in ModEdit, and in libs    if( newModule->GetLayer() != F_Cu )        newModule->Flip( newModule->GetPosition() );    // Put it in orientation 0,    // because this is the default orientation in ModEdit, and in libs    Rotate_Module( NULL, newModule, 0, false );    GetScreen()->ClrModify();    Zoom_Automatique( false );    if( IsGalCanvasActive() )        updateView();    return true;}
开发者ID:antogg,项目名称:kicad-source-mirror,代码行数:61,


示例9: fichier

int WinEDA_GerberFrame::Read_D_Code_File( const wxString & D_Code_FullFileName)/******************************************************************************//* Routine de Lecture d'un fichier de D Codes.	Accepte format standard ou ALSPCB		un ';' demarre un commentaire.	Format Standard:	tool,	 Horiz,		  Vert,	  drill, vitesse, acc. ,Type ; [DCODE (commentaire)]ex:	   1,		  12,		12,		0,		  0,	 0,	  3 ; D10	Format:	Ver  ,  Hor , Type , Tool [,Drill]ex:	0.012, 0.012,  L   , D10	Classe les caract en buf_tmp sous forme de tableau de structures D_CODE.	Retourne:		< 0 si erreur:			-1 = Fichier non trouve			-2 = Erreur lecture fichier		0 si pas de nom de fichier (inits seules)		1 si OK*/{int current_Dcode, ii, dcode_scale;char* ptcar;int dimH, dimV, drill, type_outil, dummy;float fdimH, fdimV, fdrill;char c_type_outil[256];char Line[1024];wxString msg;D_CODE * pt_Dcode;FILE * dest;int layer = GetScreen()->m_Active_Layer;D_CODE ** ListeDCode;	if ( g_GERBER_Descr_List[layer] == NULL )		{		g_GERBER_Descr_List[layer] = new GERBER_Descr(layer);		}	/* Mise a jour de l'echelle gerber : */	dcode_scale = 10;	/* ici unit dcode = mil, unit interne = 0.1 mil							 -> 1 unite dcode = 10 unit PCB */	current_Dcode = 0;	if ( D_Code_FullFileName == "") return 0;	dest = fopen(D_Code_FullFileName.GetData(),"rt");	if (dest == 0)		{		msg = _("File ") + D_Code_FullFileName + _(" not found");		DisplayError(this, msg, 10);		return -1;		}	g_GERBER_Descr_List[layer]->InitToolTable();	ListeDCode = g_GERBER_Descr_List[layer]->m_Aperture_List;	while( fgets(Line,255,dest) != NULL)		{		if (*Line == ';') continue; /* Commentaire */		if (strlen(Line) < 10 ) continue ; /* Probablemant ligne vide */		pt_Dcode = NULL; current_Dcode = 0;		/* Determination du type de fichier D_Code */		ptcar = Line ; ii = 0 ;		while( *ptcar ) if (*(ptcar++) == ',') ii++ ;		if (ii >= 6 )	/* valeurs en mils */			{			sscanf(Line,"%d,%d,%d,%d,%d,%d,%d",&ii,									&dimH, &dimV, &drill,									&dummy,&dummy,									&type_outil);			dimH  = (int)( (dimH * dcode_scale) + 0.5) ;			dimV  = (int)( (dimV * dcode_scale) + 0.5) ;			drill = (int)( (drill * dcode_scale) + 0.5);			if ( ii > 99 ) ii = 99; if ( ii < 1 ) ii = 1;			current_Dcode = D_CODE_Translate[ii-1];			}		else 		/* valeurs en inches a convertir en mils */			{			fdrill = 0 ; current_Dcode = 0 ; fdrill = 0 ;			sscanf(Line,"%f,%f,%1s",&fdimV, &fdimH, c_type_outil);			ptcar = Line ;			while( *ptcar )				{				if (*ptcar == 'D')					{					sscanf(ptcar+1,"%d,%f", &current_Dcode,&fdrill); break ;					}				else ptcar++ ;				}			dimH  = (int)( (fdimH * dcode_scale * 1000) + 0.5);			dimV  = (int)( (fdimV * dcode_scale * 1000) + 0.5);			drill = (int)( (fdrill * dcode_scale * 1000) + 0.5);			type_outil = -1 ;//.........这里部分代码省略.........
开发者ID:BackupTheBerlios,项目名称:kicad-svn,代码行数:101,


示例10: picker

void PCB_EDIT_FRAME::AutoPlaceModule( MODULE* Module, int place_mode, wxDC* DC ){    MODULE*             currModule = NULL;    wxPoint             PosOK;    wxPoint             memopos;    int                 error;    LAYER_ID            lay_tmp_TOP, lay_tmp_BOTTOM;    // Undo: init list    PICKED_ITEMS_LIST   newList;    newList.m_Status = UR_CHANGED;    ITEM_PICKER         picker( NULL, UR_CHANGED );    if( GetBoard()->m_Modules == NULL )        return;    m_canvas->SetAbortRequest( false );    switch( place_mode )    {    case PLACE_1_MODULE:        currModule = Module;        if( currModule == NULL )            return;        currModule->SetIsPlaced( false );        currModule->SetNeedsPlaced( false );        break;    case PLACE_OUT_OF_BOARD:        break;    case PLACE_ALL:        if( !IsOK( this, _( "Footprints NOT LOCKED will be moved" ) ) )            return;        break;    case PLACE_INCREMENTAL:        if( !IsOK( this, _( "Footprints NOT PLACED will be moved" ) ) )            return;        break;    }    memopos = CurrPosition;    lay_tmp_BOTTOM  = g_Route_Layer_BOTTOM;    lay_tmp_TOP     = g_Route_Layer_TOP;    RoutingMatrix.m_GridRouting = (int) GetScreen()->GetGridSize().x;    // Ensure Board.m_GridRouting has a reasonable value:    if( RoutingMatrix.m_GridRouting < Millimeter2iu( 0.25 ) )        RoutingMatrix.m_GridRouting = Millimeter2iu( 0.25 );    // Compute module parameters used in auto place    if( genPlacementRoutingMatrix( GetBoard(), m_messagePanel ) == 0 )        return;    int moduleCount = 0;    Module = GetBoard()->m_Modules;    for( ; Module != NULL; Module = Module->Next() )    {        Module->SetNeedsPlaced( false );        switch( place_mode )        {        case PLACE_1_MODULE:            if( currModule == Module )            {                // Module will be placed, add to undo.                picker.SetItem( currModule );                newList.PushItem( picker );                Module->SetNeedsPlaced( true );            }            break;        case PLACE_OUT_OF_BOARD:            Module->SetIsPlaced( false );            if( Module->IsLocked() )                break;            if( !RoutingMatrix.m_BrdBox.Contains( Module->GetPosition() ) )            {                // Module will be placed, add to undo.                picker.SetItem( Module );                newList.PushItem( picker );                Module->SetNeedsPlaced( true );            }            break;//.........这里部分代码省略.........
开发者ID:PatMart,项目名称:kicad-source-mirror,代码行数:101,


示例11: dc

void WinEDA_GerberFrame::OnSelectOptionToolbar(wxCommandEvent& event)/*****************************************************************/{int id = event.GetId();wxClientDC dc(DrawPanel);	DrawPanel->PrepareGraphicContext(&dc);	switch ( id )	{		case ID_TB_OPTIONS_SHOW_GRID:			m_Draw_Grid = g_ShowGrid = m_OptionsToolBar->GetToolState(id);			DrawPanel->ReDraw(&dc, TRUE);			break;		case ID_TB_OPTIONS_SELECT_UNIT_MM:			UnitMetric = MILLIMETRE;			Affiche_Status_Box();	 /* Reaffichage des coord curseur */			break;		case ID_TB_OPTIONS_SELECT_UNIT_INCH:			UnitMetric = INCHES;			Affiche_Status_Box();	 /* Reaffichage des coord curseur */			break;		case ID_TB_OPTIONS_SHOW_POLAR_COORD:			Affiche_Message(wxEmptyString);			DisplayOpt.DisplayPolarCood = m_OptionsToolBar->GetToolState(id);			Affiche_Status_Box();	 /* Reaffichage des coord curseur */			break;		case ID_TB_OPTIONS_SELECT_CURSOR:			GetScreen()->Trace_Curseur(DrawPanel, &dc);			g_CursorShape = m_OptionsToolBar->GetToolState(id);			GetScreen()->Trace_Curseur(DrawPanel, &dc);			break;		case ID_TB_OPTIONS_SHOW_PADS_SKETCH:			if ( m_OptionsToolBar->GetToolState(id) )			{				m_DisplayPadFill = FALSE;				DisplayOpt.DisplayPadFill = FALSE;			}			else			{				m_DisplayPadFill = TRUE;				DisplayOpt.DisplayPadFill = TRUE;			}			DrawPanel->ReDraw(&dc, TRUE);			break;		case ID_TB_OPTIONS_SHOW_TRACKS_SKETCH:			if( m_OptionsToolBar->GetToolState(id) )			{				m_DisplayPcbTrackFill = FALSE;				DisplayOpt.DisplayPcbTrackFill = FALSE;			}			else			{				m_DisplayPcbTrackFill = TRUE;				DisplayOpt.DisplayPcbTrackFill = TRUE;			}			DrawPanel->ReDraw(&dc, TRUE);			break;		case ID_TB_OPTIONS_SHOW_DCODES:			DisplayOpt.DisplayPadNum = m_OptionsToolBar->GetToolState(id);			DrawPanel->ReDraw(&dc, TRUE);			break;		default:			DisplayError(this, wxT("WinEDA_PcbFrame::OnSelectOptionToolbar error"));			break;	}	SetToolbars();}
开发者ID:BackupTheBerlios,项目名称:kicad-svn,代码行数:77,


示例12: SCH_BASE_FRAME

LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :    SCH_BASE_FRAME( aKiway, aParent, FRAME_SCH_LIB_EDITOR, _( "Library Editor" ),                    wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, LIB_EDIT_FRAME_NAME ){    m_showAxis   = true;            // true to draw axis    SetShowDeMorgan( false );    m_drawSpecificConvert = true;    m_drawSpecificUnit    = false;    m_hotkeysDescrList    = g_Libedit_Hokeys_Descr;    m_editPinsPerPartOrConvert = false;    m_repeatPinStep = DEFAULT_REPEAT_OFFSET_PIN;    m_my_part = NULL;    m_tempCopyComponent = NULL;    // Delayed initialization    if( m_textSize == -1 )        m_textSize = GetDefaultTextSize();    // Initialize grid id to the default value 50 mils:    m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;    wxIcon icon;    icon.CopyFromBitmap( KiBitmap( libedit_icon_xpm ) );    SetIcon( icon );    LoadSettings( config() );    SetScreen( new SCH_SCREEN( aKiway ) );    GetScreen()->m_Center = true;    GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );    SetCrossHairPosition( wxPoint( 0, 0 ) );    // Ensure m_LastGridSizeId is an offset inside the allowed schematic range    if( m_LastGridSizeId < ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000 )        m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;    if( m_LastGridSizeId > ID_POPUP_GRID_LEVEL_1 - ID_POPUP_GRID_LEVEL_1000 )        m_LastGridSizeId = ID_POPUP_GRID_LEVEL_1 - ID_POPUP_GRID_LEVEL_1000;    SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );    GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId  );    if( m_canvas )        m_canvas->SetEnableBlockCommands( true );    ReCreateMenuBar();    ReCreateHToolbar();    ReCreateVToolbar();    // Ensure the current alias name is valid if a part is loaded    // Sometimes it is not valid. This is the case    // when a part value (the part lib name), or the alias list was modified    // during a previous session and the modifications not saved in lib.    // Reopen libedit in a new session gives a non valid m_aliasName    // because the curr part is reloaded from the library (and this is the unmodified part)    // and the old alias name (from the previous edition) can be invalid    LIB_PART* part = GetCurPart();    if( part == NULL )        m_aliasName.Empty();    else if( m_aliasName != part->GetName() )    {        LIB_ALIAS* alias = part->GetAlias( m_aliasName );        if( !alias )            m_aliasName = part->GetName();    }    CreateOptionToolbar();    DisplayLibInfos();    DisplayCmpDoc();    UpdateAliasSelectList();    UpdatePartSelectList();    m_auimgr.SetManagedWindow( this );    EDA_PANEINFO horiz;    horiz.HorizontalToolbarPane();    EDA_PANEINFO vert;    vert.VerticalToolbarPane();    EDA_PANEINFO mesg;    mesg.MessageToolbarPane();    m_auimgr.AddPane( m_mainToolBar,                      wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );    m_auimgr.AddPane( m_drawToolBar,                      wxAuiPaneInfo( vert ).Name( wxT( "m_VToolBar" ) ).Right() );    m_auimgr.AddPane( m_optionsToolBar,                      wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() );    m_auimgr.AddPane( m_canvas,                      wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );//.........这里部分代码省略.........
开发者ID:blairbonnett-mirrors,项目名称:kicad,代码行数:101,


示例13: BlockCommand

bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* aDC, EDA_KEY aKey, const wxPoint& aPosition,       int aExplicitCommand ){    BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate;    if( ( block->GetCommand() != BLOCK_IDLE ) || ( block->GetState() != STATE_NO_BLOCK ) )        return false;    if( aExplicitCommand == 0 )        block->SetCommand( (BLOCK_COMMAND_T) BlockCommand( aKey ) );    else        block->SetCommand( (BLOCK_COMMAND_T) aExplicitCommand );    if( block->GetCommand() == 0 )        return false;    switch( block->GetCommand() )    {    case BLOCK_IDLE:        break;    case BLOCK_MOVE:                // Move    case BLOCK_DRAG:                // Drag (block defined)    case BLOCK_DRAG_ITEM:           // Drag from a drag item command    case BLOCK_DUPLICATE:           // Duplicate    case BLOCK_DUPLICATE_AND_INCREMENT: // Duplicate and increment relevant references    case BLOCK_DELETE:              // Delete    case BLOCK_COPY:                // Copy    case BLOCK_ROTATE:              // Rotate 90 deg    case BLOCK_FLIP:                // Flip    case BLOCK_ZOOM:                // Window Zoom    case BLOCK_MIRROR_X:    case BLOCK_MIRROR_Y:            // mirror    case BLOCK_PRESELECT_MOVE:      // Move with preselection list        block->InitData( m_canvas, aPosition );        break;    case BLOCK_PASTE:        block->InitData( m_canvas, aPosition );        block->SetLastCursorPosition( wxPoint( 0, 0 ) );        InitBlockPasteInfos();        if( block->GetCount() == 0 )      // No data to paste        {            DisplayError( this, wxT( "No block to paste" ), 20 );            GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE );            m_canvas->SetMouseCaptureCallback( NULL );            block->SetState( STATE_NO_BLOCK );            block->SetMessageBlock( this );            return true;        }        if( !m_canvas->IsMouseCaptured() )        {            block->ClearItemsList();            DisplayError( this,                          wxT( "EDA_DRAW_FRAME::HandleBlockBegin() Err: m_mouseCaptureCallback NULL" ) );            block->SetState( STATE_NO_BLOCK );            block->SetMessageBlock( this );            return true;        }        block->SetState( STATE_BLOCK_MOVE );        m_canvas->CallMouseCapture( aDC, aPosition, false );        break;    default:        {            wxString msg;            msg << wxT( "EDA_DRAW_FRAME::HandleBlockBegin() error: Unknown command " ) <<            block->GetCommand();            DisplayError( this, msg );        }        break;    }    block->SetMessageBlock( this );    return true;}
开发者ID:cpavlina,项目名称:kicad,代码行数:79,


示例14: GetCurPart

void LIB_EDIT_FRAME::OnUpdateRedo( wxUpdateUIEvent& event ){    event.Enable( GetCurPart() && GetScreen() &&                  GetScreen()->GetRedoCommandCount() != 0 && !IsEditingDrawItem() );}
开发者ID:blairbonnett-mirrors,项目名称:kicad,代码行数:5,


示例15: wxGetMousePosition

//.........这里部分代码省略.........        }        break;    case ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM:        if( m_drawItem == NULL )            break;        m_canvas->CrossHairOff( &dc );        if( m_drawItem->Type() == LIB_FIELD_T )        {            EditField( (LIB_FIELD*) m_drawItem );        }        m_canvas->MoveCursorToCrossHair();        m_canvas->CrossHairOn( &dc );        break;    case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM:    case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM:    case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM:    {        if( !m_drawItem || m_drawItem->Type() != LIB_PIN_T )            break;        LIB_PART*      part = GetCurPart();        SaveCopyInUndoList( part );        GlobalSetPins( (LIB_PIN*) m_drawItem, id );        m_canvas->MoveCursorToCrossHair();        m_canvas->Refresh();    }    break;    case ID_POPUP_ZOOM_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_ZOOM );        HandleBlockEnd( &dc );        break;    case ID_POPUP_DELETE_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_DELETE );        m_canvas->MoveCursorToCrossHair();        HandleBlockEnd( &dc );        break;    case ID_POPUP_COPY_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_COPY );        m_canvas->MoveCursorToCrossHair();        HandleBlockEnd( &dc );        break;    case ID_POPUP_SELECT_ITEMS_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_SELECT_ITEMS_ONLY );        m_canvas->MoveCursorToCrossHair();        HandleBlockEnd( &dc );        break;    case ID_POPUP_MIRROR_Y_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_MIRROR_Y );        m_canvas->MoveCursorToCrossHair();        HandleBlockPlace( &dc );        break;    case ID_POPUP_MIRROR_X_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_MIRROR_X );        m_canvas->MoveCursorToCrossHair();        HandleBlockPlace( &dc );        break;    case ID_POPUP_ROTATE_BLOCK:        m_canvas->SetAutoPanRequest( false );        GetScreen()->m_BlockLocate.SetCommand( BLOCK_ROTATE );        m_canvas->MoveCursorToCrossHair();        HandleBlockPlace( &dc );        break;    case ID_POPUP_PLACE_BLOCK:        m_canvas->SetAutoPanRequest( false );        m_canvas->MoveCursorToCrossHair();        HandleBlockPlace( &dc );        break;    default:        DisplayError( this, wxT( "LIB_EDIT_FRAME::Process_Special_Functions error" ) );        break;    }    m_canvas->SetIgnoreMouseEvents( false );    if( GetToolId() == ID_NO_TOOL_SELECTED )        m_lastDrawItem = NULL;}
开发者ID:blairbonnett-mirrors,项目名称:kicad,代码行数:101,


示例16: switch

bool EDA_DRAW_FRAME::GeneralControlKeyMovement( int aHotKey, wxPoint *aPos,                                                bool aSnapToGrid ){    bool key_handled = false;    // If requested snap the current position to the grid    if( aSnapToGrid )        *aPos = GetNearestGridPosition( *aPos );    switch( aHotKey )    {    // All these keys have almost the same treatment    case GR_KB_CTRL | WXK_NUMPAD8:    case GR_KB_CTRL | WXK_UP:    case GR_KB_CTRL | WXK_NUMPAD2:    case GR_KB_CTRL | WXK_DOWN:    case GR_KB_CTRL | WXK_NUMPAD4:    case GR_KB_CTRL | WXK_LEFT:    case GR_KB_CTRL | WXK_NUMPAD6:    case GR_KB_CTRL | WXK_RIGHT:    case WXK_NUMPAD8:    case WXK_UP:    case WXK_NUMPAD2:    case WXK_DOWN:    case WXK_NUMPAD4:    case WXK_LEFT:    case WXK_NUMPAD6:    case WXK_RIGHT:        key_handled = true;        {            /* Here's a tricky part: when doing cursor key movement, the             * 'previous' point should be taken from memory, *not* from the             * freshly computed position in the event. Otherwise you can't do             * sub-pixel movement. The m_movingCursorWithKeyboard oneshot 'eats'             * the automatic motion event generated by cursor warping */            wxRealPoint gridSize = GetScreen()->GetGridSize();            *aPos = GetCrossHairPosition();            // Bonus: ^key moves faster (x10)            switch( aHotKey )            {            case GR_KB_CTRL|WXK_NUMPAD8:            case GR_KB_CTRL|WXK_UP:                aPos->y -= KiROUND( 10 * gridSize.y );                break;            case GR_KB_CTRL|WXK_NUMPAD2:            case GR_KB_CTRL|WXK_DOWN:                aPos->y += KiROUND( 10 * gridSize.y );                break;            case GR_KB_CTRL|WXK_NUMPAD4:            case GR_KB_CTRL|WXK_LEFT:                aPos->x -= KiROUND( 10 * gridSize.x );                break;            case GR_KB_CTRL|WXK_NUMPAD6:            case GR_KB_CTRL|WXK_RIGHT:                aPos->x += KiROUND( 10 * gridSize.x );                break;            case WXK_NUMPAD8:            case WXK_UP:                aPos->y -= KiROUND( gridSize.y );                break;            case WXK_NUMPAD2:            case WXK_DOWN:                aPos->y += KiROUND( gridSize.y );                break;            case WXK_NUMPAD4:            case WXK_LEFT:                aPos->x -= KiROUND( gridSize.x );                break;            case WXK_NUMPAD6:            case WXK_RIGHT:                aPos->x += KiROUND( gridSize.x );                break;            default: /* Can't happen since we entered the statement */                break;            }            m_canvas->MoveCursor( *aPos );            m_movingCursorWithKeyboard = true;        }        break;    default:        break;    }    return key_handled;}
开发者ID:cpavlina,项目名称:kicad,代码行数:96,


示例17: GetCurItem

BOARD_ITEM* FOOTPRINT_EDIT_FRAME::ModeditLocateAndDisplay( int aHotKeyCode ){    BOARD_ITEM* item = GetCurItem();    if( GetBoard()->m_Modules == NULL )        return NULL;    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    {        scanList = GENERAL_COLLECTOR::ModulesAndTheirItems;    }    m_Collector->Collect( GetBoard(), scanList, GetScreen()->RefPos( true ), guide );    /* Remove redundancies: when an item is found, we can remove the module from list */    if( m_Collector->GetCount() > 1 )    {        for( int ii = 0; ii < m_Collector->GetCount(); ii++ )        {            item = (*m_Collector)[ii];            if( item->Type() != PCB_MODULE_T )                continue;            m_Collector->Remove( ii );            ii--;        }    }    if( m_Collector->GetCount() <= 1 )    {        item = (*m_Collector)[0];        SetCurItem( item );    }    else    // we can't figure out which item user wants, do popup menu so user can choose    {        wxMenu      itemMenu;        /* Give a title to the selection menu. This is also a cancel menu item **/        wxMenuItem* item_title = new wxMenuItem( &itemMenu, -1, _( "Selection Clarification" ) );#ifdef __WINDOWS__        wxFont      bold_font( *wxNORMAL_FONT );        bold_font.SetWeight( wxFONTWEIGHT_BOLD );        bold_font.SetStyle( wxFONTSTYLE_ITALIC );        item_title->SetFont( bold_font );#endif        itemMenu.Append( item_title );        itemMenu.AppendSeparator();        int limit = std::min( MAX_ITEMS_IN_PICKER, m_Collector->GetCount() );        for( int ii = 0; ii<limit; ++ii )        {            item = (*m_Collector)[ii];            wxString    text = item->GetSelectMenuText();            BITMAP_DEF  xpm  = item->GetMenuImage();            AddMenuItem( &itemMenu,                         ID_POPUP_PCB_ITEM_SELECTION_START + ii,                         text,                         KiBitmap( xpm ) );        }        // this menu's handler is void        // PCB_BASE_FRAME::ProcessItemSelection()        // and it calls SetCurItem() which in turn calls DisplayInfo() on the        // item.        m_canvas->SetAbortRequest( true );   // changed in false if an item        PopupMenu( &itemMenu );              // m_AbortRequest = false if an item is selected        m_canvas->MoveCursorToCrossHair();        m_canvas->SetIgnoreMouseEvents( false );        // The function ProcessItemSelection() has set the current item, return it.        item = GetCurItem();    }    if( item )    {        SetMsgPanel( item );    }    return item;}
开发者ID:james-sakalaukus,项目名称:kicad,代码行数:99,



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


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