void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_width ) { if( !m_showBorderAndTitleBlock ) return; const PAGE_INFO& pageInfo = GetPageSettings(); wxSize pageSize = pageInfo.GetSizeMils(); int ii, jj, xg, yg, ipas, gxpas, gypas; wxPoint pos; int refx, refy; EDA_Colors Color; wxString Line; Ki_WorkSheetData* WsItem; int scale = m_internalUnits / 1000; wxSize size( SIZETEXT * scale, SIZETEXT * scale ); #if defined(KICAD_GOST) wxSize size2( SIZETEXT * scale * 2, SIZETEXT * scale * 2); wxSize size3( SIZETEXT * scale * 3, SIZETEXT * scale * 3); wxSize size1_5( SIZETEXT * scale * 1.5, SIZETEXT * scale * 1.5); #endif wxSize size_ref( SIZETEXT_REF * scale, SIZETEXT_REF * scale ); wxString msg; int UpperLimit = VARIABLE_BLOCK_START_POSITION; int width = line_width; Color = RED; // if not printing, draw the page limits: if( !screen->m_IsPrinting && g_ShowPageLimits ) { GRSetDrawMode( DC, GR_COPY ); GRRect( m_canvas->GetClipBox(), DC, 0, 0, pageSize.x * scale, pageSize.y * scale, width, g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY ); } GRSetDrawMode( DC, GR_COPY ); // Draw the border. // Upper left corner refx = pageInfo.GetLeftMarginMils(); refy = pageInfo.GetTopMarginMils(); // lower right corner xg = pageSize.x - pageInfo.GetRightMarginMils(); yg = pageSize.y - pageInfo.GetBottomMarginMils(); #if defined(KICAD_GOST) GRRect( m_canvas->GetClipBox(), DC, refx * scale, refy * scale, xg * scale, yg * scale, width, Color ); #else for( ii = 0; ii < 2; ii++ ) { GRRect( m_canvas->GetClipBox(), DC, refx * scale, refy * scale, xg * scale, yg * scale, width, Color ); refx += GRID_REF_W; refy += GRID_REF_W; xg -= GRID_REF_W; yg -= GRID_REF_W; } #endif // Draw the reference legends. refx = pageInfo.GetLeftMarginMils(); #if defined(KICAD_GOST) refy = pageSize.y - pageInfo.GetBottomMarginMils(); // Lower left corner for( WsItem = &WS_Segm1_LU; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = ( refx - WsItem->m_Posx ) * scale; pos.y = ( refy - WsItem->m_Posy ) * scale; msg.Empty(); switch( WsItem->m_Type ) { case WS_CADRE: break; case WS_PODPIS_LU: if( WsItem->m_Legende ) msg = WsItem->m_Legende; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_VERT, size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, false, false ); break; case WS_SEGMENT_LU: xg = pageInfo.GetLeftMarginMils() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } } refy = pageInfo.GetBottomMarginMils(); // Left Top corner for( WsItem = &WS_Segm1_LT; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = ( refx + WsItem->m_Posx ) * scale; pos.y = ( refy + WsItem->m_Posy ) * scale; msg.Empty(); switch( WsItem->m_Type ) { case WS_SEGMENT_LT: xg = pageInfo.GetLeftMarginMils() + WsItem->m_Endx; yg = pageInfo.GetBottomMarginMils() + WsItem->m_Endy; GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } } #else // Upper left corner refy = pageInfo.GetTopMarginMils(); // lower right corner xg = pageSize.x - pageInfo.GetRightMarginMils(); yg = pageSize.y - pageInfo.GetBottomMarginMils(); ipas = ( xg - refx ) / PAS_REF; gxpas = ( xg - refx ) / ipas; for( ii = refx + gxpas, jj = 1; ipas > 0; ii += gxpas, jj++, ipas-- ) { Line.Printf( wxT( "%d" ), jj ); if( ii < xg - PAS_REF / 2 ) { GRLine( m_canvas->GetClipBox(), DC, ii * scale, refy * scale, ii * scale, ( refy + GRID_REF_W ) * scale, width, Color ); } DrawGraphicText( m_canvas, DC, wxPoint( ( ii - gxpas / 2 ) * scale, ( refy + GRID_REF_W / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); if( ii < xg - PAS_REF / 2 ) { GRLine( m_canvas->GetClipBox(), DC, ii * scale, yg * scale, ii * scale, ( yg - GRID_REF_W ) * scale, width, Color ); } DrawGraphicText( m_canvas, DC, wxPoint( ( ii - gxpas / 2 ) * scale, ( yg - GRID_REF_W / 2) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } ipas = ( yg - refy ) / PAS_REF; gypas = ( yg - refy ) / ipas; for( ii = refy + gypas, jj = 0; ipas > 0; ii += gypas, jj++, ipas-- ) { if( jj < 26 ) Line.Printf( wxT( "%c" ), jj + 'A' ); else // I hope 52 identifiers are enought... Line.Printf( wxT( "%c" ), 'a' + jj - 26 ); if( ii < yg - PAS_REF / 2 ) { GRLine( m_canvas->GetClipBox(), DC, refx * scale, ii * scale, ( refx + GRID_REF_W ) * scale, ii * scale, width, Color ); } DrawGraphicText( m_canvas, DC, wxPoint( ( refx + GRID_REF_W / 2 ) * scale, ( ii - gypas / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); if( ii < yg - PAS_REF / 2 ) { GRLine( m_canvas->GetClipBox(), DC, xg * scale, ii * scale, ( xg - GRID_REF_W ) * scale, ii * scale, width, Color ); } DrawGraphicText( m_canvas, DC, wxPoint( ( xg - GRID_REF_W / 2 ) * scale, ( ii - gxpas / 2 ) * scale ), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } #endif #if defined(KICAD_GOST) // lower right corner refx = pageSize.x - pageInfo.GetRightMarginMils(); refy = pageSize.y - pageInfo.GetBottomMarginMils(); if( screen->m_ScreenNumber == 1 ) { for( WsItem = &WS_Date; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = (refx - WsItem->m_Posx) * scale; pos.y = (refy - WsItem->m_Posy) * scale; msg.Empty(); switch( WsItem->m_Type ) { case WS_DATE: break; case WS_REV: break; case WS_KICAD_VERSION: break; case WS_PODPIS: if( WsItem->m_Legende ) msg = WsItem->m_Legende; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_SIZESHEET: break; case WS_IDENTSHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; if( screen->m_NumberOfScreen > 1 ) msg << screen->m_ScreenNumber; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_SHEETS: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_NumberOfScreen; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_COMPANY_NAME: msg = GetTitleBlock().GetCompany(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_TITLE: msg = GetTitleBlock().GetTitle(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_COMMENT1: msg = GetTitleBlock().GetComment1(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; DrawGraphicText( m_canvas, DC, pos, Color, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_COMMENT2: msg = GetTitleBlock().GetComment2(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_COMMENT3: msg = GetTitleBlock().GetComment3(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_COMMENT4: msg = GetTitleBlock().GetComment4(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_UPPER_SEGMENT: case WS_LEFT_SEGMENT: WS_MostUpperLine.m_Posy = WS_MostUpperLine.m_Endy = WS_MostLeftLine.m_Posy = STAMP_OY; pos.y = ( refy - WsItem->m_Posy ) * scale; case WS_SEGMENT: xg = pageSize.x - pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } } } else { for( WsItem = &WS_CADRE_D; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = ( refx - WsItem->m_Posx ) * scale; pos.y = ( refy - WsItem->m_Posy ) * scale; msg.Empty(); switch( WsItem->m_Type ) { case WS_CADRE: // Begin list number > 1 msg = GetTitleBlock().GetComment1(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; DrawGraphicText( m_canvas, DC, pos, Color, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_PODPIS_D: if( WsItem->m_Legende ) msg = WsItem->m_Legende; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_IDENTSHEET_D: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_ScreenNumber; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_LEFT_SEGMENT_D: pos.y = ( refy - WsItem->m_Posy ) * scale; case WS_SEGMENT_D: xg = pageSize.x - pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } } } #else refx = pageSize.x - pageInfo.GetRightMarginMils() - GRID_REF_W; refy = pageSize.y - pageInfo.GetBottomMarginMils() - GRID_REF_W; for( WsItem = &WS_Date; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = (refx - WsItem->m_Posx) * scale; pos.y = (refy - WsItem->m_Posy) * scale; msg.Empty(); switch( WsItem->m_Type ) { case WS_DATE: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetDate(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, true ); break; case WS_REV: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetRevision(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); break; case WS_KICAD_VERSION: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += g_ProductName + wxGetApp().GetAppName(); msg += wxT( " " ) + GetBuildVersion(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_SIZESHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += pageInfo.GetType(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_IDENTSHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << screen->m_ScreenNumber << wxT( "/" ) << screen->m_NumberOfScreen; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_FILENAME: { wxString fname, fext; wxFileName::SplitPath( screen->GetFileName(), (wxString*) NULL, &fname, &fext ); if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg << fname << wxT( "." ) << fext; DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); } break; case WS_FULLSHEETNAME: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetScreenDesc(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); break; case WS_COMPANY_NAME: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetCompany(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; case WS_TITLE: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetTitle(); DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); break; case WS_COMMENT1: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetComment1(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; case WS_COMMENT2: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetComment2(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; case WS_COMMENT3: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetComment3(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; case WS_COMMENT4: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetTitleBlock().GetComment4(); if( !msg.IsEmpty() ) { DrawGraphicText( m_canvas, DC, pos, Color, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; case WS_UPPER_SEGMENT: if( UpperLimit == 0 ) break; case WS_LEFT_SEGMENT: WS_MostUpperLine.m_Posy = WS_MostUpperLine.m_Endy = WS_MostLeftLine.m_Posy = UpperLimit; pos.y = (refy - WsItem->m_Posy) * scale; case WS_SEGMENT: xg = pageSize.x - GRID_REF_W - pageInfo.GetRightMarginMils() - WsItem->m_Endx; yg = pageSize.y - GRID_REF_W - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, xg * scale, yg * scale, width, Color ); break; } } #endif }
void WinEDA_DrawFrame::TraceWorkSheet(wxDC * DC, BASE_SCREEN * screen, int marge) /*********************************************************************************/ /* Trace l'encadrement de la feuille de travail et le cartouche */ { if ( ! m_Draw_Sheet_Ref ) return; int ii, jj, xg , yg, ipas, gxpas, gypas; wxPoint pos; int refx, refy,Color; char Line[256]; WorkSheet * WsItem; int scale = m_InternalUnits/1000; wxSize size(SIZETEXT*scale,SIZETEXT*scale); wxSize size_ref(SIZETEXT_REF*scale,SIZETEXT_REF*scale); wxString msg; Color = RED; GRSetDrawMode(DC, GR_COPY); if(screen->m_CurrentSheet == NULL) { DisplayError(this, "WinEDA_DrawFrame::TraceWorkSheet error: m_CurrentSheet NULL"); return; } /* trace de la bordure */ refx = refy = marge; /* Start Point */ xg = screen->m_CurrentSheet->m_Size.x - marge; yg = screen->m_CurrentSheet->m_Size.y - marge; for ( ii = 0; ii < 2 ; ii++ ) { GRRect(&DrawPanel->m_ClipBox, DC, refx * scale, refy * scale, xg * scale, yg * scale, Color); refx += GRID_REF_W; refy += GRID_REF_W; xg -= GRID_REF_W; yg -= GRID_REF_W; } /* trace des reperes */ refx = refy = marge; /* Start Point */ xg = screen->m_CurrentSheet->m_Size.x - marge; yg = screen->m_CurrentSheet->m_Size.y - marge; /* Trace des reperes selon l'axe X */ ipas = (xg - refx) / PAS_REF; gxpas = ( xg - refx) / ipas; for ( ii = refx + gxpas, jj = 1; ipas > 0 ; ii += gxpas , jj++, ipas--) { sprintf(Line,"%d",jj); if( ii < xg - PAS_REF/2 ) { GRLine(&DrawPanel->m_ClipBox, DC, ii * scale, refy * scale, ii * scale, (refy + GRID_REF_W) * scale, Color); } DrawGraphicText(DrawPanel, DC, wxPoint( (ii - gxpas/2) * scale, (refy + GRID_REF_W/2) * scale), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); if( ii < xg - PAS_REF/2 ) { GRLine(&DrawPanel->m_ClipBox, DC,ii * scale, yg * scale, ii * scale, (yg - GRID_REF_W) * scale, Color); } DrawGraphicText(DrawPanel, DC, wxPoint( (ii - gxpas/2) * scale, (yg - GRID_REF_W/2) * scale), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); } /* Trace des reperes selon l'axe Y */ ipas = (yg - refy) / PAS_REF; gypas = ( yg - refy) / ipas; for ( ii = refy + gypas, jj = 0; ipas > 0 ; ii += gypas , jj++, ipas--) { if( jj < 26 ) Line[0] = jj + 'A'; else Line[0] = 'a' + jj - 26; Line[1] = 0; if( ii < yg - PAS_REF/2 ) { GRLine(&DrawPanel->m_ClipBox, DC, refx * scale, ii * scale, (refx + GRID_REF_W) * scale, ii * scale, Color); } DrawGraphicText(DrawPanel, DC, wxPoint((refx + GRID_REF_W/2) * scale, (ii - gypas/2) * scale), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); if( ii < yg - PAS_REF/2 ) { GRLine(&DrawPanel->m_ClipBox, DC, xg * scale, ii * scale, (xg - GRID_REF_W) * scale, ii * scale, Color); } DrawGraphicText(DrawPanel, DC, wxPoint((xg - GRID_REF_W/2) * scale, (ii - gxpas/2) * scale), Color, Line, TEXT_ORIENT_HORIZ, size_ref, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); } /* Trace du cartouche */ refx = screen->m_CurrentSheet->m_Size.x - GRID_REF_W - marge; refy = screen->m_CurrentSheet->m_Size.y - GRID_REF_W - marge; for( WsItem = &WS_Date; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = (refx - WsItem->posx)* scale; pos.y = (refy - WsItem->posy)* scale; msg = ""; switch( WsItem->type ) { case WS_DATE: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Date; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_REV: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Revision; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_LICENCE: if(WsItem->Legende) msg = WsItem->Legende; msg += g_ProductName + Main_Title; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_SIZESHEET: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_CurrentSheet->m_Name; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_IDENTSHEET: if(WsItem->Legende) msg = WsItem->Legende; msg << screen->m_SheetNumber << "/" << screen->m_NumberOfSheet; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_NAMECOMP: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Company; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_TITLE: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Title; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_COMMENT1: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Commentaire1; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_COMMENT2: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Commentaire2; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_COMMENT3: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Commentaire3; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_COMMENT4: if(WsItem->Legende) msg = WsItem->Legende; msg += screen->m_Commentaire4; DrawGraphicText(DrawPanel, DC, pos, Color, msg.GetData(), TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); break; case WS_SEGMENT: xg = screen->m_CurrentSheet->m_Size.x - GRID_REF_W - marge - WsItem->endx; yg = screen->m_CurrentSheet->m_Size.y - GRID_REF_W - marge - WsItem->endy; GRLine(&DrawPanel->m_ClipBox, DC, pos.x, pos.y, xg * scale, yg * scale, Color); break; } } }