MPSolve  3.2.1
iteration-logger.h
1 #include <mps/mps.h>
2 #include <gtk/gtk.h>
3 
4 G_BEGIN_DECLS
5 
6 #if GTK_MAJOR_VERSION < 3
7 
8 #ifndef gtk_widget_get_allocated_width
9 #define gtk_widget_get_allocated_width(widget) (widget->allocation.width)
10 #endif
11 
12 #ifndef gtk_widget_get_allocated_height
13 #define gtk_widget_get_allocated_height(widget) (widget->allocation.height)
14 #endif
15 
16 #endif
17 
18 #ifndef MPS_ITERATION_LOGGER_H_
19 #define MPS_ITERATION_LOGGER_H_
20 
21 #define MPS_TYPE_ITERATION_LOGGER (mps_iteration_logger_get_type ())
22 #define MPS_ITERATION_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MPS_TYPE_ITERATION_LOGGER, MpsIterationLogger))
23 #define MPS_IS_ITERATION_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MPS_TYPE_ITERATION_LOGGER))
24 #define MPS_ITERATION_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MPS_TYPE_ITERATION_LOGGER, MpsIterationLoggerClass))
25 #define MAMAN_IS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MPS_TYPE_ITERATION_LOGGER))
26 #define MPS_ITERATION_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MPS_TYPE_ITERATION_LOGGER, MpsIterationLoggerClass)))
27 
28 typedef struct _MpsIterationLogger MpsIterationLogger;
29 typedef struct _MpsIterationLoggerClass MpsIterationLoggerClass;
30 
32  GtkWindow parent_instance;
33 
34  /* <private declarations>*/
35  GtkWidget * drawing_area;
36  guint timeout_source;
37  mps_context * ctx;
38 
39  gboolean drawing;
40 
41  /* Scale of the plot */
42  double x_scale;
43  double y_scale;
44 
45  mps_approximation ** approximations;
46  int degree;
47 
48  /* Handling of the zomming process */
49  gboolean zooming;
50  gint zoom_rect_x;
51  gint zoom_rect_y;
52 
53  double real_center;
54  double imag_center;
55 
56  gboolean exit;
57 
58  pthread_mutex_t *drawing_lock;
59 
60  /* True until the first draw operation is performed. */
61  gboolean first_draw;
62 };
63 
65  GtkWindowClass parent_class;
66 };
67 
68 GType mps_iteration_logger_get_type (void);
69 
73 MpsIterationLogger* mps_iteration_logger_new (void);
74 
79 void mps_iteration_logger_set_mps_context (MpsIterationLogger * logger, mps_context * context);
80 
84 void mps_iteration_logger_set_roots (MpsIterationLogger * logger, mps_approximation ** approximations, int degree);
85 
89 void mps_iteration_logger_set_zoom (MpsIterationLogger * logger,
90  double x_scale,
91  double y_scale);
92 
93 
94 #endif
95 
96 G_END_DECLS
97 
98 
mps.h
Header file for libmps.
mps_context
this struct holds the state of the mps computation
Definition: context.h:55
_MpsIterationLoggerClass
Definition: iteration-logger.h:64
_MpsIterationLogger
Definition: iteration-logger.h:31
mps_approximation
Definition: approximation.h:24