You can detect redraw events by monitoring the value of the following pre-defined global integer:
resizedraw_noThe resizedraw_no is changed (incremented) everytime there is a redraw event.
For example:
Suppose your model displays an XY-graph gadget. You might do the following:DEFINE_THREAD: start_up { int old_redraw_number; plot_init( MY_NAME, "x-axis", "y-axis" ); plot_axis_x( MY_NAME, 0.0, 105.0, 0, Gold, Blue ); plot_axis_y( MY_NAME, 50.0, 250.0, 0, Gold, Blue ); /* Record the initial redraw-number. */ old_redraw_number = resizedraw_no; while (1) { DELAY(10.0); /* Periodically check for redraws. */ if (old_redraw_number != resizedraw_no) { /* Detected a redraw event. Restore graph. */ plot_init( MY_NAME, "x-axis", "y-axis" ); plot_axis_x( MY_NAME, 0.0, 105.0, 0, Gold, Blue ); plot_axis_y( MY_NAME, 50.0, 250.0, 0, Gold, Blue ); /* Update the redraw-number. */ old_redraw_number = resizedraw_no; } } } END_DEFINE_THREAD.