drawFigureEntity.h File Reference

#include "ObjectStructure.h"

Include dependency graph for drawFigureEntity.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int drawFigureEntity (sciPointObj *pObj)


Function Documentation

int drawFigureEntity ( sciPointObj pObj  ) 

Routine which draw a figure object

Parameters:
pObj the pointer on the figure object

xclear will properly upgrade background if necessary

Definition at line 15 of file drawFigureEntity.c.

References sciFigure::auto_redraw, C2F, BCG::CurDrawFunction, dr(), GetDriverId(), L, MaybeSetWinhdc(), NULL, sciFigure::number, PD0, pFIGURE_FEATURE, PI0, sciFigure::pixmap, tagSons::pointobj, tagSons::pprev, ReleaseWinHdc(), sciDrawObj(), sciGetBackground(), sciGetInfoMessage(), sciGetLastSons(), sciGetScilabXgc(), and sciGetVisibility().

Referenced by sciDrawObj().

00016 {
00017   sciFigure * ppFigure   = pFIGURE_FEATURE(pObj) ;
00018   sciSons   * curSon     = NULL ;
00019   int         curWinNum  = 0 ;
00020   int         verbose    = 0 ;
00021   int         narg       = 0 ;
00022   double      dv         = 0 ;
00023   int         background = sciGetBackground (pObj) ;
00024 
00025   if( !ppFigure->auto_redraw ) { return 0 ; }
00026 
00028 #ifdef _MSC_VER
00029   flag_DO = MaybeSetWinhdc() ;
00030 #endif
00031 
00032   /* select the right figure for drawing to avoid displaying in a wrong window */
00033   C2F(dr)("xget","window",&verbose,&curWinNum,&narg,PI0,PI0,PI0,&dv,&dv,&dv,&dv,5L,7L);
00034   C2F(dr)("xset","window",&(ppFigure->number),PI0,PI0,PI0,PI0,PI0,&dv,&dv,&dv,&dv,5L,7L);
00035 
00036   C2F(dr)("xset","pixmap",&(ppFigure->pixmap),PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
00037 
00038   if ( ppFigure->pixmap == 0 || GetDriverId() != 0 )
00039   {
00040     /* Change background BEFORE xclear F.Leray */
00041     C2F(dr)("xset","background",&background,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,7L); 
00042     C2F (dr) ("xclear", "v", PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, PD0,0L, 0L);
00043   }
00044   else
00045   {
00046     C2F (dr) ("xset","wwpc", PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, PD0,0L, 0L);
00047   }
00048 
00049   C2F(dr)("xset","background",&background,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,7L); /* Change background F.Leray*/
00050   C2F(dr)("xset","alufunction",&(sciGetScilabXgc(pObj)->CurDrawFunction),PI0,PI0,PI0,
00051     PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
00052 
00053 #ifdef _MSC_VER
00054   if ( flag_DO == 1) { ReleaseWinHdc(); }
00055 #endif
00056 
00057   /* STOP HERE if figure is invisible: */
00058   if ( !sciGetVisibility(pObj) ) { return 0 ; }
00059 
00060   curSon = sciGetLastSons(pObj);
00061   while ( curSon != NULL )
00062   {
00063     sciDrawObj( curSon->pointobj ) ;
00064     curSon = curSon->pprev;
00065   }
00066 
00067   /* draw the info Message */
00068   C2F(dr)("xinfo",sciGetInfoMessage(pObj),PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,6L,0L);
00069 
00070   /* return to the current window */
00071   C2F(dr)("xset","window",&curWinNum,PI0,PI0,PI0,PI0,PI0,&dv,&dv,&dv,&dv,5L,7L);
00072 
00073   return 0 ;
00074 }

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Sun Mar 4 15:47:27 2007 for Scilab [trunk] by  doxygen 1.5.1