Index: graphics.h =================================================================== RCS file: /cvs/octave/src/graphics.h,v retrieving revision 1.2 diff -c -r1.2 graphics.h *** graphics.h 13 Jun 2007 05:42:25 -0000 1.2 --- graphics.h 15 Jun 2007 10:24:32 -0000 *************** *** 39,44 **** --- 39,50 ---- #include "oct-map.h" #include "ov.h" + #define ADD_PROPERTY(TYPE,NAME) \ + private: TYPE NAME ; \ + public: const TYPE& get_ ## NAME () const { return NAME;} ;\ + private: + + class radio_values { *************** *** 879,886 **** std::string graphics_object_name (void) const { return go_name; } private: ! graphics_handle currentfigure; ! octave_value visible; static std::string go_name; }; --- 885,892 ---- std::string graphics_object_name (void) const { return go_name; } private: ! ADD_PROPERTY (graphics_handle, currentfigure); ! ADD_PROPERTY (octave_value, visible); static std::string go_name; }; *************** *** 1015,1027 **** static property_list::pval_map_type factory_defaults (void); private: ! octave_value __plot_stream__; ! octave_value nextplot; ! octave_value closerequestfcn; ! graphics_handle currentaxes; ! colormap_property colormap; ! octave_value visible; ! octave_value paperorientation; static std::string go_name; }; --- 1021,1033 ---- static property_list::pval_map_type factory_defaults (void); private: ! ADD_PROPERTY (octave_value, __plot_stream__); ! ADD_PROPERTY (octave_value, nextplot); ! ADD_PROPERTY (octave_value, closerequestfcn); ! ADD_PROPERTY (graphics_handle, currentaxes); ! ADD_PROPERTY (colormap_property, colormap); ! ADD_PROPERTY (octave_value, visible); ! ADD_PROPERTY (octave_value, paperorientation); static std::string go_name; }; *************** *** 1154,1204 **** static property_list::pval_map_type factory_defaults (void); private: - octave_value position; mutable graphics_handle title; - octave_value box; - octave_value key; - octave_value keybox; - octave_value keypos; - octave_value dataaspectratio; - octave_value dataaspectratiomode; - octave_value xlim; - octave_value ylim; - octave_value zlim; - octave_value xlimmode; - octave_value ylimmode; - octave_value zlimmode; mutable graphics_handle xlabel; mutable graphics_handle ylabel; mutable graphics_handle zlabel; ! octave_value xgrid; ! octave_value ygrid; ! octave_value zgrid; ! octave_value xminorgrid; ! octave_value yminorgrid; ! octave_value zminorgrid; ! octave_value xtick; ! octave_value ytick; ! octave_value ztick; ! octave_value xtickmode; ! octave_value ytickmode; ! octave_value ztickmode; ! octave_value xticklabel; ! octave_value yticklabel; ! octave_value zticklabel; ! octave_value xticklabelmode; ! octave_value yticklabelmode; ! octave_value zticklabelmode; ! octave_value xscale; ! octave_value yscale; ! octave_value zscale; ! octave_value xdir; ! octave_value ydir; ! octave_value zdir; ! octave_value view; ! octave_value nextplot; ! octave_value outerposition; static std::string go_name; }; --- 1160,1220 ---- static property_list::pval_map_type factory_defaults (void); + // the following 4 properties are special (mutable) and so cannot + // be declared with the ADD_PROPERTY macro private: mutable graphics_handle title; mutable graphics_handle xlabel; mutable graphics_handle ylabel; mutable graphics_handle zlabel; ! public: ! const graphics_handle& get_title () { return title;} ! const graphics_handle& get_xlabel () { return xlabel;} ! const graphics_handle& get_ylabel () { return ylabel;} ! const graphics_handle& get_zlabel () { return zlabel;} ! ! // rest of the properties are "normal" ! private: ! ADD_PROPERTY (octave_value, position); ! ADD_PROPERTY (octave_value, box); ! ADD_PROPERTY (octave_value, key); ! ADD_PROPERTY (octave_value, keybox); ! ADD_PROPERTY (octave_value, keypos); ! ADD_PROPERTY (octave_value, dataaspectratio); ! ADD_PROPERTY (octave_value, dataaspectratiomode); ! ADD_PROPERTY (octave_value, xlim); ! ADD_PROPERTY (octave_value, ylim); ! ADD_PROPERTY (octave_value, zlim); ! ADD_PROPERTY (octave_value, xlimmode); ! ADD_PROPERTY (octave_value, ylimmode); ! ADD_PROPERTY (octave_value, zlimmode); ! ADD_PROPERTY (octave_value, xgrid); ! ADD_PROPERTY (octave_value, ygrid); ! ADD_PROPERTY (octave_value, zgrid); ! ADD_PROPERTY (octave_value, xminorgrid); ! ADD_PROPERTY (octave_value, yminorgrid); ! ADD_PROPERTY (octave_value, zminorgrid); ! ADD_PROPERTY (octave_value, xtick); ! ADD_PROPERTY (octave_value, ytick); ! ADD_PROPERTY (octave_value, ztick); ! ADD_PROPERTY (octave_value, xtickmode); ! ADD_PROPERTY (octave_value, ytickmode); ! ADD_PROPERTY (octave_value, ztickmode); ! ADD_PROPERTY (octave_value, xticklabel); ! ADD_PROPERTY (octave_value, yticklabel); ! ADD_PROPERTY (octave_value, zticklabel); ! ADD_PROPERTY (octave_value, xticklabelmode); ! ADD_PROPERTY (octave_value, yticklabelmode); ! ADD_PROPERTY (octave_value, zticklabelmode); ! ADD_PROPERTY (octave_value, xscale); ! ADD_PROPERTY (octave_value, yscale); ! ADD_PROPERTY (octave_value, zscale); ! ADD_PROPERTY (octave_value, xdir); ! ADD_PROPERTY (octave_value, ydir); ! ADD_PROPERTY (octave_value, zdir); ! ADD_PROPERTY (octave_value, view); ! ADD_PROPERTY (octave_value, nextplot); ! ADD_PROPERTY (octave_value, outerposition); static std::string go_name; }; *************** *** 1328,1348 **** static property_list::pval_map_type factory_defaults (void); private: ! octave_value xdata; ! octave_value ydata; ! octave_value zdata; ! octave_value ldata; ! octave_value udata; ! octave_value xldata; ! octave_value xudata; ! color_property color; ! octave_value linestyle; ! octave_value linewidth; ! octave_value marker; ! octave_value markeredgecolor; ! octave_value markerfacecolor; ! octave_value markersize; ! octave_value keylabel; static std::string go_name; }; --- 1344,1364 ---- static property_list::pval_map_type factory_defaults (void); private: ! ADD_PROPERTY (octave_value, xdata); ! ADD_PROPERTY (octave_value, ydata); ! ADD_PROPERTY (octave_value, zdata); ! ADD_PROPERTY (octave_value, ldata); ! ADD_PROPERTY (octave_value, udata); ! ADD_PROPERTY (octave_value, xldata); ! ADD_PROPERTY (octave_value, xudata); ! ADD_PROPERTY (color_property, color); ! ADD_PROPERTY (octave_value, linestyle); ! ADD_PROPERTY (octave_value, linewidth); ! ADD_PROPERTY (octave_value, marker); ! ADD_PROPERTY (octave_value, markeredgecolor); ! ADD_PROPERTY (octave_value, markerfacecolor); ! ADD_PROPERTY (octave_value, markersize); ! ADD_PROPERTY (octave_value, keylabel); static std::string go_name; }; *************** *** 1423,1432 **** static property_list::pval_map_type factory_defaults (void); private: ! octave_value string; ! octave_value units; ! octave_value position; ! octave_value horizontalalignment; static std::string go_name; }; --- 1439,1448 ---- static property_list::pval_map_type factory_defaults (void); private: ! ADD_PROPERTY (octave_value, string); ! ADD_PROPERTY (octave_value, units); ! ADD_PROPERTY (octave_value, position); ! ADD_PROPERTY (octave_value, horizontalalignment); static std::string go_name; }; *************** *** 1507,1515 **** static property_list::pval_map_type factory_defaults (void); private: ! octave_value cdata; ! octave_value xdata; ! octave_value ydata; static std::string go_name; }; --- 1523,1531 ---- static property_list::pval_map_type factory_defaults (void); private: ! ADD_PROPERTY (octave_value, cdata); ! ADD_PROPERTY (octave_value, xdata); ! ADD_PROPERTY (octave_value, ydata); static std::string go_name; }; *************** *** 1590,1599 **** static property_list::pval_map_type factory_defaults (void); private: ! octave_value xdata; ! octave_value ydata; ! octave_value zdata; ! octave_value keylabel; static std::string go_name; }; --- 1606,1615 ---- static property_list::pval_map_type factory_defaults (void); private: ! ADD_PROPERTY (octave_value, xdata); ! ADD_PROPERTY (octave_value, ydata); ! ADD_PROPERTY (octave_value, zdata); ! ADD_PROPERTY (octave_value, keylabel); static std::string go_name; };