xref: /petsc/src/sys/classes/draw/interface/dpause.c (revision 27f49a208b01d2e827ab9db411a2d16003fe9262)
1 #include <petsc/private/drawimpl.h> /*I "petscdraw.h" I*/
2 
3 /*@
4    PetscDrawPause - Waits n seconds or until user input, depending on input
5                to `PetscDrawSetPause()`.
6 
7    Collective
8 
9    Input Parameter:
10 .  draw - the drawing context
11 
12    Level: beginner
13 
14 .seealso: `PetscDraw`, `PetscDrawSetPause()`, `PetscDrawGetPause()`
15 @*/
16 PetscErrorCode PetscDrawPause(PetscDraw draw)
17 {
18   PetscFunctionBegin;
19   PetscValidHeaderSpecific(draw, PETSC_DRAW_CLASSID, 1);
20   PetscTryTypeMethod(draw, pause);
21   PetscFunctionReturn(PETSC_SUCCESS);
22 }
23 
24 /*@
25    PetscDrawSetPause - Sets the amount of time that program pauses after
26    a `PetscDrawPause()` is called.
27 
28    Logically Collective
29 
30    Input Parameters:
31 +  draw   - the drawing object
32 -  lpause - number of seconds to pause, -1 implies until user input, -2 pauses only on the `PetscDrawDestroy()`
33 
34    Options Database Key:
35 .  -draw_pause value - set the time to pause
36 
37    Level: intermediate
38 
39    Note:
40    By default the pause time is zero unless the -draw_pause option is given
41    during PetscDrawCreate().
42 
43 .seealso: `PetscDraw`, `PetscDrawGetPause()`, `PetscDrawPause()`
44 @*/
45 PetscErrorCode PetscDrawSetPause(PetscDraw draw, PetscReal lpause)
46 {
47   PetscFunctionBegin;
48   PetscValidHeaderSpecific(draw, PETSC_DRAW_CLASSID, 1);
49   PetscValidLogicalCollectiveReal(draw, lpause, 2);
50   draw->pause = lpause;
51   PetscFunctionReturn(PETSC_SUCCESS);
52 }
53 
54 /*@
55    PetscDrawGetPause - Gets the amount of time that program pauses after
56    a `PetscDrawPause()` is called.
57 
58    Not Collective
59 
60    Input Parameters:
61 +  draw   - the drawing object
62 -  lpause - number of seconds to pause, -1 implies until user input
63 
64    Level: intermediate
65 
66    Note:
67    By default the pause time is zero unless the -draw_pause option is given
68 
69 .seealso: `PetscDraw`, `PetscDrawSetPause()`, `PetscDrawPause()`
70 @*/
71 PetscErrorCode PetscDrawGetPause(PetscDraw draw, PetscReal *lpause)
72 {
73   PetscFunctionBegin;
74   PetscValidHeaderSpecific(draw, PETSC_DRAW_CLASSID, 1);
75   PetscValidRealPointer(lpause, 2);
76   *lpause = draw->pause;
77   PetscFunctionReturn(PETSC_SUCCESS);
78 }
79