xref: /petsc/src/sys/classes/draw/utils/ftn-custom/zzoomf.c (revision df4cd43f92eaa320656440c40edb1046daee8f75)
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 = PETSC_SUCCESS;
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