Mercurial > hg > octave-max
diff src/graphics.h.in @ 9185:1e5c11890f85
check for invalid property names when setting defaults
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 07 May 2009 15:14:19 -0400 |
parents | 17ba311ef110 |
children | 9646be3a59c4 |
line wrap: on
line diff
--- a/src/graphics.h.in +++ b/src/graphics.h.in @@ -1642,15 +1642,16 @@ all_props[name] = p; } - virtual void set (const caseless_str&, const octave_value&); - - virtual octave_value get (const caseless_str&) const; + virtual void set (const caseless_str& pname, const std::string& cname, + const octave_value& val); + + virtual octave_value get (const caseless_str& pname) const; virtual octave_value get (bool all = false) const; - virtual property get_property (const caseless_str&); - - bool has_property (const caseless_str&); + virtual property get_property (const caseless_str& pname); + + bool has_property (const caseless_str& pname); bool is_modified (void) const { return is___modified__ (); } @@ -1723,15 +1724,21 @@ { return ! handlevisibility.is ("off"); } + + static std::map<std::string, std::set<std::string> > all_dynamic_properties; + static bool has_dynamic_property (const std::string& pname, + const std::string& cname); + protected: - void set_dynamic (const caseless_str&, const octave_value&); - - octave_value get_dynamic (const caseless_str&) const; + void set_dynamic (const caseless_str& pname, const std::string& cname, + const octave_value& val); + + octave_value get_dynamic (const caseless_str& pname) const; octave_value get_dynamic (bool all = false) const; - property get_property_dynamic (const caseless_str&); + property get_property_dynamic (const caseless_str& pname); BEGIN_BASE_PROPERTIES // properties common to all objects @@ -1821,7 +1828,7 @@ virtual void set (const caseless_str& pname, const octave_value& pval) { if (valid_object ()) - get_properties ().set (pname, pval); + get_properties ().set (pname, type (), pval); else error ("base_graphics_object::set: invalid graphics object"); }