GNU Octave  4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  : beingdeleted ("beingdeleted", mh, "off"),
7  busyaction ("busyaction", mh, "{queue}|cancel"),
8  buttondownfcn ("buttondownfcn", mh, Matrix ()),
9  children ("children", mh, Matrix ()),
10  clipping ("clipping", mh, "on"),
11  createfcn ("createfcn", mh, Matrix ()),
12  deletefcn ("deletefcn", mh, Matrix ()),
13  handlevisibility ("handlevisibility", mh, "{on}|callback|off"),
14  hittest ("hittest", mh, "on"),
15  interruptible ("interruptible", mh, "on"),
16  parent ("parent", mh, p),
17  selected ("selected", mh, "off"),
18  selectionhighlight ("selectionhighlight", mh, "on"),
19  tag ("tag", mh, ""),
20  type ("type", mh, ty),
21  uicontextmenu ("uicontextmenu", mh, graphics_handle ()),
22  userdata ("userdata", mh, Matrix ()),
23  visible ("visible", mh, "on"),
24  __modified__ ("__modified__", mh, "on"),
25  __myhandle__ (mh)
26 {
40  tag.set_id (ID_TAG);
46  init ();
47 }
48 
49 void
51 {
52  if (pname.compare ("beingdeleted"))
53  set_beingdeleted (val);
54  else if (pname.compare ("busyaction"))
55  set_busyaction (val);
56  else if (pname.compare ("buttondownfcn"))
57  set_buttondownfcn (val);
58  else if (pname.compare ("children"))
59  set_children (val);
60  else if (pname.compare ("clipping"))
61  set_clipping (val);
62  else if (pname.compare ("createfcn"))
63  set_createfcn (val);
64  else if (pname.compare ("deletefcn"))
65  set_deletefcn (val);
66  else if (pname.compare ("handlevisibility"))
68  else if (pname.compare ("hittest"))
69  set_hittest (val);
70  else if (pname.compare ("interruptible"))
71  set_interruptible (val);
72  else if (pname.compare ("parent"))
73  set_parent (val);
74  else if (pname.compare ("selected"))
75  set_selected (val);
76  else if (pname.compare ("selectionhighlight"))
78  else if (pname.compare ("tag"))
79  set_tag (val);
80  else if (pname.compare ("uicontextmenu"))
81  set_uicontextmenu (val);
82  else if (pname.compare ("userdata"))
83  set_userdata (val);
84  else if (pname.compare ("visible"))
85  set_visible (val);
86  else if (pname.compare ("__modified__"))
87  set___modified__ (val);
88  else
89  set_dynamic (pname, val);
90 }
91 
93 base_properties::get (bool all) const
94 {
95  octave_map m = get_dynamic (all).map_value ();
96 
97  m.assign ("beingdeleted", octave_value (get_beingdeleted ()));
98  m.assign ("busyaction", octave_value (get_busyaction ()));
99  m.assign ("buttondownfcn", octave_value (get_buttondownfcn ()));
100  m.assign ("children", octave_value (get_children ()));
101  m.assign ("clipping", octave_value (get_clipping ()));
102  m.assign ("createfcn", octave_value (get_createfcn ()));
103  m.assign ("deletefcn", octave_value (get_deletefcn ()));
104  m.assign ("handlevisibility", octave_value (get_handlevisibility ()));
105  m.assign ("hittest", octave_value (get_hittest ()));
106  m.assign ("interruptible", octave_value (get_interruptible ()));
107  m.assign ("parent", octave_value (get_parent ().as_octave_value ()));
108  m.assign ("selected", octave_value (get_selected ()));
109  m.assign ("selectionhighlight", octave_value (get_selectionhighlight ()));
110  m.assign ("tag", octave_value (get_tag ()));
111  m.assign ("type", octave_value (get_type ()));
112  m.assign ("uicontextmenu", octave_value (get_uicontextmenu ().as_octave_value ()));
113  m.assign ("userdata", octave_value (get_userdata ()));
114  m.assign ("visible", octave_value (get_visible ()));
115  m.assign ("__modified__", octave_value (get___modified__ ()));
116  if (all)
117  m.assign ("__myhandle__", octave_value (get___myhandle__ ().as_octave_value ()));
118 
119  return m;
120 }
121 
123 base_properties::get (const caseless_str& pname) const
124 {
125  octave_value retval;
126 
127  if (pname.compare ("beingdeleted"))
128  retval = get_beingdeleted ();
129  else if (pname.compare ("busyaction"))
130  retval = get_busyaction ();
131  else if (pname.compare ("buttondownfcn"))
132  retval = get_buttondownfcn ();
133  else if (pname.compare ("children"))
134  retval = get_children ();
135  else if (pname.compare ("clipping"))
136  retval = get_clipping ();
137  else if (pname.compare ("createfcn"))
138  retval = get_createfcn ();
139  else if (pname.compare ("deletefcn"))
140  retval = get_deletefcn ();
141  else if (pname.compare ("handlevisibility"))
142  retval = get_handlevisibility ();
143  else if (pname.compare ("hittest"))
144  retval = get_hittest ();
145  else if (pname.compare ("interruptible"))
146  retval = get_interruptible ();
147  else if (pname.compare ("parent"))
148  retval = get_parent ().as_octave_value ();
149  else if (pname.compare ("selected"))
150  retval = get_selected ();
151  else if (pname.compare ("selectionhighlight"))
152  retval = get_selectionhighlight ();
153  else if (pname.compare ("tag"))
154  retval = get_tag ();
155  else if (pname.compare ("type"))
156  retval = get_type ();
157  else if (pname.compare ("uicontextmenu"))
158  retval = get_uicontextmenu ().as_octave_value ();
159  else if (pname.compare ("userdata"))
160  retval = get_userdata ();
161  else if (pname.compare ("visible"))
162  retval = get_visible ();
163  else if (pname.compare ("__modified__"))
164  retval = get___modified__ ();
165  else if (pname.compare ("__myhandle__"))
166  retval = get___myhandle__ ().as_octave_value ();
167  else
168  retval = get_dynamic (pname);
169 
170  return retval;
171 }
172 
173 property
175 {
176  if (pname.compare ("beingdeleted"))
177  return property (&beingdeleted, true);
178  else if (pname.compare ("busyaction"))
179  return property (&busyaction, true);
180  else if (pname.compare ("buttondownfcn"))
181  return property (&buttondownfcn, true);
182  else if (pname.compare ("children"))
183  return property (&children, true);
184  else if (pname.compare ("clipping"))
185  return property (&clipping, true);
186  else if (pname.compare ("createfcn"))
187  return property (&createfcn, true);
188  else if (pname.compare ("deletefcn"))
189  return property (&deletefcn, true);
190  else if (pname.compare ("handlevisibility"))
191  return property (&handlevisibility, true);
192  else if (pname.compare ("hittest"))
193  return property (&hittest, true);
194  else if (pname.compare ("interruptible"))
195  return property (&interruptible, true);
196  else if (pname.compare ("parent"))
197  return property (&parent, true);
198  else if (pname.compare ("selected"))
199  return property (&selected, true);
200  else if (pname.compare ("selectionhighlight"))
201  return property (&selectionhighlight, true);
202  else if (pname.compare ("tag"))
203  return property (&tag, true);
204  else if (pname.compare ("type"))
205  return property (&type, true);
206  else if (pname.compare ("uicontextmenu"))
207  return property (&uicontextmenu, true);
208  else if (pname.compare ("userdata"))
209  return property (&userdata, true);
210  else if (pname.compare ("visible"))
211  return property (&visible, true);
212  else if (pname.compare ("__modified__"))
213  return property (&__modified__, true);
214  else
215  return get_property_dynamic (pname);
216 }
217 
220 {
222 
223  m["beingdeleted"] = "off";
224  m["busyaction"] = "queue";
225  m["buttondownfcn"] = Matrix ();
226  m["clipping"] = "on";
227  m["createfcn"] = Matrix ();
228  m["deletefcn"] = Matrix ();
229  m["handlevisibility"] = "on";
230  m["hittest"] = "on";
231  m["interruptible"] = "on";
232  m["selected"] = "off";
233  m["selectionhighlight"] = "on";
234  m["tag"] = "";
235  m["uicontextmenu"] = graphics_handle ().as_octave_value ();
236  m["userdata"] = Matrix ();
237  m["visible"] = "on";
238  m["__modified__"] = "on";
239 
240  return m;
241 }
242 
243 std::set<std::string>
245 {
246  static std::set<std::string> all_pnames;
247 
248  static bool initialized = false;
249 
250  if (! initialized)
251  {
252  all_pnames.insert ("beingdeleted");
253  all_pnames.insert ("busyaction");
254  all_pnames.insert ("buttondownfcn");
255  all_pnames.insert ("children");
256  all_pnames.insert ("clipping");
257  all_pnames.insert ("createfcn");
258  all_pnames.insert ("deletefcn");
259  all_pnames.insert ("handlevisibility");
260  all_pnames.insert ("hittest");
261  all_pnames.insert ("interruptible");
262  all_pnames.insert ("parent");
263  all_pnames.insert ("selected");
264  all_pnames.insert ("selectionhighlight");
265  all_pnames.insert ("tag");
266  all_pnames.insert ("type");
267  all_pnames.insert ("uicontextmenu");
268  all_pnames.insert ("userdata");
269  all_pnames.insert ("visible");
270  all_pnames.insert ("__modified__");
271  all_pnames.insert ("__myhandle__");
272 
273  initialized = true;
274  }
275 
276  return all_pnames;
277 }
278 
279 bool
281 {
282  std::set<std::string> pnames = core_property_names ();
283 
284  return pnames.find (pname) != pnames.end ();
285 }
286 
287 std::set<std::string>
289 {
290  static std::set<std::string> all_pnames;
291 
292  static bool initialized = false;
293 
294  if (! initialized)
295  {
296  all_pnames.insert ("type");
297  all_pnames.insert ("__myhandle__");
298 
299  initialized = true;
300  }
301 
302  return all_pnames;
303 }
304 
305 bool
307 {
308  std::set<std::string> pnames = readonly_property_names ();
309 
310  return pnames.find (pname) != pnames.end ();
311 }
312 
313 std::set<std::string>
315 {
316  static std::set<std::string> all_pnames = core_property_names ();
317 
318  std::set<std::string> retval = all_pnames;
319  std::set<std::string> dyn_props = dynamic_property_names ();
320  retval.insert (dyn_props.begin (), dyn_props.end ());
321  for (std::map<caseless_str, property, cmp_caseless_str>::const_iterator p = all_props.begin ();
322  p != all_props.end (); p++)
323  retval.insert (p->first);
324 
325  return retval;
326 }
327 
328 // ******** root_figure ********
329 
331  : base_properties (go_name, mh, p),
332  callbackobject ("callbackobject", mh, graphics_handle ()),
333  commandwindowsize ("commandwindowsize", mh, Matrix (1, 2, 0)),
334  currentfigure ("currentfigure", mh, graphics_handle ()),
335  diary ("diary", mh, "off"),
336  diaryfile ("diaryfile", mh, "diary"),
337  echo ("echo", mh, "off"),
338  errormessage ("errormessage", mh, ""),
339  fixedwidthfontname ("fixedwidthfontname", mh, "Courier"),
340  format ("format", mh, "+|bank|bit|hex|long|longe|longeng|longg|native-bit|native-hex|none|rat|{short}|shorte|shorteng|shortg"),
341  formatspacing ("formatspacing", mh, "compact|{loose}"),
342  language ("language", mh, "ascii"),
343  monitorpositions ("monitorpositions", mh, Matrix (1, 4, 0)),
344  pointerlocation ("pointerlocation", mh, Matrix (1, 2, 0)),
345  pointerwindow ("pointerwindow", mh, 0.0),
346  recursionlimit ("recursionlimit", mh, 256.0),
347  screendepth ("screendepth", mh, default_screendepth ()),
348  screenpixelsperinch ("screenpixelsperinch", mh, default_screenpixelsperinch ()),
349  screensize ("screensize", mh, default_screensize ()),
350  showhiddenhandles ("showhiddenhandles", mh, "off"),
351  units ("units", mh, "inches|centimeters|normalized|points|{pixels}")
352 {
358  echo.set_id (ID_ECHO);
373  init ();
374 }
375 
376 void
378 {
379  const std::set<std::string>& pnames = all_property_names ();
380 
381  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
382 
383  if (error_state)
384  return;
385  else if (has_readonly_property (pname))
386  {
387  error ("set: \"%s\" is read-only", pname.c_str ());
388  return;
389  }
390 
391  if (pname.compare ("currentfigure"))
392  set_currentfigure (val);
393  else if (pname.compare ("diary"))
394  set_diary (val);
395  else if (pname.compare ("diaryfile"))
396  set_diaryfile (val);
397  else if (pname.compare ("echo"))
398  set_echo (val);
399  else if (pname.compare ("fixedwidthfontname"))
400  set_fixedwidthfontname (val);
401  else if (pname.compare ("format"))
402  set_format (val);
403  else if (pname.compare ("formatspacing"))
404  set_formatspacing (val);
405  else if (pname.compare ("language"))
406  set_language (val);
407  else if (pname.compare ("monitorpositions"))
408  set_monitorpositions (val);
409  else if (pname.compare ("pointerlocation"))
410  set_pointerlocation (val);
411  else if (pname.compare ("recursionlimit"))
412  set_recursionlimit (val);
413  else if (pname.compare ("showhiddenhandles"))
414  set_showhiddenhandles (val);
415  else if (pname.compare ("units"))
416  set_units (val);
417  else
418  base_properties::set (pname, val);
419 }
420 
423 {
425 
426  m.assign ("callbackobject", octave_value (get_callbackobject ().as_octave_value ()));
427  m.assign ("commandwindowsize", octave_value (get_commandwindowsize ()));
428  m.assign ("currentfigure", octave_value (get_currentfigure ().as_octave_value ()));
429  m.assign ("diary", octave_value (get_diary ()));
430  m.assign ("diaryfile", octave_value (get_diaryfile ()));
431  m.assign ("echo", octave_value (get_echo ()));
432  m.assign ("errormessage", octave_value (get_errormessage ()));
433  m.assign ("fixedwidthfontname", octave_value (get_fixedwidthfontname ()));
434  m.assign ("format", octave_value (get_format ()));
435  m.assign ("formatspacing", octave_value (get_formatspacing ()));
436  m.assign ("language", octave_value (get_language ()));
437  m.assign ("monitorpositions", octave_value (get_monitorpositions ()));
438  m.assign ("pointerlocation", octave_value (get_pointerlocation ()));
439  m.assign ("pointerwindow", octave_value (get_pointerwindow ()));
440  m.assign ("recursionlimit", octave_value (get_recursionlimit ()));
441  m.assign ("screendepth", octave_value (get_screendepth ()));
442  m.assign ("screenpixelsperinch", octave_value (get_screenpixelsperinch ()));
443  m.assign ("screensize", octave_value (get_screensize ()));
444  m.assign ("showhiddenhandles", octave_value (get_showhiddenhandles ()));
445  m.assign ("units", octave_value (get_units ()));
446 
447  return m;
448 }
449 
452 {
453  octave_value retval;
454 
455  const std::set<std::string>& pnames = all_property_names ();
456 
457  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
458 
459  if (error_state)
460  return retval;
461 
462  if (pname.compare ("callbackobject"))
463  retval = get_callbackobject ().as_octave_value ();
464  else if (pname.compare ("commandwindowsize"))
465  retval = get_commandwindowsize ();
466  else if (pname.compare ("currentfigure"))
467  retval = get_currentfigure ().as_octave_value ();
468  else if (pname.compare ("diary"))
469  retval = get_diary ();
470  else if (pname.compare ("diaryfile"))
471  retval = get_diaryfile ();
472  else if (pname.compare ("echo"))
473  retval = get_echo ();
474  else if (pname.compare ("errormessage"))
475  retval = get_errormessage ();
476  else if (pname.compare ("fixedwidthfontname"))
477  retval = get_fixedwidthfontname ();
478  else if (pname.compare ("format"))
479  retval = get_format ();
480  else if (pname.compare ("formatspacing"))
481  retval = get_formatspacing ();
482  else if (pname.compare ("language"))
483  retval = get_language ();
484  else if (pname.compare ("monitorpositions"))
485  retval = get_monitorpositions ();
486  else if (pname.compare ("pointerlocation"))
487  retval = get_pointerlocation ();
488  else if (pname.compare ("pointerwindow"))
489  retval = get_pointerwindow ();
490  else if (pname.compare ("recursionlimit"))
491  retval = get_recursionlimit ();
492  else if (pname.compare ("screendepth"))
493  retval = get_screendepth ();
494  else if (pname.compare ("screenpixelsperinch"))
495  retval = get_screenpixelsperinch ();
496  else if (pname.compare ("screensize"))
497  retval = get_screensize ();
498  else if (pname.compare ("showhiddenhandles"))
499  retval = get_showhiddenhandles ();
500  else if (pname.compare ("units"))
501  retval = get_units ();
502  else
503  retval = base_properties::get (pname);
504 
505  return retval;
506 }
507 
508 property
510 {
511  const std::set<std::string>& pnames = all_property_names ();
512 
513  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
514 
515  if (error_state)
516  return property ();
517 
518  if (pname.compare ("callbackobject"))
519  return property (&callbackobject, true);
520  else if (pname.compare ("commandwindowsize"))
521  return property (&commandwindowsize, true);
522  else if (pname.compare ("currentfigure"))
523  return property (&currentfigure, true);
524  else if (pname.compare ("diary"))
525  return property (&diary, true);
526  else if (pname.compare ("diaryfile"))
527  return property (&diaryfile, true);
528  else if (pname.compare ("echo"))
529  return property (&echo, true);
530  else if (pname.compare ("errormessage"))
531  return property (&errormessage, true);
532  else if (pname.compare ("fixedwidthfontname"))
533  return property (&fixedwidthfontname, true);
534  else if (pname.compare ("format"))
535  return property (&format, true);
536  else if (pname.compare ("formatspacing"))
537  return property (&formatspacing, true);
538  else if (pname.compare ("language"))
539  return property (&language, true);
540  else if (pname.compare ("monitorpositions"))
541  return property (&monitorpositions, true);
542  else if (pname.compare ("pointerlocation"))
543  return property (&pointerlocation, true);
544  else if (pname.compare ("pointerwindow"))
545  return property (&pointerwindow, true);
546  else if (pname.compare ("recursionlimit"))
547  return property (&recursionlimit, true);
548  else if (pname.compare ("screendepth"))
549  return property (&screendepth, true);
550  else if (pname.compare ("screenpixelsperinch"))
551  return property (&screenpixelsperinch, true);
552  else if (pname.compare ("screensize"))
553  return property (&screensize, true);
554  else if (pname.compare ("showhiddenhandles"))
555  return property (&showhiddenhandles, true);
556  else if (pname.compare ("units"))
557  return property (&units, true);
558  else
559  return base_properties::get_property (pname);
560 }
561 
564 {
566 
567  m["callbackobject"] = graphics_handle ().as_octave_value ();
568  m["commandwindowsize"] = Matrix (1, 2, 0);
569  m["currentfigure"] = graphics_handle ().as_octave_value ();
570  m["diary"] = "off";
571  m["diaryfile"] = "diary";
572  m["echo"] = "off";
573  m["errormessage"] = "";
574  m["fixedwidthfontname"] = "Courier";
575  m["format"] = "short";
576  m["formatspacing"] = "loose";
577  m["language"] = "ascii";
578  m["monitorpositions"] = Matrix (1, 4, 0);
579  m["pointerlocation"] = Matrix (1, 2, 0);
580  m["pointerwindow"] = 0.0;
581  m["recursionlimit"] = 256.0;
582  m["screendepth"] = default_screendepth ();
583  m["screenpixelsperinch"] = default_screenpixelsperinch ();
584  m["screensize"] = default_screensize ();
585  m["showhiddenhandles"] = "off";
586  m["units"] = "pixels";
587 
588  return m;
589 }
590 
591 std::string root_figure::properties::go_name ("root");
592 
593 std::set<std::string>
595 {
596  static std::set<std::string> all_pnames;
597 
598  static bool initialized = false;
599 
600  if (! initialized)
601  {
602  all_pnames.insert ("callbackobject");
603  all_pnames.insert ("commandwindowsize");
604  all_pnames.insert ("currentfigure");
605  all_pnames.insert ("diary");
606  all_pnames.insert ("diaryfile");
607  all_pnames.insert ("echo");
608  all_pnames.insert ("errormessage");
609  all_pnames.insert ("fixedwidthfontname");
610  all_pnames.insert ("format");
611  all_pnames.insert ("formatspacing");
612  all_pnames.insert ("language");
613  all_pnames.insert ("monitorpositions");
614  all_pnames.insert ("pointerlocation");
615  all_pnames.insert ("pointerwindow");
616  all_pnames.insert ("recursionlimit");
617  all_pnames.insert ("screendepth");
618  all_pnames.insert ("screenpixelsperinch");
619  all_pnames.insert ("screensize");
620  all_pnames.insert ("showhiddenhandles");
621  all_pnames.insert ("units");
622 
623  std::set<std::string> base_pnames = base_properties::core_property_names ();
624  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
625 
626  initialized = true;
627  }
628 
629  return all_pnames;
630 }
631 
632 bool
634 {
635  std::set<std::string> pnames = core_property_names ();
636 
637  return pnames.find (pname) != pnames.end ();
638 }
639 
640 std::set<std::string>
642 {
643  static std::set<std::string> all_pnames;
644 
645  static bool initialized = false;
646 
647  if (! initialized)
648  {
649  all_pnames.insert ("callbackobject");
650  all_pnames.insert ("commandwindowsize");
651  all_pnames.insert ("errormessage");
652  all_pnames.insert ("pointerwindow");
653  all_pnames.insert ("screendepth");
654  all_pnames.insert ("screenpixelsperinch");
655  all_pnames.insert ("screensize");
656 
657  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
658  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
659 
660  initialized = true;
661  }
662 
663  return all_pnames;
664 }
665 
666 bool
668 {
669  std::set<std::string> pnames = readonly_property_names ();
670 
671  return pnames.find (pname) != pnames.end ();
672 }
673 
674 std::set<std::string>
676 {
677  static std::set<std::string> all_pnames = core_property_names ();
678 
679  std::set<std::string> retval = all_pnames;
680  std::set<std::string> base_props = base_properties::all_property_names ();
681  retval.insert (base_props.begin (), base_props.end ());
682 
683  return retval;
684 }
685 
686 bool
688 {
689  std::set<std::string> pnames = all_property_names ();
690 
691  return pnames.find (pname) != pnames.end ();
692 }
693 
694 // ******** figure ********
695 
697  : base_properties (go_name, mh, p),
698  alphamap ("alphamap", mh, Matrix (64, 1, 1)),
699  buttondownfcn ("buttondownfcn", mh, Matrix ()),
700  closerequestfcn ("closerequestfcn", mh, "closereq"),
701  color ("color", mh, color_property (color_values (1, 1, 1), radio_values ("none"))),
702  colormap ("colormap", mh, jet_colormap ()),
703  currentaxes ("currentaxes", mh, graphics_handle ()),
704  currentcharacter ("currentcharacter", mh, ""),
705  currentobject ("currentobject", mh, graphics_handle ()),
706  currentpoint ("currentpoint", mh, Matrix (2, 1, 0)),
707  dockcontrols ("dockcontrols", mh, "off"),
708  doublebuffer ("doublebuffer", mh, "on"),
709  filename ("filename", mh, ""),
710  integerhandle ("integerhandle", mh, "on"),
711  inverthardcopy ("inverthardcopy", mh, "off"),
712  keypressfcn ("keypressfcn", mh, Matrix ()),
713  keyreleasefcn ("keyreleasefcn", mh, Matrix ()),
714  menubar ("menubar", mh, "none|{figure}"),
715  mincolormap ("mincolormap", mh, 64),
716  name ("name", mh, ""),
717  nextplot ("nextplot", mh, "new|{add}|replacechildren|replace"),
718  numbertitle ("numbertitle", mh, "on"),
719  outerposition ("outerposition", mh, Matrix (1, 4, -1.0)),
720  paperorientation ("paperorientation", mh, "{portrait}|landscape|rotated"),
721  paperposition ("paperposition", mh, default_figure_paperposition ()),
722  paperpositionmode ("paperpositionmode", mh, "auto|{manual}"),
723  papersize ("papersize", mh, default_figure_papersize ()),
724  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>"),
725  paperunits ("paperunits", mh, "{inches}|centimeters|normalized|points"),
726  pointer ("pointer", mh, "crosshair|fullcrosshair|{arrow}|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand"),
727  pointershapecdata ("pointershapecdata", mh, Matrix (16, 16, 0)),
728  pointershapehotspot ("pointershapehotspot", mh, Matrix (1, 2, 0)),
729  position ("position", mh, default_figure_position ()),
730  renderer ("renderer", mh, "{painters}|zbuffer|opengl|none"),
731  renderermode ("renderermode", mh, "{auto}|manual"),
732  resize ("resize", mh, "on"),
733  resizefcn ("resizefcn", mh, Matrix ()),
734  selectiontype ("selectiontype", mh, "{normal}|open|alt|extend"),
735  toolbar ("toolbar", mh, "none|{auto}|figure"),
736  units ("units", mh, "inches|centimeters|normalized|points|{pixels}|characters"),
737  windowbuttondownfcn ("windowbuttondownfcn", mh, Matrix ()),
738  windowbuttonmotionfcn ("windowbuttonmotionfcn", mh, Matrix ()),
739  windowbuttonupfcn ("windowbuttonupfcn", mh, Matrix ()),
740  windowkeypressfcn ("windowkeypressfcn", mh, Matrix ()),
741  windowkeyreleasefcn ("windowkeyreleasefcn", mh, Matrix ()),
742  windowscrollwheelfcn ("windowscrollwheelfcn", mh, Matrix ()),
743  windowstyle ("windowstyle", mh, "{normal}|modal|docked"),
744  wvisual ("wvisual", mh, ""),
745  wvisualmode ("wvisualmode", mh, "{auto}|manual"),
746  xdisplay ("xdisplay", mh, ""),
747  xvisual ("xvisual", mh, ""),
748  xvisualmode ("xvisualmode", mh, "{auto}|manual"),
749  __mouse_mode__ ("__mouse_mode__", mh, "{none}|pan|rotate|select|text|zoom"),
750  __pan_mode__ ("__pan_mode__", mh, Matrix ()),
751  __rotate_mode__ ("__rotate_mode__", mh, Matrix ()),
752  __zoom_mode__ ("__zoom_mode__", mh, Matrix ()),
753  __enhanced__ ("__enhanced__", mh, "on"),
754  __graphics_toolkit__ ("__graphics_toolkit__", mh, gtk_manager::default_toolkit ()),
755  __guidata__ ("__guidata__", mh, Matrix ()),
756  __plot_stream__ ("__plot_stream__", mh, Matrix ())
757 {
776  name.set_id (ID_NAME);
810  __mouse_mode__.set_hidden (true);
812  __pan_mode__.set_hidden (true);
816  __zoom_mode__.set_hidden (true);
818  __enhanced__.set_hidden (true);
822  __guidata__.set_hidden (true);
825  init ();
826 }
827 
828 void
829 figure::properties::set (const caseless_str& pname_arg, const octave_value& val)
830 {
831  const std::set<std::string>& pnames = all_property_names ();
832 
833  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
834 
835  if (error_state)
836  return;
837  else if (has_readonly_property (pname))
838  {
839  error ("set: \"%s\" is read-only", pname.c_str ());
840  return;
841  }
842 
843  if (pname.compare ("alphamap"))
844  set_alphamap (val);
845  else if (pname.compare ("buttondownfcn"))
846  set_buttondownfcn (val);
847  else if (pname.compare ("closerequestfcn"))
848  set_closerequestfcn (val);
849  else if (pname.compare ("color"))
850  set_color (val);
851  else if (pname.compare ("colormap"))
852  set_colormap (val);
853  else if (pname.compare ("currentaxes"))
854  set_currentaxes (val);
855  else if (pname.compare ("dockcontrols"))
856  set_dockcontrols (val);
857  else if (pname.compare ("doublebuffer"))
858  set_doublebuffer (val);
859  else if (pname.compare ("filename"))
860  set_filename (val);
861  else if (pname.compare ("integerhandle"))
862  set_integerhandle (val);
863  else if (pname.compare ("inverthardcopy"))
864  set_inverthardcopy (val);
865  else if (pname.compare ("keypressfcn"))
866  set_keypressfcn (val);
867  else if (pname.compare ("keyreleasefcn"))
868  set_keyreleasefcn (val);
869  else if (pname.compare ("menubar"))
870  set_menubar (val);
871  else if (pname.compare ("mincolormap"))
872  set_mincolormap (val);
873  else if (pname.compare ("name"))
874  set_name (val);
875  else if (pname.compare ("nextplot"))
876  set_nextplot (val);
877  else if (pname.compare ("numbertitle"))
878  set_numbertitle (val);
879  else if (pname.compare ("outerposition"))
880  set_outerposition (val);
881  else if (pname.compare ("paperorientation"))
882  set_paperorientation (val);
883  else if (pname.compare ("paperposition"))
884  set_paperposition (val);
885  else if (pname.compare ("paperpositionmode"))
886  set_paperpositionmode (val);
887  else if (pname.compare ("papersize"))
888  set_papersize (val);
889  else if (pname.compare ("papertype"))
890  set_papertype (val);
891  else if (pname.compare ("paperunits"))
892  set_paperunits (val);
893  else if (pname.compare ("pointer"))
894  set_pointer (val);
895  else if (pname.compare ("pointershapecdata"))
896  set_pointershapecdata (val);
897  else if (pname.compare ("pointershapehotspot"))
898  set_pointershapehotspot (val);
899  else if (pname.compare ("position"))
900  set_position (val);
901  else if (pname.compare ("renderer"))
902  set_renderer (val);
903  else if (pname.compare ("renderermode"))
904  set_renderermode (val);
905  else if (pname.compare ("resize"))
906  set_resize (val);
907  else if (pname.compare ("resizefcn"))
908  set_resizefcn (val);
909  else if (pname.compare ("selectiontype"))
910  set_selectiontype (val);
911  else if (pname.compare ("toolbar"))
912  set_toolbar (val);
913  else if (pname.compare ("units"))
914  set_units (val);
915  else if (pname.compare ("windowbuttondownfcn"))
916  set_windowbuttondownfcn (val);
917  else if (pname.compare ("windowbuttonmotionfcn"))
918  set_windowbuttonmotionfcn (val);
919  else if (pname.compare ("windowbuttonupfcn"))
920  set_windowbuttonupfcn (val);
921  else if (pname.compare ("windowkeypressfcn"))
922  set_windowkeypressfcn (val);
923  else if (pname.compare ("windowkeyreleasefcn"))
924  set_windowkeyreleasefcn (val);
925  else if (pname.compare ("windowscrollwheelfcn"))
926  set_windowscrollwheelfcn (val);
927  else if (pname.compare ("windowstyle"))
928  set_windowstyle (val);
929  else if (pname.compare ("wvisual"))
930  set_wvisual (val);
931  else if (pname.compare ("wvisualmode"))
932  set_wvisualmode (val);
933  else if (pname.compare ("xdisplay"))
934  set_xdisplay (val);
935  else if (pname.compare ("xvisual"))
936  set_xvisual (val);
937  else if (pname.compare ("xvisualmode"))
938  set_xvisualmode (val);
939  else if (pname.compare ("__mouse_mode__"))
940  set___mouse_mode__ (val);
941  else if (pname.compare ("__pan_mode__"))
942  set___pan_mode__ (val);
943  else if (pname.compare ("__rotate_mode__"))
944  set___rotate_mode__ (val);
945  else if (pname.compare ("__zoom_mode__"))
946  set___zoom_mode__ (val);
947  else if (pname.compare ("__enhanced__"))
948  set___enhanced__ (val);
949  else if (pname.compare ("__graphics_toolkit__"))
950  set___graphics_toolkit__ (val);
951  else if (pname.compare ("__guidata__"))
952  set___guidata__ (val);
953  else if (pname.compare ("__plot_stream__"))
954  set___plot_stream__ (val);
955  else
956  base_properties::set (pname, val);
957 }
958 
960 figure::properties::get (bool all) const
961 {
963 
964  m.assign ("alphamap", octave_value (get_alphamap ()));
965  m.assign ("buttondownfcn", octave_value (get_buttondownfcn ()));
966  m.assign ("closerequestfcn", octave_value (get_closerequestfcn ()));
967  m.assign ("color", octave_value (get_color ()));
968  m.assign ("colormap", octave_value (get_colormap ()));
969  m.assign ("currentaxes", octave_value (get_currentaxes ().as_octave_value ()));
970  m.assign ("currentcharacter", octave_value (get_currentcharacter ()));
971  m.assign ("currentobject", octave_value (get_currentobject ().as_octave_value ()));
972  m.assign ("currentpoint", octave_value (get_currentpoint ()));
973  m.assign ("dockcontrols", octave_value (get_dockcontrols ()));
974  m.assign ("doublebuffer", octave_value (get_doublebuffer ()));
975  m.assign ("filename", octave_value (get_filename ()));
976  m.assign ("integerhandle", octave_value (get_integerhandle ()));
977  m.assign ("inverthardcopy", octave_value (get_inverthardcopy ()));
978  m.assign ("keypressfcn", octave_value (get_keypressfcn ()));
979  m.assign ("keyreleasefcn", octave_value (get_keyreleasefcn ()));
980  m.assign ("menubar", octave_value (get_menubar ()));
981  m.assign ("mincolormap", octave_value (get_mincolormap ()));
982  m.assign ("name", octave_value (get_name ()));
983  m.assign ("nextplot", octave_value (get_nextplot ()));
984  m.assign ("numbertitle", octave_value (get_numbertitle ()));
985  m.assign ("outerposition", octave_value (get_outerposition ()));
986  m.assign ("paperorientation", octave_value (get_paperorientation ()));
987  m.assign ("paperposition", octave_value (get_paperposition ()));
988  m.assign ("paperpositionmode", octave_value (get_paperpositionmode ()));
989  m.assign ("papersize", octave_value (get_papersize ()));
990  m.assign ("papertype", octave_value (get_papertype ()));
991  m.assign ("paperunits", octave_value (get_paperunits ()));
992  m.assign ("pointer", octave_value (get_pointer ()));
993  m.assign ("pointershapecdata", octave_value (get_pointershapecdata ()));
994  m.assign ("pointershapehotspot", octave_value (get_pointershapehotspot ()));
995  m.assign ("position", octave_value (get_position ()));
996  m.assign ("renderer", octave_value (get_renderer ()));
997  m.assign ("renderermode", octave_value (get_renderermode ()));
998  m.assign ("resize", octave_value (get_resize ()));
999  m.assign ("resizefcn", octave_value (get_resizefcn ()));
1000  m.assign ("selectiontype", octave_value (get_selectiontype ()));
1001  m.assign ("toolbar", octave_value (get_toolbar ()));
1002  m.assign ("units", octave_value (get_units ()));
1003  m.assign ("windowbuttondownfcn", octave_value (get_windowbuttondownfcn ()));
1004  m.assign ("windowbuttonmotionfcn", octave_value (get_windowbuttonmotionfcn ()));
1005  m.assign ("windowbuttonupfcn", octave_value (get_windowbuttonupfcn ()));
1006  m.assign ("windowkeypressfcn", octave_value (get_windowkeypressfcn ()));
1007  m.assign ("windowkeyreleasefcn", octave_value (get_windowkeyreleasefcn ()));
1008  m.assign ("windowscrollwheelfcn", octave_value (get_windowscrollwheelfcn ()));
1009  m.assign ("windowstyle", octave_value (get_windowstyle ()));
1010  m.assign ("wvisual", octave_value (get_wvisual ()));
1011  m.assign ("wvisualmode", octave_value (get_wvisualmode ()));
1012  m.assign ("xdisplay", octave_value (get_xdisplay ()));
1013  m.assign ("xvisual", octave_value (get_xvisual ()));
1014  m.assign ("xvisualmode", octave_value (get_xvisualmode ()));
1015  if (all)
1016  m.assign ("__mouse_mode__", octave_value (get___mouse_mode__ ()));
1017  if (all)
1018  m.assign ("__pan_mode__", octave_value (get___pan_mode__ ()));
1019  if (all)
1020  m.assign ("__rotate_mode__", octave_value (get___rotate_mode__ ()));
1021  if (all)
1022  m.assign ("__zoom_mode__", octave_value (get___zoom_mode__ ()));
1023  if (all)
1024  m.assign ("__enhanced__", octave_value (get___enhanced__ ()));
1025  if (all)
1026  m.assign ("__graphics_toolkit__", octave_value (get___graphics_toolkit__ ()));
1027  if (all)
1028  m.assign ("__guidata__", octave_value (get___guidata__ ()));
1029  if (all)
1030  m.assign ("__plot_stream__", octave_value (get___plot_stream__ ()));
1031 
1032  return m;
1033 }
1034 
1036 figure::properties::get (const caseless_str& pname_arg) const
1037 {
1038  octave_value retval;
1039 
1040  const std::set<std::string>& pnames = all_property_names ();
1041 
1042  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
1043 
1044  if (error_state)
1045  return retval;
1046 
1047  if (pname.compare ("alphamap"))
1048  retval = get_alphamap ();
1049  else if (pname.compare ("buttondownfcn"))
1050  retval = get_buttondownfcn ();
1051  else if (pname.compare ("closerequestfcn"))
1052  retval = get_closerequestfcn ();
1053  else if (pname.compare ("color"))
1054  retval = get_color ();
1055  else if (pname.compare ("colormap"))
1056  retval = get_colormap ();
1057  else if (pname.compare ("currentaxes"))
1058  retval = get_currentaxes ().as_octave_value ();
1059  else if (pname.compare ("currentcharacter"))
1060  retval = get_currentcharacter ();
1061  else if (pname.compare ("currentobject"))
1062  retval = get_currentobject ().as_octave_value ();
1063  else if (pname.compare ("currentpoint"))
1064  retval = get_currentpoint ();
1065  else if (pname.compare ("dockcontrols"))
1066  retval = get_dockcontrols ();
1067  else if (pname.compare ("doublebuffer"))
1068  retval = get_doublebuffer ();
1069  else if (pname.compare ("filename"))
1070  retval = get_filename ();
1071  else if (pname.compare ("integerhandle"))
1072  retval = get_integerhandle ();
1073  else if (pname.compare ("inverthardcopy"))
1074  retval = get_inverthardcopy ();
1075  else if (pname.compare ("keypressfcn"))
1076  retval = get_keypressfcn ();
1077  else if (pname.compare ("keyreleasefcn"))
1078  retval = get_keyreleasefcn ();
1079  else if (pname.compare ("menubar"))
1080  retval = get_menubar ();
1081  else if (pname.compare ("mincolormap"))
1082  retval = get_mincolormap ();
1083  else if (pname.compare ("name"))
1084  retval = get_name ();
1085  else if (pname.compare ("nextplot"))
1086  retval = get_nextplot ();
1087  else if (pname.compare ("numbertitle"))
1088  retval = get_numbertitle ();
1089  else if (pname.compare ("outerposition"))
1090  retval = get_outerposition ();
1091  else if (pname.compare ("paperorientation"))
1092  retval = get_paperorientation ();
1093  else if (pname.compare ("paperposition"))
1094  retval = get_paperposition ();
1095  else if (pname.compare ("paperpositionmode"))
1096  retval = get_paperpositionmode ();
1097  else if (pname.compare ("papersize"))
1098  retval = get_papersize ();
1099  else if (pname.compare ("papertype"))
1100  retval = get_papertype ();
1101  else if (pname.compare ("paperunits"))
1102  retval = get_paperunits ();
1103  else if (pname.compare ("pointer"))
1104  retval = get_pointer ();
1105  else if (pname.compare ("pointershapecdata"))
1106  retval = get_pointershapecdata ();
1107  else if (pname.compare ("pointershapehotspot"))
1108  retval = get_pointershapehotspot ();
1109  else if (pname.compare ("position"))
1110  retval = get_position ();
1111  else if (pname.compare ("renderer"))
1112  retval = get_renderer ();
1113  else if (pname.compare ("renderermode"))
1114  retval = get_renderermode ();
1115  else if (pname.compare ("resize"))
1116  retval = get_resize ();
1117  else if (pname.compare ("resizefcn"))
1118  retval = get_resizefcn ();
1119  else if (pname.compare ("selectiontype"))
1120  retval = get_selectiontype ();
1121  else if (pname.compare ("toolbar"))
1122  retval = get_toolbar ();
1123  else if (pname.compare ("units"))
1124  retval = get_units ();
1125  else if (pname.compare ("windowbuttondownfcn"))
1126  retval = get_windowbuttondownfcn ();
1127  else if (pname.compare ("windowbuttonmotionfcn"))
1128  retval = get_windowbuttonmotionfcn ();
1129  else if (pname.compare ("windowbuttonupfcn"))
1130  retval = get_windowbuttonupfcn ();
1131  else if (pname.compare ("windowkeypressfcn"))
1132  retval = get_windowkeypressfcn ();
1133  else if (pname.compare ("windowkeyreleasefcn"))
1134  retval = get_windowkeyreleasefcn ();
1135  else if (pname.compare ("windowscrollwheelfcn"))
1136  retval = get_windowscrollwheelfcn ();
1137  else if (pname.compare ("windowstyle"))
1138  retval = get_windowstyle ();
1139  else if (pname.compare ("wvisual"))
1140  retval = get_wvisual ();
1141  else if (pname.compare ("wvisualmode"))
1142  retval = get_wvisualmode ();
1143  else if (pname.compare ("xdisplay"))
1144  retval = get_xdisplay ();
1145  else if (pname.compare ("xvisual"))
1146  retval = get_xvisual ();
1147  else if (pname.compare ("xvisualmode"))
1148  retval = get_xvisualmode ();
1149  else if (pname.compare ("__mouse_mode__"))
1150  retval = get___mouse_mode__ ();
1151  else if (pname.compare ("__pan_mode__"))
1152  retval = get___pan_mode__ ();
1153  else if (pname.compare ("__rotate_mode__"))
1154  retval = get___rotate_mode__ ();
1155  else if (pname.compare ("__zoom_mode__"))
1156  retval = get___zoom_mode__ ();
1157  else if (pname.compare ("__enhanced__"))
1158  retval = get___enhanced__ ();
1159  else if (pname.compare ("__graphics_toolkit__"))
1160  retval = get___graphics_toolkit__ ();
1161  else if (pname.compare ("__guidata__"))
1162  retval = get___guidata__ ();
1163  else if (pname.compare ("__plot_stream__"))
1164  retval = get___plot_stream__ ();
1165  else
1166  retval = base_properties::get (pname);
1167 
1168  return retval;
1169 }
1170 
1171 property
1173 {
1174  const std::set<std::string>& pnames = all_property_names ();
1175 
1176  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
1177 
1178  if (error_state)
1179  return property ();
1180 
1181  if (pname.compare ("alphamap"))
1182  return property (&alphamap, true);
1183  else if (pname.compare ("buttondownfcn"))
1184  return property (&buttondownfcn, true);
1185  else if (pname.compare ("closerequestfcn"))
1186  return property (&closerequestfcn, true);
1187  else if (pname.compare ("color"))
1188  return property (&color, true);
1189  else if (pname.compare ("colormap"))
1190  return property (&colormap, true);
1191  else if (pname.compare ("currentaxes"))
1192  return property (&currentaxes, true);
1193  else if (pname.compare ("currentcharacter"))
1194  return property (&currentcharacter, true);
1195  else if (pname.compare ("currentobject"))
1196  return property (&currentobject, true);
1197  else if (pname.compare ("currentpoint"))
1198  return property (&currentpoint, true);
1199  else if (pname.compare ("dockcontrols"))
1200  return property (&dockcontrols, true);
1201  else if (pname.compare ("doublebuffer"))
1202  return property (&doublebuffer, true);
1203  else if (pname.compare ("filename"))
1204  return property (&filename, true);
1205  else if (pname.compare ("integerhandle"))
1206  return property (&integerhandle, true);
1207  else if (pname.compare ("inverthardcopy"))
1208  return property (&inverthardcopy, true);
1209  else if (pname.compare ("keypressfcn"))
1210  return property (&keypressfcn, true);
1211  else if (pname.compare ("keyreleasefcn"))
1212  return property (&keyreleasefcn, true);
1213  else if (pname.compare ("menubar"))
1214  return property (&menubar, true);
1215  else if (pname.compare ("mincolormap"))
1216  return property (&mincolormap, true);
1217  else if (pname.compare ("name"))
1218  return property (&name, true);
1219  else if (pname.compare ("nextplot"))
1220  return property (&nextplot, true);
1221  else if (pname.compare ("numbertitle"))
1222  return property (&numbertitle, true);
1223  else if (pname.compare ("outerposition"))
1224  return property (&outerposition, true);
1225  else if (pname.compare ("paperorientation"))
1226  return property (&paperorientation, true);
1227  else if (pname.compare ("paperposition"))
1228  return property (&paperposition, true);
1229  else if (pname.compare ("paperpositionmode"))
1230  return property (&paperpositionmode, true);
1231  else if (pname.compare ("papersize"))
1232  return property (&papersize, true);
1233  else if (pname.compare ("papertype"))
1234  return property (&papertype, true);
1235  else if (pname.compare ("paperunits"))
1236  return property (&paperunits, true);
1237  else if (pname.compare ("pointer"))
1238  return property (&pointer, true);
1239  else if (pname.compare ("pointershapecdata"))
1240  return property (&pointershapecdata, true);
1241  else if (pname.compare ("pointershapehotspot"))
1242  return property (&pointershapehotspot, true);
1243  else if (pname.compare ("position"))
1244  return property (&position, true);
1245  else if (pname.compare ("renderer"))
1246  return property (&renderer, true);
1247  else if (pname.compare ("renderermode"))
1248  return property (&renderermode, true);
1249  else if (pname.compare ("resize"))
1250  return property (&resize, true);
1251  else if (pname.compare ("resizefcn"))
1252  return property (&resizefcn, true);
1253  else if (pname.compare ("selectiontype"))
1254  return property (&selectiontype, true);
1255  else if (pname.compare ("toolbar"))
1256  return property (&toolbar, true);
1257  else if (pname.compare ("units"))
1258  return property (&units, true);
1259  else if (pname.compare ("windowbuttondownfcn"))
1260  return property (&windowbuttondownfcn, true);
1261  else if (pname.compare ("windowbuttonmotionfcn"))
1262  return property (&windowbuttonmotionfcn, true);
1263  else if (pname.compare ("windowbuttonupfcn"))
1264  return property (&windowbuttonupfcn, true);
1265  else if (pname.compare ("windowkeypressfcn"))
1266  return property (&windowkeypressfcn, true);
1267  else if (pname.compare ("windowkeyreleasefcn"))
1268  return property (&windowkeyreleasefcn, true);
1269  else if (pname.compare ("windowscrollwheelfcn"))
1270  return property (&windowscrollwheelfcn, true);
1271  else if (pname.compare ("windowstyle"))
1272  return property (&windowstyle, true);
1273  else if (pname.compare ("wvisual"))
1274  return property (&wvisual, true);
1275  else if (pname.compare ("wvisualmode"))
1276  return property (&wvisualmode, true);
1277  else if (pname.compare ("xdisplay"))
1278  return property (&xdisplay, true);
1279  else if (pname.compare ("xvisual"))
1280  return property (&xvisual, true);
1281  else if (pname.compare ("xvisualmode"))
1282  return property (&xvisualmode, true);
1283  else if (pname.compare ("__mouse_mode__"))
1284  return property (&__mouse_mode__, true);
1285  else if (pname.compare ("__pan_mode__"))
1286  return property (&__pan_mode__, true);
1287  else if (pname.compare ("__rotate_mode__"))
1288  return property (&__rotate_mode__, true);
1289  else if (pname.compare ("__zoom_mode__"))
1290  return property (&__zoom_mode__, true);
1291  else if (pname.compare ("__enhanced__"))
1292  return property (&__enhanced__, true);
1293  else if (pname.compare ("__graphics_toolkit__"))
1294  return property (&__graphics_toolkit__, true);
1295  else if (pname.compare ("__guidata__"))
1296  return property (&__guidata__, true);
1297  else if (pname.compare ("__plot_stream__"))
1298  return property (&__plot_stream__, true);
1299  else
1300  return base_properties::get_property (pname);
1301 }
1302 
1305 {
1307 
1308  m["alphamap"] = Matrix (64, 1, 1);
1309  m["buttondownfcn"] = Matrix ();
1310  m["closerequestfcn"] = "closereq";
1311  m["color"] = color_property (color_values (1, 1, 1), radio_values ("none"));
1312  m["colormap"] = jet_colormap ();
1313  m["currentaxes"] = graphics_handle ().as_octave_value ();
1314  m["currentcharacter"] = "";
1315  m["currentobject"] = graphics_handle ().as_octave_value ();
1316  m["currentpoint"] = Matrix (2, 1, 0);
1317  m["dockcontrols"] = "off";
1318  m["doublebuffer"] = "on";
1319  m["filename"] = "";
1320  m["integerhandle"] = "on";
1321  m["inverthardcopy"] = "off";
1322  m["keypressfcn"] = Matrix ();
1323  m["keyreleasefcn"] = Matrix ();
1324  m["menubar"] = "figure";
1325  m["mincolormap"] = 64;
1326  m["name"] = "";
1327  m["nextplot"] = "add";
1328  m["numbertitle"] = "on";
1329  m["outerposition"] = Matrix (1, 4, -1.0);
1330  m["paperorientation"] = "portrait";
1331  m["paperposition"] = default_figure_paperposition ();
1332  m["paperpositionmode"] = "manual";
1333  m["papersize"] = default_figure_papersize ();
1334  m["papertype"] = "usletter";
1335  m["paperunits"] = "inches";
1336  m["pointer"] = "arrow";
1337  m["pointershapecdata"] = Matrix (16, 16, 0);
1338  m["pointershapehotspot"] = Matrix (1, 2, 0);
1339  m["position"] = default_figure_position ();
1340  m["renderer"] = "painters";
1341  m["renderermode"] = "auto";
1342  m["resize"] = "on";
1343  m["resizefcn"] = Matrix ();
1344  m["selectiontype"] = "normal";
1345  m["toolbar"] = "auto";
1346  m["units"] = "pixels";
1347  m["windowbuttondownfcn"] = Matrix ();
1348  m["windowbuttonmotionfcn"] = Matrix ();
1349  m["windowbuttonupfcn"] = Matrix ();
1350  m["windowkeypressfcn"] = Matrix ();
1351  m["windowkeyreleasefcn"] = Matrix ();
1352  m["windowscrollwheelfcn"] = Matrix ();
1353  m["windowstyle"] = "normal";
1354  m["wvisual"] = "";
1355  m["wvisualmode"] = "auto";
1356  m["xdisplay"] = "";
1357  m["xvisual"] = "";
1358  m["xvisualmode"] = "auto";
1359  m["__mouse_mode__"] = "none";
1360  m["__pan_mode__"] = Matrix ();
1361  m["__rotate_mode__"] = Matrix ();
1362  m["__zoom_mode__"] = Matrix ();
1363  m["__enhanced__"] = "on";
1364  m["__graphics_toolkit__"] = gtk_manager::default_toolkit ();
1365  m["__guidata__"] = Matrix ();
1366  m["__plot_stream__"] = Matrix ();
1367 
1368  return m;
1369 }
1370 
1371 std::string figure::properties::go_name ("figure");
1372 
1373 std::set<std::string>
1375 {
1376  static std::set<std::string> all_pnames;
1377 
1378  static bool initialized = false;
1379 
1380  if (! initialized)
1381  {
1382  all_pnames.insert ("alphamap");
1383  all_pnames.insert ("buttondownfcn");
1384  all_pnames.insert ("closerequestfcn");
1385  all_pnames.insert ("color");
1386  all_pnames.insert ("colormap");
1387  all_pnames.insert ("currentaxes");
1388  all_pnames.insert ("currentcharacter");
1389  all_pnames.insert ("currentobject");
1390  all_pnames.insert ("currentpoint");
1391  all_pnames.insert ("dockcontrols");
1392  all_pnames.insert ("doublebuffer");
1393  all_pnames.insert ("filename");
1394  all_pnames.insert ("integerhandle");
1395  all_pnames.insert ("inverthardcopy");
1396  all_pnames.insert ("keypressfcn");
1397  all_pnames.insert ("keyreleasefcn");
1398  all_pnames.insert ("menubar");
1399  all_pnames.insert ("mincolormap");
1400  all_pnames.insert ("name");
1401  all_pnames.insert ("nextplot");
1402  all_pnames.insert ("numbertitle");
1403  all_pnames.insert ("outerposition");
1404  all_pnames.insert ("paperorientation");
1405  all_pnames.insert ("paperposition");
1406  all_pnames.insert ("paperpositionmode");
1407  all_pnames.insert ("papersize");
1408  all_pnames.insert ("papertype");
1409  all_pnames.insert ("paperunits");
1410  all_pnames.insert ("pointer");
1411  all_pnames.insert ("pointershapecdata");
1412  all_pnames.insert ("pointershapehotspot");
1413  all_pnames.insert ("position");
1414  all_pnames.insert ("renderer");
1415  all_pnames.insert ("renderermode");
1416  all_pnames.insert ("resize");
1417  all_pnames.insert ("resizefcn");
1418  all_pnames.insert ("selectiontype");
1419  all_pnames.insert ("toolbar");
1420  all_pnames.insert ("units");
1421  all_pnames.insert ("windowbuttondownfcn");
1422  all_pnames.insert ("windowbuttonmotionfcn");
1423  all_pnames.insert ("windowbuttonupfcn");
1424  all_pnames.insert ("windowkeypressfcn");
1425  all_pnames.insert ("windowkeyreleasefcn");
1426  all_pnames.insert ("windowscrollwheelfcn");
1427  all_pnames.insert ("windowstyle");
1428  all_pnames.insert ("wvisual");
1429  all_pnames.insert ("wvisualmode");
1430  all_pnames.insert ("xdisplay");
1431  all_pnames.insert ("xvisual");
1432  all_pnames.insert ("xvisualmode");
1433  all_pnames.insert ("__mouse_mode__");
1434  all_pnames.insert ("__pan_mode__");
1435  all_pnames.insert ("__rotate_mode__");
1436  all_pnames.insert ("__zoom_mode__");
1437  all_pnames.insert ("__enhanced__");
1438  all_pnames.insert ("__graphics_toolkit__");
1439  all_pnames.insert ("__guidata__");
1440  all_pnames.insert ("__plot_stream__");
1441 
1442  std::set<std::string> base_pnames = base_properties::core_property_names ();
1443  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
1444 
1445  initialized = true;
1446  }
1447 
1448  return all_pnames;
1449 }
1450 
1451 bool
1453 {
1454  std::set<std::string> pnames = core_property_names ();
1455 
1456  return pnames.find (pname) != pnames.end ();
1457 }
1458 
1459 std::set<std::string>
1461 {
1462  static std::set<std::string> all_pnames;
1463 
1464  static bool initialized = false;
1465 
1466  if (! initialized)
1467  {
1468  all_pnames.insert ("currentcharacter");
1469  all_pnames.insert ("currentobject");
1470  all_pnames.insert ("currentpoint");
1471 
1472  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
1473  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
1474 
1475  initialized = true;
1476  }
1477 
1478  return all_pnames;
1479 }
1480 
1481 bool
1483 {
1484  std::set<std::string> pnames = readonly_property_names ();
1485 
1486  return pnames.find (pname) != pnames.end ();
1487 }
1488 
1489 std::set<std::string>
1491 {
1492  static std::set<std::string> all_pnames = core_property_names ();
1493 
1494  std::set<std::string> retval = all_pnames;
1495  std::set<std::string> base_props = base_properties::all_property_names ();
1496  retval.insert (base_props.begin (), base_props.end ());
1497 
1498  return retval;
1499 }
1500 
1501 bool
1503 {
1504  std::set<std::string> pnames = all_property_names ();
1505 
1506  return pnames.find (pname) != pnames.end ();
1507 }
1508 
1509 // ******** axes ********
1510 
1512  : base_properties (go_name, mh, p),
1513  activepositionproperty ("activepositionproperty", mh, "{outerposition}|position"),
1514  alim ("alim", mh, default_lim ()),
1515  alimmode ("alimmode", mh, "{auto}|manual"),
1516  ambientlightcolor ("ambientlightcolor", mh, color_values (1, 1, 1)),
1517  box ("box", mh, "on"),
1518  cameraposition ("cameraposition", mh, Matrix (1, 3, 0.0)),
1519  camerapositionmode ("camerapositionmode", mh, "{auto}|manual"),
1520  cameratarget ("cameratarget", mh, Matrix (1, 3, 0.0)),
1521  cameratargetmode ("cameratargetmode", mh, "{auto}|manual"),
1522  cameraupvector ("cameraupvector", mh, Matrix (1, 3, 0.0)),
1523  cameraupvectormode ("cameraupvectormode", mh, "{auto}|manual"),
1524  cameraviewangle ("cameraviewangle", mh, 10.0),
1525  cameraviewanglemode ("cameraviewanglemode", mh, "{auto}|manual"),
1526  clim ("clim", mh, default_lim ()),
1527  climmode ("climmode", mh, "{auto}|manual"),
1528  color ("color", mh, color_property (color_values (1, 1, 1), radio_values ("none"))),
1529  colororder ("colororder", mh, default_colororder ()),
1530  currentpoint ("currentpoint", mh, Matrix (2, 3, 0.0)),
1531  dataaspectratio ("dataaspectratio", mh, Matrix (1, 3, 1.0)),
1532  dataaspectratiomode ("dataaspectratiomode", mh, "{auto}|manual"),
1533  drawmode ("drawmode", mh, "{normal}|fast"),
1534  fontangle ("fontangle", mh, "{normal}|italic|oblique"),
1535  fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
1536  fontsize ("fontsize", mh, 10),
1537  fontunits ("fontunits", mh, "{points}|normalized|inches|centimeters|pixels"),
1538  fontweight ("fontweight", mh, "{normal}|light|demi|bold"),
1539  gridlinestyle ("gridlinestyle", mh, "-|--|{:}|-.|none"),
1540  interpreter ("interpreter", mh, "tex|{none}|latex"),
1541  layer ("layer", mh, "{bottom}|top"),
1542  linestyleorder ("linestyleorder", mh, "-"),
1543  linewidth ("linewidth", mh, 0.5),
1544  minorgridlinestyle ("minorgridlinestyle", mh, "-|--|{:}|-.|none"),
1545  mousewheelzoom ("mousewheelzoom", mh, 0.5),
1546  nextplot ("nextplot", mh, "add|replacechildren|{replace}"),
1547  outerposition ("outerposition", mh, default_axes_outerposition ()),
1548  plotboxaspectratio ("plotboxaspectratio", mh, Matrix (1, 3, 1.0)),
1549  plotboxaspectratiomode ("plotboxaspectratiomode", mh, "{auto}|manual"),
1550  position ("position", mh, default_axes_position ()),
1551  projection ("projection", mh, "{orthographic}|perspective"),
1552  tickdir ("tickdir", mh, "{in}|out"),
1553  tickdirmode ("tickdirmode", mh, "{auto}|manual"),
1554  ticklength ("ticklength", mh, default_axes_ticklength ()),
1555  tightinset ("tightinset", mh, Matrix (1, 4, 0.0)),
1556  title ("title", mh, gh_manager::make_graphics_handle ("text", __myhandle__, false, false, false)),
1557  units ("units", mh, "{normalized}|inches|centimeters|points|pixels|characters"),
1558  view ("view", mh, default_axes_view ()),
1559  xaxislocation ("xaxislocation", mh, "{bottom}|top|zero"),
1560  xcolor ("xcolor", mh, color_values (0, 0, 0)),
1561  xdir ("xdir", mh, "{normal}|reverse"),
1562  xgrid ("xgrid", mh, "off"),
1563  xlabel ("xlabel", mh, gh_manager::make_graphics_handle ("text", __myhandle__, false, false, false)),
1564  xlim ("xlim", mh, default_lim ()),
1565  xlimmode ("xlimmode", mh, "{auto}|manual"),
1566  xminorgrid ("xminorgrid", mh, "off"),
1567  xminortick ("xminortick", mh, "off"),
1568  xscale ("xscale", mh, "{linear}|log"),
1569  xtick ("xtick", mh, default_axes_tick ()),
1570  xticklabel ("xticklabel", mh, ""),
1571  xticklabelmode ("xticklabelmode", mh, "{auto}|manual"),
1572  xtickmode ("xtickmode", mh, "{auto}|manual"),
1573  yaxislocation ("yaxislocation", mh, "{left}|right|zero"),
1574  ycolor ("ycolor", mh, color_values (0, 0, 0)),
1575  ydir ("ydir", mh, "{normal}|reverse"),
1576  ygrid ("ygrid", mh, "off"),
1577  ylabel ("ylabel", mh, gh_manager::make_graphics_handle ("text", __myhandle__, false, false, false)),
1578  ylim ("ylim", mh, default_lim ()),
1579  ylimmode ("ylimmode", mh, "{auto}|manual"),
1580  yminorgrid ("yminorgrid", mh, "off"),
1581  yminortick ("yminortick", mh, "off"),
1582  yscale ("yscale", mh, "{linear}|log"),
1583  ytick ("ytick", mh, default_axes_tick ()),
1584  yticklabel ("yticklabel", mh, ""),
1585  yticklabelmode ("yticklabelmode", mh, "{auto}|manual"),
1586  ytickmode ("ytickmode", mh, "{auto}|manual"),
1587  zcolor ("zcolor", mh, color_values (0, 0, 0)),
1588  zdir ("zdir", mh, "{normal}|reverse"),
1589  zgrid ("zgrid", mh, "off"),
1590  zlabel ("zlabel", mh, gh_manager::make_graphics_handle ("text", __myhandle__, false, false, false)),
1591  zlim ("zlim", mh, default_lim ()),
1592  zlimmode ("zlimmode", mh, "{auto}|manual"),
1593  zminorgrid ("zminorgrid", mh, "off"),
1594  zminortick ("zminortick", mh, "off"),
1595  zscale ("zscale", mh, "{linear}|log"),
1596  ztick ("ztick", mh, default_axes_tick ()),
1597  zticklabel ("zticklabel", mh, ""),
1598  zticklabelmode ("zticklabelmode", mh, "{auto}|manual"),
1599  ztickmode ("ztickmode", mh, "{auto}|manual"),
1600  __hold_all__ ("__hold_all__", mh, "off"),
1601  autopos_tag ("autopos_tag", mh, "{none}|subplot"),
1602  looseinset ("looseinset", mh, Matrix (1, 4, 0.0)),
1603  x_viewtransform ("x_viewtransform", mh, Matrix (4, 4, 0.0)),
1604  x_projectiontransform ("x_projectiontransform", mh, Matrix (4, 4, 0.0)),
1605  x_viewporttransform ("x_viewporttransform", mh, Matrix (4, 4, 0.0)),
1606  x_normrendertransform ("x_normrendertransform", mh, Matrix (4, 4, 0.0)),
1607  x_rendertransform ("x_rendertransform", mh, Matrix (4, 4, 0.0)),
1608  xmtick ("xmtick", mh, Matrix ()),
1609  ymtick ("ymtick", mh, Matrix ()),
1610  zmtick ("zmtick", mh, Matrix ()),
1611  fontsize_points ("fontsize_points", mh, 0)
1612 {
1614  alim.set_id (ID_ALIM);
1617  box.set_id (ID_BOX);
1626  clim.set_id (ID_CLIM);
1628  color.set_id (ID_COLOR);
1641  layer.set_id (ID_LAYER);
1656  title.set_id (ID_TITLE);
1657  units.set_id (ID_UNITS);
1658  view.set_id (ID_VIEW);
1661  xdir.set_id (ID_XDIR);
1662  xgrid.set_id (ID_XGRID);
1664  xlim.set_id (ID_XLIM);
1669  xtick.set_id (ID_XTICK);
1675  ydir.set_id (ID_YDIR);
1676  ygrid.set_id (ID_YGRID);
1678  ylim.set_id (ID_YLIM);
1683  ytick.set_id (ID_YTICK);
1688  zdir.set_id (ID_ZDIR);
1689  zgrid.set_id (ID_ZGRID);
1691  zlim.set_id (ID_ZLIM);
1696  ztick.set_id (ID_ZTICK);
1701  __hold_all__.set_hidden (true);
1703  autopos_tag.set_hidden (true);
1705  looseinset.set_hidden (true);
1707  x_viewtransform.set_hidden (true);
1717  xmtick.set_hidden (true);
1719  ymtick.set_hidden (true);
1721  zmtick.set_hidden (true);
1723  fontsize_points.set_hidden (true);
1724  init ();
1725 }
1726 
1727 void
1728 axes::properties::set (const caseless_str& pname_arg, const octave_value& val)
1729 {
1730  const std::set<std::string>& pnames = all_property_names ();
1731 
1732  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
1733 
1734  if (error_state)
1735  return;
1736  else if (has_readonly_property (pname))
1737  {
1738  error ("set: \"%s\" is read-only", pname.c_str ());
1739  return;
1740  }
1741 
1742  if (pname.compare ("activepositionproperty"))
1743  set_activepositionproperty (val);
1744  else if (pname.compare ("alim"))
1745  set_alim (val);
1746  else if (pname.compare ("alimmode"))
1747  set_alimmode (val);
1748  else if (pname.compare ("ambientlightcolor"))
1749  set_ambientlightcolor (val);
1750  else if (pname.compare ("box"))
1751  set_box (val);
1752  else if (pname.compare ("cameraposition"))
1753  set_cameraposition (val);
1754  else if (pname.compare ("camerapositionmode"))
1755  set_camerapositionmode (val);
1756  else if (pname.compare ("cameratarget"))
1757  set_cameratarget (val);
1758  else if (pname.compare ("cameratargetmode"))
1759  set_cameratargetmode (val);
1760  else if (pname.compare ("cameraupvector"))
1761  set_cameraupvector (val);
1762  else if (pname.compare ("cameraupvectormode"))
1763  set_cameraupvectormode (val);
1764  else if (pname.compare ("cameraviewangle"))
1765  set_cameraviewangle (val);
1766  else if (pname.compare ("cameraviewanglemode"))
1767  set_cameraviewanglemode (val);
1768  else if (pname.compare ("clim"))
1769  set_clim (val);
1770  else if (pname.compare ("climmode"))
1771  set_climmode (val);
1772  else if (pname.compare ("color"))
1773  set_color (val);
1774  else if (pname.compare ("colororder"))
1775  set_colororder (val);
1776  else if (pname.compare ("currentpoint"))
1777  set_currentpoint (val);
1778  else if (pname.compare ("dataaspectratio"))
1779  set_dataaspectratio (val);
1780  else if (pname.compare ("dataaspectratiomode"))
1781  set_dataaspectratiomode (val);
1782  else if (pname.compare ("drawmode"))
1783  set_drawmode (val);
1784  else if (pname.compare ("fontangle"))
1785  set_fontangle (val);
1786  else if (pname.compare ("fontname"))
1787  set_fontname (val);
1788  else if (pname.compare ("fontsize"))
1789  set_fontsize (val);
1790  else if (pname.compare ("fontunits"))
1791  set_fontunits (val);
1792  else if (pname.compare ("fontweight"))
1793  set_fontweight (val);
1794  else if (pname.compare ("gridlinestyle"))
1795  set_gridlinestyle (val);
1796  else if (pname.compare ("interpreter"))
1797  set_interpreter (val);
1798  else if (pname.compare ("layer"))
1799  set_layer (val);
1800  else if (pname.compare ("linestyleorder"))
1801  set_linestyleorder (val);
1802  else if (pname.compare ("linewidth"))
1803  set_linewidth (val);
1804  else if (pname.compare ("minorgridlinestyle"))
1805  set_minorgridlinestyle (val);
1806  else if (pname.compare ("mousewheelzoom"))
1807  set_mousewheelzoom (val);
1808  else if (pname.compare ("nextplot"))
1809  set_nextplot (val);
1810  else if (pname.compare ("outerposition"))
1811  set_outerposition (val);
1812  else if (pname.compare ("plotboxaspectratio"))
1813  set_plotboxaspectratio (val);
1814  else if (pname.compare ("plotboxaspectratiomode"))
1815  set_plotboxaspectratiomode (val);
1816  else if (pname.compare ("position"))
1817  set_position (val);
1818  else if (pname.compare ("projection"))
1819  set_projection (val);
1820  else if (pname.compare ("tickdir"))
1821  set_tickdir (val);
1822  else if (pname.compare ("tickdirmode"))
1823  set_tickdirmode (val);
1824  else if (pname.compare ("ticklength"))
1825  set_ticklength (val);
1826  else if (pname.compare ("title"))
1827  set_title (val);
1828  else if (pname.compare ("units"))
1829  set_units (val);
1830  else if (pname.compare ("view"))
1831  set_view (val);
1832  else if (pname.compare ("xaxislocation"))
1833  set_xaxislocation (val);
1834  else if (pname.compare ("xcolor"))
1835  set_xcolor (val);
1836  else if (pname.compare ("xdir"))
1837  set_xdir (val);
1838  else if (pname.compare ("xgrid"))
1839  set_xgrid (val);
1840  else if (pname.compare ("xlabel"))
1841  set_xlabel (val);
1842  else if (pname.compare ("xlim"))
1843  set_xlim (val);
1844  else if (pname.compare ("xlimmode"))
1845  set_xlimmode (val);
1846  else if (pname.compare ("xminorgrid"))
1847  set_xminorgrid (val);
1848  else if (pname.compare ("xminortick"))
1849  set_xminortick (val);
1850  else if (pname.compare ("xscale"))
1851  set_xscale (val);
1852  else if (pname.compare ("xtick"))
1853  set_xtick (val);
1854  else if (pname.compare ("xticklabel"))
1855  set_xticklabel (val);
1856  else if (pname.compare ("xticklabelmode"))
1857  set_xticklabelmode (val);
1858  else if (pname.compare ("xtickmode"))
1859  set_xtickmode (val);
1860  else if (pname.compare ("yaxislocation"))
1861  set_yaxislocation (val);
1862  else if (pname.compare ("ycolor"))
1863  set_ycolor (val);
1864  else if (pname.compare ("ydir"))
1865  set_ydir (val);
1866  else if (pname.compare ("ygrid"))
1867  set_ygrid (val);
1868  else if (pname.compare ("ylabel"))
1869  set_ylabel (val);
1870  else if (pname.compare ("ylim"))
1871  set_ylim (val);
1872  else if (pname.compare ("ylimmode"))
1873  set_ylimmode (val);
1874  else if (pname.compare ("yminorgrid"))
1875  set_yminorgrid (val);
1876  else if (pname.compare ("yminortick"))
1877  set_yminortick (val);
1878  else if (pname.compare ("yscale"))
1879  set_yscale (val);
1880  else if (pname.compare ("ytick"))
1881  set_ytick (val);
1882  else if (pname.compare ("yticklabel"))
1883  set_yticklabel (val);
1884  else if (pname.compare ("yticklabelmode"))
1885  set_yticklabelmode (val);
1886  else if (pname.compare ("ytickmode"))
1887  set_ytickmode (val);
1888  else if (pname.compare ("zcolor"))
1889  set_zcolor (val);
1890  else if (pname.compare ("zdir"))
1891  set_zdir (val);
1892  else if (pname.compare ("zgrid"))
1893  set_zgrid (val);
1894  else if (pname.compare ("zlabel"))
1895  set_zlabel (val);
1896  else if (pname.compare ("zlim"))
1897  set_zlim (val);
1898  else if (pname.compare ("zlimmode"))
1899  set_zlimmode (val);
1900  else if (pname.compare ("zminorgrid"))
1901  set_zminorgrid (val);
1902  else if (pname.compare ("zminortick"))
1903  set_zminortick (val);
1904  else if (pname.compare ("zscale"))
1905  set_zscale (val);
1906  else if (pname.compare ("ztick"))
1907  set_ztick (val);
1908  else if (pname.compare ("zticklabel"))
1909  set_zticklabel (val);
1910  else if (pname.compare ("zticklabelmode"))
1911  set_zticklabelmode (val);
1912  else if (pname.compare ("ztickmode"))
1913  set_ztickmode (val);
1914  else if (pname.compare ("__hold_all__"))
1915  set___hold_all__ (val);
1916  else if (pname.compare ("autopos_tag"))
1917  set_autopos_tag (val);
1918  else if (pname.compare ("looseinset"))
1919  set_looseinset (val);
1920  else if (pname.compare ("x_viewtransform"))
1921  set_x_viewtransform (val);
1922  else if (pname.compare ("x_projectiontransform"))
1923  set_x_projectiontransform (val);
1924  else if (pname.compare ("x_viewporttransform"))
1925  set_x_viewporttransform (val);
1926  else if (pname.compare ("x_normrendertransform"))
1927  set_x_normrendertransform (val);
1928  else if (pname.compare ("x_rendertransform"))
1929  set_x_rendertransform (val);
1930  else if (pname.compare ("xmtick"))
1931  set_xmtick (val);
1932  else if (pname.compare ("ymtick"))
1933  set_ymtick (val);
1934  else if (pname.compare ("zmtick"))
1935  set_zmtick (val);
1936  else
1937  base_properties::set (pname, val);
1938 }
1939 
1941 axes::properties::get (bool all) const
1942 {
1944 
1945  m.assign ("activepositionproperty", octave_value (get_activepositionproperty ()));
1946  m.assign ("alim", octave_value (get_alim ()));
1947  m.assign ("alimmode", octave_value (get_alimmode ()));
1948  m.assign ("ambientlightcolor", octave_value (get_ambientlightcolor ()));
1949  m.assign ("box", octave_value (get_box ()));
1950  m.assign ("cameraposition", octave_value (get_cameraposition ()));
1951  m.assign ("camerapositionmode", octave_value (get_camerapositionmode ()));
1952  m.assign ("cameratarget", octave_value (get_cameratarget ()));
1953  m.assign ("cameratargetmode", octave_value (get_cameratargetmode ()));
1954  m.assign ("cameraupvector", octave_value (get_cameraupvector ()));
1955  m.assign ("cameraupvectormode", octave_value (get_cameraupvectormode ()));
1956  m.assign ("cameraviewangle", octave_value (get_cameraviewangle ()));
1957  m.assign ("cameraviewanglemode", octave_value (get_cameraviewanglemode ()));
1958  m.assign ("clim", octave_value (get_clim ()));
1959  m.assign ("climmode", octave_value (get_climmode ()));
1960  m.assign ("color", octave_value (get_color ()));
1961  m.assign ("colororder", octave_value (get_colororder ()));
1962  m.assign ("currentpoint", octave_value (get_currentpoint ()));
1963  m.assign ("dataaspectratio", octave_value (get_dataaspectratio ()));
1964  m.assign ("dataaspectratiomode", octave_value (get_dataaspectratiomode ()));
1965  m.assign ("drawmode", octave_value (get_drawmode ()));
1966  m.assign ("fontangle", octave_value (get_fontangle ()));
1967  m.assign ("fontname", octave_value (get_fontname ()));
1968  m.assign ("fontsize", octave_value (get_fontsize ()));
1969  m.assign ("fontunits", octave_value (get_fontunits ()));
1970  m.assign ("fontweight", octave_value (get_fontweight ()));
1971  m.assign ("gridlinestyle", octave_value (get_gridlinestyle ()));
1972  m.assign ("interpreter", octave_value (get_interpreter ()));
1973  m.assign ("layer", octave_value (get_layer ()));
1974  m.assign ("linestyleorder", octave_value (get_linestyleorder ()));
1975  m.assign ("linewidth", octave_value (get_linewidth ()));
1976  m.assign ("minorgridlinestyle", octave_value (get_minorgridlinestyle ()));
1977  m.assign ("mousewheelzoom", octave_value (get_mousewheelzoom ()));
1978  m.assign ("nextplot", octave_value (get_nextplot ()));
1979  m.assign ("outerposition", octave_value (get_outerposition ()));
1980  m.assign ("plotboxaspectratio", octave_value (get_plotboxaspectratio ()));
1981  m.assign ("plotboxaspectratiomode", octave_value (get_plotboxaspectratiomode ()));
1982  m.assign ("position", octave_value (get_position ()));
1983  m.assign ("projection", octave_value (get_projection ()));
1984  m.assign ("tickdir", octave_value (get_tickdir ()));
1985  m.assign ("tickdirmode", octave_value (get_tickdirmode ()));
1986  m.assign ("ticklength", octave_value (get_ticklength ()));
1987  m.assign ("tightinset", octave_value (get_tightinset ()));
1988  m.assign ("title", octave_value (get_title ().as_octave_value ()));
1989  m.assign ("units", octave_value (get_units ()));
1990  m.assign ("view", octave_value (get_view ()));
1991  m.assign ("xaxislocation", octave_value (get_xaxislocation ()));
1992  m.assign ("xcolor", octave_value (get_xcolor ()));
1993  m.assign ("xdir", octave_value (get_xdir ()));
1994  m.assign ("xgrid", octave_value (get_xgrid ()));
1995  m.assign ("xlabel", octave_value (get_xlabel ().as_octave_value ()));
1996  m.assign ("xlim", octave_value (get_xlim ()));
1997  m.assign ("xlimmode", octave_value (get_xlimmode ()));
1998  m.assign ("xminorgrid", octave_value (get_xminorgrid ()));
1999  m.assign ("xminortick", octave_value (get_xminortick ()));
2000  m.assign ("xscale", octave_value (get_xscale ()));
2001  m.assign ("xtick", octave_value (get_xtick ()));
2002  m.assign ("xticklabel", octave_value (get_xticklabel ()));
2003  m.assign ("xticklabelmode", octave_value (get_xticklabelmode ()));
2004  m.assign ("xtickmode", octave_value (get_xtickmode ()));
2005  m.assign ("yaxislocation", octave_value (get_yaxislocation ()));
2006  m.assign ("ycolor", octave_value (get_ycolor ()));
2007  m.assign ("ydir", octave_value (get_ydir ()));
2008  m.assign ("ygrid", octave_value (get_ygrid ()));
2009  m.assign ("ylabel", octave_value (get_ylabel ().as_octave_value ()));
2010  m.assign ("ylim", octave_value (get_ylim ()));
2011  m.assign ("ylimmode", octave_value (get_ylimmode ()));
2012  m.assign ("yminorgrid", octave_value (get_yminorgrid ()));
2013  m.assign ("yminortick", octave_value (get_yminortick ()));
2014  m.assign ("yscale", octave_value (get_yscale ()));
2015  m.assign ("ytick", octave_value (get_ytick ()));
2016  m.assign ("yticklabel", octave_value (get_yticklabel ()));
2017  m.assign ("yticklabelmode", octave_value (get_yticklabelmode ()));
2018  m.assign ("ytickmode", octave_value (get_ytickmode ()));
2019  m.assign ("zcolor", octave_value (get_zcolor ()));
2020  m.assign ("zdir", octave_value (get_zdir ()));
2021  m.assign ("zgrid", octave_value (get_zgrid ()));
2022  m.assign ("zlabel", octave_value (get_zlabel ().as_octave_value ()));
2023  m.assign ("zlim", octave_value (get_zlim ()));
2024  m.assign ("zlimmode", octave_value (get_zlimmode ()));
2025  m.assign ("zminorgrid", octave_value (get_zminorgrid ()));
2026  m.assign ("zminortick", octave_value (get_zminortick ()));
2027  m.assign ("zscale", octave_value (get_zscale ()));
2028  m.assign ("ztick", octave_value (get_ztick ()));
2029  m.assign ("zticklabel", octave_value (get_zticklabel ()));
2030  m.assign ("zticklabelmode", octave_value (get_zticklabelmode ()));
2031  m.assign ("ztickmode", octave_value (get_ztickmode ()));
2032  if (all)
2033  m.assign ("__hold_all__", octave_value (get___hold_all__ ()));
2034  if (all)
2035  m.assign ("autopos_tag", octave_value (get_autopos_tag ()));
2036  if (all)
2037  m.assign ("looseinset", octave_value (get_looseinset ()));
2038  if (all)
2039  m.assign ("x_viewtransform", octave_value (get_x_viewtransform ()));
2040  if (all)
2041  m.assign ("x_projectiontransform", octave_value (get_x_projectiontransform ()));
2042  if (all)
2043  m.assign ("x_viewporttransform", octave_value (get_x_viewporttransform ()));
2044  if (all)
2045  m.assign ("x_normrendertransform", octave_value (get_x_normrendertransform ()));
2046  if (all)
2047  m.assign ("x_rendertransform", octave_value (get_x_rendertransform ()));
2048  if (all)
2049  m.assign ("xmtick", octave_value (get_xmtick ()));
2050  if (all)
2051  m.assign ("ymtick", octave_value (get_ymtick ()));
2052  if (all)
2053  m.assign ("zmtick", octave_value (get_zmtick ()));
2054  if (all)
2055  m.assign ("fontsize_points", octave_value (get_fontsize_points ()));
2056 
2057  return m;
2058 }
2059 
2061 axes::properties::get (const caseless_str& pname_arg) const
2062 {
2063  octave_value retval;
2064 
2065  const std::set<std::string>& pnames = all_property_names ();
2066 
2067  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
2068 
2069  if (error_state)
2070  return retval;
2071 
2072  if (pname.compare ("activepositionproperty"))
2073  retval = get_activepositionproperty ();
2074  else if (pname.compare ("alim"))
2075  retval = get_alim ();
2076  else if (pname.compare ("alimmode"))
2077  retval = get_alimmode ();
2078  else if (pname.compare ("ambientlightcolor"))
2079  retval = get_ambientlightcolor ();
2080  else if (pname.compare ("box"))
2081  retval = get_box ();
2082  else if (pname.compare ("cameraposition"))
2083  retval = get_cameraposition ();
2084  else if (pname.compare ("camerapositionmode"))
2085  retval = get_camerapositionmode ();
2086  else if (pname.compare ("cameratarget"))
2087  retval = get_cameratarget ();
2088  else if (pname.compare ("cameratargetmode"))
2089  retval = get_cameratargetmode ();
2090  else if (pname.compare ("cameraupvector"))
2091  retval = get_cameraupvector ();
2092  else if (pname.compare ("cameraupvectormode"))
2093  retval = get_cameraupvectormode ();
2094  else if (pname.compare ("cameraviewangle"))
2095  retval = get_cameraviewangle ();
2096  else if (pname.compare ("cameraviewanglemode"))
2097  retval = get_cameraviewanglemode ();
2098  else if (pname.compare ("clim"))
2099  retval = get_clim ();
2100  else if (pname.compare ("climmode"))
2101  retval = get_climmode ();
2102  else if (pname.compare ("color"))
2103  retval = get_color ();
2104  else if (pname.compare ("colororder"))
2105  retval = get_colororder ();
2106  else if (pname.compare ("currentpoint"))
2107  retval = get_currentpoint ();
2108  else if (pname.compare ("dataaspectratio"))
2109  retval = get_dataaspectratio ();
2110  else if (pname.compare ("dataaspectratiomode"))
2111  retval = get_dataaspectratiomode ();
2112  else if (pname.compare ("drawmode"))
2113  retval = get_drawmode ();
2114  else if (pname.compare ("fontangle"))
2115  retval = get_fontangle ();
2116  else if (pname.compare ("fontname"))
2117  retval = get_fontname ();
2118  else if (pname.compare ("fontsize"))
2119  retval = get_fontsize ();
2120  else if (pname.compare ("fontunits"))
2121  retval = get_fontunits ();
2122  else if (pname.compare ("fontweight"))
2123  retval = get_fontweight ();
2124  else if (pname.compare ("gridlinestyle"))
2125  retval = get_gridlinestyle ();
2126  else if (pname.compare ("interpreter"))
2127  retval = get_interpreter ();
2128  else if (pname.compare ("layer"))
2129  retval = get_layer ();
2130  else if (pname.compare ("linestyleorder"))
2131  retval = get_linestyleorder ();
2132  else if (pname.compare ("linewidth"))
2133  retval = get_linewidth ();
2134  else if (pname.compare ("minorgridlinestyle"))
2135  retval = get_minorgridlinestyle ();
2136  else if (pname.compare ("mousewheelzoom"))
2137  retval = get_mousewheelzoom ();
2138  else if (pname.compare ("nextplot"))
2139  retval = get_nextplot ();
2140  else if (pname.compare ("outerposition"))
2141  retval = get_outerposition ();
2142  else if (pname.compare ("plotboxaspectratio"))
2143  retval = get_plotboxaspectratio ();
2144  else if (pname.compare ("plotboxaspectratiomode"))
2145  retval = get_plotboxaspectratiomode ();
2146  else if (pname.compare ("position"))
2147  retval = get_position ();
2148  else if (pname.compare ("projection"))
2149  retval = get_projection ();
2150  else if (pname.compare ("tickdir"))
2151  retval = get_tickdir ();
2152  else if (pname.compare ("tickdirmode"))
2153  retval = get_tickdirmode ();
2154  else if (pname.compare ("ticklength"))
2155  retval = get_ticklength ();
2156  else if (pname.compare ("tightinset"))
2157  retval = get_tightinset ();
2158  else if (pname.compare ("title"))
2159  retval = get_title ().as_octave_value ();
2160  else if (pname.compare ("units"))
2161  retval = get_units ();
2162  else if (pname.compare ("view"))
2163  retval = get_view ();
2164  else if (pname.compare ("xaxislocation"))
2165  retval = get_xaxislocation ();
2166  else if (pname.compare ("xcolor"))
2167  retval = get_xcolor ();
2168  else if (pname.compare ("xdir"))
2169  retval = get_xdir ();
2170  else if (pname.compare ("xgrid"))
2171  retval = get_xgrid ();
2172  else if (pname.compare ("xlabel"))
2173  retval = get_xlabel ().as_octave_value ();
2174  else if (pname.compare ("xlim"))
2175  retval = get_xlim ();
2176  else if (pname.compare ("xlimmode"))
2177  retval = get_xlimmode ();
2178  else if (pname.compare ("xminorgrid"))
2179  retval = get_xminorgrid ();
2180  else if (pname.compare ("xminortick"))
2181  retval = get_xminortick ();
2182  else if (pname.compare ("xscale"))
2183  retval = get_xscale ();
2184  else if (pname.compare ("xtick"))
2185  retval = get_xtick ();
2186  else if (pname.compare ("xticklabel"))
2187  retval = get_xticklabel ();
2188  else if (pname.compare ("xticklabelmode"))
2189  retval = get_xticklabelmode ();
2190  else if (pname.compare ("xtickmode"))
2191  retval = get_xtickmode ();
2192  else if (pname.compare ("yaxislocation"))
2193  retval = get_yaxislocation ();
2194  else if (pname.compare ("ycolor"))
2195  retval = get_ycolor ();
2196  else if (pname.compare ("ydir"))
2197  retval = get_ydir ();
2198  else if (pname.compare ("ygrid"))
2199  retval = get_ygrid ();
2200  else if (pname.compare ("ylabel"))
2201  retval = get_ylabel ().as_octave_value ();
2202  else if (pname.compare ("ylim"))
2203  retval = get_ylim ();
2204  else if (pname.compare ("ylimmode"))
2205  retval = get_ylimmode ();
2206  else if (pname.compare ("yminorgrid"))
2207  retval = get_yminorgrid ();
2208  else if (pname.compare ("yminortick"))
2209  retval = get_yminortick ();
2210  else if (pname.compare ("yscale"))
2211  retval = get_yscale ();
2212  else if (pname.compare ("ytick"))
2213  retval = get_ytick ();
2214  else if (pname.compare ("yticklabel"))
2215  retval = get_yticklabel ();
2216  else if (pname.compare ("yticklabelmode"))
2217  retval = get_yticklabelmode ();
2218  else if (pname.compare ("ytickmode"))
2219  retval = get_ytickmode ();
2220  else if (pname.compare ("zcolor"))
2221  retval = get_zcolor ();
2222  else if (pname.compare ("zdir"))
2223  retval = get_zdir ();
2224  else if (pname.compare ("zgrid"))
2225  retval = get_zgrid ();
2226  else if (pname.compare ("zlabel"))
2227  retval = get_zlabel ().as_octave_value ();
2228  else if (pname.compare ("zlim"))
2229  retval = get_zlim ();
2230  else if (pname.compare ("zlimmode"))
2231  retval = get_zlimmode ();
2232  else if (pname.compare ("zminorgrid"))
2233  retval = get_zminorgrid ();
2234  else if (pname.compare ("zminortick"))
2235  retval = get_zminortick ();
2236  else if (pname.compare ("zscale"))
2237  retval = get_zscale ();
2238  else if (pname.compare ("ztick"))
2239  retval = get_ztick ();
2240  else if (pname.compare ("zticklabel"))
2241  retval = get_zticklabel ();
2242  else if (pname.compare ("zticklabelmode"))
2243  retval = get_zticklabelmode ();
2244  else if (pname.compare ("ztickmode"))
2245  retval = get_ztickmode ();
2246  else if (pname.compare ("__hold_all__"))
2247  retval = get___hold_all__ ();
2248  else if (pname.compare ("autopos_tag"))
2249  retval = get_autopos_tag ();
2250  else if (pname.compare ("looseinset"))
2251  retval = get_looseinset ();
2252  else if (pname.compare ("x_viewtransform"))
2253  retval = get_x_viewtransform ();
2254  else if (pname.compare ("x_projectiontransform"))
2255  retval = get_x_projectiontransform ();
2256  else if (pname.compare ("x_viewporttransform"))
2257  retval = get_x_viewporttransform ();
2258  else if (pname.compare ("x_normrendertransform"))
2259  retval = get_x_normrendertransform ();
2260  else if (pname.compare ("x_rendertransform"))
2261  retval = get_x_rendertransform ();
2262  else if (pname.compare ("xmtick"))
2263  retval = get_xmtick ();
2264  else if (pname.compare ("ymtick"))
2265  retval = get_ymtick ();
2266  else if (pname.compare ("zmtick"))
2267  retval = get_zmtick ();
2268  else if (pname.compare ("fontsize_points"))
2269  retval = get_fontsize_points ();
2270  else
2271  retval = base_properties::get (pname);
2272 
2273  return retval;
2274 }
2275 
2276 property
2278 {
2279  const std::set<std::string>& pnames = all_property_names ();
2280 
2281  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
2282 
2283  if (error_state)
2284  return property ();
2285 
2286  if (pname.compare ("activepositionproperty"))
2287  return property (&activepositionproperty, true);
2288  else if (pname.compare ("alim"))
2289  return property (&alim, true);
2290  else if (pname.compare ("alimmode"))
2291  return property (&alimmode, true);
2292  else if (pname.compare ("ambientlightcolor"))
2293  return property (&ambientlightcolor, true);
2294  else if (pname.compare ("box"))
2295  return property (&box, true);
2296  else if (pname.compare ("cameraposition"))
2297  return property (&cameraposition, true);
2298  else if (pname.compare ("camerapositionmode"))
2299  return property (&camerapositionmode, true);
2300  else if (pname.compare ("cameratarget"))
2301  return property (&cameratarget, true);
2302  else if (pname.compare ("cameratargetmode"))
2303  return property (&cameratargetmode, true);
2304  else if (pname.compare ("cameraupvector"))
2305  return property (&cameraupvector, true);
2306  else if (pname.compare ("cameraupvectormode"))
2307  return property (&cameraupvectormode, true);
2308  else if (pname.compare ("cameraviewangle"))
2309  return property (&cameraviewangle, true);
2310  else if (pname.compare ("cameraviewanglemode"))
2311  return property (&cameraviewanglemode, true);
2312  else if (pname.compare ("clim"))
2313  return property (&clim, true);
2314  else if (pname.compare ("climmode"))
2315  return property (&climmode, true);
2316  else if (pname.compare ("color"))
2317  return property (&color, true);
2318  else if (pname.compare ("colororder"))
2319  return property (&colororder, true);
2320  else if (pname.compare ("currentpoint"))
2321  return property (&currentpoint, true);
2322  else if (pname.compare ("dataaspectratio"))
2323  return property (&dataaspectratio, true);
2324  else if (pname.compare ("dataaspectratiomode"))
2325  return property (&dataaspectratiomode, true);
2326  else if (pname.compare ("drawmode"))
2327  return property (&drawmode, true);
2328  else if (pname.compare ("fontangle"))
2329  return property (&fontangle, true);
2330  else if (pname.compare ("fontname"))
2331  return property (&fontname, true);
2332  else if (pname.compare ("fontsize"))
2333  return property (&fontsize, true);
2334  else if (pname.compare ("fontunits"))
2335  return property (&fontunits, true);
2336  else if (pname.compare ("fontweight"))
2337  return property (&fontweight, true);
2338  else if (pname.compare ("gridlinestyle"))
2339  return property (&gridlinestyle, true);
2340  else if (pname.compare ("interpreter"))
2341  return property (&interpreter, true);
2342  else if (pname.compare ("layer"))
2343  return property (&layer, true);
2344  else if (pname.compare ("linestyleorder"))
2345  return property (&linestyleorder, true);
2346  else if (pname.compare ("linewidth"))
2347  return property (&linewidth, true);
2348  else if (pname.compare ("minorgridlinestyle"))
2349  return property (&minorgridlinestyle, true);
2350  else if (pname.compare ("mousewheelzoom"))
2351  return property (&mousewheelzoom, true);
2352  else if (pname.compare ("nextplot"))
2353  return property (&nextplot, true);
2354  else if (pname.compare ("outerposition"))
2355  return property (&outerposition, true);
2356  else if (pname.compare ("plotboxaspectratio"))
2357  return property (&plotboxaspectratio, true);
2358  else if (pname.compare ("plotboxaspectratiomode"))
2359  return property (&plotboxaspectratiomode, true);
2360  else if (pname.compare ("position"))
2361  return property (&position, true);
2362  else if (pname.compare ("projection"))
2363  return property (&projection, true);
2364  else if (pname.compare ("tickdir"))
2365  return property (&tickdir, true);
2366  else if (pname.compare ("tickdirmode"))
2367  return property (&tickdirmode, true);
2368  else if (pname.compare ("ticklength"))
2369  return property (&ticklength, true);
2370  else if (pname.compare ("tightinset"))
2371  return property (&tightinset, true);
2372  else if (pname.compare ("title"))
2373  return property (&title, true);
2374  else if (pname.compare ("units"))
2375  return property (&units, true);
2376  else if (pname.compare ("view"))
2377  return property (&view, true);
2378  else if (pname.compare ("xaxislocation"))
2379  return property (&xaxislocation, true);
2380  else if (pname.compare ("xcolor"))
2381  return property (&xcolor, true);
2382  else if (pname.compare ("xdir"))
2383  return property (&xdir, true);
2384  else if (pname.compare ("xgrid"))
2385  return property (&xgrid, true);
2386  else if (pname.compare ("xlabel"))
2387  return property (&xlabel, true);
2388  else if (pname.compare ("xlim"))
2389  return property (&xlim, true);
2390  else if (pname.compare ("xlimmode"))
2391  return property (&xlimmode, true);
2392  else if (pname.compare ("xminorgrid"))
2393  return property (&xminorgrid, true);
2394  else if (pname.compare ("xminortick"))
2395  return property (&xminortick, true);
2396  else if (pname.compare ("xscale"))
2397  return property (&xscale, true);
2398  else if (pname.compare ("xtick"))
2399  return property (&xtick, true);
2400  else if (pname.compare ("xticklabel"))
2401  return property (&xticklabel, true);
2402  else if (pname.compare ("xticklabelmode"))
2403  return property (&xticklabelmode, true);
2404  else if (pname.compare ("xtickmode"))
2405  return property (&xtickmode, true);
2406  else if (pname.compare ("yaxislocation"))
2407  return property (&yaxislocation, true);
2408  else if (pname.compare ("ycolor"))
2409  return property (&ycolor, true);
2410  else if (pname.compare ("ydir"))
2411  return property (&ydir, true);
2412  else if (pname.compare ("ygrid"))
2413  return property (&ygrid, true);
2414  else if (pname.compare ("ylabel"))
2415  return property (&ylabel, true);
2416  else if (pname.compare ("ylim"))
2417  return property (&ylim, true);
2418  else if (pname.compare ("ylimmode"))
2419  return property (&ylimmode, true);
2420  else if (pname.compare ("yminorgrid"))
2421  return property (&yminorgrid, true);
2422  else if (pname.compare ("yminortick"))
2423  return property (&yminortick, true);
2424  else if (pname.compare ("yscale"))
2425  return property (&yscale, true);
2426  else if (pname.compare ("ytick"))
2427  return property (&ytick, true);
2428  else if (pname.compare ("yticklabel"))
2429  return property (&yticklabel, true);
2430  else if (pname.compare ("yticklabelmode"))
2431  return property (&yticklabelmode, true);
2432  else if (pname.compare ("ytickmode"))
2433  return property (&ytickmode, true);
2434  else if (pname.compare ("zcolor"))
2435  return property (&zcolor, true);
2436  else if (pname.compare ("zdir"))
2437  return property (&zdir, true);
2438  else if (pname.compare ("zgrid"))
2439  return property (&zgrid, true);
2440  else if (pname.compare ("zlabel"))
2441  return property (&zlabel, true);
2442  else if (pname.compare ("zlim"))
2443  return property (&zlim, true);
2444  else if (pname.compare ("zlimmode"))
2445  return property (&zlimmode, true);
2446  else if (pname.compare ("zminorgrid"))
2447  return property (&zminorgrid, true);
2448  else if (pname.compare ("zminortick"))
2449  return property (&zminortick, true);
2450  else if (pname.compare ("zscale"))
2451  return property (&zscale, true);
2452  else if (pname.compare ("ztick"))
2453  return property (&ztick, true);
2454  else if (pname.compare ("zticklabel"))
2455  return property (&zticklabel, true);
2456  else if (pname.compare ("zticklabelmode"))
2457  return property (&zticklabelmode, true);
2458  else if (pname.compare ("ztickmode"))
2459  return property (&ztickmode, true);
2460  else if (pname.compare ("__hold_all__"))
2461  return property (&__hold_all__, true);
2462  else if (pname.compare ("autopos_tag"))
2463  return property (&autopos_tag, true);
2464  else if (pname.compare ("looseinset"))
2465  return property (&looseinset, true);
2466  else if (pname.compare ("x_viewtransform"))
2467  return property (&x_viewtransform, true);
2468  else if (pname.compare ("x_projectiontransform"))
2469  return property (&x_projectiontransform, true);
2470  else if (pname.compare ("x_viewporttransform"))
2471  return property (&x_viewporttransform, true);
2472  else if (pname.compare ("x_normrendertransform"))
2473  return property (&x_normrendertransform, true);
2474  else if (pname.compare ("x_rendertransform"))
2475  return property (&x_rendertransform, true);
2476  else if (pname.compare ("xmtick"))
2477  return property (&xmtick, true);
2478  else if (pname.compare ("ymtick"))
2479  return property (&ymtick, true);
2480  else if (pname.compare ("zmtick"))
2481  return property (&zmtick, true);
2482  else if (pname.compare ("fontsize_points"))
2483  return property (&fontsize_points, true);
2484  else
2485  return base_properties::get_property (pname);
2486 }
2487 
2490 {
2492 
2493  m["activepositionproperty"] = "outerposition";
2494  m["alim"] = default_lim ();
2495  m["alimmode"] = "auto";
2496  m["ambientlightcolor"] = color_values (1, 1, 1);
2497  m["box"] = "on";
2498  m["cameraposition"] = Matrix (1, 3, 0.0);
2499  m["camerapositionmode"] = "auto";
2500  m["cameratarget"] = Matrix (1, 3, 0.0);
2501  m["cameratargetmode"] = "auto";
2502  m["cameraupvector"] = Matrix (1, 3, 0.0);
2503  m["cameraupvectormode"] = "auto";
2504  m["cameraviewangle"] = 10.0;
2505  m["cameraviewanglemode"] = "auto";
2506  m["clim"] = default_lim ();
2507  m["climmode"] = "auto";
2508  m["color"] = color_property (color_values (1, 1, 1), radio_values ("none"));
2509  m["colororder"] = default_colororder ();
2510  m["currentpoint"] = Matrix (2, 3, 0.0);
2511  m["dataaspectratio"] = Matrix (1, 3, 1.0);
2512  m["dataaspectratiomode"] = "auto";
2513  m["drawmode"] = "normal";
2514  m["fontangle"] = "normal";
2515  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
2516  m["fontsize"] = 10;
2517  m["fontunits"] = "points";
2518  m["fontweight"] = "normal";
2519  m["gridlinestyle"] = ":";
2520  m["interpreter"] = "none";
2521  m["layer"] = "bottom";
2522  m["linestyleorder"] = "-";
2523  m["linewidth"] = 0.5;
2524  m["minorgridlinestyle"] = ":";
2525  m["mousewheelzoom"] = 0.5;
2526  m["nextplot"] = "replace";
2527  m["outerposition"] = default_axes_outerposition ();
2528  m["plotboxaspectratio"] = Matrix (1, 3, 1.0);
2529  m["plotboxaspectratiomode"] = "auto";
2530  m["position"] = default_axes_position ();
2531  m["projection"] = "orthographic";
2532  m["tickdir"] = "in";
2533  m["tickdirmode"] = "auto";
2534  m["ticklength"] = default_axes_ticklength ();
2535  m["tightinset"] = Matrix (1, 4, 0.0);
2536  m["units"] = "normalized";
2537  m["view"] = default_axes_view ();
2538  m["xaxislocation"] = "bottom";
2539  m["xcolor"] = color_values (0, 0, 0);
2540  m["xdir"] = "normal";
2541  m["xgrid"] = "off";
2542  m["xlim"] = default_lim ();
2543  m["xlimmode"] = "auto";
2544  m["xminorgrid"] = "off";
2545  m["xminortick"] = "off";
2546  m["xscale"] = "linear";
2547  m["xtick"] = default_axes_tick ();
2548  m["xticklabel"] = "";
2549  m["xticklabelmode"] = "auto";
2550  m["xtickmode"] = "auto";
2551  m["yaxislocation"] = "left";
2552  m["ycolor"] = color_values (0, 0, 0);
2553  m["ydir"] = "normal";
2554  m["ygrid"] = "off";
2555  m["ylim"] = default_lim ();
2556  m["ylimmode"] = "auto";
2557  m["yminorgrid"] = "off";
2558  m["yminortick"] = "off";
2559  m["yscale"] = "linear";
2560  m["ytick"] = default_axes_tick ();
2561  m["yticklabel"] = "";
2562  m["yticklabelmode"] = "auto";
2563  m["ytickmode"] = "auto";
2564  m["zcolor"] = color_values (0, 0, 0);
2565  m["zdir"] = "normal";
2566  m["zgrid"] = "off";
2567  m["zlim"] = default_lim ();
2568  m["zlimmode"] = "auto";
2569  m["zminorgrid"] = "off";
2570  m["zminortick"] = "off";
2571  m["zscale"] = "linear";
2572  m["ztick"] = default_axes_tick ();
2573  m["zticklabel"] = "";
2574  m["zticklabelmode"] = "auto";
2575  m["ztickmode"] = "auto";
2576  m["__hold_all__"] = "off";
2577  m["autopos_tag"] = "none";
2578  m["looseinset"] = Matrix (1, 4, 0.0);
2579  m["x_viewtransform"] = Matrix (4, 4, 0.0);
2580  m["x_projectiontransform"] = Matrix (4, 4, 0.0);
2581  m["x_viewporttransform"] = Matrix (4, 4, 0.0);
2582  m["x_normrendertransform"] = Matrix (4, 4, 0.0);
2583  m["x_rendertransform"] = Matrix (4, 4, 0.0);
2584  m["xmtick"] = Matrix ();
2585  m["ymtick"] = Matrix ();
2586  m["zmtick"] = Matrix ();
2587  m["fontsize_points"] = 0;
2588 
2589  return m;
2590 }
2591 
2592 std::string axes::properties::go_name ("axes");
2593 
2594 std::set<std::string>
2596 {
2597  static std::set<std::string> all_pnames;
2598 
2599  static bool initialized = false;
2600 
2601  if (! initialized)
2602  {
2603  all_pnames.insert ("activepositionproperty");
2604  all_pnames.insert ("alim");
2605  all_pnames.insert ("alimmode");
2606  all_pnames.insert ("ambientlightcolor");
2607  all_pnames.insert ("box");
2608  all_pnames.insert ("cameraposition");
2609  all_pnames.insert ("camerapositionmode");
2610  all_pnames.insert ("cameratarget");
2611  all_pnames.insert ("cameratargetmode");
2612  all_pnames.insert ("cameraupvector");
2613  all_pnames.insert ("cameraupvectormode");
2614  all_pnames.insert ("cameraviewangle");
2615  all_pnames.insert ("cameraviewanglemode");
2616  all_pnames.insert ("clim");
2617  all_pnames.insert ("climmode");
2618  all_pnames.insert ("color");
2619  all_pnames.insert ("colororder");
2620  all_pnames.insert ("currentpoint");
2621  all_pnames.insert ("dataaspectratio");
2622  all_pnames.insert ("dataaspectratiomode");
2623  all_pnames.insert ("drawmode");
2624  all_pnames.insert ("fontangle");
2625  all_pnames.insert ("fontname");
2626  all_pnames.insert ("fontsize");
2627  all_pnames.insert ("fontunits");
2628  all_pnames.insert ("fontweight");
2629  all_pnames.insert ("gridlinestyle");
2630  all_pnames.insert ("interpreter");
2631  all_pnames.insert ("layer");
2632  all_pnames.insert ("linestyleorder");
2633  all_pnames.insert ("linewidth");
2634  all_pnames.insert ("minorgridlinestyle");
2635  all_pnames.insert ("mousewheelzoom");
2636  all_pnames.insert ("nextplot");
2637  all_pnames.insert ("outerposition");
2638  all_pnames.insert ("plotboxaspectratio");
2639  all_pnames.insert ("plotboxaspectratiomode");
2640  all_pnames.insert ("position");
2641  all_pnames.insert ("projection");
2642  all_pnames.insert ("tickdir");
2643  all_pnames.insert ("tickdirmode");
2644  all_pnames.insert ("ticklength");
2645  all_pnames.insert ("tightinset");
2646  all_pnames.insert ("title");
2647  all_pnames.insert ("units");
2648  all_pnames.insert ("view");
2649  all_pnames.insert ("xaxislocation");
2650  all_pnames.insert ("xcolor");
2651  all_pnames.insert ("xdir");
2652  all_pnames.insert ("xgrid");
2653  all_pnames.insert ("xlabel");
2654  all_pnames.insert ("xlim");
2655  all_pnames.insert ("xlimmode");
2656  all_pnames.insert ("xminorgrid");
2657  all_pnames.insert ("xminortick");
2658  all_pnames.insert ("xscale");
2659  all_pnames.insert ("xtick");
2660  all_pnames.insert ("xticklabel");
2661  all_pnames.insert ("xticklabelmode");
2662  all_pnames.insert ("xtickmode");
2663  all_pnames.insert ("yaxislocation");
2664  all_pnames.insert ("ycolor");
2665  all_pnames.insert ("ydir");
2666  all_pnames.insert ("ygrid");
2667  all_pnames.insert ("ylabel");
2668  all_pnames.insert ("ylim");
2669  all_pnames.insert ("ylimmode");
2670  all_pnames.insert ("yminorgrid");
2671  all_pnames.insert ("yminortick");
2672  all_pnames.insert ("yscale");
2673  all_pnames.insert ("ytick");
2674  all_pnames.insert ("yticklabel");
2675  all_pnames.insert ("yticklabelmode");
2676  all_pnames.insert ("ytickmode");
2677  all_pnames.insert ("zcolor");
2678  all_pnames.insert ("zdir");
2679  all_pnames.insert ("zgrid");
2680  all_pnames.insert ("zlabel");
2681  all_pnames.insert ("zlim");
2682  all_pnames.insert ("zlimmode");
2683  all_pnames.insert ("zminorgrid");
2684  all_pnames.insert ("zminortick");
2685  all_pnames.insert ("zscale");
2686  all_pnames.insert ("ztick");
2687  all_pnames.insert ("zticklabel");
2688  all_pnames.insert ("zticklabelmode");
2689  all_pnames.insert ("ztickmode");
2690  all_pnames.insert ("__hold_all__");
2691  all_pnames.insert ("autopos_tag");
2692  all_pnames.insert ("looseinset");
2693  all_pnames.insert ("x_viewtransform");
2694  all_pnames.insert ("x_projectiontransform");
2695  all_pnames.insert ("x_viewporttransform");
2696  all_pnames.insert ("x_normrendertransform");
2697  all_pnames.insert ("x_rendertransform");
2698  all_pnames.insert ("xmtick");
2699  all_pnames.insert ("ymtick");
2700  all_pnames.insert ("zmtick");
2701  all_pnames.insert ("fontsize_points");
2702 
2703  std::set<std::string> base_pnames = base_properties::core_property_names ();
2704  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
2705 
2706  initialized = true;
2707  }
2708 
2709  return all_pnames;
2710 }
2711 
2712 bool
2714 {
2715  std::set<std::string> pnames = core_property_names ();
2716 
2717  return pnames.find (pname) != pnames.end ();
2718 }
2719 
2720 std::set<std::string>
2722 {
2723  static std::set<std::string> all_pnames;
2724 
2725  static bool initialized = false;
2726 
2727  if (! initialized)
2728  {
2729  all_pnames.insert ("tightinset");
2730  all_pnames.insert ("fontsize_points");
2731 
2732  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
2733  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
2734 
2735  initialized = true;
2736  }
2737 
2738  return all_pnames;
2739 }
2740 
2741 bool
2743 {
2744  std::set<std::string> pnames = readonly_property_names ();
2745 
2746  return pnames.find (pname) != pnames.end ();
2747 }
2748 
2749 std::set<std::string>
2751 {
2752  static std::set<std::string> all_pnames = core_property_names ();
2753 
2754  std::set<std::string> retval = all_pnames;
2755  std::set<std::string> base_props = base_properties::all_property_names ();
2756  retval.insert (base_props.begin (), base_props.end ());
2757 
2758  return retval;
2759 }
2760 
2761 bool
2763 {
2764  std::set<std::string> pnames = all_property_names ();
2765 
2766  return pnames.find (pname) != pnames.end ();
2767 }
2768 
2769 // ******** line ********
2770 
2772  : base_properties (go_name, mh, p),
2773  color ("color", mh, color_values (0, 0, 0)),
2774  displayname ("displayname", mh, ""),
2775  erasemode ("erasemode", mh, "{normal}|none|xor|background"),
2776  interpreter ("interpreter", mh, "{tex}|none|latex"),
2777  linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
2778  linewidth ("linewidth", mh, 0.5),
2779  marker ("marker", mh, "{none}|+|o|*|.|x|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
2780  markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("{auto}|none"), color_values (0, 0, 0))),
2781  markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("auto|{none}"), color_values (0, 0, 0))),
2782  markersize ("markersize", mh, 6),
2783  xdata ("xdata", mh, default_data ()),
2784  xdatasource ("xdatasource", mh, ""),
2785  ydata ("ydata", mh, default_data ()),
2786  ydatasource ("ydatasource", mh, ""),
2787  zdata ("zdata", mh, Matrix ()),
2788  zdatasource ("zdatasource", mh, ""),
2789  xlim ("xlim", mh, Matrix ()),
2790  ylim ("ylim", mh, Matrix ()),
2791  zlim ("zlim", mh, Matrix ()),
2792  xliminclude ("xliminclude", mh, "on"),
2793  yliminclude ("yliminclude", mh, "on"),
2794  zliminclude ("zliminclude", mh, "off")
2795 {
2796  color.set_id (ID_COLOR);
2806  xdata.set_id (ID_XDATA);
2808  ydata.set_id (ID_YDATA);
2810  zdata.set_id (ID_ZDATA);
2812  xlim.set_id (ID_XLIM);
2813  xlim.set_hidden (true);
2814  ylim.set_id (ID_YLIM);
2815  ylim.set_hidden (true);
2816  zlim.set_id (ID_ZLIM);
2817  zlim.set_hidden (true);
2819  xliminclude.set_hidden (true);
2821  yliminclude.set_hidden (true);
2823  zliminclude.set_hidden (true);
2824  init ();
2825 }
2826 
2827 void
2828 line::properties::set (const caseless_str& pname_arg, const octave_value& val)
2829 {
2830  const std::set<std::string>& pnames = all_property_names ();
2831 
2832  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
2833 
2834  if (error_state)
2835  return;
2836  else if (has_readonly_property (pname))
2837  {
2838  error ("set: \"%s\" is read-only", pname.c_str ());
2839  return;
2840  }
2841 
2842  if (pname.compare ("color"))
2843  set_color (val);
2844  else if (pname.compare ("displayname"))
2845  set_displayname (val);
2846  else if (pname.compare ("erasemode"))
2847  set_erasemode (val);
2848  else if (pname.compare ("interpreter"))
2849  set_interpreter (val);
2850  else if (pname.compare ("linestyle"))
2851  set_linestyle (val);
2852  else if (pname.compare ("linewidth"))
2853  set_linewidth (val);
2854  else if (pname.compare ("marker"))
2855  set_marker (val);
2856  else if (pname.compare ("markeredgecolor"))
2857  set_markeredgecolor (val);
2858  else if (pname.compare ("markerfacecolor"))
2859  set_markerfacecolor (val);
2860  else if (pname.compare ("markersize"))
2861  set_markersize (val);
2862  else if (pname.compare ("xdata"))
2863  set_xdata (val);
2864  else if (pname.compare ("xdatasource"))
2865  set_xdatasource (val);
2866  else if (pname.compare ("ydata"))
2867  set_ydata (val);
2868  else if (pname.compare ("ydatasource"))
2869  set_ydatasource (val);
2870  else if (pname.compare ("zdata"))
2871  set_zdata (val);
2872  else if (pname.compare ("zdatasource"))
2873  set_zdatasource (val);
2874  else if (pname.compare ("xliminclude"))
2875  set_xliminclude (val);
2876  else if (pname.compare ("yliminclude"))
2877  set_yliminclude (val);
2878  else if (pname.compare ("zliminclude"))
2879  set_zliminclude (val);
2880  else
2881  base_properties::set (pname, val);
2882 }
2883 
2885 line::properties::get (bool all) const
2886 {
2888 
2889  m.assign ("color", octave_value (get_color ()));
2890  m.assign ("displayname", octave_value (get_displayname ()));
2891  m.assign ("erasemode", octave_value (get_erasemode ()));
2892  m.assign ("interpreter", octave_value (get_interpreter ()));
2893  m.assign ("linestyle", octave_value (get_linestyle ()));
2894  m.assign ("linewidth", octave_value (get_linewidth ()));
2895  m.assign ("marker", octave_value (get_marker ()));
2896  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
2897  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
2898  m.assign ("markersize", octave_value (get_markersize ()));
2899  m.assign ("xdata", octave_value (get_xdata ()));
2900  m.assign ("xdatasource", octave_value (get_xdatasource ()));
2901  m.assign ("ydata", octave_value (get_ydata ()));
2902  m.assign ("ydatasource", octave_value (get_ydatasource ()));
2903  m.assign ("zdata", octave_value (get_zdata ()));
2904  m.assign ("zdatasource", octave_value (get_zdatasource ()));
2905  if (all)
2906  m.assign ("xlim", octave_value (get_xlim ()));
2907  if (all)
2908  m.assign ("ylim", octave_value (get_ylim ()));
2909  if (all)
2910  m.assign ("zlim", octave_value (get_zlim ()));
2911  if (all)
2912  m.assign ("xliminclude", octave_value (get_xliminclude ()));
2913  if (all)
2914  m.assign ("yliminclude", octave_value (get_yliminclude ()));
2915  if (all)
2916  m.assign ("zliminclude", octave_value (get_zliminclude ()));
2917 
2918  return m;
2919 }
2920 
2922 line::properties::get (const caseless_str& pname_arg) const
2923 {
2924  octave_value retval;
2925 
2926  const std::set<std::string>& pnames = all_property_names ();
2927 
2928  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
2929 
2930  if (error_state)
2931  return retval;
2932 
2933  if (pname.compare ("color"))
2934  retval = get_color ();
2935  else if (pname.compare ("displayname"))
2936  retval = get_displayname ();
2937  else if (pname.compare ("erasemode"))
2938  retval = get_erasemode ();
2939  else if (pname.compare ("interpreter"))
2940  retval = get_interpreter ();
2941  else if (pname.compare ("linestyle"))
2942  retval = get_linestyle ();
2943  else if (pname.compare ("linewidth"))
2944  retval = get_linewidth ();
2945  else if (pname.compare ("marker"))
2946  retval = get_marker ();
2947  else if (pname.compare ("markeredgecolor"))
2948  retval = get_markeredgecolor ();
2949  else if (pname.compare ("markerfacecolor"))
2950  retval = get_markerfacecolor ();
2951  else if (pname.compare ("markersize"))
2952  retval = get_markersize ();
2953  else if (pname.compare ("xdata"))
2954  retval = get_xdata ();
2955  else if (pname.compare ("xdatasource"))
2956  retval = get_xdatasource ();
2957  else if (pname.compare ("ydata"))
2958  retval = get_ydata ();
2959  else if (pname.compare ("ydatasource"))
2960  retval = get_ydatasource ();
2961  else if (pname.compare ("zdata"))
2962  retval = get_zdata ();
2963  else if (pname.compare ("zdatasource"))
2964  retval = get_zdatasource ();
2965  else if (pname.compare ("xlim"))
2966  retval = get_xlim ();
2967  else if (pname.compare ("ylim"))
2968  retval = get_ylim ();
2969  else if (pname.compare ("zlim"))
2970  retval = get_zlim ();
2971  else if (pname.compare ("xliminclude"))
2972  retval = get_xliminclude ();
2973  else if (pname.compare ("yliminclude"))
2974  retval = get_yliminclude ();
2975  else if (pname.compare ("zliminclude"))
2976  retval = get_zliminclude ();
2977  else
2978  retval = base_properties::get (pname);
2979 
2980  return retval;
2981 }
2982 
2983 property
2985 {
2986  const std::set<std::string>& pnames = all_property_names ();
2987 
2988  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
2989 
2990  if (error_state)
2991  return property ();
2992 
2993  if (pname.compare ("color"))
2994  return property (&color, true);
2995  else if (pname.compare ("displayname"))
2996  return property (&displayname, true);
2997  else if (pname.compare ("erasemode"))
2998  return property (&erasemode, true);
2999  else if (pname.compare ("interpreter"))
3000  return property (&interpreter, true);
3001  else if (pname.compare ("linestyle"))
3002  return property (&linestyle, true);
3003  else if (pname.compare ("linewidth"))
3004  return property (&linewidth, true);
3005  else if (pname.compare ("marker"))
3006  return property (&marker, true);
3007  else if (pname.compare ("markeredgecolor"))
3008  return property (&markeredgecolor, true);
3009  else if (pname.compare ("markerfacecolor"))
3010  return property (&markerfacecolor, true);
3011  else if (pname.compare ("markersize"))
3012  return property (&markersize, true);
3013  else if (pname.compare ("xdata"))
3014  return property (&xdata, true);
3015  else if (pname.compare ("xdatasource"))
3016  return property (&xdatasource, true);
3017  else if (pname.compare ("ydata"))
3018  return property (&ydata, true);
3019  else if (pname.compare ("ydatasource"))
3020  return property (&ydatasource, true);
3021  else if (pname.compare ("zdata"))
3022  return property (&zdata, true);
3023  else if (pname.compare ("zdatasource"))
3024  return property (&zdatasource, true);
3025  else if (pname.compare ("xlim"))
3026  return property (&xlim, true);
3027  else if (pname.compare ("ylim"))
3028  return property (&ylim, true);
3029  else if (pname.compare ("zlim"))
3030  return property (&zlim, true);
3031  else if (pname.compare ("xliminclude"))
3032  return property (&xliminclude, true);
3033  else if (pname.compare ("yliminclude"))
3034  return property (&yliminclude, true);
3035  else if (pname.compare ("zliminclude"))
3036  return property (&zliminclude, true);
3037  else
3038  return base_properties::get_property (pname);
3039 }
3040 
3043 {
3045 
3046  m["color"] = color_values (0, 0, 0);
3047  m["displayname"] = "";
3048  m["erasemode"] = "normal";
3049  m["interpreter"] = "tex";
3050  m["linestyle"] = "-";
3051  m["linewidth"] = 0.5;
3052  m["marker"] = "none";
3053  m["markeredgecolor"] = color_property (radio_values ("{auto}|none"), color_values (0, 0, 0));
3054  m["markerfacecolor"] = color_property (radio_values ("auto|{none}"), color_values (0, 0, 0));
3055  m["markersize"] = 6;
3056  m["xdata"] = default_data ();
3057  m["xdatasource"] = "";
3058  m["ydata"] = default_data ();
3059  m["ydatasource"] = "";
3060  m["zdata"] = Matrix ();
3061  m["zdatasource"] = "";
3062  m["xlim"] = Matrix ();
3063  m["ylim"] = Matrix ();
3064  m["zlim"] = Matrix ();
3065  m["xliminclude"] = "on";
3066  m["yliminclude"] = "on";
3067  m["zliminclude"] = "off";
3068 
3069  return m;
3070 }
3071 
3072 std::string line::properties::go_name ("line");
3073 
3074 std::set<std::string>
3076 {
3077  static std::set<std::string> all_pnames;
3078 
3079  static bool initialized = false;
3080 
3081  if (! initialized)
3082  {
3083  all_pnames.insert ("color");
3084  all_pnames.insert ("displayname");
3085  all_pnames.insert ("erasemode");
3086  all_pnames.insert ("interpreter");
3087  all_pnames.insert ("linestyle");
3088  all_pnames.insert ("linewidth");
3089  all_pnames.insert ("marker");
3090  all_pnames.insert ("markeredgecolor");
3091  all_pnames.insert ("markerfacecolor");
3092  all_pnames.insert ("markersize");
3093  all_pnames.insert ("xdata");
3094  all_pnames.insert ("xdatasource");
3095  all_pnames.insert ("ydata");
3096  all_pnames.insert ("ydatasource");
3097  all_pnames.insert ("zdata");
3098  all_pnames.insert ("zdatasource");
3099  all_pnames.insert ("xlim");
3100  all_pnames.insert ("ylim");
3101  all_pnames.insert ("zlim");
3102  all_pnames.insert ("xliminclude");
3103  all_pnames.insert ("yliminclude");
3104  all_pnames.insert ("zliminclude");
3105 
3106  std::set<std::string> base_pnames = base_properties::core_property_names ();
3107  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3108 
3109  initialized = true;
3110  }
3111 
3112  return all_pnames;
3113 }
3114 
3115 bool
3117 {
3118  std::set<std::string> pnames = core_property_names ();
3119 
3120  return pnames.find (pname) != pnames.end ();
3121 }
3122 
3123 std::set<std::string>
3125 {
3126  static std::set<std::string> all_pnames;
3127 
3128  static bool initialized = false;
3129 
3130  if (! initialized)
3131  {
3132  all_pnames.insert ("xlim");
3133  all_pnames.insert ("ylim");
3134  all_pnames.insert ("zlim");
3135 
3136  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
3137  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3138 
3139  initialized = true;
3140  }
3141 
3142  return all_pnames;
3143 }
3144 
3145 bool
3147 {
3148  std::set<std::string> pnames = readonly_property_names ();
3149 
3150  return pnames.find (pname) != pnames.end ();
3151 }
3152 
3153 std::set<std::string>
3155 {
3156  static std::set<std::string> all_pnames = core_property_names ();
3157 
3158  std::set<std::string> retval = all_pnames;
3159  std::set<std::string> base_props = base_properties::all_property_names ();
3160  retval.insert (base_props.begin (), base_props.end ());
3161 
3162  return retval;
3163 }
3164 
3165 bool
3167 {
3168  std::set<std::string> pnames = all_property_names ();
3169 
3170  return pnames.find (pname) != pnames.end ();
3171 }
3172 
3173 // ******** text ********
3174 
3176  : base_properties (go_name, mh, p),
3177  backgroundcolor ("backgroundcolor", mh, color_property (radio_values ("{none}"), color_values (1, 1, 1))),
3178  color ("color", mh, color_values (0, 0, 0)),
3179  displayname ("displayname", mh, ""),
3180  edgecolor ("edgecolor", mh, color_property (radio_values ("{none}"), color_values (0, 0, 0))),
3181  editing ("editing", mh, "off"),
3182  erasemode ("erasemode", mh, "{normal}|none|xor|background"),
3183  extent ("extent", mh, Matrix (1, 4, 0.0)),
3184  fontangle ("fontangle", mh, "{normal}|italic|oblique"),
3185  fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
3186  fontsize ("fontsize", mh, 10),
3187  fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
3188  fontweight ("fontweight", mh, "light|{normal}|demi|bold"),
3189  horizontalalignment ("horizontalalignment", mh, "{left}|center|right"),
3190  interpreter ("interpreter", mh, "{tex}|none|latex"),
3191  linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
3192  linewidth ("linewidth", mh, 0.5),
3193  margin ("margin", mh, 2),
3194  position ("position", mh, Matrix (1, 3, 0.0)),
3195  rotation ("rotation", mh, 0),
3196  string ("string", mh, ""),
3197  units ("units", mh, "{data}|pixels|normalized|inches|centimeters|points"),
3198  verticalalignment ("verticalalignment", mh, "top|cap|{middle}|baseline|bottom"),
3199  xlim ("xlim", mh, Matrix ()),
3200  ylim ("ylim", mh, Matrix ()),
3201  zlim ("zlim", mh, Matrix ()),
3202  xliminclude ("xliminclude", mh, "off"),
3203  yliminclude ("yliminclude", mh, "off"),
3204  zliminclude ("zliminclude", mh, "off"),
3205  positionmode ("positionmode", mh, "{auto}|manual"),
3206  rotationmode ("rotationmode", mh, "{auto}|manual"),
3207  horizontalalignmentmode ("horizontalalignmentmode", mh, "{auto}|manual"),
3208  verticalalignmentmode ("verticalalignmentmode", mh, "{auto}|manual"),
3209  autopos_tag ("autopos_tag", mh, "{none}|xlabel|ylabel|zlabel|title"),
3210  fontsize_points ("fontsize_points", mh, 0)
3211 {
3213  color.set_id (ID_COLOR);
3231  string.set_id (ID_STRING);
3232  units.set_id (ID_UNITS);
3234  xlim.set_id (ID_XLIM);
3235  xlim.set_hidden (true);
3236  ylim.set_id (ID_YLIM);
3237  ylim.set_hidden (true);
3238  zlim.set_id (ID_ZLIM);
3239  zlim.set_hidden (true);
3241  xliminclude.set_hidden (true);
3243  yliminclude.set_hidden (true);
3245  zliminclude.set_hidden (true);
3247  positionmode.set_hidden (true);
3249  rotationmode.set_hidden (true);
3255  autopos_tag.set_hidden (true);
3257  fontsize_points.set_hidden (true);
3258  init ();
3259 }
3260 
3261 void
3262 text::properties::set (const caseless_str& pname_arg, const octave_value& val)
3263 {
3264  const std::set<std::string>& pnames = all_property_names ();
3265 
3266  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
3267 
3268  if (error_state)
3269  return;
3270  else if (has_readonly_property (pname))
3271  {
3272  error ("set: \"%s\" is read-only", pname.c_str ());
3273  return;
3274  }
3275 
3276  if (pname.compare ("backgroundcolor"))
3277  set_backgroundcolor (val);
3278  else if (pname.compare ("color"))
3279  set_color (val);
3280  else if (pname.compare ("displayname"))
3281  set_displayname (val);
3282  else if (pname.compare ("edgecolor"))
3283  set_edgecolor (val);
3284  else if (pname.compare ("editing"))
3285  set_editing (val);
3286  else if (pname.compare ("erasemode"))
3287  set_erasemode (val);
3288  else if (pname.compare ("fontangle"))
3289  set_fontangle (val);
3290  else if (pname.compare ("fontname"))
3291  set_fontname (val);
3292  else if (pname.compare ("fontsize"))
3293  set_fontsize (val);
3294  else if (pname.compare ("fontunits"))
3295  set_fontunits (val);
3296  else if (pname.compare ("fontweight"))
3297  set_fontweight (val);
3298  else if (pname.compare ("horizontalalignment"))
3299  set_horizontalalignment (val);
3300  else if (pname.compare ("interpreter"))
3301  set_interpreter (val);
3302  else if (pname.compare ("linestyle"))
3303  set_linestyle (val);
3304  else if (pname.compare ("linewidth"))
3305  set_linewidth (val);
3306  else if (pname.compare ("margin"))
3307  set_margin (val);
3308  else if (pname.compare ("position"))
3309  set_position (val);
3310  else if (pname.compare ("rotation"))
3311  set_rotation (val);
3312  else if (pname.compare ("string"))
3313  set_string (val);
3314  else if (pname.compare ("units"))
3315  set_units (val);
3316  else if (pname.compare ("verticalalignment"))
3317  set_verticalalignment (val);
3318  else if (pname.compare ("xliminclude"))
3319  set_xliminclude (val);
3320  else if (pname.compare ("yliminclude"))
3321  set_yliminclude (val);
3322  else if (pname.compare ("zliminclude"))
3323  set_zliminclude (val);
3324  else if (pname.compare ("positionmode"))
3325  set_positionmode (val);
3326  else if (pname.compare ("rotationmode"))
3327  set_rotationmode (val);
3328  else if (pname.compare ("horizontalalignmentmode"))
3329  set_horizontalalignmentmode (val);
3330  else if (pname.compare ("verticalalignmentmode"))
3331  set_verticalalignmentmode (val);
3332  else if (pname.compare ("autopos_tag"))
3333  set_autopos_tag (val);
3334  else
3335  base_properties::set (pname, val);
3336 }
3337 
3339 text::properties::get (bool all) const
3340 {
3342 
3343  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
3344  m.assign ("color", octave_value (get_color ()));
3345  m.assign ("displayname", octave_value (get_displayname ()));
3346  m.assign ("edgecolor", octave_value (get_edgecolor ()));
3347  m.assign ("editing", octave_value (get_editing ()));
3348  m.assign ("erasemode", octave_value (get_erasemode ()));
3349  m.assign ("extent", octave_value (get_extent ()));
3350  m.assign ("fontangle", octave_value (get_fontangle ()));
3351  m.assign ("fontname", octave_value (get_fontname ()));
3352  m.assign ("fontsize", octave_value (get_fontsize ()));
3353  m.assign ("fontunits", octave_value (get_fontunits ()));
3354  m.assign ("fontweight", octave_value (get_fontweight ()));
3355  m.assign ("horizontalalignment", octave_value (get_horizontalalignment ()));
3356  m.assign ("interpreter", octave_value (get_interpreter ()));
3357  m.assign ("linestyle", octave_value (get_linestyle ()));
3358  m.assign ("linewidth", octave_value (get_linewidth ()));
3359  m.assign ("margin", octave_value (get_margin ()));
3360  m.assign ("position", octave_value (get_position ()));
3361  m.assign ("rotation", octave_value (get_rotation ()));
3362  m.assign ("string", octave_value (get_string ()));
3363  m.assign ("units", octave_value (get_units ()));
3364  m.assign ("verticalalignment", octave_value (get_verticalalignment ()));
3365  if (all)
3366  m.assign ("xlim", octave_value (get_xlim ()));
3367  if (all)
3368  m.assign ("ylim", octave_value (get_ylim ()));
3369  if (all)
3370  m.assign ("zlim", octave_value (get_zlim ()));
3371  if (all)
3372  m.assign ("xliminclude", octave_value (get_xliminclude ()));
3373  if (all)
3374  m.assign ("yliminclude", octave_value (get_yliminclude ()));
3375  if (all)
3376  m.assign ("zliminclude", octave_value (get_zliminclude ()));
3377  if (all)
3378  m.assign ("positionmode", octave_value (get_positionmode ()));
3379  if (all)
3380  m.assign ("rotationmode", octave_value (get_rotationmode ()));
3381  if (all)
3382  m.assign ("horizontalalignmentmode", octave_value (get_horizontalalignmentmode ()));
3383  if (all)
3384  m.assign ("verticalalignmentmode", octave_value (get_verticalalignmentmode ()));
3385  if (all)
3386  m.assign ("autopos_tag", octave_value (get_autopos_tag ()));
3387  if (all)
3388  m.assign ("fontsize_points", octave_value (get_fontsize_points ()));
3389 
3390  return m;
3391 }
3392 
3394 text::properties::get (const caseless_str& pname_arg) const
3395 {
3396  octave_value retval;
3397 
3398  const std::set<std::string>& pnames = all_property_names ();
3399 
3400  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
3401 
3402  if (error_state)
3403  return retval;
3404 
3405  if (pname.compare ("backgroundcolor"))
3406  retval = get_backgroundcolor ();
3407  else if (pname.compare ("color"))
3408  retval = get_color ();
3409  else if (pname.compare ("displayname"))
3410  retval = get_displayname ();
3411  else if (pname.compare ("edgecolor"))
3412  retval = get_edgecolor ();
3413  else if (pname.compare ("editing"))
3414  retval = get_editing ();
3415  else if (pname.compare ("erasemode"))
3416  retval = get_erasemode ();
3417  else if (pname.compare ("extent"))
3418  retval = get_extent ();
3419  else if (pname.compare ("fontangle"))
3420  retval = get_fontangle ();
3421  else if (pname.compare ("fontname"))
3422  retval = get_fontname ();
3423  else if (pname.compare ("fontsize"))
3424  retval = get_fontsize ();
3425  else if (pname.compare ("fontunits"))
3426  retval = get_fontunits ();
3427  else if (pname.compare ("fontweight"))
3428  retval = get_fontweight ();
3429  else if (pname.compare ("horizontalalignment"))
3430  retval = get_horizontalalignment ();
3431  else if (pname.compare ("interpreter"))
3432  retval = get_interpreter ();
3433  else if (pname.compare ("linestyle"))
3434  retval = get_linestyle ();
3435  else if (pname.compare ("linewidth"))
3436  retval = get_linewidth ();
3437  else if (pname.compare ("margin"))
3438  retval = get_margin ();
3439  else if (pname.compare ("position"))
3440  retval = get_position ();
3441  else if (pname.compare ("rotation"))
3442  retval = get_rotation ();
3443  else if (pname.compare ("string"))
3444  retval = get_string ();
3445  else if (pname.compare ("units"))
3446  retval = get_units ();
3447  else if (pname.compare ("verticalalignment"))
3448  retval = get_verticalalignment ();
3449  else if (pname.compare ("xlim"))
3450  retval = get_xlim ();
3451  else if (pname.compare ("ylim"))
3452  retval = get_ylim ();
3453  else if (pname.compare ("zlim"))
3454  retval = get_zlim ();
3455  else if (pname.compare ("xliminclude"))
3456  retval = get_xliminclude ();
3457  else if (pname.compare ("yliminclude"))
3458  retval = get_yliminclude ();
3459  else if (pname.compare ("zliminclude"))
3460  retval = get_zliminclude ();
3461  else if (pname.compare ("positionmode"))
3462  retval = get_positionmode ();
3463  else if (pname.compare ("rotationmode"))
3464  retval = get_rotationmode ();
3465  else if (pname.compare ("horizontalalignmentmode"))
3466  retval = get_horizontalalignmentmode ();
3467  else if (pname.compare ("verticalalignmentmode"))
3468  retval = get_verticalalignmentmode ();
3469  else if (pname.compare ("autopos_tag"))
3470  retval = get_autopos_tag ();
3471  else if (pname.compare ("fontsize_points"))
3472  retval = get_fontsize_points ();
3473  else
3474  retval = base_properties::get (pname);
3475 
3476  return retval;
3477 }
3478 
3479 property
3481 {
3482  const std::set<std::string>& pnames = all_property_names ();
3483 
3484  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
3485 
3486  if (error_state)
3487  return property ();
3488 
3489  if (pname.compare ("backgroundcolor"))
3490  return property (&backgroundcolor, true);
3491  else if (pname.compare ("color"))
3492  return property (&color, true);
3493  else if (pname.compare ("displayname"))
3494  return property (&displayname, true);
3495  else if (pname.compare ("edgecolor"))
3496  return property (&edgecolor, true);
3497  else if (pname.compare ("editing"))
3498  return property (&editing, true);
3499  else if (pname.compare ("erasemode"))
3500  return property (&erasemode, true);
3501  else if (pname.compare ("extent"))
3502  return property (&extent, true);
3503  else if (pname.compare ("fontangle"))
3504  return property (&fontangle, true);
3505  else if (pname.compare ("fontname"))
3506  return property (&fontname, true);
3507  else if (pname.compare ("fontsize"))
3508  return property (&fontsize, true);
3509  else if (pname.compare ("fontunits"))
3510  return property (&fontunits, true);
3511  else if (pname.compare ("fontweight"))
3512  return property (&fontweight, true);
3513  else if (pname.compare ("horizontalalignment"))
3514  return property (&horizontalalignment, true);
3515  else if (pname.compare ("interpreter"))
3516  return property (&interpreter, true);
3517  else if (pname.compare ("linestyle"))
3518  return property (&linestyle, true);
3519  else if (pname.compare ("linewidth"))
3520  return property (&linewidth, true);
3521  else if (pname.compare ("margin"))
3522  return property (&margin, true);
3523  else if (pname.compare ("position"))
3524  return property (&position, true);
3525  else if (pname.compare ("rotation"))
3526  return property (&rotation, true);
3527  else if (pname.compare ("string"))
3528  return property (&string, true);
3529  else if (pname.compare ("units"))
3530  return property (&units, true);
3531  else if (pname.compare ("verticalalignment"))
3532  return property (&verticalalignment, true);
3533  else if (pname.compare ("xlim"))
3534  return property (&xlim, true);
3535  else if (pname.compare ("ylim"))
3536  return property (&ylim, true);
3537  else if (pname.compare ("zlim"))
3538  return property (&zlim, true);
3539  else if (pname.compare ("xliminclude"))
3540  return property (&xliminclude, true);
3541  else if (pname.compare ("yliminclude"))
3542  return property (&yliminclude, true);
3543  else if (pname.compare ("zliminclude"))
3544  return property (&zliminclude, true);
3545  else if (pname.compare ("positionmode"))
3546  return property (&positionmode, true);
3547  else if (pname.compare ("rotationmode"))
3548  return property (&rotationmode, true);
3549  else if (pname.compare ("horizontalalignmentmode"))
3550  return property (&horizontalalignmentmode, true);
3551  else if (pname.compare ("verticalalignmentmode"))
3552  return property (&verticalalignmentmode, true);
3553  else if (pname.compare ("autopos_tag"))
3554  return property (&autopos_tag, true);
3555  else if (pname.compare ("fontsize_points"))
3556  return property (&fontsize_points, true);
3557  else
3558  return base_properties::get_property (pname);
3559 }
3560 
3563 {
3565 
3566  m["backgroundcolor"] = color_property (radio_values ("{none}"), color_values (1, 1, 1));
3567  m["color"] = color_values (0, 0, 0);
3568  m["displayname"] = "";
3569  m["edgecolor"] = color_property (radio_values ("{none}"), color_values (0, 0, 0));
3570  m["editing"] = "off";
3571  m["erasemode"] = "normal";
3572  m["extent"] = Matrix (1, 4, 0.0);
3573  m["fontangle"] = "normal";
3574  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
3575  m["fontsize"] = 10;
3576  m["fontunits"] = "points";
3577  m["fontweight"] = "normal";
3578  m["horizontalalignment"] = "left";
3579  m["interpreter"] = "tex";
3580  m["linestyle"] = "-";
3581  m["linewidth"] = 0.5;
3582  m["margin"] = 2;
3583  m["position"] = Matrix (1, 3, 0.0);
3584  m["rotation"] = 0;
3585  m["string"] = "";
3586  m["units"] = "data";
3587  m["verticalalignment"] = "middle";
3588  m["xlim"] = Matrix ();
3589  m["ylim"] = Matrix ();
3590  m["zlim"] = Matrix ();
3591  m["xliminclude"] = "off";
3592  m["yliminclude"] = "off";
3593  m["zliminclude"] = "off";
3594  m["positionmode"] = "auto";
3595  m["rotationmode"] = "auto";
3596  m["horizontalalignmentmode"] = "auto";
3597  m["verticalalignmentmode"] = "auto";
3598  m["autopos_tag"] = "none";
3599  m["fontsize_points"] = 0;
3600 
3601  return m;
3602 }
3603 
3604 std::string text::properties::go_name ("text");
3605 
3606 std::set<std::string>
3608 {
3609  static std::set<std::string> all_pnames;
3610 
3611  static bool initialized = false;
3612 
3613  if (! initialized)
3614  {
3615  all_pnames.insert ("backgroundcolor");
3616  all_pnames.insert ("color");
3617  all_pnames.insert ("displayname");
3618  all_pnames.insert ("edgecolor");
3619  all_pnames.insert ("editing");
3620  all_pnames.insert ("erasemode");
3621  all_pnames.insert ("extent");
3622  all_pnames.insert ("fontangle");
3623  all_pnames.insert ("fontname");
3624  all_pnames.insert ("fontsize");
3625  all_pnames.insert ("fontunits");
3626  all_pnames.insert ("fontweight");
3627  all_pnames.insert ("horizontalalignment");
3628  all_pnames.insert ("interpreter");
3629  all_pnames.insert ("linestyle");
3630  all_pnames.insert ("linewidth");
3631  all_pnames.insert ("margin");
3632  all_pnames.insert ("position");
3633  all_pnames.insert ("rotation");
3634  all_pnames.insert ("string");
3635  all_pnames.insert ("units");
3636  all_pnames.insert ("verticalalignment");
3637  all_pnames.insert ("xlim");
3638  all_pnames.insert ("ylim");
3639  all_pnames.insert ("zlim");
3640  all_pnames.insert ("xliminclude");
3641  all_pnames.insert ("yliminclude");
3642  all_pnames.insert ("zliminclude");
3643  all_pnames.insert ("positionmode");
3644  all_pnames.insert ("rotationmode");
3645  all_pnames.insert ("horizontalalignmentmode");
3646  all_pnames.insert ("verticalalignmentmode");
3647  all_pnames.insert ("autopos_tag");
3648  all_pnames.insert ("fontsize_points");
3649 
3650  std::set<std::string> base_pnames = base_properties::core_property_names ();
3651  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3652 
3653  initialized = true;
3654  }
3655 
3656  return all_pnames;
3657 }
3658 
3659 bool
3661 {
3662  std::set<std::string> pnames = core_property_names ();
3663 
3664  return pnames.find (pname) != pnames.end ();
3665 }
3666 
3667 std::set<std::string>
3669 {
3670  static std::set<std::string> all_pnames;
3671 
3672  static bool initialized = false;
3673 
3674  if (! initialized)
3675  {
3676  all_pnames.insert ("extent");
3677  all_pnames.insert ("xlim");
3678  all_pnames.insert ("ylim");
3679  all_pnames.insert ("zlim");
3680  all_pnames.insert ("fontsize_points");
3681 
3682  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
3683  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
3684 
3685  initialized = true;
3686  }
3687 
3688  return all_pnames;
3689 }
3690 
3691 bool
3693 {
3694  std::set<std::string> pnames = readonly_property_names ();
3695 
3696  return pnames.find (pname) != pnames.end ();
3697 }
3698 
3699 std::set<std::string>
3701 {
3702  static std::set<std::string> all_pnames = core_property_names ();
3703 
3704  std::set<std::string> retval = all_pnames;
3705  std::set<std::string> base_props = base_properties::all_property_names ();
3706  retval.insert (base_props.begin (), base_props.end ());
3707 
3708  return retval;
3709 }
3710 
3711 bool
3713 {
3714  std::set<std::string> pnames = all_property_names ();
3715 
3716  return pnames.find (pname) != pnames.end ();
3717 }
3718 
3719 // ******** image ********
3720 
3722  : base_properties (go_name, mh, p),
3723  alphadata ("alphadata", mh, Matrix (1, 1, 1.0)),
3724  alphadatamapping ("alphadatamapping", mh, "{none}|direct|scaled"),
3725  cdata ("cdata", mh, default_image_cdata ()),
3726  cdatamapping ("cdatamapping", mh, "scaled|{direct}"),
3727  displayname ("displayname", mh, ""),
3728  erasemode ("erasemode", mh, "{normal}|none|xor|background"),
3729  xdata ("xdata", mh, Matrix ()),
3730  ydata ("ydata", mh, Matrix ()),
3731  alim ("alim", mh, Matrix ()),
3732  clim ("clim", mh, Matrix ()),
3733  xlim ("xlim", mh, Matrix ()),
3734  ylim ("ylim", mh, Matrix ()),
3735  aliminclude ("aliminclude", mh, "on"),
3736  climinclude ("climinclude", mh, "on"),
3737  xliminclude ("xliminclude", mh, "on"),
3738  yliminclude ("yliminclude", mh, "on"),
3739  xdatamode ("xdatamode", mh, "{auto}|manual"),
3740  ydatamode ("ydatamode", mh, "{auto}|manual")
3741 {
3744  cdata.set_id (ID_CDATA);
3748  xdata.set_id (ID_XDATA);
3749  ydata.set_id (ID_YDATA);
3750  alim.set_id (ID_ALIM);
3751  alim.set_hidden (true);
3752  clim.set_id (ID_CLIM);
3753  clim.set_hidden (true);
3754  xlim.set_id (ID_XLIM);
3755  xlim.set_hidden (true);
3756  ylim.set_id (ID_YLIM);
3757  ylim.set_hidden (true);
3759  aliminclude.set_hidden (true);
3761  climinclude.set_hidden (true);
3763  xliminclude.set_hidden (true);
3765  yliminclude.set_hidden (true);
3767  xdatamode.set_hidden (true);
3769  ydatamode.set_hidden (true);
3770  init ();
3771 }
3772 
3773 void
3774 image::properties::set (const caseless_str& pname_arg, const octave_value& val)
3775 {
3776  const std::set<std::string>& pnames = all_property_names ();
3777 
3778  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
3779 
3780  if (error_state)
3781  return;
3782  else if (has_readonly_property (pname))
3783  {
3784  error ("set: \"%s\" is read-only", pname.c_str ());
3785  return;
3786  }
3787 
3788  if (pname.compare ("alphadata"))
3789  set_alphadata (val);
3790  else if (pname.compare ("alphadatamapping"))
3791  set_alphadatamapping (val);
3792  else if (pname.compare ("cdata"))
3793  set_cdata (val);
3794  else if (pname.compare ("cdatamapping"))
3795  set_cdatamapping (val);
3796  else if (pname.compare ("displayname"))
3797  set_displayname (val);
3798  else if (pname.compare ("erasemode"))
3799  set_erasemode (val);
3800  else if (pname.compare ("xdata"))
3801  set_xdata (val);
3802  else if (pname.compare ("ydata"))
3803  set_ydata (val);
3804  else if (pname.compare ("aliminclude"))
3805  set_aliminclude (val);
3806  else if (pname.compare ("climinclude"))
3807  set_climinclude (val);
3808  else if (pname.compare ("xliminclude"))
3809  set_xliminclude (val);
3810  else if (pname.compare ("yliminclude"))
3811  set_yliminclude (val);
3812  else if (pname.compare ("xdatamode"))
3813  set_xdatamode (val);
3814  else if (pname.compare ("ydatamode"))
3815  set_ydatamode (val);
3816  else
3817  base_properties::set (pname, val);
3818 }
3819 
3821 image::properties::get (bool all) const
3822 {
3824 
3825  m.assign ("alphadata", octave_value (get_alphadata ()));
3826  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
3827  m.assign ("cdata", octave_value (get_cdata ()));
3828  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
3829  m.assign ("displayname", octave_value (get_displayname ()));
3830  m.assign ("erasemode", octave_value (get_erasemode ()));
3831  m.assign ("xdata", octave_value (get_xdata ()));
3832  m.assign ("ydata", octave_value (get_ydata ()));
3833  if (all)
3834  m.assign ("alim", octave_value (get_alim ()));
3835  if (all)
3836  m.assign ("clim", octave_value (get_clim ()));
3837  if (all)
3838  m.assign ("xlim", octave_value (get_xlim ()));
3839  if (all)
3840  m.assign ("ylim", octave_value (get_ylim ()));
3841  if (all)
3842  m.assign ("aliminclude", octave_value (get_aliminclude ()));
3843  if (all)
3844  m.assign ("climinclude", octave_value (get_climinclude ()));
3845  if (all)
3846  m.assign ("xliminclude", octave_value (get_xliminclude ()));
3847  if (all)
3848  m.assign ("yliminclude", octave_value (get_yliminclude ()));
3849  if (all)
3850  m.assign ("xdatamode", octave_value (get_xdatamode ()));
3851  if (all)
3852  m.assign ("ydatamode", octave_value (get_ydatamode ()));
3853 
3854  return m;
3855 }
3856 
3858 image::properties::get (const caseless_str& pname_arg) const
3859 {
3860  octave_value retval;
3861 
3862  const std::set<std::string>& pnames = all_property_names ();
3863 
3864  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
3865 
3866  if (error_state)
3867  return retval;
3868 
3869  if (pname.compare ("alphadata"))
3870  retval = get_alphadata ();
3871  else if (pname.compare ("alphadatamapping"))
3872  retval = get_alphadatamapping ();
3873  else if (pname.compare ("cdata"))
3874  retval = get_cdata ();
3875  else if (pname.compare ("cdatamapping"))
3876  retval = get_cdatamapping ();
3877  else if (pname.compare ("displayname"))
3878  retval = get_displayname ();
3879  else if (pname.compare ("erasemode"))
3880  retval = get_erasemode ();
3881  else if (pname.compare ("xdata"))
3882  retval = get_xdata ();
3883  else if (pname.compare ("ydata"))
3884  retval = get_ydata ();
3885  else if (pname.compare ("alim"))
3886  retval = get_alim ();
3887  else if (pname.compare ("clim"))
3888  retval = get_clim ();
3889  else if (pname.compare ("xlim"))
3890  retval = get_xlim ();
3891  else if (pname.compare ("ylim"))
3892  retval = get_ylim ();
3893  else if (pname.compare ("aliminclude"))
3894  retval = get_aliminclude ();
3895  else if (pname.compare ("climinclude"))
3896  retval = get_climinclude ();
3897  else if (pname.compare ("xliminclude"))
3898  retval = get_xliminclude ();
3899  else if (pname.compare ("yliminclude"))
3900  retval = get_yliminclude ();
3901  else if (pname.compare ("xdatamode"))
3902  retval = get_xdatamode ();
3903  else if (pname.compare ("ydatamode"))
3904  retval = get_ydatamode ();
3905  else
3906  retval = base_properties::get (pname);
3907 
3908  return retval;
3909 }
3910 
3911 property
3913 {
3914  const std::set<std::string>& pnames = all_property_names ();
3915 
3916  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
3917 
3918  if (error_state)
3919  return property ();
3920 
3921  if (pname.compare ("alphadata"))
3922  return property (&alphadata, true);
3923  else if (pname.compare ("alphadatamapping"))
3924  return property (&alphadatamapping, true);
3925  else if (pname.compare ("cdata"))
3926  return property (&cdata, true);
3927  else if (pname.compare ("cdatamapping"))
3928  return property (&cdatamapping, true);
3929  else if (pname.compare ("displayname"))
3930  return property (&displayname, true);
3931  else if (pname.compare ("erasemode"))
3932  return property (&erasemode, true);
3933  else if (pname.compare ("xdata"))
3934  return property (&xdata, true);
3935  else if (pname.compare ("ydata"))
3936  return property (&ydata, true);
3937  else if (pname.compare ("alim"))
3938  return property (&alim, true);
3939  else if (pname.compare ("clim"))
3940  return property (&clim, true);
3941  else if (pname.compare ("xlim"))
3942  return property (&xlim, true);
3943  else if (pname.compare ("ylim"))
3944  return property (&ylim, true);
3945  else if (pname.compare ("aliminclude"))
3946  return property (&aliminclude, true);
3947  else if (pname.compare ("climinclude"))
3948  return property (&climinclude, true);
3949  else if (pname.compare ("xliminclude"))
3950  return property (&xliminclude, true);
3951  else if (pname.compare ("yliminclude"))
3952  return property (&yliminclude, true);
3953  else if (pname.compare ("xdatamode"))
3954  return property (&xdatamode, true);
3955  else if (pname.compare ("ydatamode"))
3956  return property (&ydatamode, true);
3957  else
3958  return base_properties::get_property (pname);
3959 }
3960 
3963 {
3965 
3966  m["alphadata"] = Matrix (1, 1, 1.0);
3967  m["alphadatamapping"] = "none";
3968  m["cdata"] = default_image_cdata ();
3969  m["cdatamapping"] = "direct";
3970  m["displayname"] = "";
3971  m["erasemode"] = "normal";
3972  m["xdata"] = Matrix ();
3973  m["ydata"] = Matrix ();
3974  m["alim"] = Matrix ();
3975  m["clim"] = Matrix ();
3976  m["xlim"] = Matrix ();
3977  m["ylim"] = Matrix ();
3978  m["aliminclude"] = "on";
3979  m["climinclude"] = "on";
3980  m["xliminclude"] = "on";
3981  m["yliminclude"] = "on";
3982  m["xdatamode"] = "auto";
3983  m["ydatamode"] = "auto";
3984 
3985  return m;
3986 }
3987 
3988 std::string image::properties::go_name ("image");
3989 
3990 std::set<std::string>
3992 {
3993  static std::set<std::string> all_pnames;
3994 
3995  static bool initialized = false;
3996 
3997  if (! initialized)
3998  {
3999  all_pnames.insert ("alphadata");
4000  all_pnames.insert ("alphadatamapping");
4001  all_pnames.insert ("cdata");
4002  all_pnames.insert ("cdatamapping");
4003  all_pnames.insert ("displayname");
4004  all_pnames.insert ("erasemode");
4005  all_pnames.insert ("xdata");
4006  all_pnames.insert ("ydata");
4007  all_pnames.insert ("alim");
4008  all_pnames.insert ("clim");
4009  all_pnames.insert ("xlim");
4010  all_pnames.insert ("ylim");
4011  all_pnames.insert ("aliminclude");
4012  all_pnames.insert ("climinclude");
4013  all_pnames.insert ("xliminclude");
4014  all_pnames.insert ("yliminclude");
4015  all_pnames.insert ("xdatamode");
4016  all_pnames.insert ("ydatamode");
4017 
4018  std::set<std::string> base_pnames = base_properties::core_property_names ();
4019  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4020 
4021  initialized = true;
4022  }
4023 
4024  return all_pnames;
4025 }
4026 
4027 bool
4029 {
4030  std::set<std::string> pnames = core_property_names ();
4031 
4032  return pnames.find (pname) != pnames.end ();
4033 }
4034 
4035 std::set<std::string>
4037 {
4038  static std::set<std::string> all_pnames;
4039 
4040  static bool initialized = false;
4041 
4042  if (! initialized)
4043  {
4044  all_pnames.insert ("alim");
4045  all_pnames.insert ("clim");
4046  all_pnames.insert ("xlim");
4047  all_pnames.insert ("ylim");
4048 
4049  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
4050  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4051 
4052  initialized = true;
4053  }
4054 
4055  return all_pnames;
4056 }
4057 
4058 bool
4060 {
4061  std::set<std::string> pnames = readonly_property_names ();
4062 
4063  return pnames.find (pname) != pnames.end ();
4064 }
4065 
4066 std::set<std::string>
4068 {
4069  static std::set<std::string> all_pnames = core_property_names ();
4070 
4071  std::set<std::string> retval = all_pnames;
4072  std::set<std::string> base_props = base_properties::all_property_names ();
4073  retval.insert (base_props.begin (), base_props.end ());
4074 
4075  return retval;
4076 }
4077 
4078 bool
4080 {
4081  std::set<std::string> pnames = all_property_names ();
4082 
4083  return pnames.find (pname) != pnames.end ();
4084 }
4085 
4086 // ******** patch ********
4087 
4089  : base_properties (go_name, mh, p),
4090  alphadatamapping ("alphadatamapping", mh, "none|{scaled}|direct"),
4091  ambientstrength ("ambientstrength", mh, 0.3),
4092  backfacelighting ("backfacelighting", mh, "unlit|lit|{reverselit}"),
4093  cdata ("cdata", mh, Matrix ()),
4094  cdatamapping ("cdatamapping", mh, "{scaled}|direct"),
4095  diffusestrength ("diffusestrength", mh, 0.6),
4096  displayname ("displayname", mh, ""),
4097  edgealpha ("edgealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
4098  edgecolor ("edgecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
4099  edgelighting ("edgelighting", mh, "{none}|flat|gouraud|phong"),
4100  erasemode ("erasemode", mh, "{normal}|background|xor|none"),
4101  facealpha ("facealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
4102  facecolor ("facecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
4103  facelighting ("facelighting", mh, "{none}|flat|gouraud|phong"),
4104  faces ("faces", mh, default_patch_faces ()),
4105  facevertexalphadata ("facevertexalphadata", mh, Matrix ()),
4106  facevertexcdata ("facevertexcdata", mh, Matrix ()),
4107  interpreter ("interpreter", mh, "{tex}|none|latex"),
4108  linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
4109  linewidth ("linewidth", mh, 0.5),
4110  marker ("marker", mh, "{none}|+|o|*|.|x|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
4111  markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0))),
4112  markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0))),
4113  markersize ("markersize", mh, 6),
4114  normalmode ("normalmode", mh, "{auto}|manual"),
4115  specularcolorreflectance ("specularcolorreflectance", mh, 1.0),
4116  specularexponent ("specularexponent", mh, 10.0),
4117  specularstrength ("specularstrength", mh, 0.9),
4118  vertexnormals ("vertexnormals", mh, Matrix ()),
4119  vertices ("vertices", mh, default_patch_vertices ()),
4120  xdata ("xdata", mh, default_patch_xdata ()),
4121  ydata ("ydata", mh, default_patch_ydata ()),
4122  zdata ("zdata", mh, Matrix ()),
4123  alim ("alim", mh, Matrix ()),
4124  clim ("clim", mh, Matrix ()),
4125  xlim ("xlim", mh, Matrix ()),
4126  ylim ("ylim", mh, Matrix ()),
4127  zlim ("zlim", mh, Matrix ()),
4128  aliminclude ("aliminclude", mh, "on"),
4129  climinclude ("climinclude", mh, "on"),
4130  xliminclude ("xliminclude", mh, "on"),
4131  yliminclude ("yliminclude", mh, "on"),
4132  zliminclude ("zliminclude", mh, "on")
4133 {
4137  cdata.set_id (ID_CDATA);
4148  faces.set_id (ID_FACES);
4164  xdata.set_id (ID_XDATA);
4165  ydata.set_id (ID_YDATA);
4166  zdata.set_id (ID_ZDATA);
4167  alim.set_id (ID_ALIM);
4168  alim.set_hidden (true);
4169  clim.set_id (ID_CLIM);
4170  clim.set_hidden (true);
4171  xlim.set_id (ID_XLIM);
4172  xlim.set_hidden (true);
4173  ylim.set_id (ID_YLIM);
4174  ylim.set_hidden (true);
4175  zlim.set_id (ID_ZLIM);
4176  zlim.set_hidden (true);
4178  aliminclude.set_hidden (true);
4180  climinclude.set_hidden (true);
4182  xliminclude.set_hidden (true);
4184  yliminclude.set_hidden (true);
4186  zliminclude.set_hidden (true);
4187  init ();
4188 }
4189 
4190 void
4191 patch::properties::set (const caseless_str& pname_arg, const octave_value& val)
4192 {
4193  const std::set<std::string>& pnames = all_property_names ();
4194 
4195  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
4196 
4197  if (error_state)
4198  return;
4199  else if (has_readonly_property (pname))
4200  {
4201  error ("set: \"%s\" is read-only", pname.c_str ());
4202  return;
4203  }
4204 
4205  if (pname.compare ("alphadatamapping"))
4206  set_alphadatamapping (val);
4207  else if (pname.compare ("ambientstrength"))
4208  set_ambientstrength (val);
4209  else if (pname.compare ("backfacelighting"))
4210  set_backfacelighting (val);
4211  else if (pname.compare ("cdata"))
4212  set_cdata (val);
4213  else if (pname.compare ("cdatamapping"))
4214  set_cdatamapping (val);
4215  else if (pname.compare ("diffusestrength"))
4216  set_diffusestrength (val);
4217  else if (pname.compare ("displayname"))
4218  set_displayname (val);
4219  else if (pname.compare ("edgealpha"))
4220  set_edgealpha (val);
4221  else if (pname.compare ("edgecolor"))
4222  set_edgecolor (val);
4223  else if (pname.compare ("edgelighting"))
4224  set_edgelighting (val);
4225  else if (pname.compare ("erasemode"))
4226  set_erasemode (val);
4227  else if (pname.compare ("facealpha"))
4228  set_facealpha (val);
4229  else if (pname.compare ("facecolor"))
4230  set_facecolor (val);
4231  else if (pname.compare ("facelighting"))
4232  set_facelighting (val);
4233  else if (pname.compare ("faces"))
4234  set_faces (val);
4235  else if (pname.compare ("facevertexalphadata"))
4236  set_facevertexalphadata (val);
4237  else if (pname.compare ("facevertexcdata"))
4238  set_facevertexcdata (val);
4239  else if (pname.compare ("interpreter"))
4240  set_interpreter (val);
4241  else if (pname.compare ("linestyle"))
4242  set_linestyle (val);
4243  else if (pname.compare ("linewidth"))
4244  set_linewidth (val);
4245  else if (pname.compare ("marker"))
4246  set_marker (val);
4247  else if (pname.compare ("markeredgecolor"))
4248  set_markeredgecolor (val);
4249  else if (pname.compare ("markerfacecolor"))
4250  set_markerfacecolor (val);
4251  else if (pname.compare ("markersize"))
4252  set_markersize (val);
4253  else if (pname.compare ("normalmode"))
4254  set_normalmode (val);
4255  else if (pname.compare ("specularcolorreflectance"))
4256  set_specularcolorreflectance (val);
4257  else if (pname.compare ("specularexponent"))
4258  set_specularexponent (val);
4259  else if (pname.compare ("specularstrength"))
4260  set_specularstrength (val);
4261  else if (pname.compare ("vertexnormals"))
4262  set_vertexnormals (val);
4263  else if (pname.compare ("vertices"))
4264  set_vertices (val);
4265  else if (pname.compare ("xdata"))
4266  set_xdata (val);
4267  else if (pname.compare ("ydata"))
4268  set_ydata (val);
4269  else if (pname.compare ("zdata"))
4270  set_zdata (val);
4271  else if (pname.compare ("aliminclude"))
4272  set_aliminclude (val);
4273  else if (pname.compare ("climinclude"))
4274  set_climinclude (val);
4275  else if (pname.compare ("xliminclude"))
4276  set_xliminclude (val);
4277  else if (pname.compare ("yliminclude"))
4278  set_yliminclude (val);
4279  else if (pname.compare ("zliminclude"))
4280  set_zliminclude (val);
4281  else
4282  base_properties::set (pname, val);
4283 }
4284 
4286 patch::properties::get (bool all) const
4287 {
4289 
4290  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
4291  m.assign ("ambientstrength", octave_value (get_ambientstrength ()));
4292  m.assign ("backfacelighting", octave_value (get_backfacelighting ()));
4293  m.assign ("cdata", octave_value (get_cdata ()));
4294  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
4295  m.assign ("diffusestrength", octave_value (get_diffusestrength ()));
4296  m.assign ("displayname", octave_value (get_displayname ()));
4297  m.assign ("edgealpha", octave_value (get_edgealpha ()));
4298  m.assign ("edgecolor", octave_value (get_edgecolor ()));
4299  m.assign ("edgelighting", octave_value (get_edgelighting ()));
4300  m.assign ("erasemode", octave_value (get_erasemode ()));
4301  m.assign ("facealpha", octave_value (get_facealpha ()));
4302  m.assign ("facecolor", octave_value (get_facecolor ()));
4303  m.assign ("facelighting", octave_value (get_facelighting ()));
4304  m.assign ("faces", octave_value (get_faces ()));
4305  m.assign ("facevertexalphadata", octave_value (get_facevertexalphadata ()));
4306  m.assign ("facevertexcdata", octave_value (get_facevertexcdata ()));
4307  m.assign ("interpreter", octave_value (get_interpreter ()));
4308  m.assign ("linestyle", octave_value (get_linestyle ()));
4309  m.assign ("linewidth", octave_value (get_linewidth ()));
4310  m.assign ("marker", octave_value (get_marker ()));
4311  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
4312  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
4313  m.assign ("markersize", octave_value (get_markersize ()));
4314  m.assign ("normalmode", octave_value (get_normalmode ()));
4315  m.assign ("specularcolorreflectance", octave_value (get_specularcolorreflectance ()));
4316  m.assign ("specularexponent", octave_value (get_specularexponent ()));
4317  m.assign ("specularstrength", octave_value (get_specularstrength ()));
4318  m.assign ("vertexnormals", octave_value (get_vertexnormals ()));
4319  m.assign ("vertices", octave_value (get_vertices ()));
4320  m.assign ("xdata", octave_value (get_xdata ()));
4321  m.assign ("ydata", octave_value (get_ydata ()));
4322  m.assign ("zdata", octave_value (get_zdata ()));
4323  if (all)
4324  m.assign ("alim", octave_value (get_alim ()));
4325  if (all)
4326  m.assign ("clim", octave_value (get_clim ()));
4327  if (all)
4328  m.assign ("xlim", octave_value (get_xlim ()));
4329  if (all)
4330  m.assign ("ylim", octave_value (get_ylim ()));
4331  if (all)
4332  m.assign ("zlim", octave_value (get_zlim ()));
4333  if (all)
4334  m.assign ("aliminclude", octave_value (get_aliminclude ()));
4335  if (all)
4336  m.assign ("climinclude", octave_value (get_climinclude ()));
4337  if (all)
4338  m.assign ("xliminclude", octave_value (get_xliminclude ()));
4339  if (all)
4340  m.assign ("yliminclude", octave_value (get_yliminclude ()));
4341  if (all)
4342  m.assign ("zliminclude", octave_value (get_zliminclude ()));
4343 
4344  return m;
4345 }
4346 
4348 patch::properties::get (const caseless_str& pname_arg) const
4349 {
4350  octave_value retval;
4351 
4352  const std::set<std::string>& pnames = all_property_names ();
4353 
4354  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
4355 
4356  if (error_state)
4357  return retval;
4358 
4359  if (pname.compare ("alphadatamapping"))
4360  retval = get_alphadatamapping ();
4361  else if (pname.compare ("ambientstrength"))
4362  retval = get_ambientstrength ();
4363  else if (pname.compare ("backfacelighting"))
4364  retval = get_backfacelighting ();
4365  else if (pname.compare ("cdata"))
4366  retval = get_cdata ();
4367  else if (pname.compare ("cdatamapping"))
4368  retval = get_cdatamapping ();
4369  else if (pname.compare ("diffusestrength"))
4370  retval = get_diffusestrength ();
4371  else if (pname.compare ("displayname"))
4372  retval = get_displayname ();
4373  else if (pname.compare ("edgealpha"))
4374  retval = get_edgealpha ();
4375  else if (pname.compare ("edgecolor"))
4376  retval = get_edgecolor ();
4377  else if (pname.compare ("edgelighting"))
4378  retval = get_edgelighting ();
4379  else if (pname.compare ("erasemode"))
4380  retval = get_erasemode ();
4381  else if (pname.compare ("facealpha"))
4382  retval = get_facealpha ();
4383  else if (pname.compare ("facecolor"))
4384  retval = get_facecolor ();
4385  else if (pname.compare ("facelighting"))
4386  retval = get_facelighting ();
4387  else if (pname.compare ("faces"))
4388  retval = get_faces ();
4389  else if (pname.compare ("facevertexalphadata"))
4390  retval = get_facevertexalphadata ();
4391  else if (pname.compare ("facevertexcdata"))
4392  retval = get_facevertexcdata ();
4393  else if (pname.compare ("interpreter"))
4394  retval = get_interpreter ();
4395  else if (pname.compare ("linestyle"))
4396  retval = get_linestyle ();
4397  else if (pname.compare ("linewidth"))
4398  retval = get_linewidth ();
4399  else if (pname.compare ("marker"))
4400  retval = get_marker ();
4401  else if (pname.compare ("markeredgecolor"))
4402  retval = get_markeredgecolor ();
4403  else if (pname.compare ("markerfacecolor"))
4404  retval = get_markerfacecolor ();
4405  else if (pname.compare ("markersize"))
4406  retval = get_markersize ();
4407  else if (pname.compare ("normalmode"))
4408  retval = get_normalmode ();
4409  else if (pname.compare ("specularcolorreflectance"))
4410  retval = get_specularcolorreflectance ();
4411  else if (pname.compare ("specularexponent"))
4412  retval = get_specularexponent ();
4413  else if (pname.compare ("specularstrength"))
4414  retval = get_specularstrength ();
4415  else if (pname.compare ("vertexnormals"))
4416  retval = get_vertexnormals ();
4417  else if (pname.compare ("vertices"))
4418  retval = get_vertices ();
4419  else if (pname.compare ("xdata"))
4420  retval = get_xdata ();
4421  else if (pname.compare ("ydata"))
4422  retval = get_ydata ();
4423  else if (pname.compare ("zdata"))
4424  retval = get_zdata ();
4425  else if (pname.compare ("alim"))
4426  retval = get_alim ();
4427  else if (pname.compare ("clim"))
4428  retval = get_clim ();
4429  else if (pname.compare ("xlim"))
4430  retval = get_xlim ();
4431  else if (pname.compare ("ylim"))
4432  retval = get_ylim ();
4433  else if (pname.compare ("zlim"))
4434  retval = get_zlim ();
4435  else if (pname.compare ("aliminclude"))
4436  retval = get_aliminclude ();
4437  else if (pname.compare ("climinclude"))
4438  retval = get_climinclude ();
4439  else if (pname.compare ("xliminclude"))
4440  retval = get_xliminclude ();
4441  else if (pname.compare ("yliminclude"))
4442  retval = get_yliminclude ();
4443  else if (pname.compare ("zliminclude"))
4444  retval = get_zliminclude ();
4445  else
4446  retval = base_properties::get (pname);
4447 
4448  return retval;
4449 }
4450 
4451 property
4453 {
4454  const std::set<std::string>& pnames = all_property_names ();
4455 
4456  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
4457 
4458  if (error_state)
4459  return property ();
4460 
4461  if (pname.compare ("alphadatamapping"))
4462  return property (&alphadatamapping, true);
4463  else if (pname.compare ("ambientstrength"))
4464  return property (&ambientstrength, true);
4465  else if (pname.compare ("backfacelighting"))
4466  return property (&backfacelighting, true);
4467  else if (pname.compare ("cdata"))
4468  return property (&cdata, true);
4469  else if (pname.compare ("cdatamapping"))
4470  return property (&cdatamapping, true);
4471  else if (pname.compare ("diffusestrength"))
4472  return property (&diffusestrength, true);
4473  else if (pname.compare ("displayname"))
4474  return property (&displayname, true);
4475  else if (pname.compare ("edgealpha"))
4476  return property (&edgealpha, true);
4477  else if (pname.compare ("edgecolor"))
4478  return property (&edgecolor, true);
4479  else if (pname.compare ("edgelighting"))
4480  return property (&edgelighting, true);
4481  else if (pname.compare ("erasemode"))
4482  return property (&erasemode, true);
4483  else if (pname.compare ("facealpha"))
4484  return property (&facealpha, true);
4485  else if (pname.compare ("facecolor"))
4486  return property (&facecolor, true);
4487  else if (pname.compare ("facelighting"))
4488  return property (&facelighting, true);
4489  else if (pname.compare ("faces"))
4490  return property (&faces, true);
4491  else if (pname.compare ("facevertexalphadata"))
4492  return property (&facevertexalphadata, true);
4493  else if (pname.compare ("facevertexcdata"))
4494  return property (&facevertexcdata, true);
4495  else if (pname.compare ("interpreter"))
4496  return property (&interpreter, true);
4497  else if (pname.compare ("linestyle"))
4498  return property (&linestyle, true);
4499  else if (pname.compare ("linewidth"))
4500  return property (&linewidth, true);
4501  else if (pname.compare ("marker"))
4502  return property (&marker, true);
4503  else if (pname.compare ("markeredgecolor"))
4504  return property (&markeredgecolor, true);
4505  else if (pname.compare ("markerfacecolor"))
4506  return property (&markerfacecolor, true);
4507  else if (pname.compare ("markersize"))
4508  return property (&markersize, true);
4509  else if (pname.compare ("normalmode"))
4510  return property (&normalmode, true);
4511  else if (pname.compare ("specularcolorreflectance"))
4512  return property (&specularcolorreflectance, true);
4513  else if (pname.compare ("specularexponent"))
4514  return property (&specularexponent, true);
4515  else if (pname.compare ("specularstrength"))
4516  return property (&specularstrength, true);
4517  else if (pname.compare ("vertexnormals"))
4518  return property (&vertexnormals, true);
4519  else if (pname.compare ("vertices"))
4520  return property (&vertices, true);
4521  else if (pname.compare ("xdata"))
4522  return property (&xdata, true);
4523  else if (pname.compare ("ydata"))
4524  return property (&ydata, true);
4525  else if (pname.compare ("zdata"))
4526  return property (&zdata, true);
4527  else if (pname.compare ("alim"))
4528  return property (&alim, true);
4529  else if (pname.compare ("clim"))
4530  return property (&clim, true);
4531  else if (pname.compare ("xlim"))
4532  return property (&xlim, true);
4533  else if (pname.compare ("ylim"))
4534  return property (&ylim, true);
4535  else if (pname.compare ("zlim"))
4536  return property (&zlim, true);
4537  else if (pname.compare ("aliminclude"))
4538  return property (&aliminclude, true);
4539  else if (pname.compare ("climinclude"))
4540  return property (&climinclude, true);
4541  else if (pname.compare ("xliminclude"))
4542  return property (&xliminclude, true);
4543  else if (pname.compare ("yliminclude"))
4544  return property (&yliminclude, true);
4545  else if (pname.compare ("zliminclude"))
4546  return property (&zliminclude, true);
4547  else
4548  return base_properties::get_property (pname);
4549 }
4550 
4553 {
4555 
4556  m["alphadatamapping"] = "scaled";
4557  m["ambientstrength"] = 0.3;
4558  m["backfacelighting"] = "reverselit";
4559  m["cdata"] = Matrix ();
4560  m["cdatamapping"] = "scaled";
4561  m["diffusestrength"] = 0.6;
4562  m["displayname"] = "";
4563  m["edgealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
4564  m["edgecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
4565  m["edgelighting"] = "none";
4566  m["erasemode"] = "normal";
4567  m["facealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
4568  m["facecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
4569  m["facelighting"] = "none";
4570  m["faces"] = default_patch_faces ();
4571  m["facevertexalphadata"] = Matrix ();
4572  m["facevertexcdata"] = Matrix ();
4573  m["interpreter"] = "tex";
4574  m["linestyle"] = "-";
4575  m["linewidth"] = 0.5;
4576  m["marker"] = "none";
4577  m["markeredgecolor"] = color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0));
4578  m["markerfacecolor"] = color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0));
4579  m["markersize"] = 6;
4580  m["normalmode"] = "auto";
4581  m["specularcolorreflectance"] = 1.0;
4582  m["specularexponent"] = 10.0;
4583  m["specularstrength"] = 0.9;
4584  m["vertexnormals"] = Matrix ();
4585  m["vertices"] = default_patch_vertices ();
4586  m["xdata"] = default_patch_xdata ();
4587  m["ydata"] = default_patch_ydata ();
4588  m["zdata"] = Matrix ();
4589  m["alim"] = Matrix ();
4590  m["clim"] = Matrix ();
4591  m["xlim"] = Matrix ();
4592  m["ylim"] = Matrix ();
4593  m["zlim"] = Matrix ();
4594  m["aliminclude"] = "on";
4595  m["climinclude"] = "on";
4596  m["xliminclude"] = "on";
4597  m["yliminclude"] = "on";
4598  m["zliminclude"] = "on";
4599 
4600  return m;
4601 }
4602 
4603 std::string patch::properties::go_name ("patch");
4604 
4605 std::set<std::string>
4607 {
4608  static std::set<std::string> all_pnames;
4609 
4610  static bool initialized = false;
4611 
4612  if (! initialized)
4613  {
4614  all_pnames.insert ("alphadatamapping");
4615  all_pnames.insert ("ambientstrength");
4616  all_pnames.insert ("backfacelighting");
4617  all_pnames.insert ("cdata");
4618  all_pnames.insert ("cdatamapping");
4619  all_pnames.insert ("diffusestrength");
4620  all_pnames.insert ("displayname");
4621  all_pnames.insert ("edgealpha");
4622  all_pnames.insert ("edgecolor");
4623  all_pnames.insert ("edgelighting");
4624  all_pnames.insert ("erasemode");
4625  all_pnames.insert ("facealpha");
4626  all_pnames.insert ("facecolor");
4627  all_pnames.insert ("facelighting");
4628  all_pnames.insert ("faces");
4629  all_pnames.insert ("facevertexalphadata");
4630  all_pnames.insert ("facevertexcdata");
4631  all_pnames.insert ("interpreter");
4632  all_pnames.insert ("linestyle");
4633  all_pnames.insert ("linewidth");
4634  all_pnames.insert ("marker");
4635  all_pnames.insert ("markeredgecolor");
4636  all_pnames.insert ("markerfacecolor");
4637  all_pnames.insert ("markersize");
4638  all_pnames.insert ("normalmode");
4639  all_pnames.insert ("specularcolorreflectance");
4640  all_pnames.insert ("specularexponent");
4641  all_pnames.insert ("specularstrength");
4642  all_pnames.insert ("vertexnormals");
4643  all_pnames.insert ("vertices");
4644  all_pnames.insert ("xdata");
4645  all_pnames.insert ("ydata");
4646  all_pnames.insert ("zdata");
4647  all_pnames.insert ("alim");
4648  all_pnames.insert ("clim");
4649  all_pnames.insert ("xlim");
4650  all_pnames.insert ("ylim");
4651  all_pnames.insert ("zlim");
4652  all_pnames.insert ("aliminclude");
4653  all_pnames.insert ("climinclude");
4654  all_pnames.insert ("xliminclude");
4655  all_pnames.insert ("yliminclude");
4656  all_pnames.insert ("zliminclude");
4657 
4658  std::set<std::string> base_pnames = base_properties::core_property_names ();
4659  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4660 
4661  initialized = true;
4662  }
4663 
4664  return all_pnames;
4665 }
4666 
4667 bool
4669 {
4670  std::set<std::string> pnames = core_property_names ();
4671 
4672  return pnames.find (pname) != pnames.end ();
4673 }
4674 
4675 std::set<std::string>
4677 {
4678  static std::set<std::string> all_pnames;
4679 
4680  static bool initialized = false;
4681 
4682  if (! initialized)
4683  {
4684  all_pnames.insert ("alim");
4685  all_pnames.insert ("clim");
4686  all_pnames.insert ("xlim");
4687  all_pnames.insert ("ylim");
4688  all_pnames.insert ("zlim");
4689 
4690  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
4691  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
4692 
4693  initialized = true;
4694  }
4695 
4696  return all_pnames;
4697 }
4698 
4699 bool
4701 {
4702  std::set<std::string> pnames = readonly_property_names ();
4703 
4704  return pnames.find (pname) != pnames.end ();
4705 }
4706 
4707 std::set<std::string>
4709 {
4710  static std::set<std::string> all_pnames = core_property_names ();
4711 
4712  std::set<std::string> retval = all_pnames;
4713  std::set<std::string> base_props = base_properties::all_property_names ();
4714  retval.insert (base_props.begin (), base_props.end ());
4715 
4716  return retval;
4717 }
4718 
4719 bool
4721 {
4722  std::set<std::string> pnames = all_property_names ();
4723 
4724  return pnames.find (pname) != pnames.end ();
4725 }
4726 
4727 // ******** surface ********
4728 
4730  : base_properties (go_name, mh, p),
4731  alphadata ("alphadata", mh, Matrix (1, 1, 1.0)),
4732  alphadatamapping ("alphadatamapping", mh, "none|direct|{scaled}"),
4733  ambientstrength ("ambientstrength", mh, 0.3),
4734  backfacelighting ("backfacelighting", mh, "unlit|lit|{reverselit}"),
4735  cdata ("cdata", mh, default_surface_cdata ()),
4736  cdatamapping ("cdatamapping", mh, "{scaled}|direct"),
4737  cdatasource ("cdatasource", mh, ""),
4738  diffusestrength ("diffusestrength", mh, 0.6),
4739  displayname ("displayname", mh, ""),
4740  edgealpha ("edgealpha", mh, double_radio_property (1.0, radio_values ("flat|interp"))),
4741  edgecolor ("edgecolor", mh, color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"))),
4742  edgelighting ("edgelighting", mh, "{none}|flat|gouraud|phong"),
4743  erasemode ("erasemode", mh, "{normal}|none|xor|background"),
4744  facealpha ("facealpha", mh, double_radio_property (1.0, radio_values ("flat|interp|texturemap"))),
4745  facecolor ("facecolor", mh, color_property (radio_values ("none|{flat}|interp|texturemap"), color_values (0, 0, 0))),
4746  facelighting ("facelighting", mh, "{none}|flat|gouraud|phong"),
4747  interpreter ("interpreter", mh, "{tex}|none|latex"),
4748  linestyle ("linestyle", mh, "{-}|--|:|-.|none"),
4749  linewidth ("linewidth", mh, 0.5),
4750  marker ("marker", mh, "{none}|+|o|*|.|x|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram"),
4751  markeredgecolor ("markeredgecolor", mh, color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0))),
4752  markerfacecolor ("markerfacecolor", mh, color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0))),
4753  markersize ("markersize", mh, 6),
4754  meshstyle ("meshstyle", mh, "{both}|row|column"),
4755  normalmode ("normalmode", mh, "{auto}|manual"),
4756  specularcolorreflectance ("specularcolorreflectance", mh, 1),
4757  specularexponent ("specularexponent", mh, 10),
4758  specularstrength ("specularstrength", mh, 0.9),
4759  vertexnormals ("vertexnormals", mh, Matrix ()),
4760  xdata ("xdata", mh, default_surface_xdata ()),
4761  xdatasource ("xdatasource", mh, ""),
4762  ydata ("ydata", mh, default_surface_ydata ()),
4763  ydatasource ("ydatasource", mh, ""),
4764  zdata ("zdata", mh, default_surface_zdata ()),
4765  zdatasource ("zdatasource", mh, ""),
4766  alim ("alim", mh, Matrix ()),
4767  clim ("clim", mh, Matrix ()),
4768  xlim ("xlim", mh, Matrix ()),
4769  ylim ("ylim", mh, Matrix ()),
4770  zlim ("zlim", mh, Matrix ()),
4771  aliminclude ("aliminclude", mh, "on"),
4772  climinclude ("climinclude", mh, "on"),
4773  xliminclude ("xliminclude", mh, "on"),
4774  yliminclude ("yliminclude", mh, "on"),
4775  zliminclude ("zliminclude", mh, "on")
4776 {
4781  cdata.set_id (ID_CDATA);
4806  xdata.set_id (ID_XDATA);
4808  ydata.set_id (ID_YDATA);
4810  zdata.set_id (ID_ZDATA);
4812  alim.set_id (ID_ALIM);
4813  alim.set_hidden (true);
4814  clim.set_id (ID_CLIM);
4815  clim.set_hidden (true);
4816  xlim.set_id (ID_XLIM);
4817  xlim.set_hidden (true);
4818  ylim.set_id (ID_YLIM);
4819  ylim.set_hidden (true);
4820  zlim.set_id (ID_ZLIM);
4821  zlim.set_hidden (true);
4823  aliminclude.set_hidden (true);
4825  climinclude.set_hidden (true);
4827  xliminclude.set_hidden (true);
4829  yliminclude.set_hidden (true);
4831  zliminclude.set_hidden (true);
4832  init ();
4833 }
4834 
4835 void
4837 {
4838  const std::set<std::string>& pnames = all_property_names ();
4839 
4840  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
4841 
4842  if (error_state)
4843  return;
4844  else if (has_readonly_property (pname))
4845  {
4846  error ("set: \"%s\" is read-only", pname.c_str ());
4847  return;
4848  }
4849 
4850  if (pname.compare ("alphadata"))
4851  set_alphadata (val);
4852  else if (pname.compare ("alphadatamapping"))
4853  set_alphadatamapping (val);
4854  else if (pname.compare ("ambientstrength"))
4855  set_ambientstrength (val);
4856  else if (pname.compare ("backfacelighting"))
4857  set_backfacelighting (val);
4858  else if (pname.compare ("cdata"))
4859  set_cdata (val);
4860  else if (pname.compare ("cdatamapping"))
4861  set_cdatamapping (val);
4862  else if (pname.compare ("cdatasource"))
4863  set_cdatasource (val);
4864  else if (pname.compare ("diffusestrength"))
4865  set_diffusestrength (val);
4866  else if (pname.compare ("displayname"))
4867  set_displayname (val);
4868  else if (pname.compare ("edgealpha"))
4869  set_edgealpha (val);
4870  else if (pname.compare ("edgecolor"))
4871  set_edgecolor (val);
4872  else if (pname.compare ("edgelighting"))
4873  set_edgelighting (val);
4874  else if (pname.compare ("erasemode"))
4875  set_erasemode (val);
4876  else if (pname.compare ("facealpha"))
4877  set_facealpha (val);
4878  else if (pname.compare ("facecolor"))
4879  set_facecolor (val);
4880  else if (pname.compare ("facelighting"))
4881  set_facelighting (val);
4882  else if (pname.compare ("interpreter"))
4883  set_interpreter (val);
4884  else if (pname.compare ("linestyle"))
4885  set_linestyle (val);
4886  else if (pname.compare ("linewidth"))
4887  set_linewidth (val);
4888  else if (pname.compare ("marker"))
4889  set_marker (val);
4890  else if (pname.compare ("markeredgecolor"))
4891  set_markeredgecolor (val);
4892  else if (pname.compare ("markerfacecolor"))
4893  set_markerfacecolor (val);
4894  else if (pname.compare ("markersize"))
4895  set_markersize (val);
4896  else if (pname.compare ("meshstyle"))
4897  set_meshstyle (val);
4898  else if (pname.compare ("normalmode"))
4899  set_normalmode (val);
4900  else if (pname.compare ("specularcolorreflectance"))
4901  set_specularcolorreflectance (val);
4902  else if (pname.compare ("specularexponent"))
4903  set_specularexponent (val);
4904  else if (pname.compare ("specularstrength"))
4905  set_specularstrength (val);
4906  else if (pname.compare ("vertexnormals"))
4907  set_vertexnormals (val);
4908  else if (pname.compare ("xdata"))
4909  set_xdata (val);
4910  else if (pname.compare ("xdatasource"))
4911  set_xdatasource (val);
4912  else if (pname.compare ("ydata"))
4913  set_ydata (val);
4914  else if (pname.compare ("ydatasource"))
4915  set_ydatasource (val);
4916  else if (pname.compare ("zdata"))
4917  set_zdata (val);
4918  else if (pname.compare ("zdatasource"))
4919  set_zdatasource (val);
4920  else if (pname.compare ("aliminclude"))
4921  set_aliminclude (val);
4922  else if (pname.compare ("climinclude"))
4923  set_climinclude (val);
4924  else if (pname.compare ("xliminclude"))
4925  set_xliminclude (val);
4926  else if (pname.compare ("yliminclude"))
4927  set_yliminclude (val);
4928  else if (pname.compare ("zliminclude"))
4929  set_zliminclude (val);
4930  else
4931  base_properties::set (pname, val);
4932 }
4933 
4936 {
4938 
4939  m.assign ("alphadata", octave_value (get_alphadata ()));
4940  m.assign ("alphadatamapping", octave_value (get_alphadatamapping ()));
4941  m.assign ("ambientstrength", octave_value (get_ambientstrength ()));
4942  m.assign ("backfacelighting", octave_value (get_backfacelighting ()));
4943  m.assign ("cdata", octave_value (get_cdata ()));
4944  m.assign ("cdatamapping", octave_value (get_cdatamapping ()));
4945  m.assign ("cdatasource", octave_value (get_cdatasource ()));
4946  m.assign ("diffusestrength", octave_value (get_diffusestrength ()));
4947  m.assign ("displayname", octave_value (get_displayname ()));
4948  m.assign ("edgealpha", octave_value (get_edgealpha ()));
4949  m.assign ("edgecolor", octave_value (get_edgecolor ()));
4950  m.assign ("edgelighting", octave_value (get_edgelighting ()));
4951  m.assign ("erasemode", octave_value (get_erasemode ()));
4952  m.assign ("facealpha", octave_value (get_facealpha ()));
4953  m.assign ("facecolor", octave_value (get_facecolor ()));
4954  m.assign ("facelighting", octave_value (get_facelighting ()));
4955  m.assign ("interpreter", octave_value (get_interpreter ()));
4956  m.assign ("linestyle", octave_value (get_linestyle ()));
4957  m.assign ("linewidth", octave_value (get_linewidth ()));
4958  m.assign ("marker", octave_value (get_marker ()));
4959  m.assign ("markeredgecolor", octave_value (get_markeredgecolor ()));
4960  m.assign ("markerfacecolor", octave_value (get_markerfacecolor ()));
4961  m.assign ("markersize", octave_value (get_markersize ()));
4962  m.assign ("meshstyle", octave_value (get_meshstyle ()));
4963  m.assign ("normalmode", octave_value (get_normalmode ()));
4964  m.assign ("specularcolorreflectance", octave_value (get_specularcolorreflectance ()));
4965  m.assign ("specularexponent", octave_value (get_specularexponent ()));
4966  m.assign ("specularstrength", octave_value (get_specularstrength ()));
4967  m.assign ("vertexnormals", octave_value (get_vertexnormals ()));
4968  m.assign ("xdata", octave_value (get_xdata ()));
4969  m.assign ("xdatasource", octave_value (get_xdatasource ()));
4970  m.assign ("ydata", octave_value (get_ydata ()));
4971  m.assign ("ydatasource", octave_value (get_ydatasource ()));
4972  m.assign ("zdata", octave_value (get_zdata ()));
4973  m.assign ("zdatasource", octave_value (get_zdatasource ()));
4974  if (all)
4975  m.assign ("alim", octave_value (get_alim ()));
4976  if (all)
4977  m.assign ("clim", octave_value (get_clim ()));
4978  if (all)
4979  m.assign ("xlim", octave_value (get_xlim ()));
4980  if (all)
4981  m.assign ("ylim", octave_value (get_ylim ()));
4982  if (all)
4983  m.assign ("zlim", octave_value (get_zlim ()));
4984  if (all)
4985  m.assign ("aliminclude", octave_value (get_aliminclude ()));
4986  if (all)
4987  m.assign ("climinclude", octave_value (get_climinclude ()));
4988  if (all)
4989  m.assign ("xliminclude", octave_value (get_xliminclude ()));
4990  if (all)
4991  m.assign ("yliminclude", octave_value (get_yliminclude ()));
4992  if (all)
4993  m.assign ("zliminclude", octave_value (get_zliminclude ()));
4994 
4995  return m;
4996 }
4997 
4999 surface::properties::get (const caseless_str& pname_arg) const
5000 {
5001  octave_value retval;
5002 
5003  const std::set<std::string>& pnames = all_property_names ();
5004 
5005  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5006 
5007  if (error_state)
5008  return retval;
5009 
5010  if (pname.compare ("alphadata"))
5011  retval = get_alphadata ();
5012  else if (pname.compare ("alphadatamapping"))
5013  retval = get_alphadatamapping ();
5014  else if (pname.compare ("ambientstrength"))
5015  retval = get_ambientstrength ();
5016  else if (pname.compare ("backfacelighting"))
5017  retval = get_backfacelighting ();
5018  else if (pname.compare ("cdata"))
5019  retval = get_cdata ();
5020  else if (pname.compare ("cdatamapping"))
5021  retval = get_cdatamapping ();
5022  else if (pname.compare ("cdatasource"))
5023  retval = get_cdatasource ();
5024  else if (pname.compare ("diffusestrength"))
5025  retval = get_diffusestrength ();
5026  else if (pname.compare ("displayname"))
5027  retval = get_displayname ();
5028  else if (pname.compare ("edgealpha"))
5029  retval = get_edgealpha ();
5030  else if (pname.compare ("edgecolor"))
5031  retval = get_edgecolor ();
5032  else if (pname.compare ("edgelighting"))
5033  retval = get_edgelighting ();
5034  else if (pname.compare ("erasemode"))
5035  retval = get_erasemode ();
5036  else if (pname.compare ("facealpha"))
5037  retval = get_facealpha ();
5038  else if (pname.compare ("facecolor"))
5039  retval = get_facecolor ();
5040  else if (pname.compare ("facelighting"))
5041  retval = get_facelighting ();
5042  else if (pname.compare ("interpreter"))
5043  retval = get_interpreter ();
5044  else if (pname.compare ("linestyle"))
5045  retval = get_linestyle ();
5046  else if (pname.compare ("linewidth"))
5047  retval = get_linewidth ();
5048  else if (pname.compare ("marker"))
5049  retval = get_marker ();
5050  else if (pname.compare ("markeredgecolor"))
5051  retval = get_markeredgecolor ();
5052  else if (pname.compare ("markerfacecolor"))
5053  retval = get_markerfacecolor ();
5054  else if (pname.compare ("markersize"))
5055  retval = get_markersize ();
5056  else if (pname.compare ("meshstyle"))
5057  retval = get_meshstyle ();
5058  else if (pname.compare ("normalmode"))
5059  retval = get_normalmode ();
5060  else if (pname.compare ("specularcolorreflectance"))
5061  retval = get_specularcolorreflectance ();
5062  else if (pname.compare ("specularexponent"))
5063  retval = get_specularexponent ();
5064  else if (pname.compare ("specularstrength"))
5065  retval = get_specularstrength ();
5066  else if (pname.compare ("vertexnormals"))
5067  retval = get_vertexnormals ();
5068  else if (pname.compare ("xdata"))
5069  retval = get_xdata ();
5070  else if (pname.compare ("xdatasource"))
5071  retval = get_xdatasource ();
5072  else if (pname.compare ("ydata"))
5073  retval = get_ydata ();
5074  else if (pname.compare ("ydatasource"))
5075  retval = get_ydatasource ();
5076  else if (pname.compare ("zdata"))
5077  retval = get_zdata ();
5078  else if (pname.compare ("zdatasource"))
5079  retval = get_zdatasource ();
5080  else if (pname.compare ("alim"))
5081  retval = get_alim ();
5082  else if (pname.compare ("clim"))
5083  retval = get_clim ();
5084  else if (pname.compare ("xlim"))
5085  retval = get_xlim ();
5086  else if (pname.compare ("ylim"))
5087  retval = get_ylim ();
5088  else if (pname.compare ("zlim"))
5089  retval = get_zlim ();
5090  else if (pname.compare ("aliminclude"))
5091  retval = get_aliminclude ();
5092  else if (pname.compare ("climinclude"))
5093  retval = get_climinclude ();
5094  else if (pname.compare ("xliminclude"))
5095  retval = get_xliminclude ();
5096  else if (pname.compare ("yliminclude"))
5097  retval = get_yliminclude ();
5098  else if (pname.compare ("zliminclude"))
5099  retval = get_zliminclude ();
5100  else
5101  retval = base_properties::get (pname);
5102 
5103  return retval;
5104 }
5105 
5106 property
5108 {
5109  const std::set<std::string>& pnames = all_property_names ();
5110 
5111  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5112 
5113  if (error_state)
5114  return property ();
5115 
5116  if (pname.compare ("alphadata"))
5117  return property (&alphadata, true);
5118  else if (pname.compare ("alphadatamapping"))
5119  return property (&alphadatamapping, true);
5120  else if (pname.compare ("ambientstrength"))
5121  return property (&ambientstrength, true);
5122  else if (pname.compare ("backfacelighting"))
5123  return property (&backfacelighting, true);
5124  else if (pname.compare ("cdata"))
5125  return property (&cdata, true);
5126  else if (pname.compare ("cdatamapping"))
5127  return property (&cdatamapping, true);
5128  else if (pname.compare ("cdatasource"))
5129  return property (&cdatasource, true);
5130  else if (pname.compare ("diffusestrength"))
5131  return property (&diffusestrength, true);
5132  else if (pname.compare ("displayname"))
5133  return property (&displayname, true);
5134  else if (pname.compare ("edgealpha"))
5135  return property (&edgealpha, true);
5136  else if (pname.compare ("edgecolor"))
5137  return property (&edgecolor, true);
5138  else if (pname.compare ("edgelighting"))
5139  return property (&edgelighting, true);
5140  else if (pname.compare ("erasemode"))
5141  return property (&erasemode, true);
5142  else if (pname.compare ("facealpha"))
5143  return property (&facealpha, true);
5144  else if (pname.compare ("facecolor"))
5145  return property (&facecolor, true);
5146  else if (pname.compare ("facelighting"))
5147  return property (&facelighting, true);
5148  else if (pname.compare ("interpreter"))
5149  return property (&interpreter, true);
5150  else if (pname.compare ("linestyle"))
5151  return property (&linestyle, true);
5152  else if (pname.compare ("linewidth"))
5153  return property (&linewidth, true);
5154  else if (pname.compare ("marker"))
5155  return property (&marker, true);
5156  else if (pname.compare ("markeredgecolor"))
5157  return property (&markeredgecolor, true);
5158  else if (pname.compare ("markerfacecolor"))
5159  return property (&markerfacecolor, true);
5160  else if (pname.compare ("markersize"))
5161  return property (&markersize, true);
5162  else if (pname.compare ("meshstyle"))
5163  return property (&meshstyle, true);
5164  else if (pname.compare ("normalmode"))
5165  return property (&normalmode, true);
5166  else if (pname.compare ("specularcolorreflectance"))
5167  return property (&specularcolorreflectance, true);
5168  else if (pname.compare ("specularexponent"))
5169  return property (&specularexponent, true);
5170  else if (pname.compare ("specularstrength"))
5171  return property (&specularstrength, true);
5172  else if (pname.compare ("vertexnormals"))
5173  return property (&vertexnormals, true);
5174  else if (pname.compare ("xdata"))
5175  return property (&xdata, true);
5176  else if (pname.compare ("xdatasource"))
5177  return property (&xdatasource, true);
5178  else if (pname.compare ("ydata"))
5179  return property (&ydata, true);
5180  else if (pname.compare ("ydatasource"))
5181  return property (&ydatasource, true);
5182  else if (pname.compare ("zdata"))
5183  return property (&zdata, true);
5184  else if (pname.compare ("zdatasource"))
5185  return property (&zdatasource, true);
5186  else if (pname.compare ("alim"))
5187  return property (&alim, true);
5188  else if (pname.compare ("clim"))
5189  return property (&clim, true);
5190  else if (pname.compare ("xlim"))
5191  return property (&xlim, true);
5192  else if (pname.compare ("ylim"))
5193  return property (&ylim, true);
5194  else if (pname.compare ("zlim"))
5195  return property (&zlim, true);
5196  else if (pname.compare ("aliminclude"))
5197  return property (&aliminclude, true);
5198  else if (pname.compare ("climinclude"))
5199  return property (&climinclude, true);
5200  else if (pname.compare ("xliminclude"))
5201  return property (&xliminclude, true);
5202  else if (pname.compare ("yliminclude"))
5203  return property (&yliminclude, true);
5204  else if (pname.compare ("zliminclude"))
5205  return property (&zliminclude, true);
5206  else
5207  return base_properties::get_property (pname);
5208 }
5209 
5212 {
5214 
5215  m["alphadata"] = Matrix (1, 1, 1.0);
5216  m["alphadatamapping"] = "scaled";
5217  m["ambientstrength"] = 0.3;
5218  m["backfacelighting"] = "reverselit";
5219  m["cdata"] = default_surface_cdata ();
5220  m["cdatamapping"] = "scaled";
5221  m["cdatasource"] = "";
5222  m["diffusestrength"] = 0.6;
5223  m["displayname"] = "";
5224  m["edgealpha"] = double_radio_property (1.0, radio_values ("flat|interp"));
5225  m["edgecolor"] = color_property (color_values (0, 0, 0), radio_values ("none|flat|interp"));
5226  m["edgelighting"] = "none";
5227  m["erasemode"] = "normal";
5228  m["facealpha"] = double_radio_property (1.0, radio_values ("flat|interp|texturemap"));
5229  m["facecolor"] = color_property (radio_values ("none|{flat}|interp|texturemap"), color_values (0, 0, 0));
5230  m["facelighting"] = "none";
5231  m["interpreter"] = "tex";
5232  m["linestyle"] = "-";
5233  m["linewidth"] = 0.5;
5234  m["marker"] = "none";
5235  m["markeredgecolor"] = color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0));
5236  m["markerfacecolor"] = color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0));
5237  m["markersize"] = 6;
5238  m["meshstyle"] = "both";
5239  m["normalmode"] = "auto";
5240  m["specularcolorreflectance"] = 1;
5241  m["specularexponent"] = 10;
5242  m["specularstrength"] = 0.9;
5243  m["vertexnormals"] = Matrix ();
5244  m["xdata"] = default_surface_xdata ();
5245  m["xdatasource"] = "";
5246  m["ydata"] = default_surface_ydata ();
5247  m["ydatasource"] = "";
5248  m["zdata"] = default_surface_zdata ();
5249  m["zdatasource"] = "";
5250  m["alim"] = Matrix ();
5251  m["clim"] = Matrix ();
5252  m["xlim"] = Matrix ();
5253  m["ylim"] = Matrix ();
5254  m["zlim"] = Matrix ();
5255  m["aliminclude"] = "on";
5256  m["climinclude"] = "on";
5257  m["xliminclude"] = "on";
5258  m["yliminclude"] = "on";
5259  m["zliminclude"] = "on";
5260 
5261  return m;
5262 }
5263 
5264 std::string surface::properties::go_name ("surface");
5265 
5266 std::set<std::string>
5268 {
5269  static std::set<std::string> all_pnames;
5270 
5271  static bool initialized = false;
5272 
5273  if (! initialized)
5274  {
5275  all_pnames.insert ("alphadata");
5276  all_pnames.insert ("alphadatamapping");
5277  all_pnames.insert ("ambientstrength");
5278  all_pnames.insert ("backfacelighting");
5279  all_pnames.insert ("cdata");
5280  all_pnames.insert ("cdatamapping");
5281  all_pnames.insert ("cdatasource");
5282  all_pnames.insert ("diffusestrength");
5283  all_pnames.insert ("displayname");
5284  all_pnames.insert ("edgealpha");
5285  all_pnames.insert ("edgecolor");
5286  all_pnames.insert ("edgelighting");
5287  all_pnames.insert ("erasemode");
5288  all_pnames.insert ("facealpha");
5289  all_pnames.insert ("facecolor");
5290  all_pnames.insert ("facelighting");
5291  all_pnames.insert ("interpreter");
5292  all_pnames.insert ("linestyle");
5293  all_pnames.insert ("linewidth");
5294  all_pnames.insert ("marker");
5295  all_pnames.insert ("markeredgecolor");
5296  all_pnames.insert ("markerfacecolor");
5297  all_pnames.insert ("markersize");
5298  all_pnames.insert ("meshstyle");
5299  all_pnames.insert ("normalmode");
5300  all_pnames.insert ("specularcolorreflectance");
5301  all_pnames.insert ("specularexponent");
5302  all_pnames.insert ("specularstrength");
5303  all_pnames.insert ("vertexnormals");
5304  all_pnames.insert ("xdata");
5305  all_pnames.insert ("xdatasource");
5306  all_pnames.insert ("ydata");
5307  all_pnames.insert ("ydatasource");
5308  all_pnames.insert ("zdata");
5309  all_pnames.insert ("zdatasource");
5310  all_pnames.insert ("alim");
5311  all_pnames.insert ("clim");
5312  all_pnames.insert ("xlim");
5313  all_pnames.insert ("ylim");
5314  all_pnames.insert ("zlim");
5315  all_pnames.insert ("aliminclude");
5316  all_pnames.insert ("climinclude");
5317  all_pnames.insert ("xliminclude");
5318  all_pnames.insert ("yliminclude");
5319  all_pnames.insert ("zliminclude");
5320 
5321  std::set<std::string> base_pnames = base_properties::core_property_names ();
5322  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5323 
5324  initialized = true;
5325  }
5326 
5327  return all_pnames;
5328 }
5329 
5330 bool
5332 {
5333  std::set<std::string> pnames = core_property_names ();
5334 
5335  return pnames.find (pname) != pnames.end ();
5336 }
5337 
5338 std::set<std::string>
5340 {
5341  static std::set<std::string> all_pnames;
5342 
5343  static bool initialized = false;
5344 
5345  if (! initialized)
5346  {
5347  all_pnames.insert ("alim");
5348  all_pnames.insert ("clim");
5349  all_pnames.insert ("xlim");
5350  all_pnames.insert ("ylim");
5351  all_pnames.insert ("zlim");
5352 
5353  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
5354  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5355 
5356  initialized = true;
5357  }
5358 
5359  return all_pnames;
5360 }
5361 
5362 bool
5364 {
5365  std::set<std::string> pnames = readonly_property_names ();
5366 
5367  return pnames.find (pname) != pnames.end ();
5368 }
5369 
5370 std::set<std::string>
5372 {
5373  static std::set<std::string> all_pnames = core_property_names ();
5374 
5375  std::set<std::string> retval = all_pnames;
5376  std::set<std::string> base_props = base_properties::all_property_names ();
5377  retval.insert (base_props.begin (), base_props.end ());
5378 
5379  return retval;
5380 }
5381 
5382 bool
5384 {
5385  std::set<std::string> pnames = all_property_names ();
5386 
5387  return pnames.find (pname) != pnames.end ();
5388 }
5389 
5390 // ******** hggroup ********
5391 
5393  : base_properties (go_name, mh, p),
5394  displayname ("displayname", mh, ""),
5395  erasemode ("erasemode", mh, "{normal}|none|xor|background"),
5396  alim ("alim", mh, Matrix ()),
5397  clim ("clim", mh, Matrix ()),
5398  xlim ("xlim", mh, Matrix ()),
5399  ylim ("ylim", mh, Matrix ()),
5400  zlim ("zlim", mh, Matrix ()),
5401  aliminclude ("aliminclude", mh, "on"),
5402  climinclude ("climinclude", mh, "on"),
5403  xliminclude ("xliminclude", mh, "on"),
5404  yliminclude ("yliminclude", mh, "on"),
5405  zliminclude ("zliminclude", mh, "on")
5406 {
5409  alim.set_id (ID_ALIM);
5410  alim.set_hidden (true);
5411  clim.set_id (ID_CLIM);
5412  clim.set_hidden (true);
5413  xlim.set_id (ID_XLIM);
5414  xlim.set_hidden (true);
5415  ylim.set_id (ID_YLIM);
5416  ylim.set_hidden (true);
5417  zlim.set_id (ID_ZLIM);
5418  zlim.set_hidden (true);
5420  aliminclude.set_hidden (true);
5422  climinclude.set_hidden (true);
5424  xliminclude.set_hidden (true);
5426  yliminclude.set_hidden (true);
5428  zliminclude.set_hidden (true);
5429  init ();
5430 }
5431 
5432 void
5434 {
5435  const std::set<std::string>& pnames = all_property_names ();
5436 
5437  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
5438 
5439  if (error_state)
5440  return;
5441  else if (has_readonly_property (pname))
5442  {
5443  error ("set: \"%s\" is read-only", pname.c_str ());
5444  return;
5445  }
5446 
5447  if (pname.compare ("displayname"))
5448  set_displayname (val);
5449  else if (pname.compare ("erasemode"))
5450  set_erasemode (val);
5451  else if (pname.compare ("aliminclude"))
5452  set_aliminclude (val);
5453  else if (pname.compare ("climinclude"))
5454  set_climinclude (val);
5455  else if (pname.compare ("xliminclude"))
5456  set_xliminclude (val);
5457  else if (pname.compare ("yliminclude"))
5458  set_yliminclude (val);
5459  else if (pname.compare ("zliminclude"))
5460  set_zliminclude (val);
5461  else
5462  base_properties::set (pname, val);
5463 }
5464 
5467 {
5469 
5470  m.assign ("displayname", octave_value (get_displayname ()));
5471  m.assign ("erasemode", octave_value (get_erasemode ()));
5472  if (all)
5473  m.assign ("alim", octave_value (get_alim ()));
5474  if (all)
5475  m.assign ("clim", octave_value (get_clim ()));
5476  if (all)
5477  m.assign ("xlim", octave_value (get_xlim ()));
5478  if (all)
5479  m.assign ("ylim", octave_value (get_ylim ()));
5480  if (all)
5481  m.assign ("zlim", octave_value (get_zlim ()));
5482  if (all)
5483  m.assign ("aliminclude", octave_value (get_aliminclude ()));
5484  if (all)
5485  m.assign ("climinclude", octave_value (get_climinclude ()));
5486  if (all)
5487  m.assign ("xliminclude", octave_value (get_xliminclude ()));
5488  if (all)
5489  m.assign ("yliminclude", octave_value (get_yliminclude ()));
5490  if (all)
5491  m.assign ("zliminclude", octave_value (get_zliminclude ()));
5492 
5493  return m;
5494 }
5495 
5497 hggroup::properties::get (const caseless_str& pname_arg) const
5498 {
5499  octave_value retval;
5500 
5501  const std::set<std::string>& pnames = all_property_names ();
5502 
5503  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5504 
5505  if (error_state)
5506  return retval;
5507 
5508  if (pname.compare ("displayname"))
5509  retval = get_displayname ();
5510  else if (pname.compare ("erasemode"))
5511  retval = get_erasemode ();
5512  else if (pname.compare ("alim"))
5513  retval = get_alim ();
5514  else if (pname.compare ("clim"))
5515  retval = get_clim ();
5516  else if (pname.compare ("xlim"))
5517  retval = get_xlim ();
5518  else if (pname.compare ("ylim"))
5519  retval = get_ylim ();
5520  else if (pname.compare ("zlim"))
5521  retval = get_zlim ();
5522  else if (pname.compare ("aliminclude"))
5523  retval = get_aliminclude ();
5524  else if (pname.compare ("climinclude"))
5525  retval = get_climinclude ();
5526  else if (pname.compare ("xliminclude"))
5527  retval = get_xliminclude ();
5528  else if (pname.compare ("yliminclude"))
5529  retval = get_yliminclude ();
5530  else if (pname.compare ("zliminclude"))
5531  retval = get_zliminclude ();
5532  else
5533  retval = base_properties::get (pname);
5534 
5535  return retval;
5536 }
5537 
5538 property
5540 {
5541  const std::set<std::string>& pnames = all_property_names ();
5542 
5543  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5544 
5545  if (error_state)
5546  return property ();
5547 
5548  if (pname.compare ("displayname"))
5549  return property (&displayname, true);
5550  else if (pname.compare ("erasemode"))
5551  return property (&erasemode, true);
5552  else if (pname.compare ("alim"))
5553  return property (&alim, true);
5554  else if (pname.compare ("clim"))
5555  return property (&clim, true);
5556  else if (pname.compare ("xlim"))
5557  return property (&xlim, true);
5558  else if (pname.compare ("ylim"))
5559  return property (&ylim, true);
5560  else if (pname.compare ("zlim"))
5561  return property (&zlim, true);
5562  else if (pname.compare ("aliminclude"))
5563  return property (&aliminclude, true);
5564  else if (pname.compare ("climinclude"))
5565  return property (&climinclude, true);
5566  else if (pname.compare ("xliminclude"))
5567  return property (&xliminclude, true);
5568  else if (pname.compare ("yliminclude"))
5569  return property (&yliminclude, true);
5570  else if (pname.compare ("zliminclude"))
5571  return property (&zliminclude, true);
5572  else
5573  return base_properties::get_property (pname);
5574 }
5575 
5578 {
5580 
5581  m["displayname"] = "";
5582  m["erasemode"] = "normal";
5583  m["alim"] = Matrix ();
5584  m["clim"] = Matrix ();
5585  m["xlim"] = Matrix ();
5586  m["ylim"] = Matrix ();
5587  m["zlim"] = Matrix ();
5588  m["aliminclude"] = "on";
5589  m["climinclude"] = "on";
5590  m["xliminclude"] = "on";
5591  m["yliminclude"] = "on";
5592  m["zliminclude"] = "on";
5593 
5594  return m;
5595 }
5596 
5597 std::string hggroup::properties::go_name ("hggroup");
5598 
5599 std::set<std::string>
5601 {
5602  static std::set<std::string> all_pnames;
5603 
5604  static bool initialized = false;
5605 
5606  if (! initialized)
5607  {
5608  all_pnames.insert ("displayname");
5609  all_pnames.insert ("erasemode");
5610  all_pnames.insert ("alim");
5611  all_pnames.insert ("clim");
5612  all_pnames.insert ("xlim");
5613  all_pnames.insert ("ylim");
5614  all_pnames.insert ("zlim");
5615  all_pnames.insert ("aliminclude");
5616  all_pnames.insert ("climinclude");
5617  all_pnames.insert ("xliminclude");
5618  all_pnames.insert ("yliminclude");
5619  all_pnames.insert ("zliminclude");
5620 
5621  std::set<std::string> base_pnames = base_properties::core_property_names ();
5622  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5623 
5624  initialized = true;
5625  }
5626 
5627  return all_pnames;
5628 }
5629 
5630 bool
5632 {
5633  std::set<std::string> pnames = core_property_names ();
5634 
5635  return pnames.find (pname) != pnames.end ();
5636 }
5637 
5638 std::set<std::string>
5640 {
5641  static std::set<std::string> all_pnames;
5642 
5643  static bool initialized = false;
5644 
5645  if (! initialized)
5646  {
5647  all_pnames.insert ("alim");
5648  all_pnames.insert ("clim");
5649  all_pnames.insert ("xlim");
5650  all_pnames.insert ("ylim");
5651  all_pnames.insert ("zlim");
5652 
5653  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
5654  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5655 
5656  initialized = true;
5657  }
5658 
5659  return all_pnames;
5660 }
5661 
5662 bool
5664 {
5665  std::set<std::string> pnames = readonly_property_names ();
5666 
5667  return pnames.find (pname) != pnames.end ();
5668 }
5669 
5670 std::set<std::string>
5672 {
5673  static std::set<std::string> all_pnames = core_property_names ();
5674 
5675  std::set<std::string> retval = all_pnames;
5676  std::set<std::string> base_props = base_properties::all_property_names ();
5677  retval.insert (base_props.begin (), base_props.end ());
5678 
5679  return retval;
5680 }
5681 
5682 bool
5684 {
5685  std::set<std::string> pnames = all_property_names ();
5686 
5687  return pnames.find (pname) != pnames.end ();
5688 }
5689 
5690 // ******** uimenu ********
5691 
5693  : base_properties (go_name, mh, p),
5694  __object__ ("__object__", mh, Matrix ()),
5695  accelerator ("accelerator", mh, ""),
5696  callback ("callback", mh, Matrix ()),
5697  checked ("checked", mh, "off"),
5698  enable ("enable", mh, "on"),
5699  foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
5700  label ("label", mh, ""),
5701  position ("position", mh, 0),
5702  separator ("separator", mh, "off"),
5703  fltk_label ("fltk_label", mh, "")
5704 {
5711  label.set_id (ID_LABEL);
5715  fltk_label.set_hidden (true);
5716  init ();
5717 }
5718 
5719 void
5720 uimenu::properties::set (const caseless_str& pname_arg, const octave_value& val)
5721 {
5722  const std::set<std::string>& pnames = all_property_names ();
5723 
5724  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
5725 
5726  if (error_state)
5727  return;
5728  else if (has_readonly_property (pname))
5729  {
5730  error ("set: \"%s\" is read-only", pname.c_str ());
5731  return;
5732  }
5733 
5734  if (pname.compare ("__object__"))
5735  set___object__ (val);
5736  else if (pname.compare ("accelerator"))
5737  set_accelerator (val);
5738  else if (pname.compare ("callback"))
5739  set_callback (val);
5740  else if (pname.compare ("checked"))
5741  set_checked (val);
5742  else if (pname.compare ("enable"))
5743  set_enable (val);
5744  else if (pname.compare ("foregroundcolor"))
5745  set_foregroundcolor (val);
5746  else if (pname.compare ("label"))
5747  set_label (val);
5748  else if (pname.compare ("position"))
5749  set_position (val);
5750  else if (pname.compare ("separator"))
5751  set_separator (val);
5752  else if (pname.compare ("fltk_label"))
5753  set_fltk_label (val);
5754  else
5755  base_properties::set (pname, val);
5756 }
5757 
5759 uimenu::properties::get (bool all) const
5760 {
5762 
5763  m.assign ("__object__", octave_value (get___object__ ()));
5764  m.assign ("accelerator", octave_value (get_accelerator ()));
5765  m.assign ("callback", octave_value (get_callback ()));
5766  m.assign ("checked", octave_value (get_checked ()));
5767  m.assign ("enable", octave_value (get_enable ()));
5768  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
5769  m.assign ("label", octave_value (get_label ()));
5770  m.assign ("position", octave_value (get_position ()));
5771  m.assign ("separator", octave_value (get_separator ()));
5772  if (all)
5773  m.assign ("fltk_label", octave_value (get_fltk_label ()));
5774 
5775  return m;
5776 }
5777 
5779 uimenu::properties::get (const caseless_str& pname_arg) const
5780 {
5781  octave_value retval;
5782 
5783  const std::set<std::string>& pnames = all_property_names ();
5784 
5785  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5786 
5787  if (error_state)
5788  return retval;
5789 
5790  if (pname.compare ("__object__"))
5791  retval = get___object__ ();
5792  else if (pname.compare ("accelerator"))
5793  retval = get_accelerator ();
5794  else if (pname.compare ("callback"))
5795  retval = get_callback ();
5796  else if (pname.compare ("checked"))
5797  retval = get_checked ();
5798  else if (pname.compare ("enable"))
5799  retval = get_enable ();
5800  else if (pname.compare ("foregroundcolor"))
5801  retval = get_foregroundcolor ();
5802  else if (pname.compare ("label"))
5803  retval = get_label ();
5804  else if (pname.compare ("position"))
5805  retval = get_position ();
5806  else if (pname.compare ("separator"))
5807  retval = get_separator ();
5808  else if (pname.compare ("fltk_label"))
5809  retval = get_fltk_label ();
5810  else
5811  retval = base_properties::get (pname);
5812 
5813  return retval;
5814 }
5815 
5816 property
5818 {
5819  const std::set<std::string>& pnames = all_property_names ();
5820 
5821  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
5822 
5823  if (error_state)
5824  return property ();
5825 
5826  if (pname.compare ("__object__"))
5827  return property (&__object__, true);
5828  else if (pname.compare ("accelerator"))
5829  return property (&accelerator, true);
5830  else if (pname.compare ("callback"))
5831  return property (&callback, true);
5832  else if (pname.compare ("checked"))
5833  return property (&checked, true);
5834  else if (pname.compare ("enable"))
5835  return property (&enable, true);
5836  else if (pname.compare ("foregroundcolor"))
5837  return property (&foregroundcolor, true);
5838  else if (pname.compare ("label"))
5839  return property (&label, true);
5840  else if (pname.compare ("position"))
5841  return property (&position, true);
5842  else if (pname.compare ("separator"))
5843  return property (&separator, true);
5844  else if (pname.compare ("fltk_label"))
5845  return property (&fltk_label, true);
5846  else
5847  return base_properties::get_property (pname);
5848 }
5849 
5852 {
5854 
5855  m["__object__"] = Matrix ();
5856  m["accelerator"] = "";
5857  m["callback"] = Matrix ();
5858  m["checked"] = "off";
5859  m["enable"] = "on";
5860  m["foregroundcolor"] = color_values (0, 0, 0);
5861  m["label"] = "";
5862  m["position"] = 0;
5863  m["separator"] = "off";
5864  m["fltk_label"] = "";
5865 
5866  return m;
5867 }
5868 
5869 std::string uimenu::properties::go_name ("uimenu");
5870 
5871 std::set<std::string>
5873 {
5874  static std::set<std::string> all_pnames;
5875 
5876  static bool initialized = false;
5877 
5878  if (! initialized)
5879  {
5880  all_pnames.insert ("__object__");
5881  all_pnames.insert ("accelerator");
5882  all_pnames.insert ("callback");
5883  all_pnames.insert ("checked");
5884  all_pnames.insert ("enable");
5885  all_pnames.insert ("foregroundcolor");
5886  all_pnames.insert ("label");
5887  all_pnames.insert ("position");
5888  all_pnames.insert ("separator");
5889  all_pnames.insert ("fltk_label");
5890 
5891  std::set<std::string> base_pnames = base_properties::core_property_names ();
5892  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5893 
5894  initialized = true;
5895  }
5896 
5897  return all_pnames;
5898 }
5899 
5900 bool
5902 {
5903  std::set<std::string> pnames = core_property_names ();
5904 
5905  return pnames.find (pname) != pnames.end ();
5906 }
5907 
5908 std::set<std::string>
5910 {
5911  static std::set<std::string> all_pnames;
5912 
5913  static bool initialized = false;
5914 
5915  if (! initialized)
5916  {
5917 
5918  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
5919  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
5920 
5921  initialized = true;
5922  }
5923 
5924  return all_pnames;
5925 }
5926 
5927 bool
5929 {
5930  std::set<std::string> pnames = readonly_property_names ();
5931 
5932  return pnames.find (pname) != pnames.end ();
5933 }
5934 
5935 std::set<std::string>
5937 {
5938  static std::set<std::string> all_pnames = core_property_names ();
5939 
5940  std::set<std::string> retval = all_pnames;
5941  std::set<std::string> base_props = base_properties::all_property_names ();
5942  retval.insert (base_props.begin (), base_props.end ());
5943 
5944  return retval;
5945 }
5946 
5947 bool
5949 {
5950  std::set<std::string> pnames = all_property_names ();
5951 
5952  return pnames.find (pname) != pnames.end ();
5953 }
5954 
5955 // ******** uicontextmenu ********
5956 
5958  : base_properties (go_name, mh, p),
5959  __object__ ("__object__", mh, Matrix ()),
5960  callback ("callback", mh, Matrix ()),
5961  position ("position", mh, Matrix (1, 2, 0.0))
5962 {
5966  init ();
5967 }
5968 
5969 void
5971 {
5972  const std::set<std::string>& pnames = all_property_names ();
5973 
5974  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
5975 
5976  if (error_state)
5977  return;
5978  else if (has_readonly_property (pname))
5979  {
5980  error ("set: \"%s\" is read-only", pname.c_str ());
5981  return;
5982  }
5983 
5984  if (pname.compare ("__object__"))
5985  set___object__ (val);
5986  else if (pname.compare ("callback"))
5987  set_callback (val);
5988  else if (pname.compare ("position"))
5989  set_position (val);
5990  else
5991  base_properties::set (pname, val);
5992 }
5993 
5996 {
5998 
5999  m.assign ("__object__", octave_value (get___object__ ()));
6000  m.assign ("callback", octave_value (get_callback ()));
6001  m.assign ("position", octave_value (get_position ()));
6002 
6003  return m;
6004 }
6005 
6008 {
6009  octave_value retval;
6010 
6011  const std::set<std::string>& pnames = all_property_names ();
6012 
6013  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6014 
6015  if (error_state)
6016  return retval;
6017 
6018  if (pname.compare ("__object__"))
6019  retval = get___object__ ();
6020  else if (pname.compare ("callback"))
6021  retval = get_callback ();
6022  else if (pname.compare ("position"))
6023  retval = get_position ();
6024  else
6025  retval = base_properties::get (pname);
6026 
6027  return retval;
6028 }
6029 
6030 property
6032 {
6033  const std::set<std::string>& pnames = all_property_names ();
6034 
6035  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6036 
6037  if (error_state)
6038  return property ();
6039 
6040  if (pname.compare ("__object__"))
6041  return property (&__object__, true);
6042  else if (pname.compare ("callback"))
6043  return property (&callback, true);
6044  else if (pname.compare ("position"))
6045  return property (&position, true);
6046  else
6047  return base_properties::get_property (pname);
6048 }
6049 
6052 {
6054 
6055  m["__object__"] = Matrix ();
6056  m["callback"] = Matrix ();
6057  m["position"] = Matrix (1, 2, 0.0);
6058 
6059  return m;
6060 }
6061 
6062 std::string uicontextmenu::properties::go_name ("uicontextmenu");
6063 
6064 std::set<std::string>
6066 {
6067  static std::set<std::string> all_pnames;
6068 
6069  static bool initialized = false;
6070 
6071  if (! initialized)
6072  {
6073  all_pnames.insert ("__object__");
6074  all_pnames.insert ("callback");
6075  all_pnames.insert ("position");
6076 
6077  std::set<std::string> base_pnames = base_properties::core_property_names ();
6078  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6079 
6080  initialized = true;
6081  }
6082 
6083  return all_pnames;
6084 }
6085 
6086 bool
6088 {
6089  std::set<std::string> pnames = core_property_names ();
6090 
6091  return pnames.find (pname) != pnames.end ();
6092 }
6093 
6094 std::set<std::string>
6096 {
6097  static std::set<std::string> all_pnames;
6098 
6099  static bool initialized = false;
6100 
6101  if (! initialized)
6102  {
6103 
6104  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6105  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6106 
6107  initialized = true;
6108  }
6109 
6110  return all_pnames;
6111 }
6112 
6113 bool
6115 {
6116  std::set<std::string> pnames = readonly_property_names ();
6117 
6118  return pnames.find (pname) != pnames.end ();
6119 }
6120 
6121 std::set<std::string>
6123 {
6124  static std::set<std::string> all_pnames = core_property_names ();
6125 
6126  std::set<std::string> retval = all_pnames;
6127  std::set<std::string> base_props = base_properties::all_property_names ();
6128  retval.insert (base_props.begin (), base_props.end ());
6129 
6130  return retval;
6131 }
6132 
6133 bool
6135 {
6136  std::set<std::string> pnames = all_property_names ();
6137 
6138  return pnames.find (pname) != pnames.end ();
6139 }
6140 
6141 // ******** uicontrol ********
6142 
6144  : base_properties (go_name, mh, p),
6145  __object__ ("__object__", mh, Matrix ()),
6146  backgroundcolor ("backgroundcolor", mh, color_values (1, 1, 1)),
6147  callback ("callback", mh, Matrix ()),
6148  cdata ("cdata", mh, Matrix ()),
6149  clipping ("clipping", mh, "on"),
6150  enable ("enable", mh, "{on}|inactive|off"),
6151  extent ("extent", mh, Matrix (1, 4, 0.0)),
6152  fontangle ("fontangle", mh, "{normal}|italic|oblique"),
6153  fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
6154  fontsize ("fontsize", mh, 10),
6155  fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
6156  fontweight ("fontweight", mh, "light|{normal}|demi|bold"),
6157  foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
6158  horizontalalignment ("horizontalalignment", mh, "left|{center}|right"),
6159  keypressfcn ("keypressfcn", mh, Matrix ()),
6160  listboxtop ("listboxtop", mh, 1),
6161  max ("max", mh, 1),
6162  min ("min", mh, 0),
6163  position ("position", mh, default_control_position ()),
6164  sliderstep ("sliderstep", mh, default_control_sliderstep ()),
6165  string ("string", mh, ""),
6166  style ("style", mh, "{pushbutton}|togglebutton|radiobutton|checkbox|edit|text|slider|frame|listbox|popupmenu"),
6167  tooltipstring ("tooltipstring", mh, ""),
6168  units ("units", mh, "normalized|inches|centimeters|points|{pixels}|characters"),
6169  value ("value", mh, Matrix (1, 1, 1.0)),
6170  verticalalignment ("verticalalignment", mh, "top|{middle}|bottom")
6171 {
6175  cdata.set_id (ID_CDATA);
6188  max.set_id (ID_MAX);
6189  min.set_id (ID_MIN);
6192  string.set_id (ID_STRING);
6193  style.set_id (ID_STYLE);
6195  units.set_id (ID_UNITS);
6196  value.set_id (ID_VALUE);
6198  init ();
6199 }
6200 
6201 void
6203 {
6204  const std::set<std::string>& pnames = all_property_names ();
6205 
6206  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
6207 
6208  if (error_state)
6209  return;
6210  else if (has_readonly_property (pname))
6211  {
6212  error ("set: \"%s\" is read-only", pname.c_str ());
6213  return;
6214  }
6215 
6216  if (pname.compare ("__object__"))
6217  set___object__ (val);
6218  else if (pname.compare ("backgroundcolor"))
6219  set_backgroundcolor (val);
6220  else if (pname.compare ("callback"))
6221  set_callback (val);
6222  else if (pname.compare ("cdata"))
6223  set_cdata (val);
6224  else if (pname.compare ("clipping"))
6225  set_clipping (val);
6226  else if (pname.compare ("enable"))
6227  set_enable (val);
6228  else if (pname.compare ("fontangle"))
6229  set_fontangle (val);
6230  else if (pname.compare ("fontname"))
6231  set_fontname (val);
6232  else if (pname.compare ("fontsize"))
6233  set_fontsize (val);
6234  else if (pname.compare ("fontunits"))
6235  set_fontunits (val);
6236  else if (pname.compare ("fontweight"))
6237  set_fontweight (val);
6238  else if (pname.compare ("foregroundcolor"))
6239  set_foregroundcolor (val);
6240  else if (pname.compare ("horizontalalignment"))
6241  set_horizontalalignment (val);
6242  else if (pname.compare ("keypressfcn"))
6243  set_keypressfcn (val);
6244  else if (pname.compare ("listboxtop"))
6245  set_listboxtop (val);
6246  else if (pname.compare ("max"))
6247  set_max (val);
6248  else if (pname.compare ("min"))
6249  set_min (val);
6250  else if (pname.compare ("position"))
6251  set_position (val);
6252  else if (pname.compare ("sliderstep"))
6253  set_sliderstep (val);
6254  else if (pname.compare ("string"))
6255  set_string (val);
6256  else if (pname.compare ("style"))
6257  set_style (val);
6258  else if (pname.compare ("tooltipstring"))
6259  set_tooltipstring (val);
6260  else if (pname.compare ("units"))
6261  set_units (val);
6262  else if (pname.compare ("value"))
6263  set_value (val);
6264  else if (pname.compare ("verticalalignment"))
6265  set_verticalalignment (val);
6266  else
6267  base_properties::set (pname, val);
6268 }
6269 
6272 {
6274 
6275  m.assign ("__object__", octave_value (get___object__ ()));
6276  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
6277  m.assign ("callback", octave_value (get_callback ()));
6278  m.assign ("cdata", octave_value (get_cdata ()));
6279  m.assign ("clipping", octave_value (get_clipping ()));
6280  m.assign ("enable", octave_value (get_enable ()));
6281  m.assign ("extent", octave_value (get_extent ()));
6282  m.assign ("fontangle", octave_value (get_fontangle ()));
6283  m.assign ("fontname", octave_value (get_fontname ()));
6284  m.assign ("fontsize", octave_value (get_fontsize ()));
6285  m.assign ("fontunits", octave_value (get_fontunits ()));
6286  m.assign ("fontweight", octave_value (get_fontweight ()));
6287  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
6288  m.assign ("horizontalalignment", octave_value (get_horizontalalignment ()));
6289  m.assign ("keypressfcn", octave_value (get_keypressfcn ()));
6290  m.assign ("listboxtop", octave_value (get_listboxtop ()));
6291  m.assign ("max", octave_value (get_max ()));
6292  m.assign ("min", octave_value (get_min ()));
6293  m.assign ("position", octave_value (get_position ()));
6294  m.assign ("sliderstep", octave_value (get_sliderstep ()));
6295  m.assign ("string", octave_value (get_string ()));
6296  m.assign ("style", octave_value (get_style ()));
6297  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
6298  m.assign ("units", octave_value (get_units ()));
6299  m.assign ("value", octave_value (get_value ()));
6300  m.assign ("verticalalignment", octave_value (get_verticalalignment ()));
6301 
6302  return m;
6303 }
6304 
6307 {
6308  octave_value retval;
6309 
6310  const std::set<std::string>& pnames = all_property_names ();
6311 
6312  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6313 
6314  if (error_state)
6315  return retval;
6316 
6317  if (pname.compare ("__object__"))
6318  retval = get___object__ ();
6319  else if (pname.compare ("backgroundcolor"))
6320  retval = get_backgroundcolor ();
6321  else if (pname.compare ("callback"))
6322  retval = get_callback ();
6323  else if (pname.compare ("cdata"))
6324  retval = get_cdata ();
6325  else if (pname.compare ("clipping"))
6326  retval = get_clipping ();
6327  else if (pname.compare ("enable"))
6328  retval = get_enable ();
6329  else if (pname.compare ("extent"))
6330  retval = get_extent ();
6331  else if (pname.compare ("fontangle"))
6332  retval = get_fontangle ();
6333  else if (pname.compare ("fontname"))
6334  retval = get_fontname ();
6335  else if (pname.compare ("fontsize"))
6336  retval = get_fontsize ();
6337  else if (pname.compare ("fontunits"))
6338  retval = get_fontunits ();
6339  else if (pname.compare ("fontweight"))
6340  retval = get_fontweight ();
6341  else if (pname.compare ("foregroundcolor"))
6342  retval = get_foregroundcolor ();
6343  else if (pname.compare ("horizontalalignment"))
6344  retval = get_horizontalalignment ();
6345  else if (pname.compare ("keypressfcn"))
6346  retval = get_keypressfcn ();
6347  else if (pname.compare ("listboxtop"))
6348  retval = get_listboxtop ();
6349  else if (pname.compare ("max"))
6350  retval = get_max ();
6351  else if (pname.compare ("min"))
6352  retval = get_min ();
6353  else if (pname.compare ("position"))
6354  retval = get_position ();
6355  else if (pname.compare ("sliderstep"))
6356  retval = get_sliderstep ();
6357  else if (pname.compare ("string"))
6358  retval = get_string ();
6359  else if (pname.compare ("style"))
6360  retval = get_style ();
6361  else if (pname.compare ("tooltipstring"))
6362  retval = get_tooltipstring ();
6363  else if (pname.compare ("units"))
6364  retval = get_units ();
6365  else if (pname.compare ("value"))
6366  retval = get_value ();
6367  else if (pname.compare ("verticalalignment"))
6368  retval = get_verticalalignment ();
6369  else
6370  retval = base_properties::get (pname);
6371 
6372  return retval;
6373 }
6374 
6375 property
6377 {
6378  const std::set<std::string>& pnames = all_property_names ();
6379 
6380  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6381 
6382  if (error_state)
6383  return property ();
6384 
6385  if (pname.compare ("__object__"))
6386  return property (&__object__, true);
6387  else if (pname.compare ("backgroundcolor"))
6388  return property (&backgroundcolor, true);
6389  else if (pname.compare ("callback"))
6390  return property (&callback, true);
6391  else if (pname.compare ("cdata"))
6392  return property (&cdata, true);
6393  else if (pname.compare ("clipping"))
6394  return property (&clipping, true);
6395  else if (pname.compare ("enable"))
6396  return property (&enable, true);
6397  else if (pname.compare ("extent"))
6398  return property (&extent, true);
6399  else if (pname.compare ("fontangle"))
6400  return property (&fontangle, true);
6401  else if (pname.compare ("fontname"))
6402  return property (&fontname, true);
6403  else if (pname.compare ("fontsize"))
6404  return property (&fontsize, true);
6405  else if (pname.compare ("fontunits"))
6406  return property (&fontunits, true);
6407  else if (pname.compare ("fontweight"))
6408  return property (&fontweight, true);
6409  else if (pname.compare ("foregroundcolor"))
6410  return property (&foregroundcolor, true);
6411  else if (pname.compare ("horizontalalignment"))
6412  return property (&horizontalalignment, true);
6413  else if (pname.compare ("keypressfcn"))
6414  return property (&keypressfcn, true);
6415  else if (pname.compare ("listboxtop"))
6416  return property (&listboxtop, true);
6417  else if (pname.compare ("max"))
6418  return property (&max, true);
6419  else if (pname.compare ("min"))
6420  return property (&min, true);
6421  else if (pname.compare ("position"))
6422  return property (&position, true);
6423  else if (pname.compare ("sliderstep"))
6424  return property (&sliderstep, true);
6425  else if (pname.compare ("string"))
6426  return property (&string, true);
6427  else if (pname.compare ("style"))
6428  return property (&style, true);
6429  else if (pname.compare ("tooltipstring"))
6430  return property (&tooltipstring, true);
6431  else if (pname.compare ("units"))
6432  return property (&units, true);
6433  else if (pname.compare ("value"))
6434  return property (&value, true);
6435  else if (pname.compare ("verticalalignment"))
6436  return property (&verticalalignment, true);
6437  else
6438  return base_properties::get_property (pname);
6439 }
6440 
6443 {
6445 
6446  m["__object__"] = Matrix ();
6447  m["backgroundcolor"] = color_values (1, 1, 1);
6448  m["callback"] = Matrix ();
6449  m["cdata"] = Matrix ();
6450  m["clipping"] = "on";
6451  m["enable"] = "on";
6452  m["extent"] = Matrix (1, 4, 0.0);
6453  m["fontangle"] = "normal";
6454  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
6455  m["fontsize"] = 10;
6456  m["fontunits"] = "points";
6457  m["fontweight"] = "normal";
6458  m["foregroundcolor"] = color_values (0, 0, 0);
6459  m["horizontalalignment"] = "center";
6460  m["keypressfcn"] = Matrix ();
6461  m["listboxtop"] = 1;
6462  m["max"] = 1;
6463  m["min"] = 0;
6464  m["position"] = default_control_position ();
6465  m["sliderstep"] = default_control_sliderstep ();
6466  m["string"] = "";
6467  m["style"] = "pushbutton";
6468  m["tooltipstring"] = "";
6469  m["units"] = "pixels";
6470  m["value"] = Matrix (1, 1, 1.0);
6471  m["verticalalignment"] = "middle";
6472 
6473  return m;
6474 }
6475 
6476 std::string uicontrol::properties::go_name ("uicontrol");
6477 
6478 std::set<std::string>
6480 {
6481  static std::set<std::string> all_pnames;
6482 
6483  static bool initialized = false;
6484 
6485  if (! initialized)
6486  {
6487  all_pnames.insert ("__object__");
6488  all_pnames.insert ("backgroundcolor");
6489  all_pnames.insert ("callback");
6490  all_pnames.insert ("cdata");
6491  all_pnames.insert ("clipping");
6492  all_pnames.insert ("enable");
6493  all_pnames.insert ("extent");
6494  all_pnames.insert ("fontangle");
6495  all_pnames.insert ("fontname");
6496  all_pnames.insert ("fontsize");
6497  all_pnames.insert ("fontunits");
6498  all_pnames.insert ("fontweight");
6499  all_pnames.insert ("foregroundcolor");
6500  all_pnames.insert ("horizontalalignment");
6501  all_pnames.insert ("keypressfcn");
6502  all_pnames.insert ("listboxtop");
6503  all_pnames.insert ("max");
6504  all_pnames.insert ("min");
6505  all_pnames.insert ("position");
6506  all_pnames.insert ("sliderstep");
6507  all_pnames.insert ("string");
6508  all_pnames.insert ("style");
6509  all_pnames.insert ("tooltipstring");
6510  all_pnames.insert ("units");
6511  all_pnames.insert ("value");
6512  all_pnames.insert ("verticalalignment");
6513 
6514  std::set<std::string> base_pnames = base_properties::core_property_names ();
6515  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6516 
6517  initialized = true;
6518  }
6519 
6520  return all_pnames;
6521 }
6522 
6523 bool
6525 {
6526  std::set<std::string> pnames = core_property_names ();
6527 
6528  return pnames.find (pname) != pnames.end ();
6529 }
6530 
6531 std::set<std::string>
6533 {
6534  static std::set<std::string> all_pnames;
6535 
6536  static bool initialized = false;
6537 
6538  if (! initialized)
6539  {
6540  all_pnames.insert ("extent");
6541 
6542  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6543  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6544 
6545  initialized = true;
6546  }
6547 
6548  return all_pnames;
6549 }
6550 
6551 bool
6553 {
6554  std::set<std::string> pnames = readonly_property_names ();
6555 
6556  return pnames.find (pname) != pnames.end ();
6557 }
6558 
6559 std::set<std::string>
6561 {
6562  static std::set<std::string> all_pnames = core_property_names ();
6563 
6564  std::set<std::string> retval = all_pnames;
6565  std::set<std::string> base_props = base_properties::all_property_names ();
6566  retval.insert (base_props.begin (), base_props.end ());
6567 
6568  return retval;
6569 }
6570 
6571 bool
6573 {
6574  std::set<std::string> pnames = all_property_names ();
6575 
6576  return pnames.find (pname) != pnames.end ();
6577 }
6578 
6579 // ******** uipanel ********
6580 
6582  : base_properties (go_name, mh, p),
6583  __object__ ("__object__", mh, Matrix ()),
6584  backgroundcolor ("backgroundcolor", mh, color_values (1, 1, 1)),
6585  bordertype ("bordertype", mh, "none|{etchedin}|etchedout|beveledin|beveledout|line"),
6586  borderwidth ("borderwidth", mh, 1),
6587  fontangle ("fontangle", mh, "{normal}|italic|oblique"),
6588  fontname ("fontname", mh, OCTAVE_DEFAULT_FONTNAME),
6589  fontsize ("fontsize", mh, 10),
6590  fontunits ("fontunits", mh, "inches|centimeters|normalized|{points}|pixels"),
6591  fontweight ("fontweight", mh, "light|{normal}|demi|bold"),
6592  foregroundcolor ("foregroundcolor", mh, color_values (0, 0, 0)),
6593  highlightcolor ("highlightcolor", mh, color_values (1, 1, 1)),
6594  position ("position", mh, default_panel_position ()),
6595  resizefcn ("resizefcn", mh, Matrix ()),
6596  shadowcolor ("shadowcolor", mh, color_values (0, 0, 0)),
6597  title ("title", mh, ""),
6598  titleposition ("titleposition", mh, "{lefttop}|centertop|righttop|leftbottom|centerbottom|rightbottom"),
6599  units ("units", mh, "{normalized}|inches|centimeters|points|pixels|characters")
6600 {
6615  title.set_id (ID_TITLE);
6617  units.set_id (ID_UNITS);
6618  init ();
6619 }
6620 
6621 void
6623 {
6624  const std::set<std::string>& pnames = all_property_names ();
6625 
6626  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
6627 
6628  if (error_state)
6629  return;
6630  else if (has_readonly_property (pname))
6631  {
6632  error ("set: \"%s\" is read-only", pname.c_str ());
6633  return;
6634  }
6635 
6636  if (pname.compare ("__object__"))
6637  set___object__ (val);
6638  else if (pname.compare ("backgroundcolor"))
6639  set_backgroundcolor (val);
6640  else if (pname.compare ("bordertype"))
6641  set_bordertype (val);
6642  else if (pname.compare ("borderwidth"))
6643  set_borderwidth (val);
6644  else if (pname.compare ("fontangle"))
6645  set_fontangle (val);
6646  else if (pname.compare ("fontname"))
6647  set_fontname (val);
6648  else if (pname.compare ("fontsize"))
6649  set_fontsize (val);
6650  else if (pname.compare ("fontunits"))
6651  set_fontunits (val);
6652  else if (pname.compare ("fontweight"))
6653  set_fontweight (val);
6654  else if (pname.compare ("foregroundcolor"))
6655  set_foregroundcolor (val);
6656  else if (pname.compare ("highlightcolor"))
6657  set_highlightcolor (val);
6658  else if (pname.compare ("position"))
6659  set_position (val);
6660  else if (pname.compare ("resizefcn"))
6661  set_resizefcn (val);
6662  else if (pname.compare ("shadowcolor"))
6663  set_shadowcolor (val);
6664  else if (pname.compare ("title"))
6665  set_title (val);
6666  else if (pname.compare ("titleposition"))
6667  set_titleposition (val);
6668  else if (pname.compare ("units"))
6669  set_units (val);
6670  else
6671  base_properties::set (pname, val);
6672 }
6673 
6676 {
6678 
6679  m.assign ("__object__", octave_value (get___object__ ()));
6680  m.assign ("backgroundcolor", octave_value (get_backgroundcolor ()));
6681  m.assign ("bordertype", octave_value (get_bordertype ()));
6682  m.assign ("borderwidth", octave_value (get_borderwidth ()));
6683  m.assign ("fontangle", octave_value (get_fontangle ()));
6684  m.assign ("fontname", octave_value (get_fontname ()));
6685  m.assign ("fontsize", octave_value (get_fontsize ()));
6686  m.assign ("fontunits", octave_value (get_fontunits ()));
6687  m.assign ("fontweight", octave_value (get_fontweight ()));
6688  m.assign ("foregroundcolor", octave_value (get_foregroundcolor ()));
6689  m.assign ("highlightcolor", octave_value (get_highlightcolor ()));
6690  m.assign ("position", octave_value (get_position ()));
6691  m.assign ("resizefcn", octave_value (get_resizefcn ()));
6692  m.assign ("shadowcolor", octave_value (get_shadowcolor ()));
6693  m.assign ("title", octave_value (get_title ()));
6694  m.assign ("titleposition", octave_value (get_titleposition ()));
6695  m.assign ("units", octave_value (get_units ()));
6696 
6697  return m;
6698 }
6699 
6701 uipanel::properties::get (const caseless_str& pname_arg) const
6702 {
6703  octave_value retval;
6704 
6705  const std::set<std::string>& pnames = all_property_names ();
6706 
6707  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6708 
6709  if (error_state)
6710  return retval;
6711 
6712  if (pname.compare ("__object__"))
6713  retval = get___object__ ();
6714  else if (pname.compare ("backgroundcolor"))
6715  retval = get_backgroundcolor ();
6716  else if (pname.compare ("bordertype"))
6717  retval = get_bordertype ();
6718  else if (pname.compare ("borderwidth"))
6719  retval = get_borderwidth ();
6720  else if (pname.compare ("fontangle"))
6721  retval = get_fontangle ();
6722  else if (pname.compare ("fontname"))
6723  retval = get_fontname ();
6724  else if (pname.compare ("fontsize"))
6725  retval = get_fontsize ();
6726  else if (pname.compare ("fontunits"))
6727  retval = get_fontunits ();
6728  else if (pname.compare ("fontweight"))
6729  retval = get_fontweight ();
6730  else if (pname.compare ("foregroundcolor"))
6731  retval = get_foregroundcolor ();
6732  else if (pname.compare ("highlightcolor"))
6733  retval = get_highlightcolor ();
6734  else if (pname.compare ("position"))
6735  retval = get_position ();
6736  else if (pname.compare ("resizefcn"))
6737  retval = get_resizefcn ();
6738  else if (pname.compare ("shadowcolor"))
6739  retval = get_shadowcolor ();
6740  else if (pname.compare ("title"))
6741  retval = get_title ();
6742  else if (pname.compare ("titleposition"))
6743  retval = get_titleposition ();
6744  else if (pname.compare ("units"))
6745  retval = get_units ();
6746  else
6747  retval = base_properties::get (pname);
6748 
6749  return retval;
6750 }
6751 
6752 property
6754 {
6755  const std::set<std::string>& pnames = all_property_names ();
6756 
6757  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6758 
6759  if (error_state)
6760  return property ();
6761 
6762  if (pname.compare ("__object__"))
6763  return property (&__object__, true);
6764  else if (pname.compare ("backgroundcolor"))
6765  return property (&backgroundcolor, true);
6766  else if (pname.compare ("bordertype"))
6767  return property (&bordertype, true);
6768  else if (pname.compare ("borderwidth"))
6769  return property (&borderwidth, true);
6770  else if (pname.compare ("fontangle"))
6771  return property (&fontangle, true);
6772  else if (pname.compare ("fontname"))
6773  return property (&fontname, true);
6774  else if (pname.compare ("fontsize"))
6775  return property (&fontsize, true);
6776  else if (pname.compare ("fontunits"))
6777  return property (&fontunits, true);
6778  else if (pname.compare ("fontweight"))
6779  return property (&fontweight, true);
6780  else if (pname.compare ("foregroundcolor"))
6781  return property (&foregroundcolor, true);
6782  else if (pname.compare ("highlightcolor"))
6783  return property (&highlightcolor, true);
6784  else if (pname.compare ("position"))
6785  return property (&position, true);
6786  else if (pname.compare ("resizefcn"))
6787  return property (&resizefcn, true);
6788  else if (pname.compare ("shadowcolor"))
6789  return property (&shadowcolor, true);
6790  else if (pname.compare ("title"))
6791  return property (&title, true);
6792  else if (pname.compare ("titleposition"))
6793  return property (&titleposition, true);
6794  else if (pname.compare ("units"))
6795  return property (&units, true);
6796  else
6797  return base_properties::get_property (pname);
6798 }
6799 
6802 {
6804 
6805  m["__object__"] = Matrix ();
6806  m["backgroundcolor"] = color_values (1, 1, 1);
6807  m["bordertype"] = "etchedin";
6808  m["borderwidth"] = 1;
6809  m["fontangle"] = "normal";
6810  m["fontname"] = OCTAVE_DEFAULT_FONTNAME;
6811  m["fontsize"] = 10;
6812  m["fontunits"] = "points";
6813  m["fontweight"] = "normal";
6814  m["foregroundcolor"] = color_values (0, 0, 0);
6815  m["highlightcolor"] = color_values (1, 1, 1);
6816  m["position"] = default_panel_position ();
6817  m["resizefcn"] = Matrix ();
6818  m["shadowcolor"] = color_values (0, 0, 0);
6819  m["title"] = "";
6820  m["titleposition"] = "lefttop";
6821  m["units"] = "normalized";
6822 
6823  return m;
6824 }
6825 
6826 std::string uipanel::properties::go_name ("uipanel");
6827 
6828 std::set<std::string>
6830 {
6831  static std::set<std::string> all_pnames;
6832 
6833  static bool initialized = false;
6834 
6835  if (! initialized)
6836  {
6837  all_pnames.insert ("__object__");
6838  all_pnames.insert ("backgroundcolor");
6839  all_pnames.insert ("bordertype");
6840  all_pnames.insert ("borderwidth");
6841  all_pnames.insert ("fontangle");
6842  all_pnames.insert ("fontname");
6843  all_pnames.insert ("fontsize");
6844  all_pnames.insert ("fontunits");
6845  all_pnames.insert ("fontweight");
6846  all_pnames.insert ("foregroundcolor");
6847  all_pnames.insert ("highlightcolor");
6848  all_pnames.insert ("position");
6849  all_pnames.insert ("resizefcn");
6850  all_pnames.insert ("shadowcolor");
6851  all_pnames.insert ("title");
6852  all_pnames.insert ("titleposition");
6853  all_pnames.insert ("units");
6854 
6855  std::set<std::string> base_pnames = base_properties::core_property_names ();
6856  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6857 
6858  initialized = true;
6859  }
6860 
6861  return all_pnames;
6862 }
6863 
6864 bool
6866 {
6867  std::set<std::string> pnames = core_property_names ();
6868 
6869  return pnames.find (pname) != pnames.end ();
6870 }
6871 
6872 std::set<std::string>
6874 {
6875  static std::set<std::string> all_pnames;
6876 
6877  static bool initialized = false;
6878 
6879  if (! initialized)
6880  {
6881 
6882  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
6883  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
6884 
6885  initialized = true;
6886  }
6887 
6888  return all_pnames;
6889 }
6890 
6891 bool
6893 {
6894  std::set<std::string> pnames = readonly_property_names ();
6895 
6896  return pnames.find (pname) != pnames.end ();
6897 }
6898 
6899 std::set<std::string>
6901 {
6902  static std::set<std::string> all_pnames = core_property_names ();
6903 
6904  std::set<std::string> retval = all_pnames;
6905  std::set<std::string> base_props = base_properties::all_property_names ();
6906  retval.insert (base_props.begin (), base_props.end ());
6907 
6908  return retval;
6909 }
6910 
6911 bool
6913 {
6914  std::set<std::string> pnames = all_property_names ();
6915 
6916  return pnames.find (pname) != pnames.end ();
6917 }
6918 
6919 // ******** uitoolbar ********
6920 
6922  : base_properties (go_name, mh, p),
6923  __object__ ("__object__", mh, Matrix ())
6924 {
6926  init ();
6927 }
6928 
6929 void
6931 {
6932  const std::set<std::string>& pnames = all_property_names ();
6933 
6934  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
6935 
6936  if (error_state)
6937  return;
6938  else if (has_readonly_property (pname))
6939  {
6940  error ("set: \"%s\" is read-only", pname.c_str ());
6941  return;
6942  }
6943 
6944  if (pname.compare ("__object__"))
6945  set___object__ (val);
6946  else
6947  base_properties::set (pname, val);
6948 }
6949 
6952 {
6954 
6955  m.assign ("__object__", octave_value (get___object__ ()));
6956 
6957  return m;
6958 }
6959 
6962 {
6963  octave_value retval;
6964 
6965  const std::set<std::string>& pnames = all_property_names ();
6966 
6967  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6968 
6969  if (error_state)
6970  return retval;
6971 
6972  if (pname.compare ("__object__"))
6973  retval = get___object__ ();
6974  else
6975  retval = base_properties::get (pname);
6976 
6977  return retval;
6978 }
6979 
6980 property
6982 {
6983  const std::set<std::string>& pnames = all_property_names ();
6984 
6985  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
6986 
6987  if (error_state)
6988  return property ();
6989 
6990  if (pname.compare ("__object__"))
6991  return property (&__object__, true);
6992  else
6993  return base_properties::get_property (pname);
6994 }
6995 
6998 {
7000 
7001  m["__object__"] = Matrix ();
7002 
7003  return m;
7004 }
7005 
7006 std::string uitoolbar::properties::go_name ("uitoolbar");
7007 
7008 std::set<std::string>
7010 {
7011  static std::set<std::string> all_pnames;
7012 
7013  static bool initialized = false;
7014 
7015  if (! initialized)
7016  {
7017  all_pnames.insert ("__object__");
7018 
7019  std::set<std::string> base_pnames = base_properties::core_property_names ();
7020  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7021 
7022  initialized = true;
7023  }
7024 
7025  return all_pnames;
7026 }
7027 
7028 bool
7030 {
7031  std::set<std::string> pnames = core_property_names ();
7032 
7033  return pnames.find (pname) != pnames.end ();
7034 }
7035 
7036 std::set<std::string>
7038 {
7039  static std::set<std::string> all_pnames;
7040 
7041  static bool initialized = false;
7042 
7043  if (! initialized)
7044  {
7045 
7046  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7047  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7048 
7049  initialized = true;
7050  }
7051 
7052  return all_pnames;
7053 }
7054 
7055 bool
7057 {
7058  std::set<std::string> pnames = readonly_property_names ();
7059 
7060  return pnames.find (pname) != pnames.end ();
7061 }
7062 
7063 std::set<std::string>
7065 {
7066  static std::set<std::string> all_pnames = core_property_names ();
7067 
7068  std::set<std::string> retval = all_pnames;
7069  std::set<std::string> base_props = base_properties::all_property_names ();
7070  retval.insert (base_props.begin (), base_props.end ());
7071 
7072  return retval;
7073 }
7074 
7075 bool
7077 {
7078  std::set<std::string> pnames = all_property_names ();
7079 
7080  return pnames.find (pname) != pnames.end ();
7081 }
7082 
7083 // ******** uipushtool ********
7084 
7086  : base_properties (go_name, mh, p),
7087  __object__ ("__object__", mh, Matrix ()),
7088  cdata ("cdata", mh, Matrix ()),
7089  clickedcallback ("clickedcallback", mh, Matrix ()),
7090  enable ("enable", mh, "on"),
7091  separator ("separator", mh, "off"),
7092  tooltipstring ("tooltipstring", mh, "")
7093 {
7095  cdata.set_id (ID_CDATA);
7100  init ();
7101 }
7102 
7103 void
7105 {
7106  const std::set<std::string>& pnames = all_property_names ();
7107 
7108  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
7109 
7110  if (error_state)
7111  return;
7112  else if (has_readonly_property (pname))
7113  {
7114  error ("set: \"%s\" is read-only", pname.c_str ());
7115  return;
7116  }
7117 
7118  if (pname.compare ("__object__"))
7119  set___object__ (val);
7120  else if (pname.compare ("cdata"))
7121  set_cdata (val);
7122  else if (pname.compare ("clickedcallback"))
7123  set_clickedcallback (val);
7124  else if (pname.compare ("enable"))
7125  set_enable (val);
7126  else if (pname.compare ("separator"))
7127  set_separator (val);
7128  else if (pname.compare ("tooltipstring"))
7129  set_tooltipstring (val);
7130  else
7131  base_properties::set (pname, val);
7132 }
7133 
7136 {
7138 
7139  m.assign ("__object__", octave_value (get___object__ ()));
7140  m.assign ("cdata", octave_value (get_cdata ()));
7141  m.assign ("clickedcallback", octave_value (get_clickedcallback ()));
7142  m.assign ("enable", octave_value (get_enable ()));
7143  m.assign ("separator", octave_value (get_separator ()));
7144  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
7145 
7146  return m;
7147 }
7148 
7151 {
7152  octave_value retval;
7153 
7154  const std::set<std::string>& pnames = all_property_names ();
7155 
7156  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
7157 
7158  if (error_state)
7159  return retval;
7160 
7161  if (pname.compare ("__object__"))
7162  retval = get___object__ ();
7163  else if (pname.compare ("cdata"))
7164  retval = get_cdata ();
7165  else if (pname.compare ("clickedcallback"))
7166  retval = get_clickedcallback ();
7167  else if (pname.compare ("enable"))
7168  retval = get_enable ();
7169  else if (pname.compare ("separator"))
7170  retval = get_separator ();
7171  else if (pname.compare ("tooltipstring"))
7172  retval = get_tooltipstring ();
7173  else
7174  retval = base_properties::get (pname);
7175 
7176  return retval;
7177 }
7178 
7179 property
7181 {
7182  const std::set<std::string>& pnames = all_property_names ();
7183 
7184  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
7185 
7186  if (error_state)
7187  return property ();
7188 
7189  if (pname.compare ("__object__"))
7190  return property (&__object__, true);
7191  else if (pname.compare ("cdata"))
7192  return property (&cdata, true);
7193  else if (pname.compare ("clickedcallback"))
7194  return property (&clickedcallback, true);
7195  else if (pname.compare ("enable"))
7196  return property (&enable, true);
7197  else if (pname.compare ("separator"))
7198  return property (&separator, true);
7199  else if (pname.compare ("tooltipstring"))
7200  return property (&tooltipstring, true);
7201  else
7202  return base_properties::get_property (pname);
7203 }
7204 
7207 {
7209 
7210  m["__object__"] = Matrix ();
7211  m["cdata"] = Matrix ();
7212  m["clickedcallback"] = Matrix ();
7213  m["enable"] = "on";
7214  m["separator"] = "off";
7215  m["tooltipstring"] = "";
7216 
7217  return m;
7218 }
7219 
7220 std::string uipushtool::properties::go_name ("uipushtool");
7221 
7222 std::set<std::string>
7224 {
7225  static std::set<std::string> all_pnames;
7226 
7227  static bool initialized = false;
7228 
7229  if (! initialized)
7230  {
7231  all_pnames.insert ("__object__");
7232  all_pnames.insert ("cdata");
7233  all_pnames.insert ("clickedcallback");
7234  all_pnames.insert ("enable");
7235  all_pnames.insert ("separator");
7236  all_pnames.insert ("tooltipstring");
7237 
7238  std::set<std::string> base_pnames = base_properties::core_property_names ();
7239  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7240 
7241  initialized = true;
7242  }
7243 
7244  return all_pnames;
7245 }
7246 
7247 bool
7249 {
7250  std::set<std::string> pnames = core_property_names ();
7251 
7252  return pnames.find (pname) != pnames.end ();
7253 }
7254 
7255 std::set<std::string>
7257 {
7258  static std::set<std::string> all_pnames;
7259 
7260  static bool initialized = false;
7261 
7262  if (! initialized)
7263  {
7264 
7265  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7266  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7267 
7268  initialized = true;
7269  }
7270 
7271  return all_pnames;
7272 }
7273 
7274 bool
7276 {
7277  std::set<std::string> pnames = readonly_property_names ();
7278 
7279  return pnames.find (pname) != pnames.end ();
7280 }
7281 
7282 std::set<std::string>
7284 {
7285  static std::set<std::string> all_pnames = core_property_names ();
7286 
7287  std::set<std::string> retval = all_pnames;
7288  std::set<std::string> base_props = base_properties::all_property_names ();
7289  retval.insert (base_props.begin (), base_props.end ());
7290 
7291  return retval;
7292 }
7293 
7294 bool
7296 {
7297  std::set<std::string> pnames = all_property_names ();
7298 
7299  return pnames.find (pname) != pnames.end ();
7300 }
7301 
7302 // ******** uitoggletool ********
7303 
7305  : base_properties (go_name, mh, p),
7306  __object__ ("__object__", mh, Matrix ()),
7307  cdata ("cdata", mh, Matrix ()),
7308  clickedcallback ("clickedcallback", mh, Matrix ()),
7309  enable ("enable", mh, "on"),
7310  offcallback ("offcallback", mh, Matrix ()),
7311  oncallback ("oncallback", mh, Matrix ()),
7312  separator ("separator", mh, "off"),
7313  state ("state", mh, "off"),
7314  tooltipstring ("tooltipstring", mh, "")
7315 {
7317  cdata.set_id (ID_CDATA);
7323  state.set_id (ID_STATE);
7325  init ();
7326 }
7327 
7328 void
7330 {
7331  const std::set<std::string>& pnames = all_property_names ();
7332 
7333  caseless_str pname = validate_property_name ("set", go_name, pnames, pname_arg);
7334 
7335  if (error_state)
7336  return;
7337  else if (has_readonly_property (pname))
7338  {
7339  error ("set: \"%s\" is read-only", pname.c_str ());
7340  return;
7341  }
7342 
7343  if (pname.compare ("__object__"))
7344  set___object__ (val);
7345  else if (pname.compare ("cdata"))
7346  set_cdata (val);
7347  else if (pname.compare ("clickedcallback"))
7348  set_clickedcallback (val);
7349  else if (pname.compare ("enable"))
7350  set_enable (val);
7351  else if (pname.compare ("offcallback"))
7352  set_offcallback (val);
7353  else if (pname.compare ("oncallback"))
7354  set_oncallback (val);
7355  else if (pname.compare ("separator"))
7356  set_separator (val);
7357  else if (pname.compare ("state"))
7358  set_state (val);
7359  else if (pname.compare ("tooltipstring"))
7360  set_tooltipstring (val);
7361  else
7362  base_properties::set (pname, val);
7363 }
7364 
7367 {
7369 
7370  m.assign ("__object__", octave_value (get___object__ ()));
7371  m.assign ("cdata", octave_value (get_cdata ()));
7372  m.assign ("clickedcallback", octave_value (get_clickedcallback ()));
7373  m.assign ("enable", octave_value (get_enable ()));
7374  m.assign ("offcallback", octave_value (get_offcallback ()));
7375  m.assign ("oncallback", octave_value (get_oncallback ()));
7376  m.assign ("separator", octave_value (get_separator ()));
7377  m.assign ("state", octave_value (get_state ()));
7378  m.assign ("tooltipstring", octave_value (get_tooltipstring ()));
7379 
7380  return m;
7381 }
7382 
7385 {
7386  octave_value retval;
7387 
7388  const std::set<std::string>& pnames = all_property_names ();
7389 
7390  caseless_str pname = validate_property_name ("get", go_name, pnames, pname_arg);
7391 
7392  if (error_state)
7393  return retval;
7394 
7395  if (pname.compare ("__object__"))
7396  retval = get___object__ ();
7397  else if (pname.compare ("cdata"))
7398  retval = get_cdata ();
7399  else if (pname.compare ("clickedcallback"))
7400  retval = get_clickedcallback ();
7401  else if (pname.compare ("enable"))
7402  retval = get_enable ();
7403  else if (pname.compare ("offcallback"))
7404  retval = get_offcallback ();
7405  else if (pname.compare ("oncallback"))
7406  retval = get_oncallback ();
7407  else if (pname.compare ("separator"))
7408  retval = get_separator ();
7409  else if (pname.compare ("state"))
7410  retval = get_state ();
7411  else if (pname.compare ("tooltipstring"))
7412  retval = get_tooltipstring ();
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", go_name, pnames, pname_arg);
7425 
7426  if (error_state)
7427  return property ();
7428 
7429  if (pname.compare ("__object__"))
7430  return property (&__object__, true);
7431  else if (pname.compare ("cdata"))
7432  return property (&cdata, true);
7433  else if (pname.compare ("clickedcallback"))
7434  return property (&clickedcallback, true);
7435  else if (pname.compare ("enable"))
7436  return property (&enable, true);
7437  else if (pname.compare ("offcallback"))
7438  return property (&offcallback, true);
7439  else if (pname.compare ("oncallback"))
7440  return property (&oncallback, true);
7441  else if (pname.compare ("separator"))
7442  return property (&separator, true);
7443  else if (pname.compare ("state"))
7444  return property (&state, true);
7445  else if (pname.compare ("tooltipstring"))
7446  return property (&tooltipstring, true);
7447  else
7448  return base_properties::get_property (pname);
7449 }
7450 
7453 {
7455 
7456  m["__object__"] = Matrix ();
7457  m["cdata"] = Matrix ();
7458  m["clickedcallback"] = Matrix ();
7459  m["enable"] = "on";
7460  m["offcallback"] = Matrix ();
7461  m["oncallback"] = Matrix ();
7462  m["separator"] = "off";
7463  m["state"] = "off";
7464  m["tooltipstring"] = "";
7465 
7466  return m;
7467 }
7468 
7469 std::string uitoggletool::properties::go_name ("uitoggletool");
7470 
7471 std::set<std::string>
7473 {
7474  static std::set<std::string> all_pnames;
7475 
7476  static bool initialized = false;
7477 
7478  if (! initialized)
7479  {
7480  all_pnames.insert ("__object__");
7481  all_pnames.insert ("cdata");
7482  all_pnames.insert ("clickedcallback");
7483  all_pnames.insert ("enable");
7484  all_pnames.insert ("offcallback");
7485  all_pnames.insert ("oncallback");
7486  all_pnames.insert ("separator");
7487  all_pnames.insert ("state");
7488  all_pnames.insert ("tooltipstring");
7489 
7490  std::set<std::string> base_pnames = base_properties::core_property_names ();
7491  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7492 
7493  initialized = true;
7494  }
7495 
7496  return all_pnames;
7497 }
7498 
7499 bool
7501 {
7502  std::set<std::string> pnames = core_property_names ();
7503 
7504  return pnames.find (pname) != pnames.end ();
7505 }
7506 
7507 std::set<std::string>
7509 {
7510  static std::set<std::string> all_pnames;
7511 
7512  static bool initialized = false;
7513 
7514  if (! initialized)
7515  {
7516 
7517  std::set<std::string> base_pnames = base_properties::readonly_property_names ();
7518  all_pnames.insert (base_pnames.begin (), base_pnames.end ());
7519 
7520  initialized = true;
7521  }
7522 
7523  return all_pnames;
7524 }
7525 
7526 bool
7528 {
7529  std::set<std::string> pnames = readonly_property_names ();
7530 
7531  return pnames.find (pname) != pnames.end ();
7532 }
7533 
7534 std::set<std::string>
7536 {
7537  static std::set<std::string> all_pnames = core_property_names ();
7538 
7539  std::set<std::string> retval = all_pnames;
7540  std::set<std::string> base_props = base_properties::all_property_names ();
7541  retval.insert (base_props.begin (), base_props.end ());
7542 
7543  return retval;
7544 }
7545 
7546 bool
7548 {
7549  std::set<std::string> pnames = all_property_names ();
7550 
7551  return pnames.find (pname) != pnames.end ();
7552 }
7553 
bool_property zliminclude
Definition: graphics.h:7352
bool has_property(const caseless_str &pname) const
static Matrix default_axes_ticklength(void)
Definition: graphics.cc:386
array_property currentpoint
Definition: graphics.h:4036
radio_property fontunits
Definition: graphics.h:7836
bool_property zliminclude
Definition: graphics.h:9155
octave_value get(bool all=false) const
void set_createfcn(const octave_value &val)
Definition: graphics.h:2822
radio_property yticklabelmode
Definition: graphics.h:5359
radio_property verticalalignment
Definition: graphics.h:11657
octave_value get(bool all=false) const
static std::set< std::string > core_property_names(void)
std::set< std::string > all_property_names(void) const
row_vector_property ylim
Definition: graphics.h:8571
bool_property enable
Definition: graphics.h:11213
static bool has_readonly_property(const caseless_str &pname)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12081
array_property colororder
Definition: graphics.h:5303
static bool has_core_property(const caseless_str &pname)
callback_property clickedcallback
Definition: graphics.h:12683
row_vector_property ylim
Definition: graphics.h:10908
static bool has_core_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
string_property tag
Definition: graphics.h:2681
void set(const caseless_str &pname, const octave_value &val)
#define OCTAVE_DEFAULT_FONTNAME
Definition: graphics.h:55
callback_property keypressfcn
Definition: graphics.h:11646
static std::string go_name
Definition: graphics.h:9983
bool has_property(const caseless_str &pname) const
std::string get_clipping(void) const
Definition: graphics.h:2725
static std::string go_name
Definition: graphics.h:11190
bool_property yliminclude
Definition: graphics.h:8575
row_vector_property zlim
Definition: graphics.h:7349
static Matrix default_screensize(void)
Definition: graphics.cc:188
string_property fontname
Definition: graphics.h:7834
callback_property closerequestfcn
Definition: graphics.h:4030
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11396
bool has_property(const caseless_str &pname) const
array_property xdata
Definition: graphics.h:10031
row_vector_property zlim
Definition: graphics.h:10909
radio_property activepositionproperty
Definition: graphics.h:5287
radio_property horizontalalignmentmode
Definition: graphics.h:7856
std::string get_busyaction(void) const
Definition: graphics.h:2719
static Matrix default_axes_tick(void)
Definition: graphics.cc:373
octave_value get(bool all=false) const
radio_property verticalalignmentmode
Definition: graphics.h:7857
bool has_property(const caseless_str &pname) const
radio_property interpreter
Definition: graphics.h:7334
row_vector_property xlim
Definition: graphics.h:10039
array_property cdata
Definition: graphics.h:12878
std::set< std::string > all_property_names(void) const
radio_property toolbar
Definition: graphics.h:4065
static double default_screenpixelsperinch(void)
Definition: graphics.cc:199
bool_property clipping
Definition: graphics.h:11636
radio_property zscale
Definition: graphics.h:5369
static caseless_str validate_property_name(const std::string &who, const std::string &what, const std::set< std::string > &pnames, const caseless_str &pname)
Definition: graphics.cc:77
static Matrix default_axes_outerposition(void)
Definition: graphics.cc:357
radio_property alimmode
Definition: graphics.h:5289
static Matrix default_axes_view(void)
Definition: graphics.cc:365
row_vector_property zlim
Definition: graphics.h:9150
double_radio_property edgealpha
Definition: graphics.h:9120
static std::string go_name
Definition: graphics.h:11613
bool_property numbertitle
Definition: graphics.h:4048
any_property __object__
Definition: graphics.h:12154
bool_property zminorgrid
Definition: graphics.h:5367
bool_property separator
Definition: graphics.h:11217
void set_selected(const octave_value &val)
Definition: graphics.h:2877
radio_property zdir
Definition: graphics.h:5362
callback_property buttondownfcn
Definition: graphics.h:4029
octave_value get(bool all=false) const
radio_property minorgridlinestyle
Definition: graphics.h:5318
string_property fontname
Definition: graphics.h:11640
double_property linewidth
Definition: graphics.h:7841
base_properties(const std::string &ty="unknown", const graphics_handle &mh=graphics_handle(), const graphics_handle &p=graphics_handle())
bool_property xliminclude
Definition: graphics.h:7851
row_vector_property ytick
Definition: graphics.h:5357
radio_property zlimmode
Definition: graphics.h:5366
row_vector_property value
Definition: graphics.h:11656
virtual property get_property(const caseless_str &pname)
static Matrix default_control_sliderstep(void)
Definition: graphics.cc:439
double_property recursionlimit
Definition: graphics.h:3546
row_vector_property alim
Definition: graphics.h:10037
bool_property xminorgrid
Definition: graphics.h:5340
static std::string go_name
Definition: graphics.h:3513
static property_list::pval_map_type factory_defaults(void)
double_property specularcolorreflectance
Definition: graphics.h:10027
radio_property fontweight
Definition: graphics.h:11643
bool_property box
Definition: graphics.h:5291
static std::set< std::string > core_property_names(void)
bool_property xliminclude
Definition: graphics.h:10912
void assign(const std::string &k, const Cell &val)
Definition: oct-map.h:348
static Matrix default_figure_paperposition(void)
Definition: graphics.cc:415
double_property markersize
Definition: graphics.h:9136
static Matrix default_patch_xdata(void)
Definition: graphics.cc:330
color_property ycolor
Definition: graphics.h:5348
bool_property aliminclude
Definition: graphics.h:10910
static uint32_t state[624]
Definition: randmtzig.c:188
double_property fontsize_points
Definition: graphics.h:5385
radio_property windowstyle
Definition: graphics.h:4073
static property_list::pval_map_type factory_defaults(void)
static property_list::pval_map_type factory_defaults(void)
property get_property(const caseless_str &pname)
any_property __object__
Definition: graphics.h:12877
double_property markersize
Definition: graphics.h:7340
static Matrix default_data(void)
Definition: graphics.cc:248
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:4977
void set(const caseless_str &pname, const octave_value &val)
std::set< std::string > all_property_names(void) const
row_vector_property zlim
Definition: graphics.h:5365
radio_property alphadatamapping
Definition: graphics.h:9113
octave_value get_buttondownfcn(void) const
Definition: graphics.h:2722
void set_selectionhighlight(const octave_value &val)
Definition: graphics.h:2888
bool_property aliminclude
Definition: graphics.h:9151
color_property backgroundcolor
Definition: graphics.h:12155
bool_property interruptible
Definition: graphics.h:2677
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12610
radio_property erasemode
Definition: graphics.h:7333
OCTINTERP_API octave_value box(JNIEnv *jni_env, jobject jobj, jclass jcls=0)
static Matrix default_patch_ydata(void)
Definition: graphics.cc:338
double_property screendepth
Definition: graphics.h:3547
std::string get_type(void) const
Definition: graphics.h:2752
row_vector_property zlim
Definition: graphics.h:7850
string_property xvisual
Definition: graphics.h:4077
static std::string go_name
Definition: graphics.h:11455
array_property sliderstep
Definition: graphics.h:11651
callback_property oncallback
Definition: graphics.h:12882
array_property ydata
Definition: graphics.h:9144
radio_property formatspacing
Definition: graphics.h:3541
color_property edgecolor
Definition: graphics.h:9121
std::set< std::string > all_property_names(void) const
octave_map map_value(void) const
Definition: ov.cc:1585
row_vector_property zmtick
Definition: graphics.h:5384
row_vector_property xlim
Definition: graphics.h:7848
radio_property ytickmode
Definition: graphics.h:5360
row_vector_property ydata
Definition: graphics.h:7343
static std::string go_name
Definition: graphics.h:12495
array_property plotboxaspectratio
Definition: graphics.h:5322
static bool has_core_property(const caseless_str &pname)
static bool has_readonly_property(const caseless_str &pname)
double_property specularstrength
Definition: graphics.h:9140
static std::set< std::string > readonly_property_names(void)
bool has_property(const caseless_str &pname) const
bool_property echo
Definition: graphics.h:3537
row_vector_property ylim
Definition: graphics.h:5352
handle_property xlabel
Definition: graphics.h:5337
static bool has_readonly_property(const caseless_str &pname)
array_property cameraposition
Definition: graphics.h:5292
static bool has_readonly_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
double_property fontsize_points
Definition: graphics.h:7859
double_property listboxtop
Definition: graphics.h:11647
bool_property yminorgrid
Definition: graphics.h:5354
octave_value get_dynamic(const caseless_str &pname) const
Definition: graphics.cc:2922
void set_deletefcn(const octave_value &val)
Definition: graphics.h:2833
row_vector_property xlim
Definition: graphics.h:5338
string_property title
Definition: graphics.h:12168
static bool has_readonly_property(const caseless_str &pname)
row_vector_property clim
Definition: graphics.h:9147
radio_property interpreter
Definition: graphics.h:5314
static bool has_readonly_property(const caseless_str &pname)
array_property cameratarget
Definition: graphics.h:5294
static std::set< std::string > core_property_names(void)
static std::string go_name
Definition: graphics.h:5268
static std::string go_name
Definition: graphics.h:4009
bool_property climinclude
Definition: graphics.h:10911
double_property mousewheelzoom
Definition: graphics.h:5319
static bool has_core_property(const caseless_str &pname)
radio_property yaxislocation
Definition: graphics.h:5347
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:7732
bool_property __modified__
Definition: graphics.h:2686
octave_value get_userdata(void) const
Definition: graphics.h:2756
octave_value get(bool all=false) const
row_vector_property xdata
Definition: graphics.h:8566
void error(const char *fmt,...)
Definition: error.cc:476
void set_dynamic(const caseless_str &pname, const octave_value &val)
Definition: graphics.cc:2968
handle_property currentfigure
Definition: graphics.h:3534
color_property markerfacecolor
Definition: graphics.h:7339
void set(const caseless_str &pname, const octave_value &val)
array_property facevertexcdata
Definition: graphics.h:9129
property get_property_dynamic(const caseless_str &pname)
Definition: graphics.cc:2988
void set_visible(const octave_value &val)
Definition: graphics.h:2922
octave_value get(bool all=false) const
any_property __guidata__
Definition: graphics.h:4085
radio_property style
Definition: graphics.h:11653
static Matrix default_axes_position(void)
Definition: graphics.cc:346
radio_property units
Definition: graphics.h:11655
radio_property projection
Definition: graphics.h:5325
bool has_property(const caseless_str &pname) const
std::set< std::string > all_property_names(void) const
row_vector_property alim
Definition: graphics.h:5288
array_property x_projectiontransform
Definition: graphics.h:5378
radio_property normalmode
Definition: graphics.h:10026
string_property fontname
Definition: graphics.h:5309
radio_property xlimmode
Definition: graphics.h:5339
color_property highlightcolor
Definition: graphics.h:12164
callback_property clickedcallback
Definition: graphics.h:12879
radio_property marker
Definition: graphics.h:9133
row_vector_property alim
Definition: graphics.h:9146
array_property cdata
Definition: graphics.h:8562
any_property zticklabel
Definition: graphics.h:5371
any_property __object__
Definition: graphics.h:11632
octave_value get(bool all=false) const
static std::set< std::string > core_property_names(void)
string_property fontname
Definition: graphics.h:12159
static std::set< std::string > readonly_property_names(void)
properties(const graphics_handle &mh, const graphics_handle &p)
radio_property renderermode
Definition: graphics.h:4061
static std::set< std::string > core_property_names(void)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12446
radio_property edgelighting
Definition: graphics.h:10013
static property_list::pval_map_type factory_defaults(void)
color_property color
Definition: graphics.h:5302
any_property __object__
Definition: graphics.h:12681
std::string get___modified__(void) const
Definition: graphics.h:2762
bool has_property(const caseless_str &pname) const
array_property x_viewtransform
Definition: graphics.h:5377
color_property shadowcolor
Definition: graphics.h:12167
array_property monitorpositions
Definition: graphics.h:3543
radio_property erasemode
Definition: graphics.h:7831
radio_property units
Definition: graphics.h:4066
double_property fontsize
Definition: graphics.h:12160
string_property ydatasource
Definition: graphics.h:7344
radio_property nextplot
Definition: graphics.h:5320
row_vector_property ylim
Definition: graphics.h:7348
static std::set< std::string > readonly_property_names(void)
octave_value get(bool all=false) const
radio_property paperorientation
Definition: graphics.h:4050
static Matrix default_surface_xdata(void)
Definition: graphics.cc:274
string_property zdatasource
Definition: graphics.h:10036
string_property cdatasource
Definition: graphics.h:10008
color_property markerfacecolor
Definition: graphics.h:10023
radio_property drawmode
Definition: graphics.h:5307
radio_property positionmode
Definition: graphics.h:7854
static std::string default_toolkit(void)
Definition: graphics.h:2347
string_property displayname
Definition: graphics.h:7332
radio_property units
Definition: graphics.h:3551
static double default_screendepth(void)
Definition: graphics.cc:182
array_property faces
Definition: graphics.h:9127
radio_property alphadatamapping
Definition: graphics.h:10003
color_property foregroundcolor
Definition: graphics.h:11644
radio_property cameraviewanglemode
Definition: graphics.h:5299
bool_property enable
Definition: graphics.h:12684
radio_property wvisualmode
Definition: graphics.h:4075
callback_property offcallback
Definition: graphics.h:12881
virtual void init(void)
Definition: graphics.h:2954
std::string get_tag(void) const
Definition: graphics.h:2750
handle_property zlabel
Definition: graphics.h:5364
static Matrix default_lim(bool logscale=false)
Definition: graphics.cc:232
bool_property showhiddenhandles
Definition: graphics.h:3550
color_property color
Definition: graphics.h:7331
double_property borderwidth
Definition: graphics.h:12157
void set_hidden(bool flag)
Definition: graphics.h:305
any_property __plot_stream__
Definition: graphics.h:4086
double_property ambientstrength
Definition: graphics.h:10004
bool_property resize
Definition: graphics.h:4062
bool_property yliminclude
Definition: graphics.h:7852
radio_property __mouse_mode__
Definition: graphics.h:4079
properties(const graphics_handle &mh, const graphics_handle &p)
properties(const graphics_handle &mh, const graphics_handle &p)
array_property alphamap
Definition: graphics.h:4028
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11558
std::string get_selectionhighlight(void) const
Definition: graphics.h:2748
octave_value get(bool all=false) const
static std::set< std::string > core_property_names(void)
color_property markeredgecolor
Definition: graphics.h:9134
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:10822
bool_property doublebuffer
Definition: graphics.h:4038
void set(const caseless_str &pname, const octave_value &val)
string_property filename
Definition: graphics.h:4039
double_property specularexponent
Definition: graphics.h:9139
array_property position
Definition: graphics.h:11650
array_property alphadata
Definition: graphics.h:10002
static std::set< std::string > readonly_property_names(void)
void init(void)
Definition: graphics.cc:4676
static std::set< std::string > readonly_property_names(void)
property get_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
color_property foregroundcolor
Definition: graphics.h:12163
callback_property callback
Definition: graphics.h:11211
bool_property xgrid
Definition: graphics.h:5336
std::map< caseless_str, property, cmp_caseless_str > all_props
Definition: graphics.h:2948
properties(const graphics_handle &mh, const graphics_handle &p)
array_property colormap
Definition: graphics.h:4032
callback_property windowbuttonmotionfcn
Definition: graphics.h:4068
void set_interruptible(const octave_value &val)
Definition: graphics.h:2866
static property_list::pval_map_type factory_defaults(void)
static property_list::pval_map_type factory_defaults(void)
array_property cameraupvector
Definition: graphics.h:5296
array_property dataaspectratio
Definition: graphics.h:5305
std::set< std::string > all_property_names(void) const
array_property cdata
Definition: graphics.h:12682
std::set< std::string > all_property_names(void) const
array_property extent
Definition: graphics.h:7832
properties(const graphics_handle &mh, const graphics_handle &p)
void set(const caseless_str &pname, const octave_value &val)
bool_property climinclude
Definition: graphics.h:10043
radio_property handlevisibility
Definition: graphics.h:2675
properties(const graphics_handle &mh, const graphics_handle &p)
static std::set< std::string > core_property_names(void)
radio_property zticklabelmode
Definition: graphics.h:5372
bool_property separator
Definition: graphics.h:12685
void set(const caseless_str &pname, const octave_value &val)
void set_clipping(const octave_value &val)
Definition: graphics.h:2811
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:7257
double_radio_property facealpha
Definition: graphics.h:9124
string_property zdatasource
Definition: graphics.h:7346
string_property currentcharacter
Definition: graphics.h:4034
array_property zdata
Definition: graphics.h:9145
bool_property enable
Definition: graphics.h:12880
properties(const graphics_handle &mh, const graphics_handle &p)
bool_property yliminclude
Definition: graphics.h:10913
array_property screensize
Definition: graphics.h:3549
properties(const graphics_handle &mh, const graphics_handle &p)
radio_property gridlinestyle
Definition: graphics.h:5313
octave_value get_createfcn(void) const
Definition: graphics.h:2728
radio_property backfacelighting
Definition: graphics.h:9115
void init(void)
Definition: graphics.h:9826
static bool has_core_property(const caseless_str &pname)
string_property displayname
Definition: graphics.h:10903
static bool has_core_property(const caseless_str &pname)
static bool has_core_property(const caseless_str &pname)
bool_property yliminclude
Definition: graphics.h:7351
void set(const caseless_str &pname, const octave_value &val)
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:13052
string_property xdatasource
Definition: graphics.h:7342
radio_property xvisualmode
Definition: graphics.h:4078
static bool has_readonly_property(const caseless_str &pname)
octave_value get(bool all=false) const
string_property diaryfile
Definition: graphics.h:3536
bool_property xliminclude
Definition: graphics.h:8574
radio_property horizontalalignment
Definition: graphics.h:7838
color_property color
Definition: graphics.h:4031
static Matrix default_patch_vertices(void)
Definition: graphics.cc:320
radio_property units
Definition: graphics.h:7846
color_property foregroundcolor
Definition: graphics.h:11214
string_property displayname
Definition: graphics.h:7828
static bool has_core_property(const caseless_str &pname)
radio_property xtickmode
Definition: graphics.h:5346
std::set< std::string > dynamic_property_names(void) const
Definition: graphics.cc:2951
property get_property(const caseless_str &pname)
static std::string go_name
Definition: graphics.h:9094
Matrix get_children(void) const
Definition: graphics.h:2571
void set(const caseless_str &pname, const octave_value &val)
double_property screenpixelsperinch
Definition: graphics.h:3548
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:3884
string_property displayname
Definition: graphics.h:9119
std::set< std::string > all_property_names(void) const
callback_property windowbuttondownfcn
Definition: graphics.h:4067
array_property cdata
Definition: graphics.h:11635
property get_property(const caseless_str &pname)
bool_property zliminclude
Definition: graphics.h:10046
array_property position
Definition: graphics.h:11476
static std::string go_name
Definition: graphics.h:10884
radio_property autopos_tag
Definition: graphics.h:7858
color_property markeredgecolor
Definition: graphics.h:10022
void set(const caseless_str &pname, const octave_value &val)
static Matrix default_control_position(void)
Definition: graphics.cc:426
std::set< std::string > all_property_names(void) const
property get_property(const caseless_str &pname)
radio_property normalmode
Definition: graphics.h:9137
callback_property callback
Definition: graphics.h:11634
std::string get_beingdeleted(void) const
Definition: graphics.h:2716
array_property pointershapecdata
Definition: graphics.h:4057
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:9025
void set(const caseless_str &pname, const octave_value &val)
radio_property erasemode
Definition: graphics.h:8565
bool_property checked
Definition: graphics.h:11212
row_vector_property zdata
Definition: graphics.h:7345
bool has_property(const caseless_str &pname) const
row_vector_property ylim
Definition: graphics.h:10040
double_property fontsize
Definition: graphics.h:5310
radio_property xdatamode
Definition: graphics.h:8576
radio_property cameraupvectormode
Definition: graphics.h:5297
color_property markerfacecolor
Definition: graphics.h:9135
row_vector_property xmtick
Definition: graphics.h:5382
std::set< std::string > all_property_names(void) const
static Matrix default_figure_position(void)
Definition: graphics.cc:395
radio_property tickdirmode
Definition: graphics.h:5327
std::string get_visible(void) const
Definition: graphics.h:2759
std::set< std::string > all_property_names(void) const
int error_state
Definition: error.cc:101
radio_property fontangle
Definition: graphics.h:5308
void set___modified__(const octave_value &val)
Definition: graphics.h:2588
static std::set< std::string > core_property_names(void)
row_vector_property xlim
Definition: graphics.h:10907
row_vector_property ymtick
Definition: graphics.h:5383
static std::set< std::string > readonly_property_names(void)
void set(const caseless_str &pname, const octave_value &val)
static bool has_readonly_property(const caseless_str &pname)
radio_property meshstyle
Definition: graphics.h:10025
properties(const graphics_handle &mh, const graphics_handle &p)
bool_property xminortick
Definition: graphics.h:5341
radio_property plotboxaspectratiomode
Definition: graphics.h:5323
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:8478
string_property fixedwidthfontname
Definition: graphics.h:3539
array_property looseinset
Definition: graphics.h:5376
radio_property units
Definition: graphics.h:5331
radio_property linestyle
Definition: graphics.h:7840
property get_property(const caseless_str &pname)
static std::set< std::string > readonly_property_names(void)
double_property linewidth
Definition: graphics.h:10020
double_property diffusestrength
Definition: graphics.h:10009
properties(const graphics_handle &mh, const graphics_handle &p)
radio_property cameratargetmode
Definition: graphics.h:5295
color_property edgecolor
Definition: graphics.h:10012
radio_property alphadatamapping
Definition: graphics.h:8561
static std::set< std::string > core_property_names(void)
array_property position
Definition: graphics.h:7843
array_property papersize
Definition: graphics.h:4053
radio_property fontangle
Definition: graphics.h:11639
static Matrix default_panel_position(void)
Definition: graphics.cc:450
static std::set< std::string > readonly_property_names(void)
octave_value get(bool all=false) const
handle_property parent
Definition: graphics.h:2678
handle_property callbackobject
Definition: graphics.h:3532
static bool has_core_property(const caseless_str &pname)
radio_property verticalalignment
Definition: graphics.h:7847
octave_value get(bool all=false) const
static bool has_core_property(const caseless_str &pname)
radio_property paperpositionmode
Definition: graphics.h:4052
string_property xdatasource
Definition: graphics.h:10032
radio_property edgelighting
Definition: graphics.h:9122
radio_property yscale
Definition: graphics.h:5356
row_vector_property xlim
Definition: graphics.h:8570
radio_property fontunits
Definition: graphics.h:11642
double_radio_property edgealpha
Definition: graphics.h:10011
callback_property deletefcn
Definition: graphics.h:2674
static Matrix default_figure_papersize(void)
Definition: graphics.cc:406
static std::string go_name
Definition: graphics.h:12662
row_vector_property xdata
Definition: graphics.h:7341
radio_property fontunits
Definition: graphics.h:12161
static std::string go_name
Definition: graphics.h:12135
property get_property(const caseless_str &pname)
string_property label
Definition: graphics.h:11215
any_property linestyleorder
Definition: graphics.h:5316
static std::set< std::string > core_property_names(void)
callback_property windowkeyreleasefcn
Definition: graphics.h:4071
octave_value get(bool all=false) const
static bool has_readonly_property(const caseless_str &pname)
properties(const graphics_handle &mh, const graphics_handle &p)
callback_property windowkeypressfcn
Definition: graphics.h:4070
void init(void)
Definition: graphics.h:8400
color_property color
Definition: graphics.h:7827
bool_property inverthardcopy
Definition: graphics.h:4041
radio_property fontweight
Definition: graphics.h:12162
bool_property selectionhighlight
Definition: graphics.h:2680
Definition: dMatrix.h:35
octave_value get(bool all=false) const
property get_property(const caseless_str &pname)
array_property outerposition
Definition: graphics.h:5321
bool_property separator
Definition: graphics.h:12883
static Matrix default_surface_ydata(void)
Definition: graphics.cc:285
string_property displayname
Definition: graphics.h:10010
radio_property linestyle
Definition: graphics.h:7335
bool_property climinclude
Definition: graphics.h:9152
static std::set< std::string > readonly_property_names(void)
color_property edgecolor
Definition: graphics.h:7829
array_property commandwindowsize
Definition: graphics.h:3533
static Matrix default_colororder(void)
Definition: graphics.cc:205
bool_property dockcontrols
Definition: graphics.h:4037
static std::set< std::string > readonly_property_names(void)
radio_property tickdir
Definition: graphics.h:5326
property get_property(const caseless_str &pname)
array_property zdata
Definition: graphics.h:10035
static std::string go_name
Definition: graphics.h:7807
array_property pointerlocation
Definition: graphics.h:3544
std::set< std::string > all_property_names(void) const
array_property vertices
Definition: graphics.h:9142
properties(const graphics_handle &mh, const graphics_handle &p)
double_property linewidth
Definition: graphics.h:7336
static bool has_core_property(const caseless_str &pname)
void set(const caseless_str &pname, const octave_value &val)
std::string get_selected(void) const
Definition: graphics.h:2745
row_vector_property ylim
Definition: graphics.h:7849
bool_property aliminclude
Definition: graphics.h:10042
array_property vertexnormals
Definition: graphics.h:9141
radio_property fontunits
Definition: graphics.h:5311
void init(void)
Definition: graphics.h:4886
property get_property(const caseless_str &pname)
radio_property ydir
Definition: graphics.h:5349
radio_property interpreter
Definition: graphics.h:9130
double_radio_property facealpha
Definition: graphics.h:10015
static Matrix default_surface_cdata(void)
Definition: graphics.cc:305
radio_property climmode
Definition: graphics.h:5301
bool has_property(const caseless_str &pname) const
radio_property ztickmode
Definition: graphics.h:5373
octave_value get_deletefcn(void) const
Definition: graphics.h:2731
static std::set< std::string > core_property_names(void)
row_vector_property clim
Definition: graphics.h:10038
static bool has_readonly_property(const caseless_str &pname)
string_property tooltipstring
Definition: graphics.h:12885
array_property facevertexalphadata
Definition: graphics.h:9128
bool has_property(const caseless_str &pname) const
static std::string go_name
Definition: graphics.h:12858
static bool has_readonly_property(const caseless_str &pname)
row_vector_property alim
Definition: graphics.h:10905
radio_property format
Definition: graphics.h:3540
string_property type
Definition: graphics.h:2682
properties(const graphics_handle &mh, const graphics_handle &p)
double_property fontsize
Definition: graphics.h:11641
string_property __graphics_toolkit__
Definition: graphics.h:4084
double_property min
Definition: graphics.h:11649
bool_property xliminclude
Definition: graphics.h:10044
radio_property menubar
Definition: graphics.h:4044
callback_property createfcn
Definition: graphics.h:2673
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:11130
radio_property titleposition
Definition: graphics.h:12169
graphics_handle get_uicontextmenu(void) const
Definition: graphics.h:2754
bool_property yliminclude
Definition: graphics.h:10045
handle_property currentaxes
Definition: graphics.h:4033
static std::set< std::string > readonly_property_names(void)
double_property mincolormap
Definition: graphics.h:4045
bool_property yminortick
Definition: graphics.h:5355
charNDArray max(char d, const charNDArray &m)
Definition: chNDArray.cc:233
bool has_property(const caseless_str &pname) const
array_property paperposition
Definition: graphics.h:4051
radio_property dataaspectratiomode
Definition: graphics.h:5306
radio_property rotationmode
Definition: graphics.h:7855
double_property ambientstrength
Definition: graphics.h:9114
radio_property nextplot
Definition: graphics.h:4047
row_vector_property clim
Definition: graphics.h:10906
bool_property editing
Definition: graphics.h:7830
static bool has_core_property(const caseless_str &pname)
std::set< std::string > all_property_names(void) const
static std::set< std::string > readonly_property_names(void)
radio_property interpreter
Definition: graphics.h:7839
void set_handlevisibility(const octave_value &val)
Definition: graphics.h:2844
radio_property autopos_tag
Definition: graphics.h:5375
children_property children
Definition: graphics.h:2671
virtual octave_value get(const caseless_str &pname) const
static std::set< std::string > core_property_names(void)
radio_property fontweight
Definition: graphics.h:5312
handle_property title
Definition: graphics.h:5330
radio_property papertype
Definition: graphics.h:4054
static property_list::pval_map_type factory_defaults(void)
void set_children(const octave_value &val)
Definition: graphics.h:2800
bool_property aliminclude
Definition: graphics.h:8572
callback_property keyreleasefcn
Definition: graphics.h:4043
color_property backgroundcolor
Definition: graphics.h:7826
any_property __object__
Definition: graphics.h:11209
array_property outerposition
Definition: graphics.h:4049
properties(const graphics_handle &mh, const graphics_handle &p)
double_property specularstrength
Definition: graphics.h:10029
radio_property cdatamapping
Definition: graphics.h:9117
static std::set< std::string > readonly_property_names(void)
bool_property zliminclude
Definition: graphics.h:7853
row_vector_property xlim
Definition: graphics.h:9148
string_property ydatasource
Definition: graphics.h:10034
void set(const caseless_str &pname, const octave_value &val)
double_property specularcolorreflectance
Definition: graphics.h:9138
callback_property resizefcn
Definition: graphics.h:4063
any_property userdata
Definition: graphics.h:2684
radio_property ydatamode
Definition: graphics.h:8577
array_property vertexnormals
Definition: graphics.h:10030
static std::set< std::string > readonly_property_names(void)
bool_property ygrid
Definition: graphics.h:5350
void init(void)
Definition: graphics.h:11376
void init(void)
Definition: graphics.h:8875
static std::string go_name
Definition: graphics.h:7312
radio_property ylimmode
Definition: graphics.h:5353
radio_property erasemode
Definition: graphics.h:10014
bool_property diary
Definition: graphics.h:3535
void set_userdata(const octave_value &val)
Definition: graphics.h:2911
array_property pointershapehotspot
Definition: graphics.h:4058
radio_property facelighting
Definition: graphics.h:9126
property get_property(const caseless_str &pname)
void set_id(int d)
Definition: graphics.h:311
static Matrix default_image_cdata(void)
Definition: graphics.cc:259
static property_list::pval_map_type factory_defaults(void)
radio_property renderer
Definition: graphics.h:4060
std::string get_interruptible(void) const
Definition: graphics.h:2740
static bool has_readonly_property(const caseless_str &pname)
radio_property linestyle
Definition: graphics.h:9131
double_property cameraviewangle
Definition: graphics.h:5298
double_property linewidth
Definition: graphics.h:5317
any_property __zoom_mode__
Definition: graphics.h:4082
array_property view
Definition: graphics.h:5332
row_vector_property clim
Definition: graphics.h:5300
octave_handle graphics_handle
Definition: graphics.h:58
handle_property currentobject
Definition: graphics.h:4035
color_property xcolor
Definition: graphics.h:5334
bool_property beingdeleted
Definition: graphics.h:2668
radio_property marker
Definition: graphics.h:7337
radio_property fontweight
Definition: graphics.h:7837
bool_property xliminclude
Definition: graphics.h:7350
void set(const caseless_str &pname, const octave_value &val)
array_property ydata
Definition: graphics.h:10033
static std::set< std::string > core_property_names(void)
bool_property __enhanced__
Definition: graphics.h:4083
row_vector_property clim
Definition: graphics.h:8569
static bool has_readonly_property(const caseless_str &pname)
bool_property climinclude
Definition: graphics.h:8573
radio_property horizontalalignment
Definition: graphics.h:11645
color_property ambientlightcolor
Definition: graphics.h:5290
callback_property windowscrollwheelfcn
Definition: graphics.h:4072
array_property x_rendertransform
Definition: graphics.h:5381
static property_list::pval_map_type factory_defaults(void)
bool compare(const std::string &s, size_t limit=std::string::npos) const
Definition: caseless-str.h:76
color_property markeredgecolor
Definition: graphics.h:7338
array_property currentpoint
Definition: graphics.h:5304
void set(const caseless_str &pname, const octave_value &val)
row_vector_property xlim
Definition: graphics.h:7347
radio_property fontangle
Definition: graphics.h:12158
array_property tightinset
Definition: graphics.h:5329
double_property fontsize
Definition: graphics.h:7835
row_vector_property zlim
Definition: graphics.h:10041
array_property position
Definition: graphics.h:4059
string_property name
Definition: graphics.h:4046
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:12808
static property_list::pval_map_type factory_defaults(void)
callback_property buttondownfcn
Definition: graphics.h:2670
radio_property erasemode
Definition: graphics.h:10904
static std::set< std::string > core_property_names(void)
static bool has_core_property(const caseless_str &pname)
bool_property clipping
Definition: graphics.h:2672
radio_property facelighting
Definition: graphics.h:10017
any_property __pan_mode__
Definition: graphics.h:4080
bool_property visible
Definition: graphics.h:2685
std::string get_handlevisibility(void) const
Definition: graphics.h:2734
radio_property busyaction
Definition: graphics.h:2669
bool_property __hold_all__
Definition: graphics.h:5374
static property_list::pval_map_type factory_defaults(void)
BEGIN_BASE_PROPERTIES bool_property off radio_property queue cancel callback_property Matrix() children_property children gf
std::string get_hittest(void) const
Definition: graphics.h:2737
property get_property(const caseless_str &pname)
string_property tooltipstring
Definition: graphics.h:12686
bool_property integerhandle
Definition: graphics.h:4040
graphics_handle get_parent(void) const
Definition: graphics.h:2742
octave_value get(bool all=false) const
static std::set< std::string > readonly_property_names(void)
array_property position
Definition: graphics.h:5324
double_property markersize
Definition: graphics.h:10024
radio_property xdir
Definition: graphics.h:5335
array_property extent
Definition: graphics.h:11638
callback_property windowbuttonupfcn
Definition: graphics.h:4069
double_property position
Definition: graphics.h:11216
string_property tooltipstring
Definition: graphics.h:11654
static std::set< std::string > readonly_property_names(void)
property get_property(const caseless_str &pname)
array_property cdata
Definition: graphics.h:9116
radio_property backfacelighting
Definition: graphics.h:10005
bool_property hittest
Definition: graphics.h:2676
static property_list::pval_map_type factory_defaults(void)
string_property fltk_label
Definition: graphics.h:11218
callback_property callback
Definition: graphics.h:11475
string_property wvisual
Definition: graphics.h:4074
void set_beingdeleted(const octave_value &val)
Definition: graphics.h:2767
double_property margin
Definition: graphics.h:7842
static std::set< std::string > readonly_property_names(void)
radio_property erasemode
Definition: graphics.h:9123
row_vector_property ylim
Definition: graphics.h:9149
double_property specularexponent
Definition: graphics.h:10028
color_property zcolor
Definition: graphics.h:5361
radio_property pointer
Definition: graphics.h:4056
bool_property selected
Definition: graphics.h:2679
static std::set< std::string > core_property_names(void)
array_property xdata
Definition: graphics.h:9143
properties(const graphics_handle &mh, const graphics_handle &p)
virtual void set(const caseless_str &, const octave_value &)
static property_list::pval_map_type factory_defaults(void)
radio_property interpreter
Definition: graphics.h:10018
static property_list::pval_map_type factory_defaults(void)
radio_property marker
Definition: graphics.h:10021
graphics_handle get___myhandle__(void) const
Definition: graphics.h:2764
double_property diffusestrength
Definition: graphics.h:9118
octave_value get(bool all=false) const
static std::set< std::string > core_property_names(void)
radio_property xaxislocation
Definition: graphics.h:5333
double_property max
Definition: graphics.h:11648
radio_property selectiontype
Definition: graphics.h:4064
radio_property xscale
Definition: graphics.h:5342
properties(const graphics_handle &mh, const graphics_handle &p)
void set_busyaction(const octave_value &val)
Definition: graphics.h:2778
static bool has_readonly_property(const caseless_str &pname)
std::set< std::string > all_property_names(void) const
row_vector_property ztick
Definition: graphics.h:5370
any_property xticklabel
Definition: graphics.h:5344
std::set< std::string > all_property_names(void) const
std::set< std::string > all_property_names(void) const
color_property backgroundcolor
Definition: graphics.h:11633
radio_property paperunits
Definition: graphics.h:4055
string_property xdisplay
Definition: graphics.h:4076
bool_property yliminclude
Definition: graphics.h:9154
string_property accelerator
Definition: graphics.h:11210
radio_property linestyle
Definition: graphics.h:10019
bool has_property(const caseless_str &pname) const
bool has_readonly_property(const caseless_str &pname) const
Definition: graphics.h:9922
string_property displayname
Definition: graphics.h:8564
handle_property ylabel
Definition: graphics.h:5351
static bool has_core_property(const caseless_str &pname)
property get_property(const caseless_str &pname)
bool has_property(const caseless_str &pname) const
array_property ticklength
Definition: graphics.h:5328
array_property alphadata
Definition: graphics.h:8560
octave_value as_octave_value(void) const
Definition: oct-handle.h:72
array_property cdata
Definition: graphics.h:10006
property get_property(const caseless_str &pname)
bool_property xliminclude
Definition: graphics.h:9153
void set_uicontextmenu(const octave_value &val)
Definition: graphics.h:2899
any_property __rotate_mode__
Definition: graphics.h:4081
void set_tag(const octave_value &val)
Definition: graphics.h:2567
radio_property cdatamapping
Definition: graphics.h:8563
static property_list::pval_map_type factory_defaults(void)
static Matrix default_surface_zdata(void)
Definition: graphics.cc:296
static bool has_readonly_property(const caseless_str &pname)
callback_property resizefcn
Definition: graphics.h:12166
bool_property zgrid
Definition: graphics.h:5363
static bool has_readonly_property(const caseless_str &pname)
any_property __object__
Definition: graphics.h:12514
property get_property(const caseless_str &pname)
array_property x_normrendertransform
Definition: graphics.h:5380
row_vector_property ydata
Definition: graphics.h:8567
radio_property fontangle
Definition: graphics.h:7833
radio_property layer
Definition: graphics.h:5315
bool has_property(const caseless_str &pname) const
static bool has_core_property(const caseless_str &pname)
bool_property zminortick
Definition: graphics.h:5368
static void set_format(double d, int &fw)
Definition: pr-output.cc:651
callback_property keypressfcn
Definition: graphics.h:4042
static bool has_readonly_property(const caseless_str &pname)
void set_parent(const octave_value &val)
Definition: graphics.cc:3003
void set_hittest(const octave_value &val)
Definition: graphics.h:2855
radio_property cdatamapping
Definition: graphics.h:10007
array_property x_viewporttransform
Definition: graphics.h:5379
radio_property enable
Definition: graphics.h:11637
static std::string go_name
Definition: graphics.h:8541
string_property language
Definition: graphics.h:3542
bool_property zliminclude
Definition: graphics.h:10914
void set_buttondownfcn(const octave_value &val)
Definition: graphics.h:2789
string_property errormessage
Definition: graphics.h:3538
any_property yticklabel
Definition: graphics.h:5358
color_property facecolor
Definition: graphics.h:10016
radio_property units
Definition: graphics.h:12170
charNDArray min(char d, const charNDArray &m)
Definition: chNDArray.cc:210
color_property facecolor
Definition: graphics.h:9125
static property_list::pval_map_type factory_defaults(void)
std::set< std::string > all_property_names(void) const
static Matrix default_patch_faces(void)
Definition: graphics.cc:311
bool has_property(const caseless_str &pname) const
double_property pointerwindow
Definition: graphics.h:3545
double_property linewidth
Definition: graphics.h:9132
static bool has_core_property(const caseless_str &pname)
radio_property bordertype
Definition: graphics.h:12156
static Matrix jet_colormap(void)
Definition: graphics.cc:137
static std::set< std::string > core_property_names(void)
radio_property camerapositionmode
Definition: graphics.h:5293
array_property position
Definition: graphics.h:12165
row_vector_property xtick
Definition: graphics.h:5343
double_property rotation
Definition: graphics.h:7844
row_vector_property alim
Definition: graphics.h:8568
radio_property xticklabelmode
Definition: graphics.h:5345
static property_list::pval_map_type factory_defaults(void)