On Sat, Jan 3, 2009 at 9:38 PM, Ben Abbott <address@hidden> wrote:
In a nutshell ... I'd like to be able to set the default values for
properties representing vectors. For example, figure.paperposition
where
we'd like the default to be [0.25, 2.5, 8, 6]. I don't see how this
can be
done. In graphics.h.in I can set each element to the same value
(all zeros
for example), but I don't see how to set the default to a vector with
differing values.
You can't. To achieve that, you have to use an indirect way. See for
instance what I did to set the default figure position in
graphics.h.in.
Another way would be to have a utility function like
Matrix make_vector(int n, ...)
that you could use in graphics.h.in to initialize properties with
predefined vector. The implementation of such function would use
stdargs.h or varargs.h.
Then there is the problem that the defaults are set after the
callbacks are
in place, which changes some of the defaults. As you point out this
can be
easily fixed, but I'd think it more proper to set the defaults
prior to
setting up the callbacks.
I'm not sure what's the best in this specific case. If you want to
force a default value for xtick, then it makes sense to also have
xtickmode set to manual, otherwise your default xtick value would
be useless and immediately overwritten by the system as xtickmode
would be auto. Could anybody check what happens under Matlab:
close all
set(0, 'defaultaxesxtick', [0:1:10])
get(gca, 'xtick')
get(gca, 'xtickmode')
Michael.