summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-08-09 09:33:34 +0000
committerAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-08-09 09:33:34 +0000
commit577a95c2028790cbb856feda6ac6880ddd1aaad2 (patch)
tree4ff78f6fa8f0c1b740fd43b0ade2b91dbf9226d0 /src
parentMerged trunk (diff)
parentRemove deprecated Autotools and btool files. Please use CMake instead (diff)
downloadinkscape-577a95c2028790cbb856feda6ac6880ddd1aaad2.tar.gz
inkscape-577a95c2028790cbb856feda6ac6880ddd1aaad2.zip
Merged trunk
(bzr r14954.1.30)
Diffstat (limited to 'src')
-rw-r--r--src/2geom/Makefile_insert131
-rw-r--r--src/CMakeLists.txt6
-rw-r--r--src/Makefile.am289
-rw-r--r--src/Makefile_insert251
-rw-r--r--src/color-profile.cpp45
-rw-r--r--src/debug/Makefile_insert15
-rw-r--r--src/desktop-events.cpp50
-rw-r--r--src/desktop.cpp4
-rw-r--r--src/device-manager.cpp52
-rw-r--r--src/dir-util.h2
-rw-r--r--src/display/Makefile_insert125
-rw-r--r--src/display/canvas-axonomgrid.cpp40
-rw-r--r--src/display/canvas-grid.cpp40
-rw-r--r--src/display/sp-canvas.cpp100
-rw-r--r--src/display/sp-canvas.h7
-rw-r--r--src/extension/Makefile_insert54
-rw-r--r--src/extension/dbus/Makefile_insert111
-rw-r--r--src/extension/error-file.cpp6
-rw-r--r--src/extension/extension.cpp22
-rw-r--r--src/extension/extension.h9
-rw-r--r--src/extension/implementation/Makefile_insert9
-rw-r--r--src/extension/implementation/script.cpp6
-rw-r--r--src/extension/internal/Makefile_insert173
-rw-r--r--src/extension/internal/cdr-input.cpp11
-rw-r--r--src/extension/internal/pdfinput/pdf-input.cpp36
-rw-r--r--src/extension/internal/pdfinput/pdf-input.h15
-rw-r--r--src/extension/internal/vsd-input.cpp12
-rw-r--r--src/extension/loader.cpp3
-rw-r--r--src/extension/loader.h5
-rw-r--r--src/extension/param/bool.cpp6
-rw-r--r--src/extension/param/float.cpp12
-rw-r--r--src/extension/param/int.cpp13
-rw-r--r--src/extension/param/notebook.cpp8
-rw-r--r--src/extension/param/radiobutton.cpp9
-rw-r--r--src/extension/prefdialog.cpp27
-rw-r--r--src/filters/Makefile_insert46
-rw-r--r--src/filters/pointlight.cpp5
-rw-r--r--src/filters/pointlight.h13
-rw-r--r--src/helper/Makefile_insert45
-rw-r--r--src/inkgc/Makefile_insert13
-rw-r--r--src/inkview.cpp16
-rw-r--r--src/io/Makefile_insert26
-rw-r--r--src/knot.cpp41
-rw-r--r--src/libavoid/Makefile_insert37
-rw-r--r--src/libcola/Makefile_insert18
-rw-r--r--src/libcroco/Makefile_insert64
-rw-r--r--src/libdepixelize/Makefile_insert22
-rw-r--r--src/libgdl/CMakeLists.txt50
-rw-r--r--src/libgdl/Makefile_insert92
-rw-r--r--src/libgdl/README.gdl-dock184
-rw-r--r--src/libgdl/gdl-dock-bar.c1049
-rw-r--r--src/libgdl/gdl-dock-bar.h74
-rw-r--r--src/libgdl/gdl-dock-item-button-image.c166
-rw-r--r--src/libgdl/gdl-dock-item-button-image.h70
-rw-r--r--src/libgdl/gdl-dock-item-grip.c809
-rw-r--r--src/libgdl/gdl-dock-item-grip.h77
-rw-r--r--src/libgdl/gdl-dock-item.c2401
-rw-r--r--src/libgdl/gdl-dock-item.h223
-rw-r--r--src/libgdl/gdl-dock-master.c1011
-rw-r--r--src/libgdl/gdl-dock-master.h106
-rw-r--r--src/libgdl/gdl-dock-notebook.c530
-rw-r--r--src/libgdl/gdl-dock-notebook.h59
-rw-r--r--src/libgdl/gdl-dock-object.c1027
-rw-r--r--src/libgdl/gdl-dock-object.h225
-rw-r--r--src/libgdl/gdl-dock-paned.c678
-rw-r--r--src/libgdl/gdl-dock-paned.h64
-rw-r--r--src/libgdl/gdl-dock-placeholder.c827
-rw-r--r--src/libgdl/gdl-dock-placeholder.h69
-rw-r--r--src/libgdl/gdl-dock-tablabel.c632
-rw-r--r--src/libgdl/gdl-dock-tablabel.h74
-rw-r--r--src/libgdl/gdl-dock.c1365
-rw-r--r--src/libgdl/gdl-dock.h99
-rw-r--r--src/libgdl/gdl-i18n.c43
-rw-r--r--src/libgdl/gdl-i18n.h72
-rw-r--r--src/libgdl/gdl-switcher.c1031
-rw-r--r--src/libgdl/gdl-switcher.h67
-rw-r--r--src/libgdl/gdl-win32.c42
-rw-r--r--src/libgdl/gdl-win32.h21
-rw-r--r--src/libgdl/gdl.h32
-rw-r--r--src/libgdl/libgdlmarshal.c173
-rw-r--r--src/libgdl/libgdlmarshal.h48
-rw-r--r--src/libgdl/libgdlmarshal.list7
-rw-r--r--src/libgdl/libgdltypebuiltins.c162
-rw-r--r--src/libgdl/libgdltypebuiltins.h38
-rw-r--r--src/libgdl/makefile.in17
-rw-r--r--src/libnrtype/Makefile_insert28
-rw-r--r--src/libuemf/Makefile_insert30
-rw-r--r--src/libvpsc/Makefile_insert23
-rw-r--r--src/livarot/Makefile_insert41
-rw-r--r--src/live_effects/Makefile_insert115
-rw-r--r--src/live_effects/parameter/Makefile_insert36
-rw-r--r--src/live_effects/parameter/togglebutton.cpp6
-rw-r--r--src/main.cpp5
-rw-r--r--src/sp-line.h3
-rw-r--r--src/splivarot.cpp83
-rw-r--r--src/splivarot.h4
-rw-r--r--src/svg-view-widget.cpp37
-rw-r--r--src/svg-view.cpp4
-rw-r--r--src/svg/Makefile_insert32
-rw-r--r--src/trace/Makefile_insert23
-rw-r--r--src/ui/CMakeLists.txt4
-rw-r--r--src/ui/Makefile_insert31
-rw-r--r--src/ui/cache/Makefile_insert6
-rw-r--r--src/ui/clipboard.cpp11
-rw-r--r--src/ui/dialog-events.h1
-rw-r--r--src/ui/dialog/Makefile_insert133
-rw-r--r--src/ui/dialog/aboutbox.cpp21
-rw-r--r--src/ui/dialog/align-and-distribute.cpp38
-rw-r--r--src/ui/dialog/align-and-distribute.h38
-rw-r--r--src/ui/dialog/calligraphic-profile-rename.cpp25
-rw-r--r--src/ui/dialog/calligraphic-profile-rename.h9
-rw-r--r--src/ui/dialog/clonetiler.cpp217
-rw-r--r--src/ui/dialog/clonetiler.h5
-rw-r--r--src/ui/dialog/debug.cpp7
-rw-r--r--src/ui/dialog/document-metadata.cpp31
-rw-r--r--src/ui/dialog/document-metadata.h12
-rw-r--r--src/ui/dialog/document-properties.cpp129
-rw-r--r--src/ui/dialog/document-properties.h6
-rw-r--r--src/ui/dialog/export.cpp96
-rw-r--r--src/ui/dialog/export.h40
-rw-r--r--src/ui/dialog/filedialog.cpp8
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp86
-rw-r--r--src/ui/dialog/filedialogimpl-win32.cpp4
-rw-r--r--src/ui/dialog/fill-and-stroke.cpp19
-rw-r--r--src/ui/dialog/fill-and-stroke.h4
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp164
-rw-r--r--src/ui/dialog/filter-effects-dialog.h12
-rw-r--r--src/ui/dialog/find.h6
-rw-r--r--src/ui/dialog/floating-behavior.cpp8
-rw-r--r--src/ui/dialog/font-substitution.cpp6
-rw-r--r--src/ui/dialog/glyphs.cpp78
-rw-r--r--src/ui/dialog/grid-arrange-tab.cpp20
-rw-r--r--src/ui/dialog/grid-arrange-tab.h5
-rw-r--r--src/ui/dialog/guides.cpp58
-rw-r--r--src/ui/dialog/guides.h12
-rw-r--r--src/ui/dialog/icon-preview.h6
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp42
-rw-r--r--src/ui/dialog/inkscape-preferences.h8
-rw-r--r--src/ui/dialog/input.cpp131
-rw-r--r--src/ui/dialog/layer-properties.cpp31
-rw-r--r--src/ui/dialog/layer-properties.h10
-rw-r--r--src/ui/dialog/layers.cpp4
-rw-r--r--src/ui/dialog/layers.h6
-rw-r--r--src/ui/dialog/livepatheffect-add.cpp6
-rw-r--r--src/ui/dialog/livepatheffect-editor.cpp7
-rw-r--r--src/ui/dialog/livepatheffect-editor.h4
-rw-r--r--src/ui/dialog/new-from-template.cpp8
-rw-r--r--src/ui/dialog/object-properties.cpp94
-rw-r--r--src/ui/dialog/object-properties.h4
-rw-r--r--src/ui/dialog/objects.cpp21
-rw-r--r--src/ui/dialog/objects.h10
-rw-r--r--src/ui/dialog/ocaldialogs.cpp162
-rw-r--r--src/ui/dialog/ocaldialogs.h41
-rw-r--r--src/ui/dialog/polar-arrange-tab.cpp31
-rw-r--r--src/ui/dialog/polar-arrange-tab.h11
-rw-r--r--src/ui/dialog/spellcheck.h15
-rw-r--r--src/ui/dialog/svg-fonts-dialog.cpp5
-rw-r--r--src/ui/dialog/svg-fonts-dialog.h9
-rw-r--r--src/ui/dialog/swatches.cpp4
-rw-r--r--src/ui/dialog/symbols.cpp49
-rw-r--r--src/ui/dialog/tags.cpp4
-rw-r--r--src/ui/dialog/tags.h6
-rw-r--r--src/ui/dialog/text-edit.cpp25
-rw-r--r--src/ui/dialog/text-edit.h11
-rw-r--r--src/ui/dialog/tile.h5
-rw-r--r--src/ui/dialog/transformation.cpp102
-rw-r--r--src/ui/dialog/transformation.h4
-rw-r--r--src/ui/dialog/undo-history.cpp33
-rw-r--r--src/ui/dialog/undo-history.h18
-rw-r--r--src/ui/dialog/xml-tree.cpp18
-rw-r--r--src/ui/dialog/xml-tree.h11
-rw-r--r--src/ui/interface.cpp32
-rw-r--r--src/ui/previewholder.cpp141
-rw-r--r--src/ui/previewholder.h9
-rw-r--r--src/ui/tool/Makefile_insert30
-rw-r--r--src/ui/tools/Makefile_insert34
-rw-r--r--src/ui/tools/dropper-tool.cpp8
-rw-r--r--src/ui/tools/select-tool.cpp8
-rw-r--r--src/ui/tools/tool-base.cpp22
-rw-r--r--src/ui/view/Makefile_insert9
-rw-r--r--src/ui/widget/Makefile_insert110
-rw-r--r--src/ui/widget/addtoicon.cpp33
-rw-r--r--src/ui/widget/addtoicon.h14
-rw-r--r--src/ui/widget/anchor-selector.cpp10
-rw-r--r--src/ui/widget/anchor-selector.h12
-rw-r--r--src/ui/widget/clipmaskicon.cpp33
-rw-r--r--src/ui/widget/clipmaskicon.h13
-rw-r--r--src/ui/widget/color-icc-selector.cpp24
-rw-r--r--src/ui/widget/color-icc-selector.h8
-rw-r--r--src/ui/widget/color-notebook.cpp30
-rw-r--r--src/ui/widget/color-notebook.h9
-rw-r--r--src/ui/widget/color-picker.cpp5
-rw-r--r--src/ui/widget/color-preview.cpp26
-rw-r--r--src/ui/widget/color-preview.h6
-rw-r--r--src/ui/widget/color-scales.cpp28
-rw-r--r--src/ui/widget/color-scales.h8
-rw-r--r--src/ui/widget/color-slider.cpp122
-rw-r--r--src/ui/widget/color-slider.h18
-rw-r--r--src/ui/widget/color-wheel-selector.cpp48
-rw-r--r--src/ui/widget/color-wheel-selector.h12
-rw-r--r--src/ui/widget/dock-item.cpp8
-rw-r--r--src/ui/widget/dock-item.h4
-rw-r--r--src/ui/widget/dock.cpp12
-rw-r--r--src/ui/widget/highlight-picker.cpp33
-rw-r--r--src/ui/widget/highlight-picker.h14
-rw-r--r--src/ui/widget/imagetoggler.cpp33
-rw-r--r--src/ui/widget/imagetoggler.h14
-rw-r--r--src/ui/widget/insertordericon.cpp32
-rw-r--r--src/ui/widget/insertordericon.h13
-rw-r--r--src/ui/widget/layertypeicon.cpp33
-rw-r--r--src/ui/widget/layertypeicon.h14
-rw-r--r--src/ui/widget/licensor.cpp8
-rw-r--r--src/ui/widget/notebook-page.cpp12
-rw-r--r--src/ui/widget/notebook-page.h13
-rw-r--r--src/ui/widget/page-sizer.cpp43
-rw-r--r--src/ui/widget/page-sizer.h26
-rw-r--r--src/ui/widget/panel.cpp6
-rw-r--r--src/ui/widget/panel.h18
-rw-r--r--src/ui/widget/point.cpp4
-rw-r--r--src/ui/widget/point.h4
-rw-r--r--src/ui/widget/preferences-widget.cpp80
-rw-r--r--src/ui/widget/preferences-widget.h25
-rw-r--r--src/ui/widget/random.cpp4
-rw-r--r--src/ui/widget/random.h4
-rw-r--r--src/ui/widget/scalar.cpp10
-rw-r--r--src/ui/widget/scalar.h4
-rw-r--r--src/ui/widget/selected-style.cpp45
-rw-r--r--src/ui/widget/selected-style.h15
-rw-r--r--src/ui/widget/spin-scale.cpp30
-rw-r--r--src/ui/widget/spin-scale.h25
-rw-r--r--src/ui/widget/spin-slider.cpp61
-rw-r--r--src/ui/widget/spin-slider.h18
-rw-r--r--src/ui/widget/spinbutton.h4
-rw-r--r--src/ui/widget/style-swatch.cpp23
-rw-r--r--src/ui/widget/style-swatch.h8
-rw-r--r--src/ui/widget/tolerance-slider.cpp10
-rw-r--r--src/ui/widget/tolerance-slider.h10
-rw-r--r--src/util/Makefile_insert49
-rw-r--r--src/util/unordered-containers.h46
-rw-r--r--src/verbs.cpp5
-rw-r--r--src/verbs.h1
-rw-r--r--src/widgets/CMakeLists.txt88
-rw-r--r--src/widgets/Makefile_insert123
-rw-r--r--src/widgets/arc-toolbar.cpp3
-rw-r--r--src/widgets/box3d-toolbar.cpp2
-rw-r--r--src/widgets/button.cpp29
-rw-r--r--src/widgets/calligraphy-toolbar.cpp1
-rw-r--r--src/widgets/connector-toolbar.cpp3
-rw-r--r--src/widgets/dash-selector.cpp14
-rw-r--r--src/widgets/dash-selector.h5
-rw-r--r--src/widgets/desktop-widget.cpp181
-rw-r--r--src/widgets/dropper-toolbar.cpp2
-rw-r--r--src/widgets/eek-preview.cpp148
-rw-r--r--src/widgets/ege-adjustment-action.cpp14
-rw-r--r--src/widgets/ege-output-action.cpp6
-rw-r--r--src/widgets/ege-select-one-action.cpp32
-rw-r--r--src/widgets/eraser-toolbar.cpp4
-rw-r--r--src/widgets/font-selector.cpp33
-rw-r--r--src/widgets/gimp/CMakeLists.txt13
-rw-r--r--src/widgets/gimp/gimpcolorwheel.c (renamed from src/ui/widget/gimpcolorwheel.c)137
-rw-r--r--src/widgets/gimp/gimpcolorwheel.h (renamed from src/ui/widget/gimpcolorwheel.h)0
-rw-r--r--src/widgets/gimp/gimpspinscale.c (renamed from src/ui/widget/gimpspinscale.c)260
-rw-r--r--src/widgets/gimp/gimpspinscale.h (renamed from src/ui/widget/gimpspinscale.h)0
-rw-r--r--src/widgets/gimp/ruler.cpp (renamed from src/widgets/ruler.cpp)187
-rw-r--r--src/widgets/gimp/ruler.h (renamed from src/widgets/ruler.h)0
-rw-r--r--src/widgets/gradient-image.cpp45
-rw-r--r--src/widgets/gradient-selector.cpp13
-rw-r--r--src/widgets/gradient-selector.h8
-rw-r--r--src/widgets/gradient-toolbar.cpp4
-rw-r--r--src/widgets/gradient-vector.cpp65
-rw-r--r--src/widgets/gradient-vector.h8
-rw-r--r--src/widgets/icon.cpp51
-rw-r--r--src/widgets/ink-action.cpp482
-rw-r--r--src/widgets/ink-action.h124
-rw-r--r--src/widgets/ink-comboboxentry-action.cpp14
-rw-r--r--src/widgets/ink-radio-action.cpp185
-rw-r--r--src/widgets/ink-radio-action.h52
-rw-r--r--src/widgets/ink-toggle-action.cpp221
-rw-r--r--src/widgets/ink-toggle-action.h53
-rw-r--r--src/widgets/ink-tool-menu-action.cpp49
-rw-r--r--src/widgets/ink-tool-menu-action.h52
-rw-r--r--src/widgets/lpe-toolbar.cpp3
-rw-r--r--src/widgets/measure-toolbar.cpp3
-rw-r--r--src/widgets/mesh-toolbar.cpp4
-rw-r--r--src/widgets/node-toolbar.cpp3
-rw-r--r--src/widgets/paint-selector.cpp54
-rw-r--r--src/widgets/paint-selector.h8
-rw-r--r--src/widgets/pencil-toolbar.cpp4
-rw-r--r--src/widgets/select-toolbar.cpp9
-rw-r--r--src/widgets/sp-attribute-widget.cpp27
-rw-r--r--src/widgets/sp-attribute-widget.h9
-rw-r--r--src/widgets/sp-color-selector.cpp6
-rw-r--r--src/widgets/sp-color-selector.h9
-rw-r--r--src/widgets/sp-widget.cpp30
-rw-r--r--src/widgets/sp-xmlview-attr-list.cpp19
-rw-r--r--src/widgets/sp-xmlview-content.cpp19
-rw-r--r--src/widgets/sp-xmlview-tree.cpp20
-rw-r--r--src/widgets/spray-toolbar.cpp3
-rw-r--r--src/widgets/spw-utilities.cpp69
-rw-r--r--src/widgets/spw-utilities.h12
-rw-r--r--src/widgets/star-toolbar.cpp3
-rw-r--r--src/widgets/stroke-style.cpp60
-rw-r--r--src/widgets/stroke-style.h11
-rw-r--r--src/widgets/text-toolbar.cpp22
-rw-r--r--src/widgets/toolbox.cpp56
-rw-r--r--src/widgets/tweak-toolbar.cpp3
-rw-r--r--src/xml/Makefile_insert51
307 files changed, 1133 insertions, 22318 deletions
diff --git a/src/2geom/Makefile_insert b/src/2geom/Makefile_insert
deleted file mode 100644
index 4d41de297..000000000
--- a/src/2geom/Makefile_insert
+++ /dev/null
@@ -1,131 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-2geom/all: 2geom/lib2geom.a
-
-2geom/clean:
- rm -f 2geom/lib2geom.a $(2geom_lib2geom_a_OBJECTS)
-
-2geom_lib2geom_a_SOURCES = \
- 2geom/2geom.h \
- 2geom/affine.cpp \
- 2geom/affine.h \
- 2geom/angle.h \
- 2geom/basic-intersection.cpp \
- 2geom/basic-intersection.h \
- 2geom/bezier-clipping.cpp \
- 2geom/bezier-curve.cpp \
- 2geom/bezier-curve.h \
- 2geom/bezier.cpp \
- 2geom/bezier.h \
- 2geom/bezier-to-sbasis.h \
- 2geom/bezier-utils.cpp \
- 2geom/bezier-utils.h \
- 2geom/cairo-path-sink.cpp \
- 2geom/cairo-path-sink.h \
- 2geom/choose.h \
- 2geom/circle.cpp \
- 2geom/circle.h \
- 2geom/circulator.h \
- 2geom/CMakeLists.txt \
- 2geom/concepts.h \
- 2geom/conicsec.cpp \
- 2geom/conicsec.h \
- 2geom/conic_section_clipper_cr.h \
- 2geom/conic_section_clipper.h \
- 2geom/conic_section_clipper_impl.cpp \
- 2geom/conic_section_clipper_impl.h \
- 2geom/convex-hull.cpp \
- 2geom/convex-hull.h \
- 2geom/coord.cpp \
- 2geom/coord.h \
- 2geom/crossing.cpp \
- 2geom/crossing.h \
- 2geom/curve.cpp \
- 2geom/curve.h \
- 2geom/curves.h \
- 2geom/d2.h \
- 2geom/d2-sbasis.cpp \
- 2geom/ellipse.cpp \
- 2geom/ellipse.h \
- 2geom/elliptical-arc.cpp \
- 2geom/elliptical-arc.h \
- 2geom/elliptical-arc-from-sbasis.cpp \
- 2geom/exception.h \
- 2geom/forward.h \
- 2geom/generic-interval.h \
- 2geom/generic-rect.h \
- 2geom/geom.cpp \
- 2geom/geom.h \
- 2geom/intersection.h \
- 2geom/intersection-graph.cpp \
- 2geom/intersection-graph.h \
- 2geom/interval.h \
- 2geom/int-interval.h \
- 2geom/int-point.h \
- 2geom/int-rect.h \
- 2geom/linear.h \
- 2geom/line.cpp \
- 2geom/line.h \
- 2geom/math-utils.h \
- 2geom/nearest-time.cpp \
- 2geom/nearest-time.h \
- 2geom/ord.h \
- 2geom/path.cpp \
- 2geom/path.h \
- 2geom/path-intersection.cpp \
- 2geom/path-intersection.h \
- 2geom/path-sink.cpp \
- 2geom/path-sink.h \
- 2geom/pathvector.cpp \
- 2geom/pathvector.h \
- 2geom/piecewise.cpp \
- 2geom/piecewise.h \
- 2geom/point.cpp \
- 2geom/point.h \
- 2geom/polynomial.cpp \
- 2geom/polynomial.h \
- 2geom/ray.h \
- 2geom/rect.cpp \
- 2geom/rect.h \
- 2geom/recursive-bezier-intersection.cpp \
- 2geom/sbasis-2d.cpp \
- 2geom/sbasis-2d.h \
- 2geom/sbasis.cpp \
- 2geom/sbasis-curve.h \
- 2geom/sbasis-geometric.cpp \
- 2geom/sbasis-geometric.h \
- 2geom/sbasis.h \
- 2geom/sbasis-math.cpp \
- 2geom/sbasis-math.h \
- 2geom/sbasis-poly.cpp \
- 2geom/sbasis-poly.h \
- 2geom/sbasis-roots.cpp \
- 2geom/sbasis-to-bezier.cpp \
- 2geom/sbasis-to-bezier.h \
- 2geom/solve-bezier.cpp \
- 2geom/solve-bezier-one-d.cpp \
- 2geom/solve-bezier-parametric.cpp \
- 2geom/solver.h \
- 2geom/svg-path-parser.cpp \
- 2geom/svg-path-parser.h \
- 2geom/svg-path-writer.cpp \
- 2geom/svg-path-writer.h \
- 2geom/sweep-bounds.cpp \
- 2geom/sweep-bounds.h \
- 2geom/sweeper.h \
- 2geom/toposweep.cpp \
- 2geom/toposweep.h \
- 2geom/transforms.cpp \
- 2geom/transforms.h \
- 2geom/utils.cpp \
- 2geom/utils.h \
- 2geom/numeric/fitting-model.h \
- 2geom/numeric/fitting-tool.h \
- 2geom/numeric/linear_system.h \
- 2geom/numeric/matrix.cpp \
- 2geom/numeric/matrix.h \
- 2geom/numeric/symmetric-matrix-fs.h \
- 2geom/numeric/symmetric-matrix-fs-operation.h \
- 2geom/numeric/symmetric-matrix-fs-trace.h \
- 2geom/numeric/vector.h
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f9ddaa148..4ba738635 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -469,7 +469,6 @@ add_subdirectory(libavoid)
add_subdirectory(libcola)
add_subdirectory(libcroco)
add_subdirectory(inkgc)
-add_subdirectory(libgdl)
add_subdirectory(libuemf)
add_subdirectory(libvpsc)
add_subdirectory(livarot)
@@ -540,11 +539,6 @@ set(INKSCAPE_TARGET_LIBS
${INKSCAPE_LIBS}
)
-if (NOT "${WITH_EXT_GDL}")
- # Insert it at the beginning of the list as the windows build fails otherwise
- list (INSERT INKSCAPE_TARGET_LIBS 0 "gdl_LIB")
-endif()
-
# Build everything except main and inkview.c in a shared library.
add_library(inkscape_base SHARED ${inkscape_SRC} ${sp_SRC})
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 087a727de..000000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,289 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-# ################################################
-# G L O B A L
-# ################################################
-
-# Should work in either automake1.7 or 1.8, but 1.6 doesn't
-# handle foo/libfoo_a_CPPFLAGS properly (if at all).
-# Update: We now avoid setting foo/libfoo_a_CPPFLAGS,
-# so perhaps 1.6 will work.
-AUTOMAKE_OPTIONS = 1.7 subdir-objects
-
-# Executables compiled by "make" and installed by "make install"
-bin_PROGRAMS = inkscape inkview
-
-# Libraries which should be compiled by "make" but not installed.
-# Use this only for libraries that are really standalone, rather than for
-# source tree subdirectories.
-
-if !WITH_EXT_GDL
-internal_GDL = libgdl/libgdl.a
-endif
-
-
-noinst_LIBRARIES = \
- libcroco/libcroco.a \
- libavoid/libavoid.a \
- $(internal_GDL) \
- libuemf/libuemf.a \
- libcola/libcola.a \
- inkgc/libinkgc.a \
- libvpsc/libvpsc.a \
- livarot/libvarot.a \
- 2geom/lib2geom.a \
- libdepixelize/libdepixelize.a \
- util/libutil.a \
- libinkversion.a
-# libinkscape.a
-
-all_libs = \
- $(noinst_LIBRARIES) \
- $(INKSCAPE_LIBS) \
- $(INKSCAPE_CXX_DEPS_LIBS) \
- $(EXIF_LIBS) \
- $(GNOME_VFS_LIBS) \
- $(XFT_LIBS) \
- $(FREETYPE_LIBS) \
- $(kdeldadd) \
- $(win32ldflags) \
- $(LIBWPG_LIBS) \
- $(LIBVISIO_LIBS) \
- $(LIBCDR_LIBS) \
- $(DBUS_LIBS) \
- $(GDL_LIBS) \
- $(IMAGEMAGICK_LIBS) \
- $(X11_LIBS)
-
-# Add sources common for Inkscape and Inkview to this variable.
-ink_common_sources =
-# Add Inkscape-only sources here.
-inkscape_SOURCES =
-# Add Inkview-only sources here.
-inkview_SOURCES =
-# Add sources that are built from meta files
-BUILT_SOURCES =
-# Extra files to distribute
-EXTRA_DIST =
-
-# C++-specific flags defined here
-AM_CXXFLAGS = \
- $(INKSCAPE_CXX_DEPS_CFLAGS)
-
-AM_CPPFLAGS = \
- -I$(top_srcdir)/cxxtest \
- -I$(builddir)/extension/dbus \
- $(EXIF_CFLAGS) \
- $(FREETYPE_CFLAGS) \
- $(GNOME_PRINT_CFLAGS) \
- $(GNOME_VFS_CFLAGS) \
- $(IMAGEMAGICK_CFLAGS) \
- $(LIBWPG_CFLAGS) \
- $(LIBVISIO_CFLAGS) \
- $(LIBCDR_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(GDL_CFLAGS) \
- $(XFT_CFLAGS) \
- $(LCMS_CFLAGS) \
- $(POPPLER_CFLAGS) \
- $(POPPLER_GLIB_CFLAGS) \
- -DPOTRACE=\"potrace\" \
- $(INKSCAPE_CFLAGS) \
- $(WIN32_CFLAGS) \
- $(X11_CFLAGS)
-
-CXXTEST_TEMPLATE = $(srcdir)/cxxtest-template.tpl
-CXXTESTGENFLAGS = --root --have-eh --template=$(CXXTEST_TEMPLATE)
-CXXTESTGEN = $(top_srcdir)/cxxtest/cxxtestgen.pl $(CXXTESTGENFLAGS)
-# Add test cases to this variable
-CXXTEST_TESTSUITES =
-
-# ################################################
-#
-# E X T R A
-#
-# ################################################
-
-if PLATFORM_WIN32
-win32_sources = winmain.cpp registrytool.cpp registrytool.h
-win32ldflags = -lcomdlg32 -lmscms
-mwindows = -mwindows
-endif
-
-# Include all partial makefiles from subdirectories
-include Makefile_insert
-include display/Makefile_insert
-include extension/Makefile_insert
-include extension/dbus/Makefile_insert
-include extension/implementation/Makefile_insert
-include extension/internal/Makefile_insert
-include filters/Makefile_insert
-include helper/Makefile_insert
-include io/Makefile_insert
-include libcroco/Makefile_insert
-include inkgc/Makefile_insert
-include libgdl/Makefile_insert
-include libnrtype/Makefile_insert
-include libavoid/Makefile_insert
-include livarot/Makefile_insert
-include live_effects/Makefile_insert
-include live_effects/parameter/Makefile_insert
-include libvpsc/Makefile_insert
-include libcola/Makefile_insert
-include libuemf/Makefile_insert
-include svg/Makefile_insert
-include widgets/Makefile_insert
-include debug/Makefile_insert
-include xml/Makefile_insert
-include ui/Makefile_insert
-include ui/cache/Makefile_insert
-include ui/dialog/Makefile_insert
-include ui/tool/Makefile_insert
-include ui/tools/Makefile_insert
-include ui/view/Makefile_insert
-include ui/widget/Makefile_insert
-include util/Makefile_insert
-include trace/Makefile_insert
-include 2geom/Makefile_insert
-include libdepixelize/Makefile_insert
-
-# Extra files not mentioned as sources to include in the source tarball
-EXTRA_DIST += \
- 2geom/makefile.in \
- debug/makefile.in \
- display/makefile.in \
- extension/implementation/makefile.in \
- extension/internal/makefile.in \
- extension/makefile.in \
- filters/makefile.in \
- helper/makefile.in \
- io/makefile.in \
- libavoid/makefile.in \
- libcroco/makefile.in \
- libgdl/makefile.in \
- libnrtype/makefile.in \
- libuemf/makefile.in \
- livarot/makefile.in \
- live_effects/makefile.in \
- live_effects/parameter/makefile.in \
- svg/makefile.in \
- trace/makefile.in \
- ui/cache/makefile.in \
- ui/dialog/makefile.in \
- ui/makefile.in \
- ui/view/makefile.in \
- ui/widget/makefile.in \
- util/makefile.in \
- util/makefile.in \
- widgets/makefile.in \
- xml/makefile.in \
- \
- $(top_srcdir)/Doxyfile \
- extension/internal/emf-inout.cpp \
- extension/internal/emf-inout.h \
- extension/internal/emf-print.cpp \
- extension/internal/emf-print.h \
- helper/sp-marshal.list \
- io/crystalegg.xml \
- io/doc2html.xsl \
- show-preview.bmp \
- winconsole.cpp \
- libdepixelize/makefile.in \
- $(CXXTEST_TEMPLATE)
-
-# Extra files to remove when doing "make distclean"
-DISTCLEANFILES = \
- helper/sp-marshal.cpp \
- helper/sp-marshal.h \
- inkscape-version.cpp
-
-# ################################################
-# B I N A R I E S
-# ################################################
-
-# this should speed up the build
-#libinkscape_a_SOURCES = $(ink_common_sources)
-
-inkscape_SOURCES += main.cpp $(ink_common_sources) $(win32_sources)
-inkscape_LDADD = $(all_libs)
-inkscape_LDFLAGS = $(kdeldflags) $(mwindows)
-
-inkview_SOURCES += inkview.cpp $(ink_common_sources) $(win32_sources)
-inkview_LDADD = $(all_libs)
-inkview_LDFLAGS = $(mwindows)
-
-# ################################################
-# VERSION REPORTING
-# ################################################
-
-libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h
-
-if USE_BZR_VERSION
-inkscape_version_deps = $(top_srcdir)/.bzr/branch/last-revision
-endif
-
-# If this is an BZR snapshot build, regenerate this file every time
-# someone updates the BZR working directory.
-inkscape-version.cpp: $(inkscape_version_deps)
- VER_PREFIX="$(VERSION)";\
- VER_BZRREV=" r`bzr revno --tree $(top_srcdir)`"; \
- if test ! -z "`bzr status -S -V $(srcdir)`"; then \
- VER_CUSTOM=" custom"; \
- fi; \
- VERSION="$$VER_PREFIX$$VER_BZRREV$$VER_CUSTOM"; \
- echo "namespace Inkscape { " \
- "char const *version_string = \"$$VERSION\"; " \
- "}" > inkscape-version.new.cpp; \
- if cmp -s inkscape-version.new.cpp inkscape-version.cpp; then \
- rm inkscape-version.new.cpp; \
- else \
- mv inkscape-version.new.cpp inkscape-version.cpp; \
- fi; \
- echo $$VERSION
-
-# #################################
-# ## TESTING STUFF (make check) ###
-# #################################
-
-# List of all programs that should be built before testing. Note that this is
-# different from TESTS, because some tests can be scripts that don't
-# need to be built. There should be one test program per directory.
-# automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items:
-# TESTS items can be scripts etc.
-check_PROGRAMS = cxxtests
-
-# streamtest is unfinished and can't handle the relocations done during
-# "make distcheck".
-
-# List of all tests to be run.
-TESTS = $(check_PROGRAMS)
-check-local:
- $(top_srcdir)/share/extensions/test/run-all-extension-tests
-
-# FIXME: Currently, a number of cxxtest tests fail. These should be fixed and
-# the XFAIL_TESTS build target should be removed.
-# See the following Launchpad bugs:
-#
-# LP #1208013 <cxxtest: curve-test.h fails>
-# LP #1208005 <cxxtest: svg-path-geom-test.h fails>
-# LP #1207502 <cxxtest: svg-affine-test.h fails>
-
-XFAIL_TESTS = $(check_PROGRAMS)
-
-# including the testsuites here ensures that they get distributed
-cxxtests_SOURCES = cxxtests.cpp $(CXXTEST_TESTSUITES) $(ink_common_sources) $(win32_sources)
-cxxtests_LDADD = $(all_libs)
-
-cxxtests.cpp: $(CXXTEST_TESTSUITES) $(CXXTEST_TEMPLATE)
- $(CXXTESTGEN) -o cxxtests.cpp $(CXXTEST_TESTSUITES)
-
-# ################################################
-# D I S T
-# ################################################
-
-dist-hook:
- mkdir $(distdir)/pixmaps
- cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
-
-distclean-local:
- rm -f cxxtests.xml cxxtests.log
diff --git a/src/Makefile_insert b/src/Makefile_insert
deleted file mode 100644
index 55fde4dd2..000000000
--- a/src/Makefile_insert
+++ /dev/null
@@ -1,251 +0,0 @@
-## Makefile.am fragment, included by src/Makefile.am.
-
-ink_common_sources += \
- util/find-last-if.h \
- util/longest-common-suffix.h \
- remove-last.h \
- attributes.cpp attributes.h \
- attribute-rel-svg.cpp attribute-rel-svg.h \
- attribute-rel-css.cpp attribute-rel-css.h \
- attribute-rel-util.cpp attribute-rel-util.h \
- attribute-sort-util.cpp attribute-sort-util.h \
- axis-manip.cpp axis-manip.h \
- bad-uri-exception.h \
- box3d.cpp box3d.h \
- box3d-side.cpp box3d-side.h \
- brokenimage.xpm \
- cms-color-types.h \
- cms-system.h \
- color.cpp color.h \
- color-profile.cpp color-profile.h \
- color-profile-cms-fns.h \
- color-rgba.h \
- colorspace.h \
- composite-undo-stack-observer.cpp \
- composite-undo-stack-observer.h \
- conditions.cpp conditions.h \
- conn-avoid-ref.cpp conn-avoid-ref.h \
- console-output-undo-observer.h console-output-undo-observer.cpp \
- context-fns.cpp context-fns.h \
- decimal-round.h \
- desktop.cpp desktop.h \
- desktop-events.cpp desktop-events.h \
- desktop-style.cpp desktop-style.h \
- device-manager.cpp device-manager.h \
- dir-util.cpp dir-util.h \
- document.cpp document.h document-private.h \
- document-subset.cpp document-subset.h \
- document-undo.cpp document-undo.h \
- ege-color-prof-tracker.cpp ege-color-prof-tracker.h \
- enums.h \
- event-log.cpp event-log.h event.h \
- extract-uri.cpp extract-uri.h \
- file.cpp file.h \
- fill-or-stroke.h \
- filter-chemistry.cpp filter-chemistry.h \
- filter-enums.cpp filter-enums.h \
- gc-anchored.cpp gc-anchored.h \
- gc-finalized.cpp gc-finalized.h \
- gradient-chemistry.cpp gradient-chemistry.h \
- gradient-drag.cpp gradient-drag.h \
- graphlayout.cpp graphlayout.h \
- guide-snapper.cpp guide-snapper.h \
- help.cpp help.h \
- helper-fns.h \
- helper/pixbuf-ops.cpp \
- helper/pixbuf-ops.h \
- icon-size.h \
- id-clash.cpp id-clash.h \
- inkscape.cpp inkscape.h \
- isinf.h \
- knot.cpp knot.h \
- knot-enums.h \
- knotholder.cpp knotholder.h \
- knot-holder-entity.h knot-holder-entity.cpp \
- knot-ptr.h knot-ptr.cpp \
- layer-fns.cpp layer-fns.h \
- layer-manager.cpp layer-manager.h \
- layer-model.cpp layer-model.h \
- line-geometry.cpp line-geometry.h \
- line-snapper.cpp line-snapper.h \
- macros.h \
- main-cmdlineact.cpp main-cmdlineact.h \
- media.cpp media.h \
- menus-skeleton.h \
- message-context.cpp message-context.h \
- message.h \
- message-stack.cpp message-stack.h \
- mod360.cpp mod360.h \
- object-hierarchy.cpp object-hierarchy.h \
- object-snapper.cpp object-snapper.h \
- path-chemistry.cpp path-chemistry.h \
- path-prefix.h \
- persp3d.cpp persp3d.h \
- persp3d-reference.cpp persp3d-reference.h \
- perspective-line.cpp perspective-line.h \
- preferences.cpp preferences.h \
- preferences-skeleton.h \
- prefix.cpp prefix.h \
- print.cpp print.h \
- profile-manager.cpp profile-manager.h \
- proj_pt.cpp proj_pt.h \
- pure-transform.cpp pure-transform.h \
- removeoverlap.cpp removeoverlap.h \
- rdf.cpp rdf.h \
- resource-manager.cpp resource-manager.h \
- require-config.h \
- round.h \
- rubberband.cpp rubberband.h \
- satisfied-guide-cns.cpp satisfied-guide-cns.h \
- selcue.cpp selcue.h \
- selection-chemistry.cpp selection-chemistry.h \
- selection.cpp selection.h \
- selection-describer.cpp selection-describer.h \
- seltrans.cpp seltrans.h \
- seltrans-handles.cpp seltrans-handles.h \
- shortcuts.cpp shortcuts.h \
- snap.cpp snap.h \
- snap-enums.h snap-candidate.h \
- snapped-curve.cpp snapped-curve.h \
- snapped-line.cpp snapped-line.h \
- snapped-point.cpp snapped-point.h \
- snapper.cpp snapper.h \
- snap-preferences.cpp snap-preferences.h \
- sp-anchor.cpp sp-anchor.h \
- sp-clippath.cpp sp-clippath.h \
- sp-conn-end.cpp sp-conn-end.h \
- sp-conn-end-pair.cpp sp-conn-end-pair.h \
- sp-cursor.cpp sp-cursor.h \
- sp-defs.cpp sp-defs.h \
- sp-desc.cpp sp-desc.h \
- sp-ellipse.cpp sp-ellipse.h \
- sp-factory.h sp-factory.cpp \
- sp-filter.cpp sp-filter.h number-opt-number.h \
- sp-filter-primitive.cpp sp-filter-primitive.h \
- sp-filter-reference.cpp sp-filter-reference.h \
- sp-filter-units.h \
- sp-flowdiv.h sp-flowdiv.cpp \
- sp-flowregion.h sp-flowregion.cpp \
- sp-flowtext.h sp-flowtext.cpp \
- sp-font.cpp sp-font.h \
- sp-font-face.cpp sp-font-face.h \
- sp-glyph.cpp sp-glyph.h \
- sp-glyph-kerning.cpp sp-glyph-kerning.h \
- sp-gradient.cpp sp-gradient.h \
- sp-gradient-reference.cpp sp-gradient-reference.h \
- sp-gradient-spread.h \
- sp-gradient-units.h \
- sp-gradient-vector.h \
- sp-guide-attachment.h \
- sp-guide-constraint.h \
- sp-guide.cpp sp-guide.h \
- sp-hatch.cpp sp-hatch.h \
- sp-hatch-path.cpp sp-hatch-path.h \
- sp-image.cpp sp-image.h \
- sp-item.cpp sp-item.h \
- sp-item-group.cpp sp-item-group.h \
- sp-item-notify-moveto.cpp sp-item-notify-moveto.h \
- sp-item-rm-unsatisfied-cns.cpp sp-item-rm-unsatisfied-cns.h \
- sp-item-transform.cpp sp-item-transform.h \
- sp-item-update-cns.cpp sp-item-update-cns.h \
- sp-linear-gradient.cpp sp-linear-gradient.h \
- sp-line.cpp sp-line.h \
- splivarot.cpp splivarot.h \
- sp-lpe-item.cpp sp-lpe-item.h \
- sp-marker.cpp sp-marker.h \
- sp-marker-loc.h \
- sp-mask.cpp sp-mask.h \
- sp-metadata.cpp sp-metadata.h \
- sp-mesh.cpp sp-mesh.h \
- sp-mesh-array.cpp sp-mesh-array.h \
- sp-mesh-patch.cpp sp-mesh-patch.h \
- sp-mesh-row.cpp sp-mesh-row.h \
- sp-missing-glyph.cpp sp-missing-glyph.h \
- sp-namedview.cpp sp-namedview.h \
- sp-object.cpp sp-object.h \
- sp-object-group.cpp sp-object-group.h \
- sp-offset.cpp sp-offset.h \
- sp-paint-server.cpp sp-paint-server.h \
- sp-paint-server-reference.h \
- sp-path.cpp sp-path.h \
- sp-pattern.cpp sp-pattern.h \
- sp-polygon.cpp sp-polygon.h \
- sp-polyline.cpp sp-polyline.h \
- sp-radial-gradient.cpp sp-radial-gradient.h \
- sp-rect.cpp sp-rect.h \
- sp-root.cpp sp-root.h \
- sp-script.cpp sp-script.h \
- sp-shape.cpp sp-shape.h \
- sp-solid-color.cpp sp-solid-color.h \
- sp-spiral.cpp sp-spiral.h \
- sp-star.cpp sp-star.h \
- sp-stop.cpp sp-stop.h \
- sp-string.cpp sp-string.h \
- sp-style-elem.cpp sp-style-elem.h \
- sp-switch.cpp sp-switch.h \
- sp-symbol.cpp sp-symbol.h \
- sp-tag.cpp sp-tag.h \
- sp-tag-use.cpp sp-tag-use.h \
- sp-tag-use-reference.cpp sp-tag-use-reference.h \
- sp-text.cpp sp-text.h \
- sp-textpath.h \
- sp-title.cpp sp-title.h \
- sp-tref.cpp sp-tref.h \
- sp-tref-reference.cpp sp-tref-reference.h \
- sp-tspan.cpp sp-tspan.h \
- sp-use.cpp sp-use.h \
- sp-use-reference.cpp sp-use-reference.h \
- streq.h \
- strneq.h \
- style.cpp style.h \
- style-enums.h \
- style-internal.cpp style-internal.h \
- svg-profile.h \
- svg-view.cpp svg-view.h \
- svg-view-widget.cpp svg-view-widget.h \
- syseq.h \
- text-chemistry.cpp text-chemistry.h \
- text-editing.cpp text-editing.h \
- text-tag-attributes.h \
- transf_mat_3x4.cpp transf_mat_3x4.h \
- unclump.cpp unclump.h \
- undo-stack-observer.h \
- unicoderange.cpp unicoderange.h \
- uri.cpp uri.h \
- uri-references.cpp uri-references.h \
- vanishing-point.cpp vanishing-point.h \
- verbs.cpp verbs.h \
- version.cpp version.h \
- viewbox.cpp viewbox.h
-
-# Additional dependencies
-
-desktop.$(OBJEXT): helper/sp-marshal.h
-document.$(OBJEXT): helper/sp-marshal.h
-inkscape.$(OBJEXT): helper/sp-marshal.h
-knot.$(OBJEXT): helper/sp-marshal.h
-selection.$(OBJEXT): helper/sp-marshal.h
-sp-object.$(OBJEXT): helper/sp-marshal.h
-view.$(OBJEXT): helper/sp-marshal.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
- $(srcdir)/MultiPrinter.h \
- $(srcdir)/TRPIFormatter.h \
- $(srcdir)/PylogFormatter.h \
- $(srcdir)/attributes-test.h \
- $(srcdir)/color-profile-test.h \
- $(srcdir)/dir-util-test.h \
- $(srcdir)/extract-uri-test.h \
- $(srcdir)/marker-test.h \
- $(srcdir)/mod360-test.h \
- $(srcdir)/object-test.h \
- $(srcdir)/preferences-test.h \
- $(srcdir)/round-test.h \
- $(srcdir)/sp-gradient-test.h \
- $(srcdir)/sp-style-elem-test.h \
- $(srcdir)/style-test.h \
- $(srcdir)/test-helpers.h \
- $(srcdir)/verbs-test.h
diff --git a/src/color-profile.cpp b/src/color-profile.cpp
index e60fa8440..51b1505c5 100644
--- a/src/color-profile.cpp
+++ b/src/color-profile.cpp
@@ -4,11 +4,7 @@
#define noDEBUG_LCMS
-#if WITH_GTKMM_3_0
-# include <gdkmm/rgba.h>
-#else
-# include <gdkmm/color.h>
-#endif
+#include <gdkmm/rgba.h>
#include <glib/gstdio.h>
#include <fcntl.h>
@@ -997,11 +993,7 @@ void loadProfiles()
static bool gamutWarn = false;
-#if WITH_GTKMM_3_0
static Gdk::RGBA lastGamutColor("#808080");
-#else
-static Gdk::Color lastGamutColor("#808080");
-#endif
static bool lastBPC = false;
#if defined(cmsFLAGS_PRESERVEBLACK)
@@ -1147,12 +1139,7 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayTransform()
bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack");
#endif //defined(cmsFLAGS_PRESERVEBLACK)
Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
-
-#if WITH_GTKMM_3_0
Gdk::RGBA gamutColor( colorStr.empty() ? "#808080" : colorStr );
-#else
- Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr );
-#endif
if ( (warn != gamutWarn)
|| (lastIntent != intent)
@@ -1184,15 +1171,9 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayTransform()
if ( gamutWarn ) {
dwFlags |= cmsFLAGS_GAMUTCHECK;
-#if WITH_GTKMM_3_0
- gushort gamutColor_r = gamutColor.get_red_u();
- gushort gamutColor_g = gamutColor.get_green_u();
- gushort gamutColor_b = gamutColor.get_blue_u();
-#else
- gushort gamutColor_r = gamutColor.get_red();
- gushort gamutColor_g = gamutColor.get_green();
- gushort gamutColor_b = gamutColor.get_blue();
-#endif
+ auto gamutColor_r = gamutColor.get_red_u();
+ auto gamutColor_g = gamutColor.get_green_u();
+ auto gamutColor_b = gamutColor.get_blue_u();
#if HAVE_LIBLCMS1
cmsSetAlarmCodes(gamutColor_r >> 8, gamutColor_g >> 8, gamutColor_b >> 8);
@@ -1333,12 +1314,7 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayPer( Glib::ustring const& id )
bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack");
#endif //defined(cmsFLAGS_PRESERVEBLACK)
Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
-
-#if WITH_GTKMM_3_0
Gdk::RGBA gamutColor( colorStr.empty() ? "#808080" : colorStr );
-#else
- Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr );
-#endif
if ( (warn != gamutWarn)
|| (lastIntent != intent)
@@ -1368,16 +1344,9 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayPer( Glib::ustring const& id )
cmsUInt32Number dwFlags = cmsFLAGS_SOFTPROOFING;
if ( gamutWarn ) {
dwFlags |= cmsFLAGS_GAMUTCHECK;
-
-#if WITH_GTKMM_3_0
- gushort gamutColor_r = gamutColor.get_red_u();
- gushort gamutColor_g = gamutColor.get_green_u();
- gushort gamutColor_b = gamutColor.get_blue_u();
-#else
- gushort gamutColor_r = gamutColor.get_red();
- gushort gamutColor_g = gamutColor.get_green();
- gushort gamutColor_b = gamutColor.get_blue();
-#endif
+ auto gamutColor_r = gamutColor.get_red_u();
+ auto gamutColor_g = gamutColor.get_green_u();
+ auto gamutColor_b = gamutColor.get_blue_u();
#if HAVE_LIBLCMS1
cmsSetAlarmCodes(gamutColor_r >> 8, gamutColor_g >> 8, gamutColor_b >> 8);
diff --git a/src/debug/Makefile_insert b/src/debug/Makefile_insert
deleted file mode 100644
index 47cc2b704..000000000
--- a/src/debug/Makefile_insert
+++ /dev/null
@@ -1,15 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- debug/demangle.cpp debug/demangle.h \
- debug/event.h \
- debug/event-tracker.h \
- debug/heap.cpp debug/heap.h \
- debug/gc-heap.h \
- debug/logger.cpp debug/logger.h \
- debug/log-display-config.cpp debug/log-display-config.h \
- debug/simple-event.h \
- debug/sysv-heap.cpp debug/sysv-heap.h \
- debug/gdk-event-latency-tracker.cpp debug/gdk-event-latency-tracker.h \
- debug/timestamp.cpp debug/timestamp.h
-
diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp
index b9bd949ff..1932a9864 100644
--- a/src/desktop-events.cpp
+++ b/src/desktop-events.cpp
@@ -21,9 +21,7 @@
#include "ui/dialog/guides.h"
#include "desktop-events.h"
-#if WITH_GTKMM_3_0
-# include <gdkmm/devicemanager.h>
-#endif
+#include <gdkmm/devicemanager.h>
#include <2geom/line.h>
#include <2geom/angle.h>
@@ -97,14 +95,9 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge
gint width, height;
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDevice *device = gdk_event_get_device(event);
+ auto device = gdk_event_get_device(event);
gdk_window_get_device_position(window, device, &wx, &wy, NULL);
gdk_window_get_geometry(window, NULL /*x*/, NULL /*y*/, &width, &height);
-#else
- gdk_window_get_pointer(window, &wx, &wy, NULL);
- gdk_window_get_geometry(window, NULL /*x*/, NULL /*y*/, &width, &height, NULL/*depth*/);
-#endif
Geom::Point const event_win(wx, wy);
@@ -160,7 +153,6 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge
guide = sp_guideline_new(desktop->guides, NULL, event_dt, normal);
sp_guideline_set_color(SP_GUIDELINE(guide), desktop->namedview->guidehicolor);
-#if GTK_CHECK_VERSION(3,0,0)
gdk_device_grab(device,
gtk_widget_get_window(widget),
GDK_OWNERSHIP_NONE,
@@ -168,12 +160,6 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge
(GdkEventMask)(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK ),
NULL,
event->button.time);
-#else
- gdk_pointer_grab(gtk_widget_get_window (widget), FALSE,
- (GdkEventMask)(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK ),
- NULL, NULL,
- event->button.time);
-#endif
}
break;
case GDK_MOTION_NOTIFY:
@@ -208,11 +194,7 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge
if (clicked && event->button.button == 1) {
sp_event_context_discard_delayed_snap_event(desktop->event_context);
-#if GTK_CHECK_VERSION(3,0,0)
gdk_device_ungrab(device, event->button.time);
-#else
- gdk_pointer_ungrab(event->button.time);
-#endif
Geom::Point const event_w(sp_canvas_window_to_world(dtw->canvas, event_win));
Geom::Point event_dt(desktop->w2d(event_w));
@@ -537,11 +519,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
guide_cursor = sp_cursor_new_from_xpm(cursor_select_xpm , 1, 1);
}
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(guide_cursor);
-#else
- gdk_cursor_unref(guide_cursor);
-#endif
char *guide_description = guide->description();
desktop->guidesMessageContext()->setF(Inkscape::NORMAL_MESSAGE, _("<b>Guideline</b>: %s"), guide_description);
@@ -575,11 +553,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
GdkDisplay *display = gdk_display_get_default();
GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE);
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(guide_cursor);
-#else
- gdk_cursor_unref(guide_cursor);
-#endif
ret = TRUE;
break;
}
@@ -597,11 +571,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
GdkDisplay *display = gdk_display_get_default();
GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE);
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(guide_cursor);
-#else
- gdk_cursor_unref(guide_cursor);
-#endif
break;
}
default:
@@ -624,19 +594,15 @@ static GdkInputSource lastType = GDK_SOURCE_MOUSE;
static void init_extended()
{
Glib::ustring avoidName("pad");
- Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
+ auto display = Gdk::Display::get_default();
-#if GTK_CHECK_VERSION(3,0,0)
- Glib::RefPtr<const Gdk::DeviceManager> dm = display->get_device_manager();
- std::vector< Glib::RefPtr<const Gdk::Device> > devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
-#else
- std::vector< Glib::RefPtr<const Gdk::Device> > devices = display->list_devices();
-#endif
+ auto dm = display->get_device_manager();
+ auto const devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
if ( !devices.empty() ) {
- for ( std::vector< Glib::RefPtr<const Gdk::Device> >::const_iterator dev = devices.begin(); dev != devices.end(); ++dev ) {
- Glib::ustring const devName = (*dev)->get_name();
- Gdk::InputSource devSrc = (*dev)->get_source();
+ for (auto const dev : devices) {
+ auto const devName = dev->get_name();
+ auto devSrc = dev->get_source();
if ( !devName.empty()
&& (avoidName != devName)
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 7e0953d4d..7efa3e438 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1432,11 +1432,7 @@ void SPDesktop::setWaitingCursor()
GdkDisplay *display = gdk_display_get_default();
GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(getCanvas())), waiting);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(waiting);
-#else
- gdk_cursor_unref(waiting);
-#endif
// GDK needs the flush for the cursor change to take effect
gdk_flush();
waiting_cursor = true;
diff --git a/src/device-manager.cpp b/src/device-manager.cpp
index cfb8291a0..68444fe66 100644
--- a/src/device-manager.cpp
+++ b/src/device-manager.cpp
@@ -8,16 +8,17 @@
*/
#include "device-manager.h"
+
#include <set>
#include "preferences.h"
-#include <gdkmm/display.h>
-#include <gtkmm/accelkey.h>
+
#include <glibmm/regex.h>
-#if WITH_GTKMM_3_0
-# include <gdkmm/devicemanager.h>
-#endif
+#include <gdkmm/devicemanager.h>
+#include <gdkmm/display.h>
+
+#include <gtkmm/accelkey.h>
#include <gtk/gtk.h>
@@ -47,11 +48,7 @@ static bool isValidDevice(Glib::RefPtr<Gdk::Device> device)
const bool source_matches = (device->get_source() == (*it).source);
const bool mode_matches = (device->get_mode() == (*it).mode);
const bool num_axes_matches = (device->get_n_axes() == (*it).num_axes);
-#if WITH_GTKMM_3_0
const bool num_keys_matches = (device->get_n_keys() == (*it).num_keys);
-#else
- const bool num_keys_matches = (gdk_device_get_n_keys(device->gobj()) == (*it).num_keys);
-#endif
if (name_matches && source_matches && mode_matches
&& num_axes_matches && num_keys_matches)
@@ -175,13 +172,7 @@ public:
virtual Gdk::InputMode getMode() const {return (device->get_mode());}
virtual gint getNumAxes() const {return device->get_n_axes();}
virtual bool hasCursor() const {return device->get_has_cursor();}
-
-#if WITH_GTKMM_3_0
virtual int getNumKeys() const {return device->get_n_keys();}
-#else
- virtual int getNumKeys() const {return gdk_device_get_n_keys(device->gobj());}
-#endif
-
virtual Glib::ustring getLink() const {return link;}
virtual void setLink( Glib::ustring const& link ) {this->link = link;}
virtual gint getLiveAxes() const {return liveAxes;}
@@ -326,12 +317,8 @@ DeviceManagerImpl::DeviceManagerImpl() :
{
Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gdk::DeviceManager> dm = display->get_device_manager();
- std::vector< Glib::RefPtr<Gdk::Device> > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
-#else
- std::vector< Glib::RefPtr<Gdk::Device> > devList = display->list_devices();
-#endif
+ auto dm = display->get_device_manager();
+ auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
if (fakeList.empty()) {
createFakeList();
@@ -340,24 +327,19 @@ DeviceManagerImpl::DeviceManagerImpl() :
std::set<Glib::ustring> knownIDs;
- for ( std::vector< Glib::RefPtr<Gdk::Device> >::iterator dev = devList.begin(); dev != devList.end(); ++dev ) {
-#if WITH_GTKMM_3_0
+ for (auto dev : devList) {
// GTK+ 3 has added keyboards to the list of supported devices.
- if((*dev)->get_source() != Gdk::SOURCE_KEYBOARD) {
-#endif
+ if(dev->get_source() != Gdk::SOURCE_KEYBOARD) {
#if DEBUG_VERBOSE
g_message("device: name[%s] source[0x%x] mode[0x%x] cursor[%s] axis count[%d] key count[%d]", dev->name, dev->source, dev->mode,
dev->has_cursor?"Yes":"no", dev->num_axes, dev->num_keys);
#endif
- InputDeviceImpl* device = new InputDeviceImpl(*dev, knownIDs);
+ InputDeviceImpl* device = new InputDeviceImpl(dev, knownIDs);
device->reference();
devices.push_back(Glib::RefPtr<InputDeviceImpl>(device));
-
-#if WITH_GTKMM_3_0
}
-#endif
}
}
@@ -667,12 +649,8 @@ static void createFakeList() {
// try to find the first *real* core pointer
Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gdk::DeviceManager> dm = display->get_device_manager();
- std::vector< Glib::RefPtr<Gdk::Device> > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
-#else
- std::vector< Glib::RefPtr<Gdk::Device> > devList = display->list_devices();
-#endif
+ auto dm = display->get_device_manager();
+ auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
// Set iterator to point at beginning of device list
std::vector< Glib::RefPtr<Gdk::Device> >::iterator dev = devList.begin();
@@ -689,11 +667,7 @@ static void createFakeList() {
fakeList[4].mode = device->get_mode();
fakeList[4].has_cursor = device->get_has_cursor();
fakeList[4].num_axes = device->get_n_axes();
-#if WITH_GTKMM_3_0
fakeList[4].num_keys = device->get_n_keys();
-#else
- fakeList[4].num_keys = gdk_device_get_n_keys(device->gobj());
-#endif
} else {
fakeList[4].name = "Core Pointer";
fakeList[4].source = Gdk::SOURCE_MOUSE;
diff --git a/src/dir-util.h b/src/dir-util.h
index 90d7b3a54..327e1ad5f 100644
--- a/src/dir-util.h
+++ b/src/dir-util.h
@@ -1,4 +1,4 @@
-#ifndef SEEN_DIR_UTIL_H#include <config.h>
+#ifndef SEEN_DIR_UTIL_H
#define SEEN_DIR_UTIL_H
/*
diff --git a/src/display/Makefile_insert b/src/display/Makefile_insert
deleted file mode 100644
index 419852f7d..000000000
--- a/src/display/Makefile_insert
+++ /dev/null
@@ -1,125 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-display/canvas-arena.$(OBJEXT): helper/sp-marshal.h
-display/sp-canvas.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources += \
- display/cairo-templates.h \
- display/cairo-utils.cpp \
- display/cairo-utils.h \
- display/canvas-arena.cpp \
- display/canvas-arena.h \
- display/canvas-axonomgrid.cpp \
- display/canvas-axonomgrid.h \
- display/canvas-bpath.cpp \
- display/canvas-bpath.h \
- display/canvas-grid.cpp \
- display/canvas-grid.h \
- display/canvas-temporary-item.cpp \
- display/canvas-temporary-item.h \
- display/canvas-temporary-item-list.cpp \
- display/canvas-temporary-item-list.h \
- display/canvas-text.cpp \
- display/canvas-text.h \
- display/curve.cpp \
- display/curve.h \
- display/drawing.cpp \
- display/drawing.h \
- display/drawing-context.cpp \
- display/drawing-context.h \
- display/drawing-group.cpp \
- display/drawing-group.h \
- display/drawing-image.cpp \
- display/drawing-image.h \
- display/drawing-item.cpp \
- display/drawing-item.h \
- display/drawing-pattern.cpp \
- display/drawing-pattern.h \
- display/drawing-shape.cpp \
- display/drawing-shape.h \
- display/drawing-surface.cpp \
- display/drawing-surface.h \
- display/drawing-text.cpp \
- display/drawing-text.h \
- display/gnome-canvas-acetate.cpp \
- display/gnome-canvas-acetate.h \
- display/grayscale.cpp \
- display/grayscale.h \
- display/guideline.cpp \
- display/guideline.h \
- display/nr-3dutils.cpp \
- display/nr-3dutils.h \
- display/nr-filter-blend.cpp \
- display/nr-filter-blend.h \
- display/nr-filter-colormatrix.cpp \
- display/nr-filter-colormatrix.h \
- display/nr-filter-component-transfer.cpp \
- display/nr-filter-component-transfer.h \
- display/nr-filter-composite.cpp \
- display/nr-filter-composite.h \
- display/nr-filter-convolve-matrix.cpp \
- display/nr-filter-convolve-matrix.h \
- display/nr-filter.cpp \
- display/nr-filter-diffuselighting.cpp \
- display/nr-filter-diffuselighting.h \
- display/nr-filter-displacement-map.cpp \
- display/nr-filter-displacement-map.h \
- display/nr-filter-flood.cpp \
- display/nr-filter-flood.h \
- display/nr-filter-gaussian.cpp \
- display/nr-filter-gaussian.h \
- display/nr-filter.h \
- display/nr-filter-image.cpp \
- display/nr-filter-image.h \
- display/nr-filter-merge.cpp \
- display/nr-filter-merge.h \
- display/nr-filter-morphology.cpp \
- display/nr-filter-morphology.h \
- display/nr-filter-offset.cpp \
- display/nr-filter-offset.h \
- display/nr-filter-primitive.cpp \
- display/nr-filter-primitive.h \
- display/nr-filter-slot.cpp \
- display/nr-filter-slot.h \
- display/nr-filter-specularlighting.cpp \
- display/nr-filter-specularlighting.h \
- display/nr-filter-tile.cpp \
- display/nr-filter-tile.h \
- display/nr-filter-turbulence.cpp \
- display/nr-filter-turbulence.h \
- display/nr-filter-types.h \
- display/nr-filter-units.cpp \
- display/nr-filter-units.h \
- display/nr-filter-utils.h \
- display/nr-light.cpp \
- display/nr-light.h \
- display/nr-light-types.h \
- display/nr-style.cpp \
- display/nr-style.h \
- display/nr-svgfonts.cpp \
- display/nr-svgfonts.h \
- display/rendermode.h \
- display/snap-indicator.cpp \
- display/snap-indicator.h \
- display/sodipodi-ctrl.cpp \
- display/sodipodi-ctrl.h \
- display/sodipodi-ctrlrect.cpp \
- display/sodipodi-ctrlrect.h \
- display/sp-canvas.cpp \
- display/sp-canvas.h \
- display/sp-canvas-item.h \
- display/sp-canvas-group.h \
- display/sp-canvas-util.cpp \
- display/sp-canvas-util.h \
- display/sp-ctrlcurve.cpp \
- display/sp-ctrlcurve.h \
- display/sp-ctrlline.cpp \
- display/sp-ctrlline.h \
- display/sp-ctrlquadr.cpp \
- display/sp-ctrlquadr.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
- $(srcdir)/display/curve-test.h
diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp
index 14f36376f..421a39fbd 100644
--- a/src/display/canvas-axonomgrid.cpp
+++ b/src/display/canvas-axonomgrid.cpp
@@ -19,12 +19,7 @@
#include <gtkmm/box.h>
#include <gtkmm/label.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include <glibmm/i18n.h>
@@ -94,15 +89,10 @@ namespace Inkscape {
#define SPACE_SIZE_X 15
#define SPACE_SIZE_Y 10
static inline void
-#if WITH_GTKMM_3_0
attach_all(Gtk::Grid &table, Gtk::Widget const *const arr[], unsigned size, int start = 0)
-#else
-attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int start = 0)
-#endif
{
for (unsigned i=0, r=start; i<size/sizeof(Gtk::Widget*); i+=2) {
if (arr[i] && arr[i+1]) {
-#if WITH_GTKMM_3_0
(const_cast<Gtk::Widget&>(*arr[i])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i]), 1, r, 1, 1);
@@ -110,44 +100,23 @@ attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int
(const_cast<Gtk::Widget&>(*arr[i+1])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i+1]), 2, r, 1, 1);
-#else
- table.attach (const_cast<Gtk::Widget&>(*arr[i]), 1, 2, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
- table.attach (const_cast<Gtk::Widget&>(*arr[i+1]), 2, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
if (arr[i+1]) {
-#if WITH_GTKMM_3_0
(const_cast<Gtk::Widget&>(*arr[i+1])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i+1]), 1, r, 2, 1);
-#else
- table.attach (const_cast<Gtk::Widget&>(*arr[i+1]), 1, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else if (arr[i]) {
Gtk::Label& label = reinterpret_cast<Gtk::Label&> (const_cast<Gtk::Widget&>(*arr[i]));
label.set_alignment (0.0);
-#if WITH_GTKMM_3_0
label.set_hexpand();
label.set_valign(Gtk::ALIGN_CENTER);
table.attach(label, 0, r, 3, 1);
-#else
- table.attach (label, 0, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
space->set_halign(Gtk::ALIGN_CENTER);
space->set_valign(Gtk::ALIGN_CENTER);
table.attach(*space, 0, r, 1, 1);
-#else
- table.attach (*space, 0, 1, r, r+1,
- (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0);
-#endif
}
}
++r;
@@ -342,14 +311,9 @@ CanvasAxonomGrid::onReprAttrChanged(Inkscape::XML::Node */*repr*/, gchar const *
Gtk::Widget *
CanvasAxonomGrid::newSpecificWidget()
{
-#if WITH_GTKMM_3_0
- Gtk::Grid *table = Gtk::manage(new Gtk::Grid());
+ auto table = Gtk::manage(new Gtk::Grid());
table->set_row_spacing(2);
table->set_column_spacing(2);
-#else
- Gtk::Table * table = Gtk::manage( new Gtk::Table(1,1) );
- table->set_spacings(2);
-#endif
_wr.setUpdating (true);
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp
index decf93626..fa45fe02c 100644
--- a/src/display/canvas-grid.cpp
+++ b/src/display/canvas-grid.cpp
@@ -19,12 +19,7 @@
#include <gtkmm/box.h>
#include <gtkmm/label.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include <glibmm/i18n.h>
@@ -400,15 +395,10 @@ void CanvasGrid::setOrigin(Geom::Point const &origin_px)
**/
#define SPACE_SIZE_X 15
#define SPACE_SIZE_Y 10
-#if WITH_GTKMM_3_0
static inline void attach_all(Gtk::Grid &table, Gtk::Widget const *const arr[], unsigned size, int start = 0)
-#else
-static inline void attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int start = 0)
-#endif
{
for (unsigned i=0, r=start; i<size/sizeof(Gtk::Widget*); i+=2) {
if (arr[i] && arr[i+1]) {
-#if WITH_GTKMM_3_0
(const_cast<Gtk::Widget&>(*arr[i])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i]), 1, r, 1, 1);
@@ -416,44 +406,23 @@ static inline void attach_all(Gtk::Table &table, Gtk::Widget const *const arr[],
(const_cast<Gtk::Widget&>(*arr[i+1])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i+1]), 2, r, 1, 1);
-#else
- table.attach (const_cast<Gtk::Widget&>(*arr[i]), 1, 2, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
- table.attach (const_cast<Gtk::Widget&>(*arr[i+1]), 2, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
if (arr[i+1]) {
-#if WITH_GTKMM_3_0
(const_cast<Gtk::Widget&>(*arr[i+1])).set_hexpand();
(const_cast<Gtk::Widget&>(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER);
table.attach(const_cast<Gtk::Widget&>(*arr[i+1]), 1, r, 2, 1);
-#else
- table.attach (const_cast<Gtk::Widget&>(*arr[i+1]), 1, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else if (arr[i]) {
Gtk::Label& label = reinterpret_cast<Gtk::Label&> (const_cast<Gtk::Widget&>(*arr[i]));
label.set_alignment (0.0);
-#if WITH_GTKMM_3_0
label.set_hexpand();
label.set_valign(Gtk::ALIGN_CENTER);
table.attach(label, 0, r, 3, 1);
-#else
- table.attach (label, 0, 3, r, r+1,
- Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
space->set_halign(Gtk::ALIGN_CENTER);
space->set_valign(Gtk::ALIGN_CENTER);
table.attach(*space, 0, r, 1, 1);
-#else
- table.attach (*space, 0, 1, r, r+1,
- (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0);
-#endif
}
}
++r;
@@ -684,14 +653,9 @@ CanvasXYGrid::onReprAttrChanged(Inkscape::XML::Node */*repr*/, gchar const */*ke
Gtk::Widget *
CanvasXYGrid::newSpecificWidget()
{
-#if WITH_GTKMM_3_0
- Gtk::Grid * table = Gtk::manage( new Gtk::Grid() );
+ auto table = Gtk::manage( new Gtk::Grid() );
table->set_row_spacing(2);
table->set_column_spacing(2);
-#else
- Gtk::Table * table = Gtk::manage( new Gtk::Table(1,1) );
- table->set_spacings(2);
-#endif
Inkscape::UI::Widget::RegisteredUnitMenu *_rumg = Gtk::manage( new Inkscape::UI::Widget::RegisteredUnitMenu(
_("Grid _units:"), "units", _wr, repr, doc) );
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp
index 7d76fa043..9201168ef 100644
--- a/src/display/sp-canvas.cpp
+++ b/src/display/sp-canvas.cpp
@@ -322,13 +322,9 @@ void sp_canvas_item_dispose(GObject *object)
if (item == item->canvas->_grabbed_item) {
item->canvas->_grabbed_item = NULL;
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default());
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = gdk_display_get_device_manager(gdk_display_get_default());
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_device_ungrab(device, GDK_CURRENT_TIME);
-#else
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
-#endif
}
if (item == item->canvas->_focused_item) {
@@ -617,9 +613,8 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor,
// fixme: Top hack (Lauris)
// fixme: If we add key masks to event mask, Gdk will abort (Lauris)
// fixme: But Canvas actualle does get key events, so all we need is routing these here
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default());
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = gdk_display_get_device_manager(gdk_display_get_default());
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_device_grab(device,
getWindow(item->canvas),
GDK_OWNERSHIP_NONE,
@@ -627,11 +622,6 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor,
(GdkEventMask)(event_mask & (~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK))),
cursor,
etime);
-#else
- gdk_pointer_grab( getWindow(item->canvas), FALSE,
- (GdkEventMask)(event_mask & (~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK))),
- NULL, cursor, etime);
-#endif
item->canvas->_grabbed_item = item;
item->canvas->_grabbed_event_mask = event_mask;
@@ -658,13 +648,9 @@ void sp_canvas_item_ungrab(SPCanvasItem *item, guint32 etime)
item->canvas->_grabbed_item = NULL;
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default());
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = gdk_display_get_device_manager(gdk_display_get_default());
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_device_ungrab(device, etime);
-#else
- gdk_pointer_ungrab (etime);
-#endif
}
/**
@@ -913,16 +899,9 @@ void sp_canvas_class_init(SPCanvasClass *klass)
widget_class->realize = SPCanvas::handle_realize;
widget_class->unrealize = SPCanvas::handle_unrealize;
-
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = SPCanvas::handle_get_preferred_width;
widget_class->get_preferred_height = SPCanvas::handle_get_preferred_height;
widget_class->draw = SPCanvas::handle_draw;
-#else
- widget_class->size_request = SPCanvas::handle_size_request;
- widget_class->expose_event = SPCanvas::handle_expose;
-#endif
-
widget_class->size_allocate = SPCanvas::handle_size_allocate;
widget_class->button_press_event = SPCanvas::handle_button;
widget_class->button_release_event = SPCanvas::handle_button;
@@ -980,13 +959,9 @@ void SPCanvas::shutdownTransients()
if (_grabbed_item) {
_grabbed_item = NULL;
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default());
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = gdk_display_get_device_manager(gdk_display_get_default());
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_device_ungrab(device, GDK_CURRENT_TIME);
-#else
- gdk_pointer_ungrab(GDK_CURRENT_TIME);
-#endif
}
removeIdle();
}
@@ -1053,10 +1028,6 @@ void SPCanvas::handle_realize(GtkWidget *widget)
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.visual = gdk_visual_get_system();
-#if !GTK_CHECK_VERSION(3,0,0)
- attributes.colormap = gdk_colormap_get_system();
-#endif
-
attributes.event_mask = (gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK |
GDK_BUTTON_PRESS_MASK |
@@ -1073,11 +1044,7 @@ void SPCanvas::handle_realize(GtkWidget *widget)
GDK_SCROLL_MASK |
GDK_FOCUS_CHANGE_MASK);
-#if GTK_CHECK_VERSION(3,0,0)
gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-#else
- gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-#endif
GdkWindow *window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
gtk_widget_set_window (widget, window);
@@ -1086,18 +1053,8 @@ void SPCanvas::handle_realize(GtkWidget *widget)
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
if (prefs->getBool("/options/useextinput/value", true)) {
gtk_widget_set_events(widget, attributes.event_mask);
-#if !GTK_CHECK_VERSION(3,0,0)
- gtk_widget_set_extension_events(widget, GDK_EXTENSION_EVENTS_ALL);
- // TODO: Extension event stuff has been deprecated in GTK+ 3
-#endif
}
-#if !GTK_CHECK_VERSION(3,0,0)
- // This does nothing in GTK+ 3
- GtkStyle *style = gtk_widget_get_style (widget);
- gtk_widget_set_style (widget, gtk_style_attach (style, window));
-#endif
-
gtk_widget_set_realized (widget, TRUE);
}
@@ -1115,8 +1072,6 @@ void SPCanvas::handle_unrealize(GtkWidget *widget)
(* GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize)(widget);
}
-
-#if GTK_CHECK_VERSION(3,0,0)
void SPCanvas::handle_get_preferred_width(GtkWidget *widget, gint *minimum_width, gint *natural_width)
{
static_cast<void>(SP_CANVAS (widget));
@@ -1130,16 +1085,6 @@ void SPCanvas::handle_get_preferred_height(GtkWidget *widget, gint *minimum_heig
*minimum_height = 256;
*natural_height = 256;
}
-#else
-void SPCanvas::handle_size_request(GtkWidget *widget, GtkRequisition *req)
-{
- static_cast<void>(SP_CANVAS (widget));
-
- req->width = 256;
- req->height = 256;
-}
-#endif
-
void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
{
@@ -1219,9 +1164,7 @@ int SPCanvas::emitEvent(GdkEvent *event)
break;
case GDK_SCROLL:
mask = GDK_SCROLL_MASK;
-#if GTK_CHECK_VERSION(3,0,0)
mask |= GDK_SMOOTH_SCROLL_MASK;
-#endif
break;
default:
mask = 0;
@@ -1503,13 +1446,9 @@ gint SPCanvas::handle_scroll(GtkWidget *widget, GdkEventScroll *event)
}
static inline void request_motions(GdkWindow *w, GdkEventMotion *event) {
-#if GTK_CHECK_VERSION(3,0,0)
gdk_window_get_device_position(w,
gdk_event_get_device((GdkEvent *)(event)),
NULL, NULL, NULL);
-#else
- gdk_window_get_pointer(w, NULL, NULL, NULL);
-#endif
gdk_event_request_motions(event);
}
@@ -1746,16 +1685,12 @@ bool SPCanvas::paintRect(int xx0, int yy0, int xx1, int yy1)
// Save the mouse location
gint x, y;
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default());
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = gdk_display_get_device_manager(gdk_display_get_default());
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_window_get_device_position(gtk_widget_get_window(GTK_WIDGET(this)),
device,
&x, &y, NULL);
-#else
- gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(this)), &x, &y, NULL);
-#endif
setup.mouse_loc = sp_canvas_window_to_world(this, Geom::Point(x,y));
@@ -1818,21 +1753,6 @@ gboolean SPCanvas::handle_draw(GtkWidget *widget, cairo_t *cr) {
return TRUE;
}
-#if !GTK_CHECK_VERSION(3,0,0)
-gboolean SPCanvas::handle_expose(GtkWidget *widget, GdkEventExpose *event)
-{
- cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget));
-
- gdk_cairo_region (cr, event->region);
- cairo_clip (cr);
- gboolean result = SPCanvas::handle_draw(widget, cr);
-
- cairo_destroy (cr);
-
- return result;
-}
-#endif
-
gint SPCanvas::handle_key_event(GtkWidget *widget, GdkEventKey *event)
{
diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h
index 171fdaf67..78d96d728 100644
--- a/src/display/sp-canvas.h
+++ b/src/display/sp-canvas.h
@@ -145,12 +145,8 @@ public:
static void dispose(GObject *object);
static void handle_realize(GtkWidget *widget);
static void handle_unrealize(GtkWidget *widget);
-#if GTK_CHECK_VERSION(3,0,0)
static void handle_get_preferred_width(GtkWidget *widget, gint *min_w, gint *nat_w);
static void handle_get_preferred_height(GtkWidget *widget, gint *min_h, gint *nat_h);
-#else
- static void handle_size_request(GtkWidget *widget, GtkRequisition *req);
-#endif
static void handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation);
static gint handle_button(GtkWidget *widget, GdkEventButton *event);
@@ -162,9 +158,6 @@ public:
static gint handle_scroll(GtkWidget *widget, GdkEventScroll *event);
static gint handle_motion(GtkWidget *widget, GdkEventMotion *event);
static gboolean handle_draw(GtkWidget *widget, cairo_t *cr);
-#if !GTK_CHECK_VERSION(3,0,0)
- static gboolean handle_expose(GtkWidget *widget, GdkEventExpose *event);
-#endif
static gint handle_key_event(GtkWidget *widget, GdkEventKey *event);
static gint handle_crossing(GtkWidget *widget, GdkEventCrossing *event);
static gint handle_focus_in(GtkWidget *widget, GdkEventFocus *event);
diff --git a/src/extension/Makefile_insert b/src/extension/Makefile_insert
deleted file mode 100644
index fb9713904..000000000
--- a/src/extension/Makefile_insert
+++ /dev/null
@@ -1,54 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- extension/extension.cpp \
- extension/extension.h \
- extension/db.cpp \
- extension/db.h \
- extension/dependency.cpp \
- extension/dependency.h \
- extension/error-file.cpp \
- extension/error-file.h \
- extension/execution-env.cpp \
- extension/execution-env.h \
- extension/init.cpp \
- extension/init.h \
- extension/loader.h \
- extension/loader.cpp \
- extension/param/parameter.h \
- extension/param/parameter.cpp \
- extension/param/notebook.h \
- extension/param/notebook.cpp \
- extension/param/bool.h \
- extension/param/bool.cpp \
- extension/param/color.h \
- extension/param/color.cpp \
- extension/param/description.h \
- extension/param/description.cpp \
- extension/param/enum.h \
- extension/param/enum.cpp \
- extension/param/float.h \
- extension/param/float.cpp \
- extension/param/int.h \
- extension/param/int.cpp \
- extension/param/radiobutton.h \
- extension/param/radiobutton.cpp \
- extension/param/string.h \
- extension/param/string.cpp \
- extension/prefdialog.cpp \
- extension/prefdialog.h \
- extension/system.cpp \
- extension/system.h \
- extension/timer.cpp \
- extension/timer.h \
- extension/input.h \
- extension/input.cpp \
- extension/output.h \
- extension/output.cpp \
- extension/effect.h \
- extension/effect.cpp \
- extension/patheffect.h \
- extension/patheffect.cpp \
- extension/print.h \
- extension/print.cpp
-
diff --git a/src/extension/dbus/Makefile_insert b/src/extension/dbus/Makefile_insert
deleted file mode 100644
index 192651d87..000000000
--- a/src/extension/dbus/Makefile_insert
+++ /dev/null
@@ -1,111 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_DBUS
-
-#############################
-# Sources for DBus interface
-#############################
-
-ink_common_sources += \
- extension/dbus/dbus-init.cpp \
- extension/dbus/dbus-init.h \
- extension/dbus/application-interface.cpp \
- extension/dbus/application-interface.h \
- extension/dbus/document-interface.cpp \
- extension/dbus/document-interface.h \
- extension/dbus/org.inkscape.service.in
-
-###########################
-# Build DBus wrapper files
-###########################
-
-extension/dbus/application-server-glue.h: extension/dbus/application-interface.xml
- dbus-binding-tool --mode=glib-server --output=$@ --prefix=application_interface $^
-
-extension/dbus/document-server-glue.h: extension/dbus/document-interface.xml
- dbus-binding-tool --mode=glib-server --output=$@ --prefix=document_interface $^
-
-extension/dbus/document-client-glue.h: extension/dbus/document-interface.xml
- dbus-binding-tool --mode=glib-client --output=$@ --prefix=document_interface $^
-
-BUILT_SOURCES += \
- extension/dbus/application-server-glue.h \
- extension/dbus/document-server-glue.h \
- extension/dbus/document-client-glue.h
-
-###########################
-# Distribut DBus interface
-###########################
-
-EXTRA_DIST += \
- extension/dbus/application-interface.xml \
- extension/dbus/document-interface.xml
-
-###########################
-# DBus Activation Service
-###########################
-
-# Dbus service file
-servicedir = $(DBUSSERVICEDIR)
-service_in_files = extension/dbus/org.inkscape.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-# Rule to make the service file with bindir expanded
-$(service_DATA): $(service_in_files) Makefile
- @sed -e "s|bindir|$(prefix)|" $<> $@
-
-############################
-# DBus Interface Helper Lib
-############################
-
-lib_LTLIBRARIES = \
- libinkdbus.la
-
-libinkdbusincludedir = $(includedir)/libinkdbus-0.48/libinkdbus
-libinkdbusinclude_HEADERS = \
- extension/dbus/wrapper/inkscape-dbus-wrapper.h
-
-libinkdbus_la_SOURCES = \
- extension/dbus/wrapper/inkscape-dbus-wrapper.h \
- extension/dbus/wrapper/inkscape-dbus-wrapper.c
-
-libinkdbus_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined \
- -export-symbols-regex "^[^_d].*"
-
-libinkdbus_la_CFLAGS = \
- $(DBUS_CFLAGS) \
- $(INKSCAPE_CFLAGS) \
- -I$(builddir)/extension/dbus \
- -Wall
-
-libinkdbus_la_LIBADD = \
- $(DBUS_LIBS) \
- $(INKSCAPE_LIBS)
-
-############################
-# DBus Pkgconfig file
-############################
-
-pkgconfig_DATA = extension/dbus/wrapper/inkdbus.pc
-pkgconfigdir = $(libdir)/pkgconfig
-
-else # WITH_DBUS
-
-EXTRA_DIST += \
- extension/dbus/dbus-init.cpp \
- extension/dbus/dbus-init.h \
- extension/dbus/application-interface.cpp \
- extension/dbus/application-interface.h \
- extension/dbus/document-interface.cpp \
- extension/dbus/document-interface.h \
- extension/dbus/wrapper/inkscape-dbus-wrapper.h \
- extension/dbus/wrapper/inkscape-dbus-wrapper.c \
- extension/dbus/wrapper/inkdbus.pc \
- extension/dbus/org.inkscape.service.in \
- extension/dbus/application-interface.xml \
- extension/dbus/document-interface.xml
-
-endif
-
diff --git a/src/extension/error-file.cpp b/src/extension/error-file.cpp
index 9ec643759..342511ec9 100644
--- a/src/extension/error-file.cpp
+++ b/src/extension/error-file.cpp
@@ -56,11 +56,7 @@ ErrorFileNotice::ErrorFileNotice (void) :
g_free(ext_error_file);
set_message(dialog_text, true);
-#if WITH_GTKMM_3_0
- Gtk::Box * vbox = get_content_area();
-#else
- Gtk::Box * vbox = get_vbox();
-#endif
+ auto vbox = get_content_area();
/* This is some filler text, needs to change before relase */
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp
index 56ff0a5f4..c6dee1b70 100644
--- a/src/extension/extension.cpp
+++ b/src/extension/extension.cpp
@@ -22,12 +22,7 @@
#include <gtkmm/box.h>
#include <gtkmm/label.h>
#include <gtkmm/frame.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include <glibmm/i18n.h>
#include "inkscape.h"
@@ -766,11 +761,7 @@ Extension::get_info_widget(void)
Gtk::Frame * info = Gtk::manage(new Gtk::Frame("General Extension Information"));
retval->pack_start(*info, true, true, 5);
-#if WITH_GTKMM_3_0
- Gtk::Grid * table = Gtk::manage(new Gtk::Grid());
-#else
- Gtk::Table * table = Gtk::manage(new Gtk::Table());
-#endif
+ auto table = Gtk::manage(new Gtk::Grid());
info->add(*table);
@@ -784,11 +775,7 @@ Extension::get_info_widget(void)
return retval;
}
-#if WITH_GTKMM_3_0
void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Grid * table, int * row)
-#else
-void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row)
-#endif
{
Gtk::Label * label;
Gtk::Label * value;
@@ -797,13 +784,8 @@ void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Tab
label = Gtk::manage(new Gtk::Label(labelstr));
value = Gtk::manage(new Gtk::Label(valuestr));
-#if WITH_GTKMM_3_0
table->attach(*label, 0, (*row) - 1, 1, 1);
table->attach(*value, 1, (*row) - 1, 1, 1);
-#else
- table->attach(*label, 0, 1, (*row) - 1, *row);
- table->attach(*value, 1, 2, (*row) - 1, *row);
-#endif
label->show();
value->show();
diff --git a/src/extension/extension.h b/src/extension/extension.h
index 1fb8bdfec..cd29e1636 100644
--- a/src/extension/extension.h
+++ b/src/extension/extension.h
@@ -22,12 +22,7 @@
#include <sigc++/signal.h>
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
- class Table;
-#endif
-
class VBox;
class Widget;
}
@@ -300,11 +295,7 @@ public:
Gtk::VBox * get_help_widget(void);
Gtk::VBox * get_params_widget(void);
protected:
-#if WITH_GTKMM_3_0
inline static void add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Grid * table, int * row);
-#else
- inline static void add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row);
-#endif
};
diff --git a/src/extension/implementation/Makefile_insert b/src/extension/implementation/Makefile_insert
deleted file mode 100644
index 1b9080f1a..000000000
--- a/src/extension/implementation/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- extension/implementation/implementation.cpp \
- extension/implementation/implementation.h \
- extension/implementation/script.cpp \
- extension/implementation/script.h \
- extension/implementation/xslt.cpp \
- extension/implementation/xslt.h
diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp
index 459b1a196..d2319c2e0 100644
--- a/src/extension/implementation/script.cpp
+++ b/src/extension/implementation/script.cpp
@@ -942,11 +942,7 @@ void Script::checkStderr (const Glib::ustring &data,
GtkWidget *dlg = GTK_WIDGET(warning.gobj());
sp_transientize(dlg);
-#if WITH_GTKMM_3_0
- Gtk::Box * vbox = warning.get_content_area();
-#else
- Gtk::Box * vbox = warning.get_vbox();
-#endif
+ auto vbox = warning.get_content_area();
/* Gtk::TextView * textview = new Gtk::TextView(Gtk::TextBuffer::create()); */
Gtk::TextView * textview = new Gtk::TextView();
diff --git a/src/extension/internal/Makefile_insert b/src/extension/internal/Makefile_insert
deleted file mode 100644
index 125776d41..000000000
--- a/src/extension/internal/Makefile_insert
+++ /dev/null
@@ -1,173 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_LIBWPG
-ink_common_sources += \
- extension/internal/wpg-input.cpp \
- extension/internal/wpg-input.h
-endif
-
-if WITH_LIBVISIO
-ink_common_sources += \
- extension/internal/vsd-input.cpp \
- extension/internal/vsd-input.h
-endif
-
-if WITH_LIBCDR
-ink_common_sources += \
- extension/internal/cdr-input.cpp \
- extension/internal/cdr-input.h
-endif
-
-if USE_IMAGE_MAGICK
-ink_common_sources += \
- extension/internal/bitmap/imagemagick.cpp \
- extension/internal/bitmap/imagemagick.h \
- extension/internal/bitmap/adaptiveThreshold.cpp \
- extension/internal/bitmap/adaptiveThreshold.h \
- extension/internal/bitmap/addNoise.cpp \
- extension/internal/bitmap/addNoise.h \
- extension/internal/bitmap/blur.cpp \
- extension/internal/bitmap/blur.h \
- extension/internal/bitmap/channel.cpp \
- extension/internal/bitmap/channel.h \
- extension/internal/bitmap/charcoal.cpp \
- extension/internal/bitmap/charcoal.h \
- extension/internal/bitmap/colorize.cpp \
- extension/internal/bitmap/colorize.h \
- extension/internal/bitmap/contrast.cpp \
- extension/internal/bitmap/contrast.h \
- extension/internal/bitmap/crop.cpp \
- extension/internal/bitmap/crop.h \
- extension/internal/bitmap/cycleColormap.cpp \
- extension/internal/bitmap/cycleColormap.h \
- extension/internal/bitmap/despeckle.cpp \
- extension/internal/bitmap/despeckle.h \
- extension/internal/bitmap/edge.cpp \
- extension/internal/bitmap/edge.h \
- extension/internal/bitmap/emboss.cpp \
- extension/internal/bitmap/emboss.h \
- extension/internal/bitmap/enhance.cpp \
- extension/internal/bitmap/enhance.h \
- extension/internal/bitmap/equalize.cpp \
- extension/internal/bitmap/equalize.h \
- extension/internal/bitmap/gaussianBlur.cpp \
- extension/internal/bitmap/gaussianBlur.h \
- extension/internal/bitmap/implode.cpp \
- extension/internal/bitmap/implode.h \
- extension/internal/bitmap/level.cpp \
- extension/internal/bitmap/level.h \
- extension/internal/bitmap/levelChannel.cpp \
- extension/internal/bitmap/levelChannel.h \
- extension/internal/bitmap/medianFilter.cpp \
- extension/internal/bitmap/medianFilter.h \
- extension/internal/bitmap/modulate.cpp \
- extension/internal/bitmap/modulate.h \
- extension/internal/bitmap/negate.cpp \
- extension/internal/bitmap/negate.h \
- extension/internal/bitmap/normalize.cpp \
- extension/internal/bitmap/normalize.h \
- extension/internal/bitmap/oilPaint.cpp \
- extension/internal/bitmap/oilPaint.h \
- extension/internal/bitmap/opacity.cpp \
- extension/internal/bitmap/opacity.h \
- extension/internal/bitmap/raise.cpp \
- extension/internal/bitmap/raise.h \
- extension/internal/bitmap/reduceNoise.cpp \
- extension/internal/bitmap/reduceNoise.h \
- extension/internal/bitmap/sample.cpp \
- extension/internal/bitmap/sample.h \
- extension/internal/bitmap/shade.cpp \
- extension/internal/bitmap/shade.h \
- extension/internal/bitmap/sharpen.cpp \
- extension/internal/bitmap/sharpen.h \
- extension/internal/bitmap/solarize.cpp \
- extension/internal/bitmap/solarize.h \
- extension/internal/bitmap/spread.cpp \
- extension/internal/bitmap/spread.h \
- extension/internal/bitmap/swirl.cpp \
- extension/internal/bitmap/swirl.h \
- extension/internal/bitmap/threshold.cpp \
- extension/internal/bitmap/threshold.h \
- extension/internal/bitmap/unsharpmask.cpp \
- extension/internal/bitmap/unsharpmask.h \
- extension/internal/bitmap/wave.cpp \
- extension/internal/bitmap/wave.h
-endif
-
-ink_common_sources += \
- extension/internal/bluredge.h \
- extension/internal/bluredge.cpp \
- extension/internal/clear-n_.h \
- extension/internal/grid.h \
- extension/internal/grid.cpp \
- extension/internal/gimpgrad.h \
- extension/internal/gimpgrad.cpp \
- extension/internal/svg.h \
- extension/internal/svg.cpp \
- extension/internal/svgz.h \
- extension/internal/svgz.cpp \
- extension/internal/cairo-ps-out.h \
- extension/internal/cairo-ps-out.cpp \
- extension/internal/cairo-render-context.h \
- extension/internal/cairo-render-context.cpp \
- extension/internal/cairo-renderer.h \
- extension/internal/cairo-renderer.cpp \
- extension/internal/cairo-renderer-pdf-out.h \
- extension/internal/cairo-renderer-pdf-out.cpp \
- extension/internal/cairo-png-out.h \
- extension/internal/cairo-png-out.cpp \
- extension/internal/javafx-out.cpp \
- extension/internal/javafx-out.h \
- extension/internal/gdkpixbuf-input.h \
- extension/internal/gdkpixbuf-input.cpp \
- extension/internal/latex-text-renderer.h \
- extension/internal/latex-text-renderer.cpp \
- extension/internal/pdfinput/svg-builder.h \
- extension/internal/pdfinput/svg-builder.cpp \
- extension/internal/pdfinput/pdf-parser.h \
- extension/internal/pdfinput/pdf-parser.cpp \
- extension/internal/pdfinput/pdf-input.h \
- extension/internal/pdfinput/pdf-input.cpp \
- extension/internal/pov-out.cpp \
- extension/internal/pov-out.h \
- extension/internal/odf.cpp \
- extension/internal/odf.h \
- extension/internal/latex-pstricks.cpp \
- extension/internal/latex-pstricks.h \
- extension/internal/latex-pstricks-out.cpp \
- extension/internal/latex-pstricks-out.h \
- extension/internal/filter/bevels.h \
- extension/internal/filter/blurs.h \
- extension/internal/filter/bumps.h \
- extension/internal/filter/color.h \
- extension/internal/filter/distort.h \
- extension/internal/filter/filter.h \
- extension/internal/filter/image.h \
- extension/internal/filter/morphology.h \
- extension/internal/filter/overlays.h \
- extension/internal/filter/paint.h \
- extension/internal/filter/protrusions.h \
- extension/internal/filter/shadows.h \
- extension/internal/filter/textures.h \
- extension/internal/filter/transparency.h \
- extension/internal/filter/filter-all.cpp \
- extension/internal/filter/filter-file.cpp \
- extension/internal/filter/filter.cpp \
- extension/internal/filter/filter.h \
- extension/internal/text_reassemble.c \
- extension/internal/text_reassemble.h \
- extension/internal/emf-print.h \
- extension/internal/emf-print.cpp \
- extension/internal/emf-inout.h \
- extension/internal/emf-inout.cpp \
- extension/internal/metafile-inout.h \
- extension/internal/metafile-inout.cpp \
- extension/internal/metafile-print.h \
- extension/internal/metafile-print.cpp \
- extension/internal/wmf-print.h \
- extension/internal/wmf-print.cpp \
- extension/internal/wmf-inout.h \
- extension/internal/wmf-inout.cpp \
- extension/internal/image-resolution.h \
- extension/internal/image-resolution.cpp
-
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp
index a26af2078..b94b6d019 100644
--- a/src/extension/internal/cdr-input.cpp
+++ b/src/extension/internal/cdr-input.cpp
@@ -111,11 +111,7 @@ CdrImportDialog::CdrImportDialog(const std::vector<RVNGString> &vec)
_previewArea = Gtk::manage(new class Gtk::VBox());
vbox1 = Gtk::manage(new class Gtk::VBox());
vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0);
-#if WITH_GTKMM_3_0
this->get_content_area()->pack_start(*vbox1);
-#else
- this->get_vbox()->pack_start(*vbox1);
-#endif
// CONTROLS
@@ -137,13 +133,8 @@ CdrImportDialog::CdrImportDialog(const std::vector<RVNGString> &vec)
g_free(label_text);
// Adjustment + spinner
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0);
+ auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0);
_pageNumberSpin = Gtk::manage(new Gtk::SpinButton(_pageNumberSpin_adj, 1, 0));
-#else
- Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage(new class Gtk::Adjustment(1, 1, _vec.size(), 1, 10, 0));
- _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(*_pageNumberSpin_adj, 1, 0));
-#endif
_pageNumberSpin->set_can_focus();
_pageNumberSpin->set_update_policy(Gtk::UPDATE_ALWAYS);
_pageNumberSpin->set_numeric(true);
diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
index c1940b16a..0c22fa399 100644
--- a/src/extension/internal/pdfinput/pdf-input.cpp
+++ b/src/extension/internal/pdfinput/pdf-input.cpp
@@ -39,10 +39,8 @@
#include <gtkmm/radiobutton.h>
#include <gtkmm/scale.h>
-#if WITH_GTKMM_3_0
#include <glibmm/convert.h>
#include <glibmm/miscutils.h>
-#endif
#include "extension/system.h"
#include "extension/input.h"
@@ -92,14 +90,8 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/)
_labelSelect = Gtk::manage(new class Gtk::Label(_("Select page:")));
// Page number
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _pdf_doc->getNumPages(), 1, 10, 0);
+ auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _pdf_doc->getNumPages(), 1, 10, 0);
_pageNumberSpin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(_pageNumberSpin_adj, 1, 1));
-#else
- Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage(
- new class Gtk::Adjustment(1, 1, _pdf_doc->getNumPages(), 1, 10, 0));
- _pageNumberSpin = Gtk::manage(new class Inkscape::UI::Widget::SpinButton(*_pageNumberSpin_adj, 1, 1));
-#endif
_labelTotalPages = Gtk::manage(new class Gtk::Label());
hbox2 = Gtk::manage(new class Gtk::HBox(false, 0));
// Disable the page selector when there's only one page
@@ -137,13 +129,8 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/)
_labelViaInternal = Gtk::manage(new class Gtk::Label(_("Import via internal (Poppler derived) library. Text is stored as text but white space is missing. Meshes are converted to tiles, the number depends on the precision set below.")));
#endif
-#if WITH_GTKMM_3_0
_fallbackPrecisionSlider_adj = Gtk::Adjustment::create(2, 1, 256, 1, 10, 10);
_fallbackPrecisionSlider = Gtk::manage(new class Gtk::Scale(_fallbackPrecisionSlider_adj));
-#else
- _fallbackPrecisionSlider_adj = Gtk::manage(new class Gtk::Adjustment(2, 1, 256, 1, 10, 10));
- _fallbackPrecisionSlider = Gtk::manage(new class Gtk::HScale(*_fallbackPrecisionSlider_adj));
-#endif
_fallbackPrecisionSlider->set_value(2.0);
_labelPrecisionComment = Gtk::manage(new class Gtk::Label(_("rough")));
hbox6 = Gtk::manage(new class Gtk::HBox(false, 4));
@@ -278,15 +265,9 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/)
hbox1->pack_start(*vbox1);
hbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 4);
-#if WITH_GTKMM_3_0
get_content_area()->set_homogeneous(false);
get_content_area()->set_spacing(0);
get_content_area()->pack_start(*hbox1);
-#else
- this->get_vbox()->set_homogeneous(false);
- this->get_vbox()->set_spacing(0);
- this->get_vbox()->pack_start(*hbox1);
-#endif
this->set_title(_("PDF Import Settings"));
this->set_modal(true);
@@ -300,12 +281,7 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/)
this->show_all();
// Connect signals
-#if WITH_GTKMM_3_0
_previewArea->signal_draw().connect(sigc::mem_fun(*this, &PdfImportDialog::_onDraw));
-#else
- _previewArea->signal_expose_event().connect(sigc::mem_fun(*this, &PdfImportDialog::_onExposePreview));
-#endif
-
_pageNumberSpin_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PdfImportDialog::_onPageNumberChanged));
_cropCheck->signal_toggled().connect(sigc::mem_fun(*this, &PdfImportDialog::_onToggleCropping));
_fallbackPrecisionSlider_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PdfImportDialog::_onPrecisionChanged));
@@ -527,16 +503,6 @@ static void copy_cairo_surface_to_pixbuf (cairo_surface_t *surface,
#endif
-/**
- * \brief Updates the preview area with the previously rendered thumbnail
- */
-#if !WITH_GTKMM_3_0
-bool PdfImportDialog::_onExposePreview(GdkEventExpose * /*event*/) {
- Cairo::RefPtr<Cairo::Context> cr = _previewArea->get_window()->create_cairo_context();
- return _onDraw(cr);
-}
-#endif
-
bool PdfImportDialog::_onDraw(const Cairo::RefPtr<Cairo::Context>& cr) {
// Check if we have a thumbnail at all
if (!_thumb_data) {
diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h
index 6e36603c3..c338207c1 100644
--- a/src/extension/internal/pdfinput/pdf-input.h
+++ b/src/extension/internal/pdfinput/pdf-input.h
@@ -39,11 +39,7 @@ namespace Gtk {
class DrawingArea;
class Frame;
class HBox;
-#if WITH_GTKMM_3_0
class Scale;
-#else
- class HScale;
-#endif
class RadioButton;
class VBox;
class Label;
@@ -79,10 +75,6 @@ private:
void _setPreviewPage(int page);
// Signal handlers
-#if !WITH_GTKMM_3_0
- bool _onExposePreview(GdkEventExpose *event);
-#endif
-
bool _onDraw(const Cairo::RefPtr<Cairo::Context>& cr);
void _onPageNumberChanged();
void _onToggleCropping();
@@ -110,13 +102,8 @@ private:
class Gtk::RadioButton * _importViaInternal; // Use native (poppler based) importing
class Gtk::Label * _labelViaInternal;
#endif
-#if WITH_GTKMM_3_0
- class Gtk::Scale * _fallbackPrecisionSlider;
+ Gtk::Scale * _fallbackPrecisionSlider;
Glib::RefPtr<Gtk::Adjustment> _fallbackPrecisionSlider_adj;
-#else
- class Gtk::HScale * _fallbackPrecisionSlider;
- class Gtk::Adjustment *_fallbackPrecisionSlider_adj;
-#endif
class Gtk::Label * _labelPrecisionComment;
class Gtk::HBox * hbox6;
class Gtk::Label * _labelText;
diff --git a/src/extension/internal/vsd-input.cpp b/src/extension/internal/vsd-input.cpp
index a3d4aad37..2de2d0ec6 100644
--- a/src/extension/internal/vsd-input.cpp
+++ b/src/extension/internal/vsd-input.cpp
@@ -113,12 +113,7 @@ VsdImportDialog::VsdImportDialog(const std::vector<RVNGString> &vec)
_previewArea = Gtk::manage(new class Gtk::VBox());
vbox1 = Gtk::manage(new class Gtk::VBox());
vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0);
-#if WITH_GTKMM_3_0
this->get_content_area()->pack_start(*vbox1);
-#else
- this->get_vbox()->pack_start(*vbox1);
-#endif
-
// CONTROLS
@@ -140,13 +135,8 @@ VsdImportDialog::VsdImportDialog(const std::vector<RVNGString> &vec)
g_free(label_text);
// Adjustment + spinner
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0);
+ auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0);
_pageNumberSpin = Gtk::manage(new Gtk::SpinButton(_pageNumberSpin_adj, 1, 0));
-#else
- Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage(new class Gtk::Adjustment(1, 1, _vec.size(), 1, 10, 0));
- _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(*_pageNumberSpin_adj, 1, 0));
-#endif
_pageNumberSpin->set_can_focus();
_pageNumberSpin->set_update_policy(Gtk::UPDATE_ALWAYS);
_pageNumberSpin->set_numeric(true);
diff --git a/src/extension/loader.cpp b/src/extension/loader.cpp
index 3bea0e1e6..164a5cecf 100644
--- a/src/extension/loader.cpp
+++ b/src/extension/loader.cpp
@@ -10,6 +10,9 @@
*/
#include "loader.h"
+
+#include <gmodule.h>
+
#include "system.h"
#include <string.h>
#include "dependency.h"
diff --git a/src/extension/loader.h b/src/extension/loader.h
index cd362f87b..0eecc02b9 100644
--- a/src/extension/loader.h
+++ b/src/extension/loader.h
@@ -1,5 +1,4 @@
-/** @file#include <config.h>
-
+/** @file
* Loader for external plug-ins.
*//*
*
@@ -15,8 +14,6 @@
#define INKSCAPE_EXTENSION_LOADER_H_
#include "extension.h"
-#include "implementation/implementation.h"
-#include <gmodule.h>
namespace Inkscape {
diff --git a/src/extension/param/bool.cpp b/src/extension/param/bool.cpp
index 119c43f2f..ca61d8c51 100644
--- a/src/extension/param/bool.cpp
+++ b/src/extension/param/bool.cpp
@@ -130,12 +130,8 @@ Gtk::Widget *ParamBool::get_widget(SPDocument * doc, Inkscape::XML::Node * node,
return NULL;
}
-#if WITH_GTKMM_3_0
- Gtk::Box * hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4));
+ auto hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4));
hbox->set_homogeneous(false);
-#else
- Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4));
-#endif
Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
label->show();
diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp
index c68242371..23a03ea8f 100644
--- a/src/extension/param/float.cpp
+++ b/src/extension/param/float.cpp
@@ -177,12 +177,8 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod
Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4));
-#if WITH_GTKMM_3_0
- ParamFloatAdjustment * pfa = new ParamFloatAdjustment(this, doc, node, changeSignal);
+ auto pfa = new ParamFloatAdjustment(this, doc, node, changeSignal);
Glib::RefPtr<Gtk::Adjustment> fadjust(pfa);
-#else
- ParamFloatAdjustment * fadjust = Gtk::manage(new ParamFloatAdjustment(this, doc, node, changeSignal));
-#endif
if (_mode == FULL) {
@@ -198,11 +194,7 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod
label->show();
hbox->pack_start(*label, true, true, _indent);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 0.1, _precision));
-#else
- Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(*fadjust, 0.1, _precision));
-#endif
+ auto spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 0.1, _precision));
spin->show();
hbox->pack_start(*spin, false, false);
}
diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp
index f2399b320..222d4f243 100644
--- a/src/extension/param/int.cpp
+++ b/src/extension/param/int.cpp
@@ -158,13 +158,8 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal
Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4));
-
-#if WITH_GTKMM_3_0
- ParamIntAdjustment * pia = new ParamIntAdjustment(this, doc, node, changeSignal);
+ auto pia = new ParamIntAdjustment(this, doc, node, changeSignal);
Glib::RefPtr<Gtk::Adjustment> fadjust(pia);
-#else
- ParamIntAdjustment * fadjust = Gtk::manage(new ParamIntAdjustment(this, doc, node, changeSignal));
-#endif
if (_mode == FULL) {
@@ -179,11 +174,7 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal
label->show();
hbox->pack_start(*label, true, true, _indent);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 1.0, 0));
-#else
- Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(*fadjust, 1.0, 0));
-#endif
+ auto spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 1.0, 0));
spin->show();
hbox->pack_start(*spin, false, false);
}
diff --git a/src/extension/param/notebook.cpp b/src/extension/param/notebook.cpp
index 20c8e8481..957d12d06 100644
--- a/src/extension/param/notebook.cpp
+++ b/src/extension/param/notebook.cpp
@@ -353,11 +353,7 @@ public:
// hook function
this->signal_switch_page().connect(sigc::mem_fun(this, &ParamNotebookWdg::changed_page));
};
-#if WITH_GTKMM_3_0
void changed_page(Gtk::Widget *page, guint pagenum);
-#else
- void changed_page(GtkNotebookPage *page, guint pagenum);
-#endif
bool activated;
};
@@ -368,11 +364,7 @@ public:
* is actually visible. This to exclude 'fake' changes when the
* notebookpages are added or removed.
*/
-#if WITH_GTKMM_3_0
void ParamNotebookWdg::changed_page(Gtk::Widget * /*page*/, guint pagenum)
-#else
-void ParamNotebookWdg::changed_page(GtkNotebookPage * /*page*/, guint pagenum)
-#endif
{
if (get_visible()) {
_pref->set((int)pagenum, _doc, _node);
diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp
index 8181c6f51..c54cc0ec3 100644
--- a/src/extension/param/radiobutton.cpp
+++ b/src/extension/param/radiobutton.cpp
@@ -303,15 +303,10 @@ Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node
return NULL;
}
-#if WITH_GTKMM_3_0
- Gtk::Box * hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4));
+ auto hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4));
hbox->set_homogeneous(false);
- Gtk::Box * vbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 0));
+ auto vbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 0));
vbox->set_homogeneous(false);
-#else
- Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4));
- Gtk::VBox * vbox = Gtk::manage(new Gtk::VBox(false, 0));
-#endif
Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START, Gtk::ALIGN_START));
label->show();
diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp
index 2521dc1de..1ca590e85 100644
--- a/src/extension/prefdialog.cpp
+++ b/src/extension/prefdialog.cpp
@@ -41,11 +41,7 @@ namespace Extension {
them. It also places the passed-in widgets into the dialog.
*/
PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls, Effect * effect) :
-#if WITH_GTKMM_3_0
Gtk::Dialog(_(name.c_str()), true),
-#else
- Gtk::Dialog(_(name.c_str()), true, true),
-#endif
_help(help),
_name(name),
_button_ok(NULL),
@@ -68,11 +64,7 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co
hbox->pack_start(*controls, true, true, 6);
hbox->show();
-#if WITH_GTKMM_3_0
this->get_content_area()->pack_start(*hbox, true, true, 6);
-#else
- this->get_vbox()->pack_start(*hbox, true, true, 6);
-#endif
/*
Gtk::Button * help_button = add_button(Gtk::Stock::HELP, Gtk::RESPONSE_HELP);
@@ -97,19 +89,10 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co
_param_preview = Parameter::make(doc->root(), _effect);
}
-#if WITH_GTKMM_3_0
- Gtk::Separator * sep = Gtk::manage(new Gtk::Separator());
-#else
- Gtk::HSeparator * sep = Gtk::manage(new Gtk::HSeparator());
-#endif
-
+ auto sep = Gtk::manage(new Gtk::Separator());
sep->show();
-#if WITH_GTKMM_3_0
this->get_content_area()->pack_start(*sep, true, true, 4);
-#else
- this->get_vbox()->pack_start(*sep, true, true, 4);
-#endif
hbox = Gtk::manage(new Gtk::HBox());
_button_preview = _param_preview->get_widget(NULL, NULL, &_signal_preview);
@@ -117,19 +100,11 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co
hbox->pack_start(*_button_preview, true, true,6);
hbox->show();
-#if WITH_GTKMM_3_0
this->get_content_area()->pack_start(*hbox, true, true, 6);
-#else
- this->get_vbox()->pack_start(*hbox, true, true, 6);
-#endif
Gtk::Box * hbox = dynamic_cast<Gtk::Box *>(_button_preview);
if (hbox != NULL) {
-#if WITH_GTKMM_3_0
_checkbox_preview = dynamic_cast<Gtk::CheckButton *>(hbox->get_children().front());
-#else
- _checkbox_preview = dynamic_cast<Gtk::CheckButton *>(hbox->children().back().get_widget());
-#endif
}
preview_toggle();
diff --git a/src/filters/Makefile_insert b/src/filters/Makefile_insert
deleted file mode 100644
index ea9ff4b56..000000000
--- a/src/filters/Makefile_insert
+++ /dev/null
@@ -1,46 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- filters/blend.cpp \
- filters/blend.h \
- filters/colormatrix.cpp \
- filters/colormatrix.h \
- filters/componenttransfer.cpp \
- filters/componenttransfer-funcnode.cpp \
- filters/componenttransfer-funcnode.h \
- filters/componenttransfer.h \
- filters/composite.cpp \
- filters/composite.h \
- filters/convolvematrix.cpp \
- filters/convolvematrix.h \
- filters/diffuselighting.cpp \
- filters/diffuselighting.h \
- filters/displacementmap.cpp \
- filters/displacementmap.h \
- filters/distantlight.cpp \
- filters/distantlight.h \
- filters/flood.cpp \
- filters/flood.h \
- filters/gaussian-blur.cpp \
- filters/gaussian-blur.h \
- filters/image.cpp \
- filters/image.h \
- filters/merge.cpp \
- filters/merge.h \
- filters/mergenode.cpp \
- filters/mergenode.h \
- filters/morphology.cpp \
- filters/morphology.h \
- filters/offset.cpp \
- filters/offset.h \
- filters/pointlight.cpp \
- filters/pointlight.h \
- filters/specularlighting.cpp \
- filters/specularlighting.h \
- filters/spotlight.cpp \
- filters/spotlight.h \
- filters/tile.cpp \
- filters/tile.h \
- filters/turbulence.cpp \
- filters/turbulence.h
-
diff --git a/src/filters/pointlight.cpp b/src/filters/pointlight.cpp
index 39c4a700a..e42d21999 100644
--- a/src/filters/pointlight.cpp
+++ b/src/filters/pointlight.cpp
@@ -13,13 +13,16 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
+#include "filters/pointlight.h"
+
#include <glib.h>
#include "attributes.h"
#include "document.h"
-#include "filters/pointlight.h"
#include "filters/diffuselighting.h"
#include "filters/specularlighting.h"
+#include "xml/node.h"
+#include "xml/repr.h"
#define SP_MACROS_SILENT
diff --git a/src/filters/pointlight.h b/src/filters/pointlight.h
index 8df6c0c7c..1d60895c4 100644
--- a/src/filters/pointlight.h
+++ b/src/filters/pointlight.h
@@ -1,16 +1,9 @@
-#ifndef SP_FEPOI"attributes.h"
-#include "svg/svg.h"
-#include "xml/repr.h"
-
-#include "merge.h"
-#include "mergenode.h"
-#include "display/nr-filter.h"
-#include "display/nr-filter-merge.h"NTLIGHT_H_SEEN
-#define SP_FEPOINTLIGHT_H_SEEN
-
/** \file
* SVG <filter> implementation, see sp-filter.cpp.
*/
+#ifndef SP_FEPOINTLIGHT_H_SEEN
+#define SP_FEPOINTLIGHT_H_SEEN
+
/*
* Authors:
* Hugo Rodrigues <haa.rodrigues@gmail.com>
diff --git a/src/helper/Makefile_insert b/src/helper/Makefile_insert
deleted file mode 100644
index e59fcfb70..000000000
--- a/src/helper/Makefile_insert
+++ /dev/null
@@ -1,45 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-helper/unit-menu.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources += \
- helper/action.cpp \
- helper/action.h \
- helper/action-context.cpp \
- helper/action-context.h \
- helper/geom.cpp \
- helper/geom.h \
- helper/geom-curves.h \
- helper/geom-nodetype.cpp \
- helper/geom-nodetype.h \
- helper/geom-pathstroke.cpp \
- helper/geom-pathstroke.h \
- helper/gnome-utils.cpp \
- helper/gnome-utils.h \
- helper/mathfns.h \
- helper/png-write.cpp \
- helper/png-write.h \
- helper/sp-marshal.cpp \
- helper/sp-marshal.h \
- helper/window.cpp \
- helper/window.h \
- helper/stock-items.cpp \
- helper/stock-items.h
-
-# cmp exits with status 0 when there are no differences. "if" executes the commands
-# after "then" when the exit status of the if command is 0 (this is crazy).
-helper/sp-marshal.h: helper/sp-marshal.list
- glib-genmarshal --prefix=sp_marshal --header $(srcdir)/helper/sp-marshal.list > helper/tmp.sp-marshal.h
- if cmp -s helper/sp-marshal.h helper/tmp.sp-marshal.h; \
- then rm helper/tmp.sp-marshal.h; \
- else mv helper/tmp.sp-marshal.h helper/sp-marshal.h; fi
-
-helper/sp-marshal.cpp: helper/sp-marshal.list helper/sp-marshal.h
- ( echo '#include "helper/sp-marshal.h"' && \
- glib-genmarshal --prefix=sp_marshal --body $(srcdir)/helper/sp-marshal.list ) \
- > helper/tmp.sp-marshal.cpp; \
- if cmp -s helper/sp-marshal.cpp helper/tmp.sp-marshal.cpp; \
- then rm helper/tmp.sp-marshal.cpp; \
- else mv helper/tmp.sp-marshal.cpp helper/sp-marshal.cpp; fi
-
-helper/sp-marshal.cpp helper/sp-marshal.h: helper/sp-marshal.list
diff --git a/src/inkgc/Makefile_insert b/src/inkgc/Makefile_insert
deleted file mode 100644
index 58aa39bb9..000000000
--- a/src/inkgc/Makefile_insert
+++ /dev/null
@@ -1,13 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-inkgc/all: inkgc/libinkgc.a
-
-inkgc/clean:
- rm -f inkgc/libinkgc.a $(inkgc_libinkgc_a_OBJECTS)
-
-inkgc_libinkgc_a_SOURCES = \
- inkgc/gc.cpp \
- inkgc/gc-alloc.h \
- inkgc/gc-core.h \
- inkgc/gc-managed.h \
- inkgc/gc-soft-ptr.h
diff --git a/src/inkview.cpp b/src/inkview.cpp
index b377a3bd0..c90d0b85e 100644
--- a/src/inkview.cpp
+++ b/src/inkview.cpp
@@ -343,13 +343,7 @@ static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss)
gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(ss->window));
g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, ss);
g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL);
-
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
-#else
- GtkWidget *t = gtk_hbutton_box_new();
-#endif
-
+ auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
gtk_container_add(GTK_CONTAINER(ctrlwin), t);
#if GTK_CHECK_VERSION(3,10,0)
@@ -428,19 +422,11 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss)
GdkDisplay *display = gdk_display_get_default();
GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(waiting);
-#else
- gdk_cursor_unref(waiting);
-#endif
if (ctrlwin) {
GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(waiting);
-#else
- gdk_cursor_unref(waiting);
-#endif
}
while(gtk_events_pending()) {
gtk_main_iteration();
diff --git a/src/io/Makefile_insert b/src/io/Makefile_insert
deleted file mode 100644
index 35119ec7b..000000000
--- a/src/io/Makefile_insert
+++ /dev/null
@@ -1,26 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- io/base64stream.h \
- io/base64stream.cpp \
- io/bufferstream.cpp \
- io/bufferstream.h \
- io/gzipstream.cpp \
- io/gzipstream.h \
- io/inkjar.cpp \
- io/inkjar.h \
- io/inkscapestream.cpp \
- io/inkscapestream.h \
- io/resource.cpp \
- io/resource.h \
- io/stringstream.cpp \
- io/stringstream.h \
- io/sys.h \
- io/sys.cpp \
- io/uristream.cpp \
- io/uristream.h \
- io/xsltstream.cpp \
- io/xsltstream.h
-
-#io_streamtest_SOURCES = io/streamtest.cpp
-#io_streamtest_LDADD = $(all_libs)
diff --git a/src/knot.cpp b/src/knot.cpp
index c914315ec..b57c938c3 100644
--- a/src/knot.cpp
+++ b/src/knot.cpp
@@ -124,21 +124,14 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip)
}
SPKnot::~SPKnot() {
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDisplay *display = gdk_display_get_default();
- GdkDeviceManager *dm = gdk_display_get_device_manager(display);
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto display = gdk_display_get_default();
+ auto dm = gdk_display_get_device_manager(display);
+ auto device = gdk_device_manager_get_client_pointer(dm);
if ((this->flags & SP_KNOT_GRABBED) && gdk_display_device_is_grabbed(display, device)) {
// This happens e.g. when deleting a node in node tool while dragging it
gdk_device_ungrab(device, GDK_CURRENT_TIME);
}
-#else
- if ((this->flags & SP_KNOT_GRABBED) && gdk_pointer_is_grabbed ()) {
- // This happens e.g. when deleting a node in node tool while dragging it
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
- }
-#endif
if (this->_event_handler_id > 0) {
g_signal_handler_disconnect(G_OBJECT (this->item), this->_event_handler_id);
@@ -152,11 +145,7 @@ SPKnot::~SPKnot() {
for (gint i = 0; i < SP_KNOT_VISIBLE_STATES; i++) {
if (this->cursor[i]) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(this->cursor[i]);
-#else
- gdk_cursor_unref(this->cursor[i]);
-#endif
this->cursor[i] = NULL;
}
}
@@ -523,57 +512,33 @@ void SPKnot::setImage(guchar* normal, guchar* mouseover, guchar* dragging) {
void SPKnot::setCursor(GdkCursor* normal, GdkCursor* mouseover, GdkCursor* dragging) {
if (cursor[SP_KNOT_STATE_NORMAL]) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor[SP_KNOT_STATE_NORMAL]);
-#else
- gdk_cursor_unref(cursor[SP_KNOT_STATE_NORMAL]);
-#endif
}
cursor[SP_KNOT_STATE_NORMAL] = normal;
if (normal) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_ref(normal);
-#else
- gdk_cursor_ref(normal);
-#endif
}
if (cursor[SP_KNOT_STATE_MOUSEOVER]) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor[SP_KNOT_STATE_MOUSEOVER]);
-#else
- gdk_cursor_unref(cursor[SP_KNOT_STATE_MOUSEOVER]);
-#endif
}
cursor[SP_KNOT_STATE_MOUSEOVER] = mouseover;
if (mouseover) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_ref(mouseover);
-#else
- gdk_cursor_ref(mouseover);
-#endif
}
if (cursor[SP_KNOT_STATE_DRAGGING]) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor[SP_KNOT_STATE_DRAGGING]);
-#else
- gdk_cursor_unref(cursor[SP_KNOT_STATE_DRAGGING]);
-#endif
}
cursor[SP_KNOT_STATE_DRAGGING] = dragging;
if (dragging) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_ref(dragging);
-#else
- gdk_cursor_ref(dragging);
-#endif
}
}
diff --git a/src/libavoid/Makefile_insert b/src/libavoid/Makefile_insert
deleted file mode 100644
index 3a9b97cef..000000000
--- a/src/libavoid/Makefile_insert
+++ /dev/null
@@ -1,37 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libavoid/all: libavoid/libavoid.a
-
-libavoid/clean:
- rm -f libavoid/libavoid.a $(libavoid_libavoid_a_OBJECTS)
-
-libavoid_libavoid_a_SOURCES = \
- libavoid/assertions.h \
- libavoid/connector.cpp \
- libavoid/connector.h \
- libavoid/debug.h \
- libavoid/geometry.cpp \
- libavoid/geometry.h \
- libavoid/geomtypes.cpp \
- libavoid/geomtypes.h \
- libavoid/graph.cpp \
- libavoid/graph.h \
- libavoid/makepath.cpp \
- libavoid/makepath.h \
- libavoid/orthogonal.cpp \
- libavoid/orthogonal.h \
- libavoid/vpsc.cpp \
- libavoid/vpsc.h \
- libavoid/router.cpp \
- libavoid/router.h \
- libavoid/shape.cpp \
- libavoid/shape.h \
- libavoid/timer.cpp \
- libavoid/timer.h \
- libavoid/vertices.cpp \
- libavoid/vertices.h \
- libavoid/visibility.cpp \
- libavoid/visibility.h \
- libavoid/viscluster.cpp \
- libavoid/viscluster.h \
- libavoid/libavoid.h
diff --git a/src/libcola/Makefile_insert b/src/libcola/Makefile_insert
deleted file mode 100644
index dc032a289..000000000
--- a/src/libcola/Makefile_insert
+++ /dev/null
@@ -1,18 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcola/all: libcola.a
-
-libcola/clean:
- rm -f libcola/libcola.a $(libcola_libcola_a_OBJECTS)
-
-libcola_libcola_a_SOURCES = libcola/cola.h\
- libcola/cola.cpp\
- libcola/conjugate_gradient.cpp\
- libcola/conjugate_gradient.h\
- libcola/gradient_projection.cpp\
- libcola/gradient_projection.h\
- libcola/shortest_paths.cpp\
- libcola/shortest_paths.h\
- libcola/straightener.h\
- libcola/straightener.cpp\
- libcola/connected_components.cpp
diff --git a/src/libcroco/Makefile_insert b/src/libcroco/Makefile_insert
deleted file mode 100644
index 97ed49ee8..000000000
--- a/src/libcroco/Makefile_insert
+++ /dev/null
@@ -1,64 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcroco/all: libcroco/libcroco.a
-
-libcroco/clean:
- rm -f libcroco/libcroco.a $(libcroco_libcroco_a_OBJECTS)
-
-libcroco_libcroco_a_SOURCES = \
- libcroco/cr-utils.c \
- libcroco/cr-utils.h \
- libcroco/cr-input.c \
- libcroco/cr-input.h \
- libcroco/cr-enc-handler.c \
- libcroco/cr-enc-handler.h \
- libcroco/cr-num.c \
- libcroco/cr-num.h \
- libcroco/cr-rgb.c \
- libcroco/cr-rgb.h \
- libcroco/cr-token.c \
- libcroco/cr-token.h \
- libcroco/cr-tknzr.c \
- libcroco/cr-tknzr.h \
- libcroco/cr-term.c \
- libcroco/cr-term.h \
- libcroco/cr-attr-sel.c \
- libcroco/cr-attr-sel.h \
- libcroco/cr-pseudo.c \
- libcroco/cr-pseudo.h \
- libcroco/cr-additional-sel.c \
- libcroco/cr-additional-sel.h \
- libcroco/cr-simple-sel.c \
- libcroco/cr-simple-sel.h \
- libcroco/cr-selector.c \
- libcroco/cr-selector.h \
- libcroco/cr-doc-handler.c \
- libcroco/cr-doc-handler.h \
- libcroco/cr-parser.c \
- libcroco/cr-parser.h \
- libcroco/cr-declaration.c \
- libcroco/cr-declaration.h \
- libcroco/cr-statement.c \
- libcroco/cr-statement.h \
- libcroco/cr-stylesheet.c \
- libcroco/cr-stylesheet.h \
- libcroco/cr-cascade.c \
- libcroco/cr-cascade.h \
- libcroco/cr-om-parser.c \
- libcroco/cr-om-parser.h \
- libcroco/cr-style.c \
- libcroco/cr-style.h \
- libcroco/cr-libxml-node-iface.c \
- libcroco/cr-libxml-node-iface.h \
- libcroco/cr-node-iface.h \
- libcroco/cr-sel-eng.c \
- libcroco/cr-sel-eng.h \
- libcroco/cr-fonts.c \
- libcroco/cr-fonts.h \
- libcroco/cr-prop-list.c \
- libcroco/cr-prop-list.h \
- libcroco/cr-parsing-location.c \
- libcroco/cr-parsing-location.h \
- libcroco/cr-string.c \
- libcroco/cr-string.h \
- libcroco/libcroco.h
diff --git a/src/libdepixelize/Makefile_insert b/src/libdepixelize/Makefile_insert
deleted file mode 100644
index 8aed7244f..000000000
--- a/src/libdepixelize/Makefile_insert
+++ /dev/null
@@ -1,22 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libdepixelize/all: libdepixelize/libdepixelize.a
-
-libdepixelize/clean:
- rm -f libdepixelize/libdepixelize.a $(libdepixelize_libdepixelize_a_OBJECTS)
-
-libdepixelize_libdepixelize_a_SOURCES = \
- libdepixelize/kopftracer2011.cpp \
- libdepixelize/kopftracer2011.h \
- libdepixelize/splines.h \
- libdepixelize/priv/branchless.h \
- libdepixelize/priv/colorspace.h \
- libdepixelize/priv/curvature.h \
- libdepixelize/priv/homogeneoussplines.h \
- libdepixelize/priv/integral.h \
- libdepixelize/priv/iterator.h \
- libdepixelize/priv/optimization-kopf2011.h \
- libdepixelize/priv/pixelgraph.h \
- libdepixelize/priv/point.h \
- libdepixelize/priv/simplifiedvoronoi.h \
- libdepixelize/priv/splines-kopf2011.h
diff --git a/src/libgdl/CMakeLists.txt b/src/libgdl/CMakeLists.txt
deleted file mode 100644
index a452320f7..000000000
--- a/src/libgdl/CMakeLists.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-if (NOT "${WITH_EXT_GDL}")
-
- set(libgdl_SRC
- gdl-dock-bar.c
- gdl-dock-item-button-image.c
- gdl-dock-item-grip.c
- gdl-dock-item.c
- gdl-dock-master.c
- gdl-dock-notebook.c
- gdl-dock-object.c
- gdl-dock-paned.c
- gdl-dock-placeholder.c
- gdl-dock-tablabel.c
- gdl-dock.c
- gdl-i18n.c
- gdl-switcher.c
- libgdlmarshal.c
- libgdltypebuiltins.c
-
-
- # -------
- # Headers
- gdl-dock-bar.h
- gdl-dock-item-button-image.h
- gdl-dock-item-grip.h
- gdl-dock-item.h
- gdl-dock-master.h
- gdl-dock-notebook.h
- gdl-dock-object.h
- gdl-dock-paned.h
- gdl-dock-placeholder.h
- gdl-dock-tablabel.h
- gdl-dock.h
- gdl-i18n.h
- gdl-switcher.h
- gdl.h
- libgdlmarshal.h
- libgdltypebuiltins.h
- )
-
- if(WIN32)
- list(APPEND libgdl_SRC
- gdl-win32.c
- gdl-win32.h
- )
- endif()
-
- add_inkscape_lib(gdl_LIB "${libgdl_SRC}")
-
-endif()
diff --git a/src/libgdl/Makefile_insert b/src/libgdl/Makefile_insert
deleted file mode 100644
index e4cab95fc..000000000
--- a/src/libgdl/Makefile_insert
+++ /dev/null
@@ -1,92 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_EXT_GDL
-
-EXTRA_DIST += \
- libgdl/gdl-dock-object.h \
- libgdl/gdl-dock-master.h \
- libgdl/gdl-dock.h \
- libgdl/gdl-dock-item.h \
- libgdl/gdl-dock-notebook.h \
- libgdl/gdl-dock-paned.h \
- libgdl/gdl-dock-tablabel.h \
- libgdl/gdl-dock-placeholder.h \
- libgdl/gdl-dock-bar.h \
- libgdl/gdl-i18n.h \
- libgdl/gdl-i18n.c \
- libgdl/gdl-dock-object.c \
- libgdl/gdl-dock-master.c \
- libgdl/gdl-dock.c \
- libgdl/gdl-dock-item.c \
- libgdl/gdl-dock-item-button-image.c \
- libgdl/gdl-dock-item-button-image.h \
- libgdl/gdl-dock-item-grip.h \
- libgdl/gdl-dock-item-grip.c \
- libgdl/gdl-dock-notebook.c \
- libgdl/gdl-dock-paned.c \
- libgdl/gdl-dock-tablabel.c \
- libgdl/gdl-dock-placeholder.c \
- libgdl/gdl-dock-bar.c \
- libgdl/gdl-switcher.h \
- libgdl/gdl-switcher.c \
- libgdl/gdl-win32.h \
- libgdl/gdl-win32.c \
- libgdl/libgdltypebuiltins.h \
- libgdl/libgdltypebuiltins.c \
- libgdl/libgdlmarshal.h \
- libgdl/libgdlmarshal.c \
- libgdl/gdl.h
-
-else # WITH_EXT_GDL
-
-libgdl/all: libgdl/libgdl.a
-
-libgdl/clean:
- rm -f libgdl/libgdl.a $(libgdl_gdl_a_OBJECTS)
-
-# Suppress some non-critical warnings for libgdl. We will drop our forked copy
-# of GDL once we upgrade to Gtk+ 3 so it's more important to minimise the number
-# of changes we make to GDL than to fix these minor issues in trunk.
-
-if CC_WNO_UNUSED_BUT_SET_VARIABLE_SUPPORTED
-libgdl_libgdl_a_CFLAGS = -Wno-unused-parameter -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-missing-field-initializers $(AM_CFLAGS)
-else
-libgdl_libgdl_a_CFLAGS = -Wno-unused-parameter -Wno-sign-compare -Wno-unused-variable -Wno-missing-field-initializers $(AM_CFLAGS)
-endif
-
-libgdl_libgdl_a_SOURCES = \
- libgdl/gdl-dock-object.h \
- libgdl/gdl-dock-master.h \
- libgdl/gdl-dock.h \
- libgdl/gdl-dock-item.h \
- libgdl/gdl-dock-notebook.h \
- libgdl/gdl-dock-paned.h \
- libgdl/gdl-dock-tablabel.h \
- libgdl/gdl-dock-placeholder.h \
- libgdl/gdl-dock-bar.h \
- libgdl/gdl-i18n.h \
- libgdl/gdl-i18n.c \
- libgdl/gdl-dock-object.c \
- libgdl/gdl-dock-master.c \
- libgdl/gdl-dock.c \
- libgdl/gdl-dock-item.c \
- libgdl/gdl-dock-item-button-image.c \
- libgdl/gdl-dock-item-button-image.h \
- libgdl/gdl-dock-item-grip.h \
- libgdl/gdl-dock-item-grip.c \
- libgdl/gdl-dock-notebook.c \
- libgdl/gdl-dock-paned.c \
- libgdl/gdl-dock-tablabel.c \
- libgdl/gdl-dock-placeholder.c \
- libgdl/gdl-dock-bar.c \
- libgdl/gdl-switcher.h \
- libgdl/gdl-switcher.c \
- libgdl/gdl-win32.h \
- libgdl/gdl-win32.c \
- libgdl/libgdltypebuiltins.h \
- libgdl/libgdltypebuiltins.c \
- libgdl/libgdlmarshal.h \
- libgdl/libgdlmarshal.c \
- libgdl/gdl.h
-
-endif
diff --git a/src/libgdl/README.gdl-dock b/src/libgdl/README.gdl-dock
deleted file mode 100644
index 113926dbe..000000000
--- a/src/libgdl/README.gdl-dock
+++ /dev/null
@@ -1,184 +0,0 @@
-This file is meant to contain a little documentation about the GdlDock
-and related widgets. It's incomplete and probably a bit out of date.
-And it probably belongs to a doc/ subdirectory.
-
-Please send comments to the devtools list (gnome-devtools@gnome.org)
-and report bugs to bugzilla (bugzilla.gnome.org). Also check the todo
-list at the end of this document.
-
-Have fun,
-Gustavo
-
-
-Overview
---------
-
-The GdlDock is a hierarchical based docking widget. It is composed of
-widgets derived from the abstract class GdlDockObject which defines
-the basic interface for docking widgets on top of others.
-
-The toplevel entries for docks are GdlDock widgets, which in turn hold
-a tree of GdlDockItem widgets. For the toplevel docks to be able to
-interact with each other (when the user drags items from one place to
-another) they're all kept in a user-invisible and automatic object
-called the master. To participate in docking operations every
-GdlDockObject must have the same master (the binding to the master is
-done automatically). The master also keeps track of the manual items
-(mostly those created with gdl_dock_*_new functions) which are in the
-dock.
-
-Layout loading/saving service is provided by a separate object called
-GdlDockLayout. Currently it stores information in XML format, but
-another backend could be easily written. To keep the external XML
-file in sync with the dock, monitor the "dirty" property of the layout
-object and call gdl_dock_layout_save_to_file when this changes to
-TRUE. No other action is required (the layout_changed is monitored by
-the layout object for you now).
-
-
-GdlDockObject
-=============
-
-A DockObject has:
-
-- a master, which manages all the objects in a dock ring ("master"
- property, construct only).
-
-- a name. If the object is manual the name can be used to recall the
- object from any other object in the ring ("name" property).
-
-- a long, descriptive name ("long-name" property).
-
-A DockObject can be:
-
-- automatic or manual. If it's automatic it means the lifecycle of
- the object is entirely managed by the dock master. If it's manual
- in general means the user specified such object, and so it's not to
- be destroyed automatically at any time.
-
-- frozen. In this case any call to reduce on the object has no
- immediate effect. When the object is later thawn, any pending
- reduce calls are made (maybe leading to the destruction of the
- object).
-
-- attached or detached. In general for dock items, being attached
- will mean the item has its widget->parent set. For docks it will
- mean they belong to some dock master's ring. In general, automatic
- objects which are detached will be destroyed (unless frozen).
-
-- bound to a master or free. In order to participate in dock
- operations, each dock object must be bound to a dock master (which
- is a separate, non-gui object). In general, bindings are treated
- automatically by the object, and this is entirely true for automatic
- objects. For manual objects, the master holds an additional
- reference and has structures to store and recall them by nick names.
- Normally, a manual object will only be destroyed when it's unbound
- from the master.
-
-- simple or compound. This actually depends on the subclass of the
- dock object. The difference is made so we can put restrictions in
- how the objects are docked on top of another (e.g. you can't dock a
- compound object inside a notebook). If you look at the whole
- docking layout as a tree, simple objects are the leaves, while all
- the interior nodes are compound.
-
-- reduced. This is only meaningful for compound objects. If the
- number of contained items has decreased to one the compound type
- object is no longer necessary to hold the child. In this case the
- child is reattached to the object's parent. If the number of
- contained items has reached zero, the object is detached and reduce
- is called on its parent. For toplevel docks, the object is only
- detached if it's automatic. In any case, the future of the object
- itself depends on whether it's automatic or manual.
-
-- requested to possibly dock another object. Depending on the
- type's behavior, the object can accept or reject this request. If
- it accepts it, it should fill in some additional information
- regarding how it will host the peer object.
-
-- asked to dock another object. Depending on the object's internal
- structure and behavior two options can be taken: to dock the object
- directly (e.g. a notebook docking another object); or to create an
- automatic compound object which will be attached in place of the
- actual object, and will host both the original object and the
- requestor (e.g. a simple item docking another simple item, which
- should create a paned/notebook). The type of the new object will be
- decided by the original objet based on the docking position.
-
-
-DETACHING: the action by which an object is unparented. The object is
-then ready to be docked in some other place. Newly created objects
-are always detached, except for toplevels (which are created attached
-by default). An automatic object which is detached gets destroyed
-afterwards, since its ref count drops to zero. Floating automatic
-toplevels never reach a zero ref count when detached, since the
-GtkWindow always keeps a reference to it (and the GtkWindow has a user
-reference). That's why floating automatic toplevels are destroyed
-when reduced.
-
-REDUCING: for compound objects, when the number of contained children
-drops to one or zero, the container is no longer necessary. In this
-case, the object is detached, and any remaining child is reattached to
-the object's former parent. The limit for toplevels is one for
-automatic objects and zero for manual (i.e. they can even be empty).
-For simple (not compound) objects reducing doesn't make sense.
-
-UNBINDING: to participate in a dock ring, every object must be bound
-to a master. The master connects to dock item signals and keeps a
-list of bound toplevels. Additionally, a reference is kept for manual
-objects (this is so the user doesn't need to keep track of them, but
-can perform operations like hiding and such).
-
-
-
-GdlDock
-=======
-
-- Properties:
-
- "floating" (gboolean, construct-only): whether the dock is floating in
- its own window or not.
-
- "default-title" (gchar, read-write): title for new floating docks.
- This property is proxied to the master, which truly holds it.
-
-The title for the floating docks is: the user supplied title
-(GdlDockObject's long_name property) if it's set, the default title
-(from the master) or an automatically generated title.
-
-
-- Signals:
-
- "layout-changed": emitted when the user changed the layout of the
- dock somehow.
-
-
-TODO LIST
-=========
-
-- Functionality for the item grip: provide a11y
-
-- Implement notebook tab reordering
-
-- Implement dock bands for toolbars and menus.
-
-- A dock-related thing is to build resizable toolbars (something like
- the ones Windows have, where the buttons are reflowed according to
- the space available).
-
-- Redesign paneds so they can hold more than two items and resize all
- of them at once by using the handle (see if gimpdock does that).
-
-- Find a way to allow the merging of menu items to the item's popup
- menu. Also, there should be a way for the master to insert some
- menu items.
-
-- Bonobo UI synchronizer.
-
-- Item behavoirs: implement the ones missing and maybe think more of
- them (e.g. positions where it's possible to dock the item, etc.)
-
-- Make a nicer dragbar for the items, with buttons for undocking,
- closing, hidding, etc. (See sodipodi, kdevelop)
-
-
diff --git a/src/libgdl/gdl-dock-bar.c b/src/libgdl/gdl-dock-bar.c
deleted file mode 100644
index c1fe21872..000000000
--- a/src/libgdl/gdl-dock-bar.c
+++ /dev/null
@@ -1,1049 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2003 Jeroen Zwartepoorte <jeroen@xs4all.nl>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdl-dock.h"
-#include "gdl-dock-master.h"
-#include "gdl-dock-bar.h"
-#include "libgdltypebuiltins.h"
-
-enum {
- PROP_0,
- PROP_MASTER,
- PROP_DOCKBAR_STYLE
-};
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_bar_class_init (GdlDockBarClass *klass);
-
-static void gdl_dock_bar_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_bar_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_bar_destroy (GtkObject *object);
-
-static void gdl_dock_bar_attach (GdlDockBar *dockbar,
- GdlDockMaster *master);
-static void gdl_dock_bar_remove_item (GdlDockBar *dockbar,
- GdlDockItem *item);
-
-/* ----- Class variables and definitions ----- */
-
-struct _GdlDockBarPrivate {
- GdlDockMaster *master;
- GSList *items;
- GtkOrientation orientation;
- GdlDockBarStyle dockbar_style;
-};
-
-/* ----- Private functions ----- */
-
-G_DEFINE_TYPE (GdlDockBar, gdl_dock_bar, GTK_TYPE_BOX)
-
-static void gdl_dock_bar_size_request (GtkWidget *widget,
- GtkRequisition *requisition );
-static void gdl_dock_bar_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation );
-static void gdl_dock_bar_size_vrequest (GtkWidget *widget,
- GtkRequisition *requisition );
-static void gdl_dock_bar_size_vallocate (GtkWidget *widget,
- GtkAllocation *allocation );
-static void gdl_dock_bar_size_hrequest (GtkWidget *widget,
- GtkRequisition *requisition );
-static void gdl_dock_bar_size_hallocate (GtkWidget *widget,
- GtkAllocation *allocation );
-static void update_dock_items (GdlDockBar *dockbar, gboolean full_update);
-
-void
-gdl_dock_bar_class_init (GdlDockBarClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
-
- g_object_class->get_property = gdl_dock_bar_get_property;
- g_object_class->set_property = gdl_dock_bar_set_property;
-
- gtk_object_class->destroy = gdl_dock_bar_destroy;
-
- g_object_class_install_property (
- g_object_class, PROP_MASTER,
- g_param_spec_object ("master", _("Master"),
- _("GdlDockMaster object which the dockbar widget "
- "is attached to"),
- GDL_TYPE_DOCK_MASTER,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_DOCKBAR_STYLE,
- g_param_spec_enum ("dockbar-style", _("Dockbar style"),
- _("Dockbar style to show items on it"),
- GDL_TYPE_DOCK_BAR_STYLE,
- GDL_DOCK_BAR_BOTH,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- widget_class = GTK_WIDGET_CLASS (klass);
- widget_class->size_request = gdl_dock_bar_size_request;
- widget_class->size_allocate = gdl_dock_bar_size_allocate;
-}
-
-static void
-gdl_dock_bar_init (GdlDockBar *dockbar)
-{
- dockbar->_priv = g_new0 (GdlDockBarPrivate, 1);
- dockbar->_priv->master = NULL;
- dockbar->_priv->items = NULL;
- dockbar->_priv->orientation = GTK_ORIENTATION_VERTICAL;
- dockbar->_priv->dockbar_style = GDL_DOCK_BAR_BOTH;
-}
-
-static void
-gdl_dock_bar_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockBar *dockbar = GDL_DOCK_BAR (object);
-
- switch (prop_id) {
- case PROP_MASTER:
- g_value_set_object (value, dockbar->_priv->master);
- break;
- case PROP_DOCKBAR_STYLE:
- g_value_set_enum (value, dockbar->_priv->dockbar_style);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- };
-}
-
-static void
-gdl_dock_bar_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockBar *dockbar = GDL_DOCK_BAR (object);
-
- switch (prop_id) {
- case PROP_MASTER:
- gdl_dock_bar_attach (dockbar, g_value_get_object (value));
- break;
- case PROP_DOCKBAR_STYLE:
- dockbar->_priv->dockbar_style = g_value_get_enum (value);
- update_dock_items (dockbar, TRUE);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- };
-}
-
-static void
-on_dock_item_foreach_disconnect (GdlDockItem *item, GdlDockBar *dock_bar)
-{
- g_signal_handlers_disconnect_by_func (item, gdl_dock_bar_remove_item,
- dock_bar);
-}
-
-static void
-gdl_dock_bar_destroy (GtkObject *object)
-{
- GdlDockBar *dockbar = GDL_DOCK_BAR (object);
-
- if (dockbar->_priv) {
- GdlDockBarPrivate *priv = dockbar->_priv;
-
- if (priv->items) {
- g_slist_foreach (priv->items,
- (GFunc) on_dock_item_foreach_disconnect,
- object);
- g_slist_free (priv->items);
- }
-
- if (priv->master) {
- g_signal_handlers_disconnect_matched (priv->master,
- G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, dockbar);
- g_object_unref (priv->master);
- priv->master = NULL;
- }
-
- dockbar->_priv = NULL;
-
- g_free (priv);
- }
-
- GTK_OBJECT_CLASS (gdl_dock_bar_parent_class)->destroy (object);
-}
-
-static void
-gdl_dock_bar_remove_item (GdlDockBar *dockbar,
- GdlDockItem *item)
-{
- GdlDockBarPrivate *priv;
- GtkWidget *button;
-
- g_return_if_fail (GDL_IS_DOCK_BAR (dockbar));
- g_return_if_fail (GDL_IS_DOCK_ITEM (item));
-
- priv = dockbar->_priv;
-
- if (g_slist_index (priv->items, item) == -1) {
- g_warning ("Item has not been added to the dockbar");
- return;
- }
-
- priv->items = g_slist_remove (priv->items, item);
-
- button = g_object_get_data (G_OBJECT (item), "GdlDockBarButton");
- g_assert (button != NULL);
- gtk_container_remove (GTK_CONTAINER (dockbar), button);
- g_object_set_data (G_OBJECT (item), "GdlDockBarButton", NULL);
- g_signal_handlers_disconnect_by_func (item,
- G_CALLBACK (gdl_dock_bar_remove_item),
- dockbar);
-}
-
-static void
-gdl_dock_bar_item_clicked (GtkWidget *button,
- GdlDockItem *item)
-{
- GdlDockBar *dockbar;
- GdlDockObject *controller;
-
- g_return_if_fail (item != NULL);
-
- dockbar = g_object_get_data (G_OBJECT (item), "GdlDockBar");
- g_assert (dockbar != NULL);
- g_object_set_data (G_OBJECT (item), "GdlDockBar", NULL);
-
- controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
-
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED);
- gdl_dock_item_show_item (item);
- gdl_dock_bar_remove_item (dockbar, item);
- gtk_widget_queue_resize (GTK_WIDGET (controller));
-}
-
-static void
-gdl_dock_bar_add_item (GdlDockBar *dockbar,
- GdlDockItem *item)
-{
- GdlDockBarPrivate *priv;
- GtkWidget *button;
- gchar *stock_id;
- gchar *name;
- GdkPixbuf *pixbuf_icon;
- GtkWidget *image, *box, *label;
-
- g_return_if_fail (GDL_IS_DOCK_BAR (dockbar));
- g_return_if_fail (GDL_IS_DOCK_ITEM (item));
-
- priv = dockbar->_priv;
-
- if (g_slist_index (priv->items, item) != -1) {
- g_warning ("Item has already been added to the dockbar");
- return;
- }
-
- priv->items = g_slist_append (priv->items, item);
-
- /* Create a button for the item. */
- button = gtk_button_new ();
- gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
-
- if (dockbar->_priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- box = gtk_hbox_new (FALSE, 0);
- else
- box = gtk_vbox_new (FALSE, 0);
-
- g_object_get (item, "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon,
- "long-name", &name, NULL);
-
- if (dockbar->_priv->dockbar_style == GDL_DOCK_BAR_TEXT ||
- dockbar->_priv->dockbar_style == GDL_DOCK_BAR_BOTH) {
- label = gtk_label_new (name);
- if (dockbar->_priv->orientation == GTK_ORIENTATION_VERTICAL)
- gtk_label_set_angle (GTK_LABEL (label), 90);
- gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
- }
-
- /* FIXME: For now AUTO behaves same as BOTH */
-
- if (dockbar->_priv->dockbar_style == GDL_DOCK_BAR_ICONS ||
- dockbar->_priv->dockbar_style == GDL_DOCK_BAR_BOTH ||
- dockbar->_priv->dockbar_style == GDL_DOCK_BAR_AUTO) {
- if (stock_id) {
- image = gtk_image_new_from_stock (stock_id,
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- g_free (stock_id);
- } else if (pixbuf_icon) {
- image = gtk_image_new_from_pixbuf (pixbuf_icon);
- } else {
- image = gtk_image_new_from_stock ("gtk-new",
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- }
- gtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);
- }
-
- gtk_container_add (GTK_CONTAINER (button), box);
- gtk_box_pack_start (GTK_BOX (dockbar), button, FALSE, FALSE, 0);
-
- gtk_widget_set_tooltip_text (button, name);
- g_free (name);
-
- g_object_set_data (G_OBJECT (item), "GdlDockBar", dockbar);
- g_object_set_data (G_OBJECT (item), "GdlDockBarButton", button);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (gdl_dock_bar_item_clicked), item);
-
- gtk_widget_show_all (button);
-
- /* Set up destroy notify */
- g_signal_connect_swapped (item, "destroy",
- G_CALLBACK (gdl_dock_bar_remove_item),
- dockbar);
-}
-
-static void
-build_list (GdlDockObject *object, GList **list)
-{
- /* add only items, not toplevels */
- if (GDL_IS_DOCK_ITEM (object))
- *list = g_list_prepend (*list, object);
-}
-
-static void
-update_dock_items (GdlDockBar *dockbar, gboolean full_update)
-{
- GdlDockMaster *master;
- GList *items, *l;
-
- g_return_if_fail (dockbar != NULL);
-
- if (!dockbar->_priv->master)
- return;
-
- master = dockbar->_priv->master;
-
- /* build items list */
- items = NULL;
- gdl_dock_master_foreach (master, (GFunc) build_list, &items);
-
- if (!full_update) {
- for (l = items; l != NULL; l = l->next) {
- GdlDockItem *item = GDL_DOCK_ITEM (l->data);
-
- if (g_slist_index (dockbar->_priv->items, item) != -1 &&
- !GDL_DOCK_ITEM_ICONIFIED (item))
- gdl_dock_bar_remove_item (dockbar, item);
- else if (g_slist_index (dockbar->_priv->items, item) == -1 &&
- GDL_DOCK_ITEM_ICONIFIED (item))
- gdl_dock_bar_add_item (dockbar, item);
- }
- } else {
- for (l = items; l != NULL; l = l->next) {
- GdlDockItem *item = GDL_DOCK_ITEM (l->data);
-
- if (g_slist_index (dockbar->_priv->items, item) != -1)
- gdl_dock_bar_remove_item (dockbar, item);
- if (GDL_DOCK_ITEM_ICONIFIED (item))
- gdl_dock_bar_add_item (dockbar, item);
- }
- }
- g_list_free (items);
-}
-
-static void
-gdl_dock_bar_layout_changed_cb (GdlDockMaster *master,
- GdlDockBar *dockbar)
-{
- update_dock_items (dockbar, FALSE);
-}
-
-static void
-gdl_dock_bar_attach (GdlDockBar *dockbar,
- GdlDockMaster *master)
-{
- g_return_if_fail (dockbar != NULL);
- g_return_if_fail (master == NULL || GDL_IS_DOCK_MASTER (master));
-
- if (dockbar->_priv->master) {
- g_signal_handlers_disconnect_matched (dockbar->_priv->master,
- G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, dockbar);
- g_object_unref (dockbar->_priv->master);
- }
-
- dockbar->_priv->master = master;
- if (dockbar->_priv->master) {
- g_object_ref (dockbar->_priv->master);
- g_signal_connect (dockbar->_priv->master, "layout-changed",
- G_CALLBACK (gdl_dock_bar_layout_changed_cb),
- dockbar);
- }
-
- update_dock_items (dockbar, FALSE);
-}
-
-static void gdl_dock_bar_size_request (GtkWidget *widget,
- GtkRequisition *requisition )
-{
- GdlDockBar *dockbar;
-
- dockbar = GDL_DOCK_BAR (widget);
-
- /* default to vertical for unknown values */
- switch (dockbar->_priv->orientation) {
- case GTK_ORIENTATION_HORIZONTAL:
- gdl_dock_bar_size_hrequest (widget, requisition);
- break;
- case GTK_ORIENTATION_VERTICAL:
- default:
- gdl_dock_bar_size_vrequest (widget, requisition);
- break;
- }
-}
-
-static void gdl_dock_bar_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation )
-{
- GdlDockBar *dockbar;
-
- dockbar = GDL_DOCK_BAR (widget);
-
- /* default to vertical for unknown values */
- switch (dockbar->_priv->orientation) {
- case GTK_ORIENTATION_HORIZONTAL:
- gdl_dock_bar_size_hallocate (widget, allocation);
- break;
- case GTK_ORIENTATION_VERTICAL:
- default:
- gdl_dock_bar_size_vallocate (widget, allocation);
- break;
- }
-}
-
-static void gdl_dock_bar_size_vrequest (GtkWidget *widget,
- GtkRequisition *requisition )
-{
- GtkBox *box;
- GtkRequisition child_requisition;
- GList *child;
- gint nvis_children;
- gint height;
- guint border_width;
-
- box = GTK_BOX (widget);
- requisition->width = 0;
- requisition->height = 0;
- nvis_children = 0;
-
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- if (gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_widget_size_request (GTK_WIDGET (child->data), &child_requisition);
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if (gtk_box_get_homogeneous (box))
- {
- height = child_requisition.height + padding * 2;
- requisition->height = MAX (requisition->height, height);
- }
- else
- {
- requisition->height += child_requisition.height + padding * 2;
- }
-
- requisition->width = MAX (requisition->width, child_requisition.width);
-
- nvis_children += 1;
- }
- }
-
- if (nvis_children > 0)
- {
- if (gtk_box_get_homogeneous (box))
- requisition->height *= nvis_children;
- requisition->height += (nvis_children - 1) * gtk_box_get_spacing (box);
- }
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (box));
- requisition->width += border_width * 2;
- requisition->height += border_width * 2;
-
-}
-
-static void gdl_dock_bar_size_vallocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GtkBox *box;
- GList *child;
- GtkAllocation child_allocation;
- gint nvis_children;
- gint nexpand_children;
- gint child_height;
- gint height;
- gint extra;
- gint y;
- guint border_width;
- GtkRequisition requisition;
-
- box = GTK_BOX (widget);
- gtk_widget_set_allocation (widget, allocation);
-
- gtk_widget_get_requisition (widget, &requisition);
-
- nvis_children = 0;
- nexpand_children = 0;
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
- if (gtk_widget_get_visible (GTK_WIDGET(child->data)))
- {
- nvis_children += 1;
- if (expand)
- nexpand_children += 1;
- }
- }
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (box));
-
- if (nvis_children > 0)
- {
- if (gtk_box_get_homogeneous (box))
- {
- height = (allocation->height -
- border_width * 2 -
- (nvis_children - 1) * gtk_box_get_spacing (box));
- extra = height / nvis_children;
- }
- else if (nexpand_children > 0)
- {
- height = (gint) allocation->height - (gint) requisition.height;
- extra = height / nexpand_children;
- }
- else
- {
- height = 0;
- extra = 0;
- }
-
- y = allocation->y + border_width;
- child_allocation.x = allocation->x + border_width;
- child_allocation.width = MAX (1, (gint) allocation->width - (gint) border_width * 2);
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if ((pack_type == GTK_PACK_START) && gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- if (gtk_box_get_homogeneous (box))
- {
- if (nvis_children == 1)
- child_height = height;
- else
- child_height = extra;
-
- nvis_children -= 1;
- height -= extra;
- }
- else
- {
- GtkRequisition child_requisition;
-
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
- child_height = child_requisition.height + padding * 2;
-
- if (expand)
- {
- if (nexpand_children == 1)
- child_height += height;
- else
- child_height += extra;
-
- nexpand_children -= 1;
- height -= extra;
- }
- }
-
- if (fill)
- {
- child_allocation.height = MAX (1, child_height - padding * 2);
- child_allocation.y = y + padding;
- }
- else
- {
- GtkRequisition child_requisition;
-
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
- child_allocation.height = child_requisition.height;
- child_allocation.y = y + (child_height - child_allocation.height) / 2;
- }
-
- gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation);
-
- y += child_height + gtk_box_get_spacing (box);
- }
- }
-
- y = allocation->y + allocation->height - border_width;
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if ((pack_type == GTK_PACK_END) && gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- GtkRequisition child_requisition;
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
-
- if (gtk_box_get_homogeneous (box))
- {
- if (nvis_children == 1)
- child_height = height;
- else
- child_height = extra;
-
- nvis_children -= 1;
- height -= extra;
- }
- else
- {
- child_height = child_requisition.height + padding * 2;
-
- if (expand)
- {
- if (nexpand_children == 1)
- child_height += height;
- else
- child_height += extra;
-
- nexpand_children -= 1;
- height -= extra;
- }
- }
-
- if (fill)
- {
- child_allocation.height = MAX (1, child_height - padding * 2);
- child_allocation.y = y + padding - child_height;
- }
- else
- {
- child_allocation.height = child_requisition.height;
- child_allocation.y = y + (child_height - child_allocation.height) / 2 - child_height;
- }
-
- gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation);
-
- y -= (child_height + gtk_box_get_spacing (box));
- }
- }
- }
-}
-
-static void gdl_dock_bar_size_hrequest (GtkWidget *widget,
- GtkRequisition *requisition )
-{
- GtkBox *box;
- GList *child;
- gint nvis_children;
- gint width;
- guint border_width;
-
- box = GTK_BOX (widget);
- requisition->width = 0;
- requisition->height = 0;
- nvis_children = 0;
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
-
- if (gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- GtkRequisition child_requisition;
-
- gtk_widget_size_request (GTK_WIDGET (child->data), &child_requisition);
-
- if (gtk_box_get_homogeneous (box))
- {
- width = child_requisition.width + padding * 2;
- requisition->width = MAX (requisition->width, width);
- }
- else
- {
- requisition->width += child_requisition.width + padding * 2;
- }
-
- requisition->height = MAX (requisition->height, child_requisition.height);
-
- nvis_children += 1;
- }
- }
-
- if (nvis_children > 0)
- {
- if (gtk_box_get_homogeneous (box))
- requisition->width *= nvis_children;
- requisition->width += (nvis_children - 1) * gtk_box_get_spacing (box);
- }
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (box));
- requisition->width += border_width * 2;
- requisition->height += border_width * 2;
-}
-
-static void gdl_dock_bar_size_hallocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GtkBox *box;
- GList *child;
- GtkAllocation child_allocation;
- gint nvis_children;
- gint nexpand_children;
- gint child_width;
- gint width;
- gint extra;
- gint x;
- guint border_width;
- GtkTextDirection direction;
- GtkRequisition requisition;
-
- box = GTK_BOX (widget);
- gtk_widget_set_allocation (widget, allocation);
- gtk_widget_get_requisition (widget, &requisition);
-
- direction = gtk_widget_get_direction (widget);
-
- nvis_children = 0;
- nexpand_children = 0;
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if (gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- nvis_children += 1;
- if (expand)
- nexpand_children += 1;
- }
- }
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (box));
-
- if (nvis_children > 0)
- {
- if (gtk_box_get_homogeneous (box))
- {
- width = (allocation->width -
- border_width * 2 -
- (nvis_children - 1) * gtk_box_get_spacing (box));
- extra = width / nvis_children;
- }
- else if (nexpand_children > 0)
- {
- width = (gint) allocation->width - (gint) requisition.width;
- extra = width / nexpand_children;
- }
- else
- {
- width = 0;
- extra = 0;
- }
-
- x = allocation->x + border_width;
- child_allocation.y = allocation->y + border_width;
- child_allocation.height = MAX (1, (gint) allocation->height - (gint) border_width * 2);
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if ((pack_type == GTK_PACK_START) && gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- if (gtk_box_get_homogeneous (box))
- {
- if (nvis_children == 1)
- child_width = width;
- else
- child_width = extra;
-
- nvis_children -= 1;
- width -= extra;
- }
- else
- {
- GtkRequisition child_requisition;
-
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
-
- child_width = child_requisition.width + padding * 2;
-
- if (expand)
- {
- if (nexpand_children == 1)
- child_width += width;
- else
- child_width += extra;
-
- nexpand_children -= 1;
- width -= extra;
- }
- }
-
- if (fill)
- {
- child_allocation.width = MAX (1, child_width - padding * 2);
- child_allocation.x = x + padding;
- }
- else
- {
- GtkRequisition child_requisition;
-
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
- child_allocation.width = child_requisition.width;
- child_allocation.x = x + (child_width - child_allocation.width) / 2;
- }
-
- if (direction == GTK_TEXT_DIR_RTL)
- child_allocation.x = allocation->x + allocation->width - (child_allocation.x - allocation->x) - child_allocation.width;
-
- gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation);
-
- x += child_width + gtk_box_get_spacing (box);
- }
- }
-
- x = allocation->x + allocation->width - border_width;
-
- for (child = gtk_container_get_children (GTK_CONTAINER (box));
- child != NULL; child = g_list_next (child))
- {
- guint padding;
- gboolean expand;
- gboolean fill;
- GtkPackType pack_type;
-
- gtk_box_query_child_packing (box,
- child->data,
- &expand,
- &fill,
- &padding,
- &pack_type);
-
- if ((pack_type == GTK_PACK_END) && gtk_widget_get_visible (GTK_WIDGET (child->data)))
- {
- GtkRequisition child_requisition;
- gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition);
-
- if (gtk_box_get_homogeneous (box))
- {
- if (nvis_children == 1)
- child_width = width;
- else
- child_width = extra;
-
- nvis_children -= 1;
- width -= extra;
- }
- else
- {
- child_width = child_requisition.width + padding * 2;
-
- if (expand)
- {
- if (nexpand_children == 1)
- child_width += width;
- else
- child_width += extra;
-
- nexpand_children -= 1;
- width -= extra;
- }
- }
-
- if (fill)
- {
- child_allocation.width = MAX (1, child_width - padding * 2);
- child_allocation.x = x + padding - child_width;
- }
- else
- {
- child_allocation.width = child_requisition.width;
- child_allocation.x = x + (child_width - child_allocation.width) / 2 - child_width;
- }
-
- if (direction == GTK_TEXT_DIR_RTL)
- child_allocation.x = allocation->x + allocation->width - (child_allocation.x - allocation->x) - child_allocation.width;
-
- gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation);
-
- x -= (child_width + gtk_box_get_spacing (box));
- }
- }
- }
-}
-
-GtkWidget *
-gdl_dock_bar_new (GdlDock *dock)
-{
- GdlDockMaster *master = NULL;
-
- /* get the master of the given dock */
- if (dock)
- master = GDL_DOCK_OBJECT_GET_MASTER (dock);
-
- return g_object_new (GDL_TYPE_DOCK_BAR,
- "master", master, NULL);
-}
-
-GtkOrientation gdl_dock_bar_get_orientation (GdlDockBar *dockbar)
-{
- g_return_val_if_fail (GDL_IS_DOCK_BAR (dockbar),
- GTK_ORIENTATION_VERTICAL);
-
- return dockbar->_priv->orientation;
-}
-
-void gdl_dock_bar_set_orientation (GdlDockBar *dockbar,
- GtkOrientation orientation)
-{
- g_return_if_fail (GDL_IS_DOCK_BAR (dockbar));
-
- dockbar->_priv->orientation = orientation;
-
- gtk_widget_queue_resize (GTK_WIDGET (dockbar));
-}
-
-void gdl_dock_bar_set_style(GdlDockBar* dockbar,
- GdlDockBarStyle style)
-{
- g_object_set(G_OBJECT(dockbar), "dockbar-style", style, NULL);
-}
-
-GdlDockBarStyle gdl_dock_bar_get_style(GdlDockBar* dockbar)
-{
- GdlDockBarStyle style;
- g_object_get(G_OBJECT(dockbar), "dockbar-style", &style, NULL);
- return style;
-}
diff --git a/src/libgdl/gdl-dock-bar.h b/src/libgdl/gdl-dock-bar.h
deleted file mode 100644
index ca6da1d26..000000000
--- a/src/libgdl/gdl-dock-bar.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2003 Jeroen Zwartepoorte <jeroen@xs4all.nl>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_BAR_H__
-#define __GDL_DOCK_BAR_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_BAR (gdl_dock_bar_get_type ())
-#define GDL_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_BAR, GdlDockBar))
-#define GDL_DOCK_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_BAR, GdlDockBarClass))
-#define GDL_IS_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_BAR))
-#define GDL_IS_DOCK_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_BAR))
-#define GDL_DOCK_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_BAR, GdlDockBarClass))
-
-/* data types & structures */
-typedef struct _GdlDockBar GdlDockBar;
-typedef struct _GdlDockBarClass GdlDockBarClass;
-typedef struct _GdlDockBarPrivate GdlDockBarPrivate;
-
-typedef enum {
- GDL_DOCK_BAR_ICONS,
- GDL_DOCK_BAR_TEXT,
- GDL_DOCK_BAR_BOTH,
- GDL_DOCK_BAR_AUTO
-} GdlDockBarStyle;
-
-struct _GdlDockBar {
- GtkBox parent;
-
- GdlDock *dock;
-
- GdlDockBarPrivate *_priv;
-};
-
-struct _GdlDockBarClass {
- GtkVBoxClass parent_class;
-};
-
-GType gdl_dock_bar_get_type (void);
-
-GtkWidget *gdl_dock_bar_new (GdlDock *dock);
-
-GtkOrientation gdl_dock_bar_get_orientation (GdlDockBar *dockbar);
-void gdl_dock_bar_set_orientation (GdlDockBar *dockbar,
- GtkOrientation orientation);
-void gdl_dock_bar_set_style (GdlDockBar *dockbar,
- GdlDockBarStyle style);
-GdlDockBarStyle gdl_dock_bar_get_style (GdlDockBar *dockbar);
-
-G_END_DECLS
-
-#endif /* __GDL_DOCK_BAR_H__ */
diff --git a/src/libgdl/gdl-dock-item-button-image.c b/src/libgdl/gdl-dock-item-button-image.c
deleted file mode 100644
index 77cfe5d6c..000000000
--- a/src/libgdl/gdl-dock-item-button-image.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-item-button-image.c
- *
- * Author: Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "gdl-dock-item-button-image.h"
-
-#include <math.h>
-
-#define ICON_SIZE 12
-
-G_DEFINE_TYPE (GdlDockItemButtonImage,
- gdl_dock_item_button_image,
- GTK_TYPE_WIDGET);
-
-static gint
-gdl_dock_item_button_image_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- GdlDockItemButtonImage *button_image;
- GtkStyle *style;
- GdkColor *color;
-
- g_return_val_if_fail (widget != NULL, 0);
- button_image = GDL_DOCK_ITEM_BUTTON_IMAGE (widget);
-
- cairo_t *cr = gdk_cairo_create (event->window);
- cairo_translate (cr, event->area.x, event->area.y);
-
- /* Set up the pen */
- cairo_set_line_width(cr, 1.0);
-
- style = gtk_widget_get_style (widget);
- g_return_val_if_fail (style != NULL, 0);
- color = &style->fg[GTK_STATE_NORMAL];
- cairo_set_source_rgba(cr, color->red / 65535.0,
- color->green / 65535.0, color->blue / 65535.0, 0.55);
-
- /* Draw the icon border */
- cairo_move_to (cr, 10.5, 2.5);
- cairo_arc (cr, 10.5, 4.5, 2, -0.5 * M_PI, 0);
- cairo_line_to (cr, 12.5, 10.5);
- cairo_arc (cr, 10.5, 10.5, 2, 0, 0.5 * M_PI);
- cairo_line_to (cr, 4.5, 12.5);
- cairo_arc (cr, 4.5, 10.5, 2, 0.5 * M_PI, M_PI);
- cairo_line_to (cr, 2.5, 4.5);
- cairo_arc (cr, 4.5, 4.5, 2, M_PI, 1.5 * M_PI);
- cairo_close_path (cr);
-
- cairo_stroke (cr);
-
- /* Draw the icon */
- cairo_new_path (cr);
-
- switch(button_image->image_type) {
- case GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE:
- cairo_move_to (cr, 4.0, 5.5);
- cairo_line_to (cr, 4.0, 5.5);
- cairo_line_to (cr, 6.0, 7.5);
- cairo_line_to (cr, 4.0, 9.5);
- cairo_line_to (cr, 5.5, 11.0);
- cairo_line_to (cr, 7.5, 9.0);
- cairo_line_to (cr, 9.5, 11.0);
- cairo_line_to (cr, 11.0, 9.5);
- cairo_line_to (cr, 9.0, 7.5);
- cairo_line_to (cr, 11.0, 5.5);
- cairo_line_to (cr, 9.5, 4.0);
- cairo_line_to (cr, 7.5, 6.0);
- cairo_line_to (cr, 5.5, 4.0);
- cairo_close_path (cr);
- break;
-
- case GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY:
- if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) {
- cairo_move_to (cr, 4.5, 7.5);
- cairo_line_to (cr, 10.0, 4.75);
- cairo_line_to (cr, 10.0, 10.25);
- cairo_close_path (cr);
- } else {
- cairo_move_to (cr, 10.5, 7.5);
- cairo_line_to (cr, 5, 4.75);
- cairo_line_to (cr, 5, 10.25);
- cairo_close_path (cr);
- }
- break;
-
- default:
- break;
- }
-
- cairo_fill (cr);
-
- /* Finish up */
- cairo_destroy (cr);
-
- return 0;
-}
-
-static void
-gdl_dock_item_button_image_init (
- GdlDockItemButtonImage *button_image)
-{
- gtk_widget_set_has_window (GTK_WIDGET (button_image), FALSE);
-}
-
-static void
-gdl_dock_item_button_image_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- g_return_if_fail (GDL_IS_DOCK_ITEM_BUTTON_IMAGE (widget));
- g_return_if_fail (requisition != NULL);
-
- requisition->width = ICON_SIZE;
- requisition->height = ICON_SIZE;
-}
-
-static void
-gdl_dock_item_button_image_class_init (
- GdlDockItemButtonImageClass *klass)
-{
- //GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- //GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- widget_class->expose_event =
- gdl_dock_item_button_image_expose;
- widget_class->size_request =
- gdl_dock_item_button_image_size_request;
-}
-
-/* ----- Public interface ----- */
-
-/**
- * gdl_dock_item_button_image_new:
- * @image_type: Specifies what type of image the widget should
- * display
- *
- * Creates a new GDL dock button image object.
- * Returns: The newly created dock item button image widget.
- **/
-GtkWidget*
-gdl_dock_item_button_image_new (GdlDockItemButtonImageType image_type)
-{
- GdlDockItemButtonImage *button_image = g_object_new (
- GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, NULL);
- button_image->image_type = image_type;
-
- return GTK_WIDGET (button_image);
-}
diff --git a/src/libgdl/gdl-dock-item-button-image.h b/src/libgdl/gdl-dock-item-button-image.h
deleted file mode 100644
index ce0c6faaf..000000000
--- a/src/libgdl/gdl-dock-item-button-image.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-item-button-image.h
- *
- * Author: Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GDL_DOCK_ITEM_BUTTON_IMAGE_H_
-#define _GDL_DOCK_ITEM_BUTTON_IMAGE_H_
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-/* Standard Macros */
-#define GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE \
- (gdl_dock_item_button_image_get_type())
-#define GDL_DOCK_ITEM_BUTTON_IMAGE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImage))
-#define GDL_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass))
-#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE))
-#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE))
-#define GDL_DOCK_ITEM_BUTTON_IMAGE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass))
-
-/* Data Types & Structures */
-typedef enum {
- GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE,
- GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY
-} GdlDockItemButtonImageType;
-
-typedef struct _GdlDockItemButtonImage GdlDockItemButtonImage;
-typedef struct _GdlDockItemButtonImageClass GdlDockItemButtonImageClass;
-
-struct _GdlDockItemButtonImage {
- GtkWidget parent;
-
- GdlDockItemButtonImageType image_type;
-};
-
-struct _GdlDockItemButtonImageClass {
- GtkWidgetClass parent_class;
-};
-
-/* Data Public Functions */
-GType gdl_dock_item_button_image_get_type (void);
-GtkWidget *gdl_dock_item_button_image_new (
- GdlDockItemButtonImageType image_type);
-
-G_END_DECLS
-
-#endif /* _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ */
diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c
deleted file mode 100644
index 9b3810c20..000000000
--- a/src/libgdl/gdl-dock-item-grip.c
+++ /dev/null
@@ -1,809 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */
-/*
- * gdl-dock-item-grip.c
- *
- * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc.
- *
- * Based on BonoboDockItemGrip. Original copyright notice follows.
- *
- * Copyright (C) 1998 Ettore Perazzoli
- * Copyright (C) 1998 Elliot Lee
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <string.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include "gdl-dock-item.h"
-#include "gdl-dock-item-grip.h"
-#include "gdl-dock-item-button-image.h"
-#include "gdl-switcher.h"
-
-#define ALIGN_BORDER 5
-#define DRAG_HANDLE_SIZE 10
-
-enum {
- PROP_0,
- PROP_ITEM
-};
-
-struct _GdlDockItemGripPrivate {
- GtkWidget *label;
-
- GtkWidget *close_button;
- GtkWidget *iconify_button;
-
- gboolean handle_shown;
-};
-
-G_DEFINE_TYPE (GdlDockItemGrip, gdl_dock_item_grip, GTK_TYPE_CONTAINER);
-
-GtkWidget*
-gdl_dock_item_create_label_widget(GdlDockItemGrip *grip)
-{
- GtkHBox *label_box;
- GtkImage *image;
- GtkLabel *label;
- gchar *stock_id = NULL;
- gchar *title = NULL;
- GdkPixbuf *pixbuf;
-
- label_box = (GtkHBox*)gtk_hbox_new (FALSE, 0);
-
- g_object_get (G_OBJECT (grip->item), "stock-id", &stock_id, NULL);
- g_object_get (G_OBJECT (grip->item), "pixbuf-icon", &pixbuf, NULL);
- if(stock_id) {
- image = GTK_IMAGE(gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU));
-
- gtk_widget_show (GTK_WIDGET(image));
- gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0);
-
- g_free (stock_id);
- }
- else if (pixbuf) {
- image = GTK_IMAGE(gtk_image_new_from_pixbuf (pixbuf));
-
- gtk_widget_show (GTK_WIDGET(image));
- gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0);
- }
-
- g_object_get (G_OBJECT (grip->item), "long-name", &title, NULL);
- if (title) {
- label = GTK_LABEL(gtk_label_new(title));
- gtk_label_set_ellipsize(label, PANGO_ELLIPSIZE_END);
- gtk_label_set_justify(label, GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show (GTK_WIDGET(label));
-
- if (gtk_widget_get_direction (GTK_WIDGET(grip)) == GTK_TEXT_DIR_RTL) {
- gtk_box_pack_end(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1);
- } else {
- gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1);
- }
-
- g_free(title);
- }
-
- return GTK_WIDGET(label_box);
-}
-
-static gint
-gdl_dock_item_grip_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- GdlDockItemGrip *grip;
- GtkAllocation allocation;
- GdkRectangle handle_area;
- GdkRectangle expose_area;
-
- grip = GDL_DOCK_ITEM_GRIP (widget);
-
- if(grip->_priv->handle_shown) {
-
- gtk_widget_get_allocation (widget, &allocation);
-
- if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) {
- handle_area.x = allocation.x;
- handle_area.y = allocation.y;
- handle_area.width = DRAG_HANDLE_SIZE;
- handle_area.height = allocation.height;
- } else {
- handle_area.x = allocation.x + allocation.width - DRAG_HANDLE_SIZE;
- handle_area.y = allocation.y;
- handle_area.width = DRAG_HANDLE_SIZE;
- handle_area.height = allocation.height;
- }
-
- if (gdk_rectangle_intersect (&handle_area, &event->area, &expose_area)) {
-
- gtk_paint_handle (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget),
- gtk_widget_get_state (widget),
- GTK_SHADOW_NONE, &expose_area, widget,
- "handlebox", handle_area.x, handle_area.y,
- handle_area.width, handle_area.height,
- GTK_ORIENTATION_VERTICAL);
-
- }
-
- }
-
-/* see bug #950556: may contribute to regression with GTK2/Quartz */
-#if !defined(GDK_WINDOWING_QUARTZ)
- if (gdl_dock_item_or_child_has_focus(grip->item)) {
-
- gtk_paint_focus (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget),
- gtk_widget_get_state (widget),
- &event->area, widget,
- NULL, 0, 0, -1, -1);
- }
-#endif //GDK_WINDOWING_QUARTZ
-
- return GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->expose_event (widget, event);
-}
-
-static void
-gdl_dock_item_grip_item_notify (GObject *master,
- GParamSpec *pspec,
- gpointer data)
-{
- GdlDockItemGrip *grip;
- gboolean cursor;
-
- grip = GDL_DOCK_ITEM_GRIP (data);
-
- if ((strcmp (pspec->name, "stock-id") == 0) ||
- (strcmp (pspec->name, "long-name") == 0)) {
-
- gdl_dock_item_grip_set_label (grip,
- gdl_dock_item_create_label_widget(grip));
-
- } else if (strcmp (pspec->name, "behavior") == 0) {
- cursor = FALSE;
- if (grip->_priv->close_button) {
- if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item)) {
- gtk_widget_hide (GTK_WIDGET (grip->_priv->close_button));
- } else {
- gtk_widget_show (GTK_WIDGET (grip->_priv->close_button));
- cursor = TRUE;
- }
- }
- if (grip->_priv->iconify_button) {
- if (GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) {
- gtk_widget_hide (GTK_WIDGET (grip->_priv->iconify_button));
- } else {
- gtk_widget_show (GTK_WIDGET (grip->_priv->iconify_button));
- cursor = TRUE;
- }
- }
- if (grip->title_window && !cursor)
- gdk_window_set_cursor (grip->title_window, NULL);
-
- }
-}
-
-static void
-gdl_dock_item_grip_destroy (GtkObject *object)
-{
- GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (object);
-
- if (grip->_priv) {
- GdlDockItemGripPrivate *priv = grip->_priv;
-
- if (priv->label) {
- gtk_widget_unparent(grip->_priv->label);
- priv->label = NULL;
- }
-
- if (grip->item)
- g_signal_handlers_disconnect_by_func (grip->item,
- gdl_dock_item_grip_item_notify,
- grip);
- grip->item = NULL;
-
- grip->_priv = NULL;
- g_free (priv);
- }
-
- GTK_OBJECT_CLASS (gdl_dock_item_grip_parent_class)->destroy (object);
-}
-
-static void
-gdl_dock_item_grip_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItemGrip *grip;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (object));
-
- grip = GDL_DOCK_ITEM_GRIP (object);
-
- switch (prop_id) {
- case PROP_ITEM:
- grip->item = g_value_get_object (value);
- if (grip->item) {
- g_signal_connect (grip->item, "notify::long-name",
- G_CALLBACK (gdl_dock_item_grip_item_notify),
- grip);
- g_signal_connect (grip->item, "notify::stock-id",
- G_CALLBACK (gdl_dock_item_grip_item_notify),
- grip);
- g_signal_connect (grip->item, "notify::behavior",
- G_CALLBACK (gdl_dock_item_grip_item_notify),
- grip);
-
- if (!GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && grip->_priv->close_button)
- gtk_widget_show (grip->_priv->close_button);
- if (!GDL_DOCK_ITEM_CANT_ICONIFY (grip->item) && grip->_priv->iconify_button)
- gtk_widget_show (grip->_priv->iconify_button);
- }
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-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);
-}
-
-static void
-gdl_dock_item_grip_fix_iconify_button (GdlDockItemGrip *grip)
-{
- GtkWidget *iconify_button = grip->_priv->iconify_button;
- GdkWindow *window = NULL;
- GdkEvent *event = NULL;
-
- GdkModifierType modifiers;
- gint x = 0, y = 0;
- gboolean ev_ret;
-
- g_return_if_fail (gtk_widget_get_realized (iconify_button));
-
- window = gtk_widget_get_parent_window (iconify_button);
- event = gdk_event_new (GDK_LEAVE_NOTIFY);
-
- g_assert (GDK_IS_WINDOW (window));
- gdk_window_get_pointer (window, &x, &y, &modifiers);
-
- event->crossing.window = g_object_ref (window);
- event->crossing.send_event = FALSE;
- event->crossing.subwindow = g_object_ref (window);
- event->crossing.time = GDK_CURRENT_TIME;
- event->crossing.x = x;
- event->crossing.y = y;
- event->crossing.x_root = event->crossing.y_root = 0;
- event->crossing.mode = GDK_CROSSING_STATE_CHANGED;
- event->crossing.detail = GDK_NOTIFY_NONLINEAR;
- event->crossing.focus = FALSE;
- event->crossing.state = modifiers;
-
- //GTK_BUTTON (iconify_button)->in_button = FALSE;
- g_signal_emit_by_name (iconify_button, "leave-notify-event",
- event, &ev_ret, 0);
-
- gdk_event_free (event);
-}
-
-static void
-gdl_dock_item_grip_iconify_clicked (GtkWidget *widget,
- GdlDockItemGrip *grip)
-{
- GtkWidget *parent;
-
- g_return_if_fail (grip->item != NULL);
-
- /* Workaround to unhighlight the iconify button. */
- gdl_dock_item_grip_fix_iconify_button (grip);
-
- parent = gtk_widget_get_parent (GTK_WIDGET (grip->item));
- if (GDL_IS_SWITCHER (parent))
- {
- /* Note: We can not use gtk_container_foreach (parent) here because
- * during iconificatoin, the internal children changes in parent.
- * Instead we keep a list of items to iconify and iconify them
- * one by one.
- */
- GList *node;
- GList *items =
- gtk_container_get_children (GTK_CONTAINER (parent));
- for (node = items; node != NULL; node = node->next)
- {
- GdlDockItem *item = GDL_DOCK_ITEM (node->data);
- if (!GDL_DOCK_ITEM_CANT_ICONIFY (item))
- gdl_dock_item_iconify_item (item);
- }
- g_list_free (items);
- }
- else
- {
- gdl_dock_item_iconify_item (grip->item);
- }
-}
-
-static void
-gdl_dock_item_grip_init (GdlDockItemGrip *grip)
-{
- GtkWidget *image;
-
- gtk_widget_set_has_window (GTK_WIDGET (grip), FALSE);
-
- grip->_priv = g_new0 (GdlDockItemGripPrivate, 1);
- grip->_priv->label = NULL;
- grip->_priv->handle_shown = FALSE;
-
- /* create the close button */
- gtk_widget_push_composite_child ();
- grip->_priv->close_button = gtk_button_new ();
- gtk_widget_pop_composite_child ();
-
- gtk_widget_set_can_focus (grip->_priv->close_button, FALSE);
- gtk_widget_set_parent (grip->_priv->close_button, GTK_WIDGET (grip));
- gtk_button_set_relief (GTK_BUTTON (grip->_priv->close_button), GTK_RELIEF_NONE);
- gtk_widget_show (grip->_priv->close_button);
-
- image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE);
- gtk_container_add (GTK_CONTAINER (grip->_priv->close_button), image);
- gtk_widget_show (image);
-
- g_signal_connect (G_OBJECT (grip->_priv->close_button), "clicked",
- G_CALLBACK (gdl_dock_item_grip_close_clicked), grip);
-
- /* create the iconify button */
- gtk_widget_push_composite_child ();
- grip->_priv->iconify_button = gtk_button_new ();
- gtk_widget_pop_composite_child ();
-
- gtk_widget_set_can_focus (grip->_priv->iconify_button, FALSE);
- gtk_widget_set_parent (grip->_priv->iconify_button, GTK_WIDGET (grip));
- gtk_button_set_relief (GTK_BUTTON (grip->_priv->iconify_button), GTK_RELIEF_NONE);
- gtk_widget_show (grip->_priv->iconify_button);
-
- image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY);
- gtk_container_add (GTK_CONTAINER (grip->_priv->iconify_button), image);
- gtk_widget_show (image);
-
- g_signal_connect (G_OBJECT (grip->_priv->iconify_button), "clicked",
- G_CALLBACK (gdl_dock_item_grip_iconify_clicked), grip);
-
- /* set tooltips on the buttons */
- gtk_widget_set_tooltip_text (grip->_priv->iconify_button,
- _("Iconify this dock"));
- gtk_widget_set_tooltip_text (grip->_priv->close_button,
- _("Close this dock"));
-}
-
-static void
-gdl_dock_item_grip_realize (GtkWidget *widget)
-{
- GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget);
-
- GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->realize (widget);
-
- g_return_if_fail (grip->_priv != NULL);
-
- if (!grip->title_window) {
- GtkAllocation allocation;
- GdkWindowAttr attributes;
- GdkCursor *cursor;
-
- g_return_if_fail (grip->_priv->label != NULL);
-
- gtk_widget_get_allocation (grip->_priv->label, &allocation);
-
- attributes.x = allocation.x;
- attributes.y = allocation.y;
- attributes.width = allocation.width;
- attributes.height = allocation.height;
- attributes.window_type = GDK_WINDOW_CHILD;
- attributes.wclass = GDK_INPUT_OUTPUT;
- attributes.event_mask = GDK_ALL_EVENTS_MASK;
-
- grip->title_window = gdk_window_new (gtk_widget_get_parent_window (widget),
- &attributes, (GDK_WA_X | GDK_WA_Y));
-
- gdk_window_set_user_data (grip->title_window, grip);
-
- /* Unref the ref from parent realize for NO_WINDOW */
- g_object_unref (gtk_widget_get_window (widget));
-
- /* Need to ref widget->window, because parent unrealize unrefs it */
- gtk_widget_set_window (widget, g_object_ref (grip->title_window));
- gtk_widget_set_has_window (widget, TRUE);
-
- /* Unset the background so as to make the colour match the parent window */
- gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, NULL);
-
- if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item) &&
- GDL_DOCK_ITEM_CANT_ICONIFY (grip->item))
- cursor = NULL;
- else
- cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
- GDK_HAND2);
- gdk_window_set_cursor (grip->title_window, cursor);
- if (cursor)
- gdk_cursor_unref (cursor);
- }
-}
-
-static void
-gdl_dock_item_grip_unrealize (GtkWidget *widget)
-{
- GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget);
-
- if (grip->title_window) {
- gtk_widget_set_has_window (widget, FALSE);
- gdk_window_set_user_data (grip->title_window, NULL);
- gdk_window_destroy (grip->title_window);
- grip->title_window = NULL;
- }
-
- GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->unrealize (widget);
-}
-
-static void
-gdl_dock_item_grip_map (GtkWidget *widget)
-{
- GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget);
-
- GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->map (widget);
-
- if (grip->title_window)
- gdk_window_show (grip->title_window);
-}
-
-static void
-gdl_dock_item_grip_unmap (GtkWidget *widget)
-{
- GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget);
-
- if (grip->title_window)
- gdk_window_hide (grip->title_window);
-
- GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->unmap (widget);
-}
-
-static void
-gdl_dock_item_grip_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GtkRequisition child_requisition;
- GdlDockItemGrip *grip;
- gint layout_height = 0;
- guint border_width;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget));
- g_return_if_fail (requisition != NULL);
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
- grip = GDL_DOCK_ITEM_GRIP (widget);
-
- requisition->width = border_width * 2/* + ALIGN_BORDER*/;
- requisition->height = border_width * 2;
-
- if(grip->_priv->handle_shown)
- requisition->width += DRAG_HANDLE_SIZE;
-
- gtk_widget_size_request (grip->_priv->close_button, &child_requisition);
- layout_height = MAX (layout_height, child_requisition.height);
- if (gtk_widget_get_visible (grip->_priv->close_button)) {
- requisition->width += child_requisition.width;
- }
-
- gtk_widget_size_request (grip->_priv->iconify_button, &child_requisition);
- layout_height = MAX (layout_height, child_requisition.height);
- if (gtk_widget_get_visible (grip->_priv->iconify_button)) {
- requisition->width += child_requisition.width;
- }
-
- gtk_widget_size_request (grip->_priv->label, &child_requisition);
- requisition->width += child_requisition.width;
- layout_height = MAX (layout_height, child_requisition.height);
-
- requisition->height += layout_height;
-}
-
-static void
-gdl_dock_item_grip_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GdlDockItemGrip *grip;
- GtkRequisition close_requisition = { 0, 0 };
- GtkRequisition iconify_requisition = { 0, 0 };
- GtkAllocation child_allocation;
- guint border_width;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget));
- g_return_if_fail (allocation != NULL);
-
- grip = GDL_DOCK_ITEM_GRIP (widget);
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-
- GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->size_allocate (widget, allocation);
-
- gtk_widget_size_request (grip->_priv->close_button,
- &close_requisition);
- gtk_widget_size_request (grip->_priv->iconify_button,
- &iconify_requisition);
-
- /* Calculate the Minimum Width where buttons will fit */
- int min_width = close_requisition.width + iconify_requisition.width
- + border_width * 2;
- if(grip->_priv->handle_shown)
- min_width += DRAG_HANDLE_SIZE;
- const gboolean space_for_buttons = (allocation->width >= min_width);
-
- /* Set up the rolling child_allocation rectangle */
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- child_allocation.x = border_width/* + ALIGN_BORDER*/;
- else
- child_allocation.x = allocation->width - border_width;
- child_allocation.y = border_width;
-
- /* Layout Close Button */
- if (gtk_widget_get_visible (grip->_priv->close_button)) {
-
- if(space_for_buttons) {
- if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL)
- child_allocation.x -= close_requisition.width;
-
- child_allocation.width = close_requisition.width;
- child_allocation.height = close_requisition.height;
- } else {
- child_allocation.width = 0;
- }
-
- gtk_widget_size_allocate (grip->_priv->close_button, &child_allocation);
-
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- child_allocation.x += close_requisition.width;
- }
-
- /* Layout Iconify Button */
- if (gtk_widget_get_visible (grip->_priv->iconify_button)) {
-
- if(space_for_buttons) {
- if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL)
- child_allocation.x -= iconify_requisition.width;
-
- child_allocation.width = iconify_requisition.width;
- child_allocation.height = iconify_requisition.height;
- } else {
- child_allocation.width = 0;
- }
-
- gtk_widget_size_allocate (grip->_priv->iconify_button, &child_allocation);
-
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- child_allocation.x += iconify_requisition.width;
- }
-
- /* Layout the Grip Handle*/
- if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) {
- child_allocation.width = child_allocation.x;
- child_allocation.x = border_width/* + ALIGN_BORDER*/;
-
- if(grip->_priv->handle_shown) {
- child_allocation.x += DRAG_HANDLE_SIZE;
- child_allocation.width -= DRAG_HANDLE_SIZE;
- }
-
- } else {
- child_allocation.width = allocation->width -
- (child_allocation.x - allocation->x)/* - ALIGN_BORDER*/;
-
- if(grip->_priv->handle_shown)
- child_allocation.width -= DRAG_HANDLE_SIZE;
- }
-
- if(child_allocation.width < 0)
- child_allocation.width = 0;
-
- child_allocation.y = border_width;
- child_allocation.height = allocation->height - border_width * 2;
- if(grip->_priv->label) {
- gtk_widget_size_allocate (grip->_priv->label, &child_allocation);
- }
-
- if (grip->title_window) {
- gdk_window_move_resize (grip->title_window,
- allocation->x,
- allocation->y,
- allocation->width,
- allocation->height);
- }
-}
-
-static void
-gdl_dock_item_grip_add (GtkContainer *container,
- GtkWidget *widget)
-{
- g_warning ("gtk_container_add not implemented for GdlDockItemGrip");
-}
-
-static void
-gdl_dock_item_grip_remove (GtkContainer *container,
- GtkWidget *widget)
-{
- gdl_dock_item_grip_set_label (GDL_DOCK_ITEM_GRIP (container), NULL);
-}
-
-static void
-gdl_dock_item_grip_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data)
-{
- GdlDockItemGrip *grip;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (container));
- grip = GDL_DOCK_ITEM_GRIP (container);
-
- if (grip->_priv) {
- if(grip->_priv->label) {
- (* callback) (grip->_priv->label, callback_data);
- }
-
- if (include_internals) {
- (* callback) (grip->_priv->close_button, callback_data);
- (* callback) (grip->_priv->iconify_button, callback_data);
- }
- }
-}
-
-static GType
-gdl_dock_item_grip_child_type (GtkContainer *container)
-{
- return G_TYPE_NONE;
-}
-
-static void
-gdl_dock_item_grip_class_init (GdlDockItemGripClass *klass)
-{
- GObjectClass *gobject_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
-
- gobject_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
-
- gobject_class->set_property = gdl_dock_item_grip_set_property;
-
- gtk_object_class->destroy = gdl_dock_item_grip_destroy;
-
- widget_class->expose_event = gdl_dock_item_grip_expose;
- widget_class->realize = gdl_dock_item_grip_realize;
- widget_class->unrealize = gdl_dock_item_grip_unrealize;
- widget_class->map = gdl_dock_item_grip_map;
- widget_class->unmap = gdl_dock_item_grip_unmap;
- widget_class->size_request = gdl_dock_item_grip_size_request;
- widget_class->size_allocate = gdl_dock_item_grip_size_allocate;
-
- container_class->add = gdl_dock_item_grip_add;
- container_class->remove = gdl_dock_item_grip_remove;
- container_class->forall = gdl_dock_item_grip_forall;
- container_class->child_type = gdl_dock_item_grip_child_type;
-
- g_object_class_install_property (
- gobject_class, PROP_ITEM,
- g_param_spec_object ("item", _("Controlling dock item"),
- _("Dockitem which 'owns' this grip"),
- GDL_TYPE_DOCK_ITEM,
- G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-}
-
-static void
-gdl_dock_item_grip_showhide_handle (GdlDockItemGrip *grip)
-{
- gtk_widget_queue_resize (GTK_WIDGET (grip));
-}
-
-/* ----- Public interface ----- */
-
-/**
- * gdl_dock_item_grip_new:
- * @item: The dock item that will "own" this grip widget.
- *
- * Creates a new GDL dock item grip object.
- * Returns: The newly created dock item grip widget.
- **/
-GtkWidget *
-gdl_dock_item_grip_new (GdlDockItem *item)
-{
- GdlDockItemGrip *grip = g_object_new (GDL_TYPE_DOCK_ITEM_GRIP, "item", item,
- NULL);
-
- return GTK_WIDGET (grip);
-}
-
-/**
- * gdl_dock_item_grip_set_label:
- * @grip: The grip that will get it's label widget set.
- * @label: The widget that will become the label.
- *
- * Replaces the current label widget with another widget.
- **/
-void
-gdl_dock_item_grip_set_label (GdlDockItemGrip *grip,
- GtkWidget *label)
-{
- g_return_if_fail (grip != NULL);
-
- if (grip->_priv->label) {
- gtk_widget_unparent(grip->_priv->label);
- g_object_unref (grip->_priv->label);
- grip->_priv->label = NULL;
- }
-
- if (label) {
- g_object_ref (label);
- gtk_widget_set_parent (label, GTK_WIDGET (grip));
- gtk_widget_show (label);
- grip->_priv->label = label;
- }
-}
-/**
- * gdl_dock_item_grip_hide_handle:
- * @grip: The dock item grip to hide the handle of.
- *
- * This function hides the dock item's grip widget handle hatching.
- **/
-void
-gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip)
-{
- g_return_if_fail (grip != NULL);
- if (grip->_priv->handle_shown) {
- grip->_priv->handle_shown = FALSE;
- gdl_dock_item_grip_showhide_handle (grip);
- };
-}
-
-/**
- * gdl_dock_item_grip_show_handle:
- * @grip: The dock item grip to show the handle of.
- *
- * This function shows the dock item's grip widget handle hatching.
- **/
-void
-gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip)
-{
- g_return_if_fail (grip != NULL);
- if (!grip->_priv->handle_shown) {
- grip->_priv->handle_shown = TRUE;
- gdl_dock_item_grip_showhide_handle (grip);
- };
-}
diff --git a/src/libgdl/gdl-dock-item-grip.h b/src/libgdl/gdl-dock-item-grip.h
deleted file mode 100644
index a44ef91fb..000000000
--- a/src/libgdl/gdl-dock-item-grip.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */
-/*
- * gdl-dock-item-grip.h
- *
- * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc.
- *
- * Based on BonoboDockItemGrip. Original copyright notice follows.
- *
- * Copyright (C) 1998 Ettore Perazzoli
- * Copyright (C) 1998 Elliot Lee
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GDL_DOCK_ITEM_GRIP_H_
-#define _GDL_DOCK_ITEM_GRIP_H_
-
-#include <gtk/gtk.h>
-#include "libgdl/gdl-dock-item.h"
-
-G_BEGIN_DECLS
-
-#define GDL_TYPE_DOCK_ITEM_GRIP (gdl_dock_item_grip_get_type())
-#define GDL_DOCK_ITEM_GRIP(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGrip))
-#define GDL_DOCK_ITEM_GRIP_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGripClass))
-#define GDL_IS_DOCK_ITEM_GRIP(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM_GRIP))
-#define GDL_IS_DOCK_ITEM_GRIP_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM_GRIP))
-#define GDL_DOCK_ITEM_GRIP_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGripClass))
-
-typedef struct _GdlDockItemGrip GdlDockItemGrip;
-typedef struct _GdlDockItemGripClass GdlDockItemGripClass;
-typedef struct _GdlDockItemGripPrivate GdlDockItemGripPrivate;
-
-struct _GdlDockItemGrip {
- GtkContainer parent;
-
- GdlDockItem *item;
-
- GdkWindow *title_window;
-
- GdlDockItemGripPrivate *_priv;
-};
-
-struct _GdlDockItemGripClass {
- GtkContainerClass parent_class;
-};
-
-GType gdl_dock_item_grip_get_type (void);
-GtkWidget *gdl_dock_item_grip_new (GdlDockItem *item);
-void gdl_dock_item_grip_set_label (GdlDockItemGrip *grip,
- GtkWidget *label);
-void gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip);
-void gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip);
-
-G_END_DECLS
-
-#endif /* _GDL_DOCK_ITEM_GRIP_H_ */
diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c
deleted file mode 100644
index af630e681..000000000
--- a/src/libgdl/gdl-dock-item.c
+++ /dev/null
@@ -1,2401 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-item.c
- *
- * Author: Gustavo Giráldez <gustavo.giraldez@gmx.net>
- * Naba Kumar <naba@gnome.org>
- *
- * Based on GnomeDockItem/BonoboDockItem. Original copyright notice follows.
- *
- * Copyright (C) 1998 Ettore Perazzoli
- * Copyright (C) 1998 Elliot Lee
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <string.h>
-#include <gdk/gdkkeysyms.h>
-
-#include "gdl-dock.h"
-#include "gdl-dock-item.h"
-#include "gdl-dock-item-grip.h"
-#include "gdl-dock-notebook.h"
-#include "gdl-dock-paned.h"
-#include "gdl-dock-tablabel.h"
-#include "gdl-dock-placeholder.h"
-#include "gdl-dock-master.h"
-#include "libgdltypebuiltins.h"
-#include "libgdlmarshal.h"
-
-#define NEW_DOCK_ITEM_RATIO 0.3
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_item_class_init (GdlDockItemClass *class);
-
-static GObject *gdl_dock_item_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param);
-
-static void gdl_dock_item_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_item_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_item_destroy (GtkObject *object);
-
-static void gdl_dock_item_add (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_item_remove (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_item_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data);
-static GType gdl_dock_item_child_type (GtkContainer *container);
-
-static void gdl_dock_item_set_focus_child (GtkContainer *container,
- GtkWidget *widget);
-
-static void gdl_dock_item_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gdl_dock_item_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-static void gdl_dock_item_map (GtkWidget *widget);
-static void gdl_dock_item_unmap (GtkWidget *widget);
-static void gdl_dock_item_realize (GtkWidget *widget);
-static void gdl_dock_item_style_set (GtkWidget *widget,
- GtkStyle *previous_style);
-static gint gdl_dock_item_expose (GtkWidget *widget,
- GdkEventExpose *event);
-
-static void gdl_dock_item_move_focus_child (GdlDockItem *item,
- GtkDirectionType dir);
-
-static gint gdl_dock_item_button_changed (GtkWidget *widget,
- GdkEventButton *event);
-static gint gdl_dock_item_motion (GtkWidget *widget,
- GdkEventMotion *event);
-static gboolean gdl_dock_item_key_press (GtkWidget *widget,
- GdkEventKey *event);
-
-static gboolean gdl_dock_item_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request);
-static void gdl_dock_item_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
-static void gdl_dock_item_popup_menu (GdlDockItem *item,
- guint button,
- guint32 time);
-static void gdl_dock_item_drag_start (GdlDockItem *item);
-static void gdl_dock_item_drag_end (GdlDockItem *item,
- gboolean cancel);
-
-static void gdl_dock_item_tab_button (GtkWidget *widget,
- GdkEventButton *event,
- gpointer data);
-
-static void gdl_dock_item_hide_cb (GtkWidget *widget,
- GdlDockItem *item);
-
-static void gdl_dock_item_lock_cb (GtkWidget *widget,
- GdlDockItem *item);
-
-static void gdl_dock_item_unlock_cb (GtkWidget *widget,
- GdlDockItem *item);
-
-static void gdl_dock_item_showhide_grip (GdlDockItem *item);
-
-static void gdl_dock_item_real_set_orientation (GdlDockItem *item,
- GtkOrientation orientation);
-
-static void gdl_dock_param_export_gtk_orientation (const GValue *src,
- GValue *dst);
-static void gdl_dock_param_import_gtk_orientation (const GValue *src,
- GValue *dst);
-
-
-
-/* ----- Class variables and definitions ----- */
-
-enum {
- PROP_0,
- PROP_ORIENTATION,
- PROP_RESIZE,
- PROP_BEHAVIOR,
- PROP_LOCKED,
- PROP_PREFERRED_WIDTH,
- PROP_PREFERRED_HEIGHT
-};
-
-enum {
- DOCK_DRAG_BEGIN,
- DOCK_DRAG_MOTION,
- DOCK_DRAG_END,
- SELECTED,
- MOVE_FOCUS_CHILD,
- LAST_SIGNAL
-};
-
-static guint gdl_dock_item_signals [LAST_SIGNAL] = { 0 };
-
-#define GDL_DOCK_ITEM_GRIP_SHOWN(item) \
- (GDL_DOCK_ITEM_HAS_GRIP (item))
-
-struct _GdlDockItemPrivate {
- GtkWidget *menu;
-
- gboolean grip_shown;
- GtkWidget *grip;
- guint grip_size;
-
- GtkWidget *tab_label;
- gboolean intern_tab_label;
- guint notify_label;
- guint notify_stock_id;
-
- gint preferred_width;
- gint preferred_height;
-
- GdlDockPlaceholder *ph;
-
- gint start_x, start_y;
-};
-
-/* FIXME: implement the rest of the behaviors */
-
-#define SPLIT_RATIO 0.4
-
-
-/* ----- Private functions ----- */
-
-G_DEFINE_TYPE (GdlDockItem, gdl_dock_item, GDL_TYPE_DOCK_OBJECT);
-
-static void
-add_tab_bindings (GtkBindingSet *binding_set,
- GdkModifierType modifiers,
- GtkDirectionType direction)
-{
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, modifiers,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, modifiers,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
-}
-
-static void
-add_arrow_bindings (GtkBindingSet *binding_set,
- guint keysym,
- GtkDirectionType direction)
-{
- guint keypad_keysym = keysym - GDK_KEY_Left + GDK_KEY_KP_Left;
-
- gtk_binding_entry_add_signal (binding_set, keysym, 0,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
- gtk_binding_entry_add_signal (binding_set, keysym, GDK_CONTROL_MASK,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
- gtk_binding_entry_add_signal (binding_set, keysym, GDK_CONTROL_MASK,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
- gtk_binding_entry_add_signal (binding_set, keypad_keysym, GDK_CONTROL_MASK,
- "move_focus_child", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
-}
-
-static void
-gdl_dock_item_class_init (GdlDockItemClass *klass)
-{
- static gboolean style_initialized = FALSE;
-
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
- GdlDockObjectClass *object_class;
- GtkBindingSet *binding_set;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
- object_class = GDL_DOCK_OBJECT_CLASS (klass);
-
- g_object_class->constructor = gdl_dock_item_constructor;
- g_object_class->set_property = gdl_dock_item_set_property;
- g_object_class->get_property = gdl_dock_item_get_property;
-
- gtk_object_class->destroy = gdl_dock_item_destroy;
-
- widget_class->realize = gdl_dock_item_realize;
- widget_class->map = gdl_dock_item_map;
- widget_class->unmap = gdl_dock_item_unmap;
- widget_class->size_request = gdl_dock_item_size_request;
- widget_class->size_allocate = gdl_dock_item_size_allocate;
- widget_class->style_set = gdl_dock_item_style_set;
- widget_class->expose_event = gdl_dock_item_expose;
- widget_class->button_press_event = gdl_dock_item_button_changed;
- widget_class->button_release_event = gdl_dock_item_button_changed;
- widget_class->motion_notify_event = gdl_dock_item_motion;
- widget_class->key_press_event = gdl_dock_item_key_press;
-
- container_class->add = gdl_dock_item_add;
- container_class->remove = gdl_dock_item_remove;
- container_class->forall = gdl_dock_item_forall;
- container_class->child_type = gdl_dock_item_child_type;
- container_class->set_focus_child = gdl_dock_item_set_focus_child;
-
- object_class->is_compound = FALSE;
-
- object_class->dock_request = gdl_dock_item_dock_request;
- object_class->dock = gdl_dock_item_dock;
-
- /* properties */
-
- /**
- * GdlDockItem:orientation:
- *
- * The orientation of the docking item. If the orientation is set to
- * #GTK_ORIENTATION_VERTICAL, the grip widget will be shown along
- * the top of the edge of item (if it is not hidden). If the
- * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip
- * widget will be shown down the left edge of the item (even if the
- * widget text direction is set to RTL).
- */
- g_object_class_install_property (
- g_object_class, PROP_ORIENTATION,
- g_param_spec_enum ("orientation", _("Orientation"),
- _("Orientation of the docking item"),
- GTK_TYPE_ORIENTATION,
- GTK_ORIENTATION_VERTICAL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- /* --- register exporter/importer for GTK_ORIENTATION */
- g_value_register_transform_func (GTK_TYPE_ORIENTATION, GDL_TYPE_DOCK_PARAM,
- gdl_dock_param_export_gtk_orientation);
- g_value_register_transform_func (GDL_TYPE_DOCK_PARAM, GTK_TYPE_ORIENTATION,
- gdl_dock_param_import_gtk_orientation);
- /* --- end of registration */
-
- g_object_class_install_property (
- g_object_class, PROP_RESIZE,
- g_param_spec_boolean ("resize", _("Resizable"),
- _("If set, the dock item can be resized when "
- "docked in a GtkPanel widget"),
- TRUE,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_BEHAVIOR,
- g_param_spec_flags ("behavior", _("Item behavior"),
- _("General behavior for the dock item (i.e. "
- "whether it can float, if it's locked, etc.)"),
- GDL_TYPE_DOCK_ITEM_BEHAVIOR,
- GDL_DOCK_ITEM_BEH_NORMAL,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_LOCKED,
- g_param_spec_boolean ("locked", _("Locked"),
- _("If set, the dock item cannot be dragged around "
- "and it doesn't show a grip"),
- FALSE,
- G_PARAM_READWRITE |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_PREFERRED_WIDTH,
- g_param_spec_int ("preferred-width", _("Preferred width"),
- _("Preferred width for the dock item"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_PREFERRED_HEIGHT,
- g_param_spec_int ("preferred-height", _("Preferred height"),
- _("Preferred height for the dock item"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE));
-
- /* signals */
-
- /**
- * GdlDockItem::dock-drag-begin:
- * @item: The dock item which is being dragged.
- *
- * Signals that the dock item has begun to be dragged.
- **/
- gdl_dock_item_signals [DOCK_DRAG_BEGIN] =
- g_signal_new ("dock-drag-begin",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_begin),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- /**
- * GdlDockItem::dock-drag-motion:
- * @item: The dock item which is being dragged.
- * @x: The x-position that the dock item has been dragged to.
- * @y: The y-position that the dock item has been dragged to.
- *
- * Signals that a dock item dragging motion event has occured.
- **/
- gdl_dock_item_signals [DOCK_DRAG_MOTION] =
- g_signal_new ("dock-drag-motion",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_motion),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__INT_INT,
- G_TYPE_NONE,
- 2,
- G_TYPE_INT,
- G_TYPE_INT);
-
- /**
- * GdlDockItem::dock-drag-end:
- * @item: The dock item which is no longer being dragged.
- * @cancel: This value is set to TRUE if the drag was cancelled by
- * the user. #cancel is set to FALSE if the drag was accepted.
- *
- * Signals that the dock item dragging has ended.
- **/
- gdl_dock_item_signals [DOCK_DRAG_END] =
- g_signal_new ("dock_drag_end",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_end),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__BOOLEAN,
- G_TYPE_NONE,
- 1,
- G_TYPE_BOOLEAN);
-
- /**
- * GdlDockItem::selected:
- *
- * Signals that this dock has been selected from a switcher.
- */
- gdl_dock_item_signals [SELECTED] =
- g_signal_new ("selected",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- 0,
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- gdl_dock_item_signals [MOVE_FOCUS_CHILD] =
- g_signal_new ("move_focus_child",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GdlDockItemClass, move_focus_child),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__ENUM,
- G_TYPE_NONE,
- 1,
- GTK_TYPE_DIRECTION_TYPE);
-
-
- /* key bindings */
-
- binding_set = gtk_binding_set_by_class (klass);
-
- add_arrow_bindings (binding_set, GDK_KEY_Up, GTK_DIR_UP);
- add_arrow_bindings (binding_set, GDK_KEY_Down, GTK_DIR_DOWN);
- add_arrow_bindings (binding_set, GDK_KEY_Left, GTK_DIR_LEFT);
- add_arrow_bindings (binding_set, GDK_KEY_Right, GTK_DIR_RIGHT);
-
- add_tab_bindings (binding_set, 0, GTK_DIR_TAB_FORWARD);
- add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
- add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
- add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
-
- klass->has_grip = TRUE;
- klass->dock_drag_begin = NULL;
- klass->dock_drag_motion = NULL;
- klass->dock_drag_end = NULL;
- klass->move_focus_child = gdl_dock_item_move_focus_child;
- klass->set_orientation = gdl_dock_item_real_set_orientation;
-
- if (!style_initialized)
- {
- style_initialized = TRUE;
- gtk_rc_parse_string (
- "style \"gdl-dock-item-default\" {\n"
- "xthickness = 0\n"
- "ythickness = 0\n"
- "}\n"
- "class \"GdlDockItem\" "
- "style : gtk \"gdl-dock-item-default\"\n");
- }
-}
-
-static void
-gdl_dock_item_init (GdlDockItem *item)
-{
- gtk_widget_set_has_window (GTK_WIDGET (item), TRUE);
- gtk_widget_set_can_focus (GTK_WIDGET (item), TRUE);
-
- item->child = NULL;
-
- item->orientation = GTK_ORIENTATION_VERTICAL;
- item->behavior = GDL_DOCK_ITEM_BEH_NORMAL;
-
- item->resize = TRUE;
-
- item->dragoff_x = item->dragoff_y = 0;
-
- item->_priv = g_new0 (GdlDockItemPrivate, 1);
- item->_priv->menu = NULL;
-
- item->_priv->preferred_width = item->_priv->preferred_height = -1;
- item->_priv->tab_label = NULL;
- item->_priv->intern_tab_label = FALSE;
-
- item->_priv->ph = NULL;
-}
-
-static void
-on_long_name_changed (GObject* item,
- GParamSpec* spec,
- gpointer user_data)
-{
- gchar* long_name;
- g_object_get (item, "long-name", &long_name, NULL);
- gtk_label_set_label (GTK_LABEL (user_data), long_name);
- g_free(long_name);
-}
-
-static void
-on_stock_id_changed (GObject* item,
- GParamSpec* spec,
- gpointer user_data)
-{
- gchar* stock_id;
- g_object_get (item, "stock_id", &stock_id, NULL);
- gtk_image_set_from_stock (GTK_IMAGE (user_data), stock_id, GTK_ICON_SIZE_MENU);
- g_free(stock_id);
-}
-
-static GObject *
-gdl_dock_item_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param)
-{
- GObject *g_object;
-
- g_object = G_OBJECT_CLASS (gdl_dock_item_parent_class)-> constructor (type,
- n_construct_properties,
- construct_param);
- if (g_object) {
- GdlDockItem *item = GDL_DOCK_ITEM (g_object);
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *icon;
- gchar* long_name;
- gchar* stock_id;
-
- if (GDL_DOCK_ITEM_HAS_GRIP (item)) {
- item->_priv->grip_shown = TRUE;
- item->_priv->grip = gdl_dock_item_grip_new (item);
- gtk_widget_set_parent (item->_priv->grip, GTK_WIDGET (item));
- gtk_widget_show (item->_priv->grip);
- }
- else {
- item->_priv->grip_shown = FALSE;
- }
-
- g_object_get (g_object, "long-name", &long_name, "stock-id", &stock_id, NULL);
-
- hbox = gtk_hbox_new (FALSE, 5);
- label = gtk_label_new (long_name);
- icon = gtk_image_new ();
- if (stock_id)
- gtk_image_set_from_stock (GTK_IMAGE (icon), stock_id,
- GTK_ICON_SIZE_MENU);
- gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- item->_priv->notify_label =
- g_signal_connect (item, "notify::long-name", G_CALLBACK (on_long_name_changed),
- label);
- item->_priv->notify_stock_id =
- g_signal_connect (item, "notify::stock-id", G_CALLBACK (on_stock_id_changed),
- icon);
-
- gtk_widget_show_all (hbox);
-
- gdl_dock_item_set_tablabel (item, hbox);
- item->_priv->intern_tab_label = TRUE;
-
- g_free (long_name);
- g_free (stock_id);
- }
-
- return g_object;
-}
-
-static void
-gdl_dock_item_set_property (GObject *g_object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (g_object);
-
- switch (prop_id) {
- case PROP_ORIENTATION:
- gdl_dock_item_set_orientation (item, g_value_get_enum (value));
- break;
- case PROP_RESIZE:
- item->resize = g_value_get_boolean (value);
- gtk_widget_queue_resize (GTK_WIDGET (item));
- break;
- case PROP_BEHAVIOR:
- {
- GdlDockItemBehavior old_beh = item->behavior;
- item->behavior = g_value_get_flags (value);
-
- if ((old_beh ^ item->behavior) & GDL_DOCK_ITEM_BEH_LOCKED) {
- if (GDL_DOCK_OBJECT_GET_MASTER (item))
- g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
- "layout-changed");
- g_object_notify (g_object, "locked");
- gdl_dock_item_showhide_grip (item);
- }
-
- break;
- }
- case PROP_LOCKED:
- {
- GdlDockItemBehavior old_beh = item->behavior;
-
- if (g_value_get_boolean (value))
- item->behavior |= GDL_DOCK_ITEM_BEH_LOCKED;
- else
- item->behavior &= ~GDL_DOCK_ITEM_BEH_LOCKED;
-
- if (old_beh ^ item->behavior) {
- gdl_dock_item_showhide_grip (item);
- g_object_notify (g_object, "behavior");
-
- if (GDL_DOCK_OBJECT_GET_MASTER (item))
- g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
- "layout-changed");
- }
- break;
- }
- case PROP_PREFERRED_WIDTH:
- item->_priv->preferred_width = g_value_get_int (value);
- break;
- case PROP_PREFERRED_HEIGHT:
- item->_priv->preferred_height = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_item_get_property (GObject *g_object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (g_object);
-
- switch (prop_id) {
- case PROP_ORIENTATION:
- g_value_set_enum (value, item->orientation);
- break;
- case PROP_RESIZE:
- g_value_set_boolean (value, item->resize);
- break;
- case PROP_BEHAVIOR:
- g_value_set_flags (value, item->behavior);
- break;
- case PROP_LOCKED:
- g_value_set_boolean (value, !GDL_DOCK_ITEM_NOT_LOCKED (item));
- break;
- case PROP_PREFERRED_WIDTH:
- g_value_set_int (value, item->_priv->preferred_width);
- break;
- case PROP_PREFERRED_HEIGHT:
- g_value_set_int (value, item->_priv->preferred_height);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_item_destroy (GtkObject *object)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- if (item->_priv) {
- GdlDockItemPrivate *priv = item->_priv;
-
- if (priv->tab_label) {
- gdl_dock_item_set_tablabel (item, NULL);
- };
- if (priv->menu) {
- gtk_menu_detach (GTK_MENU (priv->menu));
- priv->menu = NULL;
- };
- if (priv->grip) {
- gtk_container_remove (GTK_CONTAINER (item), priv->grip);
- priv->grip = NULL;
- }
- if (priv->ph) {
- g_object_unref (priv->ph);
- priv->ph = NULL;
- }
-
- item->_priv = NULL;
- g_free (priv);
- }
-
- GTK_OBJECT_CLASS (gdl_dock_item_parent_class)->destroy (object);
-}
-
-static void
-gdl_dock_item_add (GtkContainer *container,
- GtkWidget *widget)
-{
- GdlDockItem *item;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM (container));
-
- item = GDL_DOCK_ITEM (container);
- if (GDL_IS_DOCK_OBJECT (widget)) {
- g_warning (_("You can't add a dock object (%p of type %s) inside a %s. "
- "Use a GdlDock or some other compound dock object."),
- widget, G_OBJECT_TYPE_NAME (widget), G_OBJECT_TYPE_NAME (item));
- return;
- }
-
- if (item->child != NULL) {
- g_warning (_("Attempting to add a widget with type %s to a %s, "
- "but it can only contain one widget at a time; "
- "it already contains a widget of type %s"),
- G_OBJECT_TYPE_NAME (widget),
- G_OBJECT_TYPE_NAME (item),
- G_OBJECT_TYPE_NAME (item->child));
- return;
- }
-
- gtk_widget_set_parent (widget, GTK_WIDGET (item));
- item->child = widget;
-}
-
-static void
-gdl_dock_item_remove (GtkContainer *container,
- GtkWidget *widget)
-{
- GdlDockItem *item;
- gboolean was_visible;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM (container));
-
- item = GDL_DOCK_ITEM (container);
- if (item->_priv && widget == item->_priv->grip) {
- gboolean grip_was_visible = gtk_widget_get_visible (widget);
- gtk_widget_unparent (widget);
- item->_priv->grip = NULL;
- if (grip_was_visible)
- gtk_widget_queue_resize (GTK_WIDGET (item));
- return;
- }
-
- if (GDL_DOCK_ITEM_IN_DRAG (item)) {
- gdl_dock_item_drag_end (item, TRUE);
- }
-
- g_return_if_fail (item->child == widget);
-
- was_visible = gtk_widget_get_visible (widget);
-
- gtk_widget_unparent (widget);
- item->child = NULL;
-
- if (was_visible)
- gtk_widget_queue_resize (GTK_WIDGET (container));
-}
-
-static void
-gdl_dock_item_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data)
-{
- GdlDockItem *item = (GdlDockItem *) container;
-
- g_return_if_fail (callback != NULL);
-
- if (include_internals && item->_priv->grip)
- (* callback) (item->_priv->grip, callback_data);
-
- if (item->child)
- (* callback) (item->child, callback_data);
-}
-
-static GType
-gdl_dock_item_child_type (GtkContainer *container)
-{
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (container), G_TYPE_NONE);
-
- if (!GDL_DOCK_ITEM (container)->child)
- return GTK_TYPE_WIDGET;
- else
- return G_TYPE_NONE;
-}
-
-static void
-gdl_dock_item_set_focus_child (GtkContainer *container,
- GtkWidget *child)
-{
- g_return_if_fail (GDL_IS_DOCK_ITEM (container));
-
- if (GTK_CONTAINER_CLASS (gdl_dock_item_parent_class)->set_focus_child) {
- (* GTK_CONTAINER_CLASS (gdl_dock_item_parent_class)->set_focus_child) (container, child);
- }
-
- gdl_dock_item_showhide_grip (GDL_DOCK_ITEM (container));
-}
-
-static void
-gdl_dock_item_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GdlDockItem *item;
- GtkRequisition child_requisition;
- GtkRequisition grip_requisition;
- GtkStyle *style;
- guint border_width;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
- g_return_if_fail (requisition != NULL);
-
- item = GDL_DOCK_ITEM (widget);
-
- /* If our child is not visible, we still request its size, since
- we won't have any useful hint for our size otherwise. */
- if (item->child)
- gtk_widget_size_request (item->child, &child_requisition);
- else {
- child_requisition.width = 0;
- child_requisition.height = 0;
- }
-
- if (item->orientation == GTK_ORIENTATION_HORIZONTAL) {
- if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
- gtk_widget_size_request (item->_priv->grip, &grip_requisition);
- requisition->width = grip_requisition.width;
- } else {
- requisition->width = 0;
- }
-
- if (item->child) {
- requisition->width += child_requisition.width;
- requisition->height = child_requisition.height;
- } else
- requisition->height = 0;
- } else {
- if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
- gtk_widget_size_request (item->_priv->grip, &grip_requisition);
- requisition->height = grip_requisition.height;
- } else {
- requisition->height = 0;
- }
-
- if (item->child) {
- requisition->width = child_requisition.width;
- requisition->height += child_requisition.height;
- } else
- requisition->width = 0;
- }
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
- style = gtk_widget_get_style (widget);
-
- requisition->width += (border_width + style->xthickness) * 2;
- requisition->height += (border_width + style->ythickness) * 2;
-
- //gtk_widget_size_request (widget, requisition);
-}
-
-static void
-gdl_dock_item_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GdlDockItem *item;
-
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
- g_return_if_fail (allocation != NULL);
-
- item = GDL_DOCK_ITEM (widget);
-
- gtk_widget_set_allocation (widget, allocation);
-
- /* Once size is allocated, preferred size is no longer necessary */
- item->_priv->preferred_height = -1;
- item->_priv->preferred_width = -1;
-
- if (gtk_widget_get_realized (widget))
- gdk_window_move_resize (gtk_widget_get_window (widget),
- allocation->x,
- allocation->y,
- allocation->width,
- allocation->height);
-
- if (item->child && gtk_widget_get_visible (item->child)) {
- GtkAllocation child_allocation;
- GtkStyle *style;
- guint border_width;
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
- style = gtk_widget_get_style (widget);
-
- child_allocation.x = border_width + style->xthickness;
- child_allocation.y = border_width + style->ythickness;
- child_allocation.width = allocation->width
- - 2 * (border_width + style->xthickness);
- child_allocation.height = allocation->height
- - 2 * (border_width + style->ythickness);
-
- if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
- GtkAllocation grip_alloc = child_allocation;
- GtkRequisition grip_req;
-
- gtk_widget_size_request (item->_priv->grip, &grip_req);
-
- if (item->orientation == GTK_ORIENTATION_HORIZONTAL) {
- child_allocation.x += grip_req.width;
- child_allocation.width -= grip_req.width;
- grip_alloc.width = grip_req.width;
- } else {
- child_allocation.y += grip_req.height;
- child_allocation.height -= grip_req.height;
- grip_alloc.height = grip_req.height;
- }
- if (item->_priv->grip)
- gtk_widget_size_allocate (item->_priv->grip, &grip_alloc);
- }
- /* Allocation can't be negative */
- if (child_allocation.width < 0)
- child_allocation.width = 0;
- if (child_allocation.height < 0)
- child_allocation.height = 0;
- gtk_widget_size_allocate (item->child, &child_allocation);
- }
-}
-
-static void
-gdl_dock_item_map (GtkWidget *widget)
-{
- GdlDockItem *item;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- gtk_widget_set_mapped (widget, TRUE);
-
- item = GDL_DOCK_ITEM (widget);
-
- gdk_window_show (gtk_widget_get_window (widget));
-
- if (item->child
- && gtk_widget_get_visible (item->child)
- && !gtk_widget_get_mapped (item->child))
- gtk_widget_map (item->child);
-
- if (item->_priv->grip
- && gtk_widget_get_visible (GTK_WIDGET (item->_priv->grip))
- && !gtk_widget_get_mapped (GTK_WIDGET (item->_priv->grip)))
- gtk_widget_map (item->_priv->grip);
-}
-
-static void
-gdl_dock_item_unmap (GtkWidget *widget)
-{
- GdlDockItem *item;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- gtk_widget_set_mapped (widget, FALSE);
-
- item = GDL_DOCK_ITEM (widget);
-
- gdk_window_hide (gtk_widget_get_window (widget));
-
- if (item->_priv->grip)
- gtk_widget_unmap (item->_priv->grip);
-}
-
-static void
-gdl_dock_item_realize (GtkWidget *widget)
-{
- GdlDockItem *item;
- GtkAllocation allocation;
- GdkWindow *window;
- GdkWindowAttr attributes;
- gint attributes_mask;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- item = GDL_DOCK_ITEM (widget);
-
- gtk_widget_set_realized (widget, TRUE);
-
- /* widget window */
- gtk_widget_get_allocation (widget, &allocation);
- attributes.x = allocation.x;
- attributes.y = allocation.y;
- attributes.width = allocation.width;
- attributes.height = allocation.height;
- attributes.window_type = GDK_WINDOW_CHILD;
- attributes.wclass = GDK_INPUT_OUTPUT;
- attributes.visual = gtk_widget_get_visual (widget);
- attributes.colormap = gtk_widget_get_colormap (widget);
- attributes.event_mask = (gtk_widget_get_events (widget) |
- GDK_EXPOSURE_MASK |
- GDK_BUTTON1_MOTION_MASK |
- GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK);
- attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
- window = gdk_window_new (gtk_widget_get_parent_window (widget),
- &attributes, attributes_mask);
- gtk_widget_set_window (widget, window);
- gdk_window_set_user_data (window, widget);
-
- gtk_widget_style_attach (widget);
- gtk_style_set_background (gtk_widget_get_style (widget), window,
- gtk_widget_get_state (GTK_WIDGET (item)));
- gdk_window_set_back_pixmap (window, NULL, TRUE);
-
- if (item->child)
- gtk_widget_set_parent_window (item->child, window);
-
- if (item->_priv->grip)
- gtk_widget_set_parent_window (item->_priv->grip, window);
-}
-
-static void
-gdl_dock_item_style_set (GtkWidget *widget,
- GtkStyle *previous_style)
-{
- GdkWindow *window;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- if (gtk_widget_get_realized (widget) &&
- gtk_widget_get_has_window (widget))
- {
- window = gtk_widget_get_window (widget);
- gtk_style_set_background (gtk_widget_get_style (widget),
- window,
- gtk_widget_get_state (widget));
- if (gtk_widget_is_drawable (widget))
- gdk_window_clear (window);
- }
-}
-
-static void
-gdl_dock_item_paint (GtkWidget *widget,
- GdkEventExpose *event)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (widget);
-
- gtk_paint_box (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget),
- gtk_widget_get_state (widget),
- GTK_SHADOW_NONE,
- &event->area, widget,
- "dockitem",
- 0, 0, -1, -1);
-
-/* see bug #950556: avoid regression with GTK2/Quartz */
-#if !defined(GDK_WINDOWING_QUARTZ)
- if (GTK_IS_WIDGET(item->_priv->grip))
- gtk_widget_queue_draw (GTK_WIDGET(item->_priv->grip));
-#endif
-}
-
-static gint
-gdl_dock_item_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- if (gtk_widget_is_drawable (widget) &&
- event->window == gtk_widget_get_window (widget))
- {
- gdl_dock_item_paint (widget, event);
- GTK_WIDGET_CLASS (gdl_dock_item_parent_class)->expose_event (widget,event);
- }
-
- return FALSE;
-}
-
-static void
-gdl_dock_item_move_focus_child (GdlDockItem *item,
- GtkDirectionType dir)
-{
- g_return_if_fail (GDL_IS_DOCK_ITEM (item));
- gtk_widget_child_focus (GTK_WIDGET (item->child), dir);
-}
-
-#define EVENT_IN_GRIP_EVENT_WINDOW(ev,gr) \
- ((gr) != NULL && (ev)->window == GDL_DOCK_ITEM_GRIP (gr)->title_window)
-
-#define EVENT_IN_TABLABEL_EVENT_WINDOW(ev,tl) \
- ((tl) != NULL && (ev)->window == GDL_DOCK_TABLABEL (tl)->event_window)
-
-static gint
-gdl_dock_item_button_changed (GtkWidget *widget,
- GdkEventButton *event)
-{
- GdlDockItem *item;
- GtkAllocation allocation;
- GdkCursor *cursor;
- gboolean locked;
- gboolean event_handled;
- gboolean in_handle;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- item = GDL_DOCK_ITEM (widget);
-
- if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip))
- return FALSE;
-
- locked = !GDL_DOCK_ITEM_NOT_LOCKED (item);
-
- event_handled = FALSE;
-
- gtk_widget_get_allocation (item->_priv->grip, &allocation);
-
- /* Check if user clicked on the drag handle. */
- switch (item->orientation) {
- case GTK_ORIENTATION_HORIZONTAL:
- in_handle = event->x < allocation.width;
- break;
- case GTK_ORIENTATION_VERTICAL:
- in_handle = event->y < allocation.height;
- break;
- default:
- in_handle = FALSE;
- break;
- }
-
- /* Left mousebutton click on dockitem. */
- if (!locked && event->button == 1 && event->type == GDK_BUTTON_PRESS) {
-
- if (!gdl_dock_item_or_child_has_focus (item))
- gtk_widget_grab_focus (GTK_WIDGET (item));
-
- /* Set in_drag flag, grab pointer and call begin drag operation. */
- if (in_handle) {
- item->_priv->start_x = event->x;
- item->_priv->start_y = event->y;
-
- GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
-
- cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
- GDK_FLEUR);
- gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window,
- cursor);
- gdk_cursor_unref (cursor);
-
- event_handled = TRUE;
- };
-
- } else if (!locked &&event->type == GDK_BUTTON_RELEASE && event->button == 1) {
- if (GDL_DOCK_ITEM_IN_DRAG (item)) {
- /* User dropped widget somewhere. */
- gdl_dock_item_drag_end (item, FALSE);
- gtk_widget_grab_focus (GTK_WIDGET (item));
- event_handled = TRUE;
- }
- else if (GDL_DOCK_ITEM_IN_PREDRAG (item)) {
- GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
- event_handled = TRUE;
- }
-
- /* we check the window since if the item was redocked it's
- been unrealized and maybe it's not realized again yet */
- if (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window) {
- cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
- GDK_HAND2);
- gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window,
- cursor);
- gdk_cursor_unref (cursor);
- }
-
- } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS && in_handle) {
- gdl_dock_item_popup_menu (item, event->button, event->time);
- event_handled = TRUE;
- }
-
- return event_handled;
-}
-
-static gint
-gdl_dock_item_motion (GtkWidget *widget,
- GdkEventMotion *event)
-{
- GdlDockItem *item;
- gint new_x, new_y;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- item = GDL_DOCK_ITEM (widget);
-
- if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip))
- return FALSE;
-
- if (GDL_DOCK_ITEM_IN_PREDRAG (item)) {
- if (gtk_drag_check_threshold (widget,
- item->_priv->start_x,
- item->_priv->start_y,
- event->x,
- event->y)) {
- GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
- item->dragoff_x = item->_priv->start_x;
- item->dragoff_y = item->_priv->start_y;
-
- gdl_dock_item_drag_start (item);
- }
- }
-
- if (!GDL_DOCK_ITEM_IN_DRAG (item))
- return FALSE;
-
- new_x = event->x_root;
- new_y = event->y_root;
-
- g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_MOTION],
- 0, new_x, new_y);
-
- return TRUE;
-}
-
-static gboolean
-gdl_dock_item_key_press (GtkWidget *widget,
- GdkEventKey *event)
-{
- gboolean event_handled = FALSE;
-
- if (GDL_DOCK_ITEM_IN_DRAG (widget)) {
- if (event->keyval == GDK_Escape) {
- gdl_dock_item_drag_end (GDL_DOCK_ITEM (widget), TRUE);
- event_handled = TRUE;
- }
- }
-
- if (event_handled)
- return TRUE;
- else
- return GTK_WIDGET_CLASS (gdl_dock_item_parent_class)->key_press_event (widget, event);
-}
-
-static gboolean
-gdl_dock_item_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request)
-{
- GtkAllocation alloc;
- gint rel_x, rel_y;
-
- /* we get (x,y) in our allocation coordinates system */
-
- /* Get item's allocation. */
- gtk_widget_get_allocation (GTK_WIDGET (object), &alloc);
-
- /* Get coordinates relative to our window. */
- rel_x = x - alloc.x;
- rel_y = y - alloc.y;
-
- /* Location is inside. */
- if (rel_x > 0 && rel_x < alloc.width &&
- rel_y > 0 && rel_y < alloc.height) {
- float rx, ry;
- GtkRequisition my, other;
- gint divider = -1;
-
- /* this are for calculating the extra docking parameter */
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (request->applicant), &other);
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &my);
-
- /* Calculate location in terms of the available space (0-100%). */
- rx = (float) rel_x / alloc.width;
- ry = (float) rel_y / alloc.height;
-
- /* Determine dock location. */
- if (rx < SPLIT_RATIO) {
- request->position = GDL_DOCK_LEFT;
- divider = other.width;
- }
- else if (rx > (1 - SPLIT_RATIO)) {
- request->position = GDL_DOCK_RIGHT;
- rx = 1 - rx;
- divider = MAX (0, my.width - other.width);
- }
- else if (ry < SPLIT_RATIO && ry < rx) {
- request->position = GDL_DOCK_TOP;
- divider = other.height;
- }
- else if (ry > (1 - SPLIT_RATIO) && (1 - ry) < rx) {
- request->position = GDL_DOCK_BOTTOM;
- divider = MAX (0, my.height - other.height);
- }
- else
- request->position = GDL_DOCK_CENTER;
-
- /* Reset rectangle coordinates to entire item. */
- request->rect.x = 0;
- request->rect.y = 0;
- request->rect.width = alloc.width;
- request->rect.height = alloc.height;
-
- GdlDockItemBehavior behavior = GDL_DOCK_ITEM(object)->behavior;
-
- /* Calculate docking indicator rectangle size for new locations. Only
- do this when we're not over the item's current location. */
- if (request->applicant != object) {
- switch (request->position) {
- case GDL_DOCK_TOP:
- if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP)
- return FALSE;
- request->rect.height *= SPLIT_RATIO;
- break;
- case GDL_DOCK_BOTTOM:
- if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM)
- return FALSE;
- request->rect.y += request->rect.height * (1 - SPLIT_RATIO);
- request->rect.height *= SPLIT_RATIO;
- break;
- case GDL_DOCK_LEFT:
- if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT)
- return FALSE;
- request->rect.width *= SPLIT_RATIO;
- break;
- case GDL_DOCK_RIGHT:
- if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT)
- return FALSE;
- request->rect.x += request->rect.width * (1 - SPLIT_RATIO);
- request->rect.width *= SPLIT_RATIO;
- break;
- case GDL_DOCK_CENTER:
- if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER)
- return FALSE;
- request->rect.x = request->rect.width * SPLIT_RATIO/2;
- request->rect.y = request->rect.height * SPLIT_RATIO/2;
- request->rect.width = (request->rect.width *
- (1 - SPLIT_RATIO/2)) - request->rect.x;
- request->rect.height = (request->rect.height *
- (1 - SPLIT_RATIO/2)) - request->rect.y;
- break;
- default:
- break;
- }
- }
-
- /* adjust returned coordinates so they are have the same
- origin as our window */
- request->rect.x += alloc.x;
- request->rect.y += alloc.y;
-
- /* Set possible target location and return TRUE. */
- request->target = object;
-
- /* fill-in other dock information */
- if (request->position != GDL_DOCK_CENTER && divider >= 0) {
- if (G_IS_VALUE (&request->extra))
- g_value_unset (&request->extra);
- g_value_init (&request->extra, G_TYPE_UINT);
- g_value_set_uint (&request->extra, (guint) divider);
- }
-
- return TRUE;
- }
- else /* No docking possible at this location. */
- return FALSE;
-}
-
-static void
-gdl_dock_item_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data)
-{
- GdlDockObject *new_parent = NULL;
- GdlDockObject *parent, *requestor_parent;
- GtkAllocation allocation;
- gboolean add_ourselves_first = FALSE;
-
- guint available_space=0;
- gint pref_size=-1;
- guint splitpos=0;
- GtkRequisition req, object_req, parent_req;
-
- parent = gdl_dock_object_get_parent_object (object);
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (requestor), &req);
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &object_req);
- if (GDL_IS_DOCK_ITEM (parent))
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (parent), &parent_req);
- else
- {
- gtk_widget_get_allocation (GTK_WIDGET (parent), &allocation);
- parent_req.height = allocation.height;
- parent_req.width = allocation.width;
- }
-
- /* If preferred size is not set on the requestor (perhaps a new item),
- * then estimate and set it. The default value (either 0 or 1 pixels) is
- * not any good.
- */
- switch (position) {
- case GDL_DOCK_TOP:
- case GDL_DOCK_BOTTOM:
- if (req.width < 2)
- {
- req.width = object_req.width;
- g_object_set (requestor, "preferred-width", req.width, NULL);
- }
- if (req.height < 2)
- {
- req.height = NEW_DOCK_ITEM_RATIO * object_req.height;
- g_object_set (requestor, "preferred-height", req.height, NULL);
- }
- if (req.width > 1)
- g_object_set (object, "preferred-width", req.width, NULL);
- if (req.height > 1)
- g_object_set (object, "preferred-height",
- object_req.height - req.height, NULL);
- break;
- case GDL_DOCK_LEFT:
- case GDL_DOCK_RIGHT:
- if (req.height < 2)
- {
- req.height = object_req.height;
- g_object_set (requestor, "preferred-height", req.height, NULL);
- }
- if (req.width < 2)
- {
- req.width = NEW_DOCK_ITEM_RATIO * object_req.width;
- g_object_set (requestor, "preferred-width", req.width, NULL);
- }
- if (req.height > 1)
- g_object_set (object, "preferred-height", req.height, NULL);
- if (req.width > 1)
- g_object_set (object, "preferred-width",
- object_req.width - req.width, NULL);
- break;
- case GDL_DOCK_CENTER:
- if (req.height < 2)
- {
- req.height = object_req.height;
- g_object_set (requestor, "preferred-height", req.height, NULL);
- }
- if (req.width < 2)
- {
- req.width = object_req.width;
- g_object_set (requestor, "preferred-width", req.width, NULL);
- }
- if (req.height > 1)
- g_object_set (object, "preferred-height", req.height, NULL);
- if (req.width > 1)
- g_object_set (object, "preferred-width", req.width, NULL);
- break;
- default:
- {
- GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT));
- GEnumValue *enum_value = g_enum_get_value (enum_class, position);
- const gchar *name = enum_value ? enum_value->value_name : NULL;
-
- g_warning (_("Unsupported docking strategy %s in dock object of type %s"),
- name, G_OBJECT_TYPE_NAME (object));
- g_type_class_unref (enum_class);
- return;
- }
- }
- switch (position) {
- case GDL_DOCK_TOP:
- case GDL_DOCK_BOTTOM:
- /* get a paned style dock object */
- new_parent = g_object_new (gdl_dock_object_type_from_nick ("paned"),
- "orientation", GTK_ORIENTATION_VERTICAL,
- "preferred-width", object_req.width,
- "preferred-height", object_req.height,
- NULL);
- add_ourselves_first = (position == GDL_DOCK_BOTTOM);
- if (parent)
- available_space = parent_req.height;
- pref_size = req.height;
- break;
- case GDL_DOCK_LEFT:
- case GDL_DOCK_RIGHT:
- new_parent = g_object_new (gdl_dock_object_type_from_nick ("paned"),
- "orientation", GTK_ORIENTATION_HORIZONTAL,
- "preferred-width", object_req.width,
- "preferred-height", object_req.height,
- NULL);
- add_ourselves_first = (position == GDL_DOCK_RIGHT);
- if(parent)
- available_space = parent_req.width;
- pref_size = req.width;
- break;
- case GDL_DOCK_CENTER:
- /* If the parent is already a DockNotebook, we don't need
- to create a new one. */
- if (!GDL_IS_DOCK_NOTEBOOK (parent))
- {
- new_parent = g_object_new (gdl_dock_object_type_from_nick ("notebook"),
- "preferred-width", object_req.width,
- "preferred-height", object_req.height,
- NULL);
- add_ourselves_first = TRUE;
- }
- break;
- default:
- {
- GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT));
- GEnumValue *enum_value = g_enum_get_value (enum_class, position);
- const gchar *name = enum_value ? enum_value->value_name : NULL;
-
- g_warning (_("Unsupported docking strategy %s in dock object of type %s"),
- name, G_OBJECT_TYPE_NAME (object));
- g_type_class_unref (enum_class);
- return;
- }
- }
-
- /* freeze the parent so it doesn't reduce automatically */
- if (parent)
- gdl_dock_object_freeze (parent);
-
-
- if (new_parent)
- {
- /* ref ourselves since we could be destroyed when detached */
- g_object_ref (object);
- GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW);
- gdl_dock_object_detach (object, FALSE);
-
- /* freeze the new parent, so reduce won't get called before it's
- actually added to our parent */
- gdl_dock_object_freeze (new_parent);
-
- /* bind the new parent to our master, so the following adds work */
- gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object)));
-
- /* add the objects */
- if (add_ourselves_first) {
- gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
- gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
- splitpos = available_space - pref_size;
- } else {
- gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
- gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
- splitpos = pref_size;
- }
-
- /* add the new parent to the parent */
- if (parent)
- gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent));
-
- /* show automatic object */
- if (gtk_widget_get_visible (GTK_WIDGET (object)))
- {
- gtk_widget_show (GTK_WIDGET (new_parent));
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW);
- }
- gdl_dock_object_thaw (new_parent);
-
- /* use extra docking parameter */
- if (position != GDL_DOCK_CENTER && other_data &&
- G_VALUE_HOLDS (other_data, G_TYPE_UINT)) {
-
- g_object_set (G_OBJECT (new_parent),
- "position", g_value_get_uint (other_data),
- NULL);
- } else if (splitpos > 0 && splitpos < available_space) {
- g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL);
- }
-
- g_object_unref (object);
- }
- else
- {
- /* If the parent is already a DockNotebook, we don't need
- to create a new one. */
- gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (requestor));
- }
-
- requestor_parent = gdl_dock_object_get_parent_object (requestor);
- if (GDL_IS_DOCK_NOTEBOOK (requestor_parent))
- {
- /* Activate the page we just added */
- GdlDockItem* notebook = GDL_DOCK_ITEM (gdl_dock_object_get_parent_object (requestor));
- gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook->child),
- gtk_notebook_page_num (GTK_NOTEBOOK (notebook->child), GTK_WIDGET (requestor)));
- }
-
- if (parent)
- gdl_dock_object_thaw (parent);
-}
-
-static void
-gdl_dock_item_detach_menu (GtkWidget *widget,
- GtkMenu *menu)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (widget);
- item->_priv->menu = NULL;
-}
-
-static void
-gdl_dock_item_popup_menu (GdlDockItem *item,
- guint button,
- guint32 time)
-{
- GtkWidget *mitem;
-
- if (!item->_priv->menu) {
- /* Create popup menu and attach it to the dock item */
- item->_priv->menu = gtk_menu_new ();
- gtk_menu_attach_to_widget (GTK_MENU (item->_priv->menu),
- GTK_WIDGET (item),
- gdl_dock_item_detach_menu);
-
- if (item->behavior & GDL_DOCK_ITEM_BEH_LOCKED) {
- /* UnLock menuitem */
- mitem = gtk_menu_item_new_with_label (_("UnLock"));
- gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu),
- mitem);
- g_signal_connect (mitem, "activate",
- G_CALLBACK (gdl_dock_item_unlock_cb), item);
- } else {
- /* Hide menuitem. */
- mitem = gtk_menu_item_new_with_label (_("Hide"));
- gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem);
- g_signal_connect (mitem, "activate",
- G_CALLBACK (gdl_dock_item_hide_cb), item);
- /* Lock menuitem */
- mitem = gtk_menu_item_new_with_label (_("Lock"));
- gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem);
- g_signal_connect (mitem, "activate",
- G_CALLBACK (gdl_dock_item_lock_cb), item);
- }
- }
-
- /* Show popup menu. */
- gtk_widget_show_all (item->_priv->menu);
- gtk_menu_popup (GTK_MENU (item->_priv->menu), NULL, NULL, NULL, NULL,
- button, time);
-}
-
-static void
-gdl_dock_item_drag_start (GdlDockItem *item)
-{
- GdkCursor *fleur;
-
- if (!gtk_widget_get_realized (GTK_WIDGET (item)))
- gtk_widget_realize (GTK_WIDGET (item));
-
- GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_DRAG);
-
- /* grab the pointer so we receive all mouse events */
- fleur = gdk_cursor_new (GDK_FLEUR);
-
- /* grab the keyboard & pointer */
- gtk_grab_add (GTK_WIDGET (item));
-
- gdk_cursor_unref (fleur);
-
- g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_BEGIN], 0);
-}
-
-static void
-gdl_dock_item_drag_end (GdlDockItem *item,
- gboolean cancel)
-{
- /* Release pointer & keyboard. */
- GtkWidget *widget = gtk_grab_get_current ();
- if (widget == NULL) {
- widget = GTK_WIDGET (item);
- }
- gtk_grab_remove (widget);
-
- g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_END], 0, cancel);
-
- GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_DRAG);
-}
-
-static void
-gdl_dock_item_tab_button (GtkWidget *widget,
- GdkEventButton *event,
- gpointer data)
-{
- GdlDockItem *item;
- GtkAllocation allocation;
-
- item = GDL_DOCK_ITEM (data);
-
- if (!GDL_DOCK_ITEM_NOT_LOCKED (item))
- return;
-
- switch (event->button) {
- case 1:
- /* set dragoff_{x,y} as we the user clicked on the middle of the
- drag handle */
- switch (item->orientation) {
- case GTK_ORIENTATION_HORIZONTAL:
- gtk_widget_get_allocation (GTK_WIDGET (data), &allocation);
- /*item->dragoff_x = item->_priv->grip_size / 2;*/
- item->dragoff_y = allocation.height / 2;
- break;
- case GTK_ORIENTATION_VERTICAL:
- /*item->dragoff_x = GTK_WIDGET (data)->allocation.width / 2;*/
- item->dragoff_y = item->_priv->grip_size / 2;
- break;
- };
- gdl_dock_item_drag_start (item);
- break;
-
- case 3:
- gdl_dock_item_popup_menu (item, event->button, event->time);
- break;
-
- default:
- break;
- };
-}
-
-static void
-gdl_dock_item_hide_cb (GtkWidget *widget,
- GdlDockItem *item)
-{
- GdlDockMaster *master;
-
- g_return_if_fail (item != NULL);
-
- master = GDL_DOCK_OBJECT_GET_MASTER (item);
- gdl_dock_item_hide_item (item);
-}
-
-static void
-gdl_dock_item_lock_cb (GtkWidget *widget,
- GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
-
- gdl_dock_item_lock (item);
-}
-
-static void
-gdl_dock_item_unlock_cb (GtkWidget *widget,
- GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
-
- gdl_dock_item_unlock (item);
-}
-
-static void
-gdl_dock_item_showhide_grip (GdlDockItem *item)
-{
- GdkDisplay *display;
- GdkCursor *cursor;
-
- gdl_dock_item_detach_menu (GTK_WIDGET (item), NULL);
- display = gtk_widget_get_display (GTK_WIDGET (item));
- cursor = NULL;
-
- if (item->_priv->grip) {
- if (GDL_DOCK_ITEM_GRIP_SHOWN (item) &&
- GDL_DOCK_ITEM_NOT_LOCKED(item))
- cursor = gdk_cursor_new_for_display (display, GDK_HAND2);
- }
- if (item->_priv->grip && GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window)
- gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window, cursor);
-
- if (cursor)
- gdk_cursor_unref (cursor);
-
- gtk_widget_queue_resize (GTK_WIDGET (item));
-}
-
-static void
-gdl_dock_item_real_set_orientation (GdlDockItem *item,
- GtkOrientation orientation)
-{
- item->orientation = orientation;
-
- if (gtk_widget_is_drawable (GTK_WIDGET (item)))
- gtk_widget_queue_draw (GTK_WIDGET (item));
- gtk_widget_queue_resize (GTK_WIDGET (item));
-}
-
-
-/* ----- Public interface ----- */
-
-/**
- * gdl_dock_item_new:
- * @name: Unique name for identifying the dock object.
- * @long_name: Human readable name for the dock object.
- * @behavior: General behavior for the dock item (i.e. whether it can
- * float, if it's locked, etc.), as specified by
- * #GdlDockItemBehavior flags.
- *
- * Creates a new dock item widget.
- * Returns: The newly created dock item grip widget.
- **/
-GtkWidget *
-gdl_dock_item_new (const gchar *name,
- const gchar *long_name,
- GdlDockItemBehavior behavior)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
- "name", name,
- "long-name", long_name,
- "behavior", behavior,
- NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (item);
-}
-
-/**
- * gdl_dock_item_new_with_stock:
- * @name: Unique name for identifying the dock object.
- * @long_name: Human readable name for the dock object.
- * @stock_id: Stock icon for the dock object.
- * @behavior: General behavior for the dock item (i.e. whether it can
- * float, if it's locked, etc.), as specified by
- * #GdlDockItemBehavior flags.
- *
- * Creates a new dock item grip widget with a given stock id.
- * Returns: The newly created dock item grip widget.
- **/
-GtkWidget *
-gdl_dock_item_new_with_stock (const gchar *name,
- const gchar *long_name,
- const gchar *stock_id,
- GdlDockItemBehavior behavior)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
- "name", name,
- "long-name", long_name,
- "stock-id", stock_id,
- "behavior", behavior,
- NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (item);
-}
-
-GtkWidget *
-gdl_dock_item_new_with_pixbuf_icon (const gchar *name,
- const gchar *long_name,
- const GdkPixbuf *pixbuf_icon,
- GdlDockItemBehavior behavior)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
- "name", name,
- "long-name", long_name,
- "pixbuf-icon", pixbuf_icon,
- "behavior", behavior,
- NULL));
-
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
- gdl_dock_item_set_tablabel (item, gtk_label_new (long_name));
-
- return GTK_WIDGET (item);
-}
-
-/* convenient function (and to preserve source compat) */
-/**
- * gdl_dock_item_dock_to:
- * @item: The dock item that will be relocated to the dock position.
- * @target: (allow-none): The dock item that will be used as the point of reference.
- * @position: The position to dock #item, relative to #target.
- * @docking_param: This value is unused, and will be ignored.
- *
- * Relocates a dock item to a new location relative to another dock item.
- **/
-void
-gdl_dock_item_dock_to (GdlDockItem *item,
- GdlDockItem *target,
- GdlDockPlacement position,
- gint docking_param)
-{
- g_return_if_fail (item != NULL);
- g_return_if_fail (item != target);
- g_return_if_fail (target != NULL || position == GDL_DOCK_FLOATING);
- g_return_if_fail ((item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) == 0 || position != GDL_DOCK_FLOATING);
-
- if (position == GDL_DOCK_FLOATING || !target) {
- GdlDockObject *controller;
-
- if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) {
- g_warning (_("Attempt to bind an unbound item %p"), item);
- return;
- }
-
- controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
-
- /* FIXME: save previous docking position for later
- re-docking... does this make sense now? */
-
- /* Create new floating dock for widget. */
- item->dragoff_x = item->dragoff_y = 0;
- gdl_dock_add_floating_item (GDL_DOCK (controller),
- item, 0, 0, -1, -1);
-
- } else
- gdl_dock_object_dock (GDL_DOCK_OBJECT (target),
- GDL_DOCK_OBJECT (item),
- position, NULL);
-}
-
-/**
- * gdl_dock_item_set_orientation:
- * @item: The dock item which will get it's orientation set.
- * @orientation: The orientation to set the item to. If the orientation
- * is set to #GTK_ORIENTATION_VERTICAL, the grip widget will be shown
- * along the top of the edge of item (if it is not hidden). If the
- * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip widget
- * will be shown down the left edge of the item (even if the widget
- * text direction is set to RTL).
- *
- * This function sets the layout of the dock item.
- **/
-void
-gdl_dock_item_set_orientation (GdlDockItem *item,
- GtkOrientation orientation)
-{
- GParamSpec *pspec;
-
- g_return_if_fail (item != NULL);
-
- if (item->orientation != orientation) {
- /* push the property down the hierarchy if our child supports it */
- if (item->child != NULL) {
- pspec = g_object_class_find_property (
- G_OBJECT_GET_CLASS (item->child), "orientation");
- if (pspec && pspec->value_type == GTK_TYPE_ORIENTATION)
- g_object_set (G_OBJECT (item->child),
- "orientation", orientation,
- NULL);
- };
- if (GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation)
- GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation (item, orientation);
- g_object_notify (G_OBJECT (item), "orientation");
- }
-}
-
-/**
- * gdl_dock_item_get_tablabel:
- * @item: The dock item from which to get the tab label widget.
- *
- * Gets the current tab label widget. Note that this label widget is
- * only visible when the "switcher-style" property of the #GdlDockMaster
- * is set to #GDL_SWITCHER_STYLE_TABS
- *
- * Returns: Returns the tab label widget.
- **/
-GtkWidget *
-gdl_dock_item_get_tablabel (GdlDockItem *item)
-{
- g_return_val_if_fail (item != NULL, NULL);
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL);
-
- return item->_priv->tab_label;
-}
-
-/**
- * gdl_dock_item_set_tablabel:
- * @item: The dock item which will get it's tab label widget set.
- * @tablabel: The widget that will become the tab label.
- *
- * Replaces the current tab label widget with another widget. Note that
- * this label widget is only visible when the "switcher-style" property
- * of the #GdlDockMaster is set to #GDL_SWITCHER_STYLE_TABS
- **/
-void
-gdl_dock_item_set_tablabel (GdlDockItem *item,
- GtkWidget *tablabel)
-{
- g_return_if_fail (item != NULL);
-
- if (item->_priv->intern_tab_label)
- {
- item->_priv->intern_tab_label = FALSE;
- g_signal_handler_disconnect (item, item->_priv->notify_label);
- g_signal_handler_disconnect (item, item->_priv->notify_stock_id);
- }
-
- if (item->_priv->tab_label) {
- /* disconnect and unref the previous tablabel */
- if (GDL_IS_DOCK_TABLABEL (item->_priv->tab_label)) {
- g_signal_handlers_disconnect_matched (item->_priv->tab_label,
- G_SIGNAL_MATCH_DATA,
- 0, 0, NULL,
- NULL, item);
- g_object_set (item->_priv->tab_label, "item", NULL, NULL);
- }
- g_object_unref (item->_priv->tab_label);
- item->_priv->tab_label = NULL;
- }
-
- if (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);
- /* connect to tablabel signal */
- g_signal_connect (tablabel, "button_pressed_handle",
- G_CALLBACK (gdl_dock_item_tab_button), item);
- }
- }
-}
-
-/**
- * gdl_dock_item_get_grip:
- * @item: The dock item from which to to get the grip of.
- *
- * This function returns the dock item's grip label widget.
- *
- * Returns: Returns the current label widget.
- **/
-GtkWidget *
-gdl_dock_item_get_grip(GdlDockItem *item)
-{
- g_return_val_if_fail (item != NULL, NULL);
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL);
-
- return item->_priv->grip;
-}
-
-/**
- * gdl_dock_item_hide_grip:
- * @item: The dock item to hide the grip of.
- *
- * This function hides the dock item's grip widget.
- **/
-void
-gdl_dock_item_hide_grip (GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
- if (item->_priv->grip_shown) {
- item->_priv->grip_shown = FALSE;
- gdl_dock_item_showhide_grip (item);
- };
- g_warning ("Grips always show unless GDL_DOCK_ITEM_BEH_NO_GRIP is set\n" );
-}
-
-/**
- * gdl_dock_item_show_grip:
- * @item: The dock item to show the grip of.
- *
- * This function shows the dock item's grip widget.
- **/
-void
-gdl_dock_item_show_grip (GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
- if (!item->_priv->grip_shown) {
- item->_priv->grip_shown = TRUE;
- gdl_dock_item_showhide_grip (item);
- };
-}
-
-/**
- * gdl_dock_item_notify_selected:
- * @item: the dock item to emit a selected signal on.
- *
- * This function emits the selected signal. It is to be used by #GdlSwitcher
- * to let clients know that this item has been switched to.
- **/
-void
-gdl_dock_item_notify_selected (GdlDockItem *item)
-{
- g_signal_emit (item, gdl_dock_item_signals [SELECTED], 0);
-}
-
-/* convenient function (and to preserve source compat) */
-/**
- * gdl_dock_item_bind:
- * @item: The item to bind.
- * @dock: The #GdlDock widget to bind it to. Note that this widget must
- * be a type of #GdlDock.
- *
- * Binds this dock item to a new dock master.
- **/
-void
-gdl_dock_item_bind (GdlDockItem *item,
- GtkWidget *dock)
-{
- g_return_if_fail (item != NULL);
- g_return_if_fail (dock == NULL || GDL_IS_DOCK (dock));
-
- gdl_dock_object_bind (GDL_DOCK_OBJECT (item),
- G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (dock)));
-}
-
-/* convenient function (and to preserve source compat) */
-/**
- * gdl_dock_item_unbind:
- * @item: The item to unbind.
- *
- * Unbinds this dock item from it's dock master.
- **/
-void
-gdl_dock_item_unbind (GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
-
- gdl_dock_object_unbind (GDL_DOCK_OBJECT (item));
-}
-
-/**
- * gdl_dock_item_hide_item:
- * @item: The dock item to hide.
- *
- * This function hides the dock item. When dock items are hidden they
- * are completely removed from the layout.
- *
- * The dock item close button causes the panel to be hidden.
- **/
-void
-gdl_dock_item_hide_item (GdlDockItem *item)
-{
- GtkAllocation allocation;
-
- g_return_if_fail (item != NULL);
-
- if (!GDL_DOCK_OBJECT_ATTACHED (item))
- /* already hidden/detached */
- return;
-
- /* if the object is manual, create a new placeholder to be able to
- restore the position later */
- if (!GDL_DOCK_OBJECT_AUTOMATIC (item)) {
- if (item->_priv->ph)
- g_object_unref (item->_priv->ph);
-
- gboolean isFloating = FALSE;
- gint width=0, height=0, x=0, y = 0;
-
- if (GDL_IS_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item))))
- {
- GdlDock* dock = GDL_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item)));
- g_object_get (dock,
- "floating", &isFloating,
- "width", &width,
- "height",&height,
- "floatx",&x,
- "floaty",&y,
- NULL);
- } else {
- gtk_widget_get_allocation (GTK_WIDGET (item), &allocation);
- item->_priv->preferred_width = allocation.width;
- item->_priv->preferred_height = allocation.height;
- }
- item->_priv->ph = GDL_DOCK_PLACEHOLDER (
- g_object_new (GDL_TYPE_DOCK_PLACEHOLDER,
- "sticky", FALSE,
- "host", item,
- "width", width,
- "height", height,
- "floating", isFloating,
- "floatx", x,
- "floaty", y,
- NULL));
- g_object_ref_sink (item->_priv->ph);
- }
-
- gdl_dock_object_freeze (GDL_DOCK_OBJECT (item));
-
- /* hide our children first, so they can also set placeholders */
- if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (item)))
- gtk_container_foreach (GTK_CONTAINER (item),
- (GtkCallback) gdl_dock_item_hide_item,
- NULL);
-
- /* detach the item recursively */
- gdl_dock_object_detach (GDL_DOCK_OBJECT (item), TRUE);
-
- gtk_widget_hide (GTK_WIDGET (item));
-
- gdl_dock_object_thaw (GDL_DOCK_OBJECT (item));
-}
-
-/**
- * gdl_dock_item_iconify_item:
- * @item: The dock item to iconify.
- *
- * This function iconifies the dock item. When dock items are iconified
- * they are hidden, and appear only as icons in dock bars.
- *
- * The dock item iconify button causes the panel to be iconified.
- **/
-void
-gdl_dock_item_iconify_item (GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
-
- GDL_DOCK_OBJECT_SET_FLAGS (item, GDL_DOCK_ICONIFIED);
- gdl_dock_item_hide_item (item);
-}
-
-/**
- * gdl_dock_item_show_item:
- * @item: The dock item to show.
- *
- * This function shows the dock item. When dock items are shown, they
- * are displayed in their normal layout position.
- **/
-void
-gdl_dock_item_show_item (GdlDockItem *item)
-{
- g_return_if_fail (item != NULL);
-
- GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED);
-
- if (item->_priv->ph) {
- gboolean isFloating=FALSE;
- gint width = 0, height = 0, x= 0, y = 0;
- g_object_get (G_OBJECT(item->_priv->ph),
- "width", &width,
- "height", &height,
- "floating",&isFloating,
- "floatx", &x,
- "floaty", &y,
- NULL);
- if (isFloating) {
- GdlDockObject *controller =
- gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
- gdl_dock_add_floating_item (GDL_DOCK (controller),
- item, x, y, width, height);
- } else {
- gtk_container_add (GTK_CONTAINER (item->_priv->ph),
- GTK_WIDGET (item));
- }
- g_object_unref (item->_priv->ph);
- item->_priv->ph = NULL;
-
- } else if (gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) {
- GdlDockObject *toplevel;
-
- toplevel = gdl_dock_master_get_controller
- (GDL_DOCK_OBJECT_GET_MASTER (item));
-
- if (item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) {
- g_warning("Object %s has no default position and flag GDL_DOCK_ITEM_BEH_NEVER_FLOATING is set.\n",
- GDL_DOCK_OBJECT(item)->name);
- } else if (toplevel) {
- gdl_dock_object_dock (toplevel, GDL_DOCK_OBJECT (item),
- GDL_DOCK_FLOATING, NULL);
- } else
- g_warning("There is no toplevel window. GdlDockItem %s cannot be shown.\n", GDL_DOCK_OBJECT(item)->name);
-
- } else
- g_warning("GdlDockItem %s is not bound. It cannot be shown.\n",
- GDL_DOCK_OBJECT(item)->name);
-
- gtk_widget_show (GTK_WIDGET (item));
-}
-
-/**
- * gdl_dock_item_lock:
- * @item: The dock item to lock.
- *
- * This function locks the dock item. When locked the dock item cannot
- * be dragged around and it doesn't show a grip.
- **/
-void
-gdl_dock_item_lock (GdlDockItem *item)
-{
- g_object_set (item, "locked", TRUE, NULL);
-}
-
-/**
- * gdl_dock_item_unlock:
- * @item: The dock item to unlock.
- *
- * This function unlocks the dock item. When unlocked the dock item can
- * be dragged around and can show a grip.
- **/
-void
-gdl_dock_item_unlock (GdlDockItem *item)
-{
- g_object_set (item, "locked", FALSE, NULL);
-}
-
-/**
- * gdl_dock_item_set_default_position:
- * @item: The dock item
- * @reference: The GdlDockObject which is the default dock for @item
- *
- * This method has only an effect when you add you dock_item with
- * GDL_DOCK_ITEM_BEH_NEVER_FLOATING. In this case you have to assign
- * it a default position.
- **/
-void
-gdl_dock_item_set_default_position (GdlDockItem *item,
- GdlDockObject *reference)
-{
- g_return_if_fail (item != NULL);
-
- if (item->_priv->ph) {
- g_object_unref (item->_priv->ph);
- item->_priv->ph = NULL;
- }
-
- if (reference && GDL_DOCK_OBJECT_ATTACHED (reference)) {
- if (GDL_IS_DOCK_PLACEHOLDER (reference)) {
- g_object_ref_sink (reference);
- item->_priv->ph = GDL_DOCK_PLACEHOLDER (reference);
- } else {
- item->_priv->ph = GDL_DOCK_PLACEHOLDER (
- g_object_new (GDL_TYPE_DOCK_PLACEHOLDER,
- "sticky", TRUE,
- "host", reference,
- NULL));
- g_object_ref_sink (item->_priv->ph);
- }
- }
-}
-
-/**
- * gdl_dock_item_preferred_size:
- * @item: The dock item to get the preferred size of.
- * @req: A pointer to a #GtkRequisition into which the preferred size
- * will be written.
- *
- * Gets the preferred size of the dock item in pixels.
- **/
-void
-gdl_dock_item_preferred_size (GdlDockItem *item,
- GtkRequisition *req)
-{
- GtkAllocation allocation;
-
- if (!req)
- return;
-
- gtk_widget_get_allocation (GTK_WIDGET (item), &allocation);
-
- req->width = MAX (item->_priv->preferred_width, allocation.width);
- req->height = MAX (item->_priv->preferred_height, allocation.height);
-}
-
-
-gboolean
-gdl_dock_item_or_child_has_focus (GdlDockItem *item)
-{
- GtkWidget *item_child;
- gboolean item_or_child_has_focus;
-
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), FALSE);
-
- for (item_child = gtk_container_get_focus_child (GTK_CONTAINER (item));
- item_child && GTK_IS_CONTAINER (item_child) && gtk_container_get_focus_child (GTK_CONTAINER (item_child));
- item_child = gtk_container_get_focus_child (GTK_CONTAINER (item_child))) ;
-
- item_or_child_has_focus =
- (gtk_widget_has_focus (GTK_WIDGET (item)) ||
- (GTK_IS_WIDGET (item_child) && gtk_widget_has_focus (item_child)));
-
- return item_or_child_has_focus;
-}
-
-
-/* ----- gtk orientation type exporter/importer ----- */
-
-static void
-gdl_dock_param_export_gtk_orientation (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer =
- g_strdup_printf ("%s", (src->data [0].v_int == GTK_ORIENTATION_HORIZONTAL) ?
- "horizontal" : "vertical");
-}
-
-static void
-gdl_dock_param_import_gtk_orientation (const GValue *src,
- GValue *dst)
-{
- if (!strcmp (src->data [0].v_pointer, "horizontal"))
- dst->data [0].v_int = GTK_ORIENTATION_HORIZONTAL;
- else
- dst->data [0].v_int = GTK_ORIENTATION_VERTICAL;
-}
-
diff --git a/src/libgdl/gdl-dock-item.h b/src/libgdl/gdl-dock-item.h
deleted file mode 100644
index b9378f783..000000000
--- a/src/libgdl/gdl-dock-item.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-item.h
- *
- * Author: Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * Based on GnomeDockItem/BonoboDockItem. Original copyright notice follows.
- *
- * Copyright (C) 1998 Ettore Perazzoli
- * Copyright (C) 1998 Elliot Lee
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GDL_DOCK_ITEM_H__
-#define __GDL_DOCK_ITEM_H__
-
-#include "libgdl/gdl-dock-object.h"
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_ITEM (gdl_dock_item_get_type ())
-#define GDL_DOCK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM, GdlDockItem))
-#define GDL_DOCK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM, GdlDockItemClass))
-#define GDL_IS_DOCK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM))
-#define GDL_IS_DOCK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM))
-#define GDL_DOCK_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_ITEM, GdlDockItemClass))
-
-/**
- * GdlDockItemBehavior:
- * @GDL_DOCK_ITEM_BEH_NORMAL: Normal dock item
- * @GDL_DOCK_ITEM_BEH_NEVER_FLOATING: item cannot be undocked
- * @GDL_DOCK_ITEM_BEH_NEVER_VERTICAL: item cannot be docked vertically
- * @GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL: item cannot be docked horizontally
- * @GDL_DOCK_ITEM_BEH_LOCKED: item is locked, it cannot be moved around
- * @GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP: item cannot be docked at top
- * @GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM: item cannot be docked at bottom
- * @GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT: item cannot be docked left
- * @GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT: item cannot be docked right
- * @GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER: item cannot be docked at center
- * @GDL_DOCK_ITEM_BEH_CANT_CLOSE: item cannot be closed
- * @GDL_DOCK_ITEM_BEH_CANT_ICONIFY: item cannot be iconified
- * @GDL_DOCK_ITEM_BEH_NO_GRIP: item doesn't have a grip
- *
- * Described the behaviour of a doc item. The item can have multiple flags set.
- *
- **/
-
-typedef enum {
- GDL_DOCK_ITEM_BEH_NORMAL = 0,
- GDL_DOCK_ITEM_BEH_NEVER_FLOATING = 1 << 0,
- GDL_DOCK_ITEM_BEH_NEVER_VERTICAL = 1 << 1,
- GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL = 1 << 2,
- GDL_DOCK_ITEM_BEH_LOCKED = 1 << 3,
- GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP = 1 << 4,
- GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM = 1 << 5,
- GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT = 1 << 6,
- GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT = 1 << 7,
- GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER = 1 << 8,
- GDL_DOCK_ITEM_BEH_CANT_CLOSE = 1 << 9,
- GDL_DOCK_ITEM_BEH_CANT_ICONIFY = 1 << 10,
- GDL_DOCK_ITEM_BEH_NO_GRIP = 1 << 11
-} GdlDockItemBehavior;
-
-
-/**
- * GdlDockItemFlags:
- * @GDL_DOCK_IN_DRAG: item is in a drag operation
- * @GDL_DOCK_IN_PREDRAG: item is in a predrag operation
- * @GDL_DOCK_ICONIFIED: item is iconified
- * @GDL_DOCK_USER_ACTION: indicates the user has started an action on the dock item
- *
- * Status flag of a GdlDockItem. Don't use unless you derive a widget from GdlDockItem
- *
- **/
-typedef enum {
- GDL_DOCK_IN_DRAG = 1 << GDL_DOCK_OBJECT_FLAGS_SHIFT,
- GDL_DOCK_IN_PREDRAG = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 1),
- GDL_DOCK_ICONIFIED = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 2),
- GDL_DOCK_USER_ACTION = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 3)
-} GdlDockItemFlags;
-
-typedef struct _GdlDockItem GdlDockItem;
-typedef struct _GdlDockItemClass GdlDockItemClass;
-typedef struct _GdlDockItemPrivate GdlDockItemPrivate;
-
-struct _GdlDockItem {
- GdlDockObject object;
-
- GtkWidget *child;
- GdlDockItemBehavior behavior;
- GtkOrientation orientation;
-
- guint resize : 1;
-
- gint dragoff_x, dragoff_y; /* these need to be
- accesible from
- outside */
- GdlDockItemPrivate *_priv;
-};
-
-struct _GdlDockItemClass {
- GdlDockObjectClass parent_class;
-
- gboolean has_grip;
-
- /* virtuals */
- void (* dock_drag_begin) (GdlDockItem *item);
- void (* dock_drag_motion) (GdlDockItem *item,
- gint x,
- gint y);
- void (* dock_drag_end) (GdlDockItem *item,
- gboolean cancelled);
- void (* move_focus_child) (GdlDockItem *item,
- GtkDirectionType direction);
- void (* set_orientation) (GdlDockItem *item,
- GtkOrientation orientation);
-};
-
-#define GDL_DOCK_ITEM_FLAGS(item) (GDL_DOCK_OBJECT (item)->flags)
-#define GDL_DOCK_ITEM_IN_DRAG(item) \
- ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_IN_DRAG) != 0)
-#define GDL_DOCK_ITEM_IN_PREDRAG(item) \
- ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_IN_PREDRAG) != 0)
-#define GDL_DOCK_ITEM_ICONIFIED(item) \
- ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_ICONIFIED) != 0)
-#define GDL_DOCK_ITEM_USER_ACTION(item) \
- ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_USER_ACTION) != 0)
-#define GDL_DOCK_ITEM_NOT_LOCKED(item) !((item)->behavior & GDL_DOCK_ITEM_BEH_LOCKED)
-#define GDL_DOCK_ITEM_NO_GRIP(item) ((item)->behavior & GDL_DOCK_ITEM_BEH_NO_GRIP)
-
-#define GDL_DOCK_ITEM_SET_FLAGS(item,flag) \
- G_STMT_START { (GDL_DOCK_ITEM_FLAGS (item) |= (flag)); } G_STMT_END
-#define GDL_DOCK_ITEM_UNSET_FLAGS(item,flag) \
- G_STMT_START { (GDL_DOCK_ITEM_FLAGS (item) &= ~(flag)); } G_STMT_END
-
-#define GDL_DOCK_ITEM_HAS_GRIP(item) ((GDL_DOCK_ITEM_GET_CLASS (item)->has_grip)&& \
- ! GDL_DOCK_ITEM_NO_GRIP (item))
-
-#define GDL_DOCK_ITEM_CANT_CLOSE(item) \
- ((((item)->behavior & GDL_DOCK_ITEM_BEH_CANT_CLOSE) != 0)|| \
- ! GDL_DOCK_ITEM_NOT_LOCKED(item))
-
-#define GDL_DOCK_ITEM_CANT_ICONIFY(item) \
- ((((item)->behavior & GDL_DOCK_ITEM_BEH_CANT_ICONIFY) != 0)|| \
- ! GDL_DOCK_ITEM_NOT_LOCKED(item))
-
-/* public interface */
-
-GtkWidget *gdl_dock_item_new (const gchar *name,
- const gchar *long_name,
- GdlDockItemBehavior behavior);
-GtkWidget *gdl_dock_item_new_with_stock (const gchar *name,
- const gchar *long_name,
- const gchar *stock_id,
- GdlDockItemBehavior behavior);
-
-GtkWidget *gdl_dock_item_new_with_pixbuf_icon (const gchar *name,
- const gchar *long_name,
- const GdkPixbuf *pixbuf_icon,
- GdlDockItemBehavior behavior);
-
-GType gdl_dock_item_get_type (void);
-
-void gdl_dock_item_dock_to (GdlDockItem *item,
- GdlDockItem *target,
- GdlDockPlacement position,
- gint docking_param);
-
-void gdl_dock_item_set_orientation (GdlDockItem *item,
- GtkOrientation orientation);
-
-GtkWidget *gdl_dock_item_get_tablabel (GdlDockItem *item);
-void gdl_dock_item_set_tablabel (GdlDockItem *item,
- GtkWidget *tablabel);
-GtkWidget *gdl_dock_item_get_grip (GdlDockItem *item);
-void gdl_dock_item_hide_grip (GdlDockItem *item);
-void gdl_dock_item_show_grip (GdlDockItem *item);
-void gdl_dock_item_notify_selected (GdlDockItem *item);
-
-/* bind and unbind items to a dock */
-void gdl_dock_item_bind (GdlDockItem *item,
- GtkWidget *dock);
-
-void gdl_dock_item_unbind (GdlDockItem *item);
-
-void gdl_dock_item_hide_item (GdlDockItem *item);
-
-void gdl_dock_item_iconify_item (GdlDockItem *item);
-
-void gdl_dock_item_show_item (GdlDockItem *item);
-
-void gdl_dock_item_lock (GdlDockItem *item);
-
-void gdl_dock_item_unlock (GdlDockItem *item);
-
-void gdl_dock_item_set_default_position (GdlDockItem *item,
- GdlDockObject *reference);
-
-void gdl_dock_item_preferred_size (GdlDockItem *item,
- GtkRequisition *req);
-
-gboolean gdl_dock_item_or_child_has_focus (GdlDockItem *item);
-
-G_END_DECLS
-
-#endif
diff --git a/src/libgdl/gdl-dock-master.c b/src/libgdl/gdl-dock-master.c
deleted file mode 100644
index 294614c7e..000000000
--- a/src/libgdl/gdl-dock-master.c
+++ /dev/null
@@ -1,1011 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-master.c - Object which manages a dock ring
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-
-#include "gdl-dock-master.h"
-#include "gdl-dock.h"
-#include "gdl-dock-item.h"
-#include "gdl-dock-notebook.h"
-#include "gdl-switcher.h"
-#include "libgdlmarshal.h"
-#include "libgdltypebuiltins.h"
-#ifdef WIN32
-#include "gdl-win32.h"
-#endif
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_master_class_init (GdlDockMasterClass *klass);
-
-static void gdl_dock_master_dispose (GObject *g_object);
-static void gdl_dock_master_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_master_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void _gdl_dock_master_remove (GdlDockObject *object,
- GdlDockMaster *master);
-
-static void gdl_dock_master_drag_begin (GdlDockItem *item,
- gpointer data);
-static void gdl_dock_master_drag_end (GdlDockItem *item,
- gboolean cancelled,
- gpointer data);
-static void gdl_dock_master_drag_motion (GdlDockItem *item,
- gint x,
- gint y,
- gpointer data);
-
-static void _gdl_dock_master_foreach (gpointer key,
- gpointer value,
- gpointer user_data);
-
-static void gdl_dock_master_xor_rect (GdlDockMaster *master);
-
-static void gdl_dock_master_layout_changed (GdlDockMaster *master);
-
-static void gdl_dock_master_set_switcher_style (GdlDockMaster *master,
- GdlSwitcherStyle switcher_style);
-
-/* ----- Private data types and variables ----- */
-
-enum {
- PROP_0,
- PROP_DEFAULT_TITLE,
- PROP_LOCKED,
- PROP_SWITCHER_STYLE
-};
-
-enum {
- LAYOUT_CHANGED,
- LAST_SIGNAL
-};
-
-struct _GdlDockMasterPrivate {
- gint number; /* for naming nameless manual objects */
- gchar *default_title;
-
- GdkGC *root_xor_gc;
- gboolean rect_drawn;
- GdlDock *rect_owner;
-
- GdlDockRequest *drag_request;
-
- /* source id for the idle handler to emit a layout_changed signal */
- guint idle_layout_changed_id;
-
- /* hashes to quickly calculate the overall locked status: i.e.
- * if size(unlocked_items) == 0 then locked = 1
- * else if size(locked_items) == 0 then locked = 0
- * else locked = -1
- */
- GHashTable *locked_items;
- GHashTable *unlocked_items;
-
- GdlSwitcherStyle switcher_style;
-};
-
-#define COMPUTE_LOCKED(master) \
- (g_hash_table_size ((master)->_priv->unlocked_items) == 0 ? 1 : \
- (g_hash_table_size ((master)->_priv->locked_items) == 0 ? 0 : -1))
-
-static guint master_signals [LAST_SIGNAL] = { 0 };
-
-
-/* ----- Private interface ----- */
-
-G_DEFINE_TYPE (GdlDockMaster, gdl_dock_master, G_TYPE_OBJECT);
-
-static void
-gdl_dock_master_class_init (GdlDockMasterClass *klass)
-{
- GObjectClass *g_object_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
-
- g_object_class->dispose = gdl_dock_master_dispose;
- g_object_class->set_property = gdl_dock_master_set_property;
- g_object_class->get_property = gdl_dock_master_get_property;
-
- g_object_class_install_property (
- g_object_class, PROP_DEFAULT_TITLE,
- g_param_spec_string ("default-title", _("Default title"),
- _("Default title for newly created floating docks"),
- NULL,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_LOCKED,
- g_param_spec_int ("locked", _("Locked"),
- _("If is set to 1, all the dock items bound to the master "
- "are locked; if it's 0, all are unlocked; -1 indicates "
- "inconsistency among the items"),
- -1, 1, 0,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_SWITCHER_STYLE,
- g_param_spec_enum ("switcher-style", _("Switcher Style"),
- _("Switcher buttons style"),
- GDL_TYPE_SWITCHER_STYLE,
- GDL_SWITCHER_STYLE_BOTH,
- G_PARAM_READWRITE));
-
- master_signals [LAYOUT_CHANGED] =
- g_signal_new ("layout-changed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GdlDockMasterClass, layout_changed),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__VOID,
- G_TYPE_NONE, /* return type */
- 0);
-
- klass->layout_changed = gdl_dock_master_layout_changed;
-}
-
-static void
-gdl_dock_master_init (GdlDockMaster *master)
-{
- master->dock_objects = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, NULL);
- master->toplevel_docks = NULL;
- master->controller = NULL;
- master->dock_number = 1;
-
- master->_priv = g_new0 (GdlDockMasterPrivate, 1);
- master->_priv->number = 1;
- master->_priv->switcher_style = GDL_SWITCHER_STYLE_BOTH;
- master->_priv->locked_items = g_hash_table_new (g_direct_hash, g_direct_equal);
- master->_priv->unlocked_items = g_hash_table_new (g_direct_hash, g_direct_equal);
-}
-
-static void
-_gdl_dock_master_remove (GdlDockObject *object,
- GdlDockMaster *master)
-{
- g_return_if_fail (master != NULL && object != NULL);
-
- if (GDL_IS_DOCK (object)) {
- GList *found_link;
-
- found_link = g_list_find (master->toplevel_docks, object);
- if (found_link)
- master->toplevel_docks = g_list_delete_link (master->toplevel_docks,
- found_link);
- if (object == master->controller) {
- GList *last;
- GdlDockObject *new_controller = NULL;
-
- /* now find some other non-automatic toplevel to use as a
- new controller. start from the last dock, since it's
- probably a non-floating and manual */
- last = g_list_last (master->toplevel_docks);
- while (last) {
- if (!GDL_DOCK_OBJECT_AUTOMATIC (last->data)) {
- new_controller = GDL_DOCK_OBJECT (last->data);
- break;
- }
- last = last->prev;
- };
-
- if (new_controller) {
- /* the new controller gets the ref (implicitly of course) */
- master->controller = new_controller;
- } else {
- master->controller = NULL;
- /* no controller, no master */
- g_object_unref (master);
- }
- }
- }
- /* disconnect dock object signals */
- g_signal_handlers_disconnect_matched (object, G_SIGNAL_MATCH_DATA,
- 0, 0, NULL, NULL, master);
-
- /* unref the object from the hash if it's there */
- if (object->name) {
- GdlDockObject *found_object;
- found_object = g_hash_table_lookup (master->dock_objects, object->name);
- if (found_object == object) {
- g_hash_table_remove (master->dock_objects, object->name);
- g_object_unref (object);
- }
- }
-}
-
-static void
-ht_foreach_build_slist (gpointer key,
- gpointer value,
- GSList **slist)
-{
- *slist = g_slist_prepend (*slist, value);
-}
-
-static void
-gdl_dock_master_dispose (GObject *g_object)
-{
- GdlDockMaster *master;
-
- g_return_if_fail (GDL_IS_DOCK_MASTER (g_object));
-
- master = GDL_DOCK_MASTER (g_object);
-
- if (master->toplevel_docks) {
- g_list_foreach (master->toplevel_docks,
- (GFunc) gdl_dock_object_unbind, NULL);
- g_list_free (master->toplevel_docks);
- master->toplevel_docks = NULL;
- }
-
- if (master->dock_objects) {
- GSList *alive_docks = NULL;
- g_hash_table_foreach (master->dock_objects,
- (GHFunc) ht_foreach_build_slist, &alive_docks);
- while (alive_docks) {
- gdl_dock_object_unbind (GDL_DOCK_OBJECT (alive_docks->data));
- alive_docks = g_slist_delete_link (alive_docks, alive_docks);
- }
-
- g_hash_table_destroy (master->dock_objects);
- master->dock_objects = NULL;
- }
-
- if (master->_priv) {
- if (master->_priv->idle_layout_changed_id)
- g_source_remove (master->_priv->idle_layout_changed_id);
-
- if (master->_priv->root_xor_gc) {
- g_object_unref (master->_priv->root_xor_gc);
- master->_priv->root_xor_gc = NULL;
- }
- if (master->_priv->drag_request) {
- if (G_IS_VALUE (&master->_priv->drag_request->extra))
- g_value_unset (&master->_priv->drag_request->extra);
- g_free (master->_priv->drag_request);
- master->_priv->drag_request = NULL;
- }
- g_free (master->_priv->default_title);
- master->_priv->default_title = NULL;
-
- g_hash_table_destroy (master->_priv->locked_items);
- master->_priv->locked_items = NULL;
- g_hash_table_destroy (master->_priv->unlocked_items);
- master->_priv->unlocked_items = NULL;
-
- g_free (master->_priv);
- master->_priv = NULL;
- }
-
- G_OBJECT_CLASS (gdl_dock_master_parent_class)->dispose (g_object);
-}
-
-static void
-foreach_lock_unlock (GdlDockItem *item,
- gboolean locked)
-{
- if (!GDL_IS_DOCK_ITEM (item))
- return;
-
- g_object_set (item, "locked", locked, NULL);
- if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (item)))
- gtk_container_foreach (GTK_CONTAINER (item),
- (GtkCallback) foreach_lock_unlock,
- GINT_TO_POINTER (locked));
-}
-
-static void
-gdl_dock_master_lock_unlock (GdlDockMaster *master,
- gboolean locked)
-{
- GList *l;
-
- for (l = master->toplevel_docks; l; l = l->next) {
- GdlDock *dock = GDL_DOCK (l->data);
- if (dock->root)
- foreach_lock_unlock (GDL_DOCK_ITEM (dock->root), locked);
- }
-
- /* just to be sure hidden items are set too */
- gdl_dock_master_foreach (master,
- (GFunc) foreach_lock_unlock,
- GINT_TO_POINTER (locked));
-}
-
-static void
-gdl_dock_master_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockMaster *master = GDL_DOCK_MASTER (object);
-
- switch (prop_id) {
- case PROP_DEFAULT_TITLE:
- g_free (master->_priv->default_title);
- master->_priv->default_title = g_value_dup_string (value);
- break;
- case PROP_LOCKED:
- if (g_value_get_int (value) >= 0)
- gdl_dock_master_lock_unlock (master, (g_value_get_int (value) > 0));
- break;
- case PROP_SWITCHER_STYLE:
- gdl_dock_master_set_switcher_style (master, g_value_get_enum (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_master_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockMaster *master = GDL_DOCK_MASTER (object);
-
- switch (prop_id) {
- case PROP_DEFAULT_TITLE:
- g_value_set_string (value, master->_priv->default_title);
- break;
- case PROP_LOCKED:
- g_value_set_int (value, COMPUTE_LOCKED (master));
- break;
- case PROP_SWITCHER_STYLE:
- g_value_set_enum (value, master->_priv->switcher_style);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_master_drag_begin (GdlDockItem *item,
- gpointer data)
-{
- GdlDockMaster *master;
- GdlDockRequest *request;
-
- g_return_if_fail (data != NULL);
- g_return_if_fail (item != NULL);
-
- master = GDL_DOCK_MASTER (data);
-
- if (!master->_priv->drag_request)
- master->_priv->drag_request = g_new0 (GdlDockRequest, 1);
-
- request = master->_priv->drag_request;
-
- /* Set the target to itself so it won't go floating with just a click. */
- request->applicant = GDL_DOCK_OBJECT (item);
- request->target = GDL_DOCK_OBJECT (item);
- request->position = GDL_DOCK_FLOATING;
- if (G_IS_VALUE (&request->extra))
- g_value_unset (&request->extra);
-
- master->_priv->rect_drawn = FALSE;
- master->_priv->rect_owner = NULL;
-}
-
-static void
-gdl_dock_master_drag_end (GdlDockItem *item,
- gboolean cancelled,
- gpointer data)
-{
- GdlDockMaster *master;
- GdlDockRequest *request;
-
- g_return_if_fail (data != NULL);
- g_return_if_fail (item != NULL);
-
- master = GDL_DOCK_MASTER (data);
- request = master->_priv->drag_request;
-
- g_return_if_fail (GDL_DOCK_OBJECT (item) == request->applicant);
-
- /* Erase previously drawn rectangle */
- if (master->_priv->rect_drawn)
- gdl_dock_master_xor_rect (master);
-
- /* cancel conditions */
- if (cancelled || request->applicant == request->target)
- return;
-
- /* dock object to the requested position */
- gdl_dock_object_dock (request->target,
- request->applicant,
- request->position,
- &request->extra);
-
- g_signal_emit (master, master_signals [LAYOUT_CHANGED], 0);
-}
-
-static void
-gdl_dock_master_drag_motion (GdlDockItem *item,
- gint root_x,
- gint root_y,
- gpointer data)
-{
- GdlDockMaster *master;
- GdlDockRequest my_request, *request;
- GdkWindow *window;
- GdkWindow *widget_window;
- gint win_x, win_y;
- gint x, y;
- GdlDock *dock = NULL;
- gboolean may_dock = FALSE;
-
- g_return_if_fail (item != NULL && data != NULL);
-
- master = GDL_DOCK_MASTER (data);
- request = master->_priv->drag_request;
-
- g_return_if_fail (GDL_DOCK_OBJECT (item) == request->applicant);
-
- my_request = *request;
-
- /* first look under the pointer */
- window = gdk_window_at_pointer (&win_x, &win_y);
- if (window) {
- GtkWidget *widget;
- /* ok, now get the widget who owns that window and see if we can
- get to a GdlDock by walking up the hierarchy */
- gdk_window_get_user_data (window, (gpointer) &widget);
- if (GTK_IS_WIDGET (widget)) {
- while (widget && (!GDL_IS_DOCK (widget) ||
- GDL_DOCK_OBJECT_GET_MASTER (widget) != master))
- widget = gtk_widget_get_parent (widget);
- if (widget) {
- gint win_w, win_h;
-
- widget_window = gtk_widget_get_window (widget);
-
- /* verify that the pointer is still in that dock
- (the user could have moved it) */
- gdk_window_get_geometry (widget_window,
- NULL, NULL, &win_w, &win_h, NULL);
- gdk_window_get_origin (widget_window, &win_x, &win_y);
- if (root_x >= win_x && root_x < win_x + win_w &&
- root_y >= win_y && root_y < win_y + win_h)
- dock = GDL_DOCK (widget);
- }
- }
- }
-
- if (dock) {
- GdkWindow *dock_window = gtk_widget_get_window (GTK_WIDGET (dock));
-
- /* translate root coordinates into dock object coordinates
- (i.e. widget coordinates) */
- gdk_window_get_origin (dock_window, &win_x, &win_y);
- x = root_x - win_x;
- y = root_y - win_y;
- may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock),
- x, y, &my_request);
- }
- else {
- GList *l;
-
- /* try to dock the item in all the docks in the ring in turn */
- for (l = master->toplevel_docks; l; l = l->next) {
- GdkWindow *dock_window;
- dock = GDL_DOCK (l->data);
- dock_window = gtk_widget_get_window (GTK_WIDGET (dock));
- /* translate root coordinates into dock object coordinates
- (i.e. widget coordinates) */
- gdk_window_get_origin (dock_window, &win_x, &win_y);
- x = root_x - win_x;
- y = root_y - win_y;
- may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock),
- x, y, &my_request);
- if (may_dock)
- break;
- }
- }
-
-
- if (!may_dock) {
- GtkRequisition req;
- /* Special case for GdlDockItems : they must respect the flags */
- if(GDL_IS_DOCK_ITEM(item)
- && GDL_DOCK_ITEM(item)->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING)
- return;
-
- dock = NULL;
- my_request.target = GDL_DOCK_OBJECT (
- gdl_dock_object_get_toplevel (request->applicant));
- my_request.position = GDL_DOCK_FLOATING;
-
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (request->applicant), &req);
- my_request.rect.width = req.width;
- my_request.rect.height = req.height;
-
- my_request.rect.x = root_x - GDL_DOCK_ITEM (request->applicant)->dragoff_x;
- my_request.rect.y = root_y - GDL_DOCK_ITEM (request->applicant)->dragoff_y;
-
- /* setup extra docking information */
- if (G_IS_VALUE (&my_request.extra))
- g_value_unset (&my_request.extra);
-
- g_value_init (&my_request.extra, GDK_TYPE_RECTANGLE);
- g_value_set_boxed (&my_request.extra, &my_request.rect);
- }
- /* if we want to enforce GDL_DOCK_ITEM_BEH_NEVER_FLOATING */
- /* the item must remain attached to the controller, otherwise */
- /* it could be inserted in another floating dock */
- /* so check for the flag at this moment */
- else if(GDL_IS_DOCK_ITEM(item)
- && GDL_DOCK_ITEM(item)->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING
- && dock != GDL_DOCK(master->controller))
- return;
-
- if (!(my_request.rect.x == request->rect.x &&
- my_request.rect.y == request->rect.y &&
- my_request.rect.width == request->rect.width &&
- my_request.rect.height == request->rect.height &&
- dock == master->_priv->rect_owner)) {
-
- /* erase the previous rectangle */
- if (master->_priv->rect_drawn)
- gdl_dock_master_xor_rect (master);
- }
-
- /* set the new values */
- *request = my_request;
- master->_priv->rect_owner = dock;
-
- /* draw the previous rectangle */
- if (~master->_priv->rect_drawn)
- gdl_dock_master_xor_rect (master);
-}
-
-static void
-_gdl_dock_master_foreach (gpointer key,
- gpointer value,
- gpointer user_data)
-{
- struct {
- GFunc function;
- gpointer user_data;
- } *data = user_data;
-
- (* data->function) (GTK_WIDGET (value), data->user_data);
-}
-
-static void
-gdl_dock_master_xor_rect (GdlDockMaster *master)
-{
- gint8 dash_list [2];
- GdkWindow *window;
- GdkRectangle *rect;
-
- if (!master->_priv || !master->_priv->drag_request)
- return;
-
- master->_priv->rect_drawn = ~master->_priv->rect_drawn;
-
- if (master->_priv->rect_owner) {
- gdl_dock_xor_rect (master->_priv->rect_owner,
- &master->_priv->drag_request->rect);
- return;
- }
-
- rect = &master->_priv->drag_request->rect;
- window = gdk_get_default_root_window ();
-
- if (!master->_priv->root_xor_gc) {
- GdkGCValues values;
-
- values.function = GDK_INVERT;
- values.subwindow_mode = GDK_INCLUDE_INFERIORS;
- master->_priv->root_xor_gc = gdk_gc_new_with_values (
- window, &values, GDK_GC_FUNCTION | GDK_GC_SUBWINDOW);
- };
-
-#ifdef WIN32
- GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH;
- if (is_os_vista())
- {
- // On Vista the dash-line is increadibly slow to draw, it takes several minutes to draw the tracking lines
- // With GDK_LINE_SOLID it is parts of a second
- // No performance issue on WinXP
- lineStyle = GDK_LINE_SOLID;
- }
-#else
- GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH;
-#endif
- gdk_gc_set_line_attributes (master->_priv->root_xor_gc, 1,
- lineStyle,
- GDK_CAP_NOT_LAST,
- GDK_JOIN_BEVEL);
-
- dash_list[0] = 1;
- dash_list[1] = 1;
- gdk_gc_set_dashes (master->_priv->root_xor_gc, 1, dash_list, 2);
-
- gdk_draw_rectangle (window, master->_priv->root_xor_gc, 0,
- rect->x, rect->y,
- rect->width, rect->height);
-
- gdk_gc_set_dashes (master->_priv->root_xor_gc, 0, dash_list, 2);
-
- gdk_draw_rectangle (window, master->_priv->root_xor_gc, 0,
- rect->x + 1, rect->y + 1,
- rect->width - 2, rect->height - 2);
-}
-
-static void
-gdl_dock_master_layout_changed (GdlDockMaster *master)
-{
- g_return_if_fail (GDL_IS_DOCK_MASTER (master));
-
- /* emit "layout-changed" on the controller to notify the user who
- * normally shouldn't have access to us */
- if (master->controller)
- g_signal_emit_by_name (master->controller, "layout-changed");
-
- /* remove the idle handler if there is one */
- if (master->_priv->idle_layout_changed_id) {
- g_source_remove (master->_priv->idle_layout_changed_id);
- master->_priv->idle_layout_changed_id = 0;
- }
-}
-
-static gboolean
-idle_emit_layout_changed (gpointer user_data)
-{
- GdlDockMaster *master = user_data;
-
- g_return_val_if_fail (master && GDL_IS_DOCK_MASTER (master), FALSE);
-
- master->_priv->idle_layout_changed_id = 0;
- g_signal_emit (master, master_signals [LAYOUT_CHANGED], 0);
-
- return FALSE;
-}
-
-static void
-item_dock_cb (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data,
- gpointer user_data)
-{
- GdlDockMaster *master = user_data;
-
- g_return_if_fail (requestor && GDL_IS_DOCK_OBJECT (requestor));
- g_return_if_fail (master && GDL_IS_DOCK_MASTER (master));
-
- /* here we are in fact interested in the requestor, since it's
- * assumed that object will not change its visibility... for the
- * requestor, however, could mean that it's being shown */
- if (!GDL_DOCK_OBJECT_IN_REFLOW (requestor) &&
- !GDL_DOCK_OBJECT_AUTOMATIC (requestor)) {
- if (!master->_priv->idle_layout_changed_id)
- master->_priv->idle_layout_changed_id =
- g_idle_add (idle_emit_layout_changed, master);
- }
-}
-
-static void
-item_detach_cb (GdlDockObject *object,
- gboolean recursive,
- gpointer user_data)
-{
- GdlDockMaster *master = user_data;
-
- g_return_if_fail (object && GDL_IS_DOCK_OBJECT (object));
- g_return_if_fail (master && GDL_IS_DOCK_MASTER (master));
-
- if (!GDL_DOCK_OBJECT_IN_REFLOW (object) &&
- !GDL_DOCK_OBJECT_AUTOMATIC (object)) {
- if (!master->_priv->idle_layout_changed_id)
- master->_priv->idle_layout_changed_id =
- g_idle_add (idle_emit_layout_changed, master);
- }
-}
-
-static void
-item_notify_cb (GdlDockObject *object,
- GParamSpec *pspec,
- gpointer user_data)
-{
- GdlDockMaster *master = user_data;
- gint locked = COMPUTE_LOCKED (master);
- gboolean item_locked;
-
- g_object_get (object, "locked", &item_locked, NULL);
-
- if (item_locked) {
- g_hash_table_remove (master->_priv->unlocked_items, object);
- g_hash_table_insert (master->_priv->locked_items, object, NULL);
- } else {
- g_hash_table_remove (master->_priv->locked_items, object);
- g_hash_table_insert (master->_priv->unlocked_items, object, NULL);
- }
-
- if (COMPUTE_LOCKED (master) != locked)
- g_object_notify (G_OBJECT (master), "locked");
-}
-
-/* ----- Public interface ----- */
-
-void
-gdl_dock_master_add (GdlDockMaster *master,
- GdlDockObject *object)
-{
- g_return_if_fail (master != NULL && object != NULL);
-
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
- GdlDockObject *found_object;
-
- /* create a name for the object if it doesn't have one */
- if (!object->name)
- /* directly set the name, since it's a construction only
- property */
- object->name = g_strdup_printf ("__dock_%u", master->_priv->number++);
-
- /* add the object to our hash list */
- if ((found_object = g_hash_table_lookup (master->dock_objects, object->name))) {
- g_warning (_("master %p: unable to add object %p[%s] to the hash. "
- "There already is an item with that name (%p)."),
- master, object, object->name, found_object);
- }
- else {
- g_object_ref_sink (object);
- g_hash_table_insert (master->dock_objects, g_strdup (object->name), object);
- }
- }
-
- if (GDL_IS_DOCK (object)) {
- gboolean floating;
-
- /* if this is the first toplevel we are adding, name it controller */
- if (!master->toplevel_docks)
- /* the dock should already have the ref */
- master->controller = object;
-
- /* add dock to the toplevel list */
- g_object_get (object, "floating", &floating, NULL);
- if (floating)
- master->toplevel_docks = g_list_prepend (master->toplevel_docks, object);
- else
- master->toplevel_docks = g_list_append (master->toplevel_docks, object);
-
- /* we are interested in the dock request this toplevel
- * receives to update the layout */
- g_signal_connect (object, "dock",
- G_CALLBACK (item_dock_cb), master);
-
- }
- else if (GDL_IS_DOCK_ITEM (object)) {
- /* we need to connect the item's signals */
- g_signal_connect (object, "dock_drag_begin",
- G_CALLBACK (gdl_dock_master_drag_begin), master);
- g_signal_connect (object, "dock_drag_motion",
- G_CALLBACK (gdl_dock_master_drag_motion), master);
- g_signal_connect (object, "dock_drag_end",
- G_CALLBACK (gdl_dock_master_drag_end), master);
- g_signal_connect (object, "dock",
- G_CALLBACK (item_dock_cb), master);
- g_signal_connect (object, "detach",
- G_CALLBACK (item_detach_cb), master);
-
- /* register to "locked" notification if the item has a grip,
- * and add the item to the corresponding hash */
- if (GDL_DOCK_ITEM_HAS_GRIP (GDL_DOCK_ITEM (object))) {
- g_signal_connect (object, "notify::locked",
- G_CALLBACK (item_notify_cb), master);
- item_notify_cb (object, NULL, master);
- }
-
- /* If the item is notebook, set the switcher style */
- if (GDL_IS_DOCK_NOTEBOOK (object) &&
- GDL_IS_SWITCHER (GDL_DOCK_ITEM (object)->child))
- {
- g_object_set (GDL_DOCK_ITEM (object)->child, "switcher-style",
- master->_priv->switcher_style, NULL);
- }
-
- /* post a layout_changed emission if the item is not automatic
- * (since it should be added to the items model) */
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
- if (!master->_priv->idle_layout_changed_id)
- master->_priv->idle_layout_changed_id =
- g_idle_add (idle_emit_layout_changed, master);
- }
- }
-}
-
-void
-gdl_dock_master_remove (GdlDockMaster *master,
- GdlDockObject *object)
-{
- g_return_if_fail (master != NULL && object != NULL);
-
- /* remove from locked/unlocked hashes and property change if
- * that's the case */
- if (GDL_IS_DOCK_ITEM (object) && GDL_DOCK_ITEM_HAS_GRIP (GDL_DOCK_ITEM (object))) {
- gint locked = COMPUTE_LOCKED (master);
- if (g_hash_table_remove (master->_priv->locked_items, object) ||
- g_hash_table_remove (master->_priv->unlocked_items, object)) {
- if (COMPUTE_LOCKED (master) != locked)
- g_object_notify (G_OBJECT (master), "locked");
- }
- }
-
- /* ref the master, since removing the controller could cause master disposal */
- g_object_ref (master);
-
- /* all the interesting stuff happens in _gdl_dock_master_remove */
- _gdl_dock_master_remove (object, master);
-
- /* post a layout_changed emission if the item is not automatic
- * (since it should be removed from the items model) */
- if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) {
- if (!master->_priv->idle_layout_changed_id)
- master->_priv->idle_layout_changed_id =
- g_idle_add (idle_emit_layout_changed, master);
- }
-
- /* balance ref count */
- g_object_unref (master);
-}
-
-void
-gdl_dock_master_foreach (GdlDockMaster *master,
- GFunc function,
- gpointer user_data)
-{
- struct {
- GFunc function;
- gpointer user_data;
- } data;
-
- g_return_if_fail (master != NULL && function != NULL);
-
- data.function = function;
- data.user_data = user_data;
- g_hash_table_foreach (master->dock_objects, _gdl_dock_master_foreach, &data);
-}
-
-void
-gdl_dock_master_foreach_toplevel (GdlDockMaster *master,
- gboolean include_controller,
- GFunc function,
- gpointer user_data)
-{
- GList *l;
-
- g_return_if_fail (master != NULL && function != NULL);
-
- for (l = master->toplevel_docks; l; ) {
- GdlDockObject *object = GDL_DOCK_OBJECT (l->data);
- l = l->next;
- if (object != master->controller || include_controller)
- (* function) (GTK_WIDGET (object), user_data);
- }
-}
-
-GdlDockObject *
-gdl_dock_master_get_object (GdlDockMaster *master,
- const gchar *nick_name)
-{
- gpointer *found;
-
- g_return_val_if_fail (master != NULL, NULL);
-
- if (!nick_name)
- return NULL;
-
- found = g_hash_table_lookup (master->dock_objects, nick_name);
-
- return found ? GDL_DOCK_OBJECT (found) : NULL;
-}
-
-GdlDockObject *
-gdl_dock_master_get_controller (GdlDockMaster *master)
-{
- g_return_val_if_fail (master != NULL, NULL);
-
- return master->controller;
-}
-
-void
-gdl_dock_master_set_controller (GdlDockMaster *master,
- GdlDockObject *new_controller)
-{
- g_return_if_fail (master != NULL);
-
- if (new_controller) {
- if (GDL_DOCK_OBJECT_AUTOMATIC (new_controller))
- g_warning (_("The new dock controller %p is automatic. Only manual "
- "dock objects should be named controller."), new_controller);
-
- /* check that the controller is in the toplevel list */
- if (!g_list_find (master->toplevel_docks, new_controller))
- gdl_dock_master_add (master, new_controller);
- master->controller = new_controller;
-
- } else {
- master->controller = NULL;
- /* no controller, no master */
- g_object_unref (master);
- }
-}
-
-static void
-set_switcher_style_foreach (GtkWidget *obj, gpointer user_data)
-{
- GdlSwitcherStyle style = GPOINTER_TO_INT (user_data);
-
- if (!GDL_IS_DOCK_ITEM (obj))
- return;
-
- if (GDL_IS_DOCK_NOTEBOOK (obj)) {
-
- GtkWidget *child = GDL_DOCK_ITEM (obj)->child;
- if (GDL_IS_SWITCHER (child)) {
-
- g_object_set (child, "switcher-style", style, NULL);
- }
- } else if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (obj))) {
-
- gtk_container_foreach (GTK_CONTAINER (obj),
- set_switcher_style_foreach,
- user_data);
- }
-}
-
-static void
-gdl_dock_master_set_switcher_style (GdlDockMaster *master,
- GdlSwitcherStyle switcher_style)
-{
- GList *l;
- g_return_if_fail (GDL_IS_DOCK_MASTER (master));
-
- master->_priv->switcher_style = switcher_style;
- for (l = master->toplevel_docks; l; l = l->next) {
- GdlDock *dock = GDL_DOCK (l->data);
- if (dock->root)
- set_switcher_style_foreach (GTK_WIDGET (dock->root),
- GINT_TO_POINTER (switcher_style));
- }
-
- /* just to be sure hidden items are set too */
- gdl_dock_master_foreach (master, (GFunc) set_switcher_style_foreach,
- GINT_TO_POINTER (switcher_style));
-}
diff --git a/src/libgdl/gdl-dock-master.h b/src/libgdl/gdl-dock-master.h
deleted file mode 100644
index 266ca7ee4..000000000
--- a/src/libgdl/gdl-dock-master.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-master.h - Object which manages a dock ring
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_MASTER_H__
-#define __GDL_DOCK_MASTER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include "libgdl/gdl-dock-object.h"
-
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_MASTER (gdl_dock_master_get_type ())
-#define GDL_DOCK_MASTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_MASTER, GdlDockMaster))
-#define GDL_DOCK_MASTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_MASTER, GdlDockMasterClass))
-#define GDL_IS_DOCK_MASTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_MASTER))
-#define GDL_IS_DOCK_MASTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_MASTER))
-#define GDL_DOCK_MASTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_MASTER, GdlDockMasterClass))
-
-/* data types & structures */
-typedef struct _GdlDockMaster GdlDockMaster;
-typedef struct _GdlDockMasterClass GdlDockMasterClass;
-typedef struct _GdlDockMasterPrivate GdlDockMasterPrivate;
-
-typedef enum {
- GDL_SWITCHER_STYLE_TEXT,
- GDL_SWITCHER_STYLE_ICON,
- GDL_SWITCHER_STYLE_BOTH,
- GDL_SWITCHER_STYLE_TOOLBAR,
- GDL_SWITCHER_STYLE_TABS,
- GDL_SWITCHER_STYLE_NONE
-} GdlSwitcherStyle;
-
-struct _GdlDockMaster {
- GObject object;
-
- GHashTable *dock_objects;
- GList *toplevel_docks;
- GdlDockObject *controller; /* GUI root object */
-
- gint dock_number; /* for toplevel dock numbering */
-
- GdlDockMasterPrivate *_priv;
-};
-
-struct _GdlDockMasterClass {
- GObjectClass parent_class;
-
- void (* layout_changed) (GdlDockMaster *master);
-};
-
-/* additional macros */
-
-#define GDL_DOCK_OBJECT_GET_MASTER(object) \
- (GDL_DOCK_OBJECT (object)->master ? \
- GDL_DOCK_MASTER (GDL_DOCK_OBJECT (object)->master) : NULL)
-
-/* public interface */
-
-GType gdl_dock_master_get_type (void);
-
-void gdl_dock_master_add (GdlDockMaster *master,
- GdlDockObject *object);
-void gdl_dock_master_remove (GdlDockMaster *master,
- GdlDockObject *object);
-void gdl_dock_master_foreach (GdlDockMaster *master,
- GFunc function,
- gpointer user_data);
-
-void gdl_dock_master_foreach_toplevel (GdlDockMaster *master,
- gboolean include_controller,
- GFunc function,
- gpointer user_data);
-
-GdlDockObject *gdl_dock_master_get_object (GdlDockMaster *master,
- const gchar *nick_name);
-
-GdlDockObject *gdl_dock_master_get_controller (GdlDockMaster *master);
-void gdl_dock_master_set_controller (GdlDockMaster *master,
- GdlDockObject *new_controller);
-
-G_END_DECLS
-
-#endif /* __GDL_DOCK_MASTER_H__ */
diff --git a/src/libgdl/gdl-dock-notebook.c b/src/libgdl/gdl-dock-notebook.c
deleted file mode 100644
index 0ffaac902..000000000
--- a/src/libgdl/gdl-dock-notebook.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include "gdl-switcher.h"
-
-#include "gdl-dock-notebook.h"
-#include "gdl-dock-tablabel.h"
-
-
-/* Private prototypes */
-
-static void gdl_dock_notebook_class_init (GdlDockNotebookClass *klass);
-static void gdl_dock_notebook_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_notebook_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_notebook_destroy (GtkObject *object);
-
-static void gdl_dock_notebook_add (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_notebook_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data);
-static GType gdl_dock_notebook_child_type (GtkContainer *container);
-
-static void gdl_dock_notebook_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
-static void gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
- GtkWidget *page,
- gint page_num,
- gpointer data);
-
-static void gdl_dock_notebook_set_orientation (GdlDockItem *item,
- GtkOrientation orientation);
-
-static gboolean gdl_dock_notebook_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement);
-
-static void gdl_dock_notebook_present (GdlDockObject *object,
- GdlDockObject *child);
-
-static gboolean gdl_dock_notebook_reorder (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement new_position,
- GValue *other_data);
-
-
-/* Class variables and definitions */
-
-enum {
- PROP_0,
- PROP_PAGE
-};
-
-
-/* ----- Private functions ----- */
-
-G_DEFINE_TYPE (GdlDockNotebook, gdl_dock_notebook, GDL_TYPE_DOCK_ITEM);
-
-static void
-gdl_dock_notebook_class_init (GdlDockNotebookClass *klass)
-{
- static gboolean style_initialized = FALSE;
-
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
- GdlDockObjectClass *object_class;
- GdlDockItemClass *item_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
- object_class = GDL_DOCK_OBJECT_CLASS (klass);
- item_class = GDL_DOCK_ITEM_CLASS (klass);
-
- g_object_class->set_property = gdl_dock_notebook_set_property;
- g_object_class->get_property = gdl_dock_notebook_get_property;
-
- gtk_object_class->destroy = gdl_dock_notebook_destroy;
-
- container_class->add = gdl_dock_notebook_add;
- container_class->forall = gdl_dock_notebook_forall;
- container_class->child_type = gdl_dock_notebook_child_type;
-
- object_class->is_compound = TRUE;
- object_class->dock = gdl_dock_notebook_dock;
- object_class->child_placement = gdl_dock_notebook_child_placement;
- object_class->present = gdl_dock_notebook_present;
- object_class->reorder = gdl_dock_notebook_reorder;
-
- item_class->has_grip = FALSE;
- item_class->set_orientation = gdl_dock_notebook_set_orientation;
-
- g_object_class_install_property (
- g_object_class, PROP_PAGE,
- g_param_spec_int ("page", _("Page"),
- _("The index of the current page"),
- 0, G_MAXINT,
- 0,
- G_PARAM_READWRITE |
- GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER));
-
- if (!style_initialized) {
- style_initialized = TRUE;
-
- gtk_rc_parse_string (
- "style \"gdl-dock-notebook-default\" {\n"
- "xthickness = 2\n"
- "ythickness = 2\n"
- "}\n"
- "widget_class \"*.GtkNotebook.GdlDockItem\" "
- "style : gtk \"gdl-dock-notebook-default\"\n");
- }
-}
-
-static void
-gdl_dock_notebook_notify_cb (GObject *g_object,
- GParamSpec *pspec,
- gpointer user_data)
-{
- g_return_if_fail (user_data != NULL && GDL_IS_DOCK_NOTEBOOK (user_data));
-
- /* chain the notify signal */
- g_object_notify (G_OBJECT (user_data), pspec->name);
-}
-
-static gboolean
-gdl_dock_notebook_button_cb (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
-{
- if (event->type == GDK_BUTTON_PRESS)
- GDL_DOCK_ITEM_SET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
- else
- GDL_DOCK_ITEM_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
-
- return FALSE;
-}
-
-static void
-gdl_dock_notebook_init (GdlDockNotebook *notebook)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (notebook);
-
- /* create the container notebook */
- item->child = gdl_switcher_new ();
- gtk_widget_set_parent (item->child, GTK_WIDGET (notebook));
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_BOTTOM);
- g_signal_connect (item->child, "switch-page",
- (GCallback) gdl_dock_notebook_switch_page_cb, (gpointer) item);
- g_signal_connect (item->child, "notify::page",
- (GCallback) gdl_dock_notebook_notify_cb, (gpointer) item);
- g_signal_connect (item->child, "button-press-event",
- (GCallback) gdl_dock_notebook_button_cb, (gpointer) item);
- g_signal_connect (item->child, "button-release-event",
- (GCallback) gdl_dock_notebook_button_cb, (gpointer) item);
- gtk_notebook_set_scrollable (GTK_NOTEBOOK (item->child), TRUE);
- gtk_widget_show (item->child);
-}
-
-static void
-gdl_dock_notebook_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- switch (prop_id) {
- case PROP_PAGE:
- if (item->child && GTK_IS_NOTEBOOK (item->child)) {
- gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child),
- g_value_get_int (value));
- }
-
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_notebook_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- switch (prop_id) {
- case PROP_PAGE:
- if (item->child && GTK_IS_NOTEBOOK (item->child)) {
- g_value_set_int (value, gtk_notebook_get_current_page
- (GTK_NOTEBOOK (item->child)));
- }
-
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-
-static void
-gdl_dock_notebook_destroy (GtkObject *object)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- /* we need to call the virtual first, since in GdlDockDestroy our
- children dock objects are detached */
- GTK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->destroy (object);
-
- /* after that we can remove the GtkNotebook */
- if (item->child) {
- gtk_widget_unparent (item->child);
- item->child = NULL;
- };
-}
-
-static void
-gdl_dock_notebook_switch_page_cb (GtkNotebook *nb,
- GtkWidget *page,
- gint page_num,
- gpointer data)
-{
- GdlDockNotebook *notebook;
- GtkWidget *tablabel;
- GdlDockItem *item;
-
- notebook = GDL_DOCK_NOTEBOOK (data);
-
- /* deactivate old tablabel */
- if (gtk_notebook_get_current_page (nb)) {
- tablabel = gtk_notebook_get_tab_label (
- nb, gtk_notebook_get_nth_page (
- nb, gtk_notebook_get_current_page (nb)));
- if (tablabel && GDL_IS_DOCK_TABLABEL (tablabel))
- gdl_dock_tablabel_deactivate (GDL_DOCK_TABLABEL (tablabel));
- };
-
- /* activate new label */
- tablabel = gtk_notebook_get_tab_label (
- nb, page);
- if (tablabel && GDL_IS_DOCK_TABLABEL (tablabel))
- gdl_dock_tablabel_activate (GDL_DOCK_TABLABEL (tablabel));
-
- if (GDL_DOCK_ITEM_USER_ACTION (notebook) &&
- GDL_DOCK_OBJECT (notebook)->master)
- g_signal_emit_by_name (GDL_DOCK_OBJECT (notebook)->master,
- "layout-changed");
-
- /* Signal that a new dock item has been selected */
- item = GDL_DOCK_ITEM (page);
- gdl_dock_item_notify_selected (item);
-}
-
-static void
-gdl_dock_notebook_add (GtkContainer *container,
- GtkWidget *widget)
-{
- g_return_if_fail (container != NULL && widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (container));
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- gdl_dock_object_dock (GDL_DOCK_OBJECT (container),
- GDL_DOCK_OBJECT (widget),
- GDL_DOCK_CENTER,
- NULL);
-}
-
-static void
-gdl_dock_notebook_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data)
-{
- GdlDockItem *item;
-
- g_return_if_fail (container != NULL);
- g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (container));
- g_return_if_fail (callback != NULL);
-
- if (include_internals) {
- /* use GdlDockItem's forall */
- GTK_CONTAINER_CLASS (gdl_dock_notebook_parent_class)->forall
- (container, include_internals, callback, callback_data);
- }
- else {
- item = GDL_DOCK_ITEM (container);
- if (item->child)
- gtk_container_foreach (GTK_CONTAINER (item->child), callback, callback_data);
- }
-}
-
-static GType
-gdl_dock_notebook_child_type (GtkContainer *container)
-{
- return GDL_TYPE_DOCK_ITEM;
-}
-
-static void
-gdl_dock_notebook_dock_child (GdlDockObject *requestor,
- gpointer user_data)
-{
- struct {
- GdlDockObject *object;
- GdlDockPlacement position;
- GValue *other_data;
- } *data = user_data;
-
- gdl_dock_object_dock (data->object, requestor, data->position, data->other_data);
-}
-
-static void
-gdl_dock_notebook_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data)
-{
- g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (object));
- g_return_if_fail (GDL_IS_DOCK_ITEM (requestor));
-
- /* we only add support for GDL_DOCK_CENTER docking strategy here... for the rest
- use our parent class' method */
- if (position == GDL_DOCK_CENTER) {
- /* we can only dock simple (not compound) items */
- if (gdl_dock_object_is_compound (requestor)) {
- struct {
- GdlDockObject *object;
- GdlDockPlacement position;
- GValue *other_data;
- } data;
-
- gdl_dock_object_freeze (requestor);
-
- data.object = object;
- data.position = position;
- data.other_data = other_data;
-
- gtk_container_foreach (GTK_CONTAINER (requestor),
- (GtkCallback) gdl_dock_notebook_dock_child, &data);
-
- gdl_dock_object_thaw (requestor);
- }
- else {
- GdlDockItem *item = GDL_DOCK_ITEM (object);
- GdlDockItem *requestor_item = GDL_DOCK_ITEM (requestor);
- gchar *long_name, *stock_id;
- GdkPixbuf *pixbuf_icon;
- GtkWidget *label;
- gint position = -1;
-
- g_object_get (requestor_item, "long-name", &long_name,
- "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon, NULL);
- label = gdl_dock_item_get_tablabel (requestor_item);
- if (!label) {
- label = gtk_label_new (long_name);
- gdl_dock_item_set_tablabel (requestor_item, label);
- }
-#if 0
- if (GDL_IS_DOCK_TABLABEL (label)) {
- gdl_dock_tablabel_deactivate (GDL_DOCK_TABLABEL (label));
- /* hide the item grip, as we will use the tablabel's */
- gdl_dock_item_hide_grip (requestor_item);
- }
-#endif
-
- if (other_data && G_VALUE_HOLDS (other_data, G_TYPE_INT))
- position = g_value_get_int (other_data);
-
- position = gdl_switcher_insert_page (GDL_SWITCHER (item->child),
- GTK_WIDGET (requestor), label,
- long_name, long_name,
- stock_id, pixbuf_icon, position);
-
- GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED);
-
- /* Set current page to the newly docked widget. set current page
- * really doesn't work if the page widget is not shown
- */
- gtk_widget_show (GTK_WIDGET (requestor));
- gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child),
- position);
- g_free (long_name);
- g_free (stock_id);
- }
- }
- else
- GDL_DOCK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->dock (object, requestor, position, other_data);
-}
-
-static void
-gdl_dock_notebook_set_orientation (GdlDockItem *item,
- GtkOrientation orientation)
-{
- if (item->child && GTK_IS_NOTEBOOK (item->child)) {
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_TOP);
- else
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_LEFT);
- }
-
- GDL_DOCK_ITEM_CLASS (gdl_dock_notebook_parent_class)->set_orientation (item, orientation);
-}
-
-static gboolean
-gdl_dock_notebook_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
- GdlDockPlacement pos = GDL_DOCK_NONE;
-
- if (item->child) {
- GList *children, *l;
-
- children = gtk_container_get_children (GTK_CONTAINER (item->child));
- for (l = children; l; l = l->next) {
- if (l->data == (gpointer) child) {
- pos = GDL_DOCK_CENTER;
- break;
- }
- }
- g_list_free (children);
- }
-
- if (pos != GDL_DOCK_NONE) {
- if (placement)
- *placement = pos;
- return TRUE;
- }
- else
- return FALSE;
-}
-
-static void
-gdl_dock_notebook_present (GdlDockObject *object,
- GdlDockObject *child)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
- int i;
-
- i = gtk_notebook_page_num (GTK_NOTEBOOK (item->child),
- GTK_WIDGET (child));
- if (i >= 0)
- gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child), i);
-
- GDL_DOCK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->present (object, child);
-}
-
-static gboolean
-gdl_dock_notebook_reorder (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement new_position,
- GValue *other_data)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
- gint current_position, new_pos = -1;
- gboolean handled = FALSE;
-
- if (item->child && new_position == GDL_DOCK_CENTER) {
- current_position = gtk_notebook_page_num (GTK_NOTEBOOK (item->child),
- GTK_WIDGET (requestor));
- if (current_position >= 0) {
- handled = TRUE;
-
- if (other_data && G_VALUE_HOLDS (other_data, G_TYPE_INT))
- new_pos = g_value_get_int (other_data);
-
- gtk_notebook_reorder_child (GTK_NOTEBOOK (item->child),
- GTK_WIDGET (requestor),
- new_pos);
- }
- }
- return handled;
-}
-
-/* ----- Public interface ----- */
-
-GtkWidget *
-gdl_dock_notebook_new (void)
-{
- GdlDockNotebook *notebook;
-
- notebook = GDL_DOCK_NOTEBOOK (g_object_new (GDL_TYPE_DOCK_NOTEBOOK, NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (notebook, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (notebook);
-}
-
diff --git a/src/libgdl/gdl-dock-notebook.h b/src/libgdl/gdl-dock-notebook.h
deleted file mode 100644
index 063f53642..000000000
--- a/src/libgdl/gdl-dock-notebook.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_NOTEBOOK_H__
-#define __GDL_DOCK_NOTEBOOK_H__
-
-#include "libgdl/gdl-dock-item.h"
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_NOTEBOOK (gdl_dock_notebook_get_type ())
-#define GDL_DOCK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_NOTEBOOK, GdlDockNotebook))
-#define GDL_DOCK_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_NOTEBOOK, GdlDockNotebookClass))
-#define GDL_IS_DOCK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_NOTEBOOK))
-#define GDL_IS_DOCK_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_NOTEBOOK))
-#define GDL_DOCK_NOTEBOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_NOTEBOOK, GdlDockNotebookClass))
-
-/* data types & structures */
-typedef struct _GdlDockNotebook GdlDockNotebook;
-typedef struct _GdlDockNotebookClass GdlDockNotebookClass;
-
-struct _GdlDockNotebook {
- GdlDockItem item;
-};
-
-struct _GdlDockNotebookClass {
- GdlDockItemClass parent_class;
-};
-
-
-/* public interface */
-
-GtkWidget *gdl_dock_notebook_new (void);
-
-GType gdl_dock_notebook_get_type (void);
-
-G_END_DECLS
-
-#endif
-
diff --git a/src/libgdl/gdl-dock-object.c b/src/libgdl/gdl-dock-object.c
deleted file mode 100644
index 4092ecc9f..000000000
--- a/src/libgdl/gdl-dock-object.c
+++ /dev/null
@@ -1,1027 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-object.c - Abstract base class for all dock related objects
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdl-dock-object.h"
-#include "gdl-dock-master.h"
-#include "libgdltypebuiltins.h"
-#include "libgdlmarshal.h"
-
-/* for later use by the registry */
-#include "gdl-dock.h"
-#include "gdl-dock-item.h"
-#include "gdl-dock-paned.h"
-#include "gdl-dock-notebook.h"
-#include "gdl-dock-placeholder.h"
-
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_object_class_init (GdlDockObjectClass *klass);
-
-static void gdl_dock_object_set_property (GObject *g_object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_object_get_property (GObject *g_object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_object_finalize (GObject *g_object);
-
-static void gdl_dock_object_destroy (GtkObject *gtk_object);
-
-static void gdl_dock_object_show (GtkWidget *widget);
-static void gdl_dock_object_hide (GtkWidget *widget);
-
-static void gdl_dock_object_real_detach (GdlDockObject *object,
- gboolean recursive);
-static void gdl_dock_object_real_reduce (GdlDockObject *object);
-static void gdl_dock_object_dock_unimplemented (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-static void gdl_dock_object_real_present (GdlDockObject *object,
- GdlDockObject *child);
-
-
-/* ----- Private data types and variables ----- */
-
-enum {
- PROP_0,
- PROP_NAME,
- PROP_LONG_NAME,
- PROP_STOCK_ID,
- PROP_PIXBUF_ICON,
- PROP_MASTER,
- PROP_EXPORT_PROPERTIES
-};
-
-enum {
- DETACH,
- DOCK,
- LAST_SIGNAL
-};
-
-static guint gdl_dock_object_signals [LAST_SIGNAL] = { 0 };
-
-struct DockRegisterItem {
- gchar* nick;
- gpointer type;
-};
-
-static GArray *dock_register = NULL;
-
-/* ----- Private interface ----- */
-
-G_DEFINE_TYPE (GdlDockObject, gdl_dock_object, GTK_TYPE_CONTAINER);
-
-static void
-gdl_dock_object_class_init (GdlDockObjectClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
-
- g_object_class->set_property = gdl_dock_object_set_property;
- g_object_class->get_property = gdl_dock_object_get_property;
- g_object_class->finalize = gdl_dock_object_finalize;
-
- g_object_class_install_property (
- g_object_class, PROP_NAME,
- g_param_spec_string (GDL_DOCK_NAME_PROPERTY, _("Name"),
- _("Unique name for identifying the dock object"),
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_LONG_NAME,
- g_param_spec_string ("long-name", _("Long name"),
- _("Human readable name for the dock object"),
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- g_object_class, PROP_STOCK_ID,
- g_param_spec_string ("stock-id", _("Stock Icon"),
- _("Stock icon for the dock object"),
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- g_object_class, PROP_PIXBUF_ICON,
- g_param_spec_pointer ("pixbuf-icon", _("Pixbuf Icon"),
- _("Pixbuf icon for the dock object"),
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_MASTER,
- g_param_spec_object ("master", _("Dock master"),
- _("Dock master this dock object is bound to"),
- GDL_TYPE_DOCK_MASTER,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- object_class->destroy = gdl_dock_object_destroy;
-
- widget_class->show = gdl_dock_object_show;
- widget_class->hide = gdl_dock_object_hide;
-
- klass->is_compound = TRUE;
-
- klass->detach = gdl_dock_object_real_detach;
- klass->reduce = gdl_dock_object_real_reduce;
- klass->dock_request = NULL;
- klass->dock = gdl_dock_object_dock_unimplemented;
- klass->reorder = NULL;
- klass->present = gdl_dock_object_real_present;
- klass->child_placement = NULL;
-
- gdl_dock_object_signals [DETACH] =
- g_signal_new ("detach",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GdlDockObjectClass, detach),
- NULL,
- NULL,
- gdl_marshal_VOID__BOOLEAN,
- G_TYPE_NONE,
- 1,
- G_TYPE_BOOLEAN);
-
- gdl_dock_object_signals [DOCK] =
- g_signal_new ("dock",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdlDockObjectClass, dock),
- NULL,
- NULL,
- gdl_marshal_VOID__OBJECT_ENUM_BOXED,
- G_TYPE_NONE,
- 3,
- GDL_TYPE_DOCK_OBJECT,
- GDL_TYPE_DOCK_PLACEMENT,
- G_TYPE_VALUE);
-}
-
-static void
-gdl_dock_object_init (GdlDockObject *object)
-{
- object->flags = GDL_DOCK_AUTOMATIC;
- object->freeze_count = 0;
-}
-
-static void
-gdl_dock_object_set_property (GObject *g_object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockObject *object = GDL_DOCK_OBJECT (g_object);
-
- switch (prop_id) {
- case PROP_NAME:
- g_free (object->name);
- object->name = g_value_dup_string (value);
- break;
- case PROP_LONG_NAME:
- g_free (object->long_name);
- object->long_name = g_value_dup_string (value);
- break;
- case PROP_STOCK_ID:
- g_free (object->stock_id);
- object->stock_id = g_value_dup_string (value);
- break;
- case PROP_PIXBUF_ICON:
- object->pixbuf_icon = g_value_get_pointer (value);
- break;
- case PROP_MASTER:
- if (g_value_get_object (value))
- gdl_dock_object_bind (object, g_value_get_object (value));
- else
- gdl_dock_object_unbind (object);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_object_get_property (GObject *g_object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockObject *object = GDL_DOCK_OBJECT (g_object);
-
- switch (prop_id) {
- case PROP_NAME:
- g_value_set_string (value, object->name);
- break;
- case PROP_LONG_NAME:
- g_value_set_string (value, object->long_name);
- break;
- case PROP_STOCK_ID:
- g_value_set_string (value, object->stock_id);
- break;
- case PROP_PIXBUF_ICON:
- g_value_set_pointer (value, object->pixbuf_icon);
- break;
- case PROP_MASTER:
- g_value_set_object (value, object->master);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_object_finalize (GObject *g_object)
-{
- GdlDockObject *object;
-
- g_return_if_fail (g_object != NULL && GDL_IS_DOCK_OBJECT (g_object));
-
- object = GDL_DOCK_OBJECT (g_object);
-
- g_free (object->name);
- object->name = NULL;
- g_free (object->long_name);
- object->long_name = NULL;
- g_free (object->stock_id);
- object->stock_id = NULL;
- object->pixbuf_icon = NULL;
-
- G_OBJECT_CLASS (gdl_dock_object_parent_class)->finalize (g_object);
-}
-
-static void
-gdl_dock_object_foreach_detach (GdlDockObject *object,
- gpointer user_data)
-{
- gdl_dock_object_detach (object, TRUE);
-}
-
-static void
-gdl_dock_object_destroy (GtkObject *gtk_object)
-{
- GdlDockObject *object;
-
- g_return_if_fail (GDL_IS_DOCK_OBJECT (gtk_object));
-
- object = GDL_DOCK_OBJECT (gtk_object);
- if (gdl_dock_object_is_compound (object)) {
- /* detach our dock object children if we have some, and even
- if we are not attached, so they can get notification */
- gdl_dock_object_freeze (object);
- gtk_container_foreach (GTK_CONTAINER (object),
- (GtkCallback) gdl_dock_object_foreach_detach,
- NULL);
- object->reduce_pending = FALSE;
- gdl_dock_object_thaw (object);
- }
- if (GDL_DOCK_OBJECT_ATTACHED (object)) {
- /* detach ourselves */
- gdl_dock_object_detach (object, FALSE);
- }
-
- /* finally unbind us */
- if (object->master)
- gdl_dock_object_unbind (object);
-
- GTK_OBJECT_CLASS(gdl_dock_object_parent_class)->destroy (gtk_object);
-}
-
-static void
-gdl_dock_object_foreach_automatic (GdlDockObject *object,
- gpointer user_data)
-{
- void (* function) (GtkWidget *) = user_data;
-
- if (GDL_DOCK_OBJECT_AUTOMATIC (object))
- (* function) (GTK_WIDGET (object));
-}
-
-static void
-gdl_dock_object_show (GtkWidget *widget)
-{
- if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (widget))) {
- gtk_container_foreach (GTK_CONTAINER (widget),
- (GtkCallback) gdl_dock_object_foreach_automatic,
- gtk_widget_show);
- }
- GTK_WIDGET_CLASS (gdl_dock_object_parent_class)->show (widget);
-}
-
-static void
-gdl_dock_object_hide (GtkWidget *widget)
-{
- if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (widget))) {
- gtk_container_foreach (GTK_CONTAINER (widget),
- (GtkCallback) gdl_dock_object_foreach_automatic,
- gtk_widget_hide);
- }
- GTK_WIDGET_CLASS (gdl_dock_object_parent_class)->hide (widget);
-}
-
-static void
-gdl_dock_object_real_detach (GdlDockObject *object,
- gboolean recursive)
-{
- GdlDockObject *parent;
- GtkWidget *widget;
-
- g_return_if_fail (object != NULL);
-
- /* detach children */
- if (recursive && gdl_dock_object_is_compound (object)) {
- gtk_container_foreach (GTK_CONTAINER (object),
- (GtkCallback) gdl_dock_object_detach,
- GINT_TO_POINTER (recursive));
- }
-
- /* detach the object itself */
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED);
- parent = gdl_dock_object_get_parent_object (object);
- widget = GTK_WIDGET (object);
- if (gtk_widget_get_parent (widget))
- gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (GTK_WIDGET (widget))), widget);
- if (parent)
- gdl_dock_object_reduce (parent);
-}
-
-static void
-gdl_dock_object_real_reduce (GdlDockObject *object)
-{
- GdlDockObject *parent;
- GList *children;
-
- g_return_if_fail (object != NULL);
-
- if (!gdl_dock_object_is_compound (object))
- return;
-
- parent = gdl_dock_object_get_parent_object (object);
- children = gtk_container_get_children (GTK_CONTAINER (object));
- if (g_list_length (children) <= 1) {
- GList *l;
- GList *dchildren = NULL;
-
- /* detach ourselves and then re-attach our children to our
- current parent. if we are not currently attached, the
- children are detached */
- if (parent)
- gdl_dock_object_freeze (parent);
- gdl_dock_object_freeze (object);
- /* Detach the children before detaching this object, since in this
- * way the children can have access to the whole object hierarchy.
- * Set the InDetach flag now, so the children know that this object
- * is going to be detached. */
-
-
- GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_DETACH);
-
- for (l = children; l; l = l->next) {
- GdlDockObject *child;
-
- if (!GDL_IS_DOCK_OBJECT (l->data))
- continue;
-
- child = GDL_DOCK_OBJECT (l->data);
-
- g_object_ref (child);
- gdl_dock_object_detach (child, FALSE);
- GDL_DOCK_OBJECT_SET_FLAGS (child, GDL_DOCK_IN_REFLOW);
- if (parent)
- dchildren = g_list_append (dchildren, child);
- GDL_DOCK_OBJECT_UNSET_FLAGS (child, GDL_DOCK_IN_REFLOW);
- }
- /* Now it can be detached */
- gdl_dock_object_detach (object, FALSE);
-
- /* After detaching the reduced object, we can add the
- children (the only child in fact) to the new parent */
- for (l = dchildren; l; l = l->next) {
- gtk_container_add (GTK_CONTAINER (parent), l->data);
- g_object_unref (l->data);
- }
- g_list_free (dchildren);
-
-
- /* sink the widget, so any automatic floating widget is destroyed */
- g_object_ref_sink (object);
- /* don't reenter */
- object->reduce_pending = FALSE;
- gdl_dock_object_thaw (object);
- if (parent)
- gdl_dock_object_thaw (parent);
- }
- g_list_free (children);
-}
-
-static void
-gdl_dock_object_dock_unimplemented (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *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));
-}
-
-static void
-gdl_dock_object_real_present (GdlDockObject *object,
- GdlDockObject *child)
-{
- gtk_widget_show (GTK_WIDGET (object));
-}
-
-
-/* ----- Public interface ----- */
-
-gboolean
-gdl_dock_object_is_compound (GdlDockObject *object)
-{
- GdlDockObjectClass *klass;
-
- g_return_val_if_fail (object != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), FALSE);
-
- klass = GDL_DOCK_OBJECT_GET_CLASS (object);
- return klass->is_compound;
-}
-
-void
-gdl_dock_object_detach (GdlDockObject *object,
- gboolean recursive)
-{
- g_return_if_fail (object != NULL);
-
- if (!GDL_IS_DOCK_OBJECT (object))
- return;
-
- if (!GDL_DOCK_OBJECT_ATTACHED (object))
- return;
-
- /* freeze the object to avoid reducing while detaching children */
- gdl_dock_object_freeze (object);
- GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_DETACH);
- g_signal_emit (object, gdl_dock_object_signals [DETACH], 0, recursive);
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_DETACH);
- gdl_dock_object_thaw (object);
-}
-
-GdlDockObject *
-gdl_dock_object_get_parent_object (GdlDockObject *object)
-{
- GtkWidget *parent;
-
- g_return_val_if_fail (object != NULL, NULL);
-
- parent = gtk_widget_get_parent (GTK_WIDGET (object));
- while (parent && !GDL_IS_DOCK_OBJECT (parent)) {
- parent = gtk_widget_get_parent (parent);
- }
-
- return parent ? GDL_DOCK_OBJECT (parent) : NULL;
-}
-
-void
-gdl_dock_object_freeze (GdlDockObject *object)
-{
- g_return_if_fail (object != NULL);
-
- if (object->freeze_count == 0) {
- g_object_ref (object); /* dock objects shouldn't be
- destroyed if they are frozen */
- }
- object->freeze_count++;
-}
-
-void
-gdl_dock_object_thaw (GdlDockObject *object)
-{
- g_return_if_fail (object != NULL);
- g_return_if_fail (object->freeze_count > 0);
-
- object->freeze_count--;
- if (object->freeze_count == 0) {
- if (object->reduce_pending) {
- object->reduce_pending = FALSE;
- gdl_dock_object_reduce (object);
- }
- g_object_unref (object);
- }
-}
-
-void
-gdl_dock_object_reduce (GdlDockObject *object)
-{
- g_return_if_fail (object != NULL);
-
- if (GDL_DOCK_OBJECT_FROZEN (object)) {
- object->reduce_pending = TRUE;
- return;
- }
-
- if (GDL_DOCK_OBJECT_GET_CLASS (object)->reduce)
- GDL_DOCK_OBJECT_GET_CLASS (object)->reduce (object);
-}
-
-gboolean
-gdl_dock_object_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request)
-{
- g_return_val_if_fail (object != NULL && request != NULL, FALSE);
-
- if (GDL_DOCK_OBJECT_GET_CLASS (object)->dock_request)
- return GDL_DOCK_OBJECT_GET_CLASS (object)->dock_request (object, x, y, request);
- else
- return FALSE;
-}
-
-/**
- * gdl_dock_object_dock:
- * @object:
- * @requestor:
- * @position:
- * @other_data: (allow-none):
- **/
-void
-gdl_dock_object_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data)
-{
- GdlDockObject *parent;
-
- g_return_if_fail (object != NULL && requestor != NULL);
-
- if (object == requestor)
- return;
-
- if (!object->master)
- g_warning (_("Dock operation requested in a non-bound object %p. "
- "The application might crash"), object);
-
- if (!gdl_dock_object_is_bound (requestor))
- gdl_dock_object_bind (requestor, object->master);
-
- if (requestor->master != object->master) {
- g_warning (_("Cannot dock %p to %p because they belong to different masters"),
- requestor, object);
- return;
- }
-
- /* first, see if we can optimize things by reordering */
- if (position != GDL_DOCK_NONE) {
- parent = gdl_dock_object_get_parent_object (object);
- if (gdl_dock_object_reorder (object, requestor, position, other_data) ||
- (parent && gdl_dock_object_reorder (parent, requestor, position, other_data)))
- return;
- }
-
- /* freeze the object, since under some conditions it might be destroyed when
- detaching the requestor */
- gdl_dock_object_freeze (object);
-
- /* detach the requestor before docking */
- g_object_ref (requestor);
- if (GDL_DOCK_OBJECT_ATTACHED (requestor))
- gdl_dock_object_detach (requestor, FALSE);
-
- if (position != GDL_DOCK_NONE)
- g_signal_emit (object, gdl_dock_object_signals [DOCK], 0,
- requestor, position, other_data);
-
- g_object_unref (requestor);
- gdl_dock_object_thaw (object);
-}
-
-void
-gdl_dock_object_bind (GdlDockObject *object,
- GObject *master)
-{
- g_return_if_fail (object != NULL && master != NULL);
- g_return_if_fail (GDL_IS_DOCK_MASTER (master));
-
- if (object->master == master)
- /* nothing to do here */
- return;
-
- if (object->master) {
- g_warning (_("Attempt to bind to %p an already bound dock object %p "
- "(current master: %p)"), master, object, object->master);
- return;
- }
-
- gdl_dock_master_add (GDL_DOCK_MASTER (master), object);
- object->master = master;
- g_object_add_weak_pointer (master, (gpointer *) &object->master);
-
- g_object_notify (G_OBJECT (object), "master");
-}
-
-void
-gdl_dock_object_unbind (GdlDockObject *object)
-{
- g_return_if_fail (object != NULL);
-
- g_object_ref (object);
-
- /* detach the object first */
- if (GDL_DOCK_OBJECT_ATTACHED (object))
- gdl_dock_object_detach (object, TRUE);
-
- if (object->master) {
- GObject *master = object->master;
- g_object_remove_weak_pointer (master, (gpointer *) &object->master);
- object->master = NULL;
- gdl_dock_master_remove (GDL_DOCK_MASTER (master), object);
- g_object_notify (G_OBJECT (object), "master");
- }
- g_object_unref (object);
-}
-
-gboolean
-gdl_dock_object_is_bound (GdlDockObject *object)
-{
- g_return_val_if_fail (object != NULL, FALSE);
- return (object->master != NULL);
-}
-
-gboolean
-gdl_dock_object_reorder (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement new_position,
- GValue *other_data)
-{
- g_return_val_if_fail (object != NULL && child != NULL, FALSE);
-
- if (GDL_DOCK_OBJECT_GET_CLASS (object)->reorder)
- return GDL_DOCK_OBJECT_GET_CLASS (object)->reorder (object, child, new_position, other_data);
- else
- return FALSE;
-}
-
-void
-gdl_dock_object_present (GdlDockObject *object,
- GdlDockObject *child)
-{
- GdlDockObject *parent;
-
- g_return_if_fail (object != NULL && GDL_IS_DOCK_OBJECT (object));
-
- parent = gdl_dock_object_get_parent_object (object);
- if (parent)
- /* chain the call to our parent */
- gdl_dock_object_present (parent, object);
-
- if (GDL_DOCK_OBJECT_GET_CLASS (object)->present)
- GDL_DOCK_OBJECT_GET_CLASS (object)->present (object, child);
-}
-
-/**
- * gdl_dock_object_child_placement:
- * @object: the dock object we are asking for child placement
- * @child: the child of the @object we want the placement for
- * @placement: where to return the placement information
- *
- * This function returns information about placement of a child dock
- * object inside another dock object. The function returns %TRUE if
- * @child is effectively a child of @object. @placement should
- * normally be initially setup to %GDL_DOCK_NONE. If it's set to some
- * other value, this function will not touch the stored value if the
- * specified placement is "compatible" with the actual placement of
- * the child.
- *
- * @placement can be %NULL, in which case the function simply tells if
- * @child is attached to @object.
- *
- * Returns: %TRUE if @child is a child of @object.
- */
-gboolean
-gdl_dock_object_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement)
-{
- g_return_val_if_fail (object != NULL && child != NULL, FALSE);
-
- /* simple case */
- if (!gdl_dock_object_is_compound (object))
- return FALSE;
-
- if (GDL_DOCK_OBJECT_GET_CLASS (object)->child_placement)
- return GDL_DOCK_OBJECT_GET_CLASS (object)->child_placement (object, child, placement);
- else
- return FALSE;
-}
-
-
-/* ----- dock param type functions start here ------ */
-
-static void
-gdl_dock_param_export_int (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer = g_strdup_printf ("%d", src->data [0].v_int);
-}
-
-static void
-gdl_dock_param_export_uint (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer = g_strdup_printf ("%u", src->data [0].v_uint);
-}
-
-static void
-gdl_dock_param_export_string (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer = g_strdup (src->data [0].v_pointer);
-}
-
-static void
-gdl_dock_param_export_bool (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer = g_strdup_printf ("%s", src->data [0].v_int ? "yes" : "no");
-}
-
-static void
-gdl_dock_param_export_placement (const GValue *src,
- GValue *dst)
-{
- switch (src->data [0].v_int) {
- case GDL_DOCK_NONE:
- dst->data [0].v_pointer = g_strdup ("");
- break;
- case GDL_DOCK_TOP:
- dst->data [0].v_pointer = g_strdup ("top");
- break;
- case GDL_DOCK_BOTTOM:
- dst->data [0].v_pointer = g_strdup ("bottom");
- break;
- case GDL_DOCK_LEFT:
- dst->data [0].v_pointer = g_strdup ("left");
- break;
- case GDL_DOCK_RIGHT:
- dst->data [0].v_pointer = g_strdup ("right");
- break;
- case GDL_DOCK_CENTER:
- dst->data [0].v_pointer = g_strdup ("center");
- break;
- case GDL_DOCK_FLOATING:
- dst->data [0].v_pointer = g_strdup ("floating");
- break;
- }
-}
-
-static void
-gdl_dock_param_import_int (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_int = atoi (src->data [0].v_pointer);
-}
-
-static void
-gdl_dock_param_import_uint (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_uint = (guint) atoi (src->data [0].v_pointer);
-}
-
-static void
-gdl_dock_param_import_string (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_pointer = g_strdup (src->data [0].v_pointer);
-}
-
-static void
-gdl_dock_param_import_bool (const GValue *src,
- GValue *dst)
-{
- dst->data [0].v_int = !strcmp (src->data [0].v_pointer, "yes");
-}
-
-static void
-gdl_dock_param_import_placement (const GValue *src,
- GValue *dst)
-{
- if (!strcmp (src->data [0].v_pointer, "top"))
- dst->data [0].v_int = GDL_DOCK_TOP;
- else if (!strcmp (src->data [0].v_pointer, "bottom"))
- dst->data [0].v_int = GDL_DOCK_BOTTOM;
- else if (!strcmp (src->data [0].v_pointer, "center"))
- dst->data [0].v_int = GDL_DOCK_CENTER;
- else if (!strcmp (src->data [0].v_pointer, "left"))
- dst->data [0].v_int = GDL_DOCK_LEFT;
- else if (!strcmp (src->data [0].v_pointer, "right"))
- dst->data [0].v_int = GDL_DOCK_RIGHT;
- else if (!strcmp (src->data [0].v_pointer, "floating"))
- dst->data [0].v_int = GDL_DOCK_FLOATING;
- else
- dst->data [0].v_int = GDL_DOCK_NONE;
-}
-
-GType
-gdl_dock_param_get_type (void)
-{
- static GType our_type = 0;
-
- if (our_type == 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 */
- /* exporters */
- g_value_register_transform_func (G_TYPE_INT, our_type, gdl_dock_param_export_int);
- g_value_register_transform_func (G_TYPE_UINT, our_type, gdl_dock_param_export_uint);
- g_value_register_transform_func (G_TYPE_STRING, our_type, gdl_dock_param_export_string);
- g_value_register_transform_func (G_TYPE_BOOLEAN, our_type, gdl_dock_param_export_bool);
- g_value_register_transform_func (GDL_TYPE_DOCK_PLACEMENT, our_type, gdl_dock_param_export_placement);
- /* importers */
- g_value_register_transform_func (our_type, G_TYPE_INT, gdl_dock_param_import_int);
- g_value_register_transform_func (our_type, G_TYPE_UINT, gdl_dock_param_import_uint);
- g_value_register_transform_func (our_type, G_TYPE_STRING, gdl_dock_param_import_string);
- g_value_register_transform_func (our_type, G_TYPE_BOOLEAN, gdl_dock_param_import_bool);
- g_value_register_transform_func (our_type, GDL_TYPE_DOCK_PLACEMENT, gdl_dock_param_import_placement);
- }
-
- return our_type;
-}
-
-/* -------------- nick <-> type conversion functions --------------- */
-
-static void
-gdl_dock_object_register_init (void)
-{
- const size_t n_default = 5;
- guint i = 0;
- struct DockRegisterItem default_items[n_default];
-
- if (dock_register)
- return;
-
- dock_register
- = g_array_new (FALSE, FALSE, sizeof (struct DockRegisterItem));
-
- /* add known types */
- default_items[0].nick = "dock";
- default_items[0].type = (gpointer) GDL_TYPE_DOCK;
- default_items[1].nick = "item";
- default_items[1].type = (gpointer) GDL_TYPE_DOCK_ITEM;
- default_items[2].nick = "paned";
- default_items[2].type = (gpointer) GDL_TYPE_DOCK_PANED;
- default_items[3].nick = "notebook";
- default_items[3].type = (gpointer) GDL_TYPE_DOCK_NOTEBOOK;
- default_items[4].nick = "placeholder";
- default_items[4].type = (gpointer) GDL_TYPE_DOCK_PLACEHOLDER;
-
- for (i = 0; i < n_default; i++)
- g_array_append_val (dock_register, default_items[i]);
-}
-
-/**
- * gdl_dock_object_nick_from_type:
- * @type: The type for which to find the nickname
- *
- * Finds the nickname for a given type
- *
- * Returns: If the object has a nickname, then it is returned.
- * Otherwise, the type name.
- */
-const gchar *
-gdl_dock_object_nick_from_type (GType type)
-{
- gchar *nick = NULL;
- guint i = 0;
-
- if (!dock_register)
- gdl_dock_object_register_init ();
-
- for (i=0; i < dock_register->len; i++) {
- struct DockRegisterItem item
- = g_array_index (dock_register, struct DockRegisterItem, i);
-
- if (g_direct_equal (item.type, (gpointer) type))
- nick = g_strdup (item.nick);
- }
-
- return nick ? nick : g_type_name (type);
-}
-
-/**
- * gdl_dock_object_type_from_nick:
- * @nick: The nickname for the object type
- *
- * Finds the object type assigned to a given nickname.
- *
- * Returns: If the nickname has previously been assigned, then the corresponding
- * object type is returned. Otherwise, %G_TYPE_NONE.
- */
-GType
-gdl_dock_object_type_from_nick (const gchar *nick)
-{
- GType type = G_TYPE_NONE;
- gboolean nick_is_in_register = FALSE;
- guint i = 0;
-
- if (!dock_register)
- gdl_dock_object_register_init ();
-
- for (i = 0; i < dock_register->len; i++) {
- struct DockRegisterItem item
- = g_array_index (dock_register, struct DockRegisterItem, i);
-
- if (!g_strcmp0 (nick, item.nick)) {
- nick_is_in_register = TRUE;
- type = (GType) item.type;
- }
- }
- if (!nick_is_in_register) {
- /* try searching in the glib type system */
- type = g_type_from_name (nick);
- }
-
- return type;
-}
-
-/**
- * gdl_dock_object_set_type_for_nick:
- * @nick: The nickname for the object type
- * @type: The object type
- *
- * Assigns an object type to a given nickname. If the nickname already exists,
- * then it reassigns it to a new object type.
- *
- * Returns: If the nick was previously assigned, the old type is returned.
- * Otherwise, %G_TYPE_NONE.
- */
-GType
-gdl_dock_object_set_type_for_nick (const gchar *nick,
- GType type)
-{
- GType old_type = G_TYPE_NONE;
- guint i = 0;
- struct DockRegisterItem new_item;
- new_item.nick = g_strdup(nick);
- new_item.type = (gpointer) type;
-
- if (!dock_register)
- gdl_dock_object_register_init ();
-
- g_return_val_if_fail (g_type_is_a (type, GDL_TYPE_DOCK_OBJECT), G_TYPE_NONE);
-
- for (i = 0; i < dock_register->len; i++) {
- struct DockRegisterItem item
- = g_array_index (dock_register, struct DockRegisterItem, i);
-
- if (!g_strcmp0 (nick, item.nick)) {
- old_type = (GType) item.type;
- g_array_insert_val (dock_register, i, new_item);
- }
- }
-
- return old_type;
-}
-
diff --git a/src/libgdl/gdl-dock-object.h b/src/libgdl/gdl-dock-object.h
deleted file mode 100644
index f8b192f35..000000000
--- a/src/libgdl/gdl-dock-object.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-object.h - Abstract base class for all dock related objects
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_OBJECT_H__
-#define __GDL_DOCK_OBJECT_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_OBJECT (gdl_dock_object_get_type ())
-#define GDL_DOCK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_OBJECT, GdlDockObject))
-#define GDL_DOCK_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_OBJECT, GdlDockObjectClass))
-#define GDL_IS_DOCK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_OBJECT))
-#define GDL_IS_DOCK_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_OBJECT))
-#define GDL_DOCK_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_OBJECT, GdlDockObjectClass))
-
-/* data types & structures */
-typedef enum {
- /* the parameter is to be exported for later layout rebuilding */
- GDL_DOCK_PARAM_EXPORT = 1 << G_PARAM_USER_SHIFT,
- /* the parameter must be set after adding the children objects */
- GDL_DOCK_PARAM_AFTER = 1 << (G_PARAM_USER_SHIFT + 1)
-} GdlDockParamFlags;
-
-#define GDL_DOCK_NAME_PROPERTY "name"
-#define GDL_DOCK_MASTER_PROPERTY "master"
-
-typedef enum {
- GDL_DOCK_AUTOMATIC = 1 << 0,
- GDL_DOCK_ATTACHED = 1 << 1,
- GDL_DOCK_IN_REFLOW = 1 << 2,
- GDL_DOCK_IN_DETACH = 1 << 3
-} GdlDockObjectFlags;
-
-#define GDL_DOCK_OBJECT_FLAGS_SHIFT 8
-
-typedef enum {
- GDL_DOCK_NONE = 0,
- GDL_DOCK_TOP,
- GDL_DOCK_BOTTOM,
- GDL_DOCK_RIGHT,
- GDL_DOCK_LEFT,
- GDL_DOCK_CENTER,
- GDL_DOCK_FLOATING
-} GdlDockPlacement;
-
-typedef struct _GdlDockObject GdlDockObject;
-typedef struct _GdlDockObjectClass GdlDockObjectClass;
-typedef struct _GdlDockRequest GdlDockRequest;
-
-struct _GdlDockRequest {
- GdlDockObject *applicant;
- GdlDockObject *target;
- GdlDockPlacement position;
- GdkRectangle rect;
- GValue extra;
-};
-
-struct _GdlDockObject {
- GtkContainer container;
-
- GdlDockObjectFlags flags;
- gint freeze_count;
-
- GObject *master;
- gchar *name;
- gchar *long_name;
- gchar *stock_id;
- GdkPixbuf *pixbuf_icon;
-
- gboolean reduce_pending;
-};
-
-struct _GdlDockObjectClass {
- GtkContainerClass parent_class;
-
- gboolean is_compound;
-
- void (* detach) (GdlDockObject *object,
- gboolean recursive);
- void (* reduce) (GdlDockObject *object);
-
- gboolean (* dock_request) (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request);
-
- void (* dock) (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
- gboolean (* reorder) (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement new_position,
- GValue *other_data);
-
- void (* present) (GdlDockObject *object,
- GdlDockObject *child);
-
- gboolean (* child_placement) (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement);
-};
-
-/* additional macros */
-#define GDL_DOCK_OBJECT_FLAGS(obj) (GDL_DOCK_OBJECT (obj)->flags)
-#define GDL_DOCK_OBJECT_AUTOMATIC(obj) \
- ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_AUTOMATIC) != 0)
-#define GDL_DOCK_OBJECT_ATTACHED(obj) \
- ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_ATTACHED) != 0)
-#define GDL_DOCK_OBJECT_IN_REFLOW(obj) \
- ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_IN_REFLOW) != 0)
-#define GDL_DOCK_OBJECT_IN_DETACH(obj) \
- ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_IN_DETACH) != 0)
-
-#define GDL_DOCK_OBJECT_SET_FLAGS(obj,flag) \
- G_STMT_START { (GDL_DOCK_OBJECT_FLAGS (obj) |= (flag)); } G_STMT_END
-#define GDL_DOCK_OBJECT_UNSET_FLAGS(obj,flag) \
- G_STMT_START { (GDL_DOCK_OBJECT_FLAGS (obj) &= ~(flag)); } G_STMT_END
-
-#define GDL_DOCK_OBJECT_FROZEN(obj) (GDL_DOCK_OBJECT (obj)->freeze_count > 0)
-
-
-/* public interface */
-
-GType gdl_dock_object_get_type (void);
-
-gboolean gdl_dock_object_is_compound (GdlDockObject *object);
-
-void gdl_dock_object_detach (GdlDockObject *object,
- gboolean recursive);
-
-GdlDockObject *gdl_dock_object_get_parent_object (GdlDockObject *object);
-
-void gdl_dock_object_freeze (GdlDockObject *object);
-void gdl_dock_object_thaw (GdlDockObject *object);
-
-void gdl_dock_object_reduce (GdlDockObject *object);
-
-gboolean gdl_dock_object_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request);
-void gdl_dock_object_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
-void gdl_dock_object_bind (GdlDockObject *object,
- GObject *master);
-void gdl_dock_object_unbind (GdlDockObject *object);
-gboolean gdl_dock_object_is_bound (GdlDockObject *object);
-
-gboolean gdl_dock_object_reorder (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement new_position,
- GValue *other_data);
-
-void gdl_dock_object_present (GdlDockObject *object,
- GdlDockObject *child);
-
-gboolean gdl_dock_object_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement);
-
-/* other types */
-
-/* this type derives from G_TYPE_STRING and is meant to be the basic
- type for serializing object parameters which are exported
- (i.e. those that are needed for layout rebuilding) */
-#define GDL_TYPE_DOCK_PARAM (gdl_dock_param_get_type ())
-
-GType gdl_dock_param_get_type (void);
-
-/* functions for setting/retrieving nick names for serializing GdlDockObject types */
-const gchar *gdl_dock_object_nick_from_type (GType type);
-GType gdl_dock_object_type_from_nick (const gchar *nick);
-GType gdl_dock_object_set_type_for_nick (const gchar *nick,
- GType type);
-
-
-/* helper macros */
-#define GDL_TRACE_OBJECT(object, format, args...) \
- G_STMT_START { \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_DEBUG, \
- "%s:%d (%s) %s [%p %d%s:%d]: " format, \
- __FILE__, \
- __LINE__, \
- __PRETTY_FUNCTION__, \
- G_OBJECT_TYPE_NAME (object), object, \
- G_OBJECT (object)->ref_count, \
- (GTK_IS_OBJECT (object) && g_object_is_floating (object)) ? "(float)" : "", \
- GDL_IS_DOCK_OBJECT (object) ? GDL_DOCK_OBJECT (object)->freeze_count : -1, \
- ##args); } G_STMT_END
-
-
-
-G_END_DECLS
-
-#endif /* __GDL_DOCK_OBJECT_H__ */
-
diff --git a/src/libgdl/gdl-dock-paned.c b/src/libgdl/gdl-dock-paned.c
deleted file mode 100644
index 5b4561ef3..000000000
--- a/src/libgdl/gdl-dock-paned.c
+++ /dev/null
@@ -1,678 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-paned.h
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <string.h>
-#include <gtk/gtk.h>
-
-#include "gdl-dock-paned.h"
-
-
-/* Private prototypes */
-
-static void gdl_dock_paned_class_init (GdlDockPanedClass *klass);
-static void gdl_dock_paned_init (GdlDockPaned *paned);
-static GObject *gdl_dock_paned_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param);
-static void gdl_dock_paned_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_paned_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_paned_destroy (GtkObject *object);
-
-static void gdl_dock_paned_add (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_paned_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data);
-static GType gdl_dock_paned_child_type (GtkContainer *container);
-
-static gboolean gdl_dock_paned_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request);
-static void gdl_dock_paned_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
-static void gdl_dock_paned_set_orientation (GdlDockItem *item,
- GtkOrientation orientation);
-
-static gboolean gdl_dock_paned_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement);
-
-
-/* ----- Class variables and definitions ----- */
-
-#define SPLIT_RATIO 0.3
-
-enum {
- PROP_0,
- PROP_POSITION
-};
-
-
-/* ----- Private functions ----- */
-
-G_DEFINE_TYPE (GdlDockPaned, gdl_dock_paned, GDL_TYPE_DOCK_ITEM);
-
-static void
-gdl_dock_paned_class_init (GdlDockPanedClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
- GdlDockObjectClass *object_class;
- GdlDockItemClass *item_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
- object_class = GDL_DOCK_OBJECT_CLASS (klass);
- item_class = GDL_DOCK_ITEM_CLASS (klass);
-
- g_object_class->set_property = gdl_dock_paned_set_property;
- g_object_class->get_property = gdl_dock_paned_get_property;
- g_object_class->constructor = gdl_dock_paned_constructor;
-
- gtk_object_class->destroy = gdl_dock_paned_destroy;
-
- container_class->add = gdl_dock_paned_add;
- container_class->forall = gdl_dock_paned_forall;
- container_class->child_type = gdl_dock_paned_child_type;
-
- object_class->is_compound = TRUE;
-
- object_class->dock_request = gdl_dock_paned_dock_request;
- object_class->dock = gdl_dock_paned_dock;
- object_class->child_placement = gdl_dock_paned_child_placement;
-
- item_class->has_grip = FALSE;
- item_class->set_orientation = gdl_dock_paned_set_orientation;
-
- g_object_class_install_property (
- g_object_class, PROP_POSITION,
- g_param_spec_uint ("position", _("Position"),
- _("Position of the divider in pixels"),
- 0, G_MAXINT, 0,
- G_PARAM_READWRITE |
- GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER));
-}
-
-static void
-gdl_dock_paned_init (GdlDockPaned *paned)
-{
- paned->position_changed = FALSE;
-}
-
-static void
-gdl_dock_paned_notify_cb (GObject *g_object,
- GParamSpec *pspec,
- gpointer user_data)
-{
- GdlDockPaned *paned;
-
- g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data));
-
- /* chain the notification to the GdlDockPaned */
- g_object_notify (G_OBJECT (user_data), pspec->name);
-
- paned = GDL_DOCK_PANED (user_data);
-
- if (GDL_DOCK_ITEM_USER_ACTION (user_data) && !strcmp (pspec->name, "position"))
- paned->position_changed = TRUE;
-}
-
-static gboolean
-gdl_dock_paned_button_cb (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
-{
- GdlDockPaned *paned;
-
- g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data), FALSE);
-
- paned = GDL_DOCK_PANED (user_data);
- if (event->button == 1) {
- if (event->type == GDK_BUTTON_PRESS)
- GDL_DOCK_ITEM_SET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
- else {
- GDL_DOCK_ITEM_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION);
- if (paned->position_changed) {
- /* emit pending layout changed signal to track separator position */
- if (GDL_DOCK_OBJECT (paned)->master)
- g_signal_emit_by_name (GDL_DOCK_OBJECT (paned)->master, "layout-changed");
- paned->position_changed = FALSE;
- }
- }
- }
-
- return FALSE;
-}
-
-static void
-gdl_dock_paned_create_child (GdlDockPaned *paned,
- GtkOrientation orientation)
-{
- GdlDockItem *item;
-
- item = GDL_DOCK_ITEM (paned);
-
- if (item->child)
- gtk_widget_unparent (GTK_WIDGET (item->child));
-
- /* create the container paned */
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- item->child = gtk_hpaned_new ();
- else
- item->child = gtk_vpaned_new ();
-
- /* get notification for propagation */
- g_signal_connect (item->child, "notify::position",
- (GCallback) gdl_dock_paned_notify_cb, (gpointer) item);
- g_signal_connect (item->child, "button-press-event",
- (GCallback) gdl_dock_paned_button_cb, (gpointer) item);
- g_signal_connect (item->child, "button-release-event",
- (GCallback) gdl_dock_paned_button_cb, (gpointer) item);
-
- gtk_widget_set_parent (item->child, GTK_WIDGET (item));
- gtk_widget_show (item->child);
-}
-
-static GObject *
-gdl_dock_paned_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param)
-{
- GObject *g_object;
-
- g_object = G_OBJECT_CLASS (gdl_dock_paned_parent_class)-> constructor (type,
- n_construct_properties,
- construct_param);
- if (g_object) {
- GdlDockItem *item = GDL_DOCK_ITEM (g_object);
-
- if (!item->child)
- gdl_dock_paned_create_child (GDL_DOCK_PANED (g_object),
- item->orientation);
- /* otherwise, the orientation was set as a construction
- parameter and the child is already created */
- }
-
- return g_object;
-}
-
-static void
-gdl_dock_paned_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- switch (prop_id) {
- case PROP_POSITION:
- if (item->child && GTK_IS_PANED (item->child))
- gtk_paned_set_position (GTK_PANED (item->child),
- g_value_get_uint (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_paned_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- switch (prop_id) {
- case PROP_POSITION:
- if (item->child && GTK_IS_PANED (item->child))
- g_value_set_uint (value,
- gtk_paned_get_position (GTK_PANED (item->child)));
- else
- g_value_set_uint (value, 0);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_paned_destroy (GtkObject *object)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
-
- /* we need to call the virtual first, since in GdlDockDestroy our
- children dock objects are detached */
- GTK_OBJECT_CLASS (gdl_dock_paned_parent_class)->destroy (object);
-
- /* after that we can remove the GtkNotebook */
- if (item->child) {
- gtk_widget_unparent (item->child);
- item->child = NULL;
- };
-}
-
-static void
-gdl_dock_paned_add (GtkContainer *container,
- GtkWidget *widget)
-{
- GdlDockItem *item;
- GdlDockPlacement pos = GDL_DOCK_NONE;
- GtkPaned *paned;
- GtkWidget *child1, *child2;
-
- g_return_if_fail (container != NULL && widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_PANED (container));
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- item = GDL_DOCK_ITEM (container);
- g_return_if_fail (item->child != NULL);
-
- paned = GTK_PANED (item->child);
- child1 = gtk_paned_get_child1 (paned);
- child2 = gtk_paned_get_child2 (paned);
- g_return_if_fail (!child1 || !child2);
-
- if (!child1)
- pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ?
- GDL_DOCK_LEFT : GDL_DOCK_TOP;
- else if (!child2)
- pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ?
- GDL_DOCK_RIGHT : GDL_DOCK_BOTTOM;
-
- if (pos != GDL_DOCK_NONE)
- gdl_dock_object_dock (GDL_DOCK_OBJECT (container),
- GDL_DOCK_OBJECT (widget),
- pos, NULL);
-}
-
-static void
-gdl_dock_paned_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data)
-{
- GdlDockItem *item;
-
- g_return_if_fail (container != NULL);
- g_return_if_fail (GDL_IS_DOCK_PANED (container));
- g_return_if_fail (callback != NULL);
-
- if (include_internals) {
- /* use GdlDockItem's forall */
- GTK_CONTAINER_CLASS (gdl_dock_paned_parent_class)->forall
- (container, include_internals, callback, callback_data);
- }
- else {
- item = GDL_DOCK_ITEM (container);
- if (item->child)
- gtk_container_foreach (GTK_CONTAINER (item->child), callback, callback_data);
- }
-}
-
-static GType
-gdl_dock_paned_child_type (GtkContainer *container)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (container);
-
- if (gtk_container_child_type (GTK_CONTAINER (item->child)) == G_TYPE_NONE)
- return G_TYPE_NONE;
- else
- return GDL_TYPE_DOCK_ITEM;
-}
-
-static void
-gdl_dock_paned_request_foreach (GdlDockObject *object,
- gpointer user_data)
-{
- struct {
- gint x, y;
- GdlDockRequest *request;
- gboolean may_dock;
- } *data = user_data;
-
- GdlDockRequest my_request;
- gboolean may_dock;
-
- my_request = *data->request;
- may_dock = gdl_dock_object_dock_request (object, data->x, data->y, &my_request);
- if (may_dock) {
- data->may_dock = TRUE;
- *data->request = my_request;
- }
-}
-
-static gboolean
-gdl_dock_paned_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request)
-{
- GdlDockItem *item;
- guint bw;
- gint rel_x, rel_y;
- GtkAllocation alloc;
- gboolean may_dock = FALSE;
- GdlDockRequest my_request;
-
- g_return_val_if_fail (GDL_IS_DOCK_ITEM (object), FALSE);
-
- /* we get (x,y) in our allocation coordinates system */
-
- item = GDL_DOCK_ITEM (object);
-
- /* Get item's allocation. */
- gtk_widget_get_allocation (GTK_WIDGET (object), &alloc);
- bw = gtk_container_get_border_width (GTK_CONTAINER (object));
-
- /* Get coordinates relative to our window. */
- rel_x = x - alloc.x;
- rel_y = y - alloc.y;
-
- if (request)
- my_request = *request;
-
- /* Check if coordinates are inside the widget. */
- if (rel_x > 0 && rel_x < alloc.width &&
- rel_y > 0 && rel_y < alloc.height) {
- GtkRequisition my, other;
- gint divider = -1;
-
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (my_request.applicant), &other);
- gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &my);
-
- /* It's inside our area. */
- may_dock = TRUE;
-
- /* Set docking indicator rectangle to the widget size. */
- my_request.rect.x = bw;
- my_request.rect.y = bw;
- my_request.rect.width = alloc.width - 2*bw;
- my_request.rect.height = alloc.height - 2*bw;
-
- my_request.target = object;
-
- /* See if it's in the border_width band. */
- if (rel_x < (gint)bw) {
- my_request.position = GDL_DOCK_LEFT;
- my_request.rect.width *= SPLIT_RATIO;
- divider = other.width;
- } else if (rel_x > alloc.width - (gint)bw) {
- my_request.position = GDL_DOCK_RIGHT;
- my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO);
- my_request.rect.width *= SPLIT_RATIO;
- divider = MAX (0, my.width - other.width);
- } else if (rel_y < (gint)bw) {
- my_request.position = GDL_DOCK_TOP;
- my_request.rect.height *= SPLIT_RATIO;
- divider = other.height;
- } else if (rel_y > alloc.height - (gint)bw) {
- my_request.position = GDL_DOCK_BOTTOM;
- my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO);
- my_request.rect.height *= SPLIT_RATIO;
- divider = MAX (0, my.height - other.height);
-
- } else { /* Otherwise try our children. */
- struct {
- gint x, y;
- GdlDockRequest *request;
- gboolean may_dock;
- } data;
-
- /* give them coordinates in their allocation system... the
- GtkPaned has no window, so our children allocation
- coordinates are our window coordinates */
- data.x = rel_x;
- data.y = rel_y;
- data.request = &my_request;
- data.may_dock = FALSE;
-
- gtk_container_foreach (GTK_CONTAINER (object),
- (GtkCallback) gdl_dock_paned_request_foreach,
- &data);
-
- may_dock = data.may_dock;
- if (!may_dock) {
- /* the pointer is on the handle, so snap to top/bottom
- or left/right */
- may_dock = TRUE;
- if (item->orientation == GTK_ORIENTATION_HORIZONTAL) {
- if (rel_y < alloc.height / 2) {
- my_request.position = GDL_DOCK_TOP;
- my_request.rect.height *= SPLIT_RATIO;
- divider = other.height;
- } else {
- my_request.position = GDL_DOCK_BOTTOM;
- my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO);
- my_request.rect.height *= SPLIT_RATIO;
- divider = MAX (0, my.height - other.height);
- }
- } else {
- if (rel_x < alloc.width / 2) {
- my_request.position = GDL_DOCK_LEFT;
- my_request.rect.width *= SPLIT_RATIO;
- divider = other.width;
- } else {
- my_request.position = GDL_DOCK_RIGHT;
- my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO);
- my_request.rect.width *= SPLIT_RATIO;
- divider = MAX (0, my.width - other.width);
- }
- }
- }
- }
-
- if (divider >= 0 && my_request.position != GDL_DOCK_CENTER) {
- if (G_IS_VALUE (&my_request.extra))
- g_value_unset (&my_request.extra);
- g_value_init (&my_request.extra, G_TYPE_UINT);
- g_value_set_uint (&my_request.extra, (guint) divider);
- }
-
- if (may_dock) {
- /* adjust returned coordinates so they are relative to
- our allocation */
- my_request.rect.x += alloc.x;
- my_request.rect.y += alloc.y;
- }
- }
-
- if (may_dock && request)
- *request = my_request;
-
- return may_dock;
-}
-
-static void
-gdl_dock_paned_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data)
-{
- GtkPaned *paned;
- GtkWidget *child1, *child2;
- gboolean done = FALSE;
- gboolean hresize = FALSE;
- gboolean wresize = FALSE;
- gint temp = 0;
-
- g_return_if_fail (GDL_IS_DOCK_PANED (object));
- g_return_if_fail (GDL_DOCK_ITEM (object)->child != NULL);
-
- paned = GTK_PANED (GDL_DOCK_ITEM (object)->child);
-
- if (GDL_IS_DOCK_ITEM (requestor)) {
- g_object_get (G_OBJECT (requestor), "preferred_height", &temp, NULL);
- if (temp == -2)
- hresize = TRUE;
- temp = 0;
- g_object_get (G_OBJECT (requestor), "preferred_width", &temp, NULL);
- if (temp == -2)
- wresize = TRUE;
- }
-
- child1 = gtk_paned_get_child1 (paned);
- child2 = gtk_paned_get_child2 (paned);
-
- /* see if we can dock the item in our paned */
- switch (GDL_DOCK_ITEM (object)->orientation) {
- case GTK_ORIENTATION_HORIZONTAL:
- if (!child1 && position == GDL_DOCK_LEFT) {
- gtk_paned_pack1 (paned, GTK_WIDGET (requestor), FALSE, FALSE);
- done = TRUE;
- } else if (!child2 && position == GDL_DOCK_RIGHT) {
- gtk_paned_pack2 (paned, GTK_WIDGET (requestor), TRUE, FALSE);
- done = TRUE;
- }
- break;
- case GTK_ORIENTATION_VERTICAL:
- if (!child1 && position == GDL_DOCK_TOP) {
- gtk_paned_pack1 (paned, GTK_WIDGET (requestor), hresize, FALSE);
- done = TRUE;
- } else if (!child2 && position == GDL_DOCK_BOTTOM) {
- gtk_paned_pack2 (paned, GTK_WIDGET (requestor), hresize, FALSE);
- done = TRUE;
- }
- break;
- default:
- break;
- }
-
- if (!done) {
- /* this will create another paned and reparent us there */
- GDL_DOCK_OBJECT_CLASS (gdl_dock_paned_parent_class)->dock (object, requestor, position,
- other_data);
- }
- else {
- gdl_dock_item_show_grip (GDL_DOCK_ITEM (requestor));
- gtk_widget_show (GTK_WIDGET (requestor));
- GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED);
- }
-}
-
-static void
-gdl_dock_paned_set_orientation (GdlDockItem *item,
- GtkOrientation orientation)
-{
- GtkPaned *old_paned = NULL, *new_paned;
- GtkWidget *child1, *child2;
-
- g_return_if_fail (GDL_IS_DOCK_PANED (item));
-
- if (item->child) {
- old_paned = GTK_PANED (item->child);
- g_object_ref (old_paned);
- gtk_widget_unparent (GTK_WIDGET (old_paned));
- item->child = NULL;
- }
-
- gdl_dock_paned_create_child (GDL_DOCK_PANED (item), orientation);
-
- if (old_paned) {
- new_paned = GTK_PANED (item->child);
- child1 = gtk_paned_get_child1 (old_paned);
- child2 = gtk_paned_get_child2 (old_paned);
-
- if (child1) {
- g_object_ref (child1);
- gtk_container_remove (GTK_CONTAINER (old_paned), child1);
- gtk_paned_pack1 (new_paned, child1, TRUE, FALSE);
- g_object_unref (child1);
- }
- if (child2) {
- g_object_ref (child2);
- gtk_container_remove (GTK_CONTAINER (old_paned), child2);
- gtk_paned_pack1 (new_paned, child2, TRUE, FALSE);
- g_object_unref (child2);
- }
- }
-
- GDL_DOCK_ITEM_CLASS (gdl_dock_paned_parent_class)->set_orientation (item, orientation);
-}
-
-static gboolean
-gdl_dock_paned_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement)
-{
- GdlDockItem *item = GDL_DOCK_ITEM (object);
- GtkPaned *paned;
- GdlDockPlacement pos = GDL_DOCK_NONE;
-
- if (item->child) {
- paned = GTK_PANED (item->child);
- if (GTK_WIDGET (child) == gtk_paned_get_child1 (paned))
- pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ?
- GDL_DOCK_LEFT : GDL_DOCK_TOP;
- else if (GTK_WIDGET (child) == gtk_paned_get_child2 (paned))
- pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ?
- GDL_DOCK_RIGHT : GDL_DOCK_BOTTOM;
- }
-
- if (pos != GDL_DOCK_NONE) {
- if (placement)
- *placement = pos;
- return TRUE;
- }
- else
- return FALSE;
-}
-
-
-/* ----- Public interface ----- */
-
-GtkWidget *
-gdl_dock_paned_new (GtkOrientation orientation)
-{
- GdlDockPaned *paned;
-
- paned = GDL_DOCK_PANED (g_object_new (GDL_TYPE_DOCK_PANED,
- "orientation", orientation, NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (paned, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (paned);
-}
-
diff --git a/src/libgdl/gdl-dock-paned.h b/src/libgdl/gdl-dock-paned.h
deleted file mode 100644
index 2b4a40700..000000000
--- a/src/libgdl/gdl-dock-paned.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-paned.h
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_PANED_H__
-#define __GDL_DOCK_PANED_H__
-
-#include "libgdl/gdl-dock-item.h"
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_PANED (gdl_dock_paned_get_type ())
-#define GDL_DOCK_PANED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_PANED, GdlDockPaned))
-#define GDL_DOCK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_PANED, GdlDockPanedClass))
-#define GDL_IS_DOCK_PANED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_PANED))
-#define GDL_IS_DOCK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_PANED))
-#define GDL_DOCK_PANED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYE_DOCK_PANED, GdlDockPanedClass))
-
-/* data types & structures */
-typedef struct _GdlDockPaned GdlDockPaned;
-typedef struct _GdlDockPanedClass GdlDockPanedClass;
-
-struct _GdlDockPaned {
- GdlDockItem dock_item;
-
- gboolean position_changed;
-};
-
-struct _GdlDockPanedClass {
- GdlDockItemClass parent_class;
-};
-
-
-/* public interface */
-
-GType gdl_dock_paned_get_type (void);
-
-GtkWidget *gdl_dock_paned_new (GtkOrientation orientation);
-
-
-G_END_DECLS
-
-#endif /* __GDL_DOCK_PANED_H__ */
-
diff --git a/src/libgdl/gdl-dock-placeholder.c b/src/libgdl/gdl-dock-placeholder.c
deleted file mode 100644
index 8cde7a51d..000000000
--- a/src/libgdl/gdl-dock-placeholder.c
+++ /dev/null
@@ -1,827 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-placeholder.c - Placeholders for docking items
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-
-#include "gdl-dock-placeholder.h"
-#include "gdl-dock-item.h"
-#include "gdl-dock-paned.h"
-#include "gdl-dock-master.h"
-#include "libgdltypebuiltins.h"
-
-
-#undef PLACEHOLDER_DEBUG
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_placeholder_class_init (GdlDockPlaceholderClass *klass);
-
-static void gdl_dock_placeholder_set_property (GObject *g_object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_placeholder_get_property (GObject *g_object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_placeholder_destroy (GtkObject *object);
-
-static void gdl_dock_placeholder_add (GtkContainer *container,
- GtkWidget *widget);
-
-static void gdl_dock_placeholder_detach (GdlDockObject *object,
- gboolean recursive);
-static void gdl_dock_placeholder_reduce (GdlDockObject *object);
-static void gdl_dock_placeholder_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-
-static void gdl_dock_placeholder_weak_notify (gpointer data,
- GObject *old_object);
-
-static void disconnect_host (GdlDockPlaceholder *ph);
-static void connect_host (GdlDockPlaceholder *ph,
- GdlDockObject *new_host);
-static void do_excursion (GdlDockPlaceholder *ph);
-
-static void gdl_dock_placeholder_present (GdlDockObject *object,
- GdlDockObject *child);
-
-static void detach_cb (GdlDockObject *object,
- gboolean recursive,
- gpointer user_data);
-
-/* ----- Private variables and data structures ----- */
-
-enum {
- PROP_0,
- PROP_STICKY,
- PROP_HOST,
- PROP_NEXT_PLACEMENT,
- PROP_WIDTH,
- PROP_HEIGHT,
- PROP_FLOATING,
- PROP_FLOAT_X,
- PROP_FLOAT_Y
-};
-
-struct _GdlDockPlaceholderPrivate {
- /* current object this placeholder is pinned to */
- GdlDockObject *host;
- gboolean sticky;
-
- /* when the placeholder is moved up the hierarchy, this stack
- keeps track of the necessary dock positions needed to get the
- placeholder to the original position */
- GSList *placement_stack;
-
- /* Width and height of the attachments */
- gint width;
- gint height;
-
- /* connected signal handlers */
- guint host_detach_handler;
- guint host_dock_handler;
-
- /* Window Coordinates if Dock was floating */
- gboolean floating;
- gint floatx;
- gint floaty;
-};
-
-
-/* ----- Private interface ----- */
-
-G_DEFINE_TYPE (GdlDockPlaceholder, gdl_dock_placeholder, GDL_TYPE_DOCK_OBJECT);
-
-static void
-gdl_dock_placeholder_class_init (GdlDockPlaceholderClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkContainerClass *container_class;
- GdlDockObjectClass *object_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
- object_class = GDL_DOCK_OBJECT_CLASS (klass);
-
- g_object_class->get_property = gdl_dock_placeholder_get_property;
- g_object_class->set_property = gdl_dock_placeholder_set_property;
-
- g_object_class_install_property (
- g_object_class, PROP_STICKY,
- g_param_spec_boolean ("sticky", _("Sticky"),
- _("Whether the placeholder will stick to its host or "
- "move up the hierarchy when the host is redocked"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (
- g_object_class, PROP_HOST,
- g_param_spec_object ("host", _("Host"),
- _("The dock object this placeholder is attached to"),
- GDL_TYPE_DOCK_OBJECT,
- G_PARAM_READWRITE));
-
- /* this will return the top of the placement stack */
- g_object_class_install_property (
- g_object_class, PROP_NEXT_PLACEMENT,
- g_param_spec_enum ("next-placement", _("Next placement"),
- _("The position an item will be docked to our host if a "
- "request is made to dock to us"),
- GDL_TYPE_DOCK_PLACEMENT,
- GDL_DOCK_CENTER,
- G_PARAM_READWRITE |
- GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER));
-
- g_object_class_install_property (
- g_object_class, PROP_WIDTH,
- g_param_spec_int ("width", _("Width"),
- _("Width for the widget when it's attached to the placeholder"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_HEIGHT,
- g_param_spec_int ("height", _("Height"),
- _("Height for the widget when it's attached to the placeholder"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
- g_object_class_install_property (
- g_object_class, PROP_FLOATING,
- g_param_spec_boolean ("floating", _("Floating Toplevel"),
- _("Whether the placeholder is standing in for a "
- "floating toplevel dock"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
- g_object_class_install_property (
- g_object_class, PROP_FLOAT_X,
- g_param_spec_int ("floatx", _("X Coordinate"),
- _("X coordinate for dock when floating"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- GDL_DOCK_PARAM_EXPORT));
- g_object_class_install_property (
- g_object_class, PROP_FLOAT_Y,
- g_param_spec_int ("floaty", _("Y Coordinate"),
- _("Y coordinate for dock when floating"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- GDL_DOCK_PARAM_EXPORT));
-
-
- gtk_object_class->destroy = gdl_dock_placeholder_destroy;
- container_class->add = gdl_dock_placeholder_add;
-
- object_class->is_compound = FALSE;
- object_class->detach = gdl_dock_placeholder_detach;
- object_class->reduce = gdl_dock_placeholder_reduce;
- object_class->dock = gdl_dock_placeholder_dock;
- object_class->present = gdl_dock_placeholder_present;
-}
-
-static void
-gdl_dock_placeholder_init (GdlDockPlaceholder *ph)
-{
- gtk_widget_set_has_window (GTK_WIDGET (ph), FALSE);
- gtk_widget_set_can_focus (GTK_WIDGET (ph), FALSE);
-
- ph->_priv = g_new0 (GdlDockPlaceholderPrivate, 1);
-}
-
-static void
-gdl_dock_placeholder_set_property (GObject *g_object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (g_object);
-
- switch (prop_id) {
- case PROP_STICKY:
- if (ph->_priv)
- ph->_priv->sticky = g_value_get_boolean (value);
- break;
- case PROP_HOST:
- gdl_dock_placeholder_attach (ph, g_value_get_object (value));
- break;
- case PROP_NEXT_PLACEMENT:
- if (ph->_priv) {
- ph->_priv->placement_stack =
- g_slist_prepend (ph->_priv->placement_stack,
- GINT_TO_POINTER (g_value_get_enum (value)));
- }
- break;
- case PROP_WIDTH:
- ph->_priv->width = g_value_get_int (value);
- break;
- case PROP_HEIGHT:
- ph->_priv->height = g_value_get_int (value);
- break;
- case PROP_FLOATING:
- ph->_priv->floating = g_value_get_boolean (value);
- break;
- case PROP_FLOAT_X:
- ph->_priv->floatx = g_value_get_int (value);
- break;
- case PROP_FLOAT_Y:
- ph->_priv->floaty = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_placeholder_get_property (GObject *g_object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (g_object);
-
- switch (prop_id) {
- case PROP_STICKY:
- if (ph->_priv)
- g_value_set_boolean (value, ph->_priv->sticky);
- else
- g_value_set_boolean (value, FALSE);
- break;
- case PROP_HOST:
- if (ph->_priv)
- g_value_set_object (value, ph->_priv->host);
- else
- g_value_set_object (value, NULL);
- break;
- case PROP_NEXT_PLACEMENT:
- if (ph->_priv && ph->_priv->placement_stack)
- g_value_set_enum (value, (GdlDockPlacement) ph->_priv->placement_stack->data);
- else
- g_value_set_enum (value, GDL_DOCK_CENTER);
- break;
- case PROP_WIDTH:
- g_value_set_int (value, ph->_priv->width);
- break;
- case PROP_HEIGHT:
- g_value_set_int (value, ph->_priv->height);
- break;
- case PROP_FLOATING:
- g_value_set_boolean (value, ph->_priv->floating);
- break;
- case PROP_FLOAT_X:
- g_value_set_int (value, ph->_priv->floatx);
- break;
- case PROP_FLOAT_Y:
- g_value_set_int (value, ph->_priv->floaty);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_placeholder_destroy (GtkObject *object)
-{
- GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object);
-
- if (ph->_priv) {
- if (ph->_priv->host)
- gdl_dock_placeholder_detach (GDL_DOCK_OBJECT (object), FALSE);
- g_free (ph->_priv);
- ph->_priv = NULL;
- }
-
- GTK_OBJECT_CLASS (gdl_dock_placeholder_parent_class)->destroy (object);
-}
-
-static void
-gdl_dock_placeholder_add (GtkContainer *container,
- GtkWidget *widget)
-{
- GdlDockPlaceholder *ph;
- GdlDockPlacement pos = GDL_DOCK_CENTER; /* default position */
-
- g_return_if_fail (GDL_IS_DOCK_PLACEHOLDER (container));
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- ph = GDL_DOCK_PLACEHOLDER (container);
- if (ph->_priv->placement_stack)
- pos = (GdlDockPlacement) ph->_priv->placement_stack->data;
-
- gdl_dock_object_dock (GDL_DOCK_OBJECT (ph), GDL_DOCK_OBJECT (widget),
- pos, NULL);
-}
-
-static void
-gdl_dock_placeholder_detach (GdlDockObject *object,
- gboolean recursive)
-{
- GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object);
-
- /* disconnect handlers */
- disconnect_host (ph);
-
- /* free the placement stack */
- g_slist_free (ph->_priv->placement_stack);
- ph->_priv->placement_stack = NULL;
-
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED);
-}
-
-static void
-gdl_dock_placeholder_reduce (GdlDockObject *object)
-{
- /* placeholders are not reduced */
- return;
-}
-
-static void
-find_biggest_dock_item (GtkContainer *container, GtkWidget **biggest_child,
- gint *biggest_child_area)
-{
- GList *children, *child;
- GtkAllocation allocation;
-
- children = gtk_container_get_children (GTK_CONTAINER (container));
- child = children;
- while (child) {
- gint area;
- GtkWidget *child_widget;
-
- child_widget = GTK_WIDGET (child->data);
-
- if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT(child_widget))) {
- find_biggest_dock_item (GTK_CONTAINER (child_widget),
- biggest_child, biggest_child_area);
- child = g_list_next (child);
- continue;
- }
- gtk_widget_get_allocation (child_widget, &allocation);
- area = allocation.width * allocation.height;
-
- if (area > *biggest_child_area) {
- *biggest_child_area = area;
- *biggest_child = child_widget;
- }
- child = g_list_next (child);
- }
-}
-
-static void
-attempt_to_dock_on_host (GdlDockPlaceholder *ph, GdlDockObject *host,
- GdlDockObject *requestor, GdlDockPlacement placement,
- gpointer other_data)
-{
- GdlDockObject *parent;
- GtkAllocation allocation;
- gint host_width;
- gint host_height;
-
- gtk_widget_get_allocation (GTK_WIDGET (host), &allocation);
- host_width = allocation.width;
- host_height = allocation.height;
-
- if (placement != GDL_DOCK_CENTER || !GDL_IS_DOCK_PANED (host)) {
- /* we simply act as a proxy for our host */
- gdl_dock_object_dock (host, requestor,
- placement, other_data);
- } else {
- /* If the requested pos is center, we have to make sure that it
- * does not colapses existing paned items. Find the larget item
- * which is not a paned item to dock to.
- */
- GtkWidget *biggest_child = NULL;
- gint biggest_child_area = 0;
-
- find_biggest_dock_item (GTK_CONTAINER (host), &biggest_child,
- &biggest_child_area);
-
- if (biggest_child) {
- /* we simply act as a proxy for our host */
- gdl_dock_object_dock (GDL_DOCK_OBJECT (biggest_child), requestor,
- placement, other_data);
- } else {
- g_warning ("No suitable child found! Should not be here!");
- /* we simply act as a proxy for our host */
- gdl_dock_object_dock (GDL_DOCK_OBJECT (host), requestor,
- placement, other_data);
- }
- }
-
- parent = gdl_dock_object_get_parent_object (requestor);
-
- /* Restore dock item's dimention */
- switch (placement) {
- case GDL_DOCK_LEFT:
- if (ph->_priv->width > 0) {
- g_object_set (G_OBJECT (parent), "position",
- ph->_priv->width, NULL);
- }
- break;
- case GDL_DOCK_RIGHT:
- if (ph->_priv->width > 0) {
- gint complementary_width = host_width - ph->_priv->width;
-
- if (complementary_width > 0)
- g_object_set (G_OBJECT (parent), "position",
- complementary_width, NULL);
- }
- break;
- case GDL_DOCK_TOP:
- if (ph->_priv->height > 0) {
- g_object_set (G_OBJECT (parent), "position",
- ph->_priv->height, NULL);
- }
- break;
- case GDL_DOCK_BOTTOM:
- if (ph->_priv->height > 0) {
- gint complementary_height = host_height - ph->_priv->height;
-
- if (complementary_height > 0)
- g_object_set (G_OBJECT (parent), "position",
- complementary_height, NULL);
- }
- break;
- default:
- /* nothing */
- break;
- }
-}
-
-static void
-gdl_dock_placeholder_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data)
-{
- GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object);
-
- if (ph->_priv->host) {
- attempt_to_dock_on_host (ph, ph->_priv->host, requestor,
- position, other_data);
- }
- else {
- GdlDockObject *toplevel;
-
- if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (ph))) {
- g_warning ("%s", _("Attempt to dock a dock object to an unbound placeholder"));
- return;
- }
-
- /* dock the item as a floating of the controller */
- toplevel = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph));
- gdl_dock_object_dock (toplevel, requestor,
- GDL_DOCK_FLOATING, NULL);
- }
-}
-
-#ifdef PLACEHOLDER_DEBUG
-static void
-print_placement_stack (GdlDockPlaceholder *ph)
-{
- GSList *s = ph->_priv->placement_stack;
- GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT));
- GEnumValue *enum_value;
- gchar *name;
- GString *message;
-
- message = g_string_new (NULL);
- g_string_printf (message, "[%p] host: %p (%s), stack: ",
- ph, ph->_priv->host, G_OBJECT_TYPE_NAME (ph->_priv->host));
- for (; s; s = s->next) {
- enum_value = g_enum_get_value (enum_class, (GdlDockPlacement) s->data);
- name = enum_value ? enum_value->value_name : NULL;
- g_string_append_printf (message, "%s, ", name);
- }
- g_message ("%s", message->str);
-
- g_string_free (message, TRUE);
- g_type_class_unref (enum_class);
-}
-#endif
-
-static void
-gdl_dock_placeholder_present (GdlDockObject *object,
- GdlDockObject *child)
-{
- /* do nothing */
- return;
-}
-
-/* ----- Public interface ----- */
-
-GtkWidget *
-gdl_dock_placeholder_new (const gchar *name,
- GdlDockObject *object,
- GdlDockPlacement position,
- gboolean sticky)
-{
- GdlDockPlaceholder *ph;
-
- ph = GDL_DOCK_PLACEHOLDER (g_object_new (GDL_TYPE_DOCK_PLACEHOLDER,
- "name", name,
- "sticky", sticky,
- "next-placement", position,
- "host", object,
- NULL));
- GDL_DOCK_OBJECT_UNSET_FLAGS (ph, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (ph);
-}
-
-static void
-gdl_dock_placeholder_weak_notify (gpointer data,
- GObject *old_object)
-{
- GdlDockPlaceholder *ph;
-
- g_return_if_fail (data != NULL && GDL_IS_DOCK_PLACEHOLDER (data));
-
- ph = GDL_DOCK_PLACEHOLDER (data);
-
-#ifdef PLACEHOLDER_DEBUG
- g_message ("The placeholder just lost its host, ph = %p", ph);
-#endif
-
- /* we shouldn't get here, so perform an emergency detach. instead
- we should have gotten a detach signal from our host */
- ph->_priv->host = NULL;
-
- /* We didn't get a detach signal from the host. Detach from the
- supposedly dead host (consequently attaching to the controller) */
-
- detach_cb (NULL, TRUE, data);
-#if 0
- /* free the placement stack */
- g_slist_free (ph->_priv->placement_stack);
- ph->_priv->placement_stack = NULL;
- GDL_DOCK_OBJECT_UNSET_FLAGS (ph, GDL_DOCK_ATTACHED);
-#endif
-}
-
-static void
-detach_cb (GdlDockObject *object,
- gboolean recursive,
- gpointer user_data)
-{
- GdlDockPlaceholder *ph;
- GdlDockObject *new_host, *obj;
-
- g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PLACEHOLDER (user_data));
-
- /* we go up in the hierarchy and we store the hinted placement in
- * the placement stack so we can rebuild the docking layout later
- * when we get the host's dock signal. */
-
- ph = GDL_DOCK_PLACEHOLDER (user_data);
- obj = ph->_priv->host;
- if (obj != object) {
- g_warning (_("Got a detach signal from an object (%p) who is not "
- "our host %p"), object, ph->_priv->host);
- return;
- }
-
- /* skip sticky objects */
- if (ph->_priv->sticky)
- return;
-
- if (obj)
- /* go up in the hierarchy */
- new_host = gdl_dock_object_get_parent_object (obj);
- else
- /* Detaching from the dead host */
- new_host = NULL;
-
- while (new_host) {
- GdlDockPlacement pos = GDL_DOCK_NONE;
-
- /* get placement hint from the new host */
- if (gdl_dock_object_child_placement (new_host, obj, &pos)) {
- ph->_priv->placement_stack = g_slist_prepend (
- ph->_priv->placement_stack, (gpointer) pos);
- }
- else {
- g_warning (_("Something weird happened while getting the child "
- "placement for %p from parent %p"), obj, new_host);
- }
-
- if (!GDL_DOCK_OBJECT_IN_DETACH (new_host))
- /* we found a "stable" dock object */
- break;
-
- obj = new_host;
- new_host = gdl_dock_object_get_parent_object (obj);
- }
-
- /* disconnect host */
- disconnect_host (ph);
-
- if (!new_host) {
-#ifdef PLACEHOLDER_DEBUG
- g_message ("Detaching from the toplevel. Assignaing to controller");
-#endif
- /* the toplevel was detached: we attach ourselves to the
- controller with an initial placement of floating */
- new_host = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph));
-
- /*
- ph->_priv->placement_stack = g_slist_prepend (
- ph->_priv->placement_stack, (gpointer) GDL_DOCK_FLOATING);
- */
- }
- if (new_host)
- connect_host (ph, new_host);
-
-#ifdef PLACEHOLDER_DEBUG
- print_placement_stack (ph);
-#endif
-}
-
-/**
- * do_excursion:
- * @ph: placeholder object
- *
- * Tries to shrink the placement stack by examining the host's
- * children and see if any of them matches the placement which is at
- * the top of the stack. If this is the case, it tries again with the
- * new host.
- **/
-static void
-do_excursion (GdlDockPlaceholder *ph)
-{
- if (ph->_priv->host &&
- !ph->_priv->sticky &&
- ph->_priv->placement_stack &&
- gdl_dock_object_is_compound (ph->_priv->host)) {
-
- GdlDockPlacement pos, stack_pos =
- (GdlDockPlacement) ph->_priv->placement_stack->data;
- GList *children, *l;
- GdlDockObject *host = ph->_priv->host;
-
- children = gtk_container_get_children (GTK_CONTAINER (host));
- for (l = children; l; l = l->next) {
- pos = stack_pos;
- gdl_dock_object_child_placement (GDL_DOCK_OBJECT (host),
- GDL_DOCK_OBJECT (l->data),
- &pos);
- if (pos == stack_pos) {
- /* remove the stack position */
- ph->_priv->placement_stack =
- g_slist_remove_link (ph->_priv->placement_stack,
- ph->_priv->placement_stack);
-
- /* connect to the new host */
- disconnect_host (ph);
- connect_host (ph, GDL_DOCK_OBJECT (l->data));
-
- /* recurse... */
- if (!GDL_DOCK_OBJECT_IN_REFLOW (l->data))
- do_excursion (ph);
-
- break;
- }
- }
- g_list_free (children);
- }
-}
-
-static void
-dock_cb (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data,
- gpointer user_data)
-{
- GdlDockPlacement pos = GDL_DOCK_NONE;
- GdlDockPlaceholder *ph;
-
- 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);
-
- /* see if the given position is compatible for the stack's top
- element */
- if (!ph->_priv->sticky && ph->_priv->placement_stack) {
- pos = (GdlDockPlacement) ph->_priv->placement_stack->data;
- if (gdl_dock_object_child_placement (object, requestor, &pos)) {
- if (pos == (GdlDockPlacement) ph->_priv->placement_stack->data) {
- /* the position is compatible: excurse down */
- do_excursion (ph);
- }
- }
- }
-#ifdef PLACEHOLDER_DEBUG
- print_placement_stack (ph);
-#endif
-}
-
-static void
-disconnect_host (GdlDockPlaceholder *ph)
-{
- if (!ph->_priv->host)
- return;
-
- if (ph->_priv->host_detach_handler)
- g_signal_handler_disconnect (ph->_priv->host, ph->_priv->host_detach_handler);
- if (ph->_priv->host_dock_handler)
- g_signal_handler_disconnect (ph->_priv->host, ph->_priv->host_dock_handler);
- ph->_priv->host_detach_handler = 0;
- ph->_priv->host_dock_handler = 0;
-
- /* remove weak ref to object */
- g_object_weak_unref (G_OBJECT (ph->_priv->host),
- gdl_dock_placeholder_weak_notify, ph);
- ph->_priv->host = NULL;
-
-#ifdef PLACEHOLDER_DEBUG
- g_message ("Host just disconnected!, ph = %p", ph);
-#endif
-}
-
-static void
-connect_host (GdlDockPlaceholder *ph,
- GdlDockObject *new_host)
-{
- if (ph->_priv->host)
- disconnect_host (ph);
-
- ph->_priv->host = new_host;
- g_object_weak_ref (G_OBJECT (ph->_priv->host),
- gdl_dock_placeholder_weak_notify, ph);
-
- ph->_priv->host_detach_handler =
- g_signal_connect (ph->_priv->host,
- "detach",
- (GCallback) detach_cb,
- (gpointer) ph);
-
- ph->_priv->host_dock_handler =
- g_signal_connect (ph->_priv->host,
- "dock",
- (GCallback) dock_cb,
- (gpointer) ph);
-
-#ifdef PLACEHOLDER_DEBUG
- g_message ("Host just connected!, ph = %p", ph);
-#endif
-}
-
-void
-gdl_dock_placeholder_attach (GdlDockPlaceholder *ph,
- GdlDockObject *object)
-{
- g_return_if_fail (ph != NULL && GDL_IS_DOCK_PLACEHOLDER (ph));
- g_return_if_fail (ph->_priv != NULL);
- g_return_if_fail (object != NULL);
-
- /* object binding */
- if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (ph)))
- gdl_dock_object_bind (GDL_DOCK_OBJECT (ph), object->master);
-
- g_return_if_fail (GDL_DOCK_OBJECT (ph)->master == object->master);
-
- gdl_dock_object_freeze (GDL_DOCK_OBJECT (ph));
-
- /* detach from previous host first */
- if (ph->_priv->host)
- gdl_dock_object_detach (GDL_DOCK_OBJECT (ph), FALSE);
-
- connect_host (ph, object);
-
- GDL_DOCK_OBJECT_SET_FLAGS (ph, GDL_DOCK_ATTACHED);
-
- gdl_dock_object_thaw (GDL_DOCK_OBJECT (ph));
-}
diff --git a/src/libgdl/gdl-dock-placeholder.h b/src/libgdl/gdl-dock-placeholder.h
deleted file mode 100644
index c7e57e204..000000000
--- a/src/libgdl/gdl-dock-placeholder.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-placeholder.h - Placeholders for docking items
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_PLACEHOLDER_H__
-#define __GDL_DOCK_PLACEHOLDER_H__
-
-#include "libgdl/gdl-dock-object.h"
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_PLACEHOLDER (gdl_dock_placeholder_get_type ())
-#define GDL_DOCK_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholder))
-#define GDL_DOCK_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholderClass))
-#define GDL_IS_DOCK_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_PLACEHOLDER))
-#define GDL_IS_DOCK_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_PLACEHOLDER))
-#define GDL_DOCK_PLACEHOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholderClass))
-
-/* data types & structures */
-typedef struct _GdlDockPlaceholder GdlDockPlaceholder;
-typedef struct _GdlDockPlaceholderClass GdlDockPlaceholderClass;
-typedef struct _GdlDockPlaceholderPrivate GdlDockPlaceholderPrivate;
-
-struct _GdlDockPlaceholder {
- GdlDockObject object;
-
- GdlDockPlaceholderPrivate *_priv;
-};
-
-struct _GdlDockPlaceholderClass {
- GdlDockObjectClass parent_class;
-};
-
-/* public interface */
-
-GType gdl_dock_placeholder_get_type (void);
-
-GtkWidget *gdl_dock_placeholder_new (const gchar *name,
- GdlDockObject *object,
- GdlDockPlacement position,
- gboolean sticky);
-
-void gdl_dock_placeholder_attach (GdlDockPlaceholder *ph,
- GdlDockObject *object);
-
-
-G_END_DECLS
-
-#endif /* __GDL_DOCK_PLACEHOLDER_H__ */
diff --git a/src/libgdl/gdl-dock-tablabel.c b/src/libgdl/gdl-dock-tablabel.c
deleted file mode 100644
index 441db3438..000000000
--- a/src/libgdl/gdl-dock-tablabel.c
+++ /dev/null
@@ -1,632 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-tablabel.c
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <gtk/gtk.h>
-
-#include "gdl-dock-tablabel.h"
-#include "gdl-dock-item.h"
-#include "libgdlmarshal.h"
-
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_tablabel_class_init (GdlDockTablabelClass *klass);
-
-static void gdl_dock_tablabel_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_tablabel_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_dock_tablabel_item_notify (GObject *master,
- GParamSpec *pspec,
- gpointer data);
-
-static void gdl_dock_tablabel_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gdl_dock_tablabel_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-
-static void gdl_dock_tablabel_paint (GtkWidget *widget,
- GdkEventExpose *event);
-static gint gdl_dock_tablabel_expose (GtkWidget *widget,
- GdkEventExpose *event);
-
-static gboolean gdl_dock_tablabel_button_event (GtkWidget *widget,
- GdkEventButton *event);
-static gboolean gdl_dock_tablabel_motion_event (GtkWidget *widget,
- GdkEventMotion *event);
-
-static void gdl_dock_tablabel_realize (GtkWidget *widget);
-static void gdl_dock_tablabel_unrealize (GtkWidget *widget);
-static void gdl_dock_tablabel_map (GtkWidget *widget);
-static void gdl_dock_tablabel_unmap (GtkWidget *widget);
-
-/* ----- Private data types and variables ----- */
-
-#define DEFAULT_DRAG_HANDLE_SIZE 10
-#define HANDLE_RATIO 1.0
-
-enum {
- BUTTON_PRESSED_HANDLE,
- LAST_SIGNAL
-};
-
-enum {
- PROP_0,
- PROP_ITEM
-};
-
-
-static guint dock_tablabel_signals [LAST_SIGNAL] = { 0 };
-
-
-/* ----- Private interface ----- */
-
-G_DEFINE_TYPE (GdlDockTablabel, gdl_dock_tablabel, GTK_TYPE_BIN);
-
-static void
-gdl_dock_tablabel_class_init (GdlDockTablabelClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
-
- g_object_class->set_property = gdl_dock_tablabel_set_property;
- g_object_class->get_property = gdl_dock_tablabel_get_property;
-
- widget_class->size_request = gdl_dock_tablabel_size_request;
- widget_class->size_allocate = gdl_dock_tablabel_size_allocate;
- widget_class->expose_event = gdl_dock_tablabel_expose;
- widget_class->button_press_event = gdl_dock_tablabel_button_event;
- widget_class->button_release_event = gdl_dock_tablabel_button_event;
- widget_class->motion_notify_event = gdl_dock_tablabel_motion_event;
- widget_class->realize = gdl_dock_tablabel_realize;
- widget_class->unrealize = gdl_dock_tablabel_unrealize;
- widget_class->map = gdl_dock_tablabel_map;
- widget_class->unmap = gdl_dock_tablabel_unmap;
-
- g_object_class_install_property (
- g_object_class, PROP_ITEM,
- g_param_spec_object ("item", _("Controlling dock item"),
- _("Dockitem which 'owns' this tablabel"),
- GDL_TYPE_DOCK_ITEM,
- G_PARAM_READWRITE));
-
- dock_tablabel_signals [BUTTON_PRESSED_HANDLE] =
- g_signal_new ("button_pressed_handle",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GdlDockTablabelClass,
- button_pressed_handle),
- NULL, NULL,
- gdl_marshal_VOID__BOXED,
- G_TYPE_NONE,
- 1,
- GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
-
- klass->button_pressed_handle = NULL;
-}
-
-static void
-gdl_dock_tablabel_init (GdlDockTablabel *tablabel)
-{
- GtkWidget *widget;
- GtkWidget *label_widget;
-
- widget = GTK_WIDGET (tablabel);
-
- tablabel->drag_handle_size = DEFAULT_DRAG_HANDLE_SIZE;
- tablabel->item = NULL;
-
- label_widget = gtk_label_new ("Dock item");
- gtk_container_add (GTK_CONTAINER (tablabel), label_widget);
- gtk_widget_show (label_widget);
-
- tablabel->active = FALSE;
- gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_ACTIVE);
-}
-
-static void
-gdl_dock_tablabel_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDockTablabel *tablabel;
- GtkBin *bin;
-
- tablabel = GDL_DOCK_TABLABEL (object);
-
- switch (prop_id) {
- case PROP_ITEM:
- if (tablabel->item) {
- g_object_remove_weak_pointer (G_OBJECT (tablabel->item),
- (gpointer *) &tablabel->item);
- g_signal_handlers_disconnect_by_func (
- tablabel->item, gdl_dock_tablabel_item_notify, tablabel);
- };
-
- tablabel->item = g_value_get_object (value);
- if (tablabel->item) {
- gboolean locked;
- gchar *long_name;
-
- g_object_add_weak_pointer (G_OBJECT (tablabel->item),
- (gpointer *) &tablabel->item);
-
- g_signal_connect (tablabel->item, "notify::locked",
- G_CALLBACK (gdl_dock_tablabel_item_notify),
- tablabel);
- g_signal_connect (tablabel->item, "notify::long_name",
- G_CALLBACK (gdl_dock_tablabel_item_notify),
- tablabel);
- g_signal_connect (tablabel->item, "notify::grip_size",
- G_CALLBACK (gdl_dock_tablabel_item_notify),
- tablabel);
-
- g_object_get (tablabel->item,
- "locked", &locked,
- "long-name", &long_name,
- "grip-size", &tablabel->drag_handle_size,
- NULL);
-
- if (locked)
- tablabel->drag_handle_size = 0;
-
- bin = GTK_BIN (tablabel);
- if (gtk_bin_get_child (bin) && g_object_class_find_property (
- G_OBJECT_GET_CLASS (gtk_bin_get_child (bin)), "label"))
- g_object_set (gtk_bin_get_child (bin), "label", long_name, NULL);
- g_free (long_name);
- };
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_tablabel_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDockTablabel *tablabel;
-
- tablabel = GDL_DOCK_TABLABEL (object);
-
- switch (prop_id) {
- case PROP_ITEM:
- g_value_set_object (value, tablabel->item);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_tablabel_item_notify (GObject *master,
- GParamSpec *pspec,
- gpointer data)
-{
- GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (data);
- gboolean locked;
- gchar *label;
- GtkBin *bin;
-
- g_object_get (master,
- "locked", &locked,
- "grip-size", &tablabel->drag_handle_size,
- "long-name", &label,
- NULL);
-
- if (locked)
- tablabel->drag_handle_size = 0;
-
- bin = GTK_BIN (tablabel);
- if (gtk_bin_get_child (bin) && g_object_class_find_property (
- G_OBJECT_GET_CLASS (gtk_bin_get_child (bin)), "label"))
- g_object_set (gtk_bin_get_child (bin), "label", label, NULL);
- g_free (label);
-
- gtk_widget_queue_resize (GTK_WIDGET (tablabel));
-}
-
-static void
-gdl_dock_tablabel_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GtkBin *bin;
- GtkRequisition child_req;
- GdlDockTablabel *tablabel;
- guint border_width;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_TABLABEL (widget));
- g_return_if_fail (requisition != NULL);
-
- tablabel = GDL_DOCK_TABLABEL (widget);
- bin = GTK_BIN (widget);
-
- requisition->width = tablabel->drag_handle_size;
- requisition->height = 0;
-
- if (gtk_bin_get_child (bin))
- gtk_widget_size_request (gtk_bin_get_child (bin), &child_req);
- else
- child_req.width = child_req.height = 0;
-
- requisition->width += child_req.width;
- requisition->height += child_req.height;
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-
- requisition->width += border_width * 2;
- requisition->height += border_width * 2;
-
- //gtk_widget_size_request (widget, requisition);
-}
-
-static void
-gdl_dock_tablabel_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GtkBin *bin;
- GtkAllocation widget_allocation;
- GdlDockTablabel *tablabel;
- gint border_width;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK_TABLABEL (widget));
- g_return_if_fail (allocation != NULL);
-
- bin = GTK_BIN (widget);
- tablabel = GDL_DOCK_TABLABEL (widget);
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-
- gtk_widget_set_allocation (widget, allocation);
-
- if (gtk_widget_get_realized (widget))
- gdk_window_move_resize (tablabel->event_window,
- allocation->x,
- allocation->y,
- allocation->width,
- allocation->height);
-
- if (gtk_bin_get_child (bin) && gtk_widget_get_visible (gtk_bin_get_child (bin))) {
- GtkAllocation child_allocation;
-
- gtk_widget_get_allocation (widget, &widget_allocation);
- child_allocation.x = widget_allocation.x + border_width;
- child_allocation.y = widget_allocation.y + border_width;
-
- allocation->width = MAX (1, (int) allocation->width -
- (int) tablabel->drag_handle_size);
- child_allocation.x += tablabel->drag_handle_size;
-
- child_allocation.width =
- MAX (1, (int) allocation->width - 2 * border_width);
- child_allocation.height =
- MAX (1, (int) allocation->height - 2 * border_width);
-
- gtk_widget_size_allocate (gtk_bin_get_child (bin), &child_allocation);
- }
-}
-
-static void
-gdl_dock_tablabel_paint (GtkWidget *widget,
- GdkEventExpose *event)
-{
- GdkRectangle dest, rect;
- GtkBin *bin;
- GtkAllocation widget_allocation;
- GdlDockTablabel *tablabel;
- gint border_width;
-
- bin = GTK_BIN (widget);
- tablabel = GDL_DOCK_TABLABEL (widget);
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-
- gtk_widget_get_allocation (widget, &widget_allocation);
- rect.x = widget_allocation.x + border_width;
- rect.y = widget_allocation.y + border_width;
- rect.width = tablabel->drag_handle_size * HANDLE_RATIO;
- rect.height = widget_allocation.height - 2*border_width;
-
- if (gdk_rectangle_intersect (&event->area, &rect, &dest)) {
- gtk_paint_handle (gtk_widget_get_style (widget), gtk_widget_get_window (widget),
- tablabel->active ? GTK_STATE_NORMAL : GTK_STATE_ACTIVE,
- GTK_SHADOW_NONE,
- &dest, widget, "dock-tablabel",
- rect.x, rect.y, rect.width, rect.height,
- GTK_ORIENTATION_VERTICAL);
- };
-}
-
-static gint
-gdl_dock_tablabel_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- if (gtk_widget_get_visible (widget) && gtk_widget_get_mapped (widget)) {
- GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->expose_event (widget,event);
- gdl_dock_tablabel_paint (widget, event);
- };
-
- return FALSE;
-}
-
-static gboolean
-gdl_dock_tablabel_button_event (GtkWidget *widget,
- GdkEventButton *event)
-{
- GdlDockTablabel *tablabel;
- GtkAllocation widget_allocation;
- gboolean event_handled;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- tablabel = GDL_DOCK_TABLABEL (widget);
-
- event_handled = FALSE;
-
- if (event->window != tablabel->event_window)
- return FALSE;
-
- switch (event->type) {
- case GDK_BUTTON_PRESS:
- if (tablabel->active) {
- gboolean in_handle;
- gint rel_x, rel_y;
- guint border_width;
- GtkBin *bin;
-
- bin = GTK_BIN (widget);
- border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
-
- rel_x = event->x - border_width;
- rel_y = event->y - border_width;
-
- /* Check if user clicked on the drag handle. */
- in_handle = (rel_x < tablabel->drag_handle_size * HANDLE_RATIO) &&
- (rel_x > 0);
-
- if (event->button == 1) {
- tablabel->pre_drag = TRUE;
- tablabel->drag_start_event = *event;
- }
- else {
- g_signal_emit (widget,
- dock_tablabel_signals [BUTTON_PRESSED_HANDLE],
- 0,
- event);
- }
-
- event_handled = TRUE;
- }
- break;
-
- case GDK_BUTTON_RELEASE:
- tablabel->pre_drag = FALSE;
- break;
-
- default:
- break;
- }
-
- if (!event_handled) {
- /* propagate the event to the parent's gdkwindow */
- GdkEventButton e;
-
- e = *event;
- e.window = gtk_widget_get_parent_window (widget);
- gtk_widget_get_allocation (widget, &widget_allocation);
- e.x += widget_allocation.x;
- e.y += widget_allocation.y;
-
- gdk_event_put ((GdkEvent *) &e);
- };
-
- return event_handled;
-}
-
-static gboolean
-gdl_dock_tablabel_motion_event (GtkWidget *widget,
- GdkEventMotion *event)
-{
- GdlDockTablabel *tablabel;
- GtkAllocation widget_allocation;
- gboolean event_handled;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- tablabel = GDL_DOCK_TABLABEL (widget);
-
- event_handled = FALSE;
-
- if (event->window != tablabel->event_window)
- return FALSE;
-
- if (tablabel->pre_drag) {
- if (gtk_drag_check_threshold (widget,
- tablabel->drag_start_event.x,
- tablabel->drag_start_event.y,
- event->x,
- event->y)) {
- tablabel->pre_drag = FALSE;
- g_signal_emit (widget,
- dock_tablabel_signals [BUTTON_PRESSED_HANDLE],
- 0,
- &tablabel->drag_start_event);
- event_handled = TRUE;
- }
- }
-
- if (!event_handled) {
- /* propagate the event to the parent's gdkwindow */
- GdkEventMotion e;
-
- e = *event;
- e.window = gtk_widget_get_parent_window (widget);
- gtk_widget_get_allocation (widget, &widget_allocation);
- e.x += widget_allocation.x;
- e.y += widget_allocation.y;
-
- gdk_event_put ((GdkEvent *) &e);
- };
-
- return event_handled;
-}
-
-static void
-gdl_dock_tablabel_realize (GtkWidget *widget)
-{
- GdlDockTablabel *tablabel;
- GdkWindowAttr attributes;
- GtkAllocation widget_allocation;
- int attributes_mask;
-
- tablabel = GDL_DOCK_TABLABEL (widget);
-
- attributes.window_type = GDK_WINDOW_CHILD;
- gtk_widget_get_allocation (widget, &widget_allocation);
- attributes.x = widget_allocation.x;
- attributes.y = widget_allocation.y;
- attributes.width = widget_allocation.width;
- attributes.height = widget_allocation.height;
- attributes.wclass = GDK_INPUT_ONLY;
- attributes.event_mask = gtk_widget_get_events (widget);
- attributes.event_mask |= (GDK_EXPOSURE_MASK |
- GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK |
- GDK_ENTER_NOTIFY_MASK |
- GDK_POINTER_MOTION_MASK |
- GDK_LEAVE_NOTIFY_MASK);
- attributes_mask = GDK_WA_X | GDK_WA_Y;
-
- gtk_widget_set_window (widget, gtk_widget_get_parent_window (widget));
- g_object_ref (gtk_widget_get_window (widget));
-
- tablabel->event_window =
- gdk_window_new (gtk_widget_get_parent_window (widget),
- &attributes, attributes_mask);
- gdk_window_set_user_data (tablabel->event_window, widget);
-
- gtk_widget_set_style (widget, gtk_style_attach (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget)));
-
- gtk_widget_set_realized (widget, TRUE);
-}
-
-static void
-gdl_dock_tablabel_unrealize (GtkWidget *widget)
-{
- GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget);
-
- if (tablabel->event_window) {
- gdk_window_set_user_data (tablabel->event_window, NULL);
- gdk_window_destroy (tablabel->event_window);
- tablabel->event_window = NULL;
- }
-
- GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->unrealize (widget);
-}
-
-static void
-gdl_dock_tablabel_map (GtkWidget *widget)
-{
- GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget);
-
- GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->map (widget);
-
- gdk_window_show (tablabel->event_window);
-}
-
-static void
-gdl_dock_tablabel_unmap (GtkWidget *widget)
-{
- GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget);
-
- gdk_window_hide (tablabel->event_window);
-
- GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->unmap (widget);
-}
-
-/* ----- Public interface ----- */
-
-GtkWidget *
-gdl_dock_tablabel_new (GdlDockItem *item)
-{
- GdlDockTablabel *tablabel;
-
- tablabel = GDL_DOCK_TABLABEL (g_object_new (GDL_TYPE_DOCK_TABLABEL,
- "item", item,
- NULL));
-
- return GTK_WIDGET (tablabel);
-}
-
-void
-gdl_dock_tablabel_activate (GdlDockTablabel *tablabel)
-{
- g_return_if_fail (tablabel != NULL);
-
- tablabel->active = TRUE;
- gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_NORMAL);
-}
-
-void
-gdl_dock_tablabel_deactivate (GdlDockTablabel *tablabel)
-{
- g_return_if_fail (tablabel != NULL);
-
- tablabel->active = FALSE;
- /* yeah, i know it contradictive */
- gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_ACTIVE);
-}
diff --git a/src/libgdl/gdl-dock-tablabel.h b/src/libgdl/gdl-dock-tablabel.h
deleted file mode 100644
index b78c1c5c7..000000000
--- a/src/libgdl/gdl-dock-tablabel.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * gdl-dock-tablabel.h
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_TABLABEL_H__
-#define __GDL_DOCK_TABLABEL_H__
-
-#include <gtk/gtk.h>
-#include "libgdl/gdl-dock-item.h"
-
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK_TABLABEL (gdl_dock_tablabel_get_type ())
-#define GDL_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabel))
-#define GDL_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabelClass))
-#define GDL_IS_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_TABLABEL))
-#define GDL_IS_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_TABLABEL))
-#define GDL_DOCK_TABLABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_TABLABEL, GdlDockTablabelClass))
-
-/* data types & structures */
-typedef struct _GdlDockTablabel GdlDockTablabel;
-typedef struct _GdlDockTablabelClass GdlDockTablabelClass;
-
-struct _GdlDockTablabel {
- GtkBin parent;
-
- guint drag_handle_size;
- GtkWidget *item;
- GdkWindow *event_window;
- gboolean active;
-
- GdkEventButton drag_start_event;
- gboolean pre_drag;
-};
-
-struct _GdlDockTablabelClass {
- GtkBinClass parent_class;
-
- void (*button_pressed_handle) (GdlDockTablabel *tablabel,
- GdkEventButton *event);
-};
-
-/* public interface */
-
-GtkWidget *gdl_dock_tablabel_new (GdlDockItem *item);
-GType gdl_dock_tablabel_get_type (void);
-
-void gdl_dock_tablabel_activate (GdlDockTablabel *tablabel);
-void gdl_dock_tablabel_deactivate (GdlDockTablabel *tablabel);
-
-G_END_DECLS
-
-#endif
diff --git a/src/libgdl/gdl-dock.c b/src/libgdl/gdl-dock.c
deleted file mode 100644
index c87468e5c..000000000
--- a/src/libgdl/gdl-dock.c
+++ /dev/null
@@ -1,1365 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- * 2007 Naba Kumar <naba@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdl-dock.h"
-#include "gdl-dock-master.h"
-#include "gdl-dock-paned.h"
-#include "gdl-dock-notebook.h"
-#include "gdl-dock-placeholder.h"
-
-#include "libgdlmarshal.h"
-
-#ifndef __FUNCTION__
-#define __FUNCTION__ __func__
-#endif
-
-/* ----- Private prototypes ----- */
-
-static void gdl_dock_class_init (GdlDockClass *class);
-
-static GObject *gdl_dock_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param);
-static void gdl_dock_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void gdl_dock_notify_cb (GObject *object,
- GParamSpec *pspec,
- gpointer user_data);
-
-static void gdl_dock_set_title (GdlDock *dock);
-
-static void gdl_dock_destroy (GtkObject *object);
-
-static void gdl_dock_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gdl_dock_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-static void gdl_dock_map (GtkWidget *widget);
-static void gdl_dock_unmap (GtkWidget *widget);
-static void gdl_dock_show (GtkWidget *widget);
-static void gdl_dock_hide (GtkWidget *widget);
-
-static void gdl_dock_add (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_remove (GtkContainer *container,
- GtkWidget *widget);
-static void gdl_dock_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data);
-static GType gdl_dock_child_type (GtkContainer *container);
-
-static void gdl_dock_detach (GdlDockObject *object,
- gboolean recursive);
-static void gdl_dock_reduce (GdlDockObject *object);
-static gboolean gdl_dock_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request);
-static void gdl_dock_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *other_data);
-static gboolean gdl_dock_reorder (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement new_position,
- GValue *other_data);
-
-static gboolean gdl_dock_floating_window_delete_event_cb (GtkWidget *widget);
-
-static gboolean gdl_dock_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement);
-
-static void gdl_dock_present (GdlDockObject *object,
- GdlDockObject *child);
-
-
-/* ----- Class variables and definitions ----- */
-
-struct _GdlDockPrivate
-{
- /* for floating docks */
- gboolean floating;
- GtkWidget *window;
- gboolean auto_title;
-
- gint float_x;
- gint float_y;
- gint width;
- gint height;
-
- /* auxiliary fields */
- GdkGC *xor_gc;
-};
-
-enum {
- LAYOUT_CHANGED,
- LAST_SIGNAL
-};
-
-enum {
- PROP_0,
- PROP_FLOATING,
- PROP_DEFAULT_TITLE,
- PROP_WIDTH,
- PROP_HEIGHT,
- PROP_FLOAT_X,
- PROP_FLOAT_Y
-};
-
-static guint dock_signals [LAST_SIGNAL] = { 0 };
-
-#define SPLIT_RATIO 0.3
-
-
-/* ----- Private functions ----- */
-
-G_DEFINE_TYPE (GdlDock, gdl_dock, GDL_TYPE_DOCK_OBJECT);
-
-static void
-gdl_dock_class_init (GdlDockClass *klass)
-{
- GObjectClass *g_object_class;
- GtkObjectClass *gtk_object_class;
- GtkWidgetClass *widget_class;
- GtkContainerClass *container_class;
- GdlDockObjectClass *object_class;
-
- g_object_class = G_OBJECT_CLASS (klass);
- gtk_object_class = GTK_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
- container_class = GTK_CONTAINER_CLASS (klass);
- object_class = GDL_DOCK_OBJECT_CLASS (klass);
-
- g_object_class->constructor = gdl_dock_constructor;
- g_object_class->set_property = gdl_dock_set_property;
- g_object_class->get_property = gdl_dock_get_property;
-
- /* properties */
-
- g_object_class_install_property (
- g_object_class, PROP_FLOATING,
- g_param_spec_boolean ("floating", _("Floating"),
- _("Whether the dock is floating in its own window"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_DEFAULT_TITLE,
- g_param_spec_string ("default-title", _("Default title"),
- _("Default title for the newly created floating docks"),
- NULL,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- g_object_class, PROP_WIDTH,
- g_param_spec_int ("width", _("Width"),
- _("Width for the dock when it's of floating type"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_HEIGHT,
- g_param_spec_int ("height", _("Height"),
- _("Height for the dock when it's of floating type"),
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_FLOAT_X,
- g_param_spec_int ("floatx", _("Float X"),
- _("X coordinate for a floating dock"),
- G_MININT, G_MAXINT, 0,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- g_object_class_install_property (
- g_object_class, PROP_FLOAT_Y,
- g_param_spec_int ("floaty", _("Float Y"),
- _("Y coordinate for a floating dock"),
- G_MININT, G_MAXINT, 0,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- GDL_DOCK_PARAM_EXPORT));
-
- gtk_object_class->destroy = gdl_dock_destroy;
-
- widget_class->size_request = gdl_dock_size_request;
- widget_class->size_allocate = gdl_dock_size_allocate;
- widget_class->map = gdl_dock_map;
- widget_class->unmap = gdl_dock_unmap;
- widget_class->show = gdl_dock_show;
- widget_class->hide = gdl_dock_hide;
-
- container_class->add = gdl_dock_add;
- container_class->remove = gdl_dock_remove;
- container_class->forall = gdl_dock_forall;
- container_class->child_type = gdl_dock_child_type;
-
- object_class->is_compound = TRUE;
-
- object_class->detach = gdl_dock_detach;
- object_class->reduce = gdl_dock_reduce;
- object_class->dock_request = gdl_dock_dock_request;
- object_class->dock = gdl_dock_dock;
- object_class->reorder = gdl_dock_reorder;
- object_class->child_placement = gdl_dock_child_placement;
- object_class->present = gdl_dock_present;
-
- /* signals */
-
- dock_signals [LAYOUT_CHANGED] =
- g_signal_new ("layout-changed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GdlDockClass, layout_changed),
- NULL, /* accumulator */
- NULL, /* accu_data */
- gdl_marshal_VOID__VOID,
- G_TYPE_NONE, /* return type */
- 0);
-
- klass->layout_changed = NULL;
-}
-
-static void
-gdl_dock_init (GdlDock *dock)
-{
- gtk_widget_set_has_window (GTK_WIDGET (dock), FALSE);
-
- dock->root = NULL;
- dock->_priv = g_new0 (GdlDockPrivate, 1);
- dock->_priv->width = -1;
- dock->_priv->height = -1;
-}
-
-static gboolean
-gdl_dock_floating_configure_event_cb (GtkWidget *widget,
- GdkEventConfigure *event,
- gpointer user_data)
-{
- GdlDock *dock;
-
- g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK (user_data), TRUE);
-
- dock = GDL_DOCK (user_data);
- dock->_priv->float_x = event->x;
- dock->_priv->float_y = event->y;
- dock->_priv->width = event->width;
- dock->_priv->height = event->height;
-
- return FALSE;
-}
-
-static GObject *
-gdl_dock_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_param)
-{
- GObject *g_object;
-
- g_object = G_OBJECT_CLASS (gdl_dock_parent_class)-> constructor (type,
- n_construct_properties,
- construct_param);
- if (g_object) {
- GdlDock *dock = GDL_DOCK (g_object);
- GdlDockMaster *master;
-
- /* create a master for the dock if none was provided in the construction */
- master = GDL_DOCK_OBJECT_GET_MASTER (GDL_DOCK_OBJECT (dock));
- if (!master) {
- GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC);
- master = g_object_new (GDL_TYPE_DOCK_MASTER, NULL);
- /* the controller owns the master ref */
- gdl_dock_object_bind (GDL_DOCK_OBJECT (dock), G_OBJECT (master));
- }
-
- if (dock->_priv->floating) {
- /* create floating window for this dock */
- dock->_priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_object_set_data (G_OBJECT (dock->_priv->window), "dock", dock);
-
- /* set position and default size */
- gtk_window_set_position (GTK_WINDOW (dock->_priv->window),
- GTK_WIN_POS_MOUSE);
- gtk_window_set_default_size (GTK_WINDOW (dock->_priv->window),
- dock->_priv->width,
- dock->_priv->height);
- gtk_window_set_type_hint (GTK_WINDOW (dock->_priv->window),
- GDK_WINDOW_TYPE_HINT_NORMAL);
-
- gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dock->_priv->window),
- TRUE);
-
- /* metacity ignores this */
- gtk_window_move (GTK_WINDOW (dock->_priv->window),
- dock->_priv->float_x,
- dock->_priv->float_y);
-
- /* connect to the configure event so we can track down window geometry */
- g_signal_connect (dock->_priv->window, "configure_event",
- (GCallback) gdl_dock_floating_configure_event_cb,
- dock);
-
- /* set the title and connect to the long_name notify queue
- so we can reset the title when this prop changes */
- gdl_dock_set_title (dock);
- g_signal_connect (dock, "notify::long-name",
- (GCallback) gdl_dock_notify_cb, NULL);
-
- gtk_container_add (GTK_CONTAINER (dock->_priv->window), GTK_WIDGET (dock));
-
- g_signal_connect (dock->_priv->window, "delete_event",
- G_CALLBACK (gdl_dock_floating_window_delete_event_cb),
- NULL);
- }
- GDL_DOCK_OBJECT_SET_FLAGS (dock, GDL_DOCK_ATTACHED);
- }
-
- return g_object;
-}
-
-static void
-gdl_dock_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlDock *dock = GDL_DOCK (object);
-
- switch (prop_id) {
- case PROP_FLOATING:
- dock->_priv->floating = g_value_get_boolean (value);
- break;
- case PROP_DEFAULT_TITLE:
- if (GDL_DOCK_OBJECT (object)->master)
- g_object_set (GDL_DOCK_OBJECT (object)->master,
- "default-title", g_value_get_string (value),
- NULL);
- break;
- case PROP_WIDTH:
- dock->_priv->width = g_value_get_int (value);
- break;
- case PROP_HEIGHT:
- dock->_priv->height = g_value_get_int (value);
- break;
- case PROP_FLOAT_X:
- dock->_priv->float_x = g_value_get_int (value);
- break;
- case PROP_FLOAT_Y:
- dock->_priv->float_y = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-
- switch (prop_id) {
- case PROP_WIDTH:
- case PROP_HEIGHT:
- case PROP_FLOAT_X:
- case PROP_FLOAT_Y:
- if (dock->_priv->floating && dock->_priv->window) {
- gtk_window_resize (GTK_WINDOW (dock->_priv->window),
- dock->_priv->width,
- dock->_priv->height);
- }
- break;
- }
-}
-
-static void
-gdl_dock_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlDock *dock = GDL_DOCK (object);
-
- switch (prop_id) {
- case PROP_FLOATING:
- g_value_set_boolean (value, dock->_priv->floating);
- break;
- case PROP_DEFAULT_TITLE:
- if (GDL_DOCK_OBJECT (object)->master) {
- gchar *default_title;
- g_object_get (GDL_DOCK_OBJECT (object)->master,
- "default-title", &default_title,
- NULL);
-#if GLIB_CHECK_VERSION(2,3,0)
- g_value_take_string (value, default_title);
-#else
- g_value_set_string_take_ownership (value, default_title);
-#endif
- }
- else
- g_value_set_string (value, NULL);
- break;
- case PROP_WIDTH:
- g_value_set_int (value, dock->_priv->width);
- break;
- case PROP_HEIGHT:
- g_value_set_int (value, dock->_priv->height);
- break;
- case PROP_FLOAT_X:
- g_value_set_int (value, dock->_priv->float_x);
- break;
- case PROP_FLOAT_Y:
- g_value_set_int (value, dock->_priv->float_y);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_dock_set_title (GdlDock *dock)
-{
- GdlDockObject *object = GDL_DOCK_OBJECT (dock);
- gchar *title = NULL;
-
- if (!dock->_priv->window)
- return;
-
- if (!dock->_priv->auto_title && object->long_name) {
- title = object->long_name;
- }
- else if (object->master) {
- g_object_get (object->master, "default-title", &title, NULL);
- }
-
- if (!title && dock->root) {
- g_object_get (dock->root, "long-name", &title, NULL);
- }
-
- if (!title) {
- /* set a default title in the long_name */
- dock->_priv->auto_title = TRUE;
- title = g_strdup_printf (
- _("Dock #%d"), GDL_DOCK_MASTER (object->master)->dock_number++);
- }
-
- gtk_window_set_title (GTK_WINDOW (dock->_priv->window), title);
-
- g_free (title);
-}
-
-static void
-gdl_dock_notify_cb (GObject *object,
- GParamSpec *pspec,
- gpointer user_data)
-{
- GdlDock *dock;
- gchar* long_name;
-
- g_return_if_fail (object != NULL || GDL_IS_DOCK (object));
-
- g_object_get (object, "long-name", &long_name, NULL);
-
- if (long_name)
- {
- dock = GDL_DOCK (object);
- dock->_priv->auto_title = FALSE;
- gdl_dock_set_title (dock);
- }
- g_free (long_name);
-}
-
-static void
-gdl_dock_destroy (GtkObject *object)
-{
- GdlDock *dock = GDL_DOCK (object);
-
- if (dock->_priv) {
- GdlDockPrivate *priv = dock->_priv;
- dock->_priv = NULL;
-
- if (priv->window) {
- gtk_widget_destroy (priv->window);
- priv->floating = FALSE;
- priv->window = NULL;
- }
-
- /* destroy the xor gc */
- if (priv->xor_gc) {
- g_object_unref (priv->xor_gc);
- priv->xor_gc = NULL;
- }
-
- g_free (priv);
- }
-
- GTK_OBJECT_CLASS (gdl_dock_parent_class)->destroy (object);
-}
-
-static void
-gdl_dock_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GdlDock *dock;
- GtkContainer *container;
- guint border_width;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- dock = GDL_DOCK (widget);
- container = GTK_CONTAINER (widget);
- border_width = gtk_container_get_border_width (container);
-
- /* make request to 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;
- requisition->height = 0;
- };
-
- requisition->width += 2 * border_width;
- requisition->height += 2 * border_width;
-
- //gtk_widget_size_request (widget, requisition);
-}
-
-static void
-gdl_dock_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GdlDock *dock;
- GtkContainer *container;
- guint border_width;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- dock = GDL_DOCK (widget);
- container = GTK_CONTAINER (widget);
- border_width = gtk_container_get_border_width (container);
-
- gtk_widget_set_allocation (widget, allocation);
-
- /* reduce allocation by border width */
- allocation->x += border_width;
- allocation->y += border_width;
- 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 (GTK_WIDGET (dock->root)))
- gtk_widget_size_allocate (GTK_WIDGET (dock->root), allocation);
-}
-
-static void
-gdl_dock_map (GtkWidget *widget)
-{
- GtkWidget *child;
- GdlDock *dock;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- dock = GDL_DOCK (widget);
-
- GTK_WIDGET_CLASS (gdl_dock_parent_class)->map (widget);
-
- if (dock->root) {
- child = GTK_WIDGET (dock->root);
- if (gtk_widget_get_visible (child) && !gtk_widget_get_mapped (child))
- gtk_widget_map (child);
- }
-}
-
-static void
-gdl_dock_unmap (GtkWidget *widget)
-{
- GtkWidget *child;
- GdlDock *dock;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- dock = GDL_DOCK (widget);
-
- GTK_WIDGET_CLASS (gdl_dock_parent_class)->unmap (widget);
-
- if (dock->root) {
- child = GTK_WIDGET (dock->root);
- if (gtk_widget_get_visible (child) && gtk_widget_get_mapped (child))
- gtk_widget_unmap (child);
- }
-
- if (dock->_priv->window)
- gtk_widget_unmap (dock->_priv->window);
-}
-
-static void
-gdl_dock_foreach_automatic (GdlDockObject *object,
- gpointer user_data)
-{
- void (* function) (GtkWidget *) = user_data;
-
- if (GDL_DOCK_OBJECT_AUTOMATIC (object))
- (* function) (GTK_WIDGET (object));
-}
-
-static void
-gdl_dock_show (GtkWidget *widget)
-{
- GdlDock *dock;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- GTK_WIDGET_CLASS (gdl_dock_parent_class)->show (widget);
-
- dock = GDL_DOCK (widget);
- if (dock->_priv->floating && dock->_priv->window)
- gtk_widget_show (dock->_priv->window);
-
- if (GDL_DOCK_IS_CONTROLLER (dock)) {
- gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock),
- FALSE, (GFunc) gdl_dock_foreach_automatic,
- gtk_widget_show);
- }
-}
-
-static void
-gdl_dock_hide (GtkWidget *widget)
-{
- GdlDock *dock;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GDL_IS_DOCK (widget));
-
- GTK_WIDGET_CLASS (gdl_dock_parent_class)->hide (widget);
-
- dock = GDL_DOCK (widget);
- if (dock->_priv->floating && dock->_priv->window)
- gtk_widget_hide (dock->_priv->window);
-
- if (GDL_DOCK_IS_CONTROLLER (dock)) {
- gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock),
- FALSE, (GFunc) gdl_dock_foreach_automatic,
- gtk_widget_hide);
- }
-}
-
-static void
-gdl_dock_add (GtkContainer *container,
- GtkWidget *widget)
-{
- g_return_if_fail (container != NULL);
- g_return_if_fail (GDL_IS_DOCK (container));
- g_return_if_fail (GDL_IS_DOCK_ITEM (widget));
-
- gdl_dock_add_item (GDL_DOCK (container),
- GDL_DOCK_ITEM (widget),
- GDL_DOCK_TOP); /* default position */
-}
-
-static void
-gdl_dock_remove (GtkContainer *container,
- GtkWidget *widget)
-{
- GdlDock *dock;
- gboolean was_visible;
-
- g_return_if_fail (container != NULL);
- g_return_if_fail (widget != NULL);
-
- dock = GDL_DOCK (container);
- was_visible = gtk_widget_get_visible (widget);
-
- if (GTK_WIDGET (dock->root) == widget) {
- dock->root = NULL;
- GDL_DOCK_OBJECT_UNSET_FLAGS (widget, GDL_DOCK_ATTACHED);
- gtk_widget_unparent (widget);
-
- if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container)))
- gtk_widget_queue_resize (GTK_WIDGET (dock));
- }
-}
-
-static void
-gdl_dock_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data)
-{
- GdlDock *dock;
-
- g_return_if_fail (container != NULL);
- g_return_if_fail (GDL_IS_DOCK (container));
- g_return_if_fail (callback != NULL);
-
- dock = GDL_DOCK (container);
-
- if (dock->root)
- (*callback) (GTK_WIDGET (dock->root), callback_data);
-}
-
-static GType
-gdl_dock_child_type (GtkContainer *container)
-{
- return GDL_TYPE_DOCK_ITEM;
-}
-
-static void
-gdl_dock_detach (GdlDockObject *object,
- gboolean recursive)
-{
- GdlDock *dock = GDL_DOCK (object);
-
- /* detach children */
- if (recursive && dock->root) {
- gdl_dock_object_detach (dock->root, recursive);
- }
- GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED);
-}
-
-static void
-gdl_dock_reduce (GdlDockObject *object)
-{
- GdlDock *dock = GDL_DOCK (object);
- GtkWidget *parent;
-
- if (dock->root)
- return;
-
- if (GDL_DOCK_OBJECT_AUTOMATIC (dock)) {
- gtk_widget_destroy (GTK_WIDGET (dock));
-
- } else if (!GDL_DOCK_OBJECT_ATTACHED (dock)) {
- /* if the user explicitly detached the object */
- if (dock->_priv->floating)
- gtk_widget_hide (GTK_WIDGET (dock));
- else {
- GtkWidget *widget = GTK_WIDGET (object);
- parent = gtk_widget_get_parent (widget);
- if (parent)
- gtk_container_remove (GTK_CONTAINER (parent), widget);
- }
- }
-}
-
-static gboolean
-gdl_dock_dock_request (GdlDockObject *object,
- gint x,
- gint y,
- GdlDockRequest *request)
-{
- GdlDock *dock;
- guint bw;
- gint rel_x, rel_y;
- GtkAllocation alloc;
- gboolean may_dock = FALSE;
- GdlDockRequest my_request;
-
- g_return_val_if_fail (GDL_IS_DOCK (object), FALSE);
-
- /* we get (x,y) in our allocation coordinates system */
-
- dock = GDL_DOCK (object);
-
- /* Get dock size. */
- gtk_widget_get_allocation (GTK_WIDGET (dock), &alloc);
- bw = gtk_container_get_border_width (GTK_CONTAINER (dock));
-
- /* Get coordinates relative to our allocation area. */
- rel_x = x - alloc.x;
- rel_y = y - alloc.y;
-
- if (request)
- my_request = *request;
-
- /* Check if coordinates are in GdlDock widget. */
- if (rel_x > 0 && rel_x < alloc.width &&
- rel_y > 0 && rel_y < alloc.height) {
-
- /* It's inside our area. */
- may_dock = TRUE;
-
- /* Set docking indicator rectangle to the GdlDock size. */
- my_request.rect.x = alloc.x + bw;
- my_request.rect.y = alloc.y + bw;
- my_request.rect.width = alloc.width - 2*bw;
- my_request.rect.height = alloc.height - 2*bw;
-
- /* If GdlDock has no root item yet, set the dock itself as
- possible target. */
- if (!dock->root) {
- my_request.position = GDL_DOCK_TOP;
- my_request.target = object;
- } else {
- my_request.target = dock->root;
-
- /* See if it's in the border_width band. */
- if (rel_x < (gint)bw) {
- my_request.position = GDL_DOCK_LEFT;
- my_request.rect.width *= SPLIT_RATIO;
- } else if (rel_x > alloc.width - (gint)bw) {
- my_request.position = GDL_DOCK_RIGHT;
- my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO);
- my_request.rect.width *= SPLIT_RATIO;
- } else if (rel_y < (gint)bw) {
- my_request.position = GDL_DOCK_TOP;
- my_request.rect.height *= SPLIT_RATIO;
- } else if (rel_y > alloc.height - (gint)bw) {
- my_request.position = GDL_DOCK_BOTTOM;
- my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO);
- my_request.rect.height *= SPLIT_RATIO;
- } else {
- /* Otherwise try our children. */
- /* give them allocation coordinates (we are a
- GTK_NO_WINDOW) widget */
- may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock->root),
- x, y, &my_request);
- }
- }
- }
-
- if (may_dock && request)
- *request = my_request;
-
- return may_dock;
-}
-
-static void
-gdl_dock_dock (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement position,
- GValue *user_data)
-{
- GdlDock *dock;
-
- g_return_if_fail (GDL_IS_DOCK (object));
- /* only dock items allowed at this time */
- g_return_if_fail (GDL_IS_DOCK_ITEM (requestor));
-
- dock = GDL_DOCK (object);
-
- if (position == GDL_DOCK_FLOATING) {
- GdlDockItem *item = GDL_DOCK_ITEM (requestor);
- gint x, y, width, height;
-
- if (user_data && G_VALUE_HOLDS (user_data, GDK_TYPE_RECTANGLE)) {
- GdkRectangle *rect;
-
- rect = g_value_get_boxed (user_data);
- x = rect->x;
- y = rect->y;
- width = rect->width;
- height = rect->height;
- }
- else {
- x = y = 0;
- width = height = -1;
- }
-
- gdl_dock_add_floating_item (dock, item,
- x, y, width, height);
- }
- else if (dock->root) {
- /* This is somewhat a special case since we know which item to
- pass the request on because we only have on child */
- gdl_dock_object_dock (dock->root, requestor, position, NULL);
- gdl_dock_set_title (dock);
-
- }
- else { /* Item about to be added is root item. */
- GtkWidget *widget = GTK_WIDGET (requestor);
-
- dock->root = requestor;
- GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED);
- gtk_widget_set_parent (widget, GTK_WIDGET (dock));
-
- gdl_dock_item_show_grip (GDL_DOCK_ITEM (requestor));
-
- /* Realize the item (create its corresponding GdkWindow) when
- GdlDock has been realized. */
- 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 (GTK_WIDGET (dock)) &&
- gtk_widget_get_visible (widget)) {
- if (gtk_widget_get_mapped (GTK_WIDGET (dock)))
- gtk_widget_map (widget);
-
- /* Make the widget resize. */
- gtk_widget_queue_resize (widget);
- }
- gdl_dock_set_title (dock);
- }
-}
-
-static gboolean
-gdl_dock_floating_window_delete_event_cb (GtkWidget *widget)
-{
- GdlDock *dock;
-
- g_return_val_if_fail (GTK_IS_WINDOW (widget), FALSE);
-
- dock = GDL_DOCK (g_object_get_data (G_OBJECT (widget), "dock"));
- if (dock->root) {
- /* this will call reduce on ourselves, hiding the window if appropiate */
- gdl_dock_item_hide_item (GDL_DOCK_ITEM (dock->root));
- }
-
- return TRUE;
-}
-
-static void
-_gdl_dock_foreach_build_list (GdlDockObject *object,
- gpointer user_data)
-{
- GList **l = (GList **) user_data;
-
- if (GDL_IS_DOCK_ITEM (object))
- *l = g_list_prepend (*l, object);
-}
-
-static gboolean
-gdl_dock_reorder (GdlDockObject *object,
- GdlDockObject *requestor,
- GdlDockPlacement new_position,
- GValue *other_data)
-{
- GdlDock *dock = GDL_DOCK (object);
- gboolean handled = FALSE;
-
- if (dock->_priv->floating &&
- new_position == GDL_DOCK_FLOATING &&
- dock->root == requestor) {
-
- if (other_data && G_VALUE_HOLDS (other_data, GDK_TYPE_RECTANGLE)) {
- GdkRectangle *rect;
-
- rect = g_value_get_boxed (other_data);
- gtk_window_move (GTK_WINDOW (dock->_priv->window),
- rect->x,
- rect->y);
- handled = TRUE;
- }
- }
-
- return handled;
-}
-
-static gboolean
-gdl_dock_child_placement (GdlDockObject *object,
- GdlDockObject *child,
- GdlDockPlacement *placement)
-{
- GdlDock *dock = GDL_DOCK (object);
- gboolean retval = TRUE;
-
- if (dock->root == child) {
- if (placement) {
- if (*placement == GDL_DOCK_NONE || *placement == GDL_DOCK_FLOATING)
- *placement = GDL_DOCK_TOP;
- }
- } else
- retval = FALSE;
-
- return retval;
-}
-
-static void
-gdl_dock_present (GdlDockObject *object,
- GdlDockObject *child)
-{
- GdlDock *dock = GDL_DOCK (object);
-
- if (dock->_priv->floating)
- gtk_window_present (GTK_WINDOW (dock->_priv->window));
-}
-
-
-/* ----- Public interface ----- */
-
-GtkWidget *
-gdl_dock_new (void)
-{
- GObject *dock;
-
- dock = g_object_new (GDL_TYPE_DOCK, NULL);
- GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (dock);
-}
-
-GtkWidget *
-gdl_dock_new_from (GdlDock *original,
- gboolean floating)
-{
- GObject *new_dock;
-
- g_return_val_if_fail (original != NULL, NULL);
-
- new_dock = g_object_new (GDL_TYPE_DOCK,
- "master", GDL_DOCK_OBJECT_GET_MASTER (original),
- "floating", floating,
- NULL);
- GDL_DOCK_OBJECT_UNSET_FLAGS (new_dock, GDL_DOCK_AUTOMATIC);
-
- return GTK_WIDGET (new_dock);
-}
-
-/* Depending on where the dock item (where new item will be docked) locates
- * in the dock, we might need to change the docking placement. If the
- * item is does not touches the center of dock, the new-item-to-dock would
- * require a center dock on this item.
- */
-static GdlDockPlacement
-gdl_dock_refine_placement (GdlDock *dock, GdlDockItem *dock_item,
- GdlDockPlacement placement)
-{
- GtkAllocation allocation;
- GtkRequisition object_size;
-
- gdl_dock_item_preferred_size (dock_item, &object_size);
- gtk_widget_get_allocation (GTK_WIDGET (dock), &allocation);
-
- g_return_val_if_fail (allocation.width > 0, placement);
- g_return_val_if_fail (allocation.height > 0, placement);
- g_return_val_if_fail (object_size.width > 0, placement);
- g_return_val_if_fail (object_size.height > 0, placement);
-
- if (placement == GDL_DOCK_LEFT || placement == GDL_DOCK_RIGHT) {
- /* Check if dock_object touches center in terms of width */
- if (allocation.width/2 > object_size.width) {
- return GDL_DOCK_CENTER;
- }
- } else if (placement == GDL_DOCK_TOP || placement == GDL_DOCK_BOTTOM) {
- /* Check if dock_object touches center in terms of height */
- if (allocation.height/2 > object_size.height) {
- return GDL_DOCK_CENTER;
- }
- }
- return placement;
-}
-
-/* Determines the larger item of the two based on the placement:
- * for left/right placement, height determines it.
- * for top/bottom placement, width determines it.
- * for center placement, area determines it.
- */
-static GdlDockItem*
-gdl_dock_select_larger_item (GdlDockItem *dock_item_1,
- GdlDockItem *dock_item_2,
- GdlDockPlacement placement,
- gint level /* for debugging */)
-{
- GtkRequisition size_1, size_2;
-
- g_return_val_if_fail (dock_item_1 != NULL, dock_item_2);
- g_return_val_if_fail (dock_item_2 != NULL, dock_item_1);
-
- gdl_dock_item_preferred_size (dock_item_1, &size_1);
- gdl_dock_item_preferred_size (dock_item_2, &size_2);
-
- g_return_val_if_fail (size_1.width > 0, dock_item_2);
- g_return_val_if_fail (size_1.height > 0, dock_item_2);
- g_return_val_if_fail (size_2.width > 0, dock_item_1);
- g_return_val_if_fail (size_2.height > 0, dock_item_1);
-
- if (placement == GDL_DOCK_LEFT || placement == GDL_DOCK_RIGHT)
- {
- /* For left/right placement, height is what matters */
- return (size_1.height >= size_2.height?
- dock_item_1 : dock_item_2);
- } else if (placement == GDL_DOCK_TOP || placement == GDL_DOCK_BOTTOM)
- {
- /* For top/bottom placement, width is what matters */
- return (size_1.width >= size_2.width?
- dock_item_1 : dock_item_2);
- } else if (placement == GDL_DOCK_CENTER) {
- /* For center place, area is what matters */
- return ((size_1.width * size_1.height)
- >= (size_2.width * size_2.height)?
- dock_item_1 : dock_item_2);
- } else if (placement == GDL_DOCK_NONE) {
- return dock_item_1;
- } else {
- g_warning ("Should not reach here: %s:%d", __FUNCTION__, __LINE__);
- }
- return dock_item_1;
-}
-
-/* Determines the best dock item to dock a new item with the given placement.
- * It traverses the dock tree and (based on the placement) tries to find
- * the best located item wrt to the placement. The approach is to find the
- * largest item on/around the placement side (for side placements) and to
- * find the largest item for center placement. In most situations, this is
- * what user wants and the heuristic should be therefore sufficient.
- */
-static GdlDockItem*
-gdl_dock_find_best_placement_item (GdlDockItem *dock_item,
- GdlDockPlacement placement,
- gint level /* for debugging */)
-{
- GdlDockItem *ret_item = NULL;
-
- if (GDL_IS_DOCK_PANED (dock_item))
- {
- GtkOrientation orientation;
- GdlDockItem *dock_item_1, *dock_item_2;
- GList* children;
-
- children = gtk_container_get_children (GTK_CONTAINER (dock_item));
-
- g_assert (g_list_length (children) == 2);
-
- g_object_get (dock_item, "orientation", &orientation, NULL);
- if ((orientation == GTK_ORIENTATION_HORIZONTAL &&
- placement == GDL_DOCK_LEFT) ||
- (orientation == GTK_ORIENTATION_VERTICAL &&
- placement == GDL_DOCK_TOP)) {
- /* Return left or top pane widget */
- ret_item =
- gdl_dock_find_best_placement_item (GDL_DOCK_ITEM
- (children->data),
- placement, level + 1);
- } else if ((orientation == GTK_ORIENTATION_HORIZONTAL &&
- placement == GDL_DOCK_RIGHT) ||
- (orientation == GTK_ORIENTATION_VERTICAL &&
- placement == GDL_DOCK_BOTTOM)) {
- /* Return right or top pane widget */
- ret_item =
- gdl_dock_find_best_placement_item (GDL_DOCK_ITEM
- (children->next->data),
- placement, level + 1);
- } else {
- /* Evaluate which of the two sides is bigger */
- dock_item_1 =
- gdl_dock_find_best_placement_item (GDL_DOCK_ITEM
- (children->data),
- placement, level + 1);
- dock_item_2 =
- gdl_dock_find_best_placement_item (GDL_DOCK_ITEM
- (children->next->data),
- placement, level + 1);
- ret_item = gdl_dock_select_larger_item (dock_item_1,
- dock_item_2,
- placement, level);
- }
- g_list_free (children);
- }
- else if (GDL_IS_DOCK_ITEM (dock_item))
- {
- ret_item = dock_item;
- }
- else
- {
- /* should not be here */
- g_warning ("Should not reach here: %s:%d", __FUNCTION__, __LINE__);
- }
- return ret_item;
-}
-
-void
-gdl_dock_add_item (GdlDock *dock,
- GdlDockItem *item,
- GdlDockPlacement placement)
-{
- g_return_if_fail (dock != NULL);
- g_return_if_fail (item != NULL);
-
- if (placement == GDL_DOCK_FLOATING)
- /* Add the item to a new floating dock */
- gdl_dock_add_floating_item (dock, item, 0, 0, -1, -1);
-
- else {
- GdlDockItem *best_dock_item;
- /* Non-floating item. */
- if (dock->root) {
- GdlDockPlacement local_placement;
-
- best_dock_item =
- gdl_dock_find_best_placement_item (GDL_DOCK_ITEM (dock->root),
- placement, 0);
- local_placement = gdl_dock_refine_placement (dock, best_dock_item,
- placement);
- gdl_dock_object_dock (GDL_DOCK_OBJECT (best_dock_item),
- GDL_DOCK_OBJECT (item),
- local_placement, NULL);
- } else {
- gdl_dock_object_dock (GDL_DOCK_OBJECT (dock),
- GDL_DOCK_OBJECT (item),
- placement, NULL);
- }
- }
-}
-
-void
-gdl_dock_add_floating_item (GdlDock *dock,
- GdlDockItem *item,
- gint x,
- gint y,
- gint width,
- gint height)
-{
- GdlDock *new_dock;
-
- g_return_if_fail (dock != NULL);
- g_return_if_fail (item != NULL);
-
- new_dock = GDL_DOCK (g_object_new (GDL_TYPE_DOCK,
- "master", GDL_DOCK_OBJECT_GET_MASTER (dock),
- "floating", TRUE,
- "width", width,
- "height", height,
- "floatx", x,
- "floaty", y,
- NULL));
-
- if (gtk_widget_get_visible (GTK_WIDGET (dock))) {
- gtk_widget_show (GTK_WIDGET (new_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));
- }
-
- gdl_dock_add_item (GDL_DOCK (new_dock), item, GDL_DOCK_TOP);
-}
-
-GdlDockItem *
-gdl_dock_get_item_by_name (GdlDock *dock,
- const gchar *name)
-{
- GdlDockObject *found;
-
- g_return_val_if_fail (dock != NULL && name != NULL, NULL);
-
- /* proxy the call to our master */
- found = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), name);
-
- return (found && GDL_IS_DOCK_ITEM (found)) ? GDL_DOCK_ITEM (found) : NULL;
-}
-
-GdlDockPlaceholder *
-gdl_dock_get_placeholder_by_name (GdlDock *dock,
- const gchar *name)
-{
- GdlDockObject *found;
-
- g_return_val_if_fail (dock != NULL && name != NULL, NULL);
-
- /* proxy the call to our master */
- found = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), name);
-
- return (found && GDL_IS_DOCK_PLACEHOLDER (found)) ?
- GDL_DOCK_PLACEHOLDER (found) : NULL;
-}
-
-GList *
-gdl_dock_get_named_items (GdlDock *dock)
-{
- GList *list = NULL;
-
- g_return_val_if_fail (dock != NULL, NULL);
-
- gdl_dock_master_foreach (GDL_DOCK_OBJECT_GET_MASTER (dock),
- (GFunc) _gdl_dock_foreach_build_list, &list);
-
- return list;
-}
-
-GdlDock *
-gdl_dock_object_get_toplevel (GdlDockObject *object)
-{
- GdlDockObject *parent = object;
-
- g_return_val_if_fail (object != NULL, NULL);
-
- while (parent && !GDL_IS_DOCK (parent))
- parent = gdl_dock_object_get_parent_object (parent);
-
- return parent ? GDL_DOCK (parent) : NULL;
-}
-
-void
-gdl_dock_xor_rect (GdlDock *dock,
- GdkRectangle *rect)
-{
- GtkWidget *widget;
- GdkWindow *window;
- gint8 dash_list [2];
-
- widget = GTK_WIDGET (dock);
-
- if (!dock->_priv->xor_gc) {
- if (gtk_widget_get_realized (widget)) {
- GdkGCValues values;
-
- values.function = GDK_INVERT;
- values.subwindow_mode = GDK_INCLUDE_INFERIORS;
- dock->_priv->xor_gc = gdk_gc_new_with_values
- (gtk_widget_get_window (widget), &values, GDK_GC_FUNCTION | GDK_GC_SUBWINDOW);
- } else
- return;
- };
-
- gdk_gc_set_line_attributes (dock->_priv->xor_gc, 1,
- GDK_LINE_ON_OFF_DASH,
- GDK_CAP_NOT_LAST,
- GDK_JOIN_BEVEL);
-
- window = gtk_widget_get_window (widget);
-
- dash_list [0] = 1;
- dash_list [1] = 1;
-
- gdk_gc_set_dashes (dock->_priv->xor_gc, 1, dash_list, 2);
-
- gdk_draw_rectangle (window, dock->_priv->xor_gc, FALSE,
- rect->x, rect->y,
- rect->width, rect->height);
-
- gdk_gc_set_dashes (dock->_priv->xor_gc, 0, dash_list, 2);
-
- gdk_draw_rectangle (window, dock->_priv->xor_gc, FALSE,
- rect->x + 1, rect->y + 1,
- rect->width - 2, rect->height - 2);
-}
diff --git a/src/libgdl/gdl-dock.h b/src/libgdl/gdl-dock.h
deleted file mode 100644
index 2259d395d..000000000
--- a/src/libgdl/gdl-dock.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 2002 Gustavo Giráldez <gustavo.giraldez@gmx.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_DOCK_H__
-#define __GDL_DOCK_H__
-
-#include <gtk/gtk.h>
-#include "libgdl/gdl-dock-object.h"
-#include "libgdl/gdl-dock-item.h"
-#include "libgdl/gdl-dock-placeholder.h"
-
-G_BEGIN_DECLS
-
-/* standard macros */
-#define GDL_TYPE_DOCK (gdl_dock_get_type ())
-#define GDL_DOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK, GdlDock))
-#define GDL_DOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK, GdlDockClass))
-#define GDL_IS_DOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK))
-#define GDL_IS_DOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK))
-#define GDL_DOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK, GdlDockClass))
-
-/* data types & structures */
-typedef struct _GdlDock GdlDock;
-typedef struct _GdlDockClass GdlDockClass;
-typedef struct _GdlDockPrivate GdlDockPrivate;
-
-struct _GdlDock {
- GdlDockObject object;
-
- GdlDockObject *root;
-
- GdlDockPrivate *_priv;
-};
-
-struct _GdlDockClass {
- GdlDockObjectClass parent_class;
-
- void (* layout_changed) (GdlDock *dock); /* proxy signal for the master */
-};
-
-/* additional macros */
-#define GDL_DOCK_IS_CONTROLLER(dock) \
- (gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (dock)) == \
- GDL_DOCK_OBJECT (dock))
-
-/* public interface */
-
-GtkWidget *gdl_dock_new (void);
-
-GtkWidget *gdl_dock_new_from (GdlDock *original,
- gboolean floating);
-
-GType gdl_dock_get_type (void);
-
-void gdl_dock_add_item (GdlDock *dock,
- GdlDockItem *item,
- GdlDockPlacement place);
-
-void gdl_dock_add_floating_item (GdlDock *dock,
- GdlDockItem *item,
- gint x,
- gint y,
- gint width,
- gint height);
-
-GdlDockItem *gdl_dock_get_item_by_name (GdlDock *dock,
- const gchar *name);
-
-GdlDockPlaceholder *gdl_dock_get_placeholder_by_name (GdlDock *dock,
- const gchar *name);
-
-GList *gdl_dock_get_named_items (GdlDock *dock);
-
-GdlDock *gdl_dock_object_get_toplevel (GdlDockObject *object);
-
-void gdl_dock_xor_rect (GdlDock *dock,
- GdkRectangle *rect);
-
-G_END_DECLS
-
-#endif
diff --git a/src/libgdl/gdl-i18n.c b/src/libgdl/gdl-i18n.c
deleted file mode 100644
index 5f92b66c7..000000000
--- a/src/libgdl/gdl-i18n.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
- * All rights reserved.
- *
- * This file is part of the Gnome Devtools Library.
- *
- * The Gnome Devtools Library is free software; you can redistribute
- * it and/or modify it under the terms of the GNU Library General
- * Public License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * The Gnome Devtools Library is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the Gnome Library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "gdl-i18n.h"
-
-char *
-gdl_gettext (const char *msgid)
-{
- static gboolean initialized = FALSE;
-
- if (!initialized) {
-/* bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); */
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- initialized = TRUE;
- }
-
- return dgettext (GETTEXT_PACKAGE, msgid);
-}
-
-
diff --git a/src/libgdl/gdl-i18n.h b/src/libgdl/gdl-i18n.h
deleted file mode 100644
index 1582e957d..000000000
--- a/src/libgdl/gdl-i18n.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
- * All rights reserved.
- *
- * This file is part of the Gnome Devtools Library.
- *
- * The Gnome Devtools Library is free software; you can redistribute
- * it and/or modify it under the terms of the GNU Library General
- * Public License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * The Gnome Devtools Library is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the Gnome Library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-/*
- @NOTATION@
- */
-
-/*
- * Handles all of the internationalization configuration options.
- * Author: Tom Tromey <tromey@creche.cygnus.com>
- */
-
-#ifndef __GDL_18N_H__
-#define __GDL_18N_H__ 1
-
-#include <glib.h>
-
-
-G_BEGIN_DECLS
-
-#ifdef ENABLE_NLS
-# include <libintl.h>
-# undef _
-# define _(String) gdl_gettext (String)
-# ifdef gettext_noop
-# define N_(String) gettext_noop (String)
-# else
-# define N_(String) (String)
-# endif
-#else
-/* Stubs that do something close enough. */
-# undef textdomain
-# define textdomain(String) (String)
-# undef gettext
-# define gettext(String) (String)
-# undef dgettext
-# define dgettext(Domain,Message) (Message)
-# undef dcgettext
-# define dcgettext(Domain,Message,Type) (Message)
-# undef bindtextdomain
-# define bindtextdomain(Domain,Directory) (Domain)
-# undef bind_textdomain_codeset
-# define bind_textdomain_codeset(Domain,CodeSet) (Domain)
-# undef _
-# define _(String) (String)
-# undef N_
-# define N_(String) (String)
-#endif
-
-char *gdl_gettext (const char *msgid);
-
-G_END_DECLS
-
-#endif /* __GDL_I18N_H__ */
diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c
deleted file mode 100644
index 53a4b1989..000000000
--- a/src/libgdl/gdl-switcher.c
+++ /dev/null
@@ -1,1031 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */
-/* gdl-switcher.c
- *
- * Copyright (C) 2003 Ettore Perazzoli,
- * 2007 Naba Kumar
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- *
- * Copied and adapted from ESidebar.[ch] from evolution
- *
- * Authors: Ettore Perazzoli <ettore@ximian.com>
- * Naba Kumar <naba@gnome.org>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "gdl-i18n.h"
-#include "gdl-switcher.h"
-#include "libgdlmarshal.h"
-#include "libgdltypebuiltins.h"
-
-#include <gtk/gtk.h>
-
-static void gdl_switcher_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdl_switcher_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gdl_switcher_add_button (GdlSwitcher *switcher,
- const gchar *label,
- const gchar *tooltips,
- const gchar *stock_id,
- GdkPixbuf *pixbuf_icon,
- gint switcher_id,
- GtkWidget *page);
-/* static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id); */
-static void gdl_switcher_select_page (GdlSwitcher *switcher, gint switcher_id);
-static void gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id);
-static void gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show);
-static void gdl_switcher_set_style (GdlSwitcher *switcher,
- GdlSwitcherStyle switcher_style);
-static GdlSwitcherStyle gdl_switcher_get_style (GdlSwitcher *switcher);
-
-enum {
- PROP_0,
- PROP_SWITCHER_STYLE
-};
-
-typedef struct {
- GtkWidget *button_widget;
- GtkWidget *label;
- GtkWidget *icon;
- GtkWidget *arrow;
- GtkWidget *hbox;
- GtkWidget *page;
- int id;
-} Button;
-
-struct _GdlSwitcherPrivate {
- GdlSwitcherStyle switcher_style;
- GdlSwitcherStyle toolbar_style;
-
- gboolean show;
- GSList *buttons;
-
- guint style_changed_id;
- gint buttons_height_request;
- gboolean in_toggle;
-};
-
-G_DEFINE_TYPE (GdlSwitcher, gdl_switcher, GTK_TYPE_NOTEBOOK)
-
-#define INTERNAL_MODE(switcher) (switcher->priv->switcher_style == \
- GDL_SWITCHER_STYLE_TOOLBAR ? switcher->priv->toolbar_style : \
- switcher->priv->switcher_style)
-
-#define H_PADDING 2
-#define V_PADDING 2
-
-/* Utility functions. */
-
-static void
-gdl_switcher_long_name_changed (GObject* object,
- GParamSpec* spec,
- gpointer user_data)
-{
- Button* button = user_data;
- gchar* label;
-
- g_object_get (object, "long-name", &label, NULL);
- gtk_label_set_text (GTK_LABEL (button->label), label);
- g_free (label);
-}
-
-static void
-gdl_switcher_stock_id_changed (GObject* object,
- GParamSpec* spec,
- gpointer user_data)
-{
- Button* button = user_data;
- gchar* id;
-
- g_object_get (object, "stock-id", &id, NULL);
- gtk_image_set_from_stock (GTK_IMAGE(button->icon), id, GTK_ICON_SIZE_MENU);
- g_free (id);
-}
-
-
-static Button *
-button_new (GtkWidget *button_widget, GtkWidget *label, GtkWidget *icon,
- GtkWidget *arrow, GtkWidget *hbox, int id, GtkWidget *page)
-{
- Button *button = g_new (Button, 1);
-
- button->button_widget = button_widget;
- button->label = label;
- button->icon = icon;
- button->arrow = arrow;
- button->hbox = hbox;
- button->id = id;
- button->page = page;
-
- g_signal_connect (page, "notify::long-name", G_CALLBACK (gdl_switcher_long_name_changed),
- button);
- g_signal_connect (page, "notify::stock-id", G_CALLBACK (gdl_switcher_stock_id_changed),
- button);
-
- g_object_ref (button_widget);
- g_object_ref (label);
- g_object_ref (icon);
- g_object_ref (arrow);
- g_object_ref (hbox);
-
- return button;
-}
-
-static void
-button_free (Button *button)
-{
- g_signal_handlers_disconnect_by_func (button->page,
- gdl_switcher_long_name_changed,
- button);
- g_signal_handlers_disconnect_by_func (button->page,
- gdl_switcher_stock_id_changed,
- button);
-
- g_object_unref (button->button_widget);
- g_object_unref (button->label);
- g_object_unref (button->icon);
- g_object_unref (button->hbox);
- g_free (button);
-}
-
-static gint
-gdl_switcher_get_page_id (GtkWidget *widget)
-{
- static gint switcher_id_count = 0;
- gint switcher_id;
- switcher_id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
- "__switcher_id"));
- if (switcher_id <= 0) {
- switcher_id = ++switcher_id_count;
- g_object_set_data (G_OBJECT (widget), "__switcher_id",
- GINT_TO_POINTER (switcher_id));
- }
- return switcher_id;
-}
-
-static void
-update_buttons (GdlSwitcher *switcher, int new_selected_id)
-{
- GSList *p;
-
- switcher->priv->in_toggle = TRUE;
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *button = p->data;
-
- if (button->id == new_selected_id) {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
- (button->button_widget), TRUE);
- gtk_widget_set_sensitive (button->arrow, TRUE);
- } else {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
- (button->button_widget), FALSE);
- gtk_widget_set_sensitive (button->arrow, FALSE);
- }
- }
-
- switcher->priv->in_toggle = FALSE;
-}
-
-/* Callbacks. */
-
-static void
-button_toggled_callback (GtkToggleButton *toggle_button,
- GdlSwitcher *switcher)
-{
- int id = 0;
- gboolean is_active = FALSE;
- GSList *p;
-
- if (switcher->priv->in_toggle)
- return;
-
- switcher->priv->in_toggle = TRUE;
-
- if (gtk_toggle_button_get_active (toggle_button))
- is_active = TRUE;
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *button = p->data;
-
- if (button->button_widget != GTK_WIDGET (toggle_button)) {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
- (button->button_widget), FALSE);
- gtk_widget_set_sensitive (button->arrow, FALSE);
- } else {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
- (button->button_widget), TRUE);
- gtk_widget_set_sensitive (button->arrow, TRUE);
- id = button->id;
- }
- }
-
- switcher->priv->in_toggle = FALSE;
-
- if (is_active)
- {
- gdl_switcher_select_page (switcher, id);
- }
-}
-
-/* Returns -1 if layout didn't happen because a resize request was queued */
-static int
-layout_buttons (GdlSwitcher *switcher)
-{
- GtkRequisition client_requisition = {0,0};
- GtkAllocation allocation;
- GdlSwitcherStyle switcher_style;
- gboolean icons_only;
- int num_btns = g_slist_length (switcher->priv->buttons);
- unsigned int btns_per_row;
- GSList **rows, *p;
- Button *button;
- int row_number;
- int max_btn_width = 0, max_btn_height = 0;
- int optimal_layout_width = 0;
- int row_last;
- int x, y;
- int i;
- int rows_count;
- int last_buttons_height;
-
- gtk_widget_get_allocation (GTK_WIDGET (switcher), &allocation);
-
- last_buttons_height = switcher->priv->buttons_height_request;
-
- GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_request (GTK_WIDGET (switcher), &client_requisition);
-
- y = allocation.y + allocation.height - V_PADDING - 1;
-
- if (num_btns == 0)
- return y;
-
- switcher_style = INTERNAL_MODE (switcher);
- icons_only = (switcher_style == GDL_SWITCHER_STYLE_ICON);
-
- /* Figure out the max width and height */
- optimal_layout_width = H_PADDING;
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- GtkRequisition requisition;
-
- button = p->data;
- gtk_widget_size_request (GTK_WIDGET (button->button_widget),
- &requisition);
- optimal_layout_width += requisition.width + H_PADDING;
- max_btn_height = MAX (max_btn_height, requisition.height);
- max_btn_width = MAX (max_btn_width, requisition.width);
- }
-
- /* Figure out how many rows and columns we'll use. */
- btns_per_row = allocation.width / (max_btn_width + H_PADDING);
- /* Use at least one column */
- if (btns_per_row == 0) btns_per_row = 1;
-
- /* If all the buttons could fit in the single row, have it so */
- if (allocation.width >= optimal_layout_width)
- {
- btns_per_row = num_btns;
- }
- if (!icons_only) {
- /* If using text buttons, we want to try to have a
- * completely filled-in grid, but if we can't, we want
- * the odd row to have just a single button.
- */
- while (num_btns % btns_per_row > 1)
- btns_per_row--;
- }
-
- rows_count = num_btns / btns_per_row;
- if (num_btns % btns_per_row != 0)
- rows_count++;
-
- /* Assign buttons to rows */
- rows = g_new0 (GSList *, rows_count);
-
- if (!icons_only && num_btns % btns_per_row != 0) {
- button = switcher->priv->buttons->data;
- rows [0] = g_slist_append (rows [0], button->button_widget);
-
- p = switcher->priv->buttons->next;
- row_number = p ? 1 : 0;
- } else {
- p = switcher->priv->buttons;
- row_number = 0;
- }
-
- for (; p != NULL; p = p->next) {
- button = p->data;
-
- if (g_slist_length (rows [row_number]) == btns_per_row)
- row_number ++;
-
- rows [row_number] = g_slist_append (rows [row_number],
- button->button_widget);
- }
-
- row_last = row_number;
-
- /* If there are more than 1 row of buttons, save the current height
- * requirement for subsequent size requests.
- */
- if (row_last > 0)
- {
- switcher->priv->buttons_height_request =
- (row_last + 1) * (max_btn_height + V_PADDING) + 1;
- } else { /* Otherwize clear it */
- if (last_buttons_height >= 0) {
-
- switcher->priv->buttons_height_request = -1;
- }
- }
-
- /* If it turns out that we now require smaller height for the buttons
- * than it was last time, make a resize request to ensure our
- * size requisition is properly communicated to the parent (otherwise
- * parent tend to keep assuming the older size).
- */
- if (last_buttons_height > switcher->priv->buttons_height_request)
- {
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
- y = -1; // set return value
- }
- else
- {
- /* Layout the buttons. */
- for (i = row_last; i >= 0; i --) {
- int len, extra_width;
-
- y -= max_btn_height;
-
- /* Check for possible size over flow (taking into account client
- * requisition
- */
- if (y < (allocation.y + client_requisition.height)) {
- /* We have an overflow: Insufficient allocation */
- if (last_buttons_height < switcher->priv->buttons_height_request) {
- /* Request for a new resize */
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
- y = -1; // set return value
- goto exit;
- }
- }
- x = H_PADDING + allocation.x;
- len = g_slist_length (rows[i]);
- if (switcher_style == GDL_SWITCHER_STYLE_TEXT ||
- switcher_style == GDL_SWITCHER_STYLE_BOTH)
- extra_width = (allocation.width - (len * max_btn_width )
- - (len * H_PADDING)) / len;
- else
- extra_width = 0;
- for (p = rows [i]; p != NULL; p = p->next) {
- GtkAllocation child_allocation;
-
- child_allocation.x = x;
- child_allocation.y = y;
- if (rows_count == 1 && row_number == 0)
- {
- GtkRequisition child_requisition;
- gtk_widget_size_request (GTK_WIDGET (p->data),
- &child_requisition);
- child_allocation.width = child_requisition.width;
- }
- else
- {
- child_allocation.width = max_btn_width + extra_width;
- }
- child_allocation.height = max_btn_height;
-
- gtk_widget_size_allocate (GTK_WIDGET (p->data), &child_allocation);
-
- x += child_allocation.width + H_PADDING;
- }
-
- y -= V_PADDING;
- }
- }
-
- exit:
- for (i = 0; i <= row_last; i ++) {
- g_slist_free (rows [i]);
- }
- g_free (rows);
-
- return y;
-}
-
-static void
-do_layout (GdlSwitcher *switcher)
-{
- GtkAllocation allocation;
- GtkAllocation child_allocation;
- int y;
-
- gtk_widget_get_allocation (GTK_WIDGET (switcher), &allocation);
-
- if (switcher->priv->show) {
- y = layout_buttons (switcher);
- if (y < 0) /* Layout did not happen and a resize was requested */
- return;
- }
- else
- y = allocation.y + allocation.height;
-
- /* Place the parent widget. */
- child_allocation.x = allocation.x;
- child_allocation.y = allocation.y;
- child_allocation.width = allocation.width;
- child_allocation.height = y - allocation.y;
-
- GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_allocate (GTK_WIDGET (switcher), &child_allocation);
-}
-
-/* GtkContainer methods. */
-
-static void
-gdl_switcher_forall (GtkContainer *container, gboolean include_internals,
- GtkCallback callback, void *callback_data)
-{
- GdlSwitcher *switcher =
- GDL_SWITCHER (container);
- GSList *p;
-
- GTK_CONTAINER_CLASS (gdl_switcher_parent_class)->forall (GTK_CONTAINER (switcher),
- include_internals,
- callback, callback_data);
- if (include_internals) {
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- GtkWidget *widget = ((Button *) p->data)->button_widget;
- (* callback) (widget, callback_data);
- }
- }
-}
-
-static void
-gdl_switcher_remove (GtkContainer *container, GtkWidget *widget)
-{
- gint switcher_id;
- GdlSwitcher *switcher =
- GDL_SWITCHER (container);
- GSList *p;
-
- switcher_id = gdl_switcher_get_page_id (widget);
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *b = (Button *) p->data;
-
- if (b->id == switcher_id) {
- gtk_widget_unparent (b->button_widget);
- switcher->priv->buttons =
- g_slist_remove_link (switcher->priv->buttons, p);
- button_free (b);
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
- break;
- }
- }
- GTK_CONTAINER_CLASS (gdl_switcher_parent_class)->remove (GTK_CONTAINER (switcher), widget);
-}
-
-/* GtkWidget methods. */
-
-static void
-gdl_switcher_size_request (GtkWidget *widget, GtkRequisition *requisition)
-{
- GdlSwitcher *switcher = GDL_SWITCHER (widget);
- GSList *p;
- gint button_height = 0;
-
- GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_request (GTK_WIDGET (switcher), requisition);
-
- if (!switcher->priv->show)
- return;
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- gint button_width;
- Button *button = p->data;
- GtkRequisition button_requisition;
-
- gtk_widget_size_request (button->button_widget, &button_requisition);
- button_width = button_requisition.width + 2 * H_PADDING;
- requisition->width = MAX (requisition->width, button_width);
- button_height = MAX (button_height,
- button_requisition.height + 2 * V_PADDING);
- }
-
- if (switcher->priv->buttons_height_request > 0) {
- requisition->height += switcher->priv->buttons_height_request;
- } else {
- requisition->height += button_height + V_PADDING;
- }
-}
-
-static void
-gdl_switcher_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
-{
- gtk_widget_set_allocation (widget, allocation);
- do_layout (GDL_SWITCHER (widget));
-}
-
-static gint
-gdl_switcher_expose (GtkWidget *widget, GdkEventExpose *event)
-{
- GSList *p;
- GdlSwitcher *switcher = GDL_SWITCHER (widget);
- if (switcher->priv->show) {
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- GtkWidget *button = ((Button *) p->data)->button_widget;
- gtk_container_propagate_expose (GTK_CONTAINER (widget),
- button, event);
- }
- }
- return GTK_WIDGET_CLASS (gdl_switcher_parent_class)->expose_event (widget, event);
-}
-
-static void
-gdl_switcher_map (GtkWidget *widget)
-{
- GSList *p;
- GdlSwitcher *switcher = GDL_SWITCHER (widget);
-
- if (switcher->priv->show) {
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- GtkWidget *button = ((Button *) p->data)->button_widget;
- gtk_widget_map (button);
- }
- }
- GTK_WIDGET_CLASS (gdl_switcher_parent_class)->map (widget);
-}
-
-/* GObject methods. */
-
-static void
-gdl_switcher_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdlSwitcher *switcher = GDL_SWITCHER (object);
-
- switch (prop_id) {
- case PROP_SWITCHER_STYLE:
- gdl_switcher_set_style (switcher, g_value_get_enum (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_switcher_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdlSwitcher *switcher = GDL_SWITCHER (object);
-
- switch (prop_id) {
- case PROP_SWITCHER_STYLE:
- g_value_set_enum (value, gdl_switcher_get_style (switcher));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdl_switcher_dispose (GObject *object)
-{
- GdlSwitcherPrivate *priv = GDL_SWITCHER (object)->priv;
-
-#if HAVE_GNOME
- GConfClient *gconf_client = gconf_client_get_default ();
-
- if (priv->style_changed_id) {
- gconf_client_notify_remove (gconf_client, priv->style_changed_id);
- priv->style_changed_id = 0;
- }
- g_object_unref (gconf_client);
-#endif
-
- g_slist_foreach (priv->buttons, (GFunc) button_free, NULL);
- g_slist_free (priv->buttons);
- priv->buttons = NULL;
-
- G_OBJECT_CLASS (gdl_switcher_parent_class)->dispose (object);
-}
-
-static void
-gdl_switcher_finalize (GObject *object)
-{
- GdlSwitcherPrivate *priv = GDL_SWITCHER (object)->priv;
-
- g_free (priv);
-
- G_OBJECT_CLASS (gdl_switcher_parent_class)->finalize (object);
-}
-
-/* Signal handlers */
-
-static void
-gdl_switcher_notify_cb (GObject *g_object, GParamSpec *pspec,
- GdlSwitcher *switcher)
-{
-}
-
-static void
-gdl_switcher_switch_page_cb (GtkNotebook *nb, GtkWidget *page_widget,
- gint page_num, GdlSwitcher *switcher)
-{
- gint switcher_id;
-
- /* Change switcher button */
- switcher_id = gdl_switcher_get_page_id (page_widget);
- gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id);
-}
-
-static void
-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,
- switcher_id, page);
- gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id);
-}
-
-static void
-gdl_switcher_select_page (GdlSwitcher *switcher, gint id)
-{
- GList *children, *node;
- children = gtk_container_get_children (GTK_CONTAINER (switcher));
- node = children;
- while (node)
- {
- gint switcher_id;
- switcher_id = gdl_switcher_get_page_id (GTK_WIDGET (node->data));
- if (switcher_id == id)
- {
- gint page_num;
- page_num = gtk_notebook_page_num (GTK_NOTEBOOK (switcher),
- GTK_WIDGET (node->data));
- g_signal_handlers_block_by_func (switcher,
- gdl_switcher_switch_page_cb,
- switcher);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (switcher), page_num);
- g_signal_handlers_unblock_by_func (switcher,
- gdl_switcher_switch_page_cb,
- switcher);
- break;
- }
- node = g_list_next (node);
- }
- g_list_free (children);
-}
-
-/* Initialization. */
-
-static void
-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);
-
- container_class->forall = gdl_switcher_forall;
- container_class->remove = gdl_switcher_remove;
-
- widget_class->size_request = gdl_switcher_size_request;
- widget_class->size_allocate = gdl_switcher_size_allocate;
- widget_class->expose_event = gdl_switcher_expose;
- widget_class->map = gdl_switcher_map;
-
- object_class->dispose = gdl_switcher_dispose;
- object_class->finalize = gdl_switcher_finalize;
- object_class->set_property = gdl_switcher_set_property;
- object_class->get_property = gdl_switcher_get_property;
-
- g_object_class_install_property (
- object_class, PROP_SWITCHER_STYLE,
- g_param_spec_enum ("switcher-style", _("Switcher Style"),
- _("Switcher buttons style"),
- GDL_TYPE_SWITCHER_STYLE,
- GDL_SWITCHER_STYLE_BOTH,
- G_PARAM_READWRITE));
-
- gtk_rc_parse_string ("style \"gdl-button-style\"\n"
- "{\n"
- "GtkWidget::focus-padding = 1\n"
- "GtkWidget::focus-line-width = 1\n"
- "xthickness = 0\n"
- "ythickness = 0\n"
- "}\n"
- "widget \"*.gdl-button\" style \"gdl-button-style\"");
-}
-
-static void
-gdl_switcher_init (GdlSwitcher *switcher)
-{
- GdlSwitcherPrivate *priv;
-
- gtk_widget_set_has_window (GTK_WIDGET (switcher), FALSE);
-
- priv = g_new0 (GdlSwitcherPrivate, 1);
- switcher->priv = priv;
-
- priv->show = TRUE;
- priv->buttons_height_request = -1;
-
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (switcher), GTK_POS_BOTTOM);
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE);
- gtk_notebook_set_show_border (GTK_NOTEBOOK (switcher), FALSE);
- gdl_switcher_set_style (switcher, GDL_SWITCHER_STYLE_BOTH);
-
- /* notebook signals */
- g_signal_connect (switcher, "switch-page",
- G_CALLBACK (gdl_switcher_switch_page_cb), switcher);
- g_signal_connect (switcher, "page-added",
- G_CALLBACK (gdl_switcher_page_added_cb), switcher);
- g_signal_connect (switcher, "notify::show-tabs",
- G_CALLBACK (gdl_switcher_notify_cb), switcher);
-}
-
-GtkWidget *
-gdl_switcher_new (void)
-{
- GdlSwitcher *switcher = g_object_new (gdl_switcher_get_type (), NULL);
- return GTK_WIDGET (switcher);
-}
-
-static void
-gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label,
- const gchar *tooltips, const gchar *stock_id,
- GdkPixbuf *pixbuf_icon,
- gint switcher_id, GtkWidget* page)
-{
- GtkWidget *button_widget;
- GtkWidget *hbox;
- GtkWidget *icon_widget;
- GtkWidget *label_widget;
- GtkWidget *arrow;
-
- button_widget = gtk_toggle_button_new ();
- gtk_widget_set_name (button_widget, "gdl-button");
- gtk_button_set_relief (GTK_BUTTON(button_widget), GTK_RELIEF_HALF);
- if (switcher->priv->show)
- gtk_widget_show (button_widget);
- g_signal_connect (button_widget, "toggled",
- G_CALLBACK (button_toggled_callback),
- switcher);
- hbox = gtk_hbox_new (FALSE, 3);
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 0);
- gtk_container_add (GTK_CONTAINER (button_widget), hbox);
- gtk_widget_show (hbox);
-
- if (stock_id) {
- icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
- } else if (pixbuf_icon) {
- icon_widget = gtk_image_new_from_pixbuf (pixbuf_icon);
- } else {
- icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
- }
-
- gtk_widget_show (icon_widget);
-
- if (!label) {
- gchar *text = g_strdup_printf ("Item %d", switcher_id);
- label_widget = gtk_label_new (text);
- g_free (text);
- } else {
- label_widget = gtk_label_new (label);
- }
- gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5);
- gtk_widget_show (label_widget);
-
-
- gtk_widget_set_tooltip_text (button_widget,
- tooltips);
-
- switch (INTERNAL_MODE (switcher)) {
- case GDL_SWITCHER_STYLE_TEXT:
- gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0);
- break;
- case GDL_SWITCHER_STYLE_ICON:
- gtk_box_pack_start (GTK_BOX (hbox), icon_widget, TRUE, TRUE, 0);
- break;
- case GDL_SWITCHER_STYLE_BOTH:
- default:
- gtk_box_pack_start (GTK_BOX (hbox), icon_widget, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0);
- break;
- }
- arrow = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_NONE);
- gtk_widget_show (arrow);
- gtk_box_pack_start (GTK_BOX (hbox), arrow, FALSE, FALSE, 0);
-
- switcher->priv->buttons =
- g_slist_append (switcher->priv->buttons,
- button_new (button_widget, label_widget,
- icon_widget,
- arrow, hbox, switcher_id, page));
-
- gtk_widget_set_parent (button_widget, GTK_WIDGET (switcher));
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
-}
-
-#if 0
-static void
-gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id)
-{
- GSList *p;
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *button = p->data;
-
- if (button->id == switcher_id)
- {
- gtk_container_remove (GTK_CONTAINER (switcher),
- button->button_widget);
- break;
- }
- }
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
-}
-#endif
-
-static void
-gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id)
-{
- update_buttons (switcher, switcher_id);
-
- /* Select the notebook page associated with this button */
- gdl_switcher_select_page (switcher, switcher_id);
-}
-
-
-gint
-gdl_switcher_insert_page (GdlSwitcher *switcher, GtkWidget *page,
- GtkWidget *tab_widget, const gchar *label,
- const gchar *tooltips, const gchar *stock_id,
- GdkPixbuf *pixbuf_icon, gint position)
-{
- gint ret_position;
- gint switcher_id;
- g_signal_handlers_block_by_func (switcher,
- gdl_switcher_page_added_cb,
- switcher);
-
- if (!tab_widget) {
- tab_widget = gtk_label_new (label);
- gtk_widget_show (tab_widget);
- }
- switcher_id = gdl_switcher_get_page_id (page);
- gdl_switcher_add_button (switcher, label, tooltips, stock_id, pixbuf_icon, switcher_id, page);
-
- ret_position = gtk_notebook_insert_page (GTK_NOTEBOOK (switcher), page,
- tab_widget, position);
- g_signal_handlers_unblock_by_func (switcher,
- gdl_switcher_page_added_cb,
- switcher);
-
- return ret_position;
-}
-
-static void
-set_switcher_style_toolbar (GdlSwitcher *switcher,
- GdlSwitcherStyle switcher_style)
-{
- GSList *p;
-
- if (switcher_style == GDL_SWITCHER_STYLE_NONE
- || switcher_style == GDL_SWITCHER_STYLE_TABS)
- return;
-
- if (switcher_style == GDL_SWITCHER_STYLE_TOOLBAR)
- switcher_style = GDL_SWITCHER_STYLE_BOTH;
-
- if (switcher_style == INTERNAL_MODE (switcher))
- return;
-
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE);
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *button = p->data;
-
- gtk_container_remove (GTK_CONTAINER (button->hbox), button->arrow);
-
- if (gtk_widget_get_parent (button->icon))
- gtk_container_remove (GTK_CONTAINER (button->hbox), button->icon);
- if (gtk_widget_get_parent (button->label))
- gtk_container_remove (GTK_CONTAINER (button->hbox), button->label);
-
- switch (switcher_style) {
- case GDL_SWITCHER_STYLE_TEXT:
- gtk_box_pack_start (GTK_BOX (button->hbox), button->label,
- TRUE, TRUE, 0);
- gtk_widget_show (button->label);
- break;
-
- case GDL_SWITCHER_STYLE_ICON:
- gtk_box_pack_start (GTK_BOX (button->hbox), button->icon,
- TRUE, TRUE, 0);
- gtk_widget_show (button->icon);
- break;
-
- case GDL_SWITCHER_STYLE_BOTH:
- gtk_box_pack_start (GTK_BOX (button->hbox), button->icon,
- FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (button->hbox), button->label,
- TRUE, TRUE, 0);
- gtk_widget_show (button->icon);
- gtk_widget_show (button->label);
- break;
-
- default:
- break;
- }
-
- gtk_box_pack_start (GTK_BOX (button->hbox), button->arrow,
- FALSE, FALSE, 0);
- }
-
- gdl_switcher_set_show_buttons (switcher, TRUE);
-}
-
-static void
-gdl_switcher_set_style (GdlSwitcher *switcher, GdlSwitcherStyle switcher_style)
-{
- if (switcher->priv->switcher_style == switcher_style)
- return;
-
- if (switcher_style == GDL_SWITCHER_STYLE_NONE) {
- gdl_switcher_set_show_buttons (switcher, FALSE);
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE);
- }
- else if (switcher_style == GDL_SWITCHER_STYLE_TABS) {
- gdl_switcher_set_show_buttons (switcher, FALSE);
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), TRUE);
- }
- else
- set_switcher_style_toolbar (switcher, switcher_style);
-
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
- switcher->priv->switcher_style = switcher_style;
-}
-
-static void
-gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show)
-{
- GSList *p;
-
- if (switcher->priv->show == show)
- return;
-
- for (p = switcher->priv->buttons; p != NULL; p = p->next) {
- Button *button = p->data;
-
- if (show)
- gtk_widget_show (button->button_widget);
- else
- gtk_widget_hide (button->button_widget);
- }
-
- switcher->priv->show = show;
-
- gtk_widget_queue_resize (GTK_WIDGET (switcher));
-}
-
-static GdlSwitcherStyle
-gdl_switcher_get_style (GdlSwitcher *switcher)
-{
- if (!switcher->priv->show)
- return GDL_SWITCHER_STYLE_TABS;
- return switcher->priv->switcher_style;
-}
diff --git a/src/libgdl/gdl-switcher.h b/src/libgdl/gdl-switcher.h
deleted file mode 100644
index 0caf3a0aa..000000000
--- a/src/libgdl/gdl-switcher.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */
-/* gdl-switcher.h
- *
- * Copyright (C) 2003 Ettore Perazzoli
- * 2007 Naba Kumar
- *
-* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- *
- * Authors: Ettore Perazzoli <ettore@ximian.com>
- * Naba Kumar <naba@gnome.org>
- */
-
-#ifndef _GDL_SWITCHER_H_
-#define _GDL_SWITCHER_H_
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GDL_TYPE_SWITCHER (gdl_switcher_get_type ())
-#define GDL_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_SWITCHER, GdlSwitcher))
-#define GDL_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_SWITCHER, GdlSwitcherClass))
-#define GDL_IS_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_SWITCHER))
-#define GDL_IS_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_SWITCHER))
-
-typedef struct _GdlSwitcher GdlSwitcher;
-typedef struct _GdlSwitcherPrivate GdlSwitcherPrivate;
-typedef struct _GdlSwitcherClass GdlSwitcherClass;
-
-struct _GdlSwitcher {
- GtkNotebook parent;
-
- GdlSwitcherPrivate *priv;
-};
-
-struct _GdlSwitcherClass {
- GtkNotebookClass parent_class;
-};
-
-GType gdl_switcher_get_type (void);
-GtkWidget *gdl_switcher_new (void);
-
-gint gdl_switcher_insert_page (GdlSwitcher *switcher,
- GtkWidget *page,
- GtkWidget *tab_widget,
- const gchar *label,
- const gchar *tooltips,
- const gchar *stock_id,
- GdkPixbuf *pixbuf_icon,
- gint position);
-G_END_DECLS
-
-#endif /* _GDL_SWITCHER_H_ */
diff --git a/src/libgdl/gdl-win32.c b/src/libgdl/gdl-win32.c
deleted file mode 100644
index f23036ed6..000000000
--- a/src/libgdl/gdl-win32.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Windows stuff
- *
- * Author:
- * Albin Sunnanbo
- * Based on code by Lauris Kaplinski <lauris@kaplinski.com> (/src/extension/internal/win32.cpp)
- *
- * This code is in public domain
- */
-#ifdef WIN32
-
-#include "gdl-win32.h"
-#include <windows.h>
-
-/* Platform detection */
-gboolean
-is_os_vista()
-{
- static gboolean initialized = FALSE;
- static gboolean is_vista = FALSE;
- static OSVERSIONINFOA osver;
-
- if ( !initialized )
- {
- BOOL result;
-
- initialized = TRUE;
-
- memset (&osver, 0, sizeof(OSVERSIONINFOA));
- osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
- result = GetVersionExA (&osver);
- if (result)
- {
- if (osver.dwMajorVersion == WIN32_MAJORVERSION_VISTA)
- is_vista = TRUE;
- }
- }
-
- return is_vista;
-}
-
-#endif
diff --git a/src/libgdl/gdl-win32.h b/src/libgdl/gdl-win32.h
deleted file mode 100644
index 90c0cbafa..000000000
--- a/src/libgdl/gdl-win32.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Windows stuff
- *
- * Author:
- * Albin Sunnanbo
- *
- * This code is in public domain
- */
-#ifndef __INKSCAPE_GDL_WIN32_H__
-#define __INKSCAPE_GDL_WIN32_H__
-#ifdef WIN32
-
-#include <gdk/gdk.h>
-
-#define WIN32_MAJORVERSION_VISTA 0x0006
-
-/* Platform detection */
-gboolean is_os_vista();
-
-#endif // ifdef WIN32
-#endif /* __INKSCAPE_GDL_WIN32_H__ */
diff --git a/src/libgdl/gdl.h b/src/libgdl/gdl.h
deleted file mode 100644
index 235c5e3eb..000000000
--- a/src/libgdl/gdl.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * This file is part of the GNOME Devtools Libraries.
- *
- * Copyright (C) 1999-2000 Dave Camp <dave@helixcode.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __GDL_H__
-#define __GDL_H__
-
-#include "libgdl/gdl-dock-object.h"
-#include "libgdl/gdl-dock-master.h"
-#include "libgdl/gdl-dock.h"
-#include "libgdl/gdl-dock-item.h"
-#include "libgdl/gdl-dock-item-grip.h"
-#include "libgdl/gdl-dock-bar.h"
-
-#endif
diff --git a/src/libgdl/libgdlmarshal.c b/src/libgdl/libgdlmarshal.c
deleted file mode 100644
index a2a9fe220..000000000
--- a/src/libgdl/libgdlmarshal.c
+++ /dev/null
@@ -1,173 +0,0 @@
-#include "libgdlmarshal.h"
-
-#include <glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v) g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v) g_value_get_int (v)
-#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
-#define g_marshal_value_peek_long(v) g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
-#define g_marshal_value_peek_float(v) g_value_get_float (v)
-#define g_marshal_value_peek_double(v) g_value_get_double (v)
-#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v) g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v) g_value_get_object (v)
-#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- * Do not access GValues directly in your code. Instead, use the
- * g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
-#define g_marshal_value_peek_char(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v) (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v) (v)->data[0].v_float
-#define g_marshal_value_peek_double(v) (v)->data[0].v_double
-#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:VOID (./libgdlmarshal.list:1) */
-
-/* VOID:ENUM (./libgdlmarshal.list:2) */
-
-/* VOID:INT,INT (./libgdlmarshal.list:3) */
-void
-gdl_marshal_VOID__INT_INT (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer data1,
- gint arg_1,
- gint arg_2,
- gpointer data2);
- register GMarshalFunc_VOID__INT_INT callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 3);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_int (param_values + 2),
- data2);
-}
-
-/* VOID:UINT,UINT (./libgdlmarshal.list:4) */
-void
-gdl_marshal_VOID__UINT_UINT (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1,
- guint arg_1,
- guint arg_2,
- gpointer data2);
- register GMarshalFunc_VOID__UINT_UINT callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 3);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_uint (param_values + 1),
- g_marshal_value_peek_uint (param_values + 2),
- data2);
-}
-
-/* VOID:BOOLEAN (./libgdlmarshal.list:5) */
-
-/* VOID:OBJECT,ENUM,BOXED (./libgdlmarshal.list:6) */
-void
-gdl_marshal_VOID__OBJECT_ENUM_BOXED (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__OBJECT_ENUM_BOXED) (gpointer data1,
- gpointer arg_1,
- gint arg_2,
- gpointer arg_3,
- gpointer data2);
- register GMarshalFunc_VOID__OBJECT_ENUM_BOXED callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 4);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__OBJECT_ENUM_BOXED) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_object (param_values + 1),
- g_marshal_value_peek_enum (param_values + 2),
- g_marshal_value_peek_boxed (param_values + 3),
- data2);
-}
-
-/* VOID:BOXED (./libgdlmarshal.list:7) */
-
diff --git a/src/libgdl/libgdlmarshal.h b/src/libgdl/libgdlmarshal.h
deleted file mode 100644
index 2d6bc800f..000000000
--- a/src/libgdl/libgdlmarshal.h
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef __gdl_marshal_MARSHAL_H__
-#define __gdl_marshal_MARSHAL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:VOID (./libgdlmarshal.list:1) */
-#define gdl_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID
-
-/* VOID:ENUM (./libgdlmarshal.list:2) */
-#define gdl_marshal_VOID__ENUM g_cclosure_marshal_VOID__ENUM
-
-/* VOID:INT,INT (./libgdlmarshal.list:3) */
-extern void gdl_marshal_VOID__INT_INT (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* VOID:UINT,UINT (./libgdlmarshal.list:4) */
-extern void gdl_marshal_VOID__UINT_UINT (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* VOID:BOOLEAN (./libgdlmarshal.list:5) */
-#define gdl_marshal_VOID__BOOLEAN g_cclosure_marshal_VOID__BOOLEAN
-
-/* VOID:OBJECT,ENUM,BOXED (./libgdlmarshal.list:6) */
-extern void gdl_marshal_VOID__OBJECT_ENUM_BOXED (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* VOID:BOXED (./libgdlmarshal.list:7) */
-#define gdl_marshal_VOID__BOXED g_cclosure_marshal_VOID__BOXED
-
-G_END_DECLS
-
-#endif /* __gdl_marshal_MARSHAL_H__ */
-
diff --git a/src/libgdl/libgdlmarshal.list b/src/libgdl/libgdlmarshal.list
deleted file mode 100644
index 750989abc..000000000
--- a/src/libgdl/libgdlmarshal.list
+++ /dev/null
@@ -1,7 +0,0 @@
-VOID:VOID
-VOID:ENUM
-VOID:INT,INT
-VOID:UINT,UINT
-VOID:BOOLEAN
-VOID:OBJECT,ENUM,BOXED
-VOID:BOXED
diff --git a/src/libgdl/libgdltypebuiltins.c b/src/libgdl/libgdltypebuiltins.c
deleted file mode 100644
index b347fe6f5..000000000
--- a/src/libgdl/libgdltypebuiltins.c
+++ /dev/null
@@ -1,162 +0,0 @@
-
-
-
-#include <glib-object.h>
-#include "libgdltypebuiltins.h"
-
-
-/* enumerations from "gdl-dock-object.h" */
-static const GFlagsValue _gdl_dock_param_flags_values[] = {
- { GDL_DOCK_PARAM_EXPORT, "GDL_DOCK_PARAM_EXPORT", "export" },
- { GDL_DOCK_PARAM_AFTER, "GDL_DOCK_PARAM_AFTER", "after" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_param_flags_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_flags_register_static ("GdlDockParamFlags", _gdl_dock_param_flags_values);
-
- return type;
-}
-
-static const GFlagsValue _gdl_dock_object_flags_values[] = {
- { GDL_DOCK_AUTOMATIC, "GDL_DOCK_AUTOMATIC", "automatic" },
- { GDL_DOCK_ATTACHED, "GDL_DOCK_ATTACHED", "attached" },
- { GDL_DOCK_IN_REFLOW, "GDL_DOCK_IN_REFLOW", "in-reflow" },
- { GDL_DOCK_IN_DETACH, "GDL_DOCK_IN_DETACH", "in-detach" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_object_flags_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_flags_register_static ("GdlDockObjectFlags", _gdl_dock_object_flags_values);
-
- return type;
-}
-
-static const GEnumValue _gdl_dock_placement_values[] = {
- { GDL_DOCK_NONE, "GDL_DOCK_NONE", "none" },
- { GDL_DOCK_TOP, "GDL_DOCK_TOP", "top" },
- { GDL_DOCK_BOTTOM, "GDL_DOCK_BOTTOM", "bottom" },
- { GDL_DOCK_RIGHT, "GDL_DOCK_RIGHT", "right" },
- { GDL_DOCK_LEFT, "GDL_DOCK_LEFT", "left" },
- { GDL_DOCK_CENTER, "GDL_DOCK_CENTER", "center" },
- { GDL_DOCK_FLOATING, "GDL_DOCK_FLOATING", "floating" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_placement_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_enum_register_static ("GdlDockPlacement", _gdl_dock_placement_values);
-
- return type;
-}
-
-
-/* enumerations from "gdl-dock-master.h" */
-static const GEnumValue _gdl_switcher_style_values[] = {
- { GDL_SWITCHER_STYLE_TEXT, "GDL_SWITCHER_STYLE_TEXT", "text" },
- { GDL_SWITCHER_STYLE_ICON, "GDL_SWITCHER_STYLE_ICON", "icon" },
- { GDL_SWITCHER_STYLE_BOTH, "GDL_SWITCHER_STYLE_BOTH", "both" },
- { GDL_SWITCHER_STYLE_TOOLBAR, "GDL_SWITCHER_STYLE_TOOLBAR", "toolbar" },
- { GDL_SWITCHER_STYLE_TABS, "GDL_SWITCHER_STYLE_TABS", "tabs" },
- { GDL_SWITCHER_STYLE_NONE, "GDL_SWITCHER_STYLE_NONE", "none" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_switcher_style_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_enum_register_static ("GdlSwitcherStyle", _gdl_switcher_style_values);
-
- return type;
-}
-
-
-/* enumerations from "gdl-dock-item.h" */
-static const GFlagsValue _gdl_dock_item_behavior_values[] = {
- { GDL_DOCK_ITEM_BEH_NORMAL, "GDL_DOCK_ITEM_BEH_NORMAL", "normal" },
- { GDL_DOCK_ITEM_BEH_NEVER_FLOATING, "GDL_DOCK_ITEM_BEH_NEVER_FLOATING", "never-floating" },
- { GDL_DOCK_ITEM_BEH_NEVER_VERTICAL, "GDL_DOCK_ITEM_BEH_NEVER_VERTICAL", "never-vertical" },
- { GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL, "GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL", "never-horizontal" },
- { GDL_DOCK_ITEM_BEH_LOCKED, "GDL_DOCK_ITEM_BEH_LOCKED", "locked" },
- { GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP, "GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP", "cant-dock-top" },
- { GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM, "GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM", "cant-dock-bottom" },
- { GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT, "GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT", "cant-dock-left" },
- { GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT, "GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT", "cant-dock-right" },
- { GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER, "GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER", "cant-dock-center" },
- { GDL_DOCK_ITEM_BEH_CANT_CLOSE, "GDL_DOCK_ITEM_BEH_CANT_CLOSE", "cant-close" },
- { GDL_DOCK_ITEM_BEH_CANT_ICONIFY, "GDL_DOCK_ITEM_BEH_CANT_ICONIFY", "cant-iconify" },
- { GDL_DOCK_ITEM_BEH_NO_GRIP, "GDL_DOCK_ITEM_BEH_NO_GRIP", "no-grip" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_item_behavior_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_flags_register_static ("GdlDockItemBehavior", _gdl_dock_item_behavior_values);
-
- return type;
-}
-
-static const GFlagsValue _gdl_dock_item_flags_values[] = {
- { GDL_DOCK_IN_DRAG, "GDL_DOCK_IN_DRAG", "in-drag" },
- { GDL_DOCK_IN_PREDRAG, "GDL_DOCK_IN_PREDRAG", "in-predrag" },
- { GDL_DOCK_ICONIFIED, "GDL_DOCK_ICONIFIED", "iconified" },
- { GDL_DOCK_USER_ACTION, "GDL_DOCK_USER_ACTION", "user-action" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_item_flags_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_flags_register_static ("GdlDockItemFlags", _gdl_dock_item_flags_values);
-
- return type;
-}
-
-
-/* enumerations from "gdl-dock-bar.h" */
-static const GEnumValue _gdl_dock_bar_style_values[] = {
- { GDL_DOCK_BAR_ICONS, "GDL_DOCK_BAR_ICONS", "icons" },
- { GDL_DOCK_BAR_TEXT, "GDL_DOCK_BAR_TEXT", "text" },
- { GDL_DOCK_BAR_BOTH, "GDL_DOCK_BAR_BOTH", "both" },
- { GDL_DOCK_BAR_AUTO, "GDL_DOCK_BAR_AUTO", "auto" },
- { 0, NULL, NULL }
-};
-
-GType
-gdl_dock_bar_style_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- type = g_enum_register_static ("GdlDockBarStyle", _gdl_dock_bar_style_values);
-
- return type;
-}
-
-
-
-
diff --git a/src/libgdl/libgdltypebuiltins.h b/src/libgdl/libgdltypebuiltins.h
deleted file mode 100644
index 19eac4989..000000000
--- a/src/libgdl/libgdltypebuiltins.h
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-#ifndef __LIBGDLTYPEBUILTINS_H__
-#define __LIBGDLTYPEBUILTINS_H__ 1
-
-#include "libgdl/gdl.h"
-
-G_BEGIN_DECLS
-
-
-/* --- gdl-dock-object.h --- */
-#define GDL_TYPE_DOCK_PARAM_FLAGS gdl_dock_param_flags_get_type()
-GType gdl_dock_param_flags_get_type (void);
-#define GDL_TYPE_DOCK_OBJECT_FLAGS gdl_dock_object_flags_get_type()
-GType gdl_dock_object_flags_get_type (void);
-#define GDL_TYPE_DOCK_PLACEMENT gdl_dock_placement_get_type()
-GType gdl_dock_placement_get_type (void);
-
-/* --- gdl-dock-master.h --- */
-#define GDL_TYPE_SWITCHER_STYLE gdl_switcher_style_get_type()
-GType gdl_switcher_style_get_type (void);
-
-/* --- gdl-dock-item.h --- */
-#define GDL_TYPE_DOCK_ITEM_BEHAVIOR gdl_dock_item_behavior_get_type()
-GType gdl_dock_item_behavior_get_type (void);
-#define GDL_TYPE_DOCK_ITEM_FLAGS gdl_dock_item_flags_get_type()
-GType gdl_dock_item_flags_get_type (void);
-
-/* --- gdl-dock-bar.h --- */
-#define GDL_TYPE_DOCK_BAR_STYLE gdl_dock_bar_style_get_type()
-GType gdl_dock_bar_style_get_type (void);
-G_END_DECLS
-
-#endif /* __LIBGDLTYPEBUILTINS_H__ */
-
-
-
diff --git a/src/libgdl/makefile.in b/src/libgdl/makefile.in
deleted file mode 100644
index 9dc8cb2ca..000000000
--- a/src/libgdl/makefile.in
+++ /dev/null
@@ -1,17 +0,0 @@
-# Convenience stub makefile to call the real Makefile.
-
-@SET_MAKE@
-
-OBJEXT = @OBJEXT@
-
-# Explicit so that it's the default rule.
-all:
- cd .. && $(MAKE) libgdl/all
-
-clean %.a %.$(OBJEXT):
- cd .. && $(MAKE) libgdl/$@
-
-.PHONY: all clean
-
-.SUFFIXES:
-.SUFFIXES: .a .$(OBJEXT)
diff --git a/src/libnrtype/Makefile_insert b/src/libnrtype/Makefile_insert
deleted file mode 100644
index ab9465daa..000000000
--- a/src/libnrtype/Makefile_insert
+++ /dev/null
@@ -1,28 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- libnrtype/boundary-type.h \
- libnrtype/font-glyph.h \
- libnrtype/font-instance.h \
- libnrtype/font-style.h \
- libnrtype/nr-type-primitives.cpp \
- libnrtype/nr-type-primitives.h \
- libnrtype/FontFactory.cpp \
- libnrtype/FontFactory.h \
- libnrtype/FontInstance.cpp \
- libnrtype/font-lister.h \
- libnrtype/font-lister.cpp \
- libnrtype/one-box.h \
- libnrtype/one-glyph.h \
- libnrtype/one-para.h \
- libnrtype/text-boundary.h \
- libnrtype/TextWrapper.cpp \
- libnrtype/TextWrapper.h \
- libnrtype/Layout-TNG-Compute.cpp \
- libnrtype/Layout-TNG-Input.cpp \
- libnrtype/Layout-TNG-OutIter.cpp \
- libnrtype/Layout-TNG-Output.cpp \
- libnrtype/Layout-TNG-Scanline-Maker.h \
- libnrtype/Layout-TNG-Scanline-Makers.cpp \
- libnrtype/Layout-TNG.cpp \
- libnrtype/Layout-TNG.h
diff --git a/src/libuemf/Makefile_insert b/src/libuemf/Makefile_insert
deleted file mode 100644
index 427a0e80e..000000000
--- a/src/libuemf/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libuemf/all: libuemf.a
-
-libuemf/clean:
- rm -f libuemf/libuemf.a $(libuemf_libuemf_a_OBJECTS)
-
-libuemf_libuemf_a_SOURCES = \
- libuemf/uemf.c \
- libuemf/uemf.h \
- libuemf/uemf_endian.c \
- libuemf/uemf_endian.h \
- libuemf/uemf_print.c \
- libuemf/uemf_print.h \
- libuemf/uemf_safe.c \
- libuemf/uemf_safe.h \
- libuemf/uemf_utf.c \
- libuemf/uemf_utf.h \
- libuemf/uwmf.c \
- libuemf/uwmf.h \
- libuemf/uwmf_endian.c \
- libuemf/uwmf_endian.h \
- libuemf/uwmf_print.c \
- libuemf/uwmf_print.h \
- libuemf/upmf.c \
- libuemf/upmf.h \
- libuemf/upmf_print.c \
- libuemf/upmf_print.h \
- libuemf/symbol_convert.c \
- libuemf/symbol_convert.h
diff --git a/src/libvpsc/Makefile_insert b/src/libvpsc/Makefile_insert
deleted file mode 100644
index cb05be6c0..000000000
--- a/src/libvpsc/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-libvpsc/all: libvpsc/libvpsc.a
-
-libvpsc/clean:
- rm -f libvpsc/libvpsc.a $(libvpsc_libvpsc_a_OBJECTS)
-
-libvpsc_libvpsc_a_SOURCES = libvpsc/block.cpp\
- libvpsc/blocks.cpp\
- libvpsc/constraint.cpp\
- libvpsc/generate-constraints.cpp\
- libvpsc/pairingheap/PairingHeap.cpp\
- libvpsc/remove_rectangle_overlap.cpp\
- libvpsc/solve_VPSC.cpp\
- libvpsc/variable.cpp\
- libvpsc/block.h\
- libvpsc/blocks.h\
- libvpsc/constraint.h\
- libvpsc/generate-constraints.h\
- libvpsc/pairingheap/PairingHeap.h\
- libvpsc/pairingheap/dsexceptions.h\
- libvpsc/remove_rectangle_overlap.h\
- libvpsc/solve_VPSC.h\
- libvpsc/variable.h
diff --git a/src/livarot/Makefile_insert b/src/livarot/Makefile_insert
deleted file mode 100644
index 69078d073..000000000
--- a/src/livarot/Makefile_insert
+++ /dev/null
@@ -1,41 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-livarot/all: livarot/libvarot.a
-
-livarot/clean:
- rm -f livarot/libvarot.a $(livarot_libvarot_a_OBJECTS)
-
-livarot_libvarot_a_SOURCES = \
- livarot/AVL.cpp \
- livarot/AVL.h \
- livarot/AlphaLigne.cpp \
- livarot/AlphaLigne.h \
- livarot/BitLigne.cpp \
- livarot/BitLigne.h \
- livarot/float-line.cpp \
- livarot/float-line.h \
- livarot/int-line.cpp \
- livarot/int-line.h \
- livarot/LivarotDefs.h \
- livarot/Path.cpp \
- livarot/Path.h \
- livarot/PathConversion.cpp \
- livarot/PathCutting.cpp \
- livarot/PathOutline.cpp \
- livarot/PathSimplify.cpp \
- livarot/PathStroke.cpp \
- livarot/Shape.cpp \
- livarot/Shape.h \
- livarot/ShapeDraw.cpp \
- livarot/ShapeMisc.cpp \
- livarot/ShapeRaster.cpp \
- livarot/ShapeSweep.cpp \
- livarot/sweep-tree-list.cpp \
- livarot/sweep-tree-list.h \
- livarot/sweep-tree.cpp \
- livarot/sweep-tree.h \
- livarot/sweep-event.cpp \
- livarot/sweep-event.h \
- livarot/sweep-event-queue.h \
- livarot/path-description.h \
- livarot/path-description.cpp
diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert
deleted file mode 100644
index b5bee55c8..000000000
--- a/src/live_effects/Makefile_insert
+++ /dev/null
@@ -1,115 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- live_effects/effect.cpp \
- live_effects/effect.h \
- live_effects/effect-enum.h \
- live_effects/lpeobject.cpp \
- live_effects/lpeobject.h \
- live_effects/lpegroupbbox.cpp \
- live_effects/lpegroupbbox.h \
- live_effects/lpeobject-reference.cpp \
- live_effects/lpeobject-reference.h \
- live_effects/lpe-patternalongpath.cpp \
- live_effects/lpe-patternalongpath.h \
- live_effects/lpe-bendpath.cpp \
- live_effects/lpe-bendpath.h \
- live_effects/lpe-dynastroke.cpp \
- live_effects/lpe-dynastroke.h \
- live_effects/lpe-extrude.cpp \
- live_effects/lpe-extrude.h \
- live_effects/lpe-sketch.cpp \
- live_effects/lpe-sketch.h \
- live_effects/lpe-knot.cpp \
- live_effects/lpe-knot.h \
- live_effects/lpe-vonkoch.cpp \
- live_effects/lpe-vonkoch.h \
- live_effects/lpe-rough-hatches.cpp \
- live_effects/lpe-rough-hatches.h \
- live_effects/lpe-curvestitch.cpp \
- live_effects/lpe-curvestitch.h \
- live_effects/lpe-constructgrid.cpp \
- live_effects/lpe-constructgrid.h \
- live_effects/lpe-fillet-chamfer.cpp \
- live_effects/lpe-fillet-chamfer.h \
- live_effects/lpe-gears.cpp \
- live_effects/lpe-gears.h \
- live_effects/lpe-interpolate.cpp \
- live_effects/lpe-interpolate.h \
- live_effects/lpe-interpolate_points.cpp \
- live_effects/lpe-interpolate_points.h \
- live_effects/lpe-test-doEffect-stack.cpp \
- live_effects/lpe-test-doEffect-stack.h \
- live_effects/lpe-bspline.cpp \
- live_effects/lpe-bspline.h \
- live_effects/lpe-lattice.cpp \
- live_effects/lpe-lattice.h \
- live_effects/lpe-lattice2.cpp \
- live_effects/lpe-lattice2.h \
- live_effects/lpe-roughen.cpp \
- live_effects/lpe-roughen.h \
- live_effects/lpe-show_handles.cpp \
- live_effects/lpe-show_handles.h \
- live_effects/lpe-simplify.cpp \
- live_effects/lpe-simplify.h \
- live_effects/lpe-envelope.cpp \
- live_effects/lpe-envelope.h \
- live_effects/lpe-spiro.cpp \
- live_effects/lpe-spiro.h \
- live_effects/lpe-tangent_to_curve.cpp \
- live_effects/lpe-tangent_to_curve.h \
- live_effects/lpe-perp_bisector.cpp \
- live_effects/lpe-perp_bisector.h \
- live_effects/spiro.h \
- live_effects/spiro.cpp \
- live_effects/spiro-converters.h \
- live_effects/spiro-converters.cpp \
- live_effects/lpe-circle_with_radius.cpp \
- live_effects/lpe-circle_with_radius.h \
- live_effects/lpe-perspective_path.cpp \
- live_effects/lpe-perspective_path.h \
- live_effects/lpe-perspective-envelope.cpp \
- live_effects/lpe-perspective-envelope.h \
- live_effects/lpe-mirror_symmetry.cpp \
- live_effects/lpe-mirror_symmetry.h \
- live_effects/lpe-circle_3pts.cpp \
- live_effects/lpe-circle_3pts.h \
- live_effects/lpe-transform_2pts.cpp \
- live_effects/lpe-transform_2pts.h \
- live_effects/lpe-angle_bisector.cpp \
- live_effects/lpe-angle_bisector.h \
- live_effects/lpe-parallel.cpp \
- live_effects/lpe-parallel.h \
- live_effects/lpe-copy_rotate.cpp \
- live_effects/lpe-copy_rotate.h \
- live_effects/lpe-powerstroke.cpp \
- live_effects/lpe-powerstroke.h \
- live_effects/lpe-powerstroke-interpolators.h \
- live_effects/lpe-offset.cpp \
- live_effects/lpe-offset.h \
- live_effects/lpe-clone-original.cpp \
- live_effects/lpe-clone-original.h \
- live_effects/lpe-ruler.cpp \
- live_effects/lpe-ruler.h \
- live_effects/lpe-recursiveskeleton.cpp \
- live_effects/lpe-recursiveskeleton.h \
- live_effects/lpe-text_label.cpp \
- live_effects/lpe-text_label.h \
- live_effects/lpe-path_length.cpp \
- live_effects/lpe-path_length.h \
- live_effects/lpe-line_segment.cpp \
- live_effects/lpe-line_segment.h \
- live_effects/lpe-bounding-box.cpp \
- live_effects/lpe-bounding-box.h \
- live_effects/lpe-attach-path.cpp \
- live_effects/lpe-attach-path.h \
- live_effects/lpe-fill-between-strokes.cpp \
- live_effects/lpe-fill-between-strokes.h \
- live_effects/lpe-fill-between-many.cpp \
- live_effects/lpe-fill-between-many.h \
- live_effects/lpe-ellipse_5pts.cpp \
- live_effects/lpe-ellipse_5pts.h \
- live_effects/lpe-jointype.cpp \
- live_effects/lpe-jointype.h \
- live_effects/lpe-taperstroke.cpp \
- live_effects/lpe-taperstroke.h
diff --git a/src/live_effects/parameter/Makefile_insert b/src/live_effects/parameter/Makefile_insert
deleted file mode 100644
index bd1c5b600..000000000
--- a/src/live_effects/parameter/Makefile_insert
+++ /dev/null
@@ -1,36 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- live_effects/parameter/parameter.cpp \
- live_effects/parameter/parameter.h \
- live_effects/parameter/array.cpp \
- live_effects/parameter/array.h \
- live_effects/parameter/bool.cpp \
- live_effects/parameter/bool.h \
- live_effects/parameter/random.cpp \
- live_effects/parameter/random.h \
- live_effects/parameter/point.cpp \
- live_effects/parameter/point.h \
- live_effects/parameter/enum.h \
- live_effects/parameter/path-reference.cpp \
- live_effects/parameter/path-reference.h \
- live_effects/parameter/path.cpp \
- live_effects/parameter/path.h \
- live_effects/parameter/originalpath.cpp \
- live_effects/parameter/originalpath.h \
- live_effects/parameter/originalpatharray.cpp \
- live_effects/parameter/originalpatharray.h \
- live_effects/parameter/powerstrokepointarray.cpp \
- live_effects/parameter/powerstrokepointarray.h \
- live_effects/parameter/filletchamferpointarray.cpp \
- live_effects/parameter/filletchamferpointarray.h \
- live_effects/parameter/text.cpp \
- live_effects/parameter/text.h \
- live_effects/parameter/transformedpoint.cpp \
- live_effects/parameter/transformedpoint.h \
- live_effects/parameter/togglebutton.cpp \
- live_effects/parameter/togglebutton.h \
- live_effects/parameter/unit.cpp \
- live_effects/parameter/unit.h \
- live_effects/parameter/vector.cpp \
- live_effects/parameter/vector.h
diff --git a/src/live_effects/parameter/togglebutton.cpp b/src/live_effects/parameter/togglebutton.cpp
index c761731b7..023bebc03 100644
--- a/src/live_effects/parameter/togglebutton.cpp
+++ b/src/live_effects/parameter/togglebutton.cpp
@@ -74,12 +74,8 @@ ToggleButtonParam::param_newWidget()
false,
param_effect->getRepr(),
param_effect->getSPDoc()) );
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget * box_button = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ auto box_button = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(box_button), false);
-#else
- GtkWidget * box_button = gtk_hbox_new (false, 0);
-#endif
GtkWidget * label_button = gtk_label_new ("");
if (!param_label.empty()) {
if(value || inactive_label.empty()){
diff --git a/src/main.cpp b/src/main.cpp
index 1cfcc57fc..28bdf8359 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -46,10 +46,8 @@
#include <libxml/tree.h>
-#if GTK_CHECK_VERSION(3,0,0)
#include <gtkmm/cssprovider.h>
#include <gdkmm/screen.h>
-#endif
#include "inkgc/gc-core.h"
@@ -1042,8 +1040,6 @@ sp_main_gui(int argc, char const **argv)
#endif
g_free(usericondir);
-
-#if GTK_CHECK_VERSION(3,0,0)
// Add style sheet (GTK3)
Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default();
@@ -1100,7 +1096,6 @@ sp_main_gui(int argc, char const **argv)
Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
-#endif
gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL);
Inkscape::Debug::log_display_config();
diff --git a/src/sp-line.h b/src/sp-line.h
index 177555c77..6c720d403 100644
--- a/src/sp-line.h
+++ b/src/sp-line.h
@@ -1,5 +1,4 @@
-#ifndef SEEN_SP_LINE_H * SPGradient, SPStop, SPLinearGradient, SPRadialGradient,
-
+#ifndef SEEN_SP_LINE_H
#define SEEN_SP_LINE_H
/*
diff --git a/src/splivarot.cpp b/src/splivarot.cpp
index 144525783..7a5df4c97 100644
--- a/src/splivarot.cpp
+++ b/src/splivarot.cpp
@@ -892,7 +892,7 @@ static
void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Affine marker_transform,
Geom::Scale stroke_scale, Geom::Affine transform,
Inkscape::XML::Node *g_repr, Inkscape::XML::Document *xml_doc, SPDocument * doc,
- SPDesktop *desktop )
+ SPDesktop *desktop , bool legacy)
{
SPMarker* marker = SP_MARKER (marker_object);
SPItem* marker_item = sp_item_first_item_child(marker_object);
@@ -916,7 +916,9 @@ void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Affine
m_repr->setPosition(0);
SPItem *marker_item = (SPItem *) doc->getObjectByRepr(m_repr);
marker_item->doWriteTransform(m_repr, tr);
- sp_item_path_outline(marker_item, desktop);
+ if (!legacy) {
+ sp_item_path_outline(marker_item, desktop, legacy);
+ }
}
}
@@ -1191,7 +1193,7 @@ Geom::PathVector* item_outline(SPItem const *item, bool bbox_only)
}
bool
-sp_item_path_outline(SPItem *item, SPDesktop *desktop)
+sp_item_path_outline(SPItem *item, SPDesktop *desktop, bool legacy)
{
bool did = false;
Inkscape::Selection *selection = desktop->getSelection();
@@ -1202,10 +1204,13 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
SPGroup *group = dynamic_cast<SPGroup *>(item);
if (group) {
+ if (legacy) {
+ return false;
+ }
std::vector<SPItem*> const item_list = sp_item_group_item_list(group);
for ( std::vector<SPItem*>::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) {
SPItem *subitem = *iter;
- sp_item_path_outline(subitem, desktop);
+ sp_item_path_outline(subitem, desktop, legacy);
}
} else {
if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item))
@@ -1427,23 +1432,24 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
g_repr->setPosition(pos > 0 ? pos : 0);
//The fill
-
Inkscape::XML::Node *fill = NULL;
- gchar const *f_val = sp_repr_css_property(ncsf, "fill", NULL);
- if (f_val) {
- fill = xml_doc->createElement("svg:path");
- sp_repr_css_change(fill, ncsf, "style");
-
- sp_repr_css_attr_unref(ncsf);
-
- gchar *str = sp_svg_write_path( pathv );
- fill->setAttribute("d", str);
- g_free(str);
-
- if (mask)
- fill->setAttribute("mask", mask);
- if (clip_path)
- fill->setAttribute("clip-path", clip_path);
+ if (!legacy) {
+ gchar const *f_val = sp_repr_css_property(ncsf, "fill", NULL);
+ if (f_val) {
+ fill = xml_doc->createElement("svg:path");
+ sp_repr_css_change(fill, ncsf, "style");
+
+ sp_repr_css_attr_unref(ncsf);
+
+ gchar *str = sp_svg_write_path( pathv );
+ fill->setAttribute("d", str);
+ g_free(str);
+
+ if (mask)
+ fill->setAttribute("mask", mask);
+ if (clip_path)
+ fill->setAttribute("clip-path", clip_path);
+ }
}
// restore title, description, id, transform
g_repr->setAttribute("id", id);
@@ -1455,22 +1461,25 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
if (desc) {
newitem->setDesc(desc);
}
-
SPShape *shape = SP_SHAPE(item);
Geom::PathVector const & pathv = curve->get_pathvector();
Inkscape::XML::Node *markers = NULL;
if(SP_SHAPE(item)->hasMarkers ()) {
- markers = xml_doc->createElement("svg:g");
- g_repr->appendChild(markers);
- markers->setPosition(pos > 0 ? pos : 0);
+ if (!legacy) {
+ markers = xml_doc->createElement("svg:g");
+ g_repr->appendChild(markers);
+ markers->setPosition(pos > 0 ? pos : 0);
+ } else {
+ markers = g_repr;
+ }
// START marker
for (int i = 0; i < 2; i++) { // SP_MARKER_LOC and SP_MARKER_LOC_START
if ( SPObject *marker_obj = shape->_marker[i] ) {
Geom::Affine const m (sp_shape_marker_get_transform_at_start(pathv.front().front()));
sp_selected_path_outline_add_marker( marker_obj, m,
Geom::Scale(i_style->stroke_width.computed), transform,
- markers, xml_doc, doc, desktop );
+ markers, xml_doc, doc, desktop, legacy);
}
}
// MID marker
@@ -1485,7 +1494,7 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
Geom::Affine const m (sp_shape_marker_get_transform_at_start(path_it->front()));
sp_selected_path_outline_add_marker( midmarker_obj, m,
Geom::Scale(i_style->stroke_width.computed), transform,
- markers, xml_doc, doc, desktop );
+ markers, xml_doc, doc, desktop, legacy);
}
// MID position
if (path_it->size_default() > 1) {
@@ -1500,7 +1509,7 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
Geom::Affine const m (sp_shape_marker_get_transform(*curve_it1, *curve_it2));
sp_selected_path_outline_add_marker( midmarker_obj, m,
Geom::Scale(i_style->stroke_width.computed), transform,
- markers, xml_doc, doc, desktop );
+ markers, xml_doc, doc, desktop, legacy);
++curve_it1;
++curve_it2;
@@ -1512,7 +1521,7 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
Geom::Affine const m = sp_shape_marker_get_transform_at_end(lastcurve);
sp_selected_path_outline_add_marker( midmarker_obj, m,
Geom::Scale(i_style->stroke_width.computed), transform,
- markers, xml_doc, doc, desktop );
+ markers, xml_doc, doc, desktop, legacy);
}
}
}
@@ -1531,18 +1540,20 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
Geom::Affine const m = sp_shape_marker_get_transform_at_end(lastcurve);
sp_selected_path_outline_add_marker( marker_obj, m,
Geom::Scale(i_style->stroke_width.computed), transform,
- markers, xml_doc, doc, desktop );
+ markers, xml_doc, doc, desktop, legacy);
}
}
- if (mask)
- markers->setAttribute("mask", mask);
- if (clip_path)
- markers->setAttribute("clip-path", clip_path);
+ if (!legacy) {
+ if (mask)
+ markers->setAttribute("mask", mask);
+ if (clip_path)
+ markers->setAttribute("clip-path", clip_path);
+ }
}
gchar const *paint_order = sp_repr_css_property(ncss, "paint-order", NULL);
SPIPaintOrder temp;
temp.read( paint_order );
- if (temp.layer[0] != SP_CSS_PAINT_ORDER_NORMAL) {
+ if (temp.layer[0] != SP_CSS_PAINT_ORDER_NORMAL && !legacy) {
if (temp.layer[0] == SP_CSS_PAINT_ORDER_FILL) {
if (temp.layer[1] == SP_CSS_PAINT_ORDER_STROKE) {
@@ -1667,7 +1678,7 @@ sp_item_path_outline(SPItem *item, SPDesktop *desktop)
}
void
-sp_selected_path_outline(SPDesktop *desktop)
+sp_selected_path_outline(SPDesktop *desktop, bool legacy)
{
Inkscape::Selection *selection = desktop->getSelection();
@@ -1682,7 +1693,7 @@ sp_selected_path_outline(SPDesktop *desktop)
std::vector<SPItem*> il(selection->items().begin(), selection->items().end());
for (std::vector<SPItem*>::const_iterator l = il.begin(); l != il.end(); l++){
SPItem *item = *l;
- did = sp_item_path_outline(item, desktop);
+ did = sp_item_path_outline(item, desktop, legacy);
}
prefs->setBool("/options/transform/stroke", scale_stroke);
diff --git a/src/splivarot.h b/src/splivarot.h
index c832cb3ab..6adc05946 100644
--- a/src/splivarot.h
+++ b/src/splivarot.h
@@ -57,8 +57,8 @@ void sp_selected_path_create_updating_offset_object_zero (SPDesktop *desktop);
// outline of a curve
// uses the stroke-width
-void sp_selected_path_outline (SPDesktop *desktop);
-bool sp_item_path_outline(SPItem *item, SPDesktop *desktop);
+void sp_selected_path_outline (SPDesktop *desktop, bool legacy = false);
+bool sp_item_path_outline(SPItem *item, SPDesktop *desktop, bool legacy);
Geom::PathVector* item_outline(SPItem const *item, bool bbox_only = false);
// simplifies a path (removes small segments and the like)
diff --git a/src/svg-view-widget.cpp b/src/svg-view-widget.cpp
index b1fddd7e6..7c72686b4 100644
--- a/src/svg-view-widget.cpp
+++ b/src/svg-view-widget.cpp
@@ -27,7 +27,6 @@ static void sp_svg_view_widget_dispose(GObject *object);
static void sp_svg_view_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation);
static void sp_svg_view_widget_size_request (GtkWidget *widget, GtkRequisition *req);
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget,
gint *minimal_width,
gint *natural_width);
@@ -35,7 +34,6 @@ static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget,
static void sp_svg_view_widget_get_preferred_height(GtkWidget *widget,
gint *minimal_height,
gint *natural_height);
-#endif
static void sp_svg_view_widget_view_resized (SPViewWidget *vw, Inkscape::UI::View::View *view, gdouble width, gdouble height);
@@ -53,12 +51,8 @@ static void sp_svg_view_widget_class_init(SPSVGSPViewWidgetClass *klass)
object_class->dispose = sp_svg_view_widget_dispose;
widget_class->size_allocate = sp_svg_view_widget_size_allocate;
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = sp_svg_view_widget_get_preferred_width;
widget_class->get_preferred_height = sp_svg_view_widget_get_preferred_height;
-#else
- widget_class->size_request = sp_svg_view_widget_size_request;
-#endif
vw_class->view_resized = sp_svg_view_widget_view_resized;
}
@@ -83,16 +77,10 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw)
gtk_widget_show (vw->sw);
/* Canvas */
-#if !GTK_CHECK_VERSION(3,0,0)
- GdkColormap *cmap = gdk_colormap_get_system();
- gtk_widget_push_colormap(cmap);
-#endif
-
vw->canvas = SPCanvas::createAA();
-#if GTK_CHECK_VERSION(3,0,0)
- GtkCssProvider *css_provider = gtk_css_provider_new();
- GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(vw->canvas));
+ auto css_provider = gtk_css_provider_new();
+ auto style_context = gtk_widget_get_style_context(GTK_WIDGET(vw->canvas));
gtk_css_provider_load_from_data(css_provider,
"SPCanvas {\n"
@@ -103,19 +91,8 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw)
gtk_style_context_add_provider(style_context,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
-#else
- gtk_widget_pop_colormap ();
- GtkStyle *style = gtk_style_copy (gtk_widget_get_style (vw->canvas));
- style->bg[GTK_STATE_NORMAL] = style->white;
- gtk_widget_set_style (vw->canvas, style);
-#endif
-
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas);
-#else
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (vw->sw), vw->canvas);
-#endif
+ gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas);
gtk_widget_show (vw->canvas);
/* View */
@@ -146,7 +123,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r
SPSVGSPViewWidget *vw = SP_SVG_VIEW_WIDGET (widget);
Inkscape::UI::View::View *v = SP_VIEW_WIDGET_VIEW (widget);
-#if GTK_CHECK_VERSION(3,0,0)
if (GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->get_preferred_width &&
GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->get_preferred_height) {
gint width_min, height_min, width_nat, height_nat;
@@ -156,11 +132,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r
req->width=width_min;
req->height=height_min;
}
-#else
- if (GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->size_request) {
- GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->size_request(widget, req);
- }
-#endif
if (v->doc()) {
SPSVGView *svgv;
@@ -189,7 +160,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r
}
}
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkRequisition requisition;
@@ -203,7 +173,6 @@ static void sp_svg_view_widget_get_preferred_height(GtkWidget *widget, gint *min
sp_svg_view_widget_size_request(widget, &requisition);
*minimal_height = *natural_height = requisition.height;
}
-#endif
/**
* Callback connected with size_allocate signal.
diff --git a/src/svg-view.cpp b/src/svg-view.cpp
index 53fa8633f..00ea0d381 100644
--- a/src/svg-view.cpp
+++ b/src/svg-view.cpp
@@ -107,11 +107,7 @@ void SPSVGView::mouseover()
GdkCursor *cursor = gdk_cursor_new_for_display(display, GDK_HAND2);
GdkWindow *window = gtk_widget_get_window (GTK_WIDGET(SP_CANVAS_ITEM(_drawing)->canvas));
gdk_window_set_cursor(window, cursor);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor);
-#else
- gdk_cursor_unref(cursor);
-#endif
}
void SPSVGView::mouseout()
diff --git a/src/svg/Makefile_insert b/src/svg/Makefile_insert
deleted file mode 100644
index 4f82bdd76..000000000
--- a/src/svg/Makefile_insert
+++ /dev/null
@@ -1,32 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- svg/css-ostringstream.h \
- svg/css-ostringstream.cpp \
- svg/path-string.h \
- svg/path-string.cpp \
- svg/stringstream.h \
- svg/stringstream.cpp \
- svg/strip-trailing-zeros.h \
- svg/strip-trailing-zeros.cpp \
- svg/svg-affine.cpp \
- svg/svg-color.cpp \
- svg/svg-color.h \
- svg/svg-icc-color.h \
- svg/svg-angle.cpp \
- svg/svg-angle.h \
- svg/svg-length.cpp \
- svg/svg-length.h \
- svg/svg-path.cpp \
- svg/svg.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
- $(srcdir)/svg/css-ostringstream-test.h \
- $(srcdir)/svg/stringstream-test.h \
- $(srcdir)/svg/svg-affine-test.h \
- $(srcdir)/svg/svg-color-test.h \
- $(srcdir)/svg/svg-length-test.h \
- $(srcdir)/svg/svg-path-geom-test.h
diff --git a/src/trace/Makefile_insert b/src/trace/Makefile_insert
deleted file mode 100644
index 27353df15..000000000
--- a/src/trace/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if HAVE_POTRACE
-
-ink_common_sources += \
- trace/pool.h \
- trace/trace.h \
- trace/trace.cpp \
- trace/imagemap-gdk.cpp \
- trace/imagemap-gdk.h \
- trace/imagemap.cpp \
- trace/imagemap.h \
- trace/quantize.h \
- trace/quantize.cpp \
- trace/filterset.h \
- trace/filterset.cpp \
- trace/siox.h \
- trace/siox.cpp \
- trace/potrace/bitmap.h \
- trace/potrace/inkscape-potrace.cpp \
- trace/potrace/inkscape-potrace.h
-
-endif
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 587974b90..edcc41cd2 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -130,8 +130,6 @@ set(ui_SRC
widget/filter-effect-chooser.cpp
widget/font-variants.cpp
widget/frame.cpp
- widget/gimpcolorwheel.c
- widget/gimpspinscale.c
widget/highlight-picker.cpp
widget/imageicon.cpp
widget/imagetoggler.cpp
@@ -314,8 +312,6 @@ set(ui_SRC
widget/filter-effect-chooser.h
widget/font-variants.h
widget/frame.h
- widget/gimpspinscale.h
- widget/gimpcolorwheel.h
widget/highlight-picker.h
widget/insertordericon.h
widget/imageicon.h
diff --git a/src/ui/Makefile_insert b/src/ui/Makefile_insert
deleted file mode 100644
index bbfdb532c..000000000
--- a/src/ui/Makefile_insert
+++ /dev/null
@@ -1,31 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/clipboard.cpp \
- ui/clipboard.h \
- ui/control-manager.cpp \
- ui/control-manager.h \
- ui/control-types.h \
- ui/dialog-events.cpp \
- ui/dialog-events.h \
- ui/draw-anchor.cpp \
- ui/draw-anchor.h \
- ui/icon-names.h \
- ui/interface.cpp \
- ui/interface.h \
- ui/object-edit.cpp \
- ui/object-edit.h \
- ui/previewable.h \
- ui/previewfillable.h \
- ui/previewholder.cpp \
- ui/previewholder.h \
- ui/selected-color.h \
- ui/selected-color.cpp \
- ui/shape-editor.cpp \
- ui/shape-editor.h \
- ui/tool-factory.cpp \
- ui/tool-factory.h \
- ui/tools-switch.cpp \
- ui/tools-switch.h \
- ui/uxmanager.cpp \
- ui/uxmanager.h
diff --git a/src/ui/cache/Makefile_insert b/src/ui/cache/Makefile_insert
deleted file mode 100644
index c648777f8..000000000
--- a/src/ui/cache/Makefile_insert
+++ /dev/null
@@ -1,6 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/cache/svg_preview_cache.h \
- ui/cache/svg_preview_cache.cpp
-
diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
index 265f672ad..66b13ed9d 100644
--- a/src/ui/clipboard.cpp
+++ b/src/ui/clipboard.cpp
@@ -1288,11 +1288,7 @@ Geom::Scale ClipboardManagerImpl::_getScale(SPDesktop *desktop, Geom::Point cons
*/
Glib::ustring ClipboardManagerImpl::_getBestTarget()
{
-#if WITH_GTKMM_3_0
- std::vector<Glib::ustring> targets = _clipboard->wait_for_targets();
-#else
- std::list<Glib::ustring> targets = _clipboard->wait_for_targets();
-#endif
+ auto targets = _clipboard->wait_for_targets();
// clipboard target debugging snippet
/*
@@ -1351,12 +1347,7 @@ void ClipboardManagerImpl::_setClipboardTargets()
{
Inkscape::Extension::DB::OutputList outlist;
Inkscape::Extension::db.get_output_list(outlist);
-
-#if WITH_GTKMM_3_0
std::vector<Gtk::TargetEntry> target_list;
-#else
- std::list<Gtk::TargetEntry> target_list;
-#endif
bool plaintextSet = false;
for (Inkscape::Extension::DB::OutputList::const_iterator out = outlist.begin() ; out != outlist.end() ; ++out) {
diff --git a/src/ui/dialog-events.h b/src/ui/dialog-events.h
index b4a5d7c35..547cfb95d 100644
--- a/src/ui/dialog-events.h
+++ b/src/ui/dialog-events.h
@@ -12,6 +12,7 @@
#ifndef SEEN_DIALOG_EVENTS_H
#define SEEN_DIALOG_EVENTS_H
+#include <gtk/gtk.h>
/*
* event callback can only accept one argument, but we need two,
diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert
deleted file mode 100644
index 71628973e..000000000
--- a/src/ui/dialog/Makefile_insert
+++ /dev/null
@@ -1,133 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/dialog/aboutbox.cpp \
- ui/dialog/aboutbox.h \
- ui/dialog/align-and-distribute.cpp \
- ui/dialog/align-and-distribute.h \
- ui/dialog/arrange-tab.h \
- ui/dialog/behavior.h \
- ui/dialog/calligraphic-profile-rename.h \
- ui/dialog/calligraphic-profile-rename.cpp \
- ui/dialog/clonetiler.cpp \
- ui/dialog/clonetiler.h \
- ui/dialog/color-item.cpp \
- ui/dialog/color-item.h \
- ui/dialog/debug.cpp \
- ui/dialog/debug.h \
- ui/dialog/desktop-tracker.cpp \
- ui/dialog/desktop-tracker.h \
- ui/dialog/dialog.cpp \
- ui/dialog/dialog.h \
- ui/dialog/dialog-manager.cpp \
- ui/dialog/dialog-manager.h \
- ui/dialog/dock-behavior.cpp \
- ui/dialog/dock-behavior.h \
- ui/dialog/document-metadata.cpp \
- ui/dialog/document-metadata.h \
- ui/dialog/document-properties.cpp \
- ui/dialog/document-properties.h \
- ui/dialog/export.cpp \
- ui/dialog/export.h \
- ui/dialog/extension-editor.cpp \
- ui/dialog/extension-editor.h \
- ui/dialog/extensions.cpp \
- ui/dialog/extensions.h \
- ui/dialog/filedialog.cpp \
- ui/dialog/filedialog.h \
- ui/dialog/filedialogimpl-gtkmm.cpp \
- ui/dialog/filedialogimpl-gtkmm.h \
- ui/dialog/filedialogimpl-win32.cpp \
- ui/dialog/filedialogimpl-win32.h \
- ui/dialog/fill-and-stroke.cpp \
- ui/dialog/fill-and-stroke.h \
- ui/dialog/filter-effects-dialog.cpp \
- ui/dialog/filter-effects-dialog.h \
- ui/dialog/find.cpp \
- ui/dialog/find.h \
- ui/dialog/font-substitution.cpp \
- ui/dialog/font-substitution.h \
- ui/dialog/floating-behavior.cpp \
- ui/dialog/floating-behavior.h \
- ui/dialog/glyphs.cpp \
- ui/dialog/glyphs.h \
- ui/dialog/grid-arrange-tab.h \
- ui/dialog/grid-arrange-tab.cpp \
- ui/dialog/guides.cpp \
- ui/dialog/guides.h \
- ui/dialog/icon-preview.cpp \
- ui/dialog/icon-preview.h \
- ui/dialog/inkscape-preferences.cpp \
- ui/dialog/inkscape-preferences.h \
- ui/dialog/input.cpp \
- ui/dialog/input.h \
- ui/dialog/knot-properties.cpp \
- ui/dialog/knot-properties.h \
- ui/dialog/layer-properties.cpp \
- ui/dialog/layer-properties.h \
- ui/dialog/layers.cpp \
- ui/dialog/layers.h \
- ui/dialog/livepatheffect-add.cpp \
- ui/dialog/livepatheffect-add.h \
- ui/dialog/livepatheffect-editor.cpp \
- ui/dialog/livepatheffect-editor.h \
- ui/dialog/memory.cpp \
- ui/dialog/memory.h \
- ui/dialog/messages.cpp \
- ui/dialog/messages.h \
- ui/dialog/new-from-template.cpp \
- ui/dialog/new-from-template.h \
- ui/dialog/ocaldialogs.cpp \
- ui/dialog/ocaldialogs.h \
- ui/dialog/object-attributes.cpp \
- ui/dialog/object-attributes.h \
- ui/dialog/object-properties.cpp \
- ui/dialog/object-properties.h \
- ui/dialog/panel-dialog.h \
- ui/dialog/polar-arrange-tab.cpp \
- ui/dialog/polar-arrange-tab.h \
- ui/dialog/print.cpp \
- ui/dialog/print.h \
- ui/dialog/print-colors-preview-dialog.cpp \
- ui/dialog/print-colors-preview-dialog.h \
- ui/dialog/spellcheck.cpp \
- ui/dialog/spellcheck.h \
- ui/dialog/svg-fonts-dialog.cpp \
- ui/dialog/svg-fonts-dialog.h \
- ui/dialog/swatches.cpp \
- ui/dialog/swatches.h \
- ui/dialog/symbols.cpp \
- ui/dialog/symbols.h \
- ui/dialog/template-load-tab.cpp \
- ui/dialog/template-load-tab.h \
- ui/dialog/template-widget.cpp \
- ui/dialog/template-widget.h \
- ui/dialog/tags.cpp \
- ui/dialog/tags.h \
- ui/dialog/text-edit.cpp \
- ui/dialog/text-edit.h \
- ui/dialog/tile.cpp \
- ui/dialog/tile.h \
- ui/dialog/pixelartdialog.cpp \
- ui/dialog/pixelartdialog.h \
- ui/dialog/transformation.cpp \
- ui/dialog/transformation.h \
- ui/dialog/undo-history.cpp \
- ui/dialog/undo-history.h \
- ui/dialog/xml-tree.cpp \
- ui/dialog/xml-tree.h \
- ui/dialog/lpe-powerstroke-properties.cpp \
- ui/dialog/lpe-powerstroke-properties.h \
- ui/dialog/objects.cpp \
- ui/dialog/objects.h \
- ui/dialog/lpe-fillet-chamfer-properties.cpp \
- ui/dialog/lpe-fillet-chamfer-properties.h \
- $(inkboard_dialogs)
-
-if HAVE_POTRACE
-
-ink_common_sources += \
- ui/dialog/tracedialog.cpp \
- ui/dialog/tracedialog.h
-
-endif
diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp
index 6276d3391..04cf9d02a 100644
--- a/src/ui/dialog/aboutbox.cpp
+++ b/src/ui/dialog/aboutbox.cpp
@@ -98,11 +98,7 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) {
tabs->append_page(*manage(
make_scrolled_text(license_text)), _("_License"), true);
-#if WITH_GTKMM_3_0
get_content_area()->pack_end(*manage(tabs), true, true);
-#else
- get_vbox()->pack_end(*manage(tabs), true, true);
-#endif
tabs->show_all();
@@ -130,23 +126,16 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) {
link->set_selectable(true);
link->show();
-#if WITH_GTKMM_3_0
get_content_area()->pack_start(*manage(label), false, false);
get_content_area()->pack_start(*manage(link), false, false);
-#else
- get_vbox()->pack_start(*manage(label), false, false);
- get_vbox()->pack_start(*manage(link), false, false);
-#endif
- Gtk::Requisition requisition;
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_widget_get_preferred_size(reinterpret_cast<GtkWidget*>(gobj()), &requisition, NULL);
-#else
- gtk_widget_size_request (reinterpret_cast<GtkWidget*>(gobj()), &requisition);
-#endif
+ Gtk::Requisition minimum_size;
+ Gtk::Requisition natural_size;
+ get_preferred_size(minimum_size, natural_size);
+
// allow window to shrink
set_size_request(0, 0);
- set_default_size(requisition.width, requisition.height);
+ set_default_size(minimum_size.width, minimum_size.height);
}
diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp
index 2e5c74706..ed9ec3b0a 100644
--- a/src/ui/dialog/align-and-distribute.cpp
+++ b/src/ui/dialog/align-and-distribute.cpp
@@ -58,11 +58,7 @@ namespace Dialog {
Action::Action(const Glib::ustring &id,
const Glib::ustring &tiptext,
guint row, guint column,
-#if WITH_GTKMM_3_0
- Gtk::Grid &parent,
-#else
- Gtk::Table &parent,
-#endif
+ Gtk::Grid &parent,
AlignAndDistribute &dialog):
_dialog(dialog),
_id(id),
@@ -78,11 +74,7 @@ Action::Action(const Glib::ustring &id,
pButton->signal_clicked()
.connect(sigc::mem_fun(*this, &Action::on_button_click));
pButton->set_tooltip_text(tiptext);
-#if WITH_GTKMM_3_0
parent.attach(*pButton, column, row, 1, 1);
-#else
- parent.attach(*pButton, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL);
-#endif
}
@@ -444,11 +436,7 @@ public:
Action(id, tiptext, row, column + 4,
dialog.removeOverlap_table(), dialog)
{
-#if WITH_GTKMM_3_0
dialog.removeOverlap_table().set_column_spacing(3);
-#else
- dialog.removeOverlap_table().set_col_spacings(3);
-#endif
removeOverlapXGap.set_digits(1);
removeOverlapXGap.set_size_request(60, -1);
@@ -470,17 +458,10 @@ public:
removeOverlapYGapLabel.set_text_with_mnemonic(C_("Gap", "_V:"));
removeOverlapYGapLabel.set_mnemonic_widget(removeOverlapYGap);
-#if WITH_GTKMM_3_0
dialog.removeOverlap_table().attach(removeOverlapXGapLabel, column, row, 1, 1);
dialog.removeOverlap_table().attach(removeOverlapXGap, column+1, row, 1, 1);
dialog.removeOverlap_table().attach(removeOverlapYGapLabel, column+2, row, 1, 1);
dialog.removeOverlap_table().attach(removeOverlapYGap, column+3, row, 1, 1);
-#else
- dialog.removeOverlap_table().attach(removeOverlapXGapLabel, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.removeOverlap_table().attach(removeOverlapXGap, column+1, column+2, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.removeOverlap_table().attach(removeOverlapYGapLabel, column+2, column+3, row, row+1, Gtk::FILL, Gtk::FILL);
- dialog.removeOverlap_table().attach(removeOverlapYGap, column+3, column+4, row, row+1, Gtk::FILL, Gtk::FILL);
-#endif
}
private :
@@ -763,11 +744,7 @@ public :
guint row,
guint column,
AlignAndDistribute &dialog,
-#if WITH_GTKMM_3_0
Gtk::Grid &table,
-#else
- Gtk::Table &table,
-#endif
Geom::Dim2 orientation, bool distribute):
Action(id, tiptext, row, column,
table, dialog),
@@ -940,19 +917,11 @@ AlignAndDistribute::AlignAndDistribute()
_rearrangeFrame(_("Rearrange")),
_removeOverlapFrame(_("Remove overlaps")),
_nodesFrame(_("Nodes")),
-#if WITH_GTKMM_3_0
_alignTable(),
_distributeTable(),
_rearrangeTable(),
_removeOverlapTable(),
_nodesTable(),
-#else
- _alignTable(2, 6, true),
- _distributeTable(2, 6, true),
- _rearrangeTable(1, 5, false),
- _removeOverlapTable(1, 5, false),
- _nodesTable(1, 4, true),
-#endif
_anchorLabel(_("Relative to: ")),
_anchorLabelNode(_("Relative to: ")),
_selgrpLabel(_("_Treat selection as group: "), 1)
@@ -1317,13 +1286,8 @@ void AlignAndDistribute::addRandomizeButton(const Glib::ustring &id, const Glib:
);
}
-#if WITH_GTKMM_3_0
void AlignAndDistribute::addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext,
guint row, guint col, Gtk::Grid &table, Geom::Dim2 orientation, bool distribute)
-#else
-void AlignAndDistribute::addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext,
- guint row, guint col, Gtk::Table &table, Geom::Dim2 orientation, bool distribute)
-#endif
{
_actionList.push_back(
new ActionBaseline(
diff --git a/src/ui/dialog/align-and-distribute.h b/src/ui/dialog/align-and-distribute.h
index f8cc61af2..acb3d02ed 100644
--- a/src/ui/dialog/align-and-distribute.h
+++ b/src/ui/dialog/align-and-distribute.h
@@ -22,15 +22,11 @@
#include <gtkmm/frame.h>
#include <gtkmm/comboboxtext.h>
#include <gtkmm/label.h>
-#include "2geom/rect.h"
-#include "ui/dialog/desktop-tracker.h"
-
-#if WITH_GTKMM_3_0
#include <gtkmm/checkbutton.h>
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
+
+#include "2geom/rect.h"
+#include "ui/dialog/desktop-tracker.h"
class SPItem;
@@ -51,19 +47,11 @@ public:
static AlignAndDistribute &getInstance() { return *new AlignAndDistribute(); }
-#if WITH_GTKMM_3_0
Gtk::Grid &align_table(){return _alignTable;}
Gtk::Grid &distribute_table(){return _distributeTable;}
Gtk::Grid &rearrange_table(){return _rearrangeTable;}
Gtk::Grid &removeOverlap_table(){return _removeOverlapTable;}
Gtk::Grid &nodes_table(){return _nodesTable;}
-#else
- Gtk::Table &align_table(){return _alignTable;}
- Gtk::Table &distribute_table(){return _distributeTable;}
- Gtk::Table &rearrange_table(){return _rearrangeTable;}
- Gtk::Table &removeOverlap_table(){return _removeOverlapTable;}
- Gtk::Table &nodes_table(){return _nodesTable;}
-#endif
void setMode(bool nodeEdit);
@@ -100,22 +88,13 @@ protected:
guint row, guint col);
void addRandomizeButton(const Glib::ustring &id, const Glib::ustring tiptext,
guint row, guint col);
-#if WITH_GTKMM_3_0
void addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext,
guint row, guint col, Gtk::Grid &table, Geom::Dim2 orientation, bool distribute);
-#else
- void addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext,
- guint row, guint col, Gtk::Table &table, Geom::Dim2 orientation, bool distribute);
-#endif
void setTargetDesktop(SPDesktop *desktop);
std::list<Action *> _actionList;
UI::Widget::Frame _alignFrame, _distributeFrame, _rearrangeFrame, _removeOverlapFrame, _nodesFrame;
-#if WITH_GTKMM_3_0
Gtk::Grid _alignTable, _distributeTable, _rearrangeTable, _removeOverlapTable, _nodesTable;
-#else
- Gtk::Table _alignTable, _distributeTable, _rearrangeTable, _removeOverlapTable, _nodesTable;
-#endif
Gtk::HBox _anchorBox;
Gtk::HBox _selgrpBox;
Gtk::VBox _alignBox;
@@ -163,11 +142,7 @@ public :
Action(const Glib::ustring &id,
const Glib::ustring &tiptext,
guint row, guint column,
- #if WITH_GTKMM_3_0
- Gtk::Grid &parent,
- #else
- Gtk::Table &parent,
- #endif
+ Gtk::Grid &parent,
AlignAndDistribute &dialog);
virtual ~Action(){}
@@ -178,12 +153,7 @@ private :
virtual void on_button_click(){}
Glib::ustring _id;
-
-#if WITH_GTKMM_3_0
Gtk::Grid &_parent;
-#else
- Gtk::Table &_parent;
-#endif
};
diff --git a/src/ui/dialog/calligraphic-profile-rename.cpp b/src/ui/dialog/calligraphic-profile-rename.cpp
index 9ae22db2d..50dae0fd8 100644
--- a/src/ui/dialog/calligraphic-profile-rename.cpp
+++ b/src/ui/dialog/calligraphic-profile-rename.cpp
@@ -16,12 +16,7 @@
#include "calligraphic-profile-rename.h"
#include <glibmm/i18n.h>
#include <gtkmm/stock.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include "desktop.h"
@@ -30,40 +25,24 @@ namespace UI {
namespace Dialog {
CalligraphicProfileRename::CalligraphicProfileRename() :
-#if WITH_GTKMM_3_0
_layout_table(Gtk::manage(new Gtk::Grid())),
-#else
- _layout_table(Gtk::manage(new Gtk::Table(1, 2))),
-#endif
_applied(false)
{
set_title(_("Edit profile"));
-#if WITH_GTKMM_3_0
- Gtk::Box *mainVBox = get_content_area();
+ auto mainVBox = get_content_area();
_layout_table->set_column_spacing(4);
_layout_table->set_row_spacing(4);
-#else
- Gtk::Box *mainVBox = get_vbox();
- _layout_table->set_spacings(4);
-#endif
_profile_name_entry.set_activates_default(true);
_profile_name_label.set_label(_("Profile name:"));
_profile_name_label.set_alignment(1.0, 0.5);
-#if WITH_GTKMM_3_0
_layout_table->attach(_profile_name_label, 0, 0, 1, 1);
_profile_name_entry.set_hexpand();
_layout_table->attach(_profile_name_entry, 1, 0, 1, 1);
-#else
- _layout_table->attach(_profile_name_label,
- 0, 1, 0, 1, Gtk::FILL, Gtk::FILL);
- _layout_table->attach(_profile_name_entry,
- 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL);
-#endif
mainVBox->pack_start(*_layout_table, false, false, 4);
// Buttons
diff --git a/src/ui/dialog/calligraphic-profile-rename.h b/src/ui/dialog/calligraphic-profile-rename.h
index 4ef71900b..b7a97a1e7 100644
--- a/src/ui/dialog/calligraphic-profile-rename.h
+++ b/src/ui/dialog/calligraphic-profile-rename.h
@@ -20,11 +20,7 @@
#include <gtkmm/label.h>
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
class SPDesktop;
@@ -59,12 +55,7 @@ protected:
Gtk::Label _profile_name_label;
Gtk::Entry _profile_name_entry;
-
-#if WITH_GTKMM_3_0
Gtk::Grid* _layout_table;
-#else
- Gtk::Table* _layout_table;
-#endif
Gtk::Button _close_button;
Gtk::Button _delete_button;
diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index 23d72bce8..1fa7a6c71 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -79,12 +79,8 @@ CloneTiler::CloneTiler () :
dlg = GTK_WIDGET(gobj());
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *mainbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
+ auto mainbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
gtk_box_set_homogeneous(GTK_BOX(mainbox), FALSE);
-#else
- GtkWidget *mainbox = gtk_vbox_new(FALSE, 4);
-#endif
gtk_container_set_border_width (GTK_CONTAINER (mainbox), 6);
contents->pack_start (*Gtk::manage(Glib::wrap(mainbox)), true, true, 0);
@@ -639,12 +635,8 @@ CloneTiler::CloneTiler () :
GtkWidget *vb = clonetiler_new_tab (nb, _("Co_lor"));
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new (FALSE, 0);
-#endif
GtkWidget *l = gtk_label_new (_("Initial color: "));
gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
@@ -765,12 +757,8 @@ CloneTiler::CloneTiler () :
{
GtkWidget *vb = clonetiler_new_tab (nb, _("_Trace"));
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
gtk_box_pack_start (GTK_BOX (vb), hb, FALSE, FALSE, 0);
b = gtk_check_button_new_with_label (_("Trace the drawing under the clones/sprayed items"));
@@ -785,12 +773,8 @@ CloneTiler::CloneTiler () :
}
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *vvb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ auto vvb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_box_set_homogeneous(GTK_BOX(vvb), FALSE);
-#else
- GtkWidget *vvb = gtk_vbox_new (FALSE, 0);
-#endif
gtk_box_pack_start (GTK_BOX (vb), vvb, FALSE, FALSE, 0);
g_object_set_data (G_OBJECT(dlg), "dotrace", (gpointer) vvb);
@@ -799,15 +783,9 @@ CloneTiler::CloneTiler () :
GtkWidget *frame = gtk_frame_new (_("1. Pick from the drawing:"));
gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, 0);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *table = gtk_grid_new();
+ auto table = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(table), 4);
gtk_grid_set_column_spacing(GTK_GRID(table), 6);
-#else
- GtkWidget *table = gtk_table_new (3, 3, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 4);
- gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-#endif
gtk_container_add(GTK_CONTAINER(frame), table);
@@ -883,15 +861,9 @@ CloneTiler::CloneTiler () :
GtkWidget *frame = gtk_frame_new (_("2. Tweak the picked value:"));
gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, VB_MARGIN);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *table = gtk_grid_new();
+ auto table = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(table), 4);
gtk_grid_set_column_spacing(GTK_GRID(table), 6);
-#else
- GtkWidget *table = gtk_table_new (4, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 4);
- gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-#endif
gtk_container_add(GTK_CONTAINER(frame), table);
@@ -932,15 +904,9 @@ CloneTiler::CloneTiler () :
GtkWidget *frame = gtk_frame_new (_("3. Apply the value to the clones':"));
gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, 0);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *table = gtk_grid_new();
+ auto table = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(table), 4);
gtk_grid_set_column_spacing(GTK_GRID(table), 6);
-#else
- GtkWidget *table = gtk_table_new (2, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 4);
- gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-#endif
gtk_container_add(GTK_CONTAINER(frame), table);
{
@@ -988,12 +954,8 @@ CloneTiler::CloneTiler () :
}
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
GtkWidget *l = gtk_label_new(_(""));
gtk_label_set_markup (GTK_LABEL(l), _("Apply to tiled clones:"));
@@ -1001,42 +963,24 @@ CloneTiler::CloneTiler () :
}
// Rows/columns, width/height
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *table = gtk_grid_new();
+ auto table = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(table), 4);
gtk_grid_set_column_spacing(GTK_GRID(table), 6);
-#else
- GtkWidget *table = gtk_table_new (2, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 4);
- gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-#endif
gtk_container_set_border_width (GTK_CONTAINER (table), VB_MARGIN);
gtk_box_pack_start (GTK_BOX (mainbox), table, FALSE, FALSE, 0);
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
g_object_set_data (G_OBJECT(dlg), "rowscols", (gpointer) hb);
{
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment>a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
-#else
- Gtk::Adjustment *a = new Gtk::Adjustment (0.0, 1, 500, 1, 10, 0);
-#endif
+ auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
int value = prefs->getInt(prefs_path + "jmax", 2);
a->set_value (value);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
-#else
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton (*a, 1.0, 0);
-#endif
+ auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
sb->set_tooltip_text (_("How many rows in the tiling"));
sb->set_width_chars (7);
gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0);
@@ -1049,28 +993,16 @@ CloneTiler::CloneTiler () :
{
GtkWidget *l = gtk_label_new ("");
gtk_label_set_markup (GTK_LABEL(l), "&#215;");
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5);
-#endif
gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0);
}
{
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
-#else
- Gtk::Adjustment *a = new Gtk::Adjustment (0.0, 1, 500, 1, 10, 0);
-#endif
+ auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
int value = prefs->getInt(prefs_path + "imax", 2);
a->set_value (value);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
-#else
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton (*a, 1.0, 0);
-#endif
+ auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
sb->set_tooltip_text (_("How many columns in the tiling"));
sb->set_width_chars (7);
gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0);
@@ -1084,12 +1016,8 @@ CloneTiler::CloneTiler () :
}
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
g_object_set_data (G_OBJECT(dlg), "widthheight", (gpointer) hb);
// unitmenu
@@ -1100,59 +1028,39 @@ CloneTiler::CloneTiler () :
{
// Width spinbutton
-#if WITH_GTKMM_3_0
fill_width = Gtk::Adjustment::create(0.0, -1e6, 1e6, 1.0, 10.0, 0);
-#else
- fill_width = new Gtk::Adjustment (0.0, -1e6, 1e6, 1.0, 10.0, 0);
-#endif
double value = prefs->getDouble(prefs_path + "fillwidth", 50.0);
Inkscape::Util::Unit const *unit = unit_menu->getUnit();
gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit);
fill_width->set_value (units);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton(fill_width, 1.0, 2);
-#else
- Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton (*fill_width, 1.0, 2);
-#endif
+ auto e = new Inkscape::UI::Widget::SpinButton(fill_width, 1.0, 2);
e->set_tooltip_text (_("Width of the rectangle to be filled"));
e->set_width_chars (7);
e->set_digits (4);
gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0);
// TODO: C++ification
- g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed",
+ g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed",
G_CALLBACK(clonetiler_fill_width_changed), unit_menu);
}
{
GtkWidget *l = gtk_label_new ("");
gtk_label_set_markup (GTK_LABEL(l), "&#215;");
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5);
-#endif
gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0);
}
{
// Height spinbutton
-#if WITH_GTKMM_3_0
fill_height = Gtk::Adjustment::create(0.0, -1e6, 1e6, 1.0, 10.0, 0);
-#else
- fill_height = new Gtk::Adjustment (0.0, -1e6, 1e6, 1.0, 10.0, 0);
-#endif
double value = prefs->getDouble(prefs_path + "fillheight", 50.0);
Inkscape::Util::Unit const *unit = unit_menu->getUnit();
gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit);
fill_height->set_value (units);
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton(fill_height, 1.0, 2);
-#else
- Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton (*fill_height, 1.0, 2);
-#endif
+ auto e = new Inkscape::UI::Widget::SpinButton(fill_height, 1.0, 2);
e->set_tooltip_text (_("Height of the rectangle to be filled"));
e->set_width_chars (7);
e->set_digits (4);
@@ -1194,12 +1102,8 @@ CloneTiler::CloneTiler () :
// Use saved pos
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
GtkWidget *b = gtk_check_button_new_with_label (_("Use saved size and position of the tile"));
@@ -1214,12 +1118,8 @@ CloneTiler::CloneTiler () :
// Statusbar
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
gtk_box_pack_end (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
GtkWidget *l = gtk_label_new("");
g_object_set_data (G_OBJECT(dlg), "status", (gpointer) l);
@@ -1228,12 +1128,8 @@ CloneTiler::CloneTiler () :
// Buttons
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
{
@@ -1247,12 +1143,8 @@ CloneTiler::CloneTiler () :
}
{ // buttons which are enabled only when there are tiled clones
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *sb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto sb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(sb), FALSE);
-#else
- GtkWidget *sb = gtk_hbox_new(FALSE, 0);
-#endif
gtk_box_pack_end (GTK_BOX (hb), sb, FALSE, FALSE, 0);
g_object_set_data (G_OBJECT(dlg), "buttons_on_tiles", (gpointer) sb);
{
@@ -2661,12 +2553,8 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg)
GtkWidget * CloneTiler::clonetiler_new_tab(GtkWidget *nb, const gchar *label)
{
GtkWidget *l = gtk_label_new_with_mnemonic (label);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, VB_MARGIN);
+ auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
-#else
- GtkWidget *vb = gtk_vbox_new (FALSE, VB_MARGIN);
-#endif
gtk_container_set_border_width (GTK_CONTAINER (vb), VB_MARGIN);
gtk_notebook_append_page (GTK_NOTEBOOK (nb), vb, l);
return vb;
@@ -2681,12 +2569,8 @@ void CloneTiler::clonetiler_checkbox_toggled(GtkToggleButton *tb, gpointer *data
GtkWidget * CloneTiler::clonetiler_checkbox(const char *tip, const char *attr)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN);
-#endif
GtkWidget *b = gtk_check_button_new ();
gtk_widget_set_tooltip_text (b, tip);
@@ -2713,44 +2597,23 @@ void CloneTiler::clonetiler_value_changed(GtkAdjustment *adj, gpointer data)
GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent/* = false*/)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, 0);
-#endif
{
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> a;
if (exponent) {
a = Gtk::Adjustment::create(1.0, lower, upper, 0.01, 0.05, 0);
} else {
a = Gtk::Adjustment::create(0.0, lower, upper, 0.1, 0.5, 0);
}
-#else
- Gtk::Adjustment *a;
- if (exponent) {
- a = new Gtk::Adjustment (1.0, lower, upper, 0.01, 0.05, 0);
- } else {
- a = new Gtk::Adjustment (0.0, lower, upper, 0.1, 0.5, 0);
- }
-#endif
Inkscape::UI::Widget::SpinButton *sb;
-#if WITH_GTKMM_3_0
if (exponent) {
sb = new Inkscape::UI::Widget::SpinButton(a, 0.01, 2);
} else {
sb = new Inkscape::UI::Widget::SpinButton(a, 0.1, 1);
}
-#else
- if (exponent) {
- sb = new Inkscape::UI::Widget::SpinButton (*a, 0.01, 2);
- } else {
- sb = new Inkscape::UI::Widget::SpinButton (*a, 0.1, 1);
- }
-#endif
sb->set_tooltip_text (tip);
sb->set_width_chars (5);
@@ -2774,12 +2637,8 @@ GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, do
{
GtkWidget *l = gtk_label_new ("");
gtk_label_set_markup (GTK_LABEL(l), suffix);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_END);
gtk_widget_set_valign(l, GTK_ALIGN_START);
-#else
- gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0);
-#endif
gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
}
@@ -2855,38 +2714,22 @@ void CloneTiler::clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg)
void CloneTiler::clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col)
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(widget, GTK_ALIGN_FILL);
gtk_widget_set_valign(widget, GTK_ALIGN_START);
gtk_grid_attach(GTK_GRID(table), widget, col, row, 1, 1);
-#else
- GtkWidget *a = gtk_alignment_new (align, 0, 0, 0);
- gtk_container_add(GTK_CONTAINER(a), widget);
- gtk_table_attach ( GTK_TABLE (table), a, col, col + 1, row, row + 1, GTK_FILL, (GtkAttachOptions)0, 0, 0 );
-#endif
}
GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *table = gtk_grid_new();
+ auto table = gtk_grid_new();
gtk_grid_set_row_spacing(GTK_GRID(table), 6);
gtk_grid_set_column_spacing(GTK_GRID(table), 8);
-#else
- GtkWidget *table = gtk_table_new (values + 2, 5, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_table_set_col_spacings (GTK_TABLE (table), 8);
-#endif
gtk_container_set_border_width (GTK_CONTAINER (table), VB_MARGIN);
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new (FALSE, 0);
-#endif
GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON("object-rows"));
gtk_box_pack_start (GTK_BOX (hb), i, FALSE, FALSE, 2);
@@ -2899,12 +2742,8 @@ GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values)
}
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new (FALSE, 0);
-#endif
GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON("object-columns"));
gtk_box_pack_start (GTK_BOX (hb), i, FALSE, FALSE, 2);
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index a8f1df0a0..e76ad028e 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -121,13 +121,8 @@ private:
GtkSizeGroup* table_row_labels;
Inkscape::UI::Widget::UnitMenu *unit_menu;
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> fill_width;
Glib::RefPtr<Gtk::Adjustment> fill_height;
-#else
- Gtk::Adjustment *fill_width;
- Gtk::Adjustment *fill_height;
-#endif
sigc::connection desktopChangeConn;
sigc::connection selectChangedConn;
diff --git a/src/ui/dialog/debug.cpp b/src/ui/dialog/debug.cpp
index d5ce6a160..d062bf863 100644
--- a/src/ui/dialog/debug.cpp
+++ b/src/ui/dialog/debug.cpp
@@ -67,12 +67,7 @@ DebugDialogImpl::DebugDialogImpl()
{
set_title(_("Messages"));
set_size_request(300, 400);
-
-#if WITH_GTKMM_3_0
- Gtk::Box *mainVBox = get_content_area();
-#else
- Gtk::Box *mainVBox = get_vbox();
-#endif
+ auto mainVBox = get_content_area();
//## Add a menu for clear()
Gtk::MenuItem* item = Gtk::manage(new Gtk::MenuItem(_("_File"), true));
diff --git a/src/ui/dialog/document-metadata.cpp b/src/ui/dialog/document-metadata.cpp
index 40495456b..dc1958434 100644
--- a/src/ui/dialog/document-metadata.cpp
+++ b/src/ui/dialog/document-metadata.cpp
@@ -60,12 +60,7 @@ DocumentMetadata::getInstance()
DocumentMetadata::DocumentMetadata()
-#if WITH_GTKMM_3_0
: UI::Widget::Panel ("", "/dialogs/documentmetadata", SP_VERB_DIALOG_METADATA)
-#else
- : UI::Widget::Panel ("", "/dialogs/documentmetadata", SP_VERB_DIALOG_METADATA),
- _page_metadata1(1, 1), _page_metadata2(1, 1)
-#endif
{
hide();
_getContents()->set_spacing (4);
@@ -74,15 +69,10 @@ DocumentMetadata::DocumentMetadata()
_page_metadata1.set_border_width(2);
_page_metadata2.set_border_width(2);
-#if WITH_GTKMM_3_0
_page_metadata1.set_column_spacing(2);
_page_metadata2.set_column_spacing(2);
_page_metadata1.set_row_spacing(2);
_page_metadata2.set_row_spacing(2);
-#else
- _page_metadata1.set_spacings(2);
- _page_metadata2.set_spacings(2);
-#endif
_notebook.append_page(_page_metadata1, _("Metadata"));
_notebook.append_page(_page_metadata2, _("License"));
@@ -125,12 +115,8 @@ DocumentMetadata::build_metadata()
label->set_markup (_("<b>Dublin Core Entities</b>"));
label->set_alignment (0.0);
-#if WITH_GTKMM_3_0
label->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1.attach(*label, 0, 0, 3, 1);
-#else
- _page_metadata1.attach(*label, 0,3,0,1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
/* add generic metadata entry areas */
struct rdf_work_entity_t * entity;
@@ -142,7 +128,6 @@ DocumentMetadata::build_metadata()
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
space->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1.attach(*space, 0, row, 1, 1);
@@ -152,11 +137,6 @@ DocumentMetadata::build_metadata()
w->_packable->set_hexpand();
w->_packable->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1.attach(*w->_packable, 2, row, 1, 1);
-#else
- _page_metadata1.attach(*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata1.attach(w->_label, 1,2, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata1.attach(*w->_packable, 2,3, row, row+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
}
}
@@ -166,31 +146,20 @@ DocumentMetadata::build_metadata()
Gtk::Label *llabel = Gtk::manage (new Gtk::Label);
llabel->set_markup (_("<b>License</b>"));
llabel->set_alignment (0.0);
-
-#if WITH_GTKMM_3_0
llabel->set_valign(Gtk::ALIGN_CENTER);
_page_metadata2.attach(*llabel, 0, row, 3, 1);
-#else
- _page_metadata2.attach(*llabel, 0,3, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
/* add license selector pull-down and URI */
++row;
_licensor.init (_wr);
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-
-#if WITH_GTKMM_3_0
space->set_valign(Gtk::ALIGN_CENTER);
_page_metadata2.attach(*space, 0, row, 1, 1);
_licensor.set_hexpand();
_licensor.set_valign(Gtk::ALIGN_CENTER);
_page_metadata2.attach(_licensor, 1, row, 2, 1);
-#else
- _page_metadata2.attach(*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata2.attach(_licensor, 1,3, row, row+1, Gtk::EXPAND|Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
}
/**
diff --git a/src/ui/dialog/document-metadata.h b/src/ui/dialog/document-metadata.h
index cde5d92fd..2c56e9317 100644
--- a/src/ui/dialog/document-metadata.h
+++ b/src/ui/dialog/document-metadata.h
@@ -21,12 +21,7 @@
#include <stddef.h>
#include "ui/widget/panel.h"
#include <gtkmm/notebook.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include "inkscape.h"
#include "ui/widget/licensor.h"
@@ -62,13 +57,8 @@ protected:
Gtk::Notebook _notebook;
-#if WITH_GTKMM_3_0
Gtk::Grid _page_metadata1;
Gtk::Grid _page_metadata2;
-#else
- Gtk::Table _page_metadata1;
- Gtk::Table _page_metadata2;
-#endif
//---------------------------------------------------------------
RDElist _rdflist;
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index 9a1b39ac8..053549b73 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -211,25 +211,16 @@ DocumentProperties::~DocumentProperties()
* widget in columns 2-3; (non-0, 0) means label in columns 1-3; and
* (non-0, non-0) means two widgets in columns 2 and 3.
*/
-#if WITH_GTKMM_3_0
inline void attach_all(Gtk::Grid &table, Gtk::Widget *const arr[], unsigned const n, int start = 0, int docum_prop_flag = 0)
-#else
-inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned const n, int start = 0, int docum_prop_flag = 0)
-#endif
{
for (unsigned i = 0, r = start; i < n; i += 2) {
if (arr[i] && arr[i+1]) {
-#if WITH_GTKMM_3_0
arr[i]->set_hexpand();
arr[i+1]->set_hexpand();
arr[i]->set_valign(Gtk::ALIGN_CENTER);
arr[i+1]->set_valign(Gtk::ALIGN_CENTER);
table.attach(*arr[i], 1, r, 1, 1);
table.attach(*arr[i+1], 2, r, 1, 1);
-#else
- table.attach(*arr[i], 1, 2, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
- table.attach(*arr[i+1], 2, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
if (arr[i+1]) {
Gtk::AttachOptions yoptions = (Gtk::AttachOptions)0;
@@ -240,7 +231,6 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con
if (docum_prop_flag) {
// this sets the padding for subordinate widgets on the "Page" page
if( i==(n-8) || i==(n-10) ) {
-#if WITH_GTKMM_3_0
arr[i+1]->set_hexpand();
arr[i+1]->set_margin_left(20);
arr[i+1]->set_margin_right(20);
@@ -251,11 +241,7 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con
arr[i+1]->set_valign(Gtk::ALIGN_CENTER);
table.attach(*arr[i+1], 1, r, 2, 1);
-#else
- table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 20,0);
-#endif
} else {
-#if WITH_GTKMM_3_0
arr[i+1]->set_hexpand();
if (yoptions & Gtk::EXPAND)
@@ -264,12 +250,8 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con
arr[i+1]->set_valign(Gtk::ALIGN_CENTER);
table.attach(*arr[i+1], 1, r, 2, 1);
-#else
- table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 0,0);
-#endif
}
} else {
-#if WITH_GTKMM_3_0
arr[i+1]->set_hexpand();
if (yoptions & Gtk::EXPAND)
@@ -278,32 +260,21 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con
arr[i+1]->set_valign(Gtk::ALIGN_CENTER);
table.attach(*arr[i+1], 1, r, 2, 1);
-#else
- table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 0,0);
-#endif
}
} else if (arr[i]) {
Gtk::Label& label = reinterpret_cast<Gtk::Label&>(*arr[i]);
label.set_alignment (0.0);
-#if WITH_GTKMM_3_0
label.set_hexpand();
label.set_valign(Gtk::ALIGN_CENTER);
table.attach(label, 0, r, 3, 1);
-#else
- table.attach (label, 0, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
} else {
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
space->set_halign(Gtk::ALIGN_CENTER);
space->set_valign(Gtk::ALIGN_CENTER);
table.attach(*space, 0, r, 1, 1);
-#else
- table.attach (*space, 0, 1, r, r+1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0);
-#endif
}
}
++r;
@@ -673,52 +644,35 @@ void DocumentProperties::build_cms()
label_link->set_alignment(0.0);
-#if WITH_GTKMM_3_0
label_link->set_hexpand();
label_link->set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(*label_link, 0, row, 3, 1);
-#else
- _page_cms->table().attach(*label_link, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_LinkedProfilesListScroller.set_hexpand();
_LinkedProfilesListScroller.set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(_LinkedProfilesListScroller, 0, row, 3, 1);
-#else
- _page_cms->table().attach(_LinkedProfilesListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
Gtk::HBox* spacer = Gtk::manage(new Gtk::HBox());
spacer->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
spacer->set_hexpand();
spacer->set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(*spacer, 0, row, 3, 1);
-#else
- _page_cms->table().attach(*spacer, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
label_avail->set_alignment(0.0);
-#if WITH_GTKMM_3_0
label_avail->set_hexpand();
label_avail->set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(*label_avail, 0, row, 3, 1);
-#else
- _page_cms->table().attach(*label_avail, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_AvailableProfilesList.set_hexpand();
_AvailableProfilesList.set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(_AvailableProfilesList, 0, row, 1, 1);
@@ -732,11 +686,6 @@ void DocumentProperties::build_cms()
_unlink_btn.set_halign(Gtk::ALIGN_CENTER);
_unlink_btn.set_valign(Gtk::ALIGN_CENTER);
_page_cms->table().attach(_unlink_btn, 2, row, 1, 1);
-#else
- _page_cms->table().attach(_AvailableProfilesList, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
- _page_cms->table().attach(_link_btn, 1, 2, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 2, 0);
- _page_cms->table().attach(_unlink_btn, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 0, 0);
-#endif
// Set up the Avialable Profiles combo box
_AvailableProfilesListStore = Gtk::ListStore::create(_AvailableProfilesListColumns);
@@ -803,41 +752,27 @@ void DocumentProperties::build_scripting()
gint row = 0;
label_external->set_alignment(0.0);
-
-#if WITH_GTKMM_3_0
label_external->set_hexpand();
label_external->set_valign(Gtk::ALIGN_CENTER);
_page_external_scripts->table().attach(*label_external, 0, row, 3, 1);
-#else
- _page_external_scripts->table().attach(*label_external, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_ExternalScriptsListScroller.set_hexpand();
_ExternalScriptsListScroller.set_valign(Gtk::ALIGN_CENTER);
_page_external_scripts->table().attach(_ExternalScriptsListScroller, 0, row, 3, 1);
-#else
- _page_external_scripts->table().attach(_ExternalScriptsListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
Gtk::HBox* spacer_external = Gtk::manage(new Gtk::HBox());
spacer_external->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
spacer_external->set_hexpand();
spacer_external->set_valign(Gtk::ALIGN_CENTER);
_page_external_scripts->table().attach(*spacer_external, 0, row, 3, 1);
-#else
- _page_external_scripts->table().attach(*spacer_external, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_script_entry.set_hexpand();
_script_entry.set_valign(Gtk::ALIGN_CENTER);
_page_external_scripts->table().attach(_script_entry, 0, row, 1, 1);
@@ -851,11 +786,6 @@ void DocumentProperties::build_scripting()
_external_remove_btn.set_halign(Gtk::ALIGN_CENTER);
_external_remove_btn.set_valign(Gtk::ALIGN_CENTER);
_page_external_scripts->table().attach(_external_remove_btn, 2, row, 1, 1);
-#else
- _page_external_scripts->table().attach(_script_entry, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
- _page_external_scripts->table().attach(_external_add_btn, 1, 2, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 2, 0);
- _page_external_scripts->table().attach(_external_remove_btn, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 0, 0);
-#endif
//# Set up the External Scripts box
_ExternalScriptsListStore = Gtk::ListStore::create(_ExternalScriptsListColumns);
@@ -876,12 +806,6 @@ void DocumentProperties::build_scripting()
_embed_remove_btn.set_tooltip_text(_("Remove"));
docprops_style_button(_embed_remove_btn, INKSCAPE_ICON("list-remove"));
-#if !WITH_GTKMM_3_0
- // TODO: This has been removed from Gtkmm 3.0. Check that
- // everything still looks OK!
- _embed_button_box.set_child_min_width( 16 );
- _embed_button_box.set_spacing( 4 );
-#endif
_embed_button_box.set_layout (Gtk::BUTTONBOX_START);
_embed_button_box.add(_embed_new_btn);
_embed_button_box.add(_embed_remove_btn);
@@ -890,47 +814,29 @@ void DocumentProperties::build_scripting()
row = 0;
label_embedded->set_alignment(0.0);
-
-#if WITH_GTKMM_3_0
label_embedded->set_hexpand();
label_embedded->set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(*label_embedded, 0, row, 3, 1);
-#else
- _page_embedded_scripts->table().attach(*label_embedded, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_EmbeddedScriptsListScroller.set_hexpand();
_EmbeddedScriptsListScroller.set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(_EmbeddedScriptsListScroller, 0, row, 3, 1);
-#else
- _page_embedded_scripts->table().attach(_EmbeddedScriptsListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_embed_button_box.set_hexpand();
_embed_button_box.set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(_embed_button_box, 0, row, 1, 1);
-#else
- _page_embedded_scripts->table().attach(_embed_button_box, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
Gtk::HBox* spacer_embedded = Gtk::manage(new Gtk::HBox());
spacer_embedded->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y);
-
-#if WITH_GTKMM_3_0
spacer_embedded->set_hexpand();
spacer_embedded->set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(*spacer_embedded, 0, row, 3, 1);
-#else
- _page_embedded_scripts->table().attach(*spacer_embedded, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
@@ -946,24 +852,15 @@ void DocumentProperties::build_scripting()
label_embedded_content->set_markup (_("<b>Content:</b>"));
label_embedded_content->set_alignment(0.0);
-
-#if WITH_GTKMM_3_0
label_embedded_content->set_hexpand();
label_embedded_content->set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(*label_embedded_content, 0, row, 3, 1);
-#else
- _page_embedded_scripts->table().attach(*label_embedded_content, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
row++;
-#if WITH_GTKMM_3_0
_EmbeddedContentScroller.set_hexpand();
_EmbeddedContentScroller.set_valign(Gtk::ALIGN_CENTER);
_page_embedded_scripts->table().attach(_EmbeddedContentScroller, 0, row, 3, 1);
-#else
- _page_embedded_scripts->table().attach(_EmbeddedContentScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0);
-#endif
_EmbeddedContentScroller.add(_EmbeddedContent);
_EmbeddedContentScroller.set_shadow_type(Gtk::SHADOW_IN);
@@ -1025,12 +922,8 @@ void DocumentProperties::build_metadata()
label->set_markup (_("<b>Dublin Core Entities</b>"));
label->set_alignment (0.0);
-#if WITH_GTKMM_3_0
label->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1->table().attach (*label, 0,0,3,1);
-#else
- _page_metadata1->table().attach (*label, 0,3,0,1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
/* add generic metadata entry areas */
struct rdf_work_entity_t * entity;
@@ -1041,8 +934,6 @@ void DocumentProperties::build_metadata()
_rdflist.push_back (w);
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-
-#if WITH_GTKMM_3_0
space->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1->table().attach(*space, 0, row, 1, 1);
@@ -1052,11 +943,6 @@ void DocumentProperties::build_metadata()
w->_packable->set_hexpand();
w->_packable->set_valign(Gtk::ALIGN_CENTER);
_page_metadata1->table().attach(*w->_packable, 2, row, 1, 1);
-#else
- _page_metadata1->table().attach (*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata1->table().attach (w->_label, 1,2, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata1->table().attach (*w->_packable, 2,3, row, row+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0);
-#endif
}
}
@@ -1065,11 +951,7 @@ void DocumentProperties::build_metadata()
Gtk::Button *button_load = Gtk::manage (new Gtk::Button(_("Use _default"),1));
button_load->set_tooltip_text(_("Use the previously saved default metadata here"));
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox *box_buttons = Gtk::manage (new Gtk::ButtonBox);
-#else
- Gtk::HButtonBox *box_buttons = Gtk::manage (new Gtk::HButtonBox);
-#endif
+ auto box_buttons = Gtk::manage (new Gtk::ButtonBox);
box_buttons->set_layout(Gtk::BUTTONBOX_END);
box_buttons->set_spacing(4);
@@ -1087,12 +969,8 @@ void DocumentProperties::build_metadata()
llabel->set_markup (_("<b>License</b>"));
llabel->set_alignment (0.0);
-#if WITH_GTKMM_3_0
llabel->set_valign(Gtk::ALIGN_CENTER);
_page_metadata2->table().attach(*llabel, 0, row, 3, 1);
-#else
- _page_metadata2->table().attach (*llabel, 0,3, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
/* add license selector pull-down and URI */
++row;
@@ -1100,17 +978,12 @@ void DocumentProperties::build_metadata()
Gtk::HBox *space = Gtk::manage (new Gtk::HBox);
space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y);
-#if WITH_GTKMM_3_0
space->set_valign(Gtk::ALIGN_CENTER);
_page_metadata2->table().attach(*space, 0, row, 1, 1);
_licensor.set_hexpand();
_licensor.set_valign(Gtk::ALIGN_CENTER);
_page_metadata2->table().attach(_licensor, 1, row, 3, 1);
-#else
- _page_metadata2->table().attach (*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0);
- _page_metadata2->table().attach (_licensor, 1,3, row, row+1, Gtk::EXPAND|Gtk::FILL, (Gtk::AttachOptions)0,0,0);
-#endif
}
void DocumentProperties::addExternalScript(){
diff --git a/src/ui/dialog/document-properties.h b/src/ui/dialog/document-properties.h
index 7f91d9ea0..8d1c6b38a 100644
--- a/src/ui/dialog/document-properties.h
+++ b/src/ui/dialog/document-properties.h
@@ -173,11 +173,7 @@ protected:
Gtk::Button _external_remove_btn;
Gtk::Button _embed_new_btn;
Gtk::Button _embed_remove_btn;
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox _embed_button_box;
-#else
- Gtk::HButtonBox _embed_button_box;
-#endif
+ Gtk::ButtonBox _embed_button_box;
class ExternalScriptsColumns : public Gtk::TreeModel::ColumnRecord
{
diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
index 0a6afccf4..670e4c8b5 100644
--- a/src/ui/dialog/export.cpp
+++ b/src/ui/dialog/export.cpp
@@ -24,15 +24,10 @@
#include <gtkmm/buttonbox.h>
#include <gtkmm/dialog.h>
#include <gtkmm/entry.h>
+#include <gtkmm/grid.h>
#include <gtkmm/spinbutton.h>
#include <gtkmm/stock.h>
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
#ifdef WITH_GNOME_VFS
# include <libgnomevfs/gnome-vfs-init.h> // gnome_vfs_initialized
#endif
@@ -63,12 +58,7 @@
#include "helper/png-write.h"
-#if WITH_EXT_GDL
#include <gdl/gdl-dock-item.h>
-#else
-#include "libgdl/gdl-dock-item.h"
-#endif
-
// required to set status message after export
#include "desktop.h"
@@ -205,15 +195,9 @@ Export::Export (void) :
selectiontype_buttons[i]->signal_clicked().connect(sigc::mem_fun(*this, &Export::onAreaToggled));
}
-#if WITH_GTKMM_3_0
- Gtk::Grid* t = new Gtk::Grid();
+ auto t = new Gtk::Grid();
t->set_row_spacing(4);
t->set_column_spacing(4);
-#else
- Gtk::Table* t = new Gtk::Table(3, 4, false);
- t->set_row_spacings (4);
- t->set_col_spacings (4);
-#endif
x0_adj = createSpinbutton ( "x0", 0.0, -1000000.0, 1000000.0, 0.1, 1.0,
t, 0, 0, _("_x0:"), "", EXPORT_COORD_PRECISION, 1,
@@ -255,15 +239,9 @@ Export::Export (void) :
bm_label->set_use_markup(true);
size_box.pack_start(*bm_label, false, false, 0);
-#if WITH_GTKMM_3_0
- Gtk::Grid *t = new Gtk::Grid();
+ auto t = new Gtk::Grid();
t->set_row_spacing(4);
t->set_column_spacing(4);
-#else
- Gtk::Table *t = new Gtk::Table(2, 5, false);
- t->set_row_spacings (4);
- t->set_col_spacings (4);
-#endif
size_box.pack_start(*t);
@@ -471,27 +449,14 @@ void Export::set_default_filename () {
}
}
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> Export::createSpinbutton( gchar const * /*key*/, float val, float min, float max,
float step, float page,
Gtk::Grid *t, int x, int y,
const Glib::ustring& ll, const Glib::ustring& lr,
int digits, unsigned int sensitive,
void (Export::*cb)() )
-#else
-Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, float min, float max,
- float step, float page,
- Gtk::Table *t, int x, int y,
- const Glib::ustring& ll, const Glib::ustring& lr,
- int digits, unsigned int sensitive,
- void (Export::*cb)() )
-#endif
{
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj = Gtk::Adjustment::create(val, min, max, step, page, 0);
-#else
- Gtk::Adjustment *adj = new Gtk::Adjustment ( val, min, max, step, page, 0 );
-#endif
+ auto adj = Gtk::Adjustment::create(val, min, max, step, page, 0);
int pos = 0;
Gtk::Label *l = NULL;
@@ -499,28 +464,17 @@ Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, fl
if (!ll.empty()) {
l = new Gtk::Label(ll,true);
l->set_alignment (1.0, 0.5);
-
-#if WITH_GTKMM_3_0
l->set_hexpand();
l->set_vexpand();
t->attach(*l, x + pos, y, 1, 1);
-#else
- t->attach (*l, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 );
-#endif
-
l->set_sensitive(sensitive);
pos++;
}
-#if WITH_GTKMM_3_0
- Gtk::SpinButton *sb = new Gtk::SpinButton(adj, 1.0, digits);
+ auto sb = new Gtk::SpinButton(adj, 1.0, digits);
sb->set_hexpand();
sb->set_vexpand();
t->attach(*sb, x + pos, y, 1, 1);
-#else
- Gtk::SpinButton *sb = new Gtk::SpinButton(*adj, 1.0, digits);
- t->attach (*sb, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 );
-#endif
sb->set_width_chars(7);
sb->set_sensitive (sensitive);
@@ -533,15 +487,9 @@ Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, fl
if (!lr.empty()) {
l = new Gtk::Label(lr,true);
l->set_alignment (0.0, 0.5);
-
-#if WITH_GTKMM_3_0
l->set_hexpand();
l->set_vexpand();
t->attach(*l, x + pos, y, 1, 1);
-#else
- t->attach (*l, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 );
-#endif
-
l->set_sensitive (sensitive);
pos++;
l->set_mnemonic_widget (*sb);
@@ -919,11 +867,7 @@ Gtk::Dialog * Export::create_progress_dialog (Glib::ustring progress_text) {
Gtk::ProgressBar *prg = new Gtk::ProgressBar ();
prg->set_text(progress_text);
dlg->set_data ("progress", prg);
-#if GTK_CHECK_VERSION(3,0,0)
- Gtk::Box* CA = dlg->get_content_area();
-#else
- Gtk::Box* CA = dlg->get_vbox();
-#endif
+ auto CA = dlg->get_content_area();
CA->pack_start(*prg, FALSE, FALSE, 4);
Gtk::Button* btn = dlg->add_button (Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL );
@@ -1345,11 +1289,7 @@ void Export::onBrowse ()
Glib::RefPtr<const Gdk::Window> parentWindow = desktop->getToplevel()->get_window();
g_assert(parentWindow->gobj() != NULL);
-#if WITH_GTKMM_3_0
opf.hwndOwner = (HWND)gdk_win32_window_get_handle((GdkWindow*)parentWindow->gobj());
-#else
- opf.hwndOwner = (HWND)gdk_win32_drawable_get_handle((GdkDrawable*)parentWindow->gobj());
-#endif
opf.lpstrFilter = filter_string;
opf.lpstrCustomFilter = 0;
opf.nMaxCustFilter = 0L;
@@ -1509,11 +1449,7 @@ void Export::detectSize() {
} /* sp_export_detect_size */
/// Called when area x0 value is changed
-#if WITH_GTKMM_3_0
void Export::areaXChange(Glib::RefPtr<Gtk::Adjustment>& adj)
-#else
-void Export::areaXChange (Gtk::Adjustment *adj)
-#endif
{
float x0, x1, xdpi, width;
@@ -1552,11 +1488,7 @@ void Export::areaXChange (Gtk::Adjustment *adj)
} // end of sp_export_area_x_value_changed()
/// Called when area y0 value is changed.
-#if WITH_GTKMM_3_0
void Export::areaYChange(Glib::RefPtr<Gtk::Adjustment>& adj)
-#else
-void Export::areaYChange (Gtk::Adjustment *adj)
-#endif
{
float y0, y1, ydpi, height;
@@ -1863,11 +1795,7 @@ void Export::setArea( double x0, double y0, double x1, double y1 )
* @param adj The adjustment widget
* @param val What value to set it to.
*/
-#if WITH_GTKMM_3_0
void Export::setValue(Glib::RefPtr<Gtk::Adjustment>& adj, double val )
-#else
-void Export::setValue( Gtk::Adjustment *adj, double val )
-#endif
{
if (adj) {
adj->set_value(val);
@@ -1885,11 +1813,7 @@ void Export::setValue( Gtk::Adjustment *adj, double val )
* @param adj The adjustment widget
* @param val What the value should be in points.
*/
-#if WITH_GTKMM_3_0
void Export::setValuePx(Glib::RefPtr<Gtk::Adjustment>& adj, double val)
-#else
-void Export::setValuePx( Gtk::Adjustment *adj, double val)
-#endif
{
Unit const *unit = unit_selector.getUnit();
@@ -1908,11 +1832,7 @@ void Export::setValuePx( Gtk::Adjustment *adj, double val)
*
* @return The value in the specified adjustment.
*/
-#if WITH_GTKMM_3_0
float Export::getValue(Glib::RefPtr<Gtk::Adjustment>& adj)
-#else
-float Export::getValue( Gtk::Adjustment *adj )
-#endif
{
if (!adj) {
g_message("sp_export_value_get : adj is NULL");
@@ -1934,11 +1854,7 @@ float Export::getValue( Gtk::Adjustment *adj )
*
* @return The value in the adjustment in points.
*/
-#if WITH_GTKMM_3_0
float Export::getValuePx(Glib::RefPtr<Gtk::Adjustment>& adj)
-#else
-float Export::getValuePx( Gtk::Adjustment *adj )
-#endif
{
float value = getValue( adj);
Unit const *unit = unit_selector.getUnit();
diff --git a/src/ui/dialog/export.h b/src/ui/dialog/export.h
index 23af0109b..a1c44714b 100644
--- a/src/ui/dialog/export.h
+++ b/src/ui/dialog/export.h
@@ -79,17 +79,10 @@ private:
/*
* Getter/setter style functions for the spinbuttons
*/
-#if WITH_GTKMM_3_0
void setValue(Glib::RefPtr<Gtk::Adjustment>& adj, double val);
void setValuePx(Glib::RefPtr<Gtk::Adjustment>& adj, double val);
float getValue(Glib::RefPtr<Gtk::Adjustment>& adj);
float getValuePx(Glib::RefPtr<Gtk::Adjustment>& adj);
-#else
- void setValue (Gtk::Adjustment *adj, double val);
- void setValuePx (Gtk::Adjustment *adj, double val);
- float getValue (Gtk::Adjustment *adj);
- float getValuePx (Gtk::Adjustment *adj);
-#endif
/**
* Helper function to create, style and pack spinbuttons for the export dialog.
@@ -112,21 +105,12 @@ private:
*
* No unit_selector is stored in the created spinbutton, relies on external unit management
*/
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> createSpinbutton( gchar const *key, float val, float min, float max,
float step, float page,
Gtk::Grid *t, int x, int y,
const Glib::ustring& ll, const Glib::ustring& lr,
int digits, unsigned int sensitive,
void (Export::*cb)() );
-#else
- Gtk::Adjustment * createSpinbutton( gchar const *key, float val, float min, float max,
- float step, float page,
- Gtk::Table *t, int x, int y,
- const Glib::ustring& ll, const Glib::ustring& lr,
- int digits, unsigned int sensitive,
- void (Export::*cb)() );
-#endif
/**
* One of the area select radio buttons was pressed
@@ -152,11 +136,7 @@ private:
void onAreaX1Change() {
areaXChange(x1_adj);
} ;
-#if WITH_GTKMM_3_0
void areaXChange(Glib::RefPtr<Gtk::Adjustment>& adj);
-#else
- void areaXChange ( Gtk::Adjustment *adj);
-#endif
/**
* Area Y value changed callback
@@ -167,11 +147,7 @@ private:
void onAreaY1Change() {
areaYChange(y1_adj);
} ;
-#if WITH_GTKMM_3_0
void areaYChange(Glib::RefPtr<Gtk::Adjustment>& adj);
-#else
- void areaYChange ( Gtk::Adjustment *adj);
-#endif
/**
* Unit changed callback
@@ -298,7 +274,6 @@ private:
Gtk::VBox area_box;
Gtk::VBox singleexport_box;
-#if WITH_GTKMM_3_0
/* Custom size widgets */
Glib::RefPtr<Gtk::Adjustment> x0_adj;
Glib::RefPtr<Gtk::Adjustment> x1_adj;
@@ -312,21 +287,6 @@ private:
Glib::RefPtr<Gtk::Adjustment> bmheight_adj;
Glib::RefPtr<Gtk::Adjustment> xdpi_adj;
Glib::RefPtr<Gtk::Adjustment> ydpi_adj;
-#else
- /* Custom size widgets */
- Gtk::Adjustment *x0_adj;
- Gtk::Adjustment *x1_adj;
- Gtk::Adjustment *y0_adj;
- Gtk::Adjustment *y1_adj;
- Gtk::Adjustment *width_adj;
- Gtk::Adjustment *height_adj;
-
- /* Bitmap size widgets */
- Gtk::Adjustment *bmwidth_adj;
- Gtk::Adjustment *bmheight_adj;
- Gtk::Adjustment *xdpi_adj;
- Gtk::Adjustment *ydpi_adj;
-#endif
Gtk::VBox size_box;
Gtk::Label* bm_label;
diff --git a/src/ui/dialog/filedialog.cpp b/src/ui/dialog/filedialog.cpp
index ee673aecf..df3c4a307 100644
--- a/src/ui/dialog/filedialog.cpp
+++ b/src/ui/dialog/filedialog.cpp
@@ -15,12 +15,18 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include "filedialogimpl-win32.h"
+#ifdef WIN32
+# include "filedialogimpl-win32.h"
+# include "preferences.h"
+#endif
+
#include "filedialogimpl-gtkmm.h"
#include "ui/dialog-events.h"
#include "extension/output.h"
+#include <glibmm/convert.h>
+
namespace Inkscape
{
namespace UI
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
index 042637d22..e8c1bf723 100644
--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
+++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
@@ -754,16 +754,9 @@ FileOpenDialogImplGtk::~FileOpenDialogImplGtk()
void FileOpenDialogImplGtk::addFilterMenu(Glib::ustring name, Glib::ustring pattern)
{
-
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::FileFilter> allFilter = Gtk::FileFilter::create();
+ auto allFilter = Gtk::FileFilter::create();
allFilter->set_name(_(name.c_str()));
allFilter->add_pattern(pattern);
-#else
- Gtk::FileFilter allFilter;
- allFilter.set_name(_(name.c_str()));
- allFilter.add_pattern(pattern);
-#endif
extensionMap[Glib::ustring(_("All Files"))] = NULL;
add_filter(allFilter);
}
@@ -775,51 +768,27 @@ void FileOpenDialogImplGtk::createFilterMenu()
}
if (_dialogType == EXE_TYPES) {
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::FileFilter> allFilter = Gtk::FileFilter::create();
+ auto allFilter = Gtk::FileFilter::create();
allFilter->set_name(_("All Files"));
allFilter->add_pattern("*");
-#else
- Gtk::FileFilter allFilter;
- allFilter.set_name(_("All Files"));
- allFilter.add_pattern("*");
-#endif
extensionMap[Glib::ustring(_("All Files"))] = NULL;
add_filter(allFilter);
} else {
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::FileFilter> allInkscapeFilter = Gtk::FileFilter::create();
+ auto allInkscapeFilter = Gtk::FileFilter::create();
allInkscapeFilter->set_name(_("All Inkscape Files"));
- Glib::RefPtr<Gtk::FileFilter> allFilter = Gtk::FileFilter::create();
+ auto allFilter = Gtk::FileFilter::create();
allFilter->set_name(_("All Files"));
allFilter->add_pattern("*");
- Glib::RefPtr<Gtk::FileFilter> allImageFilter = Gtk::FileFilter::create();
+ auto allImageFilter = Gtk::FileFilter::create();
allImageFilter->set_name(_("All Images"));
- Glib::RefPtr<Gtk::FileFilter> allVectorFilter = Gtk::FileFilter::create();
+ auto allVectorFilter = Gtk::FileFilter::create();
allVectorFilter->set_name(_("All Vectors"));
- Glib::RefPtr<Gtk::FileFilter> allBitmapFilter = Gtk::FileFilter::create();
+ auto allBitmapFilter = Gtk::FileFilter::create();
allBitmapFilter->set_name(_("All Bitmaps"));
-#else
- Gtk::FileFilter allInkscapeFilter;
- allInkscapeFilter.set_name(_("All Inkscape Files"));
-
- Gtk::FileFilter allFilter;
- allFilter.set_name(_("All Files"));
- allFilter.add_pattern("*");
-
- Gtk::FileFilter allImageFilter;
- allImageFilter.set_name(_("All Images"));
-
- Gtk::FileFilter allVectorFilter;
- allVectorFilter.set_name(_("All Vectors"));
-
- Gtk::FileFilter allBitmapFilter;
- allBitmapFilter.set_name(_("All Bitmaps"));
-#endif
extensionMap[Glib::ustring(_("All Inkscape Files"))] = NULL;
add_filter(allInkscapeFilter);
@@ -854,29 +823,16 @@ void FileOpenDialogImplGtk::createFilterMenu()
Glib::ustring uname(_(imod->get_filetypename()));
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::FileFilter> filter = Gtk::FileFilter::create();
+ auto filter = Gtk::FileFilter::create();
filter->set_name(uname);
filter->add_pattern(upattern);
-#else
- Gtk::FileFilter filter;
- filter.set_name(uname);
- filter.add_pattern(upattern);
-#endif
-
add_filter(filter);
extensionMap[uname] = imod;
// g_message("ext %s:%s '%s'\n", ioext->name, ioext->mimetype, upattern.c_str());
-#if WITH_GTKMM_3_0
allInkscapeFilter->add_pattern(upattern);
if (strncmp("image", imod->get_mimetype(), 5) == 0)
allImageFilter->add_pattern(upattern);
-#else
- allInkscapeFilter.add_pattern(upattern);
- if (strncmp("image", imod->get_mimetype(), 5) == 0)
- allImageFilter.add_pattern(upattern);
-#endif
// uncomment this to find out all mime types supported by Inkscape import/open
// g_print ("%s\n", imod->get_mimetype());
@@ -896,17 +852,9 @@ void FileOpenDialogImplGtk::createFilterMenu()
strncmp("image/x-tga", imod->get_mimetype(), 11) == 0 ||
strncmp("image/x-pcx", imod->get_mimetype(), 11) == 0)
{
-#if WITH_GTKMM_3_0
allBitmapFilter->add_pattern(upattern);
-#else
- allBitmapFilter.add_pattern(upattern);
-#endif
} else {
-#if WITH_GTKMM_3_0
allVectorFilter->add_pattern(upattern);
-#else
- allVectorFilter.add_pattern(upattern);
-#endif
}
}
}
@@ -972,18 +920,13 @@ Glib::ustring FileOpenDialogImplGtk::getFilename(void)
*/
std::vector<Glib::ustring> FileOpenDialogImplGtk::getFilenames()
{
-#if WITH_GTKMM_3_0
- std::vector<std::string> result_tmp = get_filenames();
+ auto result_tmp = get_filenames();
// Copy filenames to a vector of type Glib::ustring
std::vector<Glib::ustring> result;
- for (std::vector<std::string>::iterator it = result_tmp.begin(); it != result_tmp.end(); ++it)
- result.push_back(*it);
-
-#else
- std::vector<Glib::ustring> result = get_filenames();
-#endif
+ for (auto it : result_tmp)
+ result.push_back(it);
#ifdef WITH_GNOME_VFS
if (result.empty() && gnome_vfs_initialized())
@@ -1170,13 +1113,8 @@ void FileSaveDialogImplGtk::fileTypeChangedCallback()
// g_message("selected: %s\n", type.name.c_str());
extension = type.extension;
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::FileFilter> filter = Gtk::FileFilter::create();
+ auto filter = Gtk::FileFilter::create();
filter->add_pattern(type.pattern);
-#else
- Gtk::FileFilter filter;
- filter.add_pattern(type.pattern);
-#endif
set_filter(filter);
updateNameAndExtension();
diff --git a/src/ui/dialog/filedialogimpl-win32.cpp b/src/ui/dialog/filedialogimpl-win32.cpp
index cafc3be4f..02d77cba1 100644
--- a/src/ui/dialog/filedialogimpl-win32.cpp
+++ b/src/ui/dialog/filedialogimpl-win32.cpp
@@ -128,11 +128,7 @@ FileDialogBaseWin32::FileDialogBaseWin32(Gtk::Window &parent,
Glib::RefPtr<const Gdk::Window> parentWindow = parent.get_window();
g_assert(parentWindow->gobj() != NULL);
-#if WITH_GTKMM_3_0
_ownerHwnd = (HWND)gdk_win32_window_get_handle((GdkWindow*)parentWindow->gobj());
-#else
- _ownerHwnd = (HWND)gdk_win32_drawable_get_handle((GdkDrawable*)parentWindow->gobj());
-#endif
}
FileDialogBaseWin32::~FileDialogBaseWin32()
diff --git a/src/ui/dialog/fill-and-stroke.cpp b/src/ui/dialog/fill-and-stroke.cpp
index fa69851e4..0b3b468e9 100644
--- a/src/ui/dialog/fill-and-stroke.cpp
+++ b/src/ui/dialog/fill-and-stroke.cpp
@@ -107,11 +107,7 @@ void FillAndStroke::setTargetDesktop(SPDesktop *desktop)
}
}
-#if WITH_GTKMM_3_0
void FillAndStroke::_onSwitchPage(Gtk::Widget * /*page*/, guint pagenum)
-#else
-void FillAndStroke::_onSwitchPage(GtkNotebookPage * /*page*/, guint pagenum)
-#endif
{
_savePagePref(pagenum);
}
@@ -128,24 +124,14 @@ void
FillAndStroke::_layoutPageFill()
{
fillWdgt = Gtk::manage(sp_fill_style_widget_new());
-
-#if WITH_GTKMM_3_0
_page_fill->table().attach(*fillWdgt, 0, 0, 1, 1);
-#else
- _page_fill->table().attach(*fillWdgt, 0, 1, 0, 1);
-#endif
}
void
FillAndStroke::_layoutPageStrokePaint()
{
strokeWdgt = Gtk::manage(sp_stroke_style_paint_widget_new());
-
-#if WITH_GTKMM_3_0
_page_stroke_paint->table().attach(*strokeWdgt, 0, 0, 1, 1);
-#else
- _page_stroke_paint->table().attach(*strokeWdgt, 0, 1, 0, 1);
-#endif
}
void
@@ -154,12 +140,7 @@ FillAndStroke::_layoutPageStrokeStyle()
//Gtk::Widget *strokeStyleWdgt = manage(Glib::wrap(sp_stroke_style_line_widget_new()));
//Gtk::Widget *strokeStyleWdgt = static_cast<Gtk::Widget *>(sp_stroke_style_line_widget_new());
strokeStyleWdgt = sp_stroke_style_line_widget_new();
-
-#if WITH_GTKMM_3_0
_page_stroke_style->table().attach(*strokeStyleWdgt, 0, 0, 1, 1);
-#else
- _page_stroke_style->table().attach(*strokeStyleWdgt, 0, 1, 0, 1);
-#endif
}
void
diff --git a/src/ui/dialog/fill-and-stroke.h b/src/ui/dialog/fill-and-stroke.h
index f2a6bf39d..67e9d60ed 100644
--- a/src/ui/dialog/fill-and-stroke.h
+++ b/src/ui/dialog/fill-and-stroke.h
@@ -64,11 +64,7 @@ protected:
void _layoutPageStrokePaint();
void _layoutPageStrokeStyle();
void _savePagePref(guint page_num);
-#if WITH_GTKMM_3_0
void _onSwitchPage(Gtk::Widget *page, guint pagenum);
-#else
- void _onSwitchPage(GtkNotebookPage *page, guint pagenum);
-#endif
private:
FillAndStroke(FillAndStroke const &d);
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index f2a6f8b95..8dbc90cc5 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -22,9 +22,7 @@
#include "dialog-manager.h"
#include <gtkmm/imagemenuitem.h>
-#if GTK_CHECK_VERSION(3,0,0)
-# include <gdkmm/devicemanager.h>
-#endif
+#include <gdkmm/devicemanager.h>
#include "ui/widget/spinbutton.h"
@@ -300,15 +298,9 @@ public:
set_tooltip_text(tip_text);
}
-#if WITH_GTKMM_3_0
Gdk::RGBA col;
col.set_rgba_u(65535, 65535, 65535);
set_rgba(col);
-#else
- Gdk::Color col;
- col.set_rgb(65535, 65535, 65535);
- set_color(col);
-#endif
}
// Returns the color in 'rgb(r,g,b)' form.
@@ -317,13 +309,8 @@ public:
// no doubles here, so we can use the standard string stream.
std::ostringstream os;
-#if WITH_GTKMM_3_0
- const Gdk::RGBA c = get_rgba();
- const int r = c.get_red_u() / 257, g = c.get_green_u() / 257, b = c.get_blue_u() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256?
-#else
- const Gdk::Color c = get_color();
- const int r = c.get_red() / 257, g = c.get_green() / 257, b = c.get_blue() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256?
-#endif
+ const auto c = get_rgba();
+ const int r = c.get_red_u() / 257, g = c.get_green_u() / 257, b = c.get_blue_u() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256?
os << "rgb(" << r << "," << g << "," << b << ")";
return os.str();
}
@@ -340,15 +327,9 @@ public:
}
const int r = SP_RGBA32_R_U(i), g = SP_RGBA32_G_U(i), b = SP_RGBA32_B_U(i);
-#if WITH_GTKMM_3_0
Gdk::RGBA col;
col.set_rgba_u(r * 256, g * 256, b * 256);
set_rgba(col);
-#else
- Gdk::Color col;
- col.set_rgb(r * 256, g * 256, b * 256);
- set_color(col);
-#endif
}
};
@@ -1710,7 +1691,6 @@ Glib::PropertyProxy<void*> FilterEffectsDialog::CellRendererConnection::property
return _primitive.get_proxy();
}
-#if WITH_GTKMM_3_0
void FilterEffectsDialog::CellRendererConnection::get_preferred_width_vfunc(Gtk::Widget& widget,
int& minimum_width,
int& natural_width) const
@@ -1744,27 +1724,6 @@ void FilterEffectsDialog::CellRendererConnection::get_preferred_height_for_width
{
get_preferred_height(widget, minimum_height, natural_height);
}
-#else
-void FilterEffectsDialog::CellRendererConnection::get_size_vfunc(
- Gtk::Widget& widget, const Gdk::Rectangle* /*cell_area*/,
- int* x_offset, int* y_offset, int* width, int* height) const
-{
- PrimitiveList& primlist = dynamic_cast<PrimitiveList&>(widget);
-
- if(x_offset)
- (*x_offset) = 0;
- if(y_offset)
- (*y_offset) = 0;
- if(width)
- (*width) = size * primlist.primitive_count() + (primlist.get_input_type_width()) * 6;
- if(height) {
- // Scale the height depending on the number of inputs, unless it's
- // the first primitive, in which case there are no connections
- SPFilterPrimitive* prim = SP_FILTER_PRIMITIVE(_primitive.get_value());
- (*height) = size * input_count(prim);
- }
-}
-#endif
/*** PrimitiveList ***/
FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
@@ -1772,13 +1731,8 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
_in_drag(0),
_observer(new Inkscape::XML::SignalObserver)
{
-#if WITH_GTKMM_3_0
d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal));
signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal));
-#else
- d.signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
- signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
-#endif
add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
@@ -1940,25 +1894,9 @@ void FilterEffectsDialog::PrimitiveList::remove_selected()
}
}
-#if !WITH_GTKMM_3_0
-bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose * /*evt*/)
-{
- bool result = false;
-
- if (get_is_drawable())
- {
- Cairo::RefPtr<Cairo::Context> cr = get_bin_window()->create_cairo_context();
- result = on_draw_signal(cr);
- }
-
- return result;
-}
-#endif
-
bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cairo::Context> & cr)
{
cr->set_line_width(1.0);
-#if GTK_CHECK_VERSION(3,0,0)
// In GTK+ 3, the draw function receives the widget window, not the
// bin_window (i.e., just the area under the column headers). We
// therefore translate the origin of our coordinate system to account for this
@@ -1966,7 +1904,7 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
convert_bin_window_to_widget_coords(0,0,x_origin,y_origin);
cr->translate(x_origin, y_origin);
- GtkStyleContext *sc = gtk_widget_get_style_context(GTK_WIDGET(gobj()));
+ auto sc = gtk_widget_get_style_context(GTK_WIDGET(gobj()));
GdkRGBA bg_color, fg_color;
gtk_style_context_get_background_color(sc, GTK_STATE_FLAG_NORMAL, &bg_color);
gtk_style_context_get_color(sc, GTK_STATE_FLAG_NORMAL, &fg_color);
@@ -1984,9 +1922,6 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
(bg_color_active.green + fg_color_active.green)/2.0,
(bg_color_active.blue + fg_color_active.blue)/2.0,
(bg_color_active.alpha + fg_color_active.alpha)/2.0};
-#else
- GtkStyle *style = gtk_widget_get_style(GTK_WIDGET(gobj()));
-#endif
SPFilterPrimitive* prim = get_selected();
int row_count = get_model()->children().size();
@@ -2005,25 +1940,15 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
const int x = text_start_x + get_input_type_width() * i;
cr->save();
cr->rectangle(x, 0, get_input_type_width(), vis.get_height());
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(), &bg_color);
cr->fill_preserve();
gdk_cairo_set_source_rgba(cr->cobj(), &fg_color);
-#else
- gdk_cairo_set_source_color(cr->cobj(), &(style->bg[GTK_STATE_NORMAL]));
- cr->fill_preserve();
- gdk_cairo_set_source_color(cr->cobj(), &(style->text[GTK_STATE_NORMAL]));
-#endif
cr->move_to(x+get_input_type_width(), 0);
cr->rotate_degrees(90);
_vertical_layout->show_in_cairo_context(cr);
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(), &mid_color);
-#else
- gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL]));
-#endif
cr->move_to(x, 0);
cr->line_to(x, vis.get_height());
cr->stroke();
@@ -2040,24 +1965,16 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
int mx, my;
Gdk::ModifierType mask;
-#if GTK_CHECK_VERSION(3,0,0)
- Glib::RefPtr<Gdk::Display> display = get_bin_window()->get_display();
- Glib::RefPtr<Gdk::DeviceManager> dm = display->get_device_manager();
- Glib::RefPtr<const Gdk::Device> device = dm->get_client_pointer();
+ auto display = get_bin_window()->get_display();
+ auto dm = display->get_device_manager();
+ auto device = dm->get_client_pointer();
get_bin_window()->get_device_position(device, mx, my, mask);
-#else
- get_bin_window()->get_pointer(mx, my, mask);
-#endif
// Outline the bottom of the connection area
const int outline_x = x + fheight * (row_count - row_index);
cr->save();
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(), &mid_color);
-#else
- gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL]));
-#endif
cr->move_to(x, y + h);
cr->line_to(outline_x, y + h);
@@ -2080,17 +1997,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
cr->save();
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(),
inside && mask & GDK_BUTTON1_MASK ?
&mid_color :
&mid_color_active);
-#else
- gdk_cairo_set_source_color(cr->cobj(),
- inside && mask & GDK_BUTTON1_MASK ?
- &(style->dark[GTK_STATE_NORMAL]) :
- &(style->dark[GTK_STATE_ACTIVE]));
-#endif
draw_connection_node(cr, con_poly, inside);
@@ -2116,17 +2026,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
cr->save();
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(),
inside && mask & GDK_BUTTON1_MASK ?
&mid_color :
&mid_color_active);
-#else
- gdk_cairo_set_source_color(cr->cobj(),
- inside && mask & GDK_BUTTON1_MASK ?
- &(style->dark[GTK_STATE_NORMAL]) :
- &(style->dark[GTK_STATE_ACTIVE]));
-#endif
draw_connection_node(cr, con_poly, inside);
@@ -2149,17 +2052,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cair
cr->save();
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(),
inside && mask & GDK_BUTTON1_MASK ?
&mid_color :
&mid_color_active);
-#else
- gdk_cairo_set_source_color(cr->cobj(),
- inside && mask & GDK_BUTTON1_MASK ?
- &(style->dark[GTK_STATE_NORMAL]) :
- &(style->dark[GTK_STATE_ACTIVE]));
-#endif
draw_connection_node(cr, con_poly, inside);
@@ -2195,8 +2091,7 @@ void FilterEffectsDialog::PrimitiveList::draw_connection(const Cairo::RefPtr<Cai
{
cr->save();
-#if GTK_CHECK_VERSION(3,0,0)
- GtkStyleContext *sc = gtk_widget_get_style_context(GTK_WIDGET(gobj()));
+ auto sc = gtk_widget_get_style_context(GTK_WIDGET(gobj()));
GdkRGBA bg_color, fg_color;
gtk_style_context_get_background_color(sc, GTK_STATE_FLAG_NORMAL, &bg_color);
@@ -2206,9 +2101,6 @@ void FilterEffectsDialog::PrimitiveList::draw_connection(const Cairo::RefPtr<Cai
(bg_color.green + fg_color.green)/2.0,
(bg_color.blue + fg_color.blue)/2.0,
(bg_color.alpha + fg_color.alpha)/2.0};
-#else
- GtkStyle *style = gtk_widget_get_style(GTK_WIDGET(gobj()));
-#endif
int src_id = 0;
Gtk::TreeIter res = find_result(input, attr, src_id);
@@ -2224,11 +2116,7 @@ void FilterEffectsDialog::PrimitiveList::draw_connection(const Cairo::RefPtr<Cai
gint end_x = text_start_x + tw * src_id + (int)(tw * 0.5f) + 1;
if(use_default && is_first)
-#if GTK_CHECK_VERSION(3,0,0)
gdk_cairo_set_source_rgba(cr->cobj(), &mid_color);
-#else
- gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL]));
-#endif
else
cr->set_source_rgb(0.0, 0.0, 0.0);
@@ -2651,8 +2539,7 @@ void FilterEffectsDialog::PrimitiveList::on_drag_end(const Glib::RefPtr<Gdk::Dra
bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout()
{
if(_autoscroll_y) {
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> a = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_vadjustment();
+ auto a = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_vadjustment();
double v = a->get_value() + _autoscroll_y;
if(v < 0)
@@ -2661,25 +2548,13 @@ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout()
v = a->get_upper() - a->get_page_size();
a->set_value(v);
-#else
- Gtk::Adjustment& a = *dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_vadjustment();
- double v = a.get_value() + _autoscroll_y;
-
- if(v < 0)
- v = 0;
- if(v > a.get_upper() - a.get_page_size())
- v = a.get_upper() - a.get_page_size();
-
- a.set_value(v);
-#endif
queue_draw();
}
if(_autoscroll_x) {
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> a_h = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_hadjustment();
+ auto a_h = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_hadjustment();
double h = a_h->get_value() + _autoscroll_x;
if(h < 0)
@@ -2688,18 +2563,6 @@ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout()
h = a_h->get_upper() - a_h->get_page_size();
a_h->set_value(h);
-#else
- Gtk::Adjustment& a_h = *dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_hadjustment();
- double h = a_h.get_value() + _autoscroll_x;
-
- if(h < 0)
- h = 0;
- if(h > a_h.get_upper() - a_h.get_page_size())
- h = a_h.get_upper() - a_h.get_page_size();
-
- a_h.set_value(h);
-
-#endif
queue_draw();
}
@@ -2741,13 +2604,8 @@ FilterEffectsDialog::FilterEffectsDialog()
_sizegroup->set_ignore_hidden();
// Initialize widget hierarchy
-#if WITH_GTKMM_3_0
- Gtk::Paned* hpaned = Gtk::manage(new Gtk::Paned);
+ auto hpaned = Gtk::manage(new Gtk::Paned);
_primitive_box = Gtk::manage(new Gtk::Paned);
-#else
- Gtk::HPaned* hpaned = Gtk::manage(new Gtk::HPaned);
- _primitive_box = Gtk::manage(new Gtk::VPaned);
-#endif
_sw_infobox = Gtk::manage(new Gtk::ScrolledWindow);
Gtk::ScrolledWindow* sw_prims = Gtk::manage(new Gtk::ScrolledWindow);
diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h
index 7c715327e..eae0fc317 100644
--- a/src/ui/dialog/filter-effects-dialog.h
+++ b/src/ui/dialog/filter-effects-dialog.h
@@ -163,7 +163,6 @@ private:
static const int size = 24;
protected:
-#if WITH_GTKMM_3_0
virtual void get_preferred_width_vfunc(Gtk::Widget& widget,
int& minimum_width,
int& natural_width) const;
@@ -181,10 +180,6 @@ private:
int width,
int& minimum_height,
int& natural_height) const;
-#else
- virtual void get_size_vfunc(Gtk::Widget& widget, const Gdk::Rectangle* cell_area,
- int* x_offset, int* y_offset, int* width, int* height) const;
-#endif
private:
// void* should be SPFilterPrimitive*, some weirdness with properties prevents this
Glib::Property<void*> _primitive;
@@ -211,9 +206,6 @@ private:
protected:
bool on_draw_signal(const Cairo::RefPtr<Cairo::Context> &cr);
-#if !WITH_GTKMM_3_0
- bool on_expose_signal(GdkEventExpose*);
-#endif
bool on_button_press_event(GdkEventButton*);
bool on_motion_notify_event(GdkEventMotion*);
@@ -283,11 +275,7 @@ private:
Gtk::ScrolledWindow* _sw_infobox;
// View/add primitives
-#if WITH_GTKMM_3_0
Gtk::Paned* _primitive_box;
-#else
- Gtk::VPaned* _primitive_box;
-#endif
UI::Widget::ComboBoxEnum<Inkscape::Filters::FilterPrimitiveType> _add_primitive_type;
Gtk::Button _add_primitive;
diff --git a/src/ui/dialog/find.h b/src/ui/dialog/find.h
index 4bcb900b6..94d635037 100644
--- a/src/ui/dialog/find.h
+++ b/src/ui/dialog/find.h
@@ -286,13 +286,7 @@ private:
Gtk::Label status;
UI::Widget::Button button_find;
UI::Widget::Button button_replace;
-
-#if WITH_GTKMM_3_0
Gtk::ButtonBox box_buttons;
-#else
- Gtk::HButtonBox box_buttons;
-#endif
-
Gtk::HBox hboxbutton_row;
/**
diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp
index 5ac3a25ad..fa8e11dfd 100644
--- a/src/ui/dialog/floating-behavior.cpp
+++ b/src/ui/dialog/floating-behavior.cpp
@@ -138,11 +138,7 @@ FloatingBehavior::create(Dialog &dialog)
inline FloatingBehavior::operator Gtk::Widget &() { return *_d; }
inline GtkWidget *FloatingBehavior::gobj() { return GTK_WIDGET(_d->gobj()); }
inline Gtk::Box* FloatingBehavior::get_vbox() {
-#if WITH_GTKMM_3_0
return _d->get_content_area();
-#else
- return _d->get_vbox();
-#endif
}
inline void FloatingBehavior::present() { _d->present(); }
inline void FloatingBehavior::hide() { _d->hide(); }
@@ -153,12 +149,8 @@ inline void FloatingBehavior::move(int x, int y) { _d->
inline void FloatingBehavior::set_position(Gtk::WindowPosition position) { _d->set_position(position); }
inline void FloatingBehavior::set_size_request(int width, int height) { _d->set_size_request(width, height); }
inline void FloatingBehavior::size_request(Gtk::Requisition &requisition) {
-#if WITH_GTKMM_3_0
Gtk::Requisition requisition_natural;
_d->get_preferred_size(requisition, requisition_natural);
-#else
- requisition = _d->size_request();
-#endif
}
inline void FloatingBehavior::get_position(int &x, int &y) { _d->get_position(x, y); }
inline void FloatingBehavior::get_size(int &width, int &height) { _d->get_size(width, height); }
diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp
index 0b85c8c0d..abae8ea70 100644
--- a/src/ui/dialog/font-substitution.cpp
+++ b/src/ui/dialog/font-substitution.cpp
@@ -101,11 +101,7 @@ FontSubstitution::show(Glib::ustring out, std::vector<SPItem*> &l)
cbWarning->set_label(_("Don't show this warning again"));
cbWarning->show();
-#if GTK_CHECK_VERSION(3,0,0)
- Gtk::Box * box = warning.get_content_area();
-#else
- Gtk::Box * box = warning.get_vbox();
-#endif
+ auto box = warning.get_content_area();
box->set_spacing(2);
box->pack_start(*scrollwindow, true, true, 4);
box->pack_start(*cbSelect, false, false, 0);
diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp
index 502f49894..9c1236ca9 100644
--- a/src/ui/dialog/glyphs.cpp
+++ b/src/ui/dialog/glyphs.cpp
@@ -14,16 +14,11 @@
#include <glibmm/i18n.h>
#include <gtkmm/alignment.h>
#include <gtkmm/comboboxtext.h>
+#include <gtkmm/grid.h>
#include <gtkmm/iconview.h>
#include <gtkmm/liststore.h>
#include <gtkmm/scrolledwindow.h>
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
#include "desktop.h"
#include "document.h" // for SPDocumentUndo::done()
#include "document-undo.h"
@@ -337,12 +332,7 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
instanceConns(),
desktopConns()
{
-#if WITH_GTKMM_3_0
- Gtk::Grid *table = new Gtk::Grid();
-#else
- Gtk::Table *table = new Gtk::Table(3, 1, false);
-#endif
-
+ auto table = new Gtk::Grid();
_getContents()->pack_start(*Gtk::manage(table), Gtk::PACK_EXPAND_WIDGET);
guint row = 0;
@@ -355,29 +345,16 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
gtk_widget_set_size_request (fontsel, 0, 150);
g_signal_connect( G_OBJECT(fontsel), "font_set", G_CALLBACK(fontChangeCB), this );
-#if WITH_GTKMM_3_0
table->attach(*Gtk::manage(Glib::wrap(fontsel)), 0, row, 3, 1);
-#else
- table->attach(*Gtk::manage(Glib::wrap(fontsel)),
- 0, 3, row, row + 1,
- Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL);
-#endif
-
row++;
// -------------------------------
{
- Gtk::Label *label = new Gtk::Label(_("Script: "));
+ auto label = new Gtk::Label(_("Script: "));
-#if WITH_GTKMM_3_0
table->attach( *Gtk::manage(label), 0, row, 1, 1);
-#else
- table->attach( *Gtk::manage(label),
- 0, 1, row, row + 1,
- Gtk::SHRINK, Gtk::SHRINK);
-#endif
scriptCombo = new Gtk::ComboBoxText();
for (std::map<GUnicodeScript, Glib::ustring>::iterator it = getScriptToName().begin(); it != getScriptToName().end(); ++it)
@@ -391,14 +368,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
Gtk::Alignment *align = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_START, Gtk::ALIGN_START, 0.0, 0.0));
align->add(*Gtk::manage(scriptCombo));
-#if WITH_GTKMM_3_0
align->set_hexpand();
table->attach( *align, 1, row, 1, 1);
-#else
- table->attach( *align,
- 1, 2, row, row + 1,
- Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK);
-#endif
}
row++;
@@ -406,15 +377,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
// -------------------------------
{
- Gtk::Label *label = new Gtk::Label(_("Range: "));
-
-#if WITH_GTKMM_3_0
+ auto label = new Gtk::Label(_("Range: "));
table->attach( *Gtk::manage(label), 0, row, 1, 1);
-#else
- table->attach( *Gtk::manage(label),
- 0, 1, row, row + 1,
- Gtk::SHRINK, Gtk::SHRINK);
-#endif
rangeCombo = new Gtk::ComboBoxText();
for ( std::vector<NamedRange>::iterator it = getRanges().begin(); it != getRanges().end(); ++it ) {
@@ -426,15 +390,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
instanceConns.push_back(conn);
Gtk::Alignment *align = new Gtk::Alignment(Gtk::ALIGN_START, Gtk::ALIGN_START, 0.0, 0.0);
align->add(*Gtk::manage(rangeCombo));
-
-#if WITH_GTKMM_3_0
align->set_hexpand();
table->attach( *Gtk::manage(align), 1, row, 1, 1);
-#else
- table->attach( *Gtk::manage(align),
- 1, 2, row, row + 1,
- Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK);
-#endif
}
row++;
@@ -457,16 +414,9 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
Gtk::ScrolledWindow *scroller = new Gtk::ScrolledWindow();
scroller->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
scroller->add(*Gtk::manage(iconView));
-
-#if WITH_GTKMM_3_0
scroller->set_hexpand();
scroller->set_vexpand();
table->attach(*Gtk::manage(scroller), 0, row, 3, 1);
-#else
- table->attach(*Gtk::manage(scroller),
- 0, 3, row, row + 1,
- Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL);
-#endif
row++;
@@ -496,15 +446,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) :
insertBtn->set_sensitive(false);
box->pack_end(*Gtk::manage(insertBtn), Gtk::PACK_SHRINK);
-
-#if WITH_GTKMM_3_0
box->set_hexpand();
table->attach( *Gtk::manage(box), 0, row, 3, 1);
-#else
- table->attach( *Gtk::manage(box),
- 0, 3, row, row + 1,
- Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
-#endif
row++;
@@ -586,12 +529,7 @@ void GlyphsPanel::insertText()
if (entry->get_text_length() > 0) {
glyphs = entry->get_text();
} else {
-
-#if WITH_GTKMM_3_0
- std::vector<Gtk::TreePath> itemArray = iconView->get_selected_items();
-#else
- Gtk::IconView::ArrayHandle_TreePaths itemArray = iconView->get_selected_items();
-#endif
+ auto itemArray = iconView->get_selected_items();
if (!itemArray.empty()) {
Gtk::TreeModel::Path const & path = *itemArray.begin();
@@ -636,11 +574,7 @@ void GlyphsPanel::glyphActivated(Gtk::TreeModel::Path const & path)
void GlyphsPanel::glyphSelectionChanged()
{
-#if WITH_GTKMM_3_0
- std::vector<Gtk::TreePath> itemArray = iconView->get_selected_items();
-#else
- Gtk::IconView::ArrayHandle_TreePaths itemArray = iconView->get_selected_items();
-#endif
+ auto itemArray = iconView->get_selected_items();
if (itemArray.empty()) {
label->set_text(" ");
diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp
index 692a2fac0..5872393ae 100644
--- a/src/ui/dialog/grid-arrange-tab.cpp
+++ b/src/ui/dialog/grid-arrange-tab.cpp
@@ -17,12 +17,9 @@
#include "ui/dialog/grid-arrange-tab.h"
#include <glibmm/i18n.h>
-#include <gtkmm/stock.h>
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-#endif
+#include <gtkmm/grid.h>
+#include <gtkmm/stock.h>
#include <2geom/transforms.h>
@@ -572,11 +569,7 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent)
: Parent(parent),
XPadding(_("X:"), _("Horizontal spacing between columns."), UNIT_TYPE_LINEAR, "", "object-columns", &PaddingUnitMenu),
YPadding(_("Y:"), _("Vertical spacing between rows."), XPadding, "", "object-rows", &PaddingUnitMenu),
-#if WITH_GTKMM_3_0
PaddingTable(Gtk::manage(new Gtk::Grid()))
-#else
- PaddingTable(Gtk::manage(new Gtk::Table(2, 2, false)))
-#endif
{
// bool used by spin button callbacks to stop loops where they change each other.
updating = false;
@@ -738,20 +731,11 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent)
}
PaddingTable->set_border_width(MARGIN);
-
-#if WITH_GTKMM_3_0
PaddingTable->set_row_spacing(MARGIN);
PaddingTable->set_column_spacing(MARGIN);
PaddingTable->attach(XPadding, 0, 0, 1, 1);
PaddingTable->attach(PaddingUnitMenu, 1, 0, 1, 1);
PaddingTable->attach(YPadding, 0, 1, 1, 1);
-#else
- PaddingTable->set_row_spacings(MARGIN);
- PaddingTable->set_col_spacings(MARGIN);
- PaddingTable->attach(XPadding, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
- PaddingTable->attach(PaddingUnitMenu, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
- PaddingTable->attach(YPadding, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
TileBox.pack_start(*PaddingTable, false, false, MARGIN);
diff --git a/src/ui/dialog/grid-arrange-tab.h b/src/ui/dialog/grid-arrange-tab.h
index a137d1694..891849f1a 100644
--- a/src/ui/dialog/grid-arrange-tab.h
+++ b/src/ui/dialog/grid-arrange-tab.h
@@ -111,12 +111,7 @@ private:
Inkscape::UI::Widget::UnitMenu PaddingUnitMenu;
Inkscape::UI::Widget::ScalarUnit XPadding;
Inkscape::UI::Widget::ScalarUnit YPadding;
-
-#if WITH_GTKMM_3_0
Gtk::Grid *PaddingTable;
-#else
- Gtk::Table *PaddingTable;
-#endif
// BBox or manual spacing
Gtk::VBox SpacingVBox;
diff --git a/src/ui/dialog/guides.cpp b/src/ui/dialog/guides.cpp
index 469bd5155..8d6ca4143 100644
--- a/src/ui/dialog/guides.cpp
+++ b/src/ui/dialog/guides.cpp
@@ -120,13 +120,8 @@ void GuidelinePropertiesDialog::_onOK()
g_free((gpointer) name);
-#if WITH_GTKMM_3_0
- const Gdk::RGBA c = _color.get_rgba();
+ const auto c = _color.get_rgba();
unsigned r = c.get_red_u()/257, g = c.get_green_u()/257, b = c.get_blue_u()/257;
-#else
- const Gdk::Color c = _color.get_color();
- unsigned r = c.get_red()/257, g = c.get_green()/257, b = c.get_blue()/257;
-#endif
//TODO: why 257? verify this!
_guide->set_color(r, g, b, true);
@@ -167,15 +162,9 @@ void GuidelinePropertiesDialog::_setup() {
add_button(Gtk::Stock::DELETE, -12);
add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
-#if WITH_GTKMM_3_0
- Gtk::Box *mainVBox = get_content_area();
+ auto mainVBox = get_content_area();
_layout_table.set_row_spacing(4);
_layout_table.set_column_spacing(4);
-#else
- Gtk::Box *mainVBox = get_vbox();
- _layout_table.set_spacings(4);
- _layout_table.resize (3, 4);
-#endif
mainVBox->pack_start(_layout_table, false, false, 0);
@@ -185,7 +174,6 @@ void GuidelinePropertiesDialog::_setup() {
_label_descr.set_label("foo1");
_label_descr.set_alignment(0, 0.5);
-#if WITH_GTKMM_3_0
_label_name.set_halign(Gtk::ALIGN_FILL);
_label_name.set_valign(Gtk::ALIGN_FILL);
_layout_table.attach(_label_name, 0, 0, 3, 1);
@@ -203,19 +191,6 @@ void GuidelinePropertiesDialog::_setup() {
_color.set_valign(Gtk::ALIGN_FILL);
_color.set_hexpand();
_layout_table.attach(_color, 1, 3, 2, 1);
-#else
- _layout_table.attach(_label_name,
- 0, 3, 0, 1, Gtk::FILL, Gtk::FILL);
-
- _layout_table.attach(_label_descr,
- 0, 3, 1, 2, Gtk::FILL, Gtk::FILL);
-
- _layout_table.attach(_label_entry,
- 1, 3, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-
- _layout_table.attach(_color,
- 1, 3, 3, 4, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-#endif
// unitmenus
/* fixme: We should allow percents here too, as percents of the canvas size */
@@ -234,7 +209,6 @@ void GuidelinePropertiesDialog::_setup() {
_spin_button_y.setIncrements(1.0, 10.0);
_spin_button_y.setRange(-1e6, 1e6);
-#if WITH_GTKMM_3_0
_spin_button_x.set_halign(Gtk::ALIGN_FILL);
_spin_button_x.set_valign(Gtk::ALIGN_FILL);
_spin_button_x.set_hexpand();
@@ -248,22 +222,12 @@ void GuidelinePropertiesDialog::_setup() {
_unit_menu.set_halign(Gtk::ALIGN_FILL);
_unit_menu.set_valign(Gtk::ALIGN_FILL);
_layout_table.attach(_unit_menu, 2, 4, 1, 1);
-#else
- _layout_table.attach(_spin_button_x,
- 1, 2, 4, 5, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
- _layout_table.attach(_spin_button_y,
- 1, 2, 5, 6, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-
- _layout_table.attach(_unit_menu,
- 2, 3, 4, 5, Gtk::FILL, Gtk::FILL);
-#endif
// angle spinbutton
_spin_angle.setDigits(3);
_spin_angle.setIncrements(1.0, 10.0);
_spin_angle.setRange(-3600., 3600.);
-#if WITH_GTKMM_3_0
_spin_angle.set_halign(Gtk::ALIGN_FILL);
_spin_angle.set_valign(Gtk::ALIGN_FILL);
_spin_angle.set_hexpand();
@@ -280,18 +244,6 @@ void GuidelinePropertiesDialog::_setup() {
_locked_toggle.set_valign(Gtk::ALIGN_FILL);
_locked_toggle.set_hexpand();
_layout_table.attach(_locked_toggle, 1, 8, 2, 1);
-#else
- _layout_table.attach(_spin_angle,
- 1, 3, 6, 7, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-
- // mode radio button
- _layout_table.attach(_relative_toggle,
- 1, 3, 7, 8, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-
- // locked radio button
- _layout_table.attach(_locked_toggle,
- 1, 3, 8, 9, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
-#endif
_relative_toggle.signal_toggled().connect(sigc::mem_fun(*this, &GuidelinePropertiesDialog::_modeChanged));
_relative_toggle.set_active(_relative_toggle_status);
@@ -344,15 +296,9 @@ void GuidelinePropertiesDialog::_setup() {
// init name entry
_label_entry.getEntry()->set_text(_guide->getLabel() ? _guide->getLabel() : "");
-#if WITH_GTKMM_3_0
Gdk::RGBA c;
c.set_rgba(((_guide->getColor()>>24)&0xff) / 255.0, ((_guide->getColor()>>16)&0xff) / 255.0, ((_guide->getColor()>>8)&0xff) / 255.0);
_color.set_rgba(c);
-#else
- Gdk::Color c;
- c.set_rgb_p(((_guide->getColor()>>24)&0xff) / 255.0, ((_guide->getColor()>>16)&0xff) / 255.0, ((_guide->getColor()>>8)&0xff) / 255.0);
- _color.set_color(c);
-#endif
_modeChanged(); // sets values of spinboxes.
diff --git a/src/ui/dialog/guides.h b/src/ui/dialog/guides.h
index 5dce0d6ed..25d32015c 100644
--- a/src/ui/dialog/guides.h
+++ b/src/ui/dialog/guides.h
@@ -16,12 +16,7 @@
#endif
#include <gtkmm/dialog.h>
-
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include <gtkmm/label.h>
#include <gtkmm/colorbutton.h>
@@ -71,12 +66,7 @@ private:
SPDesktop *_desktop;
SPGuide *_guide;
-#if WITH_GTKMM_3_0
- Gtk::Grid _layout_table;
-#else
- Gtk::Table _layout_table;
-#endif
-
+ Gtk::Grid _layout_table;
Gtk::Label _label_name;
Gtk::Label _label_descr;
Inkscape::UI::Widget::CheckButton _locked_toggle;
diff --git a/src/ui/dialog/icon-preview.h b/src/ui/dialog/icon-preview.h
index 8a6e19a25..caec7e3b5 100644
--- a/src/ui/dialog/icon-preview.h
+++ b/src/ui/dialog/icon-preview.h
@@ -66,13 +66,7 @@ private:
gdouble minDelay;
Gtk::VBox iconBox;
-
-#if WITH_GTKMM_3_0
Gtk::Paned splitter;
-#else
- Gtk::HPaned splitter;
-#endif
-
Glib::ustring targetId;
int hot;
int numEntries;
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 2f4ac8606..4574e93fe 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -78,12 +78,8 @@ InkscapePreferences::InkscapePreferences()
_getContents()->add(*sb);
show_all_children();
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
sb->get_preferred_size(sreq_natural, sreq);
-#else
- sreq = sb->size_request();
-#endif
_sb_width = sreq.width;
_getContents()->remove(*sb);
delete sb;
@@ -855,17 +851,10 @@ static void proofComboChanged( Gtk::ComboBoxText* combo )
}
static void gamutColorChanged( Gtk::ColorButton* btn ) {
-#if WITH_GTKMM_3_0
- Gdk::RGBA rgba = btn->get_rgba();
- gushort r = rgba.get_red_u();
- gushort g = rgba.get_green_u();
- gushort b = rgba.get_blue_u();
-#else
- Gdk::Color color = btn->get_color();
- gushort r = color.get_red();
- gushort g = color.get_green();
- gushort b = color.get_blue();
-#endif
+ auto rgba = btn->get_rgba();
+ auto r = rgba.get_red_u();
+ auto g = rgba.get_green_u();
+ auto b = rgba.get_blue_u();
gchar* tmp = g_strdup_printf("#%02x%02x%02x", (r >> 8), (g >> 8), (b >> 8) );
@@ -1035,13 +1024,8 @@ void InkscapePreferences::initPageIO()
Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
-#if WITH_GTKMM_3_0
Gdk::RGBA tmpColor( colorStr.empty() ? "#00ff00" : colorStr);
_cms_gamutcolor.set_rgba( tmpColor );
-#else
- Gdk::Color tmpColor( colorStr.empty() ? "#00ff00" : colorStr);
- _cms_gamutcolor.set_color( tmpColor );
-#endif
_page_cms.add_line( true, _("Out of gamut warning color:"), _cms_gamutcolor, "",
_("Selects the color used for out of gamut warning"), false);
@@ -1586,31 +1570,19 @@ void InkscapePreferences::initKeyboardShortcuts(Gtk::TreeModel::iterator iter_ui
int row = 3;
-#if WITH_GTKMM_3_0
scroller->set_hexpand();
scroller->set_vexpand();
_page_keyshortcuts.attach(*scroller, 0, row, 2, 1);
-#else
- _page_keyshortcuts.attach(*scroller, 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL);
-#endif
row++;
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox *box_buttons = Gtk::manage(new Gtk::ButtonBox);
-#else
- Gtk::HButtonBox *box_buttons = Gtk::manage (new Gtk::HButtonBox);
-#endif
+ auto box_buttons = Gtk::manage(new Gtk::ButtonBox);
box_buttons->set_layout(Gtk::BUTTONBOX_END);
box_buttons->set_spacing(4);
-#if WITH_GTKMM_3_0
box_buttons->set_hexpand();
_page_keyshortcuts.attach(*box_buttons, 0, row, 3, 1);
-#else
- _page_keyshortcuts.attach(*box_buttons, 0, 3, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK);
-#endif
UI::Widget::Button *kb_reset = Gtk::manage(new UI::Widget::Button(_("Reset"), _("Remove all your customized keyboard shortcuts, and revert to the shortcuts in the shortcut file listed above")));
box_buttons->pack_start(*kb_reset, true, true, 6);
@@ -2043,12 +2015,8 @@ bool InkscapePreferences::SetMaxDialogSize(const Gtk::TreeModel::iterator& iter)
_page_frame.add(*page);
this->show_all_children();
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
this->get_preferred_size(sreq_natural, sreq);
-#else
- sreq = this->size_request();
-#endif
_max_dialog_width=std::max(_max_dialog_width, sreq.width);
_max_dialog_height=std::max(_max_dialog_height, sreq.height);
_page_frame.remove();
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index d1abcfc58..781b5e48e 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -97,11 +97,7 @@ enum {
};
namespace Gtk {
-#if WITH_GTKMM_3_0
class Scale;
-#else
-class HScale;
-#endif
}
namespace Inkscape {
@@ -206,11 +202,7 @@ protected:
UI::Widget::PrefCheckButton _scroll_space;
UI::Widget::PrefCheckButton _wheel_zoom;
-#if WITH_GTKMM_3_0
Gtk::Scale *_slider_snapping_delay;
-#else
- Gtk::HScale *_slider_snapping_delay;
-#endif
UI::Widget::PrefCheckButton _snap_indicator;
UI::Widget::PrefCheckButton _snap_closest_only;
diff --git a/src/ui/dialog/input.cpp b/src/ui/dialog/input.cpp
index 1bfb59ae5..9fd2288e7 100644
--- a/src/ui/dialog/input.cpp
+++ b/src/ui/dialog/input.cpp
@@ -21,19 +21,13 @@
#include <gtkmm/cellrenderercombo.h>
#include <gtkmm/checkbutton.h>
#include <gtkmm/comboboxtext.h>
+#include <gtkmm/grid.h>
#include <gtkmm/liststore.h>
#include <gtkmm/menubar.h>
#include <gtkmm/notebook.h>
#include <gtkmm/paned.h>
#include <gtkmm/progressbar.h>
#include <gtkmm/scrolledwindow.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
#include <gtkmm/treestore.h>
#include "device-manager.h"
@@ -422,13 +416,7 @@ private:
Blink watcher;
Gtk::CheckButton useExt;
Gtk::Button save;
-
-#if WITH_GTKMM_3_0
Gtk::Paned pane;
-#else
- Gtk::HPaned pane;
-#endif
-
Gtk::VBox detailsBox;
Gtk::HBox titleFrame;
Gtk::Label titleLabel;
@@ -489,27 +477,14 @@ private:
Inkscape::UI::Widget::Frame axisFrame;
Gtk::ScrolledWindow treeScroller;
Gtk::ScrolledWindow detailScroller;
-
-#if WITH_GTKMM_3_0
Gtk::Paned splitter;
Gtk::Paned split2;
-#else
- Gtk::HPaned splitter;
- Gtk::VPaned split2;
-#endif
-
Gtk::Label devName;
Gtk::Label devKeyCount;
Gtk::Label devAxesCount;
Gtk::ComboBoxText axesCombo;
Gtk::ProgressBar axesValues[6];
-
-#if WITH_GTKMM_3_0
Gtk::Grid axisTable;
-#else
- Gtk::Table axisTable;
-#endif
-
Gtk::ComboBoxText buttonCombo;
Gtk::ComboBoxText linkCombo;
sigc::connection linkConnection;
@@ -519,13 +494,7 @@ private:
Gtk::Image testThumb;
Gtk::Image testButtons[24];
Gtk::Image testAxes[8];
-
-#if WITH_GTKMM_3_0
Gtk::Grid imageTable;
-#else
- Gtk::Table imageTable;
-#endif
-
Gtk::EventBox testDetector;
ConfPanel cfgPanel;
@@ -611,20 +580,11 @@ InputDialogImpl::InputDialogImpl() :
treeScroller(),
detailScroller(),
splitter(),
-#if WITH_GTKMM_3_0
split2(Gtk::ORIENTATION_VERTICAL),
axisTable(),
-#else
- split2(),
- axisTable(11, 2),
-#endif
linkCombo(),
topHolder(),
-#if WITH_GTKMM_3_0
imageTable(),
-#else
- imageTable(8, 7),
-#endif
testDetector(),
cfgPanel()
{
@@ -646,27 +606,16 @@ InputDialogImpl::InputDialogImpl() :
testFrame.add(testDetector);
testThumb.set(getPix(PIX_TABLET));
testThumb.set_padding(24, 24);
-
-#if WITH_GTKMM_3_0
testThumb.set_hexpand();
testThumb.set_vexpand();
imageTable.attach(testThumb, 0, 0, 8, 1);
-#else
- imageTable.attach(testThumb, 0, 8, 0, 1, ::Gtk::EXPAND, ::Gtk::EXPAND);
-#endif
{
guint col = 0;
guint row = 1;
for ( guint num = 0; num < G_N_ELEMENTS(testButtons); num++ ) {
testButtons[num].set(getPix(PIX_BUTTONS_NONE));
-
-#if WITH_GTKMM_3_0
imageTable.attach(testButtons[num], col, row, 1, 1);
-#else
- imageTable.attach(testButtons[num], col, col + 1, row, row + 1, ::Gtk::FILL, ::Gtk::FILL);
-#endif
-
col++;
if (col > 7) {
col = 0;
@@ -677,13 +626,7 @@ InputDialogImpl::InputDialogImpl() :
col = 0;
for ( guint num = 0; num < G_N_ELEMENTS(testAxes); num++ ) {
testAxes[num].set(getPix(PIX_AXIS_NONE));
-
-#if WITH_GTKMM_3_0
imageTable.attach(testAxes[num], col * 2, row, 2, 1);
-#else
- imageTable.attach(testAxes[num], col * 2, (col + 1) * 2, row, row + 1, ::Gtk::FILL, ::Gtk::FILL);
-#endif
-
col++;
if (col > 3) {
col = 0;
@@ -721,45 +664,17 @@ InputDialogImpl::InputDialogImpl() :
axisFrame.add(axisTable);
Gtk::Label *lbl = Gtk::manage(new Gtk::Label(_("Link:")));
-
-#if WITH_GTKMM_3_0
axisTable.attach(*lbl, 0, rowNum, 1, 1);
-#else
- axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
-#endif
-
linkCombo.append(_("None"));
linkCombo.set_active_text(_("None"));
linkCombo.set_sensitive(false);
linkConnection = linkCombo.signal_changed().connect(sigc::mem_fun(*this, &InputDialogImpl::linkComboChanged));
-
-#if WITH_GTKMM_3_0
axisTable.attach(linkCombo, 1, rowNum, 1, 1);
-#else
- axisTable.attach(linkCombo, 1, 2, rowNum, rowNum + 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
-#endif
-
rowNum++;
-
lbl = Gtk::manage(new Gtk::Label(_("Axes count:")));
-
-#if WITH_GTKMM_3_0
axisTable.attach(*lbl, 0, rowNum, 1, 1);
axisTable.attach(devAxesCount, 1, rowNum, 1, 1);
-#else
- axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
- axisTable.attach(devAxesCount, 1, 2, rowNum, rowNum + 1,
- ::Gtk::SHRINK,
- ::Gtk::SHRINK);
-#endif
-
rowNum++;
@@ -777,22 +692,11 @@ InputDialogImpl::InputDialogImpl() :
for ( guint barNum = 0; barNum < static_cast<guint>(G_N_ELEMENTS(axesValues)); barNum++ ) {
lbl = Gtk::manage(new Gtk::Label(_("axis:")));
-
-#if WITH_GTKMM_3_0
lbl->set_hexpand();
axisTable.attach(*lbl, 0, rowNum, 1, 1);
axesValues[barNum].set_hexpand();
axisTable.attach(axesValues[barNum], 1, rowNum, 1, 1);
-#else
- axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1,
- ::Gtk::EXPAND,
- ::Gtk::SHRINK);
- axisTable.attach(axesValues[barNum], 1, 2, rowNum, rowNum + 1,
- ::Gtk::EXPAND,
- ::Gtk::SHRINK);
-#endif
-
axesValues[barNum].set_sensitive(false);
rowNum++;
@@ -802,17 +706,8 @@ InputDialogImpl::InputDialogImpl() :
lbl = Gtk::manage(new Gtk::Label(_("Button count:")));
-#if WITH_GTKMM_3_0
axisTable.attach(*lbl, 0, rowNum, 1, 1);
axisTable.attach(devKeyCount, 1, rowNum, 1, 1);
-#else
- axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
- axisTable.attach(devKeyCount, 1, 2, rowNum, rowNum + 1,
- ::Gtk::SHRINK,
- ::Gtk::SHRINK);
-#endif
rowNum++;
@@ -828,13 +723,7 @@ InputDialogImpl::InputDialogImpl() :
rowNum++;
*/
-#if WITH_GTKMM_3_0
axisTable.attach(keyVal, 0, rowNum, 2, 1);
-#else
- axisTable.attach(keyVal, 0, 2, rowNum, rowNum + 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
-#endif
rowNum++;
@@ -848,18 +737,9 @@ InputDialogImpl::InputDialogImpl() :
// TODO: Extension event stuff has been removed from public API in GTK+ 3
// Need to check that this hasn't broken anything
-#if !GTK_CHECK_VERSION(3,0,0)
- gtk_widget_set_extension_events( GTK_WIDGET(testDetector.gobj()), GDK_EXTENSION_EVENTS_ALL );
-#endif
testDetector.add_events(Gdk::POINTER_MOTION_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK |Gdk::PROXIMITY_IN_MASK|Gdk::PROXIMITY_OUT_MASK|Gdk::SCROLL_MASK);
-#if WITH_GTKMM_3_0
axisTable.attach(keyEntry, 0, rowNum, 2, 1);
-#else
- axisTable.attach(keyEntry, 0, 2, rowNum, rowNum + 1,
- ::Gtk::FILL,
- ::Gtk::SHRINK);
-#endif
rowNum++;
@@ -1141,12 +1021,7 @@ InputDialogImpl::ConfPanel::ConfPanel() :
useExt.set_active(Preferences::get()->getBool("/options/useextinput/value"));
useExt.signal_toggled().connect(sigc::mem_fun(*this, &InputDialogImpl::ConfPanel::useExtToggled));
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox *buttonBox = Gtk::manage(new Gtk::ButtonBox);
-#else
- Gtk::HButtonBox *buttonBox = Gtk::manage (new Gtk::HButtonBox);
-#endif
-
+ auto buttonBox = Gtk::manage(new Gtk::ButtonBox);
buttonBox->set_layout (Gtk::BUTTONBOX_END);
//Gtk::Alignment *align = new Gtk::Alignment(Gtk::ALIGN_END, Gtk::ALIGN_START, 0, 0);
buttonBox->add(save);
@@ -1930,7 +1805,6 @@ bool InputDialogImpl::eventSnoop(GdkEvent* event)
testThumb.set(getPix(PIX_ERASER));
break;
}
-#if WITH_GTKMM_3_0
/// \fixme GTK3 added new GDK_SOURCEs that should be handled here!
case GDK_SOURCE_KEYBOARD:
case GDK_SOURCE_TOUCHSCREEN:
@@ -1938,7 +1812,6 @@ bool InputDialogImpl::eventSnoop(GdkEvent* event)
g_warning("InputDialogImpl::eventSnoop : unhandled GDK_SOURCE type!");
break;
}
-#endif
}
updateTestButtons(key, hotButton);
diff --git a/src/ui/dialog/layer-properties.cpp b/src/ui/dialog/layer-properties.cpp
index 9cfc21e18..4aa86cc48 100644
--- a/src/ui/dialog/layer-properties.cpp
+++ b/src/ui/dialog/layer-properties.cpp
@@ -38,22 +38,15 @@ namespace Dialogs {
LayerPropertiesDialog::LayerPropertiesDialog()
: _strategy(NULL), _desktop(NULL), _layer(NULL), _position_visible(false)
{
-#if WITH_GTKMM_3_0
- Gtk::Box *mainVBox = get_content_area();
+ auto mainVBox = get_content_area();
_layout_table.set_row_spacing(4);
_layout_table.set_column_spacing(4);
-#else
- Gtk::Box *mainVBox = get_vbox();
- _layout_table.set_spacings(4);
- _layout_table.resize (1, 2);
-#endif
// Layer name widgets
_layer_name_entry.set_activates_default(true);
_layer_name_label.set_label(_("Layer name:"));
_layer_name_label.set_alignment(1.0, 0.5);
-#if WITH_GTKMM_3_0
_layer_name_label.set_halign(Gtk::ALIGN_FILL);
_layer_name_label.set_valign(Gtk::ALIGN_FILL);
_layout_table.attach(_layer_name_label, 0, 0, 1, 1);
@@ -62,12 +55,6 @@ LayerPropertiesDialog::LayerPropertiesDialog()
_layer_name_entry.set_valign(Gtk::ALIGN_FILL);
_layer_name_entry.set_hexpand();
_layout_table.attach(_layer_name_entry, 1, 0, 1, 1);
-#else
- _layout_table.attach(_layer_name_label,
- 0, 1, 0, 1, Gtk::FILL, Gtk::FILL);
- _layout_table.attach(_layer_name_entry,
- 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL);
-#endif
mainVBox->pack_start(_layout_table, true, true, 4);
@@ -164,10 +151,6 @@ LayerPropertiesDialog::_setup_position_controls() {
_layer_position_combo.set_cell_data_func(_label_renderer,
sigc::mem_fun(*this, &LayerPropertiesDialog::_prepareLabelRenderer));
-#if !WITH_GTKMM_3_0
- _layout_table.resize (2, 2);
-#endif
-
Gtk::ListStore::iterator row;
row = _dropdown_list->append();
row->set_value(_dropdown_columns.position, LPOS_ABOVE);
@@ -183,7 +166,6 @@ LayerPropertiesDialog::_setup_position_controls() {
_layer_position_label.set_label(_("Position:"));
_layer_position_label.set_alignment(1.0, 0.5);
-#if WITH_GTKMM_3_0
_layer_position_combo.set_halign(Gtk::ALIGN_FILL);
_layer_position_combo.set_valign(Gtk::ALIGN_FILL);
_layer_position_combo.set_hexpand();
@@ -192,12 +174,6 @@ LayerPropertiesDialog::_setup_position_controls() {
_layer_position_label.set_halign(Gtk::ALIGN_FILL);
_layer_position_label.set_valign(Gtk::ALIGN_FILL);
_layout_table.attach(_layer_position_label, 0, 1, 1, 1);
-#else
- _layout_table.attach(_layer_position_combo,
- 1, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL);
- _layout_table.attach(_layer_position_label,
- 0, 1, 1, 2, Gtk::FILL, Gtk::FILL);
-#endif
show_all_children();
}
@@ -252,16 +228,11 @@ LayerPropertiesDialog::_setup_layers_controls() {
_layout_table.remove(_layer_name_entry);
_layout_table.remove(_layer_name_label);
-#if WITH_GTKMM_3_0
_scroller.set_halign(Gtk::ALIGN_FILL);
_scroller.set_valign(Gtk::ALIGN_FILL);
_scroller.set_hexpand();
_scroller.set_vexpand();
_layout_table.attach(_scroller, 0, 1, 2, 1);
-#else
- _layout_table.attach(_scroller,
- 0, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND);
-#endif
show_all_children();
}
diff --git a/src/ui/dialog/layer-properties.h b/src/ui/dialog/layer-properties.h
index c75a7f190..f62f22782 100644
--- a/src/ui/dialog/layer-properties.h
+++ b/src/ui/dialog/layer-properties.h
@@ -19,12 +19,7 @@
#include <gtkmm/dialog.h>
#include <gtkmm/entry.h>
#include <gtkmm/label.h>
-
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include <gtkmm/combobox.h>
#include <gtkmm/liststore.h>
@@ -102,12 +97,7 @@ protected:
Gtk::Entry _layer_name_entry;
Gtk::Label _layer_position_label;
Gtk::ComboBox _layer_position_combo;
-
-#if WITH_GTKMM_3_0
Gtk::Grid _layout_table;
-#else
- Gtk::Table _layout_table;
-#endif
bool _position_visible;
diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp
index c75c631d7..dd9d7ec25 100644
--- a/src/ui/dialog/layers.cpp
+++ b/src/ui/dialog/layers.cpp
@@ -858,12 +858,8 @@ LayersPanel::LayersPanel() :
_scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC );
_scroller.set_shadow_type(Gtk::SHADOW_IN);
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
_scroller.get_preferred_size(sreq_natural, sreq);
-#else
- sreq = _scroller.size_request();
-#endif
int minHeight = 70;
if (sreq.height < minHeight) {
// Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar
diff --git a/src/ui/dialog/layers.h b/src/ui/dialog/layers.h
index 9cd2c3b92..893b31557 100644
--- a/src/ui/dialog/layers.h
+++ b/src/ui/dialog/layers.h
@@ -124,15 +124,9 @@ private:
Gtk::TreeView _tree;
Gtk::CellRendererText *_text_renderer;
Gtk::TreeView::Column *_name_column;
-#if WITH_GTKMM_3_0
Gtk::Box _buttonsRow;
Gtk::Box _buttonsPrimary;
Gtk::Box _buttonsSecondary;
-#else
- Gtk::HBox _buttonsRow;
- Gtk::HBox _buttonsPrimary;
- Gtk::HBox _buttonsSecondary;
-#endif
Gtk::ScrolledWindow _scroller;
Gtk::Menu _popupMenu;
Inkscape::UI::Widget::SpinButton _spinBtn;
diff --git a/src/ui/dialog/livepatheffect-add.cpp b/src/ui/dialog/livepatheffect-add.cpp
index 3602b04df..917e48ac6 100644
--- a/src/ui/dialog/livepatheffect-add.cpp
+++ b/src/ui/dialog/livepatheffect-add.cpp
@@ -73,11 +73,7 @@ LivePathEffectAdd::LivePathEffectAdd() :
add_button.set_use_underline(true);
add_button.set_can_default();
-#if WITH_GTKMM_3_0
- Gtk::Box *mainVBox = get_content_area();
-#else
- Gtk::Box *mainVBox = get_vbox();
-#endif
+ auto mainVBox = get_content_area();
mainVBox->pack_start(scrolled_window, true, true);
add_action_widget(close_button, Gtk::RESPONSE_CLOSE);
diff --git a/src/ui/dialog/livepatheffect-editor.cpp b/src/ui/dialog/livepatheffect-editor.cpp
index ac64143f1..459d8d4ee 100644
--- a/src/ui/dialog/livepatheffect-editor.cpp
+++ b/src/ui/dialog/livepatheffect-editor.cpp
@@ -125,13 +125,6 @@ LivePathEffectEditor::LivePathEffectEditor()
// Add toolbar items to toolbar
toolbar_hbox.set_layout (Gtk::BUTTONBOX_END);
-
-#if !WITH_GTKMM_3_0
- // TODO: This has been removed from Gtkmm 3.0. Check that
- // everything still looks OK!
- toolbar_hbox.set_child_min_width( 16 );
-#endif
-
toolbar_hbox.add( button_add );
toolbar_hbox.set_child_secondary( button_add , true);
toolbar_hbox.add( button_remove );
diff --git a/src/ui/dialog/livepatheffect-editor.h b/src/ui/dialog/livepatheffect-editor.h
index 4aac25eaa..b69ee007a 100644
--- a/src/ui/dialog/livepatheffect-editor.h
+++ b/src/ui/dialog/livepatheffect-editor.h
@@ -112,11 +112,7 @@ private:
void on_visibility_toggled( Glib::ustring const& str );
-#if WITH_GTKMM_3_0
Gtk::ButtonBox toolbar_hbox;
-#else
- Gtk::HButtonBox toolbar_hbox;
-#endif
Gtk::Button button_add;
Gtk::Button button_remove;
Gtk::Button button_up;
diff --git a/src/ui/dialog/new-from-template.cpp b/src/ui/dialog/new-from-template.cpp
index 96fa72791..2b33fd54d 100644
--- a/src/ui/dialog/new-from-template.cpp
+++ b/src/ui/dialog/new-from-template.cpp
@@ -30,20 +30,12 @@ NewFromTemplate::NewFromTemplate()
_main_widget = new TemplateLoadTab(this);
-#if WITH_GTKMM_3_0
get_content_area()->pack_start(*_main_widget);
-#else
- get_vbox()->pack_start(*_main_widget);
-#endif
Gtk::Alignment *align;
align = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER, 0.0, 0.0));
-#if WITH_GTKMM_3_0
get_content_area()->pack_end(*align, Gtk::PACK_SHRINK);
-#else
- get_vbox()->pack_end(*align, Gtk::PACK_SHRINK);
-#endif
align->set_padding(0, 0, 0, 15);
align->add(_create_template_button);
diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp
index 545c240fc..191216eea 100644
--- a/src/ui/dialog/object-properties.cpp
+++ b/src/ui/dialog/object-properties.cpp
@@ -37,12 +37,7 @@
#include "sp-image.h"
#include <glibmm/i18n.h>
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
+#include <gtkmm/grid.h>
namespace Inkscape {
namespace UI {
@@ -103,16 +98,9 @@ void ObjectProperties::_init()
Gtk::Box *contents = _getContents();
contents->set_spacing(0);
-#if WITH_GTKMM_3_0
- Gtk::Grid *grid_top = Gtk::manage(new Gtk::Grid());
+ auto grid_top = Gtk::manage(new Gtk::Grid());
grid_top->set_row_spacing(4);
grid_top->set_column_spacing(0);
-#else
- Gtk::Table *grid_top = Gtk::manage(new Gtk::Table(4, 4));
- grid_top->set_row_spacings(4);
- grid_top->set_col_spacings(0);
-#endif
-
grid_top->set_border_width(4);
contents->pack_start(*grid_top, false, false, 0);
@@ -121,29 +109,14 @@ void ObjectProperties::_init()
/* Create the label for the object id */
_label_id.set_label(_label_id.get_label() + " ");
_label_id.set_alignment(1, 0.5);
-
-#if WITH_GTKMM_3_0
_label_id.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_label_id, 0, 0, 1, 1);
-#else
- grid_top->attach(_label_id, 0, 1, 0, 1,
- Gtk::SHRINK | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
-
/* Create the entry box for the object id */
_entry_id.set_tooltip_text(_("The id= attribute (only letters, digits, and the characters .-_: allowed)"));
_entry_id.set_max_length(64);
-
-#if WITH_GTKMM_3_0
_entry_id.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_entry_id, 1, 0, 1, 1);
-#else
- grid_top->attach(_entry_id, 1, 2, 0, 1,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_label_id.set_mnemonic_widget(_entry_id);
@@ -157,29 +130,16 @@ void ObjectProperties::_init()
_label_label.set_label(_label_label.get_label() + " ");
_label_label.set_alignment(1, 0.5);
-#if WITH_GTKMM_3_0
_label_label.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_label_label, 0, 1, 1, 1);
-#else
- grid_top->attach(_label_label, 0, 1, 1, 2,
- Gtk::SHRINK | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
-
/* Create the entry box for the object label */
_entry_label.set_tooltip_text(_("A freeform label for the object"));
_entry_label.set_max_length(256);
-#if WITH_GTKMM_3_0
_entry_label.set_hexpand();
_entry_label.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_entry_label, 1, 1, 1, 1);
-#else
- grid_top->attach(_entry_label, 1, 2, 1, 2,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_label_label.set_mnemonic_widget(_entry_label);
@@ -191,28 +151,16 @@ void ObjectProperties::_init()
_label_title.set_label(_label_title.get_label() + " ");
_label_title.set_alignment (1, 0.5);
-#if WITH_GTKMM_3_0
_label_title.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_label_title, 0, 2, 1, 1);
-#else
- grid_top->attach(_label_title, 0, 1, 2, 3,
- Gtk::SHRINK | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
/* Create the entry box for the object title */
_entry_title.set_sensitive (FALSE);
_entry_title.set_max_length (256);
-#if WITH_GTKMM_3_0
_entry_title.set_hexpand();
_entry_title.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_entry_title, 1, 2, 1, 1);
-#else
- grid_top->attach(_entry_title, 1, 2, 2, 3,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_label_title.set_mnemonic_widget(_entry_title);
// pressing enter in the label field is the same as clicking Set:
@@ -241,14 +189,8 @@ void ObjectProperties::_init()
_label_image_rendering.set_label(_label_image_rendering.get_label() + " ");
_label_image_rendering.set_alignment(1, 0.5);
-#if WITH_GTKMM_3_0
_label_image_rendering.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_label_image_rendering, 0, 3, 1, 1);
-#else
- grid_top->attach(_label_image_rendering, 0, 1, 3, 4,
- Gtk::SHRINK | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
/* Create the combo box text for the 'image-rendering' property */
_combo_image_rendering.append( "auto" );
@@ -256,14 +198,8 @@ void ObjectProperties::_init()
_combo_image_rendering.append( "optimizeSpeed" );
_combo_image_rendering.set_tooltip_text(_("The 'image-rendering' property can influence how a bitmap is up-scaled:\n\t'auto' no preference;\n\t'optimizeQuality' smooth;\n\t'optimizeSpeed' blocky.\nNote that this behaviour is not defined in the SVG 1.1 specification and not all browsers follow this interpretation."));
-#if WITH_GTKMM_3_0
_combo_image_rendering.set_valign(Gtk::ALIGN_CENTER);
grid_top->attach(_combo_image_rendering, 1, 3, 1, 1);
-#else
- grid_top->attach(_combo_image_rendering, 1, 2, 3, 4,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_label_image_rendering.set_mnemonic_widget(_combo_image_rendering);
@@ -275,60 +211,36 @@ void ObjectProperties::_init()
Gtk::HBox *hb_checkboxes = Gtk::manage(new Gtk::HBox());
contents->pack_start(*hb_checkboxes, FALSE, FALSE, 0);
-#if WITH_GTKMM_3_0
- Gtk::Grid *grid_cb = Gtk::manage(new Gtk::Grid());
+ auto grid_cb = Gtk::manage(new Gtk::Grid());
grid_cb->set_row_homogeneous();
grid_cb->set_column_homogeneous(true);
-#else
- Gtk::Table *grid_cb = Gtk::manage(new Gtk::Table(1, 2, true));
-#endif
grid_cb->set_border_width(4);
hb_checkboxes->pack_start(*grid_cb, true, true, 0);
/* Hide */
_cb_hide.set_tooltip_text (_("Check to make the object invisible"));
-
-#if WITH_GTKMM_3_0
_cb_hide.set_hexpand();
_cb_hide.set_valign(Gtk::ALIGN_CENTER);
grid_cb->attach(_cb_hide, 0, 0, 1, 1);
-#else
- grid_cb->attach(_cb_hide, 0, 1, 0, 1,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_cb_hide.signal_toggled().connect(sigc::mem_fun(this, &ObjectProperties::_hiddenToggled));
/* Lock */
// TRANSLATORS: "Lock" is a verb here
_cb_lock.set_tooltip_text(_("Check to make the object insensitive (not selectable by mouse)"));
-
-#if WITH_GTKMM_3_0
_cb_lock.set_hexpand();
_cb_lock.set_valign(Gtk::ALIGN_CENTER);
grid_cb->attach(_cb_lock, 1, 0, 1, 1);
-#else
- grid_cb->attach(_cb_lock, 1, 2, 0, 1,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
_cb_lock.signal_toggled().connect(sigc::mem_fun(this, &ObjectProperties::_sensitivityToggled));
/* Button for setting the object's id, label, title and description. */
Gtk::Button *btn_set = Gtk::manage(new Gtk::Button(_("_Set"), 1));
-#if WITH_GTKMM_3_0
btn_set->set_hexpand();
btn_set->set_valign(Gtk::ALIGN_CENTER);
grid_cb->attach(*btn_set, 2, 0, 1, 1);
-#else
- grid_cb->attach(*btn_set, 2, 3, 0, 1,
- Gtk::EXPAND | Gtk::FILL,
- Gtk::AttachOptions(), 0, 0 );
-#endif
btn_set->signal_clicked().connect(sigc::mem_fun(this, &ObjectProperties::_labelChanged));
diff --git a/src/ui/dialog/object-properties.h b/src/ui/dialog/object-properties.h
index dc28c0bad..8551d5fca 100644
--- a/src/ui/dialog/object-properties.h
+++ b/src/ui/dialog/object-properties.h
@@ -50,11 +50,7 @@ class SPDesktop;
class SPItem;
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
namespace Inkscape {
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp
index 72cbc5ecc..09ffc9c4c 100644
--- a/src/ui/dialog/objects.cpp
+++ b/src/ui/dialog/objects.cpp
@@ -499,11 +499,7 @@ void ObjectsPanel::_setCompositingValues(SPItem *item)
_blurConnection.block();
//Set the opacity
-#if WITH_GTKMM_3_0
_opacity_adjustment->set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment->get_upper());
-#else
- _opacity_adjustment.set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment.get_upper());
-#endif
SPFeBlend *spblend = NULL;
SPGaussianBlur *spblur = NULL;
if (item->style->getFilter())
@@ -1473,11 +1469,7 @@ void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter)
if (item)
{
item->style->opacity.set = TRUE;
-#if WITH_GTKMM_3_0
item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment->get_value() / _opacity_adjustment->get_upper());
-#else
- item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment.get_value() / _opacity_adjustment.get_upper());
-#endif
item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT);
}
}
@@ -1629,11 +1621,7 @@ ObjectsPanel::ObjectsPanel() :
_opacity_vbox(false, 0),
_opacity_label(_("Opacity:")),
_opacity_label_unit(_("%")),
-#if WITH_GTKMM_3_0
_opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)),
-#else
- _opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0),
-#endif
_opacity_hscale(_opacity_adjustment),
_opacity_spin_button(_opacity_adjustment, 0.01, 1),
_fe_cb(UI::Widget::SimpleFilterModifier::BLEND),
@@ -1763,12 +1751,8 @@ ObjectsPanel::ObjectsPanel() :
_scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC );
_scroller.set_shadow_type(Gtk::SHADOW_IN);
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
_scroller.get_preferred_size(sreq_natural, sreq);
-#else
- sreq = _scroller.size_request();
-#endif
int minHeight = 70;
if (sreq.height < minHeight) {
// Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar
@@ -1801,13 +1785,8 @@ ObjectsPanel::ObjectsPanel() :
_opacity_hbox.pack_start(_opacity_spin_button, false, false, 0);
_opacity_hbox.pack_start(_opacity_label_unit, false, false, 3);
_opacity_hscale.set_draw_value(false);
-#if WITH_GTKMM_3_0
_opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged));
_opacity_label.set_mnemonic_widget(_opacity_hscale);
-#else
- _opacityConnection = _opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged));
- _opacity_label.set_mnemonic_widget(_opacity_hscale);
-#endif
//Keep the labels aligned
GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h
index 9b9a6025a..018f9191f 100644
--- a/src/ui/dialog/objects.h
+++ b/src/ui/dialog/objects.h
@@ -134,15 +134,9 @@ private:
Gtk::TreeView _tree;
Gtk::CellRendererText *_text_renderer;
Gtk::TreeView::Column *_name_column;
-#if WITH_GTKMM_3_0
Gtk::Box _buttonsRow;
Gtk::Box _buttonsPrimary;
Gtk::Box _buttonsSecondary;
-#else
- Gtk::HBox _buttonsRow;
- Gtk::HBox _buttonsPrimary;
- Gtk::HBox _buttonsSecondary;
-#endif
Gtk::ScrolledWindow _scroller;
Gtk::Menu _popupMenu;
Inkscape::UI::Widget::SpinButton _spinBtn;
@@ -161,11 +155,7 @@ private:
Gtk::HBox _opacity_hbox;
Gtk::Label _opacity_label;
Gtk::Label _opacity_label_unit;
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> _opacity_adjustment;
-#else
- Gtk::Adjustment _opacity_adjustment;
-#endif
Gtk::HScale _opacity_hscale;
Inkscape::UI::Widget::SpinButton _opacity_spin_button;
diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp
index 3353d2878..878b68d55 100644
--- a/src/ui/dialog/ocaldialogs.cpp
+++ b/src/ui/dialog/ocaldialogs.cpp
@@ -311,27 +311,10 @@ LoadingBox::LoadingBox() : Gtk::EventBox()
draw_spinner = false;
spinner_step = 0;
-#if WITH_GTKMM_3_0
signal_draw().connect(sigc::mem_fun(*this, &LoadingBox::_on_draw), false);
-#else
- signal_expose_event().connect(sigc::mem_fun(*this, &LoadingBox::_on_expose_event), false);
-#endif
-}
-
-#if !WITH_GTKMM_3_0
-bool LoadingBox::_on_expose_event(GdkEventExpose* /*event*/)
-{
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
-
- return _on_draw(cr);
}
-#endif
-bool LoadingBox::_on_draw(const Cairo::RefPtr<Cairo::Context> &
-#if WITH_GTKMM_3_0
-cr
-#endif
-)
+bool LoadingBox::_on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
{
// Draw shadow
int x = get_allocation().get_x();
@@ -339,27 +322,14 @@ cr
int width = get_allocation().get_width();
int height = get_allocation().get_height();
-#if WITH_GTKMM_3_0
get_style_context()->render_frame(cr, x, y, width, height);
-#else
- get_style()->paint_shadow(get_window(), get_state(), Gtk::SHADOW_IN,
- Gdk::Rectangle(x, y, width, height),
- *this, Glib::ustring("viewport"), x, y, width, height);
-#endif
if (draw_spinner) {
int spinner_size = 16;
int spinner_x = x + (width - spinner_size) / 2;
int spinner_y = y + (height - spinner_size) / 2;
-#if WITH_GTKMM_3_0
get_style_context()->render_activity(cr, spinner_x, spinner_y, spinner_size, spinner_size);
-#else
- gtk_paint_spinner(gtk_widget_get_style(GTK_WIDGET(gobj())),
- gtk_widget_get_window(GTK_WIDGET(gobj())),
- gtk_widget_get_state(GTK_WIDGET(gobj())), NULL, GTK_WIDGET(gobj()),
- NULL, spinner_step, spinner_x, spinner_y, spinner_size, spinner_size);
-#endif
}
return false;
@@ -429,11 +399,7 @@ PreviewWidget::PreviewWidget() : Gtk::VBox(false, 12)
box_loading->set_size_request(90, 90);
set_border_width(12);
-#if WITH_GTKMM_3_0
signal_draw().connect(sigc::mem_fun(*this, &PreviewWidget::_on_draw), false);
-#else
- signal_expose_event().connect(sigc::mem_fun(*this, &PreviewWidget::_on_expose_event), false);
-#endif
clear();
}
@@ -477,15 +443,6 @@ void PreviewWidget::clear()
image->hide();
}
-#if !WITH_GTKMM_3_0
-bool PreviewWidget::_on_expose_event(GdkEventExpose* /*event*/)
-{
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
-
- return _on_draw(cr);
-}
-#endif
-
bool PreviewWidget::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
// Draw background
@@ -494,16 +451,10 @@ bool PreviewWidget::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
int width = get_allocation().get_width();
int height = get_allocation().get_height();
-#if WITH_GTKMM_3_0
Gdk::RGBA background_fill;
get_style_context()->lookup_color("base_color", background_fill);
cr->rectangle(x, y, width, height);
Gdk::Cairo::set_source_rgba(cr, background_fill);
-#else
- Gdk::Color background_fill = get_style()->get_base(get_state());
- cr->rectangle(x, y, width, height);
- Gdk::Cairo::set_source_color(cr, background_fill);
-#endif
cr->fill();
@@ -568,57 +519,12 @@ void StatusWidget::end_process()
clear();
}
-#if !GTK_CHECK_VERSION(3,0,0)
-SearchEntry::SearchEntry() : Gtk::Entry()
-{
- signal_changed().connect(sigc::mem_fun(*this, &SearchEntry::_on_changed));
- signal_icon_press().connect(sigc::mem_fun(*this, &SearchEntry::_on_icon_pressed));
-
- set_icon_from_icon_name(INKSCAPE_ICON("edit-find"), Gtk::ENTRY_ICON_PRIMARY);
- gtk_entry_set_icon_from_icon_name(gobj(), GTK_ENTRY_ICON_SECONDARY, NULL);
-}
-
-void SearchEntry::_on_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* /*event*/)
-{
- if (icon_position == Gtk::ENTRY_ICON_SECONDARY) {
- grab_focus();
- delete_text(0, -1);
- } else if (icon_position == Gtk::ENTRY_ICON_PRIMARY) {
- select_region(0, -1);
- grab_focus();
- }
-}
-
-void SearchEntry::_on_changed()
-{
- if (get_text().empty()) {
- gtk_entry_set_icon_from_icon_name(gobj(), GTK_ENTRY_ICON_SECONDARY, NULL);
- } else {
- set_icon_from_icon_name(INKSCAPE_ICON("edit-clear"), Gtk::ENTRY_ICON_SECONDARY);
- }
-}
-#endif
-
-
BaseBox::BaseBox() : Gtk::EventBox()
{
-#if WITH_GTKMM_3_0
signal_draw().connect(sigc::mem_fun(*this, &BaseBox::_on_draw), false);
-#else
- signal_expose_event().connect(sigc::mem_fun(*this, &BaseBox::_on_expose_event), false);
-#endif
set_visible_window(false);
}
-#if !WITH_GTKMM_3_0
-bool BaseBox::_on_expose_event(GdkEventExpose* /*event*/)
-{
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
-
- return _on_draw(cr);
-}
-#endif
-
bool BaseBox::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
// Draw background and shadow
@@ -627,23 +533,12 @@ bool BaseBox::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
int width = get_allocation().get_width();
int height = get_allocation().get_height();
-#if WITH_GTKMM_3_0
Gdk::RGBA background_fill;
get_style_context()->lookup_color("base_color", background_fill);
cr->rectangle(x, y, width, height);
Gdk::Cairo::set_source_rgba(cr, background_fill);
cr->fill();
get_style_context()->render_frame(cr, x, y, width, height);
-#else
- Gdk::Color background_fill = get_style()->get_base(get_state());
- cr->rectangle(x, y, width, height);
- Gdk::Cairo::set_source_color(cr, background_fill);
- cr->fill();
-
- get_style()->paint_shadow(get_window(), get_state(), Gtk::SHADOW_IN,
- Gdk::Rectangle(x, y, width, height),
- *this, Glib::ustring("viewport"), x, y, width, height);
-#endif
return false;
}
@@ -660,23 +555,10 @@ LogoArea::LogoArea() : Gtk::EventBox()
draw_logo = false;
}
-#if WITH_GTKMM_3_0
signal_draw().connect(sigc::mem_fun(*this, &LogoArea::_on_draw));
-#else
- signal_expose_event().connect(sigc::mem_fun(*this, &LogoArea::_on_expose_event));
-#endif
set_visible_window(false);
}
-#if !WITH_GTKMM_3_0
-bool LogoArea::_on_expose_event(GdkEventExpose* /*event*/)
-{
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
-
- return _on_draw(cr);
-}
-#endif
-
bool LogoArea::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
if (draw_logo) {
@@ -687,16 +569,9 @@ bool LogoArea::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
int x_logo = x + (width - 220) / 2;
int y_logo = y + (height - 76) / 2;
- // Draw logo, we mask [read fill] it with the mid colour from the
- // user's GTK theme
-#if WITH_GTKMM_3_0
- // For GTK+ 3, use grey
+ // Draw logo, we mask [read fill] it with grey
Gdk::RGBA logo_fill("grey");
Gdk::Cairo::set_source_rgba(cr, logo_fill);
-#else
- Gdk::Color logo_fill = get_style()->get_mid(get_state());
- Gdk::Cairo::set_source_color(cr, logo_fill);
-#endif
cr->mask(logo_mask, x_logo, y_logo);
}
@@ -1174,16 +1049,9 @@ void ImportDialog::update_label_no_search_results()
Glib::ustring msg_two = _("Please make sure all keywords are spelled correctly,"
" or try again with different keywords.");
-#if WITH_GTKMM_3_0
- Glib::ustring markup = Glib::ustring::compose(
+ auto markup = Glib::ustring::compose(
"<span size=\"large\">%1</span>\n<span>%2</span>",
msg_one, msg_two);
-#else
- Gdk::Color grey = entry_search->get_style()->get_text_aa(entry_search->get_state());
- Glib::ustring markup = Glib::ustring::compose(
- "<span size=\"large\">%1</span>\n<span color=\"%2\">%3</span>",
- msg_one, grey.to_string(), msg_two);
-#endif
label_not_found->set_markup(markup);
}
@@ -1203,33 +1071,17 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types
dialogType = file_types;
// Creation
- Gtk::VBox *vbox = new Gtk::VBox(false, 0);
-
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox *hbuttonbox_bottom = new Gtk::ButtonBox();
-#else
- Gtk::HButtonBox *hbuttonbox_bottom = new Gtk::HButtonBox();
-#endif
-
- Gtk::HBox *hbox_bottom = new Gtk::HBox(false, 12);
+ auto vbox = new Gtk::VBox(false, 0);
+ auto hbuttonbox_bottom = new Gtk::ButtonBox();
+ auto hbox_bottom = new Gtk::HBox(false, 12);
BaseBox *basebox_logo = new BaseBox();
BaseBox *basebox_no_search_results = new BaseBox();
label_not_found = new Gtk::Label();
label_description = new Gtk::Label();
-
-#if GTK_CHECK_VERSION(3,0,0)
entry_search = new Gtk::SearchEntry();
-#else
- entry_search = new SearchEntry();
-#endif
-
button_search = new Gtk::Button(_("Search"));
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox* hbuttonbox_search = new Gtk::ButtonBox();
-#else
- Gtk::HButtonBox* hbuttonbox_search = new Gtk::HButtonBox();
-#endif
+ auto hbuttonbox_search = new Gtk::ButtonBox();
Gtk::ScrolledWindow* scrolledwindow_preview = new Gtk::ScrolledWindow();
preview_files = new PreviewWidget();
diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h
index 9de24d821..db3c60786 100644
--- a/src/ui/dialog/ocaldialogs.h
+++ b/src/ui/dialog/ocaldialogs.h
@@ -17,19 +17,16 @@
# include <config.h>
#endif
-//Gtk includes
+// Gtkmm includes
#include <gtkmm/box.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/listviewtext.h>
#include <gtkmm/scrolledwindow.h>
+#include <gtkmm/searchentry.h>
#include <gtkmm/window.h>
#include <cairomm/refptr.h>
-#if GTK_CHECK_VERSION(3,0,0)
-# include <gtkmm/searchentry.h>
-#endif
-
#include <giomm/file.h>
//Inkscape includes
@@ -283,10 +280,6 @@ private:
sigc::connection timeout;
bool draw_spinner;
-#if !WITH_GTKMM_3_0
- bool _on_expose_event(GdkEventExpose* event);
-#endif
-
bool _on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
bool on_timeout();
};
@@ -310,10 +303,6 @@ private:
WrapLabel* label_description;
WrapLabel* label_time;
-#if !WITH_GTKMM_3_0
- bool _on_expose_event(GdkEventExpose* event);
-#endif
-
bool _on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
};
@@ -336,21 +325,6 @@ public:
Gtk::Label* label;
};
-#if !GTK_CHECK_VERSION(3,0,0)
-/**
- * A Gtk::Entry with search & clear icons
- */
-class SearchEntry : public Gtk::Entry
-{
-public:
- SearchEntry();
-
-private:
- void _on_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* event);
- void _on_changed();
-};
-#endif
-
/**
* A box which paints an overlay of the OCAL logo
*/
@@ -359,9 +333,6 @@ class LogoArea : public Gtk::EventBox
public:
LogoArea();
private:
-#if !WITH_GTKMM_3_0
- bool _on_expose_event(GdkEventExpose* event);
-#endif
bool _on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
bool draw_logo;
Cairo::RefPtr<Cairo::ImageSurface> logo_mask;
@@ -375,9 +346,6 @@ class BaseBox : public Gtk::EventBox
public:
BaseBox();
private:
-#if !WITH_GTKMM_3_0
- bool _on_expose_event(GdkEventExpose* event);
-#endif
bool _on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
};
@@ -459,12 +427,7 @@ protected:
private:
Glib::ustring filename_image;
Glib::ustring filename_thumbnail;
-
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::SearchEntry *entry_search;
-#else
- SearchEntry *entry_search;
-#endif
LogoArea *drawingarea_logo;
SearchResultList *list_results;
diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp
index 8e7f2d48b..c51881a96 100644
--- a/src/ui/dialog/polar-arrange-tab.cpp
+++ b/src/ui/dialog/polar-arrange-tab.cpp
@@ -31,11 +31,7 @@ namespace Dialog {
PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_)
: parent(parent_),
-#if WITH_GTKMM_3_0
parametersTable(),
-#else
- parametersTable(3, 3, false),
-#endif
centerY("", C_("Polar arrange tab", "Y coordinate of the center"), UNIT_TYPE_LINEAR),
centerX("", C_("Polar arrange tab", "X coordinate of the center"), centerY),
radiusY("", C_("Polar arrange tab", "Y coordinate of the radius"), UNIT_TYPE_LINEAR),
@@ -79,11 +75,7 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_)
pack_start(arrangeOnParametersRadio, false, false);
centerLabel.set_text(C_("Polar arrange tab", "Center X/Y:"));
-#if WITH_GTKMM_3_0
parametersTable.attach(centerLabel, 0, 0, 1, 1);
-#else
- parametersTable.attach(centerLabel, 0, 1, 0, 1, Gtk::FILL);
-#endif
centerX.setDigits(2);
centerX.setIncrements(0.2, 0);
centerX.setRange(-10000, 10000);
@@ -92,20 +84,11 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_)
centerY.setIncrements(0.2, 0);
centerY.setRange(-10000, 10000);
centerY.setValue(0, "px");
-#if WITH_GTKMM_3_0
parametersTable.attach(centerX, 1, 0, 1, 1);
parametersTable.attach(centerY, 2, 0, 1, 1);
-#else
- parametersTable.attach(centerX, 1, 2, 0, 1, Gtk::FILL);
- parametersTable.attach(centerY, 2, 3, 0, 1, Gtk::FILL);
-#endif
radiusLabel.set_text(C_("Polar arrange tab", "Radius X/Y:"));
-#if WITH_GTKMM_3_0
parametersTable.attach(radiusLabel, 0, 1, 1, 1);
-#else
- parametersTable.attach(radiusLabel, 0, 1, 1, 2, Gtk::FILL);
-#endif
radiusX.setDigits(2);
radiusX.setIncrements(0.2, 0);
radiusX.setRange(0.001, 10000);
@@ -114,20 +97,11 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_)
radiusY.setIncrements(0.2, 0);
radiusY.setRange(0.001, 10000);
radiusY.setValue(100, "px");
-#if WITH_GTKMM_3_0
parametersTable.attach(radiusX, 1, 1, 1, 1);
parametersTable.attach(radiusY, 2, 1, 1, 1);
-#else
- parametersTable.attach(radiusX, 1, 2, 1, 2, Gtk::FILL);
- parametersTable.attach(radiusY, 2, 3, 1, 2, Gtk::FILL);
-#endif
angleLabel.set_text(_("Angle X/Y:"));
-#if WITH_GTKMM_3_0
parametersTable.attach(angleLabel, 0, 2, 1, 1);
-#else
- parametersTable.attach(angleLabel, 0, 1, 2, 3, Gtk::FILL);
-#endif
angleX.setDigits(2);
angleX.setIncrements(0.2, 0);
angleX.setRange(-10000, 10000);
@@ -136,13 +110,8 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_)
angleY.setIncrements(0.2, 0);
angleY.setRange(-10000, 10000);
angleY.setValue(180, "°");
-#if WITH_GTKMM_3_0
parametersTable.attach(angleX, 1, 2, 1, 1);
parametersTable.attach(angleY, 2, 2, 1, 1);
-#else
- parametersTable.attach(angleX, 1, 2, 2, 3, Gtk::FILL);
- parametersTable.attach(angleY, 2, 3, 2, 3, Gtk::FILL);
-#endif
pack_start(parametersTable, false, false);
rotateObjectsCheckBox.set_label(_("Rotate objects"));
diff --git a/src/ui/dialog/polar-arrange-tab.h b/src/ui/dialog/polar-arrange-tab.h
index f7d7bf11f..1a4e04eda 100644
--- a/src/ui/dialog/polar-arrange-tab.h
+++ b/src/ui/dialog/polar-arrange-tab.h
@@ -20,12 +20,7 @@
#include <gtkmm/radiobutton.h>
#include <gtkmm/radiobuttongroup.h>
-
-#if WITH_GTKMM_3_0
- #include <gtkmm/grid.h>
-#else
- #include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
namespace Inkscape {
namespace UI {
@@ -75,11 +70,7 @@ private:
Gtk::RadioButton arrangeOnLastCircleRadio;
Gtk::RadioButton arrangeOnParametersRadio;
-#if WITH_GTKMM_3_0
Gtk::Grid parametersTable;
-#else
- Gtk::Table parametersTable;
-#endif
Gtk::Label centerLabel;
Inkscape::UI::Widget::ScalarUnit centerY;
diff --git a/src/ui/dialog/spellcheck.h b/src/ui/dialog/spellcheck.h
index e98a9d80e..834f23c24 100644
--- a/src/ui/dialog/spellcheck.h
+++ b/src/ui/dialog/spellcheck.h
@@ -225,11 +225,7 @@ private:
* Dialogs widgets
*/
Gtk::Label banner_label;
-#if WITH_GTKMM_3_0
Gtk::ButtonBox banner_hbox;
-#else
- Gtk::HButtonBox banner_hbox;
-#endif
Gtk::ScrolledWindow scrolled_window;
Gtk::TreeView tree_view;
Glib::RefPtr<Gtk::ListStore> model;
@@ -243,21 +239,10 @@ private:
Gtk::Button add_button;
GtkWidget * dictionary_combo;
Gtk::HBox dictionary_hbox;
-
-#if WITH_GTKMM_3_0
Gtk::Separator action_sep;
-#else
- Gtk::HSeparator action_sep;
-#endif
-
Gtk::Button stop_button;
Gtk::Button start_button;
-
-#if WITH_GTKMM_3_0
Gtk::ButtonBox actionbutton_hbox;
-#else
- Gtk::HButtonBox actionbutton_hbox;
-#endif
SPDesktop * desktop;
DesktopTracker deskTrack;
diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp
index 1dd3fd60c..6a87f3714 100644
--- a/src/ui/dialog/svg-fonts-dialog.cpp
+++ b/src/ui/dialog/svg-fonts-dialog.cpp
@@ -882,12 +882,7 @@ void SvgFontsDialog::add_font(){
SvgFontsDialog::SvgFontsDialog()
: UI::Widget::Panel("", "/dialogs/svgfonts", SP_VERB_DIALOG_SVG_FONTS), _add(Gtk::Stock::NEW)
{
-#if WITH_GTKMM_3_0
kerning_slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
-#else
- kerning_slider = Gtk::manage(new Gtk::HScale);
-#endif
-
_add.signal_clicked().connect(sigc::mem_fun(*this, &SvgFontsDialog::add_font));
Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox());
diff --git a/src/ui/dialog/svg-fonts-dialog.h b/src/ui/dialog/svg-fonts-dialog.h
index e80bbfd39..1588c0fc2 100644
--- a/src/ui/dialog/svg-fonts-dialog.h
+++ b/src/ui/dialog/svg-fonts-dialog.h
@@ -27,11 +27,7 @@
#include "xml/helper-observer.h"
namespace Gtk {
-#if WITH_GTKMM_3_0
class Scale;
-#else
-class HScale;
-#endif
}
class SPGlyph;
@@ -216,12 +212,7 @@ private:
GlyphComboBox first_glyph, second_glyph;
SPGlyphKerning* kerning_pair;
Inkscape::UI::Widget::SpinButton setwidth_spin;
-
-#if WITH_GTKMM_3_0
Gtk::Scale* kerning_slider;
-#else
- Gtk::HScale* kerning_slider;
-#endif
class EntryWidget : public Gtk::HBox
{
diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp
index 07769ced9..3012c5c26 100644
--- a/src/ui/dialog/swatches.cpp
+++ b/src/ui/dialog/swatches.cpp
@@ -649,12 +649,8 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath) :
if (Glib::ustring(prefsPath) == "/dialogs/swatches") {
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
get_preferred_size(sreq_natural, sreq);
-#else
- sreq = size_request();
-#endif
int minHeight = 60;
if (sreq.height < minHeight) {
set_size_request(70, minHeight);
diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp
index 8bd841bb5..4840b897b 100644
--- a/src/ui/dialog/symbols.cpp
+++ b/src/ui/dialog/symbols.cpp
@@ -19,14 +19,8 @@
#include <gtkmm/buttonbox.h>
#include <gtkmm/label.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/togglebutton.h>
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
+#include <gtkmm/togglebutton.h>
+#include <gtkmm/grid.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/comboboxtext.h>
#include <gtkmm/iconview.h>
@@ -116,11 +110,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) :
{
/******************** Table *************************/
-#if WITH_GTKMM_3_0
- Gtk::Grid *table = new Gtk::Grid();
-#else
- Gtk::Table *table = new Gtk::Table(2, 4, false);
-#endif
+ auto table = new Gtk::Grid();
// panel is a cloked Gtk::VBox
_getContents()->pack_start(*Gtk::manage(table), Gtk::PACK_EXPAND_WIDGET);
@@ -128,24 +118,12 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) :
/******************** Symbol Sets *************************/
Gtk::Label* labelSet = new Gtk::Label(_("Symbol set: "));
-
-#if WITH_GTKMM_3_0
table->attach(*Gtk::manage(labelSet),0,row,1,1);
-#else
- table->attach(*Gtk::manage(labelSet),0,1,row,row+1,Gtk::SHRINK,Gtk::SHRINK);
-#endif
-
symbolSet = new Gtk::ComboBoxText(); // Fill in later
symbolSet->append(_("Current Document"));
symbolSet->set_active_text(_("Current Document"));
-
-#if WITH_GTKMM_3_0
symbolSet->set_hexpand();
table->attach(*Gtk::manage(symbolSet),1,row,1,1);
-#else
- table->attach(*Gtk::manage(symbolSet),1,2,row,row+1,Gtk::FILL|Gtk::EXPAND,Gtk::SHRINK);
-#endif
-
sigc::connection connSet = symbolSet->signal_changed().connect(
sigc::mem_fun(*this, &SymbolsDialog::rebuild));
instanceConns.push_back(connSet);
@@ -178,14 +156,9 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) :
Gtk::ScrolledWindow *scroller = new Gtk::ScrolledWindow();
scroller->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
scroller->add(*Gtk::manage(iconView));
-
-#if WITH_GTKMM_3_0
scroller->set_hexpand();
scroller->set_vexpand();
table->attach(*Gtk::manage(scroller),0,row,2,1);
-#else
- table->attach(*Gtk::manage(scroller),0,2,row,row+1,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL);
-#endif
++row;
@@ -194,12 +167,8 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) :
Gtk::HBox* tools = new Gtk::HBox();
//tools->set_layout( Gtk::BUTTONBOX_END );
-#if WITH_GTKMM_3_0
scroller->set_hexpand();
table->attach(*Gtk::manage(tools),0,row,2,1);
-#else
- table->attach(*Gtk::manage(tools),0,2,row,row+1,Gtk::EXPAND|Gtk::FILL,Gtk::FILL);
-#endif
addSymbol = Gtk::manage(new Gtk::Button());
addSymbol->add(*Gtk::manage(Glib::wrap(
@@ -393,11 +362,7 @@ void SymbolsDialog::revertSymbol() {
void SymbolsDialog::iconDragDataGet(const Glib::RefPtr<Gdk::DragContext>& /*context*/, Gtk::SelectionData& data, guint /*info*/, guint /*time*/)
{
-#if WITH_GTKMM_3_0
- std::vector<Gtk::TreePath> iconArray = iconView->get_selected_items();
-#else
- Gtk::IconView::ArrayHandle_TreePaths iconArray = iconView->get_selected_items();
-#endif
+ auto iconArray = iconView->get_selected_items();
if( iconArray.empty() ) {
//std::cout << " iconArray empty: huh? " << std::endl;
@@ -450,11 +415,7 @@ SPDocument* SymbolsDialog::selectedSymbols() {
Glib::ustring SymbolsDialog::selectedSymbolId() {
-#if WITH_GTKMM_3_0
- std::vector<Gtk::TreePath> iconArray = iconView->get_selected_items();
-#else
- Gtk::IconView::ArrayHandle_TreePaths iconArray = iconView->get_selected_items();
-#endif
+ auto iconArray = iconView->get_selected_items();
if( !iconArray.empty() ) {
Gtk::TreeModel::Path const & path = *iconArray.begin();
diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp
index c04ab7b4b..dfe71bddb 100644
--- a/src/ui/dialog/tags.cpp
+++ b/src/ui/dialog/tags.cpp
@@ -966,12 +966,8 @@ TagsPanel::TagsPanel() :
_scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC );
_scroller.set_shadow_type(Gtk::SHADOW_IN);
Gtk::Requisition sreq;
-#if WITH_GTKMM_3_0
Gtk::Requisition sreq_natural;
_scroller.get_preferred_size(sreq_natural, sreq);
-#else
- sreq = _scroller.size_request();
-#endif
int minHeight = 70;
if (sreq.height < minHeight) {
// Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar
diff --git a/src/ui/dialog/tags.h b/src/ui/dialog/tags.h
index 3576bd111..bdda22dd4 100644
--- a/src/ui/dialog/tags.h
+++ b/src/ui/dialog/tags.h
@@ -141,15 +141,9 @@ private:
Gtk::TreeView _tree;
Gtk::CellRendererText *_text_renderer;
Gtk::TreeView::Column *_name_column;
-#if WITH_GTKMM_3_0
Gtk::Box _buttonsRow;
Gtk::Box _buttonsPrimary;
Gtk::Box _buttonsSecondary;
-#else
- Gtk::HBox _buttonsRow;
- Gtk::HBox _buttonsPrimary;
- Gtk::HBox _buttonsSecondary;
-#endif
Gtk::ScrolledWindow _scroller;
Gtk::Menu _popupMenu;
Inkscape::UI::Widget::SpinButton _spinBtn;
diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp
index e4216d001..50c6c1553 100644
--- a/src/ui/dialog/text-edit.cpp
+++ b/src/ui/dialog/text-edit.cpp
@@ -92,9 +92,7 @@ TextEdit::TextEdit()
styleButton(&align_right, _("Align right"), INKSCAPE_ICON("format-justify-right"), &align_left);
styleButton(&align_justify, _("Justify (only flowed text)"), INKSCAPE_ICON("format-justify-fill"), &align_left);
-#if WITH_GTKMM_3_0
align_sep.set_orientation(Gtk::ORIENTATION_VERTICAL);
-#endif
layout_hbox.pack_start(align_sep, false, false, 10);
@@ -102,9 +100,7 @@ TextEdit::TextEdit()
styleButton(&text_horizontal, _("Horizontal text"), INKSCAPE_ICON("format-text-direction-horizontal"), NULL);
styleButton(&text_vertical, _("Vertical text"), INKSCAPE_ICON("format-text-direction-vertical"), &text_horizontal);
-#if WITH_GTKMM_3_0
text_sep.set_orientation(Gtk::ORIENTATION_VERTICAL);
-#endif
layout_hbox.pack_start(text_sep, false, false, 10);
@@ -139,12 +135,8 @@ TextEdit::TextEdit()
gtk_widget_set_tooltip_text(startOffset, _("Text path offset"));
-#if WITH_GTKMM_3_0
- Gtk::Separator *sep = Gtk::manage(new Gtk::Separator());
+ auto sep = Gtk::manage(new Gtk::Separator());
sep->set_orientation(Gtk::ORIENTATION_VERTICAL);
-#else
- Gtk::VSeparator *sep = Gtk::manage(new Gtk::VSeparator);
-#endif
layout_hbox.pack_start(*sep, false, false, 10);
layout_hbox.pack_start(*Gtk::manage(Glib::wrap(startOffset)), false, false);
@@ -168,7 +160,6 @@ TextEdit::TextEdit()
gtk_text_view_set_wrap_mode ((GtkTextView *) text_view, GTK_WRAP_WORD);
#ifdef WITH_GTKSPELL
-#ifdef WITH_GTKMM_3_0
/*
TODO: Use computed xml:lang attribute of relevant element, if present, to specify the
language (either as 2nd arg of gtkspell_new_attach, or with explicit
@@ -180,20 +171,6 @@ TextEdit::TextEdit()
if (! gtk_spell_checker_attach(speller, GTK_TEXT_VIEW(text_view))) {
g_print("gtkspell error:\n");
}
-#else
- GError *error = NULL;
-
-/*
- TODO: Use computed xml:lang attribute of relevant element, if present, to specify the
- language (either as 2nd arg of gtkspell_new_attach, or with explicit
- gtkspell_set_language call in; see advanced.c example in gtkspell docs).
- onReadSelection looks like a suitable place.
-*/
- if (gtkspell_new_attach(GTK_TEXT_VIEW(text_view), NULL, &error) == NULL) {
- g_print("gtkspell error: %s\n", error->message);
- g_error_free(error);
- }
-#endif
#endif
gtk_widget_set_size_request (text_view, -1, 64);
diff --git a/src/ui/dialog/text-edit.h b/src/ui/dialog/text-edit.h
index cfe612268..e974874d2 100644
--- a/src/ui/dialog/text-edit.h
+++ b/src/ui/dialog/text-edit.h
@@ -198,21 +198,10 @@ private:
Gtk::RadioButton align_center;
Gtk::RadioButton align_right;
Gtk::RadioButton align_justify;
-
-#if WITH_GTKMM_3_0
Gtk::Separator align_sep;
-#else
- Gtk::VSeparator align_sep;
-#endif
-
Gtk::RadioButton text_vertical;
Gtk::RadioButton text_horizontal;
-
-#if WITH_GTKMM_3_0
Gtk::Separator text_sep;
-#else
- Gtk::VSeparator text_sep;
-#endif
GtkWidget *spacing_combo;
diff --git a/src/ui/dialog/tile.h b/src/ui/dialog/tile.h
index de1d3028b..2c29f85b8 100644
--- a/src/ui/dialog/tile.h
+++ b/src/ui/dialog/tile.h
@@ -29,12 +29,7 @@
namespace Gtk {
class Button;
-
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
namespace Inkscape {
diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp
index b7312814f..7f1492cd7 100644
--- a/src/ui/dialog/transformation.cpp
+++ b/src/ui/dialog/transformation.cpp
@@ -212,38 +212,20 @@ void Transformation::layoutPageMove()
//_scalar_move_vertical.set_label_image( INKSCAPE_STOCK_ARROWS_HOR );
-#if WITH_GTKMM_3_0
_page_move.table().attach(_scalar_move_horizontal, 0, 0, 2, 1);
_page_move.table().attach(_units_move, 2, 0, 1, 1);
-#else
- _page_move.table()
- .attach(_scalar_move_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK);
-
- _page_move.table()
- .attach(_units_move, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_move_horizontal.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged));
//_scalar_move_vertical.set_label_image( INKSCAPE_STOCK_ARROWS_VER );
-#if WITH_GTKMM_3_0
_page_move.table().attach(_scalar_move_vertical, 0, 1, 2, 1);
-#else
- _page_move.table()
- .attach(_scalar_move_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK);
-#endif
_scalar_move_vertical.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged));
// Relative moves
-#if WITH_GTKMM_3_0
_page_move.table().attach(_check_move_relative, 0, 2, 2, 1);
-#else
- _page_move.table()
- .attach(_check_move_relative, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK);
-#endif
_check_move_relative.set_active(true);
_check_move_relative.signal_toggled()
@@ -269,36 +251,18 @@ void Transformation::layoutPageScale()
_scalar_scale_vertical.setAbsoluteIsIncrement(true);
_scalar_scale_vertical.setPercentageIsIncrement(true);
-#if WITH_GTKMM_3_0
_page_scale.table().attach(_scalar_scale_horizontal, 0, 0, 2, 1);
-#else
- _page_scale.table()
- .attach(_scalar_scale_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK);
-#endif
_scalar_scale_horizontal.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onScaleXValueChanged));
-#if WITH_GTKMM_3_0
_page_scale.table().attach(_units_scale, 2, 0, 1, 1);
_page_scale.table().attach(_scalar_scale_vertical, 0, 1, 2, 1);
-#else
- _page_scale.table()
- .attach(_units_scale, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-
- _page_scale.table()
- .attach(_scalar_scale_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK);
-#endif
_scalar_scale_vertical.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onScaleYValueChanged));
-#if WITH_GTKMM_3_0
_page_scale.table().attach(_check_scale_proportional, 0, 2, 2, 1);
-#else
- _page_scale.table()
- .attach(_check_scale_proportional, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK);
-#endif
_check_scale_proportional.set_active(false);
_check_scale_proportional.signal_toggled()
@@ -330,24 +294,10 @@ void Transformation::layoutPageRotate()
Gtk::RadioButton::Group group = _counterclockwise_rotate.get_group();
_clockwise_rotate.set_group(group);
-#if WITH_GTKMM_3_0
_page_rotate.table().attach(_scalar_rotate, 0, 0, 2, 1);
_page_rotate.table().attach(_units_rotate, 2, 0, 1, 1);
_page_rotate.table().attach(_counterclockwise_rotate, 3, 0, 1, 1);
_page_rotate.table().attach(_clockwise_rotate, 4, 0, 1, 1);
-#else
- _page_rotate.table()
- .attach(_scalar_rotate, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK);
-
- _page_rotate.table()
- .attach(_units_rotate, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-
- _page_rotate.table()
- .attach(_counterclockwise_rotate, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-
- _page_rotate.table()
- .attach(_clockwise_rotate, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-#endif
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
if (prefs->getBool("/dialogs/transformation/rotateCounterClockwise", TRUE)) {
@@ -381,26 +331,13 @@ void Transformation::layoutPageSkew()
_scalar_skew_vertical.setDigits(3);
_scalar_skew_vertical.setIncrements(0.1, 1.0);
-#if WITH_GTKMM_3_0
_page_skew.table().attach(_scalar_skew_horizontal, 0, 0, 2, 1);
-#else
- _page_skew.table()
- .attach(_scalar_skew_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK);
-#endif
_scalar_skew_horizontal.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged));
-#if WITH_GTKMM_3_0
_page_skew.table().attach(_units_skew, 2, 0, 1, 1);
_page_skew.table().attach(_scalar_skew_vertical, 0, 1, 2, 1);
-#else
- _page_skew.table()
- .attach(_units_skew, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-
- _page_skew.table()
- .attach(_scalar_skew_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK);
-#endif
_scalar_skew_vertical.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged));
@@ -418,12 +355,7 @@ void Transformation::layoutPageTransform()
_scalar_transform_a.setIncrements(0.1, 1.0);
_scalar_transform_a.setValue(1.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_a, 0, 0, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_a, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_a.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
@@ -434,12 +366,7 @@ void Transformation::layoutPageTransform()
_scalar_transform_b.setIncrements(0.1, 1.0);
_scalar_transform_b.setValue(0.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_b, 0, 1, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_b, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_b.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
@@ -450,12 +377,7 @@ void Transformation::layoutPageTransform()
_scalar_transform_c.setIncrements(0.1, 1.0);
_scalar_transform_c.setValue(0.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_c, 1, 0, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_c, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_c.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
@@ -467,12 +389,7 @@ void Transformation::layoutPageTransform()
_scalar_transform_d.setIncrements(0.1, 1.0);
_scalar_transform_d.setValue(1.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_d, 1, 1, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_d, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_d.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
@@ -484,12 +401,7 @@ void Transformation::layoutPageTransform()
_scalar_transform_e.setIncrements(0.1, 1.0);
_scalar_transform_e.setValue(0.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_e, 2, 0, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_e, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_e.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
@@ -501,23 +413,13 @@ void Transformation::layoutPageTransform()
_scalar_transform_f.setIncrements(0.1, 1.0);
_scalar_transform_f.setValue(0.0);
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_scalar_transform_f, 2, 1, 1, 1);
-#else
- _page_transform.table()
- .attach(_scalar_transform_f, 2, 3, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_scalar_transform_f.signal_value_changed()
.connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged));
// Edit existing matrix
-#if WITH_GTKMM_3_0
_page_transform.table().attach(_check_replace_matrix, 0, 2, 2, 1);
-#else
- _page_transform.table()
- .attach(_check_replace_matrix, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK);
-#endif
_check_replace_matrix.set_active(false);
_check_replace_matrix.signal_toggled()
@@ -564,11 +466,7 @@ void Transformation::updateSelection(PageType page, Inkscape::Selection *selecti
selection && !selection->isEmpty());
}
-#if WITH_GTKMM_3_0
void Transformation::onSwitchPage(Gtk::Widget * /*page*/, guint pagenum)
-#else
-void Transformation::onSwitchPage(GtkNotebookPage * /*page*/, guint pagenum)
-#endif
{
updateSelection((PageType)pagenum, getDesktop()->getSelection());
}
diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h
index 89aa95d90..9595e87bc 100644
--- a/src/ui/dialog/transformation.h
+++ b/src/ui/dialog/transformation.h
@@ -169,11 +169,7 @@ protected:
virtual void _apply();
void presentPage(PageType page);
-#if WITH_GTKMM_3_0
void onSwitchPage(Gtk::Widget *page, guint pagenum);
-#else
- void onSwitchPage(GtkNotebookPage *page, guint pagenum);
-#endif
/**
* Callbacks for when a user changes values on the panels
diff --git a/src/ui/dialog/undo-history.cpp b/src/ui/dialog/undo-history.cpp
index 38fab8f07..53aa7e6ff 100644
--- a/src/ui/dialog/undo-history.cpp
+++ b/src/ui/dialog/undo-history.cpp
@@ -31,20 +31,11 @@ namespace UI {
namespace Dialog {
/* Rendering functions for custom cell renderers */
-#if WITH_GTKMM_3_0
void CellRendererSPIcon::render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags)
-#else
-void CellRendererSPIcon::render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags)
-#endif
{
// if this event type doesn't have an icon...
if ( !Inkscape::Verb::get(_property_event_type)->get_image() ) return;
@@ -63,13 +54,8 @@ void CellRendererSPIcon::render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
sp_icon_fetch_pixbuf(sp_icon);
_property_icon = Glib::wrap(sp_icon->pb, true);
} else if ( GTK_IS_IMAGE(icon->gobj()) ) {
-#if WITH_GTKMM_3_0
_property_icon = Gtk::Invisible().render_icon_pixbuf(Gtk::StockID(image),
Gtk::ICON_SIZE_MENU);
-#else
- _property_icon = Gtk::Invisible().render_icon(Gtk::StockID(image),
- Gtk::ICON_SIZE_MENU);
-#endif
} else {
delete icon;
return;
@@ -83,42 +69,23 @@ void CellRendererSPIcon::render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
property_pixbuf() = _icon_cache[_property_event_type];
}
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc(cr, widget, background_area,
cell_area, flags);
-#else
- Gtk::CellRendererPixbuf::render_vfunc(window, widget, background_area,
- cell_area, expose_area, flags);
-#endif
}
-#if WITH_GTKMM_3_0
void CellRendererInt::render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags)
-#else
-void CellRendererInt::render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags)
-#endif
{
if( _filter(_property_number) ) {
std::ostringstream s;
s << _property_number << std::flush;
property_text() = s.str();
-#if WITH_GTKMM_3_0
Gtk::CellRendererText::render_vfunc(cr, widget, background_area,
cell_area, flags);
-#else
- Gtk::CellRendererText::render_vfunc(window, widget, background_area,
- cell_area, expose_area, flags);
-#endif
}
}
diff --git a/src/ui/dialog/undo-history.h b/src/ui/dialog/undo-history.h
index b0cc283cf..48929a0d0 100644
--- a/src/ui/dialog/undo-history.h
+++ b/src/ui/dialog/undo-history.h
@@ -50,20 +50,11 @@ public:
property_event_type() { return _property_event_type.get_proxy(); }
protected:
-#if WITH_GTKMM_3_0
virtual void render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags);
-#else
- virtual void render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags);
-#endif
private:
Glib::Property<Glib::RefPtr<Gdk::Pixbuf> > _property_icon;
@@ -95,20 +86,11 @@ public:
static const Filter& no_filter;
protected:
-#if WITH_GTKMM_3_0
virtual void render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags);
-#else
- virtual void render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags);
-#endif
private:
diff --git a/src/ui/dialog/xml-tree.cpp b/src/ui/dialog/xml-tree.cpp
index c2711bb02..eae33ff83 100644
--- a/src/ui/dialog/xml-tree.cpp
+++ b/src/ui/dialog/xml-tree.cpp
@@ -74,11 +74,7 @@ XmlTree::XmlTree (void) :
xml_attribute_delete_button (_("Delete attribute")),
text_container (),
attr_container (),
-#if WITH_GTKMM_3_0
attr_subpaned_container(Gtk::ORIENTATION_VERTICAL),
-#else
- attr_subpaned_container(),
-#endif
set_attr (_("Set")),
new_window(NULL)
{
@@ -95,9 +91,7 @@ XmlTree::XmlTree (void) :
status.set_alignment( 0.0, 0.5);
status.set_size_request(1, -1);
status.set_markup("");
-#if WITH_GTKMM_3_0
status.set_line_wrap(true);
-#endif
status_box.pack_start( status, TRUE, TRUE, 0);
contents->pack_end(status_box, false, false, 2);
@@ -876,31 +870,19 @@ void XmlTree::cmd_new_element_node()
g_signal_connect(G_OBJECT(new_window), "destroy", gtk_main_quit, NULL);
g_signal_connect(G_OBJECT(new_window), "key-press-event", G_CALLBACK(quit_on_esc), new_window);
-#if GTK_CHECK_VERSION(3,0,0)
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
-#else
- vbox = gtk_vbox_new(FALSE, 4);
-#endif
gtk_container_add(GTK_CONTAINER(new_window), vbox);
name_entry = new Gtk::Entry();
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(name_entry->gobj()), FALSE, TRUE, 0);
-#if GTK_CHECK_VERSION(3,0,0)
sep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
-#else
- sep = gtk_hseparator_new();
-#endif
gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, TRUE, 0);
-#if GTK_CHECK_VERSION(3,0,0)
bbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
-#else
- bbox = gtk_hbutton_box_new();
-#endif
gtk_container_set_border_width(GTK_CONTAINER(bbox), 4);
gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
diff --git a/src/ui/dialog/xml-tree.h b/src/ui/dialog/xml-tree.h
index 58ef3aef8..a4c3fffcb 100644
--- a/src/ui/dialog/xml-tree.h
+++ b/src/ui/dialog/xml-tree.h
@@ -218,13 +218,7 @@ private:
Gtk::Button *create_button;
Gtk::Entry *name_entry;
-
-#if WITH_GTKMM_3_0
Gtk::Paned paned;
-#else
- Gtk::HPaned paned;
-#endif
-
Gtk::VBox left_box;
Gtk::VBox right_box;
Gtk::HBox status_box;
@@ -248,12 +242,7 @@ private:
Gtk::ScrolledWindow text_container;
Gtk::HBox attr_hbox;
Gtk::VBox attr_container;
-
-#if WITH_GTKMM_3_0
Gtk::Paned attr_subpaned_container;
-#else
- Gtk::VPaned attr_subpaned_container;
-#endif
Gtk::Button set_attr;
diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp
index 42142f665..b47e66451 100644
--- a/src/ui/interface.cpp
+++ b/src/ui/interface.cpp
@@ -73,9 +73,7 @@
#include "message-stack.h"
#include "ui/dialog/layer-properties.h"
-#if GTK_CHECK_VERSION(3,0,0)
- #include "widgets/image-menu-item.h"
-#endif
+#include "widgets/image-menu-item.h"
using Inkscape::DocumentUndo;
@@ -407,11 +405,7 @@ sp_ui_menuitem_add_icon( GtkWidget *item, gchar *icon_name )
icon = sp_icon_new( Inkscape::ICON_SIZE_MENU, icon_name );
gtk_widget_show(icon);
-#if GTK_CHECK_VERSION(3,0,0)
image_menu_item_set_image((ImageMenuItem *) item, icon);
-#else
- gtk_image_menu_item_set_image((GtkImageMenuItem *) item, icon);
-#endif
} // end of sp_ui_menu_add_icon
void
@@ -465,11 +459,7 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb
if (radio) {
item = gtk_radio_menu_item_new_with_mnemonic(group, action->name);
} else {
-#if GTK_CHECK_VERSION(3,0,0)
item = image_menu_item_new_with_mnemonic(action->name);
-#else
- item = gtk_image_menu_item_new_with_mnemonic(action->name);
-#endif
}
gtk_label_set_markup_with_mnemonic( GTK_LABEL(gtk_bin_get_child(GTK_BIN (item))), action->name);
@@ -560,11 +550,7 @@ static bool getViewStateFromPref(Inkscape::UI::View::View *view, gchar const *pr
return prefs->getBool(pref_path, true);
}
-#if GTK_CHECK_VERSION(3,0,0)
static gboolean checkitem_update(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data)
-#else
-static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data)
-#endif
{
GtkCheckMenuItem *menuitem=GTK_CHECK_MENU_ITEM(widget);
@@ -621,11 +607,7 @@ static void taskToggled(GtkCheckMenuItem *menuitem, gpointer userData)
/**
* Callback function to update the status of the radio buttons in the View -> Display mode menu (Normal, No Filters, Outline) and Color display mode.
*/
-#if GTK_CHECK_VERSION(3,0,0)
static gboolean update_view_menu(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data)
-#else
-static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data)
-#endif
{
SPAction *action = (SPAction *) user_data;
g_assert(action->id != NULL);
@@ -669,11 +651,7 @@ static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/,
static void
sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *view, gchar const *label, gchar const *tip, gchar const *pref,
void (*callback_toggle)(GtkCheckMenuItem *, gpointer user_data),
-#if GTK_CHECK_VERSION(3,0,0)
gboolean (*callback_update)(GtkWidget *widget, cairo_t *cr, gpointer user_data),
-#else
- gboolean (*callback_update)(GtkWidget *widget, GdkEventExpose *event, gpointer user_data),
-#endif
Inkscape::Verb *verb)
{
unsigned int shortcut = (verb) ? sp_shortcut_get_primary(verb) : 0;
@@ -697,11 +675,7 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *
g_signal_connect( G_OBJECT(item), "toggled", (GCallback) callback_toggle, (void *) pref);
-#if GTK_CHECK_VERSION(3,0,0)
g_signal_connect( G_OBJECT(item), "draw", (GCallback) callback_update, (void *) pref);
-#else
- g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) callback_update, (void *) pref);
-#endif
(*callback_update)(item, NULL, (void *)pref);
@@ -844,11 +818,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I
}
if (verb->get_code() != SP_VERB_NONE) {
SPAction *action = verb->get_action(Inkscape::ActionContext(view));
-#if GTK_CHECK_VERSION(3,0,0)
g_signal_connect( G_OBJECT(item), "draw", (GCallback) update_view_menu, (void *) action);
-#else
- g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) update_view_menu, (void *) action);
-#endif
}
} else if (menu_pntr->attribute("check") != NULL) {
if (verb->get_code() != SP_VERB_NONE) {
diff --git a/src/ui/previewholder.cpp b/src/ui/previewholder.cpp
index ac1369ced..ef11daa3b 100644
--- a/src/ui/previewholder.cpp
+++ b/src/ui/previewholder.cpp
@@ -17,12 +17,7 @@
#include <gtkmm/sizegroup.h>
#include <gtkmm/scrollbar.h>
#include <gtkmm/adjustment.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#define COLUMNS_FOR_SMALL 16
#define COLUMNS_FOR_LARGE 8
@@ -54,7 +49,6 @@ PreviewHolder::PreviewHolder() :
((Gtk::ScrolledWindow *)_scroller)->set_policy(Gtk::POLICY_AUTOMATIC,
Gtk::POLICY_AUTOMATIC);
-#if WITH_GTKMM_3_0
_insides = Gtk::manage(new Gtk::Grid());
_insides->set_name( "PreviewHolderGrid" );
_insides->set_column_spacing(8);
@@ -65,21 +59,9 @@ PreviewHolder::PreviewHolder() :
_scroller->set_hexpand();
_scroller->set_vexpand();
-#else
- _insides = Gtk::manage(new Gtk::Table( 1, 2 ));
- _insides->set_col_spacings( 8 );
-
- // Add a container with the scroller and a spacer
- Gtk::Table* spaceHolder = Gtk::manage( new Gtk::Table(1, 2) );
-#endif
-
_scroller->add( *_insides );
-#if WITH_GTKMM_3_0
spaceHolder->attach( *_scroller, 0, 0, 1, 1);
-#else
- spaceHolder->attach( *_scroller, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
-#endif
pack_start(*spaceHolder, Gtk::PACK_EXPAND_WIDGET);
}
@@ -92,11 +74,7 @@ PreviewHolder::~PreviewHolder()
bool PreviewHolder::on_scroll_event(GdkEventScroll *event)
{
// Scroll horizontally by page on mouse wheel
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hadjustment();
-#else
- Gtk::Adjustment *adj = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hadjustment();
-#endif
+ auto adj = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hadjustment();
if (!adj) {
return FALSE;
@@ -140,7 +118,6 @@ void PreviewHolder::addPreview( Previewable* preview )
Gtk::Widget* label = Gtk::manage(preview->getPreview(PREVIEW_STYLE_BLURB, VIEW_TYPE_LIST, _baseSize, _ratio, _border));
Gtk::Widget* thing = Gtk::manage(preview->getPreview(PREVIEW_STYLE_PREVIEW, VIEW_TYPE_LIST, _baseSize, _ratio, _border));
-#if WITH_GTKMM_3_0
thing->set_hexpand();
thing->set_vexpand();
_insides->attach(*thing, 0, i, 1, 1);
@@ -148,10 +125,6 @@ void PreviewHolder::addPreview( Previewable* preview )
label->set_hexpand();
label->set_valign(Gtk::ALIGN_CENTER);
_insides->attach(*label, 1, i, 1, 1);
-#else
- _insides->attach( *thing, 0, 1, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
- _insides->attach( *label, 1, 2, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK );
-#endif
}
break;
@@ -167,44 +140,25 @@ void PreviewHolder::addPreview( Previewable* preview )
int col = i % width;
int row = i / width;
-#if !WITH_GTKMM_3_0
- // If the existing grid isn't wide enough, we need to resize
- // it and re-pack the existing widgets
- if ( _insides && width > (int)_insides->property_n_columns() ) {
- _insides->resize( height, width );
-#endif
- std::vector<Gtk::Widget*>kids = _insides->get_children();
- int childCount = (int)kids.size();
- // g_message(" %3d resize from %d to %d (r:%d, c:%d) with %d children", i, oldWidth, width, row, col, childCount );
-
- // Loop through the existing widgets and move them to new location
- for ( int j = 1; j < childCount; j++ ) {
- Gtk::Widget* target = kids[childCount - (j + 1)];
- int col2 = j % width;
- int row2 = j / width;
- Glib::RefPtr<Gtk::Widget> handle(target);
- _insides->remove( *target );
-
-#if WITH_GTKMM_3_0
- target->set_hexpand();
- target->set_vexpand();
- _insides->attach( *target, col2, row2, 1, 1);
-#else
- _insides->attach( *target, col2, col2+1, row2, row2+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
-#endif
- }
-#if WITH_GTKMM_3_0
- thing->set_hexpand();
- thing->set_vexpand();
- _insides->attach(*thing, col, row, 1, 1);
-#else
- } else if ( col == 0 ) {
- // we just started a new row
- _insides->resize( row + 1, width );
- }
-
- _insides->attach( *thing, col, col+1, row, row+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
-#endif
+ auto kids = _insides->get_children();
+ int childCount = (int)kids.size();
+ // g_message(" %3d resize from %d to %d (r:%d, c:%d) with %d children", i, oldWidth, width, row, col, childCount );
+
+ // Loop through the existing widgets and move them to new location
+ for ( int j = 1; j < childCount; j++ ) {
+ auto target = kids[childCount - (j + 1)];
+ int col2 = j % width;
+ int row2 = j / width;
+ Glib::RefPtr<Gtk::Widget> handle(target);
+ _insides->remove( *target );
+
+ target->set_hexpand();
+ target->set_vexpand();
+ _insides->attach( *target, col2, row2, 1, 1);
+ }
+ thing->set_hexpand();
+ thing->set_vexpand();
+ _insides->attach(*thing, col, row, 1, 1);
}
}
@@ -304,12 +258,8 @@ void PreviewHolder::on_size_allocate( Gtk::Allocation& allocation )
if ( _insides && !_wrap && (_view != VIEW_TYPE_LIST) && (_anchor == SP_ANCHOR_NORTH || _anchor == SP_ANCHOR_SOUTH) ) {
Gtk::Requisition req;
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Requisition req_natural;
_insides->get_preferred_size(req, req_natural);
-#else
- req = _insides->size_request();
-#endif
gint delta = allocation.get_width() - req.width;
if ( (delta > 4) && req.height < allocation.get_height() ) {
@@ -351,43 +301,27 @@ void PreviewHolder::calcGridSize( const Gtk::Widget* thing, int itemCount, int&
if ( _anchor == SP_ANCHOR_SOUTH || _anchor == SP_ANCHOR_NORTH ) {
Gtk::Requisition req;
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Requisition req_natural;
_scroller->get_preferred_size(req, req_natural);
-#else
- req = _scroller->size_request();
-#endif
int currW = _scroller->get_width();
if ( currW > req.width ) {
req.width = currW;
}
-#if GTK_CHECK_VERSION(3,0,0)
- Gtk::Scrollbar* hs = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hscrollbar();
-#else
- Gtk::HScrollbar* hs = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hscrollbar();
-#endif
+ auto hs = dynamic_cast<Gtk::ScrolledWindow*>(_scroller)->get_hscrollbar();
if ( hs ) {
Gtk::Requisition scrollReq;
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Requisition scrollReq_natural;
hs->get_preferred_size(scrollReq, scrollReq_natural);
-#else
- scrollReq = hs->size_request();
-#endif
// the +8 is a temporary hack
req.height -= scrollReq.height + 8;
}
Gtk::Requisition req2;
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Requisition req2_natural;
const_cast<Gtk::Widget*>(thing)->get_preferred_size(req2, req2_natural);
-#else
- req2 = const_cast<Gtk::Widget*>(thing)->size_request();
-#endif
int h2 = ((req2.height > 0) && (req.height > req2.height)) ? (req.height / req2.height) : 1;
int w2 = ((req2.width > 0) && (req.width > req2.width)) ? (req.width / req2.width) : 1;
@@ -415,21 +349,11 @@ void PreviewHolder::rebuildUI()
switch(_view) {
case VIEW_TYPE_LIST:
{
-
-#if WITH_GTKMM_3_0
_insides = Gtk::manage(new Gtk::Grid());
_insides->set_column_spacing(8);
-#else
- _insides = Gtk::manage(new Gtk::Table( 1, 2 ));
- _insides->set_col_spacings( 8 );
-#endif
if (_border == BORDER_WIDE) {
-#if WITH_GTKMM_3_0
_insides->set_row_spacing(1);
-#else
- _insides->set_row_spacings( 1 );
-#endif
}
for ( unsigned int i = 0; i < items.size(); i++ ) {
@@ -438,7 +362,6 @@ void PreviewHolder::rebuildUI()
Gtk::Widget* thing = Gtk::manage(items[i]->getPreview(PREVIEW_STYLE_PREVIEW, _view, _baseSize, _ratio, _border));
-#if WITH_GTKMM_3_0
thing->set_hexpand();
thing->set_vexpand();
_insides->attach(*thing, 0, i, 1, 1);
@@ -446,10 +369,6 @@ void PreviewHolder::rebuildUI()
label->set_hexpand();
label->set_valign(Gtk::ALIGN_CENTER);
_insides->attach(*label, 1, i, 1, 1);
-#else
- _insides->attach( *thing, 0, 1, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
- _insides->attach( *label, 1, 2, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK );
-#endif
}
_scroller->add( *_insides );
@@ -472,28 +391,16 @@ void PreviewHolder::rebuildUI()
if ( !_insides ) {
calcGridSize( thing, items.size(), width, height );
-#if WITH_GTKMM_3_0
_insides = Gtk::manage(new Gtk::Grid());
if (_border == BORDER_WIDE) {
_insides->set_column_spacing(1);
_insides->set_row_spacing(1);
}
-#else
- _insides = Gtk::manage(new Gtk::Table( height, width ));
- if (_border == BORDER_WIDE) {
- _insides->set_col_spacings( 1 );
- _insides->set_row_spacings( 1 );
- }
-#endif
}
-#if WITH_GTKMM_3_0
thing->set_hexpand();
thing->set_vexpand();
_insides->attach( *thing, col, row, 1, 1);
-#else
- _insides->attach( *thing, col, col+1, row, row+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND );
-#endif
if ( ++col >= width ) {
col = 0;
@@ -501,11 +408,7 @@ void PreviewHolder::rebuildUI()
}
}
if ( !_insides ) {
-#if WITH_GTKMM_3_0
_insides = Gtk::manage(new Gtk::Grid());
-#else
- _insides = Gtk::manage(new Gtk::Table( 1, 2 ));
-#endif
}
_scroller->add( *_insides );
diff --git a/src/ui/previewholder.h b/src/ui/previewholder.h
index 28c0fd865..d370e8fc8 100644
--- a/src/ui/previewholder.h
+++ b/src/ui/previewholder.h
@@ -21,11 +21,7 @@
#include <gtkmm/bin.h>
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
#include "previewfillable.h"
@@ -68,12 +64,7 @@ private:
std::vector<Previewable*> items;
Gtk::Bin *_scroller;
-
-#if WITH_GTKMM_3_0
Gtk::Grid *_insides;
-#else
- Gtk::Table *_insides;
-#endif
int _prefCols;
bool _updatesFrozen;
diff --git a/src/ui/tool/Makefile_insert b/src/ui/tool/Makefile_insert
deleted file mode 100644
index f46f48b72..000000000
--- a/src/ui/tool/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/tool/control-point.cpp \
- ui/tool/control-point.h \
- ui/tool/control-point-selection.cpp \
- ui/tool/control-point-selection.h \
- ui/tool/commit-events.h \
- ui/tool/curve-drag-point.cpp \
- ui/tool/curve-drag-point.h \
- ui/tool/event-utils.cpp \
- ui/tool/event-utils.h \
- ui/tool/manipulator.cpp \
- ui/tool/manipulator.h \
- ui/tool/modifier-tracker.cpp \
- ui/tool/modifier-tracker.h \
- ui/tool/multi-path-manipulator.cpp \
- ui/tool/multi-path-manipulator.h \
- ui/tool/node.cpp \
- ui/tool/node.h \
- ui/tool/node-types.h \
- ui/tool/path-manipulator.cpp \
- ui/tool/path-manipulator.h \
- ui/tool/selectable-control-point.cpp \
- ui/tool/selectable-control-point.h \
- ui/tool/selector.cpp \
- ui/tool/selector.h \
- ui/tool/shape-record.h \
- ui/tool/transform-handle-set.cpp \
- ui/tool/transform-handle-set.h
diff --git a/src/ui/tools/Makefile_insert b/src/ui/tools/Makefile_insert
deleted file mode 100644
index 686dfedd8..000000000
--- a/src/ui/tools/Makefile_insert
+++ /dev/null
@@ -1,34 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/tools/arc-tool.cpp ui/tools/arc-tool.h \
- ui/tools/box3d-tool.cpp ui/tools/box3d-tool.h \
- ui/tools/calligraphic-tool.cpp ui/tools/calligraphic-tool.h \
- ui/tools/connector-tool.cpp ui/tools/connector-tool.h \
- ui/tools/dropper-tool.cpp ui/tools/dropper-tool.h \
- ui/tools/dynamic-base.cpp ui/tools/dynamic-base.h \
- ui/tools/eraser-tool.cpp ui/tools/eraser-tool.h \
- ui/tools/freehand-base.cpp ui/tools/freehand-base.h \
- ui/tools/gradient-tool.cpp ui/tools/gradient-tool.h \
- ui/tools/lpe-tool.cpp ui/tools/lpe-tool.h \
- ui/tools/measure-tool.cpp ui/tools/measure-tool.h \
- ui/tools/mesh-tool.cpp ui/tools/mesh-tool.h \
- ui/tools/node-tool.cpp ui/tools/node-tool.h \
- ui/tools/pen-tool.cpp ui/tools/pen-tool.h \
- ui/tools/pencil-tool.cpp ui/tools/pencil-tool.h \
- ui/tools/rect-tool.cpp ui/tools/rect-tool.h \
- ui/tools/select-tool.cpp ui/tools/select-tool.h \
- ui/tools/spiral-tool.cpp ui/tools/spiral-tool.h \
- ui/tools/spray-tool.cpp ui/tools/spray-tool.h \
- ui/tools/star-tool.cpp ui/tools/star-tool.h \
- ui/tools/text-tool.cpp ui/tools/text-tool.h \
- ui/tools/tool-base.cpp ui/tools/tool-base.h \
- ui/tools/tweak-tool.cpp ui/tools/tweak-tool.h \
- ui/tools/zoom-tool.cpp ui/tools/zoom-tool.h
-
-if HAVE_POTRACE
-
-ink_common_sources += \
- ui/tools/flood-tool.cpp ui/tools/flood-tool.h
-
-endif
diff --git a/src/ui/tools/dropper-tool.cpp b/src/ui/tools/dropper-tool.cpp
index 4db720686..99177dc75 100644
--- a/src/ui/tools/dropper-tool.cpp
+++ b/src/ui/tools/dropper-tool.cpp
@@ -118,20 +118,12 @@ void DropperTool::finish() {
}
if (cursor_dropper_fill) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor_dropper_fill);
-#else
- gdk_cursor_unref (cursor_dropper_fill);
-#endif
cursor_dropper_fill = NULL;
}
if (cursor_dropper_stroke) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cursor_dropper_stroke);
-#else
- gdk_cursor_unref (cursor_dropper_stroke);
-#endif
cursor_dropper_fill = NULL;
}
diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp
index 28ede7cb2..86a2dbed3 100644
--- a/src/ui/tools/select-tool.cpp
+++ b/src/ui/tools/select-tool.cpp
@@ -126,20 +126,12 @@ SelectTool::~SelectTool() {
this->_describer = NULL;
if (CursorSelectDragging) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(CursorSelectDragging);
-#else
- gdk_cursor_unref (CursorSelectDragging);
-#endif
CursorSelectDragging = NULL;
}
if (CursorSelectMouseover) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(CursorSelectMouseover);
-#else
- gdk_cursor_unref (CursorSelectMouseover);
-#endif
CursorSelectMouseover = NULL;
}
}
diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp
index 3d41bf417..8a35882b9 100644
--- a/src/ui/tools/tool-base.cpp
+++ b/src/ui/tools/tool-base.cpp
@@ -110,11 +110,7 @@ ToolBase::~ToolBase() {
}
if (this->cursor != NULL) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(this->cursor);
-#else
- gdk_cursor_unref(this->cursor);
-#endif
this->cursor = NULL;
}
@@ -141,16 +137,10 @@ void ToolBase::sp_event_context_set_cursor(GdkCursorType cursor_type) {
GdkDisplay *display = gdk_display_get_default();
GdkCursor *cursor = gdk_cursor_new_for_display(display, cursor_type);
-#if WITH_GTKMM_3_0
if (cursor) {
gdk_window_set_cursor (gtk_widget_get_window (w), cursor);
g_object_unref (cursor);
}
-#else
- gdk_window_set_cursor (gtk_widget_get_window (w), cursor);
- gdk_cursor_unref (cursor);
-#endif
-
}
/**
@@ -180,11 +170,7 @@ void ToolBase::sp_event_context_update_cursor() {
);
if (pixbuf != NULL) {
if (this->cursor) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(this->cursor);
-#else
- gdk_cursor_unref(this->cursor);
-#endif
}
this->cursor = gdk_cursor_new_from_pixbuf(display, pixbuf, this->hot_x, this->hot_y);
g_object_unref(pixbuf);
@@ -194,11 +180,7 @@ void ToolBase::sp_event_context_update_cursor() {
if (pixbuf) {
if (this->cursor) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(this->cursor);
-#else
- gdk_cursor_unref(this->cursor);
-#endif
}
this->cursor = gdk_cursor_new_from_pixbuf(display,
pixbuf, this->hot_x, this->hot_y);
@@ -769,11 +751,9 @@ bool ToolBase::root_handler(GdkEvent* event) {
int const wheel_scroll = prefs->getIntLimited(
"/options/wheelscroll/value", 40, 0, 1000);
-#if GTK_CHECK_VERSION(3,0,0)
// Size of smooth-scrolls (only used in GTK+ 3)
gdouble delta_x = 0;
gdouble delta_y = 0;
-#endif
/* shift + wheel, pan left--right */
if (event->scroll.state & GDK_SHIFT_MASK) {
@@ -834,12 +814,10 @@ bool ToolBase::root_handler(GdkEvent* event) {
desktop->scroll_world(-wheel_scroll, 0);
break;
-#if GTK_CHECK_VERSION(3,0,0)
case GDK_SCROLL_SMOOTH:
gdk_event_get_scroll_deltas(event, &delta_x, &delta_y);
desktop->scroll_world(delta_x, delta_y);
break;
-#endif
}
}
break;
diff --git a/src/ui/view/Makefile_insert b/src/ui/view/Makefile_insert
deleted file mode 100644
index b3ab598d4..000000000
--- a/src/ui/view/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/view/edit-widget-interface.h \
- ui/view/view.h \
- ui/view/view.cpp \
- ui/view/view-widget.cpp \
- ui/view/view-widget.h
-
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
deleted file mode 100644
index eb98e6872..000000000
--- a/src/ui/widget/Makefile_insert
+++ /dev/null
@@ -1,110 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- ui/widget/anchor-selector.h \
- ui/widget/anchor-selector.cpp \
- ui/widget/attr-widget.h \
- ui/widget/button.h \
- ui/widget/button.cpp \
- ui/widget/color-entry.cpp \
- ui/widget/color-entry.h \
- ui/widget/color-icc-selector.cpp \
- ui/widget/color-icc-selector.h \
- ui/widget/color-notebook.cpp \
- ui/widget/color-notebook.h \
- ui/widget/color-wheel-selector.cpp \
- ui/widget/color-wheel-selector.h \
- ui/widget/color-picker.cpp \
- ui/widget/color-picker.h \
- ui/widget/color-preview.cpp \
- ui/widget/color-preview.h \
- ui/widget/color-slider.cpp \
- ui/widget/color-slider.h \
- ui/widget/color-scales.cpp \
- ui/widget/color-scales.h \
- ui/widget/combo-enums.h \
- ui/widget/dock.h \
- ui/widget/dock.cpp \
- ui/widget/dock-item.h \
- ui/widget/dock-item.cpp \
- ui/widget/entity-entry.cpp \
- ui/widget/entity-entry.h \
- ui/widget/entry.cpp \
- ui/widget/entry.h \
- ui/widget/filter-effect-chooser.h \
- ui/widget/filter-effect-chooser.cpp \
- ui/widget/font-variants.h \
- ui/widget/font-variants.cpp \
- ui/widget/gimpspinscale.c \
- ui/widget/gimpspinscale.h \
- ui/widget/gimpcolorwheel.c \
- ui/widget/gimpcolorwheel.h \
- ui/widget/frame.cpp \
- ui/widget/frame.h \
- ui/widget/imageicon.cpp \
- ui/widget/imageicon.h \
- ui/widget/imagetoggler.cpp \
- ui/widget/imagetoggler.h \
- ui/widget/labelled.cpp \
- ui/widget/labelled.h \
- ui/widget/layer-selector.cpp \
- ui/widget/layer-selector.h \
- ui/widget/licensor.cpp \
- ui/widget/licensor.h \
- ui/widget/notebook-page.cpp \
- ui/widget/notebook-page.h \
- ui/widget/object-composite-settings.cpp \
- ui/widget/object-composite-settings.h \
- ui/widget/page-sizer.cpp \
- ui/widget/page-sizer.h \
- ui/widget/panel.cpp \
- ui/widget/panel.h \
- ui/widget/point.cpp \
- ui/widget/point.h \
- ui/widget/preferences-widget.cpp \
- ui/widget/preferences-widget.h \
- ui/widget/random.cpp \
- ui/widget/random.h \
- ui/widget/registered-widget.cpp \
- ui/widget/registered-widget.h \
- ui/widget/registered-enums.h \
- ui/widget/registry.cpp \
- ui/widget/registry.h \
- ui/widget/rendering-options.cpp \
- ui/widget/rendering-options.h \
- ui/widget/rotateable.h \
- ui/widget/rotateable.cpp \
- ui/widget/scalar-unit.cpp \
- ui/widget/scalar-unit.h \
- ui/widget/scalar.cpp \
- ui/widget/scalar.h \
- ui/widget/selected-style.h \
- ui/widget/selected-style.cpp \
- ui/widget/spinbutton.h \
- ui/widget/spinbutton.cpp \
- ui/widget/spin-scale.h \
- ui/widget/spin-scale.cpp \
- ui/widget/spin-slider.h \
- ui/widget/spin-slider.cpp \
- ui/widget/style-subject.h \
- ui/widget/style-subject.cpp \
- ui/widget/style-swatch.h \
- ui/widget/style-swatch.cpp \
- ui/widget/text.cpp \
- ui/widget/text.h \
- ui/widget/tolerance-slider.cpp \
- ui/widget/tolerance-slider.h \
- ui/widget/unit-menu.cpp \
- ui/widget/unit-menu.h \
- ui/widget/unit-tracker.h \
- ui/widget/unit-tracker.cpp \
- ui/widget/clipmaskicon.cpp \
- ui/widget/clipmaskicon.h \
- ui/widget/highlight-picker.cpp \
- ui/widget/highlight-picker.h \
- ui/widget/layertypeicon.cpp \
- ui/widget/layertypeicon.h \
- ui/widget/insertordericon.cpp \
- ui/widget/insertordericon.h \
- ui/widget/addtoicon.cpp \
- ui/widget/addtoicon.h
diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp
index 465423fc2..70516ed00 100644
--- a/src/ui/widget/addtoicon.cpp
+++ b/src/ui/widget/addtoicon.cpp
@@ -49,8 +49,6 @@ AddToIcon::AddToIcon() :
set_pixbuf();
}
-
-#if WITH_GTKMM_3_0
void AddToIcon::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -80,47 +78,16 @@ void AddToIcon::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void AddToIcon::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width = phys;//+= (*width) >> 1;
- }
- if ( height ) {
- *height =phys;//+= (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void AddToIcon::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void AddToIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
set_pixbuf();
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool AddToIcon::activate_vfunc(GdkEvent* /*event*/,
diff --git a/src/ui/widget/addtoicon.h b/src/ui/widget/addtoicon.h
index a8d900d1f..3b2228754 100644
--- a/src/ui/widget/addtoicon.h
+++ b/src/ui/widget/addtoicon.h
@@ -31,8 +31,6 @@ public:
Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > property_pixbuf_off();
protected:
-
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -46,18 +44,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/anchor-selector.cpp b/src/ui/widget/anchor-selector.cpp
index acf8aff79..087e7375e 100644
--- a/src/ui/widget/anchor-selector.cpp
+++ b/src/ui/widget/anchor-selector.cpp
@@ -27,11 +27,7 @@ void AnchorSelector::setupButton(const Glib::ustring& icon, Gtk::ToggleButton& b
AnchorSelector::AnchorSelector()
: Gtk::Alignment(0.5, 0, 0, 0),
-#if WITH_GTKMM_3_0
_container()
-#else
- _container(3, 3, true)
-#endif
{
setupButton(INKSCAPE_ICON("boundingbox_top_left"), _buttons[0]);
setupButton(INKSCAPE_ICON("boundingbox_top"), _buttons[1]);
@@ -43,20 +39,14 @@ AnchorSelector::AnchorSelector()
setupButton(INKSCAPE_ICON("boundingbox_bottom"), _buttons[7]);
setupButton(INKSCAPE_ICON("boundingbox_bottom_right"), _buttons[8]);
-#if WITH_GTKMM_3_0
_container.set_row_homogeneous();
_container.set_column_homogeneous(true);
-#endif
for(int i = 0; i < 9; ++i) {
_buttons[i].signal_clicked().connect(
sigc::bind(sigc::mem_fun(*this, &AnchorSelector::btn_activated), i));
-#if WITH_GTKMM_3_0
_container.attach(_buttons[i], i % 3, i / 3, 1, 1);
-#else
- _container.attach(_buttons[i], i % 3, i % 3+1, i / 3, i / 3+1, Gtk::FILL, Gtk::FILL);
-#endif
}
_selection = 4;
_buttons[4].set_active();
diff --git a/src/ui/widget/anchor-selector.h b/src/ui/widget/anchor-selector.h
index 0a702d296..96331fae3 100644
--- a/src/ui/widget/anchor-selector.h
+++ b/src/ui/widget/anchor-selector.h
@@ -16,12 +16,7 @@
#include <gtkmm/alignment.h>
#include <gtkmm/togglebutton.h>
-
-#if WITH_GTKMM_3_0
- #include <gtkmm/grid.h>
-#else
- #include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
namespace Inkscape {
namespace UI {
@@ -32,12 +27,7 @@ class AnchorSelector : public Gtk::Alignment
private:
Gtk::ToggleButton _buttons[9];
int _selection;
-
-#if WITH_GTKMM_3_0
Gtk::Grid _container;
-#else
- Gtk::Table _container;
-#endif
sigc::signal<void> _selectionChanged;
diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp
index 8715fdede..4f791042a 100644
--- a/src/ui/widget/clipmaskicon.cpp
+++ b/src/ui/widget/clipmaskicon.cpp
@@ -63,8 +63,6 @@ ClipMaskIcon::ClipMaskIcon() :
property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0);
}
-
-#if WITH_GTKMM_3_0
void ClipMaskIcon::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -94,39 +92,12 @@ void ClipMaskIcon::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void ClipMaskIcon::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width = phys;//+= (*width) >> 1;
- }
- if ( height ) {
- *height =phys;//+= (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void ClipMaskIcon::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void ClipMaskIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
switch (_property_active.get_value())
{
@@ -143,11 +114,7 @@ void ClipMaskIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0);
break;
}
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool ClipMaskIcon::activate_vfunc(GdkEvent* /*event*/,
diff --git a/src/ui/widget/clipmaskicon.h b/src/ui/widget/clipmaskicon.h
index eca852a83..0d149edb8 100644
--- a/src/ui/widget/clipmaskicon.h
+++ b/src/ui/widget/clipmaskicon.h
@@ -32,7 +32,6 @@ public:
protected:
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -46,18 +45,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp
index 52c6ed2e3..616e9afa8 100644
--- a/src/ui/widget/color-icc-selector.cpp
+++ b/src/ui/widget/color-icc-selector.cpp
@@ -5,7 +5,6 @@
#include <gtkmm/adjustment.h>
#include <glibmm/i18n.h>
-#include <gtk/gtk.h>
#include <set>
#include "ui/dialog-events.h"
@@ -84,7 +83,6 @@ GtkAttachOptions operator|(GtkAttachOptions lhs, GtkAttachOptions rhs)
void attachToGridOrTable(GtkWidget *parent, GtkWidget *child, guint left, guint top, guint width, guint height,
bool hexpand = false, bool centered = false, guint xpadding = XPAD, guint ypadding = YPAD)
{
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(child, xpadding);
gtk_widget_set_margin_end(child, xpadding);
@@ -103,14 +101,6 @@ void attachToGridOrTable(GtkWidget *parent, GtkWidget *child, guint left, guint
gtk_widget_set_valign(child, GTK_ALIGN_CENTER);
}
gtk_grid_attach(GTK_GRID(parent), child, left, top, width, height);
-#else
- GtkAttachOptions xoptions =
- centered ? static_cast<GtkAttachOptions>(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL;
- GtkAttachOptions yoptions = centered ? static_cast<GtkAttachOptions>(0) : GTK_FILL;
-
- gtk_table_attach(GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding,
- ypadding);
-#endif
}
} // namespace
@@ -428,12 +418,7 @@ void ColorICCSelector::init()
_impl->_compUI[i]._label = gtk_label_new_with_mnemonic(labelStr.c_str());
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(_impl->_compUI[i]._label, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment(GTK_MISC(_impl->_compUI[i]._label), 1.0, 0.5);
-#endif
-
gtk_widget_show(_impl->_compUI[i]._label);
gtk_widget_set_no_show_all(_impl->_compUI[i]._label, TRUE);
@@ -492,12 +477,7 @@ void ColorICCSelector::init()
// Label
_impl->_label = gtk_label_new_with_mnemonic(_("_A:"));
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(_impl->_label, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment(GTK_MISC(_impl->_label), 1.0, 0.5);
-#endif
-
gtk_widget_show(_impl->_label);
attachToGridOrTable(t, _impl->_label, 0, row, 1, 1);
@@ -724,11 +704,7 @@ void ColorICCSelectorImpl::_profilesChanged(std::string const & /*name*/) {}
void ColorICCSelector::on_show()
{
-#if GTK_CHECK_VERSION(3, 0, 0)
Gtk::Grid::on_show();
-#else
- Gtk::Table::on_show();
-#endif
_colorChanged();
}
diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h
index 1bcb0a540..aaa8372b8 100644
--- a/src/ui/widget/color-icc-selector.h
+++ b/src/ui/widget/color-icc-selector.h
@@ -6,11 +6,7 @@
#endif
#include <gtkmm/widget.h>
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include "ui/selected-color.h"
@@ -24,11 +20,7 @@ namespace Widget {
class ColorICCSelectorImpl;
class ColorICCSelector
-#if GTK_CHECK_VERSION(3, 0, 0)
: public Gtk::Grid
-#else
- : public Gtk::Table
-#endif
{
public:
static const gchar *MODE_NAME;
diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp
index 6634d8dad..33e22b59d 100644
--- a/src/ui/widget/color-notebook.cpp
+++ b/src/ui/widget/color-notebook.cpp
@@ -52,13 +52,8 @@ namespace Widget {
ColorNotebook::ColorNotebook(SelectedColor &color)
-#if GTK_CHECK_VERSION(3, 0, 0)
: Gtk::Grid()
-#else
- : Gtk::Table(2, 3, false)
-#endif
, _selected_color(color)
-
{
Page *page;
@@ -106,12 +101,8 @@ void ColorNotebook::_initUI()
notebook->set_show_tabs(false);
_book = GTK_WIDGET(notebook->gobj());
-#if GTK_CHECK_VERSION(3, 0, 0)
_buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE);
-#else
- _buttonbox = gtk_hbox_new(TRUE, 2);
-#endif
gtk_widget_show(_buttonbox);
_buttons = new GtkWidget *[_available_pages.size()];
@@ -122,7 +113,6 @@ void ColorNotebook::_initUI()
sp_set_font_size_smaller(_buttonbox);
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(_buttonbox, XPAD);
gtk_widget_set_margin_end(_buttonbox, XPAD);
@@ -135,14 +125,9 @@ void ColorNotebook::_initUI()
gtk_widget_set_hexpand(_buttonbox, TRUE);
gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER);
attach(*Glib::wrap(_buttonbox), 0, row, 2, 1);
-#else
- attach(*Glib::wrap(_buttonbox), 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, static_cast<Gtk::AttachOptions>(0),
- XPAD, YPAD);
-#endif
row++;
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(_book, XPAD * 2);
gtk_widget_set_margin_end(_book, XPAD * 2);
@@ -155,20 +140,13 @@ void ColorNotebook::_initUI()
gtk_widget_set_hexpand(_book, TRUE);
gtk_widget_set_vexpand(_book, TRUE);
attach(*notebook, 0, row, 2, 1);
-#else
- attach(*notebook, 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, XPAD * 2, YPAD);
-#endif
// restore the last active page
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_setCurrentPage(prefs->getInt("/colorselector/page", 0));
row++;
-#if GTK_CHECK_VERSION(3, 0, 0)
GtkWidget *rgbabox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
-#else
- GtkWidget *rgbabox = gtk_hbox_new(FALSE, 0);
-#endif
#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
/* Create color management icons */
@@ -206,11 +184,7 @@ void ColorNotebook::_initUI()
/* Create RGBA entry and color preview */
_rgbal = gtk_label_new_with_mnemonic(_("RGBA_:"));
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(_rgbal, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment(GTK_MISC(_rgbal), 1.0, 0.5);
-#endif
gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2);
ColorEntry *rgba_entry = Gtk::manage(new ColorEntry(_selected_color));
@@ -226,7 +200,6 @@ void ColorNotebook::_initUI()
gtk_widget_hide(GTK_WIDGET(_box_toomuchink));
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(rgbabox, XPAD);
gtk_widget_set_margin_end(rgbabox, XPAD);
@@ -237,9 +210,6 @@ void ColorNotebook::_initUI()
gtk_widget_set_margin_top(rgbabox, YPAD);
gtk_widget_set_margin_bottom(rgbabox, YPAD);
attach(*Glib::wrap(rgbabox), 0, row, 2, 1);
-#else
- attach(*Glib::wrap(rgbabox), 0, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK, XPAD, YPAD);
-#endif
#ifdef SPCS_PREVIEW
_p = sp_color_preview_new(0xffffffff);
diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h
index d28028c72..0948e3d46 100644
--- a/src/ui/widget/color-notebook.h
+++ b/src/ui/widget/color-notebook.h
@@ -19,12 +19,7 @@
#endif
#include <boost/ptr_container/ptr_vector.hpp>
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
-#include <gtk/gtk.h>
#include <glib.h>
#include "color.h"
@@ -35,11 +30,7 @@ namespace UI {
namespace Widget {
class ColorNotebook
-#if GTK_CHECK_VERSION(3, 0, 0)
: public Gtk::Grid
-#else
- : public Gtk::Table
-#endif
{
public:
ColorNotebook(SelectedColor &color);
diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp
index a66fbfc9c..5a62c3c98 100644
--- a/src/ui/widget/color-picker.cpp
+++ b/src/ui/widget/color-picker.cpp
@@ -59,13 +59,8 @@ void ColorPicker::setupDialog(const Glib::ustring &title)
_color_selector = Gtk::manage(new ColorNotebook(_selected_color));
-#if WITH_GTKMM_3_0
_colorSelectorDialog.get_content_area()->pack_start (
*_color_selector, true, true, 0);
-#else
- _colorSelectorDialog.get_vbox()->pack_start (
- *_color_selector, true, true, 0);
-#endif
_color_selector->show();
}
diff --git a/src/ui/widget/color-preview.cpp b/src/ui/widget/color-preview.cpp
index 62c7cca1d..c9b6e56d2 100644
--- a/src/ui/widget/color-preview.cpp
+++ b/src/ui/widget/color-preview.cpp
@@ -34,7 +34,6 @@ ColorPreview::on_size_allocate (Gtk::Allocation &all)
queue_draw();
}
-#if WITH_GTKMM_3_0
void
ColorPreview::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const
{
@@ -58,31 +57,6 @@ ColorPreview::get_preferred_width_for_height_vfunc(int /* height */, int& minimu
{
minimum_width = natural_width = SPCP_DEFAULT_WIDTH;
}
-#else
-void
-ColorPreview::on_size_request (Gtk::Requisition *req)
-{
- req->width = SPCP_DEFAULT_WIDTH;
- req->height = SPCP_DEFAULT_HEIGHT;
-}
-
-bool
-ColorPreview::on_expose_event (GdkEventExpose *event)
-{
- bool result = true;
-
- if (get_is_drawable())
- {
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
- cr->rectangle(event->area.x, event->area.y,
- event->area.width, event->area.height);
- cr->clip();
- result = on_draw(cr);
- }
-
- return result;
-}
-#endif
void
ColorPreview::setRgba32 (guint32 rgba)
diff --git a/src/ui/widget/color-preview.h b/src/ui/widget/color-preview.h
index caddfb9a2..1276cf42b 100644
--- a/src/ui/widget/color-preview.h
+++ b/src/ui/widget/color-preview.h
@@ -33,16 +33,10 @@ public:
protected:
virtual void on_size_allocate (Gtk::Allocation &all);
-#if WITH_GTKMM_3_0
virtual void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const;
virtual void get_preferred_height_for_width_vfunc(int width, int& minimum_height, int& natural_height) const;
virtual void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const;
virtual void get_preferred_width_for_height_vfunc(int height, int& minimum_width, int& natural_width) const;
-#else
- virtual void on_size_request (Gtk::Requisition *req);
- virtual bool on_expose_event(GdkEventExpose *event);
-#endif
-
virtual bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
guint32 _rgba;
diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp
index 832bc3a62..89913b01b 100644
--- a/src/ui/widget/color-scales.cpp
+++ b/src/ui/widget/color-scales.cpp
@@ -8,7 +8,6 @@
#include <gtkmm/adjustment.h>
#include <glibmm/i18n.h>
-#include <gtk/gtk.h>
#include "ui/dialog-events.h"
#include "ui/widget/color-scales.h"
@@ -44,11 +43,7 @@ static const gchar *sp_color_scales_hue_map();
const gchar *ColorScales::SUBMODE_NAMES[] = { N_("None"), N_("RGB"), N_("HSL"), N_("CMYK") };
ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode)
-#if GTK_CHECK_VERSION(3, 0, 0)
: Gtk::Grid()
-#else
- : Gtk::Table(5, 3, false)
-#endif
, _color(color)
, _rangeLimit(255.0)
, _updating(FALSE)
@@ -91,15 +86,9 @@ void ColorScales::_initUI(SPColorScalesMode mode)
/* Label */
_l[i] = gtk_label_new("");
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(_l[i], GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment(GTK_MISC(_l[i]), 1.0, 0.5);
-#endif
-
gtk_widget_show(_l[i]);
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(_l[i], XPAD);
gtk_widget_set_margin_end(_l[i], XPAD);
@@ -110,9 +99,6 @@ void ColorScales::_initUI(SPColorScalesMode mode)
gtk_widget_set_margin_top(_l[i], YPAD);
gtk_widget_set_margin_bottom(_l[i], YPAD);
gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1);
-#else
- gtk_table_attach(GTK_TABLE(t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD);
-#endif
/* Adjustment */
_a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0));
@@ -120,7 +106,6 @@ void ColorScales::_initUI(SPColorScalesMode mode)
_s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true)));
_s[i]->show();
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
_s[i]->set_margin_start(XPAD);
_s[i]->set_margin_end(XPAD);
@@ -132,10 +117,6 @@ void ColorScales::_initUI(SPColorScalesMode mode)
_s[i]->set_margin_bottom(YPAD);
_s[i]->set_hexpand(true);
gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1);
-#else
- gtk_table_attach(GTK_TABLE(t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
- GTK_FILL, XPAD, YPAD);
-#endif
/* Spinbutton */
_b[i] = gtk_spin_button_new(GTK_ADJUSTMENT(_a[i]), 1.0, 0);
@@ -143,7 +124,6 @@ void ColorScales::_initUI(SPColorScalesMode mode)
gtk_label_set_mnemonic_widget(GTK_LABEL(_l[i]), _b[i]);
gtk_widget_show(_b[i]);
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
gtk_widget_set_margin_start(_b[i], XPAD);
gtk_widget_set_margin_end(_b[i], XPAD);
@@ -156,9 +136,6 @@ void ColorScales::_initUI(SPColorScalesMode mode)
gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER);
gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1);
-#else
- gtk_table_attach(GTK_TABLE(t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD);
-#endif
/* Attach channel value to adjustment */
g_object_set_data(G_OBJECT(_a[i]), "channel", GINT_TO_POINTER(i));
@@ -270,7 +247,6 @@ void ColorScales::_setRangeLimit(gdouble upper)
_rangeLimit = upper;
for (gint i = 0; i < static_cast<gint>(G_N_ELEMENTS(_a)); i++) {
gtk_adjustment_set_upper(_a[i], upper);
- gtk_adjustment_changed(_a[i]);
}
}
@@ -284,11 +260,7 @@ void ColorScales::_onColorChanged()
void ColorScales::on_show()
{
-#if GTK_CHECK_VERSION(3, 0, 0)
Gtk::Grid::on_show();
-#else
- Gtk::Table::on_show();
-#endif
_updateDisplay();
}
diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h
index aeacfbcc1..1e86d762d 100644
--- a/src/ui/widget/color-scales.h
+++ b/src/ui/widget/color-scales.h
@@ -5,11 +5,7 @@
#include <config.h>
#endif
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include "ui/selected-color.h"
@@ -27,11 +23,7 @@ typedef enum {
} SPColorScalesMode;
class ColorScales
-#if GTK_CHECK_VERSION(3, 0, 0)
: public Gtk::Grid
-#else
- : public Gtk::Table
-#endif
{
public:
static const gchar *SUBMODE_NAMES[];
diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp
index bf2156628..2e665dbec 100644
--- a/src/ui/widget/color-slider.cpp
+++ b/src/ui/widget/color-slider.cpp
@@ -18,12 +18,7 @@
#include <gdkmm/cursor.h>
#include <gdkmm/general.h>
#include <gtkmm/adjustment.h>
-#if WITH_GTKMM_3_0
#include <gtkmm/stylecontext.h>
-#else
-#include <gtkmm/style.h>
-#endif
-#include <gtk/gtk.h>
#include "ui/widget/color-scales.h"
#include "ui/widget/color-slider.h"
@@ -42,14 +37,8 @@ namespace Inkscape {
namespace UI {
namespace Widget {
-#if GTK_CHECK_VERSION(3, 0, 0)
ColorSlider::ColorSlider(Glib::RefPtr<Gtk::Adjustment> adjustment)
: _dragging(false)
-#else
-ColorSlider::ColorSlider(Gtk::Adjustment *adjustment)
- : _dragging(false)
- , _adjustment(NULL)
-#endif
, _value(0.0)
, _oldvalue(0.0)
, _mapsize(0)
@@ -82,12 +71,7 @@ ColorSlider::~ColorSlider()
if (_adjustment) {
_adjustment_changed_connection.disconnect();
_adjustment_value_changed_connection.disconnect();
-#if GTK_CHECK_VERSION(3, 0, 0)
_adjustment.reset();
-#else
- _adjustment->unreference();
- _adjustment = NULL;
-#endif
}
}
@@ -108,26 +92,15 @@ void ColorSlider::on_realize()
attributes.window_type = GDK_WINDOW_CHILD;
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default());
-#if !GTK_CHECK_VERSION(3, 0, 0)
- attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default());
-#endif
attributes.event_mask = get_events();
attributes.event_mask |= (Gdk::EXPOSURE_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK |
Gdk::POINTER_MOTION_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK);
-#if GTK_CHECK_VERSION(3, 0, 0)
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-#else
- attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-#endif
_gdk_window = Gdk::Window::create(get_parent_window(), &attributes, attributes_mask);
set_window(_gdk_window);
_gdk_window->set_user_data(gobj());
-
-#if !GTK_CHECK_VERSION(3, 0, 0)
- style_attach();
-#endif
}
}
@@ -148,8 +121,6 @@ void ColorSlider::on_size_allocate(Gtk::Allocation &allocation)
}
}
-#if GTK_CHECK_VERSION(3, 0, 0)
-
void ColorSlider::get_preferred_width_vfunc(int &minimum_width, int &natural_width) const
{
Glib::RefPtr<Gtk::StyleContext> style_context = get_style_context();
@@ -176,38 +147,12 @@ void ColorSlider::get_preferred_height_for_width_vfunc(int /*width*/, int &minim
get_preferred_height(minimum_height, natural_height);
}
-#else
-
-void ColorSlider::on_size_request(Gtk::Requisition *requisition)
-{
- GtkStyle *style = gtk_widget_get_style(gobj());
- requisition->width = SLIDER_WIDTH + style->xthickness * 2;
- requisition->height = SLIDER_HEIGHT + style->ythickness * 2;
-}
-
-bool ColorSlider::on_expose_event(GdkEventExpose *event)
-{
- bool result = false;
-
- if (get_is_drawable()) {
- Cairo::RefPtr<Cairo::Context> cr = _gdk_window->create_cairo_context();
- result = on_draw(cr);
- }
- return result;
-}
-
-#endif
-
bool ColorSlider::on_button_press_event(GdkEventButton *event)
{
if (event->button == 1) {
Gtk::Allocation allocation = get_allocation();
gint cx, cw;
-#if GTK_CHECK_VERSION(3, 0, 0)
cx = get_style_context()->get_padding(get_state_flags()).get_left();
-#else
- cx = get_style()->get_xthickness();
-#endif
cw = allocation.get_width() - 2 * cx;
signal_grabbed.emit();
_dragging = true;
@@ -215,15 +160,9 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event)
ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0));
signal_dragged.emit();
-#if GTK_CHECK_VERSION(3, 0, 0)
gdk_device_grab(
gdk_event_get_device(reinterpret_cast<GdkEvent *>(event)), _gdk_window->gobj(), GDK_OWNERSHIP_NONE, FALSE,
static_cast<GdkEventMask>(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, event->time);
-#else
- gdk_pointer_grab(get_window()->gobj(), FALSE,
- static_cast<GdkEventMask>(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, NULL,
- event->time);
-#endif
}
return false;
@@ -232,13 +171,8 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event)
bool ColorSlider::on_button_release_event(GdkEventButton *event)
{
if (event->button == 1) {
-
-#if GTK_CHECK_VERSION(3, 0, 0)
gdk_device_ungrab(gdk_event_get_device(reinterpret_cast<GdkEvent *>(event)),
gdk_event_get_time(reinterpret_cast<GdkEvent *>(event)));
-#else
- get_window()->pointer_ungrab(event->time);
-#endif
_dragging = false;
signal_released.emit();
@@ -255,11 +189,7 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event)
if (_dragging) {
gint cx, cw;
Gtk::Allocation allocation = get_allocation();
-#if GTK_CHECK_VERSION(3, 0, 0)
cx = get_style_context()->get_padding(get_state_flags()).get_left();
-#else
- cx = get_style()->get_xthickness();
-#endif
cw = allocation.get_width() - 2 * cx;
ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0));
signal_dragged.emit();
@@ -268,19 +198,10 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event)
return false;
}
-#if GTK_CHECK_VERSION(3, 0, 0)
void ColorSlider::setAdjustment(Glib::RefPtr<Gtk::Adjustment> adjustment)
{
-#else
-void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment)
-{
-#endif
if (!adjustment) {
-#if GTK_CHECK_VERSION(3, 0, 0)
_adjustment = Gtk::Adjustment::create(0.0, 0.0, 1.0, 0.01, 0.0, 0.0);
-#else
- _adjustment = Gtk::manage(new Gtk::Adjustment(0.0, 0.0, 1.0, 0.01, 0.0, 0.0));
-#endif
}
else {
adjustment->set_page_increment(0.0);
@@ -291,9 +212,6 @@ void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment)
if (_adjustment) {
_adjustment_changed_connection.disconnect();
_adjustment_value_changed_connection.disconnect();
-#if !GTK_CHECK_VERSION(3, 0, 0)
- _adjustment->unreference();
-#endif
}
_adjustment = adjustment;
@@ -314,18 +232,11 @@ void ColorSlider::_onAdjustmentValueChanged()
{
if (_value != ColorScales::getScaled(_adjustment->gobj())) {
gint cx, cy, cw, ch;
-#if GTK_CHECK_VERSION(3, 0, 0)
- Glib::RefPtr<Gtk::StyleContext> style_context = get_style_context();
- Gtk::Allocation allocation = get_allocation();
- Gtk::Border padding = style_context->get_padding(get_state_flags());
+ auto style_context = get_style_context();
+ auto allocation = get_allocation();
+ auto padding = style_context->get_padding(get_state_flags());
cx = padding.get_left();
cy = padding.get_top();
-#else
- Glib::RefPtr<Gtk::Style> style = get_style();
- Gtk::Allocation allocation = get_allocation();
- cx = style->get_xthickness();
- cy = style->get_ythickness();
-#endif
cw = allocation.get_width() - 2 * cx;
ch = allocation.get_height() - 2 * cy;
if ((gint)(ColorScales::getScaled(_adjustment->gobj()) * cw) != (gint)(_value * cw)) {
@@ -389,40 +300,22 @@ bool ColorSlider::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
{
gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false);
- Gtk::Allocation allocation = get_allocation();
-
-#if GTK_CHECK_VERSION(3, 0, 0)
- Glib::RefPtr<Gtk::StyleContext> style_context = get_style_context();
-#else
- Glib::RefPtr<Gdk::Window> window = get_window();
- Glib::RefPtr<Gtk::Style> style = get_style();
-#endif
+ auto allocation = get_allocation();
+ auto style_context = get_style_context();
// Draw shadow
if (colorsOnTop) {
-#if GTK_CHECK_VERSION(3, 0, 0)
style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height());
-#else
- gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(),
- "colorslider", 0, 0, allocation.get_width(), allocation.get_height());
-#endif
}
/* Paintable part of color gradient area */
Gdk::Rectangle carea;
-
-#if GTK_CHECK_VERSION(3, 0, 0)
Gtk::Border padding;
padding = style_context->get_padding(get_state_flags());
carea.set_x(padding.get_left());
carea.set_y(padding.get_top());
- ;
-#else
- carea.set_x(style->get_xthickness());
- carea.set_y(style->get_ythickness());
-#endif
carea.set_width(allocation.get_width() - 2 * carea.get_x());
carea.set_height(allocation.get_height() - 2 * carea.get_y());
@@ -490,12 +383,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
/* Draw shadow */
if (!colorsOnTop) {
-#if GTK_CHECK_VERSION(3, 0, 0)
style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height());
-#else
- gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(),
- "colorslider", 0, 0, allocation.get_width(), allocation.get_height());
-#endif
}
/* Draw arrow */
diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h
index 253f3123c..9be6c356a 100644
--- a/src/ui/widget/color-slider.h
+++ b/src/ui/widget/color-slider.h
@@ -24,18 +24,10 @@ namespace Widget {
*/
class ColorSlider : public Gtk::Widget {
public:
-#if GTK_CHECK_VERSION(3, 0, 0)
ColorSlider(Glib::RefPtr<Gtk::Adjustment> adjustment);
-#else
- ColorSlider(Gtk::Adjustment *adjustment);
-#endif
~ColorSlider();
-#if GTK_CHECK_VERSION(3, 0, 0)
void setAdjustment(Glib::RefPtr<Gtk::Adjustment> adjustment);
-#else
- void setAdjustment(Gtk::Adjustment *adjustment);
-#endif
void setColors(guint32 start, guint32 mid, guint32 end);
@@ -56,16 +48,10 @@ protected:
bool on_button_release_event(GdkEventButton *event);
bool on_motion_notify_event(GdkEventMotion *event);
bool on_draw(const Cairo::RefPtr<Cairo::Context> &cr);
-
-#if GTK_CHECK_VERSION(3, 0, 0)
void get_preferred_width_vfunc(int &minimum_width, int &natural_width) const;
void get_preferred_width_for_height_vfunc(int height, int &minimum_width, int &natural_width) const;
void get_preferred_height_vfunc(int &minimum_height, int &natural_height) const;
void get_preferred_height_for_width_vfunc(int width, int &minimum_height, int &natural_height) const;
-#else
- void on_size_request(Gtk::Requisition *requisition);
- bool on_expose_event(GdkEventExpose *event);
-#endif
private:
void _onAdjustmentChanged();
@@ -73,11 +59,7 @@ private:
bool _dragging;
-#if GTK_CHECK_VERSION(3, 0, 0)
Glib::RefPtr<Gtk::Adjustment> _adjustment;
-#else
- Gtk::Adjustment *_adjustment;
-#endif
sigc::connection _adjustment_changed_connection;
sigc::connection _adjustment_value_changed_connection;
diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp
index decb02b4f..4f011c6c3 100644
--- a/src/ui/widget/color-wheel-selector.cpp
+++ b/src/ui/widget/color-wheel-selector.cpp
@@ -11,7 +11,7 @@
#include "ui/dialog-events.h"
#include "ui/widget/color-scales.h"
#include "ui/widget/color-slider.h"
-#include "ui/widget/gimpcolorwheel.h"
+#include "widgets/gimp/gimpcolorwheel.h"
namespace Inkscape {
namespace UI {
@@ -25,16 +25,9 @@ namespace Widget {
const gchar *ColorWheelSelector::MODE_NAME = N_("Wheel");
ColorWheelSelector::ColorWheelSelector(SelectedColor &color)
-#if GTK_CHECK_VERSION(3, 0, 0)
: Gtk::Grid()
-#else
- : Gtk::Table(5, 3, false)
-#endif
, _color(color)
, _updating(false)
-#if !GTK_CHECK_VERSION(3, 0, 0)
- , _alpha_adjustment(NULL)
-#endif
, _wheel(0)
, _slider(0)
{
@@ -46,9 +39,6 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color)
ColorWheelSelector::~ColorWheelSelector()
{
_wheel = 0;
-#if !GTK_CHECK_VERSION(3, 0, 0)
- delete _alpha_adjustment;
-#endif
_color_changed_connection.disconnect();
_color_dragged_connection.disconnect();
@@ -62,16 +52,11 @@ void ColorWheelSelector::_initUI()
_wheel = gimp_color_wheel_new();
gtk_widget_show(_wheel);
-#if GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_set_halign(_wheel, GTK_ALIGN_FILL);
gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL);
gtk_widget_set_hexpand(_wheel, TRUE);
gtk_widget_set_vexpand(_wheel, TRUE);
gtk_grid_attach(GTK_GRID(gobj()), _wheel, 0, row, 3, 1);
-#else
- gtk_table_attach(GTK_TABLE(gobj()), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-#endif
row++;
@@ -80,7 +65,6 @@ void ColorWheelSelector::_initUI()
label->set_alignment(1.0, 0.5);
label->show();
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
label->set_margin_start(XPAD);
label->set_margin_end(XPAD);
@@ -93,22 +77,15 @@ void ColorWheelSelector::_initUI()
label->set_halign(Gtk::ALIGN_FILL);
label->set_valign(Gtk::ALIGN_FILL);
attach(*label, 0, row, 1, 1);
-#else
- attach(*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD);
-#endif
-/* Adjustment */
-#if GTK_CHECK_VERSION(3, 0, 0)
+ /* Adjustment */
_alpha_adjustment = Gtk::Adjustment::create(0.0, 0.0, 255.0, 1.0, 10.0, 10.0);
-#else
- _alpha_adjustment = new Gtk::Adjustment(0.0, 0.0, 255.0, 1.0, 10.0, 10.0);
-#endif
+
/* Slider */
_slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(_alpha_adjustment));
_slider->set_tooltip_text(_("Alpha (opacity)"));
_slider->show();
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
_slider->set_margin_start(XPAD);
_slider->set_margin_end(XPAD);
@@ -122,25 +99,17 @@ void ColorWheelSelector::_initUI()
_slider->set_halign(Gtk::ALIGN_FILL);
_slider->set_valign(Gtk::ALIGN_FILL);
attach(*_slider, 1, row, 1, 1);
-#else
- attach(*_slider, 1, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::FILL, XPAD, YPAD);
-#endif
_slider->setColors(SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.0), SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.5),
SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 1.0));
-/* Spinbutton */
-#if GTK_CHECK_VERSION(3, 0, 0)
- Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0));
-#else
- Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(*_alpha_adjustment, 1.0, 0));
-#endif
+ /* Spinbutton */
+ auto spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0));
spin_button->set_tooltip_text(_("Alpha (opacity)"));
sp_dialog_defocus_on_enter(GTK_WIDGET(spin_button->gobj()));
label->set_mnemonic_widget(*spin_button);
spin_button->show();
-#if GTK_CHECK_VERSION(3, 0, 0)
#if GTK_CHECK_VERSION(3, 12, 0)
spin_button->set_margin_start(XPAD);
spin_button->set_margin_end(XPAD);
@@ -153,9 +122,6 @@ void ColorWheelSelector::_initUI()
spin_button->set_halign(Gtk::ALIGN_CENTER);
spin_button->set_valign(Gtk::ALIGN_CENTER);
attach(*spin_button, 2, row, 1, 1);
-#else
- attach(*spin_button, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, XPAD, YPAD);
-#endif
/* Signals */
_alpha_adjustment->signal_value_changed().connect(sigc::mem_fun(this, &ColorWheelSelector::_adjustmentChanged));
@@ -168,11 +134,7 @@ void ColorWheelSelector::_initUI()
void ColorWheelSelector::on_show()
{
-#if GTK_CHECK_VERSION(3, 0, 0)
Gtk::Grid::on_show();
-#else
- Gtk::Table::on_show();
-#endif
_updateDisplay();
}
diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h
index 5711d417c..ee7bd9b83 100644
--- a/src/ui/widget/color-wheel-selector.h
+++ b/src/ui/widget/color-wheel-selector.h
@@ -16,11 +16,7 @@
#include <config.h>
#endif
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include "ui/selected-color.h"
@@ -33,11 +29,7 @@ namespace Widget {
class ColorSlider;
class ColorWheelSelector
-#if GTK_CHECK_VERSION(3, 0, 0)
: public Gtk::Grid
-#else
- : public Gtk::Table
-#endif
{
public:
static const gchar *MODE_NAME;
@@ -61,11 +53,7 @@ protected:
SelectedColor &_color;
bool _updating;
-#if GTK_CHECK_VERSION(3, 0, 0)
Glib::RefPtr<Gtk::Adjustment> _alpha_adjustment;
-#else
- Gtk::Adjustment *_alpha_adjustment;
-#endif
GtkWidget *_wheel;
Inkscape::UI::Widget::ColorSlider *_slider;
diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp
index 1b3490ffe..979c09d2f 100644
--- a/src/ui/widget/dock-item.cpp
+++ b/src/ui/widget/dock-item.cpp
@@ -57,11 +57,7 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l
Gtk::StockItem item;
Gtk::StockID stockId(icon_name);
if ( Gtk::StockItem::lookup(stockId, item) ) {
-#if WITH_GTKMM_3_0
_icon_pixbuf = _dock.getWidget().render_icon_pixbuf( stockId, Gtk::ICON_SIZE_MENU );
-#else
- _icon_pixbuf = _dock.getWidget().render_icon( stockId, Gtk::ICON_SIZE_MENU );
-#endif
}
}
}
@@ -173,12 +169,8 @@ DockItem::set_size_request(int width, int height)
void DockItem::size_request(Gtk::Requisition& requisition)
{
-#if WITH_GTKMM_3_0
Gtk::Requisition req_natural;
getWidget().get_preferred_size(req_natural, requisition);
-#else
- requisition = getWidget().size_request();
-#endif
}
void
diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h
index 25a69d94c..2df45b207 100644
--- a/src/ui/widget/dock-item.h
+++ b/src/ui/widget/dock-item.h
@@ -19,11 +19,7 @@
#include <gtkmm/frame.h>
#include <gtkmm/window.h>
-#if WITH_EXT_GDL
#include <gdl/gdl.h>
-#else
-#include "libgdl/gdl.h"
-#endif
namespace Gtk {
class HButtonBox;
diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp
index fda647182..7744cb695 100644
--- a/src/ui/widget/dock.cpp
+++ b/src/ui/widget/dock.cpp
@@ -65,7 +65,6 @@ Dock::Dock(Gtk::Orientation orientation)
static_cast<GtkOrientation>(orientation));
#endif
-#if WITH_GTKMM_3_0
switch(orientation) {
case Gtk::ORIENTATION_VERTICAL:
_dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL));
@@ -75,17 +74,6 @@ Dock::Dock(Gtk::Orientation orientation)
}
_paned = Gtk::manage(new Gtk::Paned(orientation));
-#else
- switch (orientation) {
- case Gtk::ORIENTATION_VERTICAL:
- _dock_box = Gtk::manage(new Gtk::HBox());
- _paned = Gtk::manage(new Gtk::VPaned());
- break;
- case Gtk::ORIENTATION_HORIZONTAL:
- _dock_box = Gtk::manage(new Gtk::VBox());
- _paned = Gtk::manage(new Gtk::HPaned());
- }
-#endif
_scrolled_window->add(*_dock_box);
_scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp
index c1068c9b2..561c1332a 100644
--- a/src/ui/widget/highlight-picker.cpp
+++ b/src/ui/widget/highlight-picker.cpp
@@ -32,8 +32,6 @@ HighlightPicker::~HighlightPicker()
{
}
-
-#if WITH_GTKMM_3_0
void HighlightPicker::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -63,39 +61,12 @@ void HighlightPicker::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void HighlightPicker::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width = 10;//+= (*width) >> 1;
- }
- if ( height ) {
- *height = 20; //cell_area ? cell_area->get_height() / 2 : 50; //+= (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void HighlightPicker::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void HighlightPicker::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
GdkRectangle carea;
@@ -137,11 +108,7 @@ void HighlightPicker::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
convert_pixbuf_argb32_to_normal(pixbuf);
property_pixbuf() = Glib::wrap(pixbuf);
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool HighlightPicker::activate_vfunc(GdkEvent* /*event*/,
diff --git a/src/ui/widget/highlight-picker.h b/src/ui/widget/highlight-picker.h
index c5fe4c02c..c459b0dcd 100644
--- a/src/ui/widget/highlight-picker.h
+++ b/src/ui/widget/highlight-picker.h
@@ -29,8 +29,6 @@ public:
Glib::PropertyProxy<guint32> property_active() { return _property_active.get_proxy(); }
protected:
-
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -44,18 +42,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/imagetoggler.cpp b/src/ui/widget/imagetoggler.cpp
index 29907f4c9..987cc67bb 100644
--- a/src/ui/widget/imagetoggler.cpp
+++ b/src/ui/widget/imagetoggler.cpp
@@ -53,8 +53,6 @@ ImageToggler::ImageToggler( char const* on, char const* off) :
property_pixbuf() = _property_pixbuf_off.get_value();
}
-
-#if WITH_GTKMM_3_0
void ImageToggler::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -84,46 +82,15 @@ void ImageToggler::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void ImageToggler::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width += (*width) >> 1;
- }
- if ( height ) {
- *height += (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void ImageToggler::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void ImageToggler::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
property_pixbuf() = _property_active.get_value() ? _property_pixbuf_on : _property_pixbuf_off;
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool
diff --git a/src/ui/widget/imagetoggler.h b/src/ui/widget/imagetoggler.h
index 7b02fa4dc..d4f27cf11 100644
--- a/src/ui/widget/imagetoggler.h
+++ b/src/ui/widget/imagetoggler.h
@@ -36,8 +36,6 @@ public:
Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > property_pixbuf_off();
protected:
-
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -51,18 +49,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/insertordericon.cpp b/src/ui/widget/insertordericon.cpp
index 9aec7d135..7ed1ed2e2 100644
--- a/src/ui/widget/insertordericon.cpp
+++ b/src/ui/widget/insertordericon.cpp
@@ -52,7 +52,6 @@ InsertOrderIcon::InsertOrderIcon() :
}
-#if WITH_GTKMM_3_0
void InsertOrderIcon::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -82,39 +81,12 @@ void InsertOrderIcon::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void InsertOrderIcon::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width = phys;//+= (*width) >> 1;
- }
- if ( height ) {
- *height =phys;//+= (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void InsertOrderIcon::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void InsertOrderIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
switch (_property_active.get_value())
{
@@ -128,11 +100,7 @@ void InsertOrderIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0);
break;
}
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool InsertOrderIcon::activate_vfunc(GdkEvent* /*event*/,
diff --git a/src/ui/widget/insertordericon.h b/src/ui/widget/insertordericon.h
index bf8ac4fa7..43188fa5b 100644
--- a/src/ui/widget/insertordericon.h
+++ b/src/ui/widget/insertordericon.h
@@ -33,7 +33,6 @@ public:
protected:
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -47,18 +46,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/layertypeicon.cpp b/src/ui/widget/layertypeicon.cpp
index e281d982a..df85f271a 100644
--- a/src/ui/widget/layertypeicon.cpp
+++ b/src/ui/widget/layertypeicon.cpp
@@ -63,8 +63,6 @@ LayerTypeIcon::LayerTypeIcon() :
property_pixbuf() = _property_pixbuf_path.get_value();
}
-
-#if WITH_GTKMM_3_0
void LayerTypeIcon::get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const
@@ -94,46 +92,15 @@ void LayerTypeIcon::get_preferred_width_vfunc(Gtk::Widget& widget,
nat_w += (nat_w) >> 1;
}
}
-#else
-void LayerTypeIcon::get_size_vfunc(Gtk::Widget& widget,
- const Gdk::Rectangle* cell_area,
- int* x_offset,
- int* y_offset,
- int* width,
- int* height ) const
-{
- Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height );
-
- if ( width ) {
- *width += (*width) >> 1;
- }
- if ( height ) {
- *height += (*height) >> 1;
- }
-}
-#endif
-#if WITH_GTKMM_3_0
void LayerTypeIcon::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
Gtk::CellRendererState flags )
-#else
-void LayerTypeIcon::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags )
-#endif
{
property_pixbuf() = _property_active.get_value() == 1 ? _property_pixbuf_group : (_property_active.get_value() == 2 ? _property_pixbuf_layer : _property_pixbuf_path);
-#if WITH_GTKMM_3_0
Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags );
-#else
- Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags );
-#endif
}
bool
diff --git a/src/ui/widget/layertypeicon.h b/src/ui/widget/layertypeicon.h
index 6c71ce361..f12029c12 100644
--- a/src/ui/widget/layertypeicon.h
+++ b/src/ui/widget/layertypeicon.h
@@ -35,8 +35,6 @@ public:
Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > property_pixbuf_off();
protected:
-
-#if WITH_GTKMM_3_0
virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
@@ -50,18 +48,6 @@ protected:
virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
int& min_h,
int& nat_h) const;
-#else
- virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags );
-
- virtual void get_size_vfunc( Gtk::Widget &widget,
- Gdk::Rectangle const *cell_area,
- int *x_offset, int *y_offset, int *width, int *height ) const;
-#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,
diff --git a/src/ui/widget/licensor.cpp b/src/ui/widget/licensor.cpp
index 09f3fac8d..1e9ee361d 100644
--- a/src/ui/widget/licensor.cpp
+++ b/src/ui/widget/licensor.cpp
@@ -134,18 +134,10 @@ void Licensor::update (SPDocument *doc)
for (i=0; rdf_licenses[i].name; i++)
if (license == &rdf_licenses[i])
break;
-#if WITH_GTKMM_3_0
static_cast<LicenseItem*>(get_children()[i+1])->set_active();
-#else
- static_cast<LicenseItem*>(children()[i+1].get_widget())->set_active();
-#endif
}
else {
-#if WITH_GTKMM_3_0
static_cast<LicenseItem*>(get_children()[0])->set_active();
-#else
- static_cast<LicenseItem*>(children()[0].get_widget())->set_active();
-#endif
}
/* update the URI */
diff --git a/src/ui/widget/notebook-page.cpp b/src/ui/widget/notebook-page.cpp
index 2f03ed23b..6d8ff1d75 100644
--- a/src/ui/widget/notebook-page.cpp
+++ b/src/ui/widget/notebook-page.cpp
@@ -11,31 +11,19 @@
#include "notebook-page.h"
-#if WITH_GTKMM_3_0
# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
namespace Inkscape {
namespace UI {
namespace Widget {
NotebookPage::NotebookPage(int n_rows, int n_columns, bool expand, bool fill, guint padding)
-#if WITH_GTKMM_3_0
:_table(Gtk::manage(new Gtk::Grid()))
-#else
- :_table(Gtk::manage(new Gtk::Table(n_rows, n_columns)))
-#endif
{
set_border_width(2);
-#if WITH_GTKMM_3_0
_table->set_row_spacing(2);
_table->set_column_spacing(2);
-#else
- _table->set_spacings(2);
-#endif
pack_start(*_table, expand, fill, padding);
}
diff --git a/src/ui/widget/notebook-page.h b/src/ui/widget/notebook-page.h
index c11de1b5b..6eb23907c 100644
--- a/src/ui/widget/notebook-page.h
+++ b/src/ui/widget/notebook-page.h
@@ -17,11 +17,7 @@
#include <gtkmm/box.h>
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
namespace Inkscape {
@@ -42,19 +38,10 @@ public:
*/
NotebookPage(int n_rows, int n_columns, bool expand=false, bool fill=false, guint padding=0);
-#if WITH_GTKMM_3_0
Gtk::Grid& table() { return *_table; }
-#else
- Gtk::Table& table() { return *_table; }
-#endif
protected:
-
-#if WITH_GTKMM_3_0
Gtk::Grid *_table;
-#else
- Gtk::Table *_table;
-#endif
};
} // namespace Widget
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index 4a1fe9ac6..578b6855a 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -336,7 +336,6 @@ PageSizer::PageSizer(Registry & _wr)
_customDimTable.set_border_width(4);
-#if WITH_GTKMM_3_0
_customDimTable.set_row_spacing(4);
_customDimTable.set_column_spacing(4);
@@ -355,15 +354,6 @@ PageSizer::PageSizer(Registry & _wr)
_fitPageMarginExpander.set_hexpand();
_fitPageMarginExpander.set_vexpand();
_customDimTable.attach(_fitPageMarginExpander, 0, 2, 2, 1);
-#else
- _customDimTable.resize(3, 2);
- _customDimTable.set_row_spacings(4);
- _customDimTable.set_col_spacings(4);
- _customDimTable.attach(_dimensionWidth, 0,1, 0,1);
- _customDimTable.attach(_dimensionUnits, 1,2, 0,1);
- _customDimTable.attach(_dimensionHeight, 0,1, 1,2);
- _customDimTable.attach(_fitPageMarginExpander, 0,2, 2,3);
-#endif
_dimTabOrderGList = NULL;
_dimTabOrderGList = g_list_append(_dimTabOrderGList, _dimensionWidth.gobj());
@@ -381,7 +371,6 @@ PageSizer::PageSizer(Registry & _wr)
//## Set up margin settings
_marginTable.set_border_width(4);
-#if WITH_GTKMM_3_0
_marginTable.set_row_spacing(4);
_marginTable.set_column_spacing(4);
@@ -404,16 +393,6 @@ PageSizer::PageSizer(Registry & _wr)
_fitPageButtonAlign.set_hexpand();
_fitPageButtonAlign.set_vexpand();
_marginTable.attach(_fitPageButtonAlign, 0, 3, 2, 1);
-#else
- _marginTable.set_border_width(4);
- _marginTable.set_row_spacings(4);
- _marginTable.set_col_spacings(4);
- _marginTable.attach(_marginTopAlign, 0,2, 0,1);
- _marginTable.attach(_marginLeftAlign, 0,1, 1,2);
- _marginTable.attach(_marginRightAlign, 1,2, 1,2);
- _marginTable.attach(_marginBottomAlign, 0,2, 2,3);
- _marginTable.attach(_fitPageButtonAlign, 0,2, 3,4);
-#endif
_marginTopAlign.set(0.5, 0.5, 0.0, 1.0);
_marginTopAlign.add(_marginTop);
@@ -436,7 +415,6 @@ PageSizer::PageSizer(Registry & _wr)
_scaleTable.set_border_width(4);
-#if WITH_GTKMM_3_0
_scaleTable.set_row_spacing(4);
_scaleTable.set_column_spacing(4);
@@ -448,16 +426,6 @@ PageSizer::PageSizer(Registry & _wr)
_viewboxExpander.set_hexpand();
_viewboxExpander.set_vexpand();
_scaleTable.attach(_viewboxExpander, 0, 2, 2, 1);
-#else
- _scaleTable.resize(3, 2);
- _scaleTable.set_row_spacings(4);
- _scaleTable.set_col_spacings(4);
- _scaleTable.attach(_scaleX, 0,1, 0,1);
- _scaleTable.attach(_scaleY, 1,2, 0,1);
- _scaleTable.attach(_scaleLabel, 2,3, 0,1);
- _scaleTable.attach(_scaleWarning, 0,3, 1,2, Gtk::FILL);
- _scaleTable.attach(_viewboxExpander, 0,3, 2,3);
-#endif
_scaleWarning.set_label(_("While SVG allows non-uniform scaling it is recommended to use only uniform scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' directly."));
_scaleWarning.set_line_wrap( true );
@@ -466,7 +434,6 @@ PageSizer::PageSizer(Registry & _wr)
_viewboxExpander.set_label(_("_Viewbox..."));
_viewboxExpander.add(_viewboxTable);
-#if WITH_GTKMM_3_0
_viewboxTable.set_row_spacing(2);
_viewboxTable.set_column_spacing(2);
@@ -486,16 +453,6 @@ PageSizer::PageSizer(Registry & _wr)
_viewboxH.set_vexpand();
_viewboxTable.attach(_viewboxH, 1, 1, 1, 1);
-#else
- _viewboxTable.set_border_width(4);
- _viewboxTable.set_row_spacings(2);
- _viewboxTable.set_col_spacings(2);
- _viewboxTable.attach(_viewboxX, 0,1, 0,1);
- _viewboxTable.attach(_viewboxY, 1,2, 0,1);
- _viewboxTable.attach(_viewboxW, 0,1, 1,2);
- _viewboxTable.attach(_viewboxH, 1,2, 1,2);
-#endif
-
_wr.setUpdating (true);
updateScaleUI();
_wr.setUpdating (false);
diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h
index 0eea28e61..f1966f848 100644
--- a/src/ui/widget/page-sizer.h
+++ b/src/ui/widget/page-sizer.h
@@ -23,15 +23,9 @@
#include <gtkmm/alignment.h>
#include <gtkmm/expander.h>
#include <gtkmm/frame.h>
+#include <gtkmm/grid.h>
#include <gtkmm/liststore.h>
#include <gtkmm/scrolledwindow.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
-
#include <gtkmm/radiobutton.h>
namespace Inkscape {
@@ -222,12 +216,7 @@ protected:
//### Custom size frame
Gtk::Frame _customFrame;
-
-#if WITH_GTKMM_3_0
Gtk::Grid _customDimTable;
-#else
- Gtk::Table _customDimTable;
-#endif
RegisteredUnitMenu _dimensionUnits;
RegisteredScalarUnit _dimensionWidth;
@@ -237,12 +226,7 @@ protected:
//### Fit Page options
Gtk::Expander _fitPageMarginExpander;
-#if WITH_GTKMM_3_0
Gtk::Grid _marginTable;
-#else
- Gtk::Table _marginTable;
-#endif
-
Gtk::Alignment _marginTopAlign;
Gtk::Alignment _marginLeftAlign;
Gtk::Alignment _marginRightAlign;
@@ -257,11 +241,7 @@ protected:
// Document scale
Gtk::Frame _scaleFrame;
-#if WITH_GTKMM_3_0
Gtk::Grid _scaleTable;
-#else
- Gtk::Table _scaleTable;
-#endif
Gtk::Label _scaleLabel;
Gtk::Label _scaleWarning;
@@ -271,11 +251,7 @@ protected:
// Viewbox
Gtk::Expander _viewboxExpander;
-#if WITH_GTKMM_3_0
Gtk::Grid _viewboxTable;
-#else
- Gtk::Table _viewboxTable;
-#endif
RegisteredScalar _viewboxX;
RegisteredScalar _viewboxY;
diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp
index 98d9d41f3..6e6e6c527 100644
--- a/src/ui/widget/panel.cpp
+++ b/src/ui/widget/panel.cpp
@@ -72,9 +72,7 @@ Panel::Panel(Glib::ustring const &label, gchar const *prefs_path,
_fillable(0)
{
set_name( "InkscapePanel" );
-#if WITH_GTKMM_3_0
set_orientation( Gtk::ORIENTATION_VERTICAL );
-#endif
_init();
}
@@ -596,13 +594,9 @@ void Panel::_addResponseButton(Gtk::Button *button, int response_id, bool pack_s
{
// Create a button box for the response buttons if it's the first button to be added
if (!_action_area) {
-#if WITH_GTKMM_3_0
_action_area = new Gtk::ButtonBox();
_action_area->set_layout(Gtk::BUTTONBOX_END);
_action_area->set_spacing(6);
-#else
- _action_area = new Gtk::HButtonBox(Gtk::BUTTONBOX_END, 6);
-#endif
_action_area->set_border_width(4);
pack_end(*_action_area, Gtk::PACK_SHRINK, 0);
}
diff --git a/src/ui/widget/panel.h b/src/ui/widget/panel.h
index 7b2836fe8..370779586 100644
--- a/src/ui/widget/panel.h
+++ b/src/ui/widget/panel.h
@@ -31,13 +31,7 @@ class SPDocument;
namespace Gtk {
class CheckMenuItem;
-
-#if WITH_GTKMM_3_0
class ButtonBox;
-#else
- class HButtonBox;
-#endif
-
class MenuItem;
}
@@ -64,12 +58,7 @@ namespace Widget {
* @see UI::Dialog::DesktopTracker to handle desktop change, selection change and selected object modifications.
* @see UI::Dialog::DialogManager manages the dialogs within inkscape.
*/
-#if WITH_GTKMM_3_0
class Panel : public Gtk::Box {
-#else
-class Panel : public Gtk::VBox {
-#endif
-
public:
static void prep();
@@ -172,12 +161,7 @@ private:
Gtk::EventBox _menu_popper;
Gtk::Button _close_button;
Gtk::Menu *_menu;
-
-#if WITH_GTKMM_3_0
- Gtk::ButtonBox *_action_area; //< stores response buttons
-#else
- Gtk::HButtonBox *_action_area; //< stores response buttons
-#endif
+ Gtk::ButtonBox *_action_area; //< stores response buttons
std::vector<Gtk::Widget *> _non_horizontal;
std::vector<Gtk::Widget *> _non_vertical;
diff --git a/src/ui/widget/point.cpp b/src/ui/widget/point.cpp
index 2c2eb5e8a..6b31b1856 100644
--- a/src/ui/widget/point.cpp
+++ b/src/ui/widget/point.cpp
@@ -50,11 +50,7 @@ Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
diff --git a/src/ui/widget/point.h b/src/ui/widget/point.h
index 17078df8f..71bfd8473 100644
--- a/src/ui/widget/point.h
+++ b/src/ui/widget/point.h
@@ -82,11 +82,7 @@ public:
*/
Point( Glib::ustring const &label,
Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp
index e0eba3934..1205cd012 100644
--- a/src/ui/widget/preferences-widget.cpp
+++ b/src/ui/widget/preferences-widget.cpp
@@ -51,14 +51,9 @@ DialogPage::DialogPage()
{
set_border_width(12);
-#if WITH_GTKMM_3_0
set_orientation(Gtk::ORIENTATION_VERTICAL);
set_column_spacing(12);
set_row_spacing(6);
-#else
- set_col_spacings(12);
- set_row_spacings(6);
-#endif
}
/**
@@ -97,12 +92,7 @@ void DialogPage::add_line(bool indent,
// be indented if desired
Gtk::Alignment* w_alignment = Gtk::manage(new Gtk::Alignment());
w_alignment->add(*hb);
-
-#if WITH_GTKMM_3_0
w_alignment->set_valign(Gtk::ALIGN_CENTER);
-#else
- guint row = property_n_rows();
-#endif
// Add a label in the first column if provided
if (label != "")
@@ -118,17 +108,12 @@ void DialogPage::add_line(bool indent,
if (indent)
label_alignment->set_padding(0, 0, 12, 0);
-#if WITH_GTKMM_3_0
label_alignment->set_valign(Gtk::ALIGN_CENTER);
add(*label_alignment);
attach_next_to(*w_alignment, *label_alignment, Gtk::POS_RIGHT, 1, 1);
-#else
- attach(*label_alignment, 0, 1, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
-#endif
}
// Now add the widget to the bottom of the dialog
-#if WITH_GTKMM_3_0
if (label == "")
{
if (indent)
@@ -141,17 +126,6 @@ void DialogPage::add_line(bool indent,
g_value_set_int(&width, 2);
gtk_container_child_set_property(GTK_CONTAINER(gobj()), GTK_WIDGET(w_alignment->gobj()), "width", &width);
}
-#else
- // The widget should span two columns if there is no label
- int w_col_span = 1;
- if (label == "")
- w_col_span = 2;
-
- attach(*w_alignment, 2 - w_col_span, 2, row, row + 1,
- Gtk::FILL | Gtk::EXPAND,
- Gtk::AttachOptions(),
- 0, 0);
-#endif
// Add a label on the right of the widget if desired
if (suffix != "")
@@ -170,18 +144,8 @@ void DialogPage::add_group_header(Glib::ustring name)
Glib::ustring("</b>"/*</span>"*/) , Gtk::ALIGN_START , Gtk::ALIGN_CENTER, true));
label_widget->set_use_markup(true);
-
-#if WITH_GTKMM_3_0
label_widget->set_valign(Gtk::ALIGN_CENTER);
add(*label_widget);
-// if (row != 1)
- // set_row_spacing(row - 1, 18);
-#else
- int row = property_n_rows();
- attach(*label_widget , 0, 4, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
- if (row != 1)
- set_row_spacing(row - 1, 18);
-#endif
}
}
@@ -423,24 +387,6 @@ ZoomCorrRuler::draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int maj
}
}
-#if !WITH_GTKMM_3_0
-bool
-ZoomCorrRuler::on_expose_event(GdkEventExpose *event) {
- bool result = false;
-
- if(get_is_drawable())
- {
- Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
- cr->rectangle(event->area.x, event->area.y,
- event->area.width, event->area.height);
- cr->clip();
- result = on_draw(cr);
- }
-
- return result;
-}
-#endif
-
bool
ZoomCorrRuler::on_draw(const Cairo::RefPtr<Cairo::Context>& cr) {
Glib::RefPtr<Gdk::Window> window = get_window();
@@ -544,11 +490,7 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl
_ruler.set_size(ruler_width, ruler_height);
-#if WITH_GTKMM_3_0
_slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
-#else
- _slider = Gtk::manage(new Gtk::HScale());
-#endif
_slider->set_size_request(_ruler.width(), -1);
_slider->set_range (lower, upper);
@@ -575,21 +517,13 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl
alignment1->add(_sb);
alignment2->add(_unit);
-#if WITH_GTKMM_3_0
- Gtk::Grid *table = Gtk::manage(new Gtk::Grid());
+ auto table = Gtk::manage(new Gtk::Grid());
table->attach(*_slider, 0, 0, 1, 1);
alignment1->set_halign(Gtk::ALIGN_CENTER);
table->attach(*alignment1, 1, 0, 1, 1);
table->attach(_ruler, 0, 1, 1, 1);
alignment2->set_halign(Gtk::ALIGN_CENTER);
table->attach(*alignment2, 1, 1, 1, 1);
-#else
- Gtk::Table *table = Gtk::manage(new Gtk::Table());
- table->attach(*_slider, 0, 1, 0, 1);
- table->attach(*alignment1, 1, 2, 0, 1, static_cast<Gtk::AttachOptions>(0));
- table->attach(_ruler, 0, 1, 1, 2);
- table->attach(*alignment2, 1, 2, 1, 2, static_cast<Gtk::AttachOptions>(0));
-#endif
pack_start(*table, Gtk::PACK_SHRINK);
}
@@ -636,11 +570,7 @@ PrefSlider::init(Glib::ustring const &prefs_path,
freeze = false;
-#if WITH_GTKMM_3_0
_slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
-#else
- _slider = Gtk::manage(new Gtk::HScale());
-#endif
_slider->set_range (lower, upper);
_slider->set_increments (step_increment, page_increment);
@@ -657,17 +587,11 @@ PrefSlider::init(Glib::ustring const &prefs_path,
Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0));
alignment1->add(_sb);
-#if WITH_GTKMM_3_0
- Gtk::Grid *table = Gtk::manage(new Gtk::Grid());
+ auto table = Gtk::manage(new Gtk::Grid());
_slider->set_hexpand();
table->attach(*_slider, 0, 0, 1, 1);
alignment1->set_halign(Gtk::ALIGN_CENTER);
table->attach(*alignment1, 1, 0, 1, 1);
-#else
- Gtk::Table *table = Gtk::manage(new Gtk::Table());
- table->attach(*_slider, 0, 1, 0, 1);
- table->attach(*alignment1, 1, 2, 0, 1, static_cast<Gtk::AttachOptions>(0));
-#endif
this->pack_start(*table, Gtk::PACK_EXPAND_WIDGET);
}
diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h
index 1d2d77699..142793509 100644
--- a/src/ui/widget/preferences-widget.h
+++ b/src/ui/widget/preferences-widget.h
@@ -30,12 +30,7 @@
#include <gtkmm/radiobutton.h>
#include <gtkmm/comboboxtext.h>
#include <gtkmm/drawingarea.h>
-
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include "ui/widget/color-picker.h"
#include "ui/widget/unit-menu.h"
@@ -43,11 +38,7 @@
#include "ui/widget/scalar-unit.h"
namespace Gtk {
-#if WITH_GTKMM_3_0
class Scale;
-#else
-class HScale;
-#endif
}
namespace Inkscape {
@@ -126,10 +117,6 @@ public:
static const double textpadding;
private:
-#if !WITH_GTKMM_3_0
- bool on_expose_event(GdkEventExpose *event);
-#endif
-
bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
void draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int major_interval);
@@ -155,11 +142,7 @@ private:
Inkscape::UI::Widget::SpinButton _sb;
UnitMenu _unit;
-#if WITH_GTKMM_3_0
Gtk::Scale* _slider;
-#else
- Gtk::HScale* _slider;
-#endif
ZoomCorrRuler _ruler;
bool freeze; // used to block recursive updates of slider and spinbutton
};
@@ -178,11 +161,7 @@ private:
Glib::ustring _prefs_path;
Inkscape::UI::Widget::SpinButton _sb;
-#if WITH_GTKMM_3_0
Gtk::Scale* _slider;
-#else
- Gtk::HScale* _slider;
-#endif
bool freeze; // used to block recursive updates of slider and spinbutton
};
@@ -279,11 +258,7 @@ protected:
void on_changed();
};
-#if WITH_GTKMM_3_0
class DialogPage : public Gtk::Grid
-#else
-class DialogPage : public Gtk::Table
-#endif
{
public:
DialogPage();
diff --git a/src/ui/widget/random.cpp b/src/ui/widget/random.cpp
index b6ea16b89..ba3b025ba 100644
--- a/src/ui/widget/random.cpp
+++ b/src/ui/widget/random.cpp
@@ -47,11 +47,7 @@ Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
diff --git a/src/ui/widget/random.h b/src/ui/widget/random.h
index dc2b457c2..d86ab6246 100644
--- a/src/ui/widget/random.h
+++ b/src/ui/widget/random.h
@@ -75,11 +75,7 @@ public:
*/
Random(Glib::ustring const &label,
Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/scalar.cpp b/src/ui/widget/scalar.cpp
index fca8a7974..434c2c0bb 100644
--- a/src/ui/widget/scalar.cpp
+++ b/src/ui/widget/scalar.cpp
@@ -43,11 +43,7 @@ Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
@@ -141,11 +137,7 @@ void Scalar::update()
void Scalar::addSlider()
{
-#if WITH_GTKMM_3_0
- Gtk::Scale *scale = new Gtk::Scale(static_cast<SpinButton*>(_widget)->get_adjustment());
-#else
- Gtk::HScale *scale = new Gtk::HScale( * static_cast<SpinButton*>(_widget)->get_adjustment() );
-#endif
+ auto scale = new Gtk::Scale(static_cast<SpinButton*>(_widget)->get_adjustment());
scale->set_draw_value(false);
add (*manage (scale));
}
diff --git a/src/ui/widget/scalar.h b/src/ui/widget/scalar.h
index 86d7aee28..847790b96 100644
--- a/src/ui/widget/scalar.h
+++ b/src/ui/widget/scalar.h
@@ -73,11 +73,7 @@ public:
*/
Scalar(Glib::ustring const &label,
Glib::ustring const &tooltip,
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> &adjust,
-#else
- Gtk::Adjustment &adjust,
-#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index 7bbfa08db..fd83a62c9 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -118,11 +118,7 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
current_stroke_width(0),
_desktop (NULL),
-#if WITH_GTKMM_3_0
_table(),
-#else
- _table(2, 6),
-#endif
_fill_label (_("Fill:")),
_stroke_label (_("Stroke:")),
_opacity_label (_("O:")),
@@ -134,11 +130,7 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
_stroke_flag_place (),
_opacity_place (),
-#if WITH_GTKMM_3_0
_opacity_adjustment(Gtk::Adjustment::create(100, 0.0, 100, 1.0, 10.0)),
-#else
- _opacity_adjustment (100, 0.0, 100, 1.0, 10.0),
-#endif
_opacity_sb (0.02, 0),
_stroke (),
@@ -161,13 +153,8 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
_opacity_label.set_alignment(0.0, 0.5);
_opacity_label.set_padding(0, 0);
-#if WITH_GTKMM_3_0
_table.set_column_spacing(2);
_table.set_row_spacing(0);
-#else
- _table.set_col_spacings (2);
- _table.set_row_spacings (0);
-#endif
for (int i = SS_FILL; i <= SS_STROKE; i++) {
@@ -374,7 +361,6 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
_opacity_sb.set_size_request (SELECTED_STYLE_SB_WIDTH, -1);
_opacity_sb.set_sensitive (false);
-#if WITH_GTKMM_3_0
_table.attach(_fill_label, 0, 0, 1, 1);
_table.attach(_stroke_label, 0, 1, 1, 1);
@@ -383,26 +369,11 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
_table.attach(_fill_place, 2, 0, 1, 1);
_table.attach(_stroke, 2, 1, 1, 1);
-#else
- _table.attach(_fill_label, 0,1, 0,1, Gtk::FILL, Gtk::SHRINK);
- _table.attach(_stroke_label, 0,1, 1,2, Gtk::FILL, Gtk::SHRINK);
-
- _table.attach(_fill_flag_place, 1,2, 0,1, Gtk::SHRINK, Gtk::SHRINK);
- _table.attach(_stroke_flag_place, 1,2, 1,2, Gtk::SHRINK, Gtk::SHRINK);
-
- _table.attach(_fill_place, 2,3, 0,1);
- _table.attach(_stroke, 2,3, 1,2);
-#endif
_opacity_place.add(_opacity_label);
-#if WITH_GTKMM_3_0
_table.attach(_opacity_place, 4, 0, 1, 2);
_table.attach(_opacity_sb, 5, 0, 1, 2);
-#else
- _table.attach(_opacity_place, 4,5, 0,2, Gtk::SHRINK, Gtk::SHRINK);
- _table.attach(_opacity_sb, 5,6, 0,2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
pack_start(_table, true, true, 2);
@@ -1115,11 +1086,7 @@ SelectedStyle::update()
if (_opacity_blocked) break;
_opacity_blocked = true;
_opacity_sb.set_sensitive(true);
-#if WITH_GTKMM_3_0
_opacity_adjustment->set_value(SP_SCALE24_TO_FLOAT(query.opacity.value) * 100);
-#else
- _opacity_adjustment.set_value(SP_SCALE24_TO_FLOAT(query.opacity.value) * 100);
-#endif
_opacity_blocked = false;
break;
}
@@ -1219,11 +1186,7 @@ void SelectedStyle::on_opacity_changed ()
_opacity_blocked = true;
SPCSSAttr *css = sp_repr_css_attr_new ();
Inkscape::CSSOStringStream os;
-#if WITH_GTKMM_3_0
os << CLAMP ((_opacity_adjustment->get_value() / 100), 0.0, 1.0);
-#else
- os << CLAMP ((_opacity_adjustment.get_value() / 100), 0.0, 1.0);
-#endif
sp_repr_css_set_property (css, "opacity", os.str().c_str());
// FIXME: workaround for GTK breakage: display interruptibility sometimes results in GTK
// sending multiple value-changed events. As if when Inkscape interrupts redraw for main loop
@@ -1352,11 +1315,7 @@ RotateableSwatch::do_motion(double by, guint modifier) {
g_object_unref(pixbuf);
gdk_window_set_cursor(gtk_widget_get_window(w), cr);
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cr);
-#else
- gdk_cursor_unref(cr);
-#endif
cr = NULL;
cr_set = true;
}
@@ -1420,11 +1379,7 @@ RotateableSwatch::do_release(double by, guint modifier) {
GtkWidget *w = GTK_WIDGET(gobj());
gdk_window_set_cursor(gtk_widget_get_window(w), NULL);
if (cr) {
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(cr);
-#else
- gdk_cursor_unref (cr);
-#endif
cr = NULL;
}
cr_set = false;
diff --git a/src/ui/widget/selected-style.h b/src/ui/widget/selected-style.h
index 804a6fef6..efac29f73 100644
--- a/src/ui/widget/selected-style.h
+++ b/src/ui/widget/selected-style.h
@@ -16,12 +16,7 @@
#endif
#include <gtkmm/box.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include <gtkmm/label.h>
#include <gtkmm/eventbox.h>
@@ -140,11 +135,7 @@ public:
protected:
SPDesktop *_desktop;
-#if WITH_GTKMM_3_0
Gtk::Grid _table;
-#else
- Gtk::Table _table;
-#endif
Gtk::Label _fill_label;
Gtk::Label _stroke_label;
@@ -157,11 +148,7 @@ protected:
Gtk::EventBox _stroke_flag_place;
Gtk::EventBox _opacity_place;
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> _opacity_adjustment;
-#else
- Gtk::Adjustment _opacity_adjustment;
-#endif
Inkscape::UI::Widget::SpinButton _opacity_sb;
Gtk::Label _na[2];
diff --git a/src/ui/widget/spin-scale.cpp b/src/ui/widget/spin-scale.cpp
index d6b34a5b4..f74626d9b 100644
--- a/src/ui/widget/spin-scale.cpp
+++ b/src/ui/widget/spin-scale.cpp
@@ -11,7 +11,7 @@
#include <glibmm/i18n.h>
#include <glibmm/stringutils.h>
-#include "ui/widget/gimpspinscale.h"
+#include "widgets/gimp/gimpspinscale.h"
namespace Inkscape {
namespace UI {
@@ -21,13 +21,8 @@ SpinScale::SpinScale(const char* label, double value, double lower, double upper
double /*climb_rate*/, int digits, const SPAttributeEnum a, const char* tip_text)
: AttrWidget(a, value)
{
-#if WITH_GTKMM_3_0
_adjustment = Gtk::Adjustment::create(value, lower, upper, step_inc);
_spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits);
-#else
- _adjustment = new Gtk::Adjustment(value, lower, upper, step_inc);
- _spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits);
-#endif
signal_value_changed().connect(signal_attr_changed().make_slot());
@@ -41,12 +36,10 @@ SpinScale::SpinScale(const char* label, double value, double lower, double upper
}
SpinScale::SpinScale(const char* label,
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj,
-#else
- Gtk::Adjustment *adj,
-#endif
- int digits, const SPAttributeEnum a, const char* tip_text)
+ Glib::RefPtr<Gtk::Adjustment> adj,
+ int digits,
+ const SPAttributeEnum a,
+ const char* tip_text)
: AttrWidget(a, 0.0),
_adjustment(adj)
@@ -110,19 +103,12 @@ void SpinScale::set_appearance(const gchar* appearance)
gimp_spin_scale_set_appearance(_spinscale, appearance);
}
-#if WITH_GTKMM_3_0
-const Glib::RefPtr<Gtk::Adjustment> SpinScale::get_adjustment() const
-#else
-const Gtk::Adjustment *SpinScale::get_adjustment() const
-#endif
+const decltype(SpinScale::_adjustment) SpinScale::get_adjustment() const
{
return _adjustment;
}
-#if WITH_GTKMM_3_0
-Glib::RefPtr<Gtk::Adjustment> SpinScale::get_adjustment()
-#else
-Gtk::Adjustment *SpinScale::get_adjustment()
-#endif
+
+decltype(SpinScale::_adjustment) SpinScale::get_adjustment()
{
return _adjustment;
}
diff --git a/src/ui/widget/spin-scale.h b/src/ui/widget/spin-scale.h
index 50e4fc953..d7030bed3 100644
--- a/src/ui/widget/spin-scale.h
+++ b/src/ui/widget/spin-scale.h
@@ -36,12 +36,8 @@ public:
int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL);
SpinScale(const char* label,
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj,
-#else
- Gtk::Adjustment *adj,
-#endif
- int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL);
+ Glib::RefPtr<Gtk::Adjustment> adj,
+ int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL);
virtual Glib::ustring get_as_attribute() const;
virtual void set_from_attribute(SPObject*);
@@ -52,23 +48,14 @@ public:
void set_value(const double);
void set_focuswidget(GtkWidget *widget);
void set_appearance(const gchar* appearance);
-
-#if WITH_GTKMM_3_0
- const Glib::RefPtr<Gtk::Adjustment> get_adjustment() const;
- Glib::RefPtr<Gtk::Adjustment> get_adjustment();
-#else
- const Gtk::Adjustment *get_adjustment() const;
- Gtk::Adjustment *get_adjustment();
-#endif
private:
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> _adjustment;
-#else
- Gtk::Adjustment *_adjustment;
-#endif
-
GtkWidget *_spinscale;
+
+public:
+ const decltype(_adjustment) get_adjustment() const;
+ decltype(_adjustment) get_adjustment();
};
diff --git a/src/ui/widget/spin-slider.cpp b/src/ui/widget/spin-slider.cpp
index 9b361ae78..f17b9b26c 100644
--- a/src/ui/widget/spin-slider.cpp
+++ b/src/ui/widget/spin-slider.cpp
@@ -20,11 +20,7 @@ namespace Widget {
SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc,
double climb_rate, int digits, const SPAttributeEnum a, const char* tip_text)
: AttrWidget(a, value),
-#if WITH_GTKMM_3_0
_adjustment(Gtk::Adjustment::create(value, lower, upper, step_inc)),
-#else
- _adjustment(value, lower, upper, step_inc),
-#endif
_scale(_adjustment), _spin(_adjustment, climb_rate, digits)
{
signal_value_changed().connect(signal_attr_changed().make_slot());
@@ -43,11 +39,7 @@ SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc
Glib::ustring SpinSlider::get_as_attribute() const
{
-#if WITH_GTKMM_3_0
- const double val = _adjustment->get_value();
-#else
- const double val = _adjustment.get_value();
-#endif
+ const auto val = _adjustment->get_value();
if(_spin.get_digits() == 0)
return Glib::Ascii::dtostr((int)val);
@@ -58,77 +50,43 @@ Glib::ustring SpinSlider::get_as_attribute() const
void SpinSlider::set_from_attribute(SPObject* o)
{
const gchar* val = attribute_value(o);
-#if WITH_GTKMM_3_0
if(val)
_adjustment->set_value(Glib::Ascii::strtod(val));
else
_adjustment->set_value(get_default()->as_double());
-#else
- if(val)
- _adjustment.set_value(Glib::Ascii::strtod(val));
- else
- _adjustment.set_value(get_default()->as_double());
-#endif
}
Glib::SignalProxy0<void> SpinSlider::signal_value_changed()
{
-#if WITH_GTKMM_3_0
return _adjustment->signal_value_changed();
-#else
- return _adjustment.signal_value_changed();
-#endif
}
double SpinSlider::get_value() const
{
-#if WITH_GTKMM_3_0
return _adjustment->get_value();
-#else
- return _adjustment.get_value();
-#endif
}
void SpinSlider::set_value(const double val)
{
-#if WITH_GTKMM_3_0
_adjustment->set_value(val);
-#else
- _adjustment.set_value(val);
-#endif
}
-#if WITH_GTKMM_3_0
-const Glib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment() const
-#else
-const Gtk::Adjustment& SpinSlider::get_adjustment() const
-#endif
+const decltype(SpinSlider::_adjustment) SpinSlider::get_adjustment() const
{
return _adjustment;
}
-#if WITH_GTKMM_3_0
-Glib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment()
-#else
-Gtk::Adjustment& SpinSlider::get_adjustment()
-#endif
+
+decltype(SpinSlider::_adjustment) SpinSlider::get_adjustment()
{
return _adjustment;
}
-#if WITH_GTKMM_3_0
const Gtk::Scale& SpinSlider::get_scale() const
-#else
-const Gtk::HScale& SpinSlider::get_scale() const
-#endif
{
return _scale;
}
-#if WITH_GTKMM_3_0
Gtk::Scale& SpinSlider::get_scale()
-#else
-Gtk::HScale& SpinSlider::get_scale()
-#endif
{
return _scale;
}
@@ -157,15 +115,9 @@ DualSpinSlider::DualSpinSlider(double value, double lower, double upper, double
{
signal_value_changed().connect(signal_attr_changed().make_slot());
-#if WITH_GTKMM_3_0
_s1.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot());
_s2.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot());
_s1.get_adjustment()->signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked));
-#else
- _s1.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot());
- _s2.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot());
- _s1.get_adjustment().signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked));
-#endif
_link.signal_toggled().connect(sigc::mem_fun(*this, &DualSpinSlider::link_toggled));
Gtk::VBox* vb = Gtk::manage(new Gtk::VBox);
@@ -202,13 +154,8 @@ void DualSpinSlider::set_from_attribute(SPObject* o)
_link.set_active(toks[1] == 0);
-#if WITH_GTKMM_3_0
_s1.get_adjustment()->set_value(v1);
_s2.get_adjustment()->set_value(v2);
-#else
- _s1.get_adjustment().set_value(v1);
- _s2.get_adjustment().set_value(v2);
-#endif
g_strfreev(toks);
}
diff --git a/src/ui/widget/spin-slider.h b/src/ui/widget/spin-slider.h
index a5999f14f..5a29c1b67 100644
--- a/src/ui/widget/spin-slider.h
+++ b/src/ui/widget/spin-slider.h
@@ -42,17 +42,8 @@ public:
double get_value() const;
void set_value(const double);
-#if WITH_GTKMM_3_0
- const Glib::RefPtr<Gtk::Adjustment> get_adjustment() const;
- Glib::RefPtr<Gtk::Adjustment> get_adjustment();
const Gtk::Scale& get_scale() const;
Gtk::Scale& get_scale();
-#else
- const Gtk::Adjustment& get_adjustment() const;
- Gtk::Adjustment& get_adjustment();
- const Gtk::HScale& get_scale() const;
- Gtk::HScale& get_scale();
-#endif
const Inkscape::UI::Widget::SpinButton& get_spin_button() const;
Inkscape::UI::Widget::SpinButton& get_spin_button();
@@ -60,14 +51,13 @@ public:
// Change the SpinSlider into a SpinButton with AttrWidget support)
void remove_scale();
private:
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> _adjustment;
Gtk::Scale _scale;
-#else
- Gtk::Adjustment _adjustment;
- Gtk::HScale _scale;
-#endif
Inkscape::UI::Widget::SpinButton _spin;
+
+public:
+ const decltype(_adjustment) get_adjustment() const;
+ decltype(_adjustment) get_adjustment();
};
/**
diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h
index 30ffc7d77..ae571994b 100644
--- a/src/ui/widget/spinbutton.h
+++ b/src/ui/widget/spinbutton.h
@@ -36,11 +36,7 @@ public:
{
connect_signals();
};
-#if GTK_CHECK_VERSION(3,0,0)
explicit SpinButton(Glib::RefPtr<Gtk::Adjustment>& adjustment, double climb_rate = 0.0, guint digits = 0)
-#else
- explicit SpinButton(Gtk::Adjustment& adjustment, double climb_rate = 0.0, guint digits = 0)
-#endif
: Gtk::SpinButton(adjustment, climb_rate, digits),
_unit_menu(NULL),
_unit_tracker(NULL),
diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp
index 2952a3f97..f8eac1c78 100644
--- a/src/ui/widget/style-swatch.cpp
+++ b/src/ui/widget/style-swatch.cpp
@@ -28,11 +28,7 @@
#include "verbs.h"
#include <glibmm/i18n.h>
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
enum {
SS_FILL,
@@ -111,11 +107,7 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip)
_css(NULL),
_tool_obs(NULL),
_style_obs(NULL),
-#if WITH_GTKMM_3_0
_table(Gtk::manage(new Gtk::Grid())),
-#else
- _table(Gtk::manage(new Gtk::Table(2, 6))),
-#endif
_sw_unit(NULL)
{
set_name("StyleSwatch");
@@ -133,13 +125,8 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip)
_opacity_value.set_alignment(0.0, 0.5);
_opacity_value.set_padding(0, 0);
-#if WITH_GTKMM_3_0
_table->set_column_spacing(2);
_table->set_row_spacing(0);
-#else
- _table->set_col_spacings(2);
- _table->set_row_spacings(0);
-#endif
_stroke.pack_start(_place[SS_STROKE]);
_stroke_width_place.add(_stroke_width);
@@ -147,19 +134,11 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip)
_opacity_place.add(_opacity_value);
-#if WITH_GTKMM_3_0
_table->attach(_label[SS_FILL], 0, 0, 1, 1);
_table->attach(_label[SS_STROKE], 0, 1, 1, 1);
_table->attach(_place[SS_FILL], 1, 0, 1, 1);
_table->attach(_stroke, 1, 1, 1, 1);
_table->attach(_opacity_place, 2, 0, 1, 2);
-#else
- _table->attach(_label[SS_FILL], 0,1, 0,1, Gtk::FILL, Gtk::SHRINK);
- _table->attach(_label[SS_STROKE], 0,1, 1,2, Gtk::FILL, Gtk::SHRINK);
- _table->attach(_place[SS_FILL], 1,2, 0,1);
- _table->attach(_stroke, 1,2, 1,2);
- _table->attach(_opacity_place, 2,3, 0,2, Gtk::SHRINK, Gtk::SHRINK);
-#endif
_swatch.add(*_table);
pack_start(_swatch, true, true, 0);
diff --git a/src/ui/widget/style-swatch.h b/src/ui/widget/style-swatch.h
index 0016e0256..81a907d16 100644
--- a/src/ui/widget/style-swatch.h
+++ b/src/ui/widget/style-swatch.h
@@ -29,11 +29,7 @@ class SPStyle;
class SPCSSAttr;
namespace Gtk {
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
namespace Inkscape {
@@ -75,11 +71,7 @@ private:
Gtk::EventBox _swatch;
-#if WITH_GTKMM_3_0
Gtk::Grid *_table;
-#else
- Gtk::Table *_table;
-#endif
Gtk::Label _label[2];
Gtk::EventBox _place[2];
diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp
index e904666cc..dea14585d 100644
--- a/src/ui/widget/tolerance-slider.cpp
+++ b/src/ui/widget/tolerance-slider.cpp
@@ -76,12 +76,8 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la
// align the label with the checkbox text above by indenting 22 px.
_hbox->pack_start(*theLabel1, Gtk::PACK_EXPAND_WIDGET, 22);
-#if WITH_GTKMM_3_0
_hscale = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
_hscale->set_range(1.0, 51.0);
-#else
- _hscale = Gtk::manage (new Gtk::HScale (1.0, 51, 1.0));
-#endif
theLabel1->set_mnemonic_widget (*_hscale);
_hscale->set_draw_value (true);
@@ -121,11 +117,7 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la
void ToleranceSlider::setValue (double val)
{
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj = _hscale->get_adjustment();
-#else
- Gtk::Adjustment *adj = _hscale->get_adjustment();
-#endif
+ auto adj = _hscale->get_adjustment();
adj->set_lower (1.0);
adj->set_upper (51.0);
diff --git a/src/ui/widget/tolerance-slider.h b/src/ui/widget/tolerance-slider.h
index 7ae8e4712..3d2548ebe 100644
--- a/src/ui/widget/tolerance-slider.h
+++ b/src/ui/widget/tolerance-slider.h
@@ -14,11 +14,7 @@
namespace Gtk {
class RadioButton;
-#if WITH_GTKMM_3_0
class Scale;
-#else
-class HScale;
-#endif
}
namespace Inkscape {
@@ -60,13 +56,7 @@ protected:
void on_toggled();
void update (double val);
Gtk::HBox *_hbox;
-
-#if WITH_GTKMM_3_0
Gtk::Scale *_hscale;
-#else
- Gtk::HScale *_hscale;
-#endif
-
Gtk::RadioButtonGroup _radio_button_group;
Gtk::RadioButton *_button1;
Gtk::RadioButton *_button2;
diff --git a/src/util/Makefile_insert b/src/util/Makefile_insert
deleted file mode 100644
index 2a778e660..000000000
--- a/src/util/Makefile_insert
+++ /dev/null
@@ -1,49 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-util/all: util/libutil.a
-
-util/clean:
- rm -f util/libutil.a $(util_libutil_a_OBJECTS)
-
-util_libutil_a_SOURCES = \
- util/ziptool.h \
- util/ziptool.cpp \
- util/accumulators.h \
- util/compose.hpp \
- util/copy.h \
- util/enums.h \
- util/ege-appear-time-tracker.cpp \
- util/ege-appear-time-tracker.h \
- util/ege-tags.h \
- util/ege-tags.cpp \
- util/expression-evaluator.h \
- util/expression-evaluator.cpp \
- util/filter-list.h \
- util/find-if-before.h \
- util/find-last-if.h \
- util/fixed_point.h \
- util/format.h \
- util/forward-pointer-iterator.h \
- util/function.h \
- util/list.h \
- util/list-container.h \
- util/list-copy.h \
- util/longest-common-suffix.h \
- util/map-list.h \
- util/reference.h \
- util/reverse-list.h \
- util/share.h \
- util/share.cpp \
- util/signal-blocker.h \
- util/tuple.h \
- util/ucompose.hpp \
- util/units.cpp \
- util/units.h \
- util/unordered-containers.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-
-CXXTEST_TESTSUITES += \
- $(srcdir)/util/list-container-test.h
diff --git a/src/util/unordered-containers.h b/src/util/unordered-containers.h
index b92f2e7ea..0bda8191f 100644
--- a/src/util/unordered-containers.h
+++ b/src/util/unordered-containers.h
@@ -20,12 +20,11 @@
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#if defined(HAVE_NATIVE_UNORDERED_SET)
-# include <unordered_set>
-# include <unordered_map>
-# define INK_UNORDERED_SET std::unordered_set
-# define INK_UNORDERED_MAP std::unordered_map
-# define INK_HASH std::hash
+#include <unordered_set>
+#include <unordered_map>
+#define INK_UNORDERED_SET std::unordered_set
+#define INK_UNORDERED_MAP std::unordered_map
+#define INK_HASH std::hash
namespace std {
template <>
@@ -36,41 +35,6 @@ struct hash<Glib::ustring> : public std::unary_function<Glib::ustring, std::size
};
} // namespace std
-#elif defined(HAVE_TR1_UNORDERED_SET)
-# include <tr1/unordered_set>
-# include <tr1/unordered_map>
-# define INK_UNORDERED_SET std::tr1::unordered_set
-# define INK_UNORDERED_MAP std::tr1::unordered_map
-# define INK_HASH std::tr1::hash
-
-namespace std {
-namespace tr1 {
-template <>
-struct hash<Glib::ustring> : public std::unary_function<Glib::ustring, std::size_t> {
- std::size_t operator()(Glib::ustring const &s) const {
- return hash<std::string>()(s.raw());
- }
-};
-} // namespace tr1
-} // namespace std
-
-#elif defined(HAVE_BOOST_UNORDERED_SET)
-# include <boost/unordered_set.hpp>
-# include <boost/unordered_map.hpp>
-# define INK_UNORDERED_SET boost::unordered_set
-# define INK_UNORDERED_MAP boost::unordered_map
-# define INK_HASH boost::hash
-
-namespace boost {
-template <>
-struct hash<Glib::ustring> : public std::unary_function<Glib::ustring, std::size_t> {
- std::size_t operator()(Glib::ustring const &s) const {
- return hash<std::string>()(s.raw());
- }
-};
-} // namespace boost
-#endif
-
#else
/// Name (with namespace) of the unordered set template.
#define INK_UNORDERED_SET
diff --git a/src/verbs.cpp b/src/verbs.cpp
index fed2fef25..59ad06fa1 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -1201,6 +1201,9 @@ void SelectionVerb::perform(SPAction *action, void *data)
case SP_VERB_SELECTION_OUTLINE:
sp_selected_path_outline(dt);
break;
+ case SP_VERB_SELECTION_OUTLINE_LEGACY:
+ sp_selected_path_outline(dt, true);
+ break;
case SP_VERB_SELECTION_SIMPLIFY:
sp_selected_path_simplify(dt);
break;
@@ -2612,6 +2615,8 @@ Verb *Verb::_base_verbs[] = {
INKSCAPE_ICON("path-offset-linked")),
new SelectionVerb(SP_VERB_SELECTION_OUTLINE, "StrokeToPath", N_("_Stroke to Path"),
N_("Convert selected object's stroke to paths"), INKSCAPE_ICON("stroke-to-path")),
+ new SelectionVerb(SP_VERB_SELECTION_OUTLINE_LEGACY, "StrokeToPathLegacy", N_("_Stroke to Path Legacy"),
+ N_("Convert selected object's stroke to paths legacy mode"), INKSCAPE_ICON("stroke-to-path")),
new SelectionVerb(SP_VERB_SELECTION_SIMPLIFY, "SelectionSimplify", N_("Si_mplify"),
N_("Simplify selected paths (remove extra nodes)"), INKSCAPE_ICON("path-simplify")),
new SelectionVerb(SP_VERB_SELECTION_REVERSE, "SelectionReverse", N_("_Reverse"),
diff --git a/src/verbs.h b/src/verbs.h
index ffb9b23d8..16f88c408 100644
--- a/src/verbs.h
+++ b/src/verbs.h
@@ -135,6 +135,7 @@ enum {
SP_VERB_SELECTION_DYNAMIC_OFFSET,
SP_VERB_SELECTION_LINKED_OFFSET,
SP_VERB_SELECTION_OUTLINE,
+ SP_VERB_SELECTION_OUTLINE_LEGACY,
SP_VERB_SELECTION_SIMPLIFY,
SP_VERB_SELECTION_REVERSE,
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 225afe317..b2071af4e 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -1,24 +1,25 @@
+add_subdirectory(gimp)
set(widgets_SRC
button.cpp
- arc-toolbar.cpp
- box3d-toolbar.cpp
- calligraphy-toolbar.cpp
- connector-toolbar.cpp
- dropper-toolbar.cpp
- eraser-toolbar.cpp
- lpe-toolbar.cpp
- measure-toolbar.cpp
- mesh-toolbar.cpp
- node-toolbar.cpp
- pencil-toolbar.cpp
- rect-toolbar.cpp
- spiral-toolbar.cpp
- spray-toolbar.cpp
- star-toolbar.cpp
- text-toolbar.cpp
- tweak-toolbar.cpp
- zoom-toolbar.cpp
+ arc-toolbar.cpp
+ box3d-toolbar.cpp
+ calligraphy-toolbar.cpp
+ connector-toolbar.cpp
+ dropper-toolbar.cpp
+ eraser-toolbar.cpp
+ lpe-toolbar.cpp
+ measure-toolbar.cpp
+ mesh-toolbar.cpp
+ node-toolbar.cpp
+ pencil-toolbar.cpp
+ rect-toolbar.cpp
+ spiral-toolbar.cpp
+ spray-toolbar.cpp
+ star-toolbar.cpp
+ text-toolbar.cpp
+ tweak-toolbar.cpp
+ zoom-toolbar.cpp
dash-selector.cpp
desktop-widget.cpp
eek-preview.cpp
@@ -33,10 +34,13 @@ set(widgets_SRC
gradient-toolbar.cpp
gradient-vector.cpp
icon.cpp
+ image-menu-item.c
ink-action.cpp
ink-comboboxentry-action.cpp
+ ink-radio-action.cpp
+ ink-toggle-action.cpp
+ ink-tool-menu-action.cpp
paint-selector.cpp
- ruler.cpp
select-toolbar.cpp
sp-attribute-widget.cpp
sp-color-selector.cpp
@@ -55,24 +59,24 @@ set(widgets_SRC
# -------
# Headers
button.h
- arc-toolbar.h
- box3d-toolbar.h
- calligraphy-toolbar.h
- connector-toolbar.h
- dropper-toolbar.h
- eraser-toolbar.h
- lpe-toolbar.h
- measure-toolbar.h
- mesh-toolbar.h
- node-toolbar.h
- pencil-toolbar.h
- rect-toolbar.h
- spiral-toolbar.h
- spray-toolbar.h
- star-toolbar.h
- text-toolbar.h
- tweak-toolbar.h
- zoom-toolbar.h
+ arc-toolbar.h
+ box3d-toolbar.h
+ calligraphy-toolbar.h
+ connector-toolbar.h
+ dropper-toolbar.h
+ eraser-toolbar.h
+ lpe-toolbar.h
+ measure-toolbar.h
+ mesh-toolbar.h
+ node-toolbar.h
+ pencil-toolbar.h
+ rect-toolbar.h
+ spiral-toolbar.h
+ spray-toolbar.h
+ star-toolbar.h
+ text-toolbar.h
+ tweak-toolbar.h
+ zoom-toolbar.h
dash-selector.h
desktop-widget.h
eek-preview.h
@@ -88,10 +92,13 @@ set(widgets_SRC
gradient-toolbar.h
gradient-vector.h
icon.h
+ image-menu-item.h
ink-action.h
ink-comboboxentry-action.h
+ ink-radio-action.h
+ ink-toggle-action.h
+ ink-tool-menu-action.h
paint-selector.h
- ruler.h
select-toolbar.h
sp-attribute-widget.h
sp-color-selector.h
@@ -108,11 +115,6 @@ set(widgets_SRC
widget-sizes.h
)
-if(${WITH_GTK3_EXPERIMENTAL})
- set(image_menu_item_SRC image-menu-item.h image-menu-item.c)
- add_inkscape_source("${image_menu_item_SRC}")
-endif()
-
# add_inkscape_lib(widgets_LIB "${widgets_SRC}")
add_inkscape_source("${widgets_SRC}")
diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert
deleted file mode 100644
index c9f04de14..000000000
--- a/src/widgets/Makefile_insert
+++ /dev/null
@@ -1,123 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_GTKMM_3_0
-ink_common_sources += \
- widgets/image-menu-item.c \
- widgets/image-menu-item.h
-endif
-
-ink_common_sources += \
- widgets/arc-toolbar.cpp \
- widgets/arc-toolbar.h \
- widgets/box3d-toolbar.cpp \
- widgets/box3d-toolbar.h \
- widgets/button.cpp \
- widgets/button.h \
- widgets/calligraphy-toolbar.cpp \
- widgets/calligraphy-toolbar.h \
- widgets/connector-toolbar.cpp \
- widgets/connector-toolbar.h \
- widgets/dash-selector.cpp \
- widgets/dash-selector.h \
- widgets/desktop-widget.cpp \
- widgets/desktop-widget.h \
- widgets/dropper-toolbar.cpp \
- widgets/dropper-toolbar.h \
- widgets/eek-preview.cpp \
- widgets/eek-preview.h \
- widgets/ege-adjustment-action.cpp \
- widgets/ege-adjustment-action.h \
- widgets/ege-paint-def.cpp \
- widgets/ege-paint-def.h \
- widgets/ege-output-action.cpp \
- widgets/ege-output-action.h \
- widgets/ege-select-one-action.cpp \
- widgets/ege-select-one-action.h \
- widgets/eraser-toolbar.cpp \
- widgets/eraser-toolbar.h \
- widgets/fill-style.cpp \
- widgets/fill-style.h \
- widgets/fill-n-stroke-factory.h \
- widgets/font-selector.cpp \
- widgets/font-selector.h \
- widgets/gradient-image.cpp \
- widgets/gradient-image.h \
- widgets/gradient-selector.cpp \
- widgets/gradient-selector.h \
- widgets/gradient-toolbar.cpp \
- widgets/gradient-toolbar.h \
- widgets/gradient-vector.cpp \
- widgets/gradient-vector.h \
- widgets/icon.cpp \
- widgets/icon.h \
- widgets/ink-action.cpp \
- widgets/ink-action.h \
- widgets/ink-comboboxentry-action.cpp \
- widgets/ink-comboboxentry-action.h \
- widgets/lpe-toolbar.cpp \
- widgets/lpe-toolbar.h \
- widgets/measure-toolbar.cpp \
- widgets/measure-toolbar.h \
- widgets/mesh-toolbar.cpp \
- widgets/mesh-toolbar.h \
- widgets/node-toolbar.cpp \
- widgets/node-toolbar.h \
- widgets/paint-selector.cpp \
- widgets/paint-selector.h \
- widgets/pencil-toolbar.cpp \
- widgets/pencil-toolbar.h \
- widgets/rect-toolbar.cpp \
- widgets/rect-toolbar.h \
- widgets/ruler.cpp \
- widgets/ruler.h \
- widgets/select-toolbar.cpp \
- widgets/select-toolbar.h \
- widgets/spray-toolbar.cpp \
- widgets/spray-toolbar.h \
- widgets/spiral-toolbar.cpp \
- widgets/spiral-toolbar.h \
- widgets/sp-attribute-widget.cpp \
- widgets/sp-attribute-widget.h \
- widgets/sp-color-selector.cpp \
- widgets/sp-color-selector.h \
- widgets/spinbutton-events.cpp \
- widgets/spinbutton-events.h \
- widgets/sp-widget.cpp \
- widgets/sp-widget.h \
- widgets/spw-utilities.cpp \
- widgets/spw-utilities.h \
- widgets/sp-xmlview-attr-list.cpp \
- widgets/sp-xmlview-attr-list.h \
- widgets/sp-xmlview-content.cpp \
- widgets/sp-xmlview-content.h \
- widgets/sp-xmlview-tree.cpp \
- widgets/sp-xmlview-tree.h \
- widgets/star-toolbar.cpp \
- widgets/star-toolbar.h \
- widgets/stroke-marker-selector.cpp \
- widgets/stroke-marker-selector.h \
- widgets/stroke-style.cpp \
- widgets/stroke-style.h \
- widgets/swatch-selector.cpp \
- widgets/swatch-selector.h \
- widgets/text-toolbar.cpp \
- widgets/text-toolbar.h \
- widgets/toolbox.cpp \
- widgets/toolbox.h \
- widgets/tweak-toolbar.cpp \
- widgets/tweak-toolbar.h \
- widgets/widget-sizes.h \
- widgets/zoom-toolbar.cpp \
- widgets/zoom-toolbar.h \
- widgets/widget-sizes.h
-
-if HAVE_POTRACE
-
-ink_common_sources += \
- widgets/paintbucket-toolbar.cpp \
- widgets/paintbucket-toolbar.h
-
-endif
-
-widgets/button.$(OBJEXT): helper/sp-marshal.h
-widgets/menu.$(OBJEXT): helper/sp-marshal.h
diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp
index bea7cb712..9b408a7b2 100644
--- a/src/widgets/arc-toolbar.cpp
+++ b/src/widgets/arc-toolbar.cpp
@@ -37,7 +37,8 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-output-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
#include "mod360.h"
#include "selection.h"
#include "sp-ellipse.h"
diff --git a/src/widgets/box3d-toolbar.cpp b/src/widgets/box3d-toolbar.cpp
index b8c67ee76..95de28cf2 100644
--- a/src/widgets/box3d-toolbar.cpp
+++ b/src/widgets/box3d-toolbar.cpp
@@ -37,7 +37,7 @@
#include "document-undo.h"
#include "document.h"
#include "widgets/ege-adjustment-action.h"
-#include "widgets/ink-action.h"
+#include "widgets/ink-toggle-action.h"
#include "inkscape.h"
#include "persp3d.h"
#include "toolbox.h"
diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp
index bc59d1a39..3f4f1207a 100644
--- a/src/widgets/button.cpp
+++ b/src/widgets/button.cpp
@@ -21,15 +21,8 @@
#include "helper/action.h"
static void sp_button_dispose(GObject *object);
-
-#if GTK_CHECK_VERSION(3, 0, 0)
static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width);
-
static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height);
-#else
-static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition);
-#endif
-
static void sp_button_clicked(GtkButton *button);
static void sp_button_perform_action(SPButton *button, gpointer data);
static gint sp_button_process_event(SPButton *button, GdkEvent *event);
@@ -48,12 +41,8 @@ static void sp_button_class_init(SPButtonClass *klass)
GtkButtonClass *button_class = GTK_BUTTON_CLASS(klass);
object_class->dispose = sp_button_dispose;
-#if GTK_CHECK_VERSION(3, 0, 0)
widget_class->get_preferred_width = sp_button_get_preferred_width;
widget_class->get_preferred_height = sp_button_get_preferred_height;
-#else
- widget_class->size_request = sp_button_size_request;
-#endif
button_class->clicked = sp_button_clicked;
}
@@ -90,7 +79,6 @@ static void sp_button_dispose(GObject *object)
(G_OBJECT_CLASS(sp_button_parent_class))->dispose(object);
}
-#if GTK_CHECK_VERSION(3, 0, 0)
static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget));
@@ -134,23 +122,6 @@ static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_heig
*minimal_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom);
*natural_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom);
}
-#else
-static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition)
-{
- GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget));
- GtkStyle *style = gtk_widget_get_style(widget);
-
- if (child) {
- gtk_widget_size_request(GTK_WIDGET(child), requisition);
- } else {
- requisition->width = 0;
- requisition->height = 0;
- }
-
- requisition->width += 2 + 2 * MAX(2, style->xthickness);
- requisition->height += 2 + 2 * MAX(2, style->ythickness);
-}
-#endif
static void sp_button_clicked(GtkButton *button)
{
diff --git a/src/widgets/calligraphy-toolbar.cpp b/src/widgets/calligraphy-toolbar.cpp
index ba51499aa..031295ccd 100644
--- a/src/widgets/calligraphy-toolbar.cpp
+++ b/src/widgets/calligraphy-toolbar.cpp
@@ -37,6 +37,7 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
#include "widgets/ink-action.h"
+#include "widgets/ink-toggle-action.h"
#include "toolbox.h"
#include "ui/icon-names.h"
#include "ui/uxmanager.h"
diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp
index 8fd7c4f8d..a078ecec4 100644
--- a/src/widgets/connector-toolbar.cpp
+++ b/src/widgets/connector-toolbar.cpp
@@ -38,7 +38,8 @@
#include "widgets/ege-adjustment-action.h"
#include "enums.h"
#include "graphlayout.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-toggle-action.h"
#include "inkscape.h"
#include "sp-namedview.h"
#include "toolbox.h"
diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp
index e1cb563a7..522705cec 100644
--- a/src/widgets/dash-selector.cpp
+++ b/src/widgets/dash-selector.cpp
@@ -59,18 +59,9 @@ SPDashSelector::SPDashSelector()
dash_combo.signal_changed().connect( sigc::mem_fun(*this, &SPDashSelector::on_selection) );
this->pack_start(dash_combo, false, false, 0);
-
-#if WITH_GTKMM_3_0
offset = Gtk::Adjustment::create(0.0, 0.0, 10.0, 0.1, 1.0, 0.0);
-#else
- offset = new Gtk::Adjustment(0.0, 0.0, 10.0, 0.1, 1.0, 0.0);
-#endif
offset->signal_value_changed().connect(sigc::mem_fun(*this, &SPDashSelector::offset_value_changed));
-#if WITH_GTKMM_3_0
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(offset, 0.1, 2);
-#else
- Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(*offset, 0.1, 2);
-#endif
+ auto sb = new Inkscape::UI::Widget::SpinButton(offset, 0.1, 2);
sb->set_tooltip_text(_("Pattern offset"));
sp_dialog_defocus_on_enter_cpp(sb);
sb->show();
@@ -97,9 +88,6 @@ SPDashSelector::SPDashSelector()
SPDashSelector::~SPDashSelector() {
// FIXME: for some reason this doesn't get called; does the call to manage() in
// sp_stroke_style_line_widget_new() not processed correctly?
-#if !WITH_GTKMM_3_0
- delete offset;
-#endif
}
void SPDashSelector::prepareImageRenderer( Gtk::TreeModel::const_iterator const &row ) {
diff --git a/src/widgets/dash-selector.h b/src/widgets/dash-selector.h
index ec5a1cbd5..f176acf04 100644
--- a/src/widgets/dash-selector.h
+++ b/src/widgets/dash-selector.h
@@ -85,12 +85,7 @@ private:
Glib::RefPtr<Gtk::ListStore> dash_store;
Gtk::ComboBox dash_combo;
Gtk::CellRendererPixbuf image_renderer;
-
-#if WITH_GTKMM_3_0
Glib::RefPtr<Gtk::Adjustment> offset;
-#else
- Gtk::Adjustment *offset;
-#endif
static gchar const *const _prefs_path;
int preview_width;
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index ec155ce4c..bd72560c6 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -57,16 +57,14 @@
// We're in the "widgets" directory, so no need to explicitly prefix these:
#include "button.h"
-#include "ruler.h"
+#include "gimp/ruler.h"
#include "spinbutton-events.h"
#include "spw-utilities.h"
#include "toolbox.h"
#include "widget-sizes.h"
#include "verbs.h"
-#if GTK_CHECK_VERSION(3,0,0)
-# include <gtkmm/cssprovider.h>
-#endif
+#include <gtkmm/cssprovider.h>
#include <gtkmm/paned.h>
#include <gtkmm/messagedialog.h>
@@ -248,16 +246,11 @@ Geom::Point
SPDesktopWidget::window_get_pointer()
{
gint x,y;
- GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(canvas));
-
-#if GTK_CHECK_VERSION(3,0,0)
- GdkDisplay *display = gdk_window_get_display(window);
- GdkDeviceManager *dm = gdk_display_get_device_manager(display);
- GdkDevice *device = gdk_device_manager_get_client_pointer(dm);
+ auto window = gtk_widget_get_window(GTK_WIDGET(canvas));
+ auto display = gdk_window_get_display(window);
+ auto dm = gdk_display_get_device_manager(display);
+ auto device = gdk_device_manager_get_client_pointer(dm);
gdk_window_get_device_position(window, device, &x, &y, NULL);
-#else
- gdk_window_get_pointer(window, &x, &y, NULL);
-#endif
return Geom::Point(x,y);
}
@@ -336,21 +329,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->_interaction_disabled_counter = 0;
/* Main table */
-#if GTK_CHECK_VERSION(3,0,0)
dtw->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(dtw->vbox, "DesktopMainTable");
-#else
- dtw->vbox = gtk_vbox_new (FALSE, 0);
-#endif
gtk_container_add( GTK_CONTAINER(dtw), GTK_WIDGET(dtw->vbox) );
-
-#if GTK_CHECK_VERSION(3,0,0)
dtw->statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_name(dtw->statusbar, "DesktopStatusBar");
-#else
- dtw->statusbar = gtk_hbox_new (FALSE, 0);
-#endif
- //gtk_widget_set_usize (dtw->statusbar, -1, BOTTOM_BAR_HEIGHT);
gtk_box_pack_end (GTK_BOX (dtw->vbox), dtw->statusbar, FALSE, TRUE, 0);
{
@@ -358,19 +341,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->panels = new SwatchesPanel("/embedded/swatches" /*false*/);
dtw->panels->setOrientation(SP_ANCHOR_SOUTH);
-#if GTK_CHECK_VERSION(3,0,0)
dtw->panels->set_vexpand(false);
-#endif
-
gtk_box_pack_end( GTK_BOX( dtw->vbox ), GTK_WIDGET(dtw->panels->gobj()), FALSE, TRUE, 0 );
}
-#if GTK_CHECK_VERSION(3,0,0)
dtw->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_name(dtw->hbox, "DesktopHbox");
-#else
- dtw->hbox = gtk_hbox_new(FALSE, 0);
-#endif
gtk_box_pack_end( GTK_BOX (dtw->vbox), dtw->hbox, TRUE, TRUE, 0 );
gtk_widget_show(dtw->hbox);
@@ -394,14 +370,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
NULL,
INKSCAPE_ICON("object-locked"),
_("Toggle lock of all guides in the document"));
-#if GTK_CHECK_VERSION(3,0,0)
- Glib::RefPtr<Gtk::CssProvider> guides_lock_style_provider = Gtk::CssProvider::create();
+ auto guides_lock_style_provider = Gtk::CssProvider::create();
guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }");
- Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock);
+ auto wnd = Glib::wrap(dtw->guides_lock);
wnd->set_name("LockGuides");
- Glib::RefPtr<Gtk::StyleContext> context = wnd->get_style_context();
+ auto context = wnd->get_style_context();
context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-#endif
/* Horizontal ruler */
GtkWidget *eventbox = gtk_event_box_new ();
@@ -416,29 +390,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_hruler_event), dtw);
g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *tbl_wrapper = gtk_grid_new(); // Is this widget really needed?
+ auto tbl_wrapper = gtk_grid_new(); // Is this widget really needed?
gtk_widget_set_name(tbl_wrapper, "CanvasTableWrapper");
dtw->canvas_tbl = gtk_grid_new();
gtk_widget_set_name(dtw->canvas_tbl, "CanvasTable");
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->guides_lock, 0, 0, 1, 1);
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 1, 0, 1, 1);
-#else
- GtkWidget *tbl_wrapper = gtk_table_new(2, 3, FALSE);
- dtw->canvas_tbl = gtk_table_new(3, 3, FALSE);
-
- gtk_table_attach(GTK_TABLE(dtw->canvas_tbl),
- dtw->guides_lock,
- 0, 1, 0, 1,
- GTK_FILL, GTK_FILL,
- 0, 0);
- gtk_table_attach(GTK_TABLE(dtw->canvas_tbl),
- eventbox,
- 1, 2, 0, 1,
- GTK_FILL, GTK_FILL,
- 0, 0);
-#endif
g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw);
gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl_wrapper, TRUE, TRUE, 1 );
@@ -452,16 +410,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
sp_ruler_set_unit (SP_RULER (dtw->vruler), pt);
gtk_widget_set_tooltip_text (dtw->vruler_box, gettext(pt->name_plural.c_str()));
gtk_container_add (GTK_CONTAINER (eventbox), GTK_WIDGET (dtw->vruler));
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 0, 1, 1, 1);
-#else
- gtk_table_attach(GTK_TABLE (dtw->canvas_tbl),
- eventbox,
- 0, 1, 1, 2,
- GTK_FILL, GTK_FILL,
- 0, 0);
-#endif
g_signal_connect (G_OBJECT (eventbox), "button_press_event", G_CALLBACK (sp_dt_vruler_event), dtw);
g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_vruler_event), dtw);
@@ -469,19 +418,10 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
// Horizontal scrollbar
dtw->hadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0));
-
-#if GTK_CHECK_VERSION(3,0,0)
dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj));
gtk_widget_set_name(dtw->hscrollbar, "HorizontalScrollbar");
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 1, 1);
dtw->vscrollbar_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
-#else
- dtw->hscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (dtw->hadj));
- gtk_table_attach(GTK_TABLE (dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 2, 3,
- GTK_FILL, GTK_SHRINK,
- 0, 0);
- dtw->vscrollbar_box = gtk_vbox_new (FALSE, 0);
-#endif
// Sticky zoom button
dtw->sticky_zoom = sp_button_new_from_data ( Inkscape::ICON_SIZE_DECORATION,
@@ -496,23 +436,10 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
// Vertical scrollbar
dtw->vadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0));
-
-#if GTK_CHECK_VERSION(3,0,0)
dtw->vscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT(dtw->vadj));
gtk_widget_set_name(dtw->vscrollbar, "VerticalScrollbar");
-#else
- dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj));
-#endif
-
gtk_box_pack_start (GTK_BOX (dtw->vscrollbar_box), dtw->vscrollbar, TRUE, TRUE, 0);
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->vscrollbar_box, 2, 0, 1, 2);
-#else
- gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), dtw->vscrollbar_box, 2, 3, 0, 2,
- GTK_SHRINK, GTK_FILL,
- 0, 0);
-#endif
gchar const* tip = "";
Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE );
@@ -546,15 +473,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
cms_adjust_set_sensitive(dtw, FALSE);
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
-#if GTK_CHECK_VERSION(3,0,0)
gtk_grid_attach( GTK_GRID(dtw->canvas_tbl), dtw->cms_adjust, 2, 2, 1, 1);
-#else
- gtk_table_attach( GTK_TABLE(dtw->canvas_tbl), dtw->cms_adjust, 2, 3, 2, 3,
- (GtkAttachOptions)(GTK_SHRINK),
- (GtkAttachOptions)(GTK_SHRINK),
- 0, 0);
-#endif
-
{
if (!watcher) {
watcher = new CMSPrefWatcher();
@@ -571,10 +490,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
sp_ruler_add_track_widget (SP_RULER(dtw->hruler), GTK_WIDGET(dtw->canvas));
sp_ruler_add_track_widget (SP_RULER(dtw->vruler), GTK_WIDGET(dtw->canvas));
-
-#if GTK_CHECK_VERSION(3,0,0)
- GtkCssProvider *css_provider = gtk_css_provider_new();
- GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->canvas));
+ auto css_provider = gtk_css_provider_new();
+ auto style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->canvas));
gtk_css_provider_load_from_data(css_provider,
"SPCanvas {\n"
@@ -585,21 +502,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_style_context_add_provider(style_context,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
-#else
- GtkStyle *style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(dtw->canvas)));
- style->bg[GTK_STATE_NORMAL] = style->white;
- gtk_widget_set_style (GTK_WIDGET (dtw->canvas), style);
-#endif
-
g_signal_connect (G_OBJECT (dtw->canvas), "event", G_CALLBACK (sp_desktop_widget_event), dtw);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_hexpand(GTK_WIDGET(dtw->canvas), TRUE);
gtk_widget_set_vexpand(GTK_WIDGET(dtw->canvas), TRUE);
gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), GTK_WIDGET(dtw->canvas), 1, 1, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (dtw->canvas_tbl), GTK_WIDGET(dtw->canvas), 1, 2, 1, 2, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 0, 0);
-#endif
/* Dock */
bool create_dock =
@@ -608,12 +515,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
if (create_dock) {
dtw->dock = new Inkscape::UI::Widget::Dock();
-#if WITH_GTKMM_3_0
- Gtk::Paned *paned = new Gtk::Paned();
+ auto paned = new Gtk::Paned();
paned->set_name("Canvas_and_Dock");
-#else
- Gtk::HPaned *paned = new Gtk::HPaned();
-#endif
paned->pack1(*Glib::wrap(dtw->canvas_tbl));
paned->pack2(dtw->dock->getWidget(), Gtk::FILL);
@@ -624,24 +527,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
paned_class->cycle_handle_focus = NULL;
}
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_hexpand(GTK_WIDGET(paned->gobj()), TRUE);
gtk_widget_set_vexpand(GTK_WIDGET(paned->gobj()), TRUE);
gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 1, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-#endif
-
} else {
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_hexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE);
gtk_widget_set_vexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE);
gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 1, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-#endif
}
// connect scrollbar signals
@@ -658,11 +550,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
// Separator
gtk_box_pack_start(GTK_BOX(dtw->statusbar),
-#if GTK_CHECK_VERSION(3,0,0)
gtk_separator_new(GTK_ORIENTATION_VERTICAL),
-#else
- gtk_vseparator_new(),
-#endif
FALSE, FALSE, 0);
// Layer Selector
@@ -681,12 +569,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_label_set_lines (GTK_LABEL(dtw->select_status), 2);
#endif
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(dtw->select_status, GTK_ALIGN_START);
-#else
- gtk_misc_set_alignment (GTK_MISC (dtw->select_status), 0.0, 0.5);
-#endif
-
gtk_widget_set_size_request (dtw->select_status, 1, -1);
// Display the initial welcome message in the statusbar
@@ -712,65 +595,36 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->zoom_update = g_signal_connect (G_OBJECT (dtw->zoom_status), "populate_popup", G_CALLBACK (sp_dtw_zoom_populate_popup), dtw);
// Cursor coordinates
-#if GTK_CHECK_VERSION(3,0,0)
dtw->coord_status = gtk_grid_new();
gtk_widget_set_name(dtw->coord_status, "CoordinateAndZStatus");
gtk_grid_set_row_spacing(GTK_GRID(dtw->coord_status), 0);
gtk_grid_set_column_spacing(GTK_GRID(dtw->coord_status), 2);
- GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
+ auto sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
gtk_widget_set_name(sep, "CoordinateSeparator");
gtk_grid_attach(GTK_GRID(dtw->coord_status),
GTK_WIDGET(sep),
0, 0, 1, 2);
-#else
- dtw->coord_status = gtk_table_new(5, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(dtw->coord_status), 0);
- gtk_table_set_col_spacings(GTK_TABLE(dtw->coord_status), 2);
- gtk_table_attach(GTK_TABLE(dtw->coord_status),
- gtk_vseparator_new(),
- 0, 1, 0, 2,
- GTK_FILL, GTK_FILL, 0, 0);
-#endif
gtk_widget_set_tooltip_text (dtw->coord_status, _("Cursor coordinates"));
- GtkWidget *label_x = gtk_label_new(_("X:"));
- GtkWidget *label_y = gtk_label_new(_("Y:"));
-
-#if GTK_CHECK_VERSION(3,0,0)
+ auto label_x = gtk_label_new(_("X:"));
+ auto label_y = gtk_label_new(_("Y:"));
gtk_widget_set_halign(label_x, GTK_ALIGN_START);
gtk_widget_set_halign(label_y, GTK_ALIGN_START);
gtk_grid_attach(GTK_GRID(dtw->coord_status), label_x, 1, 0, 1, 1);
gtk_grid_attach(GTK_GRID(dtw->coord_status), label_y, 1, 1, 1, 1);
-#else
- gtk_misc_set_alignment (GTK_MISC(label_x), 0.0, 0.5);
- gtk_misc_set_alignment (GTK_MISC(label_y), 0.0, 0.5);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), label_x, 1,2, 0,1, GTK_FILL, GTK_FILL, 0, 0);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), label_y, 1,2, 1,2, GTK_FILL, GTK_FILL, 0, 0);
-#endif
-
dtw->coord_status_x = gtk_label_new(NULL);
dtw->coord_status_y = gtk_label_new(NULL);
gtk_label_set_markup( GTK_LABEL(dtw->coord_status_x), "<tt> 0.00 </tt>" );
gtk_label_set_markup( GTK_LABEL(dtw->coord_status_y), "<tt> 0.00 </tt>" );
- GtkWidget* label_z = gtk_label_new(_("Z:"));
+ auto label_z = gtk_label_new(_("Z:"));
gtk_widget_set_name(label_z, "ZLabel");
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(dtw->coord_status_x, GTK_ALIGN_END);
gtk_widget_set_halign(dtw->coord_status_y, GTK_ALIGN_END);
gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_x, 2, 0, 1, 1);
gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_y, 2, 1, 1, 1);
gtk_grid_attach(GTK_GRID(dtw->coord_status), label_z, 3, 0, 1, 2);
gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->zoom_status, 4, 0, 1, 2);
-#else
- gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_x), 1.0, 0.5);
- gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_y), 1.0, 0.5);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_x, 2,3, 0,1, GTK_FILL, GTK_FILL, 0, 0);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_y, 2,3, 1,2, GTK_FILL, GTK_FILL, 0, 0);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), label_z, 3,4, 0,2, GTK_FILL, GTK_FILL, 0, 0);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->zoom_status, 4,5, 0,2, GTK_FILL, GTK_FILL, 0, 0);
-#endif
sp_set_font_size_smaller (dtw->coord_status);
@@ -2203,7 +2057,6 @@ set_adjustment (GtkAdjustment *adj, double l, double u, double ps, double si, do
gtk_adjustment_set_page_size(adj, ps);
gtk_adjustment_set_step_increment(adj, si);
gtk_adjustment_set_page_increment(adj, pi);
- gtk_adjustment_changed (adj);
}
}
diff --git a/src/widgets/dropper-toolbar.cpp b/src/widgets/dropper-toolbar.cpp
index f60955da5..4e26a99a0 100644
--- a/src/widgets/dropper-toolbar.cpp
+++ b/src/widgets/dropper-toolbar.cpp
@@ -33,7 +33,7 @@
#include "dropper-toolbar.h"
#include "document-undo.h"
#include "widgets/ege-output-action.h"
-#include "widgets/ink-action.h"
+#include "ink-toggle-action.h"
#include "preferences.h"
#include "widgets/spinbutton-events.h"
diff --git a/src/widgets/eek-preview.cpp b/src/widgets/eek-preview.cpp
index 9951a8957..5f1997672 100644
--- a/src/widgets/eek-preview.cpp
+++ b/src/widgets/eek-preview.cpp
@@ -194,7 +194,6 @@ static void eek_preview_size_request( GtkWidget* widget, GtkRequisition* req )
req->height = height;
}
-#if GTK_CHECK_VERSION(3,0,0)
static void eek_preview_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkRequisition requisition;
@@ -208,7 +207,6 @@ static void eek_preview_get_preferred_height(GtkWidget *widget, gint *minimal_he
eek_preview_size_request(widget, &requisition);
*minimal_height = *natural_height = requisition.height;
}
-#endif
enum {
CLICKED_SIGNAL,
@@ -219,22 +217,6 @@ enum {
static guint eek_preview_signals[LAST_SIGNAL] = { 0 };
-#if !GTK_CHECK_VERSION(3,0,0)
-static gboolean eek_preview_expose_event( GtkWidget* widget, GdkEventExpose* /* event */ )
-{
- gboolean result = FALSE;
-
- if (gtk_widget_is_drawable(widget)) {
- GdkWindow* window = gtk_widget_get_window(widget);
- cairo_t* cr = gdk_cairo_create(window);
- result = eek_preview_draw(widget, cr);
- cairo_destroy(cr);
- }
-
- return result;
-}
-#endif
-
static
gboolean eek_preview_draw(GtkWidget *widget,
cairo_t *cr)
@@ -246,14 +228,6 @@ gboolean eek_preview_draw(GtkWidget *widget,
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
-#if !GTK_CHECK_VERSION(3,0,0)
- GdkColor fg = { 0,
- static_cast<guint16>(priv->r),
- static_cast<guint16>(priv->g),
- static_cast<guint16>(priv->b)
- };
-#endif
-
gint insetTop = 0, insetBottom = 0;
gint insetLeft = 0, insetRight = 0;
@@ -270,9 +244,7 @@ gboolean eek_preview_draw(GtkWidget *widget,
insetLeft = insetRight = 1;
}
-
-#if GTK_CHECK_VERSION(3,0,0)
- GtkStyleContext *context = gtk_widget_get_style_context(widget);
+ auto context = gtk_widget_get_style_context(widget);
gtk_render_frame(context,
cr,
@@ -283,22 +255,6 @@ gboolean eek_preview_draw(GtkWidget *widget,
cr,
0, 0,
allocation.width, allocation.height);
-#else
- GtkStyle *style = gtk_widget_get_style(widget);
- GdkWindow *window = gtk_widget_get_window(widget);
-
- gtk_paint_flat_box( style,
- window,
- (GtkStateType)gtk_widget_get_state(widget),
- GTK_SHADOW_NONE,
- NULL,
- widget,
- NULL,
- 0, 0,
- allocation.width, allocation.height);
-
- gdk_colormap_alloc_color( gdk_colormap_get_system(), &fg, FALSE, TRUE );
-#endif
// Border
if (priv->border != BORDER_NONE) {
@@ -377,27 +333,12 @@ gboolean eek_preview_draw(GtkWidget *widget,
if (priv->linked & PREVIEW_LINK_IN)
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_arrow(context,
cr,
G_PI, // Down-pointing arrow
area.x, area.y,
min(area.width, area.height)
);
-#else
- gtk_paint_arrow( style,
- window,
- gtk_widget_get_state (widget),
- GTK_SHADOW_ETCHED_IN,
- NULL, /* clip area. &area, */
- widget, /* may be NULL */
- NULL, /* detail */
- GTK_ARROW_DOWN,
- FALSE,
- area.x, area.y,
- area.width, area.height
- );
-#endif
}
if (priv->linked & PREVIEW_LINK_OUT)
@@ -407,27 +348,12 @@ gboolean eek_preview_draw(GtkWidget *widget,
otherArea.y = possible.y + (possible.height - otherArea.height);
}
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_arrow(context,
cr,
G_PI, // Down-pointing arrow
otherArea.x, otherArea.y,
min(otherArea.width, otherArea.height)
);
-#else
- gtk_paint_arrow( style,
- window,
- gtk_widget_get_state (widget),
- GTK_SHADOW_ETCHED_OUT,
- NULL, /* clip area. &area, */
- widget, /* may be NULL */
- NULL, /* detail */
- GTK_ARROW_DOWN,
- FALSE,
- otherArea.x, otherArea.y,
- otherArea.width, otherArea.height
- );
-#endif
}
if (priv->linked & PREVIEW_LINK_OTHER)
@@ -437,27 +363,12 @@ gboolean eek_preview_draw(GtkWidget *widget,
otherArea.y = possible.y + (possible.height - otherArea.height) / 2;
}
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_arrow(context,
cr,
1.5*G_PI, // Left-pointing arrow
otherArea.x, otherArea.y,
min(otherArea.width, otherArea.height)
);
-#else
- gtk_paint_arrow( style,
- window,
- gtk_widget_get_state (widget),
- GTK_SHADOW_ETCHED_OUT,
- NULL, /* clip area. &area, */
- widget, /* may be NULL */
- NULL, /* detail */
- GTK_ARROW_LEFT,
- FALSE,
- otherArea.x, otherArea.y,
- otherArea.width, otherArea.height
- );
-#endif
}
@@ -469,22 +380,10 @@ gboolean eek_preview_draw(GtkWidget *widget,
if ( otherArea.height < possible.height ) {
otherArea.y = possible.y + (possible.height - otherArea.height) / 2;
}
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_check(context,
cr,
otherArea.x, otherArea.y,
otherArea.width, otherArea.height );
-#else
- gtk_paint_check( style,
- window,
- gtk_widget_get_state (widget),
- GTK_SHADOW_ETCHED_OUT,
- NULL,
- widget,
- NULL,
- otherArea.x, otherArea.y,
- otherArea.width, otherArea.height );
-#endif
}
if (priv->linked & PREVIEW_STROKE)
@@ -495,23 +394,11 @@ gboolean eek_preview_draw(GtkWidget *widget,
if ( otherArea.height < possible.height ) {
otherArea.y = possible.y + (possible.height - otherArea.height) / 2;
}
-#if GTK_CHECK_VERSION(3,0,0)
// This should be a diamond too?
gtk_render_check(context,
cr,
otherArea.x, otherArea.y,
otherArea.width, otherArea.height );
-#else
- gtk_paint_diamond( style,
- window,
- gtk_widget_get_state (widget),
- GTK_SHADOW_ETCHED_OUT,
- NULL,
- widget,
- NULL,
- otherArea.x, otherArea.y,
- otherArea.width, otherArea.height );
-#endif
}
}
@@ -519,21 +406,10 @@ gboolean eek_preview_draw(GtkWidget *widget,
if ( gtk_widget_has_focus(widget) ) {
gtk_widget_get_allocation (widget, &allocation);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_focus(context,
cr,
0 + 1, 0 + 1,
allocation.width - 2, allocation.height - 2 );
-#else
- gtk_paint_focus( style,
- window,
- GTK_STATE_NORMAL,
- NULL, /* GdkRectangle *area, */
- widget,
- NULL,
- 0 + 1, 0 + 1,
- allocation.width - 2, allocation.height - 2 );
-#endif
}
return FALSE;
@@ -547,11 +423,7 @@ static gboolean eek_preview_enter_cb( GtkWidget* widget, GdkEventCrossing* event
EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview);
priv->within = TRUE;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_state_flags( widget, priv->hot ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_PRELIGHT, false );
-#else
- gtk_widget_set_state( widget, priv->hot ? GTK_STATE_ACTIVE : GTK_STATE_PRELIGHT );
-#endif
}
return FALSE;
@@ -564,11 +436,7 @@ static gboolean eek_preview_leave_cb( GtkWidget* widget, GdkEventCrossing* event
EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview);
priv->within = FALSE;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false );
-#else
- gtk_widget_set_state( widget, GTK_STATE_NORMAL );
-#endif
}
return FALSE;
@@ -593,11 +461,7 @@ static gboolean eek_preview_button_press_cb( GtkWidget* widget, GdkEventButton*
if ( priv->within )
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_ACTIVE, false );
-#else
- gtk_widget_set_state( widget, GTK_STATE_ACTIVE );
-#endif
}
}
}
@@ -612,11 +476,7 @@ static gboolean eek_preview_button_release_cb( GtkWidget* widget, GdkEventButton
EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview);
priv->hot = FALSE;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false );
-#else
- gtk_widget_set_state( widget, GTK_STATE_NORMAL );
-#endif
if ( priv->within &&
(event->button == PRIME_BUTTON_MAGIC_NUMBER ||
@@ -697,15 +557,9 @@ static void eek_preview_class_init( EekPreviewClass *klass )
parent_class = (GtkWidgetClass*)g_type_class_peek_parent( klass );
-#if GTK_CHECK_VERSION(3,0,0)
widgetClass->get_preferred_width = eek_preview_get_preferred_width;
widgetClass->get_preferred_height = eek_preview_get_preferred_height;
widgetClass->draw = eek_preview_draw;
-#else
- widgetClass->size_request = eek_preview_size_request;
- widgetClass->expose_event = eek_preview_expose_event;
-#endif
-
widgetClass->button_press_event = eek_preview_button_press_cb;
widgetClass->button_release_event = eek_preview_button_release_cb;
widgetClass->enter_notify_event = eek_preview_enter_cb;
diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp
index 272217aa4..6678d1e5a 100644
--- a/src/widgets/ege-adjustment-action.cpp
+++ b/src/widgets/ege-adjustment-action.cpp
@@ -47,7 +47,7 @@
#include "icon-size.h"
#include "widgets/ege-adjustment-action.h"
-#include "ui/widget/gimpspinscale.h"
+#include "gimp/gimpspinscale.h"
#include "ui/icon-names.h"
@@ -813,12 +813,8 @@ static GtkWidget* create_tool_item( GtkAction* action )
if ( IS_EGE_ADJUSTMENT_ACTION(action) ) {
EgeAdjustmentAction* act = EGE_ADJUSTMENT_ACTION( action );
GtkWidget* spinbutton = 0;
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget* hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget* hb = gtk_hbox_new( FALSE, 5 );
-#endif
GValue value;
memset( &value, 0, sizeof(value) );
g_value_init( &value, G_TYPE_STRING );
@@ -865,13 +861,7 @@ static GtkWidget* create_tool_item( GtkAction* action )
gtk_box_pack_start( GTK_BOX(hb), icon, FALSE, FALSE, 0 );
} else {
GtkWidget* lbl = gtk_label_new( g_value_get_string( &value ) ? g_value_get_string( &value ) : "wwww" );
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(lbl, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment( GTK_MISC(lbl), 1.0, 0.5 );
-#endif
-
gtk_box_pack_start( GTK_BOX(hb), lbl, FALSE, FALSE, 0 );
}
}
diff --git a/src/widgets/ege-output-action.cpp b/src/widgets/ege-output-action.cpp
index 5dece8e91..da29524a5 100644
--- a/src/widgets/ege-output-action.cpp
+++ b/src/widgets/ege-output-action.cpp
@@ -166,12 +166,8 @@ GtkWidget* create_tool_item( GtkAction* action )
if ( IS_EGE_OUTPUT_ACTION(action) )
{
GValue value;
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget* hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget* hb = gtk_hbox_new( FALSE, 5 );
-#endif
GtkWidget* lbl = 0;
memset( &value, 0, sizeof(value) );
diff --git a/src/widgets/ege-select-one-action.cpp b/src/widgets/ege-select-one-action.cpp
index 2e106154e..5555663e4 100644
--- a/src/widgets/ege-select-one-action.cpp
+++ b/src/widgets/ege-select-one-action.cpp
@@ -632,12 +632,8 @@ GtkWidget* create_tool_item( GtkAction* action )
item = GTK_WIDGET( gtk_tool_item_new() );
if ( act->private_data->appearanceMode == APPEARANCE_FULL ) {
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(holder), FALSE);
-#else
- GtkWidget* holder = gtk_hbox_new( FALSE, 0 );
-#endif
GtkRadioAction* ract = 0;
GSList* group = 0;
@@ -744,12 +740,8 @@ GtkWidget* create_tool_item( GtkAction* action )
gtk_container_add( GTK_CONTAINER(item), holder );
} else {
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
+ auto holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
gtk_box_set_homogeneous(GTK_BOX(holder), FALSE);
-#else
- GtkWidget *holder = gtk_hbox_new( FALSE, 4 );
-#endif
GtkEntry *entry = 0;
GtkWidget *normal;
@@ -818,14 +810,8 @@ GtkWidget* create_tool_item( GtkAction* action )
gtk_box_pack_start( GTK_BOX(holder), normal, FALSE, FALSE, 0 );
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(holder, GTK_ALIGN_START);
gtk_container_add(GTK_CONTAINER(item), holder);
-#else
- GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0);
- gtk_container_add( GTK_CONTAINER(align), holder);
- gtk_container_add( GTK_CONTAINER(item), align );
-#endif
}
}
@@ -861,13 +847,6 @@ void resync_active( EgeSelectOneAction* act, gint active, gboolean override )
if ( children && children->data ) {
gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" );
-#if !GTK_CHECK_VERSION(3,0,0)
- if (!combodata && GTK_IS_ALIGNMENT(children->data)) {
- GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) );
- combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" );
- }
-#endif
-
if ( GTK_IS_COMBO_BOX(combodata) ) {
GtkComboBox* combo = GTK_COMBO_BOX(combodata);
if ((active == -1) && (gtk_combo_box_get_has_entry(combo))) {
@@ -925,13 +904,6 @@ void resync_sensitive( EgeSelectOneAction* act )
if ( children && children->data ) {
gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" );
-#if !GTK_CHECK_VERSION(3,0,0)
- if (!combodata && GTK_IS_ALIGNMENT(children->data)) {
- GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) );
- combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" );
- }
-#endif
-
if ( GTK_IS_COMBO_BOX(combodata) ) {
/* Not implemented */
} else if ( GTK_IS_BOX(children->data) ) {
diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp
index b30d542a6..7f710a777 100644
--- a/src/widgets/eraser-toolbar.cpp
+++ b/src/widgets/eraser-toolbar.cpp
@@ -37,7 +37,9 @@
#include "document-undo.h"
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "toolbox.h"
#include "ui/icon-names.h"
diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp
index 2ed6705d7..4822020be 100644
--- a/src/widgets/font-selector.cpp
+++ b/src/widgets/font-selector.cpp
@@ -31,11 +31,7 @@
struct SPFontSelector
{
-#if GTK_CHECK_VERSION(3,0,0)
GtkBox hbox;
-#else
- GtkHBox hbox;
-#endif
unsigned int block_emit : 1;
@@ -56,11 +52,7 @@ struct SPFontSelector
struct SPFontSelectorClass
{
-#if GTK_CHECK_VERSION(3,0,0)
GtkBoxClass parent_class;
-#else
- GtkHBoxClass parent_class;
-#endif
void (* font_set) (SPFontSelector *fsel, gchar *fontspec);
};
@@ -86,11 +78,7 @@ static void sp_font_selector_set_sizes( SPFontSelector *fsel );
static guint fs_signals[LAST_SIGNAL] = { 0 };
-#if GTK_CHECK_VERSION(3,0,0)
G_DEFINE_TYPE(SPFontSelector, sp_font_selector, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(SPFontSelector, sp_font_selector, GTK_TYPE_HBOX);
-#endif
static void sp_font_selector_class_init(SPFontSelectorClass *c)
{
@@ -155,8 +143,7 @@ static void sp_font_selector_init(SPFontSelector *fsel)
/* Muck with style, see text-toolbar.cpp */
gtk_widget_set_name( GTK_WIDGET(fsel->family_treeview), "font_selector_family" );
-#if GTK_CHECK_VERSION(3,0,0)
- GtkCssProvider *css_provider = gtk_css_provider_new();
+ auto css_provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(css_provider,
"#font_selector_family {\n"
" -GtkWidget-wide-separators: true;\n"
@@ -164,14 +151,10 @@ static void sp_font_selector_init(SPFontSelector *fsel)
"}\n",
-1, NULL);
- GdkScreen *screen = gdk_screen_get_default();
+ auto screen = gdk_screen_get_default();
gtk_style_context_add_provider_for_screen(screen,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
-#else
- gtk_rc_parse_string (
- "widget \"*font_selector_family\" style \"fontfamily-separator-style\"");
-#endif
Inkscape::FontLister* fontlister = Inkscape::FontLister::get_instance();
Glib::RefPtr<Gtk::ListStore> store = fontlister->get_font_list();
@@ -190,12 +173,8 @@ static void sp_font_selector_init(SPFontSelector *fsel)
gtk_widget_show(f);
gtk_box_pack_start(GTK_BOX (fsel), f, TRUE, TRUE, 0);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
+ auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
-#else
- GtkWidget *vb = gtk_vbox_new(FALSE, 4);
-#endif
gtk_widget_show(vb);
gtk_container_set_border_width(GTK_CONTAINER (vb), 4);
gtk_container_add(GTK_CONTAINER(f), vb);
@@ -230,12 +209,8 @@ static void sp_font_selector_init(SPFontSelector *fsel)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(fsel->style_treeview));
g_signal_connect (G_OBJECT(selection), "changed", G_CALLBACK (sp_font_selector_style_select_row), fsel);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, 4);
-#endif
gtk_widget_show(hb);
gtk_box_pack_start(GTK_BOX(vb), hb, FALSE, FALSE, 0);
diff --git a/src/widgets/gimp/CMakeLists.txt b/src/widgets/gimp/CMakeLists.txt
new file mode 100644
index 000000000..7b3e834e3
--- /dev/null
+++ b/src/widgets/gimp/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(gimpwidgets_SRC
+ gimpcolorwheel.c
+ gimpspinscale.c
+ ruler.cpp
+
+ # -------
+ # Headers
+ gimpcolorwheel.h
+ gimpspinscale.h
+ ruler.h
+)
+
+add_inkscape_source("${gimpwidgets_SRC}")
diff --git a/src/ui/widget/gimpcolorwheel.c b/src/widgets/gimp/gimpcolorwheel.c
index d54486505..212391497 100644
--- a/src/ui/widget/gimpcolorwheel.c
+++ b/src/widgets/gimp/gimpcolorwheel.c
@@ -110,7 +110,6 @@ static gboolean gimp_color_wheel_button_release (GtkWidget *widget,
GdkEventButton *event);
static gboolean gimp_color_wheel_motion (GtkWidget *widget,
GdkEventMotion *event);
-#if GTK_CHECK_VERSION(3,0,0)
static gboolean gimp_color_wheel_draw (GtkWidget *widget,
cairo_t *cr);
static void gimp_color_wheel_get_preferred_width (GtkWidget *widget,
@@ -119,13 +118,6 @@ static void gimp_color_wheel_get_preferred_width (GtkWidget *widget,
static void gimp_color_wheel_get_preferred_height (GtkWidget *widget,
gint *minimum_height,
gint *natural_height);
-#else
-static gboolean gimp_color_wheel_expose (GtkWidget *widget,
- GdkEventExpose *event);
-static void gimp_color_wheel_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-#endif
-
static gboolean gimp_color_wheel_grab_broken (GtkWidget *widget,
GdkEventGrabBroken *event);
static gboolean gimp_color_wheel_focus (GtkWidget *widget,
@@ -157,16 +149,9 @@ gimp_color_wheel_class_init (GimpColorWheelClass *class)
widget_class->button_press_event = gimp_color_wheel_button_press;
widget_class->button_release_event = gimp_color_wheel_button_release;
widget_class->motion_notify_event = gimp_color_wheel_motion;
-
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = gimp_color_wheel_get_preferred_width;
widget_class->get_preferred_height = gimp_color_wheel_get_preferred_height;
widget_class->draw = gimp_color_wheel_draw;
-#else
- widget_class->size_request = gimp_color_wheel_size_request;
- widget_class->expose_event = gimp_color_wheel_expose;
-#endif
-
widget_class->focus = gimp_color_wheel_focus;
widget_class->grab_broken_event = gimp_color_wheel_grab_broken;
@@ -302,10 +287,6 @@ gimp_color_wheel_realize (GtkWidget *widget)
priv->window = gdk_window_new (parent_window, &attr, attr_mask);
gdk_window_set_user_data (priv->window, wheel);
-
-#if !GTK_CHECK_VERSION(3,0,0)
- gtk_widget_style_attach (widget);
-#endif
}
static void
@@ -321,7 +302,6 @@ gimp_color_wheel_unrealize (GtkWidget *widget)
GTK_WIDGET_CLASS (parent_class)->unrealize (widget);
}
-#if GTK_CHECK_VERSION(3,0,0)
static void
gimp_color_wheel_get_preferred_width (GtkWidget *widget,
gint *minimum_width,
@@ -353,23 +333,6 @@ gimp_color_wheel_get_preferred_height (GtkWidget *widget,
*minimum_height = *natural_height = DEFAULT_SIZE + 2 * (focus_width + focus_pad);
}
-#else
-static void
-gimp_color_wheel_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- gint focus_width;
- gint focus_pad;
-
- gtk_widget_style_get (widget,
- "focus-line-width", &focus_width,
- "focus-padding", &focus_pad,
- NULL);
-
- requisition->width = DEFAULT_SIZE + 2 * (focus_width + focus_pad);
- requisition->height = DEFAULT_SIZE + 2 * (focus_width + focus_pad);
-}
-#endif
static void
gimp_color_wheel_size_allocate (GtkWidget *widget,
@@ -688,7 +651,6 @@ set_cross_grab (GimpColorWheel *wheel,
gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (wheel)),
GDK_CROSSHAIR);
-#if GTK_CHECK_VERSION(3,0,0)
gdk_device_grab (gtk_get_current_event_device(),
priv->window,
GDK_OWNERSHIP_NONE,
@@ -698,14 +660,6 @@ set_cross_grab (GimpColorWheel *wheel,
GDK_BUTTON_RELEASE_MASK,
cursor, time);
g_object_unref (cursor);
-#else
- gdk_pointer_grab (priv->window, FALSE,
- GDK_POINTER_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_RELEASE_MASK,
- NULL, cursor, time);
- gdk_cursor_unref (cursor);
-#endif
}
static gboolean gimp_color_wheel_grab_broken(GtkWidget *widget, GdkEventGrabBroken *event)
@@ -805,13 +759,8 @@ gimp_color_wheel_button_release (GtkWidget *widget,
else
g_assert_not_reached ();
-#if GTK_CHECK_VERSION(3,0,0)
gdk_device_ungrab (gtk_get_current_event_device(),
event->time);
-#else
- gdk_display_pointer_ungrab (gdk_window_get_display (event->window),
- event->time);
-#endif
return TRUE;
}
@@ -859,11 +808,7 @@ static void
paint_ring (GimpColorWheel *wheel,
cairo_t *cr)
{
-#if GTK_CHECK_VERSION(3,0,0)
GtkWidget *widget = GTK_WIDGET (wheel);
-#else
- GtkAllocation allocation;
-#endif
GimpColorWheelPrivate *priv = wheel->priv;
gint width, height;
gint xx, yy;
@@ -879,14 +824,8 @@ paint_ring (GimpColorWheel *wheel,
cairo_t *source_cr;
gint stride;
-#if GTK_CHECK_VERSION(3,0,0)
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
-#else
- gtk_widget_get_allocation (GTK_WIDGET (wheel), &allocation);
- width = allocation.width;
- height = allocation.height;
-#endif
center_x = width / 2.0;
center_y = height / 2.0;
@@ -1027,19 +966,10 @@ paint_triangle (GimpColorWheel *wheel,
gdouble r, g, b;
gint stride;
gint width, height;
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context;
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
-#else
- gchar *detail;
-
- GtkAllocation allocation;
- gtk_widget_get_allocation (widget, &allocation);
- width = allocation.width;
- height = allocation.height;
-#endif
/* Compute triangle's vertices */
@@ -1180,28 +1110,18 @@ paint_triangle (GimpColorWheel *wheel,
b = priv->v;
hsv_to_rgb (&r, &g, &b);
-#if GTK_CHECK_VERSION(3,0,0)
context = gtk_widget_get_style_context (widget);
gtk_style_context_save (context);
-#endif
if (INTENSITY (r, g, b) > 0.5)
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_style_context_add_class (context, "light-area-focus");
-#else
- detail = "colorwheel_light";
-#endif
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
}
else
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_style_context_add_class (context, "dark-area-focus");
-#else
- detail = "colorwheel_dark";
-#endif
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
}
@@ -1224,31 +1144,16 @@ paint_triangle (GimpColorWheel *wheel,
"focus-padding", &focus_pad,
NULL);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_render_focus (context, cr,
xx - FOCUS_RADIUS - focus_width - focus_pad,
yy - FOCUS_RADIUS - focus_width - focus_pad,
2 * (FOCUS_RADIUS + focus_width + focus_pad),
2 * (FOCUS_RADIUS + focus_width + focus_pad));
-#else
- gtk_widget_get_allocation (widget, &allocation);
- gtk_paint_focus (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget),
- gtk_widget_get_state (widget),
- NULL, widget, detail,
- allocation.x + xx - FOCUS_RADIUS - focus_width - focus_pad,
- allocation.y + yy - FOCUS_RADIUS - focus_width - focus_pad,
- 2 * (FOCUS_RADIUS + focus_width + focus_pad),
- 2 * (FOCUS_RADIUS + focus_width + focus_pad));
-#endif
}
-#if GTK_CHECK_VERSION(3,0,0)
gtk_style_context_restore (context);
-#endif
}
-#if GTK_CHECK_VERSION(3,0,0)
static gboolean
gimp_color_wheel_draw (GtkWidget *widget,
cairo_t *cr)
@@ -1273,48 +1178,6 @@ gimp_color_wheel_draw (GtkWidget *widget,
return FALSE;
}
-#else
-static gint
-gimp_color_wheel_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
-
- GimpColorWheel *wheel = GIMP_COLOR_WHEEL (widget);
- GimpColorWheelPrivate *priv = wheel->priv;
- gboolean draw_focus;
- GtkAllocation allocation;
-
- if (! (event->window == gtk_widget_get_window (widget) &&
- gtk_widget_is_drawable (widget)))
- return FALSE;
-
- gdk_cairo_region (cr, event->region);
- cairo_clip (cr);
-
- gtk_widget_get_allocation (widget, &allocation);
- cairo_translate (cr, allocation.x, allocation.y);
-
- draw_focus = gtk_widget_has_focus (widget);
-
- paint_ring (wheel, cr);
- paint_triangle (wheel, cr, draw_focus);
-
- cairo_destroy (cr);
-
- if (draw_focus && priv->focus_on_ring)
- gtk_paint_focus (gtk_widget_get_style (widget),
- gtk_widget_get_window (widget),
- gtk_widget_get_state (widget),
- &event->area, widget, NULL,
- allocation.x,
- allocation.y,
- allocation.width,
- allocation.height);
-
- return FALSE;
-}
-#endif
static gboolean
gimp_color_wheel_focus (GtkWidget *widget,
diff --git a/src/ui/widget/gimpcolorwheel.h b/src/widgets/gimp/gimpcolorwheel.h
index 016fb593f..016fb593f 100644
--- a/src/ui/widget/gimpcolorwheel.h
+++ b/src/widgets/gimp/gimpcolorwheel.h
diff --git a/src/ui/widget/gimpspinscale.c b/src/widgets/gimp/gimpspinscale.c
index d99646a64..8d8c6c935 100644
--- a/src/ui/widget/gimpspinscale.c
+++ b/src/widgets/gimp/gimpspinscale.c
@@ -41,10 +41,8 @@ typedef enum
{
TARGET_NUMBER,
TARGET_UPPER,
- TARGET_LOWER
-#if WITH_GTKMM_3_0
- ,TARGET_NONE
-#endif
+ TARGET_LOWER,
+ TARGET_NONE
} SpinScaleTarget;
typedef enum
@@ -94,7 +92,6 @@ static void gimp_spin_scale_get_property (GObject *object,
static void gimp_spin_scale_style_set (GtkWidget *widget,
GtkStyle *prev_style);
-#if WITH_GTKMM_3_0
static void gimp_spin_scale_get_preferred_width (GtkWidget *widget,
gint *minimum_width,
gint *natural_width);
@@ -103,13 +100,6 @@ static void gimp_spin_scale_get_preferred_height (GtkWidget *widget
gint *natural_width);
static gboolean gimp_spin_scale_draw (GtkWidget *widget,
cairo_t *cr);
-#else
-static void gimp_spin_scale_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-
-static gboolean gimp_spin_scale_expose (GtkWidget *widget,
- GdkEventExpose *event);
-#endif
static gboolean gimp_spin_scale_button_press (GtkWidget *widget,
GdkEventButton *event);
@@ -145,14 +135,9 @@ gimp_spin_scale_class_init (GimpSpinScaleClass *klass)
object_class->get_property = gimp_spin_scale_get_property;
widget_class->style_set = gimp_spin_scale_style_set;
-#if WITH_GTKMM_3_0
widget_class->get_preferred_width = gimp_spin_scale_get_preferred_width;
widget_class->get_preferred_height = gimp_spin_scale_get_preferred_height;
widget_class->draw = gimp_spin_scale_draw;
-#else
- widget_class->size_request = gimp_spin_scale_size_request;
- widget_class->expose_event = gimp_spin_scale_expose;
-#endif
widget_class->button_press_event = gimp_spin_scale_button_press;
widget_class->button_release_event = gimp_spin_scale_button_release;
widget_class->motion_notify_event = gimp_spin_scale_motion_notify;
@@ -294,7 +279,6 @@ gimp_spin_scale_set_appearance( GtkWidget *widget, const gchar *appearance)
}
}
-#if GTK_CHECK_VERSION(3,0,0)
static void
gimp_spin_scale_get_preferred_width (GtkWidget *widget,
gint *minimum_width,
@@ -355,48 +339,6 @@ gimp_spin_scale_get_preferred_height (GtkWidget *widget,
pango_font_metrics_unref (metrics);
}
-#else
-static void
-gimp_spin_scale_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GimpSpinScalePrivate *private = GET_PRIVATE (widget);
- GtkStyle *style = gtk_widget_get_style (widget);
- PangoContext *context = gtk_widget_get_pango_context (widget);
- PangoFontMetrics *metrics;
- gint height;
-
- GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition);
-
- metrics = pango_context_get_metrics (context, style->font_desc,
- pango_context_get_language (context));
-
- height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
- pango_font_metrics_get_descent (metrics));
-
- if (private->appearanceMode == APPEARANCE_COMPACT) {
- requisition->height += 1;
- } else {
- requisition->height += height;
- }
-
- if (private->label)
- {
- gint char_width;
- gint digit_width;
- gint char_pixels;
-
- char_width = pango_font_metrics_get_approximate_char_width (metrics);
- digit_width = pango_font_metrics_get_approximate_digit_width (metrics);
- char_pixels = PANGO_PIXELS (MAX (char_width, digit_width));
-
- /* ~3 chars for the ellipses */
- requisition->width += char_pixels * 3;
- }
-
- pango_font_metrics_unref (metrics);
-}
-#endif
static void
gimp_spin_scale_style_set (GtkWidget *widget,
@@ -415,16 +357,10 @@ gimp_spin_scale_style_set (GtkWidget *widget,
static gboolean
-#if GTK_CHECK_VERSION(3,0,0)
gimp_spin_scale_draw (GtkWidget *widget,
cairo_t *cr)
-#else
- gimp_spin_scale_expose (GtkWidget *widget,
- GdkEventExpose *event)
-#endif
{
GimpSpinScalePrivate *private = GET_PRIVATE (widget);
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *style = gtk_widget_get_style_context(widget);
GtkAllocation allocation;
GdkRGBA color;
@@ -434,66 +370,31 @@ static gboolean
cairo_restore (cr);
gtk_widget_get_allocation (widget, &allocation);
-#else
- GtkStyle *style = gtk_widget_get_style (widget);
- cairo_t *cr;
- gint w;
-
- GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
-
- cr = gdk_cairo_create (event->window);
- gdk_cairo_region (cr, event->region);
- cairo_clip (cr);
-
- w = gdk_window_get_width (event->window);
-#endif
cairo_set_line_width (cr, 1.0);
-#if GTK_CHECK_VERSION(3,0,0)
if (private->label)
{
GdkRectangle text_area;
gint minimum_width;
gint natural_width;
-#else
- if (private->label &&
- gtk_widget_is_drawable (widget) &&
- event->window == gtk_entry_get_text_window (GTK_ENTRY (widget)))
- {
- GtkRequisition requisition;
- GtkAllocation allocation;
-#endif
PangoRectangle logical;
gint layout_offset_x;
gint layout_offset_y;
-#if GTK_CHECK_VERSION(3,0,0)
GtkStateFlags state;
GdkRGBA text_color;
GdkRGBA bar_text_color;
-#else
- GtkStateType state;
- GdkColor text_color;
- GdkColor bar_text_color;
- gint window_width;
- gint window_height;
-#endif
gdouble progress_fraction;
gint progress_x;
gint progress_y;
gint progress_width;
gint progress_height;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area);
GTK_WIDGET_CLASS (parent_class)->get_preferred_width (widget,
&minimum_width,
&natural_width);
-#else
- GTK_WIDGET_CLASS (parent_class)->size_request (widget, &requisition);
- gtk_widget_get_allocation (widget, &allocation);
-#endif
if (! private->layout)
{
@@ -504,27 +405,18 @@ static gboolean
pango_layout_set_width (private->layout,
PANGO_SCALE *
-#if GTK_CHECK_VERSION(3,0,0)
(allocation.width - minimum_width));
-#else
- (allocation.width - requisition.width));
-#endif
pango_layout_get_pixel_extents (private->layout, NULL, &logical);
gtk_entry_get_layout_offsets (GTK_ENTRY (widget), NULL, &layout_offset_y);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-#if GTK_CHECK_VERSION(3,0,0)
layout_offset_x = text_area.x + text_area.width - logical.width - 4;
-#else
- layout_offset_x = w - logical.width - 4;
-#endif
else
layout_offset_x = 4;
layout_offset_x -= logical.x;
-#if GTK_CHECK_VERSION(3,0,0)
state = gtk_widget_get_state_flags (widget);
gtk_style_context_get_color (style, state, &text_color);
@@ -533,16 +425,6 @@ static gboolean
gtk_style_context_add_class (style, GTK_STYLE_CLASS_PROGRESSBAR);
gtk_style_context_get_color (style, state, &bar_text_color);
gtk_style_context_restore (style);
-#else
- state = GTK_STATE_SELECTED;
- if (! gtk_widget_get_sensitive (widget))
- state = GTK_STATE_INSENSITIVE;
- text_color = style->text[gtk_widget_get_state (widget)];
- bar_text_color = style->fg[state];
-
- window_width = gdk_window_get_width (event->window);
- window_height = gdk_window_get_height (event->window);
-#endif
progress_fraction = gtk_entry_get_progress_fraction (GTK_ENTRY (widget));
@@ -550,53 +432,30 @@ static gboolean
{
progress_fraction = 1.0 - progress_fraction;
-#if GTK_CHECK_VERSION(3,0,0)
progress_x = text_area.width * progress_fraction;
-#else
- progress_x = window_width * progress_fraction;
-#endif
progress_y = 0;
-#if GTK_CHECK_VERSION(3,0,0)
progress_width = text_area.width - progress_x;
progress_height = text_area.height;
-#else
- progress_width = window_width - progress_x;
- progress_height = window_height;
-#endif
}
else
{
progress_x = 0;
progress_y = 0;
-#if GTK_CHECK_VERSION(3,0,0)
progress_width = text_area.width * progress_fraction;
progress_height = text_area.height;
-#else
- progress_width = window_width * progress_fraction;
- progress_height = window_height;
-#endif
}
cairo_save (cr);
cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-#if GTK_CHECK_VERSION(3,0,0)
cairo_rectangle (cr, 0, 0, text_area.width, text_area.height);
-#else
- cairo_rectangle (cr, 0, 0, window_width, window_height);
-#endif
cairo_rectangle (cr, progress_x, progress_y,
progress_width, progress_height);
cairo_clip (cr);
cairo_set_fill_rule (cr, CAIRO_FILL_RULE_WINDING);
-#if GTK_CHECK_VERSION(3,0,0)
cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3);
gdk_cairo_set_source_rgba (cr, &text_color);
-#else
- cairo_move_to (cr, layout_offset_x, layout_offset_y-3);
- gdk_cairo_set_source_color (cr, &text_color);
-#endif
pango_cairo_show_layout (cr, private->layout);
cairo_restore (cr);
@@ -604,24 +463,14 @@ static gboolean
progress_width, progress_height);
cairo_clip (cr);
-#if GTK_CHECK_VERSION(3,0,0)
cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3);
gdk_cairo_set_source_rgba (cr, &bar_text_color);
-#else
- cairo_move_to (cr, layout_offset_x, layout_offset_y-3);
- gdk_cairo_set_source_color (cr, &bar_text_color);
-#endif
pango_cairo_show_layout (cr, private->layout);
}
-#if !GTK_CHECK_VERSION(3,0,0)
- cairo_destroy (cr);
-#endif
-
return FALSE;
}
-#if WITH_GTKMM_3_0
/* Returns TRUE if a translation should be done */
static gboolean
gtk_widget_get_translation_to_window (GtkWidget *widget,
@@ -685,7 +534,6 @@ gimp_spin_scale_event_to_widget_coords (GtkWidget *widget,
*widget_x = event_x;
*widget_y = event_y;
}
-#endif
static SpinScaleTarget
gimp_spin_scale_get_target (GtkWidget *widget,
@@ -702,7 +550,6 @@ gimp_spin_scale_get_target (GtkWidget *widget,
pango_layout_get_pixel_extents (gtk_entry_get_layout (GTK_ENTRY (widget)),
NULL, &logical);
-#if WITH_GTKMM_3_0
GdkRectangle text_area;
gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area);
@@ -726,19 +573,6 @@ gimp_spin_scale_get_target (GtkWidget *widget,
}
return TARGET_NONE;
-#else
- if (x > layout_x && x < layout_x + logical.width &&
- y > layout_y && y < layout_y + logical.height)
- {
- return TARGET_NUMBER;
- }
-
- else if (y > allocation.height / 2)
- {
- return TARGET_LOWER;
- }
- return TARGET_UPPER;
-#endif
}
static void
@@ -773,49 +607,21 @@ gimp_spin_scale_change_value (GtkWidget *widget,
gdouble lower;
gdouble upper;
gdouble value;
-#if WITH_GTKMM_3_0
-#else
-#endif
-#if WITH_GTKMM_3_0
GdkRectangle text_area;
gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area);
gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (widget), &lower, &upper);
-#else
- GdkWindow *text_window = gtk_entry_get_text_window (GTK_ENTRY (widget));
- gint width;
-
- gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (widget), &lower, &upper);
-
- width = gdk_window_get_width (text_window);
-#endif
-
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-#if WITH_GTKMM_3_0
x = text_area.width - x;
-#else
- x = width - x;
-#endif
-
if (private->relative_change)
{
gdouble diff;
gdouble step;
-
-#if WITH_GTKMM_3_0
step = (upper - lower) / text_area.width / 10.0;
-#else
- step = (upper - lower) / width / 10.0;
-#endif
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-
-#if WITH_GTKMM_3_0
diff = x - (text_area.width - private->start_x);
-#else
- diff = x - (width - private->start_x);
-#endif
else
diff = x - private->start_x;
@@ -825,12 +631,7 @@ gimp_spin_scale_change_value (GtkWidget *widget,
{
gdouble fraction;
-
-#if WITH_GTKMM_3_0
fraction = x / (gdouble) text_area.width;
-#else
- fraction = x / (gdouble) width;
-#endif
if (fraction > 0.0)
fraction = pow (fraction, private->gamma);
@@ -849,7 +650,6 @@ gimp_spin_scale_button_press (GtkWidget *widget,
private->changing_value = FALSE;
private->relative_change = FALSE;
-#if WITH_GTKMM_3_0
gint x, y;
gimp_spin_scale_event_to_widget_coords (widget, event->window,
event->x, event->y,
@@ -879,36 +679,6 @@ gimp_spin_scale_button_press (GtkWidget *widget,
default:
break;
}
-#else
- if (event->window == gtk_entry_get_text_window (GTK_ENTRY (widget)))
- {
- switch (gimp_spin_scale_get_target (widget, event->x, event->y))
- {
- case TARGET_UPPER:
- private->changing_value = TRUE;
-
- gtk_widget_grab_focus (widget);
-
- gimp_spin_scale_change_value (widget, event->x);
-
- return TRUE;
-
- case TARGET_LOWER:
- private->changing_value = TRUE;
-
- gtk_widget_grab_focus (widget);
-
- private->relative_change = TRUE;
- private->start_x = event->x;
- private->start_value = gtk_adjustment_get_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget)));
-
- return TRUE;
-
- default:
- break;
- }
- }
-#endif
return GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, event);
}
@@ -918,22 +688,16 @@ gimp_spin_scale_button_release (GtkWidget *widget,
GdkEventButton *event)
{
GimpSpinScalePrivate *private = GET_PRIVATE (widget);
-#if WITH_GTKMM_3_0
gint x, y;
gimp_spin_scale_event_to_widget_coords (widget, event->window,
event->x, event->y,
&x, &y);
-#endif
if (private->changing_value)
{
private->changing_value = FALSE;
-#if WITH_GTKMM_3_0
gimp_spin_scale_change_value (widget, x);
-#else
- gimp_spin_scale_change_value (widget, event->x);
-#endif
return TRUE;
}
@@ -948,21 +712,15 @@ gimp_spin_scale_motion_notify (GtkWidget *widget,
gdk_event_request_motions (event);
-#if WITH_GTKMM_3_0
gint x, y;
gimp_spin_scale_event_to_widget_coords (widget, event->window,
event->x, event->y,
&x, &y);
-#endif
if (private->changing_value)
{
-#if WITH_GTKMM_3_0
gimp_spin_scale_change_value (widget, x);
-#else
- gimp_spin_scale_change_value (widget, event->x);
-#endif
return TRUE;
}
@@ -971,20 +729,12 @@ gimp_spin_scale_motion_notify (GtkWidget *widget,
if (! (event->state &
(GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK))
-#if WITH_GTKMM_3_0
-#else
- && event->window == gtk_entry_get_text_window (GTK_ENTRY (widget))
-#endif
)
{
GdkDisplay *display = gtk_widget_get_display (widget);
GdkCursor *cursor = NULL;
-#if WITH_GTKMM_3_0
switch (gimp_spin_scale_get_target (widget, x, y))
-#else
- switch (gimp_spin_scale_get_target (widget, event->x, event->y))
-#endif
{
case TARGET_NUMBER:
cursor = gdk_cursor_new_for_display (display, GDK_XTERM);
@@ -1002,17 +752,11 @@ gimp_spin_scale_motion_notify (GtkWidget *widget,
break;
}
-
-#if WITH_GTKMM_3_0
if (cursor)
{
gdk_window_set_cursor (event->window, cursor);
g_object_unref (cursor);
}
-#else
- gdk_window_set_cursor (event->window, cursor);
- gdk_cursor_unref (cursor);
-#endif
}
return FALSE;
diff --git a/src/ui/widget/gimpspinscale.h b/src/widgets/gimp/gimpspinscale.h
index b42a0faf8..b42a0faf8 100644
--- a/src/ui/widget/gimpspinscale.h
+++ b/src/widgets/gimp/gimpspinscale.h
diff --git a/src/widgets/ruler.cpp b/src/widgets/gimp/ruler.cpp
index 1f6e4396c..bfb9c9071 100644
--- a/src/widgets/ruler.cpp
+++ b/src/widgets/gimp/ruler.cpp
@@ -119,7 +119,6 @@ static void sp_ruler_unmap (GtkWidget *widget);
static void sp_ruler_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_ruler_get_preferred_width (GtkWidget *widget,
gint *minimum_width,
gint *natural_width);
@@ -128,21 +127,11 @@ static void sp_ruler_get_preferred_height (GtkWidget *widget,
gint *minimum_height,
gint *natural_height);
static void sp_ruler_style_updated (GtkWidget *widget);
-#else
-static void sp_ruler_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void sp_ruler_style_set (GtkWidget *widget,
- GtkStyle *prev_style);
-#endif
static gboolean sp_ruler_motion_notify (GtkWidget *widget,
GdkEventMotion *event);
static gboolean sp_ruler_draw (GtkWidget *widget,
cairo_t *cr);
-#if !GTK_CHECK_VERSION(3,0,0)
-static gboolean sp_ruler_expose (GtkWidget *widget,
- GdkEventExpose *event);
-#endif
static void sp_ruler_draw_ticks (SPRuler *ruler);
static GdkRectangle sp_ruler_get_pos_rect (SPRuler *ruler,
gdouble position);
@@ -180,16 +169,10 @@ sp_ruler_class_init (SPRulerClass *klass)
widget_class->map = sp_ruler_map;
widget_class->unmap = sp_ruler_unmap;
widget_class->size_allocate = sp_ruler_size_allocate;
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = sp_ruler_get_preferred_width;
widget_class->get_preferred_height = sp_ruler_get_preferred_height;
widget_class->style_updated = sp_ruler_style_updated;
widget_class->draw = sp_ruler_draw;
-#else
- widget_class->size_request = sp_ruler_size_request;
- widget_class->style_set = sp_ruler_style_set;
- widget_class->expose_event = sp_ruler_expose;
-#endif
widget_class->motion_notify_event = sp_ruler_motion_notify;
g_type_class_add_private (object_class, sizeof (SPRulerPrivate));
@@ -486,16 +469,10 @@ sp_ruler_realize (GtkWidget *widget)
attributes.width = allocation.width;
attributes.height = allocation.height;
attributes.wclass = GDK_INPUT_ONLY;
-#if GTK_CHECK_VERSION(3,0,0)
attributes.event_mask = (gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK);
-#else
- attributes.event_mask = (gtk_widget_get_events (widget) |
- GDK_EXPOSURE_MASK |
- GDK_POINTER_MOTION_MASK);
-#endif
attributes_mask = GDK_WA_X | GDK_WA_Y;
@@ -598,7 +575,6 @@ sp_ruler_size_request (GtkWidget *widget,
size = 2 + ink_rect.height * 1.7;
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkBorder border;
@@ -606,47 +582,25 @@ sp_ruler_size_request (GtkWidget *widget,
requisition->width = border.left + border.right;
requisition->height = border.top + border.bottom;
-#else
- GtkStyle *style = gtk_widget_get_style(widget);
-#endif
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
-#if GTK_CHECK_VERSION(3,0,0)
requisition->width += 1;
requisition->height += size;
-#else
- requisition->width = style->xthickness * 2 + 1;
- requisition->height = style->ythickness * 2 + size;
-#endif
}
else
{
-#if GTK_CHECK_VERSION(3,0,0)
requisition->width += size;
requisition->height += 1;
-#else
- requisition->width = style->xthickness * 2 + size;
- requisition->height = style->ythickness * 2 + 1;
-#endif
}
}
static void
-#if GTK_CHECK_VERSION(3,0,0)
sp_ruler_style_updated (GtkWidget *widget)
-#else
-sp_ruler_style_set (GtkWidget *widget,
- GtkStyle *prev_style)
-#endif
{
SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (widget);
-#if GTK_CHECK_VERSION(3,0,0)
GTK_WIDGET_CLASS (sp_ruler_parent_class)->style_updated (widget);
-#else
- GTK_WIDGET_CLASS (sp_ruler_parent_class)->style_set (widget, prev_style);
-#endif
gtk_widget_style_get (widget,
"font-scale", &priv->font_scale,
@@ -659,7 +613,6 @@ sp_ruler_style_set (GtkWidget *widget,
}
}
-#if GTK_CHECK_VERSION(3,0,0)
static void
sp_ruler_get_preferred_width (GtkWidget *widget,
gint *minimum_width,
@@ -683,33 +636,19 @@ sp_ruler_get_preferred_height (GtkWidget *widget,
*minimum_height = *natural_height = requisition.height;
}
-#else
-static gboolean
-sp_ruler_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget));
- GtkAllocation allocation;
-
- gdk_cairo_region (cr, event->region);
- cairo_clip (cr);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- gboolean result = sp_ruler_draw (widget, cr);
-
- cairo_destroy (cr);
-
- return result;
-}
-#endif
static gboolean
sp_ruler_draw (GtkWidget *widget,
cairo_t *cr)
{
- SPRuler *ruler = SP_RULER (widget);
- SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
+ SPRuler *ruler = SP_RULER (widget);
+ SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
+ GtkStyleContext *context = gtk_widget_get_style_context (widget);
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (widget, &allocation);
+ gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height);
+ gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height);
sp_ruler_draw_ticks (ruler);
@@ -735,7 +674,7 @@ sp_ruler_make_pixmap (SPRuler *ruler)
priv->backing_store =
gdk_window_create_similar_surface (gtk_widget_get_window (widget),
- CAIRO_CONTENT_COLOR,
+ CAIRO_CONTENT_COLOR_ALPHA,
allocation.width,
allocation.height);
@@ -748,13 +687,8 @@ sp_ruler_draw_pos (SPRuler *ruler,
{
GtkWidget *widget = GTK_WIDGET (ruler);
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GdkRGBA color;
-#else
- GtkStyle *style = gtk_widget_get_style (widget);
- GtkStateType state = gtk_widget_get_state (widget);
-#endif
SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
GdkRectangle pos_rect;
@@ -766,13 +700,9 @@ sp_ruler_draw_pos (SPRuler *ruler,
if ((pos_rect.width > 0) && (pos_rect.height > 0))
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_style_context_get_color (context, gtk_widget_get_state_flags (widget),
&color);
gdk_cairo_set_source_rgba (cr, &color);
-#else
- gdk_cairo_set_source_color (cr, &style->fg[state]);
-#endif
cairo_move_to (cr, pos_rect.x, pos_rect.y);
@@ -1111,16 +1041,9 @@ sp_ruler_draw_ticks (SPRuler *ruler)
{
GtkWidget *widget = GTK_WIDGET (ruler);
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkBorder border;
GdkRGBA color;
-#else
- GtkStyle *style = gtk_widget_get_style (widget);
- GtkStateType state = gtk_widget_get_state (widget);
- gint xthickness;
- gint ythickness;
-#endif
SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
GtkAllocation allocation;
@@ -1149,12 +1072,7 @@ sp_ruler_draw_ticks (SPRuler *ruler)
gtk_widget_get_allocation (widget, &allocation);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_style_context_get_border (context, static_cast<GtkStateFlags>(0), &border);
-#else
- xthickness = style->xthickness;
- ythickness = style->ythickness;
-#endif
layout = sp_ruler_get_layout (widget, "0123456789");
pango_layout_get_extents (layout, &ink_rect, &logical_rect);
@@ -1165,28 +1083,20 @@ sp_ruler_draw_ticks (SPRuler *ruler)
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
width = allocation.width;
-#if GTK_CHECK_VERSION(3,0,0)
height = allocation.height - (border.top + border.bottom);
-#else
- height = allocation.height - ythickness * 2;
-#endif
}
else
{
width = allocation.height;
-#if GTK_CHECK_VERSION(3,0,0)
height = allocation.width - (border.top + border.bottom);
-#else
- height = allocation.width - ythickness * 2;
-#endif
}
cr = cairo_create (priv->backing_store);
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height);
- gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height);
-
+ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
+ cairo_paint (cr);
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
gtk_style_context_get_color (context, gtk_widget_get_state_flags (widget),
&color);
gdk_cairo_set_source_rgba (cr, &color);
@@ -1207,30 +1117,6 @@ sp_ruler_draw_ticks (SPRuler *ruler)
1,
allocation.height - (border.top + border.bottom));
}
-#else
- gdk_cairo_set_source_color (cr, &style->bg[state]);
-
- cairo_paint (cr);
-
- gdk_cairo_set_source_color(cr, &style->fg[state]);
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- cairo_rectangle (cr,
- xthickness,
- height + ythickness,
- allocation.width - 2 * xthickness,
- 1);
- }
- else
- {
- cairo_rectangle (cr,
- height + xthickness,
- ythickness,
- 1,
- allocation.height - 2 * ythickness);
- }
-#endif
sp_ruler_get_range (ruler, &lower, &upper, &max_size);
@@ -1311,7 +1197,6 @@ sp_ruler_draw_ticks (SPRuler *ruler)
// by a pixel, and jump back on the next redraw). This is suppressed by adding 1e-9 (that's only one nanopixel ;-))
pos = gint(Inkscape::round((cur - lower) * increment + 1e-12));
-#if GTK_CHECK_VERSION(3,0,0)
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
cairo_rectangle (cr,
@@ -1324,20 +1209,6 @@ sp_ruler_draw_ticks (SPRuler *ruler)
height + border.left - length, pos,
length, 1);
}
-#else
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- cairo_rectangle (cr,
- pos, height + ythickness - length,
- 1, length);
- }
- else
- {
- cairo_rectangle (cr,
- height + xthickness - length, pos,
- length, 1);
- }
-#endif
/* draw label */
double label_spacing_px = fabs(increment*(double)ruler_metric.ruler_scale[scale]/ruler_metric.subdivide[i]);
@@ -1355,15 +1226,9 @@ sp_ruler_draw_ticks (SPRuler *ruler)
pango_layout_set_text (layout, unit_str, -1);
pango_layout_get_extents (layout, &logical_rect, NULL);
-#if GTK_CHECK_VERSION(3,0,0)
cairo_move_to (cr,
pos + 2,
border.top + PANGO_PIXELS (logical_rect.y - digit_offset));
-#else
- cairo_move_to (cr,
- pos + 2,
- ythickness + PANGO_PIXELS (logical_rect.y - digit_offset));
-#endif
pango_cairo_show_layout(cr, layout);
}
@@ -1377,15 +1242,9 @@ sp_ruler_draw_ticks (SPRuler *ruler)
pango_layout_set_text (layout, digit_str, 1);
pango_layout_get_extents (layout, NULL, &logical_rect);
-#if GTK_CHECK_VERSION(3,0,0)
cairo_move_to (cr,
border.left + 1,
pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset));
-#else
- cairo_move_to (cr,
- xthickness + 1,
- pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset));
-#endif
pango_cairo_show_layout (cr, layout);
}
}
@@ -1422,7 +1281,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler,
gtk_widget_get_allocation (widget, &allocation);
-#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkBorder padding;
@@ -1430,11 +1288,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler,
xthickness = padding.left + padding.right;
ythickness = padding.top + padding.bottom;
-#else
- GtkStyle *style = gtk_widget_get_style (widget);
- xthickness = style->xthickness;
- ythickness = style->ythickness;
-#endif
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
@@ -1472,9 +1325,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler,
rect.y = ROUND ((position - lower) * increment) + (ythickness - rect.height) / 2 - 1;
}
- rect.x += allocation.x;
- rect.y += allocation.y;
-
return rect;
}
@@ -1497,18 +1347,21 @@ sp_ruler_queue_pos_redraw (SPRuler *ruler)
{
SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler);
const GdkRectangle rect = sp_ruler_get_pos_rect (ruler, priv->position);
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET(ruler), &allocation);
gtk_widget_queue_draw_area (GTK_WIDGET(ruler),
- rect.x,
- rect.y,
+ rect.x + allocation.x,
+ rect.y + allocation.y,
rect.width,
rect.height);
if (priv->last_pos_rect.width != 0 || priv->last_pos_rect.height != 0)
{
gtk_widget_queue_draw_area (GTK_WIDGET(ruler),
- priv->last_pos_rect.x,
- priv->last_pos_rect.y,
+ priv->last_pos_rect.x + allocation.x,
+ priv->last_pos_rect.y + allocation.y,
priv->last_pos_rect.width,
priv->last_pos_rect.height);
diff --git a/src/widgets/ruler.h b/src/widgets/gimp/ruler.h
index ed529d082..ed529d082 100644
--- a/src/widgets/ruler.h
+++ b/src/widgets/gimp/ruler.h
diff --git a/src/widgets/gradient-image.cpp b/src/widgets/gradient-image.cpp
index 6901b8549..dff564feb 100644
--- a/src/widgets/gradient-image.cpp
+++ b/src/widgets/gradient-image.cpp
@@ -21,7 +21,6 @@
static void sp_gradient_image_size_request (GtkWidget *widget, GtkRequisition *requisition);
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_image_destroy(GtkWidget *object);
static void sp_gradient_image_get_preferred_width(GtkWidget *widget,
gint *minimal_width,
@@ -30,11 +29,6 @@ static void sp_gradient_image_get_preferred_width(GtkWidget *widget,
static void sp_gradient_image_get_preferred_height(GtkWidget *widget,
gint *minimal_height,
gint *natural_height);
-#else
-static void sp_gradient_image_destroy(GtkObject *object);
-static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event);
-#endif
-
static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *cr);
static void sp_gradient_image_gradient_release (SPObject *, SPGradientImage *im);
static void sp_gradient_image_gradient_modified (SPObject *, guint flags, SPGradientImage *im);
@@ -46,18 +40,10 @@ static void sp_gradient_image_class_init(SPGradientImageClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = sp_gradient_image_get_preferred_width;
widget_class->get_preferred_height = sp_gradient_image_get_preferred_height;
widget_class->draw = sp_gradient_image_draw;
widget_class->destroy = sp_gradient_image_destroy;
-#else
- GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass);
-
- object_class->destroy = sp_gradient_image_destroy;
- widget_class->size_request = sp_gradient_image_size_request;
- widget_class->expose_event = sp_gradient_image_expose;
-#endif
}
static void
@@ -71,11 +57,7 @@ sp_gradient_image_init (SPGradientImage *image)
new (&image->modified_connection) sigc::connection();
}
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_image_destroy(GtkWidget *object)
-#else
-static void sp_gradient_image_destroy(GtkObject *object)
-#endif
{
SPGradientImage *image = SP_GRADIENT_IMAGE (object);
@@ -88,13 +70,8 @@ static void sp_gradient_image_destroy(GtkObject *object)
image->release_connection.~connection();
image->modified_connection.~connection();
-#if GTK_CHECK_VERSION(3,0,0)
if (GTK_WIDGET_CLASS(sp_gradient_image_parent_class)->destroy)
GTK_WIDGET_CLASS(sp_gradient_image_parent_class)->destroy(object);
-#else
- if (GTK_OBJECT_CLASS(sp_gradient_image_parent_class)->destroy)
- GTK_OBJECT_CLASS(sp_gradient_image_parent_class)->destroy(object);
-#endif
}
static void sp_gradient_image_size_request(GtkWidget * /*widget*/, GtkRequisition *requisition)
@@ -103,7 +80,6 @@ static void sp_gradient_image_size_request(GtkWidget * /*widget*/, GtkRequisitio
requisition->height = 12;
}
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_image_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkRequisition requisition;
@@ -117,27 +93,6 @@ static void sp_gradient_image_get_preferred_height(GtkWidget *widget, gint *mini
sp_gradient_image_size_request(widget, &requisition);
*minimal_height = *natural_height = requisition.height;
}
-#endif
-
-#if !GTK_CHECK_VERSION(3,0,0)
-static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event)
-{
- gboolean result = TRUE;
- if(gtk_widget_is_drawable(widget)) {
- cairo_t *ct = gdk_cairo_create(gtk_widget_get_window (widget));
- cairo_rectangle(ct, event->area.x, event->area.y,
- event->area.width, event->area.height);
- cairo_clip(ct);
- GtkAllocation allocation;
- gtk_widget_get_allocation(widget, &allocation);
- cairo_translate(ct, allocation.x, allocation.y);
- result = sp_gradient_image_draw(widget, ct);
- cairo_destroy(ct);
- }
-
- return result;
-}
-#endif
static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *ct)
{
diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp
index 425eb9cbc..569f66c2b 100644
--- a/src/widgets/gradient-selector.cpp
+++ b/src/widgets/gradient-selector.cpp
@@ -57,11 +57,7 @@ static void sp_gradient_selector_delete_vector_clicked (GtkWidget *w, SPGradient
static guint signals[LAST_SIGNAL] = {0};
-#if GTK_CHECK_VERSION(3,0,0)
G_DEFINE_TYPE(SPGradientSelector, sp_gradient_selector, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(SPGradientSelector, sp_gradient_selector, GTK_TYPE_VBOX);
-#endif
static void sp_gradient_selector_class_init(SPGradientSelectorClass *klass)
{
@@ -113,9 +109,7 @@ static void sp_gradient_selector_init(SPGradientSelector *sel)
sel->safelyInit = true;
sel->blocked = false;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_orientable_set_orientation(GTK_ORIENTABLE(sel), GTK_ORIENTATION_VERTICAL);
-#endif
new (&sel->nonsolid) std::vector<GtkWidget*>();
new (&sel->swatch_widgets) std::vector<GtkWidget*>();
@@ -177,13 +171,8 @@ static void sp_gradient_selector_init(SPGradientSelector *sel)
/* Create box for buttons */
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new( FALSE, 2 );
-#endif
- //sel->nonsolid.push_back(hb);
gtk_box_pack_start( GTK_BOX(sel), hb, FALSE, FALSE, 0 );
sel->add = gtk_button_new();
diff --git a/src/widgets/gradient-selector.h b/src/widgets/gradient-selector.h
index e090d7cbd..6b5d4ca60 100644
--- a/src/widgets/gradient-selector.h
+++ b/src/widgets/gradient-selector.h
@@ -45,11 +45,7 @@ class TreeView;
struct SPGradientSelector {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBox vbox;
-#else
- GtkVBox vbox;
-#endif
enum SelectorMode {
MODE_LINEAR,
@@ -131,11 +127,7 @@ struct SPGradientSelector {
};
struct SPGradientSelectorClass {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBoxClass parent_class;
-#else
- GtkVBoxClass parent_class;
-#endif
void (* grabbed) (SPGradientSelector *sel);
void (* dragged) (SPGradientSelector *sel);
diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp
index 6c89f6a3b..8474327ca 100644
--- a/src/widgets/gradient-toolbar.cpp
+++ b/src/widgets/gradient-toolbar.cpp
@@ -27,7 +27,9 @@
#include "gradient-chemistry.h"
#include "gradient-drag.h"
#include "gradient-toolbar.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "macros.h"
#include "selection.h"
#include "sp-defs.h"
diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp
index 5ad89137a..0c5f3cf47 100644
--- a/src/widgets/gradient-vector.cpp
+++ b/src/widgets/gradient-vector.cpp
@@ -63,11 +63,7 @@ enum {
LAST_SIGNAL
};
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_vector_selector_destroy(GtkWidget *object);
-#else
-static void sp_gradient_vector_selector_destroy(GtkObject *object);
-#endif
static void sp_gvs_gradient_release(SPObject *obj, SPGradientVectorSelector *gvs);
static void sp_gvs_defs_release(SPObject *defs, SPGradientVectorSelector *gvs);
@@ -86,11 +82,7 @@ static win_data wd;
static gint x = -1000, y = -1000, w = 0, h = 0; // impossible original values to make sure they are read from prefs
static Glib::ustring const prefs_path = "/dialogs/gradienteditor/";
-#if GTK_CHECK_VERSION(3,0,0)
G_DEFINE_TYPE(SPGradientVectorSelector, sp_gradient_vector_selector, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(SPGradientVectorSelector, sp_gradient_vector_selector, GTK_TYPE_VBOX);
-#endif
static void sp_gradient_vector_selector_class_init(SPGradientVectorSelectorClass *klass)
{
@@ -105,20 +97,13 @@ static void sp_gradient_vector_selector_class_init(SPGradientVectorSelectorClass
G_TYPE_NONE, 1,
G_TYPE_POINTER);
-#if GTK_CHECK_VERSION(3,0,0)
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
widget_class->destroy = sp_gradient_vector_selector_destroy;
-#else
- GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass);
- object_class->destroy = sp_gradient_vector_selector_destroy;
-#endif
}
static void sp_gradient_vector_selector_init(SPGradientVectorSelector *gvs)
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_orientable_set_orientation(GTK_ORIENTABLE(gvs), GTK_ORIENTATION_VERTICAL);
-#endif
gvs->idlabel = TRUE;
@@ -137,11 +122,7 @@ static void sp_gradient_vector_selector_init(SPGradientVectorSelector *gvs)
}
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_vector_selector_destroy(GtkWidget *object)
-#else
-static void sp_gradient_vector_selector_destroy(GtkObject *object)
-#endif
{
SPGradientVectorSelector *gvs = SP_GRADIENT_VECTOR_SELECTOR(object);
@@ -162,15 +143,9 @@ static void sp_gradient_vector_selector_destroy(GtkObject *object)
gvs->defs_modified_connection.~connection();
gvs->tree_select_connection.~connection();
-#if GTK_CHECK_VERSION(3,0,0)
if ((GTK_WIDGET_CLASS(sp_gradient_vector_selector_parent_class))->destroy) {
(GTK_WIDGET_CLASS(sp_gradient_vector_selector_parent_class))->destroy(object);
}
-#else
- if ((GTK_OBJECT_CLASS(sp_gradient_vector_selector_parent_class))->destroy) {
- (GTK_OBJECT_CLASS(sp_gradient_vector_selector_parent_class))->destroy(object);
- }
-#endif
}
GtkWidget *sp_gradient_vector_selector_new(SPDocument *doc, SPGradient *gr)
@@ -480,15 +455,8 @@ static GtkWidget *sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *st
static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradient *gradient);
static gint sp_gradient_vector_dialog_delete(GtkWidget *widget, GdkEvent *event, GtkWidget *dialog);
-
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_vector_dialog_destroy(GtkWidget *object, gpointer data);
static void sp_gradient_vector_widget_destroy(GtkWidget *object, gpointer data);
-#else
-static void sp_gradient_vector_dialog_destroy(GtkObject *object, gpointer data);
-static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer data);
-#endif
-
static void sp_gradient_vector_gradient_release(SPObject *obj, GtkWidget *widget);
static void sp_gradient_vector_gradient_modified(SPObject *obj, guint flags, GtkWidget *widget);
static void sp_gradient_vector_color_dragged(Inkscape::UI::SelectedColor *selected_color, GObject *object);
@@ -841,12 +809,8 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
g_return_val_if_fail(gradient != NULL, NULL);
g_return_val_if_fail(SP_IS_GRADIENT(gradient), NULL);
-#if GTK_CHECK_VERSION(3,0,0)
vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, PAD);
gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
-#else
- vb = gtk_vbox_new(FALSE, PAD);
-#endif
g_signal_connect(G_OBJECT(vb), "destroy", G_CALLBACK(sp_gradient_vector_widget_destroy), NULL);
w = sp_gradient_image_new(gradient);
@@ -879,12 +843,8 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
g_signal_connect(G_OBJECT(combo_box), "changed", G_CALLBACK(sp_grad_edit_combo_box_changed), vb);
/* Add and Remove buttons */
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, 1);
-#endif
// TRANSLATORS: "Stop" means: a "phase" of a gradient
GtkWidget *b = gtk_button_new_with_label(_("Add stop"));
gtk_widget_show(b);
@@ -901,21 +861,12 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
gtk_box_pack_start(GTK_BOX(vb),hb, FALSE, FALSE, AUX_BETWEEN_BUTTON_GROUPS);
/* Offset Slider and stuff */
-#if GTK_CHECK_VERSION(3,0,0)
hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- hb = gtk_hbox_new(FALSE, 0);
-#endif
/* Label */
GtkWidget *l = gtk_label_new(C_("Gradient","Offset:"));
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment(GTK_MISC(l), 1.0, 0.5);
-#endif
gtk_box_pack_start(GTK_BOX(hb),l, FALSE, FALSE, AUX_BETWEEN_BUTTON_GROUPS);
gtk_widget_show(l);
@@ -933,11 +884,7 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s
gtk_adjustment_set_value(Offset_adj, stop->offset);
/* Slider */
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, Offset_adj);
-#else
- GtkWidget *slider = gtk_hscale_new(Offset_adj);
-#endif
+ auto slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, Offset_adj);
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);
@@ -1175,11 +1122,7 @@ static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradien
blocked = FALSE;
}
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_vector_dialog_destroy(GtkWidget * /*object*/, gpointer /*data*/)
-#else
-static void sp_gradient_vector_dialog_destroy(GtkObject * /*object*/, gpointer /*data*/)
-#endif
{
GObject *obj = G_OBJECT(dlg);
assert(obj != NULL);
@@ -1230,11 +1173,7 @@ static gboolean sp_gradient_vector_dialog_delete(GtkWidget */*widget*/, GdkEvent
}
/* Widget destroy handler */
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_vector_widget_destroy(GtkWidget *object, gpointer /*data*/)
-#else
-static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer /*data*/)
-#endif
{
SPObject *gradient = SP_OBJECT(g_object_get_data(G_OBJECT(object), "gradient"));
diff --git a/src/widgets/gradient-vector.h b/src/widgets/gradient-vector.h
index 5ae90b28f..b51b276b9 100644
--- a/src/widgets/gradient-vector.h
+++ b/src/widgets/gradient-vector.h
@@ -35,11 +35,7 @@ class SPGradient;
class SPStop;
struct SPGradientVectorSelector {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBox vbox;
-#else
- GtkVBox vbox;
-#endif
guint idlabel : 1;
@@ -61,11 +57,7 @@ struct SPGradientVectorSelector {
};
struct SPGradientVectorSelectorClass {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBoxClass parent_class;
-#else
- GtkVBoxClass parent_class;
-#endif
void (* vector_set) (SPGradientVectorSelector *gvs, SPGradient *gr);
};
diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp
index 515deb565..1efa8f06b 100644
--- a/src/widgets/icon.cpp
+++ b/src/widgets/icon.cpp
@@ -61,10 +61,6 @@ struct IconImpl {
static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
static gboolean draw(GtkWidget *widget, cairo_t *cr);
-#if !GTK_CHECK_VERSION(3,0,0)
- static gboolean expose(GtkWidget *widget, GdkEventExpose *event);
-#endif
-
static void screenChanged( GtkWidget *widget, GdkScreen *previous_screen );
static void styleSet( GtkWidget *widget, GtkStyle *previous_style );
static void themeChanged( SPIcon *icon );
@@ -146,14 +142,9 @@ sp_icon_class_init(SPIconClass *klass)
object_class->dispose = IconImpl::dispose;
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = IconImpl::getPreferredWidth;
widget_class->get_preferred_height = IconImpl::getPreferredHeight;
widget_class->draw = IconImpl::draw;
-#else
- widget_class->size_request = IconImpl::sizeRequest;
- widget_class->expose_event = IconImpl::expose;
-#endif
widget_class->size_allocate = IconImpl::sizeAllocate;
widget_class->screen_changed = IconImpl::screenChanged;
widget_class->style_set = IconImpl::styleSet;
@@ -241,37 +232,15 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr)
bool unref_image = false;
/* copied from the expose function of GtkImage */
-#if GTK_CHECK_VERSION(3,0,0)
if (gtk_widget_get_state_flags (GTK_WIDGET(icon)) != GTK_STATE_FLAG_NORMAL && image) {
-#else
- if (gtk_widget_get_state (GTK_WIDGET(icon)) != GTK_STATE_NORMAL && image) {
- std::cerr << "IconImpl::draw: Ooops! It is called in GTK2" << std::endl;
-#endif
std::cerr << "IconImpl::draw: No image, creating fallback" << std::endl;
-#if GTK_CHECK_VERSION(3,0,0)
- // image = gtk_render_icon_pixbuf(gtk_widget_get_style_context(widget),
- // source,
- // (GtkIconSize)-1);
-
- // gtk_render_icon_pixbuf deprecated, replaced by:
GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
image = gtk_icon_theme_load_icon (icon_theme,
"gtk-image",
32,
(GtkIconLookupFlags)0,
NULL);
-#else
- GtkIconSource *source = gtk_icon_source_new();
- gtk_icon_source_set_pixbuf(source, icon->pb);
- gtk_icon_source_set_size(source, GTK_ICON_SIZE_SMALL_TOOLBAR); // note: this is boilerplate and not used
- gtk_icon_source_set_size_wildcarded(source, FALSE);
- image = gtk_style_render_icon(gtk_widget_get_style(widget), source,
- gtk_widget_get_direction(widget),
- (GtkStateType) gtk_widget_get_state(widget),
- (GtkIconSize)-1, widget, "gtk-image");
- gtk_icon_source_free(source);
-#endif
unref_image = true;
}
@@ -280,12 +249,7 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr)
GtkAllocation allocation;
GtkRequisition requisition;
gtk_widget_get_allocation(widget, &allocation);
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_get_preferred_size(widget, &requisition, NULL);
-#else
- gtk_widget_get_requisition(widget, &requisition);
-#endif
int x = floor(allocation.x + ((allocation.width - requisition.width) * 0.5));
int y = floor(allocation.y + ((allocation.height - requisition.height) * 0.5));
@@ -305,21 +269,6 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr)
return TRUE;
}
-#if !GTK_CHECK_VERSION(3,0,0)
-gboolean IconImpl::expose(GtkWidget *widget, GdkEventExpose * /*event*/)
-{
- gboolean result = TRUE;
-
- if (gtk_widget_is_drawable(widget)) {
- cairo_t * cr = gdk_cairo_create(gtk_widget_get_window(widget));
- result = draw(widget, cr);
- cairo_destroy(cr);
- }
-
- return result;
-}
-#endif
-
// PUBLIC CALL:
void sp_icon_fetch_pixbuf( SPIcon *icon )
{
diff --git a/src/widgets/ink-action.cpp b/src/widgets/ink-action.cpp
index c0797b236..2f1bf94e4 100644
--- a/src/widgets/ink-action.cpp
+++ b/src/widgets/ink-action.cpp
@@ -1,14 +1,9 @@
+#include "ink-action.h"
#include "widgets/icon.h"
-#include "widgets/ink-action.h"
+#include "widgets/image-menu-item.h"
-#include "widgets/button.h"
-
-#if GTK_CHECK_VERSION(3,0,0)
- // Fork of gtk-imagemenuitem to continue support
- #include "widgets/image-menu-item.h"
-
-#endif
+#include <gtk/gtk.h>
static void ink_action_finalize( GObject* obj );
static void ink_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
@@ -160,12 +155,7 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action )
if ( act->private_data->iconId ) {
gchar* label = 0;
g_object_get( G_OBJECT(act), "label", &label, NULL );
-
-#if GTK_CHECK_VERSION(3,0,0)
item = image_menu_item_new_with_mnemonic( label );
-#else
- item = gtk_image_menu_item_new_with_mnemonic( label );
-#endif
GtkWidget* child = sp_icon_new( Inkscape::ICON_SIZE_MENU, act->private_data->iconId );
// TODO this work-around is until SPIcon will live properly inside of a popup menu
@@ -180,12 +170,7 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action )
}
}
gtk_widget_show_all( child );
-
-#if GTK_CHECK_VERSION(3,0,0)
image_menu_item_set_image( IMAGE_MENU_ITEM(item), child );
-#else
- gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(item), child );
-#endif
g_free( label );
label = 0;
@@ -220,454 +205,13 @@ static GtkWidget* ink_action_create_tool_item( GtkAction* action )
return item;
}
-
-
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-
-static void ink_toggle_action_finalize( GObject* obj );
-static void ink_toggle_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
-static void ink_toggle_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
-
-static GtkWidget* ink_toggle_action_create_menu_item( GtkAction* action );
-static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action );
-
-static void ink_toggle_action_update_icon( InkToggleAction* action );
-
-struct _InkToggleActionPrivate
-{
- gchar* iconId;
- Inkscape::IconSize iconSize;
-};
-
-#define INK_TOGGLE_ACTION_GET_PRIVATE( o ) ( G_TYPE_INSTANCE_GET_PRIVATE( (o), INK_TOGGLE_ACTION_TYPE, InkToggleActionPrivate ) )
-
-G_DEFINE_TYPE(InkToggleAction, ink_toggle_action, GTK_TYPE_TOGGLE_ACTION);
-
-static void ink_toggle_action_class_init( InkToggleActionClass* klass )
-{
- if ( klass ) {
- GObjectClass * objClass = G_OBJECT_CLASS( klass );
-
- objClass->finalize = ink_toggle_action_finalize;
- objClass->get_property = ink_toggle_action_get_property;
- objClass->set_property = ink_toggle_action_set_property;
-
- klass->parent_class.parent_class.create_menu_item = ink_toggle_action_create_menu_item;
- klass->parent_class.parent_class.create_tool_item = ink_toggle_action_create_tool_item;
- /*klass->parent_class.connect_proxy = connect_proxy;*/
- /*klass->parent_class.disconnect_proxy = disconnect_proxy;*/
-
- g_object_class_install_property( objClass,
- PROP_INK_ID,
- g_param_spec_string( "iconId",
- "Icon ID",
- "The id for the icon",
- "",
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
-
- g_object_class_install_property( objClass,
- PROP_INK_SIZE,
- g_param_spec_int( "iconSize",
- "Icon Size",
- "The size the icon",
- (int)Inkscape::ICON_SIZE_MENU,
- (int)99,
- (int)Inkscape::ICON_SIZE_SMALL_TOOLBAR,
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
-
- g_type_class_add_private( klass, sizeof(InkToggleActionClass) );
- }
-}
-
-static void ink_toggle_action_init( InkToggleAction* action )
-{
- action->private_data = INK_TOGGLE_ACTION_GET_PRIVATE( action );
- action->private_data->iconId = 0;
- action->private_data->iconSize = Inkscape::ICON_SIZE_SMALL_TOOLBAR;
-}
-
-static void ink_toggle_action_finalize( GObject* obj )
-{
- InkToggleAction* action = INK_TOGGLE_ACTION( obj );
-
- g_free( action->private_data->iconId );
- g_free( action->private_data );
-
-}
-
-InkToggleAction* ink_toggle_action_new( const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size,
- SPAttributeEnum attr)
-{
- GObject* obj = (GObject*)g_object_new( INK_TOGGLE_ACTION_TYPE,
- "name", name,
- "label", label,
- "tooltip", tooltip,
- "iconId", inkId,
- "iconSize", Inkscape::getRegisteredIconSize(size),
- //"SP_ATTR_INKSCAPE", attr, // Why doesn't this work and do I need to use g_object_set_data below?
- NULL );
-
- g_object_set_data(obj, "SP_ATTR_INKSCAPE", GINT_TO_POINTER(attr));
- InkToggleAction* action = INK_TOGGLE_ACTION( obj );
-
- return action;
-}
-
-static void ink_toggle_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec )
-{
- InkToggleAction* action = INK_TOGGLE_ACTION( obj );
- (void)action;
- switch ( propId ) {
- case PROP_INK_ID:
- {
- g_value_set_string( value, action->private_data->iconId );
- }
- break;
-
- case PROP_INK_SIZE:
- {
- g_value_set_int( value, action->private_data->iconSize );
- }
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
- }
-}
-
-void ink_toggle_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec )
-{
- InkToggleAction* action = INK_TOGGLE_ACTION( obj );
- (void)action;
- switch ( propId ) {
- case PROP_INK_ID:
- {
- gchar* tmp = action->private_data->iconId;
- action->private_data->iconId = g_value_dup_string( value );
- g_free( tmp );
-
- ink_toggle_action_update_icon( action );
- }
- break;
-
- case PROP_INK_SIZE:
- {
- action->private_data->iconSize = (Inkscape::IconSize)g_value_get_int( value );
- }
- break;
-
- default:
- {
- G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
- }
- }
-}
-
-static GtkWidget* ink_toggle_action_create_menu_item( GtkAction* action )
-{
- GtkWidget* item = GTK_TOGGLE_ACTION_CLASS(ink_toggle_action_parent_class)->parent_class.create_menu_item(action);
-
- return item;
-}
-
-static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action )
-{
- InkToggleAction* act = INK_TOGGLE_ACTION( action );
-
- GtkWidget* item = GTK_TOGGLE_ACTION_CLASS(ink_toggle_action_parent_class)->parent_class.create_tool_item(action);
- if ( GTK_IS_TOOL_BUTTON(item) ) {
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
- if ( act->private_data->iconId ) {
- GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
-
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_widget_set_hexpand(child, FALSE);
- gtk_widget_set_vexpand(child, FALSE);
- gtk_tool_button_set_icon_widget(button, child);
-#else
- GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 );
- gtk_container_add( GTK_CONTAINER(align), child );
- gtk_tool_button_set_icon_widget( button, align );
-#endif
- } else {
- gchar *label = 0;
- g_object_get( G_OBJECT(action), "short_label", &label, NULL );
- gtk_tool_button_set_label( button, label );
- g_free( label );
- label = 0;
- }
- } else {
- // For now trigger a warning but don't do anything else
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
- (void)button;
- }
- gtk_widget_show_all( item );
-
- return item;
-}
-
-
-static void ink_toggle_action_update_icon( InkToggleAction* action )
-{
- if ( action ) {
- GSList* proxies = gtk_action_get_proxies( GTK_ACTION(action) );
- while ( proxies ) {
- if ( GTK_IS_TOOL_ITEM(proxies->data) ) {
- if ( GTK_IS_TOOL_BUTTON(proxies->data) ) {
- GtkToolButton* button = GTK_TOOL_BUTTON(proxies->data);
-
- GtkWidget* child = sp_icon_new( action->private_data->iconSize, action->private_data->iconId );
-
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_widget_set_hexpand(child, FALSE);
- gtk_widget_set_vexpand(child, FALSE);
- gtk_widget_show_all(child);
- gtk_tool_button_set_icon_widget(button, child);
-#else
- GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 );
- gtk_container_add( GTK_CONTAINER(align), child );
- gtk_widget_show_all( align );
- gtk_tool_button_set_icon_widget( button, align );
-#endif
- }
- }
-
- proxies = g_slist_next( proxies );
- }
- }
-}
-
-
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-
-static void ink_radio_action_finalize( GObject* obj );
-static void ink_radio_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
-static void ink_radio_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
-
-static GtkWidget* ink_radio_action_create_menu_item( GtkAction* action );
-static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action );
-
-struct _InkRadioActionPrivate
-{
- gchar* iconId;
- Inkscape::IconSize iconSize;
-};
-
-#define INK_RADIO_ACTION_GET_PRIVATE( o ) ( G_TYPE_INSTANCE_GET_PRIVATE( (o), INK_RADIO_ACTION_TYPE, InkRadioActionPrivate ) )
-
-G_DEFINE_TYPE(InkRadioAction, ink_radio_action, GTK_TYPE_RADIO_ACTION);
-
-static void ink_radio_action_class_init( InkRadioActionClass* klass )
-{
- if ( klass ) {
- GObjectClass * objClass = G_OBJECT_CLASS( klass );
-
- objClass->finalize = ink_radio_action_finalize;
- objClass->get_property = ink_radio_action_get_property;
- objClass->set_property = ink_radio_action_set_property;
-
- klass->parent_class.parent_class.parent_class.create_menu_item = ink_radio_action_create_menu_item;
- klass->parent_class.parent_class.parent_class.create_tool_item = ink_radio_action_create_tool_item;
- /*klass->parent_class.connect_proxy = connect_proxy;*/
- /*klass->parent_class.disconnect_proxy = disconnect_proxy;*/
-
- g_object_class_install_property( objClass,
- PROP_INK_ID,
- g_param_spec_string( "iconId",
- "Icon ID",
- "The id for the icon",
- "",
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
-
- g_object_class_install_property( objClass,
- PROP_INK_SIZE,
- g_param_spec_int( "iconSize",
- "Icon Size",
- "The size the icon",
- (int)Inkscape::ICON_SIZE_MENU,
- (int)Inkscape::ICON_SIZE_DECORATION,
- (int)Inkscape::ICON_SIZE_SMALL_TOOLBAR,
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
-
- g_type_class_add_private( klass, sizeof(InkRadioActionClass) );
- }
-}
-
-static void ink_radio_action_init( InkRadioAction* action )
-{
- action->private_data = INK_RADIO_ACTION_GET_PRIVATE( action );
- action->private_data->iconId = 0;
- action->private_data->iconSize = Inkscape::ICON_SIZE_SMALL_TOOLBAR;
-}
-
-static void ink_radio_action_finalize( GObject* obj )
-{
- InkRadioAction* action = INK_RADIO_ACTION( obj );
-
- g_free( action->private_data->iconId );
- g_free( action->private_data );
-
-}
-
-InkRadioAction* ink_radio_action_new( const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size )
-{
- GObject* obj = (GObject*)g_object_new( INK_RADIO_ACTION_TYPE,
- "name", name,
- "label", label,
- "tooltip", tooltip,
- "iconId", inkId,
- "iconSize", Inkscape::getRegisteredIconSize(size),
- NULL );
-
- InkRadioAction* action = INK_RADIO_ACTION( obj );
-
- return action;
-}
-
-static void ink_radio_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec )
-{
- InkRadioAction* action = INK_RADIO_ACTION( obj );
- (void)action;
- switch ( propId ) {
- case PROP_INK_ID:
- {
- g_value_set_string( value, action->private_data->iconId );
- }
- break;
-
- case PROP_INK_SIZE:
- {
- g_value_set_int( value, action->private_data->iconSize );
- }
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
- }
-}
-
-void ink_radio_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec )
-{
- InkRadioAction* action = INK_RADIO_ACTION( obj );
- (void)action;
- switch ( propId ) {
- case PROP_INK_ID:
- {
- gchar* tmp = action->private_data->iconId;
- action->private_data->iconId = g_value_dup_string( value );
- g_free( tmp );
- }
- break;
-
- case PROP_INK_SIZE:
- {
- action->private_data->iconSize = (Inkscape::IconSize)g_value_get_int( value );
- }
- break;
-
- default:
- {
- G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
- }
- }
-}
-
-static GtkWidget* ink_radio_action_create_menu_item( GtkAction* action )
-{
- GtkWidget* item = GTK_RADIO_ACTION_CLASS(ink_radio_action_parent_class)->parent_class.parent_class.create_menu_item(action);
-
- return item;
-}
-
-static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action )
-{
- InkRadioAction* act = INK_RADIO_ACTION( action );
- GtkWidget* item = GTK_RADIO_ACTION_CLASS(ink_radio_action_parent_class)->parent_class.parent_class.create_tool_item(action);
-
- if ( act->private_data->iconId ) {
- if ( GTK_IS_TOOL_BUTTON(item) ) {
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
-
- GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
-
-#if GTK_CHECK_VERSION(3,0,0)
- gtk_widget_set_hexpand(child, FALSE);
- gtk_widget_set_vexpand(child, FALSE);
- gtk_tool_button_set_icon_widget(button, child);
-#else
- GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 );
- gtk_container_add( GTK_CONTAINER(align), child );
- gtk_tool_button_set_icon_widget( button, align );
-#endif
- } else {
- // For now trigger a warning but don't do anything else
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
- (void)button;
- }
- }
-
- // TODO investigate if needed
- gtk_widget_show_all( item );
-
- return item;
-}
-
-
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-// ToolMenu Action is happily derived from http://www.gtkforums.com/viewtopic.php?t=4215
-
-G_DEFINE_TYPE(InkToolMenuAction, ink_tool_menu_action, INK_ACTION_TYPE);
-
-static void
-ink_tool_menu_action_class_init (InkToolMenuActionClass *klass)
-{
- GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
- action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON;
-}
-
-static void
-ink_tool_menu_action_init (InkToolMenuAction* /*tma*/)
-{
-}
-
-InkToolMenuAction *
-ink_tool_menu_action_new (const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size )
-{
- g_return_val_if_fail (name != NULL, NULL);
-
- GObject* obj = (GObject*)g_object_new( INK_TOOL_MENU_ACTION_TYPE,
- "name", name,
- "label", label,
- "tooltip", tooltip,
- "iconId", inkId,
- "iconSize", size,
- NULL );
-
- InkToolMenuAction* action = INK_TOOL_MENU_ACTION( obj );
-
- return action;
-}
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-action.h b/src/widgets/ink-action.h
index ac5cb9873..738212c61 100644
--- a/src/widgets/ink-action.h
+++ b/src/widgets/ink-action.h
@@ -1,7 +1,6 @@
#ifndef SEEN_INK_ACTION
#define SEEN_INK_ACTION
-
#include <gtk/gtk.h>
#include "icon-size.h"
#include "attributes.h"
@@ -41,119 +40,16 @@ InkAction* ink_action_new( const gchar *name,
Inkscape::IconSize size );
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-
-#define INK_TOGGLE_ACTION_TYPE ( ink_toggle_action_get_type() )
-#define INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleAction) )
-#define INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
-#define IS_INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOGGLE_ACTION_TYPE) )
-#define IS_INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOGGLE_ACTION_TYPE) )
-#define INK_TOGGLE_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
-
-typedef struct _InkToggleAction InkToggleAction;
-typedef struct _InkToggleActionClass InkToggleActionClass;
-typedef struct _InkToggleActionPrivate InkToggleActionPrivate;
-
-struct _InkToggleAction
-{
- GtkToggleAction action;
- InkToggleActionPrivate *private_data;
-};
-
-struct _InkToggleActionClass
-{
- GtkToggleActionClass parent_class;
-};
-
-GType ink_toggle_action_get_type( void );
-
-InkToggleAction* ink_toggle_action_new( const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size,
- SPAttributeEnum attr = SP_ATTR_INVALID);
-
-
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-
-#define INK_RADIO_ACTION_TYPE ( ink_radio_action_get_type() )
-#define INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_RADIO_ACTION_TYPE, InkRadioAction) )
-#define INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
-#define IS_INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_RADIO_ACTION_TYPE) )
-#define IS_INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_RADIO_ACTION_TYPE) )
-#define INK_RADIO_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
-
-typedef struct _InkRadioAction InkRadioAction;
-typedef struct _InkRadioActionClass InkRadioActionClass;
-typedef struct _InkRadioActionPrivate InkRadioActionPrivate;
-
-struct _InkRadioAction
-{
- GtkRadioAction action;
- InkRadioActionPrivate *private_data;
-};
-
-struct _InkRadioActionClass
-{
- GtkRadioActionClass parent_class;
-};
-
-GType ink_radio_action_get_type( void );
-
-InkRadioAction* ink_radio_action_new( const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size );
-
-
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-/* --------------------------------------------------------------- */
-
-// ToolMenu Action is happily derived from http://www.gtkforums.com/viewtopic.php?t=4215
-
-#define INK_TOOL_MENU_ACTION_TYPE ( ink_tool_menu_action_get_type() )
-#define INK_TOOL_MENU_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuAction) )
-#define INK_TOOL_MENU_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuActionClass) )
-#define IS_INK_TOOL_MENU_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOOL_MENU_ACTION_TYPE) )
-#define IS_INK_TOOL_MENU_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOOL_MENU_ACTION_TYPE) )
-#define INK_TOOL_MENU_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuActionClass) )
-
-typedef struct _InkToolMenuAction InkToolMenuAction;
-typedef struct _InkToolMenuActionClass InkToolMenuActionClass;
-typedef struct _InkToolMenuActionPrivate InkToolMenuActionPrivate;
-
-struct _InkToolMenuAction
-{
- InkAction action;
-};
-
-struct _InkToolMenuActionClass
-{
- InkActionClass parent_class;
-};
-
-GType ink_tool_menu_action_get_type( void );
-
-InkToolMenuAction* ink_tool_menu_action_new( const gchar *name,
- const gchar *label,
- const gchar *tooltip,
- const gchar *inkId,
- Inkscape::IconSize size );
-
-
-
G_END_DECLS
#endif /* SEEN_INK_ACTION */
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-comboboxentry-action.cpp b/src/widgets/ink-comboboxentry-action.cpp
index ec5e26cf5..2fecb06a4 100644
--- a/src/widgets/ink-comboboxentry-action.cpp
+++ b/src/widgets/ink-comboboxentry-action.cpp
@@ -371,16 +371,10 @@ GtkWidget* create_tool_item( GtkAction* action )
g_free( combobox_name );
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(comboBoxEntry, GTK_ALIGN_START);
gtk_widget_set_hexpand(comboBoxEntry, FALSE);
gtk_widget_set_vexpand(comboBoxEntry, FALSE);
gtk_container_add(GTK_CONTAINER(item), comboBoxEntry);
-#else
- GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0);
- gtk_container_add( GTK_CONTAINER(align), comboBoxEntry );
- gtk_container_add( GTK_CONTAINER(item), align );
-#endif
}
ink_comboboxentry_action->combobox = GTK_COMBO_BOX (comboBoxEntry);
@@ -414,11 +408,7 @@ GtkWidget* create_tool_item( GtkAction* action )
// Optionally widen the combobox width... which widens the drop-down list in list mode.
if( ink_comboboxentry_action->extra_width > 0 ) {
GtkRequisition req;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_get_preferred_size(GTK_WIDGET(ink_comboboxentry_action->combobox), &req, NULL);
-#else
- gtk_widget_size_request( GTK_WIDGET( ink_comboboxentry_action->combobox ), &req );
-#endif
gtk_widget_set_size_request( GTK_WIDGET( ink_comboboxentry_action->combobox ),
req.width + ink_comboboxentry_action->extra_width, -1 );
}
@@ -635,11 +625,7 @@ void ink_comboboxentry_action_set_extra_width( Ink_ComboBoxEntry_Action* action,
// Widget may not have been created....
if( action->combobox ) {
GtkRequisition req;
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_get_preferred_size(GTK_WIDGET(action->combobox), &req, NULL);
-#else
- gtk_widget_size_request( GTK_WIDGET( action->combobox ), &req );
-#endif
gtk_widget_set_size_request( GTK_WIDGET( action->combobox ), req.width + action->extra_width, -1 );
}
}
diff --git a/src/widgets/ink-radio-action.cpp b/src/widgets/ink-radio-action.cpp
new file mode 100644
index 000000000..2113819c3
--- /dev/null
+++ b/src/widgets/ink-radio-action.cpp
@@ -0,0 +1,185 @@
+#include "ink-radio-action.h"
+
+static void ink_radio_action_finalize( GObject* obj );
+static void ink_radio_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
+static void ink_radio_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
+
+static GtkWidget* ink_radio_action_create_menu_item( GtkAction* action );
+static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action );
+
+struct _InkRadioActionPrivate
+{
+ gchar* iconId;
+ Inkscape::IconSize iconSize;
+};
+
+#define INK_RADIO_ACTION_GET_PRIVATE( o ) ( G_TYPE_INSTANCE_GET_PRIVATE( (o), INK_RADIO_ACTION_TYPE, InkRadioActionPrivate ) )
+
+G_DEFINE_TYPE(InkRadioAction, ink_radio_action, GTK_TYPE_RADIO_ACTION);
+
+enum {
+ PROP_INK_ID = 1,
+ PROP_INK_SIZE
+};
+
+static void ink_radio_action_class_init( InkRadioActionClass* klass )
+{
+ if ( klass ) {
+ GObjectClass * objClass = G_OBJECT_CLASS( klass );
+
+ objClass->finalize = ink_radio_action_finalize;
+ objClass->get_property = ink_radio_action_get_property;
+ objClass->set_property = ink_radio_action_set_property;
+
+ klass->parent_class.parent_class.parent_class.create_menu_item = ink_radio_action_create_menu_item;
+ klass->parent_class.parent_class.parent_class.create_tool_item = ink_radio_action_create_tool_item;
+ /*klass->parent_class.connect_proxy = connect_proxy;*/
+ /*klass->parent_class.disconnect_proxy = disconnect_proxy;*/
+
+ g_object_class_install_property( objClass,
+ PROP_INK_ID,
+ g_param_spec_string( "iconId",
+ "Icon ID",
+ "The id for the icon",
+ "",
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
+
+ g_object_class_install_property( objClass,
+ PROP_INK_SIZE,
+ g_param_spec_int( "iconSize",
+ "Icon Size",
+ "The size the icon",
+ (int)Inkscape::ICON_SIZE_MENU,
+ (int)Inkscape::ICON_SIZE_DECORATION,
+ (int)Inkscape::ICON_SIZE_SMALL_TOOLBAR,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
+
+ g_type_class_add_private( klass, sizeof(InkRadioActionClass) );
+ }
+}
+
+static void ink_radio_action_init( InkRadioAction* action )
+{
+ action->private_data = INK_RADIO_ACTION_GET_PRIVATE( action );
+ action->private_data->iconId = 0;
+ action->private_data->iconSize = Inkscape::ICON_SIZE_SMALL_TOOLBAR;
+}
+
+static void ink_radio_action_finalize( GObject* obj )
+{
+ InkRadioAction* action = INK_RADIO_ACTION( obj );
+
+ g_free( action->private_data->iconId );
+ g_free( action->private_data );
+
+}
+
+InkRadioAction* ink_radio_action_new( const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size )
+{
+ GObject* obj = (GObject*)g_object_new( INK_RADIO_ACTION_TYPE,
+ "name", name,
+ "label", label,
+ "tooltip", tooltip,
+ "iconId", inkId,
+ "iconSize", Inkscape::getRegisteredIconSize(size),
+ NULL );
+
+ InkRadioAction* action = INK_RADIO_ACTION( obj );
+
+ return action;
+}
+
+static void ink_radio_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec )
+{
+ InkRadioAction* action = INK_RADIO_ACTION( obj );
+ (void)action;
+ switch ( propId ) {
+ case PROP_INK_ID:
+ {
+ g_value_set_string( value, action->private_data->iconId );
+ }
+ break;
+
+ case PROP_INK_SIZE:
+ {
+ g_value_set_int( value, action->private_data->iconSize );
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
+ }
+}
+
+void ink_radio_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec )
+{
+ InkRadioAction* action = INK_RADIO_ACTION( obj );
+ (void)action;
+ switch ( propId ) {
+ case PROP_INK_ID:
+ {
+ gchar* tmp = action->private_data->iconId;
+ action->private_data->iconId = g_value_dup_string( value );
+ g_free( tmp );
+ }
+ break;
+
+ case PROP_INK_SIZE:
+ {
+ action->private_data->iconSize = (Inkscape::IconSize)g_value_get_int( value );
+ }
+ break;
+
+ default:
+ {
+ G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
+ }
+ }
+}
+
+static GtkWidget* ink_radio_action_create_menu_item( GtkAction* action )
+{
+ GtkWidget* item = GTK_RADIO_ACTION_CLASS(ink_radio_action_parent_class)->parent_class.parent_class.create_menu_item(action);
+
+ return item;
+}
+
+static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action )
+{
+ InkRadioAction* act = INK_RADIO_ACTION( action );
+ GtkWidget* item = GTK_RADIO_ACTION_CLASS(ink_radio_action_parent_class)->parent_class.parent_class.create_tool_item(action);
+
+ if ( act->private_data->iconId ) {
+ if ( GTK_IS_TOOL_BUTTON(item) ) {
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+
+ GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
+ gtk_widget_set_hexpand(child, FALSE);
+ gtk_widget_set_vexpand(child, FALSE);
+ gtk_tool_button_set_icon_widget(button, child);
+ } else {
+ // For now trigger a warning but don't do anything else
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+ (void)button;
+ }
+ }
+
+ // TODO investigate if needed
+ gtk_widget_show_all( item );
+
+ return item;
+}
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-radio-action.h b/src/widgets/ink-radio-action.h
new file mode 100644
index 000000000..c1f059c4f
--- /dev/null
+++ b/src/widgets/ink-radio-action.h
@@ -0,0 +1,52 @@
+#ifndef INK_RADIO_ACTION_H
+#define INK_RADIO_ACTION_H
+
+#include <gtk/gtk.h>
+
+#include "icon.h"
+
+G_BEGIN_DECLS
+
+#define INK_RADIO_ACTION_TYPE ( ink_radio_action_get_type() )
+#define INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_RADIO_ACTION_TYPE, InkRadioAction) )
+#define INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
+#define IS_INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_RADIO_ACTION_TYPE) )
+#define IS_INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_RADIO_ACTION_TYPE) )
+#define INK_RADIO_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
+
+typedef struct _InkRadioAction InkRadioAction;
+typedef struct _InkRadioActionClass InkRadioActionClass;
+typedef struct _InkRadioActionPrivate InkRadioActionPrivate;
+
+struct _InkRadioAction
+{
+ GtkRadioAction action;
+ InkRadioActionPrivate *private_data;
+};
+
+struct _InkRadioActionClass
+{
+ GtkRadioActionClass parent_class;
+};
+
+GType ink_radio_action_get_type( void );
+
+InkRadioAction* ink_radio_action_new( const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size );
+
+G_END_DECLS
+
+#endif // INK_RADIO_ACTION_H
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-toggle-action.cpp b/src/widgets/ink-toggle-action.cpp
new file mode 100644
index 000000000..3eed974dc
--- /dev/null
+++ b/src/widgets/ink-toggle-action.cpp
@@ -0,0 +1,221 @@
+#include "ink-toggle-action.h"
+#include "icon.h"
+
+static void ink_toggle_action_finalize( GObject* obj );
+static void ink_toggle_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
+static void ink_toggle_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
+
+static GtkWidget* ink_toggle_action_create_menu_item( GtkAction* action );
+static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action );
+
+static void ink_toggle_action_update_icon( InkToggleAction* action );
+
+struct _InkToggleActionPrivate
+{
+ gchar* iconId;
+ Inkscape::IconSize iconSize;
+};
+
+#define INK_TOGGLE_ACTION_GET_PRIVATE( o ) ( G_TYPE_INSTANCE_GET_PRIVATE( (o), INK_TOGGLE_ACTION_TYPE, InkToggleActionPrivate ) )
+
+G_DEFINE_TYPE(InkToggleAction, ink_toggle_action, GTK_TYPE_TOGGLE_ACTION);
+
+enum {
+ PROP_INK_ID = 1,
+ PROP_INK_SIZE
+};
+
+static void ink_toggle_action_class_init( InkToggleActionClass* klass )
+{
+ if ( klass ) {
+ GObjectClass * objClass = G_OBJECT_CLASS( klass );
+
+ objClass->finalize = ink_toggle_action_finalize;
+ objClass->get_property = ink_toggle_action_get_property;
+ objClass->set_property = ink_toggle_action_set_property;
+
+ klass->parent_class.parent_class.create_menu_item = ink_toggle_action_create_menu_item;
+ klass->parent_class.parent_class.create_tool_item = ink_toggle_action_create_tool_item;
+ /*klass->parent_class.connect_proxy = connect_proxy;*/
+ /*klass->parent_class.disconnect_proxy = disconnect_proxy;*/
+
+ g_object_class_install_property( objClass,
+ PROP_INK_ID,
+ g_param_spec_string( "iconId",
+ "Icon ID",
+ "The id for the icon",
+ "",
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
+
+ g_object_class_install_property( objClass,
+ PROP_INK_SIZE,
+ g_param_spec_int( "iconSize",
+ "Icon Size",
+ "The size the icon",
+ (int)Inkscape::ICON_SIZE_MENU,
+ (int)99,
+ (int)Inkscape::ICON_SIZE_SMALL_TOOLBAR,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
+
+ g_type_class_add_private( klass, sizeof(InkToggleActionClass) );
+ }
+}
+
+static void ink_toggle_action_init( InkToggleAction* action )
+{
+ action->private_data = INK_TOGGLE_ACTION_GET_PRIVATE( action );
+ action->private_data->iconId = 0;
+ action->private_data->iconSize = Inkscape::ICON_SIZE_SMALL_TOOLBAR;
+}
+
+static void ink_toggle_action_finalize( GObject* obj )
+{
+ InkToggleAction* action = INK_TOGGLE_ACTION( obj );
+
+ g_free( action->private_data->iconId );
+ g_free( action->private_data );
+
+}
+
+InkToggleAction* ink_toggle_action_new( const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size,
+ SPAttributeEnum attr)
+{
+ GObject* obj = (GObject*)g_object_new( INK_TOGGLE_ACTION_TYPE,
+ "name", name,
+ "label", label,
+ "tooltip", tooltip,
+ "iconId", inkId,
+ "iconSize", Inkscape::getRegisteredIconSize(size),
+ //"SP_ATTR_INKSCAPE", attr, // Why doesn't this work and do I need to use g_object_set_data below?
+ NULL );
+
+ g_object_set_data(obj, "SP_ATTR_INKSCAPE", GINT_TO_POINTER(attr));
+ InkToggleAction* action = INK_TOGGLE_ACTION( obj );
+
+ return action;
+}
+
+static void ink_toggle_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec )
+{
+ InkToggleAction* action = INK_TOGGLE_ACTION( obj );
+ (void)action;
+ switch ( propId ) {
+ case PROP_INK_ID:
+ {
+ g_value_set_string( value, action->private_data->iconId );
+ }
+ break;
+
+ case PROP_INK_SIZE:
+ {
+ g_value_set_int( value, action->private_data->iconSize );
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
+ }
+}
+
+void ink_toggle_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec )
+{
+ InkToggleAction* action = INK_TOGGLE_ACTION( obj );
+ (void)action;
+ switch ( propId ) {
+ case PROP_INK_ID:
+ {
+ gchar* tmp = action->private_data->iconId;
+ action->private_data->iconId = g_value_dup_string( value );
+ g_free( tmp );
+
+ ink_toggle_action_update_icon( action );
+ }
+ break;
+
+ case PROP_INK_SIZE:
+ {
+ action->private_data->iconSize = (Inkscape::IconSize)g_value_get_int( value );
+ }
+ break;
+
+ default:
+ {
+ G_OBJECT_WARN_INVALID_PROPERTY_ID( obj, propId, pspec );
+ }
+ }
+}
+
+static GtkWidget* ink_toggle_action_create_menu_item( GtkAction* action )
+{
+ GtkWidget* item = GTK_TOGGLE_ACTION_CLASS(ink_toggle_action_parent_class)->parent_class.create_menu_item(action);
+
+ return item;
+}
+
+static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action )
+{
+ InkToggleAction* act = INK_TOGGLE_ACTION( action );
+
+ GtkWidget* item = GTK_TOGGLE_ACTION_CLASS(ink_toggle_action_parent_class)->parent_class.create_tool_item(action);
+ if ( GTK_IS_TOOL_BUTTON(item) ) {
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+ if ( act->private_data->iconId ) {
+ GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
+
+ gtk_widget_set_hexpand(child, FALSE);
+ gtk_widget_set_vexpand(child, FALSE);
+ gtk_tool_button_set_icon_widget(button, child);
+ } else {
+ gchar *label = 0;
+ g_object_get( G_OBJECT(action), "short_label", &label, NULL );
+ gtk_tool_button_set_label( button, label );
+ g_free( label );
+ label = 0;
+ }
+ } else {
+ // For now trigger a warning but don't do anything else
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+ (void)button;
+ }
+ gtk_widget_show_all( item );
+
+ return item;
+}
+
+
+static void ink_toggle_action_update_icon( InkToggleAction* action )
+{
+ if ( action ) {
+ GSList* proxies = gtk_action_get_proxies( GTK_ACTION(action) );
+ while ( proxies ) {
+ if ( GTK_IS_TOOL_ITEM(proxies->data) ) {
+ if ( GTK_IS_TOOL_BUTTON(proxies->data) ) {
+ GtkToolButton* button = GTK_TOOL_BUTTON(proxies->data);
+
+ GtkWidget* child = sp_icon_new( action->private_data->iconSize, action->private_data->iconId );
+ gtk_widget_set_hexpand(child, FALSE);
+ gtk_widget_set_vexpand(child, FALSE);
+ gtk_widget_show_all(child);
+ gtk_tool_button_set_icon_widget(button, child);
+ }
+ }
+
+ proxies = g_slist_next( proxies );
+ }
+ }
+}
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-toggle-action.h b/src/widgets/ink-toggle-action.h
new file mode 100644
index 000000000..8e9d5e257
--- /dev/null
+++ b/src/widgets/ink-toggle-action.h
@@ -0,0 +1,53 @@
+#ifndef INK_TOGGLE_ACTION_H
+#define INK_TOGGLE_ACTION_H
+
+#include <gtk/gtk.h>
+
+#include "attributes.h"
+#include "icon-size.h"
+
+G_BEGIN_DECLS
+#define INK_TOGGLE_ACTION_TYPE ( ink_toggle_action_get_type() )
+#define INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleAction) )
+#define INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
+#define IS_INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOGGLE_ACTION_TYPE) )
+#define IS_INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOGGLE_ACTION_TYPE) )
+#define INK_TOGGLE_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
+
+typedef struct _InkToggleAction InkToggleAction;
+typedef struct _InkToggleActionClass InkToggleActionClass;
+typedef struct _InkToggleActionPrivate InkToggleActionPrivate;
+
+struct _InkToggleAction
+{
+ GtkToggleAction action;
+ InkToggleActionPrivate *private_data;
+};
+
+struct _InkToggleActionClass
+{
+ GtkToggleActionClass parent_class;
+};
+
+GType ink_toggle_action_get_type( void );
+
+InkToggleAction* ink_toggle_action_new( const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size,
+ SPAttributeEnum attr = SP_ATTR_INVALID);
+
+G_END_DECLS
+
+#endif // INK_TOGGLE_ACTION_H
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-tool-menu-action.cpp b/src/widgets/ink-tool-menu-action.cpp
new file mode 100644
index 000000000..29d8dc92f
--- /dev/null
+++ b/src/widgets/ink-tool-menu-action.cpp
@@ -0,0 +1,49 @@
+#include "ink-tool-menu-action.h"
+
+// ToolMenu Action is happily derived from http://www.gtkforums.com/viewtopic.php?t=4215
+
+G_DEFINE_TYPE(InkToolMenuAction, ink_tool_menu_action, INK_ACTION_TYPE);
+
+static void
+ink_tool_menu_action_class_init (InkToolMenuActionClass *klass)
+{
+ GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
+ action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON;
+}
+
+static void
+ink_tool_menu_action_init (InkToolMenuAction* /*tma*/)
+{
+}
+
+InkToolMenuAction *
+ink_tool_menu_action_new (const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size )
+{
+ g_return_val_if_fail (name != NULL, NULL);
+
+ GObject* obj = (GObject*)g_object_new( INK_TOOL_MENU_ACTION_TYPE,
+ "name", name,
+ "label", label,
+ "tooltip", tooltip,
+ "iconId", inkId,
+ "iconSize", size,
+ NULL );
+
+ InkToolMenuAction* action = INK_TOOL_MENU_ACTION( obj );
+
+ return action;
+}
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/ink-tool-menu-action.h b/src/widgets/ink-tool-menu-action.h
new file mode 100644
index 000000000..be04489d3
--- /dev/null
+++ b/src/widgets/ink-tool-menu-action.h
@@ -0,0 +1,52 @@
+#ifndef INK_TOOL_MENU_ACTION_H
+#define INK_TOOL_MENU_ACTION_H
+
+#include "ink-action.h"
+
+// ToolMenu Action is happily derived from http://www.gtkforums.com/viewtopic.php?t=4215
+
+G_BEGIN_DECLS
+
+#define INK_TOOL_MENU_ACTION_TYPE ( ink_tool_menu_action_get_type() )
+#define INK_TOOL_MENU_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuAction) )
+#define INK_TOOL_MENU_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuActionClass) )
+#define IS_INK_TOOL_MENU_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOOL_MENU_ACTION_TYPE) )
+#define IS_INK_TOOL_MENU_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOOL_MENU_ACTION_TYPE) )
+#define INK_TOOL_MENU_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOOL_MENU_ACTION_TYPE, InkToolMenuActionClass) )
+
+typedef struct _InkToolMenuAction InkToolMenuAction;
+typedef struct _InkToolMenuActionClass InkToolMenuActionClass;
+typedef struct _InkToolMenuActionPrivate InkToolMenuActionPrivate;
+
+struct _InkToolMenuAction
+{
+ InkAction action;
+};
+
+struct _InkToolMenuActionClass
+{
+ InkActionClass parent_class;
+};
+
+GType ink_tool_menu_action_get_type( void );
+
+InkToolMenuAction* ink_tool_menu_action_new( const gchar *name,
+ const gchar *label,
+ const gchar *tooltip,
+ const gchar *inkId,
+ Inkscape::IconSize size );
+
+G_END_DECLS
+
+#endif // INK_TOOL_MENU_ACTION_H
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/widgets/lpe-toolbar.cpp b/src/widgets/lpe-toolbar.cpp
index d44983a15..5df5fde70 100644
--- a/src/widgets/lpe-toolbar.cpp
+++ b/src/widgets/lpe-toolbar.cpp
@@ -34,7 +34,8 @@
#include "widgets/ege-select-one-action.h"
#include "helper/action-context.h"
#include "helper/action.h"
-#include "widgets/ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "ui/tools-switch.h"
#include "ui/tools/lpe-tool.h"
#include "ui/widget/unit-tracker.h"
diff --git a/src/widgets/measure-toolbar.cpp b/src/widgets/measure-toolbar.cpp
index 53790cfac..a8c974bbc 100644
--- a/src/widgets/measure-toolbar.cpp
+++ b/src/widgets/measure-toolbar.cpp
@@ -39,7 +39,8 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-output-action.h"
#include "toolbox.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-toggle-action.h"
#include "ui/icon-names.h"
#include "ui/tools/measure-tool.h"
#include "ui/widget/unit-tracker.h"
diff --git a/src/widgets/mesh-toolbar.cpp b/src/widgets/mesh-toolbar.cpp
index 381642287..fb540b5f5 100644
--- a/src/widgets/mesh-toolbar.cpp
+++ b/src/widgets/mesh-toolbar.cpp
@@ -47,7 +47,9 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "sp-stop.h"
#include "svg/css-ostringstream.h"
diff --git a/src/widgets/node-toolbar.cpp b/src/widgets/node-toolbar.cpp
index ed3e33acc..31efaa0b4 100644
--- a/src/widgets/node-toolbar.cpp
+++ b/src/widgets/node-toolbar.cpp
@@ -35,7 +35,8 @@
#include "desktop.h"
#include "document-undo.h"
#include "widgets/ege-adjustment-action.h"
-#include "widgets/ink-action.h"
+#include "ink-toggle-action.h"
+#include "ink-tool-menu-action.h"
#include "inkscape.h"
#include "selection-chemistry.h"
#include "sp-namedview.h"
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index a421ea7d3..01118f337 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -131,11 +131,7 @@ static SPGradientSelector *getGradientFromData(SPPaintSelector const *psel)
return grad;
}
-#if GTK_CHECK_VERSION(3,0,0)
G_DEFINE_TYPE(SPPaintSelector, sp_paint_selector, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(SPPaintSelector, sp_paint_selector, GTK_TYPE_VBOX);
-#endif
static void
sp_paint_selector_class_init(SPPaintSelectorClass *klass)
@@ -194,19 +190,13 @@ sp_paint_selector_class_init(SPPaintSelectorClass *klass)
static void
sp_paint_selector_init(SPPaintSelector *psel)
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_orientable_set_orientation(GTK_ORIENTABLE(psel), GTK_ORIENTATION_VERTICAL);
-#endif
psel->mode = static_cast<SPPaintSelector::Mode>(-1); // huh? do you mean 0xff? -- I think this means "not in the enum"
/* Paint style button box */
-#if GTK_CHECK_VERSION(3,0,0)
psel->style = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(psel->style), FALSE);
-#else
- psel->style = gtk_hbox_new(FALSE, 0);
-#endif
gtk_widget_show(psel->style);
gtk_container_set_border_width(GTK_CONTAINER(psel->style), 4);
gtk_box_pack_start(GTK_BOX(psel), psel->style, FALSE, FALSE, 0);
@@ -233,12 +223,8 @@ sp_paint_selector_init(SPPaintSelector *psel)
/* Fillrule */
{
-#if GTK_CHECK_VERSION(3,0,0)
- psel->fillrulebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_set_homogeneous(GTK_BOX(psel->fillrulebox), FALSE);
-#else
- psel->fillrulebox = gtk_hbox_new(FALSE, 0);
-#endif
+ psel->fillrulebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_set_homogeneous(GTK_BOX(psel->fillrulebox), FALSE);
gtk_box_pack_end(GTK_BOX(psel->style), psel->fillrulebox, FALSE, FALSE, 0);
GtkWidget *w;
@@ -267,22 +253,14 @@ sp_paint_selector_init(SPPaintSelector *psel)
/* Frame */
psel->label = gtk_label_new("");
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *lbbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
+ auto lbbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
gtk_box_set_homogeneous(GTK_BOX(lbbox), FALSE);
-#else
- GtkWidget *lbbox = gtk_hbox_new(FALSE, 4);
-#endif
gtk_widget_show(psel->label);
gtk_box_pack_start(GTK_BOX(lbbox), psel->label, false, false, 4);
gtk_box_pack_start(GTK_BOX(psel), lbbox, false, false, 4);
-#if GTK_CHECK_VERSION(3,0,0)
psel->frame = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
gtk_box_set_homogeneous(GTK_BOX(psel->frame), FALSE);
-#else
- psel->frame = gtk_vbox_new(FALSE, 4);
-#endif
gtk_widget_show(psel->frame);
//gtk_container_set_border_width(GTK_CONTAINER(psel->frame), 0);
gtk_box_pack_start(GTK_BOX(psel), psel->frame, TRUE, TRUE, 0);
@@ -697,12 +675,8 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec
sp_paint_selector_clear_frame(psel);
/* Create new color selector */
/* Create vbox */
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
- gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
-#else
- GtkWidget *vb = gtk_vbox_new(FALSE, 4);
-#endif
+ auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
+ gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
gtk_widget_show(vb);
/* Color selector */
@@ -1043,21 +1017,13 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
sp_paint_selector_clear_frame(psel);
/* Create vbox */
-#if GTK_CHECK_VERSION(3,0,0)
tbl = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
gtk_box_set_homogeneous(GTK_BOX(tbl), FALSE);
-#else
- tbl = gtk_vbox_new(FALSE, 4);
-#endif
gtk_widget_show(tbl);
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, 1);
-#endif
/**
* Create a combo_box and store with 4 columns,
@@ -1085,13 +1051,9 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
}
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-#else
- GtkWidget *hb = gtk_hbox_new(FALSE, 0);
-#endif
- GtkWidget *l = gtk_label_new(NULL);
+ auto l = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(l), _("Use the <b>Node tool</b> to adjust position, scale, and rotation of the pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to create a new pattern from selection."));
gtk_label_set_line_wrap(GTK_LABEL(l), true);
gtk_widget_set_size_request(l, 180, -1);
diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h
index 23c2dd456..dde14b6a6 100644
--- a/src/widgets/paint-selector.h
+++ b/src/widgets/paint-selector.h
@@ -40,11 +40,7 @@ class SPStyle;
* Generic paint selector widget.
*/
struct SPPaintSelector {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBox vbox;
-#else
- GtkVBox vbox;
-#endif
enum Mode {
MODE_EMPTY,
@@ -130,11 +126,7 @@ enum {COMBO_COL_LABEL=0, COMBO_COL_STOCK=1, COMBO_COL_PATTERN=2, COMBO_COL_SEP=3
/// The SPPaintSelector vtable
struct SPPaintSelectorClass {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBoxClass parent_class;
-#else
- GtkVBoxClass parent_class;
-#endif
void (* mode_changed) (SPPaintSelector *psel, SPPaintSelector::Mode mode);
diff --git a/src/widgets/pencil-toolbar.cpp b/src/widgets/pencil-toolbar.cpp
index 75d458cd2..582fb66ba 100644
--- a/src/widgets/pencil-toolbar.cpp
+++ b/src/widgets/pencil-toolbar.cpp
@@ -35,7 +35,9 @@
#include "desktop.h"
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "toolbox.h"
#include "ui/tools-switch.h"
#include "ui/icon-names.h"
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index 5c3e91401..e551c28c3 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -29,7 +29,8 @@
#include "widgets/ege-adjustment-action.h"
#include "helper/action-context.h"
#include "helper/action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-toggle-action.h"
#include "inkscape.h"
#include "message-stack.h"
#include "selection-chemistry.h"
@@ -411,12 +412,8 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
g_object_set_data(G_OBJECT(spw), "dtw", desktop->getCanvas());
// The vb frame holds all other widgets and is used to set sensitivity depending on selection state.
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ auto vb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
-#else
- GtkWidget *vb = gtk_hbox_new(FALSE, 0);
-#endif
gtk_widget_show(vb);
gtk_container_add(GTK_CONTAINER(spw), vb);
diff --git a/src/widgets/sp-attribute-widget.cpp b/src/widgets/sp-attribute-widget.cpp
index de44cdbb4..cbff62b23 100644
--- a/src/widgets/sp-attribute-widget.cpp
+++ b/src/widgets/sp-attribute-widget.cpp
@@ -16,12 +16,7 @@
#include <glibmm/i18n.h>
#include <gtkmm/entry.h>
-
-#if WITH_GTKMM_3_0
-# include <gtkmm/grid.h>
-#else
-# include <gtkmm/table.h>
-#endif
+#include <gtkmm/grid.h>
#include "sp-object.h"
#include "xml/repr.h"
@@ -152,11 +147,7 @@ void SPAttributeTable::set_object(SPObject *object,
release_connection = object->connectRelease (sigc::bind<1>(sigc::ptr_fun(&sp_attribute_table_object_release), this));
// Create table
-#if WITH_GTKMM_3_0
table = new Gtk::Grid();
-#else
- table = new Gtk::Table(attributes.size(), 2, false);
-#endif
if (!(parent == NULL))
gtk_container_add(GTK_CONTAINER(parent), (GtkWidget*)table->gobj());
@@ -167,27 +158,17 @@ void SPAttributeTable::set_object(SPObject *object,
Gtk::Label *ll = new Gtk::Label (_(labels[i].c_str()));
ll->show();
ll->set_alignment (1.0, 0.5);
-
-#if WITH_GTKMM_3_0
ll->set_vexpand();
ll->set_margin_left(XPAD);
ll->set_margin_right(XPAD);
ll->set_margin_top(XPAD);
ll->set_margin_bottom(XPAD);
table->attach(*ll, 0, i, 1, 1);
-#else
- table->attach (*ll, 0, 1, i, i + 1,
- Gtk::FILL,
- (Gtk::EXPAND | Gtk::FILL),
- XPAD, YPAD );
-#endif
Gtk::Entry *ee = new Gtk::Entry();
ee->show();
const gchar *val = object->getRepr()->attribute(attributes[i].c_str());
ee->set_text (val ? val : (const gchar *) "");
-
-#if WITH_GTKMM_3_0
ee->set_hexpand();
ee->set_vexpand();
ee->set_margin_left(XPAD);
@@ -195,12 +176,6 @@ void SPAttributeTable::set_object(SPObject *object,
ee->set_margin_top(XPAD);
ee->set_margin_bottom(XPAD);
table->attach(*ee, 1, i, 1, 1);
-#else
- table->attach (*ee, 1, 2, i, i + 1,
- (Gtk::EXPAND | Gtk::FILL),
- (Gtk::EXPAND | Gtk::FILL),
- XPAD, YPAD );
-#endif
_entries.push_back(ee);
g_signal_connect ( ee->gobj(), "changed",
diff --git a/src/widgets/sp-attribute-widget.h b/src/widgets/sp-attribute-widget.h
index d9b972201..161bb706a 100644
--- a/src/widgets/sp-attribute-widget.h
+++ b/src/widgets/sp-attribute-widget.h
@@ -25,12 +25,7 @@
namespace Gtk {
class Entry;
-
-#if WITH_GTKMM_3_0
class Grid;
-#else
-class Table;
-#endif
}
namespace Inkscape {
@@ -138,11 +133,7 @@ private:
/**
* Container widget for the dynamically created child widgets (labels and entry boxes).
*/
-#if WITH_GTKMM_3_0
Gtk::Grid *table;
-#else
- Gtk::Table *table;
-#endif
/**
* List of attributes.
diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp
index 932f074d2..159350012 100644
--- a/src/widgets/sp-color-selector.cpp
+++ b/src/widgets/sp-color-selector.cpp
@@ -32,11 +32,7 @@ static guint csel_signals[LAST_SIGNAL] = {0};
double ColorSelector::_epsilon = 1e-4;
-#if GTK_CHECK_VERSION(3,0,0)
G_DEFINE_TYPE(SPColorSelector, sp_color_selector, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(SPColorSelector, sp_color_selector, GTK_TYPE_VBOX);
-#endif
void sp_color_selector_class_init( SPColorSelectorClass *klass )
{
@@ -86,9 +82,7 @@ void sp_color_selector_class_init( SPColorSelectorClass *klass )
void sp_color_selector_init( SPColorSelector *csel )
{
-#if GTK_CHECK_VERSION(3,0,0)
gtk_orientable_set_orientation(GTK_ORIENTABLE(csel), GTK_ORIENTATION_VERTICAL);
-#endif
if ( csel->base )
{
diff --git a/src/widgets/sp-color-selector.h b/src/widgets/sp-color-selector.h
index 75cb79b00..14a9fccdf 100644
--- a/src/widgets/sp-color-selector.h
+++ b/src/widgets/sp-color-selector.h
@@ -64,21 +64,12 @@ private:
#define SP_COLOR_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SP_TYPE_COLOR_SELECTOR, SPColorSelectorClass))
struct SPColorSelector {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBox vbox;
-#else
- GtkVBox vbox;
-#endif
-
ColorSelector* base;
};
struct SPColorSelectorClass {
-#if GTK_CHECK_VERSION(3,0,0)
GtkBoxClass parent_class;
-#else
- GtkVBoxClass parent_class;
-#endif
const gchar **name;
guint submode_count;
diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp
index 180704f59..707e62c12 100644
--- a/src/widgets/sp-widget.cpp
+++ b/src/widgets/sp-widget.cpp
@@ -40,7 +40,6 @@ public:
static void show(GtkWidget *widget);
static void hide(GtkWidget *widget);
-#if GTK_CHECK_VERSION(3,0,0)
static void getPreferredWidth(GtkWidget *widget,
gint *minimal_width,
gint *natural_width);
@@ -49,10 +48,6 @@ public:
gint *minimal_height,
gint *natural_height);
static gboolean draw(GtkWidget *widget, cairo_t *cr);
-#else
- static void sizeRequest(GtkWidget *widget, GtkRequisition *requisition);
- static gboolean expose(GtkWidget *widget, GdkEventExpose *event);
-#endif
static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
static void modifySelectionCB(Selection *selection, guint flags, SPWidget *spw);
@@ -119,14 +114,9 @@ sp_widget_class_init(SPWidgetClass *klass)
widget_class->show = SPWidgetImpl::show;
widget_class->hide = SPWidgetImpl::hide;
-#if GTK_CHECK_VERSION(3,0,0)
widget_class->get_preferred_width = SPWidgetImpl::getPreferredWidth;
widget_class->get_preferred_height = SPWidgetImpl::getPreferredHeight;
widget_class->draw = SPWidgetImpl::draw;
-#else
- widget_class->size_request = SPWidgetImpl::sizeRequest;
- widget_class->expose_event = SPWidgetImpl::expose;
-#endif
widget_class->size_allocate = SPWidgetImpl::sizeAllocate;
}
@@ -206,27 +196,18 @@ void SPWidgetImpl::hide(GtkWidget *widget)
}
}
-#if GTK_CHECK_VERSION(3,0,0)
gboolean SPWidgetImpl::draw(GtkWidget *widget, cairo_t *cr)
-#else
-gboolean SPWidgetImpl::expose(GtkWidget *widget, GdkEventExpose *event)
-#endif
{
GtkBin *bin = GTK_BIN(widget);
GtkWidget *child = gtk_bin_get_child(bin);
if (child) {
-#if GTK_CHECK_VERSION(3,0,0)
gtk_container_propagate_draw(GTK_CONTAINER(widget), child, cr);
-#else
- gtk_container_propagate_expose(GTK_CONTAINER(widget), child, event);
-#endif
}
return FALSE;
}
-#if GTK_CHECK_VERSION(3,0,0)
void SPWidgetImpl::getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkBin *bin = GTK_BIN(widget);
@@ -246,17 +227,6 @@ void SPWidgetImpl::getPreferredHeight(GtkWidget *widget, gint *minimal_height, g
gtk_widget_get_preferred_height(child, minimal_height, natural_height);
}
}
-#else
-void SPWidgetImpl::sizeRequest(GtkWidget *widget, GtkRequisition *requisition)
-{
- GtkBin *bin = GTK_BIN(widget);
- GtkWidget *child = gtk_bin_get_child(bin);
-
- if (child) {
- gtk_widget_size_request(child, requisition);
- }
-}
-#endif
void SPWidgetImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation)
{
diff --git a/src/widgets/sp-xmlview-attr-list.cpp b/src/widgets/sp-xmlview-attr-list.cpp
index 45dbae52a..e99605b97 100644
--- a/src/widgets/sp-xmlview-attr-list.cpp
+++ b/src/widgets/sp-xmlview-attr-list.cpp
@@ -20,11 +20,7 @@
#include "../xml/node-event-vector.h"
#include "sp-xmlview-attr-list.h"
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_xmlview_attr_list_destroy(GtkWidget * object);
-#else
-static void sp_xmlview_attr_list_destroy(GtkObject * object);
-#endif
static void event_attr_changed (Inkscape::XML::Node * repr, const gchar * name, const gchar * old_value, const gchar * new_value, bool is_interactive, gpointer data);
@@ -87,13 +83,8 @@ G_DEFINE_TYPE(SPXMLViewAttrList, sp_xmlview_attr_list, GTK_TYPE_TREE_VIEW);
void sp_xmlview_attr_list_class_init (SPXMLViewAttrListClass * klass)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass);
+ auto widget_class = GTK_WIDGET_CLASS(klass);
widget_class->destroy = sp_xmlview_attr_list_destroy;
-#else
- GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass);
- object_class->destroy = sp_xmlview_attr_list_destroy;
-#endif
g_signal_new("row-value-changed",
G_TYPE_FROM_CLASS(klass),
@@ -112,11 +103,7 @@ sp_xmlview_attr_list_init (SPXMLViewAttrList * list)
list->repr = NULL;
}
-#if GTK_CHECK_VERSION(3,0,0)
void sp_xmlview_attr_list_destroy(GtkWidget * object)
-#else
-void sp_xmlview_attr_list_destroy(GtkObject * object)
-#endif
{
SPXMLViewAttrList * list;
@@ -125,11 +112,7 @@ void sp_xmlview_attr_list_destroy(GtkObject * object)
g_object_unref(list->store);
sp_xmlview_attr_list_set_repr (list, NULL);
-#if GTK_CHECK_VERSION(3,0,0)
GTK_WIDGET_CLASS(sp_xmlview_attr_list_parent_class)->destroy (object);
-#else
- GTK_OBJECT_CLASS(sp_xmlview_attr_list_parent_class)->destroy (object);
-#endif
}
void sp_xmlview_attr_list_select_row_by_key(SPXMLViewAttrList * list, const gchar *name)
diff --git a/src/widgets/sp-xmlview-content.cpp b/src/widgets/sp-xmlview-content.cpp
index a1d8475ba..6e59ba3cd 100644
--- a/src/widgets/sp-xmlview-content.cpp
+++ b/src/widgets/sp-xmlview-content.cpp
@@ -23,11 +23,7 @@
using Inkscape::DocumentUndo;
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_xmlview_content_destroy(GtkWidget * object);
-#else
-static void sp_xmlview_content_destroy(GtkObject * object);
-#endif
void sp_xmlview_content_changed (GtkTextBuffer *tb, SPXMLViewContent *text);
@@ -80,13 +76,8 @@ G_DEFINE_TYPE(SPXMLViewContent, sp_xmlview_content, GTK_TYPE_TEXT_VIEW);
void sp_xmlview_content_class_init(SPXMLViewContentClass * klass)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass);
+ auto widget_class = GTK_WIDGET_CLASS(klass);
widget_class->destroy = sp_xmlview_content_destroy;
-#else
- GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass);
- object_class->destroy = sp_xmlview_content_destroy;
-#endif
}
void
@@ -96,21 +87,13 @@ sp_xmlview_content_init (SPXMLViewContent *text)
text->blocked = FALSE;
}
-#if GTK_CHECK_VERSION(3,0,0)
void sp_xmlview_content_destroy(GtkWidget * object)
-#else
-void sp_xmlview_content_destroy(GtkObject * object)
-#endif
{
SPXMLViewContent * text = SP_XMLVIEW_CONTENT (object);
sp_xmlview_content_set_repr (text, NULL);
-#if GTK_CHECK_VERSION(3,0,0)
GTK_WIDGET_CLASS (sp_xmlview_content_parent_class)->destroy (object);
-#else
- GTK_OBJECT_CLASS (sp_xmlview_content_parent_class)->destroy (object);
-#endif
}
void
diff --git a/src/widgets/sp-xmlview-tree.cpp b/src/widgets/sp-xmlview-tree.cpp
index 5af7c243d..3f8cc6063 100644
--- a/src/widgets/sp-xmlview-tree.cpp
+++ b/src/widgets/sp-xmlview-tree.cpp
@@ -22,11 +22,7 @@ struct NodeData {
enum { STORE_TEXT_COL = 0, STORE_DATA_COL, STORE_REPR_COL, STORE_N_COLS };
-#if GTK_CHECK_VERSION(3,0,0)
static void sp_xmlview_tree_destroy(GtkWidget * object);
-#else
-static void sp_xmlview_tree_destroy(GtkObject * object);
-#endif
static NodeData * node_data_new (SPXMLViewTree * tree, GtkTreeIter * node, GtkTreeRowReference *rowref, Inkscape::XML::Node * repr);
@@ -120,13 +116,8 @@ G_DEFINE_TYPE(SPXMLViewTree, sp_xmlview_tree, GTK_TYPE_TREE_VIEW);
void sp_xmlview_tree_class_init(SPXMLViewTreeClass * klass)
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass);
+ auto widget_class = GTK_WIDGET_CLASS(klass);
widget_class->destroy = sp_xmlview_tree_destroy;
-#else
- GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass);
- object_class->destroy = sp_xmlview_tree_destroy;
-#endif
// Signal for when a tree drag and drop has completed
g_signal_new ( "tree_move",
@@ -147,22 +138,13 @@ sp_xmlview_tree_init (SPXMLViewTree * tree)
tree->dndactive = FALSE;
}
-
-#if GTK_CHECK_VERSION(3,0,0)
void sp_xmlview_tree_destroy(GtkWidget * object)
-#else
-void sp_xmlview_tree_destroy(GtkObject * object)
-#endif
{
SPXMLViewTree * tree = SP_XMLVIEW_TREE (object);
sp_xmlview_tree_set_repr (tree, NULL);
-#if GTK_CHECK_VERSION(3,0,0)
GTK_WIDGET_CLASS(sp_xmlview_tree_parent_class)->destroy (object);
-#else
- GTK_OBJECT_CLASS(sp_xmlview_tree_parent_class)->destroy (object);
-#endif
}
/*
diff --git a/src/widgets/spray-toolbar.cpp b/src/widgets/spray-toolbar.cpp
index 43d00c53e..a724637e3 100644
--- a/src/widgets/spray-toolbar.cpp
+++ b/src/widgets/spray-toolbar.cpp
@@ -36,7 +36,8 @@
#include "inkscape.h"
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "toolbox.h"
#include "ui/dialog/clonetiler.h"
#include "ui/dialog/dialog-manager.h"
diff --git a/src/widgets/spw-utilities.cpp b/src/widgets/spw-utilities.cpp
index 8bc472601..88a76b1ed 100644
--- a/src/widgets/spw-utilities.cpp
+++ b/src/widgets/spw-utilities.cpp
@@ -19,12 +19,7 @@
#include <gtkmm/box.h>
#include <gtkmm/label.h>
-
-#if GTK_CHECK_VERSION(3,0,0)
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include "selection.h"
@@ -34,11 +29,7 @@
* Creates a label widget with the given text, at the given col, row
* position in the table.
*/
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Label * spw_label(Gtk::Grid *table, const gchar *label_text, int col, int row, Gtk::Widget* target)
-#else
-Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int row, Gtk::Widget* target)
-#endif
{
Gtk::Label *label_widget = new Gtk::Label();
g_assert(label_widget != NULL);
@@ -54,7 +45,6 @@ Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int
label_widget->set_alignment(1.0, 0.5);
label_widget->show();
-#if GTK_CHECK_VERSION(3,0,0)
label_widget->set_hexpand();
label_widget->set_halign(Gtk::ALIGN_FILL);
label_widget->set_valign(Gtk::ALIGN_CENTER);
@@ -68,9 +58,6 @@ Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int
#endif
table->attach(*label_widget, col, row, 1, 1);
-#else
- table->attach(*label_widget, col, col+1, row, row+1, (Gtk::EXPAND | Gtk::FILL), static_cast<Gtk::AttachOptions>(0), 4, 0);
-#endif
return label_widget;
}
@@ -82,16 +69,9 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row)
label_widget = gtk_label_new (label_text);
g_assert(label_widget != NULL);
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(label_widget, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment (GTK_MISC (label_widget), 1.0, 0.5);
-#endif
-
gtk_widget_show (label_widget);
-#if GTK_CHECK_VERSION(3,0,0)
#if GTK_CHECK_VERSION(3,12,0)
gtk_widget_set_margin_start(label_widget, 4);
gtk_widget_set_margin_end(label_widget, 4);
@@ -103,10 +83,6 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row)
gtk_widget_set_halign(label_widget, GTK_ALIGN_FILL);
gtk_widget_set_valign(label_widget, GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(table), label_widget, col, row, 1, 1);
-#else
- gtk_table_attach(GTK_TABLE (table), label_widget, col, col+1, row, row+1,
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 4, 0);
-#endif
return label_widget;
}
@@ -115,25 +91,16 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row)
* Creates a horizontal layout manager with 4-pixel spacing between children
* and space for 'width' columns.
*/
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::HBox * spw_hbox(Gtk::Grid * table, int width, int col, int row)
-#else
-Gtk::HBox * spw_hbox(Gtk::Table * table, int width, int col, int row)
-#endif
{
/* Create a new hbox with a 4-pixel spacing between children */
Gtk::HBox *hb = new Gtk::HBox(false, 4);
g_assert(hb != NULL);
hb->show();
-
-#if GTK_CHECK_VERSION(3,0,0)
hb->set_hexpand();
hb->set_halign(Gtk::ALIGN_FILL);
hb->set_valign(Gtk::ALIGN_CENTER);
table->attach(*hb, col, row, width, 1);
-#else
- table->attach(*hb, col, col+width, row, row+1, (Gtk::EXPAND | Gtk::FILL), static_cast<Gtk::AttachOptions>(0), 0, 0);
-#endif
return hb;
}
@@ -175,37 +142,21 @@ spw_checkbutton(GtkWidget * dialog, GtkWidget * table,
g_assert(table != NULL);
GtkWidget *l = gtk_label_new (label);
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_END);
-#else
- gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5);
-#endif
-
gtk_widget_show (l);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(l, GTK_ALIGN_FILL);
gtk_widget_set_hexpand(l, TRUE);
gtk_widget_set_valign(l, GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(table), l, 0, row, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (table), l, 0, 1, row, row+1,
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0);
-#endif
b = gtk_check_button_new ();
gtk_widget_show (b);
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(b, GTK_ALIGN_FILL);
gtk_widget_set_hexpand(b, TRUE);
gtk_widget_set_valign(b, GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(table), b, 1, row, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (table), b, 1, 2, row, row+1,
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0);
-#endif
g_object_set_data (G_OBJECT (b), "key", key);
g_object_set_data (G_OBJECT (dialog), key, b);
@@ -233,16 +184,10 @@ spw_dropdown(GtkWidget * dialog, GtkWidget * table,
spw_label_old(table, label_text, 0, row);
gtk_widget_show (selector);
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_halign(selector, GTK_ALIGN_FILL);
gtk_widget_set_hexpand(selector, TRUE);
gtk_widget_set_valign(selector, GTK_ALIGN_CENTER);
gtk_grid_attach(GTK_GRID(table), selector, 1, row, 1, 1);
-#else
- gtk_table_attach (GTK_TABLE (table), selector, 1, 2, row, row+1,
- (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0);
-#endif
g_object_set_data (G_OBJECT (dialog), key, selector);
return selector;
@@ -253,8 +198,7 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font)
{
guint size = GPOINTER_TO_UINT (font);
-#if GTK_CHECK_VERSION(3,0,0)
- GtkCssProvider *css_provider = gtk_css_provider_new();
+ auto css_provider = gtk_css_provider_new();
const double pt_size = size / static_cast<double>(PANGO_SCALE);
std::ostringstream css_data;
@@ -266,25 +210,16 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font)
css_data.str().c_str(),
-1, NULL);
- GtkStyleContext *style_context = gtk_widget_get_style_context(w);
+ auto style_context = gtk_widget_get_style_context(w);
gtk_style_context_add_provider(style_context,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
-#else
- PangoFontDescription* pan = pango_font_description_new ();
- pango_font_description_set_size (pan, size);
- gtk_widget_modify_font (w, pan);
-#endif
if (GTK_IS_CONTAINER(w)) {
gtk_container_foreach (GTK_CONTAINER(w), (GtkCallback) sp_set_font_size_recursive, font);
}
-#if GTK_CHECK_VERSION(3,0,0)
g_object_unref(css_provider);
-#else
- pango_font_description_free (pan);
-#endif
}
void
diff --git a/src/widgets/spw-utilities.h b/src/widgets/spw-utilities.h
index 31f29e026..71b451631 100644
--- a/src/widgets/spw-utilities.h
+++ b/src/widgets/spw-utilities.h
@@ -20,25 +20,13 @@
namespace Gtk {
class Label;
-
-#if GTK_CHECK_VERSION(3,0,0)
class Grid;
-#else
- class Table;
-#endif
-
class HBox;
class Widget;
}
-#if GTK_CHECK_VERSION(3,0,0)
Gtk::Label * spw_label(Gtk::Grid *table, gchar const *label_text, int col, int row, Gtk::Widget *target);
Gtk::HBox * spw_hbox(Gtk::Grid *table, int width, int col, int row);
-#else
-Gtk::Label * spw_label(Gtk::Table *table, gchar const *label_text, int col, int row, Gtk::Widget *target);
-Gtk::HBox * spw_hbox(Gtk::Table *table, int width, int col, int row);
-#endif
-
GtkWidget * spw_label_old(GtkWidget *table, gchar const *label_text, int col, int row);
GtkWidget *
diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp
index 844c678d9..8f667a656 100644
--- a/src/widgets/star-toolbar.cpp
+++ b/src/widgets/star-toolbar.cpp
@@ -37,7 +37,8 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-output-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-action.h"
+#include "ink-radio-action.h"
#include "selection.h"
#include "sp-star.h"
#include "toolbox.h"
diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp
index 0494deb1b..4a658c5dc 100644
--- a/src/widgets/stroke-style.cpp
+++ b/src/widgets/stroke-style.cpp
@@ -152,17 +152,9 @@ StrokeStyle::StrokeStyle() :
Gtk::HBox *f = new Gtk::HBox(false, 0);
f->show();
add(*f);
-
-#if WITH_GTKMM_3_0
table = new Gtk::Grid();
table->set_border_width(4);
table->set_row_spacing(4);
-#else
- table = new Gtk::Table(3, 6, false);
- table->set_border_width(4);
- table->set_row_spacings(4);
-#endif
-
table->show();
f->add(*table);
@@ -178,13 +170,7 @@ StrokeStyle::StrokeStyle() :
// stroke_width_set_unit will be removed (because ScalarUnit takes care of conversions itself), and
// with it, the two remaining calls of stroke_average_width, allowing us to get rid of that
// function in desktop-style.
-
-#if WITH_GTKMM_3_0
widthAdj = new Glib::RefPtr<Gtk::Adjustment>(Gtk::Adjustment::create(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0));
-#else
- widthAdj = new Gtk::Adjustment(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0);
-#endif
-
widthSpin = new Inkscape::UI::Widget::SpinButton(*widthAdj, 0.1, 3);
widthSpin->set_tooltip_text(_("Stroke width"));
widthSpin->show();
@@ -210,12 +196,7 @@ StrokeStyle::StrokeStyle() :
us->show();
hb->pack_start(*us, FALSE, FALSE, 0);
-
-#if WITH_GTKMM_3_0
(*widthAdj)->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::widthChangedCB));
-#else
- widthAdj->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::widthChangedCB));
-#endif
i++;
/* Dash */
@@ -227,16 +208,10 @@ StrokeStyle::StrokeStyle() :
dashSelector = Gtk::manage(new SPDashSelector);
dashSelector->show();
-
-#if WITH_GTKMM_3_0
dashSelector->set_hexpand();
dashSelector->set_halign(Gtk::ALIGN_FILL);
dashSelector->set_valign(Gtk::ALIGN_CENTER);
table->attach(*dashSelector, 1, i, 3, 1);
-#else
- table->attach(*dashSelector, 1, 4, i, i+1, (Gtk::EXPAND | Gtk::FILL), static_cast<Gtk::AttachOptions>(0), 0, 0);
-#endif
-
dashSelector->changed_signal.connect(sigc::mem_fun(*this, &StrokeStyle::lineDashChangedCB));
i++;
@@ -320,28 +295,14 @@ StrokeStyle::StrokeStyle() :
// miter limit is to cut off such spikes (i.e. convert them into bevels)
// when they become too long.
//spw_label(t, _("Miter _limit:"), 0, i);
-
-#if WITH_GTKMM_3_0
miterLimitAdj = new Glib::RefPtr<Gtk::Adjustment>(Gtk::Adjustment::create(4.0, 0.0, 100.0, 0.1, 10.0, 0.0));
miterLimitSpin = new Inkscape::UI::Widget::SpinButton(*miterLimitAdj, 0.1, 2);
-#else
- miterLimitAdj = new Gtk::Adjustment(4.0, 0.0, 100.0, 0.1, 10.0, 0.0);
- miterLimitSpin = new Inkscape::UI::Widget::SpinButton(*miterLimitAdj, 0.1, 2);
-#endif
-
miterLimitSpin->set_tooltip_text(_("Maximum length of the miter (in units of stroke width)"));
miterLimitSpin->show();
sp_dialog_defocus_on_enter_cpp(miterLimitSpin);
hb->pack_start(*miterLimitSpin, false, false, 0);
-
-#if WITH_GTKMM_3_0
(*miterLimitAdj)->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::miterLimitChangedCB));
-
-#else
- miterLimitAdj->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::miterLimitChangedCB));
-#endif
-
i++;
/* Cap type */
@@ -924,17 +885,9 @@ StrokeStyle::updateLine()
if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) {
double avgwidth = Inkscape::Util::Quantity::convert(query.stroke_width.computed, "px", unit);
-#if WITH_GTKMM_3_0
(*widthAdj)->set_value(avgwidth);
-#else
- widthAdj->set_value(avgwidth);
-#endif
} else {
-#if WITH_GTKMM_3_0
(*widthAdj)->set_value(100);
-#else
- widthAdj->set_value(100);
-#endif
}
// if none of the selected objects has a stroke, than quite some controls should be disabled
@@ -955,11 +908,7 @@ StrokeStyle::updateLine()
}
if (result_ml != QUERY_STYLE_NOTHING)
-#if WITH_GTKMM_3_0
(*miterLimitAdj)->set_value(query.stroke_miterlimit.value); // TODO: reflect averagedness?
-#else
- miterLimitAdj->set_value(query.stroke_miterlimit.value); // TODO: reflect averagedness?
-#endif
if (result_join != QUERY_STYLE_MULTIPLE_DIFFERENT &&
result_join != QUERY_STYLE_NOTHING ) {
@@ -1047,13 +996,8 @@ StrokeStyle::scaleLine()
SPCSSAttr *css = sp_repr_css_attr_new();
if (!items.empty()) {
-#if WITH_GTKMM_3_0
double width_typed = (*widthAdj)->get_value();
double const miterlimit = (*miterLimitAdj)->get_value();
-#else
- double width_typed = widthAdj->get_value();
- double const miterlimit = miterLimitAdj->get_value();
-#endif
Inkscape::Util::Unit const *const unit = unitSelector->getUnit();
@@ -1093,11 +1037,7 @@ StrokeStyle::scaleLine()
if (unit->type != Inkscape::Util::UNIT_TYPE_LINEAR) {
// reset to 100 percent
-#if WITH_GTKMM_3_0
(*widthAdj)->set_value(100.0);
-#else
- widthAdj->set_value(100.0);
-#endif
}
}
diff --git a/src/widgets/stroke-style.h b/src/widgets/stroke-style.h
index d83067a4a..76582602d 100644
--- a/src/widgets/stroke-style.h
+++ b/src/widgets/stroke-style.h
@@ -23,12 +23,7 @@
#include "widgets/dash-selector.h"
#include <gtkmm/radiobutton.h>
-
-#if WITH_GTKMM_3_0
#include <gtkmm/grid.h>
-#else
-#include <gtkmm/table.h>
-#endif
#include <glibmm/i18n.h>
@@ -189,15 +184,9 @@ private:
MarkerComboBox *startMarkerCombo;
MarkerComboBox *midMarkerCombo;
MarkerComboBox *endMarkerCombo;
-#if WITH_GTKMM_3_0
Gtk::Grid *table;
Glib::RefPtr<Gtk::Adjustment> *widthAdj;
Glib::RefPtr<Gtk::Adjustment> *miterLimitAdj;
-#else
- Gtk::Table *table;
- Gtk::Adjustment *widthAdj;
- Gtk::Adjustment *miterLimitAdj;
-#endif
Inkscape::UI::Widget::SpinButton *miterLimitSpin;
Inkscape::UI::Widget::SpinButton *widthSpin;
Inkscape::UI::Widget::UnitMenu *unitSelector;
diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp
index dcac7559b..0160bcac7 100644
--- a/src/widgets/text-toolbar.cpp
+++ b/src/widgets/text-toolbar.cpp
@@ -38,7 +38,8 @@
#include "document.h"
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "widgets/ink-comboboxentry-action.h"
#include "inkscape.h"
#include "selection-chemistry.h"
@@ -1557,8 +1558,7 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje
g_object_set_data( holder, "TextFontFamilyAction", act );
// Change style of drop-down from menu to list
-#if GTK_CHECK_VERSION(3,0,0)
- GtkCssProvider *css_provider = gtk_css_provider_new();
+ auto css_provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(css_provider,
"#TextFontFamilyAction_combobox {\n"
" -GtkComboBox-appears-as-list: true;\n"
@@ -1569,24 +1569,10 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje
"}\n",
-1, NULL);
- GdkScreen *screen = gdk_screen_get_default();
+ auto screen = gdk_screen_get_default();
gtk_style_context_add_provider_for_screen(screen,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
-#else
- gtk_rc_parse_string (
- "style \"dropdown-as-list-style\"\n"
- "{\n"
- " GtkComboBox::appears-as-list = 1\n"
- "}\n"
- "widget \"*.TextFontFamilyAction_combobox\" style \"dropdown-as-list-style\""
- "style \"fontfamily-separator-style\"\n"
- "{\n"
- " GtkWidget::wide-separators = 1\n"
- " GtkWidget::separator-height = 6\n"
- "}\n"
- "widget \"*gtk-combobox-popup-window.GtkScrolledWindow.GtkTreeView\" style \"fontfamily-separator-style\"");
-#endif
}
/* Font size */
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index 1e67cca8f..f74be4b15 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -43,6 +43,7 @@
#include "../helper/action.h"
#include "icon.h"
#include "ink-action.h"
+#include "ink-toggle-action.h"
#include "../inkscape.h"
#include "ui/interface.h"
#include "../shortcuts.h"
@@ -1009,26 +1010,18 @@ static GtkWidget* toolboxNewCommon( GtkWidget* tb, BarId id, GtkPositionType /*h
GtkWidget *ToolboxFactory::createToolToolbox()
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(tb, "ToolToolbox");
gtk_box_set_homogeneous(GTK_BOX(tb), FALSE);
-#else
- GtkWidget *tb = gtk_vbox_new(FALSE, 0);
-#endif
return toolboxNewCommon( tb, BAR_TOOL, GTK_POS_TOP );
}
GtkWidget *ToolboxFactory::createAuxToolbox()
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(tb, "AuxToolbox");
gtk_box_set_homogeneous(GTK_BOX(tb), FALSE);
-#else
- GtkWidget *tb = gtk_vbox_new(FALSE, 0);
-#endif
return toolboxNewCommon( tb, BAR_AUX, GTK_POS_LEFT );
}
@@ -1039,38 +1032,26 @@ GtkWidget *ToolboxFactory::createAuxToolbox()
GtkWidget *ToolboxFactory::createCommandsToolbox()
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(tb, "CommandsToolbox");
gtk_box_set_homogeneous(GTK_BOX(tb), FALSE);
-#else
- GtkWidget *tb = gtk_vbox_new(FALSE, 0);
-#endif
return toolboxNewCommon( tb, BAR_COMMANDS, GTK_POS_LEFT );
}
GtkWidget *ToolboxFactory::createSnapToolbox()
{
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(tb, "SnapToolbox");
gtk_box_set_homogeneous(GTK_BOX(tb), FALSE);
-#else
- GtkWidget *tb = gtk_vbox_new(FALSE, 0);
-#endif
return toolboxNewCommon( tb, BAR_SNAP, GTK_POS_LEFT );
}
static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits, Inkscape::UI::Widget::UnitTracker *unit_tracker)
{
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gtk::Adjustment> adj = Glib::wrap(adjustment, true);
- Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits);
-#else
- Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(*Glib::wrap(adjustment, true), climbRate, digits);
-#endif
+ auto adj = Glib::wrap(adjustment, true);
+ auto inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits);
inkSpinner->addUnitTracker(unit_tracker);
inkSpinner = Gtk::manage( inkSpinner );
GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() );
@@ -1432,17 +1413,10 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
if ( aux_toolboxes[i].prep_func ) {
// converted to GtkActions and UIManager
- GtkWidget* kludge = dataHolders[aux_toolboxes[i].type_name];
-
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget* holder = gtk_grid_new();
+ auto kludge = dataHolders[aux_toolboxes[i].type_name];
+ auto holder = gtk_grid_new();
gtk_widget_set_name( holder, "ToolbarHolder" );
gtk_grid_attach( GTK_GRID(holder), kludge, 2, 0, 1, 1);
-#else
- GtkWidget* holder = gtk_table_new( 1, 3, FALSE );
- gtk_table_attach( GTK_TABLE(holder), kludge, 2, 3, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0 );
-#endif
-
gchar* tmp = g_strdup_printf( "/ui/%s", aux_toolboxes[i].ui_name );
GtkWidget* toolBar = gtk_ui_manager_get_widget( mgr, tmp );
g_free( tmp );
@@ -1454,30 +1428,20 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
Inkscape::IconSize toolboxSize = ToolboxFactory::prefToSize("/toolbox/small");
gtk_toolbar_set_icon_size( GTK_TOOLBAR(toolBar), static_cast<GtkIconSize>(toolboxSize) );
-
-#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_set_hexpand(toolBar, TRUE);
gtk_grid_attach( GTK_GRID(holder), toolBar, 0, 0, 1, 1);
-#else
- gtk_table_attach( GTK_TABLE(holder), toolBar, 0, 1, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0 );
-#endif
if ( aux_toolboxes[i].swatch_verb_id != SP_VERB_INVALID ) {
Inkscape::UI::Widget::StyleSwatch *swatch = new Inkscape::UI::Widget::StyleSwatch( NULL, _(aux_toolboxes[i].swatch_tip) );
swatch->setDesktop( desktop );
swatch->setClickVerb( aux_toolboxes[i].swatch_verb_id );
swatch->setWatchedTool( aux_toolboxes[i].swatch_tool, true );
- GtkWidget *swatch_ = GTK_WIDGET( swatch->gobj() );
-
-#if GTK_CHECK_VERSION(3,0,0)
+ auto swatch_ = GTK_WIDGET( swatch->gobj() );
gtk_widget_set_margin_left(swatch_, AUX_BETWEEN_BUTTON_GROUPS);
gtk_widget_set_margin_right(swatch_, AUX_BETWEEN_BUTTON_GROUPS);
gtk_widget_set_margin_top(swatch_, AUX_SPACING);
gtk_widget_set_margin_bottom(swatch_, AUX_SPACING);
gtk_grid_attach( GTK_GRID(holder), swatch_, 1, 0, 1, 1);
-#else
- gtk_table_attach( GTK_TABLE(holder), swatch_, 1, 2, 0, 1, (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), AUX_BETWEEN_BUTTON_GROUPS, AUX_SPACING );
-#endif
}
if(i==0){
gtk_widget_show_all( holder );
diff --git a/src/widgets/tweak-toolbar.cpp b/src/widgets/tweak-toolbar.cpp
index 9a021082c..a6b8ba436 100644
--- a/src/widgets/tweak-toolbar.cpp
+++ b/src/widgets/tweak-toolbar.cpp
@@ -36,7 +36,8 @@
#include "widgets/ege-adjustment-action.h"
#include "widgets/ege-output-action.h"
#include "widgets/ege-select-one-action.h"
-#include "widgets/ink-action.h"
+#include "ink-radio-action.h"
+#include "ink-toggle-action.h"
#include "toolbox.h"
#include "ui/icon-names.h"
#include "ui/tools/tweak-tool.h"
diff --git a/src/xml/Makefile_insert b/src/xml/Makefile_insert
deleted file mode 100644
index da55d7f7e..000000000
--- a/src/xml/Makefile_insert
+++ /dev/null
@@ -1,51 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- xml/comment-node.h \
- xml/composite-node-observer.cpp xml/composite-node-observer.h \
- xml/element-node.h \
- xml/helper-observer.cpp \
- xml/helper-observer.h \
- xml/node-observer.h \
- xml/quote.cpp \
- xml/quote.h \
- xml/repr-css.cpp \
- xml/log-builder.cpp \
- xml/log-builder.h \
- xml/node-fns.cpp \
- xml/node-fns.h \
- xml/pi-node.h \
- xml/rebase-hrefs.cpp \
- xml/rebase-hrefs.h \
- xml/repr-io.cpp \
- xml/repr-sorting.cpp \
- xml/repr-sorting.h \
- xml/repr-util.cpp \
- xml/repr.cpp \
- xml/repr.h \
- xml/simple-document.h \
- xml/simple-document.cpp \
- xml/simple-node.h \
- xml/simple-node.cpp \
- xml/node.h \
- xml/croco-node-iface.cpp \
- xml/croco-node-iface.h \
- xml/attribute-record.h \
- xml/sp-css-attr.h \
- xml/event.cpp xml/event.h xml/event-fns.h \
- xml/document.h \
- xml/node-event-vector.h \
- xml/node-iterators.h \
- xml/sp-css-attr.h \
- xml/subtree.cpp \
- xml/subtree.h \
- xml/text-node.h \
- xml/invalid-operation-exception.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
- $(srcdir)/xml/rebase-hrefs-test.h \
- $(srcdir)/xml/repr-action-test.h \
- $(srcdir)/xml/quote-test.h