index c9aec455e0a423eab306b296d89a9a37f8693ed1..81e017f12792a048eb4095bd7e7f32007bc5ace3 100644 (file)
if (!grid_canvasitem_type) {
GtkTypeInfo grid_canvasitem_info = {
- "GridCanvasItem",
+ (gchar *)"GridCanvasItem",
sizeof (GridCanvasItem),
sizeof (GridCanvasItemClass),
(GtkClassInitFunc) grid_canvasitem_class_init,
vbox->pack_start(*_rcb_enabled, true, true);
vbox->pack_start(*_rcb_visible, true, true);
- vbox->pack_start(*newSpecificWidget(), true, true);
+ Gtk::Widget * gridwdg = newSpecificWidget();
+ vbox->pack_start(*gridwdg, true, true);
+
+ std::list<Gtk::Widget*> slaves;
+ slaves.push_back(_rcb_visible);
+ slaves.push_back(gridwdg);
+ _rcb_enabled->setSlaveWidgets(slaves);
// set widget values
_rcb_visible->setActive(visible);
@@ -422,6 +428,8 @@ CanvasXYGrid::CanvasXYGrid (SPNamedView * nv, Inkscape::XML::Node * in_repr, SPD
render_dotted = prefs_get_int_attribute ("options.grids.xy", "dotted", 0) == 1;
snapper = new CanvasXYGridSnapper(this, namedview, 0);
+
+ if (repr) readRepr();
}
CanvasXYGrid::~CanvasXYGrid ()
{
Gtk::Table * table = Gtk::manage( new Gtk::Table(1,1) );
- Inkscape::UI::Widget::RegisteredUnitMenu *_rumg = new Inkscape::UI::Widget::RegisteredUnitMenu();
- Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_ox = new Inkscape::UI::Widget::RegisteredScalarUnit();
- Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_oy = new Inkscape::UI::Widget::RegisteredScalarUnit();
- Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_sx = new Inkscape::UI::Widget::RegisteredScalarUnit();
- Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_sy = new Inkscape::UI::Widget::RegisteredScalarUnit();
+ Inkscape::UI::Widget::RegisteredUnitMenu *_rumg = Gtk::manage( new Inkscape::UI::Widget::RegisteredUnitMenu(
+ _("Grid _units:"), "units", _wr, repr, doc) );
+ Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_ox = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalarUnit(
+ _("_Origin X:"), _("X coordinate of grid origin"), "originx", *_rumg, _wr, repr, doc) );
+ Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_oy = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalarUnit(
+ _("O_rigin Y:"), _("Y coordinate of grid origin"), "originy", *_rumg, _wr, repr, doc) );
+ Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_sx = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalarUnit(
+ _("Spacing _X:"), _("Distance between vertical grid lines"), "spacingx", *_rumg, _wr, repr, doc) );
+ Inkscape::UI::Widget::RegisteredScalarUnit *_rsu_sy = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalarUnit(
+ _("Spacing _Y:"), _("Distance between horizontal grid lines"), "spacingy", *_rumg, _wr, repr, doc) );
Inkscape::UI::Widget::RegisteredColorPicker *_rcp_gcol = Gtk::manage(
new Inkscape::UI::Widget::RegisteredColorPicker(
_("Color of the major (highlighted) grid lines"), "empcolor", "empopacity",
_wr, repr, doc));
- Inkscape::UI::Widget::RegisteredSuffixedInteger *_rsi = new Inkscape::UI::Widget::RegisteredSuffixedInteger();
+ Inkscape::UI::Widget::RegisteredSuffixedInteger *_rsi = Gtk::manage( new Inkscape::UI::Widget::RegisteredSuffixedInteger(
+ _("_Major grid line every:"), "", _("lines"), "empspacing", _wr, repr, doc) );
- // initialize widgets:
table->set_spacings(2);
_wr.setUpdating (true);
- Inkscape::UI::Widget::ScalarUnit * sutemp;
- _rumg->init (_("Grid _units:"), "units", _wr, repr, doc);
- _rsu_ox->init (_("_Origin X:"), _("X coordinate of grid origin"),
- "originx", *_rumg, _wr, repr, doc);
- sutemp = _rsu_ox->getSU();
- sutemp->setDigits(4);
- sutemp->setIncrements(0.1, 1.0);
- _rsu_oy->init (_("O_rigin Y:"), _("Y coordinate of grid origin"),
- "originy", *_rumg, _wr, repr, doc);
- sutemp = _rsu_oy->getSU();
- sutemp->setDigits(4);
- sutemp->setIncrements(0.1, 1.0);
- _rsu_sx->init (_("Spacing _X:"), _("Distance between vertical grid lines"),
- "spacingx", *_rumg, _wr, repr, doc);
- sutemp = _rsu_sx->getSU();
- sutemp->setDigits(4);
- sutemp->setIncrements(0.1, 1.0);
- _rsu_sy->init (_("Spacing _Y:"), _("Distance between horizontal grid lines"),
- "spacingy", *_rumg, _wr, repr, doc);
- sutemp = _rsu_sy->getSU();
- sutemp->setDigits(4);
- sutemp->setIncrements(0.1, 1.0);
-
- _rsi->init (_("_Major grid line every:"), _("lines"), "empspacing", _wr, repr, doc);
+
+ _rsu_ox->setDigits(4);
+ _rsu_ox->setIncrements(0.1, 1.0);
+
+ _rsu_oy->setDigits(4);
+ _rsu_oy->setIncrements(0.1, 1.0);
+
+ _rsu_sx->setDigits(4);
+ _rsu_sx->setIncrements(0.1, 1.0);
+
+ _rsu_sy->setDigits(4);
+ _rsu_sy->setIncrements(0.1, 1.0);
Inkscape::UI::Widget::RegisteredCheckButton * _rcb_dotted = Gtk::manage(
new Inkscape::UI::Widget::RegisteredCheckButton( _("_Show dots instead of lines"),
_("If set, displays dots at gridpoints instead of gridlines"),
- "dotted", _wr, false, repr, doc)
- );
+ "dotted", _wr, false, repr, doc) );
_wr.setUpdating (false);
Gtk::Widget const *const widget_array[] = {
- _rumg->_label, _rumg->_sel,
- 0, _rsu_ox->getSU(),
- 0, _rsu_oy->getSU(),
- 0, _rsu_sx->getSU(),
- 0, _rsu_sy->getSU(),
+ 0, _rumg,
+ 0, _rsu_ox,
+ 0, _rsu_oy,
+ 0, _rsu_sx,
+ 0, _rsu_sy,
_rcp_gcol->_label, _rcp_gcol,
0, 0,
_rcp_gmcol->_label, _rcp_gmcol,
- _rsi->_label, &_rsi->_hbox,
+ 0, _rsi,
0, _rcb_dotted,
};
attach_all (*table, widget_array, sizeof(widget_array));
- if (repr) readRepr();
-
// set widget values
_rumg->setUnit (gridunit);
a = NR_RGBA32_A (rgba);
x0 = MAX (buf->rect.x0, xs);
x1 = MIN (buf->rect.x1, xe + 1);
- p = buf->buf + (y - buf->rect.y0) * buf->buf_rowstride + (x0 - buf->rect.x0) * 3;
+ p = buf->buf + (y - buf->rect.y0) * buf->buf_rowstride + (x0 - buf->rect.x0) * 4;
for (x = x0; x < x1; x++) {
p[0] = NR_COMPOSEN11_1111 (r, a, p[0]);
p[1] = NR_COMPOSEN11_1111 (g, a, p[1]);
p[2] = NR_COMPOSEN11_1111 (b, a, p[2]);
- p += 3;
+ p += 4;
}
}
}
a = NR_RGBA32_A (rgba);
y0 = MAX (buf->rect.y0, ys);
y1 = MIN (buf->rect.y1, ye + 1);
- p = buf->buf + (y0 - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 3;
+ p = buf->buf + (y0 - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 4;
for (y = y0; y < y1; y++) {
p[0] = NR_COMPOSEN11_1111 (r, a, p[0]);
p[1] = NR_COMPOSEN11_1111 (g, a, p[1]);
g = NR_RGBA32_G (rgba);
b = NR_RGBA32_B (rgba);
a = NR_RGBA32_A (rgba);
- p = buf->buf + (y - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 3;
+ p = buf->buf + (y - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 4;
p[0] = NR_COMPOSEN11_1111 (r, a, p[0]);
p[1] = NR_COMPOSEN11_1111 (g, a, p[1]);
p[2] = NR_COMPOSEN11_1111 (b, a, p[2]);
//set correct coloring, depending preference (when zoomed out, always major coloring or minor coloring)
guint32 _empcolor;
- bool preference = prefs_get_int_attribute ("options.grids", "no_emphasize_when_zoomedout", 0) == 1;
- if( (scaled[NR::X] || scaled[NR::Y]) && preference ) {
+ bool no_emp_when_zoomed_out = prefs_get_int_attribute ("options.grids", "no_emphasize_when_zoomedout", 0) == 1;
+ if( (scaled[NR::X] || scaled[NR::Y]) && no_emp_when_zoomed_out ) {
_empcolor = color;
} else {
_empcolor = empcolor;
gdouble x;
for (x = sxg, xlinenum = xlinestart; x < buf->rect.x1; x += sw[NR::X], xlinenum++) {
gint const ix = (gint) Inkscape::round(x);
- if ( (!scaled[NR::X] && (xlinenum % empspacing) == 0)
- || (!scaled[NR::Y] && (ylinenum % empspacing) == 0) )
+ if ( (!scaled[NR::X] && (xlinenum % empspacing) != 0)
+ || (!scaled[NR::Y] && (ylinenum % empspacing) != 0)
+ || ((scaled[NR::X] || scaled[NR::Y]) && no_emp_when_zoomed_out) )
{
- grid_dot (buf, ix, iy, _empcolor | (guint32)0x000000FF); // put alpha to max value
+ grid_dot (buf, ix, iy, color | (guint32)0x000000FF); // put alpha to max value
} else {
- grid_dot (buf, ix, iy, color | (guint32)0x000000FF); // put alpha to max value
+ gint const pitch = 1;
+ grid_dot (buf, ix-pitch, iy, _empcolor);
+ grid_dot (buf, ix+pitch, iy, _empcolor);
+
+ grid_dot (buf, ix, iy, _empcolor | (guint32)0x000000FF); // put alpha to max value
+
+ grid_dot (buf, ix, iy-pitch, _empcolor);
+ grid_dot (buf, ix, iy+pitch, _empcolor);
}
}