xref: /petsc/src/sys/classes/draw/utils/ftn-custom/zzoomf.c (revision f97672e55eacc8688507b9471cd7ec2664d7f203)
1 #include <petsc/private/fortranimpl.h>
2 #include <petscdraw.h>
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define petscdrawzoom_            PETSCDRAWZOOM
6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
7 #define petscdrawzoom_            petscdrawzoom
8 #endif
9 
10 typedef void (*FCN)(PetscDraw*,void*,PetscErrorCode*); /* force argument to next function to not be extern C*/
11 
12 static PetscErrorCode ourdrawzoom(PetscDraw draw,void *ctx)
13 {
14   PetscErrorCode ierr = 0;
15 
16   (*(void (*)(PetscDraw*,void*,PetscErrorCode*))(((PetscObject)draw)->fortran_func_pointers[0]))(&draw,ctx,&ierr);
17   return ierr;
18 }
19 
20 PETSC_EXTERN void petscdrawzoom_(PetscDraw *draw,FCN f,void *ctx,PetscErrorCode *ierr)
21 {
22   PetscObjectAllocateFortranPointers(*draw,1);
23   ((PetscObject)*draw)->fortran_func_pointers[0] = (PetscVoidFunction)f;
24 
25   *ierr = PetscDrawZoom(*draw,ourdrawzoom,ctx);
26 }
27 
28