'paperpositionmode' change to rid gnuplot_set_term: size is zero
Ben Abbott
bpabbott at mac.com
Mon Jan 5 06:20:06 CST 2009
On Jan 3, 2009, at 5:07 PM, Michael Goffioul wrote:
> On Sat, Jan 3, 2009 at 9:38 PM, Ben Abbott <bpabbott at mac.com> 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.
Michael/others,
I've essentially mimicked prior examples in order to set the defaults
for ...
axes.xticks
axes.yticks
axes.zticks
figure.papersize
figure.paperposition
root.screensize
I've also attempted to add the "character" unit to
graphics:convert_positon(...)
There is a typo for the radio value "pixels" for the property
text.fontunits which is fixed as well.
I'd appreciate some advice/critque regarding the attached changeset.
Beyond these changes, I'd also like to see the axes.xticklabel /
yticklabel / zticklabel updated when the xtick / ytick / ztick is
set. I have not looked into how the listeners are handled on the c++
side yet, so I can't ask any intelligent questions. However, it
appears to me that it would be proper to set the initial
axes.xticklabel / yticklabel / zticklabel default values. However, I
have been unable to figure that out.
Is it possible to set the ticklabels using a function (in graphics.cc)
as is done for numeric values (for example the one below)
static Matrix
default_axes_tick (void)
{
Matrix m (1, 6, 0.0);
m(0) = 0.0;
m(1) = 0.2;
m(2) = 0.4;
m(3) = 0.6;
m(4) = 0.8;
m(5) = 1.0;
return m;
}
Where graphics.h.in would then have
row_vector_property xtick m , default_axes_tick ()
row_vector_property ytick m , default_axes_tick ()
row_vector_property ztick m , default_axes_tick ()
My naive guess would be to replace "Matrix" with "octave_value" (which
I'd bet is wrong, because I can't find any such examples in the code).
Beyond that I have no clue how to specify a cell array of strings.
More advice would be appreciated.
Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: changeset-properties.patch
Type: application/octet-stream
Size: 5334 bytes
Desc: not available
Url : https://www-old.cae.wisc.edu/pipermail/octave-maintainers/attachments/20090105/04ae5e56/attachment.obj
-------------- next part --------------
More information about the Octave-maintainers
mailing list