wgraph.h File Reference

#include <windows.h>
#include <windowsx.h>
#include <commdlg.h>
#include <shellapi.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdarg.h>
#include "version.h"
#include "wresource.h"
#include "wcommon.h"
#include "scigraphic.h"
#include "DestroyObjects.h"
#include "GetProperty.h"
#include "DrawObjects.h"
#include "Events.h"
#include "Xcall1.h"

Include dependency graph for wgraph.h:

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

Go to the source code of this file.

Defines

#define MAXPRINTF   512

Functions

void scig_replay_hdc (char c, integer win_num, HDC hdc, int width, int height, int scale)
void set_delete_win_mode ()
int C2F() deletewin (integer *number)
void CopyToClipboardEMF (struct BCG *ScilabGC)
void CopyToClipboardBitmap (struct BCG *ScilabGC)
void SciViewportMove (ScilabGC, x, y)
void SciViewportGet (ScilabXgc, x, y)
void GPopupResize (struct BCG *ScilabXgc, int *width, int *height)
static void ScilabPaintWithBitmap (HWND hwnd, HDC hdc, struct BCG *ScilabGC)
static void sci_extra_margin (HDC hdc_c, struct BCG *ScilabGC)
void ScilabPaint (HWND hwnd, struct BCG *ScilabGC)
static void ScilabNoPaint (HWND hwnd, struct BCG *ScilabGC)
int ScilabGResize (HWND hwnd, struct BCG *ScilabGC, WPARAM wParam)
void HideGraphToolBar (struct BCG *ScilabGC)
void ShowGraphToolBar (struct BCG *ScilabGC)
int GetScreenProperty (char *prop, char *value)
integer GetCurrentFigureWindows (void)
void SetCurrentFigureWindows (integer win)
HDC TryToGetDC (HWND hWnd)
int Interface_XS2BMP (int figurenum, char *filename)
int Interface_XS2EMF (int figurenum, char *filename)
HDC GetPrinterDC (void)

Variables

static int emulate_backing_store = 1


Define Documentation

#define MAXPRINTF   512

Definition at line 39 of file wgraph.h.


Function Documentation

void CopyToClipboardBitmap ( struct BCG ScilabGC  ) 

Definition at line 113 of file ExportBmpEmf.c.

References BCG::CurWindow, BCG::CWindow, BCG::CWindowHeight, BCG::CWindowWidth, FALSE, GetCurrentFigureWindows(), hdc, MSG_ERROR20, MSG_ERROR36, MSG_WARNING16, NULL, scig_replay_hdc(), SetCurrentFigureWindows(), Setscig_buzyState(), SW_SHOWNORMAL, tagGW::Title, TRUE, and TryToGetDC().

Referenced by InterfaceWindowsClipboard(), scig_h_copyclip1(), and SendGraphMacro().

00114 {
00115         LPGW lpgw;
00116         HDC hmemDC;
00117         HBITMAP hBitmap;
00118         
00119         HWND hwnd;
00120         HDC hdc=NULL;
00121         integer SaveCurrentWindow=0;
00122 
00123         SaveCurrentWindow=GetCurrentFigureWindows();
00124 
00125         Setscig_buzyState(TRUE);
00126 
00127         SetCurrentFigureWindows (ScilabGC->CurWindow);
00128 
00129         /* view the window */
00130         lpgw = ScilabGC->lpgw;
00131         hwnd = ScilabGC->CWindow;
00132 
00133         if (IsIconic (hwnd))   ShowWindow (hwnd, SW_SHOWNORMAL);
00134         BringWindowToTop (hwnd);
00135         UpdateWindow (hwnd);
00136 
00137         /* get the context */
00138         hdc = TryToGetDC (hwnd);
00139 
00140         /* make a bitmap and copy it there */
00141         if (hdc)
00142         {
00144                 scig_replay_hdc ('C', ScilabGC->CurWindow, hdc, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight, 1);
00145                 ReleaseDC (hwnd, hdc);
00146 
00147                 hmemDC = CreateCompatibleDC (hdc);
00148                 hBitmap = CreateCompatibleBitmap (hdc, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight);
00149 
00150                 if (hBitmap)
00151                 {
00152                         SelectBitmap (hmemDC, hBitmap);
00153                         scig_replay_hdc ('C', ScilabGC->CurWindow, hmemDC,ScilabGC->CWindowWidth,ScilabGC->CWindowHeight, 1);
00154 
00155                         OpenClipboard (hwnd);
00156                         EmptyClipboard ();
00157                         SetClipboardData (CF_BITMAP, hBitmap);
00158                         CloseClipboard ();
00159 
00160                         DeleteDC(hmemDC);
00161                         DeleteBitmap(hBitmap);
00162                 }
00163                 else
00164                 {
00165                         MessageBeep (MB_ICONHAND);
00166                         MessageBox (hwnd, MSG_WARNING16,lpgw->Title, MB_ICONHAND | MB_OK);
00167                 }
00168         }
00169         else
00170         {
00171                 MessageBox(NULL,MSG_ERROR36,MSG_ERROR20,MB_ICONWARNING);
00172         }
00173 
00174         SetCurrentFigureWindows (SaveCurrentWindow);
00175 
00176         Setscig_buzyState(FALSE);
00177 
00178         return;
00179 }

Here is the call graph for this function:

Here is the caller graph for this function:

void CopyToClipboardEMF ( struct BCG ScilabGC  ) 

Definition at line 53 of file ExportBmpEmf.c.

References BCG::CurWindow, BCG::CWindow, BCG::CWindowHeight, BCG::CWindowWidth, FALSE, GetCurrentFigureWindows(), NULL, scig_replay_hdc(), SetCurrentFigureWindows(), Setscig_buzyState(), SW_SHOWNORMAL, TRUE, and TryToGetDC().

Referenced by InterfaceWindowsClipboard(), scig_h_copyclip(), and SendGraphMacro().

00054 {
00055         TCHAR szDesc[] = "Scilab\0Image\0\0";
00056         LPGW lpgw;
00057 
00058         HANDLE hmf;
00059 
00060         HWND hwnd;
00061         HDC hdcEMF=NULL;
00062         HDC hDCtmp=NULL;
00063         integer SaveCurrentWindow=0;
00064 
00065         SaveCurrentWindow=GetCurrentFigureWindows();
00066 
00067         lpgw = ScilabGC->lpgw;
00068         hwnd = ScilabGC->CWindow;
00069 
00070         Setscig_buzyState(TRUE);
00071 
00072         SetCurrentFigureWindows (ScilabGC->CurWindow);
00073 
00074         hDCtmp = TryToGetDC (hwnd);
00075         if (hDCtmp) hdcEMF = CreateEnhMetaFile (hDCtmp, NULL, NULL, szDesc);
00076 
00077         if (hdcEMF)
00078         {
00079                 /* view the window */
00080                 if (IsIconic (hwnd)) ShowWindow (hwnd, SW_SHOWNORMAL);
00081                 BringWindowToTop (hwnd);
00082                 UpdateWindow (hwnd);
00083 
00084                 SetMapMode (hdcEMF, MM_TEXT);
00085                 SetTextAlign (hdcEMF, TA_LEFT | TA_BOTTOM);
00086                 SetWindowExtEx (hdcEMF, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight,(LPSIZE) NULL);
00087                 Rectangle (hdcEMF, 0, 0, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight);
00088 
00090                 scig_replay_hdc ('C', ScilabGC->CurWindow, hDCtmp, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight, 1);
00091                 ReleaseDC(hwnd,hDCtmp);
00092 
00093                 scig_replay_hdc ('C', ScilabGC->CurWindow, hdcEMF, ScilabGC->CWindowWidth,ScilabGC->CWindowHeight, 1);
00094                 hmf = CloseEnhMetaFile (hdcEMF);  
00095                 ReleaseDC(hwnd,hdcEMF);
00096 
00097 
00098                 OpenClipboard (hwnd);
00099                 EmptyClipboard ();
00100                 SetClipboardData (CF_ENHMETAFILE, hmf);
00101                 CloseClipboard ();
00102         }
00103 
00104         SetCurrentFigureWindows (SaveCurrentWindow);
00105         Setscig_buzyState(FALSE);
00106         return;
00107 }

Here is the call graph for this function:

Here is the caller graph for this function:

int C2F() deletewin ( integer number  ) 

Definition at line 1008 of file SGraph.c.

01008                                     {
01009   Delete((Widget) 0,(XtPointer) *number,(XtPointer) 0);
01010   return(0);
01011 }

integer GetCurrentFigureWindows ( void   ) 

Definition at line 546 of file wgraph.c.

References C2F, dr(), L, na, PD0, and PI0.

00547 {
00548         integer verb = 0;
00549         integer CurrentWindow=0;
00550         integer na=0;
00551         /* Backup Current Figure */
00552         C2F (dr) ("xget", "window", &verb, &CurrentWindow, &na, PI0, PI0, PI0, PD0, PD0, PD0, PD0, 0L, 0L);
00553         return CurrentWindow;
00554 }

Here is the call graph for this function:

HDC GetPrinterDC ( void   ) 

Definition at line 554 of file TextToPrint.c.

00555 {
00556         if (PrinterHDC == NULL)
00557         {
00558                 PRINTDLG pd;
00559                 LPDEVNAMES lpDev=NULL;
00560                 LPDEVMODE lpDevMode=NULL;
00561                 LPCTSTR lpszDevice=NULL;
00562 
00563                 int   failed = 0;       
00564 
00565                 // Reset printdlg struct 
00566                 memset( &pd, 0, sizeof(PRINTDLG) ); 
00567                 pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC; 
00568                 pd.lStructSize = sizeof( PRINTDLG ); 
00569 
00570 
00571                 failed = ( ! PrintDlg( &pd ) ); 
00572                 if (failed)
00573                 {
00574                         ConfigurePrinterDialogBox();
00575                 }
00576 
00577                 lpDev = (LPDEVNAMES)GlobalLock(pd.hDevNames);
00578                 lpDevMode = (LPDEVMODE)GlobalLock(pd.hDevMode);
00579                 lpszDevice = (LPCTSTR)lpDev + lpDev->wDeviceOffset;
00580 
00581                 wsprintf(PrinterName,"%s",lpszDevice);
00582                 GlobalUnlock(pd.hDevNames);
00583 
00584                 if (lpDevMode->dmOrientation==DMORIENT_PORTRAIT ) PrinterOrientation='p';
00585                 else PrinterOrientation='l';
00586                 GlobalUnlock(pd.hDevMode);
00587 
00588                 if (PrinterHDC) {DeleteDC(PrinterHDC);PrinterHDC=NULL;}
00589                 PrinterHDC=pd.hDC;
00590 
00591         }
00592 
00593         return PrinterHDC;
00594 }

int GetScreenProperty ( char *  prop,
char *  value 
)

Definition at line 478 of file wgraph.c.

00479 {
00480   POINT Ecran = {GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN)} ;
00481   HDC hdc=GetDC(NULL);
00482   if(!strcmp(prop,"screensize_px"))
00483     {
00484       sprintf(value,"%f|%f|%f|%f",(float)1,(float)1,
00485               (float)Ecran.x,
00486               (float)Ecran.y);
00487     }
00488   else if(!strcmp(prop,"screensize_mm"))
00489     {
00490       sprintf(value,"%f|%f|%f|%f",(float)0,(float)0,
00491               (float)GetDeviceCaps(hdc,HORZSIZE),
00492               (float)GetDeviceCaps(hdc,VERTSIZE));
00493     }
00494   else if(!strcmp(prop,"screensize_cm"))
00495     {
00496       sprintf(value,"%f|%f|%f|%f",(float)0,(float)0,
00497               (float)GetDeviceCaps(hdc,HORZSIZE)/10,
00498               (float)GetDeviceCaps(hdc,VERTSIZE)/10);
00499     }
00500   else if(!strcmp(prop,"screensize_in"))
00501     {
00502       sprintf(value,"%f|%f|%f|%f",(float)0,(float)0,
00503                                                                   (float)GetDeviceCaps(hdc,HORZSIZE)/25.4,
00504                                                                   (float)GetDeviceCaps(hdc,VERTSIZE)/25.4);
00505     }
00506   else if(!strcmp(prop,"screensize_pt"))
00507     {
00508       sprintf(value,"%f|%f|%f|%f",(float)0,(float)0,
00509                                                                   (float)GetDeviceCaps(hdc,HORZSIZE)/25.4*72,
00510                                                                   (float)GetDeviceCaps(hdc,VERTSIZE)/25.4*72);
00511     }
00512   else if(!strcmp(prop,"screensize_norm"))
00513     {
00514       sprintf(value,"%f|%f|%f|%f",(float)0,(float)0,(float)1,(float)1);
00515     }
00516   else if(!strcmp(prop,"screendepth"))
00517     {
00518       sprintf(value,"%f",(float)GetDeviceCaps(hdc,BITSPIXEL));
00519     }
00520   else
00521     {
00522       return -1;
00523     }
00524   ReleaseDC (NULL, hdc);
00525   return 0;
00526 }

void GPopupResize ( struct BCG ScilabXgc,
int width,
int height 
)

used when we resize the popup at scilab level

Definition at line 154 of file wgraph.c.

00155 {
00156   RECT rect, rect1;
00157   int xof, yof;
00158   SCROLLINFO vertsi;
00159   SCROLLINFO horzsi;
00160   int *x = width; /* F.Leray 01.07.04 copy the setwindowdim function philosohpy (see periwin.c)*/
00161   int *y = height;
00162 
00163  if ( (ScilabXgc->CWindow != NULL) && (ScilabXgc->hWndParent != NULL) )
00164   {
00165     /* initialisation des variables SCROLLINFO*/
00166     sciGetScrollInfo(ScilabXgc, SB_VERT, &vertsi);
00167     sciGetScrollInfo(ScilabXgc, SB_HORZ, &horzsi);
00168     
00169     ScilabXgc->CWindowWidth = Max((int) *x,50);
00170     ScilabXgc->CWindowHeight =Max((int) *y,50);
00171     if ( sciGetwresize() == 1 ) {
00172       ScilabXgc->CWindowWidthView  = ScilabXgc->CWindowWidth;
00173       ScilabXgc->CWindowHeightView = ScilabXgc->CWindowHeight;
00174       vertsi.nPos   = 0;
00175       horzsi.nPos   = 0;
00176     }
00177 
00178     if ( ScilabXgc->CWindowWidthView > ScilabXgc->CWindowWidth)
00179       ScilabXgc->CWindowWidthView = ScilabXgc->CWindowWidth;
00180 
00181     if (ScilabXgc->CWindowHeightView > ScilabXgc->CWindowHeight)
00182       ScilabXgc->CWindowHeightView = ScilabXgc->CWindowHeight;
00183     CPixmapResize1();
00184 
00185     GetWindowRect (ScilabXgc->hWndParent, &rect) ;
00186     GetWindowRect (ScilabXgc->CWindow, &rect1) ;
00187     xof = (rect.right-rect.left)- (rect1.right - rect1.left);
00188     yof = (rect.bottom-rect.top)- (rect1.bottom -rect1.top );
00189     if (sciGetwresize () == 0)
00190       {
00191         SetWindowPos (ScilabXgc->hWndParent, HWND_TOP, 0, 0,
00192                       ScilabXgc->CWindowWidthView + xof +
00193                       GetSystemMetrics (SM_CXVSCROLL),
00194                       ScilabXgc->CWindowHeightView + yof +
00195                       GetSystemMetrics (SM_CYHSCROLL),
00196                       SWP_NOMOVE | SWP_NOZORDER);
00197       }
00198     else
00199       {
00200         SetWindowPos(ScilabXgc->hWndParent,HWND_TOP,0,0,
00201                      ScilabXgc->CWindowWidthView  + xof,
00202                      ScilabXgc->CWindowHeightView + yof,
00203                      SWP_NOMOVE | SWP_NOZORDER );
00204       }
00205     vertsi.nMax   = ScilabXgc->CWindowHeight;
00206     vertsi.nPage  = ScilabXgc->CWindowHeightView;
00207     horzsi.nMax   = ScilabXgc->CWindowWidth;
00208     horzsi.nPage  = ScilabXgc->CWindowWidthView;  
00209     sciSetScrollInfo(ScilabXgc,SB_VERT, &(vertsi), TRUE);
00210     sciSetScrollInfo(ScilabXgc,SB_HORZ, &(horzsi), TRUE);
00211     if ( sciGetwresize() == 0 ) 
00212       {
00213         /* need to force a rdraw in that case */
00214         if ( ScilabXgc->horzsi.nPos + ScilabXgc->CWindowWidthView < 
00215              ScilabXgc->CWindowWidth 
00216              &&  ScilabXgc->vertsi.nPos + ScilabXgc->CWindowHeightView < 
00217              ScilabXgc->CWindowHeight) 
00218           InvalidateRect(ScilabXgc->CWindow,NULL,FALSE);
00219           }
00220   }
00221  
00222 }

void HideGraphToolBar ( struct BCG ScilabGC  ) 

Definition at line 23 of file Toolbar.c.

00024 {
00025         int i=0;
00026         ScilabGC->lpmw.ShowToolBar=FALSE;
00027 
00028         for (i=0;i<ScilabGC->lpmw.nButton;i++)
00029         {
00030                 ShowWindow(ScilabGC->lpmw.hButton[i],SW_HIDE);
00031         }
00032 }

int Interface_XS2BMP ( int  figurenum,
char *  filename 
)

Definition at line 14 of file ExportBmpEmf.c.

References ExportBMP(), getWindowXgcNumber(), and NULL.

Referenced by sci_xs2bmp().

00015 {
00016         int bOK=0;
00017         struct BCG *ScilabGC=NULL;
00018 
00019         ScilabGC = getWindowXgcNumber (figurenum);
00020         if (ScilabGC != (struct BCG *) 0)
00021         {
00022                 ExportBMP(ScilabGC,filename);
00023                 bOK=1;
00024         }
00025         else
00026         {
00027                 Scierror(999,"xs2bmp : win_num invalid : %d \n",figurenum);
00028                 bOK=0;
00029         }
00030 
00031         return bOK;
00032 }

Here is the call graph for this function:

Here is the caller graph for this function:

int Interface_XS2EMF ( int  figurenum,
char *  filename 
)

Definition at line 34 of file ExportBmpEmf.c.

References ExportEMF(), getWindowXgcNumber(), and NULL.

Referenced by sci_xs2emf().

00035 {
00036         int bOK=0;
00037         struct BCG *ScilabGC=NULL;
00038 
00039         ScilabGC = getWindowXgcNumber (figurenum);
00040         if (ScilabGC != (struct BCG *) 0)
00041         {
00042                 ExportEMF(ScilabGC,filename);
00043                 bOK=1;
00044         }
00045         else
00046         {
00047                 Scierror(999,"xs2emf : win_num invalid : %d \n",figurenum);
00048                 bOK=0;
00049         }
00050         return bOK;
00051 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void sci_extra_margin ( HDC  hdc_c,
struct BCG ScilabGC 
) [static]

void scig_replay_hdc ( char  c,
integer  win_num,
HDC  hdc,
int  width,
int  height,
int  scale 
)

Definition at line 439 of file wgraph.c.

References C2F, cur, dr(), dr1(), GetDriver1(), L, na, name, PD0, PI0, ResetScilabXgc(), SciG_Font(), SciG_Font_Printer(), sciGetPixmapStatus(), sciRedrawF(), SetDriver(), SetGHdc(), and SwitchWindow().

00440 {
00441   integer verb = 0, cur, na;
00442   char name[4];
00443   integer alu, narg, verbose = 0;
00444   GetDriver1 (name, PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, PD0);
00446   C2F (SetDriver) ("Int", PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, PD0);
00447   C2F (dr) ("xget", "window", &verb, &cur, &na, PI0, PI0, PI0, PD0, 
00448             PD0, PD0, PD0, 0L, 0L);
00449   C2F (dr) ("xset", "window", &win_num, PI0, PI0, PI0, PI0, PI0, PD0, 
00450             PD0, PD0, PD0, 0L, 0L);
00451   C2F (dr) ("xget", "alufunction", &verbose, &alu, &narg, PI0, PI0, 
00452             PI0, PD0, PD0, PD0, PD0, 0L, 0L);
00453   SetGHdc (hdc, width, height);
00455   if (c == 'P')
00456     SciG_Font_Printer (scale);
00458   ResetScilabXgc ();
00460   if (sciGetPixmapStatus() != 1)
00461     C2F (dr) ("xclear", "v", PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, 
00462               PD0, 0L, 0L);
00463 
00464   sciRedrawF(&win_num); /* NG */
00465   C2F (dr1) ("xset", "alufunction", &alu, PI0, PI0, PI0, PI0, PI0, PD0, 
00466              PD0, PD0, PD0, 0L, 0L);
00467   C2F (dr) ("xset", "window", &cur, PI0, PI0, PI0, PI0, PI0, PD0, PD0, 
00468             PD0, PD0, 0L, 0L);
00469   C2F (SetDriver) (name, PI0, PI0, PI0, PI0, PI0, PI0, PD0, PD0, PD0, 
00470                    PD0);
00471   SetGHdc ((HDC) 0, 600, 400);
00473   SciG_Font ();
00474   SwitchWindow (&cur);
00475 }

Here is the call graph for this function:

int ScilabGResize ( HWND  hwnd,
struct BCG ScilabGC,
WPARAM  wParam 
)

Definition at line 400 of file wgraph.c.

00401 {
00403   if ( ScilabGC->Inside_init != 1
00404       && ((wParam == SIZE_MAXIMIZED) || (wParam == SIZE_RESTORED)))
00405     {
00406       HBITMAP hbmTemp;
00407       HBITMAP  hbmSave;
00408       HDC hdc1;
00409       hdc1 = TryToGetDC (ScilabGC->CWindow);
00410       hbmTemp = CreateCompatibleBitmap (hdc1,ScilabGC->CWindowWidth,
00411                                         ScilabGC->CWindowHeight);
00412           ReleaseDC(ScilabGC->CWindow,hdc1);
00413       if (hbmTemp == NULL )
00414         {
00415           sciprint(MSG_WARNING19);
00416           return FALSE;
00417         }
00418       hbmSave = SelectObject ( ScilabGC->hdcCompat, hbmTemp);
00419       if ( ScilabGC->hbmCompat != NULL)
00420         DeleteObject (ScilabGC->hbmCompat);
00421       ScilabGC->hbmCompat = hbmTemp;
00422       if ( ScilabGC->ClipRegionSet == 1 )  SelectClipRgn(ScilabGC->hdcCompat,NULL);
00423       sci_pixmapclear(ScilabGC->hdcCompat,ScilabGC); 
00424       
00425       return TRUE;
00426     }
00427   return FALSE;
00428 }

static void ScilabNoPaint ( HWND  hwnd,
struct BCG ScilabGC 
) [static]

void ScilabPaint ( HWND  hwnd,
struct BCG ScilabGC 
)

Definition at line 319 of file wgraph.c.

00320 {
00321   /* static paint = 0; */
00322   HDC hdc;
00323   PAINTSTRUCT ps;
00324   
00325   Setscig_buzyState(TRUE);
00326         hdc = BeginPaint(hwnd, &ps);  
00327   
00328   if (ScilabGC->Inside_init == 1) goto paint_end;
00329   
00330   if ( ScilabGC->in_sizemove == 1) goto paint_end;
00331 
00332   SetMapMode (hdc, MM_TEXT);
00333   SetBkMode (hdc, TRANSPARENT);
00334   /* GetClientRect (hwnd, &rect);
00335    * SetViewportExtEx(hdc, rect.right, rect.bottom,NULL);*/
00336   SetViewportExtEx(hdc, ScilabGC->CWindowWidthView,ScilabGC->CWindowHeightView, NULL);
00337   /* MAJ D.ABDEMOUCHE*/
00338   if (ScilabGC->CurResizeStatus == 0)
00339     {
00340       /* xViewport = xWindow  + xViewOrg 
00341        * the viewport = [ScilabGC->horzsi.nPos,ScilabGC->vertsi.nPos,
00342        *                 ScilabGC->CWindowWidthView,ScilabGC->CWindowHeightView]
00343        */
00344       SetViewportOrgEx (hdc, -ScilabGC->horzsi.nPos,-ScilabGC->vertsi.nPos, NULL);
00345     }
00346   if (  ScilabGC->CurPixmapStatus == 1 )
00347     {
00348       /* pixmap status is on we use it for redrawing */ 
00349       if (ScilabGC->CurResizeStatus == 1)/* MAJ D.ABDEMOUCHE*/
00350         {
00351           SelectClipRgn(ScilabGC->hdcCompat,NULL);
00352           scig_replay_hdc('W',ScilabGC->CurWindow,ScilabGC->hdcCompat,
00353                           ScilabGC->CWindowWidth, ScilabGC->CWindowHeight,
00354                           1);
00355         }
00356       /* be sure that there's no active clip set by graphics */ 
00357       if ( ScilabGC->ClipRegionSet == 1 ) SelectClipRgn(hdc,NULL);
00358       BitBlt(hdc,ScilabGC->horzsi.nPos,ScilabGC->vertsi.nPos,
00359              ScilabGC->CWindowWidthView,ScilabGC->CWindowHeightView,
00360              ScilabGC->hdcCompat,ScilabGC->horzsi.nPos,ScilabGC->vertsi.nPos,
00361              SRCCOPY); 
00362       sci_extra_margin(hdc, ScilabGC);
00363     }
00364   else 
00365     {
00366       /* no backing store thus we must redraw */
00367       if (  emulate_backing_store == 1 ) 
00368         {
00369           ScilabPaintWithBitmap (hwnd,hdc,ScilabGC);
00370         }
00371       else 
00372         {
00373           if ( ScilabGC->ClipRegionSet == 1 )  SelectClipRgn(hdc,NULL);
00374           scig_replay_hdc('W',ScilabGC->CurWindow,hdc,
00375                           ScilabGC->CWindowWidth, ScilabGC->CWindowHeight,
00376                           1);
00377           if ( ScilabGC->ClipRegionSet == 1 )  SelectClipRgn(hdc,NULL);
00378           /* painting extra space in gray if necessary */ 
00379           sci_extra_margin(hdc ,ScilabGC);
00380         }
00381     }
00382   paint_end : 
00383     {
00384       EndPaint(hwnd, &ps);
00385       Setscig_buzyState(FALSE);
00386     }
00387 }

static void ScilabPaintWithBitmap ( HWND  hwnd,
HDC  hdc,
struct BCG ScilabGC 
) [static]

void SciViewportGet ( ScilabXgc  ,
x  ,
y   
)

void SciViewportMove ( ScilabGC  ,
x  ,
y   
)

void set_delete_win_mode (  ) 

Definition at line 111 of file Events.c.

References sci_graphic_protect.

00111 {  sci_graphic_protect = 0 ;}

void SetCurrentFigureWindows ( integer  win  ) 

Definition at line 556 of file wgraph.c.

References scig_sel().

00557 {
00558         scig_sel (win);
00559 }

Here is the call graph for this function:

void ShowGraphToolBar ( struct BCG ScilabGC  ) 

Definition at line 34 of file Toolbar.c.

00035 {
00036         int i=0;
00037 
00038         ScilabGC->lpmw.ShowToolBar=TRUE;
00039         for (i=0;i<ScilabGC->lpmw.nButton;i++)
00040         {
00041                 ShowWindow(ScilabGC->lpmw.hButton[i],SW_SHOWNORMAL);
00042         }
00043 }

HDC TryToGetDC ( HWND  hWnd  ) 

Definition at line 11 of file TryToGetDC.c.

00012 {
00013         HDC hDCRet=NULL;
00014 
00015         if (hWnd)
00016         {
00017                 hDCRet=GetDC(hWnd);
00018                 if (hDCRet == NULL)
00019                 {
00020 #ifdef _DEBUG
00021                         MessageBox(NULL,MSG_ERROR36,MSG_ERROR20,MB_ICONWARNING);
00022 #endif
00023                 }
00024         }
00025         else
00026         {
00027 #ifdef _DEBUG
00028                 MessageBox(NULL,MSG_ERROR37,MSG_ERROR20,MB_ICONWARNING);
00029 #endif
00030         }
00031 
00032         return (HDC)hDCRet;
00033 }


Variable Documentation

int emulate_backing_store = 1 [static]

Definition at line 87 of file wgraph.h.

Referenced by ScilabPaint().


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