X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fpiechart.c;h=dd889c334cfb39e4e9fac62de83f6c21f81a04fb;hb=b9799cdd10b30ea96d9178b7a0d48504d052228c;hp=35e5e0ba4d0ee8bb8a849eebdbe5913d8df679af;hpb=72318eac4782acf0215da8dfd4575ac66a9a9f74;p=pspp-builds.git diff --git a/src/piechart.c b/src/piechart.c index 35e5e0ba..dd889c33 100644 --- a/src/piechart.c +++ b/src/piechart.c @@ -15,8 +15,8 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ #include "config.h" @@ -47,8 +47,6 @@ draw_segment(struct chart *ch, -#ifndef NO_CHARTS - /* Draw a piechart */ void piechart_plot(const char *title, const struct slice *slices, int n_slices) @@ -56,26 +54,24 @@ piechart_plot(const char *title, const struct slice *slices, int n_slices) int i; double total_magnetude=0; - struct chart ch; - - chart_initialise(&ch); + struct chart *ch = chart_create(); - const double left_label = ch.data_left + - (ch.data_right - ch.data_left)/10.0; + const double left_label = ch->data_left + + (ch->data_right - ch->data_left)/10.0; - const double right_label = ch.data_right - - (ch.data_right - ch.data_left)/10.0; + const double right_label = ch->data_right - + (ch->data_right - ch->data_left)/10.0; - const double centre_x = (ch.data_right + ch.data_left ) / 2.0 ; - const double centre_y = (ch.data_top + ch.data_bottom ) / 2.0 ; + const double centre_x = (ch->data_right + ch->data_left ) / 2.0 ; + const double centre_y = (ch->data_top + ch->data_bottom ) / 2.0 ; const double radius = min( - 5.0 / 12.0 * (ch.data_top - ch.data_bottom), - 1.0 / 4.0 * (ch.data_right - ch.data_left) + 5.0 / 12.0 * (ch->data_top - ch->data_bottom), + 1.0 / 4.0 * (ch->data_right - ch->data_left) ); - chart_write_title(&ch, title); + chart_write_title(ch, title); for (i = 0 ; i < n_slices ; ++i ) total_magnetude += slices[i].magnetude; @@ -94,7 +90,7 @@ piechart_plot(const char *title, const struct slice *slices, int n_slices) radius * cos(angle + segment_angle/2.0); /* Fill the segment */ - draw_segment(&ch, + draw_segment(ch, centre_x, centre_y, radius, angle, segment_angle, data_colour[i]); @@ -102,19 +98,19 @@ piechart_plot(const char *title, const struct slice *slices, int n_slices) /* Now add the labels */ if ( label_x < centre_x ) { - pl_line_r(ch.lp, label_x, label_y, + pl_line_r(ch->lp, label_x, label_y, left_label, label_y ); - pl_moverel_r(ch.lp,0,5); - pl_alabel_r(ch.lp,0,0,slices[i].label); + pl_moverel_r(ch->lp,0,5); + pl_alabel_r(ch->lp,0,0,slices[i].label); } else { - pl_line_r(ch.lp, + pl_line_r(ch->lp, label_x, label_y, right_label, label_y ); - pl_moverel_r(ch.lp,0,5); - pl_alabel_r(ch.lp,'r',0,slices[i].label); + pl_moverel_r(ch->lp,0,5); + pl_alabel_r(ch->lp,'r',0,slices[i].label); } angle += segment_angle; @@ -122,10 +118,10 @@ piechart_plot(const char *title, const struct slice *slices, int n_slices) } /* Draw an outline to the pie */ - pl_filltype_r(ch.lp,0); - pl_fcircle_r (ch.lp, centre_x, centre_y, radius); + pl_filltype_r(ch->lp,0); + pl_fcircle_r (ch->lp, centre_x, centre_y, radius); - chart_finalise(&ch); + chart_submit(ch); } static void @@ -211,12 +207,3 @@ draw_segment(struct chart *ch, pl_restorestate_r(ch->lp); } -#else - - -void -piechart_plot(const char *title, const struct slice *slices, int n_slices) -{ -} - -#endif