summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
commite65a02ed32b78534739aba24929ece7c44dd967f (patch)
tree13cf022f18f6b5bae46aad4bc339e512f069a514 /src
parentPull 2Geom revision 2013 (extra constructors for Rect). (diff)
parentText edit dialog: Apply button should grab default only after adding to window (diff)
downloadinkscape-e65a02ed32b78534739aba24929ece7c44dd967f.tar.gz
inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.zip
Merge from trunk
(bzr r10347.1.5)
Diffstat (limited to 'src')
-rw-r--r--src/2geom/!PLEASE DON'T MAKE CHANGES IN THESE FILES.README14
-rw-r--r--src/2geom/CMakeLists.txt3
-rw-r--r--src/2geom/convex-cover.cpp2
-rw-r--r--src/2geom/path-intersection.cpp2
-rw-r--r--src/2geom/solve-bezier-parametric.cpp12
-rw-r--r--src/CMakeLists.txt1193
-rw-r--r--src/Makefile.am2
-rw-r--r--src/arc-context.cpp2
-rw-r--r--src/arc-context.h2
-rw-r--r--src/attributes-test.h2
-rw-r--r--src/attributes.cpp3
-rw-r--r--src/attributes.h2
-rw-r--r--src/box3d-context.cpp2
-rw-r--r--src/box3d-context.h2
-rw-r--r--src/box3d.cpp7
-rw-r--r--src/conn-avoid-ref.cpp1
-rw-r--r--src/desktop-events.cpp2
-rw-r--r--src/desktop.cpp4
-rw-r--r--src/desktop.h4
-rw-r--r--src/dialogs/clonetiler.cpp80
-rw-r--r--src/dialogs/export.cpp162
-rw-r--r--src/dialogs/find.cpp72
-rw-r--r--src/dialogs/item-properties.cpp86
-rw-r--r--src/dialogs/spellcheck.cpp20
-rw-r--r--src/dialogs/text-edit.cpp54
-rw-r--r--src/dialogs/xml-tree.cpp112
-rw-r--r--src/display/canvas-arena.cpp24
-rw-r--r--src/display/canvas-arena.h2
-rw-r--r--src/display/canvas-axonomgrid.cpp2
-rw-r--r--src/display/canvas-bpath.cpp24
-rw-r--r--src/display/canvas-bpath.h2
-rw-r--r--src/display/canvas-grid.cpp28
-rw-r--r--src/display/canvas-grid.h2
-rw-r--r--src/display/canvas-text.cpp24
-rw-r--r--src/display/canvas-text.h2
-rw-r--r--src/display/gnome-canvas-acetate.cpp22
-rw-r--r--src/display/gnome-canvas-acetate.h2
-rw-r--r--src/display/nr-filter-gaussian.cpp10
-rw-r--r--src/display/nr-filter-primitive.cpp2
-rw-r--r--src/display/nr-filter.cpp2
-rw-r--r--src/display/nr-light.cpp2
-rw-r--r--src/display/snap-indicator.cpp13
-rw-r--r--src/display/sodipodi-ctrl.cpp6
-rw-r--r--src/display/sodipodi-ctrl.h2
-rw-r--r--src/display/sodipodi-ctrlrect.cpp2
-rw-r--r--src/display/sodipodi-ctrlrect.h2
-rw-r--r--src/display/sp-canvas-item.h4
-rw-r--r--src/display/sp-canvas.cpp19
-rw-r--r--src/display/sp-ctrlline.cpp2
-rw-r--r--src/display/sp-ctrlpoint.cpp2
-rw-r--r--src/display/sp-ctrlquadr.cpp2
-rw-r--r--src/dom/CMakeLists.txt3
-rw-r--r--src/dom/mingwenv.bat4
-rw-r--r--src/ege-adjustment-action.cpp4
-rw-r--r--src/ege-select-one-action.cpp2
-rw-r--r--src/extension/CMakeLists.txt1
-rw-r--r--src/extension/effect.cpp2
-rwxr-xr-xsrc/extension/internal/filter/experimental.h12
-rwxr-xr-xsrc/extension/internal/filter/filter-all.cpp4
-rw-r--r--src/extension/internal/filter/image.h113
-rw-r--r--src/extension/internal/filter/shadows.h92
-rw-r--r--src/filters/CMakeLists.txt1
-rw-r--r--src/filters/merge.cpp2
-rw-r--r--src/filters/tile.cpp2
-rw-r--r--src/flood-context.cpp2
-rw-r--r--src/flood-context.h2
-rw-r--r--src/gradient-context.cpp16
-rw-r--r--src/gradient-context.h2
-rw-r--r--src/gradient-drag.cpp2
-rw-r--r--src/graphlayout.cpp7
-rw-r--r--src/helper/CMakeLists.txt4
-rw-r--r--src/helper/unit-menu.cpp15
-rw-r--r--src/ink-comboboxentry-action.cpp2
-rw-r--r--src/inkscape-manifest.xml18
-rw-r--r--src/inkview-manifest.xml18
-rw-r--r--src/inkview.cpp1
-rw-r--r--src/inkview.rc58
-rw-r--r--src/interface.cpp14
-rw-r--r--src/knot.cpp22
-rw-r--r--src/libavoid/vpsc.cpp2
-rw-r--r--src/libcola/cola.cpp52
-rw-r--r--src/libcola/cola.h157
-rw-r--r--src/libcola/gradient_projection.h44
-rw-r--r--src/libcola/shortest_paths.cpp18
-rw-r--r--src/libcola/shortest_paths.h23
-rw-r--r--src/libcola/straightener.cpp8
-rw-r--r--src/libcola/straightener.h26
-rw-r--r--src/libcroco/CMakeLists.txt3
-rw-r--r--src/libcroco/cr-parser.c2
-rw-r--r--src/libgdl/gdl-dock-bar.c6
-rw-r--r--src/libgdl/gdl-dock-item-grip.c17
-rw-r--r--src/libgdl/gdl-dock-item.c58
-rw-r--r--src/libgdl/gdl-dock-master.c14
-rw-r--r--src/libgdl/gdl-dock-notebook.c15
-rw-r--r--src/libgdl/gdl-dock-object.c9
-rw-r--r--src/libgdl/gdl-dock-paned.c2
-rw-r--r--src/libgdl/gdl-dock-placeholder.c12
-rw-r--r--src/libgdl/gdl-dock-tablabel.c1
-rw-r--r--src/libgdl/gdl-dock.c42
-rw-r--r--src/libgdl/gdl-switcher.c23
-rw-r--r--src/libgdl/gdl-tools.h4
-rw-r--r--src/libnr/CMakeLists.txt1
-rw-r--r--src/libnrtype/CMakeLists.txt3
-rw-r--r--src/libnrtype/Layout-TNG-OutIter.cpp21
-rw-r--r--src/libnrtype/Layout-TNG.h2
-rw-r--r--src/libvpsc/CMakeLists.txt58
-rw-r--r--src/libvpsc/block.cpp2
-rw-r--r--src/livarot/CMakeLists.txt3
-rw-r--r--src/live_effects/CMakeLists.txt1
-rw-r--r--src/live_effects/lpe-powerstroke.cpp98
-rw-r--r--src/live_effects/lpe-powerstroke.h5
-rw-r--r--src/main.cpp2
-rw-r--r--src/measure-context.cpp45
-rw-r--r--src/object-snapper.cpp259
-rw-r--r--src/object-snapper.h1
-rw-r--r--src/rect-context.cpp2
-rw-r--r--src/rect-context.h2
-rw-r--r--src/select-context.cpp2
-rw-r--r--src/select-context.h2
-rw-r--r--src/seltrans.cpp2
-rw-r--r--src/snap-enums.h77
-rw-r--r--src/snap-preferences.cpp36
-rw-r--r--src/snap-preferences.h8
-rw-r--r--src/snap.cpp4
-rw-r--r--src/sp-conn-end-pair.cpp2
-rw-r--r--src/sp-ellipse.cpp4
-rw-r--r--src/sp-flowtext.cpp18
-rw-r--r--src/sp-namedview.cpp66
-rw-r--r--src/sp-rect.cpp2
-rw-r--r--src/sp-shape.cpp2
-rw-r--r--src/sp-spiral.cpp2
-rw-r--r--src/sp-star.cpp2
-rw-r--r--src/sp-text.cpp18
-rw-r--r--src/spiral-context.cpp2
-rw-r--r--src/spiral-context.h2
-rw-r--r--src/spray-context.cpp2
-rw-r--r--src/spray-context.h2
-rw-r--r--src/star-context.cpp2
-rw-r--r--src/star-context.h2
-rw-r--r--src/svg-view-widget.cpp14
-rw-r--r--src/svg-view-widget.h2
-rw-r--r--src/svg-view.cpp4
-rw-r--r--src/svg/CMakeLists.txt3
-rw-r--r--src/text-context.cpp6
-rw-r--r--src/text-context.h2
-rw-r--r--src/tweak-context.cpp2
-rw-r--r--src/tweak-context.h2
-rw-r--r--src/ui/CMakeLists.txt3
-rw-r--r--src/ui/context-menu.cpp92
-rw-r--r--src/ui/dialog/dock-behavior.cpp2
-rw-r--r--src/ui/dialog/floating-behavior.cpp2
-rw-r--r--src/ui/icon-names.h4
-rw-r--r--src/ui/view/view-widget.cpp27
-rw-r--r--src/ui/widget/page-sizer.cpp32
-rw-r--r--src/ui/widget/page-sizer.h1
-rw-r--r--src/ui/widget/registered-widget.h3
-rw-r--r--src/ui/widget/selected-style.cpp2
-rw-r--r--src/ui/widget/svg-canvas.cpp2
-rw-r--r--src/util/CMakeLists.txt3
-rw-r--r--src/widgets/CMakeLists.txt3
-rw-r--r--src/widgets/desktop-widget.cpp22
-rw-r--r--src/widgets/desktop-widget.h4
-rw-r--r--src/widgets/font-selector.cpp11
-rw-r--r--src/widgets/font-selector.h2
-rw-r--r--src/widgets/gradient-image.cpp28
-rw-r--r--src/widgets/gradient-image.h2
-rw-r--r--src/widgets/gradient-selector.cpp10
-rw-r--r--src/widgets/gradient-toolbar.cpp16
-rw-r--r--src/widgets/gradient-vector.cpp33
-rw-r--r--src/widgets/paint-selector.cpp54
-rw-r--r--src/widgets/paint-selector.h2
-rw-r--r--src/widgets/ruler.cpp67
-rw-r--r--src/widgets/ruler.h4
-rw-r--r--src/widgets/select-toolbar.cpp9
-rw-r--r--src/widgets/sp-attribute-widget.cpp24
-rw-r--r--src/widgets/sp-attribute-widget.h4
-rw-r--r--src/widgets/sp-color-gtkselector.cpp2
-rw-r--r--src/widgets/sp-color-icc-selector.cpp2
-rw-r--r--src/widgets/sp-color-notebook.cpp14
-rw-r--r--src/widgets/sp-color-notebook.h2
-rw-r--r--src/widgets/sp-color-scales.cpp6
-rw-r--r--src/widgets/sp-color-selector.cpp2
-rw-r--r--src/widgets/sp-color-slider.cpp44
-rw-r--r--src/widgets/sp-color-slider.h2
-rw-r--r--src/widgets/sp-color-wheel-selector.cpp2
-rw-r--r--src/widgets/sp-widget.cpp31
-rw-r--r--src/widgets/sp-widget.h2
-rw-r--r--src/widgets/sp-xmlview-attr-list.cpp2
-rw-r--r--src/widgets/sp-xmlview-attr-list.h2
-rw-r--r--src/widgets/sp-xmlview-content.cpp6
-rw-r--r--src/widgets/sp-xmlview-content.h2
-rw-r--r--src/widgets/sp-xmlview-tree.cpp26
-rw-r--r--src/widgets/sp-xmlview-tree.h2
-rw-r--r--src/widgets/spinbutton-events.cpp24
-rw-r--r--src/widgets/spw-utilities.cpp20
-rw-r--r--src/widgets/toolbox.cpp91
-rw-r--r--src/xml/CMakeLists.txt3
197 files changed, 2507 insertions, 2061 deletions
diff --git a/src/2geom/!PLEASE DON'T MAKE CHANGES IN THESE FILES.README b/src/2geom/!PLEASE DON'T MAKE CHANGES IN THESE FILES.README
index fdb2212ae..9e4585078 100644
--- a/src/2geom/!PLEASE DON'T MAKE CHANGES IN THESE FILES.README
+++ b/src/2geom/!PLEASE DON'T MAKE CHANGES IN THESE FILES.README
@@ -1,8 +1,8 @@
-All code files in this directory are *direct* copies of the files in 2geom's svn.
-If you want to change the code, please change it in 2geom, then copy the files here.
-Otherwise, I will probably miss that you changed something in Inkscape's copy, and
-destroy your changes by copying 2geom's files over it during the next time I update
-Inkscape's copy of 2geom.
- - Johan Engelen
-
+All code files in this directory are *direct* copies of the files in 2geom's svn.
+If you want to change the code, please change it in 2geom, then copy the files here.
+Otherwise, I will probably miss that you changed something in Inkscape's copy, and
+destroy your changes by copying 2geom's files over it during the next time I update
+Inkscape's copy of 2geom.
+ - Johan Engelen
+
2geom's SVN = https://lib2geom.svn.sourceforge.net/svnroot/lib2geom/lib2geom/trunk \ No newline at end of file
diff --git a/src/2geom/CMakeLists.txt b/src/2geom/CMakeLists.txt
index c04718e79..bc3f64bdc 100644
--- a/src/2geom/CMakeLists.txt
+++ b/src/2geom/CMakeLists.txt
@@ -46,6 +46,9 @@ set(2geom_SRC
transforms.cpp
utils.cpp
+
+ # -------
+ # Headers
affine.h
angle.h
basic-intersection.h
diff --git a/src/2geom/convex-cover.cpp b/src/2geom/convex-cover.cpp
index 21a5c3107..d50accadf 100644
--- a/src/2geom/convex-cover.cpp
+++ b/src/2geom/convex-cover.cpp
@@ -145,7 +145,7 @@ ConvexHull::graham_scan() {
double o = SignedTriangleArea(boundary[stac-2],
boundary[stac-1],
boundary[i]);
- if(o == 0) { // colinear - dangerous...
+ if(fabs(o) < 1e-8) { // colinear - dangerous...
stac--;
} else if(o < 0) { // anticlockwise
} else { // remove concavity
diff --git a/src/2geom/path-intersection.cpp b/src/2geom/path-intersection.cpp
index 58ee6232b..7aa662abb 100644
--- a/src/2geom/path-intersection.cpp
+++ b/src/2geom/path-intersection.cpp
@@ -228,8 +228,6 @@ intersect_polish_f (const gsl_vector * x, void *params,
static void
intersect_polish_root (Curve const &A, double &s,
Curve const &B, double &t) {
- int status;
- size_t iter = 0;
std::vector<Point> as, bs;
as = A.pointAndDerivatives(s, 2);
bs = B.pointAndDerivatives(t, 2);
diff --git a/src/2geom/solve-bezier-parametric.cpp b/src/2geom/solve-bezier-parametric.cpp
index 76cf65e17..437f073a3 100644
--- a/src/2geom/solve-bezier-parametric.cpp
+++ b/src/2geom/solve-bezier-parametric.cpp
@@ -68,13 +68,13 @@ find_parametric_bezier_roots(Geom::Point const *w, /* The control points */
break;
}
- /* Otherwise, solve recursively after subdividing control polygon */
- Geom::Point Left[degree+1], /* New left and right */
- Right[degree+1]; /* control polygons */
- Bezier(w, degree, 0.5, Left, Right);
+ // Otherwise, solve recursively after subdividing control polygon
+ std::vector<Geom::Point> Left(degree + 1); // New left and right
+ std::vector<Geom::Point> Right(degree + 1); // control polygons
+ Bezier(w, degree, 0.5, &Left[0], &Right[0]);
total_subs ++;
- find_parametric_bezier_roots(Left, degree, solutions, depth+1);
- find_parametric_bezier_roots(Right, degree, solutions, depth+1);
+ find_parametric_bezier_roots(&Left[0], degree, solutions, depth + 1);
+ find_parametric_bezier_roots(&Right[0], degree, solutions, depth + 1);
}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c508e36d9..580d65b0c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,595 +1,598 @@
-
-# -----------------------------------------------------------------------------
-# Define the main source
-# -----------------------------------------------------------------------------
-
-set(main_SRC
- main.cpp
-)
-
-set(sp_SRC
- sp-anchor.cpp
- # sp-animation.cpp
- sp-clippath.cpp
- sp-conn-end-pair.cpp
- sp-conn-end.cpp
- sp-cursor.cpp
- sp-defs.cpp
- sp-desc.cpp
- sp-ellipse.cpp
- sp-filter-primitive.cpp
- sp-filter-reference.cpp
- sp-filter.cpp
- sp-flowdiv.cpp
- sp-flowregion.cpp
- sp-flowtext.cpp
- sp-font-face.cpp
- sp-font.cpp
- sp-glyph-kerning.cpp
- sp-glyph.cpp
- sp-gradient-reference.cpp
- sp-gradient.cpp
- sp-guide.cpp
- sp-image.cpp
- sp-item-group.cpp
- sp-item-notify-moveto.cpp
- sp-item-rm-unsatisfied-cns.cpp
- sp-item-transform.cpp
- sp-item-update-cns.cpp
- sp-item.cpp
- sp-line.cpp
- sp-lpe-item.cpp
- sp-mask.cpp
- sp-metadata.cpp
- sp-metrics.cpp
- sp-missing-glyph.cpp
- sp-namedview.cpp
- sp-object-group.cpp
- sp-object-repr.cpp
- sp-object.cpp
- sp-offset.cpp
- sp-paint-server.cpp
- sp-path.cpp
- sp-pattern.cpp
- sp-polygon.cpp
- sp-polyline.cpp
- sp-rect.cpp
- sp-root.cpp
- sp-script.cpp
- sp-shape.cpp
- # sp-skeleton.cpp
- sp-spiral.cpp
- sp-star.cpp
- sp-stop.cpp
- sp-string.cpp
- sp-style-elem.cpp
- sp-switch.cpp
- sp-symbol.cpp
- sp-text.cpp
- sp-title.cpp
- sp-tref-reference.cpp
- sp-tref.cpp
- sp-tspan.cpp
- sp-use-reference.cpp
- sp-use.cpp
- spiral-context.cpp
- splivarot.cpp
-
- sp-anchor.h
- sp-animation.h
- sp-clippath.h
- sp-conn-end-pair.h
- sp-conn-end.h
- sp-cursor.h
- sp-defs.h
- sp-desc.h
- sp-ellipse.h
- sp-filter-primitive.h
- sp-filter-reference.h
- sp-filter-units.h
- sp-filter.h
- sp-flowdiv.h
- sp-flowregion.h
- sp-flowtext.h
- sp-font-face.h
- sp-font.h
- sp-glyph-kerning.h
- sp-glyph.h
- sp-gradient-fns.h
- sp-gradient-reference.h
- sp-gradient-spread.h
- sp-gradient-test.h
- sp-gradient-units.h
- sp-gradient-vector.h
- sp-gradient.h
- sp-guide-attachment.h
- sp-guide-constraint.h
- sp-guide.h
- sp-image.h
- sp-item-group.h
- sp-item-notify-moveto.h
- sp-item-rm-unsatisfied-cns.h
- sp-item-transform.h
- sp-item-update-cns.h
- sp-item.h
- sp-line.h
- sp-linear-gradient-fns.h
- sp-linear-gradient.h
- sp-lpe-item.h
- sp-marker-loc.h
- sp-mask.h
- sp-metadata.h
- sp-metric.h
- sp-metrics.h
- sp-missing-glyph.h
- sp-namedview.h
- sp-object-group.h
- sp-object-repr.h
- sp-object.h
- sp-offset.h
- sp-paint-server-reference.h
- sp-paint-server.h
- sp-path.h
- sp-pattern.h
- sp-polygon.h
- sp-polyline.h
- sp-radial-gradient-fns.h
- sp-radial-gradient.h
- sp-rect.h
- sp-root.h
- sp-script.h
- sp-shape.h
- # sp-skeleton.h
- sp-spiral.h
- sp-star.h
- sp-stop.h
- sp-string.h
- sp-style-elem-test.h
- sp-style-elem.h
- sp-switch.h
- sp-symbol.h
- sp-text.h
- sp-textpath.h
- sp-title.h
- sp-tref-reference.h
- sp-tref.h
- sp-tspan.h
- sp-use-reference.h
- sp-use.h
-)
-
-set(inkscape_SRC
- arc-context.cpp
- attributes.cpp
- axis-manip.cpp
- box3d-context.cpp
- box3d-side.cpp
- box3d.cpp
- color-profile.cpp
- color.cpp
- common-context.cpp
- composite-undo-stack-observer.cpp
- conditions.cpp
- conn-avoid-ref.cpp
- connection-points.cpp
- connector-context.cpp
- console-output-undo-observer.cpp
- context-fns.cpp
- desktop-events.cpp
- desktop-handles.cpp
- desktop-style.cpp
- desktop.cpp
- device-manager.cpp
- dir-util.cpp
- document-subset.cpp
- document-undo.cpp
- document.cpp
- doxygen-main.cpp
- draw-anchor.cpp
- draw-context.cpp
- dropper-context.cpp
- dyna-draw-context.cpp
- ege-adjustment-action.cpp
- ege-color-prof-tracker.cpp
- ege-output-action.cpp
- ege-select-one-action.cpp
- eraser-context.cpp
- event-context.cpp
- event-log.cpp
- extract-uri.cpp
- file.cpp
- filter-chemistry.cpp
- filter-enums.cpp
- fixes.cpp
- flood-context.cpp
- gc-anchored.cpp
- gc-finalized.cpp
- gc.cpp
- gradient-chemistry.cpp
- gradient-context.cpp
- gradient-drag.cpp
- graphlayout.cpp
- guide-snapper.cpp
- help.cpp
- id-clash.cpp
- ige-mac-menu.c
- ink-action.cpp
- ink-comboboxentry-action.cpp
- inkscape.cpp
- inkscape.rc
- interface.cpp
- knot-holder-entity.cpp
- knot.cpp
- knotholder.cpp
- layer-fns.cpp
- layer-manager.cpp
- line-geometry.cpp
- line-snapper.cpp
- lpe-tool-context.cpp
- main-cmdlineact.cpp
- marker.cpp
- measure-context.cpp
- media.cpp
- message-context.cpp
- message-stack.cpp
- mod360.cpp
- object-edit.cpp
- object-hierarchy.cpp
- object-snapper.cpp
- path-chemistry.cpp
- pen-context.cpp
- pencil-context.cpp
- persp3d-reference.cpp
- persp3d.cpp
- perspective-line.cpp
- preferences.cpp
- prefix.cpp
- print.cpp
- profile-manager.cpp
- proj_pt.cpp
- rdf.cpp
- rect-context.cpp
- removeoverlap.cpp
- resource-manager.cpp
- rubberband.cpp
- satisfied-guide-cns.cpp
- selcue.cpp
- select-context.cpp
- selection-chemistry.cpp
- selection-describer.cpp
- selection.cpp
- seltrans-handles.cpp
- seltrans.cpp
- shape-editor.cpp
- shortcuts.cpp
- snap-preferences.cpp
- snap.cpp
- snapped-curve.cpp
- snapped-line.cpp
- snapped-point.cpp
- snapper.cpp
- spray-context.cpp
- star-context.cpp
- style.cpp
- svg-view-widget.cpp
- svg-view.cpp
- text-chemistry.cpp
- text-context.cpp
- text-editing.cpp
- tools-switch.cpp
- transf_mat_3x4.cpp
- tweak-context.cpp
- unclump.cpp
- unicoderange.cpp
- uri-references.cpp
- uri.cpp
- vanishing-point.cpp
- verbs.cpp
- version.cpp
- zoom-context.cpp
-
-
- # -------
- # Headers
- MultiPrinter.h
- PylogFormatter.h
- TRPIFormatter.h
- approx-equal.h
- arc-context.h
- attributes-test.h
- attributes.h
- axis-manip.h
- bad-uri-exception.h
- box3d-context.h
- box3d-side.h
- box3d.h
- color-profile-fns.h
- color-profile-test.h
- color-profile.h
- color-rgba.h
- color.h
- common-context.h
- composite-undo-stack-observer.h
- conditions.h
- conn-avoid-ref.h
- connection-points.h
- connection-pool.h
- connector-context.h
- console-output-undo-observer.h
- context-fns.h
- decimal-round.h
- desktop-events.h
- desktop-handles.h
- desktop-style.h
- desktop.h
- device-manager.h
- dir-util-test.h
- dir-util.h
- document-private.h
- document-subset.h
- document-undo.h
- document.h
- draw-anchor.h
- draw-context.h
- dropper-context.h
- dyna-draw-context.h
- ege-adjustment-action.h
- ege-color-prof-tracker.h
- ege-output-action.h
- ege-select-one-action.h
- enums.h
- eraser-context.h
- event-context.h
- event-log.h
- event.h
- extract-uri-test.h
- extract-uri.h
- file.h
- fill-or-stroke.h
- filter-chemistry.h
- filter-enums.h
- flood-context.h
- forward.h
- gc-alloc.h
- gc-allocator.h
- gc-anchored.h
- gc-core.h
- gc-finalized.h
- gc-managed.h
- gc-soft-ptr.h
- gradient-chemistry.h
- gradient-context.h
- gradient-drag.h
- graphlayout.h
- guide-snapper.h
- help.h
- helper-fns.h
- icon-size.h
- id-clash.h
- ige-mac-menu.h
- ink-action.h
- ink-comboboxentry-action.h
- inkscape-private.h
- inkscape-version.h
- inkscape.h
- interface.h
- isinf.h
- isnormal.h
- knot-enums.h
- knot-holder-entity.h
- knot.h
- knotholder.h
- layer-fns.h
- layer-manager.h
- line-geometry.h
- line-snapper.h
- lpe-tool-context.h
- macros.h
- main-cmdlineact.h
- marker-test.h
- marker.h
- measure-context.h
- media.h
- memeq.h
- menus-skeleton.h
- message-context.h
- message-stack.h
- message.h
- mod360-test.h
- mod360.h
- modifier-fns.h
- number-opt-number.h
- object-edit.h
- object-hierarchy.h
- object-snapper.h
- path-chemistry.h
- path-prefix.h
- pen-context.h
- pencil-context.h
- persp3d-reference.h
- persp3d.h
- perspective-line.h
- preferences-skeleton.h
- preferences-test.h
- preferences.h
- prefix.h
- print.h
- profile-manager.h
- proj_pt.h
- rdf.h
- rect-context.h
- registrytool.h
- remove-last.h
- removeoverlap.h
- require-config.h
- resource-manager.h
- round-test.h
- round.h
- rubberband.h
- satisfied-guide-cns.h
- selcue.h
- select-context.h
- selection-chemistry.h
- selection-describer.h
- selection.h
- seltrans-handles.h
- seltrans.h
- shape-editor.h
- shortcuts.h
- snap-candidate.h
- snap-enums.h
- snap-preferences.h
- snap.h
- snapped-curve.h
- snapped-line.h
- snapped-point.h
- snapper.h
- spiral-context.h
- splivarot.h
- spray-context.h
- star-context.h
- streq.h
- strneq.h
- style-test.h
- style.h
- svg-profile.h
- svg-view-widget.h
- svg-view.h
- syseq.h
- test-helpers.h
- text-chemistry.h
- text-context.h
- text-editing.h
- text-tag-attributes.h
- tools-switch.h
- transf_mat_3x4.h
- tweak-context.h
- unclump.h
- undo-stack-observer.h
- unicoderange.h
- unit-constants.h
- uri-references.h
- uri.h
- vanishing-point.h
- verbs-test.h
- verbs.h
- version.h
- zoom-context.h
-)
-
-if(WIN32)
- list(APPEND inkscape_SRC
- registrytool.cpp
- #deptool.cpp
- winmain.cpp
- )
-endif()
-
-
-# -----------------------------------------------------------------------------
-# Generate version file
-# -----------------------------------------------------------------------------
-
-# a custom target that is always built
-add_custom_target(
- inkscape_version ALL
- DEPENDS ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp)
-
-# creates inkscape-version.cpp using cmake script
-add_custom_command(
- OUTPUT ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
- COMMAND ${CMAKE_COMMAND}
- -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
- -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR}
- -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake)
-
-# buildinfo.h is a generated file
-set_source_files_properties(
- ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
- PROPERTIES GENERATED TRUE)
-
-list(APPEND inkscape_SRC
- ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
-)
-
-
-# -----------------------------------------------------------------------------
-# Load in subdirectories
-# -----------------------------------------------------------------------------
-
-# All folders for internal inkscape
-# these call add_inkscape_source
-add_subdirectory(bind)
-add_subdirectory(debug)
-add_subdirectory(dialogs)
-add_subdirectory(display)
-add_subdirectory(dom)
-add_subdirectory(extension)
-add_subdirectory(filters)
-add_subdirectory(helper)
-add_subdirectory(io)
-add_subdirectory(live_effects)
-add_subdirectory(svg)
-add_subdirectory(trace)
-add_subdirectory(ui)
-add_subdirectory(util)
-add_subdirectory(widgets)
-add_subdirectory(xml)
-add_subdirectory(2geom)
-
-
-# Directories containing lists files that describe building internal libraries
-add_subdirectory(libavoid)
-add_subdirectory(libcola)
-add_subdirectory(libcroco)
-add_subdirectory(libgdl)
-add_subdirectory(libvpsc)
-add_subdirectory(livarot)
-add_subdirectory(libnr)
-add_subdirectory(libnrtype)
-
-
-get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC)
-
-set(inkscape_SRC
- ${inkscape_global_SRC}
- ${inkscape_SRC}
-)
-
-# -----------------------------------------------------------------------------
-# Setup the executable
-# -----------------------------------------------------------------------------
-add_inkscape_lib(sp_LIB "${sp_SRC}")
-add_inkscape_lib(inkscape_LIB "${inkscape_SRC}")
-
-# make executable for INKSCAPE
-add_executable(inkscape ${main_SRC})
-
-add_dependencies(inkscape inkscape_version)
-
-target_link_libraries(inkscape
- # order from automake
- sp_LIB
- inkscape_LIB
- sp_LIB # annoying, we need both!
-
- nr_LIB
- nrtype_LIB
-
- dom_LIB
- croco_LIB
- avoid_LIB
- gdl_LIB
- cola_LIB
- vpsc_LIB
- livarot_LIB
- 2geom_LIB
-
- ${INKSCAPE_LIBS}
-)
-
-# TODO
-# make executable for INKVIEW
-#add_executable(inkview inkview.cpp)
-# ...
-
+
+# -----------------------------------------------------------------------------
+# Define the main source
+# -----------------------------------------------------------------------------
+
+set(main_SRC
+ main.cpp
+)
+
+set(sp_SRC
+ sp-anchor.cpp
+ # sp-animation.cpp
+ sp-clippath.cpp
+ sp-conn-end-pair.cpp
+ sp-conn-end.cpp
+ sp-cursor.cpp
+ sp-defs.cpp
+ sp-desc.cpp
+ sp-ellipse.cpp
+ sp-filter-primitive.cpp
+ sp-filter-reference.cpp
+ sp-filter.cpp
+ sp-flowdiv.cpp
+ sp-flowregion.cpp
+ sp-flowtext.cpp
+ sp-font-face.cpp
+ sp-font.cpp
+ sp-glyph-kerning.cpp
+ sp-glyph.cpp
+ sp-gradient-reference.cpp
+ sp-gradient.cpp
+ sp-guide.cpp
+ sp-image.cpp
+ sp-item-group.cpp
+ sp-item-notify-moveto.cpp
+ sp-item-rm-unsatisfied-cns.cpp
+ sp-item-transform.cpp
+ sp-item-update-cns.cpp
+ sp-item.cpp
+ sp-line.cpp
+ sp-lpe-item.cpp
+ sp-mask.cpp
+ sp-metadata.cpp
+ sp-metrics.cpp
+ sp-missing-glyph.cpp
+ sp-namedview.cpp
+ sp-object-group.cpp
+ sp-object-repr.cpp
+ sp-object.cpp
+ sp-offset.cpp
+ sp-paint-server.cpp
+ sp-path.cpp
+ sp-pattern.cpp
+ sp-polygon.cpp
+ sp-polyline.cpp
+ sp-rect.cpp
+ sp-root.cpp
+ sp-script.cpp
+ sp-shape.cpp
+ # sp-skeleton.cpp
+ sp-spiral.cpp
+ sp-star.cpp
+ sp-stop.cpp
+ sp-string.cpp
+ sp-style-elem.cpp
+ sp-switch.cpp
+ sp-symbol.cpp
+ sp-text.cpp
+ sp-title.cpp
+ sp-tref-reference.cpp
+ sp-tref.cpp
+ sp-tspan.cpp
+ sp-use-reference.cpp
+ sp-use.cpp
+ spiral-context.cpp
+ splivarot.cpp
+
+
+ # -------
+ # Headers
+ sp-anchor.h
+ sp-animation.h
+ sp-clippath.h
+ sp-conn-end-pair.h
+ sp-conn-end.h
+ sp-cursor.h
+ sp-defs.h
+ sp-desc.h
+ sp-ellipse.h
+ sp-filter-primitive.h
+ sp-filter-reference.h
+ sp-filter-units.h
+ sp-filter.h
+ sp-flowdiv.h
+ sp-flowregion.h
+ sp-flowtext.h
+ sp-font-face.h
+ sp-font.h
+ sp-glyph-kerning.h
+ sp-glyph.h
+ sp-gradient-fns.h
+ sp-gradient-reference.h
+ sp-gradient-spread.h
+ sp-gradient-test.h
+ sp-gradient-units.h
+ sp-gradient-vector.h
+ sp-gradient.h
+ sp-guide-attachment.h
+ sp-guide-constraint.h
+ sp-guide.h
+ sp-image.h
+ sp-item-group.h
+ sp-item-notify-moveto.h
+ sp-item-rm-unsatisfied-cns.h
+ sp-item-transform.h
+ sp-item-update-cns.h
+ sp-item.h
+ sp-line.h
+ sp-linear-gradient-fns.h
+ sp-linear-gradient.h
+ sp-lpe-item.h
+ sp-marker-loc.h
+ sp-mask.h
+ sp-metadata.h
+ sp-metric.h
+ sp-metrics.h
+ sp-missing-glyph.h
+ sp-namedview.h
+ sp-object-group.h
+ sp-object-repr.h
+ sp-object.h
+ sp-offset.h
+ sp-paint-server-reference.h
+ sp-paint-server.h
+ sp-path.h
+ sp-pattern.h
+ sp-polygon.h
+ sp-polyline.h
+ sp-radial-gradient-fns.h
+ sp-radial-gradient.h
+ sp-rect.h
+ sp-root.h
+ sp-script.h
+ sp-shape.h
+ # sp-skeleton.h
+ sp-spiral.h
+ sp-star.h
+ sp-stop.h
+ sp-string.h
+ sp-style-elem-test.h
+ sp-style-elem.h
+ sp-switch.h
+ sp-symbol.h
+ sp-text.h
+ sp-textpath.h
+ sp-title.h
+ sp-tref-reference.h
+ sp-tref.h
+ sp-tspan.h
+ sp-use-reference.h
+ sp-use.h
+)
+
+set(inkscape_SRC
+ arc-context.cpp
+ attributes.cpp
+ axis-manip.cpp
+ box3d-context.cpp
+ box3d-side.cpp
+ box3d.cpp
+ color-profile.cpp
+ color.cpp
+ common-context.cpp
+ composite-undo-stack-observer.cpp
+ conditions.cpp
+ conn-avoid-ref.cpp
+ connection-points.cpp
+ connector-context.cpp
+ console-output-undo-observer.cpp
+ context-fns.cpp
+ desktop-events.cpp
+ desktop-handles.cpp
+ desktop-style.cpp
+ desktop.cpp
+ device-manager.cpp
+ dir-util.cpp
+ document-subset.cpp
+ document-undo.cpp
+ document.cpp
+ doxygen-main.cpp
+ draw-anchor.cpp
+ draw-context.cpp
+ dropper-context.cpp
+ dyna-draw-context.cpp
+ ege-adjustment-action.cpp
+ ege-color-prof-tracker.cpp
+ ege-output-action.cpp
+ ege-select-one-action.cpp
+ eraser-context.cpp
+ event-context.cpp
+ event-log.cpp
+ extract-uri.cpp
+ file.cpp
+ filter-chemistry.cpp
+ filter-enums.cpp
+ fixes.cpp
+ flood-context.cpp
+ gc-anchored.cpp
+ gc-finalized.cpp
+ gc.cpp
+ gradient-chemistry.cpp
+ gradient-context.cpp
+ gradient-drag.cpp
+ graphlayout.cpp
+ guide-snapper.cpp
+ help.cpp
+ id-clash.cpp
+ ige-mac-menu.c
+ ink-action.cpp
+ ink-comboboxentry-action.cpp
+ inkscape.cpp
+ inkscape.rc
+ interface.cpp
+ knot-holder-entity.cpp
+ knot.cpp
+ knotholder.cpp
+ layer-fns.cpp
+ layer-manager.cpp
+ line-geometry.cpp
+ line-snapper.cpp
+ lpe-tool-context.cpp
+ main-cmdlineact.cpp
+ marker.cpp
+ measure-context.cpp
+ media.cpp
+ message-context.cpp
+ message-stack.cpp
+ mod360.cpp
+ object-edit.cpp
+ object-hierarchy.cpp
+ object-snapper.cpp
+ path-chemistry.cpp
+ pen-context.cpp
+ pencil-context.cpp
+ persp3d-reference.cpp
+ persp3d.cpp
+ perspective-line.cpp
+ preferences.cpp
+ prefix.cpp
+ print.cpp
+ profile-manager.cpp
+ proj_pt.cpp
+ rdf.cpp
+ rect-context.cpp
+ removeoverlap.cpp
+ resource-manager.cpp
+ rubberband.cpp
+ satisfied-guide-cns.cpp
+ selcue.cpp
+ select-context.cpp
+ selection-chemistry.cpp
+ selection-describer.cpp
+ selection.cpp
+ seltrans-handles.cpp
+ seltrans.cpp
+ shape-editor.cpp
+ shortcuts.cpp
+ snap-preferences.cpp
+ snap.cpp
+ snapped-curve.cpp
+ snapped-line.cpp
+ snapped-point.cpp
+ snapper.cpp
+ spray-context.cpp
+ star-context.cpp
+ style.cpp
+ svg-view-widget.cpp
+ svg-view.cpp
+ text-chemistry.cpp
+ text-context.cpp
+ text-editing.cpp
+ tools-switch.cpp
+ transf_mat_3x4.cpp
+ tweak-context.cpp
+ unclump.cpp
+ unicoderange.cpp
+ uri-references.cpp
+ uri.cpp
+ vanishing-point.cpp
+ verbs.cpp
+ version.cpp
+ zoom-context.cpp
+
+
+ # -------
+ # Headers
+ MultiPrinter.h
+ PylogFormatter.h
+ TRPIFormatter.h
+ approx-equal.h
+ arc-context.h
+ attributes-test.h
+ attributes.h
+ axis-manip.h
+ bad-uri-exception.h
+ box3d-context.h
+ box3d-side.h
+ box3d.h
+ color-profile-fns.h
+ color-profile-test.h
+ color-profile.h
+ color-rgba.h
+ color.h
+ common-context.h
+ composite-undo-stack-observer.h
+ conditions.h
+ conn-avoid-ref.h
+ connection-points.h
+ connection-pool.h
+ connector-context.h
+ console-output-undo-observer.h
+ context-fns.h
+ decimal-round.h
+ desktop-events.h
+ desktop-handles.h
+ desktop-style.h
+ desktop.h
+ device-manager.h
+ dir-util-test.h
+ dir-util.h
+ document-private.h
+ document-subset.h
+ document-undo.h
+ document.h
+ draw-anchor.h
+ draw-context.h
+ dropper-context.h
+ dyna-draw-context.h
+ ege-adjustment-action.h
+ ege-color-prof-tracker.h
+ ege-output-action.h
+ ege-select-one-action.h
+ enums.h
+ eraser-context.h
+ event-context.h
+ event-log.h
+ event.h
+ extract-uri-test.h
+ extract-uri.h
+ file.h
+ fill-or-stroke.h
+ filter-chemistry.h
+ filter-enums.h
+ flood-context.h
+ forward.h
+ gc-alloc.h
+ gc-allocator.h
+ gc-anchored.h
+ gc-core.h
+ gc-finalized.h
+ gc-managed.h
+ gc-soft-ptr.h
+ gradient-chemistry.h
+ gradient-context.h
+ gradient-drag.h
+ graphlayout.h
+ guide-snapper.h
+ help.h
+ helper-fns.h
+ icon-size.h
+ id-clash.h
+ ige-mac-menu.h
+ ink-action.h
+ ink-comboboxentry-action.h
+ inkscape-private.h
+ inkscape-version.h
+ inkscape.h
+ interface.h
+ isinf.h
+ isnormal.h
+ knot-enums.h
+ knot-holder-entity.h
+ knot.h
+ knotholder.h
+ layer-fns.h
+ layer-manager.h
+ line-geometry.h
+ line-snapper.h
+ lpe-tool-context.h
+ macros.h
+ main-cmdlineact.h
+ marker-test.h
+ marker.h
+ measure-context.h
+ media.h
+ memeq.h
+ menus-skeleton.h
+ message-context.h
+ message-stack.h
+ message.h
+ mod360-test.h
+ mod360.h
+ modifier-fns.h
+ number-opt-number.h
+ object-edit.h
+ object-hierarchy.h
+ object-snapper.h
+ path-chemistry.h
+ path-prefix.h
+ pen-context.h
+ pencil-context.h
+ persp3d-reference.h
+ persp3d.h
+ perspective-line.h
+ preferences-skeleton.h
+ preferences-test.h
+ preferences.h
+ prefix.h
+ print.h
+ profile-manager.h
+ proj_pt.h
+ rdf.h
+ rect-context.h
+ registrytool.h
+ remove-last.h
+ removeoverlap.h
+ require-config.h
+ resource-manager.h
+ round-test.h
+ round.h
+ rubberband.h
+ satisfied-guide-cns.h
+ selcue.h
+ select-context.h
+ selection-chemistry.h
+ selection-describer.h
+ selection.h
+ seltrans-handles.h
+ seltrans.h
+ shape-editor.h
+ shortcuts.h
+ snap-candidate.h
+ snap-enums.h
+ snap-preferences.h
+ snap.h
+ snapped-curve.h
+ snapped-line.h
+ snapped-point.h
+ snapper.h
+ spiral-context.h
+ splivarot.h
+ spray-context.h
+ star-context.h
+ streq.h
+ strneq.h
+ style-test.h
+ style.h
+ svg-profile.h
+ svg-view-widget.h
+ svg-view.h
+ syseq.h
+ test-helpers.h
+ text-chemistry.h
+ text-context.h
+ text-editing.h
+ text-tag-attributes.h
+ tools-switch.h
+ transf_mat_3x4.h
+ tweak-context.h
+ unclump.h
+ undo-stack-observer.h
+ unicoderange.h
+ unit-constants.h
+ uri-references.h
+ uri.h
+ vanishing-point.h
+ verbs-test.h
+ verbs.h
+ version.h
+ zoom-context.h
+)
+
+if(WIN32)
+ list(APPEND inkscape_SRC
+ registrytool.cpp
+ #deptool.cpp
+ winmain.cpp
+ )
+endif()
+
+
+# -----------------------------------------------------------------------------
+# Generate version file
+# -----------------------------------------------------------------------------
+
+# a custom target that is always built
+add_custom_target(
+ inkscape_version ALL
+ DEPENDS ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp)
+
+# creates inkscape-version.cpp using cmake script
+add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
+ COMMAND ${CMAKE_COMMAND}
+ -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
+ -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR}
+ -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake)
+
+# buildinfo.h is a generated file
+set_source_files_properties(
+ ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
+ PROPERTIES GENERATED TRUE)
+
+list(APPEND inkscape_SRC
+ ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
+)
+
+
+# -----------------------------------------------------------------------------
+# Load in subdirectories
+# -----------------------------------------------------------------------------
+
+# All folders for internal inkscape
+# these call add_inkscape_source
+add_subdirectory(bind)
+add_subdirectory(debug)
+add_subdirectory(dialogs)
+add_subdirectory(display)
+add_subdirectory(dom)
+add_subdirectory(extension)
+add_subdirectory(filters)
+add_subdirectory(helper)
+add_subdirectory(io)
+add_subdirectory(live_effects)
+add_subdirectory(svg)
+add_subdirectory(trace)
+add_subdirectory(ui)
+add_subdirectory(util)
+add_subdirectory(widgets)
+add_subdirectory(xml)
+add_subdirectory(2geom)
+
+
+# Directories containing lists files that describe building internal libraries
+add_subdirectory(libavoid)
+add_subdirectory(libcola)
+add_subdirectory(libcroco)
+add_subdirectory(libgdl)
+add_subdirectory(libvpsc)
+add_subdirectory(livarot)
+add_subdirectory(libnr)
+add_subdirectory(libnrtype)
+
+
+get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC)
+
+set(inkscape_SRC
+ ${inkscape_global_SRC}
+ ${inkscape_SRC}
+)
+
+# -----------------------------------------------------------------------------
+# Setup the executable
+# -----------------------------------------------------------------------------
+add_inkscape_lib(sp_LIB "${sp_SRC}")
+add_inkscape_lib(inkscape_LIB "${inkscape_SRC}")
+
+# make executable for INKSCAPE
+add_executable(inkscape ${main_SRC})
+
+add_dependencies(inkscape inkscape_version)
+
+target_link_libraries(inkscape
+ # order from automake
+ sp_LIB
+ inkscape_LIB
+ sp_LIB # annoying, we need both!
+
+ nr_LIB
+ nrtype_LIB
+
+ dom_LIB
+ croco_LIB
+ avoid_LIB
+ gdl_LIB
+ cola_LIB
+ vpsc_LIB
+ livarot_LIB
+ 2geom_LIB
+
+ ${INKSCAPE_LIBS}
+)
+
+# TODO
+# make executable for INKVIEW
+#add_executable(inkview inkview.cpp)
+# ...
+
diff --git a/src/Makefile.am b/src/Makefile.am
index 40ecc1ec7..7925dcd7e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -118,8 +118,6 @@ include extension/script/Makefile_insert
include filters/Makefile_insert
include helper/Makefile_insert
include io/Makefile_insert
-#include pedro/Makefile_insert
-#include jabber_whiteboard/Makefile_insert
include libcroco/Makefile_insert
include libgdl/Makefile_insert
include libnr/Makefile_insert
diff --git a/src/arc-context.cpp b/src/arc-context.cpp
index 76b064f06..6e5b935f1 100644
--- a/src/arc-context.cpp
+++ b/src/arc-context.cpp
@@ -63,7 +63,7 @@ static void sp_arc_cancel(SPArcContext *ec);
static SPEventContextClass *parent_class;
-GtkType sp_arc_context_get_type()
+GType sp_arc_context_get_type()
{
static GType type = 0;
if (!type) {
diff --git a/src/arc-context.h b/src/arc-context.h
index ddce10801..46a6e1dce 100644
--- a/src/arc-context.h
+++ b/src/arc-context.h
@@ -45,7 +45,7 @@ struct SPArcContextClass {
/* Standard Gtk function */
-GtkType sp_arc_context_get_type(void);
+GType sp_arc_context_get_type(void);
#endif /* !SEEN_ARC_CONTEXT_H */
diff --git a/src/attributes-test.h b/src/attributes-test.h
index 14696b845..dee29975e 100644
--- a/src/attributes-test.h
+++ b/src/attributes-test.h
@@ -349,11 +349,13 @@ struct {char const *attr; bool supported;} const all_attrs[] = {
{"inkscape:snap-global", true},
{"inkscape:snap-bbox", true},
{"inkscape:snap-nodes", true},
+ {"inkscape:snap-others", true},
{"inkscape:snap-from-guide", true},
{"inkscape:snap-center", true},
{"inkscape:snap-smooth-nodes", true},
{"inkscape:snap-midpoints", true},
{"inkscape:snap-object-midpoints", true},
+ {"inkscape:snap-text-baseline", true},
{"inkscape:snap-bbox-edge-midpoints", true},
{"inkscape:snap-bbox-midpoints", true},
//{"inkscape:snap-intersection-grid-guide", true},
diff --git a/src/attributes.cpp b/src/attributes.cpp
index 118a90482..47b261038 100644
--- a/src/attributes.cpp
+++ b/src/attributes.cpp
@@ -94,6 +94,7 @@ static SPStyleProp const props[] = {
{SP_ATTR_INKSCAPE_SNAP_GLOBAL, "inkscape:snap-global"},
{SP_ATTR_INKSCAPE_SNAP_BBOX, "inkscape:snap-bbox"},
{SP_ATTR_INKSCAPE_SNAP_NODES, "inkscape:snap-nodes"},
+ {SP_ATTR_INKSCAPE_SNAP_OTHERS, "inkscape:snap-others"},
{SP_ATTR_INKSCAPE_SNAP_FROM_GUIDE, "inkscape:snap-from-guide"},
{SP_ATTR_INKSCAPE_SNAP_CENTER, "inkscape:snap-center"},
{SP_ATTR_INKSCAPE_SNAP_GRIDS, "inkscape:snap-grids"},
@@ -101,6 +102,7 @@ static SPStyleProp const props[] = {
{SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES, "inkscape:snap-smooth-nodes"},
{SP_ATTR_INKSCAPE_SNAP_LINE_MIDPOINTS, "inkscape:snap-midpoints"},
{SP_ATTR_INKSCAPE_SNAP_OBJECT_MIDPOINTS, "inkscape:snap-object-midpoints"},
+ {SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE, "inkscape:snap-text-baseline"},
{SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE_MIDPOINTS, "inkscape:snap-bbox-edge-midpoints"},
{SP_ATTR_INKSCAPE_SNAP_BBOX_MIDPOINTS, "inkscape:snap-bbox-midpoints"},
{SP_ATTR_INKSCAPE_SNAP_INTERS_PATHS, "inkscape:snap-intersection-paths"},
@@ -495,6 +497,7 @@ sp_attribute_lookup(gchar const *key)
propdict = g_hash_table_new(g_str_hash, g_str_equal);
for (i = 1; i < n_attrs; i++) {
g_assert(props[i].code == static_cast< gint >(i) );
+ // If this g_assert fails, then the sort order of SPAttributeEnum does not match the order in props[]!
g_hash_table_insert(propdict,
const_cast<void *>(static_cast<void const *>(props[i].name)),
GINT_TO_POINTER(props[i].code));
diff --git a/src/attributes.h b/src/attributes.h
index 3755268d0..2dec8b351 100644
--- a/src/attributes.h
+++ b/src/attributes.h
@@ -94,6 +94,7 @@ enum SPAttributeEnum {
SP_ATTR_INKSCAPE_SNAP_GLOBAL,
SP_ATTR_INKSCAPE_SNAP_BBOX,
SP_ATTR_INKSCAPE_SNAP_NODES,
+ SP_ATTR_INKSCAPE_SNAP_OTHERS,
SP_ATTR_INKSCAPE_SNAP_FROM_GUIDE,
SP_ATTR_INKSCAPE_SNAP_CENTER,
SP_ATTR_INKSCAPE_SNAP_GRIDS,
@@ -101,6 +102,7 @@ enum SPAttributeEnum {
SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES,
SP_ATTR_INKSCAPE_SNAP_LINE_MIDPOINTS,
SP_ATTR_INKSCAPE_SNAP_OBJECT_MIDPOINTS,
+ SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE,
SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE_MIDPOINTS,
SP_ATTR_INKSCAPE_SNAP_BBOX_MIDPOINTS,
//SP_ATTR_INKSCAPE_SNAP_INTERS_GRIDGUIDE,
diff --git a/src/box3d-context.cpp b/src/box3d-context.cpp
index fad7c0761..87b182d10 100644
--- a/src/box3d-context.cpp
+++ b/src/box3d-context.cpp
@@ -66,7 +66,7 @@ static void sp_box3d_finish(Box3DContext *bc);
static SPEventContextClass *parent_class;
-GtkType sp_box3d_context_get_type()
+GType sp_box3d_context_get_type()
{
static GType type = 0;
if (!type) {
diff --git a/src/box3d-context.h b/src/box3d-context.h
index 74d244423..ccf0ef712 100644
--- a/src/box3d-context.h
+++ b/src/box3d-context.h
@@ -66,7 +66,7 @@ struct Box3DContextClass {
/* Standard Gtk function */
-GtkType sp_box3d_context_get_type (void);
+GType sp_box3d_context_get_type (void);
void sp_box3d_context_update_lines(SPEventContext *ec);
diff --git a/src/box3d.cpp b/src/box3d.cpp
index ac5814e4d..1a9c26b26 100644
--- a/src/box3d.cpp
+++ b/src/box3d.cpp
@@ -426,6 +426,9 @@ box3d_get_center_screen (SPBox3D *box) {
static double remember_snap_threshold = 30;
static guint remember_snap_index = 0;
+// constant for sizing the array of points to be considered:
+static const int MAX_POINT_COUNT = 4;
+
static Proj::Pt3
box3d_snap (SPBox3D *box, int id, Proj::Pt3 const &pt_proj, Proj::Pt3 const &start_pt) {
double z_coord = start_pt[Proj::Z];
@@ -455,7 +458,7 @@ box3d_snap (SPBox3D *box, int id, Proj::Pt3 const &pt_proj, Proj::Pt3 const &sta
Box3D::Line diag2(A, E); // diag2 is only taken into account if id equals -1, i.e., if we are snapping the center
int num_snap_lines = (id != -1) ? 3 : 4;
- Geom::Point snap_pts[num_snap_lines];
+ Geom::Point snap_pts[MAX_POINT_COUNT];
snap_pts[0] = pl1.closest_to (pt);
snap_pts[1] = pl2.closest_to (pt);
@@ -467,7 +470,7 @@ box3d_snap (SPBox3D *box, int id, Proj::Pt3 const &pt_proj, Proj::Pt3 const &sta
gdouble const zoom = inkscape_active_desktop()->current_zoom();
// determine the distances to all potential snapping points
- double snap_dists[num_snap_lines];
+ double snap_dists[MAX_POINT_COUNT];
for (int i = 0; i < num_snap_lines; ++i) {
snap_dists[i] = Geom::L2 (snap_pts[i] - pt) * zoom;
}
diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp
index 4c6139672..fad11bb89 100644
--- a/src/conn-avoid-ref.cpp
+++ b/src/conn-avoid-ref.cpp
@@ -491,6 +491,7 @@ static std::vector<Geom::Point> approxItemWithPoints(SPItem const *item, const G
}
else if (SP_IS_SHAPE(item))
{
+ SP_SHAPE(item)->setShape();
SPCurve* item_curve = SP_SHAPE(item)->getCurve();
// make sure it has an associated curve
if (item_curve)
diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp
index df1bf0c7a..b886e884e 100644
--- a/src/desktop-events.cpp
+++ b/src/desktop-events.cpp
@@ -231,7 +231,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
gint ret = FALSE;
SPGuide *guide = SP_GUIDE(data);
- SPDesktop *desktop = static_cast<SPDesktop*>(gtk_object_get_data(GTK_OBJECT(item->canvas), "SPDesktop"));
+ SPDesktop *desktop = static_cast<SPDesktop*>(g_object_get_data(G_OBJECT(item->canvas), "SPDesktop"));
switch (event->type) {
case GDK_2BUTTON_PRESS:
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 181a19e1b..4ff2716ca 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -649,7 +649,7 @@ SPDesktop::change_document (SPDocument *theDocument)
* Make desktop switch event contexts.
*/
void
-SPDesktop::set_event_context (GtkType type, const gchar *config)
+SPDesktop::set_event_context (GType type, const gchar *config)
{
SPEventContext *ec;
while (event_context) {
@@ -680,7 +680,7 @@ SPDesktop::set_event_context (GtkType type, const gchar *config)
* Push event context onto desktop's context stack.
*/
void
-SPDesktop::push_event_context (GtkType type, const gchar *config, unsigned int key)
+SPDesktop::push_event_context (GType type, const gchar *config, unsigned int key)
{
SPEventContext *ref, *ec;
diff --git a/src/desktop.h b/src/desktop.h
index 2581f2859..ed0a99dea 100644
--- a/src/desktop.h
+++ b/src/desktop.h
@@ -240,8 +240,8 @@ public:
void activate_guides (bool activate);
void change_document (SPDocument *document);
- void set_event_context (GtkType type, const gchar *config);
- void push_event_context (GtkType type, const gchar *config, unsigned int key);
+ void set_event_context (GType type, const gchar *config);
+ void push_event_context (GType type, const gchar *config, unsigned int key);
void set_coordinate_status (Geom::Point p);
SPItem *getItemFromListAtPointBottom(const GSList *list, Geom::Point const p) const;
diff --git a/src/dialogs/clonetiler.cpp b/src/dialogs/clonetiler.cpp
index b9e490dcf..f8553f2aa 100644
--- a/src/dialogs/clonetiler.cpp
+++ b/src/dialogs/clonetiler.cpp
@@ -1557,10 +1557,10 @@ static GtkWidget * clonetiler_spinbox(const char *tip, const char *attr, double
return hb;
}
-static void clonetiler_symgroup_changed(GtkMenuItem */*item*/, gpointer data)
+static void clonetiler_symgroup_changed(GtkComboBox *cb, gpointer /*data*/)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- gint group_new = GPOINTER_TO_INT (data);
+ gint group_new = gtk_combo_box_get_active (cb);
prefs->setInt(prefs_path + "symmetrygroup", group_new);
}
@@ -1589,21 +1589,21 @@ static void clonetiler_reset_recursive(GtkWidget *w)
{
if (w && GTK_IS_OBJECT(w)) {
{
- int r = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT(w), "zeroable"));
+ int r = GPOINTER_TO_INT (g_object_get_data(G_OBJECT(w), "zeroable"));
if (r && GTK_IS_SPIN_BUTTON(w)) { // spinbutton
GtkAdjustment *a = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(w));
gtk_adjustment_set_value (a, 0);
}
}
{
- int r = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT(w), "oneable"));
+ int r = GPOINTER_TO_INT (g_object_get_data(G_OBJECT(w), "oneable"));
if (r && GTK_IS_SPIN_BUTTON(w)) { // spinbutton
GtkAdjustment *a = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(w));
gtk_adjustment_set_value (a, 1);
}
}
{
- int r = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT(w), "uncheckable"));
+ int r = GPOINTER_TO_INT (g_object_get_data(G_OBJECT(w), "uncheckable"));
if (r && GTK_IS_TOGGLE_BUTTON(w)) { // checkbox
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), FALSE);
}
@@ -1812,21 +1812,14 @@ void clonetiler_dialog(void)
// Symmetry
{
GtkWidget *vb = clonetiler_new_tab (nb, _("_Symmetry"));
-
- GtkWidget *om = gtk_option_menu_new ();
- /* TRANSLATORS: For the following 17 symmetry groups, see
+
+ /* TRANSLATORS: For the following 17 symmetry groups, see
* http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples);
* http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or
* http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary).
*/
- gtk_widget_set_tooltip_text (om, _("Select one of the 17 symmetry groups for the tiling"));
- gtk_box_pack_start (GTK_BOX (vb), om, FALSE, FALSE, SB_MARGIN);
-
- GtkWidget *m = gtk_menu_new ();
- int current = prefs->getInt(prefs_path + "symmetrygroup", 0);
-
struct SymGroups {
- int group;
+ gint group;
gchar const *label;
} const sym_groups[] = {
// TRANSLATORS: "translation" means "shift" / "displacement" here.
@@ -1851,25 +1844,40 @@ void clonetiler_dialog(void)
{TILE_P6M, _("<b>P6M</b>: reflection + 60&#176; rotation")},
};
- for (unsigned j = 0; j < G_N_ELEMENTS(sym_groups); ++j) {
+ gint current = prefs->getInt(prefs_path + "symmetrygroup", 0);
+
+ // Create a list structure containing all the data to be displayed in
+ // the symmetry group combo box.
+ GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
+ GtkTreeIter iter;
+
+ for (unsigned j = 0; j < G_N_ELEMENTS(sym_groups); ++j) {
SymGroups const &sg = sym_groups[j];
- GtkWidget *l = gtk_label_new ("");
- gtk_label_set_markup (GTK_LABEL(l), sg.label);
- gtk_misc_set_alignment (GTK_MISC(l), 0, 0.5);
+ // Add the description of the symgroup to a new row
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ 0, sg.label,
+ -1);
+ }
- GtkWidget *item = gtk_menu_item_new ();
- gtk_container_add (GTK_CONTAINER (item), l);
+ // Add a new combo box widget with the list of symmetry groups to the vbox
+ GtkWidget *combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ gtk_widget_set_tooltip_text (combo, _("Select one of the 17 symmetry groups for the tiling"));
+ gtk_box_pack_start (GTK_BOX (vb), combo, FALSE, FALSE, SB_MARGIN);
- g_signal_connect ( G_OBJECT (item), "activate",
- G_CALLBACK (clonetiler_symgroup_changed),
- GINT_TO_POINTER (sg.group) );
+ // Specify the rendering of data from the list in a combo box cell
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
+ "markup", 0,
+ NULL);
- gtk_menu_append (GTK_MENU (m), item);
- }
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), current);
- gtk_option_menu_set_menu (GTK_OPTION_MENU (om), m);
- gtk_option_menu_set_history ( GTK_OPTION_MENU (om), current);
+ g_signal_connect (G_OBJECT (combo), "changed",
+ G_CALLBACK (clonetiler_symgroup_changed),
+ NULL);
}
table_row_labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
@@ -2515,7 +2523,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_COLOR);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("Opacity"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Opacity"));
gtk_widget_set_tooltip_text (radio, _("Pick the total accumulated opacity"));
clonetiler_table_attach (table, radio, 0.0, 2, 1);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2523,7 +2531,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_OPACITY);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("R"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("R"));
gtk_widget_set_tooltip_text (radio, _("Pick the Red component of the color"));
clonetiler_table_attach (table, radio, 0.0, 1, 2);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2531,7 +2539,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_R);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("G"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("G"));
gtk_widget_set_tooltip_text (radio, _("Pick the Green component of the color"));
clonetiler_table_attach (table, radio, 0.0, 2, 2);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2539,7 +2547,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_G);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("B"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("B"));
gtk_widget_set_tooltip_text (radio, _("Pick the Blue component of the color"));
clonetiler_table_attach (table, radio, 0.0, 3, 2);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2547,7 +2555,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_B);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color hue", "H"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color hue", "H"));
gtk_widget_set_tooltip_text (radio, _("Pick the hue of the color"));
clonetiler_table_attach (table, radio, 0.0, 1, 3);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2555,7 +2563,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_H);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color saturation", "S"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color saturation", "S"));
gtk_widget_set_tooltip_text (radio, _("Pick the saturation of the color"));
clonetiler_table_attach (table, radio, 0.0, 2, 3);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2563,7 +2571,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_S);
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color lightness", "L"));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color lightness", "L"));
gtk_widget_set_tooltip_text (radio, _("Pick the lightness of the color"));
clonetiler_table_attach (table, radio, 0.0, 3, 3);
g_signal_connect (G_OBJECT (radio), "toggled",
@@ -2786,7 +2794,7 @@ void clonetiler_dialog(void)
gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (radio));
}
{
- radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("Width, height: "));
+ radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Width, height: "));
gtk_widget_set_tooltip_text (radio, _("Fill the specified width and height with the tiling"));
clonetiler_table_attach (table, radio, 0.0, 2, 1);
g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_fill), (gpointer) dlg);
diff --git a/src/dialogs/export.cpp b/src/dialogs/export.cpp
index b076c0f96..77447b658 100644
--- a/src/dialogs/export.cpp
+++ b/src/dialogs/export.cpp
@@ -217,8 +217,8 @@ sp_export_spinbutton_new ( gchar const *key, float val, float min, float max,
GCallback cb, GtkWidget *dlg )
{
GtkObject *adj = gtk_adjustment_new( val, min, max, step, page, 0 );
- gtk_object_set_data( adj, "key", const_cast<gchar *>(key) );
- gtk_object_set_data( GTK_OBJECT (dlg), (const gchar *)key, adj );
+ g_object_set_data( G_OBJECT (adj), "key", const_cast<gchar *>(key) );
+ g_object_set_data( G_OBJECT (dlg), (const gchar *)key, adj );
if (us) {
sp_unit_selector_add_adjustment ( SP_UNIT_SELECTOR (us),
@@ -289,7 +289,7 @@ sp_export_dialog_area_box (GtkWidget * dlg)
unitbox->pack_end(*us, false, false, 0);
Gtk::Label* l = new Gtk::Label(_("Units:"));
unitbox->pack_end(*l, false, false, 3);
- gtk_object_set_data (GTK_OBJECT (dlg), "units", us->gobj());
+ g_object_set_data (G_OBJECT (dlg), "units", us->gobj());
Gtk::HBox* togglebox = new Gtk::HBox(true, 0);
@@ -297,7 +297,7 @@ sp_export_dialog_area_box (GtkWidget * dlg)
for (int i = 0; i < SELECTION_NUMBER_OF; i++) {
b = new Gtk::ToggleButton(_(selection_labels[i]), true);
b->set_data("key", GINT_TO_POINTER(i));
- gtk_object_set_data (GTK_OBJECT (dlg), selection_names[i], b->gobj());
+ g_object_set_data (G_OBJECT (dlg), selection_names[i], b->gobj());
togglebox->pack_start(*b, false, true, 0);
g_signal_connect ( G_OBJECT (b->gobj()), "clicked",
G_CALLBACK (sp_export_area_toggled), dlg );
@@ -388,7 +388,7 @@ gchar* create_filepath_from_id (const gchar *id, const gchar *file_entry_text) {
static void
batch_export_clicked (GtkWidget *widget, GtkObject *base)
{
- Gtk::Widget *vb_singleexport = (Gtk::Widget *)gtk_object_get_data(base, "vb_singleexport");
+ Gtk::Widget *vb_singleexport = (Gtk::Widget *)g_object_get_data(G_OBJECT(base), "vb_singleexport");
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) {
vb_singleexport->set_sensitive(false);
} else {
@@ -457,7 +457,7 @@ sp_export_dialog (void)
Gtk::VBox *vb_singleexport = new Gtk::VBox(false, 0);
vb_singleexport->set_border_width(0);
vb->pack_start(*vb_singleexport);
- gtk_object_set_data(GTK_OBJECT(dlg), "vb_singleexport", vb_singleexport);
+ g_object_set_data(G_OBJECT(dlg), "vb_singleexport", vb_singleexport);
/* Export area frame */
{
@@ -602,8 +602,8 @@ sp_export_dialog (void)
hb->pack_start (*fe, true, true, 0);
file_box->add(*hb);
- gtk_object_set_data (GTK_OBJECT (dlg), "filename", fe->gobj());
- gtk_object_set_data (GTK_OBJECT (dlg), "filename-modified", (gpointer)FALSE);
+ g_object_set_data (G_OBJECT (dlg), "filename", fe->gobj());
+ g_object_set_data (G_OBJECT (dlg), "filename-modified", (gpointer)FALSE);
original_name = g_strdup(fe->get_text().c_str());
// pressing enter in the filename field is the same as clicking export:
g_signal_connect ( G_OBJECT (fe->gobj()), "activate",
@@ -621,7 +621,7 @@ sp_export_dialog (void)
Gtk::HBox* batch_box = new Gtk::HBox(FALSE, 5);
GtkWidget *be = gtk_check_button_new_with_mnemonic(_("B_atch export all selected objects"));
gtk_widget_set_sensitive(GTK_WIDGET(be), TRUE);
- gtk_object_set_data(GTK_OBJECT(dlg), "batch_checkbox", be);
+ g_object_set_data(G_OBJECT(dlg), "batch_checkbox", be);
batch_box->pack_start(*Glib::wrap(be), false, false);
gtk_widget_set_tooltip_text(be, _("Export each selected object into its own PNG file, using export hints if any (caution, overwrites without asking!)"));
batch_box->show_all();
@@ -633,7 +633,7 @@ sp_export_dialog (void)
Gtk::HBox* hide_box = new Gtk::HBox(FALSE, 5);
GtkWidget *he = gtk_check_button_new_with_mnemonic(_("Hide a_ll except selected"));
gtk_widget_set_sensitive(GTK_WIDGET(he), TRUE);
- gtk_object_set_data(GTK_OBJECT(dlg), "hide_checkbox", he);
+ g_object_set_data(G_OBJECT(dlg), "hide_checkbox", he);
hide_box->pack_start(*Glib::wrap(he), false, false);
gtk_widget_set_tooltip_text(he, _("In the exported image, hide all objects except those that are selected"));
hide_box->show_all();
@@ -678,8 +678,8 @@ static void
sp_export_update_checkbuttons (GtkObject *base)
{
gint num = g_slist_length((GSList *) sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList());
- GtkWidget *be = (GtkWidget *)gtk_object_get_data(base, "batch_checkbox");
- GtkWidget *he = (GtkWidget *)gtk_object_get_data(base, "hide_checkbox");
+ GtkWidget *be = (GtkWidget *)g_object_get_data(G_OBJECT(base), "batch_checkbox");
+ GtkWidget *he = (GtkWidget *)g_object_get_data(G_OBJECT(base), "hide_checkbox");
if (num >= 2) {
gtk_widget_set_sensitive (be, true);
gtk_button_set_label (GTK_BUTTON(be), g_strdup_printf (ngettext("B_atch export %d selected object","B_atch export %d selected objects",num), num));
@@ -744,25 +744,25 @@ sp_export_selection_changed ( Inkscape::Application *inkscape,
GtkObject *base )
{
selection_type current_key;
- current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
+ current_key = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
if ((current_key == SELECTION_DRAWING || current_key == SELECTION_PAGE) &&
(sp_desktop_selection(SP_ACTIVE_DESKTOP))->isEmpty() == false &&
was_empty) {
gtk_toggle_button_set_active
- ( GTK_TOGGLE_BUTTON ( gtk_object_get_data (base, selection_names[SELECTION_SELECTION])),
+ ( GTK_TOGGLE_BUTTON ( g_object_get_data (G_OBJECT(base), selection_names[SELECTION_SELECTION])),
TRUE );
}
was_empty = (sp_desktop_selection(SP_ACTIVE_DESKTOP))->isEmpty();
- current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
+ current_key = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
if (inkscape &&
SP_IS_INKSCAPE (inkscape) &&
selection &&
SELECTION_CUSTOM != current_key) {
GtkToggleButton * button;
- button = (GtkToggleButton *)gtk_object_get_data(base, selection_names[current_key]);
+ button = (GtkToggleButton *)g_object_get_data(G_OBJECT(base), selection_names[current_key]);
sp_export_area_toggled(button, base);
}
@@ -776,7 +776,7 @@ sp_export_selection_modified ( Inkscape::Application */*inkscape*/,
GtkObject *base )
{
selection_type current_key;
- current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
+ current_key = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
switch (current_key) {
case SELECTION_DRAWING:
@@ -811,12 +811,12 @@ sp_export_selection_modified ( Inkscape::Application */*inkscape*/,
static void
sp_export_area_toggled (GtkToggleButton *tb, GtkObject *base)
{
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
selection_type key, old_key;
- key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data (GTK_OBJECT (tb), "key")));
- old_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
+ key = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT (tb), "key")));
+ old_key = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
/* Ignore all "turned off" events unless we're the only active button */
if (!gtk_toggle_button_get_active (tb) ) {
@@ -831,11 +831,11 @@ sp_export_area_toggled (GtkToggleButton *tb, GtkObject *base)
}
/* Turn off the currently active button unless it's us */
- gtk_object_set_data(GTK_OBJECT(base), "selection-type", (gpointer)key);
+ g_object_set_data(G_OBJECT(base), "selection-type", (gpointer)key);
if (old_key != key) {
gtk_toggle_button_set_active
- ( GTK_TOGGLE_BUTTON ( gtk_object_get_data (base, selection_names[old_key])),
+ ( GTK_TOGGLE_BUTTON ( g_object_get_data (G_OBJECT(base), selection_names[old_key])),
FALSE );
}
@@ -898,12 +898,12 @@ sp_export_area_toggled (GtkToggleButton *tb, GtkObject *base)
} // end of if ( SP_ACTIVE_DESKTOP )
- if (SP_ACTIVE_DESKTOP && !gtk_object_get_data(GTK_OBJECT(base), "filename-modified")) {
+ if (SP_ACTIVE_DESKTOP && !g_object_get_data(G_OBJECT(base), "filename-modified")) {
GtkWidget * file_entry;
const gchar * filename = NULL;
float xdpi = 0.0, ydpi = 0.0;
- file_entry = (GtkWidget *)gtk_object_get_data (base, "filename");
+ file_entry = (GtkWidget *)g_object_get_data (G_OBJECT(base), "filename");
switch (key) {
case SELECTION_PAGE:
@@ -1089,8 +1089,8 @@ sp_export_export_clicked (GtkButton */*button*/, GtkObject *base)
SPNamedView *nv = sp_desktop_namedview(SP_ACTIVE_DESKTOP);
SPDocument *doc = sp_desktop_document (SP_ACTIVE_DESKTOP);
- GtkWidget *be = (GtkWidget *)gtk_object_get_data(base, "batch_checkbox");
- GtkWidget *he = (GtkWidget *)gtk_object_get_data(base, "hide_checkbox");
+ GtkWidget *be = (GtkWidget *)g_object_get_data(G_OBJECT(base), "batch_checkbox");
+ GtkWidget *he = (GtkWidget *)g_object_get_data(G_OBJECT(base), "hide_checkbox");
bool hide = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (he));
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (be))) {
// Batch export of selected objects
@@ -1162,7 +1162,7 @@ sp_export_export_clicked (GtkButton */*button*/, GtkObject *base)
} else {
- GtkWidget *fe = (GtkWidget *)gtk_object_get_data(base, "filename");
+ GtkWidget *fe = (GtkWidget *)g_object_get_data(G_OBJECT(base), "filename");
gchar const *filename = gtk_entry_get_text(GTK_ENTRY(fe));
float const x0 = sp_export_value_get_px(base, "x0");
@@ -1232,13 +1232,13 @@ sp_export_export_clicked (GtkButton */*button*/, GtkObject *base)
selections and all that */
g_free(original_name);
original_name = g_strdup(filename_ext);
- gtk_object_set_data (GTK_OBJECT (base), "filename-modified", (gpointer)FALSE);
+ g_object_set_data (G_OBJECT (base), "filename-modified", (gpointer)FALSE);
gtk_widget_destroy (prog_dlg);
g_object_set_data (G_OBJECT (base), "cancel", (gpointer) 0);
/* Setup the values in the document */
- switch ((selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")))) {
+ switch ((selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")))) {
case SELECTION_PAGE:
case SELECTION_DRAWING: {
SPDocument * doc = SP_ACTIVE_DOCUMENT;
@@ -1475,7 +1475,7 @@ sp_export_detect_size(GtkObject * base) {
Geom::Rect current_bbox(x, y);
//std::cout << "Current " << current_bbox;
- this_test[0] = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
+ this_test[0] = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
for (int i = 0; i < SELECTION_NUMBER_OF; i++) {
this_test[i + 1] = test_order[i];
}
@@ -1538,10 +1538,10 @@ sp_export_detect_size(GtkObject * base) {
/* We're now using a custom size, not a fixed one */
/* printf("Detecting state: %s\n", selection_names[key]); */
- selection_type old = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gtk_object_get_data(base, selection_names[old])), FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gtk_object_get_data(base, selection_names[key])), TRUE);
- gtk_object_set_data(GTK_OBJECT(base), "selection-type", (gpointer)key);
+ selection_type old = (selection_type)(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(base), "selection-type")));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(base), selection_names[old])), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(base), selection_names[key])), TRUE);
+ g_object_set_data(G_OBJECT(base), "selection-type", (gpointer)key);
return;
} /* sp_export_detect_size */
@@ -1552,16 +1552,16 @@ sp_export_area_x_value_changed (GtkAdjustment *adj, GtkObject *base)
{
float x0, x1, xdpi, width;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units")))
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units")))
{
return;
}
- gtk_object_set_data ( base, "update", GUINT_TO_POINTER (TRUE) );
+ g_object_set_data ( G_OBJECT(base), "update", GUINT_TO_POINTER (TRUE) );
x0 = sp_export_value_get_px (base, "x0");
x1 = sp_export_value_get_px (base, "x1");
@@ -1572,7 +1572,7 @@ sp_export_area_x_value_changed (GtkAdjustment *adj, GtkObject *base)
if (width < SP_EXPORT_MIN_SIZE) {
const gchar *key;
width = SP_EXPORT_MIN_SIZE;
- key = (const gchar *)gtk_object_get_data (GTK_OBJECT (adj), "key");
+ key = (const gchar *)g_object_get_data(G_OBJECT (adj), "key");
if (!strcmp (key, "x0")) {
x1 = x0 + width * DPI_BASE / xdpi;
@@ -1588,7 +1588,7 @@ sp_export_area_x_value_changed (GtkAdjustment *adj, GtkObject *base)
sp_export_detect_size(base);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data ( G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_area_x_value_changed()
@@ -1599,16 +1599,16 @@ sp_export_area_y_value_changed (GtkAdjustment *adj, GtkObject *base)
{
float y0, y1, ydpi, height;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units")))
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units")))
{
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data ( G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
y0 = sp_export_value_get_px (base, "y0");
y1 = sp_export_value_get_px (base, "y1");
@@ -1619,7 +1619,7 @@ sp_export_area_y_value_changed (GtkAdjustment *adj, GtkObject *base)
if (height < SP_EXPORT_MIN_SIZE) {
const gchar *key;
height = SP_EXPORT_MIN_SIZE;
- key = (const gchar *)gtk_object_get_data (GTK_OBJECT (adj), "key");
+ key = (const gchar *)g_object_get_data(G_OBJECT (adj), "key");
if (!strcmp (key, "y0")) {
y1 = y0 + height * DPI_BASE / ydpi;
sp_export_value_set_px (base, "y1", y1);
@@ -1634,7 +1634,7 @@ sp_export_area_y_value_changed (GtkAdjustment *adj, GtkObject *base)
sp_export_detect_size(base);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data ( G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_area_y_value_changed()
@@ -1645,15 +1645,15 @@ sp_export_area_width_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
{
float x0, x1, xdpi, width, bmwidth;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units"))) {
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units"))) {
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data ( G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
x0 = sp_export_value_get_px (base, "x0");
x1 = sp_export_value_get_px (base, "x1");
@@ -1671,7 +1671,7 @@ sp_export_area_width_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
sp_export_value_set_px (base, "x1", x0 + width);
sp_export_value_set (base, "bmwidth", bmwidth);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_area_width_value_changed()
@@ -1683,15 +1683,15 @@ sp_export_area_height_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
float y0, y1, ydpi, height, bmheight;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units"))) {
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units"))) {
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
y0 = sp_export_value_get_px (base, "y0");
y1 = sp_export_value_get_px (base, "y1");
@@ -1708,7 +1708,7 @@ sp_export_area_height_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
sp_export_value_set_px (base, "y1", y0 + height);
sp_export_value_set (base, "bmheight", bmheight);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_area_height_value_changed()
@@ -1765,15 +1765,15 @@ sp_export_bitmap_width_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
{
float x0, x1, bmwidth, xdpi;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units"))) {
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units"))) {
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
x0 = sp_export_value_get_px (base, "x0");
x1 = sp_export_value_get_px (base, "x1");
@@ -1789,7 +1789,7 @@ sp_export_bitmap_width_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
sp_export_set_image_y (base);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_bitmap_width_value_changed()
@@ -1800,15 +1800,15 @@ sp_export_bitmap_height_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
{
float y0, y1, bmheight, xdpi;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units"))) {
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units"))) {
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
y0 = sp_export_value_get_px (base, "y0");
y1 = sp_export_value_get_px (base, "y1");
@@ -1824,7 +1824,7 @@ sp_export_bitmap_height_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
sp_export_set_image_x (base);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_bitmap_width_value_changed()
@@ -1862,15 +1862,15 @@ sp_export_xdpi_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
{
float x0, x1, xdpi, bmwidth;
- if (gtk_object_get_data (base, "update"))
+ if (g_object_get_data (G_OBJECT(base), "update"))
return;
- if (sp_unit_selector_update_test ((SPUnitSelector *)gtk_object_get_data
- (base, "units"))) {
+ if (sp_unit_selector_update_test ((SPUnitSelector *)g_object_get_data
+ (G_OBJECT(base), "units"))) {
return;
}
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE));
x0 = sp_export_value_get_px (base, "x0");
x1 = sp_export_value_get_px (base, "x1");
@@ -1895,7 +1895,7 @@ sp_export_xdpi_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
sp_export_set_image_y (base);
- gtk_object_set_data (base, "update", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE));
return;
} // end of sp_export_xdpi_value_changed()
@@ -1923,15 +1923,15 @@ sp_export_xdpi_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
static void
sp_export_set_area ( GtkObject *base, double x0, double y0, double x1, double y1 )
{
- gtk_object_set_data ( base, "update", GUINT_TO_POINTER (TRUE) );
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (TRUE) );
sp_export_value_set_px (base, "x1", x1);
sp_export_value_set_px (base, "y1", y1);
sp_export_value_set_px (base, "x0", x0);
sp_export_value_set_px (base, "y0", y0);
- gtk_object_set_data ( base, "update", GUINT_TO_POINTER (FALSE) );
+ g_object_set_data (G_OBJECT (base), "update", GUINT_TO_POINTER (FALSE) );
- sp_export_area_x_value_changed ((GtkAdjustment *)gtk_object_get_data (base, "x1"), base);
- sp_export_area_y_value_changed ((GtkAdjustment *)gtk_object_get_data (base, "y1"), base);
+ sp_export_area_x_value_changed ((GtkAdjustment *)g_object_get_data (G_OBJECT(base), "x1"), base);
+ sp_export_area_y_value_changed ((GtkAdjustment *)g_object_get_data (G_OBJECT(base), "y1"), base);
return;
}
@@ -1951,7 +1951,7 @@ sp_export_value_set ( GtkObject *base, const gchar *key, double val )
{
GtkAdjustment *adj;
- adj = (GtkAdjustment *)gtk_object_get_data (base, key);
+ adj = (GtkAdjustment *)g_object_get_data (G_OBJECT(base), key);
gtk_adjustment_set_value (adj, val);
}
@@ -1970,7 +1970,7 @@ sp_export_value_set ( GtkObject *base, const gchar *key, double val )
static void
sp_export_value_set_px (GtkObject *base, const gchar *key, double val)
{
- const SPUnit *unit = sp_unit_selector_get_unit ((SPUnitSelector *)gtk_object_get_data (base, "units") );
+ const SPUnit *unit = sp_unit_selector_get_unit ((SPUnitSelector *)g_object_get_data (G_OBJECT(base), "units") );
sp_export_value_set (base, key, sp_pixels_get_units (val, *unit));
@@ -1991,7 +1991,7 @@ sp_export_value_get ( GtkObject *base, const gchar *key )
{
GtkAdjustment *adj;
- adj = (GtkAdjustment *)gtk_object_get_data (base, key);
+ adj = (GtkAdjustment *)g_object_get_data (G_OBJECT(base), key);
return adj->value;
}
@@ -2012,7 +2012,7 @@ static float
sp_export_value_get_px ( GtkObject *base, const gchar *key )
{
float value = sp_export_value_get(base, key);
- const SPUnit *unit = sp_unit_selector_get_unit ((SPUnitSelector *)gtk_object_get_data (base, "units"));
+ const SPUnit *unit = sp_unit_selector_get_unit ((SPUnitSelector *)g_object_get_data (G_OBJECT(base), "units"));
return sp_units_get_pixels (value, *unit);
} // end of sp_export_value_get_px()
@@ -2037,10 +2037,10 @@ sp_export_filename_modified (GtkObject * object, gpointer data)
GtkWidget * export_dialog = (GtkWidget *)data;
if (!strcmp(original_name, gtk_entry_get_text(GTK_ENTRY(text_entry)))) {
- gtk_object_set_data (GTK_OBJECT (export_dialog), "filename-modified", (gpointer)FALSE);
+ g_object_set_data (G_OBJECT (export_dialog), "filename-modified", (gpointer)FALSE);
// printf("Modified: FALSE\n");
} else {
- gtk_object_set_data (GTK_OBJECT (export_dialog), "filename-modified", (gpointer)TRUE);
+ g_object_set_data (G_OBJECT (export_dialog), "filename-modified", (gpointer)TRUE);
// printf("Modified: TRUE\n");
}
diff --git a/src/dialogs/find.cpp b/src/dialogs/find.cpp
index 62c551523..b30671114 100644
--- a/src/dialogs/find.cpp
+++ b/src/dialogs/find.cpp
@@ -193,7 +193,7 @@ bool item_attr_match(SPItem *item, const gchar *name, bool exact)
GSList *
filter_onefield (GSList *l, GObject *dlg, const gchar *field, bool (*match_function)(SPItem *, const gchar *, bool), bool exact)
{
- GtkWidget *widget = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (dlg), field));
+ GtkWidget *widget = GTK_WIDGET (g_object_get_data(G_OBJECT (dlg), field));
const gchar *text = gtk_entry_get_text (GTK_ENTRY(widget));
if (strlen (text) != 0) {
@@ -215,7 +215,7 @@ filter_onefield (GSList *l, GObject *dlg, const gchar *field, bool (*match_funct
bool
type_checkbox (GtkWidget *widget, const gchar *data)
{
- return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (widget), data)));
+ return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (widget), data)));
}
bool
@@ -260,9 +260,9 @@ item_type_match (SPItem *item, GtkWidget *widget)
GSList *
filter_types (GSList *l, GObject *dlg, bool (*match_function)(SPItem *, GtkWidget *))
{
- GtkWidget *widget = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (dlg), "types"));
+ GtkWidget *widget = GTK_WIDGET (g_object_get_data(G_OBJECT (dlg), "types"));
- GtkWidget *alltypes = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (widget), "all"));
+ GtkWidget *alltypes = GTK_WIDGET (g_object_get_data(G_OBJECT (widget), "all"));
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (alltypes)))
return l;
@@ -341,18 +341,18 @@ void sp_find_dialog_find(GObject *, GObject *dlg)
{
SPDesktop *desktop = SP_ACTIVE_DESKTOP;
- bool hidden = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (dlg), "includehidden")));
- bool locked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (dlg), "includelocked")));
+ bool hidden = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (dlg), "includehidden")));
+ bool locked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (dlg), "includelocked")));
GSList *l = NULL;
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (dlg), "inselection")))) {
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (dlg), "inlayer")))) {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (dlg), "inselection")))) {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (dlg), "inlayer")))) {
l = all_selection_items (desktop->selection, l, desktop->currentLayer(), hidden, locked);
} else {
l = all_selection_items (desktop->selection, l, NULL, hidden, locked);
}
} else {
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (dlg), "inlayer")))) {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (dlg), "inlayer")))) {
l = all_items (desktop->currentLayer(), l, hidden, locked);
} else {
l = all_items(sp_desktop_document(desktop)->getRoot(), l, hidden, locked);
@@ -389,7 +389,7 @@ void sp_find_dialog_find(GObject *, GObject *dlg)
void
sp_find_reset_searchfield (GObject *dlg, const gchar *field)
{
- GtkWidget *widget = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (dlg), field));
+ GtkWidget *widget = GTK_WIDGET (g_object_get_data(G_OBJECT (dlg), field));
gtk_entry_set_text (GTK_ENTRY(widget), "");
}
@@ -402,8 +402,8 @@ sp_find_dialog_reset (GObject *, GObject *dlg)
sp_find_reset_searchfield (dlg, "style");
sp_find_reset_searchfield (dlg, "attr");
- GtkWidget *types = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (dlg), "types"));
- GtkToggleButton *tb = GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (types), "all"));
+ GtkWidget *types = GTK_WIDGET (g_object_get_data(G_OBJECT (dlg), "types"));
+ GtkToggleButton *tb = GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (types), "all"));
gtk_toggle_button_toggled (tb);
gtk_toggle_button_set_active (tb, TRUE);
}
@@ -423,7 +423,7 @@ sp_find_new_searchfield (GtkWidget *dlg, GtkWidget *vb, const gchar *label, cons
GtkWidget *tf = gtk_entry_new ();
gtk_entry_set_max_length (GTK_ENTRY (tf), 64);
gtk_box_pack_start (GTK_BOX (hb), tf, TRUE, TRUE, 0);
- gtk_object_set_data (GTK_OBJECT (dlg), id, tf);
+ g_object_set_data (G_OBJECT (dlg), id, tf);
gtk_widget_set_tooltip_text (tf, tip);
g_signal_connect ( G_OBJECT (tf), "activate", G_CALLBACK (sp_find_dialog_find), dlg );
gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf);
@@ -444,22 +444,22 @@ sp_find_new_button (GtkWidget *dlg, GtkWidget *hb, const gchar *label, const gch
void
toggle_alltypes (GtkToggleButton *tb, gpointer data)
{
- GtkWidget *alltypes_pane = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (data), "all-pane"));
+ GtkWidget *alltypes_pane = GTK_WIDGET (g_object_get_data(G_OBJECT (data), "all-pane"));
if (gtk_toggle_button_get_active (tb)) {
gtk_widget_hide_all (alltypes_pane);
} else {
gtk_widget_show_all (alltypes_pane);
// excplicit toggle to make sure its handler gets called, no matter what was the original state
- gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "shapes")));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "shapes")), TRUE);
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "paths")), TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "texts")), TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "groups")), TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "clones")), TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "images")), TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "offsets")), TRUE);
+ gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "shapes")));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "shapes")), TRUE);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "paths")), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "texts")), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "groups")), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "clones")), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "images")), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "offsets")), TRUE);
}
sp_find_squeeze_window();
}
@@ -467,15 +467,15 @@ toggle_alltypes (GtkToggleButton *tb, gpointer data)
void
toggle_shapes (GtkToggleButton *tb, gpointer data)
{
- GtkWidget *shapes_pane = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (data), "shapes-pane"));
+ GtkWidget *shapes_pane = GTK_WIDGET (g_object_get_data(G_OBJECT (data), "shapes-pane"));
if (gtk_toggle_button_get_active (tb)) {
gtk_widget_hide_all (shapes_pane);
} else {
gtk_widget_show_all (shapes_pane);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "rects")), FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "ellipses")), FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "stars")), FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (data), "spirals")), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "rects")), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "ellipses")), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "stars")), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_object_get_data(G_OBJECT (data), "spirals")), FALSE);
}
sp_find_squeeze_window();
}
@@ -494,7 +494,7 @@ sp_find_types_checkbox (GtkWidget *w, const gchar *data, gboolean active,
GtkWidget *b = gtk_check_button_new_with_label (label);
gtk_widget_show (b);
gtk_toggle_button_set_active ((GtkToggleButton *) b, active);
- gtk_object_set_data (GTK_OBJECT (w), data, b);
+ g_object_set_data (G_OBJECT (w), data, b);
gtk_widget_set_tooltip_text (b, tip);
if (toggled)
g_signal_connect (G_OBJECT (b), "toggled", G_CALLBACK (toggled), w);
@@ -592,7 +592,7 @@ sp_find_types ()
gtk_box_pack_start (GTK_BOX (hb), c, FALSE, FALSE, 0);
}
- gtk_object_set_data (GTK_OBJECT (vb), "shapes-pane", hb);
+ g_object_set_data (G_OBJECT (vb), "shapes-pane", hb);
gtk_box_pack_start (GTK_BOX (vb_all), hb, FALSE, FALSE, 0);
gtk_widget_hide_all (hb);
@@ -633,7 +633,7 @@ sp_find_types ()
}
gtk_box_pack_start (GTK_BOX (vb), vb_all, FALSE, FALSE, 0);
- gtk_object_set_data (GTK_OBJECT (vb), "all-pane", vb_all);
+ g_object_set_data (G_OBJECT (vb), "all-pane", vb_all);
gtk_widget_hide_all (vb_all);
}
@@ -699,7 +699,7 @@ sp_find_dialog_old (void)
gtk_widget_show_all (vb);
GtkWidget *types = sp_find_types ();
- gtk_object_set_data (GTK_OBJECT (dlg), "types", types);
+ g_object_set_data (G_OBJECT (dlg), "types", types);
gtk_box_pack_start (GTK_BOX (vb), types, FALSE, FALSE, 0);
{
@@ -711,7 +711,7 @@ sp_find_dialog_old (void)
GtkWidget *b = gtk_check_button_new_with_mnemonic (_("Search in s_election"));
gtk_widget_show (b);
gtk_toggle_button_set_active ((GtkToggleButton *) b, FALSE);
- gtk_object_set_data (GTK_OBJECT (dlg), "inselection", b);
+ g_object_set_data (G_OBJECT (dlg), "inselection", b);
gtk_widget_set_tooltip_text (b, _("Limit search to the current selection"));
gtk_box_pack_start (GTK_BOX (vb), b, FALSE, FALSE, 0);
}
@@ -720,7 +720,7 @@ sp_find_dialog_old (void)
GtkWidget *b = gtk_check_button_new_with_mnemonic (_("Search in current _layer"));
gtk_widget_show (b);
gtk_toggle_button_set_active ((GtkToggleButton *) b, FALSE);
- gtk_object_set_data (GTK_OBJECT (dlg), "inlayer", b);
+ g_object_set_data (G_OBJECT (dlg), "inlayer", b);
gtk_widget_set_tooltip_text (b, _("Limit search to the current layer"));
gtk_box_pack_start (GTK_BOX (vb), b, FALSE, FALSE, 0);
}
@@ -729,7 +729,7 @@ sp_find_dialog_old (void)
GtkWidget *b = gtk_check_button_new_with_mnemonic (_("Include _hidden"));
gtk_widget_show (b);
gtk_toggle_button_set_active ((GtkToggleButton *) b, FALSE);
- gtk_object_set_data (GTK_OBJECT (dlg), "includehidden", b);
+ g_object_set_data (G_OBJECT (dlg), "includehidden", b);
gtk_widget_set_tooltip_text (b, _("Include hidden objects in search"));
gtk_box_pack_start (GTK_BOX (vb), b, FALSE, FALSE, 0);
}
@@ -738,7 +738,7 @@ sp_find_dialog_old (void)
GtkWidget *b = gtk_check_button_new_with_mnemonic (_("Include l_ocked"));
gtk_widget_show (b);
gtk_toggle_button_set_active ((GtkToggleButton *) b, FALSE);
- gtk_object_set_data (GTK_OBJECT (dlg), "includelocked", b);
+ g_object_set_data (G_OBJECT (dlg), "includelocked", b);
gtk_widget_set_tooltip_text (b, _("Include locked objects in search"));
gtk_box_pack_start (GTK_BOX (vb), b, FALSE, FALSE, 0);
}
diff --git a/src/dialogs/item-properties.cpp b/src/dialogs/item-properties.cpp
index 3f757e81f..0c81d8b3c 100644
--- a/src/dialogs/item-properties.cpp
+++ b/src/dialogs/item-properties.cpp
@@ -114,7 +114,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 0, 1,
(GtkAttachOptions)( GTK_SHRINK | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "id_label", l);
+ g_object_set_data (G_OBJECT (spw), "id_label", l);
/* Create the entry box for the object id */
tf = gtk_entry_new ();
@@ -123,7 +123,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), tf, 1, 2, 0, 1,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "id", tf);
+ g_object_set_data (G_OBJECT (spw), "id", tf);
gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf);
// pressing enter in the id field is the same as clicking Set:
@@ -137,7 +137,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 1, 2,
(GtkAttachOptions)( GTK_SHRINK | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "label_label", l);
+ g_object_set_data (G_OBJECT (spw), "label_label", l);
/* Create the entry box for the object label */
tf = gtk_entry_new ();
@@ -146,7 +146,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), tf, 1, 2, 1, 2,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "label", tf);
+ g_object_set_data (G_OBJECT (spw), "label", tf);
gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf);
// pressing enter in the label field is the same as clicking Set:
@@ -158,7 +158,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), l, 0, 1, 2, 3,
(GtkAttachOptions)( GTK_SHRINK | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "title_label", l);
+ g_object_set_data (G_OBJECT (spw), "title_label", l);
/* Create the entry box for the object title */
tf = gtk_entry_new ();
@@ -167,7 +167,7 @@ sp_item_widget_new (void)
gtk_table_attach ( GTK_TABLE (t), tf, 1, 3, 2, 3,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
- gtk_object_set_data (GTK_OBJECT (spw), "title", tf);
+ g_object_set_data (G_OBJECT (spw), "title", tf);
gtk_label_set_mnemonic_widget (GTK_LABEL(l), tf);
/* Create the frame for the object description */
@@ -184,14 +184,14 @@ sp_item_widget_new (void)
gtk_widget_set_sensitive (GTK_WIDGET (textframe), FALSE);
gtk_container_add (GTK_CONTAINER (f), textframe);
gtk_frame_set_shadow_type (GTK_FRAME (textframe), GTK_SHADOW_IN);
- gtk_object_set_data(GTK_OBJECT(spw), "desc_frame", textframe);
+ g_object_set_data(G_OBJECT(spw), "desc_frame", textframe);
tf = gtk_text_view_new();
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tf), GTK_WRAP_WORD);
desc_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tf));
gtk_text_buffer_set_text(desc_buffer, "", -1);
gtk_container_add (GTK_CONTAINER (textframe), tf);
- gtk_object_set_data (GTK_OBJECT (spw), "desc", tf);
+ g_object_set_data (G_OBJECT (spw), "desc", tf);
gtk_label_set_mnemonic_widget (GTK_LABEL (gtk_frame_get_label_widget (GTK_FRAME (f))), tf);
/* Check boxes */
@@ -208,7 +208,7 @@ sp_item_widget_new (void)
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)0, 0, 0 );
g_signal_connect (G_OBJECT(cb), "toggled", G_CALLBACK(sp_item_widget_hidden_toggled), spw);
- gtk_object_set_data(GTK_OBJECT(spw), "hidden", cb);
+ g_object_set_data(G_OBJECT(spw), "hidden", cb);
/* Button for setting the object's id, label, title and description. */
pb = gtk_button_new_with_mnemonic (_("_Set"));
@@ -227,13 +227,13 @@ sp_item_widget_new (void)
g_signal_connect ( G_OBJECT (cb), "toggled",
G_CALLBACK (sp_item_widget_sensitivity_toggled),
spw );
- gtk_object_set_data (GTK_OBJECT (spw), "sensitive", cb);
+ g_object_set_data (G_OBJECT (spw), "sensitive", cb);
/* Create the frame for interactivity options */
int_label = gtk_label_new_with_mnemonic (_("_Interactivity"));
int_expander = gtk_expander_new (NULL);
gtk_expander_set_label_widget (GTK_EXPANDER (int_expander),int_label);
- gtk_object_set_data (GTK_OBJECT (spw), "interactivity", int_expander);
+ g_object_set_data (G_OBJECT (spw), "interactivity", int_expander);
gtk_box_pack_start (GTK_BOX (vb), int_expander, FALSE, FALSE, 0);
@@ -275,7 +275,7 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
{
g_assert (selection != NULL);
- if (gtk_object_get_data (GTK_OBJECT (spw), "blocked"))
+ if (g_object_get_data(G_OBJECT (spw), "blocked"))
return;
if (!selection->singleItem()) {
@@ -285,51 +285,51 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
gtk_widget_set_sensitive (GTK_WIDGET (spw), TRUE);
}
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
SPItem *item = selection->singleItem();
/* Sensitive */
- GtkWidget *w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "sensitive"));
+ GtkWidget *w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "sensitive"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), item->isLocked());
/* Hidden */
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "hidden"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "hidden"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), item->isExplicitlyHidden());
if (item->cloned) {
/* ID */
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id"));
gtk_entry_set_text (GTK_ENTRY (w), "");
gtk_widget_set_sensitive (w, FALSE);
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label"));
gtk_label_set_text (GTK_LABEL (w), _("Ref"));
/* Label */
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label"));
gtk_entry_set_text (GTK_ENTRY (w), "");
gtk_widget_set_sensitive (w, FALSE);
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label_label"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label_label"));
gtk_label_set_text (GTK_LABEL (w), _("Ref"));
} else {
SPObject *obj = (SPObject*)item;
/* ID */
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id"));
gtk_entry_set_text (GTK_ENTRY (w), obj->getId());
gtk_widget_set_sensitive (w, TRUE);
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label"));
gtk_label_set_markup_with_mnemonic (GTK_LABEL (w), _("_ID:"));
/* Label */
- w = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label"));
gtk_entry_set_text (GTK_ENTRY (w), obj->defaultLabel());
gtk_widget_set_sensitive (w, TRUE);
/* Title */
- w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "title"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "title"));
gchar *title = obj->title();
if (title) {
gtk_entry_set_text(GTK_ENTRY(w), title);
@@ -339,7 +339,7 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
gtk_widget_set_sensitive(w, TRUE);
/* Description */
- w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "desc"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "desc"));
GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w));
gchar *desc = obj->desc();
if (desc) {
@@ -348,12 +348,12 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
} else {
gtk_text_buffer_set_text(buf, "", 0);
}
- w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "desc_frame"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "desc_frame"));
gtk_widget_set_sensitive(w, TRUE);
- w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "interactivity"));
+ w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "interactivity"));
- GtkWidget* int_table = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "interactivity_table"));
+ GtkWidget* int_table = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "interactivity_table"));
if (int_table){
gtk_container_remove(GTK_CONTAINER(w), int_table);
}
@@ -362,13 +362,13 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
int_table = sp_attribute_table_new (obj, 10, int_labels, int_labels);
gtk_widget_show_all (int_table);
- gtk_object_set_data(GTK_OBJECT(spw), "interactivity_table", int_table);
+ g_object_set_data(G_OBJECT(spw), "interactivity_table", int_table);
gtk_container_add (GTK_CONTAINER (w), int_table);
}
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
} // end of sp_item_widget_setup()
@@ -378,57 +378,57 @@ sp_item_widget_setup ( SPWidget *spw, Inkscape::Selection *selection )
static void
sp_item_widget_sensitivity_toggled (GtkWidget *widget, SPWidget *spw)
{
- if (gtk_object_get_data (GTK_OBJECT (spw), "blocked"))
+ if (g_object_get_data(G_OBJECT (spw), "blocked"))
return;
SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
g_return_if_fail (item != NULL);
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
item->setLocked(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))? _("Lock object") : _("Unlock object"));
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
}
void
sp_item_widget_hidden_toggled(GtkWidget *widget, SPWidget *spw)
{
- if (gtk_object_get_data (GTK_OBJECT (spw), "blocked"))
+ if (g_object_get_data(G_OBJECT (spw), "blocked"))
return;
SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
g_return_if_fail (item != NULL);
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
item->setExplicitlyHidden(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))? _("Hide object") : _("Unhide object"));
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
}
static void
sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw )
{
- if (gtk_object_get_data (GTK_OBJECT (spw), "blocked"))
+ if (g_object_get_data(G_OBJECT (spw), "blocked"))
return;
SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
g_return_if_fail (item != NULL);
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
/* Retrieve the label widget for the object's id */
- GtkWidget *id_entry = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id"));
+ GtkWidget *id_entry = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id"));
gchar *id = (gchar *) gtk_entry_get_text (GTK_ENTRY (id_entry));
g_strcanon (id, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.:", '_');
- GtkWidget *id_label = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "id_label"));
+ GtkWidget *id_label = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "id_label"));
if (!strcmp (id, item->getId())) {
gtk_label_set_markup_with_mnemonic (GTK_LABEL (id_label), _("_ID:"));
} else if (!*id || !isalnum (*id)) {
@@ -445,7 +445,7 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw )
}
/* Retrieve the label widget for the object's label */
- GtkWidget *label_entry = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (spw), "label"));
+ GtkWidget *label_entry = GTK_WIDGET(g_object_get_data(G_OBJECT (spw), "label"));
gchar *label = (gchar *)gtk_entry_get_text (GTK_ENTRY (label_entry));
g_assert(label != NULL);
@@ -460,14 +460,14 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw )
}
/* Retrieve the title */
- GtkWidget *w = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "title"));
+ GtkWidget *w = GTK_WIDGET(g_object_get_data(G_OBJECT(spw), "title"));
gchar *title = (gchar *)gtk_entry_get_text(GTK_ENTRY (w));
if (obj->setTitle(title))
DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
_("Set object title"));
/* Retrieve the description */
- GtkTextView *tv = GTK_TEXT_VIEW(gtk_object_get_data(GTK_OBJECT(spw), "desc"));
+ GtkTextView *tv = GTK_TEXT_VIEW(g_object_get_data(G_OBJECT(spw), "desc"));
GtkTextBuffer *buf = gtk_text_view_get_buffer(tv);
GtkTextIter start, end;
gtk_text_buffer_get_bounds(buf, &start, &end);
@@ -477,7 +477,7 @@ sp_item_widget_label_changed( GtkWidget */*widget*/, SPWidget *spw )
_("Set object description"));
g_free(desc);
- gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
} // end of sp_item_widget_label_changed()
diff --git a/src/dialogs/spellcheck.cpp b/src/dialogs/spellcheck.cpp
index 1d475a5c3..5de0bc6fe 100644
--- a/src/dialogs/spellcheck.cpp
+++ b/src/dialogs/spellcheck.cpp
@@ -191,7 +191,7 @@ sp_spellcheck_new_button (GtkWidget *dlg, GtkWidget *hb, const gchar *label, con
gtk_widget_set_tooltip_text (b, tip);
gtk_box_pack_start (GTK_BOX (hb), b, TRUE, TRUE, 0);
g_signal_connect ( G_OBJECT (b), "clicked", G_CALLBACK (function), dlg );
- gtk_object_set_data (GTK_OBJECT (dlg), cookie, b);
+ g_object_set_data (G_OBJECT (dlg), cookie, b);
gtk_widget_show (b);
}
@@ -287,7 +287,7 @@ SPItem *spellcheck_get_text (SPObject *root)
void
spellcheck_sensitive (const gchar *cookie, gboolean gray)
{
- GtkWidget *l = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (dlg), cookie));
+ GtkWidget *l = GTK_WIDGET(g_object_get_data(G_OBJECT (dlg), cookie));
gtk_widget_set_sensitive(l, gray);
}
@@ -445,7 +445,7 @@ spellcheck_finished ()
spellcheck_sensitive("b_start", TRUE);
{
- GtkWidget *l = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (dlg), "banner"));
+ GtkWidget *l = GTK_WIDGET(g_object_get_data(G_OBJECT (dlg), "banner"));
gchar *label;
if (_stops)
label = g_strdup_printf(_("<b>Finished</b>, <b>%d</b> words added to dictionary"), _adds);
@@ -557,7 +557,7 @@ spellcheck_next_word()
// display it in window
{
- GtkWidget *l = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (dlg), "banner"));
+ GtkWidget *l = GTK_WIDGET(g_object_get_data(G_OBJECT (dlg), "banner"));
Glib::ustring langs = _lang;
if (_lang2)
langs = langs + ", " + _lang2;
@@ -641,7 +641,7 @@ spellcheck_next_word()
// get suggestions
{
GtkTreeView *tree_view =
- GTK_TREE_VIEW(gtk_object_get_data (GTK_OBJECT (dlg), "suggestions"));
+ GTK_TREE_VIEW(g_object_get_data(G_OBJECT (dlg), "suggestions"));
GtkListStore *model = gtk_list_store_new (1, G_TYPE_STRING);
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
@@ -714,7 +714,7 @@ spellcheck_delete_last_rect ()
void
do_spellcheck ()
{
- GtkWidget *l = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (dlg), "banner"));
+ GtkWidget *l = GTK_WIDGET(g_object_get_data(G_OBJECT (dlg), "banner"));
gtk_label_set_markup (GTK_LABEL(l), _("<i>Checking...</i>"));
gtk_widget_queue_draw(GTK_WIDGET(dlg));
gdk_window_process_updates(GTK_WIDGET(dlg)->window, TRUE);
@@ -770,7 +770,7 @@ sp_spellcheck_accept (GObject *, GObject *dlg)
{
// insert chosen suggestion
GtkTreeView *tv =
- GTK_TREE_VIEW(gtk_object_get_data (GTK_OBJECT (dlg), "suggestions"));
+ GTK_TREE_VIEW(g_object_get_data(G_OBJECT (dlg), "suggestions"));
GtkTreeSelection *ts = gtk_tree_view_get_selection(tv);
GtkTreeModel *model = 0;
GtkTreeIter iter;
@@ -820,7 +820,7 @@ sp_spellcheck_add (GObject */*obj*/, GObject */*dlg*/)
{
_adds++;
GtkComboBox *cbox =
- GTK_COMBO_BOX(gtk_object_get_data (GTK_OBJECT (dlg), "addto_langs"));
+ GTK_COMBO_BOX(g_object_get_data(G_OBJECT (dlg), "addto_langs"));
gint num = gtk_combo_box_get_active(cbox);
switch (num) {
case 0:
@@ -935,7 +935,7 @@ sp_spellcheck_dialog (void)
{
GtkWidget *hb = gtk_hbox_new (FALSE, 0);
GtkWidget *l = gtk_label_new (NULL);
- gtk_object_set_data (GTK_OBJECT (dlg), "banner", l);
+ g_object_set_data (G_OBJECT (dlg), "banner", l);
gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vb), hb, FALSE, FALSE, 0);
}
@@ -948,7 +948,7 @@ sp_spellcheck_dialog (void)
GtkListStore *model = gtk_list_store_new (1, G_TYPE_STRING);
GtkWidget *tree_view = gtk_tree_view_new ();
- gtk_object_set_data (GTK_OBJECT (dlg), "suggestions", tree_view);
+ g_object_set_data (G_OBJECT (dlg), "suggestions", tree_view);
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
tree_view);
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
diff --git a/src/dialogs/text-edit.cpp b/src/dialogs/text-edit.cpp
index 76ad3bcc3..16166d97e 100644
--- a/src/dialogs/text-edit.cpp
+++ b/src/dialogs/text-edit.cpp
@@ -186,8 +186,6 @@ sp_text_edit_dialog (void)
g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_hide", G_CALLBACK (sp_dialog_hide), dlg );
g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_unhide", G_CALLBACK (sp_dialog_unhide), dlg );
- gtk_window_set_policy (GTK_WINDOW (dlg), TRUE, TRUE, FALSE);
-
// box containing the notebook and the bottom buttons
GtkWidget *mainvb = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (dlg), mainvb);
@@ -251,7 +249,7 @@ sp_text_edit_dialog (void)
{
// TODO - replace with Inkscape-specific call
GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_CENTER, GTK_ICON_SIZE_LARGE_TOOLBAR );
- GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group)));
+ GtkWidget *b = gtk_radio_button_new (gtk_radio_button_get_group (GTK_RADIO_BUTTON (group)));
/* TRANSLATORS: `Center' here is a verb. */
gtk_widget_set_tooltip_text (b, _("Center lines"));
gtk_button_set_relief (GTK_BUTTON (b), GTK_RELIEF_NONE);
@@ -266,7 +264,7 @@ sp_text_edit_dialog (void)
{
// TODO - replace with Inkscape-specific call
GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_RIGHT, GTK_ICON_SIZE_LARGE_TOOLBAR );
- GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group)));
+ GtkWidget *b = gtk_radio_button_new (gtk_radio_button_get_group (GTK_RADIO_BUTTON (group)));
gtk_widget_set_tooltip_text (b, _("Align lines right"));
gtk_button_set_relief (GTK_BUTTON (b), GTK_RELIEF_NONE);
g_signal_connect ( G_OBJECT (b), "toggled", G_CALLBACK (sp_text_edit_dialog_any_toggled), dlg );
@@ -280,7 +278,7 @@ sp_text_edit_dialog (void)
{
// TODO - replace with Inkscape-specific call
GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_FILL, GTK_ICON_SIZE_LARGE_TOOLBAR );
- GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group)));
+ GtkWidget *b = gtk_radio_button_new (gtk_radio_button_get_group (GTK_RADIO_BUTTON (group)));
gtk_widget_set_tooltip_text (b, _("Justify lines"));
gtk_button_set_relief (GTK_BUTTON (b), GTK_RELIEF_NONE);
g_signal_connect ( G_OBJECT (b), "toggled", G_CALLBACK (sp_text_edit_dialog_any_toggled), dlg );
@@ -316,7 +314,7 @@ sp_text_edit_dialog (void)
{
GtkWidget *px = sp_icon_new( Inkscape::ICON_SIZE_LARGE_TOOLBAR,
INKSCAPE_ICON_FORMAT_TEXT_DIRECTION_VERTICAL );
- GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group)));
+ GtkWidget *b = gtk_radio_button_new (gtk_radio_button_get_group (GTK_RADIO_BUTTON (group)));
gtk_widget_set_tooltip_text (b, _("Vertical text"));
gtk_button_set_relief (GTK_BUTTON (b), GTK_RELIEF_NONE);
g_signal_connect ( G_OBJECT (b), "toggled", G_CALLBACK (sp_text_edit_dialog_any_toggled), dlg );
@@ -348,42 +346,24 @@ sp_text_edit_dialog (void)
#if GTK_CHECK_VERSION(2, 24,0)
GtkWidget *c = gtk_combo_box_text_new_with_entry ();
#else
- GtkWidget *c = gtk_combo_new ();
- gtk_combo_set_value_in_list ((GtkCombo *) c, FALSE, FALSE);
- gtk_combo_set_use_arrows ((GtkCombo *) c, TRUE);
- gtk_combo_set_use_arrows_always ((GtkCombo *) c, TRUE);
+ GtkWidget *c = gtk_combo_box_entry_new_text ();
#endif
gtk_widget_set_size_request (c, 90, -1);
+ { /* Setup strings */
+ for (int i = 0; spacings[i]; i++) {
//This would introduce dependency on gtk version 2.24 which is currently not available in
// Trisquel GNU/Linux 4.5.1 (released on May 25th, 2011)
//This conditional and its #else block can be deleted in the future.
#if GTK_CHECK_VERSION(2, 24,0)
- { /* Setup strings */
- for (int i = 0; spacings[i]; i++) {
gtk_combo_box_text_append_text((GtkComboBoxText *) c, spacings[i]);
- }
- }
#else
- { /* Setup strings */
- GList *sl = NULL;
- for (int i = 0; spacings[i]; i++) {
- sl = g_list_prepend (sl, (void *) spacings[i]);
+ gtk_combo_box_append_text((GtkComboBox *) c, spacings[i]);
+#endif
}
- sl = g_list_reverse (sl);
- gtk_combo_set_popdown_strings ((GtkCombo *) c, sl);
- g_list_free (sl);
}
-#endif
-//This would introduce dependency on gtk version 2.24 which is currently not available in
-// Trisquel GNU/Linux 4.5.1 (released on May 25th, 2011)
-//This conditional and its #else block can be deleted in the future.
-#if GTK_CHECK_VERSION(2, 24,0)
g_signal_connect ( (GObject *) c,
-#else
- g_signal_connect ( (GObject *) ((GtkCombo *) c)->entry,
-#endif
"changed",
(GCallback) sp_text_edit_dialog_line_spacing_changed,
dlg );
@@ -470,11 +450,11 @@ sp_text_edit_dialog (void)
{
GtkWidget *b = gtk_button_new_from_stock (GTK_STOCK_APPLY);
- gtk_widget_set_can_default (b, TRUE);
- gtk_widget_grab_default (b);
g_signal_connect ( G_OBJECT (b), "clicked",
G_CALLBACK (sp_text_edit_dialog_apply), dlg );
gtk_box_pack_end ( GTK_BOX (hb), b, FALSE, FALSE, 0 );
+ gtk_widget_set_can_default (b, TRUE);
+ gtk_widget_grab_default (b);
g_object_set_data (G_OBJECT (dlg), "apply", b);
}
@@ -642,7 +622,7 @@ sp_get_text_dialog_style ()
#if GTK_CHECK_VERSION(2, 24,0)
const gchar *sstr = gtk_combo_box_text_get_active_text ((GtkComboBoxText *) combo);
#else
- const char *sstr = gtk_entry_get_text ((GtkEntry *) ((GtkCombo *) (combo))->entry);
+ const gchar *sstr = gtk_entry_get_text ((GtkEntry *) (gtk_bin_get_child (GTK_BIN (combo))));
#endif
sp_repr_css_set_property (css, "line-height", sstr);
@@ -768,9 +748,6 @@ sp_text_edit_dialog_read_selection ( GtkWidget *dlg,
str = sp_te_get_string_multiline (text);
if (str) {
- int pos;
- pos = 0;
-
if (items == 1) {
gtk_text_buffer_set_text (tb, str, strlen (str));
gtk_text_buffer_set_modified (tb, FALSE);
@@ -855,14 +832,7 @@ sp_text_edit_dialog_read_selection ( GtkWidget *dlg,
else height = query->line_height.computed;
gchar *sstr = g_strdup_printf ("%d%%", (int) floor(height * 100 + 0.5));
-//This would introduce dependency on gtk version 2.24 which is currently not available in
-// Trisquel GNU/Linux 4.5.1 (released on May 25th, 2011)
-//This conditional and its #else block can be deleted in the future.
-#if GTK_CHECK_VERSION(2, 24,0)
gtk_entry_set_text ((GtkEntry *) gtk_bin_get_child ((GtkBin *) (combo)), sstr);
-#else
- gtk_entry_set_text ((GtkEntry *) ((GtkCombo *) (combo))->entry, sstr);
-#endif
g_free(sstr);
sp_style_unref(query);
diff --git a/src/dialogs/xml-tree.cpp b/src/dialogs/xml-tree.cpp
index c50c07e80..1a003c9c7 100644
--- a/src/dialogs/xml-tree.cpp
+++ b/src/dialogs/xml-tree.cpp
@@ -275,9 +275,6 @@ void sp_xml_tree_dialog()
g_signal_connect_after( G_OBJECT(tree), "tree_move",
G_CALLBACK(after_tree_move), NULL);
- /* TODO: replace gtk_signal_connect_while_alive() with something
- * else...
- */
toolbar = gtk_toolbar_new();
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
gtk_container_set_border_width(GTK_CONTAINER(toolbar), 0);
@@ -291,17 +288,17 @@ void sp_xml_tree_dialog()
G_CALLBACK(cmd_new_element_node),
NULL);
- gtk_signal_connect_while_alive( GTK_OBJECT(tree),
+ g_signal_connect_object (G_OBJECT(tree),
"tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_element),
button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree),
+ g_signal_connect_object (G_OBJECT(tree),
"tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
@@ -312,17 +309,17 @@ void sp_xml_tree_dialog()
G_CALLBACK(cmd_new_text_node),
NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree),
+ g_signal_connect_object(G_OBJECT(tree),
"tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_element),
button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree),
+ g_signal_connect_object(G_OBJECT(tree),
"tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
@@ -333,15 +330,16 @@ void sp_xml_tree_dialog()
G_CALLBACK(cmd_duplicate_node),
NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree),
+ g_signal_connect_object(G_OBJECT(tree),
"tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_mutable),
button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
@@ -353,12 +351,14 @@ void sp_xml_tree_dialog()
INKSCAPE_ICON_XML_NODE_DELETE ),
G_CALLBACK(cmd_delete_node), NULL );
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_mutable),
- button, GTK_OBJECT(button));
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ button,
+ (GConnectFlags)0);
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));
@@ -368,13 +368,15 @@ void sp_xml_tree_dialog()
gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_IN),
G_CALLBACK(cmd_unindent_node), NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_has_grandparent),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
@@ -382,36 +384,42 @@ void sp_xml_tree_dialog()
_("Indent node"), NULL,
gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_IN),
G_CALLBACK(cmd_indent_node), NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_indentable),
- button, GTK_OBJECT(button));
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ button,
+ (GConnectFlags)0);
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
(GCallback) on_tree_unselect_row_disable,
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
button = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "^",
_("Raise node"), NULL,
gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_IN),
G_CALLBACK(cmd_raise_node), NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_not_first_child),
- button, GTK_OBJECT(button));
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ button,
+ (GConnectFlags)0);
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
button = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "v",
_("Lower node"), NULL,
gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_IN),
G_CALLBACK(cmd_lower_node), NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
G_CALLBACK(on_tree_select_row_enable_if_not_last_child),
- button, GTK_OBJECT(button));
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ button,
+ (GConnectFlags)0);
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
G_CALLBACK(on_tree_unselect_row_disable),
- button, GTK_OBJECT(button));
+ button,
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
gtk_box_pack_start(GTK_BOX(box), toolbar, FALSE, TRUE, 0);
@@ -453,17 +461,17 @@ void sp_xml_tree_dialog()
INKSCAPE_ICON_XML_ATTRIBUTE_DELETE ),
(GCallback) cmd_delete_attr, NULL);
- gtk_signal_connect_while_alive(GTK_OBJECT(attributes), "select_row",
+ g_signal_connect_object(G_OBJECT(attributes), "select_row",
(GCallback) on_attr_select_row_enable, button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(attributes), "unselect_row",
+ g_signal_connect_object(G_OBJECT(attributes), "unselect_row",
(GCallback) on_attr_unselect_row_disable, button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
(GCallback) on_tree_unselect_row_disable, button,
- GTK_OBJECT(button));
+ (GConnectFlags)0);
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
@@ -573,23 +581,27 @@ void sp_xml_tree_dialog()
gtk_widget_show_all(GTK_WIDGET(dlg));
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
(GCallback) on_tree_select_row_show_if_element,
- attr_container, GTK_OBJECT(attr_container));
+ attr_container,
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
(GCallback) on_tree_unselect_row_hide,
- attr_container, GTK_OBJECT(attr_container));
+ attr_container,
+ (GConnectFlags)0);
gtk_widget_hide(attr_container);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_select_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_select_row",
(GCallback) on_tree_select_row_show_if_text,
- text_container, GTK_OBJECT(text_container));
+ text_container,
+ (GConnectFlags)0);
- gtk_signal_connect_while_alive(GTK_OBJECT(tree), "tree_unselect_row",
+ g_signal_connect_object(G_OBJECT(tree), "tree_unselect_row",
(GCallback) on_tree_unselect_row_hide,
- text_container, GTK_OBJECT(text_container));
+ text_container,
+ (GConnectFlags)0);
gtk_widget_hide(text_container);
@@ -1317,7 +1329,7 @@ void cmd_new_element_node(GtkObject */*object*/, gpointer /*data*/)
window = sp_window_new(NULL, TRUE);
gtk_container_set_border_width(GTK_CONTAINER(window), 4);
gtk_window_set_title(GTK_WINDOW(window), _("New element node..."));
- gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(dlg));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp
index 72062ce99..6930e4d7c 100644
--- a/src/display/canvas-arena.cpp
+++ b/src/display/canvas-arena.cpp
@@ -48,20 +48,22 @@ NRArenaEventVector carenaev = {
static SPCanvasItemClass *parent_class;
static guint signals[LAST_SIGNAL] = {0};
-GtkType
+GType
sp_canvas_arena_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar *)"SPCanvasArena",
- sizeof (SPCanvasArena),
+ GTypeInfo info = {
sizeof (SPCanvasArenaClass),
- (GtkClassInitFunc) sp_canvas_arena_class_init,
- (GtkObjectInitFunc) sp_canvas_arena_init,
- NULL, NULL, NULL
- };
- type = gtk_type_unique (SP_TYPE_CANVAS_ITEM, &info);
+ NULL, NULL,
+ (GClassInitFunc) sp_canvas_arena_class_init,
+ NULL, NULL,
+ sizeof (SPCanvasArena),
+ 0,
+ (GInstanceInitFunc) sp_canvas_arena_init,
+ NULL
+ };
+ type = g_type_register_static (SP_TYPE_CANVAS_ITEM, "SPCanvasArena", &info, (GTypeFlags)0);
}
return type;
}
@@ -75,7 +77,7 @@ sp_canvas_arena_class_init (SPCanvasArenaClass *klass)
object_class = (GtkObjectClass *) klass;
item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
signals[ARENA_EVENT] = g_signal_new ("arena_event",
G_TYPE_FROM_CLASS(object_class),
diff --git a/src/display/canvas-arena.h b/src/display/canvas-arena.h
index ef065a03b..4cfeccb5a 100644
--- a/src/display/canvas-arena.h
+++ b/src/display/canvas-arena.h
@@ -53,7 +53,7 @@ struct _SPCanvasArenaClass {
gint (* arena_event) (SPCanvasArena *carena, NRArenaItem *item, GdkEvent *event);
};
-GtkType sp_canvas_arena_get_type (void);
+GType sp_canvas_arena_get_type (void);
void sp_canvas_arena_set_pick_delta (SPCanvasArena *ca, gdouble delta);
void sp_canvas_arena_set_sticky (SPCanvasArena *ca, gboolean sticky);
diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp
index daad2d515..ec2d35f69 100644
--- a/src/display/canvas-axonomgrid.cpp
+++ b/src/display/canvas-axonomgrid.cpp
@@ -770,7 +770,7 @@ void CanvasAxonomGridSnapper::_addSnappedPoint(SnappedConstraints &sc, Geom::Poi
bool CanvasAxonomGridSnapper::ThisSnapperMightSnap() const
{
- return _snap_enabled && _snapmanager->snapprefs.getSnapToGrids() && _snapmanager->snapprefs.getSnapModeBBoxOrNodes();
+ return _snap_enabled && _snapmanager->snapprefs.getSnapToGrids() && _snapmanager->snapprefs.getSnapModeAny();
}
diff --git a/src/display/canvas-bpath.cpp b/src/display/canvas-bpath.cpp
index f86743744..306b523ca 100644
--- a/src/display/canvas-bpath.cpp
+++ b/src/display/canvas-bpath.cpp
@@ -38,20 +38,22 @@ static double sp_canvas_bpath_point (SPCanvasItem *item, Geom::Point p, SPCanvas
static SPCanvasItemClass *parent_class;
-GtkType
+GType
sp_canvas_bpath_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar *)"SPCanvasBPath",
- sizeof (SPCanvasBPath),
+ GTypeInfo info = {
sizeof (SPCanvasBPathClass),
- (GtkClassInitFunc) sp_canvas_bpath_class_init,
- (GtkObjectInitFunc) sp_canvas_bpath_init,
- NULL, NULL, NULL
- };
- type = gtk_type_unique (SP_TYPE_CANVAS_ITEM, &info);
+ NULL, NULL,
+ (GClassInitFunc) sp_canvas_bpath_class_init,
+ NULL, NULL,
+ sizeof (SPCanvasBPath),
+ 0,
+ (GInstanceInitFunc) sp_canvas_bpath_init,
+ NULL
+ };
+ type = g_type_register_static (SP_TYPE_CANVAS_ITEM, "SPCanvasBPath", &info, (GTypeFlags)0);
}
return type;
}
@@ -65,7 +67,7 @@ sp_canvas_bpath_class_init (SPCanvasBPathClass *klass)
object_class = GTK_OBJECT_CLASS (klass);
item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_canvas_bpath_destroy;
diff --git a/src/display/canvas-bpath.h b/src/display/canvas-bpath.h
index ad19797c2..752ed73ea 100644
--- a/src/display/canvas-bpath.h
+++ b/src/display/canvas-bpath.h
@@ -90,7 +90,7 @@ struct SPCanvasBPathClass {
SPCanvasItemClass parent_class;
};
-GtkType sp_canvas_bpath_get_type (void);
+GType sp_canvas_bpath_get_type (void);
SPCanvasItem *sp_canvas_bpath_new (SPCanvasGroup *parent, SPCurve *curve);
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp
index 52963ce6b..aa38a14c9 100644
--- a/src/display/canvas-grid.cpp
+++ b/src/display/canvas-grid.cpp
@@ -58,22 +58,24 @@ static void grid_canvasitem_render (SPCanvasItem *item, SPCanvasBuf *buf);
static SPCanvasItemClass * parent_class;
-GtkType
+GType
grid_canvasitem_get_type (void)
{
- static GtkType grid_canvasitem_type = 0;
+ static GType grid_canvasitem_type = 0;
if (!grid_canvasitem_type) {
- GtkTypeInfo grid_canvasitem_info = {
- (gchar *)"GridCanvasItem",
- sizeof (GridCanvasItem),
+ GTypeInfo grid_canvasitem_info = {
sizeof (GridCanvasItemClass),
- (GtkClassInitFunc) grid_canvasitem_class_init,
- (GtkObjectInitFunc) grid_canvasitem_init,
- NULL, NULL,
- (GtkClassInitFunc) NULL
- };
- grid_canvasitem_type = gtk_type_unique (sp_canvas_item_get_type (), &grid_canvasitem_info);
+ NULL, NULL,
+ (GClassInitFunc) grid_canvasitem_class_init,
+ NULL, NULL,
+ sizeof (GridCanvasItem),
+ 0,
+ (GInstanceInitFunc) grid_canvasitem_init,
+ NULL
+ };
+
+ grid_canvasitem_type = g_type_register_static (sp_canvas_item_get_type (), "GridCanvasItem", &grid_canvasitem_info, (GTypeFlags)0);
}
return grid_canvasitem_type;
}
@@ -87,7 +89,7 @@ grid_canvasitem_class_init (GridCanvasItemClass *klass)
object_class = (GtkObjectClass *) klass;
item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = grid_canvasitem_destroy;
@@ -1070,7 +1072,7 @@ void CanvasXYGridSnapper::_addSnappedPoint(SnappedConstraints &sc, Geom::Point c
*/
bool CanvasXYGridSnapper::ThisSnapperMightSnap() const
{
- return _snap_enabled && _snapmanager->snapprefs.getSnapToGrids() && _snapmanager->snapprefs.getSnapModeBBoxOrNodes();
+ return _snap_enabled && _snapmanager->snapprefs.getSnapToGrids() && _snapmanager->snapprefs.getSnapModeAny();
}
} // namespace Inkscape
diff --git a/src/display/canvas-grid.h b/src/display/canvas-grid.h
index f42fecad7..160e4a4e2 100644
--- a/src/display/canvas-grid.h
+++ b/src/display/canvas-grid.h
@@ -57,7 +57,7 @@ struct GridCanvasItemClass {
};
/* Standard Gtk function */
-GtkType grid_canvasitem_get_type (void);
+GType grid_canvasitem_get_type (void);
diff --git a/src/display/canvas-text.cpp b/src/display/canvas-text.cpp
index 842425f50..683e2f93c 100644
--- a/src/display/canvas-text.cpp
+++ b/src/display/canvas-text.cpp
@@ -36,21 +36,23 @@ static void sp_canvastext_render (SPCanvasItem *item, SPCanvasBuf *buf);
static SPCanvasItemClass *parent_class_ct;
-GtkType
+GType
sp_canvastext_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar *)"SPCanvasText",
- sizeof (SPCanvasText),
+ GTypeInfo info = {
sizeof (SPCanvasTextClass),
- (GtkClassInitFunc) sp_canvastext_class_init,
- (GtkObjectInitFunc) sp_canvastext_init,
- NULL, NULL, NULL
- };
- type = gtk_type_unique (SP_TYPE_CANVAS_ITEM, &info);
+ NULL, NULL,
+ (GClassInitFunc) sp_canvastext_class_init,
+ NULL, NULL,
+ sizeof (SPCanvasText),
+ 0,
+ (GInstanceInitFunc) sp_canvastext_init,
+ NULL
+ };
+ type = g_type_register_static (SP_TYPE_CANVAS_ITEM, "SPCanvasText", &info, (GTypeFlags)0);
}
return type;
}
@@ -61,7 +63,7 @@ sp_canvastext_class_init (SPCanvasTextClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) klass;
- parent_class_ct = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class_ct = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_canvastext_destroy;
diff --git a/src/display/canvas-text.h b/src/display/canvas-text.h
index 30ddc1557..85333d84e 100644
--- a/src/display/canvas-text.h
+++ b/src/display/canvas-text.h
@@ -52,7 +52,7 @@ struct SPCanvasText : public SPCanvasItem {
};
struct SPCanvasTextClass : public SPCanvasItemClass{};
-GtkType sp_canvastext_get_type (void);
+GType sp_canvastext_get_type (void);
SPCanvasItem *sp_canvastext_new(SPCanvasGroup *parent, SPDesktop *desktop, Geom::Point pos, gchar const *text);
diff --git a/src/display/gnome-canvas-acetate.cpp b/src/display/gnome-canvas-acetate.cpp
index b86892e32..bdda3a120 100644
--- a/src/display/gnome-canvas-acetate.cpp
+++ b/src/display/gnome-canvas-acetate.cpp
@@ -25,20 +25,22 @@ static double sp_canvas_acetate_point (SPCanvasItem *item, Geom::Point p, SPCanv
static SPCanvasItemClass *parent_class;
-GtkType
+GType
sp_canvas_acetate_get_type (void)
{
- static GtkType acetate_type = 0;
+ static GType acetate_type = 0;
if (!acetate_type) {
- GtkTypeInfo acetate_info = {
- (gchar *)"SPCanvasAcetate",
- sizeof (SPCanvasAcetate),
+ GTypeInfo acetate_info = {
sizeof (SPCanvasAcetateClass),
- (GtkClassInitFunc) sp_canvas_acetate_class_init,
- (GtkObjectInitFunc) sp_canvas_acetate_init,
- NULL, NULL, NULL
+ NULL, NULL,
+ (GClassInitFunc) sp_canvas_acetate_class_init,
+ NULL, NULL,
+ sizeof (SPCanvasAcetate),
+ 0,
+ (GInstanceInitFunc) sp_canvas_acetate_init,
+ NULL
};
- acetate_type = gtk_type_unique (sp_canvas_item_get_type (), &acetate_info);
+ acetate_type = g_type_register_static (sp_canvas_item_get_type (), "SPCanvasAcetate", &acetate_info, (GTypeFlags)0);
}
return acetate_type;
}
@@ -52,7 +54,7 @@ sp_canvas_acetate_class_init (SPCanvasAcetateClass *klass)
object_class = (GtkObjectClass *) klass;
item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_canvas_acetate_destroy;
diff --git a/src/display/gnome-canvas-acetate.h b/src/display/gnome-canvas-acetate.h
index 756c663ca..ed6c99811 100644
--- a/src/display/gnome-canvas-acetate.h
+++ b/src/display/gnome-canvas-acetate.h
@@ -34,7 +34,7 @@ struct SPCanvasAcetateClass {
SPCanvasItemClass parent_class;
};
-GtkType sp_canvas_acetate_get_type (void);
+GType sp_canvas_acetate_get_type (void);
diff --git a/src/display/nr-filter-gaussian.cpp b/src/display/nr-filter-gaussian.cpp
index 884e832ef..3a6b425e1 100644
--- a/src/display/nr-filter-gaussian.cpp
+++ b/src/display/nr-filter-gaussian.cpp
@@ -1,5 +1,3 @@
-#define __NR_FILTER_GAUSSIAN_CPP__
-
/*
* Gaussian blur renderer
*
@@ -523,8 +521,8 @@ gaussian_pass_FIR(Geom::Dim2 d, double deviation, cairo_surface_t *src, cairo_su
{
int scr_len = _effect_area_scr(deviation);
// Filter kernel for x direction
- FIRValue kernel[scr_len+1];
- _make_kernel(kernel, deviation);
+ std::vector<FIRValue> kernel(scr_len + 1);
+ _make_kernel(&kernel[0], deviation);
int stride = cairo_image_surface_get_stride(src);
int w = cairo_image_surface_get_width(src);
@@ -537,13 +535,13 @@ gaussian_pass_FIR(Geom::Dim2 d, double deviation, cairo_surface_t *src, cairo_su
filter2D_FIR<unsigned char,1>(
cairo_image_surface_get_data(dest), d == Geom::X ? 1 : stride, d == Geom::X ? stride : 1,
cairo_image_surface_get_data(src), d == Geom::X ? 1 : stride, d == Geom::X ? stride : 1,
- w, h, kernel, scr_len, num_threads);
+ w, h, &kernel[0], scr_len, num_threads);
break;
case CAIRO_FORMAT_ARGB32: ///< Premultiplied 8 bit RGBA
filter2D_FIR<unsigned char,4>(
cairo_image_surface_get_data(dest), d == Geom::X ? 4 : stride, d == Geom::X ? stride : 4,
cairo_image_surface_get_data(src), d == Geom::X ? 4 : stride, d == Geom::X ? stride : 4,
- w, h, kernel, scr_len, num_threads);
+ w, h, &kernel[0], scr_len, num_threads);
break;
default:
assert(false);
diff --git a/src/display/nr-filter-primitive.cpp b/src/display/nr-filter-primitive.cpp
index b544d6df0..539e3e952 100644
--- a/src/display/nr-filter-primitive.cpp
+++ b/src/display/nr-filter-primitive.cpp
@@ -1,5 +1,3 @@
-#define __NR_FILTER_PRIMITIVE_CPP__
-
/*
* SVG filters rendering
*
diff --git a/src/display/nr-filter.cpp b/src/display/nr-filter.cpp
index a0997cc1b..10b4084ed 100644
--- a/src/display/nr-filter.cpp
+++ b/src/display/nr-filter.cpp
@@ -1,5 +1,3 @@
-#define __NR_FILTER_CPP__
-
/*
* SVG filters rendering
*
diff --git a/src/display/nr-light.cpp b/src/display/nr-light.cpp
index 65912470d..6331d1546 100644
--- a/src/display/nr-light.cpp
+++ b/src/display/nr-light.cpp
@@ -1,5 +1,3 @@
-#define __NR_LIGHT_CPP__
-
/*
* Light rendering helpers
*
diff --git a/src/display/snap-indicator.cpp b/src/display/snap-indicator.cpp
index c3198cd37..e351a1145 100644
--- a/src/display/snap-indicator.cpp
+++ b/src/display/snap-indicator.cpp
@@ -138,12 +138,12 @@ SnapIndicator::set_new_snaptarget(Inkscape::SnappedPoint const &p, bool pre_snap
case SNAPTARGET_ELLIPSE_QUADRANT_POINT:
target_name = _("quadrant point");
break;
- case SNAPTARGET_CENTER:
- target_name = _("center");
- break;
case SNAPTARGET_CORNER:
target_name = _("corner");
break;
+ case SNAPTARGET_TEXT_ANCHOR:
+ target_name = _("text anchor");
+ break;
case SNAPTARGET_TEXT_BASELINE:
target_name = _("text baseline");
break;
@@ -206,14 +206,11 @@ SnapIndicator::set_new_snaptarget(Inkscape::SnappedPoint const &p, bool pre_snap
case SNAPSOURCE_ELLIPSE_QUADRANT_POINT:
source_name = _("Quadrant point");
break;
- case SNAPSOURCE_CENTER:
- source_name = _("Center");
- break;
case SNAPSOURCE_CORNER:
source_name = _("Corner");
break;
- case SNAPSOURCE_TEXT_BASELINE:
- source_name = _("Text baseline");
+ case SNAPSOURCE_TEXT_ANCHOR:
+ source_name = _("Text anchor");
break;
case SNAPSOURCE_GRID_PITCH:
source_name = _("Multiple of grid spacing");
diff --git a/src/display/sodipodi-ctrl.cpp b/src/display/sodipodi-ctrl.cpp
index 5e939ffee..0ff7ca9f5 100644
--- a/src/display/sodipodi-ctrl.cpp
+++ b/src/display/sodipodi-ctrl.cpp
@@ -40,10 +40,10 @@ static double sp_ctrl_point (SPCanvasItem *item, Geom::Point p, SPCanvasItem **a
static SPCanvasItemClass *parent_class;
-GtkType
+GType
sp_ctrl_get_type (void)
{
- static GtkType ctrl_type = 0;
+ static GType ctrl_type = 0;
if (!ctrl_type) {
static GTypeInfo const ctrl_info = {
sizeof (SPCtrlClass),
@@ -71,7 +71,7 @@ sp_ctrl_class_init (SPCtrlClass *klass)
object_class = (GtkObjectClass *) klass;
item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass *)gtk_type_class (sp_canvas_item_get_type ());
+ parent_class = (SPCanvasItemClass *)g_type_class_peek_parent (klass);
gtk_object_add_arg_type ("SPCtrl::shape", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_SHAPE);
gtk_object_add_arg_type ("SPCtrl::mode", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_MODE);
diff --git a/src/display/sodipodi-ctrl.h b/src/display/sodipodi-ctrl.h
index 3bf0889c7..4f114eac6 100644
--- a/src/display/sodipodi-ctrl.h
+++ b/src/display/sodipodi-ctrl.h
@@ -62,7 +62,7 @@ struct SPCtrlClass : public SPCanvasItemClass{
/* Standard Gtk function */
-GtkType sp_ctrl_get_type (void);
+GType sp_ctrl_get_type (void);
#endif /* !INKSCAPE_CTRL_H */
diff --git a/src/display/sodipodi-ctrlrect.cpp b/src/display/sodipodi-ctrlrect.cpp
index 592d45bc0..b516456e9 100644
--- a/src/display/sodipodi-ctrlrect.cpp
+++ b/src/display/sodipodi-ctrlrect.cpp
@@ -64,7 +64,7 @@ static void sp_ctrlrect_class_init(SPCtrlRectClass *c)
GtkObjectClass *object_class = (GtkObjectClass *) c;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) c;
- parent_class = (SPCanvasItemClass*) gtk_type_class(sp_canvas_item_get_type());
+ parent_class = (SPCanvasItemClass*) g_type_class_peek_parent(c);
object_class->destroy = sp_ctrlrect_destroy;
diff --git a/src/display/sodipodi-ctrlrect.h b/src/display/sodipodi-ctrlrect.h
index 945deabc4..e69b6ba68 100644
--- a/src/display/sodipodi-ctrlrect.h
+++ b/src/display/sodipodi-ctrlrect.h
@@ -57,7 +57,7 @@ private:
struct SPCtrlRectClass : public SPCanvasItemClass {};
-GtkType sp_ctrlrect_get_type();
+GType sp_ctrlrect_get_type();
#endif // SEEN_RUBBERBAND_H
diff --git a/src/display/sp-canvas-item.h b/src/display/sp-canvas-item.h
index f62dc34a7..9dbec547e 100644
--- a/src/display/sp-canvas-item.h
+++ b/src/display/sp-canvas-item.h
@@ -67,12 +67,12 @@ struct _SPCanvasItemClass : public GtkObjectClass {
int (* event) (SPCanvasItem *item, GdkEvent *event);
};
-SPCanvasItem *sp_canvas_item_new(SPCanvasGroup *parent, GtkType type, const gchar *first_arg_name, ...);
+SPCanvasItem *sp_canvas_item_new(SPCanvasGroup *parent, GType type, const gchar *first_arg_name, ...);
G_END_DECLS
-#define sp_canvas_item_set gtk_object_set
+#define sp_canvas_item_set g_object_set
void sp_canvas_item_affine_absolute(SPCanvasItem *item, Geom::Affine const &aff);
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp
index 977452834..23c6a430e 100644
--- a/src/display/sp-canvas.cpp
+++ b/src/display/sp-canvas.cpp
@@ -169,7 +169,7 @@ sp_canvas_item_init (SPCanvasItem *item)
* Constructs new SPCanvasItem on SPCanvasGroup.
*/
SPCanvasItem *
-sp_canvas_item_new (SPCanvasGroup *parent, GtkType type, gchar const *first_arg_name, ...)
+sp_canvas_item_new (SPCanvasGroup *parent, GType type, gchar const *first_arg_name, ...)
{
va_list args;
@@ -177,7 +177,7 @@ sp_canvas_item_new (SPCanvasGroup *parent, GtkType type, gchar const *first_arg_
g_return_val_if_fail (SP_IS_CANVAS_GROUP (parent), NULL);
g_return_val_if_fail (gtk_type_is_a (type, sp_canvas_item_get_type ()), NULL);
- SPCanvasItem *item = SP_CANVAS_ITEM (gtk_type_new (type));
+ SPCanvasItem *item = SP_CANVAS_ITEM (g_object_new (type, NULL));
va_start (args, first_arg_name);
sp_canvas_item_construct (item, parent, first_arg_name, args);
@@ -727,7 +727,7 @@ sp_canvas_group_class_init (SPCanvasGroupClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) klass;
- group_parent_class = (SPCanvasItemClass*)gtk_type_class (sp_canvas_item_get_type ());
+ group_parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_canvas_group_destroy;
@@ -884,7 +884,7 @@ static void
group_add (SPCanvasGroup *group, SPCanvasItem *item)
{
gtk_object_ref (GTK_OBJECT (item));
- gtk_object_sink (GTK_OBJECT (item));
+ g_object_ref_sink (item);
if (!group->items) {
group->items = g_list_append (group->items, item);
@@ -989,7 +989,7 @@ sp_canvas_class_init (SPCanvasClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
- canvas_parent_class = (GtkWidgetClass *)gtk_type_class (GTK_TYPE_WIDGET);
+ canvas_parent_class = (GtkWidgetClass *)g_type_class_peek_parent (klass);
object_class->destroy = sp_canvas_destroy;
@@ -1025,11 +1025,11 @@ sp_canvas_init (SPCanvas *canvas)
canvas->pick_event.crossing.y = 0;
/* Create the root item as a special case */
- canvas->root = SP_CANVAS_ITEM (gtk_type_new (sp_canvas_group_get_type ()));
+ canvas->root = SP_CANVAS_ITEM (g_object_new (sp_canvas_group_get_type (), NULL));
canvas->root->canvas = canvas;
gtk_object_ref (GTK_OBJECT (canvas->root));
- gtk_object_sink (GTK_OBJECT (canvas->root));
+ g_object_ref_sink (canvas->root);
canvas->need_repick = TRUE;
@@ -1125,7 +1125,7 @@ static void track_latency(GdkEvent const *event) {
GtkWidget *
sp_canvas_new_aa (void)
{
- SPCanvas *canvas = (SPCanvas *)gtk_type_new (sp_canvas_get_type ());
+ SPCanvas *canvas = (SPCanvas *)g_object_new (sp_canvas_get_type (), NULL);
return (GtkWidget *) canvas;
}
@@ -1464,9 +1464,6 @@ pick_current_item (SPCanvas *canvas, GdkEvent *event)
&& (canvas->current_item != NULL)
&& !canvas->left_grabbed_item) {
GdkEvent new_event;
- SPCanvasItem *item;
-
- item = canvas->current_item;
new_event = canvas->pick_event;
new_event.type = GDK_LEAVE_NOTIFY;
diff --git a/src/display/sp-ctrlline.cpp b/src/display/sp-ctrlline.cpp
index 6c763abdf..c185234d4 100644
--- a/src/display/sp-ctrlline.cpp
+++ b/src/display/sp-ctrlline.cpp
@@ -65,7 +65,7 @@ sp_ctrlline_class_init (SPCtrlLineClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_ctrlline_destroy;
diff --git a/src/display/sp-ctrlpoint.cpp b/src/display/sp-ctrlpoint.cpp
index c33cdeeb9..1cf7dded0 100644
--- a/src/display/sp-ctrlpoint.cpp
+++ b/src/display/sp-ctrlpoint.cpp
@@ -56,7 +56,7 @@ sp_ctrlpoint_class_init (SPCtrlPointClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_ctrlpoint_destroy;
diff --git a/src/display/sp-ctrlquadr.cpp b/src/display/sp-ctrlquadr.cpp
index 0701d0b10..b39886178 100644
--- a/src/display/sp-ctrlquadr.cpp
+++ b/src/display/sp-ctrlquadr.cpp
@@ -64,7 +64,7 @@ sp_ctrlquadr_class_init (SPCtrlQuadrClass *klass)
GtkObjectClass *object_class = (GtkObjectClass *) klass;
SPCanvasItemClass *item_class = (SPCanvasItemClass *) klass;
- parent_class = (SPCanvasItemClass*)gtk_type_class (SP_TYPE_CANVAS_ITEM);
+ parent_class = (SPCanvasItemClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_ctrlquadr_destroy;
diff --git a/src/dom/CMakeLists.txt b/src/dom/CMakeLists.txt
index b328418c7..df2411b13 100644
--- a/src/dom/CMakeLists.txt
+++ b/src/dom/CMakeLists.txt
@@ -32,6 +32,7 @@ set(dom_SRC
util/thread.cpp
util/ziptool.cpp
+
# -------
# Headers
css.h
@@ -69,8 +70,6 @@ set(dom_SRC
io/bufferstream.h
io/domstream.h
io/gzipstream.h
- io/httpclient.h
- io/socket.h
io/stringstream.h
io/uristream.h
diff --git a/src/dom/mingwenv.bat b/src/dom/mingwenv.bat
index 996566e7b..48e8bf096 100644
--- a/src/dom/mingwenv.bat
+++ b/src/dom/mingwenv.bat
@@ -1,2 +1,2 @@
-set PATH=c:\mingw\bin;%PATH%
-set RM=del
+set PATH=c:\mingw\bin;%PATH%
+set RM=del
diff --git a/src/ege-adjustment-action.cpp b/src/ege-adjustment-action.cpp
index 6b0ffd1ab..45a44ae0c 100644
--- a/src/ege-adjustment-action.cpp
+++ b/src/ege-adjustment-action.cpp
@@ -779,7 +779,7 @@ static GtkWidget* create_menu_item( GtkAction* action )
void value_changed_cb( GtkSpinButton* spin, EgeAdjustmentAction* act )
{
- if ( GTK_WIDGET_HAS_FOCUS( GTK_WIDGET(spin) ) ) {
+ if ( gtk_widget_has_focus( GTK_WIDGET(spin) ) ) {
ege_adjustment_action_defocus( act );
}
}
@@ -987,7 +987,7 @@ static gboolean process_tab( GtkWidget* widget, int direction )
GList* subChildren = gtk_container_get_children( GTK_CONTAINER(child) );
if ( subChildren ) {
GList* last = g_list_last(subChildren);
- if ( last && GTK_IS_SPIN_BUTTON(last->data) && GTK_WIDGET_IS_SENSITIVE( GTK_WIDGET(last->data) ) ) {
+ if ( last && GTK_IS_SPIN_BUTTON(last->data) && gtk_widget_is_sensitive( GTK_WIDGET(last->data) ) ) {
gtk_widget_grab_focus( GTK_WIDGET(last->data) );
handled = TRUE;
mid = 0; /* to stop loop */
diff --git a/src/ege-select-one-action.cpp b/src/ege-select-one-action.cpp
index ea08f1c06..e0130a68d 100644
--- a/src/ege-select-one-action.cpp
+++ b/src/ege-select-one-action.cpp
@@ -735,7 +735,7 @@ GtkWidget* create_tool_item( GtkAction* action )
g_signal_connect( G_OBJECT(ract), "changed", G_CALLBACK( proxy_action_chagned_cb ), act );
sub = gtk_action_create_tool_item( GTK_ACTION(ract) );
- gtk_action_connect_proxy( GTK_ACTION(ract), sub );
+ gtk_activatable_set_related_action( GTK_ACTIVATABLE (sub), GTK_ACTION(ract) );
gtk_tool_item_set_tooltip_text( GTK_TOOL_ITEM(sub), tip );
gtk_box_pack_start( GTK_BOX(holder), sub, FALSE, FALSE, 0 );
diff --git a/src/extension/CMakeLists.txt b/src/extension/CMakeLists.txt
index 5ccb5c984..c9c466bb0 100644
--- a/src/extension/CMakeLists.txt
+++ b/src/extension/CMakeLists.txt
@@ -118,6 +118,7 @@ set(extension_SRC
internal/filter/drop-shadow.h
internal/filter/experimental.h
internal/filter/filter.h
+ internal/filter/image.h
internal/filter/morphology.h
internal/filter/shadows.h
internal/filter/snow.h
diff --git a/src/extension/effect.cpp b/src/extension/effect.cpp
index 51aa42da6..e01eb760a 100644
--- a/src/extension/effect.cpp
+++ b/src/extension/effect.cpp
@@ -324,7 +324,7 @@ Effect::set_last_effect (Effect * in_effect)
Inkscape::XML::Node *
Effect::find_menu (Inkscape::XML::Node * menustruct, const gchar *name)
{
- if (menustruct == NULL) return false;
+ if (menustruct == NULL) return NULL;
for (Inkscape::XML::Node * child = menustruct;
child != NULL;
child = child->next()) {
diff --git a/src/extension/internal/filter/experimental.h b/src/extension/internal/filter/experimental.h
index f60a6b414..96485ad97 100755
--- a/src/extension/internal/filter/experimental.h
+++ b/src/extension/internal/filter/experimental.h
@@ -301,7 +301,7 @@ CrossEngraving::get_filter_text (Inkscape::Extension::Extension * ext)
* Smoothness strength (0.01->20, default 0.6) -> blur2 (stdDeviation)
* Dilatation (1.->50., default 6) -> color2 (n-1th value)
* Erosion (0.->50., default 2) -> color2 (nth value 0->-50)
- * Transluscent (boolean, default false) -> composite 8 (in, true->merge1, false->color5)
+ * translucent (boolean, default false) -> composite 8 (in, true->merge1, false->color5)
* Blur strength (0.01->20., default 1.) -> blur3 (stdDeviation)
* Blur dilatation (1.->50., default 6) -> color4 (n-1th value)
@@ -379,7 +379,7 @@ Drawing::get_filter_text (Inkscape::Extension::Extension * ext)
std::ostringstream smooth;
std::ostringstream dilat;
std::ostringstream erosion;
- std::ostringstream transluscent;
+ std::ostringstream translucent;
std::ostringstream offset;
std::ostringstream blur;
std::ostringstream bdilat;
@@ -401,10 +401,10 @@ Drawing::get_filter_text (Inkscape::Extension::Extension * ext)
smooth << ext->get_param_float("smooth");
dilat << ext->get_param_float("dilat");
erosion << (- ext->get_param_float("erosion"));
- if (ext->get_param_bool("transluscent"))
- transluscent << "merge1";
+ if (ext->get_param_bool("translucent"))
+ translucent << "merge1";
else
- transluscent << "color5";
+ translucent << "color5";
offset << ext->get_param_int("offset");
blur << ext->get_param_float("blur");
@@ -462,7 +462,7 @@ Drawing::get_filter_text (Inkscape::Extension::Extension * ext)
"</feMerge>\n"
"<feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1.3 0 \" result=\"color5\" flood-opacity=\"0.56\" />\n"
"<feComposite in=\"%s\" in2=\"SourceGraphic\" operator=\"in\" result=\"composite8\" />\n"
- "</filter>\n", simply.str().c_str(), clean.str().c_str(), erase.str().c_str(), smooth.str().c_str(), dilat.str().c_str(), erosion.str().c_str(), blur.str().c_str(), bdilat.str().c_str(), berosion.str().c_str(), stroker.str().c_str(), strokeg.str().c_str(), strokeb.str().c_str(), ios.str().c_str(), strokea.str().c_str(), offset.str().c_str(), offset.str().c_str(), fillr.str().c_str(), fillg.str().c_str(), fillb.str().c_str(), iof.str().c_str(), filla.str().c_str(), transluscent.str().c_str());
+ "</filter>\n", simply.str().c_str(), clean.str().c_str(), erase.str().c_str(), smooth.str().c_str(), dilat.str().c_str(), erosion.str().c_str(), blur.str().c_str(), bdilat.str().c_str(), berosion.str().c_str(), stroker.str().c_str(), strokeg.str().c_str(), strokeb.str().c_str(), ios.str().c_str(), strokea.str().c_str(), offset.str().c_str(), offset.str().c_str(), fillr.str().c_str(), fillg.str().c_str(), fillb.str().c_str(), iof.str().c_str(), filla.str().c_str(), translucent.str().c_str());
return _filter;
}; /* Drawing filter */
diff --git a/src/extension/internal/filter/filter-all.cpp b/src/extension/internal/filter/filter-all.cpp
index 280dc9563..6ee849925 100755
--- a/src/extension/internal/filter/filter-all.cpp
+++ b/src/extension/internal/filter/filter-all.cpp
@@ -11,6 +11,7 @@
#include "abc.h"
#include "color.h"
#include "drop-shadow.h"
+#include "image.h"
#include "morphology.h"
#include "shadows.h"
#include "snow.h"
@@ -57,6 +58,9 @@ Filter::filters_all (void )
Solarize::init();
Tritone::init();
+ // Image
+ EdgeDetect::init();
+
// Morphology
Crosssmooth::init();
diff --git a/src/extension/internal/filter/image.h b/src/extension/internal/filter/image.h
new file mode 100644
index 000000000..926c56a4d
--- /dev/null
+++ b/src/extension/internal/filter/image.h
@@ -0,0 +1,113 @@
+#ifndef __INKSCAPE_EXTENSION_INTERNAL_FILTER_IMAGE_H__
+#define __INKSCAPE_EXTENSION_INTERNAL_FILTER_IMAGE_H__
+/* Change the 'IMAGE' above to be your file name */
+
+/*
+ * Copyright (C) 2011 Authors:
+ * Ivan Louette (filters)
+ * Nicolas Dufour (UI) <nicoduf@yahoo.fr>
+ *
+ * Image filters
+ * Edge detect
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+/* ^^^ Change the copyright to be you and your e-mail address ^^^ */
+
+#include "filter.h"
+
+#include "extension/internal/clear-n_.h"
+#include "extension/system.h"
+#include "extension/extension.h"
+
+namespace Inkscape {
+namespace Extension {
+namespace Internal {
+namespace Filter {
+
+/**
+ \brief Custom predefined Edge detect filter.
+
+ Detect color edges in object.
+
+ Filter's parameters:
+ * Detection type (enum, default Full) -> convolve (kernelMatrix)
+ * Level (0.01->10., default 1.) -> convolve (divisor)
+ * Inverted (boolean, default false) -> convolve (bias)
+*/
+class EdgeDetect : public Inkscape::Extension::Internal::Filter::Filter {
+protected:
+ virtual gchar const * get_filter_text (Inkscape::Extension::Extension * ext);
+
+public:
+ EdgeDetect ( ) : Filter() { };
+ virtual ~EdgeDetect ( ) { if (_filter != NULL) g_free((void *)_filter); return; }
+
+ static void init (void) {
+ Inkscape::Extension::build_from_mem(
+ "<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\n"
+ "<name>" N_("Edge detect, custom (Image)") "</name>\n"
+ "<id>org.inkscape.effect.filter.EdgeDetect</id>\n"
+ "<param name=\"type\" gui-text=\"" N_("Detect:") "\" type=\"enum\" >\n"
+ "<_item value=\"all\">" N_("All") "</_item>\n"
+ "<_item value=\"vertical\">" N_("Vertical lines") "</_item>\n"
+ "<_item value=\"horizontal\">" N_("Horizontal lines") "</_item>\n"
+ "</param>\n"
+ "<param name=\"level\" gui-text=\"" N_("Level:") "\" type=\"float\" appearance=\"full\" min=\"0.01\" max=\"10.0\">1.0</param>\n"
+ "<param name=\"inverted\" gui-text=\"" N_("Invert colors") "\" type=\"boolean\" >false</param>\n"
+ "<effect>\n"
+ "<object-type>all</object-type>\n"
+ "<effects-menu>\n"
+ "<submenu name=\"" N_("Filters") "\">\n"
+ "<submenu name=\"" N_("Experimental") "\"/>\n"
+ "</submenu>\n"
+ "</effects-menu>\n"
+ "<menu-tip>" N_("Detect color edges in object") "</menu-tip>\n"
+ "</effect>\n"
+ "</inkscape-extension>\n", new EdgeDetect());
+ };
+
+};
+
+gchar const *
+EdgeDetect::get_filter_text (Inkscape::Extension::Extension * ext)
+{
+ if (_filter != NULL) g_free((void *)_filter);
+
+ std::ostringstream matrix;
+ std::ostringstream inverted;
+ std::ostringstream level;
+
+ const gchar *type = ext->get_param_enum("type");
+
+ level << ext->get_param_float("level");
+
+ if ((g_ascii_strcasecmp("vertical", type) == 0)) {
+ matrix << "0 0 0 1 -2 1 0 0 0";
+ } else if ((g_ascii_strcasecmp("horizontal", type) == 0)) {
+ matrix << "0 1 0 0 -2 0 0 1 0";
+ } else {
+ matrix << "1 1 1 1 -8 1 1 1 1";
+ }
+
+ if (ext->get_param_bool("inverted")) {
+ inverted << "1";
+ } else {
+ inverted << "0";
+ }
+
+ _filter = g_strdup_printf(
+ "<filter xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" color-interpolation-filters=\"sRGB\" height=\"1.2\" width=\"1.2\" y=\"-0.1\" x=\"-0.1\" inkscape:label=\"Edge detect, custom\">\n"
+ "<feConvolveMatrix in=\"SourceGraphic\" kernelMatrix=\"%s\" order=\"3 3\" bias=\"%s\" divisor=\"%s\" targetX=\"1\" targetY=\"1\" preserveAlpha=\"true\" result=\"convolve\" />\n"
+ "</filter>\n", matrix.str().c_str(), inverted.str().c_str(), level.str().c_str());
+
+ return _filter;
+};
+
+}; /* namespace Filter */
+}; /* namespace Internal */
+}; /* namespace Extension */
+}; /* namespace Inkscape */
+
+/* Change the 'IMAGE' below to be your file name */
+#endif /* __INKSCAPE_EXTENSION_INTERNAL_FILTER_IMAGE_H__ */
diff --git a/src/extension/internal/filter/shadows.h b/src/extension/internal/filter/shadows.h
index e29092ae9..bfc6cace6 100644
--- a/src/extension/internal/filter/shadows.h
+++ b/src/extension/internal/filter/shadows.h
@@ -7,7 +7,7 @@
* Ivan Louette (filters)
* Nicolas Dufour (UI) <nicoduf@yahoo.fr>
*
- * Color filters
+ * Shadow filters
* Drop shadow
*
* Released under GNU GPL, read the file 'COPYING' for more information
@@ -34,7 +34,12 @@ namespace Filter {
* Blur radius (0.->200., default 3) -> blur (stdDeviation)
* Horizontal offset (-50.->50., default 6.0) -> offset (dx)
* Vertical offset (-50.->50., default 6.0) -> offset (dy)
+ * Blur type (enum, default outer) ->
+ outer = composite1 (operator="in"), composite2 (operator="over", in1="SourceGraphic", in2="offset")
+ inner = composite1 (operator="out"), composite2 (operator="atop", in1="offset", in2="SourceGraphic")
+ cutout = composite1 (operator="in"), composite2 (operator="out", in1="offset", in2="SourceGraphic")
* Color (guint, default 0,0,0,127) -> flood (flood-opacity, flood-color)
+ * Use object's color (boolean, default false) -> composite1 (in1, in2)
*/
class ColorizableDropShadow : public Inkscape::Extension::Internal::Filter::Filter {
protected:
@@ -47,21 +52,33 @@ public:
static void init (void) {
Inkscape::Extension::build_from_mem(
"<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\n"
- "<name>" N_("Drop shadow, custom (Shadows and Glows)") "</name>\n"
- "<id>org.inkscape.effect.filter.ColorDropShadow</id>\n"
- "<param name=\"blur\" gui-text=\"" N_("Blur radius (px):") "\" type=\"float\" appearance=\"full\" min=\"0.0\" max=\"200.0\">3.0</param>\n"
- "<param name=\"xoffset\" gui-text=\"" N_("Horizontal offset (px):") "\" type=\"float\" appearance=\"full\" min=\"-50.0\" max=\"50.0\">6.0</param>\n"
- "<param name=\"yoffset\" gui-text=\"" N_("Vertical offset (px):") "\" type=\"float\" appearance=\"full\" min=\"-50.0\" max=\"50.0\">6.0</param>\n"
- "<param name=\"color\" gui-text=\"" N_("Color") "\" type=\"color\">127</param>\n"
- "<effect>\n"
- "<object-type>all</object-type>\n"
- "<effects-menu>\n"
- "<submenu name=\"" N_("Filters") "\">\n"
- "<submenu name=\"" N_("Experimental") "\"/>\n"
+ "<name>" N_("Drop shadow, custom (Shadows and Glows)") "</name>\n"
+ "<id>org.inkscape.effect.filter.ColorDropShadow</id>\n"
+ "<param name=\"tab\" type=\"notebook\">\n"
+ "<page name=\"optionstab\" _gui-text=\"" N_("Options") "\">\n"
+ "<param name=\"blur\" gui-text=\"" N_("Blur radius (px):") "\" type=\"float\" appearance=\"full\" min=\"0.0\" max=\"200.0\">3.0</param>\n"
+ "<param name=\"xoffset\" gui-text=\"" N_("Horizontal offset (px):") "\" type=\"float\" appearance=\"full\" min=\"-50.0\" max=\"50.0\">6.0</param>\n"
+ "<param name=\"yoffset\" gui-text=\"" N_("Vertical offset (px):") "\" type=\"float\" appearance=\"full\" min=\"-50.0\" max=\"50.0\">6.0</param>\n"
+ "<param name=\"type\" gui-text=\"" N_("Blur type:") "\" type=\"enum\" >\n"
+ "<_item value=\"outer\">" N_("Outer") "</_item>\n"
+ "<_item value=\"inner\">" N_("Inner") "</_item>\n"
+ "<_item value=\"cutout\">" N_("Cutout") "</_item>\n"
+ "</param>\n"
+ "</page>\n"
+ "<page name=\"coltab\" _gui-text=\"" N_("Blur color") "\">\n"
+ "<param name=\"color\" gui-text=\"" N_("Color") "\" type=\"color\">127</param>\n"
+ "<param name=\"objcolor\" gui-text=\"" N_("Use object's color") "\" type=\"boolean\" >false</param>\n"
+ "</page>\n"
+ "</param>\n"
+ "<effect>\n"
+ "<object-type>all</object-type>\n"
+ "<effects-menu>\n"
+ "<submenu name=\"" N_("Filters") "\">\n"
+ "<submenu name=\"" N_("Experimental") "\"/>\n"
"</submenu>\n"
- "</effects-menu>\n"
- "<menu-tip>" N_("Colorizable Drop shadow") "</menu-tip>\n"
- "</effect>\n"
+ "</effects-menu>\n"
+ "<menu-tip>" N_("Colorizable Drop shadow") "</menu-tip>\n"
+ "</effect>\n"
"</inkscape-extension>\n", new ColorizableDropShadow());
};
@@ -79,9 +96,15 @@ ColorizableDropShadow::get_filter_text (Inkscape::Extension::Extension * ext)
std::ostringstream b;
std::ostringstream x;
std::ostringstream y;
-
+ std::ostringstream comp1in1;
+ std::ostringstream comp1in2;
+ std::ostringstream comp1op;
+ std::ostringstream comp2in1;
+ std::ostringstream comp2in2;
+ std::ostringstream comp2op;
+
+ const gchar *type = ext->get_param_enum("type");
guint32 color = ext->get_param_color("color");
-
blur << ext->get_param_float("blur");
x << ext->get_param_float("xoffset");
y << ext->get_param_float("yoffset");
@@ -90,14 +113,43 @@ ColorizableDropShadow::get_filter_text (Inkscape::Extension::Extension * ext)
g << ((color >> 16) & 0xff);
b << ((color >> 8) & 0xff);
+ if (ext->get_param_bool("objcolor")) {
+ comp1in1 << "SourceGraphic";
+ comp1in2 << "flood";
+ } else {
+ comp1in1 << "flood";
+ comp1in2 << "SourceGraphic";
+ }
+
+ if ((g_ascii_strcasecmp("outer", type) == 0)) {
+ comp1op << "in";
+ comp2op << "over";
+ comp2in1 << "SourceGraphic";
+ comp2in2 << "offset";
+ } else if ((g_ascii_strcasecmp("inner", type) == 0)) {
+ comp1op << "out";
+ comp2op << "atop";
+ comp2in1 << "offset";
+ comp2in2 << "SourceGraphic";
+ } else {
+ comp1op << "in";
+ comp2op << "out";
+ comp2in1 << "offset";
+ comp2in2 << "SourceGraphic";
+ }
+
+
_filter = g_strdup_printf(
"<filter xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" color-interpolation-filters=\"sRGB\" height=\"1.2\" width=\"1.2\" y=\"-0.1\" x=\"-0.1\" inkscape:label=\"Drop shadow, custom\">\n"
"<feFlood flood-opacity=\"%s\" flood-color=\"rgb(%s,%s,%s)\" result=\"flood\" />\n"
- "<feComposite in=\"flood\" in2=\"SourceGraphic\" operator=\"in\" result=\"composite1\" />\n"
+ "<feComposite in=\"%s\" in2=\"%s\" operator=\"%s\" result=\"composite1\" />\n"
"<feGaussianBlur in=\"composite1\" stdDeviation=\"%s\" result=\"blur\" />\n"
"<feOffset dx=\"%s\" dy=\"%s\" result=\"offset\" />\n"
- "<feComposite in=\"SourceGraphic\" in2=\"offset\" operator=\"over\" result=\"composite2\" />\n"
- "</filter>\n", a.str().c_str(), r.str().c_str(), g.str().c_str(), b.str().c_str(), blur.str().c_str(), x.str().c_str(), y.str().c_str());
+ "<feComposite in=\"%s\" in2=\"%s\" operator=\"%s\" result=\"composite2\" />\n"
+ "</filter>\n", a.str().c_str(), r.str().c_str(), g.str().c_str(), b.str().c_str(),
+ comp1in1.str().c_str(), comp1in2.str().c_str(), comp1op.str().c_str(),
+ blur.str().c_str(), x.str().c_str(), y.str().c_str(),
+ comp2in1.str().c_str(), comp2in2.str().c_str(), comp2op.str().c_str());
return _filter;
};
diff --git a/src/filters/CMakeLists.txt b/src/filters/CMakeLists.txt
index 7c698777d..50d4bc33a 100644
--- a/src/filters/CMakeLists.txt
+++ b/src/filters/CMakeLists.txt
@@ -22,6 +22,7 @@ set(filters_SRC
tile.cpp
turbulence.cpp
+
# -------
# Headers
blend.h
diff --git a/src/filters/merge.cpp b/src/filters/merge.cpp
index 47830c38b..b5a6d7dad 100644
--- a/src/filters/merge.cpp
+++ b/src/filters/merge.cpp
@@ -1,5 +1,3 @@
-#define __SP_FEMERGE_CPP__
-
/** \file
* SVG <feMerge> implementation.
*
diff --git a/src/filters/tile.cpp b/src/filters/tile.cpp
index c3555ee7c..42a59ede8 100644
--- a/src/filters/tile.cpp
+++ b/src/filters/tile.cpp
@@ -1,5 +1,3 @@
-#define __SP_FETILE_CPP__
-
/** \file
* SVG <feTile> implementation.
*
diff --git a/src/flood-context.cpp b/src/flood-context.cpp
index 73e82607a..90278ac95 100644
--- a/src/flood-context.cpp
+++ b/src/flood-context.cpp
@@ -84,7 +84,7 @@ static void sp_flood_finish(SPFloodContext *rc);
static SPEventContextClass *parent_class;
-GtkType sp_flood_context_get_type()
+GType sp_flood_context_get_type()
{
static GType type = 0;
if (!type) {
diff --git a/src/flood-context.h b/src/flood-context.h
index 6847c19be..0cab0f7c5 100644
--- a/src/flood-context.h
+++ b/src/flood-context.h
@@ -46,7 +46,7 @@ struct SPFloodContextClass {
/* Standard Gtk function */
-GtkType sp_flood_context_get_type (void);
+GType sp_flood_context_get_type (void);
GList* flood_channels_dropdown_items_list (void);
GList* flood_autogap_dropdown_items_list (void);
diff --git a/src/gradient-context.cpp b/src/gradient-context.cpp
index 86c86d2dc..c4bef4683 100644
--- a/src/gradient-context.cpp
+++ b/src/gradient-context.cpp
@@ -63,7 +63,7 @@ static void sp_gradient_drag(SPGradientContext &rc, Geom::Point const pt, guint
static SPEventContextClass *parent_class;
-GtkType sp_gradient_context_get_type()
+GType sp_gradient_context_get_type()
{
static GType type = 0;
if (!type) {
@@ -557,10 +557,12 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
if (!(event->button.state & GDK_CONTROL_MASK))
event_context->item_to_select = sp_event_context_find_item (desktop, button_w, event->button.state & GDK_MOD1_MASK, TRUE);
- SnapManager &m = desktop->namedview->snap_manager;
- m.setup(desktop);
- m.freeSnapReturnByRef(button_dt, Inkscape::SNAPSOURCE_NODE_HANDLE);
- m.unSetup();
+ if (!selection->isEmpty()) {
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ m.freeSnapReturnByRef(button_dt, Inkscape::SNAPSOURCE_NODE_HANDLE);
+ m.unSetup();
+ }
rc->origin = button_dt;
}
@@ -595,14 +597,14 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
} else {
- if (!drag->mouseOver()) {
+ if (!drag->mouseOver() && !selection->isEmpty()) {
SnapManager &m = desktop->namedview->snap_manager;
m.setup(desktop);
Geom::Point const motion_w(event->motion.x, event->motion.y);
Geom::Point const motion_dt = event_context->desktop->w2d(motion_w);
- m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_NODE_HANDLE));
+ m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_OTHER_HANDLE));
m.unSetup();
}
diff --git a/src/gradient-context.h b/src/gradient-context.h
index 1ed14cf3f..bdd7208b6 100644
--- a/src/gradient-context.h
+++ b/src/gradient-context.h
@@ -49,7 +49,7 @@ struct SPGradientContextClass {
};
/* Standard Gtk function */
-GtkType sp_gradient_context_get_type();
+GType sp_gradient_context_get_type();
void sp_gradient_context_select_next (SPEventContext *event_context);
void sp_gradient_context_select_prev (SPEventContext *event_context);
diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp
index 8f7effe43..142ae2a98 100644
--- a/src/gradient-drag.cpp
+++ b/src/gradient-drag.cpp
@@ -1962,7 +1962,7 @@ GrDrag::deleteSelected (bool just_one)
{
if (!selected) return;
- SPDocument *document = false;
+ SPDocument *document = NULL;
struct StructStopInfo {
SPStop * spstop;
diff --git a/src/graphlayout.cpp b/src/graphlayout.cpp
index 41e523b86..57002bfb6 100644
--- a/src/graphlayout.cpp
+++ b/src/graphlayout.cpp
@@ -157,11 +157,12 @@ void graphlayout(GSList const *const items) {
++i)
{
SPItem *iu=*i;
- map<string,unsigned>::iterator i=nodelookup.find(iu->getId());
- if(i==nodelookup.end()) {
+ map<string,unsigned>::iterator i_iter=nodelookup.find(iu->getId());
+ map<string,unsigned>::iterator i_iter_end=nodelookup.end();
+ if(i_iter==i_iter_end) {
continue;
}
- unsigned u=i->second;
+ unsigned u=i_iter->second;
GSList *nlist=iu->avoidRef->getAttachedConnectors(Avoid::runningFrom);
list<SPItem *> connectors;
diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt
index 8137487e2..1d6a82e41 100644
--- a/src/helper/CMakeLists.txt
+++ b/src/helper/CMakeLists.txt
@@ -1,5 +1,5 @@
-include(UseGlibMarshal)
+include(${CMAKE_SOURCE_DIR}/CMakeScripts/UseGlibMarshal.cmake)
GLIB_MARSHAL(sp_marshal sp-marshal "${CMAKE_CURRENT_BINARY_DIR}/helper")
@@ -46,5 +46,7 @@ set(helper_SRC
window.h
)
+set_source_files_properties(sp_marshal_SRC PROPERTIES GENERATED true)
+
# add_inkscape_lib(helper_LIB "${helper_SRC}")
add_inkscape_source("${helper_SRC}")
diff --git a/src/helper/unit-menu.cpp b/src/helper/unit-menu.cpp
index bcc8589e2..a87ac4abd 100644
--- a/src/helper/unit-menu.cpp
+++ b/src/helper/unit-menu.cpp
@@ -79,13 +79,8 @@ GType sp_unit_selector_get_type(void)
static void
sp_unit_selector_class_init(SPUnitSelectorClass *klass)
{
- GObjectClass *object_class;
- GtkWidgetClass *widget_class;
-
- object_class = G_OBJECT_CLASS(klass);
- widget_class = GTK_WIDGET_CLASS(klass);
-
- unit_selector_parent_class = (GtkHBoxClass*)gtk_type_class(GTK_TYPE_HBOX);
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
+ unit_selector_parent_class = (GtkHBoxClass*)g_type_class_peek_parent(klass);
signals[SET_UNIT] = g_signal_new("set_unit",
G_TYPE_FROM_CLASS(klass),
@@ -138,7 +133,7 @@ sp_unit_selector_finalize(GObject *object)
GtkWidget *
sp_unit_selector_new(guint bases)
{
- SPUnitSelector *us = (SPUnitSelector*)gtk_type_new(SP_TYPE_UNIT_SELECTOR);
+ SPUnitSelector *us = (SPUnitSelector*)g_object_new(SP_TYPE_UNIT_SELECTOR, NULL);
sp_unit_selector_set_bases(us, bases);
@@ -163,7 +158,7 @@ sp_unit_selector_get_unit(SPUnitSelector const *us)
static void
spus_unit_activate(GtkWidget *widget, SPUnitSelector *us)
{
- SPUnit const *unit = (SPUnit const *) gtk_object_get_data(GTK_OBJECT(widget), "unit");
+ SPUnit const *unit = (SPUnit const *) g_object_get_data(G_OBJECT(widget), "unit");
g_return_if_fail(unit != NULL);
#ifdef UNIT_SELECTOR_VERBOSE
@@ -232,7 +227,7 @@ spus_rebuild_menu(SPUnitSelector *us)
// i = gtk_menu_item_new_with_label((us->abbr) ? (us->plural) ? u->abbr_plural : u->abbr : (us->plural) ? u->plural : u->name);
GtkWidget *i = gtk_menu_item_new_with_label( u->abbr );
- gtk_object_set_data(GTK_OBJECT(i), "unit", (gpointer) u);
+ g_object_set_data(G_OBJECT(i), "unit", (gpointer) u);
g_signal_connect(G_OBJECT(i), "activate", G_CALLBACK(spus_unit_activate), us);
sp_set_font_size_smaller (i);
diff --git a/src/ink-comboboxentry-action.cpp b/src/ink-comboboxentry-action.cpp
index 49ab343c2..5147b04a8 100644
--- a/src/ink-comboboxentry-action.cpp
+++ b/src/ink-comboboxentry-action.cpp
@@ -402,7 +402,7 @@ GtkWidget* create_tool_item( GtkAction* action )
}
- gtk_action_connect_proxy( GTK_ACTION( action ), item );
+ gtk_activatable_set_related_action( GTK_ACTIVATABLE (item), GTK_ACTION( action ) );
gtk_widget_show_all( item );
} else {
diff --git a/src/inkscape-manifest.xml b/src/inkscape-manifest.xml
index fd2f19e43..f9ca4617f 100644
--- a/src/inkscape-manifest.xml
+++ b/src/inkscape-manifest.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-<dependency>
-<dependentAssembly>
-<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
- version="6.0.0.0" processorArchitecture="X86"
- publicKeyToken="6595b64144ccf1df" language="*"/>
-</dependentAssembly>
-</dependency>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<dependency>
+<dependentAssembly>
+<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0" processorArchitecture="X86"
+ publicKeyToken="6595b64144ccf1df" language="*"/>
+</dependentAssembly>
+</dependency>
</assembly> \ No newline at end of file
diff --git a/src/inkview-manifest.xml b/src/inkview-manifest.xml
index fd2f19e43..f9ca4617f 100644
--- a/src/inkview-manifest.xml
+++ b/src/inkview-manifest.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-<dependency>
-<dependentAssembly>
-<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
- version="6.0.0.0" processorArchitecture="X86"
- publicKeyToken="6595b64144ccf1df" language="*"/>
-</dependentAssembly>
-</dependency>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<dependency>
+<dependentAssembly>
+<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0" processorArchitecture="X86"
+ publicKeyToken="6595b64144ccf1df" language="*"/>
+</dependentAssembly>
+</dependency>
</assembly> \ No newline at end of file
diff --git a/src/inkview.cpp b/src/inkview.cpp
index 173427aae..09169f5be 100644
--- a/src/inkview.cpp
+++ b/src/inkview.cpp
@@ -312,7 +312,6 @@ main (int argc, const char **argv)
gtk_window_set_default_size (GTK_WINDOW (w),
MIN ((int)(ss.doc)->getWidth (), (int)gdk_screen_width () - 64),
MIN ((int)(ss.doc)->getHeight (), (int)gdk_screen_height () - 64));
- gtk_window_set_policy (GTK_WINDOW (w), TRUE, TRUE, FALSE);
ss.window = w;
g_signal_connect (G_OBJECT (w), "delete_event", (GCallback) sp_svgview_main_delete, &ss);
diff --git a/src/inkview.rc b/src/inkview.rc
index b2d3da7bc..83bb89ba4 100644
--- a/src/inkview.rc
+++ b/src/inkview.rc
@@ -1,29 +1,29 @@
-
-APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
-1 24 DISCARDABLE "./inkview-manifest.xml"
-
-1 VERSIONINFO
- FILEVERSION 0,48,0,9
- PRODUCTVERSION 0,48,0,9
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040901b5"
- BEGIN
- VALUE "Comments", "Published under the GNU GPL"
- VALUE "CompanyName", "inkscape.org"
- VALUE "FileDescription", "Inkview"
- VALUE "FileVersion", "0.48+devel"
- VALUE "InternalName", "Inkview"
- VALUE "LegalCopyright", "© 2010 Inkscape"
- VALUE "ProductName", "Inkview"
- VALUE "ProductVersion", "0.48+devel"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 1033, 437
- END
-END
-
-1000 BITMAP "./show-preview.bmp"
+
+APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
+1 24 DISCARDABLE "./inkview-manifest.xml"
+
+1 VERSIONINFO
+ FILEVERSION 0,48,0,9
+ PRODUCTVERSION 0,48,0,9
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040901b5"
+ BEGIN
+ VALUE "Comments", "Published under the GNU GPL"
+ VALUE "CompanyName", "inkscape.org"
+ VALUE "FileDescription", "Inkview"
+ VALUE "FileVersion", "0.48+devel"
+ VALUE "InternalName", "Inkview"
+ VALUE "LegalCopyright", "© 2010 Inkscape"
+ VALUE "ProductName", "Inkview"
+ VALUE "ProductVersion", "0.48+devel"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 1033, 437
+ END
+END
+
+1000 BITMAP "./show-preview.bmp"
diff --git a/src/interface.cpp b/src/interface.cpp
index 11882ddf9..c7946cf18 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -216,9 +216,7 @@ sp_create_window(SPViewWidget *vw, gboolean editable)
}
}
- } else {
- gtk_window_set_policy(GTK_WINDOW(win->gobj()), TRUE, TRUE, TRUE);
- }
+ }
if ( completeDropTargets == 0 || completeDropTargetsCount == 0 )
{
@@ -458,7 +456,7 @@ sp_ui_menu_append_item( GtkMenu *menu, gchar const *stock,
g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL);
}
- gtk_menu_append(GTK_MENU(menu), item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
return item;
@@ -564,7 +562,7 @@ sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb *verb, Inkscape::
}
gtk_widget_show(item);
- gtk_menu_append(GTK_MENU(menu), item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
return item;
@@ -955,7 +953,7 @@ sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI:
GtkWidget *item = gtk_menu_item_new_with_label(string);
gtk_widget_set_sensitive(item, false);
gtk_widget_show(item);
- gtk_menu_append(GTK_MENU(menu), item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
}
continue;
}
@@ -966,7 +964,7 @@ sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI:
|| !strcmp(menu_pntr->name(), "seperator")) {
GtkWidget *item = gtk_separator_menu_item_new();
gtk_widget_show(item);
- gtk_menu_append(GTK_MENU(menu), item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
continue;
}
if (!strcmp(menu_pntr->name(), "template-list")) {
@@ -995,7 +993,7 @@ sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI:
GtkWidget *recent_item = gtk_menu_item_new_with_mnemonic(_("Open _Recent"));
gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent_item), recent_menu);
- gtk_menu_append(GTK_MENU(menu), GTK_WIDGET(recent_item));
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(recent_item));
// this will just sit and update the list's item count
static MaxRecentObserver *mro = new MaxRecentObserver(recent_menu);
prefs->addObserver(*mro);
diff --git a/src/knot.cpp b/src/knot.cpp
index 638b31007..1ffb5269c 100644
--- a/src/knot.cpp
+++ b/src/knot.cpp
@@ -649,12 +649,12 @@ void sp_knot_update_ctrl(SPKnot *knot)
return;
}
- gtk_object_set(GTK_OBJECT(knot->item), "shape", knot->shape, NULL);
- gtk_object_set(GTK_OBJECT(knot->item), "mode", knot->mode, NULL);
- gtk_object_set(GTK_OBJECT(knot->item), "size", (gdouble) knot->size, NULL);
- gtk_object_set(GTK_OBJECT(knot->item), "anchor", knot->anchor, NULL);
+ g_object_set(knot->item, "shape", knot->shape, NULL);
+ g_object_set(knot->item, "mode", knot->mode, NULL);
+ g_object_set(knot->item, "size", (gdouble) knot->size, NULL);
+ g_object_set(knot->item, "anchor", knot->anchor, NULL);
if (knot->pixbuf) {
- gtk_object_set(GTK_OBJECT (knot->item), "pixbuf", knot->pixbuf, NULL);
+ g_object_set(knot->item, "pixbuf", knot->pixbuf, NULL);
}
sp_knot_set_ctrl_state(knot);
@@ -666,29 +666,29 @@ void sp_knot_update_ctrl(SPKnot *knot)
static void sp_knot_set_ctrl_state(SPKnot *knot)
{
if (knot->flags & SP_KNOT_DRAGGING) {
- gtk_object_set(GTK_OBJECT (knot->item),
+ g_object_set(knot->item,
"fill_color",
knot->fill[SP_KNOT_STATE_DRAGGING],
NULL);
- gtk_object_set(GTK_OBJECT (knot->item),
+ g_object_set(knot->item,
"stroke_color",
knot->stroke[SP_KNOT_STATE_DRAGGING],
NULL);
} else if (knot->flags & SP_KNOT_MOUSEOVER) {
- gtk_object_set(GTK_OBJECT(knot->item),
+ g_object_set(knot->item,
"fill_color",
knot->fill[SP_KNOT_STATE_MOUSEOVER],
NULL);
- gtk_object_set(GTK_OBJECT(knot->item),
+ g_object_set(knot->item,
"stroke_color",
knot->stroke[SP_KNOT_STATE_MOUSEOVER],
NULL);
} else {
- gtk_object_set(GTK_OBJECT(knot->item),
+ g_object_set(knot->item,
"fill_color",
knot->fill[SP_KNOT_STATE_NORMAL],
NULL);
- gtk_object_set(GTK_OBJECT(knot->item),
+ g_object_set(knot->item,
"stroke_color",
knot->stroke[SP_KNOT_STATE_NORMAL],
NULL);
diff --git a/src/libavoid/vpsc.cpp b/src/libavoid/vpsc.cpp
index 19d360375..1646ddaaa 100644
--- a/src/libavoid/vpsc.cpp
+++ b/src/libavoid/vpsc.cpp
@@ -422,7 +422,7 @@ Constraint* IncSolver::mostViolated(Constraints &l) {
// downwards. There is always at least 1 element in the
// vector because of search.
// TODO check this logic and add parens:
- if((deletePoint != end) && ((minSlack < ZERO_UPPERBOUND) && !v->active || v->equality)) {
+ if((deletePoint != end) && (((minSlack < ZERO_UPPERBOUND) && !v->active) || v->equality)) {
*deletePoint = l[l.size()-1];
l.resize(l.size()-1);
}
diff --git a/src/libcola/cola.cpp b/src/libcola/cola.cpp
index 62771ece2..87fbf9f79 100644
--- a/src/libcola/cola.cpp
+++ b/src/libcola/cola.cpp
@@ -4,6 +4,8 @@
#include "shortest_paths.h"
#include <2geom/math-utils.h>
+using namespace std;
+
namespace cola {
/**
@@ -16,8 +18,8 @@ inline double dummy_var_euclidean_dist(GradientProjection* gpx, GradientProjecti
}
ConstrainedMajorizationLayout
::ConstrainedMajorizationLayout(
- vector<Rectangle*>& rs,
- vector<Edge>& es,
+ std::vector<Rectangle*>& rs,
+ std::vector<Edge>& es,
double* eweights,
double idealLength,
TestConvergence& done)
@@ -85,10 +87,10 @@ ConstrainedMajorizationLayout
for(Cluster::iterator vit=c->begin();
vit!=c->end(); ++vit) {
double pos = coords[k][*vit];
- minPos=min(pos,minPos);
- maxPos=max(pos,maxPos);
- p->leftof.push_back(make_pair(*vit,0));
- p->rightof.push_back(make_pair(*vit,0));
+ minPos = std::min(pos, minPos);
+ maxPos = std::max(pos, maxPos);
+ p->leftof.push_back(std::make_pair(*vit,0));
+ p->rightof.push_back(std::make_pair(*vit,0));
}
p->place_l = minPos;
p->place_r = maxPos;
@@ -108,7 +110,7 @@ void ConstrainedMajorizationLayout::majlayout(
double** Dij, GradientProjection* gp, double* coords)
{
double b[n];
- fill(b,b+n,0);
+ std::fill(b,b+n,0);
majlayout(Dij,gp,coords,b);
}
void ConstrainedMajorizationLayout::majlayout(
@@ -123,7 +125,7 @@ void ConstrainedMajorizationLayout::majlayout(
for (unsigned j = 0; j < lapSize; j++) {
if (j == i) continue;
dist_ij = euclidean_distance(i, j);
- if (dist_ij > 1e-30 && Dij[i][j] > 1e-30) { /* skip zero distances */
+ if (dist_ij > 1e-30 && Dij[i][j] > 1e-30) { /* skip zero distances */
/* calculate L_ij := w_{ij}*d_{ij}/dist_{ij} */
L_ij = 1.0 / (dist_ij * Dij[i][j]);
degree -= L_ij;
@@ -216,11 +218,11 @@ bool ConstrainedMajorizationLayout::run() {
return true;
}
static bool straightenToProjection=true;
-void ConstrainedMajorizationLayout::straighten(vector<straightener::Edge*>& sedges, Dim dim) {
- vector<straightener::Node*> snodes;
- for (unsigned i=0;i<lapSize;i++) {
- snodes.push_back(new straightener::Node(i,boundingBoxes[i]));
- }
+void ConstrainedMajorizationLayout::straighten(std::vector<straightener::Edge*>& sedges, Dim dim) {
+ std::vector<straightener::Node*> snodes;
+ for (unsigned i=0;i<lapSize;i++) {
+ snodes.push_back(new straightener::Node(i,boundingBoxes[i]));
+ }
SimpleConstraints cs;
straightener::generateConstraints(snodes,sedges,cs,dim);
n=snodes.size();
@@ -244,7 +246,7 @@ void ConstrainedMajorizationLayout::straighten(vector<straightener::Edge*>& sedg
LinearConstraints linearConstraints;
for(unsigned i=0;i<sedges.size();i++) {
sedges[i]->nodePath(snodes);
- vector<unsigned>& path=sedges[i]->path;
+ std::vector<unsigned>& path=sedges[i]->path;
// take u and v as the ends of the line
//unsigned u=path[0];
//unsigned v=path[path.size()-1];
@@ -267,7 +269,7 @@ void ConstrainedMajorizationLayout::straighten(vector<straightener::Edge*>& sedg
//cout << "Generated "<<linearConstraints.size()<< " linear constraints"<<endl;
assert(snodes.size()==lapSize+linearConstraints.size());
double b[n],*coords=dim==HORIZONTAL?X:Y,dist_ub,dist_bv;
- fill(b,b+n,0);
+ std::fill(b,b+n,0);
for(LinearConstraints::iterator i=linearConstraints.begin();
i!= linearConstraints.end();i++) {
LinearConstraint* c=*i;
@@ -286,10 +288,10 @@ void ConstrainedMajorizationLayout::straighten(vector<straightener::Edge*>& sedg
double wbv=edge_length*c->frac_bv;
dist_ub=euclidean_distance(c->u,c->b)*wub;
dist_bv=euclidean_distance(c->b,c->v)*wbv;
- wub=max(wub,0.00001);
- wbv=max(wbv,0.00001);
- dist_ub=max(dist_ub,0.00001);
- dist_bv=max(dist_bv,0.00001);
+ wub = std::max(wub,0.00001);
+ wbv = std::max(wbv,0.00001);
+ dist_ub = std::max(dist_ub,0.00001);
+ dist_bv = std::max(dist_bv,0.00001);
wub=1/(wub*wub);
wbv=1/(wbv*wbv);
Q[c->u][c->u]-=wub;
@@ -306,8 +308,8 @@ void ConstrainedMajorizationLayout::straighten(vector<straightener::Edge*>& sedg
- coords[c->b] / dist_ub - coords[c->b] / dist_bv;
}
}
- GradientProjection gp(dim,n,Q,coords,tol,100,
- (AlignmentConstraints*)NULL,false,(vpsc::Rectangle**)NULL,(PageBoundaryConstraints*)NULL,&cs);
+ GradientProjection gp(dim,n,Q,coords,tol,100,
+ (AlignmentConstraints*)NULL,false,(vpsc::Rectangle**)NULL,(PageBoundaryConstraints*)NULL,&cs);
constrainedLayout = true;
majlayout(Dij,&gp,coords,b);
for(unsigned i=0;i<sedges.size();i++) {
@@ -337,16 +339,14 @@ void ConstrainedMajorizationLayout::setupConstraints(
PageBoundaryConstraints* pbcx, PageBoundaryConstraints* pbcy,
SimpleConstraints* scx, SimpleConstraints* scy,
Clusters* cs,
- vector<straightener::Edge*>* straightenEdges) {
+ std::vector<straightener::Edge*>* straightenEdges) {
constrainedLayout = true;
this->avoidOverlaps = avoidOverlaps;
if(cs) {
clusters=cs;
}
- gpX=new GradientProjection(
- HORIZONTAL,n,Q,X,tol,100,acsx,avoidOverlaps,boundingBoxes,pbcx,scx);
- gpY=new GradientProjection(
- VERTICAL,n,Q,Y,tol,100,acsy,avoidOverlaps,boundingBoxes,pbcy,scy);
+ gpX = new GradientProjection(HORIZONTAL,n,Q,X,tol,100,acsx,avoidOverlaps,boundingBoxes,pbcx,scx);
+ gpY = new GradientProjection(VERTICAL,n,Q,Y,tol,100,acsy,avoidOverlaps,boundingBoxes,pbcy,scy);
this->straightenEdges = straightenEdges;
}
} // namespace cola
diff --git a/src/libcola/cola.h b/src/libcola/cola.h
index eda64cb5f..e1f19994e 100644
--- a/src/libcola/cola.h
+++ b/src/libcola/cola.h
@@ -12,47 +12,48 @@
#include "straightener.h"
-typedef vector<unsigned> Cluster;
-typedef vector<Cluster*> Clusters;
+typedef std::vector<unsigned> Cluster;
+typedef std::vector<Cluster*> Clusters;
namespace vpsc { class Rectangle; }
namespace cola {
using vpsc::Rectangle;
- typedef pair<unsigned, unsigned> Edge;
+ typedef std::pair<unsigned, unsigned> Edge;
// a graph component with a list of node_ids giving indices for some larger list of nodes
// for the nodes in this component, and a list of edges - node indices relative to this component
class Component {
public:
- vector<unsigned> node_ids;
- vector<Rectangle*> rects;
- vector<Edge> edges;
+ std::vector<unsigned> node_ids;
+ std::vector<Rectangle*> rects;
+ std::vector<Edge> edges;
SimpleConstraints scx, scy;
virtual ~Component();
void moveRectangles(double x, double y);
Rectangle* getBoundingBox();
};
+
// for a graph of n nodes, return connected components
void connectedComponents(
- const vector<Rectangle*> &rs,
- const vector<Edge> &es,
+ const std::vector<Rectangle*> &rs,
+ const std::vector<Edge> &es,
const SimpleConstraints &scx,
- const SimpleConstraints &scy,
- vector<Component*> &components);
+ const SimpleConstraints &scy,
+ std::vector<Component*> &components);
// move the contents of each component so that the components do not
// overlap.
- void separateComponents(const vector<Component*> &components);
+ void separateComponents(const std::vector<Component*> &components);
// defines references to three variables for which the goal function
// will be altered to prefer points u-b-v are in a linear arrangement
// such that b is placed at u+t(v-u).
struct LinearConstraint {
- LinearConstraint(unsigned u, unsigned v, unsigned b, double w,
+ LinearConstraint(unsigned u, unsigned v, unsigned b, double w,
double frac_ub, double frac_bv,
- double* X, double* Y)
+ double* X, double* Y)
: u(u),v(v),b(b),w(w),frac_ub(frac_ub),frac_bv(frac_bv),
- tAtProjection(true)
+ tAtProjection(true)
{
assert(frac_ub<=1.0);
assert(frac_bv<=1.0);
@@ -88,7 +89,7 @@ namespace cola {
dvv=t*t;
dvb=-t;
dbb=1;
- //printf("New LC: t=%f\n",t);
+ //printf("New LC: t=%f\n",t);
}
unsigned u;
unsigned v;
@@ -108,67 +109,69 @@ namespace cola {
double frac_bv;
bool tAtProjection;
};
- typedef vector<LinearConstraint*> LinearConstraints;
-
- class TestConvergence {
- public:
- double old_stress;
- TestConvergence(const double& tolerance = 0.001, const unsigned maxiterations = 1000)
- : tolerance(tolerance),
- maxiterations(maxiterations) { reset(); }
- virtual ~TestConvergence() {}
-
- virtual bool operator()(double new_stress, double* X, double* Y) {
- //std::cout<<"iteration="<<iterations<<", new_stress="<<new_stress<<std::endl;
- if (old_stress == DBL_MAX) {
- old_stress = new_stress;
- if(++iterations>=maxiterations) {;
- return true;
- } else {
- return false;
- }
- }
- bool converged =
- fabs(new_stress - old_stress) / (new_stress + 1e-10) < tolerance
- || ++iterations > maxiterations;
+
+ typedef std::vector<LinearConstraint*> LinearConstraints;
+
+class TestConvergence {
+public:
+ double old_stress;
+ TestConvergence(const double& tolerance = 0.001, const unsigned maxiterations = 1000)
+ : tolerance(tolerance),
+ maxiterations(maxiterations) { reset(); }
+ virtual ~TestConvergence() {}
+
+ virtual bool operator()(double new_stress, double* X, double* Y) {
+ //std::cout<<"iteration="<<iterations<<", new_stress="<<new_stress<<std::endl;
+ if (old_stress == DBL_MAX) {
old_stress = new_stress;
- return converged;
- }
- void reset() {
- old_stress = DBL_MAX;
- iterations = 0;
- }
- private:
- const double tolerance;
- const unsigned maxiterations;
- unsigned iterations;
- };
- static TestConvergence defaultTest(0.0001,100);
- class ConstrainedMajorizationLayout {
- public:
- ConstrainedMajorizationLayout(
- vector<Rectangle*>& rs,
- vector<Edge>& es,
- double* eweights,
- double idealLength,
- TestConvergence& done=defaultTest);
-
- void moveBoundingBoxes() {
- for(unsigned i=0;i<lapSize;i++) {
- boundingBoxes[i]->moveCentreX(X[i]);
- boundingBoxes[i]->moveCentreY(Y[i]);
+ if(++iterations>=maxiterations) {;
+ return true;
+ } else {
+ return false;
}
}
+ bool converged =
+ fabs(new_stress - old_stress) / (new_stress + 1e-10) < tolerance
+ || ++iterations > maxiterations;
+ old_stress = new_stress;
+ return converged;
+ }
+ void reset() {
+ old_stress = DBL_MAX;
+ iterations = 0;
+ }
+private:
+ const double tolerance;
+ const unsigned maxiterations;
+ unsigned iterations;
+};
+
+static TestConvergence defaultTest(0.0001,100);
+class ConstrainedMajorizationLayout {
+public:
+ ConstrainedMajorizationLayout(
+ std::vector<Rectangle*>& rs,
+ std::vector<Edge>& es,
+ double* eweights,
+ double idealLength,
+ TestConvergence& done=defaultTest);
+
+ void moveBoundingBoxes() {
+ for(unsigned i=0;i<lapSize;i++) {
+ boundingBoxes[i]->moveCentreX(X[i]);
+ boundingBoxes[i]->moveCentreY(Y[i]);
+ }
+ }
void setupConstraints(
AlignmentConstraints* acsx, AlignmentConstraints* acsy,
- bool avoidOverlaps,
+ bool avoidOverlaps,
PageBoundaryConstraints* pbcx = NULL,
PageBoundaryConstraints* pbcy = NULL,
SimpleConstraints* scx = NULL,
SimpleConstraints* scy = NULL,
Clusters* cs = NULL,
- vector<straightener::Edge*>* straightenEdges = NULL);
+ std::vector<straightener::Edge*>* straightenEdges = NULL);
void addLinearConstraints(LinearConstraints* linearConstraints);
@@ -191,8 +194,8 @@ namespace cola {
delete [] X;
delete [] Y;
}
- bool run();
- void straighten(vector<straightener::Edge*>&, Dim);
+ bool run();
+ void straighten(std::vector<straightener::Edge*>&, Dim);
bool avoidOverlaps;
bool constrainedLayout;
private:
@@ -203,7 +206,7 @@ namespace cola {
}
double compute_stress(double **Dij);
void majlayout(double** Dij,GradientProjection* gp, double* coords);
- void majlayout(double** Dij,GradientProjection* gp, double* coords,
+ void majlayout(double** Dij,GradientProjection* gp, double* coords,
double* b);
unsigned n; // is lapSize + dummyVars
unsigned lapSize; // lapSize is the number of variables for actual nodes
@@ -211,15 +214,25 @@ namespace cola {
double** Q; // quadratic terms matrix used in computations
double** Dij;
double tol;
- TestConvergence& done;
+ TestConvergence& done;
Rectangle** boundingBoxes;
double *X, *Y;
Clusters* clusters;
double edge_length;
LinearConstraints *linearConstraints;
GradientProjection *gpX, *gpY;
- vector<straightener::Edge*>* straightenEdges;
- };
+ std::vector<straightener::Edge*>* straightenEdges;
+};
+
}
-#endif // COLA_H
+#endif // COLA_H
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
diff --git a/src/libcola/gradient_projection.h b/src/libcola/gradient_projection.h
index 4ef68fc2e..9907cdb13 100644
--- a/src/libcola/gradient_projection.h
+++ b/src/libcola/gradient_projection.h
@@ -9,11 +9,9 @@
#include <iostream>
#include <math.h>
-using namespace std;
-
-typedef vector<vpsc::Constraint*> Constraints;
-typedef vector<vpsc::Variable*> Variables;
-typedef vector<pair<unsigned,double> > OffsetList;
+typedef std::vector<vpsc::Constraint*> Constraints;
+typedef std::vector<vpsc::Variable*> Variables;
+typedef std::vector<std::pair<unsigned, double> > OffsetList;
class SimpleConstraint {
public:
@@ -23,7 +21,7 @@ public:
unsigned right;
double gap;
};
-typedef vector<SimpleConstraint*> SimpleConstraints;
+typedef std::vector<SimpleConstraint*> SimpleConstraints;
class AlignmentConstraint {
friend class GradientProjection;
public:
@@ -37,7 +35,7 @@ public:
private:
vpsc::Variable* variable;
};
-typedef vector<AlignmentConstraint*> AlignmentConstraints;
+typedef std::vector<AlignmentConstraint*> AlignmentConstraints;
class PageBoundaryConstraints {
public:
@@ -63,7 +61,7 @@ private:
double weight;
};
-typedef vector<pair<unsigned,double> > CList;
+typedef std::vector<std::pair<unsigned, double> > CList;
/**
* A DummyVarPair is a pair of variables with an ideal distance between them and which have no
* other interaction with other variables apart from through constraints. This means that
@@ -170,19 +168,19 @@ friend class GradientProjection;
double old_place_l; // old_place is where the descent vec g was computed
double old_place_r;
};
-typedef vector<DummyVarPair*> DummyVars;
+typedef std::vector<DummyVarPair*> DummyVars;
enum Dim { HORIZONTAL, VERTICAL };
class GradientProjection {
public:
- GradientProjection(
+ GradientProjection(
const Dim k,
- unsigned n,
- double** A,
- double* x,
- double tol,
- unsigned max_iterations,
+ unsigned n,
+ double** A,
+ double* x,
+ double tol,
+ unsigned max_iterations,
AlignmentConstraints* acs=NULL,
bool nonOverlapConstraints=false,
vpsc::Rectangle** rs=NULL,
@@ -222,7 +220,7 @@ public:
if(!gcs.empty() || nonOverlapConstraints) {
constrained=true;
}
- }
+ }
virtual ~GradientProjection() {
delete [] g;
delete [] d;
@@ -236,16 +234,16 @@ public:
}
}
void clearDummyVars();
- unsigned solve(double* b);
+ unsigned solve(double* b);
DummyVars dummy_vars; // special vars that must be considered in Lapl.
private:
vpsc::IncSolver* setupVPSC();
void destroyVPSC(vpsc::IncSolver *vpsc);
Dim k;
- unsigned n; // number of actual vars
- double** A; // Graph laplacian matrix
+ unsigned n; // number of actual vars
+ double** A; // Graph laplacian matrix
double* place;
- Variables vars; // all variables
+ Variables vars; // all variables
// computations
Constraints gcs; /* global constraints - persist throughout all
iterations */
@@ -255,9 +253,9 @@ private:
double tolerance;
AlignmentConstraints* acs;
unsigned max_iterations;
- double* g; /* gradient */
- double* d;
- double* old_place;
+ double* g; /* gradient */
+ double* d;
+ double* old_place;
bool constrained;
};
diff --git a/src/libcola/shortest_paths.cpp b/src/libcola/shortest_paths.cpp
index 4f4183b07..ebc2c93de 100644
--- a/src/libcola/shortest_paths.cpp
+++ b/src/libcola/shortest_paths.cpp
@@ -73,6 +73,7 @@ void dijkstra(
}
}
}
+
void dijkstra(
unsigned s,
unsigned n,
@@ -80,21 +81,22 @@ void dijkstra(
vector<Edge>& es,
double* eweights)
{
- assert(s<n);
- Node vs[n];
- dijkstra_init(vs,es,eweights);
- dijkstra(s,n,vs,d);
+ assert(s < n);
+ std::vector<Node> vs(n);
+ dijkstra_init(&vs[0], es, eweights);
+ dijkstra(s, n, &vs[0], d);
}
+
void johnsons(
unsigned n,
double** D,
vector<Edge>& es,
double* eweights)
{
- Node vs[n];
- dijkstra_init(vs,es,eweights);
- for(unsigned k=0;k<n;k++) {
- dijkstra(k,n,vs,D[k]);
+ std::vector<Node> vs(n);
+ dijkstra_init(&vs[0], es, eweights);
+ for (unsigned k = 0; k < n; k++) {
+ dijkstra(k,n,&vs[0],D[k]);
}
}
}
diff --git a/src/libcola/shortest_paths.h b/src/libcola/shortest_paths.h
index 20107caf0..f376b631c 100644
--- a/src/libcola/shortest_paths.h
+++ b/src/libcola/shortest_paths.h
@@ -1,7 +1,7 @@
// vim: set cindent
// vim: ts=4 sw=4 et tw=0 wm=0
#include <vector>
-using namespace std;
+
template <class T>
class PairNode;
namespace shortest_paths {
@@ -9,20 +9,23 @@ namespace shortest_paths {
struct Node {
unsigned id;
double d;
- Node* p; // predecessor
- vector<Node*> neighbours;
- vector<double> nweights;
- PairNode<Node*>* qnode;
+ Node *p; // predecessor
+ std::vector<Node*> neighbours;
+ std::vector<double> nweights;
+ PairNode<Node*> *qnode;
};
inline bool compareNodes(Node *const &u, Node *const &v) {
- return u->d < v->d;
+ return u->d < v->d;
}
-typedef pair<unsigned,unsigned> Edge;
+typedef std::pair<unsigned,unsigned> Edge;
+
void floyd_warshall(unsigned n, double** D,
- vector<Edge>& es,double* eweights);
+ std::vector<Edge>& es,double* eweights);
+
void johnsons(unsigned n, double** D,
- vector<Edge>& es, double* eweights);
+ std::vector<Edge>& es, double* eweights);
+
void dijkstra(unsigned s, unsigned n, double* d,
- vector<Edge>& es, double* eweights);
+ std::vector<Edge>& es, double* eweights);
}
diff --git a/src/libcola/straightener.cpp b/src/libcola/straightener.cpp
index e237c03c3..7a1020781 100644
--- a/src/libcola/straightener.cpp
+++ b/src/libcola/straightener.cpp
@@ -25,6 +25,8 @@
using std::set;
using std::vector;
using std::list;
+using std::pair;
+using std::make_pair;
namespace straightener {
@@ -108,7 +110,7 @@ namespace straightener {
int compare_events(const void *a, const void *b) {
Event *ea=*(Event**)a;
Event *eb=*(Event**)b;
- if(ea->v!=NULL&&ea->v==eb->v||ea->e!=NULL&&ea->e==eb->e) {
+ if((ea->v!=NULL&&ea->v==eb->v)||(ea->e!=NULL&&ea->e==eb->e)) {
// when comparing opening and closing from object
// open must come first
if(ea->type==Open) return -1;
@@ -263,8 +265,8 @@ namespace straightener {
// node is on an edge
Edge *edge=(*i)->edge;
if(!edge->isEnd(v->id)
- &&(l!=NULL&&!edge->isEnd(l->id)||l==NULL)
- &&(r!=NULL&&!edge->isEnd(r->id)||r==NULL)) {
+ &&((l!=NULL&&!edge->isEnd(l->id))||l==NULL)
+ &&((r!=NULL&&!edge->isEnd(r->id))||r==NULL)) {
if(lastNode!=NULL) {
//printf(" Rule A: Constraint: v%d +g <= v%d\n",lastNode->id,(*i)->id);
cs.push_back(createConstraint(lastNode,*i,dim));
diff --git a/src/libcola/straightener.h b/src/libcola/straightener.h
index 934be45ba..b1ce665f4 100644
--- a/src/libcola/straightener.h
+++ b/src/libcola/straightener.h
@@ -18,10 +18,10 @@ namespace straightener {
xmin=ymin=DBL_MAX;
xmax=ymax=-DBL_MAX;
for(unsigned i=0;i<n;i++) {
- xmin=min(xmin,xs[i]);
- xmax=max(xmax,xs[i]);
- ymin=min(ymin,ys[i]);
- ymax=max(ymax,ys[i]);
+ xmin = std::min(xmin,xs[i]);
+ xmax = std::max(xmax,xs[i]);
+ ymin = std::min(ymin,ys[i]);
+ ymax = std::max(ymax,ys[i]);
}
}
unsigned n;
@@ -35,8 +35,8 @@ namespace straightener {
unsigned startNode, endNode;
Route* route;
double xmin, xmax, ymin, ymax;
- vector<unsigned> dummyNodes;
- vector<unsigned> path;
+ std::vector<unsigned> dummyNodes;
+ std::vector<unsigned> path;
Edge(unsigned id, unsigned start, unsigned end, Route* route)
: id(id), startNode(start), endNode(end), route(route)
{
@@ -54,7 +54,7 @@ namespace straightener {
if(startNode==n||endNode==n) return true;
return false;
}
- void nodePath(vector<Node*>& nodes);
+ void nodePath(std::vector<Node*>& nodes);
void createRouteFromPath(double* X, double* Y) {
Route* r=new Route(path.size());
for(unsigned i=0;i<path.size();i++) {
@@ -63,7 +63,7 @@ namespace straightener {
}
setRoute(r);
}
- void xpos(double y, vector<double>& xs) {
+ void xpos(double y, std::vector<double>& xs) {
// search line segments for intersection points with y pos
for(unsigned i=1;i<route->n;i++) {
double ax=route->xs[i-1], bx=route->xs[i], ay=route->ys[i-1], by=route->ys[i];
@@ -74,7 +74,7 @@ namespace straightener {
}
}
}
- void ypos(double x, vector<double>& ys) {
+ void ypos(double x, std::vector<double>& ys) {
// search line segments for intersection points with x pos
for(unsigned i=1;i<route->n;i++) {
double ax=route->xs[i-1], bx=route->xs[i], ay=route->ys[i-1], by=route->ys[i];
@@ -104,8 +104,8 @@ namespace straightener {
edge(NULL),dummy(false),weight(-0.1),open(false) { }
private:
friend void sortNeighbours(Node* v, Node* l, Node* r,
- double conjpos, vector<Edge*>& openEdges,
- vector<Node*>& L,vector<Node*>& nodes, Dim dim);
+ double conjpos, std::vector<Edge*>& openEdges,
+ std::vector<Node*>& L, std::vector<Node*>& nodes, Dim dim);
Node(unsigned id, double x, double y, Edge* e) :
id(id),x(x),y(y), width(4), height(width),
xmin(x-width/2),xmax(x+width/2),
@@ -126,8 +126,8 @@ namespace straightener {
}
};
typedef std::set<Node*,CmpNodePos> NodeSet;
- void generateConstraints(vector<Node*>& nodes, vector<Edge*>& edges,vector<SimpleConstraint*>& cs, Dim dim);
- void nodePath(Edge& e,vector<Node*>& nodes, vector<unsigned>& path);
+ void generateConstraints(std::vector<Node*>& nodes, std::vector<Edge*>& edges, std::vector<SimpleConstraint*>& cs, Dim dim);
+ void nodePath(Edge& e, std::vector<Node*>& nodes, std::vector<unsigned>& path);
}
#endif
diff --git a/src/libcroco/CMakeLists.txt b/src/libcroco/CMakeLists.txt
index 890f58825..af7f49654 100644
--- a/src/libcroco/CMakeLists.txt
+++ b/src/libcroco/CMakeLists.txt
@@ -28,6 +28,9 @@ set(libcroco_SRC
cr-token.c
cr-utils.c
+
+ # -------
+ # Headers
cr-additional-sel.h
cr-attr-sel.h
cr-cascade.h
diff --git a/src/libcroco/cr-parser.c b/src/libcroco/cr-parser.c
index 5b0a56f32..a8e2de5a3 100644
--- a/src/libcroco/cr-parser.c
+++ b/src/libcroco/cr-parser.c
@@ -2408,7 +2408,7 @@ cr_parser_parse_stylesheet (CRParser * a_this)
import_string,
NULL, &location) ;
- if ((PRIVATE (a_this)->sac_handler->resolve_import == TRUE)) {
+ if (PRIVATE (a_this)->sac_handler->resolve_import == TRUE) {
/*
*TODO: resolve the
*import rule.
diff --git a/src/libgdl/gdl-dock-bar.c b/src/libgdl/gdl-dock-bar.c
index 1e694eec5..663378b7f 100644
--- a/src/libgdl/gdl-dock-bar.c
+++ b/src/libgdl/gdl-dock-bar.c
@@ -246,6 +246,7 @@ gdl_dock_bar_item_clicked (GtkWidget *button,
{
GdlDockBar *dockbar;
GdlDockObject *controller;
+ (void)button;
g_return_if_fail (item != NULL);
@@ -301,7 +302,7 @@ gdl_dock_bar_add_item (GdlDockBar *dockbar,
label = gtk_label_new (name);
if (dockbar->_priv->orientation == GTK_ORIENTATION_VERTICAL)
gtk_label_set_angle (GTK_LABEL (label), 90);
- gtk_box_pack_start_defaults (GTK_BOX (box), label);
+ gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
}
/* FIXME: For now AUTO behaves same as BOTH */
@@ -319,7 +320,7 @@ gdl_dock_bar_add_item (GdlDockBar *dockbar,
image = gtk_image_new_from_stock (GTK_STOCK_NEW,
GTK_ICON_SIZE_SMALL_TOOLBAR);
}
- gtk_box_pack_start_defaults (GTK_BOX (box), image);
+ gtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);
}
gtk_container_add (GTK_CONTAINER (button), box);
@@ -394,6 +395,7 @@ static void
gdl_dock_bar_layout_changed_cb (GdlDockMaster *master,
GdlDockBar *dockbar)
{
+ (void)master;
update_dock_items (dockbar, FALSE);
}
diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c
index c51b782b3..2513313ef 100644
--- a/src/libgdl/gdl-dock-item-grip.c
+++ b/src/libgdl/gdl-dock-item-grip.c
@@ -127,12 +127,11 @@ gdl_dock_item_grip_expose (GtkWidget *widget,
GdlDockItemGrip *grip;
GdkRectangle title_area;
GdkRectangle expose_area;
- GtkStyle *bg_style;
+ GdkGC *bg_style;
gint layout_width;
gint layout_height;
gint text_x;
gint text_y;
- gboolean item_or_child_has_focus;
grip = GDL_DOCK_ITEM_GRIP (widget);
gdl_dock_item_grip_get_title_area (grip, &title_area);
@@ -143,6 +142,7 @@ gdl_dock_item_grip_expose (GtkWidget *widget,
gtk_widget_get_style (widget)->dark_gc[widget->state] :
gtk_widget_get_style (widget)->mid_gc[widget->state]);
+
gdk_draw_rectangle (GDK_DRAWABLE (widget->window), bg_style, TRUE,
1, 0, widget->allocation.width - 1, widget->allocation.height);
@@ -201,6 +201,7 @@ gdl_dock_item_grip_item_notify (GObject *master,
{
GdlDockItemGrip *grip;
gboolean cursor;
+ (void)master;
grip = GDL_DOCK_ITEM_GRIP (data);
@@ -318,6 +319,7 @@ static void
gdl_dock_item_grip_close_clicked (GtkWidget *widget,
GdlDockItemGrip *grip)
{
+ (void)widget;
g_return_if_fail (grip->item != NULL);
gdl_dock_item_hide_item (grip->item);
@@ -327,6 +329,7 @@ static void
gdl_dock_item_grip_iconify_clicked (GtkWidget *widget,
GdlDockItemGrip *grip)
{
+ (void)widget;
g_return_if_fail (grip->item != NULL);
gdl_dock_item_iconify_item (grip->item);
@@ -556,8 +559,9 @@ gdl_dock_item_grip_size_allocate (GtkWidget *widget,
{
GdlDockItemGrip *grip;
GtkContainer *container;
- GtkRequisition button_requisition = { 0, };
+ GtkRequisition button_requisition;
GtkAllocation child_allocation;
+ memset(&button_requisition, 0, sizeof(button_requisition));
g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget));
g_return_if_fail (allocation != NULL);
@@ -625,6 +629,8 @@ static void
gdl_dock_item_grip_add (GtkContainer *container,
GtkWidget *widget)
{
+ (void)container;
+ (void)widget;
g_warning ("gtk_container_add not implemented for GdlDockItemGrip");
}
@@ -632,6 +638,8 @@ static void
gdl_dock_item_grip_remove (GtkContainer *container,
GtkWidget *widget)
{
+ (void)container;
+ (void)widget;
g_warning ("gtk_container_remove not implemented for GdlDockItemGrip");
}
@@ -653,9 +661,10 @@ gdl_dock_item_grip_forall (GtkContainer *container,
}
}
-static GtkType
+static GType
gdl_dock_item_grip_child_type (GtkContainer *container)
{
+ (void)container;
return G_TYPE_NONE;
}
diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c
index b0d97a06d..c01737636 100644
--- a/src/libgdl/gdl-dock-item.c
+++ b/src/libgdl/gdl-dock-item.c
@@ -79,11 +79,10 @@ static void gdl_dock_item_forall (GtkContainer *container,
gboolean include_internals,
GtkCallback callback,
gpointer callback_data);
-static GtkType gdl_dock_item_child_type (GtkContainer *container);
+static GType gdl_dock_item_child_type (GtkContainer *container);
static void gdl_dock_item_set_focus_child (GtkContainer *container,
- GtkWidget *widget,
- gpointer callback_data);
+ GtkWidget *widget);
static void gdl_dock_item_size_request (GtkWidget *widget,
GtkRequisition *requisition);
@@ -684,7 +683,7 @@ gdl_dock_item_forall (GtkContainer *container,
(* callback) (item->child, callback_data);
}
-static GtkType
+static GType
gdl_dock_item_child_type (GtkContainer *container)
{
g_return_val_if_fail (GDL_IS_DOCK_ITEM (container), G_TYPE_NONE);
@@ -697,13 +696,13 @@ gdl_dock_item_child_type (GtkContainer *container)
static void
gdl_dock_item_set_focus_child (GtkContainer *container,
- GtkWidget *child,
- gpointer callback_data)
+ GtkWidget *child)
{
g_return_if_fail (GDL_IS_DOCK_ITEM (container));
- if (GTK_CONTAINER_CLASS (parent_class)->set_focus_child)
+ if (GTK_CONTAINER_CLASS (parent_class)->set_focus_child) {
(* GTK_CONTAINER_CLASS (parent_class)->set_focus_child) (container, child);
+ }
gdl_dock_item_showhide_grip (GDL_DOCK_ITEM (container));
}
@@ -920,6 +919,8 @@ static void
gdl_dock_item_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
+ (void)previous_style;
+
g_return_if_fail (widget != NULL);
g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
@@ -935,10 +936,6 @@ static void
gdl_dock_item_paint (GtkWidget *widget,
GdkEventExpose *event)
{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (widget);
-
gtk_paint_box (widget->style,
widget->window,
gtk_widget_get_state (widget),
@@ -1454,9 +1451,10 @@ static void
gdl_dock_item_detach_menu (GtkWidget *widget,
GtkMenu *menu)
{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (widget);
+ GdlDockItem *item = GDL_DOCK_ITEM(widget);
+
+ (void)menu;
+
item->_priv->menu = NULL;
}
@@ -1539,12 +1537,13 @@ gdl_dock_item_tab_button (GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
- GdlDockItem *item;
+ GdlDockItem *item = GDL_DOCK_ITEM(data);
- item = GDL_DOCK_ITEM (data);
+ (void)widget;
- if (!GDL_DOCK_ITEM_NOT_LOCKED (item))
+ if (!GDL_DOCK_ITEM_NOT_LOCKED (item)) {
return;
+ }
switch (event->button) {
case 1:
@@ -1576,11 +1575,10 @@ static void
gdl_dock_item_hide_cb (GtkWidget *widget,
GdlDockItem *item)
{
- GdlDockMaster *master;
-
+ (void)widget;
+
g_return_if_fail (item != NULL);
- master = GDL_DOCK_OBJECT_GET_MASTER (item);
gdl_dock_item_hide_item (item);
}
@@ -1590,6 +1588,8 @@ gdl_dock_item_lock_cb (GtkWidget *widget,
{
g_return_if_fail (item != NULL);
+ (void)widget;
+
gdl_dock_item_lock (item);
}
@@ -1599,6 +1599,8 @@ gdl_dock_item_unlock_cb (GtkWidget *widget,
{
g_return_if_fail (item != NULL);
+ (void)widget;
+
gdl_dock_item_unlock (item);
}
@@ -1705,6 +1707,8 @@ gdl_dock_item_dock_to (GdlDockItem *item,
GdlDockPlacement position,
gint docking_param)
{
+ (void)docking_param;
+
g_return_if_fail (item != NULL);
g_return_if_fail (item != target);
g_return_if_fail (target != NULL || position == GDL_DOCK_FLOATING);
@@ -1782,13 +1786,12 @@ gdl_dock_item_set_tablabel (GdlDockItem *item,
NULL, item);
g_object_set (item->_priv->tab_label, "item", NULL, NULL);
}
- gtk_widget_unref (item->_priv->tab_label);
+ g_object_unref (item->_priv->tab_label);
item->_priv->tab_label = NULL;
}
if (tablabel) {
- gtk_widget_ref (tablabel);
- gtk_object_sink (GTK_OBJECT (tablabel));
+ g_object_ref_sink (G_OBJECT (tablabel));
item->_priv->tab_label = tablabel;
if (GDL_IS_DOCK_TABLABEL (tablabel)) {
g_object_set (tablabel, "item", item, NULL);
@@ -1883,8 +1886,7 @@ gdl_dock_item_hide_item (GdlDockItem *item)
"floatx", x,
"floaty", y,
NULL));
- g_object_ref (item->_priv->ph);
- gtk_object_sink (GTK_OBJECT (item->_priv->ph));
+ g_object_ref_sink (item->_priv->ph);
}
gdl_dock_object_freeze (GDL_DOCK_OBJECT (item));
@@ -1988,8 +1990,7 @@ gdl_dock_item_set_default_position (GdlDockItem *item,
if (reference && GDL_DOCK_OBJECT_ATTACHED (reference)) {
if (GDL_IS_DOCK_PLACEHOLDER (reference)) {
- g_object_ref (reference);
- gtk_object_sink (GTK_OBJECT (reference));
+ g_object_ref_sink (reference);
item->_priv->ph = GDL_DOCK_PLACEHOLDER (reference);
} else {
item->_priv->ph = GDL_DOCK_PLACEHOLDER (
@@ -1997,8 +1998,7 @@ gdl_dock_item_set_default_position (GdlDockItem *item,
"sticky", TRUE,
"host", reference,
NULL));
- g_object_ref (item->_priv->ph);
- gtk_object_sink (GTK_OBJECT (item->_priv->ph));
+ g_object_ref_sink (item->_priv->ph);
}
}
}
diff --git a/src/libgdl/gdl-dock-master.c b/src/libgdl/gdl-dock-master.c
index 1c362ed16..78cbf69ec 100644
--- a/src/libgdl/gdl-dock-master.c
+++ b/src/libgdl/gdl-dock-master.c
@@ -262,6 +262,7 @@ ht_foreach_build_slist (gpointer key,
gpointer value,
GSList **slist)
{
+ (void)key;
*slist = g_slist_prepend (*slist, value);
}
@@ -718,7 +719,11 @@ item_dock_cb (GdlDockObject *object,
gpointer user_data)
{
GdlDockMaster *master = user_data;
-
+
+ (void)object;
+ (void)position;
+ (void)other_data;
+
g_return_if_fail (requestor && GDL_IS_DOCK_OBJECT (requestor));
g_return_if_fail (master && GDL_IS_DOCK_MASTER (master));
@@ -740,6 +745,8 @@ item_detach_cb (GdlDockObject *object,
{
GdlDockMaster *master = user_data;
+ (void)recursive;
+
g_return_if_fail (object && GDL_IS_DOCK_OBJECT (object));
g_return_if_fail (master && GDL_IS_DOCK_MASTER (master));
@@ -760,6 +767,8 @@ item_notify_cb (GdlDockObject *object,
gint locked = COMPUTE_LOCKED (master);
gboolean item_locked;
+ (void)pspec;
+
g_object_get (object, "locked", &item_locked, NULL);
if (item_locked) {
@@ -798,8 +807,7 @@ gdl_dock_master_add (GdlDockMaster *master,
master, object, object->name, found_object);
}
else {
- g_object_ref (object);
- gtk_object_sink (GTK_OBJECT (object));
+ g_object_ref_sink (object);
g_hash_table_insert (master->dock_objects, g_strdup (object->name), object);
}
}
diff --git a/src/libgdl/gdl-dock-notebook.c b/src/libgdl/gdl-dock-notebook.c
index 6fb931ac7..f6e0aeeef 100644
--- a/src/libgdl/gdl-dock-notebook.c
+++ b/src/libgdl/gdl-dock-notebook.c
@@ -60,7 +60,7 @@ static void gdl_dock_notebook_dock (GdlDockObject *object,
GValue *other_data);
static void gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
- GtkNotebookPage *page,
+ GtkWidget *page,
gint page_num,
gpointer data);
@@ -157,6 +157,7 @@ gdl_dock_notebook_notify_cb (GObject *g_object,
gpointer user_data)
{
g_return_if_fail (user_data != NULL && GDL_IS_DOCK_NOTEBOOK (user_data));
+ (void)g_object;
/* chain the notify signal */
g_object_notify (G_OBJECT (user_data), pspec->name);
@@ -167,10 +168,12 @@ gdl_dock_notebook_button_cb (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
- if (event->type == GDK_BUTTON_PRESS)
+ (void)widget;
+ if (event->type == GDK_BUTTON_PRESS) {
GDL_DOCK_ITEM_SET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
- else
+ } else {
GDL_DOCK_ITEM_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
+ }
return FALSE;
}
@@ -261,12 +264,13 @@ gdl_dock_notebook_destroy (GtkObject *object)
static void
gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
- GtkNotebookPage *page,
+ GtkWidget *page,
gint page_num,
gpointer data)
{
GdlDockNotebook *notebook;
GtkWidget *tablabel;
+ (void)page_num;
notebook = GDL_DOCK_NOTEBOOK (data);
@@ -281,7 +285,7 @@ gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
/* activate new label */
tablabel = gtk_notebook_get_tab_label (
- nb, gtk_notebook_get_nth_page (nb, page_num));
+ nb, page);
if (tablabel && GDL_IS_DOCK_TABLABEL (tablabel))
gdl_dock_tablabel_activate (GDL_DOCK_TABLABEL (tablabel));
@@ -332,6 +336,7 @@ gdl_dock_notebook_forall (GtkContainer *container,
static GType
gdl_dock_notebook_child_type (GtkContainer *container)
{
+ (void)container;
return GDL_TYPE_DOCK_ITEM;
}
diff --git a/src/libgdl/gdl-dock-object.c b/src/libgdl/gdl-dock-object.c
index dadf072a0..9bdcd18ed 100644
--- a/src/libgdl/gdl-dock-object.c
+++ b/src/libgdl/gdl-dock-object.c
@@ -289,6 +289,7 @@ static void
gdl_dock_object_foreach_detach (GdlDockObject *object,
gpointer user_data)
{
+ (void)user_data;
gdl_dock_object_detach (object, TRUE);
}
@@ -415,7 +416,7 @@ gdl_dock_object_real_reduce (GdlDockObject *object)
g_object_unref (child);
}
/* sink the widget, so any automatic floating widget is destroyed */
- gtk_object_sink (GTK_OBJECT (object));
+ g_object_ref_sink (object);
/* don't reenter */
object->reduce_pending = FALSE;
gdl_dock_object_thaw (object);
@@ -431,6 +432,9 @@ gdl_dock_object_dock_unimplemented (GdlDockObject *object,
GdlDockPlacement position,
GValue *other_data)
{
+ (void)requestor;
+ (void)position;
+ (void)other_data;
g_warning (_("Call to gdl_dock_object_dock in a dock object %p "
"(object type is %s) which hasn't implemented this method"),
object, G_OBJECT_TYPE_NAME (object));
@@ -440,6 +444,7 @@ static void
gdl_dock_object_real_present (GdlDockObject *object,
GdlDockObject *child)
{
+ (void)child;
gtk_widget_show (GTK_WIDGET (object));
}
@@ -830,7 +835,7 @@ gdl_dock_param_get_type (void)
static GType our_type = 0;
if (our_type == 0) {
- GTypeInfo tinfo = { 0, };
+ GTypeInfo tinfo = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
our_type = g_type_register_static (G_TYPE_STRING, "GdlDockParam", &tinfo, 0);
/* register known transform functions */
diff --git a/src/libgdl/gdl-dock-paned.c b/src/libgdl/gdl-dock-paned.c
index 70273c886..5d0ac17ed 100644
--- a/src/libgdl/gdl-dock-paned.c
+++ b/src/libgdl/gdl-dock-paned.c
@@ -205,6 +205,7 @@ gdl_dock_paned_notify_cb (GObject *g_object,
gpointer user_data)
{
GdlDockPaned *paned;
+ (void)g_object;
g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data));
@@ -255,6 +256,7 @@ gdl_dock_paned_button_cb (GtkWidget *widget,
gpointer user_data)
{
GdlDockPaned *paned;
+ (void)widget;
g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data), FALSE);
diff --git a/src/libgdl/gdl-dock-placeholder.c b/src/libgdl/gdl-dock-placeholder.c
index e1785ae83..ca7763a55 100644
--- a/src/libgdl/gdl-dock-placeholder.c
+++ b/src/libgdl/gdl-dock-placeholder.c
@@ -352,6 +352,7 @@ gdl_dock_placeholder_detach (GdlDockObject *object,
gboolean recursive)
{
GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object);
+ (void)recursive;
/* disconnect handlers */
disconnect_host (ph);
@@ -366,6 +367,7 @@ gdl_dock_placeholder_detach (GdlDockObject *object,
static void
gdl_dock_placeholder_reduce (GdlDockObject *object)
{
+ (void)object;
/* placeholders are not reduced */
return;
}
@@ -532,6 +534,8 @@ static void
gdl_dock_placeholder_present (GdlDockObject *object,
GdlDockObject *child)
{
+ (void)object;
+ (void)child;
/* do nothing */
return;
}
@@ -574,7 +578,8 @@ gdl_dock_placeholder_weak_notify (gpointer data,
GObject *old_object)
{
GdlDockPlaceholder *ph;
-
+ (void)old_object;
+
g_return_if_fail (data != NULL && GDL_IS_DOCK_PLACEHOLDER (data));
ph = GDL_DOCK_PLACEHOLDER (data);
@@ -606,6 +611,7 @@ detach_cb (GdlDockObject *object,
{
GdlDockPlaceholder *ph;
GdlDockObject *new_host, *obj;
+ (void)recursive;
g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PLACEHOLDER (user_data));
@@ -735,7 +741,9 @@ dock_cb (GdlDockObject *object,
{
GdlDockPlacement pos = GDL_DOCK_NONE;
GdlDockPlaceholder *ph;
-
+ (void)position;
+ (void)other_data;
+
g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PLACEHOLDER (user_data));
ph = GDL_DOCK_PLACEHOLDER (user_data);
g_return_if_fail (ph->_priv->host == object);
diff --git a/src/libgdl/gdl-dock-tablabel.c b/src/libgdl/gdl-dock-tablabel.c
index 790bf7612..fb233fc3e 100644
--- a/src/libgdl/gdl-dock-tablabel.c
+++ b/src/libgdl/gdl-dock-tablabel.c
@@ -254,6 +254,7 @@ gdl_dock_tablabel_item_notify (GObject *master,
gboolean locked;
gchar *label;
GtkBin *bin;
+ (void)pspec;
g_object_get (master,
"locked", &locked,
diff --git a/src/libgdl/gdl-dock.c b/src/libgdl/gdl-dock.c
index c366ed69b..d80a47a1f 100644
--- a/src/libgdl/gdl-dock.c
+++ b/src/libgdl/gdl-dock.c
@@ -79,7 +79,7 @@ static void gdl_dock_forall (GtkContainer *container,
gboolean include_internals,
GtkCallback callback,
gpointer callback_data);
-static GtkType gdl_dock_child_type (GtkContainer *container);
+static GType gdl_dock_child_type (GtkContainer *container);
static void gdl_dock_detach (GdlDockObject *object,
gboolean recursive);
@@ -275,6 +275,8 @@ gdl_dock_floating_configure_event_cb (GtkWidget *widget,
{
GdlDock *dock;
+ (void)widget;
+
g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK (user_data), TRUE);
dock = GDL_DOCK (user_data);
@@ -510,7 +512,10 @@ gdl_dock_notify_cb (GObject *object,
gpointer user_data)
{
GdlDock *dock;
-
+
+ (void)pspec;
+ (void)user_data;
+
g_return_if_fail (object != NULL || GDL_IS_DOCK (object));
dock = GDL_DOCK (object);
@@ -561,7 +566,7 @@ gdl_dock_size_request (GtkWidget *widget,
border_width = container->border_width;
/* make request to root */
- if (dock->root && gtk_widget_get_visible (dock->root))
+ if (dock->root && gtk_widget_get_visible( GTK_WIDGET(dock->root) ))
gtk_widget_size_request (GTK_WIDGET (dock->root), requisition);
else {
requisition->width = 0;
@@ -597,8 +602,9 @@ gdl_dock_size_allocate (GtkWidget *widget,
allocation->width = MAX (1, allocation->width - 2 * border_width);
allocation->height = MAX (1, allocation->height - 2 * border_width);
- if (dock->root && gtk_widget_get_visible (dock->root))
+ if (dock->root && gtk_widget_get_visible( GTK_WIDGET(dock->root) )) {
gtk_widget_size_allocate (GTK_WIDGET (dock->root), allocation);
+ }
}
static void
@@ -740,6 +746,8 @@ gdl_dock_forall (GtkContainer *container,
{
GdlDock *dock;
+ (void)include_internals;
+
g_return_if_fail (container != NULL);
g_return_if_fail (GDL_IS_DOCK (container));
g_return_if_fail (callback != NULL);
@@ -750,9 +758,10 @@ gdl_dock_forall (GtkContainer *container,
(*callback) (GTK_WIDGET (dock->root), callback_data);
}
-static GtkType
+static GType
gdl_dock_child_type (GtkContainer *container)
{
+ (void)container;
return GDL_TYPE_DOCK_ITEM;
}
@@ -927,15 +936,16 @@ gdl_dock_dock (GdlDockObject *object,
/* Realize the item (create its corresponding GdkWindow) when
GdlDock has been realized. */
- if (gtk_widget_get_realized (dock))
+ if ( gtk_widget_get_realized( GTK_WIDGET(dock) )) {
gtk_widget_realize (widget);
-
+ }
+
/* Map the widget if it's visible and the parent is visible and has
been mapped. This is done to make sure that the GdkWindow is
visible. */
- if (gtk_widget_get_visible (dock) &&
+ if (gtk_widget_get_visible( GTK_WIDGET(dock) ) &&
gtk_widget_get_visible (widget)) {
- if (gtk_widget_get_mapped (dock))
+ if (gtk_widget_get_mapped( GTK_WIDGET(dock) ))
gtk_widget_map (widget);
/* Make the widget resize. */
@@ -1023,8 +1033,11 @@ gdl_dock_present (GdlDockObject *object,
{
GdlDock *dock = GDL_DOCK (object);
- if (dock->_priv->floating)
+ (void)child;
+
+ if (dock->_priv->floating) {
gtk_window_present (GTK_WINDOW (dock->_priv->window));
+ }
}
@@ -1097,6 +1110,8 @@ gdl_dock_select_larger_item (GdlDockItem *dock_item_1,
gint level /* for debugging */)
{
GtkRequisition size_1, size_2;
+
+ (void)level;
g_return_val_if_fail (dock_item_1 != NULL, dock_item_2);
g_return_val_if_fail (dock_item_2 != NULL, dock_item_1);
@@ -1218,7 +1233,7 @@ gdl_dock_add_item (GdlDock *dock,
/* Non-floating item. */
if (dock->root) {
GdlDockPlacement local_placement;
- GtkRequisition preferred_size;
+ /* GtkRequisition preferred_size; */
best_dock_item =
gdl_dock_find_best_placement_item (GDL_DOCK_ITEM (dock->root),
@@ -1258,10 +1273,11 @@ gdl_dock_add_floating_item (GdlDock *dock,
"floaty", y,
NULL));
- if (gtk_widget_get_visible (dock)) {
+ if (gtk_widget_get_visible( GTK_WIDGET(dock) )) {
gtk_widget_show (GTK_WIDGET (new_dock));
- if (gtk_widget_get_mapped (dock))
+ if (gtk_widget_get_mapped( GTK_WIDGET(dock) )) {
gtk_widget_map (GTK_WIDGET (new_dock));
+ }
/* Make the widget resize. */
gtk_widget_queue_resize (GTK_WIDGET (new_dock));
diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c
index 65e8b98fe..eccd66ce2 100644
--- a/src/libgdl/gdl-switcher.c
+++ b/src/libgdl/gdl-switcher.c
@@ -609,21 +609,22 @@ gdl_switcher_notify_cb (GObject *g_object, GParamSpec *pspec,
GdlSwitcher *switcher)
{
gboolean show_tabs;
+ (void)g_object;
+ (void)pspec;
g_return_if_fail (switcher != NULL && GDL_IS_SWITCHER (switcher));
show_tabs = gtk_notebook_get_show_tabs (GTK_NOTEBOOK (switcher));
gdl_switcher_set_show_buttons (switcher, !show_tabs);
}
static void
-gdl_switcher_switch_page_cb (GtkNotebook *nb, GtkNotebookPage *page,
+gdl_switcher_switch_page_cb (GtkNotebook *nb, GtkWidget *page_widget,
gint page_num, GdlSwitcher *switcher)
{
- GtkWidget *page_widget;
- GtkWidget *tablabel;
gint switcher_id;
-
+
+ (void)nb;
+ (void)page_num;
/* Change switcher button */
- page_widget = gtk_notebook_get_nth_page (nb, page_num);
switcher_id = gdl_switcher_get_page_id (page_widget);
gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id);
}
@@ -633,7 +634,9 @@ gdl_switcher_page_added_cb (GtkNotebook *nb, GtkWidget *page,
gint page_num, GdlSwitcher *switcher)
{
gint switcher_id;
-
+
+ (void)nb;
+ (void)page_num;
switcher_id = gdl_switcher_get_page_id (page);
gdl_switcher_add_button (GDL_SWITCHER (switcher), NULL, NULL, NULL, NULL,
@@ -679,6 +682,7 @@ gdl_switcher_class_init (GdlSwitcherClass *klass)
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ (void)notebook_class;
container_class->forall = gdl_switcher_forall;
container_class->remove = gdl_switcher_remove;
@@ -758,12 +762,13 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label,
gtk_container_add (GTK_CONTAINER (button_widget), hbox);
gtk_widget_show (hbox);
- if (stock_id)
+ if (stock_id) {
icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
- else if (pixbuf_icon)
+ } else if (pixbuf_icon) {
icon_widget = gtk_image_new_from_pixbuf (pixbuf_icon);
- else
+ } else {
icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_BUTTON);
+ }
gtk_widget_show (icon_widget);
diff --git a/src/libgdl/gdl-tools.h b/src/libgdl/gdl-tools.h
index 0cfc9fb95..2cc68c035 100644
--- a/src/libgdl/gdl-tools.h
+++ b/src/libgdl/gdl-tools.h
@@ -104,6 +104,7 @@ static void
type_as_function ## _class_init_trampoline (gpointer klass, \
gpointer data) \
{ \
+ (void)data; \
parent_class = (parent_type ## Class *)g_type_class_ref ( \
parent_type_macro); \
type_as_function ## _class_init ((type ## Class *)klass); \
@@ -122,7 +123,8 @@ type_as_function ## _get_type (void)
NULL, /* class_data */ \
sizeof (type), \
0, /* n_preallocs */ \
- (GInstanceInitFunc) type_as_function ## _instance_init \
+ (GInstanceInitFunc) type_as_function ## _instance_init , \
+ NULL, /* value_table */ \
}; \
object_type = register_type_macro \
(type, type_as_function, corba_type, \
diff --git a/src/libnr/CMakeLists.txt b/src/libnr/CMakeLists.txt
index b310068c0..b83358ae0 100644
--- a/src/libnr/CMakeLists.txt
+++ b/src/libnr/CMakeLists.txt
@@ -13,6 +13,7 @@ set(nr_SRC
nr-values.cpp
# testnr.cpp
+
# -------
# Headers
# in-svg-plane-test.h
diff --git a/src/libnrtype/CMakeLists.txt b/src/libnrtype/CMakeLists.txt
index 3d52e2c4e..1b28eb8e4 100644
--- a/src/libnrtype/CMakeLists.txt
+++ b/src/libnrtype/CMakeLists.txt
@@ -14,6 +14,9 @@ set(nrtype_SRC
nr-type-primitives.cpp
TextWrapper.cpp
+
+ # -------
+ # Headers
FontFactory.h
Layout-TNG-Scanline-Maker.h
Layout-TNG.h
diff --git a/src/libnrtype/Layout-TNG-OutIter.cpp b/src/libnrtype/Layout-TNG-OutIter.cpp
index 4d461a486..1d300b210 100644
--- a/src/libnrtype/Layout-TNG-OutIter.cpp
+++ b/src/libnrtype/Layout-TNG-OutIter.cpp
@@ -13,6 +13,7 @@
#include "font-instance.h"
#include "svg/svg-length.h"
#include <2geom/transforms.h>
+#include <2geom/line.h>
#include "style.h"
namespace Inkscape {
@@ -250,6 +251,26 @@ boost::optional<Geom::Point> Layout::baselineAnchorPoint() const
}
}
+Geom::Path Layout::baseline() const
+{
+ iterator pos = this->begin();
+ Geom::Point left_pt = this->characterAnchorPoint(pos);
+ pos.thisEndOfLine();
+ Geom::Point right_pt = this->characterAnchorPoint(pos);
+
+ if (this->_blockProgression() == LEFT_TO_RIGHT || this->_blockProgression() == RIGHT_TO_LEFT) {
+ left_pt = Geom::Point(left_pt[Geom::Y], left_pt[Geom::X]);
+ right_pt = Geom::Point(right_pt[Geom::Y], right_pt[Geom::X]);
+ }
+
+ Geom::Path baseline;
+ baseline.start(left_pt);
+ baseline.appendNew<Geom::LineSegment>(right_pt);
+
+ return baseline;
+}
+
+
Geom::Point Layout::chunkAnchorPoint(iterator const &it) const
{
unsigned chunk_index;
diff --git a/src/libnrtype/Layout-TNG.h b/src/libnrtype/Layout-TNG.h
index 7d0c58c3e..6ab02c0e3 100644
--- a/src/libnrtype/Layout-TNG.h
+++ b/src/libnrtype/Layout-TNG.h
@@ -486,6 +486,8 @@ public:
For rightmost text, the rightmost... you probably got it by now ;-)*/
boost::optional<Geom::Point> baselineAnchorPoint() const;
+ Geom::Path baseline() const;
+
/** This is that value to apply to the x,y attributes of tspan role=line
elements, and hence it takes alignment into account. */
Geom::Point chunkAnchorPoint(iterator const &it) const;
diff --git a/src/libvpsc/CMakeLists.txt b/src/libvpsc/CMakeLists.txt
index 8db059b5d..4099900b5 100644
--- a/src/libvpsc/CMakeLists.txt
+++ b/src/libvpsc/CMakeLists.txt
@@ -1,29 +1,29 @@
-
-set(libvpsc_SRC
- block.cpp
- blocks.cpp
- constraint.cpp
- csolve_VPSC.cpp
- generate-constraints.cpp
- remove_rectangle_overlap.cpp
- solve_VPSC.cpp
- variable.cpp
- pairingheap/PairingHeap.cpp
-
-
- # -------
- # Headers
- block.h
- blocks.h
- constraint.h
- csolve_VPSC.h
- generate-constraints.h
- pairingheap/PairingHeap.h
- pairingheap/dsexceptions.h
- placement_SolveVPSC.h
- remove_rectangle_overlap.h
- solve_VPSC.h
- variable.h
-)
-
-add_inkscape_lib(vpsc_LIB "${libvpsc_SRC}")
+
+set(libvpsc_SRC
+ block.cpp
+ blocks.cpp
+ constraint.cpp
+ csolve_VPSC.cpp
+ generate-constraints.cpp
+ remove_rectangle_overlap.cpp
+ solve_VPSC.cpp
+ variable.cpp
+ pairingheap/PairingHeap.cpp
+
+
+ # -------
+ # Headers
+ block.h
+ blocks.h
+ constraint.h
+ csolve_VPSC.h
+ generate-constraints.h
+ pairingheap/PairingHeap.h
+ pairingheap/dsexceptions.h
+ placement_SolveVPSC.h
+ remove_rectangle_overlap.h
+ solve_VPSC.h
+ variable.h
+)
+
+add_inkscape_lib(vpsc_LIB "${libvpsc_SRC}")
diff --git a/src/libvpsc/block.cpp b/src/libvpsc/block.cpp
index 221df536a..0bd662f28 100644
--- a/src/libvpsc/block.cpp
+++ b/src/libvpsc/block.cpp
@@ -72,7 +72,7 @@ void Block::setUpConstraintHeap(PairingHeap<Constraint*>* &h,bool in) {
for (Cit j=cs->begin();j!=cs->end();++j) {
Constraint *c=*j;
c->timeStamp=blockTimeCtr;
- if (c->left->block != this && in || c->right->block != this && !in) {
+ if ((c->left->block != this && in) || (c->right->block != this && !in)) {
h->insert(c);
}
}
diff --git a/src/livarot/CMakeLists.txt b/src/livarot/CMakeLists.txt
index 1890bd1a7..83e0f40c8 100644
--- a/src/livarot/CMakeLists.txt
+++ b/src/livarot/CMakeLists.txt
@@ -21,6 +21,9 @@ set(livarot_SRC
sweep-tree.cpp
sweep-tree-list.cpp
+
+ # -------
+ # Headers
AVL.h
AlphaLigne.h
BitLigne.h
diff --git a/src/live_effects/CMakeLists.txt b/src/live_effects/CMakeLists.txt
index 3bca16715..01cd7f25f 100644
--- a/src/live_effects/CMakeLists.txt
+++ b/src/live_effects/CMakeLists.txt
@@ -53,6 +53,7 @@ set(live_effects_SRC
parameter/unit.cpp
parameter/vector.cpp
+
# -------
# Headers
bezctx.h
diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp
index 82f4ccdea..cd692f402 100644
--- a/src/live_effects/lpe-powerstroke.cpp
+++ b/src/live_effects/lpe-powerstroke.cpp
@@ -3,9 +3,9 @@
* @brief PowerStroke LPE implementation. Creates curves with modifiable stroke width.
*/
/* Authors:
- * Johan Engelen <j.b.c.engelen@utwente.nl>
+ * Johan Engelen <j.b.c.engelen@alumnus.utwente.nl>
*
- * Copyright (C) 2010 Authors
+ * Copyright (C) 2010-2011 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
@@ -20,6 +20,7 @@
#include <2geom/sbasis-geometric.h>
#include <2geom/transforms.h>
#include <2geom/bezier-utils.h>
+#include <2geom/svg-elliptical-arc.h>
#include "live_effects/bezctx.h"
#include "live_effects/bezctx_intf.h"
@@ -275,11 +276,24 @@ static const Util::EnumData<unsigned> InterpolatorTypeData[] = {
};
static const Util::EnumDataConverter<unsigned> InterpolatorTypeConverter(InterpolatorTypeData, sizeof(InterpolatorTypeData)/sizeof(*InterpolatorTypeData));
+enum LineCapType {
+ LINECAP_BUTT,
+ LINECAP_ROUND,
+ LINECAP_SHARP
+};
+static const Util::EnumData<unsigned> LineCapTypeData[] = {
+ {LINECAP_BUTT , N_("Butt"), "Butt"},
+ {LINECAP_ROUND , N_("Round"), "Round"},
+ {LINECAP_SHARP , N_("Sharp"), "Sharp"}
+};
+static const Util::EnumDataConverter<unsigned> LineCapTypeConverter(LineCapTypeData, sizeof(LineCapTypeData)/sizeof(*LineCapTypeData));
+
LPEPowerStroke::LPEPowerStroke(LivePathEffectObject *lpeobject) :
Effect(lpeobject),
offset_points(_("Offset points"), _("Offset points"), "offset_points", &wr, this),
sort_points(_("Sort points"), _("Sort offset points according to their time value along the curve."), "sort_points", &wr, this, true),
- interpolator_type(_("Interpolator type"), _("Determines which kind of interpolator will be used to interpolate between stroke width along the path."), "interpolator_type", InterpolatorTypeConverter, &wr, this, Geom::Interpolate::INTERP_CUBICBEZIER_JOHAN)
+ interpolator_type(_("Interpolator type"), _("Determines which kind of interpolator will be used to interpolate between stroke width along the path."), "interpolator_type", InterpolatorTypeConverter, &wr, this, Geom::Interpolate::INTERP_CUBICBEZIER_JOHAN),
+ linecap_type(_("Line cap type"), _("Determines the shape of the path ends."), "linecap_type", LineCapTypeConverter, &wr, this, LINECAP_ROUND)
{
show_orig_path = true;
@@ -288,6 +302,7 @@ LPEPowerStroke::LPEPowerStroke(LivePathEffectObject *lpeobject) :
registerParameter( dynamic_cast<Parameter *>(&offset_points) );
registerParameter( dynamic_cast<Parameter *>(&sort_points) );
registerParameter( dynamic_cast<Parameter *>(&interpolator_type) );
+ registerParameter( dynamic_cast<Parameter *>(&linecap_type) );
}
LPEPowerStroke::~LPEPowerStroke()
@@ -332,35 +347,88 @@ LPEPowerStroke::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const &
Piecewise<D2<SBasis> > output;
if (!closed_path) {
+ LineCapType linecap = static_cast<LineCapType>(linecap_type.get_value());
+
// perhaps use std::list instead of std::vector?
std::vector<Geom::Point> ts(offset_points.data().size() + 2);
- // first and last point coincide with input path (for now at least)
- ts.front() = Point(pwd2_in.domain().min(),0);
- ts.back() = Point(pwd2_in.domain().max(),0);
for (unsigned int i = 0; i < offset_points.data().size(); ++i) {
ts.at(i+1) = offset_points.data().at(i);
}
-
if (sort_points) {
- sort(ts.begin(), ts.end(), compare_offsets);
+ sort(ts.begin()+1, ts.end()-1, compare_offsets);
+ }
+ switch (linecap) {
+ case LINECAP_SHARP:
+ // first and last point coincide with input path to make sharp points on ends
+ ts.front() = Point(pwd2_in.domain().min(),0);
+ ts.back() = Point(pwd2_in.domain().max(),0);
+ break;
+ case LINECAP_BUTT:
+ case LINECAP_ROUND:
+ default:
+ // first and last point have same distance from path as second and second to last points, respectively.
+ ts.front() = Point(pwd2_in.domain().min(), (*(ts.begin()+1))[Geom::Y] );
+ ts.back() = Point(pwd2_in.domain().max(), (*(ts.end()-2))[Geom::Y] );
+ break;
}
// create stroke path where points (x,y) := (t, offset)
Geom::Interpolate::Interpolator *interpolator = Geom::Interpolate::Interpolator::create(static_cast<Geom::Interpolate::InterpolatorType>(interpolator_type.get_value()));
Geom::Path strokepath = interpolator->interpolateToPath(ts);
- Geom::Path mirroredpath = strokepath.reverse() * Geom::Scale(1,-1);
delete interpolator;
- strokepath.append(mirroredpath, Geom::Path::STITCH_DISCONTINUOUS);
- strokepath.close();
+ switch (linecap) {
+ case LINECAP_SHARP:
+ case LINECAP_BUTT:
+ {
+ Geom::Path mirroredpath = strokepath.reverse() * Geom::Scale(1,-1);
+ strokepath.append(mirroredpath, Geom::Path::STITCH_DISCONTINUOUS);
+ strokepath.close();
- D2<Piecewise<SBasis> > patternd2 = make_cuts_independent(strokepath.toPwSb());
- Piecewise<SBasis> x = Piecewise<SBasis>(patternd2[0]);
- Piecewise<SBasis> y = Piecewise<SBasis>(patternd2[1]);
+ D2<Piecewise<SBasis> > patternd2 = make_cuts_independent(strokepath.toPwSb());
+ Piecewise<SBasis> x = Piecewise<SBasis>(patternd2[0]);
+ Piecewise<SBasis> y = Piecewise<SBasis>(patternd2[1]);
- output = compose(pwd2_in,x) + y*compose(n,x);
+ output = compose(pwd2_in,x) + y*compose(n,x);
+ break;
+ }
+ case LINECAP_ROUND:
+ default:
+ {
+ D2<Piecewise<SBasis> > patternd2 = make_cuts_independent(strokepath.toPwSb());
+ Piecewise<SBasis> x = Piecewise<SBasis>(patternd2[0]);
+ Piecewise<SBasis> y = Piecewise<SBasis>(patternd2[1]);
+
+ // find time values for which x lies outside path domain
+ // and only take portion of x and y that lies within those time values
+ std::vector< double > rtsmin = roots (x - pwd2_in.domain().min());
+ std::vector< double > rtsmax = roots (x - pwd2_in.domain().max());
+ if ( !rtsmin.empty() && !rtsmax.empty() ) {
+ x = portion(x, rtsmin.at(0), rtsmax.at(0));
+ y = portion(y, rtsmin.at(0), rtsmax.at(0));
+ }
+
+ output = compose(pwd2_in,x) + y*compose(n,x);
+ x = reverse(x);
+ y = reverse(y);
+ Piecewise<D2<SBasis> > mirrorpath = compose(pwd2_in,x) - y*compose(n,x);
+
+ double radius1 = 0.5 * distance(output.lastValue(), mirrorpath.firstValue());
+ Geom::SVGEllipticalArc cap1(output.lastValue(), radius1, radius1, M_PI/2., false, false, mirrorpath.firstValue());
+ output.continuousConcat(Piecewise<D2<SBasis> >(cap1.toSBasis()));
+
+ output.continuousConcat(mirrorpath);
+
+ double radius2 = 0.5 * distance(output.firstValue(), output.lastValue());
+ Geom::SVGEllipticalArc cap2(output.lastValue(), radius2, radius2, M_PI/2., false, false, output.firstValue());
+ output.continuousConcat(Piecewise<D2<SBasis> >(cap2.toSBasis()));
+
+ break;
+ }
+ }
} else {
// path is closed
+ // linecap parameter can be ignored
// perhaps use std::list instead of std::vector?
std::vector<Geom::Point> ts = offset_points.data();
diff --git a/src/live_effects/lpe-powerstroke.h b/src/live_effects/lpe-powerstroke.h
index 7a1f3829a..6f34e16e2 100644
--- a/src/live_effects/lpe-powerstroke.h
+++ b/src/live_effects/lpe-powerstroke.h
@@ -2,9 +2,9 @@
* @brief PowerStroke LPE effect, see lpe-powerstroke.cpp.
*/
/* Authors:
- * Johan Engelen <j.b.c.engelen@utwente.nl>
+ * Johan Engelen <j.b.c.engelen@alumnus.utwente.nl>
*
- * Copyright (C) 2010 Authors
+ * Copyright (C) 2010-2011 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
@@ -33,6 +33,7 @@ private:
PowerStrokePointArrayParam offset_points;
BoolParam sort_points;
EnumParam<unsigned> interpolator_type;
+ EnumParam<unsigned> linecap_type;
LPEPowerStroke(const LPEPowerStroke&);
LPEPowerStroke& operator=(const LPEPowerStroke&);
diff --git a/src/main.cpp b/src/main.cpp
index 26774fd66..1614e97f7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -641,7 +641,7 @@ main(int argc, char **argv)
gboolean use_gui;
-#ifndef WIN32
+#if !defined(WIN32) && !defined(GDK_WINDOWING_QUARTZ)
use_gui = (g_getenv("DISPLAY") != NULL);
#else
use_gui = TRUE;
diff --git a/src/measure-context.cpp b/src/measure-context.cpp
index bc766872b..8cb30f983 100644
--- a/src/measure-context.cpp
+++ b/src/measure-context.cpp
@@ -36,6 +36,10 @@
#include <2geom/path-intersection.h>
#include <2geom/pathvector.h>
#include <2geom/crossing.h>
+#include <2geom/angle.h>
+#include "snap.h"
+#include "sp-namedview.h"
+
static void sp_measure_context_class_init(SPMeasureContextClass *klass);
static void sp_measure_context_init(SPMeasureContext *measure_context);
@@ -184,16 +188,32 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
ret = TRUE;
}
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ m.freeSnapReturnByRef(start_point, Inkscape::SNAPSOURCE_OTHER_HANDLE);
+ m.unSetup();
+
sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
- GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK,
- NULL, event->button.time);
+ GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK,
+ NULL, event->button.time);
mc->grabbed = SP_CANVAS_ITEM(desktop->acetate);
break;
}
case GDK_MOTION_NOTIFY:
{
- if (event->motion.state & GDK_BUTTON1_MASK && !event_context->space_panning) {
+ if (!((event->motion.state & GDK_BUTTON1_MASK) && !event_context->space_panning)) {
+ if (!(event->motion.state & GDK_SHIFT_MASK)) {
+ Geom::Point const motion_w(event->motion.x, event->motion.y);
+ Geom::Point const motion_dt(desktop->w2d(motion_w));
+
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+
+ m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_OTHER_HANDLE));
+ m.unSetup();
+ }
+ } else {
ret = TRUE;
if ( within_tolerance
@@ -217,9 +237,16 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
Geom::Point const motion_dt(desktop->w2d(motion_w));
Geom::Point end_point = motion_dt;
- //rotation constraint
- if (event->motion.state & GDK_CONTROL_MASK)
+ if (event->motion.state & GDK_CONTROL_MASK) {
spdc_endpoint_snap_rotation(event_context, end_point, start_point, event->motion.state);
+ } else {
+ if (!(event->motion.state & GDK_SHIFT_MASK)) {
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ m.freeSnapReturnByRef(end_point, Inkscape::SNAPSOURCE_OTHER_HANDLE);
+ m.unSetup();
+ }
+ }
//draw control line
SPCanvasItem * control_line = NULL;
@@ -247,6 +274,10 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
points.push_back(desktop->d2w(start_point + (i/NPOINTS)*(end_point-start_point)));
}
+// TODO: Felipe, why don't you simply iterate over all items, and test whether their bounding boxes intersect
+// with the measurement line, instead of interpolating? E.g. bbox_of_measurement_line.intersects(*bbox_of_item).
+// That's also how the object-snapper works, see _findCandidates() in object-snapper.cpp.
+
//select elements crossed by line segment:
GSList *items = sp_desktop_document(desktop)->getItemsAtPoints(desktop->dkey, points);
SPItem* item;
@@ -355,7 +386,7 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
}
char* angle_str = (char*) malloc(sizeof(char)*20);
- sprintf(angle_str, "%.2f °", angle * 180/3.1415 );
+ sprintf(angle_str, "%.2f °", angle * 180/M_PI );
SPCanvasItem *canvas_tooltip = sp_canvastext_new(sp_desktop_tempgroup(desktop), desktop, end_point + desktop->w2d(Geom::Point(5*fontsize,0)), angle_str);
sp_canvastext_set_fontsize (SP_CANVASTEXT(canvas_tooltip), fontsize);
sp_canvastext_set_rgba32 (SP_CANVASTEXT(canvas_tooltip), 0x337f33ff, 0xffffffff);
@@ -374,6 +405,8 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
case GDK_BUTTON_RELEASE:
{
+ sp_event_context_discard_delayed_snap_event(event_context);
+
//clear all temporary canvas items related to the measurement tool.
unsigned int idx;
for (idx=0; idx<measure_tmp_items.size(); idx++){
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp
index 682c26869..1944f7ffa 100644
--- a/src/object-snapper.cpp
+++ b/src/object-snapper.cpp
@@ -181,9 +181,9 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::SnapSourceType const &t,
bool p_is_a_node = t & Inkscape::SNAPSOURCE_NODE_CATEGORY;
bool p_is_a_bbox = t & Inkscape::SNAPSOURCE_BBOX_CATEGORY;
- bool p_is_other = t & Inkscape::SNAPSOURCE_OTHER_CATEGORY;
+ bool p_is_other = t & Inkscape::SNAPSOURCE_OTHERS_CATEGORY;
- // A point considered for snapping should be either a node, a bbox corner or a guide. Pick only ONE!
+ // A point considered for snapping should be either a node, a bbox corner or a guide/other. Pick only ONE!
g_assert(!((p_is_a_node && p_is_a_bbox) || (p_is_a_bbox && p_is_other) || (p_is_a_node && p_is_other)));
if (_snapmanager->snapprefs.getSnapToBBoxNode() || _snapmanager->snapprefs.getSnapBBoxEdgeMidpoints() || _snapmanager->snapprefs.getSnapBBoxMidpoints()) {
@@ -282,27 +282,30 @@ void Inkscape::ObjectSnapper::_snapNodes(SnappedConstraints &sc,
SnappedPoint s;
bool success = false;
+ bool strict_snapping = _snapmanager->snapprefs.getStrictSnapping();
for (std::vector<SnapCandidatePoint>::const_iterator k = _points_to_snap_to->begin(); k != _points_to_snap_to->end(); k++) {
- Geom::Point target_pt = (*k).getPoint();
- Geom::Coord dist = NR_HUGE;
- if (!c.isUndefined()) {
- // We're snapping to nodes along a constraint only, so find out if this node
- // is at the constraint, while allowing for a small margin
- if (Geom::L2(target_pt - c.projection(target_pt)) > 1e-9) {
- // The distance from the target point to its projection on the constraint
- // is too large, so this point is not on the constraint. Skip it!
- continue;
+ if (_allowSourceToSnapToTarget(p.getSourceType(), (*k).getTargetType(), strict_snapping)) {
+ Geom::Point target_pt = (*k).getPoint();
+ Geom::Coord dist = NR_HUGE;
+ if (!c.isUndefined()) {
+ // We're snapping to nodes along a constraint only, so find out if this node
+ // is at the constraint, while allowing for a small margin
+ if (Geom::L2(target_pt - c.projection(target_pt)) > 1e-9) {
+ // The distance from the target point to its projection on the constraint
+ // is too large, so this point is not on the constraint. Skip it!
+ continue;
+ }
+ dist = Geom::L2(target_pt - p_proj_on_constraint);
+ } else {
+ // Free (unconstrained) snapping
+ dist = Geom::L2(target_pt - p.getPoint());
}
- dist = Geom::L2(target_pt - p_proj_on_constraint);
- } else {
- // Free (unconstrained) snapping
- dist = Geom::L2(target_pt - p.getPoint());
- }
- if (dist < getSnapperTolerance() && dist < s.getSnapDistance()) {
- s = SnappedPoint(target_pt, p.getSourceType(), p.getSourceNum(), (*k).getTargetType(), dist, getSnapperTolerance(), getSnapperAlwaysSnap(), false, true, (*k).getTargetBBox());
- success = true;
+ if (dist < getSnapperTolerance() && dist < s.getSnapDistance()) {
+ s = SnappedPoint(target_pt, p.getSourceType(), p.getSourceNum(), (*k).getTargetType(), dist, getSnapperTolerance(), getSnapperAlwaysSnap(), false, true, (*k).getTargetBBox());
+ success = true;
+ }
}
}
@@ -359,7 +362,7 @@ void Inkscape::ObjectSnapper::_collectPaths(Geom::Point /*p*/,
SPItem::BBoxType bbox_type = SPItem::GEOMETRIC_BBOX;
bool p_is_a_node = source_type & Inkscape::SNAPSOURCE_NODE_CATEGORY;
- bool p_is_other = source_type & Inkscape::SNAPSOURCE_OTHER_CATEGORY;
+ bool p_is_other = source_type & Inkscape::SNAPSOURCE_OTHERS_CATEGORY;
if (_snapmanager->snapprefs.getSnapToBBoxPath()) {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -369,7 +372,7 @@ void Inkscape::ObjectSnapper::_collectPaths(Geom::Point /*p*/,
}
// Consider the page border for snapping
- if (_snapmanager->snapprefs.getSnapToPageBorder() && _snapmanager->snapprefs.getSnapModeBBoxOrNodes()) {
+ if (_snapmanager->snapprefs.getSnapToPageBorder() && _snapmanager->snapprefs.getSnapModeAny()) {
Geom::PathVector *border_path = _getBorderPathv();
if (border_path != NULL) {
_paths_to_snap_to->push_back(Inkscape::SnapCandidatePath(border_path, SNAPTARGET_PAGE_BORDER, Geom::OptRect()));
@@ -394,51 +397,53 @@ void Inkscape::ObjectSnapper::_collectPaths(Geom::Point /*p*/,
//Build a list of all paths considered for snapping to
//Add the item's path to snap to
- if (_snapmanager->snapprefs.getSnapToItemPath() && _snapmanager->snapprefs.getSnapModeNode()) {
+ if ((_snapmanager->snapprefs.getSnapToItemPath() && _snapmanager->snapprefs.getSnapModeNode()) ||
+ (_snapmanager->snapprefs.getSnapTextBaseline() && (_snapmanager->snapprefs.getSnapModeNode() || _snapmanager->snapprefs.getSnapToItemPath())) ) {
if (p_is_other || !(_snapmanager->snapprefs.getStrictSnapping() && !p_is_a_node)) {
- // Snapping to the path of characters is very cool, but for a large
- // chunk of text this will take ages! So limit snapping to text paths
- // containing max. 240 characters. Snapping the bbox will not be affected
- bool very_lenghty_prose = false;
if (SP_IS_TEXT(root_item) || SP_IS_FLOWTEXT(root_item)) {
- very_lenghty_prose = sp_text_get_length(SP_TEXT(root_item)) > 240;
- }
- // On my AMD 3000+, the snapping lag becomes annoying at approx. 240 chars
- // which corresponds to a lag of 500 msec. This is for snapping a rect
- // to a single line of text.
-
- // Snapping for example to a traced bitmap is also very stressing for
- // the CPU, so we'll only snap to paths having no more than 500 nodes
- // This also leads to a lag of approx. 500 msec (in my lousy test set-up).
- bool very_complex_path = false;
- if (SP_IS_PATH(root_item)) {
- very_complex_path = sp_nodes_in_path(SP_PATH(root_item)) > 500;
- }
-
- if (!very_lenghty_prose && !very_complex_path && root_item) {
- SPCurve *curve = NULL;
- if (SP_IS_SHAPE(root_item)) {
- curve = SP_SHAPE(root_item)->getCurve();
- } else if (SP_IS_TEXT(root_item) || SP_IS_FLOWTEXT(root_item)) {
- curve = te_get_layout(root_item)->convertToCurves();
+ if (_snapmanager->snapprefs.getSnapTextBaseline()) {
+ // Snap to the text baseline
+ Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) root_item);
+ if (layout != NULL && layout->outputExists()) {
+ Geom::PathVector *pv = new Geom::PathVector();
+ pv->push_back(layout->baseline() * root_item->i2d_affine() * (*i).additional_affine * _snapmanager->getDesktop()->doc2dt());
+ _paths_to_snap_to->push_back(Inkscape::SnapCandidatePath(pv, SNAPTARGET_TEXT_BASELINE, Geom::OptRect()));
+ }
+ }
+ } else {
+ // Snapping for example to a traced bitmap is very stressing for
+ // the CPU, so we'll only snap to paths having no more than 500 nodes
+ // This also leads to a lag of approx. 500 msec (in my lousy test set-up).
+ bool very_complex_path = false;
+ if (SP_IS_PATH(root_item)) {
+ very_complex_path = sp_nodes_in_path(SP_PATH(root_item)) > 500;
}
- if (curve) {
- // We will get our own copy of the pathvector, which must be freed at some point
- // Geom::PathVector *pv = pathvector_for_curve(root_item, curve, true, true, Geom::identity(), (*i).additional_affine);
+ if (!very_complex_path && root_item && (_snapmanager->snapprefs.getSnapToItemPath() && _snapmanager->snapprefs.getSnapModeNode())) {
+ SPCurve *curve = NULL;
+ if (SP_IS_SHAPE(root_item)) {
+ curve = SP_SHAPE(root_item)->getCurve();
+ }/* else if (SP_IS_TEXT(root_item) || SP_IS_FLOWTEXT(root_item)) {
+ curve = te_get_layout(root_item)->convertToCurves();
+ }*/
+ if (curve) {
+ // We will get our own copy of the pathvector, which must be freed at some point
+
+ // Geom::PathVector *pv = pathvector_for_curve(root_item, curve, true, true, Geom::identity(), (*i).additional_affine);
- Geom::PathVector *pv = new Geom::PathVector(curve->get_pathvector());
- (*pv) *= root_item->i2d_affine() * (*i).additional_affine * _snapmanager->getDesktop()->doc2dt(); // (_edit_transform * _i2d_transform);
+ Geom::PathVector *pv = new Geom::PathVector(curve->get_pathvector());
+ (*pv) *= root_item->i2d_affine() * (*i).additional_affine * _snapmanager->getDesktop()->doc2dt(); // (_edit_transform * _i2d_transform);
- _paths_to_snap_to->push_back(Inkscape::SnapCandidatePath(pv, SNAPTARGET_PATH, Geom::OptRect())); // Perhaps for speed, get a reference to the Geom::pathvector, and store the transformation besides it.
- curve->unref();
+ _paths_to_snap_to->push_back(Inkscape::SnapCandidatePath(pv, SNAPTARGET_PATH, Geom::OptRect())); // Perhaps for speed, get a reference to the Geom::pathvector, and store the transformation besides it.
+ curve->unref();
+ }
}
}
}
}
//Add the item's bounding box to snap to
- if (_snapmanager->snapprefs.getSnapToBBoxPath() && _snapmanager->snapprefs.getSnapModeBBox()) {
+ if (_snapmanager->snapprefs.getSnapToBBoxPath() && (_snapmanager->snapprefs.getSnapModeBBox() || _snapmanager->snapprefs.getSnapModeOthers())) {
if (p_is_other || !(_snapmanager->snapprefs.getStrictSnapping() && p_is_a_node)) {
// Discard the bbox of a clipped path / mask, because we don't want to snap to both the bbox
// of the item AND the bbox of the clipping path at the same time
@@ -490,54 +495,58 @@ void Inkscape::ObjectSnapper::_snapPaths(SnappedConstraints &sc,
int num_path = 0;
int num_segm = 0;
- for (std::vector<Inkscape::SnapCandidatePath >::const_iterator it_p = _paths_to_snap_to->begin(); it_p != _paths_to_snap_to->end(); it_p++) {
- bool const being_edited = node_tool_active && (*it_p).currently_being_edited;
- //if true then this pathvector it_pv is currently being edited in the node tool
-
- for(Geom::PathVector::iterator it_pv = (it_p->path_vector)->begin(); it_pv != (it_p->path_vector)->end(); ++it_pv) {
- // Find a nearest point for each curve within this path
- // n curves will return n time values with 0 <= t <= 1
- std::vector<double> anp = (*it_pv).nearestPointPerCurve(p_doc);
+ bool strict_snapping = _snapmanager->snapprefs.getStrictSnapping();
- std::vector<double>::const_iterator np = anp.begin();
- unsigned int index = 0;
- for (; np != anp.end(); np++, index++) {
- Geom::Curve const *curve = &((*it_pv).at_index(index));
- Geom::Point const sp_doc = curve->pointAt(*np);
-
- bool c1 = true;
- bool c2 = true;
- if (being_edited) {
- /* If the path is being edited, then we should only snap though to stationary pieces of the path
- * and not to the pieces that are being dragged around. This way we avoid
- * self-snapping. For this we check whether the nodes at both ends of the current
- * piece are unselected; if they are then this piece must be stationary
- */
- g_assert(unselected_nodes != NULL);
- Geom::Point start_pt = _snapmanager->getDesktop()->doc2dt(curve->pointAt(0));
- Geom::Point end_pt = _snapmanager->getDesktop()->doc2dt(curve->pointAt(1));
- c1 = isUnselectedNode(start_pt, unselected_nodes);
- c2 = isUnselectedNode(end_pt, unselected_nodes);
- /* Unfortunately, this might yield false positives for coincident nodes. Inkscape might therefore mistakenly
- * snap to path segments that are not stationary. There are at least two possible ways to overcome this:
- * - Linking the individual nodes of the SPPath we have here, to the nodes of the NodePath::SubPath class as being
- * used in sp_nodepath_selected_nodes_move. This class has a member variable called "selected". For this the nodes
- * should be in the exact same order for both classes, so we can index them
- * - Replacing the SPPath being used here by the the NodePath::SubPath class; but how?
- */
- }
+ for (std::vector<Inkscape::SnapCandidatePath >::const_iterator it_p = _paths_to_snap_to->begin(); it_p != _paths_to_snap_to->end(); it_p++) {
+ if (_allowSourceToSnapToTarget(p.getSourceType(), (*it_p).target_type, strict_snapping)) {
+ bool const being_edited = node_tool_active && (*it_p).currently_being_edited;
+ //if true then this pathvector it_pv is currently being edited in the node tool
+
+ for(Geom::PathVector::iterator it_pv = (it_p->path_vector)->begin(); it_pv != (it_p->path_vector)->end(); ++it_pv) {
+ // Find a nearest point for each curve within this path
+ // n curves will return n time values with 0 <= t <= 1
+ std::vector<double> anp = (*it_pv).nearestPointPerCurve(p_doc);
+
+ std::vector<double>::const_iterator np = anp.begin();
+ unsigned int index = 0;
+ for (; np != anp.end(); np++, index++) {
+ Geom::Curve const *curve = &((*it_pv).at_index(index));
+ Geom::Point const sp_doc = curve->pointAt(*np);
+
+ bool c1 = true;
+ bool c2 = true;
+ if (being_edited) {
+ /* If the path is being edited, then we should only snap though to stationary pieces of the path
+ * and not to the pieces that are being dragged around. This way we avoid
+ * self-snapping. For this we check whether the nodes at both ends of the current
+ * piece are unselected; if they are then this piece must be stationary
+ */
+ g_assert(unselected_nodes != NULL);
+ Geom::Point start_pt = _snapmanager->getDesktop()->doc2dt(curve->pointAt(0));
+ Geom::Point end_pt = _snapmanager->getDesktop()->doc2dt(curve->pointAt(1));
+ c1 = isUnselectedNode(start_pt, unselected_nodes);
+ c2 = isUnselectedNode(end_pt, unselected_nodes);
+ /* Unfortunately, this might yield false positives for coincident nodes. Inkscape might therefore mistakenly
+ * snap to path segments that are not stationary. There are at least two possible ways to overcome this:
+ * - Linking the individual nodes of the SPPath we have here, to the nodes of the NodePath::SubPath class as being
+ * used in sp_nodepath_selected_nodes_move. This class has a member variable called "selected". For this the nodes
+ * should be in the exact same order for both classes, so we can index them
+ * - Replacing the SPPath being used here by the the NodePath::SubPath class; but how?
+ */
+ }
- Geom::Point const sp_dt = _snapmanager->getDesktop()->doc2dt(sp_doc);
- if (!being_edited || (c1 && c2)) {
- Geom::Coord const dist = Geom::distance(sp_doc, p_doc);
- if (dist < getSnapperTolerance()) {
- sc.curves.push_back(Inkscape::SnappedCurve(sp_dt, num_path, num_segm, dist, getSnapperTolerance(), getSnapperAlwaysSnap(), false, curve, p.getSourceType(), p.getSourceNum(), it_p->target_type, it_p->target_bbox));
+ Geom::Point const sp_dt = _snapmanager->getDesktop()->doc2dt(sp_doc);
+ if (!being_edited || (c1 && c2)) {
+ Geom::Coord const dist = Geom::distance(sp_doc, p_doc);
+ if (dist < getSnapperTolerance()) {
+ sc.curves.push_back(Inkscape::SnappedCurve(sp_dt, num_path, num_segm, dist, getSnapperTolerance(), getSnapperAlwaysSnap(), false, curve, p.getSourceType(), p.getSourceNum(), it_p->target_type, it_p->target_bbox));
+ }
}
}
- }
- num_segm++;
- } // End of: for (Geom::PathVector::iterator ....)
- num_path++;
+ num_segm++;
+ } // End of: for (Geom::PathVector::iterator ....)
+ num_path++;
+ }
}
}
@@ -572,7 +581,6 @@ void Inkscape::ObjectSnapper::_snapPathsConstrained(SnappedConstraints &sc,
// Now we can finally do the real snapping, using the paths collected above
g_assert(_snapmanager->getDesktop() != NULL);
- Geom::Point const p_doc = _snapmanager->getDesktop()->dt2doc(p_proj_on_constraint);
Geom::Point direction_vector = c.getDirection();
if (!is_zero(direction_vector)) {
@@ -600,10 +608,12 @@ void Inkscape::ObjectSnapper::_snapPathsConstrained(SnappedConstraints &sc,
}
// Length of constraint_path will always be one
+ bool strict_snapping = _snapmanager->snapprefs.getStrictSnapping();
+
// Find all intersections of the constrained path with the snap target candidates
std::vector<Geom::Point> intersections;
for (std::vector<Inkscape::SnapCandidatePath >::const_iterator k = _paths_to_snap_to->begin(); k != _paths_to_snap_to->end(); k++) {
- if (k->path_vector) {
+ if (k->path_vector && _allowSourceToSnapToTarget(p.getSourceType(), (*k).target_type, strict_snapping)) {
// Do the intersection math
Geom::CrossingSet cs = Geom::crossings(constraint_path, *(k->path_vector));
// Store the results as intersection points
@@ -674,16 +684,17 @@ void Inkscape::ObjectSnapper::freeSnap(SnappedConstraints &sc,
bool snap_nodes = (_snapmanager->snapprefs.getSnapModeNode() && (
_snapmanager->snapprefs.getSnapToItemNode() ||
_snapmanager->snapprefs.getSnapSmoothNodes() ||
- _snapmanager->snapprefs.getSnapLineMidpoints() ||
- _snapmanager->snapprefs.getSnapObjectMidpoints()
+ _snapmanager->snapprefs.getSnapLineMidpoints()
)) || (_snapmanager->snapprefs.getSnapModeBBox() && (
_snapmanager->snapprefs.getSnapToBBoxNode() ||
_snapmanager->snapprefs.getSnapBBoxEdgeMidpoints() ||
_snapmanager->snapprefs.getSnapBBoxMidpoints()
- )) || (_snapmanager->snapprefs.getSnapModeBBoxOrNodes() && (
+ )) || (_snapmanager->snapprefs.getSnapModeAny() && (
_snapmanager->snapprefs.getIncludeItemCenter() ||
- _snapmanager->snapprefs.getSnapToPageBorder()
- ));
+ _snapmanager->snapprefs.getSnapToPageBorder() ||
+ _snapmanager->snapprefs.getSnapObjectMidpoints() ||
+ _snapmanager->snapprefs.getSnapTextBaseline()
+ )) ;
if (snap_nodes) {
_snapNodes(sc, p, unselected_nodes);
@@ -691,7 +702,7 @@ void Inkscape::ObjectSnapper::freeSnap(SnappedConstraints &sc,
if ((_snapmanager->snapprefs.getSnapModeNode() && _snapmanager->snapprefs.getSnapToItemPath()) ||
(_snapmanager->snapprefs.getSnapModeBBox() && _snapmanager->snapprefs.getSnapToBBoxPath()) ||
- (_snapmanager->snapprefs.getSnapModeBBoxOrNodes() && _snapmanager->snapprefs.getSnapToPageBorder())) {
+ _snapmanager->snapprefs.getSnapModeAny()) {
unsigned n = (unselected_nodes == NULL) ? 0 : unselected_nodes->size();
if (n > 0) {
/* While editing a path in the node tool, findCandidates must ignore that path because
@@ -741,15 +752,16 @@ void Inkscape::ObjectSnapper::constrainedSnap( SnappedConstraints &sc,
bool snap_nodes = (_snapmanager->snapprefs.getSnapModeNode() && (
_snapmanager->snapprefs.getSnapToItemNode() ||
_snapmanager->snapprefs.getSnapSmoothNodes() ||
- _snapmanager->snapprefs.getSnapLineMidpoints() ||
- _snapmanager->snapprefs.getSnapObjectMidpoints()
+ _snapmanager->snapprefs.getSnapLineMidpoints()
)) || (_snapmanager->snapprefs.getSnapModeBBox() && (
_snapmanager->snapprefs.getSnapToBBoxNode() ||
_snapmanager->snapprefs.getSnapBBoxEdgeMidpoints() ||
_snapmanager->snapprefs.getSnapBBoxMidpoints()
- )) || (_snapmanager->snapprefs.getSnapModeBBoxOrNodes() && (
+ )) || (_snapmanager->snapprefs.getSnapModeAny() && (
_snapmanager->snapprefs.getIncludeItemCenter() ||
- _snapmanager->snapprefs.getSnapToPageBorder()
+ _snapmanager->snapprefs.getSnapObjectMidpoints() ||
+ _snapmanager->snapprefs.getSnapToPageBorder() ||
+ _snapmanager->snapprefs.getSnapTextBaseline()
));
if (snap_nodes) {
@@ -800,16 +812,17 @@ bool Inkscape::ObjectSnapper::ThisSnapperMightSnap() const
_snapmanager->snapprefs.getSnapToItemPath() ||
_snapmanager->snapprefs.getSnapToItemNode() ||
_snapmanager->snapprefs.getSnapSmoothNodes() ||
- _snapmanager->snapprefs.getSnapLineMidpoints() ||
- _snapmanager->snapprefs.getSnapObjectMidpoints()
+ _snapmanager->snapprefs.getSnapLineMidpoints()
)) || (_snapmanager->snapprefs.getSnapModeBBox() && (
_snapmanager->snapprefs.getSnapToBBoxPath() ||
_snapmanager->snapprefs.getSnapToBBoxNode() ||
_snapmanager->snapprefs.getSnapBBoxEdgeMidpoints() ||
_snapmanager->snapprefs.getSnapBBoxMidpoints()
- )) || (_snapmanager->snapprefs.getSnapModeBBoxOrNodes() && (
+ )) || (_snapmanager->snapprefs.getSnapModeAny() && (
_snapmanager->snapprefs.getSnapToPageBorder() ||
- _snapmanager->snapprefs.getIncludeItemCenter()
+ _snapmanager->snapprefs.getIncludeItemCenter() ||
+ _snapmanager->snapprefs.getSnapObjectMidpoints() ||
+ _snapmanager->snapprefs.getSnapTextBaseline()
));
return (_snap_enabled && snap_to_something);
@@ -874,6 +887,24 @@ void Inkscape::getBBoxPoints(Geom::OptRect const bbox,
}
}
+bool Inkscape::ObjectSnapper::_allowSourceToSnapToTarget(SnapSourceType source, SnapTargetType target, bool strict_snapping) const
+{
+ bool allow_this_pair_to_snap = false;
+
+ if (strict_snapping) { // bounding boxes will not snap to nodes/paths and vice versa
+ int source_cat = source & (SNAPSOURCE_BBOX_CATEGORY | SNAPSOURCE_NODE_CATEGORY | SNAPSOURCE_OTHERS_CATEGORY);
+ int target_cat = target & (SNAPTARGET_BBOX_CATEGORY | SNAPTARGET_NODE_CATEGORY | SNAPTARGET_OTHERS_CATEGORY);
+ if (source_cat == target_cat || source_cat == SNAPSOURCE_OTHERS_CATEGORY || target_cat == SNAPTARGET_OTHERS_CATEGORY) {
+ allow_this_pair_to_snap = true;
+ }
+ } else { // anything will snap to anything
+ allow_this_pair_to_snap = true;
+ }
+
+ return allow_this_pair_to_snap;
+}
+
+
/*
Local Variables:
mode:c++
diff --git a/src/object-snapper.h b/src/object-snapper.h
index 6e3cc620f..00fb18923 100644
--- a/src/object-snapper.h
+++ b/src/object-snapper.h
@@ -106,6 +106,7 @@ private:
Geom::PathVector* _getBorderPathv() const;
Geom::PathVector* _getPathvFromRect(Geom::Rect const rect) const;
void _getBorderNodes(std::vector<SnapCandidatePoint> *points) const;
+ bool _allowSourceToSnapToTarget(SnapSourceType source, SnapTargetType target, bool strict_snapping) const;
}; // end of ObjectSnapper class
diff --git a/src/rect-context.cpp b/src/rect-context.cpp
index be4f1c71d..188b5a9a3 100644
--- a/src/rect-context.cpp
+++ b/src/rect-context.cpp
@@ -65,7 +65,7 @@ static void sp_rect_cancel(SPRectContext *rc);
static SPEventContextClass *parent_class;
-GtkType sp_rect_context_get_type()
+GType sp_rect_context_get_type()
{
static GType type = 0;
if (!type) {
diff --git a/src/rect-context.h b/src/rect-context.h
index 00caf5d96..b6fbb6854 100644
--- a/src/rect-context.h
+++ b/src/rect-context.h
@@ -46,6 +46,6 @@ struct SPRectContextClass {
/* Standard Gtk function */
-GtkType sp_rect_context_get_type (void);
+GType sp_rect_context_get_type (void);
#endif
diff --git a/src/select-context.cpp b/src/select-context.cpp
index 640aae9ee..143fb1ae2 100644
--- a/src/select-context.cpp
+++ b/src/select-context.cpp
@@ -69,7 +69,7 @@ static gint xp = 0, yp = 0; // where drag started
static gint tolerance = 0;
static bool within_tolerance = false;
-GtkType
+GType
sp_select_context_get_type(void)
{
static GType type = 0;
diff --git a/src/select-context.h b/src/select-context.h
index 934892d40..d579f7ebc 100644
--- a/src/select-context.h
+++ b/src/select-context.h
@@ -55,6 +55,6 @@ struct SPSelectContextClass {
/* Standard Gtk function */
-GtkType sp_select_context_get_type (void);
+GType sp_select_context_get_type (void);
#endif
diff --git a/src/seltrans.cpp b/src/seltrans.cpp
index bb333caca..f95a204a9 100644
--- a/src/seltrans.cpp
+++ b/src/seltrans.cpp
@@ -359,7 +359,7 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s
// points immediately.
if (prefs->getBool("/options/snapclosestonly/value", false)) {
- if (m.snapprefs.getSnapModeNode()) {
+ if (m.snapprefs.getSnapModeNode() || m.snapprefs.getSnapModeOthers()) {
m.keepClosestPointOnly(_snap_points, p);
} else {
_snap_points.clear(); // don't keep any point
diff --git a/src/snap-enums.h b/src/snap-enums.h
index aa5db9328..6ef021fc0 100644
--- a/src/snap-enums.h
+++ b/src/snap-enums.h
@@ -15,37 +15,6 @@
namespace Inkscape {
-enum SnapTargetType {
- SNAPTARGET_UNDEFINED = 0,
- SNAPTARGET_GRID,
- SNAPTARGET_GRID_INTERSECTION,
- SNAPTARGET_GUIDE,
- SNAPTARGET_GUIDE_INTERSECTION,
- SNAPTARGET_GUIDE_ORIGIN,
- SNAPTARGET_GRID_GUIDE_INTERSECTION,
- SNAPTARGET_NODE_SMOOTH,
- SNAPTARGET_NODE_CUSP,
- SNAPTARGET_LINE_MIDPOINT,
- SNAPTARGET_OBJECT_MIDPOINT,
- SNAPTARGET_ROTATION_CENTER,
- SNAPTARGET_HANDLE,
- SNAPTARGET_PATH,
- SNAPTARGET_PATH_INTERSECTION,
- SNAPTARGET_BBOX_CORNER,
- SNAPTARGET_BBOX_EDGE,
- SNAPTARGET_BBOX_EDGE_MIDPOINT,
- SNAPTARGET_BBOX_MIDPOINT,
- SNAPTARGET_PAGE_BORDER,
- SNAPTARGET_PAGE_CORNER,
- SNAPTARGET_CONVEX_HULL_CORNER,
- SNAPTARGET_ELLIPSE_QUADRANT_POINT,
- SNAPTARGET_CENTER, // of ellipse
- SNAPTARGET_CORNER, // of image or of rectangle
- SNAPTARGET_TEXT_BASELINE,
- SNAPTARGET_CONSTRAINED_ANGLE,
- SNAPTARGET_CONSTRAINT
-};
-
enum SnapSourceType {
SNAPSOURCE_UNDEFINED = 0,
//-------------------------------------------------------------------
@@ -66,18 +35,54 @@ enum SnapSourceType {
SNAPSOURCE_CONVEX_HULL_CORNER,
SNAPSOURCE_ELLIPSE_QUADRANT_POINT,
SNAPSOURCE_NODE_HANDLE, // eg. nodes in the path editor, handles of stars or rectangles, etc. (tied to a stroke)
- SNAPSOURCE_OBJECT_MIDPOINT, // midpoint of rectangles, polygon, etc.
//-------------------------------------------------------------------
// Other points (e.g. guides, gradient knots) will snap to both bounding boxes and nodes
- SNAPSOURCE_OTHER_CATEGORY = 1024, // will be used as a flag and must therefore be a power of two
+ SNAPSOURCE_OTHERS_CATEGORY = 1024, // will be used as a flag and must therefore be a power of two
SNAPSOURCE_ROTATION_CENTER,
- SNAPSOURCE_CENTER, // of ellipse
+ SNAPSOURCE_OBJECT_MIDPOINT, // midpoint of rectangles, ellipses, polygon, etc.
SNAPSOURCE_GUIDE,
SNAPSOURCE_GUIDE_ORIGIN,
- SNAPSOURCE_TEXT_BASELINE,
- SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient of a connector (ie not being tied to a stroke)
+ SNAPSOURCE_TEXT_ANCHOR,
+ SNAPSOURCE_OTHER_HANDLE, // eg. the handle of a gradient or of a connector (ie not being tied to a stroke)
SNAPSOURCE_GRID_PITCH, // eg. when pasting or alt-dragging in the selector tool; not realy a snap source
};
+enum SnapTargetType {
+ SNAPTARGET_UNDEFINED = 0,
+ //-------------------------------------------------------------------
+ SNAPTARGET_BBOX_CATEGORY = 256, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_BBOX_CORNER,
+ SNAPTARGET_BBOX_EDGE,
+ SNAPTARGET_BBOX_EDGE_MIDPOINT,
+ SNAPTARGET_BBOX_MIDPOINT,
+ //-------------------------------------------------------------------
+ SNAPTARGET_NODE_CATEGORY = 512, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_NODE_SMOOTH,
+ SNAPTARGET_NODE_CUSP,
+ SNAPTARGET_LINE_MIDPOINT,
+ SNAPTARGET_PATH,
+ SNAPTARGET_PATH_INTERSECTION,
+ SNAPTARGET_ELLIPSE_QUADRANT_POINT,
+ SNAPTARGET_CORNER, // of image or of rectangle
+ //-------------------------------------------------------------------
+ SNAPTARGET_OTHERS_CATEGORY = 1024, // will be used as a flag and must therefore be a power of two
+ SNAPTARGET_GRID,
+ SNAPTARGET_GRID_INTERSECTION,
+ SNAPTARGET_GUIDE,
+ SNAPTARGET_GUIDE_INTERSECTION,
+ SNAPTARGET_GUIDE_ORIGIN,
+ SNAPTARGET_GRID_GUIDE_INTERSECTION,
+ SNAPTARGET_OBJECT_MIDPOINT,
+ SNAPTARGET_ROTATION_CENTER,
+ SNAPTARGET_HANDLE,
+ SNAPTARGET_PAGE_BORDER,
+ SNAPTARGET_PAGE_CORNER,
+ SNAPTARGET_CONVEX_HULL_CORNER,
+ SNAPTARGET_TEXT_ANCHOR,
+ SNAPTARGET_TEXT_BASELINE,
+ SNAPTARGET_CONSTRAINED_ANGLE,
+ SNAPTARGET_CONSTRAINT
+};
+
}
#endif /* SNAPENUMS_H_ */
diff --git a/src/snap-preferences.cpp b/src/snap-preferences.cpp
index 15c976466..4859b111e 100644
--- a/src/snap-preferences.cpp
+++ b/src/snap-preferences.cpp
@@ -1,5 +1,3 @@
-#define __SNAPPREFERENCES_CPP__
-
/**
* \file snap-preferences.cpp
* \brief Storing of snapping preferences
@@ -27,15 +25,16 @@ Inkscape::SnapPreferences::SnapPreferences() :
_snap_to_page_border(false),
_strict_snapping(true)
{
- setSnapFrom(SnapSourceType(SNAPSOURCE_BBOX_CATEGORY | SNAPSOURCE_NODE_CATEGORY | SNAPSOURCE_OTHER_CATEGORY), true); //Snap any point. In v0.45 and earlier, this was controlled in the preferences tab
+ setSnapFrom(SnapSourceType(SNAPSOURCE_BBOX_CATEGORY | SNAPSOURCE_NODE_CATEGORY | SNAPSOURCE_OTHERS_CATEGORY), true); //Snap any point. In v0.45 and earlier, this was controlled in the preferences tab
}
/*
* The snappers have too many parameters to adjust individually. Therefore only
- * two snapping modes are presented to the user: snapping bounding box corners (to
+ * three snapping modes are presented to the user: snapping bounding box corners (to
* other bounding boxes, grids or guides), and/or snapping nodes (to other nodes,
- * paths, grids or guides). To select either of these modes (or both), use the
- * methods defined below: setSnapModeBBox() and setSnapModeNode().
+ * paths, grids or guides), and or snapping to/from others (e.g. grids, guide, text, etc)
+ * To select either of these three modes (or all), use the
+ * methods defined below: setSnapModeBBox(), setSnapModeNode(), or setSnapModeOthers()
*
* */
@@ -68,11 +67,26 @@ bool Inkscape::SnapPreferences::getSnapModeNode() const
return (_snap_from & Inkscape::SNAPSOURCE_NODE_CATEGORY);
}
-bool Inkscape::SnapPreferences::getSnapModeBBoxOrNodes() const
+void Inkscape::SnapPreferences::setSnapModeOthers(bool enabled)
{
- return (_snap_from & (Inkscape::SNAPSOURCE_BBOX_CATEGORY | Inkscape::SNAPSOURCE_NODE_CATEGORY) );
+ if (enabled) {
+ _snap_from = SnapSourceType(_snap_from | Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
+ } else {
+ _snap_from = SnapSourceType(_snap_from & ~Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
+ }
}
+bool Inkscape::SnapPreferences::getSnapModeOthers() const
+{
+ return (_snap_from & Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
+}
+
+
+//bool Inkscape::SnapPreferences::getSnapModeBBoxOrNodes() const
+//{
+// return (_snap_from & (Inkscape::SNAPSOURCE_BBOX_CATEGORY | Inkscape::SNAPSOURCE_NODE_CATEGORY) );
+//}
+
bool Inkscape::SnapPreferences::getSnapModeAny() const
{
return (_snap_from != 0);
@@ -81,15 +95,15 @@ bool Inkscape::SnapPreferences::getSnapModeAny() const
void Inkscape::SnapPreferences::setSnapModeGuide(bool enabled)
{
if (enabled) {
- _snap_from = SnapSourceType(_snap_from | Inkscape::SNAPSOURCE_OTHER_CATEGORY);
+ _snap_from = SnapSourceType(_snap_from | Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
} else {
- _snap_from = SnapSourceType(_snap_from & ~Inkscape::SNAPSOURCE_OTHER_CATEGORY);
+ _snap_from = SnapSourceType(_snap_from & ~Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
}
}
bool Inkscape::SnapPreferences::getSnapModeGuide() const
{
- return (_snap_from & Inkscape::SNAPSOURCE_OTHER_CATEGORY);
+ return (_snap_from & Inkscape::SNAPSOURCE_OTHERS_CATEGORY);
}
/**
diff --git a/src/snap-preferences.h b/src/snap-preferences.h
index cc8f24503..8e8ebc9cf 100644
--- a/src/snap-preferences.h
+++ b/src/snap-preferences.h
@@ -26,10 +26,12 @@ public:
void setSnapModeBBox(bool enabled);
void setSnapModeNode(bool enabled);
+ void setSnapModeOthers(bool enabled);
void setSnapModeGuide(bool enabled);
bool getSnapModeBBox() const;
bool getSnapModeNode() const;
- bool getSnapModeBBoxOrNodes() const;
+ bool getSnapModeOthers() const;
+ //bool getSnapModeBBoxOrNodes() const;
bool getSnapModeAny() const;
bool getSnapModeGuide() const;
@@ -38,6 +40,7 @@ public:
void setSnapSmoothNodes(bool enabled) {_smoothNodes = enabled;}
void setSnapLineMidpoints(bool enabled) {_line_midpoints = enabled;}
void setSnapObjectMidpoints(bool enabled) {_object_midpoints = enabled;}
+ void setSnapTextBaseline(bool enabled) {_text_baseline = enabled;}
void setSnapBBoxEdgeMidpoints(bool enabled) {_bbox_edge_midpoints = enabled;}
void setSnapBBoxMidpoints(bool enabled) {_bbox_midpoints = enabled;}
bool getSnapIntersectionGG() const {return _intersectionGG;}
@@ -45,6 +48,7 @@ public:
bool getSnapSmoothNodes() const {return _smoothNodes;}
bool getSnapLineMidpoints() const {return _line_midpoints;}
bool getSnapObjectMidpoints() const {return _object_midpoints;}
+ bool getSnapTextBaseline() const {return _text_baseline;}
bool getSnapBBoxEdgeMidpoints() const {return _bbox_edge_midpoints;}
bool getSnapBBoxMidpoints() const {return _bbox_midpoints;}
@@ -87,7 +91,6 @@ public:
void setGuideTolerance(gdouble val) {_guide_tolerance = val;}
void setObjectTolerance(gdouble val) {_object_tolerance = val;}
-
private:
bool _include_item_center; //If true, snapping nodes will also snap the item's center
bool _intersectionGG; //Consider snapping to intersections of grid and guides
@@ -95,6 +98,7 @@ private:
bool _smoothNodes;
bool _line_midpoints;
bool _object_midpoints; // the midpoint of shapes (e.g. a circle, rect, polygon) or of any other shape (at [h/2, w/2])
+ bool _text_baseline; // both anchor point and baseline of the text
bool _bbox_edge_midpoints;
bool _bbox_midpoints;
bool _snap_to_grids;
diff --git a/src/snap.cpp b/src/snap.cpp
index 922dfd530..3e79a221e 100644
--- a/src/snap.cpp
+++ b/src/snap.cpp
@@ -917,7 +917,7 @@ Inkscape::SnappedPoint SnapManager::_snapTransformed(
// We might still need to apply a constraint though, if we tried a constrained snap. And
// in case of a free snap we might have use for the transformed point, so let's return that
// point, whether it's constrained or not
- if (best_snapped_point.isOtherSnapBetter(snapped_point, true)) {
+ if (best_snapped_point.isOtherSnapBetter(snapped_point, true) || points.size() == 1) {
// .. so we must keep track of the best non-snapped constrained point
best_transformation = result;
best_snapped_point = snapped_point;
@@ -1441,7 +1441,7 @@ void SnapManager::_displaySnapsource(Inkscape::SnapCandidatePoint const &p) cons
if (prefs->getBool("/options/snapclosestonly/value")) {
bool p_is_a_node = p.getSourceType() & Inkscape::SNAPSOURCE_NODE_CATEGORY;
bool p_is_a_bbox = p.getSourceType() & Inkscape::SNAPSOURCE_BBOX_CATEGORY;
- bool p_is_other = p.getSourceType() & Inkscape::SNAPSOURCE_OTHER_CATEGORY;
+ bool p_is_other = p.getSourceType() & Inkscape::SNAPSOURCE_OTHERS_CATEGORY;
g_assert(_desktop != NULL);
if (snapprefs.getSnapEnabledGlobally() && (p_is_other || (p_is_a_node && snapprefs.getSnapModeNode()) || (p_is_a_bbox && snapprefs.getSnapModeBBox()))) {
diff --git a/src/sp-conn-end-pair.cpp b/src/sp-conn-end-pair.cpp
index 3cc022c39..e22145425 100644
--- a/src/sp-conn-end-pair.cpp
+++ b/src/sp-conn-end-pair.cpp
@@ -224,7 +224,7 @@ SPConnEndPair::getEndpoints(Geom::Point endPts[]) const {
g_assert(h2attItem[h]->avoidRef);
endPts[h] = h2attItem[h]->avoidRef->getConnectionPointPos(_connEnd[h]->type, _connEnd[h]->id);
}
- else
+ else if (!curve->is_empty())
{
if (h == 0) {
endPts[h] = *(curve->first_point())*i2d;
diff --git a/src/sp-ellipse.cpp b/src/sp-ellipse.cpp
index cf5927fc8..7ebedb816 100644
--- a/src/sp-ellipse.cpp
+++ b/src/sp-ellipse.cpp
@@ -276,7 +276,7 @@ static void sp_genericellipse_snappoints(SPItem const *item, std::vector<Inkscap
g_assert(SP_IS_GENERICELLIPSE(item));
// Help enforcing strict snapping, i.e. only return nodes when we're snapping nodes to nodes or a guide to nodes
- if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide())) {
+ if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide() || snapprefs->getSnapModeOthers())) {
return;
}
@@ -317,7 +317,7 @@ static void sp_genericellipse_snappoints(SPItem const *item, std::vector<Inkscap
// Add the centre, if we have a closed slice or when explicitly asked for
if ((snapprefs->getSnapToItemNode() && slice && ellipse->closed) || snapprefs->getSnapObjectMidpoints()) {
pt = Geom::Point(cx, cy) * i2d;
- p.push_back(Inkscape::SnapCandidatePoint(pt, Inkscape::SNAPSOURCE_CENTER, Inkscape::SNAPTARGET_CENTER));
+ p.push_back(Inkscape::SnapCandidatePoint(pt, Inkscape::SNAPSOURCE_OBJECT_MIDPOINT, Inkscape::SNAPTARGET_OBJECT_MIDPOINT));
}
// And if we have a slice, also snap to the endpoints
diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp
index 9db0d29b2..ab545919f 100644
--- a/src/sp-flowtext.cpp
+++ b/src/sp-flowtext.cpp
@@ -391,15 +391,17 @@ static gchar *sp_flowtext_description(SPItem *item)
}
}
-static void sp_flowtext_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const */*snapprefs*/)
+static void sp_flowtext_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs)
{
- // Choose a point on the baseline for snapping from or to, with the horizontal position
- // of this point depending on the text alignment (left vs. right)
- Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
- if (layout != NULL && layout->outputExists()) {
- boost::optional<Geom::Point> pt = layout->baselineAnchorPoint();
- if (pt) {
- p.push_back(Inkscape::SnapCandidatePoint((*pt) * item->i2d_affine(), Inkscape::SNAPSOURCE_TEXT_BASELINE, Inkscape::SNAPTARGET_TEXT_BASELINE));
+ if (snapprefs->getSnapTextBaseline()) {
+ // Choose a point on the baseline for snapping from or to, with the horizontal position
+ // of this point depending on the text alignment (left vs. right)
+ Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
+ if (layout != NULL && layout->outputExists()) {
+ boost::optional<Geom::Point> pt = layout->baselineAnchorPoint();
+ if (pt) {
+ p.push_back(Inkscape::SnapCandidatePoint((*pt) * item->i2d_affine(), Inkscape::SNAPSOURCE_TEXT_ANCHOR, Inkscape::SNAPTARGET_TEXT_ANCHOR));
+ }
}
}
}
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 35a159192..ac2d7dc1b 100644
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
@@ -252,11 +252,13 @@ static void sp_namedview_build(SPObject *object, SPDocument *document, Inkscape:
object->readAttr( "inkscape:snap-global" );
object->readAttr( "inkscape:snap-bbox" );
object->readAttr( "inkscape:snap-nodes" );
+ object->readAttr( "inkscape:snap-others" );
object->readAttr( "inkscape:snap-from-guide" );
object->readAttr( "inkscape:snap-center" );
object->readAttr( "inkscape:snap-smooth-nodes" );
object->readAttr( "inkscape:snap-midpoints" );
object->readAttr( "inkscape:snap-object-midpoints" );
+ object->readAttr( "inkscape:snap-text-baseline" );
object->readAttr( "inkscape:snap-bbox-edge-midpoints" );
object->readAttr( "inkscape:snap-bbox-midpoints" );
object->readAttr( "inkscape:snap-to-guides" );
@@ -309,8 +311,6 @@ static void sp_namedview_release(SPObject *object)
static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *value)
{
SPNamedView *nv = SP_NAMEDVIEW(object);
- // TODO investigate why we grab this and then never use it
- SPUnit const &px = sp_unit_get_by_id(SP_UNIT_PX);
switch (key) {
case SP_ATTR_VIEWONLY:
@@ -335,17 +335,17 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_GRIDTOLERANCE:
- nv->snap_manager.snapprefs.setGridTolerance(value ? g_ascii_strtod(value, NULL) : 10000);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setGridTolerance(value ? g_ascii_strtod(value, NULL) : 10000);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_GUIDETOLERANCE:
- nv->snap_manager.snapprefs.setGuideTolerance(value ? g_ascii_strtod(value, NULL) : 20);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setGuideTolerance(value ? g_ascii_strtod(value, NULL) : 20);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_OBJECTTOLERANCE:
- nv->snap_manager.snapprefs.setObjectTolerance(value ? g_ascii_strtod(value, NULL) : 20);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setObjectTolerance(value ? g_ascii_strtod(value, NULL) : 20);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_GUIDECOLOR:
nv->guidecolor = (nv->guidecolor & 0xff) | (DEFAULTGUIDECOLOR & 0xffffff00);
if (value) {
@@ -452,9 +452,9 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_INKSCAPE_WINDOW_MAXIMIZED:
- nv->window_maximized = value ? atoi(value) : 0;
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->window_maximized = value ? atoi(value) : 0;
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_GLOBAL:
nv->snap_manager.snapprefs.setSnapEnabledGlobally(value ? sp_str_to_bool(value) : TRUE);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
@@ -467,18 +467,22 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
nv->snap_manager.snapprefs.setSnapModeNode(value ? sp_str_to_bool(value) : TRUE);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
+ case SP_ATTR_INKSCAPE_SNAP_OTHERS:
+ nv->snap_manager.snapprefs.setSnapModeOthers(value ? sp_str_to_bool(value) : TRUE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_CENTER:
nv->snap_manager.snapprefs.setIncludeItemCenter(value ? sp_str_to_bool(value) : FALSE);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_INKSCAPE_SNAP_GRIDS:
- nv->snap_manager.snapprefs.setSnapToGrids(value ? sp_str_to_bool(value) : TRUE);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setSnapToGrids(value ? sp_str_to_bool(value) : TRUE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_TO_GUIDES:
- nv->snap_manager.snapprefs.setSnapToGuides(value ? sp_str_to_bool(value) : TRUE);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setSnapToGuides(value ? sp_str_to_bool(value) : TRUE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES:
nv->snap_manager.snapprefs.setSnapSmoothNodes(value ? sp_str_to_bool(value) : FALSE);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
@@ -488,17 +492,21 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_INKSCAPE_SNAP_OBJECT_MIDPOINTS:
- nv->snap_manager.snapprefs.setSnapObjectMidpoints(value ? sp_str_to_bool(value) : FALSE);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setSnapObjectMidpoints(value ? sp_str_to_bool(value) : FALSE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
+ case SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE:
+ nv->snap_manager.snapprefs.setSnapTextBaseline(value ? sp_str_to_bool(value) : FALSE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE_MIDPOINTS:
- nv->snap_manager.snapprefs.setSnapBBoxEdgeMidpoints(value ? sp_str_to_bool(value) : FALSE);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setSnapBBoxEdgeMidpoints(value ? sp_str_to_bool(value) : FALSE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_BBOX_MIDPOINTS:
- nv->snap_manager.snapprefs.setSnapBBoxMidpoints(value ? sp_str_to_bool(value) : FALSE);
- object->requestModified(SP_OBJECT_MODIFIED_FLAG);
- break;
+ nv->snap_manager.snapprefs.setSnapBBoxMidpoints(value ? sp_str_to_bool(value) : FALSE);
+ object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ break;
case SP_ATTR_INKSCAPE_SNAP_FROM_GUIDE:
nv->snap_manager.snapprefs.setSnapModeGuide(value ? sp_str_to_bool(value) : TRUE);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
diff --git a/src/sp-rect.cpp b/src/sp-rect.cpp
index 94a453ae6..db5a62f8f 100644
--- a/src/sp-rect.cpp
+++ b/src/sp-rect.cpp
@@ -567,7 +567,7 @@ static void sp_rect_snappoints(SPItem const *item, std::vector<Inkscape::SnapCan
g_assert(SP_IS_RECT(item));
// Help enforcing strict snapping, i.e. only return nodes when we're snapping nodes to nodes or a guide to nodes
- if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide())) {
+ if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide() || snapprefs->getSnapModeOthers())) {
return;
}
diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp
index ea79b6cee..24b6b8025 100644
--- a/src/sp-shape.cpp
+++ b/src/sp-shape.cpp
@@ -1190,7 +1190,7 @@ void SPShape::sp_shape_snappoints(SPItem const *item, std::vector<Inkscape::Snap
}
// Help enforcing strict snapping, i.e. only return nodes when we're snapping nodes to nodes or a guide to nodes
- if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide())) {
+ if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide() || snapprefs->getSnapModeOthers())) {
return;
}
diff --git a/src/sp-spiral.cpp b/src/sp-spiral.cpp
index 05c6bc9cd..a772e057d 100644
--- a/src/sp-spiral.cpp
+++ b/src/sp-spiral.cpp
@@ -529,7 +529,7 @@ static void sp_spiral_snappoints(SPItem const *item, std::vector<Inkscape::SnapC
}
// Help enforcing strict snapping, i.e. only return nodes when we're snapping nodes to nodes or a guide to nodes
- if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide())) {
+ if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide() || snapprefs->getSnapModeOthers())) {
return;
}
diff --git a/src/sp-star.cpp b/src/sp-star.cpp
index 39efe2537..17ddf7279 100644
--- a/src/sp-star.cpp
+++ b/src/sp-star.cpp
@@ -557,7 +557,7 @@ static void sp_star_snappoints(SPItem const *item, std::vector<Inkscape::SnapCan
}
// Help enforcing strict snapping, i.e. only return nodes when we're snapping nodes to nodes or a guide to nodes
- if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide())) {
+ if (!(snapprefs->getSnapModeNode() || snapprefs->getSnapModeGuide() || snapprefs->getSnapModeOthers())) {
return;
}
diff --git a/src/sp-text.cpp b/src/sp-text.cpp
index 3f30c2422..f7ba7592b 100644
--- a/src/sp-text.cpp
+++ b/src/sp-text.cpp
@@ -441,15 +441,17 @@ static char * sp_text_description(SPItem *item)
return ret;
}
-static void sp_text_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const */*snapprefs*/)
+static void sp_text_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs)
{
- // Choose a point on the baseline for snapping from or to, with the horizontal position
- // of this point depending on the text alignment (left vs. right)
- Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
- if (layout != NULL && layout->outputExists()) {
- boost::optional<Geom::Point> pt = layout->baselineAnchorPoint();
- if (pt) {
- p.push_back(Inkscape::SnapCandidatePoint((*pt) * item->i2d_affine(), Inkscape::SNAPSOURCE_TEXT_BASELINE, Inkscape::SNAPTARGET_TEXT_BASELINE));
+ if (snapprefs->getSnapTextBaseline()) {
+ // Choose a point on the baseline for snapping from or to, with the horizontal position
+ // of this point depending on the text alignment (left vs. right)
+ Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
+ if (layout != NULL && layout->outputExists()) {
+ boost::optional<Geom::Point> pt = layout->baselineAnchorPoint();
+ if (pt) {
+ p.push_back(Inkscape::SnapCandidatePoint((*pt) * item->i2d_affine(), Inkscape::SNAPSOURCE_TEXT_ANCHOR, Inkscape::SNAPTARGET_TEXT_ANCHOR));
+ }
}
}
}
diff --git a/src/spiral-context.cpp b/src/spiral-context.cpp
index a5e1fbc17..93ff48c3e 100644
--- a/src/spiral-context.cpp
+++ b/src/spiral-context.cpp
@@ -59,7 +59,7 @@ static void sp_spiral_cancel(SPSpiralContext *sc);
static SPEventContextClass *parent_class;
-GtkType
+GType
sp_spiral_context_get_type()
{
static GType type = 0;
diff --git a/src/spiral-context.h b/src/spiral-context.h
index d877e6ae4..12c0b5d68 100644
--- a/src/spiral-context.h
+++ b/src/spiral-context.h
@@ -48,6 +48,6 @@ struct SPSpiralContextClass {
/* Standard Gtk function */
-GtkType sp_spiral_context_get_type (void);
+GType sp_spiral_context_get_type (void);
#endif
diff --git a/src/spray-context.cpp b/src/spray-context.cpp
index aa14e6ee5..b2d99a696 100644
--- a/src/spray-context.cpp
+++ b/src/spray-context.cpp
@@ -97,7 +97,7 @@ inline double NormalDistribution(double mu, double sigma)
return mu + sigma * sqrt( -2.0 * log(g_random_double_range(0, 1)) ) * cos( 2.0*M_PI*g_random_double_range(0, 1) );
}
-GtkType sp_spray_context_get_type(void)
+GType sp_spray_context_get_type(void)
{
static GType type = 0;
if (!type) {
diff --git a/src/spray-context.h b/src/spray-context.h
index fc2340b5e..f3564ac67 100644
--- a/src/spray-context.h
+++ b/src/spray-context.h
@@ -99,7 +99,7 @@ struct SPSprayContextClass
SPEventContextClass parent_class;
};
-GtkType sp_spray_context_get_type(void);
+GType sp_spray_context_get_type(void);
#endif
diff --git a/src/star-context.cpp b/src/star-context.cpp
index bc0376a20..878ecfbe7 100644
--- a/src/star-context.cpp
+++ b/src/star-context.cpp
@@ -64,7 +64,7 @@ static void sp_star_cancel(SPStarContext * sc);
static SPEventContextClass * parent_class;
-GtkType
+GType
sp_star_context_get_type (void)
{
static GType type = 0;
diff --git a/src/star-context.h b/src/star-context.h
index c7cba2bf0..7bcb26c41 100644
--- a/src/star-context.h
+++ b/src/star-context.h
@@ -52,6 +52,6 @@ struct SPStarContextClass {
SPEventContextClass parent_class;
};
-GtkType sp_star_context_get_type (void);
+GType sp_star_context_get_type (void);
#endif
diff --git a/src/svg-view-widget.cpp b/src/svg-view-widget.cpp
index 639216d1f..cda1ed546 100644
--- a/src/svg-view-widget.cpp
+++ b/src/svg-view-widget.cpp
@@ -63,15 +63,11 @@ GType sp_svg_view_widget_get_type(void)
static void
sp_svg_view_widget_class_init (SPSVGSPViewWidgetClass *klass)
{
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
- SPViewWidgetClass *vw_class;
+ GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ SPViewWidgetClass *vw_class = SP_VIEW_WIDGET_CLASS (klass);
- object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- vw_class = SP_VIEW_WIDGET_CLASS (klass);
-
- widget_parent_class = (SPViewWidgetClass*)gtk_type_class (SP_TYPE_VIEW_WIDGET);
+ widget_parent_class = (SPViewWidgetClass *)g_type_class_peek_parent (klass);
object_class->destroy = sp_svg_view_widget_destroy;
@@ -212,7 +208,7 @@ sp_svg_view_widget_new (SPDocument *doc)
g_return_val_if_fail (doc != NULL, NULL);
- widget = (GtkWidget*)gtk_type_new (SP_TYPE_SVG_VIEW_WIDGET);
+ widget = (GtkWidget*)g_object_new (SP_TYPE_SVG_VIEW_WIDGET, NULL);
reinterpret_cast<SPSVGView*>(SP_VIEW_WIDGET_VIEW (widget))->setDocument (doc);
diff --git a/src/svg-view-widget.h b/src/svg-view-widget.h
index 1a8697fdf..46def687b 100644
--- a/src/svg-view-widget.h
+++ b/src/svg-view-widget.h
@@ -27,7 +27,7 @@ class SPSVGSPViewWidgetClass;
#define SP_IS_SVG_VIEW_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_SVG_VIEW_WIDGET))
#define SP_IS_SVG_VIEW_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_SVG_VIEW_WIDGET))
-GtkType sp_svg_view_widget_get_type (void);
+GType sp_svg_view_widget_get_type (void);
GtkWidget *sp_svg_view_widget_new (SPDocument *doc);
diff --git a/src/svg-view.cpp b/src/svg-view.cpp
index 44c874150..03056de2e 100644
--- a/src/svg-view.cpp
+++ b/src/svg-view.cpp
@@ -199,6 +199,8 @@ SPSVGView::setDocument (SPDocument *document)
g_signal_connect (G_OBJECT (_drawing), "arena_event", G_CALLBACK (arena_handler), this);
}
+ View::setDocument (document);
+
if (document) {
NRArenaItem *ai = SP_ITEM( document->getRoot() )->invoke_show(
SP_CANVAS_ARENA (_drawing)->arena,
@@ -211,8 +213,6 @@ SPSVGView::setDocument (SPDocument *document)
doRescale (!_rescale);
}
-
- View::setDocument (document);
}
/**
diff --git a/src/svg/CMakeLists.txt b/src/svg/CMakeLists.txt
index 9a721969a..943c3088f 100644
--- a/src/svg/CMakeLists.txt
+++ b/src/svg/CMakeLists.txt
@@ -14,6 +14,9 @@ set(svg_SRC
svg-path.cpp
# test-stubs.cpp
+
+ # -------
+ # Headers
css-ostringstream-test.h
css-ostringstream.h
path-string.h
diff --git a/src/text-context.cpp b/src/text-context.cpp
index b709d4d24..a27ad3ee4 100644
--- a/src/text-context.cpp
+++ b/src/text-context.cpp
@@ -215,7 +215,7 @@ sp_text_context_setup(SPEventContext *ec)
SP_CTRLRECT(tc->frame)->setColor(0x0000ff7f, false, 0);
sp_canvas_item_hide(tc->frame);
- tc->timeout = gtk_timeout_add(timeout, (GtkFunction) sp_text_context_timeout, ec);
+ tc->timeout = g_timeout_add(timeout, (GSourceFunc) sp_text_context_timeout, ec);
tc->imc = gtk_im_multicontext_new();
if (tc->imc) {
@@ -297,7 +297,7 @@ sp_text_context_finish(SPEventContext *ec)
}
if (tc->timeout) {
- gtk_timeout_remove(tc->timeout);
+ g_source_remove(tc->timeout);
tc->timeout = 0;
}
@@ -675,7 +675,7 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
Geom::Point const motion_w(event->motion.x, event->motion.y);
Geom::Point motion_dt(desktop->w2d(motion_w));
- m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_NODE_HANDLE));
+ m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_OTHER_HANDLE));
m.unSetup();
}
break;
diff --git a/src/text-context.h b/src/text-context.h
index 0d7a93ef0..a140c2f08 100644
--- a/src/text-context.h
+++ b/src/text-context.h
@@ -80,7 +80,7 @@ struct SPTextContextClass {
};
/* Standard Gtk function */
-GtkType sp_text_context_get_type (void);
+GType sp_text_context_get_type (void);
bool sp_text_paste_inline(SPEventContext *ec);
Glib::ustring sp_text_get_selected_text(SPEventContext const *ec);
diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp
index 022869c69..974197786 100644
--- a/src/tweak-context.cpp
+++ b/src/tweak-context.cpp
@@ -89,7 +89,7 @@ static gint sp_tweak_context_root_handler(SPEventContext *ec, GdkEvent *event);
static SPEventContextClass *parent_class;
-GtkType
+GType
sp_tweak_context_get_type(void)
{
static GType type = 0;
diff --git a/src/tweak-context.h b/src/tweak-context.h
index d77605a82..cb1cf301b 100644
--- a/src/tweak-context.h
+++ b/src/tweak-context.h
@@ -86,7 +86,7 @@ struct SPTweakContextClass
SPEventContextClass parent_class;
};
-GtkType sp_tweak_context_get_type(void);
+GType sp_tweak_context_get_type(void);
#endif
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 30b72437f..9bbdd861e 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -166,9 +166,6 @@ set(ui_SRC
dialog/tracedialog.h
dialog/transformation.h
dialog/undo-history.h
- dialog/whiteboard-connect.h
- dialog/whiteboard-sharewithchat.h
- dialog/whiteboard-sharewithuser.h
tool/commit-events.h
tool/control-point-selection.h
diff --git a/src/ui/context-menu.cpp b/src/ui/context-menu.cpp
index a45b8ceaa..4d2c242a6 100644
--- a/src/ui/context-menu.cpp
+++ b/src/ui/context-menu.cpp
@@ -110,34 +110,34 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
/* Item dialog */
w = gtk_menu_item_new_with_mnemonic(_("_Object Properties..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_properties), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Separator */
w = gtk_menu_item_new();
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Select item */
w = gtk_menu_item_new_with_mnemonic(_("_Select This"));
if (sp_desktop_selection(desktop)->includes(item)) {
gtk_widget_set_sensitive(w, FALSE);
} else {
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_select_this), item);
}
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Create link */
w = gtk_menu_item_new_with_mnemonic(_("_Create Link"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_create_link), item);
gtk_widget_set_sensitive(w, !SP_IS_ANCHOR(item));
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Set mask */
w = gtk_menu_item_new_with_mnemonic(_("Set Mask"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_set_mask), item);
if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) {
gtk_widget_set_sensitive(w, FALSE);
@@ -145,10 +145,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
gtk_widget_set_sensitive(w, TRUE);
}
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Release mask */
w = gtk_menu_item_new_with_mnemonic(_("Release Mask"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_release_mask), item);
if (item && item->mask_ref && item->mask_ref->getObject()) {
gtk_widget_set_sensitive(w, TRUE);
@@ -156,10 +156,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
gtk_widget_set_sensitive(w, FALSE);
}
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Set Clip */
w = gtk_menu_item_new_with_mnemonic(_("Set _Clip"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_set_clip), item);
if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) {
gtk_widget_set_sensitive(w, FALSE);
@@ -167,10 +167,10 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
gtk_widget_set_sensitive(w, TRUE);
}
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Release Clip */
w = gtk_menu_item_new_with_mnemonic(_("Release C_lip"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_release_clip), item);
if (item && item->clip_ref && item->clip_ref->getObject()) {
gtk_widget_set_sensitive(w, TRUE);
@@ -178,7 +178,7 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
gtk_widget_set_sensitive(w, FALSE);
}
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
}
@@ -189,7 +189,7 @@ sp_item_properties(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_desktop_selection(desktop)->set(item);
@@ -205,7 +205,7 @@ sp_set_mask(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_selection_set_mask(desktop, false, false);
@@ -219,7 +219,7 @@ sp_release_mask(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_selection_unset_mask(desktop, false);
@@ -233,7 +233,7 @@ sp_set_clip(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_selection_set_mask(desktop, true, false);
@@ -247,7 +247,7 @@ sp_release_clip(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_selection_unset_mask(desktop, true);
@@ -261,7 +261,7 @@ sp_item_select_this(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
sp_desktop_selection(desktop)->set(item);
@@ -273,7 +273,7 @@ sp_item_create_link(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
g_assert(!SP_IS_ANCHOR(item));
- SPDesktop *desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ SPDesktop *desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc();
@@ -311,10 +311,10 @@ sp_group_menu(SPObject *object, SPDesktop *desktop, GtkMenu *menu)
/* "Ungroup" */
w = gtk_menu_item_new_with_mnemonic(_("_Ungroup"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_item_group_ungroup_activate), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(menu), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), w);
}
static void
@@ -325,7 +325,7 @@ sp_item_group_ungroup_activate(GtkMenuItem *menuitem, SPGroup *group)
g_assert(SP_IS_GROUP(group));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
children = NULL;
@@ -351,21 +351,21 @@ sp_anchor_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
/* Link dialog */
w = gtk_menu_item_new_with_mnemonic(_("Link _Properties..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_properties), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Select item */
w = gtk_menu_item_new_with_mnemonic(_("_Follow Link"));
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_follow), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Reset transformations */
w = gtk_menu_item_new_with_mnemonic(_("_Remove Link"));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_anchor_link_remove), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
}
static void
@@ -410,16 +410,16 @@ sp_image_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
/* Link dialog */
w = gtk_menu_item_new_with_mnemonic(_("Image _Properties..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_image_image_properties), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
w = gtk_menu_item_new_with_mnemonic(_("Edit Externally..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_image_image_edit), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
Inkscape::XML::Node *ir = object->getRepr();
const gchar *href = ir->attribute("xlink:href");
if ( (!href) || ((strncmp(href, "data:", 5) == 0)) ) {
@@ -495,7 +495,7 @@ static void sp_image_image_edit(GtkMenuItem *menuitem, SPAnchor *anchor)
if ( errThing ) {
g_warning("Problem launching editor (%d). %s", errThing->code, errThing->message);
- SPDesktop *desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ SPDesktop *desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
desktop->messageStack()->flash(Inkscape::ERROR_MESSAGE, errThing->message);
g_error_free(errThing);
errThing = 0;
@@ -511,7 +511,7 @@ sp_fill_settings(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
if (sp_desktop_selection(desktop)->isEmpty()) {
@@ -533,10 +533,10 @@ sp_shape_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
/* Item dialog */
w = gtk_menu_item_new_with_mnemonic(_("_Fill and Stroke..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_fill_settings), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
}
/* Edit Text entry */
@@ -548,7 +548,7 @@ sp_text_settings(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
if (sp_desktop_selection(desktop)->isEmpty()) {
@@ -567,7 +567,7 @@ sp_spellcheck_settings(GtkMenuItem *menuitem, SPItem *item)
g_assert(SP_IS_ITEM(item));
- desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+ desktop = (SPDesktop*)g_object_get_data(G_OBJECT(menuitem), "desktop");
g_return_if_fail(desktop != NULL);
if (sp_desktop_selection(desktop)->isEmpty()) {
@@ -589,24 +589,24 @@ sp_text_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
/* Fill and Stroke dialog */
w = gtk_menu_item_new_with_mnemonic(_("_Fill and Stroke..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_fill_settings), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Edit Text dialog */
w = gtk_menu_item_new_with_mnemonic(_("_Text and Font..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_text_settings), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
/* Spellcheck dialog */
w = gtk_menu_item_new_with_mnemonic(_("Check Spellin_g..."));
- gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+ g_object_set_data(G_OBJECT(w), "desktop", desktop);
g_signal_connect(G_OBJECT(w), "activate", G_CALLBACK(sp_spellcheck_settings), item);
gtk_widget_show(w);
- gtk_menu_append(GTK_MENU(m), w);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), w);
}
/*
Local Variables:
diff --git a/src/ui/dialog/dock-behavior.cpp b/src/ui/dialog/dock-behavior.cpp
index 47cbab485..25fa1739a 100644
--- a/src/ui/dialog/dock-behavior.cpp
+++ b/src/ui/dialog/dock-behavior.cpp
@@ -262,7 +262,7 @@ DockBehavior::onDesktopActivated(SPDesktop *desktop)
}
// we're done, allow next retransientizing not sooner than after 120 msec
- gtk_timeout_add (120, (GtkFunction) sp_retransientize_again, (gpointer) floating_win);
+ g_timeout_add (120, (GSourceFunc) sp_retransientize_again, (gpointer) floating_win);
}
}
diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp
index 35cc88090..6a086e0a1 100644
--- a/src/ui/dialog/floating-behavior.cpp
+++ b/src/ui/dialog/floating-behavior.cpp
@@ -220,7 +220,7 @@ FloatingBehavior::onDesktopActivated (SPDesktop *desktop)
}
// we're done, allow next retransientizing not sooner than after 120 msec
- gtk_timeout_add (120, (GtkFunction) sp_retransientize_again, (gpointer) _d);
+ g_timeout_add (120, (GSourceFunc) sp_retransientize_again, (gpointer) _d);
}
diff --git a/src/ui/icon-names.h b/src/ui/icon-names.h
index f7c16b0ed..8935b1def 100644
--- a/src/ui/icon-names.h
+++ b/src/ui/icon-names.h
@@ -458,6 +458,8 @@
"snap-nodes"
#define INKSCAPE_ICON_SNAP_NODES_CENTER \
"snap-nodes-center"
+#define INKSCAPE_ICON_SNAP_OTHERS \
+ "snap-nodes-others"
#define INKSCAPE_ICON_SNAP_NODES_CUSP \
"snap-nodes-cusp"
#define INKSCAPE_ICON_SNAP_NODES_INTERSECTION \
@@ -468,6 +470,8 @@
"snap-nodes-path"
#define INKSCAPE_ICON_SNAP_NODES_ROTATION_CENTER \
"snap-nodes-rotation-center"
+#define INKSCAPE_ICON_SNAP_TEXT_BASELINE \
+ "snap-text-baseline"
#define INKSCAPE_ICON_SNAP_NODES_SMOOTH \
"snap-nodes-smooth"
#define INKSCAPE_ICON_SNAP_PAGE \
diff --git a/src/ui/view/view-widget.cpp b/src/ui/view/view-widget.cpp
index cf0f55f2c..d43877569 100644
--- a/src/ui/view/view-widget.cpp
+++ b/src/ui/view/view-widget.cpp
@@ -27,22 +27,21 @@ static GtkEventBoxClass *widget_parent_class;
/**
* Registers the SPViewWidget class with Glib and returns its type number.
*/
-GtkType sp_view_widget_get_type(void)
+GType sp_view_widget_get_type(void)
{
- static GtkType type = 0;
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar*) "SPViewWidget",
- sizeof(SPViewWidget),
+ GTypeInfo info = {
sizeof(SPViewWidgetClass),
- (GtkClassInitFunc) sp_view_widget_class_init,
- (GtkObjectInitFunc) sp_view_widget_init,
- NULL, NULL, NULL
- };
- type = gtk_type_unique(GTK_TYPE_EVENT_BOX, &info);
+ NULL, NULL,
+ (GClassInitFunc) sp_view_widget_class_init,
+ NULL, NULL,
+ sizeof(SPViewWidget),
+ 0,
+ (GInstanceInitFunc) sp_view_widget_init,
+ NULL
+ };
+ type = g_type_register_static (GTK_TYPE_EVENT_BOX, "SPViewWidget", &info, (GTypeFlags)0);
}
return type;
@@ -55,7 +54,7 @@ static void sp_view_widget_class_init(SPViewWidgetClass *vwc)
{
GtkObjectClass *object_class = GTK_OBJECT_CLASS(vwc);
- widget_parent_class = (GtkEventBoxClass*) gtk_type_class(GTK_TYPE_EVENT_BOX);
+ widget_parent_class = (GtkEventBoxClass*) g_type_class_peek_parent(vwc);
object_class->destroy = sp_view_widget_destroy;
}
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index 626be7625..f7759f103 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -236,7 +236,7 @@ PageSizer::PageSizer(Registry & _wr)
_marginLeft( _("L_eft:"), _("Left margin"), "fit-margin-left", _wr),
_marginRight( _("Ri_ght:"), _("Right margin"), "fit-margin-right", _wr),
_marginBottom( _("Botto_m:"), _("Bottom margin"), "fit-margin-bottom", _wr),
-
+ _lockMarginUpdate(false),
_widgetRegistry(&_wr)
{
//# Set up the Paper Size combo box
@@ -465,18 +465,20 @@ PageSizer::setDim (double w, double h, bool changeList)
void
PageSizer::updateFitMarginsUI(Inkscape::XML::Node *nv_repr)
{
- double value = 0.0;
- if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) {
- _marginTop.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) {
- _marginLeft.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) {
- _marginRight.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) {
- _marginBottom.setValue(value);
+ if (!_lockMarginUpdate) {
+ double value = 0.0;
+ if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) {
+ _marginTop.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) {
+ _marginLeft.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) {
+ _marginRight.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) {
+ _marginBottom.setValue(value);
+ }
}
}
@@ -538,14 +540,18 @@ PageSizer::fire_fit_canvas_to_selection_or_drawing()
SPDocument *doc;
SPNamedView *nv;
Inkscape::XML::Node *nv_repr;
+
if ((doc = sp_desktop_document(SP_ACTIVE_DESKTOP))
&& (nv = sp_document_namedview(doc, 0))
&& (nv_repr = nv->getRepr())) {
+ _lockMarginUpdate = true;
sp_repr_set_svg_double(nv_repr, "fit-margin-top", _marginTop.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-left", _marginLeft.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-right", _marginRight.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-bottom", _marginBottom.getValue());
+ _lockMarginUpdate = false;
}
+
Verb *verb = Verb::get( SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING );
if (verb) {
SPAction *action = verb->get_action(dt);
diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h
index 2072aeccd..cb7f8a069 100644
--- a/src/ui/widget/page-sizer.h
+++ b/src/ui/widget/page-sizer.h
@@ -219,6 +219,7 @@ protected:
RegisteredScalar _marginBottom;
Gtk::Alignment _fitPageButtonAlign;
Gtk::Button _fitPageButton;
+ bool _lockMarginUpdate;
//callback
void on_value_changed();
diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h
index 560c63dd4..f05eb176a 100644
--- a/src/ui/widget/registered-widget.h
+++ b/src/ui/widget/registered-widget.h
@@ -62,9 +62,6 @@ public:
bool is_updating() {if (_wr) return _wr->isUpdating(); else return false;}
- // provide automatic 'upcast' for ease of use. (do it 'dynamic_cast' instead of 'static' because who knows what W is)
- operator const Gtk::Widget () { return dynamic_cast<Gtk::Widget*>(this); }
-
protected:
RegisteredWidget() : W() { construct(); }
template< typename A >
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index ae8cd564e..0aa65b1a9 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -412,7 +412,7 @@ void
SelectedStyle::setDesktop(SPDesktop *desktop)
{
_desktop = desktop;
- gtk_object_set_data (GTK_OBJECT(_opacity_sb.gobj()), "dtw", _desktop->canvas);
+ g_object_set_data (G_OBJECT(_opacity_sb.gobj()), "dtw", _desktop->canvas);
Inkscape::Selection *selection = sp_desktop_selection (desktop);
diff --git a/src/ui/widget/svg-canvas.cpp b/src/ui/widget/svg-canvas.cpp
index 7d37ec355..f0eb24a10 100644
--- a/src/ui/widget/svg-canvas.cpp
+++ b/src/ui/widget/svg-canvas.cpp
@@ -22,7 +22,7 @@ namespace Widget {
SVGCanvas::SVGCanvas()
{
- void *canvas = gtk_type_new (sp_canvas_get_type ());
+ void *canvas = g_object_new (sp_canvas_get_type (), NULL);
_spcanvas = static_cast<SPCanvas*>(canvas);
_widget = Glib::wrap (static_cast<GtkWidget*> (canvas));
_dt = 0;
diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
index 5c8411437..cfccfa94d 100644
--- a/src/util/CMakeLists.txt
+++ b/src/util/CMakeLists.txt
@@ -6,6 +6,9 @@ set(util_SRC
share.cpp
units.cpp
+
+ # -------
+ # Headers
accumulators.h
compose.hpp
copy.h
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 1a203afc6..418cc5c6f 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -34,6 +34,9 @@ set(widgets_SRC
swatch-selector.cpp
toolbox.cpp
+
+ # -------
+ # Headers
button.h
dash-selector.h
desktop-widget.h
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 797525838..1af678dc6 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -255,7 +255,7 @@ static GTimer *overallTimer = 0;
*/
GType SPDesktopWidget::getType(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
sizeof(SPDesktopWidgetClass),
@@ -282,7 +282,7 @@ GType SPDesktopWidget::getType(void)
static void
sp_desktop_widget_class_init (SPDesktopWidgetClass *klass)
{
- dtw_parent_class = (SPViewWidgetClass*)gtk_type_class (SP_TYPE_VIEW_WIDGET);
+ dtw_parent_class = (SPViewWidgetClass*)g_type_class_peek_parent (klass);
GtkObjectClass *object_class = (GtkObjectClass *) klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
@@ -498,7 +498,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (dtw->zoom_status), GTK_UPDATE_ALWAYS);
g_signal_connect (G_OBJECT (dtw->zoom_status), "input", G_CALLBACK (sp_dtw_zoom_input), dtw);
g_signal_connect (G_OBJECT (dtw->zoom_status), "output", G_CALLBACK (sp_dtw_zoom_output), dtw);
- gtk_object_set_data (GTK_OBJECT (dtw->zoom_status), "dtw", dtw->canvas);
+ g_object_set_data (G_OBJECT (dtw->zoom_status), "dtw", dtw->canvas);
g_signal_connect (G_OBJECT (dtw->zoom_status), "focus-in-event", G_CALLBACK (spinbutton_focus_in), dtw->zoom_status);
g_signal_connect (G_OBJECT (dtw->zoom_status), "key-press-event", G_CALLBACK (spinbutton_keypress), dtw->zoom_status);
dtw->zoom_update = g_signal_connect (G_OBJECT (dtw->zoom_status), "value_changed", G_CALLBACK (sp_dtw_zoom_value_changed), dtw);
@@ -630,7 +630,7 @@ sp_desktop_widget_destroy (GtkObject *object)
void
SPDesktopWidget::updateTitle(gchar const* uri)
{
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (window) {
gchar const *fname = ( TRUE
@@ -908,7 +908,7 @@ SPDesktopWidget::shutdown()
switch (response) {
case GTK_RESPONSE_YES:
{
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
doc->doRef();
sp_namedview_document_from_window(desktop);
@@ -969,7 +969,7 @@ SPDesktopWidget::shutdown()
{
doc->doRef();
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (sp_file_save_dialog(*window, doc, Inkscape::Extension::FILE_SAVE_METHOD_INKSCAPE_SVG)) {
doc->doUnref();
@@ -1081,7 +1081,7 @@ SPDesktopWidget::getWindowGeometry (gint &x, gint &y, gint &w, gint &h)
gboolean vis = gtk_widget_get_visible (GTK_WIDGET(this));
(void)vis; // TODO figure out why it is here but not used.
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (window)
{
@@ -1093,7 +1093,7 @@ SPDesktopWidget::getWindowGeometry (gint &x, gint &y, gint &w, gint &h)
void
SPDesktopWidget::setWindowPosition (Geom::Point p)
{
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (window)
{
@@ -1104,12 +1104,12 @@ SPDesktopWidget::setWindowPosition (Geom::Point p)
void
SPDesktopWidget::setWindowSize (gint w, gint h)
{
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (window)
{
window->set_default_size (w, h);
- window->reshow_with_initial_size ();
+ window->resize (w, h);
}
}
@@ -1122,7 +1122,7 @@ SPDesktopWidget::setWindowSize (gint w, gint h)
void
SPDesktopWidget::setWindowTransient (void *p, int transient_policy)
{
- Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
+ Gtk::Window *window = (Gtk::Window*)g_object_get_data(G_OBJECT(this), "window");
if (window)
{
GtkWindow *w = (GtkWindow *) window->gobj();
diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h
index 165367954..742411fb1 100644
--- a/src/widgets/desktop-widget.h
+++ b/src/widgets/desktop-widget.h
@@ -238,7 +238,7 @@ struct SPDesktopWidget {
Inkscape::UI::Widget::Dock* getDock();
- static GtkType getType();
+ static GType getType();
static SPDesktopWidget* createInstance(SPNamedView *namedview);
void updateNamedview();
@@ -246,7 +246,7 @@ struct SPDesktopWidget {
private:
GtkWidget *tool_toolbox;
GtkWidget *aux_toolbox;
- GtkWidget *commands_toolbox,;
+ GtkWidget *commands_toolbox;
GtkWidget *snap_toolbox;
static void init(SPDesktopWidget *widget);
diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp
index 965910ba2..a9340a291 100644
--- a/src/widgets/font-selector.cpp
+++ b/src/widgets/font-selector.cpp
@@ -26,13 +26,6 @@
#include <2geom/transforms.h>
#include <gtk/gtk.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkscrolledwindow.h>
-#include <gtk/gtkclist.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkcombo.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtkdrawingarea.h>
#include <glibmm/i18n.h>
@@ -128,7 +121,7 @@ static void sp_font_selector_class_init(SPFontSelectorClass *c)
{
GtkObjectClass *object_class = (GtkObjectClass *) c;
- fs_parent_class = (GtkHBoxClass* )gtk_type_class(GTK_TYPE_HBOX);
+ fs_parent_class = (GtkHBoxClass* )g_type_class_peek_parent (c);
fs_signals[FONT_SET] = gtk_signal_new ("font_set",
GTK_RUN_FIRST,
@@ -391,7 +384,7 @@ static void sp_font_selector_emit_set (SPFontSelector *fsel)
GtkWidget *sp_font_selector_new()
{
- SPFontSelector *fsel = (SPFontSelector*) gtk_type_new(SP_TYPE_FONT_SELECTOR);
+ SPFontSelector *fsel = (SPFontSelector*) g_object_new(SP_TYPE_FONT_SELECTOR, NULL);
return (GtkWidget *) fsel;
}
diff --git a/src/widgets/font-selector.h b/src/widgets/font-selector.h
index febd4a34a..3fc425f65 100644
--- a/src/widgets/font-selector.h
+++ b/src/widgets/font-selector.h
@@ -27,7 +27,7 @@ struct SPFontSelector;
/* SPFontSelector */
-GtkType sp_font_selector_get_type (void);
+GType sp_font_selector_get_type (void);
GtkWidget *sp_font_selector_new (void);
diff --git a/src/widgets/gradient-image.cpp b/src/widgets/gradient-image.cpp
index 115935f50..1aeb43c91 100644
--- a/src/widgets/gradient-image.cpp
+++ b/src/widgets/gradient-image.cpp
@@ -36,24 +36,22 @@ static void sp_gradient_image_update (SPGradientImage *img);
static GtkWidgetClass *parent_class;
-GtkType
+GType
sp_gradient_image_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar*) "SPGradientImage",
- sizeof (SPGradientImage),
+ GTypeInfo info = {
sizeof (SPGradientImageClass),
- (GtkClassInitFunc) sp_gradient_image_class_init,
- (GtkObjectInitFunc) sp_gradient_image_init,
- NULL, NULL, NULL
+ NULL, NULL,
+ (GClassInitFunc) sp_gradient_image_class_init,
+ NULL, NULL,
+ sizeof (SPGradientImage),
+ 0,
+ (GInstanceInitFunc) sp_gradient_image_init,
+ NULL
};
- type = gtk_type_unique (GTK_TYPE_WIDGET, &info);
+ type = g_type_register_static (GTK_TYPE_WIDGET, "SPGradientImage", &info, (GTypeFlags)0);
}
return type;
}
@@ -67,7 +65,7 @@ sp_gradient_image_class_init (SPGradientImageClass *klass)
object_class = (GtkObjectClass *) klass;
widget_class = (GtkWidgetClass *) klass;
- parent_class = (GtkWidgetClass*)gtk_type_class (GTK_TYPE_WIDGET);
+ parent_class = (GtkWidgetClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_gradient_image_destroy;
@@ -146,7 +144,7 @@ sp_gradient_image_new (SPGradient *gradient)
{
SPGradientImage *image;
- image = (SPGradientImage*)gtk_type_new (SP_TYPE_GRADIENT_IMAGE);
+ image = (SPGradientImage*)g_object_new (SP_TYPE_GRADIENT_IMAGE, NULL);
sp_gradient_image_set_gradient (image, gradient);
diff --git a/src/widgets/gradient-image.h b/src/widgets/gradient-image.h
index ae5d40f56..0fbed879f 100644
--- a/src/widgets/gradient-image.h
+++ b/src/widgets/gradient-image.h
@@ -40,7 +40,7 @@ struct SPGradientImageClass {
GtkWidgetClass parent_class;
};
-GtkType sp_gradient_image_get_type (void);
+GType sp_gradient_image_get_type (void);
GtkWidget *sp_gradient_image_new (SPGradient *gradient);
void sp_gradient_image_set_gradient (SPGradientImage *gi, SPGradient *gr);
diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp
index a3110ed5b..a6e9be581 100644
--- a/src/widgets/gradient-selector.cpp
+++ b/src/widgets/gradient-selector.cpp
@@ -83,7 +83,7 @@ sp_gradient_selector_class_init (SPGradientSelectorClass *klass)
object_class = (GtkObjectClass *) klass;
- parent_class = (GtkVBoxClass*)gtk_type_class (GTK_TYPE_VBOX);
+ parent_class = (GtkVBoxClass*)g_type_class_peek_parent (klass);
signals[GRABBED] = g_signal_new ("grabbed",
G_TYPE_FROM_CLASS(object_class),
@@ -171,17 +171,17 @@ static void sp_gradient_selector_init(SPGradientSelector *sel)
GtkWidget *m = gtk_menu_new();
GtkWidget *mi = gtk_menu_item_new_with_label(_("none"));
- gtk_menu_append (GTK_MENU (m), mi);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), mi);
g_object_set_data (G_OBJECT (mi), "gradientSpread", GUINT_TO_POINTER (SP_GRADIENT_SPREAD_PAD));
g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (sp_gradient_selector_spread_activate), sel);
mi = gtk_menu_item_new_with_label (_("reflected"));
g_object_set_data (G_OBJECT (mi), "gradientSpread", GUINT_TO_POINTER (SP_GRADIENT_SPREAD_REFLECT));
g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (sp_gradient_selector_spread_activate), sel);
- gtk_menu_append (GTK_MENU (m), mi);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), mi);
mi = gtk_menu_item_new_with_label (_("direct"));
g_object_set_data (G_OBJECT (mi), "gradientSpread", GUINT_TO_POINTER (SP_GRADIENT_SPREAD_REPEAT));
g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (sp_gradient_selector_spread_activate), sel);
- gtk_menu_append (GTK_MENU (m), mi);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), mi);
gtk_widget_show_all (m);
gtk_option_menu_set_menu( GTK_OPTION_MENU(sel->spread), m );
@@ -212,7 +212,7 @@ sp_gradient_selector_new (void)
{
SPGradientSelector *sel;
- sel = (SPGradientSelector*)gtk_type_new (SP_TYPE_GRADIENT_SELECTOR);
+ sel = (SPGradientSelector*)g_object_new (SP_TYPE_GRADIENT_SELECTOR, NULL);
return (GtkWidget *) sel;
}
diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp
index 9186044de..6d4f6fae0 100644
--- a/src/widgets/gradient-toolbar.cpp
+++ b/src/widgets/gradient-toolbar.cpp
@@ -193,7 +193,7 @@ GtkWidget *gr_vector_list(SPDesktop *desktop, bool selection_empty, SPGradient *
gtk_container_add (GTK_CONTAINER (i), l);
gtk_widget_show (i);
- gtk_menu_append (GTK_MENU (m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), i);
gtk_widget_set_sensitive (om, FALSE);
} else if (selection_empty) {
// Document has gradients, but nothing is currently selected.
@@ -203,7 +203,7 @@ GtkWidget *gr_vector_list(SPDesktop *desktop, bool selection_empty, SPGradient *
gtk_container_add (GTK_CONTAINER (i), l);
gtk_widget_show (i);
- gtk_menu_append (GTK_MENU (m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), i);
gtk_widget_set_sensitive (om, FALSE);
} else {
@@ -214,7 +214,7 @@ GtkWidget *gr_vector_list(SPDesktop *desktop, bool selection_empty, SPGradient *
gtk_container_add (GTK_CONTAINER (i), l);
gtk_widget_show (i);
- gtk_menu_append (GTK_MENU (m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), i);
}
if (gr_multi) {
@@ -224,7 +224,7 @@ GtkWidget *gr_vector_list(SPDesktop *desktop, bool selection_empty, SPGradient *
gtk_container_add (GTK_CONTAINER (i), l);
gtk_widget_show (i);
- gtk_menu_append (GTK_MENU (m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), i);
}
while (gl) {
@@ -250,7 +250,7 @@ GtkWidget *gr_vector_list(SPDesktop *desktop, bool selection_empty, SPGradient *
gtk_container_add (GTK_CONTAINER (i), hb);
- gtk_menu_append (GTK_MENU (m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL (m), i);
if (gradient == gr_selected) {
pos = idx;
@@ -467,7 +467,7 @@ GtkWidget * gr_change_widget(SPDesktop *desktop)
gr_read_selection (selection, ev? ev->get_drag() : 0, gr_selected, gr_multi, spr_selected, spr_multi);
GtkWidget *widget = gtk_hbox_new(FALSE, FALSE);
- gtk_object_set_data(GTK_OBJECT(widget), "dtw", desktop->canvas);
+ g_object_set_data(G_OBJECT(widget), "dtw", desktop->canvas);
g_object_set_data (G_OBJECT (widget), "desktop", desktop);
GtkWidget *om = gr_vector_list (desktop, selection->isEmpty(), gr_selected, gr_multi);
@@ -537,8 +537,8 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
GtkWidget *tbl = gtk_toolbar_new();
- gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
- gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
+ g_object_set_data(G_OBJECT(tbl), "dtw", desktop->canvas);
+ g_object_set_data(G_OBJECT(tbl), "desktop", desktop);
sp_toolbox_add_label(tbl, _("<b>New:</b>"));
diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp
index a58b22d7c..8c39b52dd 100644
--- a/src/widgets/gradient-vector.cpp
+++ b/src/widgets/gradient-vector.cpp
@@ -102,7 +102,7 @@ static void sp_gradient_vector_selector_class_init(SPGradientVectorSelectorClass
object_class = GTK_OBJECT_CLASS(klass);
- parent_class = static_cast<GtkVBoxClass*>(gtk_type_class(GTK_TYPE_VBOX));
+ parent_class = static_cast<GtkVBoxClass*>(g_type_class_peek_parent(klass));
signals[VECTOR_SET] = g_signal_new( "vector_set",
G_TYPE_FROM_CLASS(object_class),
@@ -165,7 +165,7 @@ GtkWidget *sp_gradient_vector_selector_new(SPDocument *doc, SPGradient *gr)
g_return_val_if_fail(!gr || SP_IS_GRADIENT(gr), NULL);
g_return_val_if_fail(!gr || (gr->document == doc), NULL);
- gvs = static_cast<GtkWidget*>(gtk_type_new(SP_TYPE_GRADIENT_VECTOR_SELECTOR));
+ gvs = static_cast<GtkWidget*>(g_object_new(SP_TYPE_GRADIENT_VECTOR_SELECTOR, NULL));
if (doc) {
sp_gradient_vector_selector_set_gradient(SP_GRADIENT_VECTOR_SELECTOR(gvs), doc, gr);
@@ -274,19 +274,19 @@ static void sp_gvs_rebuild_gui_full(SPGradientVectorSelector *gvs)
GtkWidget *i;
i = gtk_menu_item_new_with_label(_("No document selected"));
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
gtk_widget_set_sensitive(gvs->menu, FALSE);
} else if (!gl) {
GtkWidget *i;
i = gtk_menu_item_new_with_label(_("No gradients in document"));
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
gtk_widget_set_sensitive(gvs->menu, FALSE);
} else if (!gvs->gr) {
GtkWidget *i;
i = gtk_menu_item_new_with_label(_("No gradient selected"));
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
gtk_widget_set_sensitive(gvs->menu, FALSE);
} else {
while (gl) {
@@ -320,7 +320,7 @@ static void sp_gvs_rebuild_gui_full(SPGradientVectorSelector *gvs)
gtk_container_add(GTK_CONTAINER(i), w);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
if (gr == gvs->gr) {
pos = idx;
@@ -551,7 +551,7 @@ static void update_stop_list( GtkWidget *mnu, SPGradient *gradient, SPStop *new_
if (!sl) {
GtkWidget *i = gtk_menu_item_new_with_label(_("No stops in gradient"));
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
gtk_widget_set_sensitive(mnu, FALSE);
} else {
@@ -562,10 +562,9 @@ static void update_stop_list( GtkWidget *mnu, SPGradient *gradient, SPStop *new_
gtk_widget_show(i);
g_object_set_data(G_OBJECT(i), "stop", stop);
GtkWidget *hb = gtk_hbox_new(FALSE, 4);
- GtkWidget *cpv = GTK_WIDGET(Gtk::manage(
- new Inkscape::UI::Widget::ColorPreview(sp_stop_get_rgba32(stop)))->gobj());
- gtk_widget_show(cpv);
- gtk_container_add( GTK_CONTAINER(hb), cpv );
+ Gtk::Widget *cpv = Gtk::manage(new Inkscape::UI::Widget::ColorPreview(sp_stop_get_rgba32(stop)));
+ cpv->show();
+ gtk_container_add( GTK_CONTAINER(hb), cpv->gobj() );
g_object_set_data( G_OBJECT(i), "preview", cpv );
Inkscape::XML::Node *repr = reinterpret_cast<SPItem *>(sl->data)->getRepr();
GtkWidget *l = gtk_label_new(repr->attribute("id"));
@@ -574,7 +573,7 @@ static void update_stop_list( GtkWidget *mnu, SPGradient *gradient, SPStop *new_
gtk_box_pack_start(GTK_BOX(hb), l, TRUE, TRUE, 0);
gtk_widget_show(hb);
gtk_container_add(GTK_CONTAINER(i), hb);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
}
}
@@ -610,7 +609,7 @@ static void sp_grad_edit_select(GtkOptionMenu *mnu, GtkWidget *tbl)
GtkWidget *offspin = GTK_WIDGET(g_object_get_data(G_OBJECT(tbl), "offspn"));
GtkWidget *offslide =GTK_WIDGET(g_object_get_data(G_OBJECT(tbl), "offslide"));
- GtkAdjustment *adj = static_cast<GtkAdjustment*>(gtk_object_get_data(GTK_OBJECT(tbl), "offset"));
+ GtkAdjustment *adj = static_cast<GtkAdjustment*>(g_object_get_data(G_OBJECT(tbl), "offset"));
bool isEndStop = false;
@@ -797,7 +796,7 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
update_stop_list(GTK_WIDGET(mnu), gradient, NULL);
g_signal_connect(G_OBJECT(mnu), "changed", G_CALLBACK(sp_grad_edit_select), vb);
gtk_widget_show(mnu);
- gtk_object_set_data(GTK_OBJECT(vb), "stopmenu", mnu);
+ g_object_set_data(G_OBJECT(vb), "stopmenu", mnu);
gtk_box_pack_start(GTK_BOX(vb), mnu, FALSE, FALSE, 0);
/* Add and Remove buttons */
@@ -830,7 +829,7 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
/* Adjustment */
GtkAdjustment *Offset_adj = NULL;
Offset_adj= (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 1.0, 0.01, 0.01, 0.0);
- gtk_object_set_data(GTK_OBJECT(vb), "offset", Offset_adj);
+ g_object_set_data(G_OBJECT(vb), "offset", Offset_adj);
GtkMenu *m = GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(mnu)));
SPStop *stop = SP_STOP(g_object_get_data(G_OBJECT(gtk_menu_get_active(m)), "stop"));
gtk_adjustment_set_value(Offset_adj, stop->offset);
@@ -840,14 +839,14 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
gtk_scale_set_draw_value( GTK_SCALE(slider), FALSE );
gtk_widget_show(slider);
gtk_box_pack_start(GTK_BOX(hb),slider, TRUE, TRUE, AUX_BETWEEN_BUTTON_GROUPS);
- gtk_object_set_data(GTK_OBJECT(vb), "offslide", slider);
+ g_object_set_data(G_OBJECT(vb), "offslide", slider);
/* Spinbutton */
GtkWidget *sbtn = gtk_spin_button_new(GTK_ADJUSTMENT(Offset_adj), 0.01, 2);
sp_dialog_defocus_on_enter(sbtn);
gtk_widget_show(sbtn);
gtk_box_pack_start(GTK_BOX(hb),sbtn, FALSE, TRUE, AUX_BETWEEN_BUTTON_GROUPS);
- gtk_object_set_data(GTK_OBJECT(vb), "offspn", sbtn);
+ g_object_set_data(G_OBJECT(vb), "offspn", sbtn);
if (stop->offset>0 && stop->offset<1) {
gtk_widget_set_sensitive(slider, TRUE);
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index 642837e61..9f2a30e32 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -127,14 +127,14 @@ static SPGradientSelector *getGradientFromData(SPPaintSelector const *psel)
grad = swatchsel->getGradientSelector();
}
} else {
- grad = reinterpret_cast<SPGradientSelector*>(gtk_object_get_data(GTK_OBJECT(psel->selector), "gradient-selector"));
+ grad = reinterpret_cast<SPGradientSelector*>(g_object_get_data(G_OBJECT(psel->selector), "gradient-selector"));
}
return grad;
}
GType sp_paint_selector_get_type(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
sizeof(SPPaintSelectorClass),
@@ -156,13 +156,9 @@ GType sp_paint_selector_get_type(void)
static void
sp_paint_selector_class_init(SPPaintSelectorClass *klass)
{
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
+ GtkObjectClass *object_class = (GtkObjectClass *) klass;
- object_class = (GtkObjectClass *) klass;
- widget_class = (GtkWidgetClass *) klass;
-
- parent_class = (GtkVBoxClass*)gtk_type_class(GTK_TYPE_VBOX);
+ parent_class = (GtkVBoxClass*)g_type_class_peek_parent(klass);
psel_signals[MODE_CHANGED] = g_signal_new("mode_changed",
G_TYPE_FROM_CLASS(object_class),
@@ -251,18 +247,18 @@ sp_paint_selector_init(SPPaintSelector *psel)
gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(psel->evenodd), FALSE);
// TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
gtk_widget_set_tooltip_text(psel->evenodd, _("Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)"));
- gtk_object_set_data(GTK_OBJECT(psel->evenodd), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_EVENODD));
+ g_object_set_data(G_OBJECT(psel->evenodd), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_EVENODD));
w = sp_icon_new(Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON_FILL_RULE_EVEN_ODD);
gtk_container_add(GTK_CONTAINER(psel->evenodd), w);
gtk_box_pack_start(GTK_BOX(psel->fillrulebox), psel->evenodd, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(psel->evenodd), "toggled", G_CALLBACK(sp_paint_selector_fillrule_toggled), psel);
- psel->nonzero = gtk_radio_button_new(gtk_radio_button_group(GTK_RADIO_BUTTON(psel->evenodd)));
+ psel->nonzero = gtk_radio_button_new(gtk_radio_button_get_group(GTK_RADIO_BUTTON(psel->evenodd)));
gtk_button_set_relief(GTK_BUTTON(psel->nonzero), GTK_RELIEF_NONE);
gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(psel->nonzero), FALSE);
// TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
gtk_widget_set_tooltip_text(psel->nonzero, _("Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"));
- gtk_object_set_data(GTK_OBJECT(psel->nonzero), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_NONZERO));
+ g_object_set_data(G_OBJECT(psel->nonzero), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_NONZERO));
w = sp_icon_new(Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON_FILL_RULE_NONZERO);
gtk_container_add(GTK_CONTAINER(psel->nonzero), w);
gtk_box_pack_start(GTK_BOX(psel->fillrulebox), psel->nonzero, FALSE, FALSE, 0);
@@ -307,7 +303,7 @@ static GtkWidget *sp_paint_selector_style_button_add(SPPaintSelector *psel,
gtk_button_set_relief(GTK_BUTTON(b), GTK_RELIEF_NONE);
gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(b), FALSE);
- gtk_object_set_data(GTK_OBJECT(b), "mode", GUINT_TO_POINTER(mode));
+ g_object_set_data(G_OBJECT(b), "mode", GUINT_TO_POINTER(mode));
w = sp_icon_new(Inkscape::ICON_SIZE_BUTTON, pixmap);
gtk_widget_show(w);
@@ -323,7 +319,7 @@ static void
sp_paint_selector_style_button_toggled(GtkToggleButton *tb, SPPaintSelector *psel)
{
if (!psel->update && gtk_toggle_button_get_active(tb)) {
- psel->setMode(static_cast<SPPaintSelector::Mode>(GPOINTER_TO_UINT(gtk_object_get_data(GTK_OBJECT(tb), "mode"))));
+ psel->setMode(static_cast<SPPaintSelector::Mode>(GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(tb), "mode"))));
}
}
@@ -352,7 +348,7 @@ sp_paint_selector_show_fillrule(SPPaintSelector *psel, bool is_fill)
SPPaintSelector *sp_paint_selector_new(FillOrStroke kind)
{
- SPPaintSelector *psel = static_cast<SPPaintSelector*>(gtk_type_new(SP_TYPE_PAINT_SELECTOR));
+ SPPaintSelector *psel = static_cast<SPPaintSelector*>(g_object_new(SP_TYPE_PAINT_SELECTOR, NULL));
psel->setMode(SPPaintSelector::MODE_MULTIPLE);
@@ -440,7 +436,7 @@ void SPPaintSelector::setColorAlpha(SPColor const &color, float alpha)
setMode(MODE_COLOR_RGB);
}
- csel = reinterpret_cast<SPColorSelector*>(gtk_object_get_data(GTK_OBJECT(selector), "color-selector"));
+ csel = reinterpret_cast<SPColorSelector*>(g_object_get_data(G_OBJECT(selector), "color-selector"));
rgba = color.toRGBA32( alpha );
csel->base->setColorAlpha( color, alpha );
}
@@ -646,7 +642,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec
if ((psel->mode == SPPaintSelector::MODE_COLOR_RGB) || (psel->mode == SPPaintSelector::MODE_COLOR_CMYK)) {
/* Already have color selector */
- csel = (GtkWidget*)gtk_object_get_data(GTK_OBJECT(psel->selector), "color-selector");
+ csel = (GtkWidget*)g_object_get_data(G_OBJECT(psel->selector), "color-selector");
} else {
sp_paint_selector_clear_frame(psel);
@@ -658,7 +654,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec
/* Color selector */
csel = sp_color_selector_new( SP_TYPE_COLOR_NOTEBOOK );
gtk_widget_show(csel);
- gtk_object_set_data(GTK_OBJECT(vb), "color-selector", csel);
+ g_object_set_data(G_OBJECT(vb), "color-selector", csel);
gtk_box_pack_start(GTK_BOX(vb), csel, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(csel), "grabbed", G_CALLBACK(sp_paint_selector_color_grabbed), psel);
g_signal_connect(G_OBJECT(csel), "dragged", G_CALLBACK(sp_paint_selector_color_dragged), psel);
@@ -716,7 +712,7 @@ static void sp_paint_selector_set_mode_gradient(SPPaintSelector *psel, SPPaintSe
if ((psel->mode == SPPaintSelector::MODE_GRADIENT_LINEAR) || (psel->mode == SPPaintSelector::MODE_GRADIENT_RADIAL)) {
/* Already have gradient selector */
- gsel = (GtkWidget*)gtk_object_get_data(GTK_OBJECT(psel->selector), "gradient-selector");
+ gsel = (GtkWidget*)g_object_get_data(G_OBJECT(psel->selector), "gradient-selector");
} else {
sp_paint_selector_clear_frame(psel);
/* Create new gradient selector */
@@ -729,7 +725,7 @@ static void sp_paint_selector_set_mode_gradient(SPPaintSelector *psel, SPPaintSe
/* Pack everything to frame */
gtk_container_add(GTK_CONTAINER(psel->frame), gsel);
psel->selector = gsel;
- gtk_object_set_data(GTK_OBJECT(psel->selector), "gradient-selector", gsel);
+ g_object_set_data(G_OBJECT(psel->selector), "gradient-selector", gsel);
}
/* Actually we have to set option menu history here */
@@ -830,7 +826,7 @@ sp_pattern_menu_build (GtkWidget *m, GSList *pattern_list, SPDocument */*source*
gtk_widget_show(hb);
gtk_container_add(GTK_CONTAINER(i), hb);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
}
}
@@ -887,7 +883,7 @@ ink_pattern_menu_populate_menu(GtkWidget *m, SPDocument *doc)
gchar const *patid = "";
g_object_set_data (G_OBJECT(i), "pattern", (void *) patid);
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
}
// suck in from patterns.svg
@@ -911,7 +907,7 @@ ink_pattern_menu(GtkWidget *mnu)
GtkWidget *i;
i = gtk_menu_item_new_with_label(_("No document selected"));
gtk_widget_show(i);
- gtk_menu_append(GTK_MENU(m), i);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m), i);
gtk_widget_set_sensitive(mnu, FALSE);
} else {
@@ -943,9 +939,9 @@ void SPPaintSelector::updatePatternList( SPPattern *pattern )
/* Set history */
- if (pattern && !gtk_object_get_data(GTK_OBJECT(mnu), "update")) {
+ if (pattern && !g_object_get_data(G_OBJECT(mnu), "update")) {
- gtk_object_set_data(GTK_OBJECT(mnu), "update", GINT_TO_POINTER(TRUE));
+ g_object_set_data(G_OBJECT(mnu), "update", GINT_TO_POINTER(TRUE));
gchar const *patname = pattern->getRepr()->attribute("id");
@@ -967,7 +963,7 @@ void SPPaintSelector::updatePatternList( SPPattern *pattern )
gtk_option_menu_set_history(GTK_OPTION_MENU(mnu), patpos);
- gtk_object_set_data(GTK_OBJECT(mnu), "update", GINT_TO_POINTER(FALSE));
+ g_object_set_data(G_OBJECT(mnu), "update", GINT_TO_POINTER(FALSE));
}
//gtk_option_menu_set_history(GTK_OPTION_MENU(mnu), 0);
}
@@ -984,7 +980,7 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
if (psel->mode == SPPaintSelector::MODE_PATTERN) {
/* Already have pattern menu */
- tbl = (GtkWidget*)gtk_object_get_data(GTK_OBJECT(psel->selector), "pattern-selector");
+ tbl = (GtkWidget*)g_object_get_data(G_OBJECT(psel->selector), "pattern-selector");
} else {
sp_paint_selector_clear_frame(psel);
@@ -999,7 +995,7 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
ink_pattern_menu(mnu);
g_signal_connect(G_OBJECT(mnu), "changed", G_CALLBACK(sp_psel_pattern_change), psel);
g_signal_connect(G_OBJECT(mnu), "destroy", G_CALLBACK(sp_psel_pattern_destroy), psel);
- gtk_object_set_data(GTK_OBJECT(psel), "patternmenu", mnu);
+ g_object_set_data(G_OBJECT(psel), "patternmenu", mnu);
g_object_ref( G_OBJECT(mnu));
gtk_container_add(GTK_CONTAINER(hb), mnu);
@@ -1020,7 +1016,7 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
gtk_container_add(GTK_CONTAINER(psel->frame), tbl);
psel->selector = tbl;
- gtk_object_set_data(GTK_OBJECT(psel->selector), "pattern-selector", tbl);
+ g_object_set_data(G_OBJECT(psel->selector), "pattern-selector", tbl);
gtk_frame_set_label(GTK_FRAME(psel->frame), _("Pattern fill"));
}
@@ -1095,7 +1091,7 @@ static void sp_paint_selector_set_mode_swatch(SPPaintSelector *psel, SPPaintSele
// Pack everything to frame
gtk_container_add(GTK_CONTAINER(psel->frame), GTK_WIDGET(swatchsel->gobj()));
psel->selector = GTK_WIDGET(swatchsel->gobj());
- gtk_object_set_data(GTK_OBJECT(psel->selector), "swatch-selector", swatchsel);
+ g_object_set_data(G_OBJECT(psel->selector), "swatch-selector", swatchsel);
gtk_frame_set_label(GTK_FRAME(psel->frame), _("Swatch fill"));
}
diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h
index c0e44683b..ebcac380f 100644
--- a/src/widgets/paint-selector.h
+++ b/src/widgets/paint-selector.h
@@ -114,7 +114,7 @@ struct SPPaintSelectorClass {
void (* fillrule_changed) (SPPaintSelector *psel, SPPaintSelector::FillRule fillrule);
};
-GtkType sp_paint_selector_get_type (void);
+GType sp_paint_selector_get_type (void);
SPPaintSelector *sp_paint_selector_new(FillOrStroke kind);
diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp
index 704d395f7..60e460cda 100644
--- a/src/widgets/ruler.cpp
+++ b/src/widgets/ruler.cpp
@@ -37,30 +37,25 @@ static gint sp_hruler_motion_notify (GtkWidget *widget, GdkEventMotion *eve
static GtkWidgetClass *hruler_parent_class;
-GtkType
+GType
sp_hruler_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType hruler_type = 0;
+ static GType hruler_type = 0;
if (!hruler_type)
{
- static const GtkTypeInfo hruler_info =
- {
- (gchar*) "SPHRuler",
- sizeof (SPHRuler),
+ static const GTypeInfo hruler_info = {
sizeof (SPHRulerClass),
- (GtkClassInitFunc) sp_hruler_class_init,
- (GtkObjectInitFunc) sp_hruler_init,
- /* reserved_1 */ NULL,
- /* reserved_2 */ NULL,
- (GtkClassInitFunc) NULL,
+ NULL, NULL,
+ (GClassInitFunc) sp_hruler_class_init,
+ NULL, NULL,
+ sizeof (SPHRuler),
+ 0,
+ (GInstanceInitFunc) sp_hruler_init,
+ NULL
};
- hruler_type = gtk_type_unique (gtk_ruler_get_type (), &hruler_info);
+ hruler_type = g_type_register_static (gtk_ruler_get_type (), "SPHRuler", &hruler_info, (GTypeFlags)0);
}
return hruler_type;
@@ -72,7 +67,7 @@ sp_hruler_class_init (SPHRulerClass *klass)
GtkWidgetClass *widget_class;
GtkRulerClass *ruler_class;
- hruler_parent_class = (GtkWidgetClass *) gtk_type_class (GTK_TYPE_RULER);
+ hruler_parent_class = (GtkWidgetClass *) g_type_class_peek_parent (klass);
widget_class = (GtkWidgetClass*) klass;
ruler_class = (GtkRulerClass*) klass;
@@ -96,7 +91,7 @@ sp_hruler_init (SPHRuler *hruler)
GtkWidget*
sp_hruler_new (void)
{
- return GTK_WIDGET (gtk_type_new (sp_hruler_get_type ()));
+ return GTK_WIDGET (g_object_new (sp_hruler_get_type (), NULL));
}
static gint
@@ -128,30 +123,25 @@ static void sp_vruler_size_request (GtkWidget *widget, GtkRequisition *requisiti
static GtkWidgetClass *vruler_parent_class;
-GtkType
+GType
sp_vruler_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType vruler_type = 0;
+ static GType vruler_type = 0;
if (!vruler_type)
{
- static const GtkTypeInfo vruler_info =
- {
- (gchar*) "SPVRuler",
- sizeof (SPVRuler),
+ static const GTypeInfo vruler_info = {
sizeof (SPVRulerClass),
- (GtkClassInitFunc) sp_vruler_class_init,
- (GtkObjectInitFunc) sp_vruler_init,
- /* reserved_1 */ NULL,
- /* reserved_2 */ NULL,
- (GtkClassInitFunc) NULL,
+ NULL, NULL,
+ (GClassInitFunc) sp_vruler_class_init,
+ NULL, NULL,
+ sizeof (SPVRuler),
+ 0,
+ (GInstanceInitFunc) sp_vruler_init,
+ NULL
};
- vruler_type = gtk_type_unique (gtk_ruler_get_type (), &vruler_info);
+ vruler_type = g_type_register_static (gtk_ruler_get_type (), "SPVRuler", &vruler_info, (GTypeFlags)0);
}
return vruler_type;
@@ -163,7 +153,7 @@ sp_vruler_class_init (SPVRulerClass *klass)
GtkWidgetClass *widget_class;
GtkRulerClass *ruler_class;
- vruler_parent_class = (GtkWidgetClass *) gtk_type_class (GTK_TYPE_RULER);
+ vruler_parent_class = (GtkWidgetClass *) g_type_class_peek_parent (klass);
widget_class = (GtkWidgetClass*) klass;
ruler_class = (GtkRulerClass*) klass;
@@ -189,7 +179,7 @@ sp_vruler_init (SPVRuler *vruler)
GtkWidget*
sp_vruler_new (void)
{
- return GTK_WIDGET (gtk_type_new (sp_vruler_get_type ()));
+ return GTK_WIDGET (g_object_new (sp_vruler_get_type (), NULL));
}
@@ -222,8 +212,7 @@ static void
sp_ruler_common_draw_ticks (GtkRuler *ruler)
{
GtkWidget *widget;
- GdkGC *gc, *bg_gc;
- PangoFontDescription *pango_desc;
+ GdkGC *gc;
PangoContext *pango_context;
PangoLayout *pango_layout;
gint i, j, tick_index;
@@ -252,9 +241,7 @@ sp_ruler_common_draw_ticks (GtkRuler *ruler)
g_object_get(G_OBJECT(ruler), "orientation", &orientation, NULL);
widget = GTK_WIDGET (ruler);
gc = widget->style->fg_gc[GTK_STATE_NORMAL];
- bg_gc = widget->style->bg_gc[GTK_STATE_NORMAL];
- pango_desc = widget->style->font_desc;
pango_context = gtk_widget_get_pango_context (widget);
pango_layout = pango_layout_new (pango_context);
PangoFontDescription *fs = pango_font_description_new ();
diff --git a/src/widgets/ruler.h b/src/widgets/ruler.h
index 3c55b39c4..a774f12ef 100644
--- a/src/widgets/ruler.h
+++ b/src/widgets/ruler.h
@@ -38,7 +38,7 @@ struct SPHRulerClass
};
-GtkType sp_hruler_get_type (void);
+GType sp_hruler_get_type (void);
GtkWidget* sp_hruler_new (void);
@@ -63,7 +63,7 @@ struct SPVRulerClass
};
-GtkType sp_vruler_get_type (void);
+GType sp_vruler_get_type (void);
GtkWidget* sp_vruler_new (void);
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index 7012badf8..eb9b2805d 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -242,7 +242,14 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw)
gdouble strokewidth = stroke_average_width (selection->itemList());
int transform_stroke = prefs->getBool("/options/transform/stroke", true) ? 1 : 0;
- Geom::Affine scaler = get_scale_transform_with_stroke (*bbox, strokewidth, transform_stroke, x0, y0, x1, y1);
+ Geom::Affine scaler;
+ if (bbox_type == SPItem::APPROXIMATE_BBOX) {
+ // get_scale_transform_with_stroke() is intended for VISUAL (or APPROXIMATE) bounding boxes, not geometrical ones!
+ scaler = get_scale_transform_with_stroke (*bbox, strokewidth, transform_stroke, x0, y0, x1, y1);
+ } else {
+ // we'll trick it into using a geometrical bounding box though, by setting the stroke width to zero
+ scaler = get_scale_transform_with_stroke (*bbox, 0, false, x0, y0, x1, y1);
+ }
sp_selection_apply_affine(selection, scaler);
DocumentUndo::maybeDone(document, actionkey, SP_VERB_CONTEXT_SELECT,
diff --git a/src/widgets/sp-attribute-widget.cpp b/src/widgets/sp-attribute-widget.cpp
index 66ccb27f2..f7cd308b2 100644
--- a/src/widgets/sp-attribute-widget.cpp
+++ b/src/widgets/sp-attribute-widget.cpp
@@ -42,7 +42,7 @@ static GtkEntryClass *parent_class;
GType sp_attribute_widget_get_type(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
sizeof(SPAttributeWidgetClass),
@@ -67,14 +67,12 @@ static void
sp_attribute_widget_class_init (SPAttributeWidgetClass *klass)
{
GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
GtkEditableClass *editable_class;
object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
editable_class = GTK_EDITABLE_CLASS (klass);
- parent_class = (GtkEntryClass*)gtk_type_class (GTK_TYPE_ENTRY);
+ parent_class = (GtkEntryClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_attribute_widget_destroy;
@@ -177,7 +175,7 @@ sp_attribute_widget_new ( SPObject *object, const gchar *attribute )
g_return_val_if_fail (!object || SP_IS_OBJECT (object), NULL);
g_return_val_if_fail (!object || attribute, NULL);
- spaw = (SPAttributeWidget*)gtk_type_new (SP_TYPE_ATTRIBUTE_WIDGET);
+ spaw = (SPAttributeWidget*)g_object_new (SP_TYPE_ATTRIBUTE_WIDGET, NULL);
sp_attribute_widget_set_object (spaw, object, attribute);
@@ -192,7 +190,7 @@ sp_attribute_widget_new_repr ( Inkscape::XML::Node *repr, const gchar *attribute
{
SPAttributeWidget *spaw;
- spaw = (SPAttributeWidget*)gtk_type_new (SP_TYPE_ATTRIBUTE_WIDGET);
+ spaw = (SPAttributeWidget*)g_object_new (SP_TYPE_ATTRIBUTE_WIDGET, NULL);
sp_attribute_widget_set_repr (spaw, repr, attribute);
@@ -361,7 +359,7 @@ static GtkVBoxClass *table_parent_class;
GType sp_attribute_table_get_type(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
sizeof(SPAttributeTableClass),
@@ -385,13 +383,9 @@ GType sp_attribute_table_get_type(void)
static void
sp_attribute_table_class_init (SPAttributeTableClass *klass)
{
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
-
- object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
+ GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
- table_parent_class = (GtkVBoxClass*)gtk_type_class (GTK_TYPE_VBOX);
+ table_parent_class = (GtkVBoxClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_attribute_table_destroy;
@@ -472,7 +466,7 @@ sp_attribute_table_new ( SPObject *object,
g_return_val_if_fail (!object || (num_attr > 0), NULL);
g_return_val_if_fail (!num_attr || (labels && attributes), NULL);
- spat = (SPAttributeTable*)gtk_type_new (SP_TYPE_ATTRIBUTE_TABLE);
+ spat = (SPAttributeTable*)g_object_new (SP_TYPE_ATTRIBUTE_TABLE, NULL);
sp_attribute_table_set_object (spat, object, num_attr, labels, attributes);
@@ -492,7 +486,7 @@ sp_attribute_table_new_repr ( Inkscape::XML::Node *repr,
g_return_val_if_fail (!num_attr || (labels && attributes), NULL);
- spat = (SPAttributeTable*)gtk_type_new (SP_TYPE_ATTRIBUTE_TABLE);
+ spat = (SPAttributeTable*)g_object_new (SP_TYPE_ATTRIBUTE_TABLE, NULL);
sp_attribute_table_set_repr (spat, repr, num_attr, labels, attributes);
diff --git a/src/widgets/sp-attribute-widget.h b/src/widgets/sp-attribute-widget.h
index 5d23e6754..d5445c8bb 100644
--- a/src/widgets/sp-attribute-widget.h
+++ b/src/widgets/sp-attribute-widget.h
@@ -64,7 +64,7 @@ struct SPAttributeWidgetClass {
GtkEntryClass entry_class;
};
-GtkType sp_attribute_widget_get_type (void);
+GType sp_attribute_widget_get_type (void);
GtkWidget *sp_attribute_widget_new (SPObject *object, const gchar *attribute);
GtkWidget *sp_attribute_widget_new_repr (Inkscape::XML::Node *repr, const gchar *attribute);
@@ -99,7 +99,7 @@ struct SPAttributeTableClass {
GtkEntryClass entry_class;
};
-GtkType sp_attribute_table_get_type (void);
+GType sp_attribute_table_get_type (void);
GtkWidget *sp_attribute_table_new ( SPObject *object, gint num_attr,
const gchar **labels,
diff --git a/src/widgets/sp-color-gtkselector.cpp b/src/widgets/sp-color-gtkselector.cpp
index 10254321a..60a63d8c4 100644
--- a/src/widgets/sp-color-gtkselector.cpp
+++ b/src/widgets/sp-color-gtkselector.cpp
@@ -113,7 +113,7 @@ sp_color_gtkselector_new( GType )
{
SPColorGtkselector *csel;
- csel = (SPColorGtkselector*)gtk_type_new (SP_TYPE_COLOR_GTKSELECTOR);
+ csel = (SPColorGtkselector*)g_object_new (SP_TYPE_COLOR_GTKSELECTOR, NULL);
return GTK_WIDGET (csel);
}
diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp
index 3a2c7fbed..94f450e50 100644
--- a/src/widgets/sp-color-icc-selector.cpp
+++ b/src/widgets/sp-color-icc-selector.cpp
@@ -432,7 +432,7 @@ sp_color_icc_selector_new (void)
{
SPColorICCSelector *csel;
- csel = (SPColorICCSelector*)gtk_type_new (SP_TYPE_COLOR_ICC_SELECTOR);
+ csel = (SPColorICCSelector*)g_object_new (SP_TYPE_COLOR_ICC_SELECTOR, NULL);
return GTK_WIDGET (csel);
}
diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp
index 06e990dfb..377abf219 100644
--- a/src/widgets/sp-color-notebook.cpp
+++ b/src/widgets/sp-color-notebook.cpp
@@ -62,7 +62,7 @@ static SPColorSelectorClass *parent_class;
GType sp_color_notebook_get_type(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
sizeof(SPColorNotebookClass),
@@ -102,7 +102,7 @@ sp_color_notebook_class_init (SPColorNotebookClass *klass)
static void
sp_color_notebook_switch_page(GtkNotebook *notebook,
- GtkNotebookPage *page,
+ GtkWidget *page,
guint page_num,
SPColorNotebook *colorbook)
{
@@ -111,14 +111,14 @@ sp_color_notebook_switch_page(GtkNotebook *notebook,
ColorNotebook* nb = (ColorNotebook*)(SP_COLOR_SELECTOR(colorbook)->base);
nb->switchPage( notebook, page, page_num );
- // remember the page we seitched to
+ // remember the page we switched to
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setInt("/colorselector/page", page_num);
}
}
void ColorNotebook::switchPage(GtkNotebook*,
- GtkNotebookPage*,
+ GtkWidget*,
guint page_num)
{
SPColorSelector* csel;
@@ -231,7 +231,7 @@ void ColorNotebook::init()
if (!g_type_is_a (selector_types[i], SP_TYPE_COLOR_NOTEBOOK))
{
guint howmany = 1;
- gpointer klass = gtk_type_class (selector_types[i]);
+ gpointer klass = g_type_class_ref (selector_types[i]);
if ( klass && SP_IS_COLOR_SELECTOR_CLASS (klass) )
{
SPColorSelectorClass *ck = SP_COLOR_SELECTOR_CLASS (klass);
@@ -294,7 +294,7 @@ void ColorNotebook::init()
GtkWidget *item = gtk_check_menu_item_new_with_label (_(entry->name));
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), entry->enabledFull);
gtk_widget_show (item);
- gtk_menu_append (menu, item);
+ gtk_menu_shell_append (GTK_MENU_SHELL(menu), item);
g_signal_connect (G_OBJECT (item), "activate",
G_CALLBACK (sp_color_notebook_menuitem_response),
@@ -431,7 +431,7 @@ sp_color_notebook_new (void)
{
SPColorNotebook *colorbook;
- colorbook = (SPColorNotebook*)gtk_type_new (SP_TYPE_COLOR_NOTEBOOK);
+ colorbook = (SPColorNotebook*)g_object_new (SP_TYPE_COLOR_NOTEBOOK, NULL);
return GTK_WIDGET (colorbook);
}
diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h
index 8d2988636..85b4315ed 100644
--- a/src/widgets/sp-color-notebook.h
+++ b/src/widgets/sp-color-notebook.h
@@ -31,7 +31,7 @@ public:
virtual void init();
SPColorSelector* getCurrentSelector();
- void switchPage( GtkNotebook *notebook, GtkNotebookPage *page, guint page_num );
+ void switchPage( GtkNotebook *notebook, GtkWidget *page, guint page_num );
GtkWidget* addPage( GType page_type, guint submode );
void removePage( GType page_type, guint submode );
diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp
index 25162dead..c07e44aa6 100644
--- a/src/widgets/sp-color-scales.cpp
+++ b/src/widgets/sp-color-scales.cpp
@@ -166,7 +166,7 @@ void ColorScales::init()
gtk_table_attach (GTK_TABLE (t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD);
/* Attach channel value to adjustment */
- gtk_object_set_data (GTK_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i));
+ g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i));
/* Signals */
g_signal_connect (G_OBJECT (_a[i]), "value_changed",
G_CALLBACK (_adjustmentAnyChanged), _csel);
@@ -206,7 +206,7 @@ sp_color_scales_new (void)
{
SPColorScales *csel;
- csel = (SPColorScales*)gtk_type_new (SP_TYPE_COLOR_SCALES);
+ csel = (SPColorScales*)g_object_new (SP_TYPE_COLOR_SCALES, NULL);
return GTK_WIDGET (csel);
}
@@ -538,7 +538,7 @@ guint ColorScales::getSubmode() const
void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs )
{
- gint channel = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (adjustment), "channel"));
+ gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel"));
_adjustmentChanged(cs, channel);
}
diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp
index bf3564d2e..b017ed923 100644
--- a/src/widgets/sp-color-selector.cpp
+++ b/src/widgets/sp-color-selector.cpp
@@ -68,7 +68,7 @@ void sp_color_selector_class_init( SPColorSelectorClass *klass )
object_class = GTK_OBJECT_CLASS(klass);
widget_class = GTK_WIDGET_CLASS(klass);
- parent_class = GTK_VBOX_CLASS( gtk_type_class(GTK_TYPE_VBOX) );
+ parent_class = GTK_VBOX_CLASS( g_type_class_peek_parent(klass) );
csel_signals[GRABBED] = g_signal_new( "grabbed",
G_TYPE_FROM_CLASS(object_class),
diff --git a/src/widgets/sp-color-slider.cpp b/src/widgets/sp-color-slider.cpp
index 7b365bc73..ad21e9031 100644
--- a/src/widgets/sp-color-slider.cpp
+++ b/src/widgets/sp-color-slider.cpp
@@ -54,24 +54,22 @@ static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, g
static GtkWidgetClass *parent_class;
static guint slider_signals[LAST_SIGNAL] = {0};
-GtkType
+GType
sp_color_slider_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo info = {
- (gchar*) "SPColorSlider",
- sizeof (SPColorSlider),
+ GTypeInfo info = {
sizeof (SPColorSliderClass),
- (GtkClassInitFunc) sp_color_slider_class_init,
- (GtkObjectInitFunc) sp_color_slider_init,
- NULL, NULL, NULL
+ NULL, NULL,
+ (GClassInitFunc) sp_color_slider_class_init,
+ NULL, NULL,
+ sizeof (SPColorSlider),
+ 0,
+ (GInstanceInitFunc) sp_color_slider_init,
+ NULL
};
- type = gtk_type_unique (GTK_TYPE_WIDGET, &info);
+ type = g_type_register_static (GTK_TYPE_WIDGET, "SPColorSlider", &info, (GTypeFlags)0);
}
return type;
}
@@ -85,7 +83,7 @@ sp_color_slider_class_init (SPColorSliderClass *klass)
object_class = (GtkObjectClass *) klass;
widget_class = (GtkWidgetClass *) klass;
- parent_class = (GtkWidgetClass*)gtk_type_class (GTK_TYPE_WIDGET);
+ parent_class = (GtkWidgetClass*)g_type_class_peek_parent (klass);
slider_signals[GRABBED] = g_signal_new ("grabbed",
G_TYPE_FROM_CLASS(object_class),
@@ -184,12 +182,9 @@ sp_color_slider_destroy (GtkObject *object)
static void
sp_color_slider_realize (GtkWidget *widget)
{
- SPColorSlider *slider;
GdkWindowAttr attributes;
gint attributes_mask;
- slider = SP_COLOR_SLIDER (widget);
-
gtk_widget_set_realized (widget, TRUE);
attributes.window_type = GDK_WINDOW_CHILD;
@@ -218,10 +213,6 @@ sp_color_slider_realize (GtkWidget *widget)
static void
sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition)
{
- SPColorSlider *slider;
-
- slider = SP_COLOR_SLIDER (widget);
-
requisition->width = SLIDER_WIDTH + widget->style->xthickness * 2;
requisition->height = SLIDER_HEIGHT + widget->style->ythickness * 2;
}
@@ -229,10 +220,6 @@ sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition)
static void
sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
{
- SPColorSlider *slider;
-
- slider = SP_COLOR_SLIDER (widget);
-
widget->allocation = *allocation;
if (gtk_widget_get_realized (widget)) {
@@ -249,9 +236,6 @@ sp_color_slider_expose (GtkWidget *widget, GdkEventExpose *event)
slider = SP_COLOR_SLIDER (widget);
if (gtk_widget_is_drawable (widget)) {
- gint width, height;
- width = widget->allocation.width;
- height = widget->allocation.height;
sp_color_slider_paint (slider, &event->area);
}
@@ -323,7 +307,7 @@ sp_color_slider_new (GtkAdjustment *adjustment)
{
SPColorSlider *slider;
- slider = (SPColorSlider*)gtk_type_new (SP_TYPE_COLOR_SLIDER);
+ slider = (SPColorSlider*)g_object_new (SP_TYPE_COLOR_SLIDER, NULL);
sp_color_slider_set_adjustment (slider, adjustment);
@@ -350,7 +334,7 @@ void sp_color_slider_set_adjustment(SPColorSlider *slider, GtkAdjustment *adjust
slider->adjustment = adjustment;
gtk_object_ref (GTK_OBJECT (adjustment));
- gtk_object_sink (GTK_OBJECT (adjustment));
+ g_object_ref_sink (adjustment);
g_signal_connect (G_OBJECT (adjustment), "changed",
G_CALLBACK (sp_color_slider_adjustment_changed), slider);
diff --git a/src/widgets/sp-color-slider.h b/src/widgets/sp-color-slider.h
index b8cfaf869..591d8368a 100644
--- a/src/widgets/sp-color-slider.h
+++ b/src/widgets/sp-color-slider.h
@@ -53,7 +53,7 @@ struct SPColorSliderClass {
void (* changed) (SPColorSlider *slider);
};
-GtkType sp_color_slider_get_type (void);
+GType sp_color_slider_get_type (void);
GtkWidget *sp_color_slider_new (GtkAdjustment *adjustment);
diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp
index 4bbda79a6..18fc76a2d 100644
--- a/src/widgets/sp-color-wheel-selector.cpp
+++ b/src/widgets/sp-color-wheel-selector.cpp
@@ -241,7 +241,7 @@ sp_color_wheel_selector_new (void)
{
SPColorWheelSelector *csel;
- csel = (SPColorWheelSelector*)gtk_type_new (SP_TYPE_COLOR_WHEEL_SELECTOR);
+ csel = (SPColorWheelSelector*)g_object_new (SP_TYPE_COLOR_WHEEL_SELECTOR, NULL);
return GTK_WIDGET (csel);
}
diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp
index d5877db99..ef8a6c03c 100644
--- a/src/widgets/sp-widget.cpp
+++ b/src/widgets/sp-widget.cpp
@@ -43,24 +43,25 @@ static void sp_widget_set_selection (Inkscape::Application *inkscape, Inkscape::
static GtkBinClass *parent_class;
static guint signals[LAST_SIGNAL] = {0};
-GtkType
+GType
sp_widget_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- static const GtkTypeInfo info = {
- (gchar*) "SPWidget",
- sizeof (SPWidget),
+ static const GTypeInfo info = {
sizeof (SPWidgetClass),
- (GtkClassInitFunc) sp_widget_class_init,
- (GtkObjectInitFunc) sp_widget_init,
- NULL, NULL, NULL
+ NULL, NULL,
+ (GClassInitFunc) sp_widget_class_init,
+ NULL, NULL,
+ sizeof (SPWidget),
+ 0,
+ (GInstanceInitFunc) sp_widget_init,
+ NULL
};
- type = gtk_type_unique (GTK_TYPE_BIN, &info);
+ type = g_type_register_static (GTK_TYPE_BIN,
+ "SPWidget",
+ &info,
+ (GTypeFlags)0);
}
return type;
}
@@ -74,7 +75,7 @@ sp_widget_class_init (SPWidgetClass *klass)
object_class = (GtkObjectClass *) klass;
widget_class = (GtkWidgetClass *) klass;
- parent_class = (GtkBinClass*)gtk_type_class (GTK_TYPE_BIN);
+ parent_class = (GtkBinClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_widget_destroy;
@@ -221,7 +222,7 @@ sp_widget_new_global (Inkscape::Application *inkscape)
{
SPWidget *spw;
- spw = (SPWidget*)gtk_type_new (SP_TYPE_WIDGET);
+ spw = (SPWidget*)g_object_new (SP_TYPE_WIDGET, NULL);
if (!sp_widget_construct_global (spw, inkscape)) {
gtk_object_unref (GTK_OBJECT (spw));
diff --git a/src/widgets/sp-widget.h b/src/widgets/sp-widget.h
index decd9c056..66320cd4d 100644
--- a/src/widgets/sp-widget.h
+++ b/src/widgets/sp-widget.h
@@ -42,7 +42,7 @@ struct SPWidgetClass {
void (* set_selection) (SPWidget *spw, Inkscape::Selection *selection);
};
-GtkType sp_widget_get_type (void);
+GType sp_widget_get_type (void);
/* fixme: Think (Lauris) */
/* Generic constructor for global widget */
diff --git a/src/widgets/sp-xmlview-attr-list.cpp b/src/widgets/sp-xmlview-attr-list.cpp
index 535a4b534..9aa46a399 100644
--- a/src/widgets/sp-xmlview-attr-list.cpp
+++ b/src/widgets/sp-xmlview-attr-list.cpp
@@ -108,7 +108,7 @@ sp_xmlview_attr_list_class_init (SPXMLViewAttrListClass * klass)
object_class = (GtkObjectClass *) klass;
object_class->destroy = sp_xmlview_attr_list_destroy;
- parent_class = (GtkCListClass*)gtk_type_class (GTK_TYPE_CLIST);
+ parent_class = (GtkCListClass*)g_type_class_peek_parent (klass);
g_signal_new ( "row-value-changed",
G_TYPE_FROM_CLASS(klass),
diff --git a/src/widgets/sp-xmlview-attr-list.h b/src/widgets/sp-xmlview-attr-list.h
index de79c7a37..9479dd77a 100644
--- a/src/widgets/sp-xmlview-attr-list.h
+++ b/src/widgets/sp-xmlview-attr-list.h
@@ -38,7 +38,7 @@ struct SPXMLViewAttrListClass
void (* row_changed) (SPXMLViewAttrList *list, gint row);
};
-GtkType sp_xmlview_attr_list_get_type (void);
+GType sp_xmlview_attr_list_get_type (void);
GtkWidget * sp_xmlview_attr_list_new (Inkscape::XML::Node * repr);
#define SP_XMLVIEW_ATTR_LIST_GET_REPR(list) (SP_XMLVIEW_ATTR_LIST (list)->repr)
diff --git a/src/widgets/sp-xmlview-content.cpp b/src/widgets/sp-xmlview-content.cpp
index 75d68d25c..1f35f2373 100644
--- a/src/widgets/sp-xmlview-content.cpp
+++ b/src/widgets/sp-xmlview-content.cpp
@@ -46,7 +46,7 @@ sp_xmlview_content_new (Inkscape::XML::Node * repr)
SPXMLViewContent *text;
tb = gtk_text_buffer_new (NULL);
- text = (SPXMLViewContent*)gtk_type_new (SP_TYPE_XMLVIEW_CONTENT);
+ text = (SPXMLViewContent*)g_object_new (SP_TYPE_XMLVIEW_CONTENT, NULL);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text), tb);
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text), GTK_WRAP_CHAR);
@@ -80,7 +80,7 @@ sp_xmlview_content_set_repr (SPXMLViewContent * text, Inkscape::XML::Node * repr
GType sp_xmlview_content_get_type(void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
GTypeInfo info = {
@@ -108,7 +108,7 @@ sp_xmlview_content_class_init (SPXMLViewContentClass * klass)
object_class = (GtkObjectClass *) klass;
- parent_class = (GtkTextViewClass*)gtk_type_class (GTK_TYPE_TEXT_VIEW);
+ parent_class = (GtkTextViewClass*)g_type_class_peek_parent (klass);
object_class->destroy = sp_xmlview_content_destroy;
}
diff --git a/src/widgets/sp-xmlview-content.h b/src/widgets/sp-xmlview-content.h
index fe26891d0..941ef0be1 100644
--- a/src/widgets/sp-xmlview-content.h
+++ b/src/widgets/sp-xmlview-content.h
@@ -41,7 +41,7 @@ struct SPXMLViewContentClass
GtkTextViewClass parent_class;
};
-GtkType sp_xmlview_content_get_type (void);
+GType sp_xmlview_content_get_type (void);
GtkWidget * sp_xmlview_content_new (Inkscape::XML::Node * repr);
#define SP_XMLVIEW_CONTENT_GET_REPR(text) (SP_XMLVIEW_CONTENT (text)->repr)
diff --git a/src/widgets/sp-xmlview-tree.cpp b/src/widgets/sp-xmlview-tree.cpp
index b757123b5..b867b1044 100644
--- a/src/widgets/sp-xmlview-tree.cpp
+++ b/src/widgets/sp-xmlview-tree.cpp
@@ -125,25 +125,23 @@ sp_xmlview_tree_set_repr (SPXMLViewTree * tree, Inkscape::XML::Node * repr)
gtk_clist_thaw (GTK_CLIST (tree));
}
-GtkType
+GType
sp_xmlview_tree_get_type (void)
{
- //TODO: switch to GObject
- // GtkType and such calls were deprecated a while back with the
- // introduction of GObject as a separate layer, with GType instead. --JonCruz
-
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- static const GtkTypeInfo info = {
- (gchar*) "SPXMLViewTree",
- sizeof (SPXMLViewTree),
+ static const GTypeInfo info = {
sizeof (SPXMLViewTreeClass),
- (GtkClassInitFunc) sp_xmlview_tree_class_init,
- (GtkObjectInitFunc) sp_xmlview_tree_init,
- NULL, NULL, NULL
+ NULL, NULL,
+ (GClassInitFunc) sp_xmlview_tree_class_init,
+ NULL, NULL,
+ sizeof (SPXMLViewTree),
+ 0,
+ (GInstanceInitFunc) sp_xmlview_tree_init,
+ NULL
};
- type = gtk_type_unique (GTK_TYPE_CTREE, &info);
+ type = g_type_register_static (GTK_TYPE_CTREE, "SPXMLViewTree", &info, (GTypeFlags)0);
}
return type;
@@ -155,7 +153,7 @@ sp_xmlview_tree_class_init (SPXMLViewTreeClass * klass)
GtkObjectClass * object_class;
object_class = (GtkObjectClass *) klass;
- parent_class = (GtkCTreeClass *) gtk_type_class (GTK_TYPE_CTREE);
+ parent_class = (GtkCTreeClass *) g_type_class_peek_parent (klass);
GTK_CTREE_CLASS (object_class)->tree_move = tree_move;
diff --git a/src/widgets/sp-xmlview-tree.h b/src/widgets/sp-xmlview-tree.h
index 2b04e79eb..5d228f982 100644
--- a/src/widgets/sp-xmlview-tree.h
+++ b/src/widgets/sp-xmlview-tree.h
@@ -40,7 +40,7 @@ struct SPXMLViewTreeClass
GtkCTreeClass parent_class;
};
-GtkType sp_xmlview_tree_get_type (void);
+GType sp_xmlview_tree_get_type (void);
GtkWidget * sp_xmlview_tree_new (Inkscape::XML::Node * repr, void * factory, void * data);
#define SP_XMLVIEW_TREE_REPR(tree) (SP_XMLVIEW_TREE (tree)->repr)
diff --git a/src/widgets/spinbutton-events.cpp b/src/widgets/spinbutton-events.cpp
index 4b60ce812..994d954cc 100644
--- a/src/widgets/spinbutton-events.cpp
+++ b/src/widgets/spinbutton-events.cpp
@@ -27,7 +27,7 @@ spinbutton_focus_in (GtkWidget *w, GdkEventKey */*event*/, gpointer /*data*/)
{
gdouble *ini;
- ini = (gdouble *) gtk_object_get_data (GTK_OBJECT (w), "ini");
+ ini = (gdouble *) g_object_get_data(G_OBJECT (w), "ini");
if (ini) g_free (ini); // free the old value if any
// retrieve the value
@@ -35,7 +35,7 @@ spinbutton_focus_in (GtkWidget *w, GdkEventKey */*event*/, gpointer /*data*/)
*ini = gtk_spin_button_get_value (GTK_SPIN_BUTTON(w));
// remember it
- gtk_object_set_data (GTK_OBJECT (w), "ini", ini);
+ g_object_set_data (G_OBJECT (w), "ini", ini);
return FALSE; // I didn't consume the event
}
@@ -43,7 +43,7 @@ spinbutton_focus_in (GtkWidget *w, GdkEventKey */*event*/, gpointer /*data*/)
void
spinbutton_undo (GtkWidget *w)
{
- gdouble *ini = (gdouble *) gtk_object_get_data (GTK_OBJECT (w), "ini");
+ gdouble *ini = (gdouble *) g_object_get_data(G_OBJECT (w), "ini");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), *ini);
}
@@ -51,11 +51,11 @@ void
spinbutton_defocus (GtkObject *container)
{
// defocus spinbuttons by moving focus to the canvas, unless "stay" is on
- gboolean stay = GPOINTER_TO_INT(gtk_object_get_data (GTK_OBJECT (container), "stay"));
+ gboolean stay = GPOINTER_TO_INT(g_object_get_data(G_OBJECT (container), "stay"));
if (stay) {
- gtk_object_set_data (GTK_OBJECT (container), "stay", GINT_TO_POINTER (FALSE));
+ g_object_set_data (G_OBJECT (container), "stay", GINT_TO_POINTER (FALSE));
} else {
- GtkWidget *canvas = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (container), "dtw");
+ GtkWidget *canvas = (GtkWidget *) g_object_get_data(G_OBJECT (container), "dtw");
if (canvas) {
gtk_widget_grab_focus (GTK_WIDGET(canvas));
}
@@ -82,7 +82,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
case GDK_Tab:
case GDK_ISO_Left_Tab:
// set the flag meaning "do not leave toolbar when changing value"
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
return FALSE; // I didn't consume the event
break;
@@ -91,7 +91,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
case GDK_Up:
case GDK_KP_Up:
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w));
v += SPIN_STEP;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v);
@@ -99,7 +99,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
break;
case GDK_Down:
case GDK_KP_Down:
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w));
v -= SPIN_STEP;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v);
@@ -107,7 +107,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
break;
case GDK_Page_Up:
case GDK_KP_Page_Up:
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w));
v += SPIN_PAGE_STEP;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v);
@@ -115,7 +115,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
break;
case GDK_Page_Down:
case GDK_KP_Page_Down:
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w));
v -= SPIN_PAGE_STEP;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v);
@@ -123,7 +123,7 @@ spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data)
break;
case GDK_z:
case GDK_Z:
- gtk_object_set_data (GTK_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
+ g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE));
if (event->state & GDK_CONTROL_MASK) {
spinbutton_undo (w);
return TRUE; // I consumed the event
diff --git a/src/widgets/spw-utilities.cpp b/src/widgets/spw-utilities.cpp
index aec1e2e11..2225f2c57 100644
--- a/src/widgets/spw-utilities.cpp
+++ b/src/widgets/spw-utilities.cpp
@@ -97,8 +97,8 @@ GtkWidget *spw_vbox_checkbutton(GtkWidget *dialog, GtkWidget *vbox,
g_assert (b != NULL);
gtk_widget_show (b);
gtk_box_pack_start (GTK_BOX (vbox), b, FALSE, FALSE, 0);
- gtk_object_set_data (GTK_OBJECT (b), "key", key);
- gtk_object_set_data (GTK_OBJECT (dialog), key, b);
+ g_object_set_data (G_OBJECT (b), "key", key);
+ g_object_set_data (G_OBJECT (dialog), key, b);
g_signal_connect (G_OBJECT (b), "toggled", cb, dialog);
return b;
}
@@ -128,8 +128,8 @@ spw_checkbutton(GtkWidget * dialog, GtkWidget * table,
gtk_widget_show (b);
gtk_table_attach (GTK_TABLE (table), b, 1, 2, row, row+1,
(GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0);
- gtk_object_set_data (GTK_OBJECT (b), "key", key);
- gtk_object_set_data (GTK_OBJECT (dialog), key, b);
+ g_object_set_data (G_OBJECT (b), "key", key);
+ g_object_set_data (G_OBJECT (dialog), key, b);
g_signal_connect (G_OBJECT (b), "toggled", cb, dialog);
if (insensitive == 1) {
gtk_widget_set_sensitive (b, FALSE);
@@ -156,7 +156,7 @@ spw_dropdown(GtkWidget * dialog, GtkWidget * table,
gtk_widget_show (selector);
gtk_table_attach (GTK_TABLE (table), selector, 1, 2, row, row+1,
(GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0);
- gtk_object_set_data (GTK_OBJECT (dialog), key, selector);
+ g_object_set_data (G_OBJECT (dialog), key, selector);
return selector;
}
@@ -181,9 +181,9 @@ spw_unit_selector(GtkWidget * dialog, GtkWidget * table,
a = gtk_adjustment_new (0.0, can_be_negative?-1e6:0, 1e6, 1.0, 10.0, 10.0);
g_assert(a != NULL);
- gtk_object_set_data (GTK_OBJECT (a), "key", key);
- gtk_object_set_data (GTK_OBJECT (a), "unit_selector", us);
- gtk_object_set_data (GTK_OBJECT (dialog), key, a);
+ g_object_set_data (G_OBJECT (a), "key", key);
+ g_object_set_data (G_OBJECT (a), "unit_selector", us);
+ g_object_set_data (G_OBJECT (dialog), key, a);
sp_unit_selector_add_adjustment (SP_UNIT_SELECTOR (us), GTK_ADJUSTMENT (a));
sb = gtk_spin_button_new (GTK_ADJUSTMENT (a), 1.0, 4);
g_assert(sb != NULL);
@@ -235,7 +235,7 @@ sp_search_by_data_recursive (GtkWidget *w, gpointer key)
gpointer r = NULL;
if (w && GTK_IS_OBJECT(w)) {
- r = gtk_object_get_data (GTK_OBJECT(w), (gchar *) key);
+ r = g_object_get_data(G_OBJECT(w), (gchar *) key);
}
if (r) return r;
@@ -260,7 +260,7 @@ sp_search_by_value_recursive (GtkWidget *w, gchar *key, gchar *value)
GtkWidget *child;
if (w && GTK_IS_OBJECT(w)) {
- r = (gchar *) gtk_object_get_data (GTK_OBJECT(w), key);
+ r = (gchar *) g_object_get_data(G_OBJECT(w), key);
}
if (r && !strcmp (r, value)) return w;
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index d0ff38592..3c1196e96 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -2176,6 +2176,10 @@ static void toggle_snap_callback(GtkToggleAction *act, gpointer data) //data poi
v = nv->snap_manager.snapprefs.getSnapIntersectionCS();
sp_repr_set_boolean(repr, "inkscape:snap-intersection-paths", !v);
break;
+ case SP_ATTR_INKSCAPE_SNAP_OTHERS:
+ v = nv->snap_manager.snapprefs.getSnapModeOthers();
+ sp_repr_set_boolean(repr, "inkscape:snap-others", !v);
+ break;
case SP_ATTR_INKSCAPE_SNAP_CENTER:
v = nv->snap_manager.snapprefs.getIncludeItemCenter();
sp_repr_set_boolean(repr, "inkscape:snap-center", !v);
@@ -2204,6 +2208,10 @@ static void toggle_snap_callback(GtkToggleAction *act, gpointer data) //data poi
v = nv->snap_manager.snapprefs.getSnapObjectMidpoints();
sp_repr_set_boolean(repr, "inkscape:snap-object-midpoints", !v);
break;
+ case SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE:
+ v = nv->snap_manager.snapprefs.getSnapTextBaseline();
+ sp_repr_set_boolean(repr, "inkscape:snap-text-baseline", !v);
+ break;
case SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE_MIDPOINTS:
v = nv->snap_manager.snapprefs.getSnapBBoxEdgeMidpoints();
sp_repr_set_boolean(repr, "inkscape:snap-bbox-edge-midpoints", !v);
@@ -2244,8 +2252,11 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
" <toolitem action='ToggleSnapToItemNode' />"
" <toolitem action='ToggleSnapToSmoothNodes' />"
" <toolitem action='ToggleSnapToFromLineMidpoints' />"
+ " <separator />"
+ " <toolitem action='ToggleSnapFromOthers' />"
" <toolitem action='ToggleSnapToFromObjectCenters' />"
" <toolitem action='ToggleSnapToFromRotationCenter' />"
+ " <toolitem action='ToggleSnapToFromTextBaseline' />"
" <separator />"
" <toolitem action='ToggleSnapToPageBorder' />"
" <toolitem action='ToggleSnapToGrids' />"
@@ -2370,6 +2381,14 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
}
{
+ InkToggleAction* act = ink_toggle_action_new("ToggleSnapFromOthers",
+ _("Others"), _("Snap other points (centers, guide origins, gradient handles, etc.)"), INKSCAPE_ICON_SNAP_OTHERS, secondarySize, SP_ATTR_INKSCAPE_SNAP_OTHERS);
+
+ gtk_action_group_add_action( mainActions->gobj(), GTK_ACTION( act ) );
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_snap_callback), toolbox );
+ }
+
+ {
InkToggleAction* act = ink_toggle_action_new("ToggleSnapToFromObjectCenters",
_("Object Centers"), _("Snap from and to centers of objects"),
INKSCAPE_ICON_SNAP_NODES_CENTER, secondarySize, SP_ATTR_INKSCAPE_SNAP_OBJECT_MIDPOINTS);
@@ -2388,6 +2407,16 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
}
{
+ InkToggleAction* act = ink_toggle_action_new("ToggleSnapToFromTextBaseline",
+ _("Text baseline"), _("Snap from and to text anchors and baselines"),
+ INKSCAPE_ICON_SNAP_TEXT_BASELINE, secondarySize, SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE);
+
+ gtk_action_group_add_action( mainActions->gobj(), GTK_ACTION( act ) );
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_snap_callback), toolbox );
+ }
+
+
+ {
InkToggleAction* act = ink_toggle_action_new("ToggleSnapToPageBorder",
_("Page border"), _("Snap to the page border"), INKSCAPE_ICON_SNAP_PAGE,
secondarySize, SP_ATTR_INKSCAPE_SNAP_PAGE);
@@ -2476,8 +2505,10 @@ void ToolboxFactory::updateSnapToolbox(SPDesktop *desktop, SPEventContext * /*ev
Glib::RefPtr<Gtk::Action> act7 = mainActions->get_action("ToggleSnapToItemNode");
Glib::RefPtr<Gtk::Action> act8 = mainActions->get_action("ToggleSnapToSmoothNodes");
Glib::RefPtr<Gtk::Action> act9 = mainActions->get_action("ToggleSnapToFromLineMidpoints");
- Glib::RefPtr<Gtk::Action> act10 = mainActions->get_action("ToggleSnapToFromObjectCenters");
+ Glib::RefPtr<Gtk::Action> act10 = mainActions->get_action("ToggleSnapFromOthers");
+ Glib::RefPtr<Gtk::Action> act10b = mainActions->get_action("ToggleSnapToFromObjectCenters");
Glib::RefPtr<Gtk::Action> act11 = mainActions->get_action("ToggleSnapToFromRotationCenter");
+ Glib::RefPtr<Gtk::Action> act11b = mainActions->get_action("ToggleSnapToFromTextBaseline");
Glib::RefPtr<Gtk::Action> act12 = mainActions->get_action("ToggleSnapToPageBorder");
//Glib::RefPtr<Gtk::Action> act13 = mainActions->get_action("ToggleSnapToGridGuideIntersections");
Glib::RefPtr<Gtk::Action> act14 = mainActions->get_action("ToggleSnapToGrids");
@@ -2524,10 +2555,16 @@ void ToolboxFactory::updateSnapToolbox(SPDesktop *desktop, SPEventContext * /*ev
gtk_action_set_sensitive(GTK_ACTION(act8->gobj()), c1 && c3);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act9->gobj()), nv->snap_manager.snapprefs.getSnapLineMidpoints());
gtk_action_set_sensitive(GTK_ACTION(act9->gobj()), c1 && c3);
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10->gobj()), nv->snap_manager.snapprefs.getSnapObjectMidpoints());
- gtk_action_set_sensitive(GTK_ACTION(act10->gobj()), c1 && c3);
+
+ bool const c5 = nv->snap_manager.snapprefs.getSnapModeOthers();
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10->gobj()), c5);
+ gtk_action_set_sensitive(GTK_ACTION(act10->gobj()), c1);
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10b->gobj()), nv->snap_manager.snapprefs.getSnapObjectMidpoints());
+ gtk_action_set_sensitive(GTK_ACTION(act10b->gobj()), c1 && c5);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act11->gobj()), nv->snap_manager.snapprefs.getIncludeItemCenter());
- gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c3);
+ gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c5);
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act11b->gobj()), nv->snap_manager.snapprefs.getSnapTextBaseline());
+ gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c5);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act12->gobj()), nv->snap_manager.snapprefs.getSnapToPageBorder());
gtk_action_set_sensitive(GTK_ACTION(act12->gobj()), c1);
@@ -2560,8 +2597,8 @@ void ToolboxFactory::showAuxToolbox(GtkWidget *toolbox_toplevel)
static GtkWidget *sp_empty_toolbox_new(SPDesktop *desktop)
{
GtkWidget *tbl = gtk_toolbar_new();
- gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
- gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
+ g_object_set_data(G_OBJECT(tbl), "dtw", desktop->canvas);
+ g_object_set_data(G_OBJECT(tbl), "desktop", desktop);
gtk_widget_show_all(tbl);
sp_set_font_size_smaller (tbl);
@@ -2808,10 +2845,10 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
bool isFlatSided = prefs->getBool("/tools/shapes/star/isflatsided", true);
if (!strcmp(name, "inkscape:randomized")) {
- adj = GTK_ADJUSTMENT( gtk_object_get_data(GTK_OBJECT(tbl), "randomized") );
+ adj = GTK_ADJUSTMENT( g_object_get_data(G_OBJECT(tbl), "randomized") );
gtk_adjustment_set_value(adj, sp_repr_get_double_attribute(repr, "inkscape:randomized", 0.0));
} else if (!strcmp(name, "inkscape:rounded")) {
- adj = GTK_ADJUSTMENT( gtk_object_get_data(GTK_OBJECT(tbl), "rounded") );
+ adj = GTK_ADJUSTMENT( g_object_get_data(G_OBJECT(tbl), "rounded") );
gtk_adjustment_set_value(adj, sp_repr_get_double_attribute(repr, "inkscape:rounded", 0.0));
} else if (!strcmp(name, "inkscape:flatsided")) {
GtkAction* prop_action = GTK_ACTION( g_object_get_data(G_OBJECT(tbl), "prop_action") );
@@ -2825,7 +2862,7 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
gtk_action_set_sensitive( prop_action, FALSE );
}
} else if ((!strcmp(name, "sodipodi:r1") || !strcmp(name, "sodipodi:r2")) && (!isFlatSided) ) {
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "proportion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "proportion");
gdouble r1 = sp_repr_get_double_attribute(repr, "sodipodi:r1", 1.0);
gdouble r2 = sp_repr_get_double_attribute(repr, "sodipodi:r2", 1.0);
if (r2 < r1) {
@@ -2834,7 +2871,7 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
gtk_adjustment_set_value(adj, r1/r2);
}
} else if (!strcmp(name, "sodipodi:sides")) {
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "magnitude");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "magnitude");
gtk_adjustment_set_value(adj, sp_repr_get_int_attribute(repr, "sodipodi:sides", 0));
}
@@ -2948,7 +2985,7 @@ void sp_toolbox_add_label(GtkWidget *tbl, gchar const *title, bool wide)
} else {
gtk_box_pack_start(GTK_BOX(tbl), boxl, FALSE, FALSE, 0);
}
- gtk_object_set_data(GTK_OBJECT(tbl), "mode_label", l);
+ g_object_set_data(G_OBJECT(tbl), "mode_label", l);
}
@@ -3480,21 +3517,21 @@ static void box3d_resync_toolbar(Inkscape::XML::Node *persp_repr, GObject *data)
return;
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_x"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_x"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_x_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_x_state_action"))->action;
box3d_set_button_and_adjustment(persp, Proj::X, adj, act, tact);
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_y"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_y"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_y_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_y_state_action"))->action;
box3d_set_button_and_adjustment(persp, Proj::Y, adj, act, tact);
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_z"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_z"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_z_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_z_state_action"))->action;
@@ -3861,15 +3898,15 @@ static void sp_spl_tb_defaults(GtkWidget * /*widget*/, GtkObject *obj)
gdouble exp = 1.0;
gdouble t0 = 0.0;
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "revolution");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "revolution");
gtk_adjustment_set_value(adj, rev);
gtk_adjustment_value_changed(adj);
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "expansion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "expansion");
gtk_adjustment_set_value(adj, exp);
gtk_adjustment_value_changed(adj);
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "t0");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "t0");
gtk_adjustment_set_value(adj, t0);
gtk_adjustment_value_changed(adj);
@@ -3895,13 +3932,13 @@ static void spiral_tb_event_attr_changed(Inkscape::XML::Node *repr,
g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(TRUE));
GtkAdjustment *adj;
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "revolution");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "revolution");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:revolution", 3.0)));
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "expansion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "expansion");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:expansion", 1.0)));
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "t0");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "t0");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:t0", 0.0)));
g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(FALSE));
@@ -4186,7 +4223,7 @@ static void sp_pencil_tb_defaults(GtkWidget * /*widget*/, GtkObject *obj)
// fixme: make settable
gdouble tolerance = 4;
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "tolerance");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "tolerance");
gtk_adjustment_set_value(adj, tolerance);
gtk_adjustment_value_changed(adj);
@@ -4633,12 +4670,6 @@ static void sp_spray_standard_deviation_value_changed( GtkAdjustment *adj, GObje
prefs->setDouble( "/tools/spray/standard_deviation", adj->value );
}
-static void sp_spray_pressure_state_changed( GtkToggleAction *act, gpointer /*data*/ )
-{
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- prefs->setBool("/tools/spray/usepressure", gtk_toggle_action_get_active(act));
-}
-
static void sp_spray_mode_changed( EgeSelectOneAction *act, GObject * /*tbl*/ )
{
int mode = ege_select_one_action_get_active( act );
@@ -8021,7 +8052,7 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl
if (cc_item_is_connector(item)) {
item->setAttribute( "inkscape:connector-type",
- value, false);
+ value, NULL);
item->avoidRef->handleSettingChange();
modmade = true;
}
@@ -8070,7 +8101,7 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl)
if (cc_item_is_connector(item)) {
item->setAttribute( "inkscape:connector-curvature",
- value, false);
+ value, NULL);
item->avoidRef->handleSettingChange();
modmade = true;
}
@@ -8186,7 +8217,7 @@ static void connector_tb_event_attr_changed(Inkscape::XML::Node *repr,
if ( !g_object_get_data(G_OBJECT(tbl), "freeze")
&& (strcmp(name, "inkscape:connector-spacing") == 0) ) {
- GtkAdjustment *adj = static_cast<GtkAdjustment*>(gtk_object_get_data(GTK_OBJECT(tbl), "spacing"));
+ GtkAdjustment *adj = static_cast<GtkAdjustment*>(g_object_get_data(G_OBJECT(tbl), "spacing"));
gdouble spacing = defaultConnSpacing;
sp_repr_get_double(repr, "inkscape:connector-spacing", &spacing);
diff --git a/src/xml/CMakeLists.txt b/src/xml/CMakeLists.txt
index d7a0e197d..4f86599de 100644
--- a/src/xml/CMakeLists.txt
+++ b/src/xml/CMakeLists.txt
@@ -17,6 +17,9 @@ set(xml_SRC
helper-observer.cpp
rebase-hrefs.cpp
+
+ # -------
+ # Headers
attribute-record.h
comment-node.h
composite-node-observer.h