GNU Octave  9.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
graphics-props.cc
Go to the documentation of this file.
1 // DO NOT EDIT! Generated automatically by genprops.awk.
2 
3 // ******** base ********
4 
5 base_properties::base_properties (const std::string& ty, const graphics_handle& mh, const graphics_handle& p)
6  : m_beingdeleted ("beingdeleted", mh, "off"),
7  m_busyaction ("busyaction", mh, "{queue}|cancel"),
8  m_buttondownfcn ("buttondownfcn", mh, Matrix ()),
9  m_children ("children", mh, Matrix ()),
10  m_clipping ("clipping", mh, "on"),
11  m_contextmenu ("contextmenu", mh, graphics_handle ()),
12  m_createfcn ("createfcn", mh, Matrix ()),
13  m_deletefcn ("deletefcn", mh, Matrix ()),
14  m_handlevisibility ("handlevisibility", mh, "{on}|callback|off"),
15  m_hittest ("hittest", mh, "on"),
16  m_interruptible ("interruptible", mh, "on"),
17  m_parent ("parent", mh, p),
18  m_pickableparts ("pickableparts", mh, "{visible}|all|none"),
19  m_selected ("selected", mh, "off"),
20  m_selectionhighlight ("selectionhighlight", mh, "on"),
21  m_tag ("tag", mh, ""),
22  m_type ("type", mh, ty),
23  m_uicontextmenu ("uicontextmenu", mh, graphics_handle ()),
24  m_userdata ("userdata", mh, Matrix ()),
25  m_visible ("visible", mh, "on"),
26  m___appdata__ ("__appdata__", mh, Matrix ()),
27  m___modified__ ("__modified__", mh, "on"),
28  m___myhandle__ (mh)
29 {
55  init ();
56 }
57 
58 void
60 {
61  if (pname.compare ("beingdeleted"))
62  set_beingdeleted (val);
63  else if (pname.compare ("busyaction"))
64  set_busyaction (val);
65  else if (pname.compare ("buttondownfcn"))
66  set_buttondownfcn (val);
67  else if (pname.compare ("children"))
68  set_children (val);
69  else if (pname.compare ("clipping"))
70  set_clipping (val);
71  else if (pname.compare ("contextmenu"))
72  set_contextmenu (val);
73  else if (pname.compare ("createfcn"))
74  set_createfcn (val);
75  else if (pname.compare ("deletefcn"))
76  set_deletefcn (val);
77  else if (pname.compare ("handlevisibility"))
79  else if (pname.compare ("hittest"))
80  set_hittest (val);
81  else if (pname.compare ("interruptible"))
82  set_interruptible (val);
83  else if (pname.compare ("parent"))
84  set_parent (val);
85  else if (pname.compare ("pickableparts"))
86  set_pickableparts (val);
87  else if (pname.compare ("selected"))
88  set_selected (val);
89  else if (pname.compare ("selectionhighlight"))
91  else if (pname.compare ("tag"))
92  set_tag (val);
93  else if (pname.compare ("uicontextmenu"))
94  set_uicontextmenu (val);
95  else if (pname.compare ("userdata"))
96  set_userdata (val);
97  else if (pname.compare ("visible"))
98  set_visible (val);
99  else if (pname.compare ("__appdata__"))
100  set___appdata__ (val);
101  else if (pname.compare ("__modified__"))
102  set___modified__ (val);
103  else
104  set_dynamic (pname, val);
105 }
106 
108 base_properties::get (bool all) const
109 {
110  octave_map m = get_dynamic (all).map_value ();
111 
112  m.assign ("beingdeleted", octave_value (get_beingdeleted ()));
113  m.assign ("busyaction", octave_value (get_busyaction ()));
114  m.assign ("buttondownfcn", octave_value (get_buttondownfcn ()));
115  m.assign ("children", octave_value (get_children ()));
116  m.assign ("clipping", octave_value (get_clipping ()));
117  m.assign ("contextmenu", octave_value (get_contextmenu ().as_octave_value ()));
118  m.assign ("createfcn", octave_value (get_createfcn ()));
119  m.assign ("deletefcn", octave_value (get_deletefcn ()));
120  m.assign ("handlevisibility", octave_value (get_handlevisibility ()));
121  m.assign ("hittest", octave_value (get_hittest ()));
122  m.assign ("interruptible", octave_value (get_interruptible ()));
123  m.assign ("parent", octave_value (get_parent ().as_octave_value ()));
124  m.assign ("pickableparts", octave_value (get_pickableparts ()));
125  m.assign ("selected", octave_value (get_selected ()));
126  m.assign ("selectionhighlight", octave_value (get_selectionhighlight ()));
127  m.assign ("tag", octave_value (get_tag ()));
128  m.assign ("type", octave_value (get_type ()));
129  if (all)
130  m.assign ("uicontextmenu", octave_value (get_uicontextmenu ().as_octave_value ()));
131  m.assign ("userdata", octave_value (get_userdata ()));
132  m.assign ("visible", octave_value (get_visible ()));
133  if (all)
134  m.assign ("__appdata__", octave_value (get___appdata__ ()));
135  if (all)
136  m.assign ("__modified__", octave_value (get___modified__ ()));
137  if (all)
138  m.assign ("__myhandle__", octave_value (get___myhandle__ ().as_octave_value ()));
139 
140  return m;
141 }
142 
144 base_properties::get (const caseless_str& pname) const
145 {
146  octave_value retval;
147 
148  if (pname.compare ("beingdeleted"))
149  retval = get_beingdeleted ();
150  else if (pname.compare ("busyaction"))
151  retval = get_busyaction ();
152  else if (pname.compare ("buttondownfcn"))
153  retval = get_buttondownfcn ();
154  else if (pname.compare ("children"))
155  retval = get_children ();
156  else if (pname.compare ("clipping"))
157  retval = get_clipping ();
158  else if (pname.compare ("contextmenu"))
159  retval = get_contextmenu ().as_octave_value ();
160  else if (pname.compare ("createfcn"))
161  retval = get_createfcn ();
162  else if (pname.compare ("deletefcn"))
163  retval = get_deletefcn ();
164  else if (pname.compare ("handlevisibility"))
165  retval = get_handlevisibility ();
166  else if (pname.compare ("hittest"))
167  retval = get_hittest ();
168  else if (pname.compare ("interruptible"))
169  retval = get_interruptible ();
170  else if (pname.compare ("parent"))
171  retval = get_parent ().as_octave_value ();
172  else if (pname.compare ("pickableparts"))
173  retval = get_pickableparts ();
174  else if (pname.compare ("selected"))
175  retval = get_selected ();
176  else if (pname.compare ("selectionhighlight"))
177  retval = get_selectionhighlight ();
178  else if (pname.compare ("tag"))
179  retval = get_tag ();
180  else if (pname.compare ("type"))
181  retval = get_type ();
182  else if (pname.compare ("uicontextmenu"))
183  retval = get_uicontextmenu ().as_octave_value ();
184  else if (pname.compare ("userdata"))
185  retval = get_userdata ();
186  else if (pname.compare ("visible"))
187  retval = get_visible ();
188  else if (pname.compare ("__appdata__"))
189  retval = get___appdata__ ();
190  else if (pname.compare ("__modified__"))
191  retval = get___modified__ ();
192  else if (pname.compare ("__myhandle__"))
193  retval = get___myhandle__ ().as_octave_value ();
194  else
195  retval = get_dynamic (pname);
196 
197  return retval;
198 }
199 
200 property
202 {
203  if (pname.compare ("beingdeleted"))
204  return property (&m_beingdeleted, true);
205  else if (pname.compare ("busyaction"))
206  return property (&m_busyaction, true);
207  else if (pname.compare ("buttondownfcn"))
208  return property (&m_buttondownfcn, true);
209  else if (pname.compare ("children"))
210  return property (&m_children, true);
211  else if (pname.compare ("clipping"))
212  return property (&m_clipping, true);
213  else if (pname.compare ("contextmenu"))
214  return property (&m_contextmenu, true);
215  else if (pname.compare ("createfcn"))
216  return property (&m_createfcn, true);
217  else if (pname.compare ("deletefcn"))
218  return property (&m_deletefcn, true);
219  else if (pname.compare ("handlevisibility"))
220  return property (&m_handlevisibility, true);
221  else if (pname.compare ("hittest"))
222  return property (&m_hittest, true);
223  else if (pname.compare ("interruptible"))
224  return property (&m_interruptible, true);
225  else if (pname.compare ("parent"))
226  return property (&m_parent, true);
227  else if (pname.compare ("pickableparts"))
228  return property (&m_pickableparts, true);
229  else if (pname.compare ("selected"))
230  return property (&m_selected, true);
231  else if (pname.compare ("selectionhighlight"))
232  return property (&m_selectionhighlight, true);
233  else if (pname.compare ("tag"))
234  return property (&m_tag, true);
235  else if (pname.compare ("type"))
236  return property (&m_type, true);
237  else if (pname.compare ("uicontextmenu"))
238  return property (&m_uicontextmenu, true);
239  else if (pname.compare ("userdata"))
240  return property (&m_userdata, true);
241  else if (pname.compare ("visible"))
242  return property (&m_visible, true);
243  else if (pname.compare ("__appdata__"))
244  return property (&m___appdata__, true);
245  else if (pname.compare ("__modified__"))
246  return property (&m___modified__, true);
247  else
248  return get_property_dynamic (pname);
249 }
250 
253 {
255 
256  m["beingdeleted"] = "off";
257  m["busyaction"] = "queue";
258  m["buttondownfcn"] = Matrix ();
259  m["clipping"] = "on";
260  m["contextmenu"] = graphics_handle ().as_octave_value ();
261  m["createfcn"] = Matrix ();
262  m["deletefcn"] = Matrix ();
263  m["handlevisibility"] = "on";
264  m["hittest"] = "on";
265  m["interruptible"] = "on";
266  m["pickableparts"] = "visible";
267  m["selected"] = "off";
268  m["selectionhighlight"] = "on";
269  m["tag"] = "";
270  m["uicontextmenu"] = graphics_handle ().as_octave_value ();
271  m["userdata"] = Matrix ();
272  m["visible"] = "on";
273  m["__appdata__"] = Matrix ();
274  m["__modified__"] = "on";
275 
276  return m;
277 }
278 
279 std::set<std::string>
281 {
282  static std::set<std::string> all_pnames;
283 
284  static bool initialized = false;
285 
286  if (! initialized)
287  {
288  all_pnames.insert ("beingdeleted");
289  all_pnames.insert ("busyaction");
290  all_pnames.insert ("buttondownfcn");
291  all_pnames.insert ("children");
292  all_pnames.insert ("clipping");
293  all_pnames.insert ("contextmenu");
294  all_pnames.insert ("createfcn");
295  all_pnames.insert ("deletefcn");
296  all_pnames.insert ("handlevisibility");
297  all_pnames.insert ("hittest");
298  all_pnames.insert ("interruptible");
299  all_pnames.insert ("parent");
300  all_pnames.insert ("pickableparts");
301  all_pnames.insert ("selected");
302  all_pnames.insert ("selectionhighlight");
303  all_pnames.insert ("tag");
304  all_pnames.insert ("type");
305  all_pnames.insert ("uicontextmenu");
306  all_pnames.insert ("userdata");
307  all_pnames.insert ("visible");
308  all_pnames.insert ("__appdata__");
309  all_pnames.insert ("__modified__");
310  all_pnames.insert ("__myhandle__");
311 
312  initialized = true;
313  }
314 
315  return all_pnames;
316 }
317 
318 bool
320 {
321  std::set<std::string> pnames = core_property_names ();
322 
323  return pnames.find (pname) != pnames.end ();
324 }
325 
326 std::set<std::string>
328 {
329  static std::set<std::string> all_pnames;
330 
331  static bool initialized = false;
332 
333  if (! initialized)
334  {
335  all_pnames.insert ("type");
336  all_pnames.insert ("__myhandle__");
337 
338  initialized = true;
339  }
340 
341  return all_pnames;
342 }
343 
344 bool
346 {
347  std::set<std::string> pnames = readonly_property_names ();
348 
349  return pnames.find (pname) != pnames.end ();
350 }
351 
352 std::set<std::string>
354 {
355  static std::set<std::string> all_pnames = core_property_names ();
356 
357  std::set<std::string> retval = all_pnames;
358  std::set<std::string> dyn_props = dynamic_property_names ();
359  retval.insert (dyn_props.begin (), dyn_props.end ());
360  for (std::map<caseless_str, property, cmp_caseless_str>::const_iterator p = m_all_props.begin ();
361  p != m_all_props.end (); p++)
362  retval.insert (p->first);
363 
364  return retval;
365 }
366 
367 // ******** root_figure ********
368 
370  : base_properties (s_go_name, mh, p),
371  m_callbackobject ("callbackobject", mh, graphics_handle ()),
372  m_commandwindowsize ("commandwindowsize", mh, Matrix (1, 2, 0)),
373  m_currentfigure ("currentfigure", mh, graphics_handle ()),
374  m_fixedwidthfontname ("fixedwidthfontname", mh, "Courier"),
375  m_monitorpositions ("monitorpositions", mh, default_screensize ()),
376  m_pointerlocation ("pointerlocation", mh, Matrix (1, 2, 0)),
377  m_pointerwindow ("pointerwindow", mh, 0.0),
378  m_screendepth ("screendepth", mh, default_screendepth ()),
379  m_screenpixelsperinch ("screenpixelsperinch", mh, default_screenpixelsperinch ()),
380  m_screensize ("screensize", mh, default_screensize ()),
381  m_showhiddenhandles ("showhiddenhandles", mh, "off"),
382  m_units ("units", mh, "{pixels}|inches|centimeters|points|normalized|characters")
383 {
384  m_callbackobject.set_id (ID_CALLBACKOBJECT);
385  m_commandwindowsize.set_id (ID_COMMANDWINDOWSIZE);
386  m_currentfigure.set_id (ID_CURRENTFIGURE);
387  m_fixedwidthfontname.set_id (ID_FIXEDWIDTHFONTNAME);
388  m_monitorpositions.set_id (ID_MONITORPOSITIONS);
389  m_pointerlocation.set_id (ID_POINTERLOCATION);
390  m_pointerwindow.set_id (ID_POINTERWINDOW);
391  m_screendepth.set_id (ID_SCREENDEPTH);
392  m_screenpixelsperinch.set_id (ID_SCREENPIXELSPERINCH);
393  m_screensize.set_id (ID_SCREENSIZE);
394  m_showhiddenhandles.set_id (ID_SHOWHIDDENHANDLES);
395  m_units.set_id (ID_UNITS);
396  init ();
397 }
398 
399 void
401 {
402  const std::set<std::string>& pnames = all_property_names ();
403 
404  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
405 
406  if (has_readonly_property (pname))
407  {
408  error ("set: \"%s\" is read-only", pname.c_str ());
409  return;
410  }
411 
412  if (pname.compare ("currentfigure"))
413  set_currentfigure (val);
414  else if (pname.compare ("fixedwidthfontname"))
415  set_fixedwidthfontname (val);
416  else if (pname.compare ("pointerlocation"))
417  set_pointerlocation (val);
418  else if (pname.compare ("showhiddenhandles"))
419  set_showhiddenhandles (val);
420  else if (pname.compare ("units"))
421  set_units (val);
422  else
423  base_properties::set (pname, val);
424 }
425 
428 {
430 
431  m.assign ("callbackobject", octave_value (get_callbackobject ().as_octave_value ()));
432  m.assign ("commandwindowsize", octave_value (get_commandwindowsize ()));
433  m.assign ("currentfigure", octave_value (get_currentfigure ().as_octave_value ()));
434  m.assign ("fixedwidthfontname", octave_value (get_fixedwidthfontname ()));
435  m.assign ("monitorpositions", octave_value (get_monitorpositions ()));
436  m.assign ("pointerlocation", octave_value (get_pointerlocation ()));
437  m.assign ("pointerwindow", octave_value (get_pointerwindow ()));
438  m.assign ("screendepth", octave_value (get_screendepth ()));
439  m.assign ("screenpixelsperinch", octave_value (get_screenpixelsperinch ()));
440  m.assign ("screensize", octave_value (get_screensize ()));
441  m.assign ("showhiddenhandles", octave_value (get_showhiddenhandles ()));
442  m.assign ("units", octave_value (get_units ()));
443 
444  return m;
445 }
446 
449 {
450  octave_value retval;
451 
452  const std::set<std::string>& pnames = all_property_names ();
453 
454  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
455 
456  if (pname.compare ("callbackobject"))
457  retval = get_callbackobject ().as_octave_value ();
458  else if (pname.compare ("commandwindowsize"))
459  retval = get_commandwindowsize ();
460  else if (pname.compare ("currentfigure"))
461  retval = get_currentfigure ().as_octave_value ();
462  else if (pname.compare ("fixedwidthfontname"))
463  retval = get_fixedwidthfontname ();
464  else if (pname.compare ("monitorpositions"))
465  retval = get_monitorpositions ();
466  else if (pname.compare ("pointerlocation"))
467  retval = get_pointerlocation ();
468  else if (pname.compare ("pointerwindow"))
469  retval = get_pointerwindow ();
470  else if (pname.compare ("screendepth"))
471  retval = get_screendepth ();
472  else if (pname.compare ("screenpixelsperinch"))
473  retval = get_screenpixelsperinch ();
474  else if (pname.compare ("screensize"))
475  retval = get_screensize ();
476  else if (pname.compare ("showhiddenhandles"))
477  retval = get_showhiddenhandles ();
478  else if (pname.compare ("units"))
479  retval = get_units ();
480  else
481  retval = base_properties::get (pname);
482 
483  return retval;
484 }
485 
486 property
488 {
489  const std::set<std::string>& pnames = all_property_names ();
490 
491  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
492 
493  if (pname.compare ("callbackobject"))
494  return property (&m_callbackobject, true);
495  else if (pname.compare ("commandwindowsize"))
496  return property (&m_commandwindowsize, true);
497  else if (pname.compare ("currentfigure"))
498  return property (&m_currentfigure, true);
499  else if (pname.compare ("fixedwidthfontname"))
500  return property (&m_fixedwidthfontname, true);
501  else if (pname.compare ("monitorpositions"))
502  return property (&m_monitorpositions, true);
503  else if (pname.compare ("pointerlocation"))
504  return property (&m_pointerlocation, true);
505  else if (pname.compare ("pointerwindow"))
506  return property (&m_pointerwindow, true);
507  else if (pname.compare ("screendepth"))
508  return property (&m_screendepth, true);
509  else if (pname.compare ("screenpixelsperinch"))
510  return property (&m_screenpixelsperinch, true);
511  else if (pname.compare ("screensize"))
512  return property (&m_screensize, true);
513  else if (pname.compare ("showhiddenhandles"))
514  return property (&m_showhiddenhandles, true);
515  else if (pname.compare ("units"))
516  return property (&m_units, true);
517  else
518  return base_properties::get_property (pname);
519 }
520 
523 {
525 
526  m["callbackobject"] = graphics_handle ().as_octave_value ();
527  m["commandwindowsize"] = Matrix (1, 2, 0);
528  m["currentfigure"] = graphics_handle ().as_octave_value ();
529  m["fixedwidthfontname"] = "Courier";
530  m["monitorpositions"] = default_screensize ();
531  m["pointerlocation"] = Matrix (1, 2, 0);
532  m["pointerwindow"] = 0.0;
533  m["screendepth"] = default_screendepth ();
534  m["screenpixelsperinch"] = default_screenpixelsperinch ();
535  m["screensize"] = default_screensize ();
536  m["showhiddenhandles"] = "off";
537  m["units"] = "pixels";
538 
539  return m;
540 }
541 
542 std::string root_figure::properties::s_go_name ("root");
543 
544 std::set<std::string>
546 {
547  static std::set<std::string> all_pnames;
548 
549  static bool initialized = false;
550 
551  if (! initialized)
552  {
553  all_pnames.insert ("callbackobject");
554  all_pnames.insert ("commandwindowsize");
555  all_pnames.insert ("currentfigure");
556  all_pnames.insert ("fixedwidthfontname");
557  all_pnames.insert ("monitorpositions");
558  all_pnames.insert ("pointerlocation");
559  all_pnames.insert ("pointerwindow");
560  all_pnames.insert ("screendepth");
561  all_pnames.insert ("screenpixelsperinch");
562  all_pnames.insert ("screensize");
563  all_pnames.insert ("showhiddenhandles");
564  all_pnames.insert ("units");
565 
566  std::set<std::string> base_pnames = base_properties::core_property_names ();
567  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
568 
569  initialized = true;
570  }
571 
572  return all_pnames;
573 }
574 
575 bool
577 {
578  std::set<std::string> pnames = core_property_names ();
579 
580  return pnames.find (pname) != pnames.end ();
581 }
582 
583 std::set<std::string>
585 {
586  static std::set<std::string> all_pnames;
587 
588  static bool initialized = false;
589 
590  if (! initialized)
591  {
592  all_pnames.insert ("callbackobject");
593  all_pnames.insert ("commandwindowsize");
594  all_pnames.insert ("monitorpositions");
595  all_pnames.insert ("pointerwindow");
596  all_pnames.insert ("screendepth");
597  all_pnames.insert ("screenpixelsperinch");
598  all_pnames.insert ("screensize");
599 
600  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
601  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
602 
603  initialized = true;
604  }
605 
606  return all_pnames;
607 }
608 
609 bool
611 {
612  std::set<std::string> pnames = readonly_property_names ();
613 
614  return pnames.find (pname) != pnames.end ();
615 }
616 
617 std::set<std::string>
619 {
620  static std::set<std::string> all_pnames = core_property_names ();
621 
622  std::set<std::string> retval = all_pnames;
623  std::set<std::string> base_props = base_properties::all_property_names ();
624  retval.insert (base_props.begin (), base_props.end ());
625 
626  return retval;
627 }
628 
629 bool
631 {
632  std::set<std::string> pnames = all_property_names ();
633 
634  return pnames.find (pname) != pnames.end ();
635 }
636 
637 // ******** figure ********
638 
640  : base_properties (s_go_name, mh, p),
641  m_alphamap ("alphamap", mh, Matrix (64, 1, 1)),
642  m_buttondownfcn ("buttondownfcn", mh, Matrix ()),
643  m_closerequestfcn ("closerequestfcn", mh, "closereq"),
644  m_color ("color", mh, color_property (color_values (1, 1, 1), radio_values ("none"))),
645  m_colormap ("colormap", mh, viridis_colormap ()),
646  m_currentaxes ("currentaxes", mh, graphics_handle ()),
647  m_currentcharacter ("currentcharacter", mh, ""),
648  m_currentobject ("currentobject", mh, graphics_handle ()),
649  m_currentpoint ("currentpoint", mh, Matrix (2, 1, 0)),
650  m_dockcontrols ("dockcontrols", mh, "on"),
651  m_filename ("filename", mh, ""),
652  m_graphicssmoothing ("graphicssmoothing", mh, "on"),
653  m_innerposition ("innerposition", mh, default_figure_position ()),
654  m_integerhandle ("integerhandle", mh, "on"),
655  m_inverthardcopy ("inverthardcopy", mh, "on"),
656  m_keypressfcn ("keypressfcn", mh, Matrix ()),
657  m_keyreleasefcn ("keyreleasefcn", mh, Matrix ()),
658  m_menubar ("menubar", mh, "{figure}|none"),
659  m_name ("name", mh, ""),
660  m_number ("number", mh, Matrix ()),
661  m_nextplot ("nextplot", mh, "{add}|new|replace|replacechildren"),
662  m_numbertitle ("numbertitle", mh, "on"),
663  m_outerposition ("outerposition", mh, Matrix (1, 4, -1.0)),
664  m_paperorientation ("paperorientation", mh, "{portrait}|landscape"),
665  m_paperposition ("paperposition", mh, default_figure_paperposition ()),
666  m_paperpositionmode ("paperpositionmode", mh, "{auto}|manual"),
667  m_papersize ("papersize", mh, default_figure_papersize ()),
668  m_papertype ("papertype", mh, "{usletter}|uslegal|a0|a1|a2|a3|a4|a5|b0|b1|b2|b3|b4|b5|arch-a|arch-b|arch-c|arch-d|arch-e|a|b|c|d|e|tabloid|<custom>"),
669  m_paperunits ("paperunits", mh, "{inches}|centimeters|normalized|points"),
670  m_pointer ("pointer", mh, "{arrow}|crosshair|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand"),
671  m_pointershapecdata ("pointershapecdata", mh, Matrix (16, 16, 1)),
672  m_pointershapehotspot ("pointershapehotspot", mh, Matrix (1, 2, 1)),
673  m_position ("position", mh, default_figure_position ()),
674  m_renderer ("renderer", mh, "{opengl}|painters"),
675  m_renderermode ("renderermode", mh, "{auto}|manual"),
676  m_resize ("resize", mh, "on"),
677  m_resizefcn ("resizefcn", mh, Matrix ()),
678  m_selectiontype ("selectiontype", mh, "{normal}|extend|alt|open"),
679  m_sizechangedfcn ("sizechangedfcn", mh, Matrix ()),
680  m_toolbar ("toolbar", mh, "{auto}|figure|none"),
681  m_units ("units", mh, "{pixels}|normalized|inches|centimeters|points|characters"),
682  m_windowbuttondownfcn ("windowbuttondownfcn", mh, Matrix ()),
683  m_windowbuttonmotionfcn ("windowbuttonmotionfcn", mh, Matrix ()),
684  m_windowbuttonupfcn ("windowbuttonupfcn", mh, Matrix ()),
685  m_windowkeypressfcn ("windowkeypressfcn", mh, Matrix ()),
686  m_windowkeyreleasefcn ("windowkeyreleasefcn", mh, Matrix ()),
687  m_windowscrollwheelfcn ("windowscrollwheelfcn", mh, Matrix ()),
688  m_windowstate ("windowstate", mh, "{normal}|minimized|maximized|fullscreen"),
689  m_windowstyle ("windowstyle", mh, "{normal}|modal|docked"),
690  m_pickableparts ("pickableparts", mh, "{visible}"),
691  m___gl_extensions__ ("__gl_extensions__", mh, ""),
692  m___gl_renderer__ ("__gl_renderer__", mh, ""),
693  m___gl_vendor__ ("__gl_vendor__", mh, ""),
694  m___gl_version__ ("__gl_version__", mh, ""),
695  m___gl_window__ ("__gl_window__", mh, "off"),
696  m___graphics_toolkit__ ("__graphics_toolkit__", mh, default_graphics_toolkit ()),
697  m___guidata__ ("__guidata__", mh, Matrix ()),
698  m___mouse_mode__ ("__mouse_mode__", mh, "{none}|pan|rotate|select|text|zoom"),
699  m___printing__ ("__printing__", mh, "off"),
700  m___pan_mode__ ("__pan_mode__", mh, Matrix ()),
701  m___plot_stream__ ("__plot_stream__", mh, Matrix ()),
702  m___rotate_mode__ ("__rotate_mode__", mh, Matrix ()),
703  m___zoom_mode__ ("__zoom_mode__", mh, Matrix ()),
704  m___device_pixel_ratio__ ("__device_pixel_ratio__", mh, 1.0)
705 {
706  m_alphamap.set_id (ID_ALPHAMAP);
707  m_buttondownfcn.set_id (ID_BUTTONDOWNFCN);
708  m_closerequestfcn.set_id (ID_CLOSEREQUESTFCN);
709  m_color.set_id (ID_COLOR);
710  m_colormap.set_id (ID_COLORMAP);
711  m_currentaxes.set_id (ID_CURRENTAXES);
712  m_currentcharacter.set_id (ID_CURRENTCHARACTER);
713  m_currentobject.set_id (ID_CURRENTOBJECT);
714  m_currentpoint.set_id (ID_CURRENTPOINT);
715  m_dockcontrols.set_id (ID_DOCKCONTROLS);
716  m_filename.set_id (ID_FILENAME);
717  m_graphicssmoothing.set_id (ID_GRAPHICSSMOOTHING);
718  m_innerposition.set_id (ID_INNERPOSITION);
719  m_integerhandle.set_id (ID_INTEGERHANDLE);
720  m_inverthardcopy.set_id (ID_INVERTHARDCOPY);
721  m_keypressfcn.set_id (ID_KEYPRESSFCN);
722  m_keyreleasefcn.set_id (ID_KEYRELEASEFCN);
723  m_menubar.set_id (ID_MENUBAR);
724  m_name.set_id (ID_NAME);
725  m_number.set_id (ID_NUMBER);
726  m_nextplot.set_id (ID_NEXTPLOT);
727  m_numbertitle.set_id (ID_NUMBERTITLE);
728  m_outerposition.set_id (ID_OUTERPOSITION);
729  m_paperorientation.set_id (ID_PAPERORIENTATION);
730  m_paperposition.set_id (ID_PAPERPOSITION);
731  m_paperpositionmode.set_id (ID_PAPERPOSITIONMODE);
732  m_papersize.set_id (ID_PAPERSIZE);
733  m_papertype.set_id (ID_PAPERTYPE);
734  m_paperunits.set_id (ID_PAPERUNITS);
735  m_pointer.set_id (ID_POINTER);
736  m_pointershapecdata.set_id (ID_POINTERSHAPECDATA);
737  m_pointershapehotspot.set_id (ID_POINTERSHAPEHOTSPOT);
738  m_position.set_id (ID_POSITION);
739  m_renderer.set_id (ID_RENDERER);
740  m_renderermode.set_id (ID_RENDERERMODE);
741  m_resize.set_id (ID_RESIZE);
742  m_resizefcn.set_id (ID_RESIZEFCN);
743  m_selectiontype.set_id (ID_SELECTIONTYPE);
744  m_sizechangedfcn.set_id (ID_SIZECHANGEDFCN);
745  m_toolbar.set_id (ID_TOOLBAR);
746  m_units.set_id (ID_UNITS);
747  m_windowbuttondownfcn.set_id (ID_WINDOWBUTTONDOWNFCN);
748  m_windowbuttonmotionfcn.set_id (ID_WINDOWBUTTONMOTIONFCN);
749  m_windowbuttonupfcn.set_id (ID_WINDOWBUTTONUPFCN);
750  m_windowkeypressfcn.set_id (ID_WINDOWKEYPRESSFCN);
751  m_windowkeyreleasefcn.set_id (ID_WINDOWKEYRELEASEFCN);
752  m_windowscrollwheelfcn.set_id (ID_WINDOWSCROLLWHEELFCN);
753  m_windowstate.set_id (ID_WINDOWSTATE);
754  m_windowstyle.set_id (ID_WINDOWSTYLE);
755  m_pickableparts.set_id (ID_PICKABLEPARTS);
756  m_pickableparts.set_hidden (true);
757  m___gl_extensions__.set_id (ID___GL_EXTENSIONS__);
758  m___gl_extensions__.set_hidden (true);
759  m___gl_renderer__.set_id (ID___GL_RENDERER__);
760  m___gl_renderer__.set_hidden (true);
761  m___gl_vendor__.set_id (ID___GL_VENDOR__);
762  m___gl_vendor__.set_hidden (true);
763  m___gl_version__.set_id (ID___GL_VERSION__);
764  m___gl_version__.set_hidden (true);
765  m___gl_window__.set_id (ID___GL_WINDOW__);
766  m___gl_window__.set_hidden (true);
767  m___graphics_toolkit__.set_id (ID___GRAPHICS_TOOLKIT__);
768  m___graphics_toolkit__.set_hidden (true);
769  m___guidata__.set_id (ID___GUIDATA__);
770  m___guidata__.set_hidden (true);
771  m___mouse_mode__.set_id (ID___MOUSE_MODE__);
772  m___mouse_mode__.set_hidden (true);
773  m___printing__.set_id (ID___PRINTING__);
774  m___printing__.set_hidden (true);
775  m___pan_mode__.set_id (ID___PAN_MODE__);
776  m___pan_mode__.set_hidden (true);
777  m___plot_stream__.set_id (ID___PLOT_STREAM__);
778  m___plot_stream__.set_hidden (true);
779  m___rotate_mode__.set_id (ID___ROTATE_MODE__);
780  m___rotate_mode__.set_hidden (true);
781  m___zoom_mode__.set_id (ID___ZOOM_MODE__);
782  m___zoom_mode__.set_hidden (true);
783  m___device_pixel_ratio__.set_id (ID___DEVICE_PIXEL_RATIO__);
784  m___device_pixel_ratio__.set_hidden (true);
785  init ();
786 }
787 
788 void
789 figure::properties::set (const caseless_str& pname_arg, const octave_value& val)
790 {
791  const std::set<std::string>& pnames = all_property_names ();
792 
793  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
794 
795  if (has_readonly_property (pname))
796  {
797  error ("set: \"%s\" is read-only", pname.c_str ());
798  return;
799  }
800 
801  if (pname.compare ("alphamap"))
802  set_alphamap (val);
803  else if (pname.compare ("buttondownfcn"))
804  set_buttondownfcn (val);
805  else if (pname.compare ("closerequestfcn"))
806  set_closerequestfcn (val);
807  else if (pname.compare ("color"))
808  set_color (val);
809  else if (pname.compare ("colormap"))
810  set_colormap (val);
811  else if (pname.compare ("currentaxes"))
812  set_currentaxes (val);
813  else if (pname.compare ("dockcontrols"))
814  set_dockcontrols (val);
815  else if (pname.compare ("filename"))
816  set_filename (val);
817  else if (pname.compare ("graphicssmoothing"))
818  set_graphicssmoothing (val);
819  else if (pname.compare ("innerposition"))
820  set_innerposition (val);
821  else if (pname.compare ("integerhandle"))
822  set_integerhandle (val);
823  else if (pname.compare ("inverthardcopy"))
824  set_inverthardcopy (val);
825  else if (pname.compare ("keypressfcn"))
826  set_keypressfcn (val);
827  else if (pname.compare ("keyreleasefcn"))
828  set_keyreleasefcn (val);
829  else if (pname.compare ("menubar"))
830  set_menubar (val);
831  else if (pname.compare ("name"))
832  set_name (val);
833  else if (pname.compare ("nextplot"))
834  set_nextplot (val);
835  else if (pname.compare ("numbertitle"))
836  set_numbertitle (val);
837  else if (pname.compare ("outerposition"))
838  set_outerposition (val);
839  else if (pname.compare ("paperorientation"))
840  set_paperorientation (val);
841  else if (pname.compare ("paperposition"))
842  set_paperposition (val);
843  else if (pname.compare ("paperpositionmode"))
844  set_paperpositionmode (val);
845  else if (pname.compare ("papersize"))
846  set_papersize (val);
847  else if (pname.compare ("papertype"))
848  set_papertype (val);
849  else if (pname.compare ("paperunits"))
850  set_paperunits (val);
851  else if (pname.compare ("pointer"))
852  set_pointer (val);
853  else if (pname.compare ("pointershapecdata"))
854  set_pointershapecdata (val);
855  else if (pname.compare ("pointershapehotspot"))
856  set_pointershapehotspot (val);
857  else if (pname.compare ("position"))
858  set_position (val);
859  else if (pname.compare ("renderer"))
860  set_renderer (val);
861  else if (pname.compare ("renderermode"))
862  set_renderermode (val);
863  else if (pname.compare ("resize"))
864  set_resize (val);
865  else if (pname.compare ("resizefcn"))
866  set_resizefcn (val);
867  else if (pname.compare ("selectiontype"))
868  set_selectiontype (val);
869  else if (pname.compare ("sizechangedfcn"))
870  set_sizechangedfcn (val);
871  else if (pname.compare ("toolbar"))
872  set_toolbar (val);
873  else if (pname.compare ("units"))
874  set_units (val);
875  else if (pname.compare ("windowbuttondownfcn"))
876  set_windowbuttondownfcn (val);
877  else if (pname.compare ("windowbuttonmotionfcn"))
878  set_windowbuttonmotionfcn (val);
879  else if (pname.compare ("windowbuttonupfcn"))
880  set_windowbuttonupfcn (val);
881  else if (pname.compare ("windowkeypressfcn"))
882  set_windowkeypressfcn (val);
883  else if (pname.compare ("windowkeyreleasefcn"))
884  set_windowkeyreleasefcn (val);
885  else if (pname.compare ("windowscrollwheelfcn"))
886  set_windowscrollwheelfcn (val);
887  else if (pname.compare ("windowstate"))
888  set_windowstate (val);
889  else if (pname.compare ("windowstyle"))
890  set_windowstyle (val);
891  else if (pname.compare ("pickableparts"))
892  set_pickableparts (val);
893  else if (pname.compare ("__gl_window__"))
894  set___gl_window__ (val);
895  else if (pname.compare ("__graphics_toolkit__"))
896  set___graphics_toolkit__ (val);
897  else if (pname.compare ("__guidata__"))
898  set___guidata__ (val);
899  else if (pname.compare ("__mouse_mode__"))
900  set___mouse_mode__ (val);
901  else if (pname.compare ("__printing__"))
902  set___printing__ (val);
903  else if (pname.compare ("__pan_mode__"))
904  set___pan_mode__ (val);
905  else if (pname.compare ("__plot_stream__"))
906  set___plot_stream__ (val);
907  else if (pname.compare ("__rotate_mode__"))
908  set___rotate_mode__ (val);
909  else if (pname.compare ("__zoom_mode__"))
910  set___zoom_mode__ (val);
911  else if (pname.compare ("__device_pixel_ratio__"))
912  set___device_pixel_ratio__ (val);
913  else
914  base_properties::set (pname, val);
915 }
916 
918 figure::properties::get (bool all) const
919 {
921 
922  m.assign ("alphamap", octave_value (get_alphamap ()));
923  m.assign ("buttondownfcn", octave_value (get_buttondownfcn ()));
924  m.assign ("closerequestfcn", octave_value (get_closerequestfcn ()));
925  m.assign ("color", octave_value (get_color ()));
926  m.assign ("colormap", octave_value (get_colormap ()));
927  m.assign ("currentaxes", octave_value (get_currentaxes ().as_octave_value ()));
928  m.assign ("currentcharacter", octave_value (get_currentcharacter ()));
929  m.assign ("currentobject", octave_value (get_currentobject ().as_octave_value ()));
930  m.assign ("currentpoint", octave_value (get_currentpoint ()));
931  m.assign ("dockcontrols", octave_value (get_dockcontrols ()));
932  m.assign ("filename", octave_value (get_filename ()));
933  m.assign ("graphicssmoothing", octave_value (get_graphicssmoothing ()));
934  m.assign ("innerposition", octave_value (get_innerposition ()));
935  m.assign ("integerhandle", octave_value (get_integerhandle ()));
936  m.assign ("inverthardcopy", octave_value (get_inverthardcopy ()));
937  m.assign ("keypressfcn", octave_value (get_keypressfcn ()));
938  m.assign ("keyreleasefcn", octave_value (get_keyreleasefcn ()));
939  m.assign ("menubar", octave_value (get_menubar ()));
940  m.assign ("name", octave_value (get_name ()));
941  m.assign ("number", octave_value (get_number ()));
942  m.assign ("nextplot", octave_value (get_nextplot ()));
943  m.assign ("numbertitle", octave_value (get_numbertitle ()));
944  m.assign ("outerposition", octave_value (get_outerposition ()));
945  m.assign ("paperorientation", octave_value (get_paperorientation ()));
946  m.assign ("paperposition", octave_value (get_paperposition ()));
947  m.assign ("paperpositionmode", octave_value (get_paperpositionmode ()));
948  m.assign ("papersize", octave_value (get_papersize ()));
949  m.assign ("papertype", octave_value (get_papertype ()));
950  m.assign ("paperunits", octave_value (get_paperunits ()));
951  m.assign ("pointer", octave_value (get_pointer ()));
952  m.assign ("pointershapecdata", octave_value (get_pointershapecdata ()));
953  m.assign ("pointershapehotspot", octave_value (get_pointershapehotspot ()));
954  m.assign ("position", octave_value (get_position ()));
955  m.assign ("renderer", octave_value (get_renderer ()));
956  m.assign ("renderermode", octave_value (get_renderermode ()));
957  m.assign ("resize", octave_value (get_resize ()));
958  m.assign ("resizefcn", octave_value (get_resizefcn ()));
959  m.assign ("selectiontype", octave_value (get_selectiontype ()));
960  m.assign ("sizechangedfcn", octave_value (get_sizechangedfcn ()));
961  m.assign ("toolbar", octave_value (get_toolbar ()));
962  m.assign ("units", octave_value (get_units ()));
963  m.assign ("windowbuttondownfcn", octave_value (get_windowbuttondownfcn ()));
964  m.assign ("windowbuttonmotionfcn", octave_value (get_windowbuttonmotionfcn ()));
965  m.assign ("windowbuttonupfcn", octave_value (get_windowbuttonupfcn ()));
966  m.assign ("windowkeypressfcn", octave_value (get_windowkeypressfcn ()));
967  m.assign ("windowkeyreleasefcn", octave_value (get_windowkeyreleasefcn ()));
968  m.assign ("windowscrollwheelfcn", octave_value (get_windowscrollwheelfcn ()));
969  m.assign ("windowstate", octave_value (get_windowstate ()));
970  m.assign ("windowstyle", octave_value (get_windowstyle ()));
971  if (all)
972  m.assign ("pickableparts", octave_value (get_pickableparts ()));
973  if (all)
974  m.assign ("__gl_extensions__", octave_value (get___gl_extensions__ ()));
975  if (all)
976  m.assign ("__gl_renderer__", octave_value (get___gl_renderer__ ()));
977  if (all)
978  m.assign ("__gl_vendor__", octave_value (get___gl_vendor__ ()));
979  if (all)
980  m.assign ("__gl_version__", octave_value (get___gl_version__ ()));
981  if (all)
982  m.assign ("__gl_window__", octave_value (get___gl_window__ ()));
983  if (all)
984  m.assign ("__graphics_toolkit__", octave_value (get___graphics_toolkit__ ()));
985  if (all)
986  m.assign ("__guidata__", octave_value (get___guidata__ ()));
987  if (all)
988  m.assign ("__mouse_mode__", octave_value (get___mouse_mode__ ()));
989  if (all)
990  m.assign ("__printing__", octave_value (get___printing__ ()));
991  if (all)
992  m.assign ("__pan_mode__", octave_value (get___pan_mode__ ()));
993  if (all)
994  m.assign ("__plot_stream__", octave_value (get___plot_stream__ ()));
995  if (all)
996  m.assign ("__rotate_mode__", octave_value (get___rotate_mode__ ()));
997  if (all)
998  m.assign ("__zoom_mode__", octave_value (get___zoom_mode__ ()));
999  if (all)
1000  m.assign ("__device_pixel_ratio__", octave_value (get___device_pixel_ratio__ ()));
1001 
1002  return m;
1003 }
1004 
1006 figure::properties::get (const caseless_str& pname_arg) const
1007 {
1008  octave_value retval;
1009 
1010  const std::set<std::string>& pnames = all_property_names ();
1011 
1012  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
1013 
1014  if (pname.compare ("alphamap"))
1015  retval = get_alphamap ();
1016  else if (pname.compare ("buttondownfcn"))
1017  retval = get_buttondownfcn ();
1018  else if (pname.compare ("closerequestfcn"))
1019  retval = get_closerequestfcn ();
1020  else if (pname.compare ("color"))
1021  retval = get_color ();
1022  else if (pname.compare ("colormap"))
1023  retval = get_colormap ();
1024  else if (pname.compare ("currentaxes"))
1025  retval = get_currentaxes ().as_octave_value ();
1026  else if (pname.compare ("currentcharacter"))
1027  retval = get_currentcharacter ();
1028  else if (pname.compare ("currentobject"))
1029  retval = get_currentobject ().as_octave_value ();
1030  else if (pname.compare ("currentpoint"))
1031  retval = get_currentpoint ();
1032  else if (pname.compare ("dockcontrols"))
1033  retval = get_dockcontrols ();
1034  else if (pname.compare ("filename"))
1035  retval = get_filename ();
1036  else if (pname.compare ("graphicssmoothing"))
1037  retval = get_graphicssmoothing ();
1038  else if (pname.compare ("innerposition"))
1039  retval = get_innerposition ();
1040  else if (pname.compare ("integerhandle"))
1041  retval = get_integerhandle ();
1042  else if (pname.compare ("inverthardcopy"))
1043  retval = get_inverthardcopy ();
1044  else if (pname.compare ("keypressfcn"))
1045  retval = get_keypressfcn ();
1046  else if (pname.compare ("keyreleasefcn"))
1047  retval = get_keyreleasefcn ();
1048  else if (pname.compare ("menubar"))
1049  retval = get_menubar ();
1050  else if (pname.compare ("name"))
1051  retval = get_name ();
1052  else if (pname.compare ("number"))
1053  retval = get_number ();
1054  else if (pname.compare ("nextplot"))
1055  retval = get_nextplot ();
1056  else if (pname.compare ("numbertitle"))
1057  retval = get_numbertitle ();
1058  else if (pname.compare ("outerposition"))
1059  retval = get_outerposition ();
1060  else if (pname.compare ("paperorientation"))
1061  retval = get_paperorientation ();
1062  else if (pname.compare ("paperposition"))
1063  retval = get_paperposition ();
1064  else if (pname.compare ("paperpositionmode"))
1065  retval = get_paperpositionmode ();
1066  else if (pname.compare ("papersize"))
1067  retval = get_papersize ();
1068  else if (pname.compare ("papertype"))
1069  retval = get_papertype ();
1070  else if (pname.compare ("paperunits"))
1071  retval = get_paperunits ();
1072  else if (pname.compare ("pointer"))
1073  retval = get_pointer ();
1074  else if (pname.compare ("pointershapecdata"))
1075  retval = get_pointershapecdata ();
1076  else if (pname.compare ("pointershapehotspot"))
1077  retval = get_pointershapehotspot ();
1078  else if (pname.compare ("position"))
1079  retval = get_position ();
1080  else if (pname.compare ("renderer"))
1081  retval = get_renderer ();
1082  else if (pname.compare ("renderermode"))
1083  retval = get_renderermode ();
1084  else if (pname.compare ("resize"))
1085  retval = get_resize ();
1086  else if (pname.compare ("resizefcn"))
1087  retval = get_resizefcn ();
1088  else if (pname.compare ("selectiontype"))
1089  retval = get_selectiontype ();
1090  else if (pname.compare ("sizechangedfcn"))
1091  retval = get_sizechangedfcn ();
1092  else if (pname.compare ("toolbar"))
1093  retval = get_toolbar ();
1094  else if (pname.compare ("units"))
1095  retval = get_units ();
1096  else if (pname.compare ("windowbuttondownfcn"))
1097  retval = get_windowbuttondownfcn ();
1098  else if (pname.compare ("windowbuttonmotionfcn"))
1099  retval = get_windowbuttonmotionfcn ();
1100  else if (pname.compare ("windowbuttonupfcn"))
1101  retval = get_windowbuttonupfcn ();
1102  else if (pname.compare ("windowkeypressfcn"))
1103  retval = get_windowkeypressfcn ();
1104  else if (pname.compare ("windowkeyreleasefcn"))
1105  retval = get_windowkeyreleasefcn ();
1106  else if (pname.compare ("windowscrollwheelfcn"))
1107  retval = get_windowscrollwheelfcn ();
1108  else if (pname.compare ("windowstate"))
1109  retval = get_windowstate ();
1110  else if (pname.compare ("windowstyle"))
1111  retval = get_windowstyle ();
1112  else if (pname.compare ("pickableparts"))
1113  retval = get_pickableparts ();
1114  else if (pname.compare ("__gl_extensions__"))
1115  retval = get___gl_extensions__ ();
1116  else if (pname.compare ("__gl_renderer__"))
1117  retval = get___gl_renderer__ ();
1118  else if (pname.compare ("__gl_vendor__"))
1119  retval = get___gl_vendor__ ();
1120  else if (pname.compare ("__gl_version__"))
1121  retval = get___gl_version__ ();
1122  else if (pname.compare ("__gl_window__"))
1123  retval = get___gl_window__ ();
1124  else if (pname.compare ("__graphics_toolkit__"))
1125  retval = get___graphics_toolkit__ ();
1126  else if (pname.compare ("__guidata__"))
1127  retval = get___guidata__ ();
1128  else if (pname.compare ("__mouse_mode__"))
1129  retval = get___mouse_mode__ ();
1130  else if (pname.compare ("__printing__"))
1131  retval = get___printing__ ();
1132  else if (pname.compare ("__pan_mode__"))
1133  retval = get___pan_mode__ ();
1134  else if (pname.compare ("__plot_stream__"))
1135  retval = get___plot_stream__ ();
1136  else if (pname.compare ("__rotate_mode__"))
1137  retval = get___rotate_mode__ ();
1138  else if (pname.compare ("__zoom_mode__"))
1139  retval = get___zoom_mode__ ();
1140  else if (pname.compare ("__device_pixel_ratio__"))
1141  retval = get___device_pixel_ratio__ ();
1142  else
1143  retval = base_properties::get (pname);
1144 
1145  return retval;
1146 }
1147 
1148 property
1150 {
1151  const std::set<std::string>& pnames = all_property_names ();
1152 
1153  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
1154 
1155  if (pname.compare ("alphamap"))
1156  return property (&m_alphamap, true);
1157  else if (pname.compare ("buttondownfcn"))
1158  return property (&m_buttondownfcn, true);
1159  else if (pname.compare ("closerequestfcn"))
1160  return property (&m_closerequestfcn, true);
1161  else if (pname.compare ("color"))
1162  return property (&m_color, true);
1163  else if (pname.compare ("colormap"))
1164  return property (&m_colormap, true);
1165  else if (pname.compare ("currentaxes"))
1166  return property (&m_currentaxes, true);
1167  else if (pname.compare ("currentcharacter"))
1168  return property (&m_currentcharacter, true);
1169  else if (pname.compare ("currentobject"))
1170  return property (&m_currentobject, true);
1171  else if (pname.compare ("currentpoint"))
1172  return property (&m_currentpoint, true);
1173  else if (pname.compare ("dockcontrols"))
1174  return property (&m_dockcontrols, true);
1175  else if (pname.compare ("filename"))
1176  return property (&m_filename, true);
1177  else if (pname.compare ("graphicssmoothing"))
1178  return property (&m_graphicssmoothing, true);
1179  else if (pname.compare ("innerposition"))
1180  return property (&m_innerposition, true);
1181  else if (pname.compare ("integerhandle"))
1182  return property (&m_integerhandle, true);
1183  else if (pname.compare ("inverthardcopy"))
1184  return property (&m_inverthardcopy, true);
1185  else if (pname.compare ("keypressfcn"))
1186  return property (&m_keypressfcn, true);
1187  else if (pname.compare ("keyreleasefcn"))
1188  return property (&m_keyreleasefcn, true);
1189  else if (pname.compare ("menubar"))
1190  return property (&m_menubar, true);
1191  else if (pname.compare ("name"))
1192  return property (&m_name, true);
1193  else if (pname.compare ("number"))
1194  return property (&m_number, true);
1195  else if (pname.compare ("nextplot"))
1196  return property (&m_nextplot, true);
1197  else if (pname.compare ("numbertitle"))
1198  return property (&m_numbertitle, true);
1199  else if (pname.compare ("outerposition"))
1200  return property (&m_outerposition, true);
1201  else if (pname.compare ("paperorientation"))
1202  return property (&m_paperorientation, true);
1203  else if (pname.compare ("paperposition"))
1204  return property (&m_paperposition, true);
1205  else if (pname.compare ("paperpositionmode"))
1206  return property (&m_paperpositionmode, true);
1207  else if (pname.compare ("papersize"))
1208  return property (&m_papersize, true);
1209  else if (pname.compare ("papertype"))
1210  return property (&m_papertype, true);
1211  else if (pname.compare ("paperunits"))
1212  return property (&m_paperunits, true);
1213  else if (pname.compare ("pointer"))
1214  return property (&m_pointer, true);
1215  else if (pname.compare ("pointershapecdata"))
1216  return property (&m_pointershapecdata, true);
1217  else if (pname.compare ("pointershapehotspot"))
1218  return property (&m_pointershapehotspot, true);
1219  else if (pname.compare ("position"))
1220  return property (&m_position, true);
1221  else if (pname.compare ("renderer"))
1222  return property (&m_renderer, true);
1223  else if (pname.compare ("renderermode"))
1224  return property (&m_renderermode, true);
1225  else if (pname.compare ("resize"))
1226  return property (&m_resize, true);
1227  else if (pname.compare ("resizefcn"))
1228  return property (&m_resizefcn, true);
1229  else if (pname.compare ("selectiontype"))
1230  return property (&m_selectiontype, true);
1231  else if (pname.compare ("sizechangedfcn"))
1232  return property (&m_sizechangedfcn, true);
1233  else if (pname.compare ("toolbar"))
1234  return property (&m_toolbar, true);
1235  else if (pname.compare ("units"))
1236  return property (&m_units, true);
1237  else if (pname.compare ("windowbuttondownfcn"))
1238  return property (&m_windowbuttondownfcn, true);
1239  else if (pname.compare ("windowbuttonmotionfcn"))
1240  return property (&m_windowbuttonmotionfcn, true);
1241  else if (pname.compare ("windowbuttonupfcn"))
1242  return property (&m_windowbuttonupfcn, true);
1243  else if (pname.compare ("windowkeypressfcn"))
1244  return property (&m_windowkeypressfcn, true);
1245  else if (pname.compare ("windowkeyreleasefcn"))
1246  return property (&m_windowkeyreleasefcn, true);
1247  else if (pname.compare ("windowscrollwheelfcn"))
1248  return property (&m_windowscrollwheelfcn, true);
1249  else if (pname.compare ("windowstate"))
1250  return property (&m_windowstate, true);
1251  else if (pname.compare ("windowstyle"))
1252  return property (&m_windowstyle, true);
1253  else if (pname.compare ("pickableparts"))
1254  return property (&m_pickableparts, true);
1255  else if (pname.compare ("__gl_extensions__"))
1256  return property (&m___gl_extensions__, true);
1257  else if (pname.compare ("__gl_renderer__"))
1258  return property (&m___gl_renderer__, true);
1259  else if (pname.compare ("__gl_vendor__"))
1260  return property (&m___gl_vendor__, true);
1261  else if (pname.compare ("__gl_version__"))
1262  return property (&m___gl_version__, true);
1263  else if (pname.compare ("__gl_window__"))
1264  return property (&m___gl_window__, true);
1265  else if (pname.compare ("__graphics_toolkit__"))
1266  return property (&m___graphics_toolkit__, true);
1267  else if (pname.compare ("__guidata__"))
1268  return property (&m___guidata__, true);
1269  else if (pname.compare ("__mouse_mode__"))
1270  return property (&m___mouse_mode__, true);
1271  else if (pname.compare ("__printing__"))
1272  return property (&m___printing__, true);
1273  else if (pname.compare ("__pan_mode__"))
1274  return property (&m___pan_mode__, true);
1275  else if (pname.compare ("__plot_stream__"))
1276  return property (&m___plot_stream__, true);
1277  else if (pname.compare ("__rotate_mode__"))
1278  return property (&m___rotate_mode__, true);
1279  else if (pname.compare ("__zoom_mode__"))
1280  return property (&m___zoom_mode__, true);
1281  else if (pname.compare ("__device_pixel_ratio__"))
1282  return property (&m___device_pixel_ratio__, true);
1283  else
1284  return base_properties::get_property (pname);
1285 }
1286 
1289 {
1291 
1292  m["alphamap"] = Matrix (64, 1, 1);
1293  m["buttondownfcn"] = Matrix ();
1294  m["closerequestfcn"] = "closereq";
1295  m["color"] = color_property (color_values (1, 1, 1), radio_values ("none"));
1296  m["colormap"] = viridis_colormap ();
1297  m["currentaxes"] = graphics_handle ().as_octave_value ();
1298  m["currentcharacter"] = "";
1299  m["currentobject"] = graphics_handle ().as_octave_value ();
1300  m["currentpoint"] = Matrix (2, 1, 0);
1301  m["dockcontrols"] = "on";
1302  m["filename"] = "";
1303  m["graphicssmoothing"] = "on";
1304  m["innerposition"] = default_figure_position ();
1305  m["integerhandle"] = "on";
1306  m["inverthardcopy"] = "on";
1307  m["keypressfcn"] = Matrix ();
1308  m["keyreleasefcn"] = Matrix ();
1309  m["menubar"] = "figure";
1310  m["name"] = "";
1311  m["number"] = Matrix ();
1312  m["nextplot"] = "add";
1313  m["numbertitle"] = "on";
1314  m["outerposition"] = Matrix (1, 4, -1.0);
1315  m["paperorientation"] = "portrait";
1316  m["paperposition"] = default_figure_paperposition ();
1317  m["paperpositionmode"] = "auto";
1318  m["papersize"] = default_figure_papersize ();
1319  m["papertype"] = "usletter";
1320  m["paperunits"] = "inches";
1321  m["pointer"] = "arrow";
1322  m["pointershapecdata"] = Matrix (16, 16, 1);
1323  m["pointershapehotspot"] = Matrix (1, 2, 1);
1324  m["position"] = default_figure_position ();
1325  m["renderer"] = "opengl";
1326  m["renderermode"] = "auto";
1327  m["resize"] = "on";
1328  m["resizefcn"] = Matrix ();
1329  m["selectiontype"] = "normal";
1330  m["sizechangedfcn"] = Matrix ();
1331  m["toolbar"] = "auto";
1332  m["units"] = "pixels";
1333  m["windowbuttondownfcn"] = Matrix ();
1334  m["windowbuttonmotionfcn"] = Matrix ();
1335  m["windowbuttonupfcn"] = Matrix ();
1336  m["windowkeypressfcn"] = Matrix ();
1337  m["windowkeyreleasefcn"] = Matrix ();
1338  m["windowscrollwheelfcn"] = Matrix ();
1339  m["windowstate"] = "normal";
1340  m["windowstyle"] = "normal";
1341  m["pickableparts"] = "visible";
1342  m["__gl_extensions__"] = "";
1343  m["__gl_renderer__"] = "";
1344  m["__gl_vendor__"] = "";
1345  m["__gl_version__"] = "";
1346  m["__gl_window__"] = "off";
1347  m["__graphics_toolkit__"] = default_graphics_toolkit ();
1348  m["__guidata__"] = Matrix ();
1349  m["__mouse_mode__"] = "none";
1350  m["__printing__"] = "off";
1351  m["__pan_mode__"] = Matrix ();
1352  m["__plot_stream__"] = Matrix ();
1353  m["__rotate_mode__"] = Matrix ();
1354  m["__zoom_mode__"] = Matrix ();
1355  m["__device_pixel_ratio__"] = 1.0;
1356 
1357  return m;
1358 }
1359 
1360 std::string figure::properties::s_go_name ("figure");
1361 
1362 std::set<std::string>
1364 {
1365  static std::set<std::string> all_pnames;
1366 
1367  static bool initialized = false;
1368 
1369  if (! initialized)
1370  {
1371  all_pnames.insert ("alphamap");
1372  all_pnames.insert ("buttondownfcn");
1373  all_pnames.insert ("closerequestfcn");
1374  all_pnames.insert ("color");
1375  all_pnames.insert ("colormap");
1376  all_pnames.insert ("currentaxes");
1377  all_pnames.insert ("currentcharacter");
1378  all_pnames.insert ("currentobject");
1379  all_pnames.insert ("currentpoint");
1380  all_pnames.insert ("dockcontrols");
1381  all_pnames.insert ("filename");
1382  all_pnames.insert ("graphicssmoothing");
1383  all_pnames.insert ("innerposition");
1384  all_pnames.insert ("integerhandle");
1385  all_pnames.insert ("inverthardcopy");
1386  all_pnames.insert ("keypressfcn");
1387  all_pnames.insert ("keyreleasefcn");
1388  all_pnames.insert ("menubar");
1389  all_pnames.insert ("name");
1390  all_pnames.insert ("number");
1391  all_pnames.insert ("nextplot");
1392  all_pnames.insert ("numbertitle");
1393  all_pnames.insert ("outerposition");
1394  all_pnames.insert ("paperorientation");
1395  all_pnames.insert ("paperposition");
1396  all_pnames.insert ("paperpositionmode");
1397  all_pnames.insert ("papersize");
1398  all_pnames.insert ("papertype");
1399  all_pnames.insert ("paperunits");
1400  all_pnames.insert ("pointer");
1401  all_pnames.insert ("pointershapecdata");
1402  all_pnames.insert ("pointershapehotspot");
1403  all_pnames.insert ("position");
1404  all_pnames.insert ("renderer");
1405  all_pnames.insert ("renderermode");
1406  all_pnames.insert ("resize");
1407  all_pnames.insert ("resizefcn");
1408  all_pnames.insert ("selectiontype");
1409  all_pnames.insert ("sizechangedfcn");
1410  all_pnames.insert ("toolbar");
1411  all_pnames.insert ("units");
1412  all_pnames.insert ("windowbuttondownfcn");
1413  all_pnames.insert ("windowbuttonmotionfcn");
1414  all_pnames.insert ("windowbuttonupfcn");
1415  all_pnames.insert ("windowkeypressfcn");
1416  all_pnames.insert ("windowkeyreleasefcn");
1417  all_pnames.insert ("windowscrollwheelfcn");
1418  all_pnames.insert ("windowstate");
1419  all_pnames.insert ("windowstyle");
1420  all_pnames.insert ("pickableparts");
1421  all_pnames.insert ("__gl_extensions__");
1422  all_pnames.insert ("__gl_renderer__");
1423  all_pnames.insert ("__gl_vendor__");
1424  all_pnames.insert ("__gl_version__");
1425  all_pnames.insert ("__gl_window__");
1426  all_pnames.insert ("__graphics_toolkit__");
1427  all_pnames.insert ("__guidata__");
1428  all_pnames.insert ("__mouse_mode__");
1429  all_pnames.insert ("__printing__");
1430  all_pnames.insert ("__pan_mode__");
1431  all_pnames.insert ("__plot_stream__");
1432  all_pnames.insert ("__rotate_mode__");
1433  all_pnames.insert ("__zoom_mode__");
1434  all_pnames.insert ("__device_pixel_ratio__");
1435 
1436  std::set<std::string> base_pnames = base_properties::core_property_names ();
1437  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
1438 
1439  initialized = true;
1440  }
1441 
1442  return all_pnames;
1443 }
1444 
1445 bool
1447 {
1448  std::set<std::string> pnames = core_property_names ();
1449 
1450  return pnames.find (pname) != pnames.end ();
1451 }
1452 
1453 std::set<std::string>
1455 {
1456  static std::set<std::string> all_pnames;
1457 
1458  static bool initialized = false;
1459 
1460  if (! initialized)
1461  {
1462  all_pnames.insert ("currentcharacter");
1463  all_pnames.insert ("currentobject");
1464  all_pnames.insert ("currentpoint");
1465  all_pnames.insert ("number");
1466  all_pnames.insert ("__gl_extensions__");
1467  all_pnames.insert ("__gl_renderer__");
1468  all_pnames.insert ("__gl_vendor__");
1469  all_pnames.insert ("__gl_version__");
1470 
1471  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
1472  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
1473 
1474  initialized = true;
1475  }
1476 
1477  return all_pnames;
1478 }
1479 
1480 bool
1482 {
1483  std::set<std::string> pnames = readonly_property_names ();
1484 
1485  return pnames.find (pname) != pnames.end ();
1486 }
1487 
1488 std::set<std::string>
1490 {
1491  static std::set<std::string> all_pnames = core_property_names ();
1492 
1493  std::set<std::string> retval = all_pnames;
1494  std::set<std::string> base_props = base_properties::all_property_names ();
1495  retval.insert (base_props.begin (), base_props.end ());
1496 
1497  return retval;
1498 }
1499 
1500 bool
1502 {
1503  std::set<std::string> pnames = all_property_names ();
1504 
1505  return pnames.find (pname) != pnames.end ();
1506 }
1507 
1508 // ******** axes ********
1509 
1511  : base_properties (s_go_name, mh, p),
1512  m_activepositionproperty ("activepositionproperty", mh, "{outerposition}|position"),
1513  m_alim ("alim", mh, default_lim ()),
1514  m_alimmode ("alimmode", mh, "{auto}|manual"),
1515  m_alphamap ("alphamap", mh, Matrix ()),
1516  m_alphascale ("alphascale", mh, "{linear}|log"),
1517  m_ambientlightcolor ("ambientlightcolor", mh, color_values (1, 1, 1)),
1518  m_box ("box", mh, "off"),
1519  m_boxstyle ("boxstyle", mh, "{back}|full"),
1520  m_cameraposition ("cameraposition", mh, Matrix (1, 3, 0.0)),
1521  m_camerapositionmode ("camerapositionmode", mh, "{auto}|manual"),
1522  m_cameratarget ("cameratarget", mh, Matrix (1, 3, 0.0)),
1523  m_cameratargetmode ("cameratargetmode", mh, "{auto}|manual"),
1524  m_cameraupvector ("cameraupvector", mh, Matrix (1, 3, 0.0)),
1525  m_cameraupvectormode ("cameraupvectormode", mh, "{auto}|manual"),
1526  m_cameraviewangle ("cameraviewangle", mh, 6.6086),
1527  m_cameraviewanglemode ("cameraviewanglemode", mh, "{auto}|manual"),
1528  m_clim ("clim", mh, default_lim ()),
1529  m_climmode ("climmode", mh, "{auto}|manual"),
1530  m_clippingstyle ("clippingstyle", mh, "{3dbox}|rectangle"),
1531  m_color ("color", mh, color_property (color_values (1, 1, 1), radio_values ("none"))),
1532  m_colormap ("colormap", mh, Matrix ()),
1533  m_colororder ("colororder", mh, default_colororder ()),
1534  m_colororderindex ("colororderindex", mh, 1.0),
1535  m_colorscale ("colorscale", mh, "{linear}|log"),
1536  m_currentpoint ("currentpoint", mh, Matrix (2, 3, 0.0)),
1537  m_dataaspectratio ("dataaspectratio", mh, Matrix (1, 3, 1.0)),
1538  m_dataaspectratiomode ("dataaspectratiomode", mh, "{auto}|manual"),
1539  m_fontangle ("fontangle", mh, "{normal}|italic"),
1540  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
1541  m_fontsize ("fontsize", mh, 10),
1542  m_fontsizemode ("fontsizemode", mh, "{auto}|manual"),
1543  m_fontsmoothing ("fontsmoothing", mh, "on"),
1544  m_fontunits ("fontunits", mh, "{points}|inches|centimeters|normalized|pixels"),
1545  m_fontweight ("fontweight", mh, "{normal}|bold"),
1546  m_gridalpha ("gridalpha", mh, 0.15),
1547  m_gridalphamode ("gridalphamode", mh, "{auto}|manual"),
1548  m_gridcolor ("gridcolor", mh, color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"))),
1549  m_gridcolormode ("gridcolormode", mh, "{auto}|manual"),
1550  m_gridlinestyle ("gridlinestyle", mh, "{-}|--|:|-.|none"),
1551  m_innerposition ("innerposition", mh, default_axes_position ()),
1552  m_interactions ("interactions", mh, Matrix ()),
1553  m_labelfontsizemultiplier ("labelfontsizemultiplier", mh, 1.1),
1554  m_layer ("layer", mh, "{bottom}|top"),
1555  m_layout ("layout", mh, graphics_handle ()),
1556  m_legend ("legend", mh, graphics_handle ()),
1557  m_linestyleorder ("linestyleorder", mh, "-"),
1558  m_linestyleorderindex ("linestyleorderindex", mh, 1.0),
1559  m_linewidth ("linewidth", mh, 0.5),
1560  m_minorgridalpha ("minorgridalpha", mh, 0.25),
1561  m_minorgridalphamode ("minorgridalphamode", mh, "{auto}|manual"),
1562  m_minorgridcolor ("minorgridcolor", mh, color_property (color_values (0.1, 0.1, 0.1), radio_values ("none"))),
1563  m_minorgridcolormode ("minorgridcolormode", mh, "{auto}|manual"),
1564  m_minorgridlinestyle ("minorgridlinestyle", mh, "{:}|-|--|-.|none"),
1565  m_nextplot ("nextplot", mh, "{replace}|add|replacechildren"),
1566  m_nextseriesindex ("nextseriesindex", mh, 1.0),
1567  m_outerposition ("outerposition", mh, default_axes_outerposition ()),
1568  m_plotboxaspectratio ("plotboxaspectratio", mh, Matrix (1, 3, 1.0)),
1569  m_plotboxaspectratiomode ("plotboxaspectratiomode", mh, "{auto}|manual"),
1570  m_position ("position", mh, default_axes_position ()),
1571  m_positionconstraint ("positionconstraint", mh, "{outerposition}|innerposition"),
1572  m_projection ("projection", mh, "{orthographic}|perspective"),
1573  m_sortmethod ("sortmethod", mh, "{depth}|childorder"),
1574  m_tickdir ("tickdir", mh, "{in}|out|both|none"),
1575  m_tickdirmode ("tickdirmode", mh, "{auto}|manual"),
1576  m_ticklabelinterpreter ("ticklabelinterpreter", mh, "{tex}|latex|none"),
1577  m_ticklength ("ticklength", mh, default_axes_ticklength ()),
1578  m_tightinset ("tightinset", mh, Matrix (1, 4, 0.0)),
1579  m_title ("title", mh, make_graphics_handle ("text", m___myhandle__, false, false, false)),
1580  m_titlefontsizemultiplier ("titlefontsizemultiplier", mh, 1.1),
1581  m_titlefontweight ("titlefontweight", mh, "{bold}|normal"),
1582  m_toolbar ("toolbar", mh, graphics_handle ()),
1583  m_units ("units", mh, "{normalized}|inches|centimeters|points|pixels|characters"),
1584  m_view ("view", mh, default_axes_view ()),
1585  m_xaxis ("xaxis", mh, graphics_handle ()),
1586  m_xaxislocation ("xaxislocation", mh, "{bottom}|top|origin"),
1587  m_xcolor ("xcolor", mh, color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"))),
1588  m_xcolormode ("xcolormode", mh, "{auto}|manual"),
1589  m_xdir ("xdir", mh, "{normal}|reverse"),
1590  m_xgrid ("xgrid", mh, "off"),
1591  m_xlabel ("xlabel", mh, make_graphics_handle ("text", m___myhandle__, false, false, false)),
1592  m_xlim ("xlim", mh, default_lim ()),
1593  m_xlimitmethod ("xlimitmethod", mh, "{tickaligned}|tight|padded"),
1594  m_xlimmode ("xlimmode", mh, "{auto}|manual"),
1595  m_xminorgrid ("xminorgrid", mh, "off"),
1596  m_xminortick ("xminortick", mh, "off"),
1597  m_xscale ("xscale", mh, "{linear}|log"),
1598  m_xtick ("xtick", mh, default_axes_tick ()),
1599  m_xticklabel ("xticklabel", mh, ""),
1600  m_xticklabelmode ("xticklabelmode", mh, "{auto}|manual"),
1601  m_xticklabelrotation ("xticklabelrotation", mh, 0.0),
1602  m_xtickmode ("xtickmode", mh, "{auto}|manual"),
1603  m_yaxis ("yaxis", mh, graphics_handle ()),
1604  m_yaxislocation ("yaxislocation", mh, "{left}|right|origin"),
1605  m_ycolor ("ycolor", mh, color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"))),
1606  m_ycolormode ("ycolormode", mh, "{auto}|manual"),
1607  m_ydir ("ydir", mh, "{normal}|reverse"),
1608  m_ygrid ("ygrid", mh, "off"),
1609  m_ylabel ("ylabel", mh, make_graphics_handle ("text", m___myhandle__, false, false, false)),
1610  m_ylim ("ylim", mh, default_lim ()),
1611  m_ylimitmethod ("ylimitmethod", mh, "{tickaligned}|tight|padded"),
1612  m_ylimmode ("ylimmode", mh, "{auto}|manual"),
1613  m_yminorgrid ("yminorgrid", mh, "off"),
1614  m_yminortick ("yminortick", mh, "off"),
1615  m_yscale ("yscale", mh, "{linear}|log"),
1616  m_ytick ("ytick", mh, default_axes_tick ()),
1617  m_yticklabel ("yticklabel", mh, ""),
1618  m_yticklabelmode ("yticklabelmode", mh, "{auto}|manual"),
1619  m_yticklabelrotation ("yticklabelrotation", mh, 0.0),
1620  m_ytickmode ("ytickmode", mh, "{auto}|manual"),
1621  m_zaxis ("zaxis", mh, graphics_handle ()),
1622  m_zcolor ("zcolor", mh, color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"))),
1623  m_zcolormode ("zcolormode", mh, "{auto}|manual"),
1624  m_zdir ("zdir", mh, "{normal}|reverse"),
1625  m_zgrid ("zgrid", mh, "off"),
1626  m_zlabel ("zlabel", mh, make_graphics_handle ("text", m___myhandle__, false, false, false)),
1627  m_zlim ("zlim", mh, default_lim ()),
1628  m_zlimitmethod ("zlimitmethod", mh, "{tickaligned}|tight|padded"),
1629  m_zlimmode ("zlimmode", mh, "{auto}|manual"),
1630  m_zminorgrid ("zminorgrid", mh, "off"),
1631  m_zminortick ("zminortick", mh, "off"),
1632  m_zscale ("zscale", mh, "{linear}|log"),
1633  m_ztick ("ztick", mh, default_axes_tick ()),
1634  m_zticklabel ("zticklabel", mh, ""),
1635  m_zticklabelmode ("zticklabelmode", mh, "{auto}|manual"),
1636  m_zticklabelrotation ("zticklabelrotation", mh, 0.0),
1637  m_ztickmode ("ztickmode", mh, "{auto}|manual"),
1638  m___colormap__ ("__colormap__", mh, Matrix ()),
1639  m_mousewheelzoom ("mousewheelzoom", mh, 0.5),
1640  m___autopos_tag__ ("__autopos_tag__", mh, "{none}|subplot"),
1641  m_looseinset ("looseinset", mh, Matrix (1, 4, 0.0)),
1642  m_xminortickvalues ("xminortickvalues", mh, Matrix ()),
1643  m_yminortickvalues ("yminortickvalues", mh, Matrix ()),
1644  m_zminortickvalues ("zminortickvalues", mh, Matrix ()),
1645  m___fontsize_points__ ("__fontsize_points__", mh, 0)
1646 {
1647  m_activepositionproperty.set_id (ID_ACTIVEPOSITIONPROPERTY);
1648  m_activepositionproperty.set_hidden (true);
1649  m_alim.set_id (ID_ALIM);
1650  m_alimmode.set_id (ID_ALIMMODE);
1651  m_alphamap.set_id (ID_ALPHAMAP);
1652  m_alphascale.set_id (ID_ALPHASCALE);
1653  m_ambientlightcolor.set_id (ID_AMBIENTLIGHTCOLOR);
1654  m_box.set_id (ID_BOX);
1655  m_boxstyle.set_id (ID_BOXSTYLE);
1656  m_cameraposition.set_id (ID_CAMERAPOSITION);
1657  m_camerapositionmode.set_id (ID_CAMERAPOSITIONMODE);
1658  m_cameratarget.set_id (ID_CAMERATARGET);
1659  m_cameratargetmode.set_id (ID_CAMERATARGETMODE);
1660  m_cameraupvector.set_id (ID_CAMERAUPVECTOR);
1661  m_cameraupvectormode.set_id (ID_CAMERAUPVECTORMODE);
1662  m_cameraviewangle.set_id (ID_CAMERAVIEWANGLE);
1663  m_cameraviewanglemode.set_id (ID_CAMERAVIEWANGLEMODE);
1664  m_clim.set_id (ID_CLIM);
1665  m_climmode.set_id (ID_CLIMMODE);
1666  m_clippingstyle.set_id (ID_CLIPPINGSTYLE);
1667  m_color.set_id (ID_COLOR);
1668  m_colormap.set_id (ID_COLORMAP);
1669  m_colororder.set_id (ID_COLORORDER);
1670  m_colororderindex.set_id (ID_COLORORDERINDEX);
1671  m_colorscale.set_id (ID_COLORSCALE);
1672  m_currentpoint.set_id (ID_CURRENTPOINT);
1673  m_dataaspectratio.set_id (ID_DATAASPECTRATIO);
1674  m_dataaspectratiomode.set_id (ID_DATAASPECTRATIOMODE);
1675  m_fontangle.set_id (ID_FONTANGLE);
1676  m_fontname.set_id (ID_FONTNAME);
1677  m_fontsize.set_id (ID_FONTSIZE);
1678  m_fontsizemode.set_id (ID_FONTSIZEMODE);
1679  m_fontsmoothing.set_id (ID_FONTSMOOTHING);
1680  m_fontunits.set_id (ID_FONTUNITS);
1681  m_fontweight.set_id (ID_FONTWEIGHT);
1682  m_gridalpha.set_id (ID_GRIDALPHA);
1683  m_gridalphamode.set_id (ID_GRIDALPHAMODE);
1684  m_gridcolor.set_id (ID_GRIDCOLOR);
1685  m_gridcolormode.set_id (ID_GRIDCOLORMODE);
1686  m_gridlinestyle.set_id (ID_GRIDLINESTYLE);
1687  m_innerposition.set_id (ID_INNERPOSITION);
1688  m_interactions.set_id (ID_INTERACTIONS);
1689  m_labelfontsizemultiplier.set_id (ID_LABELFONTSIZEMULTIPLIER);
1690  m_layer.set_id (ID_LAYER);
1691  m_layout.set_id (ID_LAYOUT);
1692  m_legend.set_id (ID_LEGEND);
1693  m_linestyleorder.set_id (ID_LINESTYLEORDER);
1694  m_linestyleorderindex.set_id (ID_LINESTYLEORDERINDEX);
1695  m_linewidth.set_id (ID_LINEWIDTH);
1696  m_minorgridalpha.set_id (ID_MINORGRIDALPHA);
1697  m_minorgridalphamode.set_id (ID_MINORGRIDALPHAMODE);
1698  m_minorgridcolor.set_id (ID_MINORGRIDCOLOR);
1699  m_minorgridcolormode.set_id (ID_MINORGRIDCOLORMODE);
1700  m_minorgridlinestyle.set_id (ID_MINORGRIDLINESTYLE);
1701  m_nextplot.set_id (ID_NEXTPLOT);
1702  m_nextseriesindex.set_id (ID_NEXTSERIESINDEX);
1703  m_outerposition.set_id (ID_OUTERPOSITION);
1704  m_plotboxaspectratio.set_id (ID_PLOTBOXASPECTRATIO);
1705  m_plotboxaspectratiomode.set_id (ID_PLOTBOXASPECTRATIOMODE);
1706  m_position.set_id (ID_POSITION);
1707  m_positionconstraint.set_id (ID_POSITIONCONSTRAINT);
1708  m_projection.set_id (ID_PROJECTION);
1709  m_sortmethod.set_id (ID_SORTMETHOD);
1710  m_tickdir.set_id (ID_TICKDIR);
1711  m_tickdirmode.set_id (ID_TICKDIRMODE);
1712  m_ticklabelinterpreter.set_id (ID_TICKLABELINTERPRETER);
1713  m_ticklength.set_id (ID_TICKLENGTH);
1714  m_tightinset.set_id (ID_TIGHTINSET);
1715  m_title.set_id (ID_TITLE);
1716  m_titlefontsizemultiplier.set_id (ID_TITLEFONTSIZEMULTIPLIER);
1717  m_titlefontweight.set_id (ID_TITLEFONTWEIGHT);
1718  m_toolbar.set_id (ID_TOOLBAR);
1719  m_units.set_id (ID_UNITS);
1720  m_view.set_id (ID_VIEW);
1721  m_xaxis.set_id (ID_XAXIS);
1722  m_xaxislocation.set_id (ID_XAXISLOCATION);
1723  m_xcolor.set_id (ID_XCOLOR);
1724  m_xcolormode.set_id (ID_XCOLORMODE);
1725  m_xdir.set_id (ID_XDIR);
1726  m_xgrid.set_id (ID_XGRID);
1727  m_xlabel.set_id (ID_XLABEL);
1728  m_xlim.set_id (ID_XLIM);
1729  m_xlimitmethod.set_id (ID_XLIMITMETHOD);
1730  m_xlimmode.set_id (ID_XLIMMODE);
1731  m_xminorgrid.set_id (ID_XMINORGRID);
1732  m_xminortick.set_id (ID_XMINORTICK);
1733  m_xscale.set_id (ID_XSCALE);
1734  m_xtick.set_id (ID_XTICK);
1735  m_xticklabel.set_id (ID_XTICKLABEL);
1736  m_xticklabelmode.set_id (ID_XTICKLABELMODE);
1737  m_xticklabelrotation.set_id (ID_XTICKLABELROTATION);
1738  m_xtickmode.set_id (ID_XTICKMODE);
1739  m_yaxis.set_id (ID_YAXIS);
1740  m_yaxislocation.set_id (ID_YAXISLOCATION);
1741  m_ycolor.set_id (ID_YCOLOR);
1742  m_ycolormode.set_id (ID_YCOLORMODE);
1743  m_ydir.set_id (ID_YDIR);
1744  m_ygrid.set_id (ID_YGRID);
1745  m_ylabel.set_id (ID_YLABEL);
1746  m_ylim.set_id (ID_YLIM);
1747  m_ylimitmethod.set_id (ID_YLIMITMETHOD);
1748  m_ylimmode.set_id (ID_YLIMMODE);
1749  m_yminorgrid.set_id (ID_YMINORGRID);
1750  m_yminortick.set_id (ID_YMINORTICK);
1751  m_yscale.set_id (ID_YSCALE);
1752  m_ytick.set_id (ID_YTICK);
1753  m_yticklabel.set_id (ID_YTICKLABEL);
1754  m_yticklabelmode.set_id (ID_YTICKLABELMODE);
1755  m_yticklabelrotation.set_id (ID_YTICKLABELROTATION);
1756  m_ytickmode.set_id (ID_YTICKMODE);
1757  m_zaxis.set_id (ID_ZAXIS);
1758  m_zcolor.set_id (ID_ZCOLOR);
1759  m_zcolormode.set_id (ID_ZCOLORMODE);
1760  m_zdir.set_id (ID_ZDIR);
1761  m_zgrid.set_id (ID_ZGRID);
1762  m_zlabel.set_id (ID_ZLABEL);
1763  m_zlim.set_id (ID_ZLIM);
1764  m_zlimitmethod.set_id (ID_ZLIMITMETHOD);
1765  m_zlimmode.set_id (ID_ZLIMMODE);
1766  m_zminorgrid.set_id (ID_ZMINORGRID);
1767  m_zminortick.set_id (ID_ZMINORTICK);
1768  m_zscale.set_id (ID_ZSCALE);
1769  m_ztick.set_id (ID_ZTICK);
1770  m_zticklabel.set_id (ID_ZTICKLABEL);
1771  m_zticklabelmode.set_id (ID_ZTICKLABELMODE);
1772  m_zticklabelrotation.set_id (ID_ZTICKLABELROTATION);
1773  m_ztickmode.set_id (ID_ZTICKMODE);
1774  m___colormap__.set_id (ID___COLORMAP__);
1775  m___colormap__.set_hidden (true);
1776  m_mousewheelzoom.set_id (ID_MOUSEWHEELZOOM);
1777  m___autopos_tag__.set_id (ID___AUTOPOS_TAG__);
1778  m___autopos_tag__.set_hidden (true);
1779  m_looseinset.set_id (ID_LOOSEINSET);
1780  m_looseinset.set_hidden (true);
1781  m_xminortickvalues.set_id (ID_XMINORTICKVALUES);
1782  m_xminortickvalues.set_hidden (true);
1783  m_yminortickvalues.set_id (ID_YMINORTICKVALUES);
1784  m_yminortickvalues.set_hidden (true);
1785  m_zminortickvalues.set_id (ID_ZMINORTICKVALUES);
1786  m_zminortickvalues.set_hidden (true);
1787  m___fontsize_points__.set_id (ID___FONTSIZE_POINTS__);
1788  m___fontsize_points__.set_hidden (true);
1789  init ();
1790 }
1791 
1792 void
1793 axes::properties::set (const caseless_str& pname_arg, const octave_value& val)
1794 {
1795  const std::set<std::string>& pnames = all_property_names ();
1796 
1797  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
1798 
1799  if (has_readonly_property (pname))
1800  {
1801  error ("set: \"%s\" is read-only", pname.c_str ());
1802  return;
1803  }
1804 
1805  if (pname.compare ("activepositionproperty"))
1806  set_activepositionproperty (val);
1807  else if (pname.compare ("alim"))
1808  set_alim (val);
1809  else if (pname.compare ("alimmode"))
1810  set_alimmode (val);
1811  else if (pname.compare ("alphamap"))
1812  set_alphamap (val);
1813  else if (pname.compare ("alphascale"))
1814  set_alphascale (val);
1815  else if (pname.compare ("ambientlightcolor"))
1816  set_ambientlightcolor (val);
1817  else if (pname.compare ("box"))
1818  set_box (val);
1819  else if (pname.compare ("boxstyle"))
1820  set_boxstyle (val);
1821  else if (pname.compare ("cameraposition"))
1822  set_cameraposition (val);
1823  else if (pname.compare ("camerapositionmode"))
1824  set_camerapositionmode (val);
1825  else if (pname.compare ("cameratarget"))
1826  set_cameratarget (val);
1827  else if (pname.compare ("cameratargetmode"))
1828  set_cameratargetmode (val);
1829  else if (pname.compare ("cameraupvector"))
1830  set_cameraupvector (val);
1831  else if (pname.compare ("cameraupvectormode"))
1832  set_cameraupvectormode (val);
1833  else if (pname.compare ("cameraviewangle"))
1834  set_cameraviewangle (val);
1835  else if (pname.compare ("cameraviewanglemode"))
1836  set_cameraviewanglemode (val);
1837  else if (pname.compare ("clim"))
1838  set_clim (val);
1839  else if (pname.compare ("climmode"))
1840  set_climmode (val);
1841  else if (pname.compare ("clippingstyle"))
1842  set_clippingstyle (val);
1843  else if (pname.compare ("color"))
1844  set_color (val);
1845  else if (pname.compare ("colormap"))
1846  set_colormap (val);
1847  else if (pname.compare ("colororder"))
1848  set_colororder (val);
1849  else if (pname.compare ("colororderindex"))
1850  set_colororderindex (val);
1851  else if (pname.compare ("colorscale"))
1852  set_colorscale (val);
1853  else if (pname.compare ("currentpoint"))
1854  set_currentpoint (val);
1855  else if (pname.compare ("dataaspectratio"))
1856  set_dataaspectratio (val);
1857  else if (pname.compare ("dataaspectratiomode"))
1858  set_dataaspectratiomode (val);
1859  else if (pname.compare ("fontangle"))
1860  set_fontangle (val);
1861  else if (pname.compare ("fontname"))
1862  set_fontname (val);
1863  else if (pname.compare ("fontsize"))
1864  set_fontsize (val);
1865  else if (pname.compare ("fontsizemode"))
1866  set_fontsizemode (val);
1867  else if (pname.compare ("fontsmoothing"))
1868  set_fontsmoothing (val);
1869  else if (pname.compare ("fontunits"))
1870  set_fontunits (val);
1871  else if (pname.compare ("fontweight"))
1872  set_fontweight (val);
1873  else if (pname.compare ("gridalpha"))
1874  set_gridalpha (val);
1875  else if (pname.compare ("gridalphamode"))
1876  set_gridalphamode (val);
1877  else if (pname.compare ("gridcolor"))
1878  set_gridcolor (val);
1879  else if (pname.compare ("gridcolormode"))
1880  set_gridcolormode (val);
1881  else if (pname.compare ("gridlinestyle"))
1882  set_gridlinestyle (val);
1883  else if (pname.compare ("innerposition"))
1884  set_innerposition (val);
1885  else if (pname.compare ("labelfontsizemultiplier"))
1886  set_labelfontsizemultiplier (val);
1887  else if (pname.compare ("layer"))
1888  set_layer (val);
1889  else if (pname.compare ("linestyleorder"))
1890  set_linestyleorder (val);
1891  else if (pname.compare ("linestyleorderindex"))
1892  set_linestyleorderindex (val);
1893  else if (pname.compare ("linewidth"))
1894  set_linewidth (val);
1895  else if (pname.compare ("minorgridalpha"))
1896  set_minorgridalpha (val);
1897  else if (pname.compare ("minorgridalphamode"))
1898  set_minorgridalphamode (val);
1899  else if (pname.compare ("minorgridcolor"))
1900  set_minorgridcolor (val);
1901  else if (pname.compare ("minorgridcolormode"))
1902  set_minorgridcolormode (val);
1903  else if (pname.compare ("minorgridlinestyle"))
1904  set_minorgridlinestyle (val);
1905  else if (pname.compare ("nextplot"))
1906  set_nextplot (val);
1907  else if (pname.compare ("outerposition"))
1908  set_outerposition (val);
1909  else if (pname.compare ("plotboxaspectratio"))
1910  set_plotboxaspectratio (val);
1911  else if (pname.compare ("plotboxaspectratiomode"))
1912  set_plotboxaspectratiomode (val);
1913  else if (pname.compare ("position"))
1914  set_position (val);
1915  else if (pname.compare ("positionconstraint"))
1916  set_positionconstraint (val);
1917  else if (pname.compare ("projection"))
1918  set_projection (val);
1919  else if (pname.compare ("sortmethod"))
1920  set_sortmethod (val);
1921  else if (pname.compare ("tickdir"))
1922  set_tickdir (val);
1923  else if (pname.compare ("tickdirmode"))
1924  set_tickdirmode (val);
1925  else if (pname.compare ("ticklabelinterpreter"))
1926  set_ticklabelinterpreter (val);
1927  else if (pname.compare ("ticklength"))
1928  set_ticklength (val);
1929  else if (pname.compare ("title"))
1930  set_title (val);
1931  else if (pname.compare ("titlefontsizemultiplier"))
1932  set_titlefontsizemultiplier (val);
1933  else if (pname.compare ("titlefontweight"))
1934  set_titlefontweight (val);
1935  else if (pname.compare ("units"))
1936  set_units (val);
1937  else if (pname.compare ("view"))
1938  set_view (val);
1939  else if (pname.compare ("xaxislocation"))
1940  set_xaxislocation (val);
1941  else if (pname.compare ("xcolor"))
1942  set_xcolor (val);
1943  else if (pname.compare ("xcolormode"))
1944  set_xcolormode (val);
1945  else if (pname.compare ("xdir"))
1946  set_xdir (val);
1947  else if (pname.compare ("xgrid"))
1948  set_xgrid (val);
1949  else if (pname.compare ("xlabel"))
1950  set_xlabel (val);
1951  else if (pname.compare ("xlim"))
1952  set_xlim (val);
1953  else if (pname.compare ("xlimitmethod"))
1954  set_xlimitmethod (val);
1955  else if (pname.compare ("xlimmode"))
1956  set_xlimmode (val);
1957  else if (pname.compare ("xminorgrid"))
1958  set_xminorgrid (val);
1959  else if (pname.compare ("xminortick"))
1960  set_xminortick (val);
1961  else if (pname.compare ("xscale"))
1962  set_xscale (val);
1963  else if (pname.compare ("xtick"))
1964  set_xtick (val);
1965  else if (pname.compare ("xticklabel"))
1966  set_xticklabel (val);
1967  else if (pname.compare ("xticklabelmode"))
1968  set_xticklabelmode (val);
1969  else if (pname.compare ("xticklabelrotation"))
1970  set_xticklabelrotation (val);
1971  else if (pname.compare ("xtickmode"))
1972  set_xtickmode (val);
1973  else if (pname.compare ("yaxislocation"))
1974  set_yaxislocation (val);
1975  else if (pname.compare ("ycolor"))
1976  set_ycolor (val);
1977  else if (pname.compare ("ycolormode"))
1978  set_ycolormode (val);
1979  else if (pname.compare ("ydir"))
1980  set_ydir (val);
1981  else if (pname.compare ("ygrid"))
1982  set_ygrid (val);
1983  else if (pname.compare ("ylabel"))
1984  set_ylabel (val);
1985  else if (pname.compare ("ylim"))
1986  set_ylim (val);
1987  else if (pname.compare ("ylimitmethod"))
1988  set_ylimitmethod (val);
1989  else if (pname.compare ("ylimmode"))
1990  set_ylimmode (val);
1991  else if (pname.compare ("yminorgrid"))
1992  set_yminorgrid (val);
1993  else if (pname.compare ("yminortick"))
1994  set_yminortick (val);
1995  else if (pname.compare ("yscale"))
1996  set_yscale (val);
1997  else if (pname.compare ("ytick"))
1998  set_ytick (val);
1999  else if (pname.compare ("yticklabel"))
2000  set_yticklabel (val);
2001  else if (pname.compare ("yticklabelmode"))
2002  set_yticklabelmode (val);
2003  else if (pname.compare ("yticklabelrotation"))
2004  set_yticklabelrotation (val);
2005  else if (pname.compare ("ytickmode"))
2006  set_ytickmode (val);
2007  else if (pname.compare ("zcolor"))
2008  set_zcolor (val);
2009  else if (pname.compare ("zcolormode"))
2010  set_zcolormode (val);
2011  else if (pname.compare ("zdir"))
2012  set_zdir (val);
2013  else if (pname.compare ("zgrid"))
2014  set_zgrid (val);
2015  else if (pname.compare ("zlabel"))
2016  set_zlabel (val);
2017  else if (pname.compare ("zlim"))
2018  set_zlim (val);
2019  else if (pname.compare ("zlimitmethod"))
2020  set_zlimitmethod (val);
2021  else if (pname.compare ("zlimmode"))
2022  set_zlimmode (val);
2023  else if (pname.compare ("zminorgrid"))
2024  set_zminorgrid (val);
2025  else if (pname.compare ("zminortick"))
2026  set_zminortick (val);
2027  else if (pname.compare ("zscale"))
2028  set_zscale (val);
2029  else if (pname.compare ("ztick"))
2030  set_ztick (val);
2031  else if (pname.compare ("zticklabel"))
2032  set_zticklabel (val);
2033  else if (pname.compare ("zticklabelmode"))
2034  set_zticklabelmode (val);
2035  else if (pname.compare ("zticklabelrotation"))
2036  set_zticklabelrotation (val);
2037  else if (pname.compare ("ztickmode"))
2038  set_ztickmode (val);
2039  else if (pname.compare ("__colormap__"))
2040  set___colormap__ (val);
2041  else if (pname.compare ("mousewheelzoom"))
2042  set_mousewheelzoom (val);
2043  else if (pname.compare ("__autopos_tag__"))
2044  set___autopos_tag__ (val);
2045  else if (pname.compare ("looseinset"))
2046  set_looseinset (val);
2047  else if (pname.compare ("xminortickvalues"))
2048  set_xminortickvalues (val);
2049  else if (pname.compare ("yminortickvalues"))
2050  set_yminortickvalues (val);
2051  else if (pname.compare ("zminortickvalues"))
2052  set_zminortickvalues (val);
2053  else
2054  base_properties::set (pname, val);
2055 }
2056 
2058 axes::properties::get (bool all) const
2059 {
2061 
2062  if (all)
2063  m.assign ("activepositionproperty", octave_value (get_activepositionproperty ()));
2064  m.assign ("alim", octave_value (get_alim ()));
2065  m.assign ("alimmode", octave_value (get_alimmode ()));
2066  m.assign ("alphamap", octave_value (get_alphamap ()));
2067  m.assign ("alphascale", octave_value (get_alphascale ()));
2068  m.assign ("ambientlightcolor", octave_value (get_ambientlightcolor ()));
2069  m.assign ("box", octave_value (get_box ()));
2070  m.assign ("boxstyle", octave_value (get_boxstyle ()));
2071  m.assign ("cameraposition", octave_value (get_cameraposition ()));
2072  m.assign ("camerapositionmode", octave_value (get_camerapositionmode ()));
2073  m.assign ("cameratarget", octave_value (get_cameratarget ()));
2074  m.assign ("cameratargetmode", octave_value (get_cameratargetmode ()));
2075  m.assign ("cameraupvector", octave_value (get_cameraupvector ()));
2076  m.assign ("cameraupvectormode", octave_value (get_cameraupvectormode ()));
2077  m.assign ("cameraviewangle", octave_value (get_cameraviewangle ()));
2078  m.assign ("cameraviewanglemode", octave_value (get_cameraviewanglemode ()));
2079  m.assign ("clim", octave_value (get_clim ()));
2080  m.assign ("climmode", octave_value (get_climmode ()));
2081  m.assign ("clippingstyle", octave_value (get_clippingstyle ()));
2082  m.assign ("color", octave_value (get_color ()));
2083  m.assign ("colormap", octave_value (get_colormap ()));
2084  m.assign ("colororder", octave_value (get_colororder ()));
2085  m.assign ("colororderindex", octave_value (get_colororderindex ()));
2086  m.assign ("colorscale", octave_value (get_colorscale ()));
2087  m.assign ("currentpoint", octave_value (get_currentpoint ()));
2088  m.assign ("dataaspectratio", octave_value (get_dataaspectratio ()));
2089  m.assign ("dataaspectratiomode", octave_value (get_dataaspectratiomode ()));
2090  m.assign ("fontangle", octave_value (get_fontangle ()));
2091  m.assign ("fontname", octave_value (get_fontname ()));
2092  m.assign ("fontsize", octave_value (get_fontsize ()));
2093  m.assign ("fontsizemode", octave_value (get_fontsizemode ()));
2094  m.assign ("fontsmoothing", octave_value (get_fontsmoothing ()));
2095  m.assign ("fontunits", octave_value (get_fontunits ()));
2096  m.assign ("fontweight", octave_value (get_fontweight ()));
2097  m.assign ("gridalpha", octave_value (get_gridalpha ()));
2098  m.assign ("gridalphamode", octave_value (get_gridalphamode ()));
2099  m.assign ("gridcolor", octave_value (get_gridcolor ()));
2100  m.assign ("gridcolormode", octave_value (get_gridcolormode ()));
2101  m.assign ("gridlinestyle", octave_value (get_gridlinestyle ()));
2102  m.assign ("innerposition", octave_value (get_innerposition ()));
2103  m.assign ("interactions", octave_value (get_interactions ()));
2104  m.assign ("labelfontsizemultiplier", octave_value (get_labelfontsizemultiplier ()));
2105  m.assign ("layer", octave_value (get_layer ()));
2106  m.assign ("layout", octave_value (get_layout ().as_octave_value ()));
2107  m.assign ("legend", octave_value (get_legend ().as_octave_value ()));
2108  m.assign ("linestyleorder", octave_value (get_linestyleorder ()));
2109  m.assign ("linestyleorderindex", octave_value (get_linestyleorderindex ()));
2110  m.assign ("linewidth", octave_value (get_linewidth ()));
2111  m.assign ("minorgridalpha", octave_value (get_minorgridalpha ()));
2112  m.assign ("minorgridalphamode", octave_value (get_minorgridalphamode ()));
2113  m.assign ("minorgridcolor", octave_value (get_minorgridcolor ()));
2114  m.assign ("minorgridcolormode", octave_value (get_minorgridcolormode ()));
2115  m.assign ("minorgridlinestyle", octave_value (get_minorgridlinestyle ()));
2116  m.assign ("nextplot", octave_value (get_nextplot ()));
2117  m.assign ("nextseriesindex", octave_value (get_nextseriesindex ()));
2118  m.assign ("outerposition", octave_value (get_outerposition ()));
2119  m.assign ("plotboxaspectratio", octave_value (get_plotboxaspectratio ()));
2120  m.assign ("plotboxaspectratiomode", octave_value (get_plotboxaspectratiomode ()));
2121  m.assign ("position", octave_value (get_position ()));
2122  m.assign ("positionconstraint", octave_value (get_positionconstraint ()));
2123  m.assign ("projection", octave_value (get_projection ()));
2124  m.assign ("sortmethod", octave_value (get_sortmethod ()));
2125  m.assign ("tickdir", octave_value (get_tickdir ()));
2126  m.assign ("tickdirmode", octave_value (get_tickdirmode ()));
2127  m.assign ("ticklabelinterpreter", octave_value (get_ticklabelinterpreter ()));
2128  m.assign ("ticklength", octave_value (get_ticklength ()));
2129  m.assign ("tightinset", octave_value (get_tightinset ()));
2130  m.assign ("title", octave_value (get_title ().as_octave_value ()));
2131  m.assign ("titlefontsizemultiplier", octave_value (get_titlefontsizemultiplier ()));
2132  m.assign ("titlefontweight", octave_value (get_titlefontweight ()));
2133  m.assign ("toolbar", octave_value (get_toolbar ().as_octave_value ()));
2134  m.assign ("units", octave_value (get_units ()));
2135  m.assign ("view", octave_value (get_view ()));
2136  m.assign ("xaxis", octave_value (get_xaxis ().as_octave_value ()));
2137  m.assign ("xaxislocation", octave_value (get_xaxislocation ()));
2138  m.assign ("xcolor", octave_value (get_xcolor ()));
2139  m.assign ("xcolormode", octave_value (get_xcolormode ()));
2140  m.assign ("xdir", octave_value (get_xdir ()));
2141  m.assign ("xgrid", octave_value (get_xgrid ()));
2142  m.assign ("xlabel", octave_value (get_xlabel ().as_octave_value ()));
2143  m.assign ("xlim", octave_value (get_xlim ()));
2144  m.assign ("xlimitmethod", octave_value (get_xlimitmethod ()));
2145  m.assign ("xlimmode", octave_value (get_xlimmode ()));
2146  m.assign ("xminorgrid", octave_value (get_xminorgrid ()));
2147  m.assign ("xminortick", octave_value (get_xminortick ()));
2148  m.assign ("xscale", octave_value (get_xscale ()));
2149  m.assign ("xtick", octave_value (get_xtick ()));
2150  m.assign ("xticklabel", octave_value (get_xticklabel ()));
2151  m.assign ("xticklabelmode", octave_value (get_xticklabelmode ()));
2152  m.assign ("xticklabelrotation", octave_value (get_xticklabelrotation ()));
2153  m.assign ("xtickmode", octave_value (get_xtickmode ()));
2154  m.assign ("yaxis", octave_value (get_yaxis ().as_octave_value ()));
2155  m.assign ("yaxislocation", octave_value (get_yaxislocation ()));
2156  m.assign ("ycolor", octave_value (get_ycolor ()));
2157  m.assign ("ycolormode", octave_value (get_ycolormode ()));
2158  m.assign ("ydir", octave_value (get_ydir ()));
2159  m.assign ("ygrid", octave_value (get_ygrid ()));
2160  m.assign ("ylabel", octave_value (get_ylabel ().as_octave_value ()));
2161  m.assign ("ylim", octave_value (get_ylim ()));
2162  m.assign ("ylimitmethod", octave_value (get_ylimitmethod ()));
2163  m.assign ("ylimmode", octave_value (get_ylimmode ()));
2164  m.assign ("yminorgrid", octave_value (get_yminorgrid ()));
2165  m.assign ("yminortick", octave_value (get_yminortick ()));
2166  m.assign ("yscale", octave_value (get_yscale ()));
2167  m.assign ("ytick", octave_value (get_ytick ()));
2168  m.assign ("yticklabel", octave_value (get_yticklabel ()));
2169  m.assign ("yticklabelmode", octave_value (get_yticklabelmode ()));
2170  m.assign ("yticklabelrotation", octave_value (get_yticklabelrotation ()));
2171  m.assign ("ytickmode", octave_value (get_ytickmode ()));
2172  m.assign ("zaxis", octave_value (get_zaxis ().as_octave_value ()));
2173  m.assign ("zcolor", octave_value (get_zcolor ()));
2174  m.assign ("zcolormode", octave_value (get_zcolormode ()));
2175  m.assign ("zdir", octave_value (get_zdir ()));
2176  m.assign ("zgrid", octave_value (get_zgrid ()));
2177  m.assign ("zlabel", octave_value (get_zlabel ().as_octave_value ()));
2178  m.assign ("zlim", octave_value (get_zlim ()));
2179  m.assign ("zlimitmethod", octave_value (get_zlimitmethod ()));
2180  m.assign ("zlimmode", octave_value (get_zlimmode ()));
2181  m.assign ("zminorgrid", octave_value (get_zminorgrid ()));
2182  m.assign ("zminortick", octave_value (get_zminortick ()));
2183  m.assign ("zscale", octave_value (get_zscale ()));
2184  m.assign ("ztick", octave_value (get_ztick ()));
2185  m.assign ("zticklabel", octave_value (get_zticklabel ()));
2186  m.assign ("zticklabelmode", octave_value (get_zticklabelmode ()));
2187  m.assign ("zticklabelrotation", octave_value (get_zticklabelrotation ()));
2188  m.assign ("ztickmode", octave_value (get_ztickmode ()));
2189  if (all)
2190  m.assign ("__colormap__", octave_value (get___colormap__ ()));
2191  m.assign ("mousewheelzoom", octave_value (get_mousewheelzoom ()));
2192  if (all)
2193  m.assign ("__autopos_tag__", octave_value (get___autopos_tag__ ()));
2194  if (all)
2195  m.assign ("looseinset", octave_value (get_looseinset ()));
2196  if (all)
2197  m.assign ("xminortickvalues", octave_value (get_xminortickvalues ()));
2198  if (all)
2199  m.assign ("yminortickvalues", octave_value (get_yminortickvalues ()));
2200  if (all)
2201  m.assign ("zminortickvalues", octave_value (get_zminortickvalues ()));
2202  if (all)
2203  m.assign ("__fontsize_points__", octave_value (get___fontsize_points__ ()));
2204 
2205  return m;
2206 }
2207 
2209 axes::properties::get (const caseless_str& pname_arg) const
2210 {
2211  octave_value retval;
2212 
2213  const std::set<std::string>& pnames = all_property_names ();
2214 
2215  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
2216 
2217  if (pname.compare ("activepositionproperty"))
2218  retval = get_activepositionproperty ();
2219  else if (pname.compare ("alim"))
2220  retval = get_alim ();
2221  else if (pname.compare ("alimmode"))
2222  retval = get_alimmode ();
2223  else if (pname.compare ("alphamap"))
2224  retval = get_alphamap ();
2225  else if (pname.compare ("alphascale"))
2226  retval = get_alphascale ();
2227  else if (pname.compare ("ambientlightcolor"))
2228  retval = get_ambientlightcolor ();
2229  else if (pname.compare ("box"))
2230  retval = get_box ();
2231  else if (pname.compare ("boxstyle"))
2232  retval = get_boxstyle ();
2233  else if (pname.compare ("cameraposition"))
2234  retval = get_cameraposition ();
2235  else if (pname.compare ("camerapositionmode"))
2236  retval = get_camerapositionmode ();
2237  else if (pname.compare ("cameratarget"))
2238  retval = get_cameratarget ();
2239  else if (pname.compare ("cameratargetmode"))
2240  retval = get_cameratargetmode ();
2241  else if (pname.compare ("cameraupvector"))
2242  retval = get_cameraupvector ();
2243  else if (pname.compare ("cameraupvectormode"))
2244  retval = get_cameraupvectormode ();
2245  else if (pname.compare ("cameraviewangle"))
2246  retval = get_cameraviewangle ();
2247  else if (pname.compare ("cameraviewanglemode"))
2248  retval = get_cameraviewanglemode ();
2249  else if (pname.compare ("clim"))
2250  retval = get_clim ();
2251  else if (pname.compare ("climmode"))
2252  retval = get_climmode ();
2253  else if (pname.compare ("clippingstyle"))
2254  retval = get_clippingstyle ();
2255  else if (pname.compare ("color"))
2256  retval = get_color ();
2257  else if (pname.compare ("colormap"))
2258  retval = get_colormap ();
2259  else if (pname.compare ("colororder"))
2260  retval = get_colororder ();
2261  else if (pname.compare ("colororderindex"))
2262  retval = get_colororderindex ();
2263  else if (pname.compare ("colorscale"))
2264  retval = get_colorscale ();
2265  else if (pname.compare ("currentpoint"))
2266  retval = get_currentpoint ();
2267  else if (pname.compare ("dataaspectratio"))
2268  retval = get_dataaspectratio ();
2269  else if (pname.compare ("dataaspectratiomode"))
2270  retval = get_dataaspectratiomode ();
2271  else if (pname.compare ("fontangle"))
2272  retval = get_fontangle ();
2273  else if (pname.compare ("fontname"))
2274  retval = get_fontname ();
2275  else if (pname.compare ("fontsize"))
2276  retval = get_fontsize ();
2277  else if (pname.compare ("fontsizemode"))
2278  retval = get_fontsizemode ();
2279  else if (pname.compare ("fontsmoothing"))
2280  retval = get_fontsmoothing ();
2281  else if (pname.compare ("fontunits"))
2282  retval = get_fontunits ();
2283  else if (pname.compare ("fontweight"))
2284  retval = get_fontweight ();
2285  else if (pname.compare ("gridalpha"))
2286  retval = get_gridalpha ();
2287  else if (pname.compare ("gridalphamode"))
2288  retval = get_gridalphamode ();
2289  else if (pname.compare ("gridcolor"))
2290  retval = get_gridcolor ();
2291  else if (pname.compare ("gridcolormode"))
2292  retval = get_gridcolormode ();
2293  else if (pname.compare ("gridlinestyle"))
2294  retval = get_gridlinestyle ();
2295  else if (pname.compare ("innerposition"))
2296  retval = get_innerposition ();
2297  else if (pname.compare ("interactions"))
2298  retval = get_interactions ();
2299  else if (pname.compare ("labelfontsizemultiplier"))
2300  retval = get_labelfontsizemultiplier ();
2301  else if (pname.compare ("layer"))
2302  retval = get_layer ();
2303  else if (pname.compare ("layout"))
2304  retval = get_layout ().as_octave_value ();
2305  else if (pname.compare ("legend"))
2306  retval = get_legend ().as_octave_value ();
2307  else if (pname.compare ("linestyleorder"))
2308  retval = get_linestyleorder ();
2309  else if (pname.compare ("linestyleorderindex"))
2310  retval = get_linestyleorderindex ();
2311  else if (pname.compare ("linewidth"))
2312  retval = get_linewidth ();
2313  else if (pname.compare ("minorgridalpha"))
2314  retval = get_minorgridalpha ();
2315  else if (pname.compare ("minorgridalphamode"))
2316  retval = get_minorgridalphamode ();
2317  else if (pname.compare ("minorgridcolor"))
2318  retval = get_minorgridcolor ();
2319  else if (pname.compare ("minorgridcolormode"))
2320  retval = get_minorgridcolormode ();
2321  else if (pname.compare ("minorgridlinestyle"))
2322  retval = get_minorgridlinestyle ();
2323  else if (pname.compare ("nextplot"))
2324  retval = get_nextplot ();
2325  else if (pname.compare ("nextseriesindex"))
2326  retval = get_nextseriesindex ();
2327  else if (pname.compare ("outerposition"))
2328  retval = get_outerposition ();
2329  else if (pname.compare ("plotboxaspectratio"))
2330  retval = get_plotboxaspectratio ();
2331  else if (pname.compare ("plotboxaspectratiomode"))
2332  retval = get_plotboxaspectratiomode ();
2333  else if (pname.compare ("position"))
2334  retval = get_position ();
2335  else if (pname.compare ("positionconstraint"))
2336  retval = get_positionconstraint ();
2337  else if (pname.compare ("projection"))
2338  retval = get_projection ();
2339  else if (pname.compare ("sortmethod"))
2340  retval = get_sortmethod ();
2341  else if (pname.compare ("tickdir"))
2342  retval = get_tickdir ();
2343  else if (pname.compare ("tickdirmode"))
2344  retval = get_tickdirmode ();
2345  else if (pname.compare ("ticklabelinterpreter"))
2346  retval = get_ticklabelinterpreter ();
2347  else if (pname.compare ("ticklength"))
2348  retval = get_ticklength ();
2349  else if (pname.compare ("tightinset"))
2350  retval = get_tightinset ();
2351  else if (pname.compare ("title"))
2352  retval = get_title ().as_octave_value ();
2353  else if (pname.compare ("titlefontsizemultiplier"))
2354  retval = get_titlefontsizemultiplier ();
2355  else if (pname.compare ("titlefontweight"))
2356  retval = get_titlefontweight ();
2357  else if (pname.compare ("toolbar"))
2358  retval = get_toolbar ().as_octave_value ();
2359  else if (pname.compare ("units"))
2360  retval = get_units ();
2361  else if (pname.compare ("view"))
2362  retval = get_view ();
2363  else if (pname.compare ("xaxis"))
2364  retval = get_xaxis ().as_octave_value ();
2365  else if (pname.compare ("xaxislocation"))
2366  retval = get_xaxislocation ();
2367  else if (pname.compare ("xcolor"))
2368  retval = get_xcolor ();
2369  else if (pname.compare ("xcolormode"))
2370  retval = get_xcolormode ();
2371  else if (pname.compare ("xdir"))
2372  retval = get_xdir ();
2373  else if (pname.compare ("xgrid"))
2374  retval = get_xgrid ();
2375  else if (pname.compare ("xlabel"))
2376  retval = get_xlabel ().as_octave_value ();
2377  else if (pname.compare ("xlim"))
2378  retval = get_xlim ();
2379  else if (pname.compare ("xlimitmethod"))
2380  retval = get_xlimitmethod ();
2381  else if (pname.compare ("xlimmode"))
2382  retval = get_xlimmode ();
2383  else if (pname.compare ("xminorgrid"))
2384  retval = get_xminorgrid ();
2385  else if (pname.compare ("xminortick"))
2386  retval = get_xminortick ();
2387  else if (pname.compare ("xscale"))
2388  retval = get_xscale ();
2389  else if (pname.compare ("xtick"))
2390  retval = get_xtick ();
2391  else if (pname.compare ("xticklabel"))
2392  retval = get_xticklabel ();
2393  else if (pname.compare ("xticklabelmode"))
2394  retval = get_xticklabelmode ();
2395  else if (pname.compare ("xticklabelrotation"))
2396  retval = get_xticklabelrotation ();
2397  else if (pname.compare ("xtickmode"))
2398  retval = get_xtickmode ();
2399  else if (pname.compare ("yaxis"))
2400  retval = get_yaxis ().as_octave_value ();
2401  else if (pname.compare ("yaxislocation"))
2402  retval = get_yaxislocation ();
2403  else if (pname.compare ("ycolor"))
2404  retval = get_ycolor ();
2405  else if (pname.compare ("ycolormode"))
2406  retval = get_ycolormode ();
2407  else if (pname.compare ("ydir"))
2408  retval = get_ydir ();
2409  else if (pname.compare ("ygrid"))
2410  retval = get_ygrid ();
2411  else if (pname.compare ("ylabel"))
2412  retval = get_ylabel ().as_octave_value ();
2413  else if (pname.compare ("ylim"))
2414  retval = get_ylim ();
2415  else if (pname.compare ("ylimitmethod"))
2416  retval = get_ylimitmethod ();
2417  else if (pname.compare ("ylimmode"))
2418  retval = get_ylimmode ();
2419  else if (pname.compare ("yminorgrid"))
2420  retval = get_yminorgrid ();
2421  else if (pname.compare ("yminortick"))
2422  retval = get_yminortick ();
2423  else if (pname.compare ("yscale"))
2424  retval = get_yscale ();
2425  else if (pname.compare ("ytick"))
2426  retval = get_ytick ();
2427  else if (pname.compare ("yticklabel"))
2428  retval = get_yticklabel ();
2429  else if (pname.compare ("yticklabelmode"))
2430  retval = get_yticklabelmode ();
2431  else if (pname.compare ("yticklabelrotation"))
2432  retval = get_yticklabelrotation ();
2433  else if (pname.compare ("ytickmode"))
2434  retval = get_ytickmode ();
2435  else if (pname.compare ("zaxis"))
2436  retval = get_zaxis ().as_octave_value ();
2437  else if (pname.compare ("zcolor"))
2438  retval = get_zcolor ();
2439  else if (pname.compare ("zcolormode"))
2440  retval = get_zcolormode ();
2441  else if (pname.compare ("zdir"))
2442  retval = get_zdir ();
2443  else if (pname.compare ("zgrid"))
2444  retval = get_zgrid ();
2445  else if (pname.compare ("zlabel"))
2446  retval = get_zlabel ().as_octave_value ();
2447  else if (pname.compare ("zlim"))
2448  retval = get_zlim ();
2449  else if (pname.compare ("zlimitmethod"))
2450  retval = get_zlimitmethod ();
2451  else if (pname.compare ("zlimmode"))
2452  retval = get_zlimmode ();
2453  else if (pname.compare ("zminorgrid"))
2454  retval = get_zminorgrid ();
2455  else if (pname.compare ("zminortick"))
2456  retval = get_zminortick ();
2457  else if (pname.compare ("zscale"))
2458  retval = get_zscale ();
2459  else if (pname.compare ("ztick"))
2460  retval = get_ztick ();
2461  else if (pname.compare ("zticklabel"))
2462  retval = get_zticklabel ();
2463  else if (pname.compare ("zticklabelmode"))
2464  retval = get_zticklabelmode ();
2465  else if (pname.compare ("zticklabelrotation"))
2466  retval = get_zticklabelrotation ();
2467  else if (pname.compare ("ztickmode"))
2468  retval = get_ztickmode ();
2469  else if (pname.compare ("__colormap__"))
2470  retval = get___colormap__ ();
2471  else if (pname.compare ("mousewheelzoom"))
2472  retval = get_mousewheelzoom ();
2473  else if (pname.compare ("__autopos_tag__"))
2474  retval = get___autopos_tag__ ();
2475  else if (pname.compare ("looseinset"))
2476  retval = get_looseinset ();
2477  else if (pname.compare ("xminortickvalues"))
2478  retval = get_xminortickvalues ();
2479  else if (pname.compare ("yminortickvalues"))
2480  retval = get_yminortickvalues ();
2481  else if (pname.compare ("zminortickvalues"))
2482  retval = get_zminortickvalues ();
2483  else if (pname.compare ("__fontsize_points__"))
2484  retval = get___fontsize_points__ ();
2485  else
2486  retval = base_properties::get (pname);
2487 
2488  return retval;
2489 }
2490 
2491 property
2493 {
2494  const std::set<std::string>& pnames = all_property_names ();
2495 
2496  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
2497 
2498  if (pname.compare ("activepositionproperty"))
2499  return property (&m_activepositionproperty, true);
2500  else if (pname.compare ("alim"))
2501  return property (&m_alim, true);
2502  else if (pname.compare ("alimmode"))
2503  return property (&m_alimmode, true);
2504  else if (pname.compare ("alphamap"))
2505  return property (&m_alphamap, true);
2506  else if (pname.compare ("alphascale"))
2507  return property (&m_alphascale, true);
2508  else if (pname.compare ("ambientlightcolor"))
2509  return property (&m_ambientlightcolor, true);
2510  else if (pname.compare ("box"))
2511  return property (&m_box, true);
2512  else if (pname.compare ("boxstyle"))
2513  return property (&m_boxstyle, true);
2514  else if (pname.compare ("cameraposition"))
2515  return property (&m_cameraposition, true);
2516  else if (pname.compare ("camerapositionmode"))
2517  return property (&m_camerapositionmode, true);
2518  else if (pname.compare ("cameratarget"))
2519  return property (&m_cameratarget, true);
2520  else if (pname.compare ("cameratargetmode"))
2521  return property (&m_cameratargetmode, true);
2522  else if (pname.compare ("cameraupvector"))
2523  return property (&m_cameraupvector, true);
2524  else if (pname.compare ("cameraupvectormode"))
2525  return property (&m_cameraupvectormode, true);
2526  else if (pname.compare ("cameraviewangle"))
2527  return property (&m_cameraviewangle, true);
2528  else if (pname.compare ("cameraviewanglemode"))
2529  return property (&m_cameraviewanglemode, true);
2530  else if (pname.compare ("clim"))
2531  return property (&m_clim, true);
2532  else if (pname.compare ("climmode"))
2533  return property (&m_climmode, true);
2534  else if (pname.compare ("clippingstyle"))
2535  return property (&m_clippingstyle, true);
2536  else if (pname.compare ("color"))
2537  return property (&m_color, true);
2538  else if (pname.compare ("colormap"))
2539  return property (&m_colormap, true);
2540  else if (pname.compare ("colororder"))
2541  return property (&m_colororder, true);
2542  else if (pname.compare ("colororderindex"))
2543  return property (&m_colororderindex, true);
2544  else if (pname.compare ("colorscale"))
2545  return property (&m_colorscale, true);
2546  else if (pname.compare ("currentpoint"))
2547  return property (&m_currentpoint, true);
2548  else if (pname.compare ("dataaspectratio"))
2549  return property (&m_dataaspectratio, true);
2550  else if (pname.compare ("dataaspectratiomode"))
2551  return property (&m_dataaspectratiomode, true);
2552  else if (pname.compare ("fontangle"))
2553  return property (&m_fontangle, true);
2554  else if (pname.compare ("fontname"))
2555  return property (&m_fontname, true);
2556  else if (pname.compare ("fontsize"))
2557  return property (&m_fontsize, true);
2558  else if (pname.compare ("fontsizemode"))
2559  return property (&m_fontsizemode, true);
2560  else if (pname.compare ("fontsmoothing"))
2561  return property (&m_fontsmoothing, true);
2562  else if (pname.compare ("fontunits"))
2563  return property (&m_fontunits, true);
2564  else if (pname.compare ("fontweight"))
2565  return property (&m_fontweight, true);
2566  else if (pname.compare ("gridalpha"))
2567  return property (&m_gridalpha, true);
2568  else if (pname.compare ("gridalphamode"))
2569  return property (&m_gridalphamode, true);
2570  else if (pname.compare ("gridcolor"))
2571  return property (&m_gridcolor, true);
2572  else if (pname.compare ("gridcolormode"))
2573  return property (&m_gridcolormode, true);
2574  else if (pname.compare ("gridlinestyle"))
2575  return property (&m_gridlinestyle, true);
2576  else if (pname.compare ("innerposition"))
2577  return property (&m_innerposition, true);
2578  else if (pname.compare ("interactions"))
2579  return property (&m_interactions, true);
2580  else if (pname.compare ("labelfontsizemultiplier"))
2581  return property (&m_labelfontsizemultiplier, true);
2582  else if (pname.compare ("layer"))
2583  return property (&m_layer, true);
2584  else if (pname.compare ("layout"))
2585  return property (&m_layout, true);
2586  else if (pname.compare ("legend"))
2587  return property (&m_legend, true);
2588  else if (pname.compare ("linestyleorder"))
2589  return property (&m_linestyleorder, true);
2590  else if (pname.compare ("linestyleorderindex"))
2591  return property (&m_linestyleorderindex, true);
2592  else if (pname.compare ("linewidth"))
2593  return property (&m_linewidth, true);
2594  else if (pname.compare ("minorgridalpha"))
2595  return property (&m_minorgridalpha, true);
2596  else if (pname.compare ("minorgridalphamode"))
2597  return property (&m_minorgridalphamode, true);
2598  else if (pname.compare ("minorgridcolor"))
2599  return property (&m_minorgridcolor, true);
2600  else if (pname.compare ("minorgridcolormode"))
2601  return property (&m_minorgridcolormode, true);
2602  else if (pname.compare ("minorgridlinestyle"))
2603  return property (&m_minorgridlinestyle, true);
2604  else if (pname.compare ("nextplot"))
2605  return property (&m_nextplot, true);
2606  else if (pname.compare ("nextseriesindex"))
2607  return property (&m_nextseriesindex, true);
2608  else if (pname.compare ("outerposition"))
2609  return property (&m_outerposition, true);
2610  else if (pname.compare ("plotboxaspectratio"))
2611  return property (&m_plotboxaspectratio, true);
2612  else if (pname.compare ("plotboxaspectratiomode"))
2613  return property (&m_plotboxaspectratiomode, true);
2614  else if (pname.compare ("position"))
2615  return property (&m_position, true);
2616  else if (pname.compare ("positionconstraint"))
2617  return property (&m_positionconstraint, true);
2618  else if (pname.compare ("projection"))
2619  return property (&m_projection, true);
2620  else if (pname.compare ("sortmethod"))
2621  return property (&m_sortmethod, true);
2622  else if (pname.compare ("tickdir"))
2623  return property (&m_tickdir, true);
2624  else if (pname.compare ("tickdirmode"))
2625  return property (&m_tickdirmode, true);
2626  else if (pname.compare ("ticklabelinterpreter"))
2627  return property (&m_ticklabelinterpreter, true);
2628  else if (pname.compare ("ticklength"))
2629  return property (&m_ticklength, true);
2630  else if (pname.compare ("tightinset"))
2631  return property (&m_tightinset, true);
2632  else if (pname.compare ("title"))
2633  return property (&m_title, true);
2634  else if (pname.compare ("titlefontsizemultiplier"))
2635  return property (&m_titlefontsizemultiplier, true);
2636  else if (pname.compare ("titlefontweight"))
2637  return property (&m_titlefontweight, true);
2638  else if (pname.compare ("toolbar"))
2639  return property (&m_toolbar, true);
2640  else if (pname.compare ("units"))
2641  return property (&m_units, true);
2642  else if (pname.compare ("view"))
2643  return property (&m_view, true);
2644  else if (pname.compare ("xaxis"))
2645  return property (&m_xaxis, true);
2646  else if (pname.compare ("xaxislocation"))
2647  return property (&m_xaxislocation, true);
2648  else if (pname.compare ("xcolor"))
2649  return property (&m_xcolor, true);
2650  else if (pname.compare ("xcolormode"))
2651  return property (&m_xcolormode, true);
2652  else if (pname.compare ("xdir"))
2653  return property (&m_xdir, true);
2654  else if (pname.compare ("xgrid"))
2655  return property (&m_xgrid, true);
2656  else if (pname.compare ("xlabel"))
2657  return property (&m_xlabel, true);
2658  else if (pname.compare ("xlim"))
2659  return property (&m_xlim, true);
2660  else if (pname.compare ("xlimitmethod"))
2661  return property (&m_xlimitmethod, true);
2662  else if (pname.compare ("xlimmode"))
2663  return property (&m_xlimmode, true);
2664  else if (pname.compare ("xminorgrid"))
2665  return property (&m_xminorgrid, true);
2666  else if (pname.compare ("xminortick"))
2667  return property (&m_xminortick, true);
2668  else if (pname.compare ("xscale"))
2669  return property (&m_xscale, true);
2670  else if (pname.compare ("xtick"))
2671  return property (&m_xtick, true);
2672  else if (pname.compare ("xticklabel"))
2673  return property (&m_xticklabel, true);
2674  else if (pname.compare ("xticklabelmode"))
2675  return property (&m_xticklabelmode, true);
2676  else if (pname.compare ("xticklabelrotation"))
2677  return property (&m_xticklabelrotation, true);
2678  else if (pname.compare ("xtickmode"))
2679  return property (&m_xtickmode, true);
2680  else if (pname.compare ("yaxis"))
2681  return property (&m_yaxis, true);
2682  else if (pname.compare ("yaxislocation"))
2683  return property (&m_yaxislocation, true);
2684  else if (pname.compare ("ycolor"))
2685  return property (&m_ycolor, true);
2686  else if (pname.compare ("ycolormode"))
2687  return property (&m_ycolormode, true);
2688  else if (pname.compare ("ydir"))
2689  return property (&m_ydir, true);
2690  else if (pname.compare ("ygrid"))
2691  return property (&m_ygrid, true);
2692  else if (pname.compare ("ylabel"))
2693  return property (&m_ylabel, true);
2694  else if (pname.compare ("ylim"))
2695  return property (&m_ylim, true);
2696  else if (pname.compare ("ylimitmethod"))
2697  return property (&m_ylimitmethod, true);
2698  else if (pname.compare ("ylimmode"))
2699  return property (&m_ylimmode, true);
2700  else if (pname.compare ("yminorgrid"))
2701  return property (&m_yminorgrid, true);
2702  else if (pname.compare ("yminortick"))
2703  return property (&m_yminortick, true);
2704  else if (pname.compare ("yscale"))
2705  return property (&m_yscale, true);
2706  else if (pname.compare ("ytick"))
2707  return property (&m_ytick, true);
2708  else if (pname.compare ("yticklabel"))
2709  return property (&m_yticklabel, true);
2710  else if (pname.compare ("yticklabelmode"))
2711  return property (&m_yticklabelmode, true);
2712  else if (pname.compare ("yticklabelrotation"))
2713  return property (&m_yticklabelrotation, true);
2714  else if (pname.compare ("ytickmode"))
2715  return property (&m_ytickmode, true);
2716  else if (pname.compare ("zaxis"))
2717  return property (&m_zaxis, true);
2718  else if (pname.compare ("zcolor"))
2719  return property (&m_zcolor, true);
2720  else if (pname.compare ("zcolormode"))
2721  return property (&m_zcolormode, true);
2722  else if (pname.compare ("zdir"))
2723  return property (&m_zdir, true);
2724  else if (pname.compare ("zgrid"))
2725  return property (&m_zgrid, true);
2726  else if (pname.compare ("zlabel"))
2727  return property (&m_zlabel, true);
2728  else if (pname.compare ("zlim"))
2729  return property (&m_zlim, true);
2730  else if (pname.compare ("zlimitmethod"))
2731  return property (&m_zlimitmethod, true);
2732  else if (pname.compare ("zlimmode"))
2733  return property (&m_zlimmode, true);
2734  else if (pname.compare ("zminorgrid"))
2735  return property (&m_zminorgrid, true);
2736  else if (pname.compare ("zminortick"))
2737  return property (&m_zminortick, true);
2738  else if (pname.compare ("zscale"))
2739  return property (&m_zscale, true);
2740  else if (pname.compare ("ztick"))
2741  return property (&m_ztick, true);
2742  else if (pname.compare ("zticklabel"))
2743  return property (&m_zticklabel, true);
2744  else if (pname.compare ("zticklabelmode"))
2745  return property (&m_zticklabelmode, true);
2746  else if (pname.compare ("zticklabelrotation"))
2747  return property (&m_zticklabelrotation, true);
2748  else if (pname.compare ("ztickmode"))
2749  return property (&m_ztickmode, true);
2750  else if (pname.compare ("__colormap__"))
2751  return property (&m___colormap__, true);
2752  else if (pname.compare ("mousewheelzoom"))
2753  return property (&m_mousewheelzoom, true);
2754  else if (pname.compare ("__autopos_tag__"))
2755  return property (&m___autopos_tag__, true);
2756  else if (pname.compare ("looseinset"))
2757  return property (&m_looseinset, true);
2758  else if (pname.compare ("xminortickvalues"))
2759  return property (&m_xminortickvalues, true);
2760  else if (pname.compare ("yminortickvalues"))
2761  return property (&m_yminortickvalues, true);
2762  else if (pname.compare ("zminortickvalues"))
2763  return property (&m_zminortickvalues, true);
2764  else if (pname.compare ("__fontsize_points__"))
2765  return property (&m___fontsize_points__, true);
2766  else
2767  return base_properties::get_property (pname);
2768 }
2769 
2772 {
2774 
2775  m["activepositionproperty"] = "outerposition";
2776  m["alim"] = default_lim ();
2777  m["alimmode"] = "auto";
2778  m["alphamap"] = Matrix ();
2779  m["alphascale"] = "linear";
2780  m["ambientlightcolor"] = color_values (1, 1, 1);
2781  m["box"] = "off";
2782  m["boxstyle"] = "back";
2783  m["cameraposition"] = Matrix (1, 3, 0.0);
2784  m["camerapositionmode"] = "auto";
2785  m["cameratarget"] = Matrix (1, 3, 0.0);
2786  m["cameratargetmode"] = "auto";
2787  m["cameraupvector"] = Matrix (1, 3, 0.0);
2788  m["cameraupvectormode"] = "auto";
2789  m["cameraviewangle"] = 6.6086;
2790  m["cameraviewanglemode"] = "auto";
2791  m["clim"] = default_lim ();
2792  m["climmode"] = "auto";
2793  m["clippingstyle"] = "3dbox";
2794  m["color"] = color_property (color_values (1, 1, 1), radio_values ("none"));
2795  m["colormap"] = Matrix ();
2796  m["colororder"] = default_colororder ();
2797  m["colororderindex"] = 1.0;
2798  m["colorscale"] = "linear";
2799  m["currentpoint"] = Matrix (2, 3, 0.0);
2800  m["dataaspectratio"] = Matrix (1, 3, 1.0);
2801  m["dataaspectratiomode"] = "auto";
2802  m["fontangle"] = "normal";
2803  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
2804  m["fontsize"] = 10;
2805  m["fontsizemode"] = "auto";
2806  m["fontsmoothing"] = "on";
2807  m["fontunits"] = "points";
2808  m["fontweight"] = "normal";
2809  m["gridalpha"] = 0.15;
2810  m["gridalphamode"] = "auto";
2811  m["gridcolor"] = color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"));
2812  m["gridcolormode"] = "auto";
2813  m["gridlinestyle"] = "-";
2814  m["innerposition"] = default_axes_position ();
2815  m["interactions"] = Matrix ();
2816  m["labelfontsizemultiplier"] = 1.1;
2817  m["layer"] = "bottom";
2818  m["layout"] = graphics_handle ().as_octave_value ();
2819  m["legend"] = graphics_handle ().as_octave_value ();
2820  m["linestyleorder"] = "-";
2821  m["linestyleorderindex"] = 1.0;
2822  m["linewidth"] = 0.5;
2823  m["minorgridalpha"] = 0.25;
2824  m["minorgridalphamode"] = "auto";
2825  m["minorgridcolor"] = color_property (color_values (0.1, 0.1, 0.1), radio_values ("none"));
2826  m["minorgridcolormode"] = "auto";
2827  m["minorgridlinestyle"] = ":";
2828  m["nextplot"] = "replace";
2829  m["nextseriesindex"] = 1.0;
2830  m["outerposition"] = default_axes_outerposition ();
2831  m["plotboxaspectratio"] = Matrix (1, 3, 1.0);
2832  m["plotboxaspectratiomode"] = "auto";
2833  m["position"] = default_axes_position ();
2834  m["positionconstraint"] = "outerposition";
2835  m["projection"] = "orthographic";
2836  m["sortmethod"] = "depth";
2837  m["tickdir"] = "in";
2838  m["tickdirmode"] = "auto";
2839  m["ticklabelinterpreter"] = "tex";
2840  m["ticklength"] = default_axes_ticklength ();
2841  m["tightinset"] = Matrix (1, 4, 0.0);
2842  m["titlefontsizemultiplier"] = 1.1;
2843  m["titlefontweight"] = "bold";
2844  m["toolbar"] = graphics_handle ().as_octave_value ();
2845  m["units"] = "normalized";
2846  m["view"] = default_axes_view ();
2847  m["xaxis"] = graphics_handle ().as_octave_value ();
2848  m["xaxislocation"] = "bottom";
2849  m["xcolor"] = color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"));
2850  m["xcolormode"] = "auto";
2851  m["xdir"] = "normal";
2852  m["xgrid"] = "off";
2853  m["xlim"] = default_lim ();
2854  m["xlimitmethod"] = "tickaligned";
2855  m["xlimmode"] = "auto";
2856  m["xminorgrid"] = "off";
2857  m["xminortick"] = "off";
2858  m["xscale"] = "linear";
2859  m["xtick"] = default_axes_tick ();
2860  m["xticklabel"] = "";
2861  m["xticklabelmode"] = "auto";
2862  m["xticklabelrotation"] = 0.0;
2863  m["xtickmode"] = "auto";
2864  m["yaxis"] = graphics_handle ().as_octave_value ();
2865  m["yaxislocation"] = "left";
2866  m["ycolor"] = color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"));
2867  m["ycolormode"] = "auto";
2868  m["ydir"] = "normal";
2869  m["ygrid"] = "off";
2870  m["ylim"] = default_lim ();
2871  m["ylimitmethod"] = "tickaligned";
2872  m["ylimmode"] = "auto";
2873  m["yminorgrid"] = "off";
2874  m["yminortick"] = "off";
2875  m["yscale"] = "linear";
2876  m["ytick"] = default_axes_tick ();
2877  m["yticklabel"] = "";
2878  m["yticklabelmode"] = "auto";
2879  m["yticklabelrotation"] = 0.0;
2880  m["ytickmode"] = "auto";
2881  m["zaxis"] = graphics_handle ().as_octave_value ();
2882  m["zcolor"] = color_property (color_values (0.15, 0.15, 0.15), radio_values ("none"));
2883  m["zcolormode"] = "auto";
2884  m["zdir"] = "normal";
2885  m["zgrid"] = "off";
2886  m["zlim"] = default_lim ();
2887  m["zlimitmethod"] = "tickaligned";
2888  m["zlimmode"] = "auto";
2889  m["zminorgrid"] = "off";
2890  m["zminortick"] = "off";
2891  m["zscale"] = "linear";
2892  m["ztick"] = default_axes_tick ();
2893  m["zticklabel"] = "";
2894  m["zticklabelmode"] = "auto";
2895  m["zticklabelrotation"] = 0.0;
2896  m["ztickmode"] = "auto";
2897  m["__colormap__"] = Matrix ();
2898  m["mousewheelzoom"] = 0.5;
2899  m["__autopos_tag__"] = "none";
2900  m["looseinset"] = Matrix (1, 4, 0.0);
2901  m["xminortickvalues"] = Matrix ();
2902  m["yminortickvalues"] = Matrix ();
2903  m["zminortickvalues"] = Matrix ();
2904  m["__fontsize_points__"] = 0;
2905 
2906  return m;
2907 }
2908 
2909 std::string axes::properties::s_go_name ("axes");
2910 
2911 std::set<std::string>
2913 {
2914  static std::set<std::string> all_pnames;
2915 
2916  static bool initialized = false;
2917 
2918  if (! initialized)
2919  {
2920  all_pnames.insert ("activepositionproperty");
2921  all_pnames.insert ("alim");
2922  all_pnames.insert ("alimmode");
2923  all_pnames.insert ("alphamap");
2924  all_pnames.insert ("alphascale");
2925  all_pnames.insert ("ambientlightcolor");
2926  all_pnames.insert ("box");
2927  all_pnames.insert ("boxstyle");
2928  all_pnames.insert ("cameraposition");
2929  all_pnames.insert ("camerapositionmode");
2930  all_pnames.insert ("cameratarget");
2931  all_pnames.insert ("cameratargetmode");
2932  all_pnames.insert ("cameraupvector");
2933  all_pnames.insert ("cameraupvectormode");
2934  all_pnames.insert ("cameraviewangle");
2935  all_pnames.insert ("cameraviewanglemode");
2936  all_pnames.insert ("clim");
2937  all_pnames.insert ("climmode");
2938  all_pnames.insert ("clippingstyle");
2939  all_pnames.insert ("color");
2940  all_pnames.insert ("colormap");
2941  all_pnames.insert ("colororder");
2942  all_pnames.insert ("colororderindex");
2943  all_pnames.insert ("colorscale");
2944  all_pnames.insert ("currentpoint");
2945  all_pnames.insert ("dataaspectratio");
2946  all_pnames.insert ("dataaspectratiomode");
2947  all_pnames.insert ("fontangle");
2948  all_pnames.insert ("fontname");
2949  all_pnames.insert ("fontsize");
2950  all_pnames.insert ("fontsizemode");
2951  all_pnames.insert ("fontsmoothing");
2952  all_pnames.insert ("fontunits");
2953  all_pnames.insert ("fontweight");
2954  all_pnames.insert ("gridalpha");
2955  all_pnames.insert ("gridalphamode");
2956  all_pnames.insert ("gridcolor");
2957  all_pnames.insert ("gridcolormode");
2958  all_pnames.insert ("gridlinestyle");
2959  all_pnames.insert ("innerposition");
2960  all_pnames.insert ("interactions");
2961  all_pnames.insert ("labelfontsizemultiplier");
2962  all_pnames.insert ("layer");
2963  all_pnames.insert ("layout");
2964  all_pnames.insert ("legend");
2965  all_pnames.insert ("linestyleorder");
2966  all_pnames.insert ("linestyleorderindex");
2967  all_pnames.insert ("linewidth");
2968  all_pnames.insert ("minorgridalpha");
2969  all_pnames.insert ("minorgridalphamode");
2970  all_pnames.insert ("minorgridcolor");
2971  all_pnames.insert ("minorgridcolormode");
2972  all_pnames.insert ("minorgridlinestyle");
2973  all_pnames.insert ("nextplot");
2974  all_pnames.insert ("nextseriesindex");
2975  all_pnames.insert ("outerposition");
2976  all_pnames.insert ("plotboxaspectratio");
2977  all_pnames.insert ("plotboxaspectratiomode");
2978  all_pnames.insert ("position");
2979  all_pnames.insert ("positionconstraint");
2980  all_pnames.insert ("projection");
2981  all_pnames.insert ("sortmethod");
2982  all_pnames.insert ("tickdir");
2983  all_pnames.insert ("tickdirmode");
2984  all_pnames.insert ("ticklabelinterpreter");
2985  all_pnames.insert ("ticklength");
2986  all_pnames.insert ("tightinset");
2987  all_pnames.insert ("title");
2988  all_pnames.insert ("titlefontsizemultiplier");
2989  all_pnames.insert ("titlefontweight");
2990  all_pnames.insert ("toolbar");
2991  all_pnames.insert ("units");
2992  all_pnames.insert ("view");
2993  all_pnames.insert ("xaxis");
2994  all_pnames.insert ("xaxislocation");
2995  all_pnames.insert ("xcolor");
2996  all_pnames.insert ("xcolormode");
2997  all_pnames.insert ("xdir");
2998  all_pnames.insert ("xgrid");
2999  all_pnames.insert ("xlabel");
3000  all_pnames.insert ("xlim");
3001  all_pnames.insert ("xlimitmethod");
3002  all_pnames.insert ("xlimmode");
3003  all_pnames.insert ("xminorgrid");
3004  all_pnames.insert ("xminortick");
3005  all_pnames.insert ("xscale");
3006  all_pnames.insert ("xtick");
3007  all_pnames.insert ("xticklabel");
3008  all_pnames.insert ("xticklabelmode");
3009  all_pnames.insert ("xticklabelrotation");
3010  all_pnames.insert ("xtickmode");
3011  all_pnames.insert ("yaxis");
3012  all_pnames.insert ("yaxislocation");
3013  all_pnames.insert ("ycolor");
3014  all_pnames.insert ("ycolormode");
3015  all_pnames.insert ("ydir");
3016  all_pnames.insert ("ygrid");
3017  all_pnames.insert ("ylabel");
3018  all_pnames.insert ("ylim");
3019  all_pnames.insert ("ylimitmethod");
3020  all_pnames.insert ("ylimmode");
3021  all_pnames.insert ("yminorgrid");
3022  all_pnames.insert ("yminortick");
3023  all_pnames.insert ("yscale");
3024  all_pnames.insert ("ytick");
3025  all_pnames.insert ("yticklabel");
3026  all_pnames.insert ("yticklabelmode");
3027  all_pnames.insert ("yticklabelrotation");
3028  all_pnames.insert ("ytickmode");
3029  all_pnames.insert ("zaxis");
3030  all_pnames.insert ("zcolor");
3031  all_pnames.insert ("zcolormode");
3032  all_pnames.insert ("zdir");
3033  all_pnames.insert ("zgrid");
3034  all_pnames.insert ("zlabel");
3035  all_pnames.insert ("zlim");
3036  all_pnames.insert ("zlimitmethod");
3037  all_pnames.insert ("zlimmode");
3038  all_pnames.insert ("zminorgrid");
3039  all_pnames.insert ("zminortick");
3040  all_pnames.insert ("zscale");
3041  all_pnames.insert ("ztick");
3042  all_pnames.insert ("zticklabel");
3043  all_pnames.insert ("zticklabelmode");
3044  all_pnames.insert ("zticklabelrotation");
3045  all_pnames.insert ("ztickmode");
3046  all_pnames.insert ("__colormap__");
3047  all_pnames.insert ("mousewheelzoom");
3048  all_pnames.insert ("__autopos_tag__");
3049  all_pnames.insert ("looseinset");
3050  all_pnames.insert ("xminortickvalues");
3051  all_pnames.insert ("yminortickvalues");
3052  all_pnames.insert ("zminortickvalues");
3053  all_pnames.insert ("__fontsize_points__");
3054 
3055  std::set<std::string> base_pnames = base_properties::core_property_names ();
3056  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3057 
3058  initialized = true;
3059  }
3060 
3061  return all_pnames;
3062 }
3063 
3064 bool
3066 {
3067  std::set<std::string> pnames = core_property_names ();
3068 
3069  return pnames.find (pname) != pnames.end ();
3070 }
3071 
3072 std::set<std::string>
3074 {
3075  static std::set<std::string> all_pnames;
3076 
3077  static bool initialized = false;
3078 
3079  if (! initialized)
3080  {
3081  all_pnames.insert ("interactions");
3082  all_pnames.insert ("layout");
3083  all_pnames.insert ("legend");
3084  all_pnames.insert ("nextseriesindex");
3085  all_pnames.insert ("tightinset");
3086  all_pnames.insert ("toolbar");
3087  all_pnames.insert ("xaxis");
3088  all_pnames.insert ("yaxis");
3089  all_pnames.insert ("zaxis");
3090  all_pnames.insert ("__fontsize_points__");
3091 
3092  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
3093  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3094 
3095  initialized = true;
3096  }
3097 
3098  return all_pnames;
3099 }
3100 
3101 bool
3103 {
3104  std::set<std::string> pnames = readonly_property_names ();
3105 
3106  return pnames.find (pname) != pnames.end ();
3107 }
3108 
3109 std::set<std::string>
3111 {
3112  static std::set<std::string> all_pnames = core_property_names ();
3113 
3114  std::set<std::string> retval = all_pnames;
3115  std::set<std::string> base_props = base_properties::all_property_names ();
3116  retval.insert (base_props.begin (), base_props.end ());
3117 
3118  return retval;
3119 }
3120 
3121 bool
3123 {
3124  std::set<std::string> pnames = all_property_names ();
3125 
3126  return pnames.find (pname) != pnames.end ();
3127 }
3128 
3129 // ******** line ********
3130 
3132  : base_properties (s_go_name, mh, p),
3133  m_color ("color", mh, color_property (color_values (0, 0, 0), radio_values ("none"))),
3134  m_displayname ("displayname", mh, ""),
3135  m_linejoin ("linejoin", mh, "{round}|miter|chamfer"),
3136  m_linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
3137  m_linewidth ("linewidth", mh, 0.5),
3138  m_marker ("marker", mh, "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
3139  m_markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("{auto}|none"), color_values (0, 0, 0))),
3140  m_markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("auto|{none}"), color_values (0, 0, 0))),
3141  m_markersize ("markersize", mh, 6),
3142  m_xdata ("xdata", mh, default_data ()),
3143  m_xdatasource ("xdatasource", mh, ""),
3144  m_ydata ("ydata", mh, default_data ()),
3145  m_ydatasource ("ydatasource", mh, ""),
3146  m_zdata ("zdata", mh, Matrix ()),
3147  m_zdatasource ("zdatasource", mh, ""),
3148  m_xlim ("xlim", mh, default_data_lim ()),
3149  m_ylim ("ylim", mh, default_data_lim ()),
3150  m_zlim ("zlim", mh, Matrix ()),
3151  m_xliminclude ("xliminclude", mh, "on"),
3152  m_yliminclude ("yliminclude", mh, "on"),
3153  m_zliminclude ("zliminclude", mh, "on")
3154 {
3155  m_color.set_id (ID_COLOR);
3156  m_displayname.set_id (ID_DISPLAYNAME);
3157  m_linejoin.set_id (ID_LINEJOIN);
3158  m_linestyle.set_id (ID_LINESTYLE);
3159  m_linewidth.set_id (ID_LINEWIDTH);
3160  m_marker.set_id (ID_MARKER);
3161  m_markeredgecolor.set_id (ID_MARKEREDGECOLOR);
3162  m_markerfacecolor.set_id (ID_MARKERFACECOLOR);
3163  m_markersize.set_id (ID_MARKERSIZE);
3164  m_xdata.set_id (ID_XDATA);
3165  m_xdatasource.set_id (ID_XDATASOURCE);
3166  m_ydata.set_id (ID_YDATA);
3167  m_ydatasource.set_id (ID_YDATASOURCE);
3168  m_zdata.set_id (ID_ZDATA);
3169  m_zdatasource.set_id (ID_ZDATASOURCE);
3170  m_xlim.set_id (ID_XLIM);
3171  m_xlim.set_hidden (true);
3172  m_ylim.set_id (ID_YLIM);
3173  m_ylim.set_hidden (true);
3174  m_zlim.set_id (ID_ZLIM);
3175  m_zlim.set_hidden (true);
3176  m_xliminclude.set_id (ID_XLIMINCLUDE);
3177  m_xliminclude.set_hidden (true);
3178  m_yliminclude.set_id (ID_YLIMINCLUDE);
3179  m_yliminclude.set_hidden (true);
3180  m_zliminclude.set_id (ID_ZLIMINCLUDE);
3181  m_zliminclude.set_hidden (true);
3182  init ();
3183 }
3184 
3185 void
3186 line::properties::set (const caseless_str& pname_arg, const octave_value& val)
3187 {
3188  const std::set<std::string>& pnames = all_property_names ();
3189 
3190  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
3191 
3192  if (has_readonly_property (pname))
3193  {
3194  error ("set: \"%s\" is read-only", pname.c_str ());
3195  return;
3196  }
3197 
3198  if (pname.compare ("color"))
3199  set_color (val);
3200  else if (pname.compare ("displayname"))
3201  set_displayname (val);
3202  else if (pname.compare ("linejoin"))
3203  set_linejoin (val);
3204  else if (pname.compare ("linestyle"))
3205  set_linestyle (val);
3206  else if (pname.compare ("linewidth"))
3207  set_linewidth (val);
3208  else if (pname.compare ("marker"))
3209  set_marker (val);
3210  else if (pname.compare ("markeredgecolor"))
3211  set_markeredgecolor (val);
3212  else if (pname.compare ("markerfacecolor"))
3213  set_markerfacecolor (val);
3214  else if (pname.compare ("markersize"))
3215  set_markersize (val);
3216  else if (pname.compare ("xdata"))
3217  set_xdata (val);
3218  else if (pname.compare ("xdatasource"))
3219  set_xdatasource (val);
3220  else if (pname.compare ("ydata"))
3221  set_ydata (val);
3222  else if (pname.compare ("ydatasource"))
3223  set_ydatasource (val);
3224  else if (pname.compare ("zdata"))
3225  set_zdata (val);
3226  else if (pname.compare ("zdatasource"))
3227  set_zdatasource (val);
3228  else if (pname.compare ("xliminclude"))
3229  set_xliminclude (val);
3230  else if (pname.compare ("yliminclude"))
3231  set_yliminclude (val);
3232  else if (pname.compare ("zliminclude"))
3233  set_zliminclude (val);
3234  else
3235  base_properties::set (pname, val);
3236 }
3237 
3239 line::properties::get (bool all) const
3240 {
3242 
3243  m.assign ("color", octave_value (get_color ()));
3244  m.assign ("displayname", octave_value (get_displayname ()));
3245  m.assign ("linejoin", octave_value (get_linejoin ()));
3246  m.assign ("linestyle", octave_value (get_linestyle ()));
3247  m.assign ("linewidth", octave_value (get_linewidth ()));
3248  m.assign ("marker", octave_value (get_marker ()));
3249  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
3250  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
3251  m.assign ("markersize", octave_value (get_markersize ()));
3252  m.assign ("xdata", octave_value (get_xdata ()));
3253  m.assign ("xdatasource", octave_value (get_xdatasource ()));
3254  m.assign ("ydata", octave_value (get_ydata ()));
3255  m.assign ("ydatasource", octave_value (get_ydatasource ()));
3256  m.assign ("zdata", octave_value (get_zdata ()));
3257  m.assign ("zdatasource", octave_value (get_zdatasource ()));
3258  if (all)
3259  m.assign ("xlim", octave_value (get_xlim ()));
3260  if (all)
3261  m.assign ("ylim", octave_value (get_ylim ()));
3262  if (all)
3263  m.assign ("zlim", octave_value (get_zlim ()));
3264  if (all)
3265  m.assign ("xliminclude", octave_value (get_xliminclude ()));
3266  if (all)
3267  m.assign ("yliminclude", octave_value (get_yliminclude ()));
3268  if (all)
3269  m.assign ("zliminclude", octave_value (get_zliminclude ()));
3270 
3271  return m;
3272 }
3273 
3275 line::properties::get (const caseless_str& pname_arg) const
3276 {
3277  octave_value retval;
3278 
3279  const std::set<std::string>& pnames = all_property_names ();
3280 
3281  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
3282 
3283  if (pname.compare ("color"))
3284  retval = get_color ();
3285  else if (pname.compare ("displayname"))
3286  retval = get_displayname ();
3287  else if (pname.compare ("linejoin"))
3288  retval = get_linejoin ();
3289  else if (pname.compare ("linestyle"))
3290  retval = get_linestyle ();
3291  else if (pname.compare ("linewidth"))
3292  retval = get_linewidth ();
3293  else if (pname.compare ("marker"))
3294  retval = get_marker ();
3295  else if (pname.compare ("markeredgecolor"))
3296  retval = get_markeredgecolor ();
3297  else if (pname.compare ("markerfacecolor"))
3298  retval = get_markerfacecolor ();
3299  else if (pname.compare ("markersize"))
3300  retval = get_markersize ();
3301  else if (pname.compare ("xdata"))
3302  retval = get_xdata ();
3303  else if (pname.compare ("xdatasource"))
3304  retval = get_xdatasource ();
3305  else if (pname.compare ("ydata"))
3306  retval = get_ydata ();
3307  else if (pname.compare ("ydatasource"))
3308  retval = get_ydatasource ();
3309  else if (pname.compare ("zdata"))
3310  retval = get_zdata ();
3311  else if (pname.compare ("zdatasource"))
3312  retval = get_zdatasource ();
3313  else if (pname.compare ("xlim"))
3314  retval = get_xlim ();
3315  else if (pname.compare ("ylim"))
3316  retval = get_ylim ();
3317  else if (pname.compare ("zlim"))
3318  retval = get_zlim ();
3319  else if (pname.compare ("xliminclude"))
3320  retval = get_xliminclude ();
3321  else if (pname.compare ("yliminclude"))
3322  retval = get_yliminclude ();
3323  else if (pname.compare ("zliminclude"))
3324  retval = get_zliminclude ();
3325  else
3326  retval = base_properties::get (pname);
3327 
3328  return retval;
3329 }
3330 
3331 property
3333 {
3334  const std::set<std::string>& pnames = all_property_names ();
3335 
3336  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
3337 
3338  if (pname.compare ("color"))
3339  return property (&m_color, true);
3340  else if (pname.compare ("displayname"))
3341  return property (&m_displayname, true);
3342  else if (pname.compare ("linejoin"))
3343  return property (&m_linejoin, true);
3344  else if (pname.compare ("linestyle"))
3345  return property (&m_linestyle, true);
3346  else if (pname.compare ("linewidth"))
3347  return property (&m_linewidth, true);
3348  else if (pname.compare ("marker"))
3349  return property (&m_marker, true);
3350  else if (pname.compare ("markeredgecolor"))
3351  return property (&m_markeredgecolor, true);
3352  else if (pname.compare ("markerfacecolor"))
3353  return property (&m_markerfacecolor, true);
3354  else if (pname.compare ("markersize"))
3355  return property (&m_markersize, true);
3356  else if (pname.compare ("xdata"))
3357  return property (&m_xdata, true);
3358  else if (pname.compare ("xdatasource"))
3359  return property (&m_xdatasource, true);
3360  else if (pname.compare ("ydata"))
3361  return property (&m_ydata, true);
3362  else if (pname.compare ("ydatasource"))
3363  return property (&m_ydatasource, true);
3364  else if (pname.compare ("zdata"))
3365  return property (&m_zdata, true);
3366  else if (pname.compare ("zdatasource"))
3367  return property (&m_zdatasource, true);
3368  else if (pname.compare ("xlim"))
3369  return property (&m_xlim, true);
3370  else if (pname.compare ("ylim"))
3371  return property (&m_ylim, true);
3372  else if (pname.compare ("zlim"))
3373  return property (&m_zlim, true);
3374  else if (pname.compare ("xliminclude"))
3375  return property (&m_xliminclude, true);
3376  else if (pname.compare ("yliminclude"))
3377  return property (&m_yliminclude, true);
3378  else if (pname.compare ("zliminclude"))
3379  return property (&m_zliminclude, true);
3380  else
3381  return base_properties::get_property (pname);
3382 }
3383 
3386 {
3388 
3389  m["color"] = color_property (color_values (0, 0, 0), radio_values ("none"));
3390  m["displayname"] = "";
3391  m["linejoin"] = "round";
3392  m["linestyle"] = "-";
3393  m["linewidth"] = 0.5;
3394  m["marker"] = "none";
3395  m["markeredgecolor"] = color_property (radio_values ("{auto}|none"), color_values (0, 0, 0));
3396  m["markerfacecolor"] = color_property (radio_values ("auto|{none}"), color_values (0, 0, 0));
3397  m["markersize"] = 6;
3398  m["xdata"] = default_data ();
3399  m["xdatasource"] = "";
3400  m["ydata"] = default_data ();
3401  m["ydatasource"] = "";
3402  m["zdata"] = Matrix ();
3403  m["zdatasource"] = "";
3404  m["xlim"] = default_data_lim ();
3405  m["ylim"] = default_data_lim ();
3406  m["zlim"] = Matrix ();
3407  m["xliminclude"] = "on";
3408  m["yliminclude"] = "on";
3409  m["zliminclude"] = "on";
3410 
3411  return m;
3412 }
3413 
3414 std::string line::properties::s_go_name ("line");
3415 
3416 std::set<std::string>
3418 {
3419  static std::set<std::string> all_pnames;
3420 
3421  static bool initialized = false;
3422 
3423  if (! initialized)
3424  {
3425  all_pnames.insert ("color");
3426  all_pnames.insert ("displayname");
3427  all_pnames.insert ("linejoin");
3428  all_pnames.insert ("linestyle");
3429  all_pnames.insert ("linewidth");
3430  all_pnames.insert ("marker");
3431  all_pnames.insert ("markeredgecolor");
3432  all_pnames.insert ("markerfacecolor");
3433  all_pnames.insert ("markersize");
3434  all_pnames.insert ("xdata");
3435  all_pnames.insert ("xdatasource");
3436  all_pnames.insert ("ydata");
3437  all_pnames.insert ("ydatasource");
3438  all_pnames.insert ("zdata");
3439  all_pnames.insert ("zdatasource");
3440  all_pnames.insert ("xlim");
3441  all_pnames.insert ("ylim");
3442  all_pnames.insert ("zlim");
3443  all_pnames.insert ("xliminclude");
3444  all_pnames.insert ("yliminclude");
3445  all_pnames.insert ("zliminclude");
3446 
3447  std::set<std::string> base_pnames = base_properties::core_property_names ();
3448  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3449 
3450  initialized = true;
3451  }
3452 
3453  return all_pnames;
3454 }
3455 
3456 bool
3458 {
3459  std::set<std::string> pnames = core_property_names ();
3460 
3461  return pnames.find (pname) != pnames.end ();
3462 }
3463 
3464 std::set<std::string>
3466 {
3467  static std::set<std::string> all_pnames;
3468 
3469  static bool initialized = false;
3470 
3471  if (! initialized)
3472  {
3473  all_pnames.insert ("xlim");
3474  all_pnames.insert ("ylim");
3475  all_pnames.insert ("zlim");
3476 
3477  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
3478  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3479 
3480  initialized = true;
3481  }
3482 
3483  return all_pnames;
3484 }
3485 
3486 bool
3488 {
3489  std::set<std::string> pnames = readonly_property_names ();
3490 
3491  return pnames.find (pname) != pnames.end ();
3492 }
3493 
3494 std::set<std::string>
3496 {
3497  static std::set<std::string> all_pnames = core_property_names ();
3498 
3499  std::set<std::string> retval = all_pnames;
3500  std::set<std::string> base_props = base_properties::all_property_names ();
3501  retval.insert (base_props.begin (), base_props.end ());
3502 
3503  return retval;
3504 }
3505 
3506 bool
3508 {
3509  std::set<std::string> pnames = all_property_names ();
3510 
3511  return pnames.find (pname) != pnames.end ();
3512 }
3513 
3514 // ******** text ********
3515 
3517  : base_properties (s_go_name, mh, p),
3518  m_backgroundcolor ("backgroundcolor", mh, color_property (radio_values ("{none}"), color_values (1, 1, 1))),
3519  m_color ("color", mh, color_property (color_values (0, 0, 0), radio_values ("none"))),
3520  m_edgecolor ("edgecolor", mh, color_property (radio_values ("{none}"), color_values (0, 0, 0))),
3521  m_editing ("editing", mh, "off"),
3522  m_extent ("extent", mh, Matrix (1, 4, 0.0)),
3523  m_fontangle ("fontangle", mh, "{normal}|italic"),
3524  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
3525  m_fontsize ("fontsize", mh, 10),
3526  m_fontsmoothing ("fontsmoothing", mh, "on"),
3527  m_fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
3528  m_fontweight ("fontweight", mh, "{normal}|bold"),
3529  m_horizontalalignment ("horizontalalignment", mh, "{left}|center|right"),
3530  m_interpreter ("interpreter", mh, "{tex}|none|latex"),
3531  m_linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
3532  m_linewidth ("linewidth", mh, 0.5),
3533  m_margin ("margin", mh, 3),
3534  m_position ("position", mh, Matrix (1, 3, 0.0)),
3535  m_rotation ("rotation", mh, 0),
3536  m_string ("string", mh, ""),
3537  m_units ("units", mh, "{data}|pixels|normalized|inches|centimeters|points"),
3538  m_verticalalignment ("verticalalignment", mh, "top|cap|{middle}|baseline|bottom"),
3539  m_xlim ("xlim", mh, Matrix ()),
3540  m_ylim ("ylim", mh, Matrix ()),
3541  m_zlim ("zlim", mh, Matrix ()),
3542  m_xliminclude ("xliminclude", mh, "off"),
3543  m_yliminclude ("yliminclude", mh, "off"),
3544  m_zliminclude ("zliminclude", mh, "off"),
3545  m_positionmode ("positionmode", mh, "{auto}|manual"),
3546  m_rotationmode ("rotationmode", mh, "{auto}|manual"),
3547  m_horizontalalignmentmode ("horizontalalignmentmode", mh, "{auto}|manual"),
3548  m_verticalalignmentmode ("verticalalignmentmode", mh, "{auto}|manual"),
3549  m___autopos_tag__ ("__autopos_tag__", mh, "{none}|xlabel|ylabel|zlabel|title"),
3550  m___fontsize_points__ ("__fontsize_points__", mh, 0)
3551 {
3552  m_backgroundcolor.set_id (ID_BACKGROUNDCOLOR);
3553  m_color.set_id (ID_COLOR);
3554  m_edgecolor.set_id (ID_EDGECOLOR);
3555  m_editing.set_id (ID_EDITING);
3556  m_extent.set_id (ID_EXTENT);
3557  m_fontangle.set_id (ID_FONTANGLE);
3558  m_fontname.set_id (ID_FONTNAME);
3559  m_fontsize.set_id (ID_FONTSIZE);
3560  m_fontsmoothing.set_id (ID_FONTSMOOTHING);
3561  m_fontunits.set_id (ID_FONTUNITS);
3562  m_fontweight.set_id (ID_FONTWEIGHT);
3563  m_horizontalalignment.set_id (ID_HORIZONTALALIGNMENT);
3564  m_interpreter.set_id (ID_INTERPRETER);
3565  m_linestyle.set_id (ID_LINESTYLE);
3566  m_linewidth.set_id (ID_LINEWIDTH);
3567  m_margin.set_id (ID_MARGIN);
3568  m_position.set_id (ID_POSITION);
3569  m_rotation.set_id (ID_ROTATION);
3570  m_string.set_id (ID_STRING);
3571  m_units.set_id (ID_UNITS);
3572  m_verticalalignment.set_id (ID_VERTICALALIGNMENT);
3573  m_xlim.set_id (ID_XLIM);
3574  m_xlim.set_hidden (true);
3575  m_ylim.set_id (ID_YLIM);
3576  m_ylim.set_hidden (true);
3577  m_zlim.set_id (ID_ZLIM);
3578  m_zlim.set_hidden (true);
3579  m_xliminclude.set_id (ID_XLIMINCLUDE);
3580  m_xliminclude.set_hidden (true);
3581  m_yliminclude.set_id (ID_YLIMINCLUDE);
3582  m_yliminclude.set_hidden (true);
3583  m_zliminclude.set_id (ID_ZLIMINCLUDE);
3584  m_zliminclude.set_hidden (true);
3585  m_positionmode.set_id (ID_POSITIONMODE);
3586  m_positionmode.set_hidden (true);
3587  m_rotationmode.set_id (ID_ROTATIONMODE);
3588  m_rotationmode.set_hidden (true);
3589  m_horizontalalignmentmode.set_id (ID_HORIZONTALALIGNMENTMODE);
3590  m_horizontalalignmentmode.set_hidden (true);
3591  m_verticalalignmentmode.set_id (ID_VERTICALALIGNMENTMODE);
3592  m_verticalalignmentmode.set_hidden (true);
3593  m___autopos_tag__.set_id (ID___AUTOPOS_TAG__);
3594  m___autopos_tag__.set_hidden (true);
3595  m___fontsize_points__.set_id (ID___FONTSIZE_POINTS__);
3596  m___fontsize_points__.set_hidden (true);
3597  init ();
3598 }
3599 
3600 void
3601 text::properties::set (const caseless_str& pname_arg, const octave_value& val)
3602 {
3603  const std::set<std::string>& pnames = all_property_names ();
3604 
3605  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
3606 
3607  if (has_readonly_property (pname))
3608  {
3609  error ("set: \"%s\" is read-only", pname.c_str ());
3610  return;
3611  }
3612 
3613  if (pname.compare ("backgroundcolor"))
3614  set_backgroundcolor (val);
3615  else if (pname.compare ("color"))
3616  set_color (val);
3617  else if (pname.compare ("edgecolor"))
3618  set_edgecolor (val);
3619  else if (pname.compare ("editing"))
3620  set_editing (val);
3621  else if (pname.compare ("fontangle"))
3622  set_fontangle (val);
3623  else if (pname.compare ("fontname"))
3624  set_fontname (val);
3625  else if (pname.compare ("fontsize"))
3626  set_fontsize (val);
3627  else if (pname.compare ("fontsmoothing"))
3628  set_fontsmoothing (val);
3629  else if (pname.compare ("fontunits"))
3630  set_fontunits (val);
3631  else if (pname.compare ("fontweight"))
3632  set_fontweight (val);
3633  else if (pname.compare ("horizontalalignment"))
3634  set_horizontalalignment (val);
3635  else if (pname.compare ("interpreter"))
3636  set_interpreter (val);
3637  else if (pname.compare ("linestyle"))
3638  set_linestyle (val);
3639  else if (pname.compare ("linewidth"))
3640  set_linewidth (val);
3641  else if (pname.compare ("margin"))
3642  set_margin (val);
3643  else if (pname.compare ("position"))
3644  set_position (val);
3645  else if (pname.compare ("rotation"))
3646  set_rotation (val);
3647  else if (pname.compare ("string"))
3648  set_string (val);
3649  else if (pname.compare ("units"))
3650  set_units (val);
3651  else if (pname.compare ("verticalalignment"))
3652  set_verticalalignment (val);
3653  else if (pname.compare ("xliminclude"))
3654  set_xliminclude (val);
3655  else if (pname.compare ("yliminclude"))
3656  set_yliminclude (val);
3657  else if (pname.compare ("zliminclude"))
3658  set_zliminclude (val);
3659  else if (pname.compare ("positionmode"))
3660  set_positionmode (val);
3661  else if (pname.compare ("rotationmode"))
3662  set_rotationmode (val);
3663  else if (pname.compare ("horizontalalignmentmode"))
3664  set_horizontalalignmentmode (val);
3665  else if (pname.compare ("verticalalignmentmode"))
3666  set_verticalalignmentmode (val);
3667  else if (pname.compare ("__autopos_tag__"))
3668  set___autopos_tag__ (val);
3669  else
3670  base_properties::set (pname, val);
3671 }
3672 
3674 text::properties::get (bool all) const
3675 {
3677 
3678  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
3679  m.assign ("color", octave_value (get_color ()));
3680  m.assign ("edgecolor", octave_value (get_edgecolor ()));
3681  m.assign ("editing", octave_value (get_editing ()));
3682  m.assign ("extent", octave_value (get_extent ()));
3683  m.assign ("fontangle", octave_value (get_fontangle ()));
3684  m.assign ("fontname", octave_value (get_fontname ()));
3685  m.assign ("fontsize", octave_value (get_fontsize ()));
3686  m.assign ("fontsmoothing", octave_value (get_fontsmoothing ()));
3687  m.assign ("fontunits", octave_value (get_fontunits ()));
3688  m.assign ("fontweight", octave_value (get_fontweight ()));
3689  m.assign ("horizontalalignment", octave_value (get_horizontalalignment ()));
3690  m.assign ("interpreter", octave_value (get_interpreter ()));
3691  m.assign ("linestyle", octave_value (get_linestyle ()));
3692  m.assign ("linewidth", octave_value (get_linewidth ()));
3693  m.assign ("margin", octave_value (get_margin ()));
3694  m.assign ("position", octave_value (get_position ()));
3695  m.assign ("rotation", octave_value (get_rotation ()));
3696  m.assign ("string", octave_value (get_string ()));
3697  m.assign ("units", octave_value (get_units ()));
3698  m.assign ("verticalalignment", octave_value (get_verticalalignment ()));
3699  if (all)
3700  m.assign ("xlim", octave_value (get_xlim ()));
3701  if (all)
3702  m.assign ("ylim", octave_value (get_ylim ()));
3703  if (all)
3704  m.assign ("zlim", octave_value (get_zlim ()));
3705  if (all)
3706  m.assign ("xliminclude", octave_value (get_xliminclude ()));
3707  if (all)
3708  m.assign ("yliminclude", octave_value (get_yliminclude ()));
3709  if (all)
3710  m.assign ("zliminclude", octave_value (get_zliminclude ()));
3711  if (all)
3712  m.assign ("positionmode", octave_value (get_positionmode ()));
3713  if (all)
3714  m.assign ("rotationmode", octave_value (get_rotationmode ()));
3715  if (all)
3716  m.assign ("horizontalalignmentmode", octave_value (get_horizontalalignmentmode ()));
3717  if (all)
3718  m.assign ("verticalalignmentmode", octave_value (get_verticalalignmentmode ()));
3719  if (all)
3720  m.assign ("__autopos_tag__", octave_value (get___autopos_tag__ ()));
3721  if (all)
3722  m.assign ("__fontsize_points__", octave_value (get___fontsize_points__ ()));
3723 
3724  return m;
3725 }
3726 
3728 text::properties::get (const caseless_str& pname_arg) const
3729 {
3730  octave_value retval;
3731 
3732  const std::set<std::string>& pnames = all_property_names ();
3733 
3734  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
3735 
3736  if (pname.compare ("backgroundcolor"))
3737  retval = get_backgroundcolor ();
3738  else if (pname.compare ("color"))
3739  retval = get_color ();
3740  else if (pname.compare ("edgecolor"))
3741  retval = get_edgecolor ();
3742  else if (pname.compare ("editing"))
3743  retval = get_editing ();
3744  else if (pname.compare ("extent"))
3745  retval = get_extent ();
3746  else if (pname.compare ("fontangle"))
3747  retval = get_fontangle ();
3748  else if (pname.compare ("fontname"))
3749  retval = get_fontname ();
3750  else if (pname.compare ("fontsize"))
3751  retval = get_fontsize ();
3752  else if (pname.compare ("fontsmoothing"))
3753  retval = get_fontsmoothing ();
3754  else if (pname.compare ("fontunits"))
3755  retval = get_fontunits ();
3756  else if (pname.compare ("fontweight"))
3757  retval = get_fontweight ();
3758  else if (pname.compare ("horizontalalignment"))
3759  retval = get_horizontalalignment ();
3760  else if (pname.compare ("interpreter"))
3761  retval = get_interpreter ();
3762  else if (pname.compare ("linestyle"))
3763  retval = get_linestyle ();
3764  else if (pname.compare ("linewidth"))
3765  retval = get_linewidth ();
3766  else if (pname.compare ("margin"))
3767  retval = get_margin ();
3768  else if (pname.compare ("position"))
3769  retval = get_position ();
3770  else if (pname.compare ("rotation"))
3771  retval = get_rotation ();
3772  else if (pname.compare ("string"))
3773  retval = get_string ();
3774  else if (pname.compare ("units"))
3775  retval = get_units ();
3776  else if (pname.compare ("verticalalignment"))
3777  retval = get_verticalalignment ();
3778  else if (pname.compare ("xlim"))
3779  retval = get_xlim ();
3780  else if (pname.compare ("ylim"))
3781  retval = get_ylim ();
3782  else if (pname.compare ("zlim"))
3783  retval = get_zlim ();
3784  else if (pname.compare ("xliminclude"))
3785  retval = get_xliminclude ();
3786  else if (pname.compare ("yliminclude"))
3787  retval = get_yliminclude ();
3788  else if (pname.compare ("zliminclude"))
3789  retval = get_zliminclude ();
3790  else if (pname.compare ("positionmode"))
3791  retval = get_positionmode ();
3792  else if (pname.compare ("rotationmode"))
3793  retval = get_rotationmode ();
3794  else if (pname.compare ("horizontalalignmentmode"))
3795  retval = get_horizontalalignmentmode ();
3796  else if (pname.compare ("verticalalignmentmode"))
3797  retval = get_verticalalignmentmode ();
3798  else if (pname.compare ("__autopos_tag__"))
3799  retval = get___autopos_tag__ ();
3800  else if (pname.compare ("__fontsize_points__"))
3801  retval = get___fontsize_points__ ();
3802  else
3803  retval = base_properties::get (pname);
3804 
3805  return retval;
3806 }
3807 
3808 property
3810 {
3811  const std::set<std::string>& pnames = all_property_names ();
3812 
3813  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
3814 
3815  if (pname.compare ("backgroundcolor"))
3816  return property (&m_backgroundcolor, true);
3817  else if (pname.compare ("color"))
3818  return property (&m_color, true);
3819  else if (pname.compare ("edgecolor"))
3820  return property (&m_edgecolor, true);
3821  else if (pname.compare ("editing"))
3822  return property (&m_editing, true);
3823  else if (pname.compare ("extent"))
3824  return property (&m_extent, true);
3825  else if (pname.compare ("fontangle"))
3826  return property (&m_fontangle, true);
3827  else if (pname.compare ("fontname"))
3828  return property (&m_fontname, true);
3829  else if (pname.compare ("fontsize"))
3830  return property (&m_fontsize, true);
3831  else if (pname.compare ("fontsmoothing"))
3832  return property (&m_fontsmoothing, true);
3833  else if (pname.compare ("fontunits"))
3834  return property (&m_fontunits, true);
3835  else if (pname.compare ("fontweight"))
3836  return property (&m_fontweight, true);
3837  else if (pname.compare ("horizontalalignment"))
3838  return property (&m_horizontalalignment, true);
3839  else if (pname.compare ("interpreter"))
3840  return property (&m_interpreter, true);
3841  else if (pname.compare ("linestyle"))
3842  return property (&m_linestyle, true);
3843  else if (pname.compare ("linewidth"))
3844  return property (&m_linewidth, true);
3845  else if (pname.compare ("margin"))
3846  return property (&m_margin, true);
3847  else if (pname.compare ("position"))
3848  return property (&m_position, true);
3849  else if (pname.compare ("rotation"))
3850  return property (&m_rotation, true);
3851  else if (pname.compare ("string"))
3852  return property (&m_string, true);
3853  else if (pname.compare ("units"))
3854  return property (&m_units, true);
3855  else if (pname.compare ("verticalalignment"))
3856  return property (&m_verticalalignment, true);
3857  else if (pname.compare ("xlim"))
3858  return property (&m_xlim, true);
3859  else if (pname.compare ("ylim"))
3860  return property (&m_ylim, true);
3861  else if (pname.compare ("zlim"))
3862  return property (&m_zlim, true);
3863  else if (pname.compare ("xliminclude"))
3864  return property (&m_xliminclude, true);
3865  else if (pname.compare ("yliminclude"))
3866  return property (&m_yliminclude, true);
3867  else if (pname.compare ("zliminclude"))
3868  return property (&m_zliminclude, true);
3869  else if (pname.compare ("positionmode"))
3870  return property (&m_positionmode, true);
3871  else if (pname.compare ("rotationmode"))
3872  return property (&m_rotationmode, true);
3873  else if (pname.compare ("horizontalalignmentmode"))
3874  return property (&m_horizontalalignmentmode, true);
3875  else if (pname.compare ("verticalalignmentmode"))
3876  return property (&m_verticalalignmentmode, true);
3877  else if (pname.compare ("__autopos_tag__"))
3878  return property (&m___autopos_tag__, true);
3879  else if (pname.compare ("__fontsize_points__"))
3880  return property (&m___fontsize_points__, true);
3881  else
3882  return base_properties::get_property (pname);
3883 }
3884 
3887 {
3889 
3890  m["backgroundcolor"] = color_property (radio_values ("{none}"), color_values (1, 1, 1));
3891  m["color"] = color_property (color_values (0, 0, 0), radio_values ("none"));
3892  m["edgecolor"] = color_property (radio_values ("{none}"), color_values (0, 0, 0));
3893  m["editing"] = "off";
3894  m["extent"] = Matrix (1, 4, 0.0);
3895  m["fontangle"] = "normal";
3896  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
3897  m["fontsize"] = 10;
3898  m["fontsmoothing"] = "on";
3899  m["fontunits"] = "points";
3900  m["fontweight"] = "normal";
3901  m["horizontalalignment"] = "left";
3902  m["interpreter"] = "tex";
3903  m["linestyle"] = "-";
3904  m["linewidth"] = 0.5;
3905  m["margin"] = 3;
3906  m["position"] = Matrix (1, 3, 0.0);
3907  m["rotation"] = 0;
3908  m["string"] = "";
3909  m["units"] = "data";
3910  m["verticalalignment"] = "middle";
3911  m["xlim"] = Matrix ();
3912  m["ylim"] = Matrix ();
3913  m["zlim"] = Matrix ();
3914  m["xliminclude"] = "off";
3915  m["yliminclude"] = "off";
3916  m["zliminclude"] = "off";
3917  m["positionmode"] = "auto";
3918  m["rotationmode"] = "auto";
3919  m["horizontalalignmentmode"] = "auto";
3920  m["verticalalignmentmode"] = "auto";
3921  m["__autopos_tag__"] = "none";
3922  m["__fontsize_points__"] = 0;
3923 
3924  return m;
3925 }
3926 
3927 std::string text::properties::s_go_name ("text");
3928 
3929 std::set<std::string>
3931 {
3932  static std::set<std::string> all_pnames;
3933 
3934  static bool initialized = false;
3935 
3936  if (! initialized)
3937  {
3938  all_pnames.insert ("backgroundcolor");
3939  all_pnames.insert ("color");
3940  all_pnames.insert ("edgecolor");
3941  all_pnames.insert ("editing");
3942  all_pnames.insert ("extent");
3943  all_pnames.insert ("fontangle");
3944  all_pnames.insert ("fontname");
3945  all_pnames.insert ("fontsize");
3946  all_pnames.insert ("fontsmoothing");
3947  all_pnames.insert ("fontunits");
3948  all_pnames.insert ("fontweight");
3949  all_pnames.insert ("horizontalalignment");
3950  all_pnames.insert ("interpreter");
3951  all_pnames.insert ("linestyle");
3952  all_pnames.insert ("linewidth");
3953  all_pnames.insert ("margin");
3954  all_pnames.insert ("position");
3955  all_pnames.insert ("rotation");
3956  all_pnames.insert ("string");
3957  all_pnames.insert ("units");
3958  all_pnames.insert ("verticalalignment");
3959  all_pnames.insert ("xlim");
3960  all_pnames.insert ("ylim");
3961  all_pnames.insert ("zlim");
3962  all_pnames.insert ("xliminclude");
3963  all_pnames.insert ("yliminclude");
3964  all_pnames.insert ("zliminclude");
3965  all_pnames.insert ("positionmode");
3966  all_pnames.insert ("rotationmode");
3967  all_pnames.insert ("horizontalalignmentmode");
3968  all_pnames.insert ("verticalalignmentmode");
3969  all_pnames.insert ("__autopos_tag__");
3970  all_pnames.insert ("__fontsize_points__");
3971 
3972  std::set<std::string> base_pnames = base_properties::core_property_names ();
3973  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3974 
3975  initialized = true;
3976  }
3977 
3978  return all_pnames;
3979 }
3980 
3981 bool
3983 {
3984  std::set<std::string> pnames = core_property_names ();
3985 
3986  return pnames.find (pname) != pnames.end ();
3987 }
3988 
3989 std::set<std::string>
3991 {
3992  static std::set<std::string> all_pnames;
3993 
3994  static bool initialized = false;
3995 
3996  if (! initialized)
3997  {
3998  all_pnames.insert ("extent");
3999  all_pnames.insert ("xlim");
4000  all_pnames.insert ("ylim");
4001  all_pnames.insert ("zlim");
4002  all_pnames.insert ("__fontsize_points__");
4003 
4004  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
4005  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4006 
4007  initialized = true;
4008  }
4009 
4010  return all_pnames;
4011 }
4012 
4013 bool
4015 {
4016  std::set<std::string> pnames = readonly_property_names ();
4017 
4018  return pnames.find (pname) != pnames.end ();
4019 }
4020 
4021 std::set<std::string>
4023 {
4024  static std::set<std::string> all_pnames = core_property_names ();
4025 
4026  std::set<std::string> retval = all_pnames;
4027  std::set<std::string> base_props = base_properties::all_property_names ();
4028  retval.insert (base_props.begin (), base_props.end ());
4029 
4030  return retval;
4031 }
4032 
4033 bool
4035 {
4036  std::set<std::string> pnames = all_property_names ();
4037 
4038  return pnames.find (pname) != pnames.end ();
4039 }
4040 
4041 // ******** image ********
4042 
4044  : base_properties (s_go_name, mh, p),
4045  m_alphadata ("alphadata", mh, Matrix (1, 1, 1.0)),
4046  m_alphadatamapping ("alphadatamapping", mh, "{none}|direct|scaled"),
4047  m_cdata ("cdata", mh, default_image_cdata ()),
4048  m_cdatamapping ("cdatamapping", mh, "scaled|{direct}"),
4049  m_xdata ("xdata", mh, Matrix ()),
4050  m_ydata ("ydata", mh, Matrix ()),
4051  m_alim ("alim", mh, Matrix ()),
4052  m_clim ("clim", mh, Matrix ()),
4053  m_xlim ("xlim", mh, Matrix ()),
4054  m_ylim ("ylim", mh, Matrix ()),
4055  m_aliminclude ("aliminclude", mh, "on"),
4056  m_climinclude ("climinclude", mh, "on"),
4057  m_xliminclude ("xliminclude", mh, "on"),
4058  m_yliminclude ("yliminclude", mh, "on"),
4059  m_xdatamode ("xdatamode", mh, "{auto}|manual"),
4060  m_ydatamode ("ydatamode", mh, "{auto}|manual")
4061 {
4062  m_alphadata.set_id (ID_ALPHADATA);
4063  m_alphadatamapping.set_id (ID_ALPHADATAMAPPING);
4064  m_cdata.set_id (ID_CDATA);
4065  m_cdatamapping.set_id (ID_CDATAMAPPING);
4066  m_xdata.set_id (ID_XDATA);
4067  m_ydata.set_id (ID_YDATA);
4068  m_alim.set_id (ID_ALIM);
4069  m_alim.set_hidden (true);
4070  m_clim.set_id (ID_CLIM);
4071  m_clim.set_hidden (true);
4072  m_xlim.set_id (ID_XLIM);
4073  m_xlim.set_hidden (true);
4074  m_ylim.set_id (ID_YLIM);
4075  m_ylim.set_hidden (true);
4076  m_aliminclude.set_id (ID_ALIMINCLUDE);
4077  m_aliminclude.set_hidden (true);
4078  m_climinclude.set_id (ID_CLIMINCLUDE);
4079  m_climinclude.set_hidden (true);
4080  m_xliminclude.set_id (ID_XLIMINCLUDE);
4081  m_xliminclude.set_hidden (true);
4082  m_yliminclude.set_id (ID_YLIMINCLUDE);
4083  m_yliminclude.set_hidden (true);
4084  m_xdatamode.set_id (ID_XDATAMODE);
4085  m_xdatamode.set_hidden (true);
4086  m_ydatamode.set_id (ID_YDATAMODE);
4087  m_ydatamode.set_hidden (true);
4088  init ();
4089 }
4090 
4091 void
4092 image::properties::set (const caseless_str& pname_arg, const octave_value& val)
4093 {
4094  const std::set<std::string>& pnames = all_property_names ();
4095 
4096  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
4097 
4098  if (has_readonly_property (pname))
4099  {
4100  error ("set: \"%s\" is read-only", pname.c_str ());
4101  return;
4102  }
4103 
4104  if (pname.compare ("alphadata"))
4105  set_alphadata (val);
4106  else if (pname.compare ("alphadatamapping"))
4107  set_alphadatamapping (val);
4108  else if (pname.compare ("cdata"))
4109  set_cdata (val);
4110  else if (pname.compare ("cdatamapping"))
4111  set_cdatamapping (val);
4112  else if (pname.compare ("xdata"))
4113  set_xdata (val);
4114  else if (pname.compare ("ydata"))
4115  set_ydata (val);
4116  else if (pname.compare ("aliminclude"))
4117  set_aliminclude (val);
4118  else if (pname.compare ("climinclude"))
4119  set_climinclude (val);
4120  else if (pname.compare ("xliminclude"))
4121  set_xliminclude (val);
4122  else if (pname.compare ("yliminclude"))
4123  set_yliminclude (val);
4124  else if (pname.compare ("xdatamode"))
4125  set_xdatamode (val);
4126  else if (pname.compare ("ydatamode"))
4127  set_ydatamode (val);
4128  else
4129  base_properties::set (pname, val);
4130 }
4131 
4133 image::properties::get (bool all) const
4134 {
4136 
4137  m.assign ("alphadata", octave_value (get_alphadata ()));
4138  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
4139  m.assign ("cdata", octave_value (get_cdata ()));
4140  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
4141  m.assign ("xdata", octave_value (get_xdata ()));
4142  m.assign ("ydata", octave_value (get_ydata ()));
4143  if (all)
4144  m.assign ("alim", octave_value (get_alim ()));
4145  if (all)
4146  m.assign ("clim", octave_value (get_clim ()));
4147  if (all)
4148  m.assign ("xlim", octave_value (get_xlim ()));
4149  if (all)
4150  m.assign ("ylim", octave_value (get_ylim ()));
4151  if (all)
4152  m.assign ("aliminclude", octave_value (get_aliminclude ()));
4153  if (all)
4154  m.assign ("climinclude", octave_value (get_climinclude ()));
4155  if (all)
4156  m.assign ("xliminclude", octave_value (get_xliminclude ()));
4157  if (all)
4158  m.assign ("yliminclude", octave_value (get_yliminclude ()));
4159  if (all)
4160  m.assign ("xdatamode", octave_value (get_xdatamode ()));
4161  if (all)
4162  m.assign ("ydatamode", octave_value (get_ydatamode ()));
4163 
4164  return m;
4165 }
4166 
4168 image::properties::get (const caseless_str& pname_arg) const
4169 {
4170  octave_value retval;
4171 
4172  const std::set<std::string>& pnames = all_property_names ();
4173 
4174  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4175 
4176  if (pname.compare ("alphadata"))
4177  retval = get_alphadata ();
4178  else if (pname.compare ("alphadatamapping"))
4179  retval = get_alphadatamapping ();
4180  else if (pname.compare ("cdata"))
4181  retval = get_cdata ();
4182  else if (pname.compare ("cdatamapping"))
4183  retval = get_cdatamapping ();
4184  else if (pname.compare ("xdata"))
4185  retval = get_xdata ();
4186  else if (pname.compare ("ydata"))
4187  retval = get_ydata ();
4188  else if (pname.compare ("alim"))
4189  retval = get_alim ();
4190  else if (pname.compare ("clim"))
4191  retval = get_clim ();
4192  else if (pname.compare ("xlim"))
4193  retval = get_xlim ();
4194  else if (pname.compare ("ylim"))
4195  retval = get_ylim ();
4196  else if (pname.compare ("aliminclude"))
4197  retval = get_aliminclude ();
4198  else if (pname.compare ("climinclude"))
4199  retval = get_climinclude ();
4200  else if (pname.compare ("xliminclude"))
4201  retval = get_xliminclude ();
4202  else if (pname.compare ("yliminclude"))
4203  retval = get_yliminclude ();
4204  else if (pname.compare ("xdatamode"))
4205  retval = get_xdatamode ();
4206  else if (pname.compare ("ydatamode"))
4207  retval = get_ydatamode ();
4208  else
4209  retval = base_properties::get (pname);
4210 
4211  return retval;
4212 }
4213 
4214 property
4216 {
4217  const std::set<std::string>& pnames = all_property_names ();
4218 
4219  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4220 
4221  if (pname.compare ("alphadata"))
4222  return property (&m_alphadata, true);
4223  else if (pname.compare ("alphadatamapping"))
4224  return property (&m_alphadatamapping, true);
4225  else if (pname.compare ("cdata"))
4226  return property (&m_cdata, true);
4227  else if (pname.compare ("cdatamapping"))
4228  return property (&m_cdatamapping, true);
4229  else if (pname.compare ("xdata"))
4230  return property (&m_xdata, true);
4231  else if (pname.compare ("ydata"))
4232  return property (&m_ydata, true);
4233  else if (pname.compare ("alim"))
4234  return property (&m_alim, true);
4235  else if (pname.compare ("clim"))
4236  return property (&m_clim, true);
4237  else if (pname.compare ("xlim"))
4238  return property (&m_xlim, true);
4239  else if (pname.compare ("ylim"))
4240  return property (&m_ylim, true);
4241  else if (pname.compare ("aliminclude"))
4242  return property (&m_aliminclude, true);
4243  else if (pname.compare ("climinclude"))
4244  return property (&m_climinclude, true);
4245  else if (pname.compare ("xliminclude"))
4246  return property (&m_xliminclude, true);
4247  else if (pname.compare ("yliminclude"))
4248  return property (&m_yliminclude, true);
4249  else if (pname.compare ("xdatamode"))
4250  return property (&m_xdatamode, true);
4251  else if (pname.compare ("ydatamode"))
4252  return property (&m_ydatamode, true);
4253  else
4254  return base_properties::get_property (pname);
4255 }
4256 
4259 {
4261 
4262  m["alphadata"] = Matrix (1, 1, 1.0);
4263  m["alphadatamapping"] = "none";
4264  m["cdata"] = default_image_cdata ();
4265  m["cdatamapping"] = "direct";
4266  m["xdata"] = Matrix ();
4267  m["ydata"] = Matrix ();
4268  m["alim"] = Matrix ();
4269  m["clim"] = Matrix ();
4270  m["xlim"] = Matrix ();
4271  m["ylim"] = Matrix ();
4272  m["aliminclude"] = "on";
4273  m["climinclude"] = "on";
4274  m["xliminclude"] = "on";
4275  m["yliminclude"] = "on";
4276  m["xdatamode"] = "auto";
4277  m["ydatamode"] = "auto";
4278 
4279  return m;
4280 }
4281 
4282 std::string image::properties::s_go_name ("image");
4283 
4284 std::set<std::string>
4286 {
4287  static std::set<std::string> all_pnames;
4288 
4289  static bool initialized = false;
4290 
4291  if (! initialized)
4292  {
4293  all_pnames.insert ("alphadata");
4294  all_pnames.insert ("alphadatamapping");
4295  all_pnames.insert ("cdata");
4296  all_pnames.insert ("cdatamapping");
4297  all_pnames.insert ("xdata");
4298  all_pnames.insert ("ydata");
4299  all_pnames.insert ("alim");
4300  all_pnames.insert ("clim");
4301  all_pnames.insert ("xlim");
4302  all_pnames.insert ("ylim");
4303  all_pnames.insert ("aliminclude");
4304  all_pnames.insert ("climinclude");
4305  all_pnames.insert ("xliminclude");
4306  all_pnames.insert ("yliminclude");
4307  all_pnames.insert ("xdatamode");
4308  all_pnames.insert ("ydatamode");
4309 
4310  std::set<std::string> base_pnames = base_properties::core_property_names ();
4311  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4312 
4313  initialized = true;
4314  }
4315 
4316  return all_pnames;
4317 }
4318 
4319 bool
4321 {
4322  std::set<std::string> pnames = core_property_names ();
4323 
4324  return pnames.find (pname) != pnames.end ();
4325 }
4326 
4327 std::set<std::string>
4329 {
4330  static std::set<std::string> all_pnames;
4331 
4332  static bool initialized = false;
4333 
4334  if (! initialized)
4335  {
4336  all_pnames.insert ("alim");
4337  all_pnames.insert ("clim");
4338  all_pnames.insert ("xlim");
4339  all_pnames.insert ("ylim");
4340 
4341  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
4342  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4343 
4344  initialized = true;
4345  }
4346 
4347  return all_pnames;
4348 }
4349 
4350 bool
4352 {
4353  std::set<std::string> pnames = readonly_property_names ();
4354 
4355  return pnames.find (pname) != pnames.end ();
4356 }
4357 
4358 std::set<std::string>
4360 {
4361  static std::set<std::string> all_pnames = core_property_names ();
4362 
4363  std::set<std::string> retval = all_pnames;
4364  std::set<std::string> base_props = base_properties::all_property_names ();
4365  retval.insert (base_props.begin (), base_props.end ());
4366 
4367  return retval;
4368 }
4369 
4370 bool
4372 {
4373  std::set<std::string> pnames = all_property_names ();
4374 
4375  return pnames.find (pname) != pnames.end ();
4376 }
4377 
4378 // ******** light ********
4379 
4381  : base_properties (s_go_name, mh, p),
4382  m_color ("color", mh, color_values (1, 1, 1)),
4383  m_position ("position", mh, default_light_position ()),
4384  m_style ("style", mh, "{infinite}|local")
4385 {
4386  m_color.set_id (ID_COLOR);
4387  m_position.set_id (ID_POSITION);
4388  m_style.set_id (ID_STYLE);
4389  init ();
4390 }
4391 
4392 void
4393 light::properties::set (const caseless_str& pname_arg, const octave_value& val)
4394 {
4395  const std::set<std::string>& pnames = all_property_names ();
4396 
4397  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
4398 
4399  if (has_readonly_property (pname))
4400  {
4401  error ("set: \"%s\" is read-only", pname.c_str ());
4402  return;
4403  }
4404 
4405  if (pname.compare ("color"))
4406  set_color (val);
4407  else if (pname.compare ("position"))
4408  set_position (val);
4409  else if (pname.compare ("style"))
4410  set_style (val);
4411  else
4412  base_properties::set (pname, val);
4413 }
4414 
4416 light::properties::get (bool all) const
4417 {
4419 
4420  m.assign ("color", octave_value (get_color ()));
4421  m.assign ("position", octave_value (get_position ()));
4422  m.assign ("style", octave_value (get_style ()));
4423 
4424  return m;
4425 }
4426 
4428 light::properties::get (const caseless_str& pname_arg) const
4429 {
4430  octave_value retval;
4431 
4432  const std::set<std::string>& pnames = all_property_names ();
4433 
4434  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4435 
4436  if (pname.compare ("color"))
4437  retval = get_color ();
4438  else if (pname.compare ("position"))
4439  retval = get_position ();
4440  else if (pname.compare ("style"))
4441  retval = get_style ();
4442  else
4443  retval = base_properties::get (pname);
4444 
4445  return retval;
4446 }
4447 
4448 property
4450 {
4451  const std::set<std::string>& pnames = all_property_names ();
4452 
4453  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4454 
4455  if (pname.compare ("color"))
4456  return property (&m_color, true);
4457  else if (pname.compare ("position"))
4458  return property (&m_position, true);
4459  else if (pname.compare ("style"))
4460  return property (&m_style, true);
4461  else
4462  return base_properties::get_property (pname);
4463 }
4464 
4467 {
4469 
4470  m["color"] = color_values (1, 1, 1);
4471  m["position"] = default_light_position ();
4472  m["style"] = "infinite";
4473 
4474  return m;
4475 }
4476 
4477 std::string light::properties::s_go_name ("light");
4478 
4479 std::set<std::string>
4481 {
4482  static std::set<std::string> all_pnames;
4483 
4484  static bool initialized = false;
4485 
4486  if (! initialized)
4487  {
4488  all_pnames.insert ("color");
4489  all_pnames.insert ("position");
4490  all_pnames.insert ("style");
4491 
4492  std::set<std::string> base_pnames = base_properties::core_property_names ();
4493  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4494 
4495  initialized = true;
4496  }
4497 
4498  return all_pnames;
4499 }
4500 
4501 bool
4503 {
4504  std::set<std::string> pnames = core_property_names ();
4505 
4506  return pnames.find (pname) != pnames.end ();
4507 }
4508 
4509 std::set<std::string>
4511 {
4512  static std::set<std::string> all_pnames;
4513 
4514  static bool initialized = false;
4515 
4516  if (! initialized)
4517  {
4518 
4519  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
4520  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4521 
4522  initialized = true;
4523  }
4524 
4525  return all_pnames;
4526 }
4527 
4528 bool
4530 {
4531  std::set<std::string> pnames = readonly_property_names ();
4532 
4533  return pnames.find (pname) != pnames.end ();
4534 }
4535 
4536 std::set<std::string>
4538 {
4539  static std::set<std::string> all_pnames = core_property_names ();
4540 
4541  std::set<std::string> retval = all_pnames;
4542  std::set<std::string> base_props = base_properties::all_property_names ();
4543  retval.insert (base_props.begin (), base_props.end ());
4544 
4545  return retval;
4546 }
4547 
4548 bool
4550 {
4551  std::set<std::string> pnames = all_property_names ();
4552 
4553  return pnames.find (pname) != pnames.end ();
4554 }
4555 
4556 // ******** patch ********
4557 
4559  : base_properties (s_go_name, mh, p),
4560  m_alphadatamapping ("alphadatamapping", mh, "none|{scaled}|direct"),
4561  m_ambientstrength ("ambientstrength", mh, 0.3),
4562  m_backfacelighting ("backfacelighting", mh, "unlit|lit|{reverselit}"),
4563  m_cdata ("cdata", mh, Matrix ()),
4564  m_cdatamapping ("cdatamapping", mh, "{scaled}|direct"),
4565  m_diffusestrength ("diffusestrength", mh, 0.6),
4566  m_displayname ("displayname", mh, ""),
4567  m_edgealpha ("edgealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
4568  m_edgecolor ("edgecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
4569  m_edgelighting ("edgelighting", mh, "{none}|flat|gouraud|phong"),
4570  m_facealpha ("facealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
4571  m_facecolor ("facecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
4572  m_facelighting ("facelighting", mh, "none|{flat}|gouraud|phong"),
4573  m_facenormals ("facenormals", mh, Matrix ()),
4574  m_facenormalsmode ("facenormalsmode", mh, "{auto}|manual"),
4575  m_faces ("faces", mh, default_patch_faces ()),
4576  m_facevertexalphadata ("facevertexalphadata", mh, Matrix ()),
4577  m_facevertexcdata ("facevertexcdata", mh, Matrix ()),
4578  m_linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
4579  m_linewidth ("linewidth", mh, 0.5),
4580  m_marker ("marker", mh, "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
4581  m_markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0))),
4582  m_markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0))),
4583  m_markersize ("markersize", mh, 6),
4584  m_specularcolorreflectance ("specularcolorreflectance", mh, 1.0),
4585  m_specularexponent ("specularexponent", mh, 10.0),
4586  m_specularstrength ("specularstrength", mh, 0.9),
4587  m_vertexnormals ("vertexnormals", mh, Matrix ()),
4588  m_vertexnormalsmode ("vertexnormalsmode", mh, "{auto}|manual"),
4589  m_vertices ("vertices", mh, default_patch_vertices ()),
4590  m_xdata ("xdata", mh, default_patch_xdata ()),
4591  m_ydata ("ydata", mh, default_patch_ydata ()),
4592  m_zdata ("zdata", mh, Matrix ()),
4593  m_alim ("alim", mh, Matrix ()),
4594  m_clim ("clim", mh, Matrix ()),
4595  m_xlim ("xlim", mh, Matrix ()),
4596  m_ylim ("ylim", mh, Matrix ()),
4597  m_zlim ("zlim", mh, Matrix ()),
4598  m_aliminclude ("aliminclude", mh, "on"),
4599  m_climinclude ("climinclude", mh, "on"),
4600  m_xliminclude ("xliminclude", mh, "on"),
4601  m_yliminclude ("yliminclude", mh, "on"),
4602  m_zliminclude ("zliminclude", mh, "on")
4603 {
4604  m_alphadatamapping.set_id (ID_ALPHADATAMAPPING);
4605  m_ambientstrength.set_id (ID_AMBIENTSTRENGTH);
4606  m_backfacelighting.set_id (ID_BACKFACELIGHTING);
4607  m_cdata.set_id (ID_CDATA);
4608  m_cdatamapping.set_id (ID_CDATAMAPPING);
4609  m_diffusestrength.set_id (ID_DIFFUSESTRENGTH);
4610  m_displayname.set_id (ID_DISPLAYNAME);
4611  m_edgealpha.set_id (ID_EDGEALPHA);
4612  m_edgecolor.set_id (ID_EDGECOLOR);
4613  m_edgelighting.set_id (ID_EDGELIGHTING);
4614  m_facealpha.set_id (ID_FACEALPHA);
4615  m_facecolor.set_id (ID_FACECOLOR);
4616  m_facelighting.set_id (ID_FACELIGHTING);
4617  m_facenormals.set_id (ID_FACENORMALS);
4618  m_facenormalsmode.set_id (ID_FACENORMALSMODE);
4619  m_faces.set_id (ID_FACES);
4620  m_facevertexalphadata.set_id (ID_FACEVERTEXALPHADATA);
4621  m_facevertexcdata.set_id (ID_FACEVERTEXCDATA);
4622  m_linestyle.set_id (ID_LINESTYLE);
4623  m_linewidth.set_id (ID_LINEWIDTH);
4624  m_marker.set_id (ID_MARKER);
4625  m_markeredgecolor.set_id (ID_MARKEREDGECOLOR);
4626  m_markerfacecolor.set_id (ID_MARKERFACECOLOR);
4627  m_markersize.set_id (ID_MARKERSIZE);
4628  m_specularcolorreflectance.set_id (ID_SPECULARCOLORREFLECTANCE);
4629  m_specularexponent.set_id (ID_SPECULAREXPONENT);
4630  m_specularstrength.set_id (ID_SPECULARSTRENGTH);
4631  m_vertexnormals.set_id (ID_VERTEXNORMALS);
4632  m_vertexnormalsmode.set_id (ID_VERTEXNORMALSMODE);
4633  m_vertices.set_id (ID_VERTICES);
4634  m_xdata.set_id (ID_XDATA);
4635  m_ydata.set_id (ID_YDATA);
4636  m_zdata.set_id (ID_ZDATA);
4637  m_alim.set_id (ID_ALIM);
4638  m_alim.set_hidden (true);
4639  m_clim.set_id (ID_CLIM);
4640  m_clim.set_hidden (true);
4641  m_xlim.set_id (ID_XLIM);
4642  m_xlim.set_hidden (true);
4643  m_ylim.set_id (ID_YLIM);
4644  m_ylim.set_hidden (true);
4645  m_zlim.set_id (ID_ZLIM);
4646  m_zlim.set_hidden (true);
4647  m_aliminclude.set_id (ID_ALIMINCLUDE);
4648  m_aliminclude.set_hidden (true);
4649  m_climinclude.set_id (ID_CLIMINCLUDE);
4650  m_climinclude.set_hidden (true);
4651  m_xliminclude.set_id (ID_XLIMINCLUDE);
4652  m_xliminclude.set_hidden (true);
4653  m_yliminclude.set_id (ID_YLIMINCLUDE);
4654  m_yliminclude.set_hidden (true);
4655  m_zliminclude.set_id (ID_ZLIMINCLUDE);
4656  m_zliminclude.set_hidden (true);
4657  init ();
4658 }
4659 
4660 void
4661 patch::properties::set (const caseless_str& pname_arg, const octave_value& val)
4662 {
4663  const std::set<std::string>& pnames = all_property_names ();
4664 
4665  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
4666 
4667  if (has_readonly_property (pname))
4668  {
4669  error ("set: \"%s\" is read-only", pname.c_str ());
4670  return;
4671  }
4672 
4673  if (pname.compare ("alphadatamapping"))
4674  set_alphadatamapping (val);
4675  else if (pname.compare ("ambientstrength"))
4676  set_ambientstrength (val);
4677  else if (pname.compare ("backfacelighting"))
4678  set_backfacelighting (val);
4679  else if (pname.compare ("cdata"))
4680  set_cdata (val);
4681  else if (pname.compare ("cdatamapping"))
4682  set_cdatamapping (val);
4683  else if (pname.compare ("diffusestrength"))
4684  set_diffusestrength (val);
4685  else if (pname.compare ("displayname"))
4686  set_displayname (val);
4687  else if (pname.compare ("edgealpha"))
4688  set_edgealpha (val);
4689  else if (pname.compare ("edgecolor"))
4690  set_edgecolor (val);
4691  else if (pname.compare ("edgelighting"))
4692  set_edgelighting (val);
4693  else if (pname.compare ("facealpha"))
4694  set_facealpha (val);
4695  else if (pname.compare ("facecolor"))
4696  set_facecolor (val);
4697  else if (pname.compare ("facelighting"))
4698  set_facelighting (val);
4699  else if (pname.compare ("facenormals"))
4700  set_facenormals (val);
4701  else if (pname.compare ("facenormalsmode"))
4702  set_facenormalsmode (val);
4703  else if (pname.compare ("faces"))
4704  set_faces (val);
4705  else if (pname.compare ("facevertexalphadata"))
4706  set_facevertexalphadata (val);
4707  else if (pname.compare ("facevertexcdata"))
4708  set_facevertexcdata (val);
4709  else if (pname.compare ("linestyle"))
4710  set_linestyle (val);
4711  else if (pname.compare ("linewidth"))
4712  set_linewidth (val);
4713  else if (pname.compare ("marker"))
4714  set_marker (val);
4715  else if (pname.compare ("markeredgecolor"))
4716  set_markeredgecolor (val);
4717  else if (pname.compare ("markerfacecolor"))
4718  set_markerfacecolor (val);
4719  else if (pname.compare ("markersize"))
4720  set_markersize (val);
4721  else if (pname.compare ("specularcolorreflectance"))
4722  set_specularcolorreflectance (val);
4723  else if (pname.compare ("specularexponent"))
4724  set_specularexponent (val);
4725  else if (pname.compare ("specularstrength"))
4726  set_specularstrength (val);
4727  else if (pname.compare ("vertexnormals"))
4728  set_vertexnormals (val);
4729  else if (pname.compare ("vertexnormalsmode"))
4730  set_vertexnormalsmode (val);
4731  else if (pname.compare ("vertices"))
4732  set_vertices (val);
4733  else if (pname.compare ("xdata"))
4734  set_xdata (val);
4735  else if (pname.compare ("ydata"))
4736  set_ydata (val);
4737  else if (pname.compare ("zdata"))
4738  set_zdata (val);
4739  else if (pname.compare ("aliminclude"))
4740  set_aliminclude (val);
4741  else if (pname.compare ("climinclude"))
4742  set_climinclude (val);
4743  else if (pname.compare ("xliminclude"))
4744  set_xliminclude (val);
4745  else if (pname.compare ("yliminclude"))
4746  set_yliminclude (val);
4747  else if (pname.compare ("zliminclude"))
4748  set_zliminclude (val);
4749  else
4750  base_properties::set (pname, val);
4751 }
4752 
4754 patch::properties::get (bool all) const
4755 {
4757 
4758  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
4759  m.assign ("ambientstrength", octave_value (get_ambientstrength ()));
4760  m.assign ("backfacelighting", octave_value (get_backfacelighting ()));
4761  m.assign ("cdata", octave_value (get_cdata ()));
4762  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
4763  m.assign ("diffusestrength", octave_value (get_diffusestrength ()));
4764  m.assign ("displayname", octave_value (get_displayname ()));
4765  m.assign ("edgealpha", octave_value (get_edgealpha ()));
4766  m.assign ("edgecolor", octave_value (get_edgecolor ()));
4767  m.assign ("edgelighting", octave_value (get_edgelighting ()));
4768  m.assign ("facealpha", octave_value (get_facealpha ()));
4769  m.assign ("facecolor", octave_value (get_facecolor ()));
4770  m.assign ("facelighting", octave_value (get_facelighting ()));
4771  m.assign ("facenormals", octave_value (get_facenormals ()));
4772  m.assign ("facenormalsmode", octave_value (get_facenormalsmode ()));
4773  m.assign ("faces", octave_value (get_faces ()));
4774  m.assign ("facevertexalphadata", octave_value (get_facevertexalphadata ()));
4775  m.assign ("facevertexcdata", octave_value (get_facevertexcdata ()));
4776  m.assign ("linestyle", octave_value (get_linestyle ()));
4777  m.assign ("linewidth", octave_value (get_linewidth ()));
4778  m.assign ("marker", octave_value (get_marker ()));
4779  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
4780  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
4781  m.assign ("markersize", octave_value (get_markersize ()));
4782  m.assign ("specularcolorreflectance", octave_value (get_specularcolorreflectance ()));
4783  m.assign ("specularexponent", octave_value (get_specularexponent ()));
4784  m.assign ("specularstrength", octave_value (get_specularstrength ()));
4785  m.assign ("vertexnormals", octave_value (get_vertexnormals ()));
4786  m.assign ("vertexnormalsmode", octave_value (get_vertexnormalsmode ()));
4787  m.assign ("vertices", octave_value (get_vertices ()));
4788  m.assign ("xdata", octave_value (get_xdata ()));
4789  m.assign ("ydata", octave_value (get_ydata ()));
4790  m.assign ("zdata", octave_value (get_zdata ()));
4791  if (all)
4792  m.assign ("alim", octave_value (get_alim ()));
4793  if (all)
4794  m.assign ("clim", octave_value (get_clim ()));
4795  if (all)
4796  m.assign ("xlim", octave_value (get_xlim ()));
4797  if (all)
4798  m.assign ("ylim", octave_value (get_ylim ()));
4799  if (all)
4800  m.assign ("zlim", octave_value (get_zlim ()));
4801  if (all)
4802  m.assign ("aliminclude", octave_value (get_aliminclude ()));
4803  if (all)
4804  m.assign ("climinclude", octave_value (get_climinclude ()));
4805  if (all)
4806  m.assign ("xliminclude", octave_value (get_xliminclude ()));
4807  if (all)
4808  m.assign ("yliminclude", octave_value (get_yliminclude ()));
4809  if (all)
4810  m.assign ("zliminclude", octave_value (get_zliminclude ()));
4811 
4812  return m;
4813 }
4814 
4816 patch::properties::get (const caseless_str& pname_arg) const
4817 {
4818  octave_value retval;
4819 
4820  const std::set<std::string>& pnames = all_property_names ();
4821 
4822  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4823 
4824  if (pname.compare ("alphadatamapping"))
4825  retval = get_alphadatamapping ();
4826  else if (pname.compare ("ambientstrength"))
4827  retval = get_ambientstrength ();
4828  else if (pname.compare ("backfacelighting"))
4829  retval = get_backfacelighting ();
4830  else if (pname.compare ("cdata"))
4831  retval = get_cdata ();
4832  else if (pname.compare ("cdatamapping"))
4833  retval = get_cdatamapping ();
4834  else if (pname.compare ("diffusestrength"))
4835  retval = get_diffusestrength ();
4836  else if (pname.compare ("displayname"))
4837  retval = get_displayname ();
4838  else if (pname.compare ("edgealpha"))
4839  retval = get_edgealpha ();
4840  else if (pname.compare ("edgecolor"))
4841  retval = get_edgecolor ();
4842  else if (pname.compare ("edgelighting"))
4843  retval = get_edgelighting ();
4844  else if (pname.compare ("facealpha"))
4845  retval = get_facealpha ();
4846  else if (pname.compare ("facecolor"))
4847  retval = get_facecolor ();
4848  else if (pname.compare ("facelighting"))
4849  retval = get_facelighting ();
4850  else if (pname.compare ("facenormals"))
4851  retval = get_facenormals ();
4852  else if (pname.compare ("facenormalsmode"))
4853  retval = get_facenormalsmode ();
4854  else if (pname.compare ("faces"))
4855  retval = get_faces ();
4856  else if (pname.compare ("facevertexalphadata"))
4857  retval = get_facevertexalphadata ();
4858  else if (pname.compare ("facevertexcdata"))
4859  retval = get_facevertexcdata ();
4860  else if (pname.compare ("linestyle"))
4861  retval = get_linestyle ();
4862  else if (pname.compare ("linewidth"))
4863  retval = get_linewidth ();
4864  else if (pname.compare ("marker"))
4865  retval = get_marker ();
4866  else if (pname.compare ("markeredgecolor"))
4867  retval = get_markeredgecolor ();
4868  else if (pname.compare ("markerfacecolor"))
4869  retval = get_markerfacecolor ();
4870  else if (pname.compare ("markersize"))
4871  retval = get_markersize ();
4872  else if (pname.compare ("specularcolorreflectance"))
4873  retval = get_specularcolorreflectance ();
4874  else if (pname.compare ("specularexponent"))
4875  retval = get_specularexponent ();
4876  else if (pname.compare ("specularstrength"))
4877  retval = get_specularstrength ();
4878  else if (pname.compare ("vertexnormals"))
4879  retval = get_vertexnormals ();
4880  else if (pname.compare ("vertexnormalsmode"))
4881  retval = get_vertexnormalsmode ();
4882  else if (pname.compare ("vertices"))
4883  retval = get_vertices ();
4884  else if (pname.compare ("xdata"))
4885  retval = get_xdata ();
4886  else if (pname.compare ("ydata"))
4887  retval = get_ydata ();
4888  else if (pname.compare ("zdata"))
4889  retval = get_zdata ();
4890  else if (pname.compare ("alim"))
4891  retval = get_alim ();
4892  else if (pname.compare ("clim"))
4893  retval = get_clim ();
4894  else if (pname.compare ("xlim"))
4895  retval = get_xlim ();
4896  else if (pname.compare ("ylim"))
4897  retval = get_ylim ();
4898  else if (pname.compare ("zlim"))
4899  retval = get_zlim ();
4900  else if (pname.compare ("aliminclude"))
4901  retval = get_aliminclude ();
4902  else if (pname.compare ("climinclude"))
4903  retval = get_climinclude ();
4904  else if (pname.compare ("xliminclude"))
4905  retval = get_xliminclude ();
4906  else if (pname.compare ("yliminclude"))
4907  retval = get_yliminclude ();
4908  else if (pname.compare ("zliminclude"))
4909  retval = get_zliminclude ();
4910  else
4911  retval = base_properties::get (pname);
4912 
4913  return retval;
4914 }
4915 
4916 property
4918 {
4919  const std::set<std::string>& pnames = all_property_names ();
4920 
4921  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
4922 
4923  if (pname.compare ("alphadatamapping"))
4924  return property (&m_alphadatamapping, true);
4925  else if (pname.compare ("ambientstrength"))
4926  return property (&m_ambientstrength, true);
4927  else if (pname.compare ("backfacelighting"))
4928  return property (&m_backfacelighting, true);
4929  else if (pname.compare ("cdata"))
4930  return property (&m_cdata, true);
4931  else if (pname.compare ("cdatamapping"))
4932  return property (&m_cdatamapping, true);
4933  else if (pname.compare ("diffusestrength"))
4934  return property (&m_diffusestrength, true);
4935  else if (pname.compare ("displayname"))
4936  return property (&m_displayname, true);
4937  else if (pname.compare ("edgealpha"))
4938  return property (&m_edgealpha, true);
4939  else if (pname.compare ("edgecolor"))
4940  return property (&m_edgecolor, true);
4941  else if (pname.compare ("edgelighting"))
4942  return property (&m_edgelighting, true);
4943  else if (pname.compare ("facealpha"))
4944  return property (&m_facealpha, true);
4945  else if (pname.compare ("facecolor"))
4946  return property (&m_facecolor, true);
4947  else if (pname.compare ("facelighting"))
4948  return property (&m_facelighting, true);
4949  else if (pname.compare ("facenormals"))
4950  return property (&m_facenormals, true);
4951  else if (pname.compare ("facenormalsmode"))
4952  return property (&m_facenormalsmode, true);
4953  else if (pname.compare ("faces"))
4954  return property (&m_faces, true);
4955  else if (pname.compare ("facevertexalphadata"))
4956  return property (&m_facevertexalphadata, true);
4957  else if (pname.compare ("facevertexcdata"))
4958  return property (&m_facevertexcdata, true);
4959  else if (pname.compare ("linestyle"))
4960  return property (&m_linestyle, true);
4961  else if (pname.compare ("linewidth"))
4962  return property (&m_linewidth, true);
4963  else if (pname.compare ("marker"))
4964  return property (&m_marker, true);
4965  else if (pname.compare ("markeredgecolor"))
4966  return property (&m_markeredgecolor, true);
4967  else if (pname.compare ("markerfacecolor"))
4968  return property (&m_markerfacecolor, true);
4969  else if (pname.compare ("markersize"))
4970  return property (&m_markersize, true);
4971  else if (pname.compare ("specularcolorreflectance"))
4972  return property (&m_specularcolorreflectance, true);
4973  else if (pname.compare ("specularexponent"))
4974  return property (&m_specularexponent, true);
4975  else if (pname.compare ("specularstrength"))
4976  return property (&m_specularstrength, true);
4977  else if (pname.compare ("vertexnormals"))
4978  return property (&m_vertexnormals, true);
4979  else if (pname.compare ("vertexnormalsmode"))
4980  return property (&m_vertexnormalsmode, true);
4981  else if (pname.compare ("vertices"))
4982  return property (&m_vertices, true);
4983  else if (pname.compare ("xdata"))
4984  return property (&m_xdata, true);
4985  else if (pname.compare ("ydata"))
4986  return property (&m_ydata, true);
4987  else if (pname.compare ("zdata"))
4988  return property (&m_zdata, true);
4989  else if (pname.compare ("alim"))
4990  return property (&m_alim, true);
4991  else if (pname.compare ("clim"))
4992  return property (&m_clim, true);
4993  else if (pname.compare ("xlim"))
4994  return property (&m_xlim, true);
4995  else if (pname.compare ("ylim"))
4996  return property (&m_ylim, true);
4997  else if (pname.compare ("zlim"))
4998  return property (&m_zlim, true);
4999  else if (pname.compare ("aliminclude"))
5000  return property (&m_aliminclude, true);
5001  else if (pname.compare ("climinclude"))
5002  return property (&m_climinclude, true);
5003  else if (pname.compare ("xliminclude"))
5004  return property (&m_xliminclude, true);
5005  else if (pname.compare ("yliminclude"))
5006  return property (&m_yliminclude, true);
5007  else if (pname.compare ("zliminclude"))
5008  return property (&m_zliminclude, true);
5009  else
5010  return base_properties::get_property (pname);
5011 }
5012 
5015 {
5017 
5018  m["alphadatamapping"] = "scaled";
5019  m["ambientstrength"] = 0.3;
5020  m["backfacelighting"] = "reverselit";
5021  m["cdata"] = Matrix ();
5022  m["cdatamapping"] = "scaled";
5023  m["diffusestrength"] = 0.6;
5024  m["displayname"] = "";
5025  m["edgealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
5026  m["edgecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
5027  m["edgelighting"] = "none";
5028  m["facealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
5029  m["facecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
5030  m["facelighting"] = "flat";
5031  m["facenormals"] = Matrix ();
5032  m["facenormalsmode"] = "auto";
5033  m["faces"] = default_patch_faces ();
5034  m["facevertexalphadata"] = Matrix ();
5035  m["facevertexcdata"] = Matrix ();
5036  m["linestyle"] = "-";
5037  m["linewidth"] = 0.5;
5038  m["marker"] = "none";
5039  m["markeredgecolor"] = color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0));
5040  m["markerfacecolor"] = color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0));
5041  m["markersize"] = 6;
5042  m["specularcolorreflectance"] = 1.0;
5043  m["specularexponent"] = 10.0;
5044  m["specularstrength"] = 0.9;
5045  m["vertexnormals"] = Matrix ();
5046  m["vertexnormalsmode"] = "auto";
5047  m["vertices"] = default_patch_vertices ();
5048  m["xdata"] = default_patch_xdata ();
5049  m["ydata"] = default_patch_ydata ();
5050  m["zdata"] = Matrix ();
5051  m["alim"] = Matrix ();
5052  m["clim"] = Matrix ();
5053  m["xlim"] = Matrix ();
5054  m["ylim"] = Matrix ();
5055  m["zlim"] = Matrix ();
5056  m["aliminclude"] = "on";
5057  m["climinclude"] = "on";
5058  m["xliminclude"] = "on";
5059  m["yliminclude"] = "on";
5060  m["zliminclude"] = "on";
5061 
5062  return m;
5063 }
5064 
5065 std::string patch::properties::s_go_name ("patch");
5066 
5067 std::set<std::string>
5069 {
5070  static std::set<std::string> all_pnames;
5071 
5072  static bool initialized = false;
5073 
5074  if (! initialized)
5075  {
5076  all_pnames.insert ("alphadatamapping");
5077  all_pnames.insert ("ambientstrength");
5078  all_pnames.insert ("backfacelighting");
5079  all_pnames.insert ("cdata");
5080  all_pnames.insert ("cdatamapping");
5081  all_pnames.insert ("diffusestrength");
5082  all_pnames.insert ("displayname");
5083  all_pnames.insert ("edgealpha");
5084  all_pnames.insert ("edgecolor");
5085  all_pnames.insert ("edgelighting");
5086  all_pnames.insert ("facealpha");
5087  all_pnames.insert ("facecolor");
5088  all_pnames.insert ("facelighting");
5089  all_pnames.insert ("facenormals");
5090  all_pnames.insert ("facenormalsmode");
5091  all_pnames.insert ("faces");
5092  all_pnames.insert ("facevertexalphadata");
5093  all_pnames.insert ("facevertexcdata");
5094  all_pnames.insert ("linestyle");
5095  all_pnames.insert ("linewidth");
5096  all_pnames.insert ("marker");
5097  all_pnames.insert ("markeredgecolor");
5098  all_pnames.insert ("markerfacecolor");
5099  all_pnames.insert ("markersize");
5100  all_pnames.insert ("specularcolorreflectance");
5101  all_pnames.insert ("specularexponent");
5102  all_pnames.insert ("specularstrength");
5103  all_pnames.insert ("vertexnormals");
5104  all_pnames.insert ("vertexnormalsmode");
5105  all_pnames.insert ("vertices");
5106  all_pnames.insert ("xdata");
5107  all_pnames.insert ("ydata");
5108  all_pnames.insert ("zdata");
5109  all_pnames.insert ("alim");
5110  all_pnames.insert ("clim");
5111  all_pnames.insert ("xlim");
5112  all_pnames.insert ("ylim");
5113  all_pnames.insert ("zlim");
5114  all_pnames.insert ("aliminclude");
5115  all_pnames.insert ("climinclude");
5116  all_pnames.insert ("xliminclude");
5117  all_pnames.insert ("yliminclude");
5118  all_pnames.insert ("zliminclude");
5119 
5120  std::set<std::string> base_pnames = base_properties::core_property_names ();
5121  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5122 
5123  initialized = true;
5124  }
5125 
5126  return all_pnames;
5127 }
5128 
5129 bool
5131 {
5132  std::set<std::string> pnames = core_property_names ();
5133 
5134  return pnames.find (pname) != pnames.end ();
5135 }
5136 
5137 std::set<std::string>
5139 {
5140  static std::set<std::string> all_pnames;
5141 
5142  static bool initialized = false;
5143 
5144  if (! initialized)
5145  {
5146  all_pnames.insert ("alim");
5147  all_pnames.insert ("clim");
5148  all_pnames.insert ("xlim");
5149  all_pnames.insert ("ylim");
5150  all_pnames.insert ("zlim");
5151 
5152  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
5153  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5154 
5155  initialized = true;
5156  }
5157 
5158  return all_pnames;
5159 }
5160 
5161 bool
5163 {
5164  std::set<std::string> pnames = readonly_property_names ();
5165 
5166  return pnames.find (pname) != pnames.end ();
5167 }
5168 
5169 std::set<std::string>
5171 {
5172  static std::set<std::string> all_pnames = core_property_names ();
5173 
5174  std::set<std::string> retval = all_pnames;
5175  std::set<std::string> base_props = base_properties::all_property_names ();
5176  retval.insert (base_props.begin (), base_props.end ());
5177 
5178  return retval;
5179 }
5180 
5181 bool
5183 {
5184  std::set<std::string> pnames = all_property_names ();
5185 
5186  return pnames.find (pname) != pnames.end ();
5187 }
5188 
5189 // ******** scatter ********
5190 
5192  : base_properties (s_go_name, mh, p),
5193  m_annotation ("annotation", mh, Matrix ()),
5194  m_cdata ("cdata", mh, Matrix ()),
5195  m_cdatamode ("cdatamode", mh, "{auto}|manual"),
5196  m_cdatasource ("cdatasource", mh, ""),
5197  m_datatiptemplate ("datatiptemplate", mh, Matrix ()),
5198  m_displayname ("displayname", mh, ""),
5199  m_latitudedata ("latitudedata", mh, Matrix ()),
5200  m_latitudedatasource ("latitudedatasource", mh, ""),
5201  m_linewidth ("linewidth", mh, 0.5),
5202  m_longitudedata ("longitudedata", mh, Matrix ()),
5203  m_longitudedatasource ("longitudedatasource", mh, ""),
5204  m_marker ("marker", mh, "{o}|+|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram|none"),
5205  m_markeredgealpha ("markeredgealpha", mh, 1.0),
5206  m_markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("{flat}|none"), color_values (0, 0, 0))),
5207  m_markerfacealpha ("markerfacealpha", mh, 1.0),
5208  m_markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0))),
5209  m_rdata ("rdata", mh, Matrix ()),
5210  m_rdatasource ("rdatasource", mh, ""),
5211  m_seriesindex ("seriesindex", mh, Matrix ()),
5212  m_sizedata ("sizedata", mh, Matrix ()),
5213  m_sizedatasource ("sizedatasource", mh, ""),
5214  m_thetadata ("thetadata", mh, Matrix ()),
5215  m_thetadatasource ("thetadatasource", mh, ""),
5216  m_xdata ("xdata", mh, Matrix ()),
5217  m_xdatasource ("xdatasource", mh, ""),
5218  m_ydata ("ydata", mh, Matrix ()),
5219  m_ydatasource ("ydatasource", mh, ""),
5220  m_zdata ("zdata", mh, Matrix ()),
5221  m_zdatasource ("zdatasource", mh, ""),
5222  m_alim ("alim", mh, Matrix ()),
5223  m_clim ("clim", mh, Matrix ()),
5224  m_xlim ("xlim", mh, Matrix ()),
5225  m_ylim ("ylim", mh, Matrix ()),
5226  m_zlim ("zlim", mh, Matrix ()),
5227  m_aliminclude ("aliminclude", mh, "on"),
5228  m_climinclude ("climinclude", mh, "on"),
5229  m_xliminclude ("xliminclude", mh, "on"),
5230  m_yliminclude ("yliminclude", mh, "on"),
5231  m_zliminclude ("zliminclude", mh, "on")
5232 {
5233  m_annotation.set_id (ID_ANNOTATION);
5234  m_cdata.set_id (ID_CDATA);
5235  m_cdatamode.set_id (ID_CDATAMODE);
5236  m_cdatasource.set_id (ID_CDATASOURCE);
5237  m_datatiptemplate.set_id (ID_DATATIPTEMPLATE);
5238  m_displayname.set_id (ID_DISPLAYNAME);
5239  m_latitudedata.set_id (ID_LATITUDEDATA);
5240  m_latitudedatasource.set_id (ID_LATITUDEDATASOURCE);
5241  m_linewidth.set_id (ID_LINEWIDTH);
5242  m_longitudedata.set_id (ID_LONGITUDEDATA);
5243  m_longitudedatasource.set_id (ID_LONGITUDEDATASOURCE);
5244  m_marker.set_id (ID_MARKER);
5245  m_markeredgealpha.set_id (ID_MARKEREDGEALPHA);
5246  m_markeredgecolor.set_id (ID_MARKEREDGECOLOR);
5247  m_markerfacealpha.set_id (ID_MARKERFACEALPHA);
5248  m_markerfacecolor.set_id (ID_MARKERFACECOLOR);
5249  m_rdata.set_id (ID_RDATA);
5250  m_rdatasource.set_id (ID_RDATASOURCE);
5251  m_seriesindex.set_id (ID_SERIESINDEX);
5252  m_sizedata.set_id (ID_SIZEDATA);
5253  m_sizedatasource.set_id (ID_SIZEDATASOURCE);
5254  m_thetadata.set_id (ID_THETADATA);
5255  m_thetadatasource.set_id (ID_THETADATASOURCE);
5256  m_xdata.set_id (ID_XDATA);
5257  m_xdatasource.set_id (ID_XDATASOURCE);
5258  m_ydata.set_id (ID_YDATA);
5259  m_ydatasource.set_id (ID_YDATASOURCE);
5260  m_zdata.set_id (ID_ZDATA);
5261  m_zdatasource.set_id (ID_ZDATASOURCE);
5262  m_alim.set_id (ID_ALIM);
5263  m_alim.set_hidden (true);
5264  m_clim.set_id (ID_CLIM);
5265  m_clim.set_hidden (true);
5266  m_xlim.set_id (ID_XLIM);
5267  m_xlim.set_hidden (true);
5268  m_ylim.set_id (ID_YLIM);
5269  m_ylim.set_hidden (true);
5270  m_zlim.set_id (ID_ZLIM);
5271  m_zlim.set_hidden (true);
5272  m_aliminclude.set_id (ID_ALIMINCLUDE);
5273  m_aliminclude.set_hidden (true);
5274  m_climinclude.set_id (ID_CLIMINCLUDE);
5275  m_climinclude.set_hidden (true);
5276  m_xliminclude.set_id (ID_XLIMINCLUDE);
5277  m_xliminclude.set_hidden (true);
5278  m_yliminclude.set_id (ID_YLIMINCLUDE);
5279  m_yliminclude.set_hidden (true);
5280  m_zliminclude.set_id (ID_ZLIMINCLUDE);
5281  m_zliminclude.set_hidden (true);
5282  init ();
5283 }
5284 
5285 void
5287 {
5288  const std::set<std::string>& pnames = all_property_names ();
5289 
5290  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
5291 
5292  if (has_readonly_property (pname))
5293  {
5294  error ("set: \"%s\" is read-only", pname.c_str ());
5295  return;
5296  }
5297 
5298  if (pname.compare ("annotation"))
5299  set_annotation (val);
5300  else if (pname.compare ("cdata"))
5301  set_cdata (val);
5302  else if (pname.compare ("cdatamode"))
5303  set_cdatamode (val);
5304  else if (pname.compare ("cdatasource"))
5305  set_cdatasource (val);
5306  else if (pname.compare ("datatiptemplate"))
5307  set_datatiptemplate (val);
5308  else if (pname.compare ("displayname"))
5309  set_displayname (val);
5310  else if (pname.compare ("latitudedata"))
5311  set_latitudedata (val);
5312  else if (pname.compare ("latitudedatasource"))
5313  set_latitudedatasource (val);
5314  else if (pname.compare ("linewidth"))
5315  set_linewidth (val);
5316  else if (pname.compare ("longitudedata"))
5317  set_longitudedata (val);
5318  else if (pname.compare ("longitudedatasource"))
5319  set_longitudedatasource (val);
5320  else if (pname.compare ("marker"))
5321  set_marker (val);
5322  else if (pname.compare ("markeredgealpha"))
5323  set_markeredgealpha (val);
5324  else if (pname.compare ("markeredgecolor"))
5325  set_markeredgecolor (val);
5326  else if (pname.compare ("markerfacealpha"))
5327  set_markerfacealpha (val);
5328  else if (pname.compare ("markerfacecolor"))
5329  set_markerfacecolor (val);
5330  else if (pname.compare ("rdata"))
5331  set_rdata (val);
5332  else if (pname.compare ("rdatasource"))
5333  set_rdatasource (val);
5334  else if (pname.compare ("seriesindex"))
5335  set_seriesindex (val);
5336  else if (pname.compare ("sizedata"))
5337  set_sizedata (val);
5338  else if (pname.compare ("sizedatasource"))
5339  set_sizedatasource (val);
5340  else if (pname.compare ("thetadata"))
5341  set_thetadata (val);
5342  else if (pname.compare ("thetadatasource"))
5343  set_thetadatasource (val);
5344  else if (pname.compare ("xdata"))
5345  set_xdata (val);
5346  else if (pname.compare ("xdatasource"))
5347  set_xdatasource (val);
5348  else if (pname.compare ("ydata"))
5349  set_ydata (val);
5350  else if (pname.compare ("ydatasource"))
5351  set_ydatasource (val);
5352  else if (pname.compare ("zdata"))
5353  set_zdata (val);
5354  else if (pname.compare ("zdatasource"))
5355  set_zdatasource (val);
5356  else if (pname.compare ("aliminclude"))
5357  set_aliminclude (val);
5358  else if (pname.compare ("climinclude"))
5359  set_climinclude (val);
5360  else if (pname.compare ("xliminclude"))
5361  set_xliminclude (val);
5362  else if (pname.compare ("yliminclude"))
5363  set_yliminclude (val);
5364  else if (pname.compare ("zliminclude"))
5365  set_zliminclude (val);
5366  else
5367  base_properties::set (pname, val);
5368 }
5369 
5372 {
5374 
5375  m.assign ("annotation", octave_value (get_annotation ()));
5376  m.assign ("cdata", octave_value (get_cdata ()));
5377  m.assign ("cdatamode", octave_value (get_cdatamode ()));
5378  m.assign ("cdatasource", octave_value (get_cdatasource ()));
5379  m.assign ("datatiptemplate", octave_value (get_datatiptemplate ()));
5380  m.assign ("displayname", octave_value (get_displayname ()));
5381  m.assign ("latitudedata", octave_value (get_latitudedata ()));
5382  m.assign ("latitudedatasource", octave_value (get_latitudedatasource ()));
5383  m.assign ("linewidth", octave_value (get_linewidth ()));
5384  m.assign ("longitudedata", octave_value (get_longitudedata ()));
5385  m.assign ("longitudedatasource", octave_value (get_longitudedatasource ()));
5386  m.assign ("marker", octave_value (get_marker ()));
5387  m.assign ("markeredgealpha", octave_value (get_markeredgealpha ()));
5388  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
5389  m.assign ("markerfacealpha", octave_value (get_markerfacealpha ()));
5390  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
5391  m.assign ("rdata", octave_value (get_rdata ()));
5392  m.assign ("rdatasource", octave_value (get_rdatasource ()));
5393  m.assign ("seriesindex", octave_value (get_seriesindex ()));
5394  m.assign ("sizedata", octave_value (get_sizedata ()));
5395  m.assign ("sizedatasource", octave_value (get_sizedatasource ()));
5396  m.assign ("thetadata", octave_value (get_thetadata ()));
5397  m.assign ("thetadatasource", octave_value (get_thetadatasource ()));
5398  m.assign ("xdata", octave_value (get_xdata ()));
5399  m.assign ("xdatasource", octave_value (get_xdatasource ()));
5400  m.assign ("ydata", octave_value (get_ydata ()));
5401  m.assign ("ydatasource", octave_value (get_ydatasource ()));
5402  m.assign ("zdata", octave_value (get_zdata ()));
5403  m.assign ("zdatasource", octave_value (get_zdatasource ()));
5404  if (all)
5405  m.assign ("alim", octave_value (get_alim ()));
5406  if (all)
5407  m.assign ("clim", octave_value (get_clim ()));
5408  if (all)
5409  m.assign ("xlim", octave_value (get_xlim ()));
5410  if (all)
5411  m.assign ("ylim", octave_value (get_ylim ()));
5412  if (all)
5413  m.assign ("zlim", octave_value (get_zlim ()));
5414  if (all)
5415  m.assign ("aliminclude", octave_value (get_aliminclude ()));
5416  if (all)
5417  m.assign ("climinclude", octave_value (get_climinclude ()));
5418  if (all)
5419  m.assign ("xliminclude", octave_value (get_xliminclude ()));
5420  if (all)
5421  m.assign ("yliminclude", octave_value (get_yliminclude ()));
5422  if (all)
5423  m.assign ("zliminclude", octave_value (get_zliminclude ()));
5424 
5425  return m;
5426 }
5427 
5429 scatter::properties::get (const caseless_str& pname_arg) const
5430 {
5431  octave_value retval;
5432 
5433  const std::set<std::string>& pnames = all_property_names ();
5434 
5435  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
5436 
5437  if (pname.compare ("annotation"))
5438  retval = get_annotation ();
5439  else if (pname.compare ("cdata"))
5440  retval = get_cdata ();
5441  else if (pname.compare ("cdatamode"))
5442  retval = get_cdatamode ();
5443  else if (pname.compare ("cdatasource"))
5444  retval = get_cdatasource ();
5445  else if (pname.compare ("datatiptemplate"))
5446  retval = get_datatiptemplate ();
5447  else if (pname.compare ("displayname"))
5448  retval = get_displayname ();
5449  else if (pname.compare ("latitudedata"))
5450  retval = get_latitudedata ();
5451  else if (pname.compare ("latitudedatasource"))
5452  retval = get_latitudedatasource ();
5453  else if (pname.compare ("linewidth"))
5454  retval = get_linewidth ();
5455  else if (pname.compare ("longitudedata"))
5456  retval = get_longitudedata ();
5457  else if (pname.compare ("longitudedatasource"))
5458  retval = get_longitudedatasource ();
5459  else if (pname.compare ("marker"))
5460  retval = get_marker ();
5461  else if (pname.compare ("markeredgealpha"))
5462  retval = get_markeredgealpha ();
5463  else if (pname.compare ("markeredgecolor"))
5464  retval = get_markeredgecolor ();
5465  else if (pname.compare ("markerfacealpha"))
5466  retval = get_markerfacealpha ();
5467  else if (pname.compare ("markerfacecolor"))
5468  retval = get_markerfacecolor ();
5469  else if (pname.compare ("rdata"))
5470  retval = get_rdata ();
5471  else if (pname.compare ("rdatasource"))
5472  retval = get_rdatasource ();
5473  else if (pname.compare ("seriesindex"))
5474  retval = get_seriesindex ();
5475  else if (pname.compare ("sizedata"))
5476  retval = get_sizedata ();
5477  else if (pname.compare ("sizedatasource"))
5478  retval = get_sizedatasource ();
5479  else if (pname.compare ("thetadata"))
5480  retval = get_thetadata ();
5481  else if (pname.compare ("thetadatasource"))
5482  retval = get_thetadatasource ();
5483  else if (pname.compare ("xdata"))
5484  retval = get_xdata ();
5485  else if (pname.compare ("xdatasource"))
5486  retval = get_xdatasource ();
5487  else if (pname.compare ("ydata"))
5488  retval = get_ydata ();
5489  else if (pname.compare ("ydatasource"))
5490  retval = get_ydatasource ();
5491  else if (pname.compare ("zdata"))
5492  retval = get_zdata ();
5493  else if (pname.compare ("zdatasource"))
5494  retval = get_zdatasource ();
5495  else if (pname.compare ("alim"))
5496  retval = get_alim ();
5497  else if (pname.compare ("clim"))
5498  retval = get_clim ();
5499  else if (pname.compare ("xlim"))
5500  retval = get_xlim ();
5501  else if (pname.compare ("ylim"))
5502  retval = get_ylim ();
5503  else if (pname.compare ("zlim"))
5504  retval = get_zlim ();
5505  else if (pname.compare ("aliminclude"))
5506  retval = get_aliminclude ();
5507  else if (pname.compare ("climinclude"))
5508  retval = get_climinclude ();
5509  else if (pname.compare ("xliminclude"))
5510  retval = get_xliminclude ();
5511  else if (pname.compare ("yliminclude"))
5512  retval = get_yliminclude ();
5513  else if (pname.compare ("zliminclude"))
5514  retval = get_zliminclude ();
5515  else
5516  retval = base_properties::get (pname);
5517 
5518  return retval;
5519 }
5520 
5521 property
5523 {
5524  const std::set<std::string>& pnames = all_property_names ();
5525 
5526  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
5527 
5528  if (pname.compare ("annotation"))
5529  return property (&m_annotation, true);
5530  else if (pname.compare ("cdata"))
5531  return property (&m_cdata, true);
5532  else if (pname.compare ("cdatamode"))
5533  return property (&m_cdatamode, true);
5534  else if (pname.compare ("cdatasource"))
5535  return property (&m_cdatasource, true);
5536  else if (pname.compare ("datatiptemplate"))
5537  return property (&m_datatiptemplate, true);
5538  else if (pname.compare ("displayname"))
5539  return property (&m_displayname, true);
5540  else if (pname.compare ("latitudedata"))
5541  return property (&m_latitudedata, true);
5542  else if (pname.compare ("latitudedatasource"))
5543  return property (&m_latitudedatasource, true);
5544  else if (pname.compare ("linewidth"))
5545  return property (&m_linewidth, true);
5546  else if (pname.compare ("longitudedata"))
5547  return property (&m_longitudedata, true);
5548  else if (pname.compare ("longitudedatasource"))
5549  return property (&m_longitudedatasource, true);
5550  else if (pname.compare ("marker"))
5551  return property (&m_marker, true);
5552  else if (pname.compare ("markeredgealpha"))
5553  return property (&m_markeredgealpha, true);
5554  else if (pname.compare ("markeredgecolor"))
5555  return property (&m_markeredgecolor, true);
5556  else if (pname.compare ("markerfacealpha"))
5557  return property (&m_markerfacealpha, true);
5558  else if (pname.compare ("markerfacecolor"))
5559  return property (&m_markerfacecolor, true);
5560  else if (pname.compare ("rdata"))
5561  return property (&m_rdata, true);
5562  else if (pname.compare ("rdatasource"))
5563  return property (&m_rdatasource, true);
5564  else if (pname.compare ("seriesindex"))
5565  return property (&m_seriesindex, true);
5566  else if (pname.compare ("sizedata"))
5567  return property (&m_sizedata, true);
5568  else if (pname.compare ("sizedatasource"))
5569  return property (&m_sizedatasource, true);
5570  else if (pname.compare ("thetadata"))
5571  return property (&m_thetadata, true);
5572  else if (pname.compare ("thetadatasource"))
5573  return property (&m_thetadatasource, true);
5574  else if (pname.compare ("xdata"))
5575  return property (&m_xdata, true);
5576  else if (pname.compare ("xdatasource"))
5577  return property (&m_xdatasource, true);
5578  else if (pname.compare ("ydata"))
5579  return property (&m_ydata, true);
5580  else if (pname.compare ("ydatasource"))
5581  return property (&m_ydatasource, true);
5582  else if (pname.compare ("zdata"))
5583  return property (&m_zdata, true);
5584  else if (pname.compare ("zdatasource"))
5585  return property (&m_zdatasource, true);
5586  else if (pname.compare ("alim"))
5587  return property (&m_alim, true);
5588  else if (pname.compare ("clim"))
5589  return property (&m_clim, true);
5590  else if (pname.compare ("xlim"))
5591  return property (&m_xlim, true);
5592  else if (pname.compare ("ylim"))
5593  return property (&m_ylim, true);
5594  else if (pname.compare ("zlim"))
5595  return property (&m_zlim, true);
5596  else if (pname.compare ("aliminclude"))
5597  return property (&m_aliminclude, true);
5598  else if (pname.compare ("climinclude"))
5599  return property (&m_climinclude, true);
5600  else if (pname.compare ("xliminclude"))
5601  return property (&m_xliminclude, true);
5602  else if (pname.compare ("yliminclude"))
5603  return property (&m_yliminclude, true);
5604  else if (pname.compare ("zliminclude"))
5605  return property (&m_zliminclude, true);
5606  else
5607  return base_properties::get_property (pname);
5608 }
5609 
5612 {
5614 
5615  m["annotation"] = Matrix ();
5616  m["cdata"] = Matrix ();
5617  m["cdatamode"] = "auto";
5618  m["cdatasource"] = "";
5619  m["datatiptemplate"] = Matrix ();
5620  m["displayname"] = "";
5621  m["latitudedata"] = Matrix ();
5622  m["latitudedatasource"] = "";
5623  m["linewidth"] = 0.5;
5624  m["longitudedata"] = Matrix ();
5625  m["longitudedatasource"] = "";
5626  m["marker"] = "o";
5627  m["markeredgealpha"] = 1.0;
5628  m["markeredgecolor"] = color_property (radio_values ("{flat}|none"), color_values (0, 0, 0));
5629  m["markerfacealpha"] = 1.0;
5630  m["markerfacecolor"] = color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0));
5631  m["rdata"] = Matrix ();
5632  m["rdatasource"] = "";
5633  m["seriesindex"] = Matrix ();
5634  m["sizedata"] = Matrix ();
5635  m["sizedatasource"] = "";
5636  m["thetadata"] = Matrix ();
5637  m["thetadatasource"] = "";
5638  m["xdata"] = Matrix ();
5639  m["xdatasource"] = "";
5640  m["ydata"] = Matrix ();
5641  m["ydatasource"] = "";
5642  m["zdata"] = Matrix ();
5643  m["zdatasource"] = "";
5644  m["alim"] = Matrix ();
5645  m["clim"] = Matrix ();
5646  m["xlim"] = Matrix ();
5647  m["ylim"] = Matrix ();
5648  m["zlim"] = Matrix ();
5649  m["aliminclude"] = "on";
5650  m["climinclude"] = "on";
5651  m["xliminclude"] = "on";
5652  m["yliminclude"] = "on";
5653  m["zliminclude"] = "on";
5654 
5655  return m;
5656 }
5657 
5658 std::string scatter::properties::s_go_name ("scatter");
5659 
5660 std::set<std::string>
5662 {
5663  static std::set<std::string> all_pnames;
5664 
5665  static bool initialized = false;
5666 
5667  if (! initialized)
5668  {
5669  all_pnames.insert ("annotation");
5670  all_pnames.insert ("cdata");
5671  all_pnames.insert ("cdatamode");
5672  all_pnames.insert ("cdatasource");
5673  all_pnames.insert ("datatiptemplate");
5674  all_pnames.insert ("displayname");
5675  all_pnames.insert ("latitudedata");
5676  all_pnames.insert ("latitudedatasource");
5677  all_pnames.insert ("linewidth");
5678  all_pnames.insert ("longitudedata");
5679  all_pnames.insert ("longitudedatasource");
5680  all_pnames.insert ("marker");
5681  all_pnames.insert ("markeredgealpha");
5682  all_pnames.insert ("markeredgecolor");
5683  all_pnames.insert ("markerfacealpha");
5684  all_pnames.insert ("markerfacecolor");
5685  all_pnames.insert ("rdata");
5686  all_pnames.insert ("rdatasource");
5687  all_pnames.insert ("seriesindex");
5688  all_pnames.insert ("sizedata");
5689  all_pnames.insert ("sizedatasource");
5690  all_pnames.insert ("thetadata");
5691  all_pnames.insert ("thetadatasource");
5692  all_pnames.insert ("xdata");
5693  all_pnames.insert ("xdatasource");
5694  all_pnames.insert ("ydata");
5695  all_pnames.insert ("ydatasource");
5696  all_pnames.insert ("zdata");
5697  all_pnames.insert ("zdatasource");
5698  all_pnames.insert ("alim");
5699  all_pnames.insert ("clim");
5700  all_pnames.insert ("xlim");
5701  all_pnames.insert ("ylim");
5702  all_pnames.insert ("zlim");
5703  all_pnames.insert ("aliminclude");
5704  all_pnames.insert ("climinclude");
5705  all_pnames.insert ("xliminclude");
5706  all_pnames.insert ("yliminclude");
5707  all_pnames.insert ("zliminclude");
5708 
5709  std::set<std::string> base_pnames = base_properties::core_property_names ();
5710  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5711 
5712  initialized = true;
5713  }
5714 
5715  return all_pnames;
5716 }
5717 
5718 bool
5720 {
5721  std::set<std::string> pnames = core_property_names ();
5722 
5723  return pnames.find (pname) != pnames.end ();
5724 }
5725 
5726 std::set<std::string>
5728 {
5729  static std::set<std::string> all_pnames;
5730 
5731  static bool initialized = false;
5732 
5733  if (! initialized)
5734  {
5735  all_pnames.insert ("alim");
5736  all_pnames.insert ("clim");
5737  all_pnames.insert ("xlim");
5738  all_pnames.insert ("ylim");
5739  all_pnames.insert ("zlim");
5740 
5741  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
5742  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5743 
5744  initialized = true;
5745  }
5746 
5747  return all_pnames;
5748 }
5749 
5750 bool
5752 {
5753  std::set<std::string> pnames = readonly_property_names ();
5754 
5755  return pnames.find (pname) != pnames.end ();
5756 }
5757 
5758 std::set<std::string>
5760 {
5761  static std::set<std::string> all_pnames = core_property_names ();
5762 
5763  std::set<std::string> retval = all_pnames;
5764  std::set<std::string> base_props = base_properties::all_property_names ();
5765  retval.insert (base_props.begin (), base_props.end ());
5766 
5767  return retval;
5768 }
5769 
5770 bool
5772 {
5773  std::set<std::string> pnames = all_property_names ();
5774 
5775  return pnames.find (pname) != pnames.end ();
5776 }
5777 
5778 // ******** surface ********
5779 
5781  : base_properties (s_go_name, mh, p),
5782  m_alphadata ("alphadata", mh, Matrix (1, 1, 1.0)),
5783  m_alphadatamapping ("alphadatamapping", mh, "none|direct|{scaled}"),
5784  m_ambientstrength ("ambientstrength", mh, 0.3),
5785  m_backfacelighting ("backfacelighting", mh, "unlit|lit|{reverselit}"),
5786  m_cdata ("cdata", mh, default_surface_cdata ()),
5787  m_cdatamapping ("cdatamapping", mh, "{scaled}|direct"),
5788  m_cdatasource ("cdatasource", mh, ""),
5789  m_diffusestrength ("diffusestrength", mh, 0.6),
5790  m_displayname ("displayname", mh, ""),
5791  m_edgealpha ("edgealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
5792  m_edgecolor ("edgecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
5793  m_edgelighting ("edgelighting", mh, "{none}|flat|gouraud|phong"),
5794  m_facealpha ("facealpha", mh, double_radio_property (1.0, radio_values ("flat|interp|texturemap"))),
5795  m_facecolor ("facecolor", mh, color_property (radio_values ("none|{flat}|interp|texturemap"), color_values (0, 0, 0))),
5796  m_facelighting ("facelighting", mh, "none|{flat}|gouraud|phong"),
5797  m_facenormals ("facenormals", mh, Matrix ()),
5798  m_facenormalsmode ("facenormalsmode", mh, "{auto}|manual"),
5799  m_linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
5800  m_linewidth ("linewidth", mh, 0.5),
5801  m_marker ("marker", mh, "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
5802  m_markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0))),
5803  m_markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0))),
5804  m_markersize ("markersize", mh, 6),
5805  m_meshstyle ("meshstyle", mh, "{both}|row|column"),
5806  m_specularcolorreflectance ("specularcolorreflectance", mh, 1),
5807  m_specularexponent ("specularexponent", mh, 10),
5808  m_specularstrength ("specularstrength", mh, 0.9),
5809  m_vertexnormals ("vertexnormals", mh, Matrix ()),
5810  m_vertexnormalsmode ("vertexnormalsmode", mh, "{auto}|manual"),
5811  m_xdata ("xdata", mh, default_surface_xdata ()),
5812  m_xdatasource ("xdatasource", mh, ""),
5813  m_ydata ("ydata", mh, default_surface_ydata ()),
5814  m_ydatasource ("ydatasource", mh, ""),
5815  m_zdata ("zdata", mh, default_surface_zdata ()),
5816  m_zdatasource ("zdatasource", mh, ""),
5817  m_alim ("alim", mh, Matrix ()),
5818  m_clim ("clim", mh, Matrix ()),
5819  m_xlim ("xlim", mh, Matrix ()),
5820  m_ylim ("ylim", mh, Matrix ()),
5821  m_zlim ("zlim", mh, Matrix ()),
5822  m_aliminclude ("aliminclude", mh, "on"),
5823  m_climinclude ("climinclude", mh, "on"),
5824  m_xliminclude ("xliminclude", mh, "on"),
5825  m_yliminclude ("yliminclude", mh, "on"),
5826  m_zliminclude ("zliminclude", mh, "on")
5827 {
5828  m_alphadata.set_id (ID_ALPHADATA);
5829  m_alphadatamapping.set_id (ID_ALPHADATAMAPPING);
5830  m_ambientstrength.set_id (ID_AMBIENTSTRENGTH);
5831  m_backfacelighting.set_id (ID_BACKFACELIGHTING);
5832  m_cdata.set_id (ID_CDATA);
5833  m_cdatamapping.set_id (ID_CDATAMAPPING);
5834  m_cdatasource.set_id (ID_CDATASOURCE);
5835  m_diffusestrength.set_id (ID_DIFFUSESTRENGTH);
5836  m_displayname.set_id (ID_DISPLAYNAME);
5837  m_edgealpha.set_id (ID_EDGEALPHA);
5838  m_edgecolor.set_id (ID_EDGECOLOR);
5839  m_edgelighting.set_id (ID_EDGELIGHTING);
5840  m_facealpha.set_id (ID_FACEALPHA);
5841  m_facecolor.set_id (ID_FACECOLOR);
5842  m_facelighting.set_id (ID_FACELIGHTING);
5843  m_facenormals.set_id (ID_FACENORMALS);
5844  m_facenormalsmode.set_id (ID_FACENORMALSMODE);
5845  m_linestyle.set_id (ID_LINESTYLE);
5846  m_linewidth.set_id (ID_LINEWIDTH);
5847  m_marker.set_id (ID_MARKER);
5848  m_markeredgecolor.set_id (ID_MARKEREDGECOLOR);
5849  m_markerfacecolor.set_id (ID_MARKERFACECOLOR);
5850  m_markersize.set_id (ID_MARKERSIZE);
5851  m_meshstyle.set_id (ID_MESHSTYLE);
5852  m_specularcolorreflectance.set_id (ID_SPECULARCOLORREFLECTANCE);
5853  m_specularexponent.set_id (ID_SPECULAREXPONENT);
5854  m_specularstrength.set_id (ID_SPECULARSTRENGTH);
5855  m_vertexnormals.set_id (ID_VERTEXNORMALS);
5856  m_vertexnormalsmode.set_id (ID_VERTEXNORMALSMODE);
5857  m_xdata.set_id (ID_XDATA);
5858  m_xdatasource.set_id (ID_XDATASOURCE);
5859  m_ydata.set_id (ID_YDATA);
5860  m_ydatasource.set_id (ID_YDATASOURCE);
5861  m_zdata.set_id (ID_ZDATA);
5862  m_zdatasource.set_id (ID_ZDATASOURCE);
5863  m_alim.set_id (ID_ALIM);
5864  m_alim.set_hidden (true);
5865  m_clim.set_id (ID_CLIM);
5866  m_clim.set_hidden (true);
5867  m_xlim.set_id (ID_XLIM);
5868  m_xlim.set_hidden (true);
5869  m_ylim.set_id (ID_YLIM);
5870  m_ylim.set_hidden (true);
5871  m_zlim.set_id (ID_ZLIM);
5872  m_zlim.set_hidden (true);
5873  m_aliminclude.set_id (ID_ALIMINCLUDE);
5874  m_aliminclude.set_hidden (true);
5875  m_climinclude.set_id (ID_CLIMINCLUDE);
5876  m_climinclude.set_hidden (true);
5877  m_xliminclude.set_id (ID_XLIMINCLUDE);
5878  m_xliminclude.set_hidden (true);
5879  m_yliminclude.set_id (ID_YLIMINCLUDE);
5880  m_yliminclude.set_hidden (true);
5881  m_zliminclude.set_id (ID_ZLIMINCLUDE);
5882  m_zliminclude.set_hidden (true);
5883  init ();
5884 }
5885 
5886 void
5888 {
5889  const std::set<std::string>& pnames = all_property_names ();
5890 
5891  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
5892 
5893  if (has_readonly_property (pname))
5894  {
5895  error ("set: \"%s\" is read-only", pname.c_str ());
5896  return;
5897  }
5898 
5899  if (pname.compare ("alphadata"))
5900  set_alphadata (val);
5901  else if (pname.compare ("alphadatamapping"))
5902  set_alphadatamapping (val);
5903  else if (pname.compare ("ambientstrength"))
5904  set_ambientstrength (val);
5905  else if (pname.compare ("backfacelighting"))
5906  set_backfacelighting (val);
5907  else if (pname.compare ("cdata"))
5908  set_cdata (val);
5909  else if (pname.compare ("cdatamapping"))
5910  set_cdatamapping (val);
5911  else if (pname.compare ("cdatasource"))
5912  set_cdatasource (val);
5913  else if (pname.compare ("diffusestrength"))
5914  set_diffusestrength (val);
5915  else if (pname.compare ("displayname"))
5916  set_displayname (val);
5917  else if (pname.compare ("edgealpha"))
5918  set_edgealpha (val);
5919  else if (pname.compare ("edgecolor"))
5920  set_edgecolor (val);
5921  else if (pname.compare ("edgelighting"))
5922  set_edgelighting (val);
5923  else if (pname.compare ("facealpha"))
5924  set_facealpha (val);
5925  else if (pname.compare ("facecolor"))
5926  set_facecolor (val);
5927  else if (pname.compare ("facelighting"))
5928  set_facelighting (val);
5929  else if (pname.compare ("facenormals"))
5930  set_facenormals (val);
5931  else if (pname.compare ("facenormalsmode"))
5932  set_facenormalsmode (val);
5933  else if (pname.compare ("linestyle"))
5934  set_linestyle (val);
5935  else if (pname.compare ("linewidth"))
5936  set_linewidth (val);
5937  else if (pname.compare ("marker"))
5938  set_marker (val);
5939  else if (pname.compare ("markeredgecolor"))
5940  set_markeredgecolor (val);
5941  else if (pname.compare ("markerfacecolor"))
5942  set_markerfacecolor (val);
5943  else if (pname.compare ("markersize"))
5944  set_markersize (val);
5945  else if (pname.compare ("meshstyle"))
5946  set_meshstyle (val);
5947  else if (pname.compare ("specularcolorreflectance"))
5948  set_specularcolorreflectance (val);
5949  else if (pname.compare ("specularexponent"))
5950  set_specularexponent (val);
5951  else if (pname.compare ("specularstrength"))
5952  set_specularstrength (val);
5953  else if (pname.compare ("vertexnormals"))
5954  set_vertexnormals (val);
5955  else if (pname.compare ("vertexnormalsmode"))
5956  set_vertexnormalsmode (val);
5957  else if (pname.compare ("xdata"))
5958  set_xdata (val);
5959  else if (pname.compare ("xdatasource"))
5960  set_xdatasource (val);
5961  else if (pname.compare ("ydata"))
5962  set_ydata (val);
5963  else if (pname.compare ("ydatasource"))
5964  set_ydatasource (val);
5965  else if (pname.compare ("zdata"))
5966  set_zdata (val);
5967  else if (pname.compare ("zdatasource"))
5968  set_zdatasource (val);
5969  else if (pname.compare ("aliminclude"))
5970  set_aliminclude (val);
5971  else if (pname.compare ("climinclude"))
5972  set_climinclude (val);
5973  else if (pname.compare ("xliminclude"))
5974  set_xliminclude (val);
5975  else if (pname.compare ("yliminclude"))
5976  set_yliminclude (val);
5977  else if (pname.compare ("zliminclude"))
5978  set_zliminclude (val);
5979  else
5980  base_properties::set (pname, val);
5981 }
5982 
5985 {
5987 
5988  m.assign ("alphadata", octave_value (get_alphadata ()));
5989  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
5990  m.assign ("ambientstrength", octave_value (get_ambientstrength ()));
5991  m.assign ("backfacelighting", octave_value (get_backfacelighting ()));
5992  m.assign ("cdata", octave_value (get_cdata ()));
5993  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
5994  m.assign ("cdatasource", octave_value (get_cdatasource ()));
5995  m.assign ("diffusestrength", octave_value (get_diffusestrength ()));
5996  m.assign ("displayname", octave_value (get_displayname ()));
5997  m.assign ("edgealpha", octave_value (get_edgealpha ()));
5998  m.assign ("edgecolor", octave_value (get_edgecolor ()));
5999  m.assign ("edgelighting", octave_value (get_edgelighting ()));
6000  m.assign ("facealpha", octave_value (get_facealpha ()));
6001  m.assign ("facecolor", octave_value (get_facecolor ()));
6002  m.assign ("facelighting", octave_value (get_facelighting ()));
6003  m.assign ("facenormals", octave_value (get_facenormals ()));
6004  m.assign ("facenormalsmode", octave_value (get_facenormalsmode ()));
6005  m.assign ("linestyle", octave_value (get_linestyle ()));
6006  m.assign ("linewidth", octave_value (get_linewidth ()));
6007  m.assign ("marker", octave_value (get_marker ()));
6008  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
6009  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
6010  m.assign ("markersize", octave_value (get_markersize ()));
6011  m.assign ("meshstyle", octave_value (get_meshstyle ()));
6012  m.assign ("specularcolorreflectance", octave_value (get_specularcolorreflectance ()));
6013  m.assign ("specularexponent", octave_value (get_specularexponent ()));
6014  m.assign ("specularstrength", octave_value (get_specularstrength ()));
6015  m.assign ("vertexnormals", octave_value (get_vertexnormals ()));
6016  m.assign ("vertexnormalsmode", octave_value (get_vertexnormalsmode ()));
6017  m.assign ("xdata", octave_value (get_xdata ()));
6018  m.assign ("xdatasource", octave_value (get_xdatasource ()));
6019  m.assign ("ydata", octave_value (get_ydata ()));
6020  m.assign ("ydatasource", octave_value (get_ydatasource ()));
6021  m.assign ("zdata", octave_value (get_zdata ()));
6022  m.assign ("zdatasource", octave_value (get_zdatasource ()));
6023  if (all)
6024  m.assign ("alim", octave_value (get_alim ()));
6025  if (all)
6026  m.assign ("clim", octave_value (get_clim ()));
6027  if (all)
6028  m.assign ("xlim", octave_value (get_xlim ()));
6029  if (all)
6030  m.assign ("ylim", octave_value (get_ylim ()));
6031  if (all)
6032  m.assign ("zlim", octave_value (get_zlim ()));
6033  if (all)
6034  m.assign ("aliminclude", octave_value (get_aliminclude ()));
6035  if (all)
6036  m.assign ("climinclude", octave_value (get_climinclude ()));
6037  if (all)
6038  m.assign ("xliminclude", octave_value (get_xliminclude ()));
6039  if (all)
6040  m.assign ("yliminclude", octave_value (get_yliminclude ()));
6041  if (all)
6042  m.assign ("zliminclude", octave_value (get_zliminclude ()));
6043 
6044  return m;
6045 }
6046 
6048 surface::properties::get (const caseless_str& pname_arg) const
6049 {
6050  octave_value retval;
6051 
6052  const std::set<std::string>& pnames = all_property_names ();
6053 
6054  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6055 
6056  if (pname.compare ("alphadata"))
6057  retval = get_alphadata ();
6058  else if (pname.compare ("alphadatamapping"))
6059  retval = get_alphadatamapping ();
6060  else if (pname.compare ("ambientstrength"))
6061  retval = get_ambientstrength ();
6062  else if (pname.compare ("backfacelighting"))
6063  retval = get_backfacelighting ();
6064  else if (pname.compare ("cdata"))
6065  retval = get_cdata ();
6066  else if (pname.compare ("cdatamapping"))
6067  retval = get_cdatamapping ();
6068  else if (pname.compare ("cdatasource"))
6069  retval = get_cdatasource ();
6070  else if (pname.compare ("diffusestrength"))
6071  retval = get_diffusestrength ();
6072  else if (pname.compare ("displayname"))
6073  retval = get_displayname ();
6074  else if (pname.compare ("edgealpha"))
6075  retval = get_edgealpha ();
6076  else if (pname.compare ("edgecolor"))
6077  retval = get_edgecolor ();
6078  else if (pname.compare ("edgelighting"))
6079  retval = get_edgelighting ();
6080  else if (pname.compare ("facealpha"))
6081  retval = get_facealpha ();
6082  else if (pname.compare ("facecolor"))
6083  retval = get_facecolor ();
6084  else if (pname.compare ("facelighting"))
6085  retval = get_facelighting ();
6086  else if (pname.compare ("facenormals"))
6087  retval = get_facenormals ();
6088  else if (pname.compare ("facenormalsmode"))
6089  retval = get_facenormalsmode ();
6090  else if (pname.compare ("linestyle"))
6091  retval = get_linestyle ();
6092  else if (pname.compare ("linewidth"))
6093  retval = get_linewidth ();
6094  else if (pname.compare ("marker"))
6095  retval = get_marker ();
6096  else if (pname.compare ("markeredgecolor"))
6097  retval = get_markeredgecolor ();
6098  else if (pname.compare ("markerfacecolor"))
6099  retval = get_markerfacecolor ();
6100  else if (pname.compare ("markersize"))
6101  retval = get_markersize ();
6102  else if (pname.compare ("meshstyle"))
6103  retval = get_meshstyle ();
6104  else if (pname.compare ("specularcolorreflectance"))
6105  retval = get_specularcolorreflectance ();
6106  else if (pname.compare ("specularexponent"))
6107  retval = get_specularexponent ();
6108  else if (pname.compare ("specularstrength"))
6109  retval = get_specularstrength ();
6110  else if (pname.compare ("vertexnormals"))
6111  retval = get_vertexnormals ();
6112  else if (pname.compare ("vertexnormalsmode"))
6113  retval = get_vertexnormalsmode ();
6114  else if (pname.compare ("xdata"))
6115  retval = get_xdata ();
6116  else if (pname.compare ("xdatasource"))
6117  retval = get_xdatasource ();
6118  else if (pname.compare ("ydata"))
6119  retval = get_ydata ();
6120  else if (pname.compare ("ydatasource"))
6121  retval = get_ydatasource ();
6122  else if (pname.compare ("zdata"))
6123  retval = get_zdata ();
6124  else if (pname.compare ("zdatasource"))
6125  retval = get_zdatasource ();
6126  else if (pname.compare ("alim"))
6127  retval = get_alim ();
6128  else if (pname.compare ("clim"))
6129  retval = get_clim ();
6130  else if (pname.compare ("xlim"))
6131  retval = get_xlim ();
6132  else if (pname.compare ("ylim"))
6133  retval = get_ylim ();
6134  else if (pname.compare ("zlim"))
6135  retval = get_zlim ();
6136  else if (pname.compare ("aliminclude"))
6137  retval = get_aliminclude ();
6138  else if (pname.compare ("climinclude"))
6139  retval = get_climinclude ();
6140  else if (pname.compare ("xliminclude"))
6141  retval = get_xliminclude ();
6142  else if (pname.compare ("yliminclude"))
6143  retval = get_yliminclude ();
6144  else if (pname.compare ("zliminclude"))
6145  retval = get_zliminclude ();
6146  else
6147  retval = base_properties::get (pname);
6148 
6149  return retval;
6150 }
6151 
6152 property
6154 {
6155  const std::set<std::string>& pnames = all_property_names ();
6156 
6157  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6158 
6159  if (pname.compare ("alphadata"))
6160  return property (&m_alphadata, true);
6161  else if (pname.compare ("alphadatamapping"))
6162  return property (&m_alphadatamapping, true);
6163  else if (pname.compare ("ambientstrength"))
6164  return property (&m_ambientstrength, true);
6165  else if (pname.compare ("backfacelighting"))
6166  return property (&m_backfacelighting, true);
6167  else if (pname.compare ("cdata"))
6168  return property (&m_cdata, true);
6169  else if (pname.compare ("cdatamapping"))
6170  return property (&m_cdatamapping, true);
6171  else if (pname.compare ("cdatasource"))
6172  return property (&m_cdatasource, true);
6173  else if (pname.compare ("diffusestrength"))
6174  return property (&m_diffusestrength, true);
6175  else if (pname.compare ("displayname"))
6176  return property (&m_displayname, true);
6177  else if (pname.compare ("edgealpha"))
6178  return property (&m_edgealpha, true);
6179  else if (pname.compare ("edgecolor"))
6180  return property (&m_edgecolor, true);
6181  else if (pname.compare ("edgelighting"))
6182  return property (&m_edgelighting, true);
6183  else if (pname.compare ("facealpha"))
6184  return property (&m_facealpha, true);
6185  else if (pname.compare ("facecolor"))
6186  return property (&m_facecolor, true);
6187  else if (pname.compare ("facelighting"))
6188  return property (&m_facelighting, true);
6189  else if (pname.compare ("facenormals"))
6190  return property (&m_facenormals, true);
6191  else if (pname.compare ("facenormalsmode"))
6192  return property (&m_facenormalsmode, true);
6193  else if (pname.compare ("linestyle"))
6194  return property (&m_linestyle, true);
6195  else if (pname.compare ("linewidth"))
6196  return property (&m_linewidth, true);
6197  else if (pname.compare ("marker"))
6198  return property (&m_marker, true);
6199  else if (pname.compare ("markeredgecolor"))
6200  return property (&m_markeredgecolor, true);
6201  else if (pname.compare ("markerfacecolor"))
6202  return property (&m_markerfacecolor, true);
6203  else if (pname.compare ("markersize"))
6204  return property (&m_markersize, true);
6205  else if (pname.compare ("meshstyle"))
6206  return property (&m_meshstyle, true);
6207  else if (pname.compare ("specularcolorreflectance"))
6208  return property (&m_specularcolorreflectance, true);
6209  else if (pname.compare ("specularexponent"))
6210  return property (&m_specularexponent, true);
6211  else if (pname.compare ("specularstrength"))
6212  return property (&m_specularstrength, true);
6213  else if (pname.compare ("vertexnormals"))
6214  return property (&m_vertexnormals, true);
6215  else if (pname.compare ("vertexnormalsmode"))
6216  return property (&m_vertexnormalsmode, true);
6217  else if (pname.compare ("xdata"))
6218  return property (&m_xdata, true);
6219  else if (pname.compare ("xdatasource"))
6220  return property (&m_xdatasource, true);
6221  else if (pname.compare ("ydata"))
6222  return property (&m_ydata, true);
6223  else if (pname.compare ("ydatasource"))
6224  return property (&m_ydatasource, true);
6225  else if (pname.compare ("zdata"))
6226  return property (&m_zdata, true);
6227  else if (pname.compare ("zdatasource"))
6228  return property (&m_zdatasource, true);
6229  else if (pname.compare ("alim"))
6230  return property (&m_alim, true);
6231  else if (pname.compare ("clim"))
6232  return property (&m_clim, true);
6233  else if (pname.compare ("xlim"))
6234  return property (&m_xlim, true);
6235  else if (pname.compare ("ylim"))
6236  return property (&m_ylim, true);
6237  else if (pname.compare ("zlim"))
6238  return property (&m_zlim, true);
6239  else if (pname.compare ("aliminclude"))
6240  return property (&m_aliminclude, true);
6241  else if (pname.compare ("climinclude"))
6242  return property (&m_climinclude, true);
6243  else if (pname.compare ("xliminclude"))
6244  return property (&m_xliminclude, true);
6245  else if (pname.compare ("yliminclude"))
6246  return property (&m_yliminclude, true);
6247  else if (pname.compare ("zliminclude"))
6248  return property (&m_zliminclude, true);
6249  else
6250  return base_properties::get_property (pname);
6251 }
6252 
6255 {
6257 
6258  m["alphadata"] = Matrix (1, 1, 1.0);
6259  m["alphadatamapping"] = "scaled";
6260  m["ambientstrength"] = 0.3;
6261  m["backfacelighting"] = "reverselit";
6262  m["cdata"] = default_surface_cdata ();
6263  m["cdatamapping"] = "scaled";
6264  m["cdatasource"] = "";
6265  m["diffusestrength"] = 0.6;
6266  m["displayname"] = "";
6267  m["edgealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
6268  m["edgecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
6269  m["edgelighting"] = "none";
6270  m["facealpha"] = double_radio_property (1.0, radio_values ("flat|interp|texturemap"));
6271  m["facecolor"] = color_property (radio_values ("none|{flat}|interp|texturemap"), color_values (0, 0, 0));
6272  m["facelighting"] = "flat";
6273  m["facenormals"] = Matrix ();
6274  m["facenormalsmode"] = "auto";
6275  m["linestyle"] = "-";
6276  m["linewidth"] = 0.5;
6277  m["marker"] = "none";
6278  m["markeredgecolor"] = color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0));
6279  m["markerfacecolor"] = color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0));
6280  m["markersize"] = 6;
6281  m["meshstyle"] = "both";
6282  m["specularcolorreflectance"] = 1;
6283  m["specularexponent"] = 10;
6284  m["specularstrength"] = 0.9;
6285  m["vertexnormals"] = Matrix ();
6286  m["vertexnormalsmode"] = "auto";
6287  m["xdata"] = default_surface_xdata ();
6288  m["xdatasource"] = "";
6289  m["ydata"] = default_surface_ydata ();
6290  m["ydatasource"] = "";
6291  m["zdata"] = default_surface_zdata ();
6292  m["zdatasource"] = "";
6293  m["alim"] = Matrix ();
6294  m["clim"] = Matrix ();
6295  m["xlim"] = Matrix ();
6296  m["ylim"] = Matrix ();
6297  m["zlim"] = Matrix ();
6298  m["aliminclude"] = "on";
6299  m["climinclude"] = "on";
6300  m["xliminclude"] = "on";
6301  m["yliminclude"] = "on";
6302  m["zliminclude"] = "on";
6303 
6304  return m;
6305 }
6306 
6307 std::string surface::properties::s_go_name ("surface");
6308 
6309 std::set<std::string>
6311 {
6312  static std::set<std::string> all_pnames;
6313 
6314  static bool initialized = false;
6315 
6316  if (! initialized)
6317  {
6318  all_pnames.insert ("alphadata");
6319  all_pnames.insert ("alphadatamapping");
6320  all_pnames.insert ("ambientstrength");
6321  all_pnames.insert ("backfacelighting");
6322  all_pnames.insert ("cdata");
6323  all_pnames.insert ("cdatamapping");
6324  all_pnames.insert ("cdatasource");
6325  all_pnames.insert ("diffusestrength");
6326  all_pnames.insert ("displayname");
6327  all_pnames.insert ("edgealpha");
6328  all_pnames.insert ("edgecolor");
6329  all_pnames.insert ("edgelighting");
6330  all_pnames.insert ("facealpha");
6331  all_pnames.insert ("facecolor");
6332  all_pnames.insert ("facelighting");
6333  all_pnames.insert ("facenormals");
6334  all_pnames.insert ("facenormalsmode");
6335  all_pnames.insert ("linestyle");
6336  all_pnames.insert ("linewidth");
6337  all_pnames.insert ("marker");
6338  all_pnames.insert ("markeredgecolor");
6339  all_pnames.insert ("markerfacecolor");
6340  all_pnames.insert ("markersize");
6341  all_pnames.insert ("meshstyle");
6342  all_pnames.insert ("specularcolorreflectance");
6343  all_pnames.insert ("specularexponent");
6344  all_pnames.insert ("specularstrength");
6345  all_pnames.insert ("vertexnormals");
6346  all_pnames.insert ("vertexnormalsmode");
6347  all_pnames.insert ("xdata");
6348  all_pnames.insert ("xdatasource");
6349  all_pnames.insert ("ydata");
6350  all_pnames.insert ("ydatasource");
6351  all_pnames.insert ("zdata");
6352  all_pnames.insert ("zdatasource");
6353  all_pnames.insert ("alim");
6354  all_pnames.insert ("clim");
6355  all_pnames.insert ("xlim");
6356  all_pnames.insert ("ylim");
6357  all_pnames.insert ("zlim");
6358  all_pnames.insert ("aliminclude");
6359  all_pnames.insert ("climinclude");
6360  all_pnames.insert ("xliminclude");
6361  all_pnames.insert ("yliminclude");
6362  all_pnames.insert ("zliminclude");
6363 
6364  std::set<std::string> base_pnames = base_properties::core_property_names ();
6365  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6366 
6367  initialized = true;
6368  }
6369 
6370  return all_pnames;
6371 }
6372 
6373 bool
6375 {
6376  std::set<std::string> pnames = core_property_names ();
6377 
6378  return pnames.find (pname) != pnames.end ();
6379 }
6380 
6381 std::set<std::string>
6383 {
6384  static std::set<std::string> all_pnames;
6385 
6386  static bool initialized = false;
6387 
6388  if (! initialized)
6389  {
6390  all_pnames.insert ("alim");
6391  all_pnames.insert ("clim");
6392  all_pnames.insert ("xlim");
6393  all_pnames.insert ("ylim");
6394  all_pnames.insert ("zlim");
6395 
6396  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6397  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6398 
6399  initialized = true;
6400  }
6401 
6402  return all_pnames;
6403 }
6404 
6405 bool
6407 {
6408  std::set<std::string> pnames = readonly_property_names ();
6409 
6410  return pnames.find (pname) != pnames.end ();
6411 }
6412 
6413 std::set<std::string>
6415 {
6416  static std::set<std::string> all_pnames = core_property_names ();
6417 
6418  std::set<std::string> retval = all_pnames;
6419  std::set<std::string> base_props = base_properties::all_property_names ();
6420  retval.insert (base_props.begin (), base_props.end ());
6421 
6422  return retval;
6423 }
6424 
6425 bool
6427 {
6428  std::set<std::string> pnames = all_property_names ();
6429 
6430  return pnames.find (pname) != pnames.end ();
6431 }
6432 
6433 // ******** hggroup ********
6434 
6436  : base_properties (s_go_name, mh, p),
6437  m_displayname ("displayname", mh, ""),
6438  m_alim ("alim", mh, Matrix ()),
6439  m_clim ("clim", mh, Matrix ()),
6440  m_xlim ("xlim", mh, Matrix ()),
6441  m_ylim ("ylim", mh, Matrix ()),
6442  m_zlim ("zlim", mh, Matrix ()),
6443  m_aliminclude ("aliminclude", mh, "on"),
6444  m_climinclude ("climinclude", mh, "on"),
6445  m_xliminclude ("xliminclude", mh, "on"),
6446  m_yliminclude ("yliminclude", mh, "on"),
6447  m_zliminclude ("zliminclude", mh, "on")
6448 {
6449  m_displayname.set_id (ID_DISPLAYNAME);
6450  m_alim.set_id (ID_ALIM);
6451  m_alim.set_hidden (true);
6452  m_clim.set_id (ID_CLIM);
6453  m_clim.set_hidden (true);
6454  m_xlim.set_id (ID_XLIM);
6455  m_xlim.set_hidden (true);
6456  m_ylim.set_id (ID_YLIM);
6457  m_ylim.set_hidden (true);
6458  m_zlim.set_id (ID_ZLIM);
6459  m_zlim.set_hidden (true);
6460  m_aliminclude.set_id (ID_ALIMINCLUDE);
6461  m_aliminclude.set_hidden (true);
6462  m_climinclude.set_id (ID_CLIMINCLUDE);
6463  m_climinclude.set_hidden (true);
6464  m_xliminclude.set_id (ID_XLIMINCLUDE);
6465  m_xliminclude.set_hidden (true);
6466  m_yliminclude.set_id (ID_YLIMINCLUDE);
6467  m_yliminclude.set_hidden (true);
6468  m_zliminclude.set_id (ID_ZLIMINCLUDE);
6469  m_zliminclude.set_hidden (true);
6470  init ();
6471 }
6472 
6473 void
6475 {
6476  const std::set<std::string>& pnames = all_property_names ();
6477 
6478  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
6479 
6480  if (has_readonly_property (pname))
6481  {
6482  error ("set: \"%s\" is read-only", pname.c_str ());
6483  return;
6484  }
6485 
6486  if (pname.compare ("displayname"))
6487  set_displayname (val);
6488  else if (pname.compare ("aliminclude"))
6489  set_aliminclude (val);
6490  else if (pname.compare ("climinclude"))
6491  set_climinclude (val);
6492  else if (pname.compare ("xliminclude"))
6493  set_xliminclude (val);
6494  else if (pname.compare ("yliminclude"))
6495  set_yliminclude (val);
6496  else if (pname.compare ("zliminclude"))
6497  set_zliminclude (val);
6498  else
6499  base_properties::set (pname, val);
6500 }
6501 
6504 {
6506 
6507  m.assign ("displayname", octave_value (get_displayname ()));
6508  if (all)
6509  m.assign ("alim", octave_value (get_alim ()));
6510  if (all)
6511  m.assign ("clim", octave_value (get_clim ()));
6512  if (all)
6513  m.assign ("xlim", octave_value (get_xlim ()));
6514  if (all)
6515  m.assign ("ylim", octave_value (get_ylim ()));
6516  if (all)
6517  m.assign ("zlim", octave_value (get_zlim ()));
6518  if (all)
6519  m.assign ("aliminclude", octave_value (get_aliminclude ()));
6520  if (all)
6521  m.assign ("climinclude", octave_value (get_climinclude ()));
6522  if (all)
6523  m.assign ("xliminclude", octave_value (get_xliminclude ()));
6524  if (all)
6525  m.assign ("yliminclude", octave_value (get_yliminclude ()));
6526  if (all)
6527  m.assign ("zliminclude", octave_value (get_zliminclude ()));
6528 
6529  return m;
6530 }
6531 
6533 hggroup::properties::get (const caseless_str& pname_arg) const
6534 {
6535  octave_value retval;
6536 
6537  const std::set<std::string>& pnames = all_property_names ();
6538 
6539  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6540 
6541  if (pname.compare ("displayname"))
6542  retval = get_displayname ();
6543  else if (pname.compare ("alim"))
6544  retval = get_alim ();
6545  else if (pname.compare ("clim"))
6546  retval = get_clim ();
6547  else if (pname.compare ("xlim"))
6548  retval = get_xlim ();
6549  else if (pname.compare ("ylim"))
6550  retval = get_ylim ();
6551  else if (pname.compare ("zlim"))
6552  retval = get_zlim ();
6553  else if (pname.compare ("aliminclude"))
6554  retval = get_aliminclude ();
6555  else if (pname.compare ("climinclude"))
6556  retval = get_climinclude ();
6557  else if (pname.compare ("xliminclude"))
6558  retval = get_xliminclude ();
6559  else if (pname.compare ("yliminclude"))
6560  retval = get_yliminclude ();
6561  else if (pname.compare ("zliminclude"))
6562  retval = get_zliminclude ();
6563  else
6564  retval = base_properties::get (pname);
6565 
6566  return retval;
6567 }
6568 
6569 property
6571 {
6572  const std::set<std::string>& pnames = all_property_names ();
6573 
6574  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6575 
6576  if (pname.compare ("displayname"))
6577  return property (&m_displayname, true);
6578  else if (pname.compare ("alim"))
6579  return property (&m_alim, true);
6580  else if (pname.compare ("clim"))
6581  return property (&m_clim, true);
6582  else if (pname.compare ("xlim"))
6583  return property (&m_xlim, true);
6584  else if (pname.compare ("ylim"))
6585  return property (&m_ylim, true);
6586  else if (pname.compare ("zlim"))
6587  return property (&m_zlim, true);
6588  else if (pname.compare ("aliminclude"))
6589  return property (&m_aliminclude, true);
6590  else if (pname.compare ("climinclude"))
6591  return property (&m_climinclude, true);
6592  else if (pname.compare ("xliminclude"))
6593  return property (&m_xliminclude, true);
6594  else if (pname.compare ("yliminclude"))
6595  return property (&m_yliminclude, true);
6596  else if (pname.compare ("zliminclude"))
6597  return property (&m_zliminclude, true);
6598  else
6599  return base_properties::get_property (pname);
6600 }
6601 
6604 {
6606 
6607  m["displayname"] = "";
6608  m["alim"] = Matrix ();
6609  m["clim"] = Matrix ();
6610  m["xlim"] = Matrix ();
6611  m["ylim"] = Matrix ();
6612  m["zlim"] = Matrix ();
6613  m["aliminclude"] = "on";
6614  m["climinclude"] = "on";
6615  m["xliminclude"] = "on";
6616  m["yliminclude"] = "on";
6617  m["zliminclude"] = "on";
6618 
6619  return m;
6620 }
6621 
6622 std::string hggroup::properties::s_go_name ("hggroup");
6623 
6624 std::set<std::string>
6626 {
6627  static std::set<std::string> all_pnames;
6628 
6629  static bool initialized = false;
6630 
6631  if (! initialized)
6632  {
6633  all_pnames.insert ("displayname");
6634  all_pnames.insert ("alim");
6635  all_pnames.insert ("clim");
6636  all_pnames.insert ("xlim");
6637  all_pnames.insert ("ylim");
6638  all_pnames.insert ("zlim");
6639  all_pnames.insert ("aliminclude");
6640  all_pnames.insert ("climinclude");
6641  all_pnames.insert ("xliminclude");
6642  all_pnames.insert ("yliminclude");
6643  all_pnames.insert ("zliminclude");
6644 
6645  std::set<std::string> base_pnames = base_properties::core_property_names ();
6646  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6647 
6648  initialized = true;
6649  }
6650 
6651  return all_pnames;
6652 }
6653 
6654 bool
6656 {
6657  std::set<std::string> pnames = core_property_names ();
6658 
6659  return pnames.find (pname) != pnames.end ();
6660 }
6661 
6662 std::set<std::string>
6664 {
6665  static std::set<std::string> all_pnames;
6666 
6667  static bool initialized = false;
6668 
6669  if (! initialized)
6670  {
6671  all_pnames.insert ("alim");
6672  all_pnames.insert ("clim");
6673  all_pnames.insert ("xlim");
6674  all_pnames.insert ("ylim");
6675  all_pnames.insert ("zlim");
6676 
6677  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6678  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6679 
6680  initialized = true;
6681  }
6682 
6683  return all_pnames;
6684 }
6685 
6686 bool
6688 {
6689  std::set<std::string> pnames = readonly_property_names ();
6690 
6691  return pnames.find (pname) != pnames.end ();
6692 }
6693 
6694 std::set<std::string>
6696 {
6697  static std::set<std::string> all_pnames = core_property_names ();
6698 
6699  std::set<std::string> retval = all_pnames;
6700  std::set<std::string> base_props = base_properties::all_property_names ();
6701  retval.insert (base_props.begin (), base_props.end ());
6702 
6703  return retval;
6704 }
6705 
6706 bool
6708 {
6709  std::set<std::string> pnames = all_property_names ();
6710 
6711  return pnames.find (pname) != pnames.end ();
6712 }
6713 
6714 // ******** uimenu ********
6715 
6717  : base_properties (s_go_name, mh, p),
6718  m_accelerator ("accelerator", mh, ""),
6719  m_callback ("callback", mh, Matrix ()),
6720  m_checked ("checked", mh, "off"),
6721  m_enable ("enable", mh, "on"),
6722  m_foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
6723  m_label ("label", mh, ""),
6724  m_menuselectedfcn ("menuselectedfcn", mh, Matrix ()),
6725  m_position ("position", mh, 0),
6726  m_separator ("separator", mh, "off"),
6727  m_text ("text", mh, ""),
6728  m___fltk_label__ ("__fltk_label__", mh, ""),
6729  m___object__ ("__object__", mh, Matrix ())
6730 {
6731  m_accelerator.set_id (ID_ACCELERATOR);
6732  m_callback.set_id (ID_CALLBACK);
6733  m_callback.set_hidden (true);
6734  m_checked.set_id (ID_CHECKED);
6735  m_enable.set_id (ID_ENABLE);
6736  m_foregroundcolor.set_id (ID_FOREGROUNDCOLOR);
6737  m_label.set_id (ID_LABEL);
6738  m_label.set_hidden (true);
6739  m_menuselectedfcn.set_id (ID_MENUSELECTEDFCN);
6740  m_position.set_id (ID_POSITION);
6741  m_separator.set_id (ID_SEPARATOR);
6742  m_text.set_id (ID_TEXT);
6743  m___fltk_label__.set_id (ID___FLTK_LABEL__);
6744  m___fltk_label__.set_hidden (true);
6745  m___object__.set_id (ID___OBJECT__);
6746  m___object__.set_hidden (true);
6747  init ();
6748 }
6749 
6750 void
6751 uimenu::properties::set (const caseless_str& pname_arg, const octave_value& val)
6752 {
6753  const std::set<std::string>& pnames = all_property_names ();
6754 
6755  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
6756 
6757  if (has_readonly_property (pname))
6758  {
6759  error ("set: \"%s\" is read-only", pname.c_str ());
6760  return;
6761  }
6762 
6763  if (pname.compare ("accelerator"))
6764  set_accelerator (val);
6765  else if (pname.compare ("callback"))
6766  set_callback (val);
6767  else if (pname.compare ("checked"))
6768  set_checked (val);
6769  else if (pname.compare ("enable"))
6770  set_enable (val);
6771  else if (pname.compare ("foregroundcolor"))
6772  set_foregroundcolor (val);
6773  else if (pname.compare ("label"))
6774  set_label (val);
6775  else if (pname.compare ("menuselectedfcn"))
6776  set_menuselectedfcn (val);
6777  else if (pname.compare ("position"))
6778  set_position (val);
6779  else if (pname.compare ("separator"))
6780  set_separator (val);
6781  else if (pname.compare ("text"))
6782  set_text (val);
6783  else if (pname.compare ("__fltk_label__"))
6784  set___fltk_label__ (val);
6785  else if (pname.compare ("__object__"))
6786  set___object__ (val);
6787  else
6788  base_properties::set (pname, val);
6789 }
6790 
6792 uimenu::properties::get (bool all) const
6793 {
6795 
6796  m.assign ("accelerator", octave_value (get_accelerator ()));
6797  if (all)
6798  m.assign ("callback", octave_value (get_callback ()));
6799  m.assign ("checked", octave_value (get_checked ()));
6800  m.assign ("enable", octave_value (get_enable ()));
6801  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
6802  if (all)
6803  m.assign ("label", octave_value (get_label ()));
6804  m.assign ("menuselectedfcn", octave_value (get_menuselectedfcn ()));
6805  m.assign ("position", octave_value (get_position ()));
6806  m.assign ("separator", octave_value (get_separator ()));
6807  m.assign ("text", octave_value (get_text ()));
6808  if (all)
6809  m.assign ("__fltk_label__", octave_value (get___fltk_label__ ()));
6810  if (all)
6811  m.assign ("__object__", octave_value (get___object__ ()));
6812 
6813  return m;
6814 }
6815 
6817 uimenu::properties::get (const caseless_str& pname_arg) const
6818 {
6819  octave_value retval;
6820 
6821  const std::set<std::string>& pnames = all_property_names ();
6822 
6823  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6824 
6825  if (pname.compare ("accelerator"))
6826  retval = get_accelerator ();
6827  else if (pname.compare ("callback"))
6828  retval = get_callback ();
6829  else if (pname.compare ("checked"))
6830  retval = get_checked ();
6831  else if (pname.compare ("enable"))
6832  retval = get_enable ();
6833  else if (pname.compare ("foregroundcolor"))
6834  retval = get_foregroundcolor ();
6835  else if (pname.compare ("label"))
6836  retval = get_label ();
6837  else if (pname.compare ("menuselectedfcn"))
6838  retval = get_menuselectedfcn ();
6839  else if (pname.compare ("position"))
6840  retval = get_position ();
6841  else if (pname.compare ("separator"))
6842  retval = get_separator ();
6843  else if (pname.compare ("text"))
6844  retval = get_text ();
6845  else if (pname.compare ("__fltk_label__"))
6846  retval = get___fltk_label__ ();
6847  else if (pname.compare ("__object__"))
6848  retval = get___object__ ();
6849  else
6850  retval = base_properties::get (pname);
6851 
6852  return retval;
6853 }
6854 
6855 property
6857 {
6858  const std::set<std::string>& pnames = all_property_names ();
6859 
6860  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
6861 
6862  if (pname.compare ("accelerator"))
6863  return property (&m_accelerator, true);
6864  else if (pname.compare ("callback"))
6865  return property (&m_callback, true);
6866  else if (pname.compare ("checked"))
6867  return property (&m_checked, true);
6868  else if (pname.compare ("enable"))
6869  return property (&m_enable, true);
6870  else if (pname.compare ("foregroundcolor"))
6871  return property (&m_foregroundcolor, true);
6872  else if (pname.compare ("label"))
6873  return property (&m_label, true);
6874  else if (pname.compare ("menuselectedfcn"))
6875  return property (&m_menuselectedfcn, true);
6876  else if (pname.compare ("position"))
6877  return property (&m_position, true);
6878  else if (pname.compare ("separator"))
6879  return property (&m_separator, true);
6880  else if (pname.compare ("text"))
6881  return property (&m_text, true);
6882  else if (pname.compare ("__fltk_label__"))
6883  return property (&m___fltk_label__, true);
6884  else if (pname.compare ("__object__"))
6885  return property (&m___object__, true);
6886  else
6887  return base_properties::get_property (pname);
6888 }
6889 
6892 {
6894 
6895  m["accelerator"] = "";
6896  m["callback"] = Matrix ();
6897  m["checked"] = "off";
6898  m["enable"] = "on";
6899  m["foregroundcolor"] = color_values (0, 0, 0);
6900  m["label"] = "";
6901  m["menuselectedfcn"] = Matrix ();
6902  m["position"] = 0;
6903  m["separator"] = "off";
6904  m["text"] = "";
6905  m["__fltk_label__"] = "";
6906  m["__object__"] = Matrix ();
6907 
6908  return m;
6909 }
6910 
6911 std::string uimenu::properties::s_go_name ("uimenu");
6912 
6913 std::set<std::string>
6915 {
6916  static std::set<std::string> all_pnames;
6917 
6918  static bool initialized = false;
6919 
6920  if (! initialized)
6921  {
6922  all_pnames.insert ("accelerator");
6923  all_pnames.insert ("callback");
6924  all_pnames.insert ("checked");
6925  all_pnames.insert ("enable");
6926  all_pnames.insert ("foregroundcolor");
6927  all_pnames.insert ("label");
6928  all_pnames.insert ("menuselectedfcn");
6929  all_pnames.insert ("position");
6930  all_pnames.insert ("separator");
6931  all_pnames.insert ("text");
6932  all_pnames.insert ("__fltk_label__");
6933  all_pnames.insert ("__object__");
6934 
6935  std::set<std::string> base_pnames = base_properties::core_property_names ();
6936  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6937 
6938  initialized = true;
6939  }
6940 
6941  return all_pnames;
6942 }
6943 
6944 bool
6946 {
6947  std::set<std::string> pnames = core_property_names ();
6948 
6949  return pnames.find (pname) != pnames.end ();
6950 }
6951 
6952 std::set<std::string>
6954 {
6955  static std::set<std::string> all_pnames;
6956 
6957  static bool initialized = false;
6958 
6959  if (! initialized)
6960  {
6961 
6962  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6963  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6964 
6965  initialized = true;
6966  }
6967 
6968  return all_pnames;
6969 }
6970 
6971 bool
6973 {
6974  std::set<std::string> pnames = readonly_property_names ();
6975 
6976  return pnames.find (pname) != pnames.end ();
6977 }
6978 
6979 std::set<std::string>
6981 {
6982  static std::set<std::string> all_pnames = core_property_names ();
6983 
6984  std::set<std::string> retval = all_pnames;
6985  std::set<std::string> base_props = base_properties::all_property_names ();
6986  retval.insert (base_props.begin (), base_props.end ());
6987 
6988  return retval;
6989 }
6990 
6991 bool
6993 {
6994  std::set<std::string> pnames = all_property_names ();
6995 
6996  return pnames.find (pname) != pnames.end ();
6997 }
6998 
6999 // ******** uicontextmenu ********
7000 
7002  : base_properties (s_go_name, mh, p),
7003  m_callback ("callback", mh, Matrix ()),
7004  m_position ("position", mh, Matrix (1, 2, 0.0)),
7005  m___object__ ("__object__", mh, Matrix ())
7006 {
7007  m_callback.set_id (ID_CALLBACK);
7008  m_position.set_id (ID_POSITION);
7009  m___object__.set_id (ID___OBJECT__);
7010  m___object__.set_hidden (true);
7011  init ();
7012 }
7013 
7014 void
7016 {
7017  const std::set<std::string>& pnames = all_property_names ();
7018 
7019  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
7020 
7021  if (has_readonly_property (pname))
7022  {
7023  error ("set: \"%s\" is read-only", pname.c_str ());
7024  return;
7025  }
7026 
7027  if (pname.compare ("callback"))
7028  set_callback (val);
7029  else if (pname.compare ("position"))
7030  set_position (val);
7031  else if (pname.compare ("__object__"))
7032  set___object__ (val);
7033  else
7034  base_properties::set (pname, val);
7035 }
7036 
7039 {
7041 
7042  m.assign ("callback", octave_value (get_callback ()));
7043  m.assign ("position", octave_value (get_position ()));
7044  if (all)
7045  m.assign ("__object__", octave_value (get___object__ ()));
7046 
7047  return m;
7048 }
7049 
7052 {
7053  octave_value retval;
7054 
7055  const std::set<std::string>& pnames = all_property_names ();
7056 
7057  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7058 
7059  if (pname.compare ("callback"))
7060  retval = get_callback ();
7061  else if (pname.compare ("position"))
7062  retval = get_position ();
7063  else if (pname.compare ("__object__"))
7064  retval = get___object__ ();
7065  else
7066  retval = base_properties::get (pname);
7067 
7068  return retval;
7069 }
7070 
7071 property
7073 {
7074  const std::set<std::string>& pnames = all_property_names ();
7075 
7076  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7077 
7078  if (pname.compare ("callback"))
7079  return property (&m_callback, true);
7080  else if (pname.compare ("position"))
7081  return property (&m_position, true);
7082  else if (pname.compare ("__object__"))
7083  return property (&m___object__, true);
7084  else
7085  return base_properties::get_property (pname);
7086 }
7087 
7090 {
7092 
7093  m["callback"] = Matrix ();
7094  m["position"] = Matrix (1, 2, 0.0);
7095  m["__object__"] = Matrix ();
7096 
7097  return m;
7098 }
7099 
7100 std::string uicontextmenu::properties::s_go_name ("uicontextmenu");
7101 
7102 std::set<std::string>
7104 {
7105  static std::set<std::string> all_pnames;
7106 
7107  static bool initialized = false;
7108 
7109  if (! initialized)
7110  {
7111  all_pnames.insert ("callback");
7112  all_pnames.insert ("position");
7113  all_pnames.insert ("__object__");
7114 
7115  std::set<std::string> base_pnames = base_properties::core_property_names ();
7116  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7117 
7118  initialized = true;
7119  }
7120 
7121  return all_pnames;
7122 }
7123 
7124 bool
7126 {
7127  std::set<std::string> pnames = core_property_names ();
7128 
7129  return pnames.find (pname) != pnames.end ();
7130 }
7131 
7132 std::set<std::string>
7134 {
7135  static std::set<std::string> all_pnames;
7136 
7137  static bool initialized = false;
7138 
7139  if (! initialized)
7140  {
7141 
7142  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7143  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7144 
7145  initialized = true;
7146  }
7147 
7148  return all_pnames;
7149 }
7150 
7151 bool
7153 {
7154  std::set<std::string> pnames = readonly_property_names ();
7155 
7156  return pnames.find (pname) != pnames.end ();
7157 }
7158 
7159 std::set<std::string>
7161 {
7162  static std::set<std::string> all_pnames = core_property_names ();
7163 
7164  std::set<std::string> retval = all_pnames;
7165  std::set<std::string> base_props = base_properties::all_property_names ();
7166  retval.insert (base_props.begin (), base_props.end ());
7167 
7168  return retval;
7169 }
7170 
7171 bool
7173 {
7174  std::set<std::string> pnames = all_property_names ();
7175 
7176  return pnames.find (pname) != pnames.end ();
7177 }
7178 
7179 // ******** uicontrol ********
7180 
7182  : base_properties (s_go_name, mh, p),
7183  m_backgroundcolor ("backgroundcolor", mh, color_values (0.94, 0.94, 0.94)),
7184  m_callback ("callback", mh, Matrix ()),
7185  m_cdata ("cdata", mh, Matrix ()),
7186  m_clipping ("clipping", mh, "on"),
7187  m_enable ("enable", mh, "{on}|inactive|off"),
7188  m_extent ("extent", mh, Matrix (1, 4, 0.0)),
7189  m_fontangle ("fontangle", mh, "{normal}|italic"),
7190  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
7191  m_fontsize ("fontsize", mh, 10),
7192  m_fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
7193  m_fontweight ("fontweight", mh, "{normal}|bold"),
7194  m_foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
7195  m_horizontalalignment ("horizontalalignment", mh, "left|{center}|right"),
7196  m_keypressfcn ("keypressfcn", mh, Matrix ()),
7197  m_listboxtop ("listboxtop", mh, 1),
7198  m_max ("max", mh, 1),
7199  m_min ("min", mh, 0),
7200  m_position ("position", mh, default_control_position ()),
7201  m_sliderstep ("sliderstep", mh, default_control_sliderstep ()),
7202  m_string ("string", mh, ""),
7203  m_style ("style", mh, "{pushbutton}|togglebutton|radiobutton|checkbox|edit|text|slider|frame|listbox|popupmenu"),
7204  m_tooltipstring ("tooltipstring", mh, ""),
7205  m_units ("units", mh, "normalized|inches|centimeters|points|{pixels}|characters"),
7206  m_value ("value", mh, Matrix (1, 1, 0.0)),
7207  m_verticalalignment ("verticalalignment", mh, "top|{middle}|bottom"),
7208  m___focus__ ("__focus__", mh, "off"),
7209  m___object__ ("__object__", mh, Matrix ())
7210 {
7211  m_backgroundcolor.set_id (ID_BACKGROUNDCOLOR);
7212  m_callback.set_id (ID_CALLBACK);
7213  m_cdata.set_id (ID_CDATA);
7214  m_clipping.set_id (ID_CLIPPING);
7215  m_enable.set_id (ID_ENABLE);
7216  m_extent.set_id (ID_EXTENT);
7217  m_fontangle.set_id (ID_FONTANGLE);
7218  m_fontname.set_id (ID_FONTNAME);
7219  m_fontsize.set_id (ID_FONTSIZE);
7220  m_fontunits.set_id (ID_FONTUNITS);
7221  m_fontweight.set_id (ID_FONTWEIGHT);
7222  m_foregroundcolor.set_id (ID_FOREGROUNDCOLOR);
7223  m_horizontalalignment.set_id (ID_HORIZONTALALIGNMENT);
7224  m_keypressfcn.set_id (ID_KEYPRESSFCN);
7225  m_listboxtop.set_id (ID_LISTBOXTOP);
7226  m_max.set_id (ID_MAX);
7227  m_min.set_id (ID_MIN);
7228  m_position.set_id (ID_POSITION);
7229  m_sliderstep.set_id (ID_SLIDERSTEP);
7230  m_string.set_id (ID_STRING);
7231  m_style.set_id (ID_STYLE);
7232  m_tooltipstring.set_id (ID_TOOLTIPSTRING);
7233  m_units.set_id (ID_UNITS);
7234  m_value.set_id (ID_VALUE);
7235  m_verticalalignment.set_id (ID_VERTICALALIGNMENT);
7236  m___focus__.set_id (ID___FOCUS__);
7237  m___focus__.set_hidden (true);
7238  m___object__.set_id (ID___OBJECT__);
7239  m___object__.set_hidden (true);
7240  init ();
7241 }
7242 
7243 void
7245 {
7246  const std::set<std::string>& pnames = all_property_names ();
7247 
7248  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
7249 
7250  if (has_readonly_property (pname))
7251  {
7252  error ("set: \"%s\" is read-only", pname.c_str ());
7253  return;
7254  }
7255 
7256  if (pname.compare ("backgroundcolor"))
7257  set_backgroundcolor (val);
7258  else if (pname.compare ("callback"))
7259  set_callback (val);
7260  else if (pname.compare ("cdata"))
7261  set_cdata (val);
7262  else if (pname.compare ("clipping"))
7263  set_clipping (val);
7264  else if (pname.compare ("enable"))
7265  set_enable (val);
7266  else if (pname.compare ("fontangle"))
7267  set_fontangle (val);
7268  else if (pname.compare ("fontname"))
7269  set_fontname (val);
7270  else if (pname.compare ("fontsize"))
7271  set_fontsize (val);
7272  else if (pname.compare ("fontunits"))
7273  set_fontunits (val);
7274  else if (pname.compare ("fontweight"))
7275  set_fontweight (val);
7276  else if (pname.compare ("foregroundcolor"))
7277  set_foregroundcolor (val);
7278  else if (pname.compare ("horizontalalignment"))
7279  set_horizontalalignment (val);
7280  else if (pname.compare ("keypressfcn"))
7281  set_keypressfcn (val);
7282  else if (pname.compare ("listboxtop"))
7283  set_listboxtop (val);
7284  else if (pname.compare ("max"))
7285  set_max (val);
7286  else if (pname.compare ("min"))
7287  set_min (val);
7288  else if (pname.compare ("position"))
7289  set_position (val);
7290  else if (pname.compare ("sliderstep"))
7291  set_sliderstep (val);
7292  else if (pname.compare ("string"))
7293  set_string (val);
7294  else if (pname.compare ("style"))
7295  set_style (val);
7296  else if (pname.compare ("tooltipstring"))
7297  set_tooltipstring (val);
7298  else if (pname.compare ("units"))
7299  set_units (val);
7300  else if (pname.compare ("value"))
7301  set_value (val);
7302  else if (pname.compare ("verticalalignment"))
7303  set_verticalalignment (val);
7304  else if (pname.compare ("__focus__"))
7305  set___focus__ (val);
7306  else if (pname.compare ("__object__"))
7307  set___object__ (val);
7308  else
7309  base_properties::set (pname, val);
7310 }
7311 
7314 {
7316 
7317  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
7318  m.assign ("callback", octave_value (get_callback ()));
7319  m.assign ("cdata", octave_value (get_cdata ()));
7320  m.assign ("clipping", octave_value (get_clipping ()));
7321  m.assign ("enable", octave_value (get_enable ()));
7322  m.assign ("extent", octave_value (get_extent ()));
7323  m.assign ("fontangle", octave_value (get_fontangle ()));
7324  m.assign ("fontname", octave_value (get_fontname ()));
7325  m.assign ("fontsize", octave_value (get_fontsize ()));
7326  m.assign ("fontunits", octave_value (get_fontunits ()));
7327  m.assign ("fontweight", octave_value (get_fontweight ()));
7328  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
7329  m.assign ("horizontalalignment", octave_value (get_horizontalalignment ()));
7330  m.assign ("keypressfcn", octave_value (get_keypressfcn ()));
7331  m.assign ("listboxtop", octave_value (get_listboxtop ()));
7332  m.assign ("max", octave_value (get_max ()));
7333  m.assign ("min", octave_value (get_min ()));
7334  m.assign ("position", octave_value (get_position ()));
7335  m.assign ("sliderstep", octave_value (get_sliderstep ()));
7336  m.assign ("string", octave_value (get_string ()));
7337  m.assign ("style", octave_value (get_style ()));
7338  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
7339  m.assign ("units", octave_value (get_units ()));
7340  m.assign ("value", octave_value (get_value ()));
7341  m.assign ("verticalalignment", octave_value (get_verticalalignment ()));
7342  if (all)
7343  m.assign ("__focus__", octave_value (get___focus__ ()));
7344  if (all)
7345  m.assign ("__object__", octave_value (get___object__ ()));
7346 
7347  return m;
7348 }
7349 
7352 {
7353  octave_value retval;
7354 
7355  const std::set<std::string>& pnames = all_property_names ();
7356 
7357  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7358 
7359  if (pname.compare ("backgroundcolor"))
7360  retval = get_backgroundcolor ();
7361  else if (pname.compare ("callback"))
7362  retval = get_callback ();
7363  else if (pname.compare ("cdata"))
7364  retval = get_cdata ();
7365  else if (pname.compare ("clipping"))
7366  retval = get_clipping ();
7367  else if (pname.compare ("enable"))
7368  retval = get_enable ();
7369  else if (pname.compare ("extent"))
7370  retval = get_extent ();
7371  else if (pname.compare ("fontangle"))
7372  retval = get_fontangle ();
7373  else if (pname.compare ("fontname"))
7374  retval = get_fontname ();
7375  else if (pname.compare ("fontsize"))
7376  retval = get_fontsize ();
7377  else if (pname.compare ("fontunits"))
7378  retval = get_fontunits ();
7379  else if (pname.compare ("fontweight"))
7380  retval = get_fontweight ();
7381  else if (pname.compare ("foregroundcolor"))
7382  retval = get_foregroundcolor ();
7383  else if (pname.compare ("horizontalalignment"))
7384  retval = get_horizontalalignment ();
7385  else if (pname.compare ("keypressfcn"))
7386  retval = get_keypressfcn ();
7387  else if (pname.compare ("listboxtop"))
7388  retval = get_listboxtop ();
7389  else if (pname.compare ("max"))
7390  retval = get_max ();
7391  else if (pname.compare ("min"))
7392  retval = get_min ();
7393  else if (pname.compare ("position"))
7394  retval = get_position ();
7395  else if (pname.compare ("sliderstep"))
7396  retval = get_sliderstep ();
7397  else if (pname.compare ("string"))
7398  retval = get_string ();
7399  else if (pname.compare ("style"))
7400  retval = get_style ();
7401  else if (pname.compare ("tooltipstring"))
7402  retval = get_tooltipstring ();
7403  else if (pname.compare ("units"))
7404  retval = get_units ();
7405  else if (pname.compare ("value"))
7406  retval = get_value ();
7407  else if (pname.compare ("verticalalignment"))
7408  retval = get_verticalalignment ();
7409  else if (pname.compare ("__focus__"))
7410  retval = get___focus__ ();
7411  else if (pname.compare ("__object__"))
7412  retval = get___object__ ();
7413  else
7414  retval = base_properties::get (pname);
7415 
7416  return retval;
7417 }
7418 
7419 property
7421 {
7422  const std::set<std::string>& pnames = all_property_names ();
7423 
7424  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7425 
7426  if (pname.compare ("backgroundcolor"))
7427  return property (&m_backgroundcolor, true);
7428  else if (pname.compare ("callback"))
7429  return property (&m_callback, true);
7430  else if (pname.compare ("cdata"))
7431  return property (&m_cdata, true);
7432  else if (pname.compare ("clipping"))
7433  return property (&m_clipping, true);
7434  else if (pname.compare ("enable"))
7435  return property (&m_enable, true);
7436  else if (pname.compare ("extent"))
7437  return property (&m_extent, true);
7438  else if (pname.compare ("fontangle"))
7439  return property (&m_fontangle, true);
7440  else if (pname.compare ("fontname"))
7441  return property (&m_fontname, true);
7442  else if (pname.compare ("fontsize"))
7443  return property (&m_fontsize, true);
7444  else if (pname.compare ("fontunits"))
7445  return property (&m_fontunits, true);
7446  else if (pname.compare ("fontweight"))
7447  return property (&m_fontweight, true);
7448  else if (pname.compare ("foregroundcolor"))
7449  return property (&m_foregroundcolor, true);
7450  else if (pname.compare ("horizontalalignment"))
7451  return property (&m_horizontalalignment, true);
7452  else if (pname.compare ("keypressfcn"))
7453  return property (&m_keypressfcn, true);
7454  else if (pname.compare ("listboxtop"))
7455  return property (&m_listboxtop, true);
7456  else if (pname.compare ("max"))
7457  return property (&m_max, true);
7458  else if (pname.compare ("min"))
7459  return property (&m_min, true);
7460  else if (pname.compare ("position"))
7461  return property (&m_position, true);
7462  else if (pname.compare ("sliderstep"))
7463  return property (&m_sliderstep, true);
7464  else if (pname.compare ("string"))
7465  return property (&m_string, true);
7466  else if (pname.compare ("style"))
7467  return property (&m_style, true);
7468  else if (pname.compare ("tooltipstring"))
7469  return property (&m_tooltipstring, true);
7470  else if (pname.compare ("units"))
7471  return property (&m_units, true);
7472  else if (pname.compare ("value"))
7473  return property (&m_value, true);
7474  else if (pname.compare ("verticalalignment"))
7475  return property (&m_verticalalignment, true);
7476  else if (pname.compare ("__focus__"))
7477  return property (&m___focus__, true);
7478  else if (pname.compare ("__object__"))
7479  return property (&m___object__, true);
7480  else
7481  return base_properties::get_property (pname);
7482 }
7483 
7486 {
7488 
7489  m["backgroundcolor"] = color_values (0.94, 0.94, 0.94);
7490  m["callback"] = Matrix ();
7491  m["cdata"] = Matrix ();
7492  m["clipping"] = "on";
7493  m["enable"] = "on";
7494  m["extent"] = Matrix (1, 4, 0.0);
7495  m["fontangle"] = "normal";
7496  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
7497  m["fontsize"] = 10;
7498  m["fontunits"] = "points";
7499  m["fontweight"] = "normal";
7500  m["foregroundcolor"] = color_values (0, 0, 0);
7501  m["horizontalalignment"] = "center";
7502  m["keypressfcn"] = Matrix ();
7503  m["listboxtop"] = 1;
7504  m["max"] = 1;
7505  m["min"] = 0;
7506  m["position"] = default_control_position ();
7507  m["sliderstep"] = default_control_sliderstep ();
7508  m["string"] = "";
7509  m["style"] = "pushbutton";
7510  m["tooltipstring"] = "";
7511  m["units"] = "pixels";
7512  m["value"] = Matrix (1, 1, 0.0);
7513  m["verticalalignment"] = "middle";
7514  m["__focus__"] = "off";
7515  m["__object__"] = Matrix ();
7516 
7517  return m;
7518 }
7519 
7520 std::string uicontrol::properties::s_go_name ("uicontrol");
7521 
7522 std::set<std::string>
7524 {
7525  static std::set<std::string> all_pnames;
7526 
7527  static bool initialized = false;
7528 
7529  if (! initialized)
7530  {
7531  all_pnames.insert ("backgroundcolor");
7532  all_pnames.insert ("callback");
7533  all_pnames.insert ("cdata");
7534  all_pnames.insert ("clipping");
7535  all_pnames.insert ("enable");
7536  all_pnames.insert ("extent");
7537  all_pnames.insert ("fontangle");
7538  all_pnames.insert ("fontname");
7539  all_pnames.insert ("fontsize");
7540  all_pnames.insert ("fontunits");
7541  all_pnames.insert ("fontweight");
7542  all_pnames.insert ("foregroundcolor");
7543  all_pnames.insert ("horizontalalignment");
7544  all_pnames.insert ("keypressfcn");
7545  all_pnames.insert ("listboxtop");
7546  all_pnames.insert ("max");
7547  all_pnames.insert ("min");
7548  all_pnames.insert ("position");
7549  all_pnames.insert ("sliderstep");
7550  all_pnames.insert ("string");
7551  all_pnames.insert ("style");
7552  all_pnames.insert ("tooltipstring");
7553  all_pnames.insert ("units");
7554  all_pnames.insert ("value");
7555  all_pnames.insert ("verticalalignment");
7556  all_pnames.insert ("__focus__");
7557  all_pnames.insert ("__object__");
7558 
7559  std::set<std::string> base_pnames = base_properties::core_property_names ();
7560  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7561 
7562  initialized = true;
7563  }
7564 
7565  return all_pnames;
7566 }
7567 
7568 bool
7570 {
7571  std::set<std::string> pnames = core_property_names ();
7572 
7573  return pnames.find (pname) != pnames.end ();
7574 }
7575 
7576 std::set<std::string>
7578 {
7579  static std::set<std::string> all_pnames;
7580 
7581  static bool initialized = false;
7582 
7583  if (! initialized)
7584  {
7585  all_pnames.insert ("extent");
7586 
7587  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7588  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7589 
7590  initialized = true;
7591  }
7592 
7593  return all_pnames;
7594 }
7595 
7596 bool
7598 {
7599  std::set<std::string> pnames = readonly_property_names ();
7600 
7601  return pnames.find (pname) != pnames.end ();
7602 }
7603 
7604 std::set<std::string>
7606 {
7607  static std::set<std::string> all_pnames = core_property_names ();
7608 
7609  std::set<std::string> retval = all_pnames;
7610  std::set<std::string> base_props = base_properties::all_property_names ();
7611  retval.insert (base_props.begin (), base_props.end ());
7612 
7613  return retval;
7614 }
7615 
7616 bool
7618 {
7619  std::set<std::string> pnames = all_property_names ();
7620 
7621  return pnames.find (pname) != pnames.end ();
7622 }
7623 
7624 // ******** uibuttongroup ********
7625 
7627  : base_properties (s_go_name, mh, p),
7628  m_backgroundcolor ("backgroundcolor", mh, color_values (0.94, 0.94, 0.94)),
7629  m_bordertype ("bordertype", mh, "none|{etchedin}|etchedout|beveledin|beveledout|line"),
7630  m_borderwidth ("borderwidth", mh, 1),
7631  m_clipping ("clipping", mh, "on"),
7632  m_fontangle ("fontangle", mh, "{normal}|italic"),
7633  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
7634  m_fontsize ("fontsize", mh, 10),
7635  m_fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
7636  m_fontweight ("fontweight", mh, "{normal}|bold"),
7637  m_foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
7638  m_highlightcolor ("highlightcolor", mh, color_values (1, 1, 1)),
7639  m_position ("position", mh, default_panel_position ()),
7640  m_resizefcn ("resizefcn", mh, Matrix ()),
7641  m_selectedobject ("selectedobject", mh, graphics_handle ()),
7642  m_selectionchangedfcn ("selectionchangedfcn", mh, Matrix ()),
7643  m_shadowcolor ("shadowcolor", mh, color_values (0.7, 0.7, 0.7)),
7644  m_sizechangedfcn ("sizechangedfcn", mh, Matrix ()),
7645  m_units ("units", mh, "{normalized}|inches|centimeters|points|pixels|characters"),
7646  m_title ("title", mh, ""),
7647  m_titleposition ("titleposition", mh, "{lefttop}|centertop|righttop|leftbottom|centerbottom|rightbottom"),
7648  m___object__ ("__object__", mh, Matrix ())
7649 {
7650  m_backgroundcolor.set_id (ID_BACKGROUNDCOLOR);
7651  m_bordertype.set_id (ID_BORDERTYPE);
7652  m_borderwidth.set_id (ID_BORDERWIDTH);
7653  m_clipping.set_id (ID_CLIPPING);
7654  m_fontangle.set_id (ID_FONTANGLE);
7655  m_fontname.set_id (ID_FONTNAME);
7656  m_fontsize.set_id (ID_FONTSIZE);
7657  m_fontunits.set_id (ID_FONTUNITS);
7658  m_fontweight.set_id (ID_FONTWEIGHT);
7659  m_foregroundcolor.set_id (ID_FOREGROUNDCOLOR);
7660  m_highlightcolor.set_id (ID_HIGHLIGHTCOLOR);
7661  m_position.set_id (ID_POSITION);
7662  m_resizefcn.set_id (ID_RESIZEFCN);
7663  m_selectedobject.set_id (ID_SELECTEDOBJECT);
7664  m_selectionchangedfcn.set_id (ID_SELECTIONCHANGEDFCN);
7665  m_shadowcolor.set_id (ID_SHADOWCOLOR);
7666  m_sizechangedfcn.set_id (ID_SIZECHANGEDFCN);
7667  m_units.set_id (ID_UNITS);
7668  m_title.set_id (ID_TITLE);
7669  m_titleposition.set_id (ID_TITLEPOSITION);
7670  m___object__.set_id (ID___OBJECT__);
7671  m___object__.set_hidden (true);
7672  init ();
7673 }
7674 
7675 void
7677 {
7678  const std::set<std::string>& pnames = all_property_names ();
7679 
7680  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
7681 
7682  if (has_readonly_property (pname))
7683  {
7684  error ("set: \"%s\" is read-only", pname.c_str ());
7685  return;
7686  }
7687 
7688  if (pname.compare ("backgroundcolor"))
7689  set_backgroundcolor (val);
7690  else if (pname.compare ("bordertype"))
7691  set_bordertype (val);
7692  else if (pname.compare ("borderwidth"))
7693  set_borderwidth (val);
7694  else if (pname.compare ("clipping"))
7695  set_clipping (val);
7696  else if (pname.compare ("fontangle"))
7697  set_fontangle (val);
7698  else if (pname.compare ("fontname"))
7699  set_fontname (val);
7700  else if (pname.compare ("fontsize"))
7701  set_fontsize (val);
7702  else if (pname.compare ("fontunits"))
7703  set_fontunits (val);
7704  else if (pname.compare ("fontweight"))
7705  set_fontweight (val);
7706  else if (pname.compare ("foregroundcolor"))
7707  set_foregroundcolor (val);
7708  else if (pname.compare ("highlightcolor"))
7709  set_highlightcolor (val);
7710  else if (pname.compare ("position"))
7711  set_position (val);
7712  else if (pname.compare ("resizefcn"))
7713  set_resizefcn (val);
7714  else if (pname.compare ("selectedobject"))
7715  set_selectedobject (val);
7716  else if (pname.compare ("selectionchangedfcn"))
7717  set_selectionchangedfcn (val);
7718  else if (pname.compare ("shadowcolor"))
7719  set_shadowcolor (val);
7720  else if (pname.compare ("sizechangedfcn"))
7721  set_sizechangedfcn (val);
7722  else if (pname.compare ("units"))
7723  set_units (val);
7724  else if (pname.compare ("title"))
7725  set_title (val);
7726  else if (pname.compare ("titleposition"))
7727  set_titleposition (val);
7728  else if (pname.compare ("__object__"))
7729  set___object__ (val);
7730  else
7731  base_properties::set (pname, val);
7732 }
7733 
7736 {
7738 
7739  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
7740  m.assign ("bordertype", octave_value (get_bordertype ()));
7741  m.assign ("borderwidth", octave_value (get_borderwidth ()));
7742  m.assign ("clipping", octave_value (get_clipping ()));
7743  m.assign ("fontangle", octave_value (get_fontangle ()));
7744  m.assign ("fontname", octave_value (get_fontname ()));
7745  m.assign ("fontsize", octave_value (get_fontsize ()));
7746  m.assign ("fontunits", octave_value (get_fontunits ()));
7747  m.assign ("fontweight", octave_value (get_fontweight ()));
7748  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
7749  m.assign ("highlightcolor", octave_value (get_highlightcolor ()));
7750  m.assign ("position", octave_value (get_position ()));
7751  m.assign ("resizefcn", octave_value (get_resizefcn ()));
7752  m.assign ("selectedobject", octave_value (get_selectedobject ().as_octave_value ()));
7753  m.assign ("selectionchangedfcn", octave_value (get_selectionchangedfcn ()));
7754  m.assign ("shadowcolor", octave_value (get_shadowcolor ()));
7755  m.assign ("sizechangedfcn", octave_value (get_sizechangedfcn ()));
7756  m.assign ("units", octave_value (get_units ()));
7757  m.assign ("title", octave_value (get_title ()));
7758  m.assign ("titleposition", octave_value (get_titleposition ()));
7759  if (all)
7760  m.assign ("__object__", octave_value (get___object__ ()));
7761 
7762  return m;
7763 }
7764 
7767 {
7768  octave_value retval;
7769 
7770  const std::set<std::string>& pnames = all_property_names ();
7771 
7772  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7773 
7774  if (pname.compare ("backgroundcolor"))
7775  retval = get_backgroundcolor ();
7776  else if (pname.compare ("bordertype"))
7777  retval = get_bordertype ();
7778  else if (pname.compare ("borderwidth"))
7779  retval = get_borderwidth ();
7780  else if (pname.compare ("clipping"))
7781  retval = get_clipping ();
7782  else if (pname.compare ("fontangle"))
7783  retval = get_fontangle ();
7784  else if (pname.compare ("fontname"))
7785  retval = get_fontname ();
7786  else if (pname.compare ("fontsize"))
7787  retval = get_fontsize ();
7788  else if (pname.compare ("fontunits"))
7789  retval = get_fontunits ();
7790  else if (pname.compare ("fontweight"))
7791  retval = get_fontweight ();
7792  else if (pname.compare ("foregroundcolor"))
7793  retval = get_foregroundcolor ();
7794  else if (pname.compare ("highlightcolor"))
7795  retval = get_highlightcolor ();
7796  else if (pname.compare ("position"))
7797  retval = get_position ();
7798  else if (pname.compare ("resizefcn"))
7799  retval = get_resizefcn ();
7800  else if (pname.compare ("selectedobject"))
7801  retval = get_selectedobject ().as_octave_value ();
7802  else if (pname.compare ("selectionchangedfcn"))
7803  retval = get_selectionchangedfcn ();
7804  else if (pname.compare ("shadowcolor"))
7805  retval = get_shadowcolor ();
7806  else if (pname.compare ("sizechangedfcn"))
7807  retval = get_sizechangedfcn ();
7808  else if (pname.compare ("units"))
7809  retval = get_units ();
7810  else if (pname.compare ("title"))
7811  retval = get_title ();
7812  else if (pname.compare ("titleposition"))
7813  retval = get_titleposition ();
7814  else if (pname.compare ("__object__"))
7815  retval = get___object__ ();
7816  else
7817  retval = base_properties::get (pname);
7818 
7819  return retval;
7820 }
7821 
7822 property
7824 {
7825  const std::set<std::string>& pnames = all_property_names ();
7826 
7827  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
7828 
7829  if (pname.compare ("backgroundcolor"))
7830  return property (&m_backgroundcolor, true);
7831  else if (pname.compare ("bordertype"))
7832  return property (&m_bordertype, true);
7833  else if (pname.compare ("borderwidth"))
7834  return property (&m_borderwidth, true);
7835  else if (pname.compare ("clipping"))
7836  return property (&m_clipping, true);
7837  else if (pname.compare ("fontangle"))
7838  return property (&m_fontangle, true);
7839  else if (pname.compare ("fontname"))
7840  return property (&m_fontname, true);
7841  else if (pname.compare ("fontsize"))
7842  return property (&m_fontsize, true);
7843  else if (pname.compare ("fontunits"))
7844  return property (&m_fontunits, true);
7845  else if (pname.compare ("fontweight"))
7846  return property (&m_fontweight, true);
7847  else if (pname.compare ("foregroundcolor"))
7848  return property (&m_foregroundcolor, true);
7849  else if (pname.compare ("highlightcolor"))
7850  return property (&m_highlightcolor, true);
7851  else if (pname.compare ("position"))
7852  return property (&m_position, true);
7853  else if (pname.compare ("resizefcn"))
7854  return property (&m_resizefcn, true);
7855  else if (pname.compare ("selectedobject"))
7856  return property (&m_selectedobject, true);
7857  else if (pname.compare ("selectionchangedfcn"))
7858  return property (&m_selectionchangedfcn, true);
7859  else if (pname.compare ("shadowcolor"))
7860  return property (&m_shadowcolor, true);
7861  else if (pname.compare ("sizechangedfcn"))
7862  return property (&m_sizechangedfcn, true);
7863  else if (pname.compare ("units"))
7864  return property (&m_units, true);
7865  else if (pname.compare ("title"))
7866  return property (&m_title, true);
7867  else if (pname.compare ("titleposition"))
7868  return property (&m_titleposition, true);
7869  else if (pname.compare ("__object__"))
7870  return property (&m___object__, true);
7871  else
7872  return base_properties::get_property (pname);
7873 }
7874 
7877 {
7879 
7880  m["backgroundcolor"] = color_values (0.94, 0.94, 0.94);
7881  m["bordertype"] = "etchedin";
7882  m["borderwidth"] = 1;
7883  m["clipping"] = "on";
7884  m["fontangle"] = "normal";
7885  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
7886  m["fontsize"] = 10;
7887  m["fontunits"] = "points";
7888  m["fontweight"] = "normal";
7889  m["foregroundcolor"] = color_values (0, 0, 0);
7890  m["highlightcolor"] = color_values (1, 1, 1);
7891  m["position"] = default_panel_position ();
7892  m["resizefcn"] = Matrix ();
7893  m["selectedobject"] = graphics_handle ().as_octave_value ();
7894  m["selectionchangedfcn"] = Matrix ();
7895  m["shadowcolor"] = color_values (0.7, 0.7, 0.7);
7896  m["sizechangedfcn"] = Matrix ();
7897  m["units"] = "normalized";
7898  m["title"] = "";
7899  m["titleposition"] = "lefttop";
7900  m["__object__"] = Matrix ();
7901 
7902  return m;
7903 }
7904 
7905 std::string uibuttongroup::properties::s_go_name ("uibuttongroup");
7906 
7907 std::set<std::string>
7909 {
7910  static std::set<std::string> all_pnames;
7911 
7912  static bool initialized = false;
7913 
7914  if (! initialized)
7915  {
7916  all_pnames.insert ("backgroundcolor");
7917  all_pnames.insert ("bordertype");
7918  all_pnames.insert ("borderwidth");
7919  all_pnames.insert ("clipping");
7920  all_pnames.insert ("fontangle");
7921  all_pnames.insert ("fontname");
7922  all_pnames.insert ("fontsize");
7923  all_pnames.insert ("fontunits");
7924  all_pnames.insert ("fontweight");
7925  all_pnames.insert ("foregroundcolor");
7926  all_pnames.insert ("highlightcolor");
7927  all_pnames.insert ("position");
7928  all_pnames.insert ("resizefcn");
7929  all_pnames.insert ("selectedobject");
7930  all_pnames.insert ("selectionchangedfcn");
7931  all_pnames.insert ("shadowcolor");
7932  all_pnames.insert ("sizechangedfcn");
7933  all_pnames.insert ("units");
7934  all_pnames.insert ("title");
7935  all_pnames.insert ("titleposition");
7936  all_pnames.insert ("__object__");
7937 
7938  std::set<std::string> base_pnames = base_properties::core_property_names ();
7939  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7940 
7941  initialized = true;
7942  }
7943 
7944  return all_pnames;
7945 }
7946 
7947 bool
7949 {
7950  std::set<std::string> pnames = core_property_names ();
7951 
7952  return pnames.find (pname) != pnames.end ();
7953 }
7954 
7955 std::set<std::string>
7957 {
7958  static std::set<std::string> all_pnames;
7959 
7960  static bool initialized = false;
7961 
7962  if (! initialized)
7963  {
7964 
7965  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7966  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7967 
7968  initialized = true;
7969  }
7970 
7971  return all_pnames;
7972 }
7973 
7974 bool
7976 {
7977  std::set<std::string> pnames = readonly_property_names ();
7978 
7979  return pnames.find (pname) != pnames.end ();
7980 }
7981 
7982 std::set<std::string>
7984 {
7985  static std::set<std::string> all_pnames = core_property_names ();
7986 
7987  std::set<std::string> retval = all_pnames;
7988  std::set<std::string> base_props = base_properties::all_property_names ();
7989  retval.insert (base_props.begin (), base_props.end ());
7990 
7991  return retval;
7992 }
7993 
7994 bool
7996 {
7997  std::set<std::string> pnames = all_property_names ();
7998 
7999  return pnames.find (pname) != pnames.end ();
8000 }
8001 
8002 // ******** uipanel ********
8003 
8005  : base_properties (s_go_name, mh, p),
8006  m_backgroundcolor ("backgroundcolor", mh, color_values (0.94, 0.94, 0.94)),
8007  m_bordertype ("bordertype", mh, "none|{etchedin}|etchedout|beveledin|beveledout|line"),
8008  m_borderwidth ("borderwidth", mh, 1),
8009  m_fontangle ("fontangle", mh, "{normal}|italic"),
8010  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
8011  m_fontsize ("fontsize", mh, 10),
8012  m_fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
8013  m_fontweight ("fontweight", mh, "{normal}|bold"),
8014  m_foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
8015  m_highlightcolor ("highlightcolor", mh, color_values (1, 1, 1)),
8016  m_position ("position", mh, default_panel_position ()),
8017  m_resizefcn ("resizefcn", mh, Matrix ()),
8018  m_shadowcolor ("shadowcolor", mh, color_values (0.7, 0.7, 0.7)),
8019  m_sizechangedfcn ("sizechangedfcn", mh, Matrix ()),
8020  m_title ("title", mh, ""),
8021  m_titleposition ("titleposition", mh, "{lefttop}|centertop|righttop|leftbottom|centerbottom|rightbottom"),
8022  m_units ("units", mh, "{normalized}|inches|centimeters|points|pixels|characters"),
8023  m___object__ ("__object__", mh, Matrix ())
8024 {
8025  m_backgroundcolor.set_id (ID_BACKGROUNDCOLOR);
8026  m_bordertype.set_id (ID_BORDERTYPE);
8027  m_borderwidth.set_id (ID_BORDERWIDTH);
8028  m_fontangle.set_id (ID_FONTANGLE);
8029  m_fontname.set_id (ID_FONTNAME);
8030  m_fontsize.set_id (ID_FONTSIZE);
8031  m_fontunits.set_id (ID_FONTUNITS);
8032  m_fontweight.set_id (ID_FONTWEIGHT);
8033  m_foregroundcolor.set_id (ID_FOREGROUNDCOLOR);
8034  m_highlightcolor.set_id (ID_HIGHLIGHTCOLOR);
8035  m_position.set_id (ID_POSITION);
8036  m_resizefcn.set_id (ID_RESIZEFCN);
8037  m_shadowcolor.set_id (ID_SHADOWCOLOR);
8038  m_sizechangedfcn.set_id (ID_SIZECHANGEDFCN);
8039  m_title.set_id (ID_TITLE);
8040  m_titleposition.set_id (ID_TITLEPOSITION);
8041  m_units.set_id (ID_UNITS);
8042  m___object__.set_id (ID___OBJECT__);
8043  m___object__.set_hidden (true);
8044  init ();
8045 }
8046 
8047 void
8049 {
8050  const std::set<std::string>& pnames = all_property_names ();
8051 
8052  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
8053 
8054  if (has_readonly_property (pname))
8055  {
8056  error ("set: \"%s\" is read-only", pname.c_str ());
8057  return;
8058  }
8059 
8060  if (pname.compare ("backgroundcolor"))
8061  set_backgroundcolor (val);
8062  else if (pname.compare ("bordertype"))
8063  set_bordertype (val);
8064  else if (pname.compare ("borderwidth"))
8065  set_borderwidth (val);
8066  else if (pname.compare ("fontangle"))
8067  set_fontangle (val);
8068  else if (pname.compare ("fontname"))
8069  set_fontname (val);
8070  else if (pname.compare ("fontsize"))
8071  set_fontsize (val);
8072  else if (pname.compare ("fontunits"))
8073  set_fontunits (val);
8074  else if (pname.compare ("fontweight"))
8075  set_fontweight (val);
8076  else if (pname.compare ("foregroundcolor"))
8077  set_foregroundcolor (val);
8078  else if (pname.compare ("highlightcolor"))
8079  set_highlightcolor (val);
8080  else if (pname.compare ("position"))
8081  set_position (val);
8082  else if (pname.compare ("resizefcn"))
8083  set_resizefcn (val);
8084  else if (pname.compare ("shadowcolor"))
8085  set_shadowcolor (val);
8086  else if (pname.compare ("sizechangedfcn"))
8087  set_sizechangedfcn (val);
8088  else if (pname.compare ("title"))
8089  set_title (val);
8090  else if (pname.compare ("titleposition"))
8091  set_titleposition (val);
8092  else if (pname.compare ("units"))
8093  set_units (val);
8094  else if (pname.compare ("__object__"))
8095  set___object__ (val);
8096  else
8097  base_properties::set (pname, val);
8098 }
8099 
8102 {
8104 
8105  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
8106  m.assign ("bordertype", octave_value (get_bordertype ()));
8107  m.assign ("borderwidth", octave_value (get_borderwidth ()));
8108  m.assign ("fontangle", octave_value (get_fontangle ()));
8109  m.assign ("fontname", octave_value (get_fontname ()));
8110  m.assign ("fontsize", octave_value (get_fontsize ()));
8111  m.assign ("fontunits", octave_value (get_fontunits ()));
8112  m.assign ("fontweight", octave_value (get_fontweight ()));
8113  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
8114  m.assign ("highlightcolor", octave_value (get_highlightcolor ()));
8115  m.assign ("position", octave_value (get_position ()));
8116  m.assign ("resizefcn", octave_value (get_resizefcn ()));
8117  m.assign ("shadowcolor", octave_value (get_shadowcolor ()));
8118  m.assign ("sizechangedfcn", octave_value (get_sizechangedfcn ()));
8119  m.assign ("title", octave_value (get_title ()));
8120  m.assign ("titleposition", octave_value (get_titleposition ()));
8121  m.assign ("units", octave_value (get_units ()));
8122  if (all)
8123  m.assign ("__object__", octave_value (get___object__ ()));
8124 
8125  return m;
8126 }
8127 
8129 uipanel::properties::get (const caseless_str& pname_arg) const
8130 {
8131  octave_value retval;
8132 
8133  const std::set<std::string>& pnames = all_property_names ();
8134 
8135  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8136 
8137  if (pname.compare ("backgroundcolor"))
8138  retval = get_backgroundcolor ();
8139  else if (pname.compare ("bordertype"))
8140  retval = get_bordertype ();
8141  else if (pname.compare ("borderwidth"))
8142  retval = get_borderwidth ();
8143  else if (pname.compare ("fontangle"))
8144  retval = get_fontangle ();
8145  else if (pname.compare ("fontname"))
8146  retval = get_fontname ();
8147  else if (pname.compare ("fontsize"))
8148  retval = get_fontsize ();
8149  else if (pname.compare ("fontunits"))
8150  retval = get_fontunits ();
8151  else if (pname.compare ("fontweight"))
8152  retval = get_fontweight ();
8153  else if (pname.compare ("foregroundcolor"))
8154  retval = get_foregroundcolor ();
8155  else if (pname.compare ("highlightcolor"))
8156  retval = get_highlightcolor ();
8157  else if (pname.compare ("position"))
8158  retval = get_position ();
8159  else if (pname.compare ("resizefcn"))
8160  retval = get_resizefcn ();
8161  else if (pname.compare ("shadowcolor"))
8162  retval = get_shadowcolor ();
8163  else if (pname.compare ("sizechangedfcn"))
8164  retval = get_sizechangedfcn ();
8165  else if (pname.compare ("title"))
8166  retval = get_title ();
8167  else if (pname.compare ("titleposition"))
8168  retval = get_titleposition ();
8169  else if (pname.compare ("units"))
8170  retval = get_units ();
8171  else if (pname.compare ("__object__"))
8172  retval = get___object__ ();
8173  else
8174  retval = base_properties::get (pname);
8175 
8176  return retval;
8177 }
8178 
8179 property
8181 {
8182  const std::set<std::string>& pnames = all_property_names ();
8183 
8184  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8185 
8186  if (pname.compare ("backgroundcolor"))
8187  return property (&m_backgroundcolor, true);
8188  else if (pname.compare ("bordertype"))
8189  return property (&m_bordertype, true);
8190  else if (pname.compare ("borderwidth"))
8191  return property (&m_borderwidth, true);
8192  else if (pname.compare ("fontangle"))
8193  return property (&m_fontangle, true);
8194  else if (pname.compare ("fontname"))
8195  return property (&m_fontname, true);
8196  else if (pname.compare ("fontsize"))
8197  return property (&m_fontsize, true);
8198  else if (pname.compare ("fontunits"))
8199  return property (&m_fontunits, true);
8200  else if (pname.compare ("fontweight"))
8201  return property (&m_fontweight, true);
8202  else if (pname.compare ("foregroundcolor"))
8203  return property (&m_foregroundcolor, true);
8204  else if (pname.compare ("highlightcolor"))
8205  return property (&m_highlightcolor, true);
8206  else if (pname.compare ("position"))
8207  return property (&m_position, true);
8208  else if (pname.compare ("resizefcn"))
8209  return property (&m_resizefcn, true);
8210  else if (pname.compare ("shadowcolor"))
8211  return property (&m_shadowcolor, true);
8212  else if (pname.compare ("sizechangedfcn"))
8213  return property (&m_sizechangedfcn, true);
8214  else if (pname.compare ("title"))
8215  return property (&m_title, true);
8216  else if (pname.compare ("titleposition"))
8217  return property (&m_titleposition, true);
8218  else if (pname.compare ("units"))
8219  return property (&m_units, true);
8220  else if (pname.compare ("__object__"))
8221  return property (&m___object__, true);
8222  else
8223  return base_properties::get_property (pname);
8224 }
8225 
8228 {
8230 
8231  m["backgroundcolor"] = color_values (0.94, 0.94, 0.94);
8232  m["bordertype"] = "etchedin";
8233  m["borderwidth"] = 1;
8234  m["fontangle"] = "normal";
8235  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
8236  m["fontsize"] = 10;
8237  m["fontunits"] = "points";
8238  m["fontweight"] = "normal";
8239  m["foregroundcolor"] = color_values (0, 0, 0);
8240  m["highlightcolor"] = color_values (1, 1, 1);
8241  m["position"] = default_panel_position ();
8242  m["resizefcn"] = Matrix ();
8243  m["shadowcolor"] = color_values (0.7, 0.7, 0.7);
8244  m["sizechangedfcn"] = Matrix ();
8245  m["title"] = "";
8246  m["titleposition"] = "lefttop";
8247  m["units"] = "normalized";
8248  m["__object__"] = Matrix ();
8249 
8250  return m;
8251 }
8252 
8253 std::string uipanel::properties::s_go_name ("uipanel");
8254 
8255 std::set<std::string>
8257 {
8258  static std::set<std::string> all_pnames;
8259 
8260  static bool initialized = false;
8261 
8262  if (! initialized)
8263  {
8264  all_pnames.insert ("backgroundcolor");
8265  all_pnames.insert ("bordertype");
8266  all_pnames.insert ("borderwidth");
8267  all_pnames.insert ("fontangle");
8268  all_pnames.insert ("fontname");
8269  all_pnames.insert ("fontsize");
8270  all_pnames.insert ("fontunits");
8271  all_pnames.insert ("fontweight");
8272  all_pnames.insert ("foregroundcolor");
8273  all_pnames.insert ("highlightcolor");
8274  all_pnames.insert ("position");
8275  all_pnames.insert ("resizefcn");
8276  all_pnames.insert ("shadowcolor");
8277  all_pnames.insert ("sizechangedfcn");
8278  all_pnames.insert ("title");
8279  all_pnames.insert ("titleposition");
8280  all_pnames.insert ("units");
8281  all_pnames.insert ("__object__");
8282 
8283  std::set<std::string> base_pnames = base_properties::core_property_names ();
8284  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8285 
8286  initialized = true;
8287  }
8288 
8289  return all_pnames;
8290 }
8291 
8292 bool
8294 {
8295  std::set<std::string> pnames = core_property_names ();
8296 
8297  return pnames.find (pname) != pnames.end ();
8298 }
8299 
8300 std::set<std::string>
8302 {
8303  static std::set<std::string> all_pnames;
8304 
8305  static bool initialized = false;
8306 
8307  if (! initialized)
8308  {
8309 
8310  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
8311  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8312 
8313  initialized = true;
8314  }
8315 
8316  return all_pnames;
8317 }
8318 
8319 bool
8321 {
8322  std::set<std::string> pnames = readonly_property_names ();
8323 
8324  return pnames.find (pname) != pnames.end ();
8325 }
8326 
8327 std::set<std::string>
8329 {
8330  static std::set<std::string> all_pnames = core_property_names ();
8331 
8332  std::set<std::string> retval = all_pnames;
8333  std::set<std::string> base_props = base_properties::all_property_names ();
8334  retval.insert (base_props.begin (), base_props.end ());
8335 
8336  return retval;
8337 }
8338 
8339 bool
8341 {
8342  std::set<std::string> pnames = all_property_names ();
8343 
8344  return pnames.find (pname) != pnames.end ();
8345 }
8346 
8347 // ******** uitable ********
8348 
8350  : base_properties (s_go_name, mh, p),
8351  m___object__ ("__object__", mh, Matrix ()),
8352  m_backgroundcolor ("backgroundcolor", mh, default_table_backgroundcolor ()),
8353  m_celleditcallback ("celleditcallback", mh, Matrix ()),
8354  m_cellselectioncallback ("cellselectioncallback", mh, Matrix ()),
8355  m_columneditable ("columneditable", mh, Matrix ()),
8356  m_columnformat ("columnformat", mh, Cell ()),
8357  m_columnname ("columnname", mh, "numbered"),
8358  m_columnwidth ("columnwidth", mh, "auto"),
8359  m_data ("data", mh, Matrix ()),
8360  m_enable ("enable", mh, "on"),
8361  m_extent ("extent", mh, Matrix (1, 4, 0.0)),
8362  m_fontangle ("fontangle", mh, "{normal}|italic"),
8363  m_fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
8364  m_fontsize ("fontsize", mh, 10),
8365  m_fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
8366  m_fontweight ("fontweight", mh, "{normal}|bold"),
8367  m_foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
8368  m_keypressfcn ("keypressfcn", mh, Matrix ()),
8369  m_keyreleasefcn ("keyreleasefcn", mh, Matrix ()),
8370  m_position ("position", mh, default_table_position ()),
8371  m_rearrangeablecolumns ("rearrangeablecolumns", mh, "off"),
8372  m_rowname ("rowname", mh, "numbered"),
8373  m_rowstriping ("rowstriping", mh, "on"),
8374  m_tooltipstring ("tooltipstring", mh, ""),
8375  m_units ("units", mh, "normalized|inches|centimeters|points|{pixels}|characters")
8376 {
8377  m___object__.set_id (ID___OBJECT__);
8378  m___object__.set_hidden (true);
8379  m_backgroundcolor.set_id (ID_BACKGROUNDCOLOR);
8380  m_celleditcallback.set_id (ID_CELLEDITCALLBACK);
8381  m_cellselectioncallback.set_id (ID_CELLSELECTIONCALLBACK);
8382  m_columneditable.set_id (ID_COLUMNEDITABLE);
8383  m_columnformat.set_id (ID_COLUMNFORMAT);
8384  m_columnname.set_id (ID_COLUMNNAME);
8385  m_columnwidth.set_id (ID_COLUMNWIDTH);
8386  m_data.set_id (ID_DATA);
8387  m_enable.set_id (ID_ENABLE);
8388  m_extent.set_id (ID_EXTENT);
8389  m_fontangle.set_id (ID_FONTANGLE);
8390  m_fontname.set_id (ID_FONTNAME);
8391  m_fontsize.set_id (ID_FONTSIZE);
8392  m_fontunits.set_id (ID_FONTUNITS);
8393  m_fontweight.set_id (ID_FONTWEIGHT);
8394  m_foregroundcolor.set_id (ID_FOREGROUNDCOLOR);
8395  m_keypressfcn.set_id (ID_KEYPRESSFCN);
8396  m_keyreleasefcn.set_id (ID_KEYRELEASEFCN);
8397  m_position.set_id (ID_POSITION);
8398  m_rearrangeablecolumns.set_id (ID_REARRANGEABLECOLUMNS);
8399  m_rowname.set_id (ID_ROWNAME);
8400  m_rowstriping.set_id (ID_ROWSTRIPING);
8401  m_tooltipstring.set_id (ID_TOOLTIPSTRING);
8402  m_units.set_id (ID_UNITS);
8403  init ();
8404 }
8405 
8406 void
8408 {
8409  const std::set<std::string>& pnames = all_property_names ();
8410 
8411  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
8412 
8413  if (has_readonly_property (pname))
8414  {
8415  error ("set: \"%s\" is read-only", pname.c_str ());
8416  return;
8417  }
8418 
8419  if (pname.compare ("__object__"))
8420  set___object__ (val);
8421  else if (pname.compare ("backgroundcolor"))
8422  set_backgroundcolor (val);
8423  else if (pname.compare ("celleditcallback"))
8424  set_celleditcallback (val);
8425  else if (pname.compare ("cellselectioncallback"))
8426  set_cellselectioncallback (val);
8427  else if (pname.compare ("columneditable"))
8428  set_columneditable (val);
8429  else if (pname.compare ("columnformat"))
8430  set_columnformat (val);
8431  else if (pname.compare ("columnname"))
8432  set_columnname (val);
8433  else if (pname.compare ("columnwidth"))
8434  set_columnwidth (val);
8435  else if (pname.compare ("data"))
8436  set_data (val);
8437  else if (pname.compare ("enable"))
8438  set_enable (val);
8439  else if (pname.compare ("fontangle"))
8440  set_fontangle (val);
8441  else if (pname.compare ("fontname"))
8442  set_fontname (val);
8443  else if (pname.compare ("fontsize"))
8444  set_fontsize (val);
8445  else if (pname.compare ("fontunits"))
8446  set_fontunits (val);
8447  else if (pname.compare ("fontweight"))
8448  set_fontweight (val);
8449  else if (pname.compare ("foregroundcolor"))
8450  set_foregroundcolor (val);
8451  else if (pname.compare ("keypressfcn"))
8452  set_keypressfcn (val);
8453  else if (pname.compare ("keyreleasefcn"))
8454  set_keyreleasefcn (val);
8455  else if (pname.compare ("position"))
8456  set_position (val);
8457  else if (pname.compare ("rearrangeablecolumns"))
8458  set_rearrangeablecolumns (val);
8459  else if (pname.compare ("rowname"))
8460  set_rowname (val);
8461  else if (pname.compare ("rowstriping"))
8462  set_rowstriping (val);
8463  else if (pname.compare ("tooltipstring"))
8464  set_tooltipstring (val);
8465  else if (pname.compare ("units"))
8466  set_units (val);
8467  else
8468  base_properties::set (pname, val);
8469 }
8470 
8473 {
8475 
8476  if (all)
8477  m.assign ("__object__", octave_value (get___object__ ()));
8478  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
8479  m.assign ("celleditcallback", octave_value (get_celleditcallback ()));
8480  m.assign ("cellselectioncallback", octave_value (get_cellselectioncallback ()));
8481  m.assign ("columneditable", octave_value (get_columneditable ()));
8482  m.assign ("columnformat", octave_value (get_columnformat ()));
8483  m.assign ("columnname", octave_value (get_columnname ()));
8484  m.assign ("columnwidth", octave_value (get_columnwidth ()));
8485  m.assign ("data", octave_value (get_data ()));
8486  m.assign ("enable", octave_value (get_enable ()));
8487  m.assign ("extent", octave_value (get_extent ()));
8488  m.assign ("fontangle", octave_value (get_fontangle ()));
8489  m.assign ("fontname", octave_value (get_fontname ()));
8490  m.assign ("fontsize", octave_value (get_fontsize ()));
8491  m.assign ("fontunits", octave_value (get_fontunits ()));
8492  m.assign ("fontweight", octave_value (get_fontweight ()));
8493  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
8494  m.assign ("keypressfcn", octave_value (get_keypressfcn ()));
8495  m.assign ("keyreleasefcn", octave_value (get_keyreleasefcn ()));
8496  m.assign ("position", octave_value (get_position ()));
8497  m.assign ("rearrangeablecolumns", octave_value (get_rearrangeablecolumns ()));
8498  m.assign ("rowname", octave_value (get_rowname ()));
8499  m.assign ("rowstriping", octave_value (get_rowstriping ()));
8500  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
8501  m.assign ("units", octave_value (get_units ()));
8502 
8503  return m;
8504 }
8505 
8507 uitable::properties::get (const caseless_str& pname_arg) const
8508 {
8509  octave_value retval;
8510 
8511  const std::set<std::string>& pnames = all_property_names ();
8512 
8513  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8514 
8515  if (pname.compare ("__object__"))
8516  retval = get___object__ ();
8517  else if (pname.compare ("backgroundcolor"))
8518  retval = get_backgroundcolor ();
8519  else if (pname.compare ("celleditcallback"))
8520  retval = get_celleditcallback ();
8521  else if (pname.compare ("cellselectioncallback"))
8522  retval = get_cellselectioncallback ();
8523  else if (pname.compare ("columneditable"))
8524  retval = get_columneditable ();
8525  else if (pname.compare ("columnformat"))
8526  retval = get_columnformat ();
8527  else if (pname.compare ("columnname"))
8528  retval = get_columnname ();
8529  else if (pname.compare ("columnwidth"))
8530  retval = get_columnwidth ();
8531  else if (pname.compare ("data"))
8532  retval = get_data ();
8533  else if (pname.compare ("enable"))
8534  retval = get_enable ();
8535  else if (pname.compare ("extent"))
8536  retval = get_extent ();
8537  else if (pname.compare ("fontangle"))
8538  retval = get_fontangle ();
8539  else if (pname.compare ("fontname"))
8540  retval = get_fontname ();
8541  else if (pname.compare ("fontsize"))
8542  retval = get_fontsize ();
8543  else if (pname.compare ("fontunits"))
8544  retval = get_fontunits ();
8545  else if (pname.compare ("fontweight"))
8546  retval = get_fontweight ();
8547  else if (pname.compare ("foregroundcolor"))
8548  retval = get_foregroundcolor ();
8549  else if (pname.compare ("keypressfcn"))
8550  retval = get_keypressfcn ();
8551  else if (pname.compare ("keyreleasefcn"))
8552  retval = get_keyreleasefcn ();
8553  else if (pname.compare ("position"))
8554  retval = get_position ();
8555  else if (pname.compare ("rearrangeablecolumns"))
8556  retval = get_rearrangeablecolumns ();
8557  else if (pname.compare ("rowname"))
8558  retval = get_rowname ();
8559  else if (pname.compare ("rowstriping"))
8560  retval = get_rowstriping ();
8561  else if (pname.compare ("tooltipstring"))
8562  retval = get_tooltipstring ();
8563  else if (pname.compare ("units"))
8564  retval = get_units ();
8565  else
8566  retval = base_properties::get (pname);
8567 
8568  return retval;
8569 }
8570 
8571 property
8573 {
8574  const std::set<std::string>& pnames = all_property_names ();
8575 
8576  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8577 
8578  if (pname.compare ("__object__"))
8579  return property (&m___object__, true);
8580  else if (pname.compare ("backgroundcolor"))
8581  return property (&m_backgroundcolor, true);
8582  else if (pname.compare ("celleditcallback"))
8583  return property (&m_celleditcallback, true);
8584  else if (pname.compare ("cellselectioncallback"))
8585  return property (&m_cellselectioncallback, true);
8586  else if (pname.compare ("columneditable"))
8587  return property (&m_columneditable, true);
8588  else if (pname.compare ("columnformat"))
8589  return property (&m_columnformat, true);
8590  else if (pname.compare ("columnname"))
8591  return property (&m_columnname, true);
8592  else if (pname.compare ("columnwidth"))
8593  return property (&m_columnwidth, true);
8594  else if (pname.compare ("data"))
8595  return property (&m_data, true);
8596  else if (pname.compare ("enable"))
8597  return property (&m_enable, true);
8598  else if (pname.compare ("extent"))
8599  return property (&m_extent, true);
8600  else if (pname.compare ("fontangle"))
8601  return property (&m_fontangle, true);
8602  else if (pname.compare ("fontname"))
8603  return property (&m_fontname, true);
8604  else if (pname.compare ("fontsize"))
8605  return property (&m_fontsize, true);
8606  else if (pname.compare ("fontunits"))
8607  return property (&m_fontunits, true);
8608  else if (pname.compare ("fontweight"))
8609  return property (&m_fontweight, true);
8610  else if (pname.compare ("foregroundcolor"))
8611  return property (&m_foregroundcolor, true);
8612  else if (pname.compare ("keypressfcn"))
8613  return property (&m_keypressfcn, true);
8614  else if (pname.compare ("keyreleasefcn"))
8615  return property (&m_keyreleasefcn, true);
8616  else if (pname.compare ("position"))
8617  return property (&m_position, true);
8618  else if (pname.compare ("rearrangeablecolumns"))
8619  return property (&m_rearrangeablecolumns, true);
8620  else if (pname.compare ("rowname"))
8621  return property (&m_rowname, true);
8622  else if (pname.compare ("rowstriping"))
8623  return property (&m_rowstriping, true);
8624  else if (pname.compare ("tooltipstring"))
8625  return property (&m_tooltipstring, true);
8626  else if (pname.compare ("units"))
8627  return property (&m_units, true);
8628  else
8629  return base_properties::get_property (pname);
8630 }
8631 
8634 {
8636 
8637  m["__object__"] = Matrix ();
8638  m["backgroundcolor"] = default_table_backgroundcolor ();
8639  m["celleditcallback"] = Matrix ();
8640  m["cellselectioncallback"] = Matrix ();
8641  m["columneditable"] = Matrix ();
8642  m["columnformat"] = Cell ();
8643  m["columnname"] = "numbered";
8644  m["columnwidth"] = "auto";
8645  m["data"] = Matrix ();
8646  m["enable"] = "on";
8647  m["extent"] = Matrix (1, 4, 0.0);
8648  m["fontangle"] = "normal";
8649  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
8650  m["fontsize"] = 10;
8651  m["fontunits"] = "points";
8652  m["fontweight"] = "normal";
8653  m["foregroundcolor"] = color_values (0, 0, 0);
8654  m["keypressfcn"] = Matrix ();
8655  m["keyreleasefcn"] = Matrix ();
8656  m["position"] = default_table_position ();
8657  m["rearrangeablecolumns"] = "off";
8658  m["rowname"] = "numbered";
8659  m["rowstriping"] = "on";
8660  m["tooltipstring"] = "";
8661  m["units"] = "pixels";
8662 
8663  return m;
8664 }
8665 
8666 std::string uitable::properties::s_go_name ("uitable");
8667 
8668 std::set<std::string>
8670 {
8671  static std::set<std::string> all_pnames;
8672 
8673  static bool initialized = false;
8674 
8675  if (! initialized)
8676  {
8677  all_pnames.insert ("__object__");
8678  all_pnames.insert ("backgroundcolor");
8679  all_pnames.insert ("celleditcallback");
8680  all_pnames.insert ("cellselectioncallback");
8681  all_pnames.insert ("columneditable");
8682  all_pnames.insert ("columnformat");
8683  all_pnames.insert ("columnname");
8684  all_pnames.insert ("columnwidth");
8685  all_pnames.insert ("data");
8686  all_pnames.insert ("enable");
8687  all_pnames.insert ("extent");
8688  all_pnames.insert ("fontangle");
8689  all_pnames.insert ("fontname");
8690  all_pnames.insert ("fontsize");
8691  all_pnames.insert ("fontunits");
8692  all_pnames.insert ("fontweight");
8693  all_pnames.insert ("foregroundcolor");
8694  all_pnames.insert ("keypressfcn");
8695  all_pnames.insert ("keyreleasefcn");
8696  all_pnames.insert ("position");
8697  all_pnames.insert ("rearrangeablecolumns");
8698  all_pnames.insert ("rowname");
8699  all_pnames.insert ("rowstriping");
8700  all_pnames.insert ("tooltipstring");
8701  all_pnames.insert ("units");
8702 
8703  std::set<std::string> base_pnames = base_properties::core_property_names ();
8704  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8705 
8706  initialized = true;
8707  }
8708 
8709  return all_pnames;
8710 }
8711 
8712 bool
8714 {
8715  std::set<std::string> pnames = core_property_names ();
8716 
8717  return pnames.find (pname) != pnames.end ();
8718 }
8719 
8720 std::set<std::string>
8722 {
8723  static std::set<std::string> all_pnames;
8724 
8725  static bool initialized = false;
8726 
8727  if (! initialized)
8728  {
8729  all_pnames.insert ("extent");
8730 
8731  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
8732  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8733 
8734  initialized = true;
8735  }
8736 
8737  return all_pnames;
8738 }
8739 
8740 bool
8742 {
8743  std::set<std::string> pnames = readonly_property_names ();
8744 
8745  return pnames.find (pname) != pnames.end ();
8746 }
8747 
8748 std::set<std::string>
8750 {
8751  static std::set<std::string> all_pnames = core_property_names ();
8752 
8753  std::set<std::string> retval = all_pnames;
8754  std::set<std::string> base_props = base_properties::all_property_names ();
8755  retval.insert (base_props.begin (), base_props.end ());
8756 
8757  return retval;
8758 }
8759 
8760 bool
8762 {
8763  std::set<std::string> pnames = all_property_names ();
8764 
8765  return pnames.find (pname) != pnames.end ();
8766 }
8767 
8768 // ******** uitoolbar ********
8769 
8771  : base_properties (s_go_name, mh, p),
8772  m___object__ ("__object__", mh, Matrix ())
8773 {
8774  m___object__.set_id (ID___OBJECT__);
8775  m___object__.set_hidden (true);
8776  init ();
8777 }
8778 
8779 void
8781 {
8782  const std::set<std::string>& pnames = all_property_names ();
8783 
8784  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
8785 
8786  if (has_readonly_property (pname))
8787  {
8788  error ("set: \"%s\" is read-only", pname.c_str ());
8789  return;
8790  }
8791 
8792  if (pname.compare ("__object__"))
8793  set___object__ (val);
8794  else
8795  base_properties::set (pname, val);
8796 }
8797 
8800 {
8802 
8803  if (all)
8804  m.assign ("__object__", octave_value (get___object__ ()));
8805 
8806  return m;
8807 }
8808 
8811 {
8812  octave_value retval;
8813 
8814  const std::set<std::string>& pnames = all_property_names ();
8815 
8816  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8817 
8818  if (pname.compare ("__object__"))
8819  retval = get___object__ ();
8820  else
8821  retval = base_properties::get (pname);
8822 
8823  return retval;
8824 }
8825 
8826 property
8828 {
8829  const std::set<std::string>& pnames = all_property_names ();
8830 
8831  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
8832 
8833  if (pname.compare ("__object__"))
8834  return property (&m___object__, true);
8835  else
8836  return base_properties::get_property (pname);
8837 }
8838 
8841 {
8843 
8844  m["__object__"] = Matrix ();
8845 
8846  return m;
8847 }
8848 
8849 std::string uitoolbar::properties::s_go_name ("uitoolbar");
8850 
8851 std::set<std::string>
8853 {
8854  static std::set<std::string> all_pnames;
8855 
8856  static bool initialized = false;
8857 
8858  if (! initialized)
8859  {
8860  all_pnames.insert ("__object__");
8861 
8862  std::set<std::string> base_pnames = base_properties::core_property_names ();
8863  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8864 
8865  initialized = true;
8866  }
8867 
8868  return all_pnames;
8869 }
8870 
8871 bool
8873 {
8874  std::set<std::string> pnames = core_property_names ();
8875 
8876  return pnames.find (pname) != pnames.end ();
8877 }
8878 
8879 std::set<std::string>
8881 {
8882  static std::set<std::string> all_pnames;
8883 
8884  static bool initialized = false;
8885 
8886  if (! initialized)
8887  {
8888 
8889  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
8890  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
8891 
8892  initialized = true;
8893  }
8894 
8895  return all_pnames;
8896 }
8897 
8898 bool
8900 {
8901  std::set<std::string> pnames = readonly_property_names ();
8902 
8903  return pnames.find (pname) != pnames.end ();
8904 }
8905 
8906 std::set<std::string>
8908 {
8909  static std::set<std::string> all_pnames = core_property_names ();
8910 
8911  std::set<std::string> retval = all_pnames;
8912  std::set<std::string> base_props = base_properties::all_property_names ();
8913  retval.insert (base_props.begin (), base_props.end ());
8914 
8915  return retval;
8916 }
8917 
8918 bool
8920 {
8921  std::set<std::string> pnames = all_property_names ();
8922 
8923  return pnames.find (pname) != pnames.end ();
8924 }
8925 
8926 // ******** uipushtool ********
8927 
8929  : base_properties (s_go_name, mh, p),
8930  m_cdata ("cdata", mh, Matrix ()),
8931  m_clickedcallback ("clickedcallback", mh, Matrix ()),
8932  m_enable ("enable", mh, "on"),
8933  m_separator ("separator", mh, "off"),
8934  m_tooltipstring ("tooltipstring", mh, ""),
8935  m___named_icon__ ("__named_icon__", mh, ""),
8936  m___object__ ("__object__", mh, Matrix ())
8937 {
8938  m_cdata.set_id (ID_CDATA);
8939  m_clickedcallback.set_id (ID_CLICKEDCALLBACK);
8940  m_enable.set_id (ID_ENABLE);
8941  m_separator.set_id (ID_SEPARATOR);
8942  m_tooltipstring.set_id (ID_TOOLTIPSTRING);
8943  m___named_icon__.set_id (ID___NAMED_ICON__);
8944  m___object__.set_id (ID___OBJECT__);
8945  m___object__.set_hidden (true);
8946  init ();
8947 }
8948 
8949 void
8951 {
8952  const std::set<std::string>& pnames = all_property_names ();
8953 
8954  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
8955 
8956  if (has_readonly_property (pname))
8957  {
8958  error ("set: \"%s\" is read-only", pname.c_str ());
8959  return;
8960  }
8961 
8962  if (pname.compare ("cdata"))
8963  set_cdata (val);
8964  else if (pname.compare ("clickedcallback"))
8965  set_clickedcallback (val);
8966  else if (pname.compare ("enable"))
8967  set_enable (val);
8968  else if (pname.compare ("separator"))
8969  set_separator (val);
8970  else if (pname.compare ("tooltipstring"))
8971  set_tooltipstring (val);
8972  else if (pname.compare ("__named_icon__"))
8973  set___named_icon__ (val);
8974  else if (pname.compare ("__object__"))
8975  set___object__ (val);
8976  else
8977  base_properties::set (pname, val);
8978 }
8979 
8982 {
8984 
8985  m.assign ("cdata", octave_value (get_cdata ()));
8986  m.assign ("clickedcallback", octave_value (get_clickedcallback ()));
8987  m.assign ("enable", octave_value (get_enable ()));
8988  m.assign ("separator", octave_value (get_separator ()));
8989  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
8990  m.assign ("__named_icon__", octave_value (get___named_icon__ ()));
8991  if (all)
8992  m.assign ("__object__", octave_value (get___object__ ()));
8993 
8994  return m;
8995 }
8996 
8999 {
9000  octave_value retval;
9001 
9002  const std::set<std::string>& pnames = all_property_names ();
9003 
9004  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
9005 
9006  if (pname.compare ("cdata"))
9007  retval = get_cdata ();
9008  else if (pname.compare ("clickedcallback"))
9009  retval = get_clickedcallback ();
9010  else if (pname.compare ("enable"))
9011  retval = get_enable ();
9012  else if (pname.compare ("separator"))
9013  retval = get_separator ();
9014  else if (pname.compare ("tooltipstring"))
9015  retval = get_tooltipstring ();
9016  else if (pname.compare ("__named_icon__"))
9017  retval = get___named_icon__ ();
9018  else if (pname.compare ("__object__"))
9019  retval = get___object__ ();
9020  else
9021  retval = base_properties::get (pname);
9022 
9023  return retval;
9024 }
9025 
9026 property
9028 {
9029  const std::set<std::string>& pnames = all_property_names ();
9030 
9031  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
9032 
9033  if (pname.compare ("cdata"))
9034  return property (&m_cdata, true);
9035  else if (pname.compare ("clickedcallback"))
9036  return property (&m_clickedcallback, true);
9037  else if (pname.compare ("enable"))
9038  return property (&m_enable, true);
9039  else if (pname.compare ("separator"))
9040  return property (&m_separator, true);
9041  else if (pname.compare ("tooltipstring"))
9042  return property (&m_tooltipstring, true);
9043  else if (pname.compare ("__named_icon__"))
9044  return property (&m___named_icon__, true);
9045  else if (pname.compare ("__object__"))
9046  return property (&m___object__, true);
9047  else
9048  return base_properties::get_property (pname);
9049 }
9050 
9053 {
9055 
9056  m["cdata"] = Matrix ();
9057  m["clickedcallback"] = Matrix ();
9058  m["enable"] = "on";
9059  m["separator"] = "off";
9060  m["tooltipstring"] = "";
9061  m["__named_icon__"] = "";
9062  m["__object__"] = Matrix ();
9063 
9064  return m;
9065 }
9066 
9067 std::string uipushtool::properties::s_go_name ("uipushtool");
9068 
9069 std::set<std::string>
9071 {
9072  static std::set<std::string> all_pnames;
9073 
9074  static bool initialized = false;
9075 
9076  if (! initialized)
9077  {
9078  all_pnames.insert ("cdata");
9079  all_pnames.insert ("clickedcallback");
9080  all_pnames.insert ("enable");
9081  all_pnames.insert ("separator");
9082  all_pnames.insert ("tooltipstring");
9083  all_pnames.insert ("__named_icon__");
9084  all_pnames.insert ("__object__");
9085 
9086  std::set<std::string> base_pnames = base_properties::core_property_names ();
9087  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
9088 
9089  initialized = true;
9090  }
9091 
9092  return all_pnames;
9093 }
9094 
9095 bool
9097 {
9098  std::set<std::string> pnames = core_property_names ();
9099 
9100  return pnames.find (pname) != pnames.end ();
9101 }
9102 
9103 std::set<std::string>
9105 {
9106  static std::set<std::string> all_pnames;
9107 
9108  static bool initialized = false;
9109 
9110  if (! initialized)
9111  {
9112 
9113  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
9114  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
9115 
9116  initialized = true;
9117  }
9118 
9119  return all_pnames;
9120 }
9121 
9122 bool
9124 {
9125  std::set<std::string> pnames = readonly_property_names ();
9126 
9127  return pnames.find (pname) != pnames.end ();
9128 }
9129 
9130 std::set<std::string>
9132 {
9133  static std::set<std::string> all_pnames = core_property_names ();
9134 
9135  std::set<std::string> retval = all_pnames;
9136  std::set<std::string> base_props = base_properties::all_property_names ();
9137  retval.insert (base_props.begin (), base_props.end ());
9138 
9139  return retval;
9140 }
9141 
9142 bool
9144 {
9145  std::set<std::string> pnames = all_property_names ();
9146 
9147  return pnames.find (pname) != pnames.end ();
9148 }
9149 
9150 // ******** uitoggletool ********
9151 
9153  : base_properties (s_go_name, mh, p),
9154  m_cdata ("cdata", mh, Matrix ()),
9155  m_clickedcallback ("clickedcallback", mh, Matrix ()),
9156  m_enable ("enable", mh, "on"),
9157  m_offcallback ("offcallback", mh, Matrix ()),
9158  m_oncallback ("oncallback", mh, Matrix ()),
9159  m_separator ("separator", mh, "off"),
9160  m_state ("state", mh, "off"),
9161  m_tooltipstring ("tooltipstring", mh, ""),
9162  m___named_icon__ ("__named_icon__", mh, ""),
9163  m___object__ ("__object__", mh, Matrix ())
9164 {
9165  m_cdata.set_id (ID_CDATA);
9166  m_clickedcallback.set_id (ID_CLICKEDCALLBACK);
9167  m_enable.set_id (ID_ENABLE);
9168  m_offcallback.set_id (ID_OFFCALLBACK);
9169  m_oncallback.set_id (ID_ONCALLBACK);
9170  m_separator.set_id (ID_SEPARATOR);
9171  m_state.set_id (ID_STATE);
9172  m_tooltipstring.set_id (ID_TOOLTIPSTRING);
9173  m___named_icon__.set_id (ID___NAMED_ICON__);
9174  m___object__.set_id (ID___OBJECT__);
9175  m___object__.set_hidden (true);
9176  init ();
9177 }
9178 
9179 void
9181 {
9182  const std::set<std::string>& pnames = all_property_names ();
9183 
9184  caseless_str pname = validate_property_name ("set", s_go_name, pnames, pname_arg);
9185 
9186  if (has_readonly_property (pname))
9187  {
9188  error ("set: \"%s\" is read-only", pname.c_str ());
9189  return;
9190  }
9191 
9192  if (pname.compare ("cdata"))
9193  set_cdata (val);
9194  else if (pname.compare ("clickedcallback"))
9195  set_clickedcallback (val);
9196  else if (pname.compare ("enable"))
9197  set_enable (val);
9198  else if (pname.compare ("offcallback"))
9199  set_offcallback (val);
9200  else if (pname.compare ("oncallback"))
9201  set_oncallback (val);
9202  else if (pname.compare ("separator"))
9203  set_separator (val);
9204  else if (pname.compare ("state"))
9205  set_state (val);
9206  else if (pname.compare ("tooltipstring"))
9207  set_tooltipstring (val);
9208  else if (pname.compare ("__named_icon__"))
9209  set___named_icon__ (val);
9210  else if (pname.compare ("__object__"))
9211  set___object__ (val);
9212  else
9213  base_properties::set (pname, val);
9214 }
9215 
9218 {
9220 
9221  m.assign ("cdata", octave_value (get_cdata ()));
9222  m.assign ("clickedcallback", octave_value (get_clickedcallback ()));
9223  m.assign ("enable", octave_value (get_enable ()));
9224  m.assign ("offcallback", octave_value (get_offcallback ()));
9225  m.assign ("oncallback", octave_value (get_oncallback ()));
9226  m.assign ("separator", octave_value (get_separator ()));
9227  m.assign ("state", octave_value (get_state ()));
9228  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
9229  m.assign ("__named_icon__", octave_value (get___named_icon__ ()));
9230  if (all)
9231  m.assign ("__object__", octave_value (get___object__ ()));
9232 
9233  return m;
9234 }
9235 
9238 {
9239  octave_value retval;
9240 
9241  const std::set<std::string>& pnames = all_property_names ();
9242 
9243  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
9244 
9245  if (pname.compare ("cdata"))
9246  retval = get_cdata ();
9247  else if (pname.compare ("clickedcallback"))
9248  retval = get_clickedcallback ();
9249  else if (pname.compare ("enable"))
9250  retval = get_enable ();
9251  else if (pname.compare ("offcallback"))
9252  retval = get_offcallback ();
9253  else if (pname.compare ("oncallback"))
9254  retval = get_oncallback ();
9255  else if (pname.compare ("separator"))
9256  retval = get_separator ();
9257  else if (pname.compare ("state"))
9258  retval = get_state ();
9259  else if (pname.compare ("tooltipstring"))
9260  retval = get_tooltipstring ();
9261  else if (pname.compare ("__named_icon__"))
9262  retval = get___named_icon__ ();
9263  else if (pname.compare ("__object__"))
9264  retval = get___object__ ();
9265  else
9266  retval = base_properties::get (pname);
9267 
9268  return retval;
9269 }
9270 
9271 property
9273 {
9274  const std::set<std::string>& pnames = all_property_names ();
9275 
9276  caseless_str pname = validate_property_name ("get", s_go_name, pnames, pname_arg);
9277 
9278  if (pname.compare ("cdata"))
9279  return property (&m_cdata, true);
9280  else if (pname.compare ("clickedcallback"))
9281  return property (&m_clickedcallback, true);
9282  else if (pname.compare ("enable"))
9283  return property (&m_enable, true);
9284  else if (pname.compare ("offcallback"))
9285  return property (&m_offcallback, true);
9286  else if (pname.compare ("oncallback"))
9287  return property (&m_oncallback, true);
9288  else if (pname.compare ("separator"))
9289  return property (&m_separator, true);
9290  else if (pname.compare ("state"))
9291  return property (&m_state, true);
9292  else if (pname.compare ("tooltipstring"))
9293  return property (&m_tooltipstring, true);
9294  else if (pname.compare ("__named_icon__"))
9295  return property (&m___named_icon__, true);
9296  else if (pname.compare ("__object__"))
9297  return property (&m___object__, true);
9298  else
9299  return base_properties::get_property (pname);
9300 }
9301 
9304 {
9306 
9307  m["cdata"] = Matrix ();
9308  m["clickedcallback"] = Matrix ();
9309  m["enable"] = "on";
9310  m["offcallback"] = Matrix ();
9311  m["oncallback"] = Matrix ();
9312  m["separator"] = "off";
9313  m["state"] = "off";
9314  m["tooltipstring"] = "";
9315  m["__named_icon__"] = "";
9316  m["__object__"] = Matrix ();
9317 
9318  return m;
9319 }
9320 
9321 std::string uitoggletool::properties::s_go_name ("uitoggletool");
9322 
9323 std::set<std::string>
9325 {
9326  static std::set<std::string> all_pnames;
9327 
9328  static bool initialized = false;
9329 
9330  if (! initialized)
9331  {
9332  all_pnames.insert ("cdata");
9333  all_pnames.insert ("clickedcallback");
9334  all_pnames.insert ("enable");
9335  all_pnames.insert ("offcallback");
9336  all_pnames.insert ("oncallback");
9337  all_pnames.insert ("separator");
9338  all_pnames.insert ("state");
9339  all_pnames.insert ("tooltipstring");
9340  all_pnames.insert ("__named_icon__");
9341  all_pnames.insert ("__object__");
9342 
9343  std::set<std::string> base_pnames = base_properties::core_property_names ();
9344  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
9345 
9346  initialized = true;
9347  }
9348 
9349  return all_pnames;
9350 }
9351 
9352 bool
9354 {
9355  std::set<std::string> pnames = core_property_names ();
9356 
9357  return pnames.find (pname) != pnames.end ();
9358 }
9359 
9360 std::set<std::string>
9362 {
9363  static std::set<std::string> all_pnames;
9364 
9365  static bool initialized = false;
9366 
9367  if (! initialized)
9368  {
9369 
9370  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
9371  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
9372 
9373  initialized = true;
9374  }
9375 
9376  return all_pnames;
9377 }
9378 
9379 bool
9381 {
9382  std::set<std::string> pnames = readonly_property_names ();
9383 
9384  return pnames.find (pname) != pnames.end ();
9385 }
9386 
9387 std::set<std::string>
9389 {
9390  static std::set<std::string> all_pnames = core_property_names ();
9391 
9392  std::set<std::string> retval = all_pnames;
9393  std::set<std::string> base_props = base_properties::all_property_names ();
9394  retval.insert (base_props.begin (), base_props.end ());
9395 
9396  return retval;
9397 }
9398 
9399 bool
9401 {
9402  std::set<std::string> pnames = all_property_names ();
9403 
9404  return pnames.find (pname) != pnames.end ();
9405 }
9406 
Definition: Cell.h:43
Definition: dMatrix.h:42
properties()=delete
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
@ ID_ACTIVEPOSITIONPROPERTY
Definition: graphics.h:5123
@ ID_TITLEFONTSIZEMULTIPLIER
Definition: graphics.h:5191
@ ID_PLOTBOXASPECTRATIOMODE
Definition: graphics.h:5180
@ ID_LABELFONTSIZEMULTIPLIER
Definition: graphics.h:5164
static std::set< std::string > readonly_property_names()
octave_value get(bool all=false) const
void set(const caseless_str &pname, const octave_value &val)
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:7279
static property_list::pval_map_type factory_defaults()
void set___modified__(const octave_value &val)
Definition: graphics.h:2367
void set_selectionhighlight(const octave_value &val)
Definition: graphics.h:2668
virtual void init()
Definition: graphics.h:2727
callback_property m_buttondownfcn
Definition: graphics.h:2462
bool_property m_interruptible
Definition: graphics.h:2470
std::string get_handlevisibility() const
Definition: graphics.h:2534
void set_pickableparts(const octave_value &val)
Definition: graphics.h:2652
std::string get_interruptible() const
Definition: graphics.h:2540
void set_busyaction(const octave_value &val)
Definition: graphics.h:2570
bool_property m_beingdeleted
Definition: graphics.h:2460
graphics_handle get_parent() const
Definition: graphics.h:2542
bool_property m_hittest
Definition: graphics.h:2469
children_property m_children
Definition: graphics.h:2463
string_property m_tag
Definition: graphics.h:2475
void set_contextmenu(const octave_value &val)
Definition: graphics.h:2602
octave_value get_userdata() const
Definition: graphics.h:2557
std::string get___modified__() const
Definition: graphics.h:2565
void set_visible(const octave_value &val)
Definition: graphics.h:2684
graphics_handle get_uicontextmenu() const
Definition: graphics.h:2371
void set_interruptible(const octave_value &val)
Definition: graphics.h:2644
virtual void set(const caseless_str &, const octave_value &)
callback_property m_deletefcn
Definition: graphics.h:2467
virtual property get_property(const caseless_str &pname)
std::string get_clipping() const
Definition: graphics.h:2523
static std::set< std::string > readonly_property_names()
std::map< caseless_str, property, cmp_caseless_str > m_all_props
Definition: graphics.h:2723
std::string get_selectionhighlight() const
Definition: graphics.h:2551
graphics_handle get___myhandle__() const
Definition: graphics.h:2567
void set_buttondownfcn(const octave_value &val)
Definition: graphics.h:2578
void set_hittest(const octave_value &val)
Definition: graphics.h:2636
void set_clipping(const octave_value &val)
Definition: graphics.h:2594
void set_selected(const octave_value &val)
Definition: graphics.h:2660
radio_property m_handlevisibility
Definition: graphics.h:2468
std::string get_hittest() const
Definition: graphics.h:2537
octave_value get_createfcn() const
Definition: graphics.h:2528
void set___appdata__(const octave_value &val)
Definition: graphics.h:2693
std::string get_type() const
Definition: graphics.h:2555
void set_children(const octave_value &val)
Definition: graphics.h:2586
bool_property m_selectionhighlight
Definition: graphics.h:2474
any_property m___appdata__
Definition: graphics.h:2480
octave_value get_dynamic(const caseless_str &pname) const
Definition: graphics.cc:2991
std::string get_selected() const
Definition: graphics.h:2548
void set_handlevisibility(const octave_value &val)
Definition: graphics.h:2627
std::string get_beingdeleted() const
Definition: graphics.h:2514
void set_uicontextmenu(const octave_value &val)
Definition: graphics.h:2376
void set_createfcn(const octave_value &val)
Definition: graphics.h:2611
octave_value get_deletefcn() const
Definition: graphics.h:2531
void set_deletefcn(const octave_value &val)
Definition: graphics.h:2619
radio_property m_busyaction
Definition: graphics.h:2461
property get_property_dynamic(const caseless_str &pname) const
Definition: graphics.cc:3048
virtual octave_value get(const caseless_str &pname) const
radio_property m_pickableparts
Definition: graphics.h:2472
void set_parent(const octave_value &val)
Definition: graphics.cc:3060
bool_property m___modified__
Definition: graphics.h:2481
void set_userdata(const octave_value &val)
Definition: graphics.h:2676
handle_property m_contextmenu
Definition: graphics.h:2465
static bool has_readonly_property(const caseless_str &pname)
octave_value get___appdata__() const
Definition: graphics.h:2562
graphics_handle get_contextmenu() const
Definition: graphics.h:2525
std::string get_busyaction() const
Definition: graphics.h:2517
std::set< std::string > dynamic_property_names() const
Definition: graphics.cc:3015
bool_property m_clipping
Definition: graphics.h:2464
std::string get_pickableparts() const
Definition: graphics.h:2545
static bool has_core_property(const caseless_str &pname)
handle_property m_parent
Definition: graphics.h:2471
any_property m_userdata
Definition: graphics.h:2478
Matrix get_children() const
Definition: graphics.h:2345
void set_beingdeleted(const octave_value &val)
Definition: graphics.h:2335
callback_property m_createfcn
Definition: graphics.h:2466
void set_dynamic(const caseless_str &pname, const octave_value &val)
Definition: graphics.cc:3032
string_property m_type
Definition: graphics.h:2476
handle_property m_uicontextmenu
Definition: graphics.h:2477
bool_property m_visible
Definition: graphics.h:2479
std::set< std::string > all_property_names() const
base_properties(const std::string &ty="unknown", const graphics_handle &mh=graphics_handle(), const graphics_handle &p=graphics_handle())
std::string get_visible() const
Definition: graphics.h:2560
static std::set< std::string > core_property_names()
octave_value get_buttondownfcn() const
Definition: graphics.h:2520
bool_property m_selected
Definition: graphics.h:2473
void set_tag(const octave_value &val)
Definition: graphics.h:2341
std::string get_tag() const
Definition: graphics.h:2553
void set_hidden(bool flag)
Definition: graphics.h:320
void set_id(int d)
Definition: graphics.h:326
bool compare(const std::string &s, std::size_t limit=std::string::npos) const
Definition: caseless-str.h:78
bool has_property(const caseless_str &pname) const
void set(const caseless_str &pname, const octave_value &val)
static bool has_core_property(const caseless_str &pname)
octave_value get(bool all=false) const
property get_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:4557
property get_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
static std::set< std::string > core_property_names()
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
bool has_property(const caseless_str &pname) const
octave_value get(bool all=false) const
static bool has_readonly_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11706
static property_list::pval_map_type factory_defaults()
std::set< std::string > all_property_names() const
bool has_property(const caseless_str &pname) const
static bool has_readonly_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
property get_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
static std::set< std::string > core_property_names()
static std::set< std::string > readonly_property_names()
octave_value get(bool all=false) const
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:8835
bool has_property(const caseless_str &pname) const
void set(const caseless_str &pname, const octave_value &val)
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
octave_value get(bool all=false) const
static std::set< std::string > core_property_names()
static property_list::pval_map_type factory_defaults()
std::set< std::string > all_property_names() const
static bool has_core_property(const caseless_str &pname)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:8984
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
bool has_property(const caseless_str &pname) const
static bool has_core_property(const caseless_str &pname)
octave_value get(bool all=false) const
property get_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
void set(const caseless_str &pname, const octave_value &val)
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
properties()=delete
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:7686
octave_value as_octave_value() const
Definition: oct-handle.h:80
octave_map map_value() const
octave_value get(bool all=false) const
bool has_property(const caseless_str &pname) const
std::set< std::string > all_property_names() const
static std::set< std::string > core_property_names()
static property_list::pval_map_type factory_defaults()
static std::set< std::string > readonly_property_names()
void set(const caseless_str &pname, const octave_value &val)
static bool has_readonly_property(const caseless_str &pname)
property get_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
@ ID_SPECULARCOLORREFLECTANCE
Definition: graphics.h:9157
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:9853
void set(const caseless_str &pname, const octave_value &val)
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
static property_list::pval_map_type factory_defaults()
static bool has_core_property(const caseless_str &pname)
octave_value get(bool all=false) const
std::set< std::string > all_property_names() const
static std::set< std::string > readonly_property_names()
property get_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:3550
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
bool has_property(const caseless_str &pname) const
static property_list::pval_map_type factory_defaults()
std::set< std::string > all_property_names() const
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
octave_value get(bool all=false) const
void set(const caseless_str &pname, const octave_value &val)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:10613
property get_property(const caseless_str &pname)
octave_value get(bool all=false) const
static bool has_readonly_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
static property_list::pval_map_type factory_defaults()
static std::set< std::string > core_property_names()
static std::set< std::string > readonly_property_names()
bool has_property(const caseless_str &pname) const
std::set< std::string > all_property_names() const
void set(const caseless_str &pname, const octave_value &val)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11447
void set(const caseless_str &pname, const octave_value &val)
octave_value get(bool all=false) const
static std::set< std::string > readonly_property_names()
static std::set< std::string > core_property_names()
bool has_property(const caseless_str &pname) const
property get_property(const caseless_str &pname)
properties()=delete
static bool has_core_property(const caseless_str &pname)
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
static bool has_readonly_property(const caseless_str &pname)
@ ID_HORIZONTALALIGNMENTMODE
Definition: graphics.h:7856
@ ID_VERTICALALIGNMENTMODE
Definition: graphics.h:7857
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:8352
static std::set< std::string > core_property_names()
property get_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
static property_list::pval_map_type factory_defaults()
void set(const caseless_str &pname, const octave_value &val)
bool has_property(const caseless_str &pname) const
static bool has_readonly_property(const caseless_str &pname)
std::set< std::string > all_property_names() const
octave_value get(bool all=false) const
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:13006
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
void set(const caseless_str &pname, const octave_value &val)
static bool has_readonly_property(const caseless_str &pname)
octave_value get(bool all=false) const
property get_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
static std::set< std::string > readonly_property_names()
std::set< std::string > all_property_names() const
static property_list::pval_map_type factory_defaults()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12142
static property_list::pval_map_type factory_defaults()
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
octave_value get(bool all=false) const
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
bool has_property(const caseless_str &pname) const
static std::set< std::string > core_property_names()
std::set< std::string > all_property_names() const
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12623
static property_list::pval_map_type factory_defaults()
void set(const caseless_str &pname, const octave_value &val)
std::set< std::string > all_property_names() const
static std::set< std::string > core_property_names()
octave_value get(bool all=false) const
static bool has_readonly_property(const caseless_str &pname)
property get_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
static std::set< std::string > readonly_property_names()
static bool has_core_property(const caseless_str &pname)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11978
bool has_property(const caseless_str &pname) const
static std::set< std::string > readonly_property_names()
static property_list::pval_map_type factory_defaults()
std::set< std::string > all_property_names() const
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > core_property_names()
property get_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
octave_value get(bool all=false) const
void set(const caseless_str &pname, const octave_value &val)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:13346
void set(const caseless_str &pname, const octave_value &val)
static std::set< std::string > core_property_names()
static property_list::pval_map_type factory_defaults()
property get_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
std::set< std::string > all_property_names() const
static bool has_core_property(const caseless_str &pname)
octave_value get(bool all=false) const
static bool has_readonly_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:14155
static property_list::pval_map_type factory_defaults()
void set(const caseless_str &pname, const octave_value &val)
std::set< std::string > all_property_names() const
bool has_property(const caseless_str &pname) const
static std::set< std::string > core_property_names()
octave_value get(bool all=false) const
static bool has_core_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names()
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:13784
octave_value get(bool all=false) const
property get_property(const caseless_str &pname)
static property_list::pval_map_type factory_defaults()
static bool has_core_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
std::set< std::string > all_property_names() const
static std::set< std::string > core_property_names()
static bool has_readonly_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
static std::set< std::string > readonly_property_names()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:14394
octave_value get(bool all=false) const
static property_list::pval_map_type factory_defaults()
bool has_property(const caseless_str &pname) const
static std::set< std::string > readonly_property_names()
std::set< std::string > all_property_names() const
property get_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
static std::set< std::string > core_property_names()
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:13953
void() error(const char *fmt,...)
Definition: error.cc:988
octave_handle graphics_handle
#define OCTAVE_DEFAULT_FONTNAME
Definition: graphics.h:63
T octave_idx_type m
Definition: mx-inlines.cc:781