diff options
| author | Martin Owens <doctormo@gmail.com> | 2017-06-23 15:42:10 +0000 |
|---|---|---|
| committer | Martin Owens <doctormo@gmail.com> | 2017-06-23 15:42:10 +0000 |
| commit | d010732ae4710cd01b7fbe335663a0920055adbd (patch) | |
| tree | 6162effd15c84b781346d1fe9f7e20bf1c7c7957 | |
| parent | Opps! I had forgotten to increment the loop counter :-P (diff) | |
| parent | Add menus xml in preparation to cleanup (diff) | |
| download | inkscape-d010732ae4710cd01b7fbe335663a0920055adbd.tar.gz inkscape-d010732ae4710cd01b7fbe335663a0920055adbd.zip | |
Merge branch 'ui-files-for-ui-xml'
| -rw-r--r-- | share/ui/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | share/ui/commands-toolbar.ui | 38 | ||||
| -rw-r--r-- | share/ui/menus.xml | 304 | ||||
| -rw-r--r-- | share/ui/select-toolbar.ui | 383 | ||||
| -rw-r--r-- | share/ui/snap-toolbar.ui | 28 | ||||
| -rw-r--r-- | share/ui/tool-toolbar.ui | 39 | ||||
| -rw-r--r-- | src/io/resource.cpp | 36 | ||||
| -rw-r--r-- | src/io/resource.h | 2 | ||||
| -rw-r--r-- | src/widgets/toolbox.cpp | 563 |
9 files changed, 875 insertions, 520 deletions
diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt index 8cd974ad3..80bcd1b5d 100644 --- a/share/ui/CMakeLists.txt +++ b/share/ui/CMakeLists.txt @@ -1,3 +1,3 @@ -file(GLOB _FILES "*.xml" "*.rc" "*.css") +file(GLOB _FILES "*.xml" "*.rc" "*.css" "*.ui") install(FILES ${_FILES} DESTINATION ${INKSCAPE_SHARE_INSTALL}/ui) diff --git a/share/ui/commands-toolbar.ui b/share/ui/commands-toolbar.ui new file mode 100644 index 000000000..c2b1ed965 --- /dev/null +++ b/share/ui/commands-toolbar.ui @@ -0,0 +1,38 @@ +<ui> + <toolbar name='CommandsToolbar'> + <toolitem action='FileNew' /> + <toolitem action='FileOpen' /> + <toolitem action='FileSave' /> + <toolitem action='FilePrint' /> + <separator /> + <toolitem action='FileImport' /> + <toolitem action='DialogExport' /> + <separator /> + <toolitem action='EditUndo' /> + <toolitem action='EditRedo' /> + <separator /> + <toolitem action='EditCopy' /> + <toolitem action='EditCut' /> + <toolitem action='EditPaste' /> + <separator /> + <toolitem action='ZoomSelection' /> + <toolitem action='ZoomDrawing' /> + <toolitem action='ZoomPage' /> + <separator /> + <toolitem action='EditDuplicate' /> + <toolitem action='EditClone' /> + <toolitem action='EditUnlinkClone' /> + <separator /> + <toolitem action='SelectionGroup' /> + <toolitem action='SelectionUnGroup' /> + <separator /> + <toolitem action='DialogFillStroke' /> + <toolitem action='DialogText' /> + <toolitem action='DialogLayers' /> + <toolitem action='DialogXMLEditor' /> + <toolitem action='DialogAlignDistribute' /> + <separator /> + <toolitem action='DialogDocumentProperties' /> + <toolitem action='DialogPreferences' /> + </toolbar> +</ui> diff --git a/share/ui/menus.xml b/share/ui/menus.xml new file mode 100644 index 000000000..2880a7c67 --- /dev/null +++ b/share/ui/menus.xml @@ -0,0 +1,304 @@ +<inkscape version="1.0" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + + <submenu name="_File"> + <verb verb-id="FileNew" /> + <verb verb-id="FileTemplates" /> + <verb verb-id="FileOpen" /> + <recent-file-list/> + <verb verb-id="FileRevert" /> + <verb verb-id="FileSave" /> + <verb verb-id="FileSaveAs" /> + <verb verb-id="FileSaveACopy" /> + <separator/> + <verb verb-id="FileImport" /> + <verb verb-id="DialogExport" /> + <verb verb-id="FileImportFromOCAL" /> + <!--verb verb-id="FileExportToOCAL" /--> + <separator/> + <verb verb-id="FilePrint" /> + <separator/> + <verb verb-id="FileVacuum" /> + <separator/> + <verb verb-id="DialogDocumentProperties" /> + <!--verb verb-id="DialogMetadata" /--> + <separator/> + <verb verb-id="FileClose" /> + <verb verb-id="FileQuit" /> + </submenu> + <submenu name="_Edit"> + <verb verb-id="EditUndo" /> + <verb verb-id="EditRedo" /> + <verb verb-id="DialogUndoHistory" /> + <separator/> + <verb verb-id="EditCut" /> + <verb verb-id="EditCopy" /> + <verb verb-id="EditPaste" /> + <verb verb-id="EditPasteInPlace" /> + <verb verb-id="EditPasteStyle" /> + <submenu name="Paste Si_ze"> + <verb verb-id="EditPasteSize" /> + <verb verb-id="EditPasteWidth" /> + <verb verb-id="EditPasteHeight" /> + <verb verb-id="EditPasteSizeSeparately" /> + <verb verb-id="EditPasteWidthSeparately" /> + <verb verb-id="EditPasteHeightSeparately" /> + </submenu> + <separator/> + <verb verb-id="DialogFind" /> + <separator/> + <verb verb-id="EditDuplicate" /> + <submenu name="Clo_ne"> + <verb verb-id="EditClone" /> + <verb verb-id="DialogClonetiler" /> + <verb verb-id="EditUnlinkClone" /> + <verb verb-id="EditUnlinkCloneRecursive" /> + <verb verb-id="EditRelinkClone" /> + <verb verb-id="EditCloneSelectOriginal" /> + <verb verb-id="EditCloneOriginalPathLPE" /> + </submenu> + <verb verb-id="SelectionCreateBitmap" /> + <separator/> + <verb verb-id="EditDelete" /> + <separator/> + <verb verb-id="EditSelectAll" /> + <verb verb-id="EditSelectAllInAllLayers" /> + <submenu name="Select Sa_me"> + <verb verb-id="EditSelectSameFillStroke" /> + <verb verb-id="EditSelectSameFillColor" /> + <verb verb-id="EditSelectSameStrokeColor" /> + <verb verb-id="EditSelectSameStrokeStyle" /> + <verb verb-id="EditSelectSameObjectType" /> + </submenu> + <verb verb-id="EditInvert" /> + <verb verb-id="EditDeselect" /> + <separator/> + <verb verb-id="FitCanvasToSelectionOrDrawing" /> + <separator/> + <verb verb-id="EditGuidesAroundPage" /> + <verb verb-id="EditGuidesToggleLock" check="yes" /> + <verb verb-id="EditRemoveAllGuides" /> + <separator/> + <verb verb-id="DialogXMLEditor" /> + <separator/> + <verb verb-id="DialogInput" /> + <verb verb-id="DialogPreferences" /> + </submenu> + <submenu name="_View"> + <submenu name="_Zoom"> + <verb verb-id="ZoomIn" /> + <verb verb-id="ZoomOut" /> + <separator/> + <verb verb-id="Zoom1:0" /> + <verb verb-id="Zoom1:2" /> + <verb verb-id="Zoom2:1" /> + <separator/> + <verb verb-id="ZoomSelection" /> + <verb verb-id="ZoomDrawing" /> + <verb verb-id="ZoomPage" /> + <verb verb-id="ZoomPageWidth" /> + <separator/> + <verb verb-id="ZoomPrev" /> + <verb verb-id="ZoomNext" /> + </submenu> + <submenu name="_Display mode"> + <verb verb-id="ViewModeToggle"/> + <verb verb-id="ViewModeNormal" radio="yes" default="yes"/> + <verb verb-id="ViewModeNoFilters" radio="yes"/> + <verb verb-id="ViewModeOutline" radio="yes"/> + <!--Better location in menu needs to be found--> + <!--verb verb-id="ViewModePrintColorsPreview" radio="yes"/--> + <!--verb verb-id="DialogPrintColorsPreview" /--> + </submenu> + <submenu name="_Color display mode"> + <verb verb-id="ViewColorModeToggle"/> + <verb verb-id="ViewColorModeNormal" radio="yes" default="yes"/> + <verb verb-id="ViewColorModeGrayscale" radio="yes"/> + <!--Better location in menu needs to be found--> + <!--verb verb-id="ViewColorModePrintColorsPreview" radio="yes"/--> + <!--verb verb-id="DialogPrintColorsPreview" /--> + </submenu> + <separator/> + <verb verb-id="ToggleGrid" check="yes" /> + <verb verb-id="ToggleGuides" check="yes" /> + <verb verb-id="ViewCmsToggle" check="yes" /> + <separator/> + <submenu name="Sh_ow/Hide"> + <objects-checkboxes/> + </submenu> + <verb verb-id="DialogsToggle" /> + <separator/> + <verb verb-id="DialogSwatches" /> + <verb verb-id="DialogDebug" /> + <separator/> + <verb verb-id="PrevWindow" /> + <verb verb-id="NextWindow" /> + <separator/> + <verb verb-id="ViewIconPreview" /> + <verb verb-id="ViewNew" /> + <separator/> + <verb verb-id="FullScreen" /> + <separator/> + <task-checkboxes/> + <!-- Not quite ready to be in the menus. + <verb verb-id="FocusToggle" /--> + </submenu> + <submenu name="_Layer"> + <verb verb-id="LayerNew" /> + <verb verb-id="LayerRename" /> + <separator/> + <verb verb-id="LayerToggleHide" /> + <verb verb-id="LayerToggleLock" /> + <separator/> + <verb verb-id="LayerNext" /> + <verb verb-id="LayerPrev" /> + <separator/> + <verb verb-id="LayerMoveToNext" /> + <verb verb-id="LayerMoveToPrev" /> + <verb verb-id="LayerMoveTo" /> + <separator/> + <verb verb-id="LayerRaise" /> + <verb verb-id="LayerLower" /> + <verb verb-id="LayerToTop" /> + <verb verb-id="LayerToBottom" /> + <separator/> + <verb verb-id="LayerDuplicate" /> + <verb verb-id="LayerDelete" /> + <separator/> + <verb verb-id="DialogLayers" /> + </submenu> + <submenu name="_Object"> + <verb verb-id="DialogObjects" /> + <verb verb-id="DialogTags" /> + <verb verb-id="DialogStyle" /> + <separator/> + <verb verb-id="DialogFillStroke" /> + <verb verb-id="DialogObjectProperties" /> + <verb verb-id="DialogSymbols" /> + <separator/> + <verb verb-id="SelectionGroup" /> + <verb verb-id="SelectionUnGroup" /> + <verb verb-id="SelectionUnGroupPopSelection" /> + <separator/> + <submenu name="Cli_p"> + <verb verb-id="ObjectSetClipPath" /> + <verb verb-id="ObjectUnSetClipPath" /> + </submenu> + <submenu name="Mas_k"> + <verb verb-id="ObjectSetMask" /> + <verb verb-id="ObjectUnSetMask" /> + </submenu> + <submenu name="Patter_n"> + <verb verb-id="ObjectsToPattern" /> + <verb verb-id="ObjectsFromPattern" /> + </submenu> + <verb verb-id="ObjectsToMarker" /> + <verb verb-id="ObjectsToGuides" /> + <separator/> + <verb verb-id="SelectionRaise" /> + <verb verb-id="SelectionLower" /> + <verb verb-id="SelectionToFront" /> + <verb verb-id="SelectionToBack" /> + <separator/> + <verb verb-id="ObjectRotate90" /> + <verb verb-id="ObjectRotate90CCW" /> + <verb verb-id="ObjectFlipHorizontally" /> + <verb verb-id="ObjectFlipVertically" /> + <separator/> + <verb verb-id="UnhideAll" /> + <verb verb-id="UnlockAll" /> + <separator/> + <verb verb-id="DialogTransform" /> + <verb verb-id="DialogAlignDistribute" /> + <verb verb-id="DialogArrange" /> + <verb verb-id="DialogPrototype" /> + </submenu> + <submenu name="_Path"> + <verb verb-id="ObjectToPath" /> + <verb verb-id="StrokeToPath" /> + +#if HAVE_POTRACE + <verb verb-id="SelectionTrace" /> +#endif + + <verb verb-id="SelectionPixelArt" /> + <separator/> + <verb verb-id="SelectionUnion" /> + <verb verb-id="SelectionDiff" /> + <verb verb-id="SelectionIntersect" /> + <verb verb-id="SelectionSymDiff" /> + <verb verb-id="SelectionDivide" /> + <verb verb-id="SelectionCutPath" /> + <separator/> + <verb verb-id="SelectionCombine" /> + <verb verb-id="SelectionBreakApart" /> + <separator/> + <verb verb-id="SelectionInset" /> + <verb verb-id="SelectionOffset" /> + <verb verb-id="SelectionDynOffset" /> + <verb verb-id="SelectionLinkedOffset" /> + <separator/> + <verb verb-id="SelectionSimplify" /> + <verb verb-id="SelectionReverse" /> + <separator/> + <verb verb-id="DialogLivePathEffect" /> + <verb verb-id="PasteLivePathEffect" /> + <verb verb-id="RemoveLivePathEffect" /> + </submenu> + <submenu name="_Text"> + <verb verb-id="DialogText" /> + <verb verb-id="DialogSVGFonts" /> + <verb verb-id="DialogGlyphs" /> + <separator/> + <verb verb-id="SelectionTextToPath" /> + <verb verb-id="SelectionTextFromPath" /> + <separator/> + <verb verb-id="ObjectFlowText" /> + <verb verb-id="ObjectUnFlowText" /> + <verb verb-id="ObjectFlowtextToText" /> + <separator/> + <verb verb-id="SelectionTextRemoveKerns" /> + <!--ifdef HAVE_ASPELL--> + <separator/> + <verb verb-id="DialogSpellcheck" /> + </submenu> + <submenu name="Filter_s"> + <filters-list/> + <separator/> + <verb verb-id="DialogFilterEffects" /> + <verb verb-id="RemoveFilter" /> + </submenu> + <submenu name="Exte_nsions"> + <verb verb-id="EffectLast" /> + <verb verb-id="EffectLastPref" /> + <separator/> + <effects-list/> + </submenu> + <submenu name="_Help"> + <verb verb-id="org.inkscape.help.manual" /> + <verb verb-id="org.inkscape.help.keys" /> + <verb verb-id="org.inkscape.help.askaquestion" /> + <submenu name="Tutorials"> + <verb verb-id="TutorialsBasic" /> + <verb verb-id="TutorialsShapes" /> + <verb verb-id="TutorialsAdvanced" /> + <verb verb-id="TutorialsTracing" /> + <verb verb-id="TutorialsTracingPixelArt" /> + <verb verb-id="TutorialsCalligraphy" /> + <verb verb-id="TutorialsInterpolate" /> + <verb verb-id="TutorialsDesign" /> + <verb verb-id="TutorialsTips" /> + </submenu> + <!--verb verb-id="org.inkscape.dialogs.extensioneditor" /--> + <verb verb-id="org.inkscape.help.commandline" /> + <verb verb-id="org.inkscape.help.faq" /> + <verb verb-id="org.inkscape.help.relnotes" /> + <verb verb-id="org.inkscape.help.reportabug" /> + <verb verb-id="org.inkscape.help.svgspec" /> + <separator/> + <verb verb-id="HelpAboutMemory" /> + <verb verb-id="HelpAbout" /> + <!--verb verb-id="ShowLicense" /--> + </submenu> +</inkscape> diff --git a/share/ui/select-toolbar.ui b/share/ui/select-toolbar.ui new file mode 100644 index 000000000..c9f488b87 --- /dev/null +++ b/share/ui/select-toolbar.ui @@ -0,0 +1,383 @@ +<ui> + <toolbar name='SelectToolbar'> + <toolitem action='EditSelectAll' /> + <toolitem action='EditSelectAllInAllLayers' /> + <toolitem action='EditDeselect' /> + <separator /> + <toolitem action='ObjectRotate90CCW' /> + <toolitem action='ObjectRotate90' /> + <toolitem action='ObjectFlipHorizontally' /> + <toolitem action='ObjectFlipVertically' /> + <separator /> + <toolitem action='SelectionToBack' /> + <toolitem action='SelectionLower' /> + <toolitem action='SelectionRaise' /> + <toolitem action='SelectionToFront' /> + <separator /> + <toolitem action='XAction' /> + <toolitem action='YAction' /> + <toolitem action='WidthAction' /> + <toolitem action='LockAction' /> + <toolitem action='HeightAction' /> + <toolitem action='UnitsAction' /> + <separator /> + <toolitem action='transform_stroke' /> + <toolitem action='transform_corners' /> + <toolitem action='transform_gradient' /> + <toolitem action='transform_pattern' /> + </toolbar> + + <toolbar name='NodeToolbar'> + <separator /> + <toolitem action='NodeInsertAction'> + <menu action='NodeInsertActionMenu'> + <menuitem action='NodeInsertActionMinX' /> + <menuitem action='NodeInsertActionMaxX' /> + <menuitem action='NodeInsertActionMinY' /> + <menuitem action='NodeInsertActionMaxY' /> + </menu> + </toolitem> + <toolitem action='NodeDeleteAction' /> + <separator /> + <toolitem action='NodeJoinAction' /> + <toolitem action='NodeBreakAction' /> + <separator /> + <toolitem action='NodeJoinSegmentAction' /> + <toolitem action='NodeDeleteSegmentAction' /> + <separator /> + <toolitem action='NodeCuspAction' /> + <toolitem action='NodeSmoothAction' /> + <toolitem action='NodeSymmetricAction' /> + <toolitem action='NodeAutoAction' /> + <separator /> + <toolitem action='NodeLineAction' /> + <toolitem action='NodeCurveAction' /> + <separator /> + <toolitem action='ObjectToPath' /> + <toolitem action='StrokeToPath' /> + <separator /> + <toolitem action='NodeXAction' /> + <toolitem action='NodeYAction' /> + <toolitem action='NodeUnitsAction' /> + <separator /> + <toolitem action='ObjectEditClipPathAction' /> + <toolitem action='ObjectEditMaskPathAction' /> + <toolitem action='EditNextPathEffectParameter' /> + <separator /> + <toolitem action='NodesShowTransformHandlesAction' /> + <toolitem action='NodesShowHandlesAction' /> + <toolitem action='NodesShowHelperpath' /> + </toolbar> + + <toolbar name='TweakToolbar'> + <toolitem action='TweakWidthAction' /> + <separator /> + <toolitem action='TweakForceAction' /> + <toolitem action='TweakPressureAction' /> + <separator /> + <toolitem action='TweakModeAction' /> + <separator /> + <toolitem action='TweakFidelityAction' /> + <separator /> + <toolitem action='TweakChannelsLabel' /> + <toolitem action='TweakDoH' /> + <toolitem action='TweakDoS' /> + <toolitem action='TweakDoL' /> + <toolitem action='TweakDoO' /> + </toolbar> + + <toolbar name='SprayToolbar'> + <toolitem action='SprayModeAction' /> + <separator /> + <toolitem action='SprayWidthAction' /> + <toolitem action='SprayPressureWidthAction' /> + <toolitem action='SprayPopulationAction' /> + <toolitem action='SprayPressurePopulationAction' /> + <separator /> + <toolitem action='SprayRotationAction' /> + <toolitem action='SprayScaleAction' /> + <toolitem action='SprayPressureScaleAction' /> + <separator /> + <toolitem action='SprayStandard_deviationAction' /> + <toolitem action='SprayMeanAction' /> + <separator /> + <toolitem action='SprayOverNoTransparentAction' /> + <toolitem action='SprayOverTransparentAction' /> + <toolitem action='SprayPickNoOverlapAction' /> + <toolitem action='SprayNoOverlapAction' /> + <toolitem action='SprayToolOffsetAction' /> + <separator /> + <toolitem action='SprayPickColorAction' /> + <toolitem action='SprayPickFillAction' /> + <toolitem action='SprayPickStrokeAction' /> + <toolitem action='SprayPickInverseValueAction' /> + <toolitem action='SprayPickCenterAction' /> + </toolbar> + + <toolbar name='ZoomToolbar'> + <toolitem action='ZoomIn' /> + <toolitem action='ZoomOut' /> + <separator /> + <toolitem action='Zoom1:0' /> + <toolitem action='Zoom1:2' /> + <toolitem action='Zoom2:1' /> + <separator /> + <toolitem action='ZoomSelection' /> + <toolitem action='ZoomDrawing' /> + <toolitem action='ZoomPage' /> + <toolitem action='ZoomPageWidth' /> + <separator /> + <toolitem action='ZoomPrev' /> + <toolitem action='ZoomNext' /> + </toolbar> + + <toolbar name='MeasureToolbar'> + <toolitem action='MeasureFontSizeAction' /> + <separator /> + <toolitem action='MeasurePrecisionAction' /> + <separator /> + <toolitem action='MeasureScaleAction' /> + <separator /> + <toolitem action='measure_units_label' /> + <toolitem action='MeasureUnitsAction' /> + <toolitem action='MeasureIgnore1stAndLast' /> + <toolitem action='MeasureInBettween' /> + <toolitem action='MeasureShowHidden' /> + <toolitem action='MeasureAllLayers' /> + <toolitem action='MeasureReverse' /> + <toolitem action='MeasureToPhantom' /> + <toolitem action='MeasureToGuides' /> + <toolitem action='MeasureToItem' /> + <toolitem action='MeasureMarkDimension' /> + <toolitem action='MeasureOffsetAction' /> + </toolbar> + + <toolbar name='StarToolbar'> + <separator /> + <toolitem action='StarStateAction' /> + <separator /> + <toolitem action='FlatAction' /> + <separator /> + <toolitem action='MagnitudeAction' /> + <toolitem action='SpokeAction' /> + <toolitem action='RoundednessAction' /> + <toolitem action='RandomizationAction' /> + <separator /> + <toolitem action='StarResetAction' /> + </toolbar> + + <toolbar name='RectToolbar'> + <toolitem action='RectStateAction' /> + <toolitem action='RectWidthAction' /> + <toolitem action='RectHeightAction' /> + <toolitem action='RadiusXAction' /> + <toolitem action='RadiusYAction' /> + <toolitem action='RectUnitsAction' /> + <separator /> + <toolitem action='RectResetAction' /> + </toolbar> + + <toolbar name='3DBoxToolbar'> + <toolitem action='3DBoxAngleXAction' /> + <toolitem action='3DBoxVPXStateAction' /> + <separator /> + <toolitem action='3DBoxAngleYAction' /> + <toolitem action='3DBoxVPYStateAction' /> + <separator /> + <toolitem action='3DBoxAngleZAction' /> + <toolitem action='3DBoxVPZStateAction' /> + </toolbar> + + <toolbar name='SpiralToolbar'> + <toolitem action='SpiralStateAction' /> + <toolitem action='SpiralRevolutionAction' /> + <toolitem action='SpiralExpansionAction' /> + <toolitem action='SpiralT0Action' /> + <separator /> + <toolitem action='SpiralResetAction' /> + </toolbar> + + <toolbar name='PenToolbar'> + <toolitem action='FreehandModeActionPen' /> + <separator /> + <toolitem action='SetPenShapeAction'/> + </toolbar> + + <toolbar name='PencilToolbar'> + <toolitem action='FreehandModeActionPencil' /> + <separator /> + <toolitem action='PencilToleranceAction' /> + <toolitem action='PencilLpeSimplify' /> + <toolitem action='PencilLpeSimplifyFlatten' /> + <separator /> + <toolitem action='PencilResetAction' /> + <separator /> + <toolitem action='SetPencilShapeAction'/> + </toolbar> + + <toolbar name='CalligraphyToolbar'> + <separator /> + <toolitem action='SetProfileAction'/> + <toolitem action='ProfileEditAction'/> + <separator /> + <toolitem action='CalligraphyWidthAction' /> + <toolitem action='PressureAction' /> + <toolitem action='TraceAction' /> + <toolitem action='ThinningAction' /> + <separator /> + <toolitem action='AngleAction' /> + <toolitem action='TiltAction' /> + <toolitem action='FixationAction' /> + <separator /> + <toolitem action='CapRoundingAction' /> + <separator /> + <toolitem action='TremorAction' /> + <toolitem action='WiggleAction' /> + <toolitem action='MassAction' /> + <separator /> + </toolbar> + + <toolbar name='ArcToolbar'> + <toolitem action='ArcStateAction' /> + <separator /> + <toolitem action='ArcStartAction' /> + <toolitem action='ArcEndAction' /> + <separator /> + <toolitem action='ArcOpenAction' /> + <separator /> + <toolitem action='ArcResetAction' /> + <separator /> + </toolbar> + + <toolbar name='PaintbucketToolbar'> + <toolitem action='ChannelsAction' /> + <separator /> + <toolitem action='ThresholdAction' /> + <separator /> + <toolitem action='OffsetAction' /> + <toolitem action='PaintbucketUnitsAction' /> + <separator /> + <toolitem action='AutoGapAction' /> + <separator /> + <toolitem action='PaintbucketResetAction' /> + </toolbar> + + <toolbar name='EraserToolbar'> + <toolitem action='EraserModeAction' /> + <separator /> + <toolitem action='EraserWidthAction' /> + <toolitem action='EraserPressureAction' /> + <separator /> + <toolitem action='EraserThinningAction' /> + <separator /> + <toolitem action='EraserCapRoundingAction' /> + <separator /> + <toolitem action='EraserTremorAction' /> + <separator /> + <toolitem action='EraserMassAction' /> + <separator /> + <toolitem action='EraserBreakAppart' /> + </toolbar> + + <toolbar name='TextToolbar'> + <toolitem action='TextFontFamilyAction' /> + <toolitem action='TextFontStyleAction' /> + <separator /> + <toolitem action='TextOuterStyleAction' /> + <toolitem action='TextFontSizeAction' /> + <toolitem action='TextLineHeightAction' /> + <toolitem action='TextLineHeightUnitsAction' /> + <toolitem action='TextLineHeightUnsetAction' /> + <separator /> + <toolitem action='TextAlignAction' /> + <separator /> + <toolitem action='TextSuperscriptAction' /> + <toolitem action='TextSubscriptAction' /> + <separator /> + <toolitem action='TextLetterSpacingAction' /> + <toolitem action='TextWordSpacingAction' /> + <toolitem action='TextDxAction' /> + <toolitem action='TextDyAction' /> + <toolitem action='TextRotationAction' /> + <separator /> + <toolitem action='TextWritingModeAction' /> + <separator /> + <toolitem action='TextOrientationAction' /> + <separator /> + <toolitem action='TextDirectionAction' /> + </toolbar> + + <toolbar name='LPEToolToolbar'> + <toolitem action='LPEToolModeAction' /> + <separator /> + <toolitem action='LPEShowBBoxAction' /> + <toolitem action='LPEBBoxFromSelectionAction' /> + <separator /> + <toolitem action='LPELineSegmentAction' /> + <separator /> + <toolitem action='LPEMeasuringAction' /> + <toolitem action='LPEToolUnitsAction' /> + <separator /> + <toolitem action='LPEOpenLPEDialogAction' /> + </toolbar> + + <toolbar name='GradientToolbar'> + <toolitem action='GradientNewTypeAction' /> + <toolitem action='GradientNewFillStrokeAction' /> + <separator /> + <toolitem action='GradientSelectGradientAction' /> + <toolitem action='GradientEditLinkAction' /> + <toolitem action='GradientEditReverseAction' /> + <toolitem action='GradientSelectRepeatAction' /> + <separator /> + <toolitem action='GradientEditStopsAction' /> + <toolitem action='GradientEditOffsetAction' /> + <toolitem action='GradientEditAddAction' /> + <toolitem action='GradientEditDeleteAction' /> + </toolbar> + + <toolbar name='MeshToolbar'> + <toolitem action='MeshNewTypeAction' /> + <toolitem action='MeshNewFillStrokeAction' /> + <toolitem action='MeshRowAction' /> + <toolitem action='MeshColumnAction' /> + <separator /> +<!-- + <toolitem action='MeshEditFillAction' /> + <toolitem action='MeshEditStrokeAction' /> + <toolitem action='MeshShowHandlesAction' /> +--> + <toolitem action='MeshToggleSidesAction' /> + <toolitem action='MeshMakeEllipticalAction' /> + <toolitem action='MeshPickColorsAction' /> + <toolitem action='MeshFitInBoundingBoxAction' /> + <separator /> + <toolitem action='MeshShowHandlesAction' /> + <toolitem action='MeshEditFillAction' /> + <toolitem action='MeshEditStrokeAction' /> + <separator /> + <toolitem action='MeshWarningAction' /> + <separator /> + <toolitem action='MeshSmoothAction' /> + </toolbar> + + <toolbar name='DropperToolbar'> + <toolitem action='DropperOpacityAction' /> + <toolitem action='DropperPickAlphaAction' /> + <toolitem action='DropperSetAlphaAction' /> + </toolbar> + + <toolbar name='ConnectorToolbar'> + <toolitem action='ConnectorAvoidAction' /> + <toolitem action='ConnectorIgnoreAction' /> + <toolitem action='ConnectorOrthogonalAction' /> + <toolitem action='ConnectorCurvatureAction' /> + <toolitem action='ConnectorSpacingAction' /> + <toolitem action='ConnectorGraphAction' /> + <toolitem action='ConnectorLengthAction' /> + <toolitem action='ConnectorDirectedAction' /> + <toolitem action='ConnectorOverlapAction' /> + </toolbar> + +</ui> + diff --git a/share/ui/snap-toolbar.ui b/share/ui/snap-toolbar.ui new file mode 100644 index 000000000..90fa6bd61 --- /dev/null +++ b/share/ui/snap-toolbar.ui @@ -0,0 +1,28 @@ +<ui> + <toolbar name='SnapToolbar'> + <toolitem action='ToggleSnapGlobal' /> + <separator /> + <toolitem action='ToggleSnapFromBBoxCorner' /> + <toolitem action='ToggleSnapToBBoxPath' /> + <toolitem action='ToggleSnapToBBoxNode' /> + <toolitem action='ToggleSnapToFromBBoxEdgeMidpoints' /> + <toolitem action='ToggleSnapToFromBBoxCenters' /> + <separator /> + <toolitem action='ToggleSnapFromNode' /> + <toolitem action='ToggleSnapToItemPath' /> + <toolitem action='ToggleSnapToPathIntersections' /> + <toolitem action='ToggleSnapToItemNode' /> + <toolitem action='ToggleSnapToSmoothNodes' /> + <toolitem action='ToggleSnapToFromLineMidpoints' /> + <separator /> + <toolitem action='ToggleSnapFromOthers' /> + <toolitem action='ToggleSnapToFromObjectCenters' /> + <toolitem action='ToggleSnapToFromRotationCenter' /> + <toolitem action='ToggleSnapToFromTextBaseline' /> + <separator /> + <toolitem action='ToggleSnapToPageBorder' /> + <toolitem action='ToggleSnapToGrids' /> + <toolitem action='ToggleSnapToGuides' /> + <!--toolitem action='ToggleSnapToGridGuideIntersections' /--> + </toolbar> +</ui> diff --git a/share/ui/tool-toolbar.ui b/share/ui/tool-toolbar.ui new file mode 100644 index 000000000..a5dedad56 --- /dev/null +++ b/share/ui/tool-toolbar.ui @@ -0,0 +1,39 @@ +<ui> + <toolbar name='ToolToolbar'> + <!-- Basics --> + <toolitem action='ToolSelector' /> + <toolitem action='ToolNode' /> + <toolitem action='ToolTweak' /> + <toolitem action='ToolZoom' /> + <toolitem action='ToolMeasure' /> + + <!-- Shapes --> + <toolitem action='ToolRect' /> + <toolitem action='Tool3DBox' /> + <toolitem action='ToolArc' /> + <toolitem action='ToolStar' /> + <toolitem action='ToolSpiral' /> + + <!-- Paths --> + <toolitem action='ToolPencil' /> + <toolitem action='ToolPen' /> + <toolitem action='ToolCalligraphic' /> + + <!-- Text --> + <toolitem action='ToolText' /> + + <!-- Paint large areas --> + <toolitem action='ToolSpray' /> + <toolitem action='ToolEraser' /> + + <!-- Fill --> + <toolitem action='ToolPaintBucket' /> + + <toolitem action='ToolGradient' /> + <toolitem action='ToolMesh' /> + <toolitem action='ToolDropper' /> + + <toolitem action='ToolConnector' /> + <toolitem action='ToolLPETool' /> + </toolbar> +</ui> diff --git a/src/io/resource.cpp b/src/io/resource.cpp index 501eab03b..52ac884b1 100644 --- a/src/io/resource.cpp +++ b/src/io/resource.cpp @@ -19,15 +19,18 @@ #include <glib.h> // g_assert() #include "path-prefix.h" #include "inkscape.h" +#include "io/sys.h" #include "io/resource.h" +using Inkscape::IO::file_test; + namespace Inkscape { namespace IO { namespace Resource { -Util::ptr_shared<char> get_path(Domain domain, Type type, char const *filename) +gchar *_get_path(Domain domain, Type type, char const *filename) { gchar *path=NULL; switch (domain) { @@ -71,7 +74,8 @@ Util::ptr_shared<char> get_path(Domain domain, Type type, char const *filename) case PALETTES: name = "palettes"; break; case PATTERNS: name = "patterns"; break; case TEMPLATES: name = "templates"; break; - default: return get_path(SYSTEM, type, filename); + case UI: name = "ui"; break; + default: return _get_path(SYSTEM, type, filename); } path = Inkscape::Application::profile_path(name); } break; @@ -83,11 +87,39 @@ Util::ptr_shared<char> get_path(Domain domain, Type type, char const *filename) path = temp; } + return path; +} + +Util::ptr_shared<char> get_path(Domain domain, Type type, char const *filename) +{ + char *path = _get_path(domain, type, filename); Util::ptr_shared<char> result=Util::share_string(path); g_free(path); return result; } +/* + * Same as get_path, but checks for file's existance and falls back + * from USER to SYSTEM modes. + */ +Util::ptr_shared<char> get_filename(Type type, char const *filename) +{ + Util::ptr_shared<char> result; + char *user_filename = _get_path(USER, type, filename); + char *sys_filename = _get_path(SYSTEM, type, filename); + + if (file_test(user_filename, G_FILE_TEST_EXISTS)) { + result = Util::share_string(user_filename); + } else if(file_test(sys_filename, G_FILE_TEST_EXISTS)) { + result = Util::share_string(sys_filename); + } else { + g_warning("Failed to load resource: %s", filename); + } + g_free(user_filename); + g_free(sys_filename); + return result; +} + } } diff --git a/src/io/resource.h b/src/io/resource.h index 36fe5f81e..fbf2111f4 100644 --- a/src/io/resource.h +++ b/src/io/resource.h @@ -48,6 +48,8 @@ enum Domain { Util::ptr_shared<char> get_path(Domain domain, Type type, char const *filename=NULL); +Util::ptr_shared<char> get_filename(Type type, char const *filename=NULL); + } } diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 016eafdaa..65c54f0ce 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -61,7 +61,7 @@ #include "../xml/attribute-record.h" #include "../xml/node-event-vector.h" #include "ui/uxmanager.h" - +#include "io/resource.h" #include "arc-toolbar.h" #include "box3d-toolbar.h" @@ -101,6 +101,9 @@ using Inkscape::UI::PrefPusher; using Inkscape::UI::ToolboxFactory; using Inkscape::UI::Tools::ToolBase; +using Inkscape::IO::Resource::get_filename; +using Inkscape::IO::Resource::UI; + typedef void (*SetupFunction)(GtkWidget *toolbox, SPDesktop *desktop); typedef void (*UpdateFunction)(SPDesktop *desktop, ToolBase *eventcontext, GtkWidget *toolbox); @@ -153,6 +156,9 @@ static struct { { "/tools/eraser", "eraser_tool", SP_VERB_CONTEXT_ERASER, SP_VERB_CONTEXT_ERASER_PREFS }, #if HAVE_POTRACE { "/tools/paintbucket", "paintbucket_tool", SP_VERB_CONTEXT_PAINTBUCKET, SP_VERB_CONTEXT_PAINTBUCKET_PREFS }, +#else + // Replacement blank action for ToolPaintBucket to prevent loading errors in ui file + { "/tools/paintbucket", "ToolPaintBucket", SP_VERB_NONE, SP_VERB_NONE }, #endif { "/tools/text", "text_tool", SP_VERB_CONTEXT_TEXT, SP_VERB_CONTEXT_TEXT_PREFS }, { "/tools/connector","connector_tool", SP_VERB_CONTEXT_CONNECTOR, SP_VERB_CONTEXT_CONNECTOR_PREFS }, @@ -218,394 +224,12 @@ static struct { #if HAVE_POTRACE { "/tools/paintbucket", "paintbucket_toolbox", 0, sp_paintbucket_toolbox_prep, "PaintbucketToolbar", SP_VERB_CONTEXT_PAINTBUCKET_PREFS, "/tools/paintbucket", N_("Style of Paint Bucket fill objects")}, +#else + { "/tools/paintbucket", "paintbucket_toolbox", 0, NULL, "PaintbucketToolbar", SP_VERB_NONE, "/tools/paintbucket", N_("Disabled")}, #endif { NULL, NULL, NULL, NULL, NULL, SP_VERB_INVALID, NULL, NULL } }; -static gchar const * ui_descr = - "<ui>" - " <toolbar name='SelectToolbar'>" - " <toolitem action='EditSelectAll' />" - " <toolitem action='EditSelectAllInAllLayers' />" - " <toolitem action='EditDeselect' />" - " <separator />" - " <toolitem action='ObjectRotate90CCW' />" - " <toolitem action='ObjectRotate90' />" - " <toolitem action='ObjectFlipHorizontally' />" - " <toolitem action='ObjectFlipVertically' />" - " <separator />" - " <toolitem action='SelectionToBack' />" - " <toolitem action='SelectionLower' />" - " <toolitem action='SelectionRaise' />" - " <toolitem action='SelectionToFront' />" - " <separator />" - " <toolitem action='XAction' />" - " <toolitem action='YAction' />" - " <toolitem action='WidthAction' />" - " <toolitem action='LockAction' />" - " <toolitem action='HeightAction' />" - " <toolitem action='UnitsAction' />" - " <separator />" - " <toolitem action='transform_stroke' />" - " <toolitem action='transform_corners' />" - " <toolitem action='transform_gradient' />" - " <toolitem action='transform_pattern' />" - " </toolbar>" - - " <toolbar name='NodeToolbar'>" - " <separator />" - " <toolitem action='NodeInsertAction'>" - " <menu action='NodeInsertActionMenu'>" - " <menuitem action='NodeInsertActionMinX' />" - " <menuitem action='NodeInsertActionMaxX' />" - " <menuitem action='NodeInsertActionMinY' />" - " <menuitem action='NodeInsertActionMaxY' />" - " </menu>" - " </toolitem>" - " <toolitem action='NodeDeleteAction' />" - " <separator />" - " <toolitem action='NodeJoinAction' />" - " <toolitem action='NodeBreakAction' />" - " <separator />" - " <toolitem action='NodeJoinSegmentAction' />" - " <toolitem action='NodeDeleteSegmentAction' />" - " <separator />" - " <toolitem action='NodeCuspAction' />" - " <toolitem action='NodeSmoothAction' />" - " <toolitem action='NodeSymmetricAction' />" - " <toolitem action='NodeAutoAction' />" - " <separator />" - " <toolitem action='NodeLineAction' />" - " <toolitem action='NodeCurveAction' />" - " <separator />" - " <toolitem action='ObjectToPath' />" - " <toolitem action='StrokeToPath' />" - " <separator />" - " <toolitem action='NodeXAction' />" - " <toolitem action='NodeYAction' />" - " <toolitem action='NodeUnitsAction' />" - " <separator />" - " <toolitem action='ObjectEditClipPathAction' />" - " <toolitem action='ObjectEditMaskPathAction' />" - " <toolitem action='EditNextPathEffectParameter' />" - " <separator />" - " <toolitem action='NodesShowTransformHandlesAction' />" - " <toolitem action='NodesShowHandlesAction' />" - " <toolitem action='NodesShowHelperpath' />" - " </toolbar>" - - " <toolbar name='TweakToolbar'>" - " <toolitem action='TweakWidthAction' />" - " <separator />" - " <toolitem action='TweakForceAction' />" - " <toolitem action='TweakPressureAction' />" - " <separator />" - " <toolitem action='TweakModeAction' />" - " <separator />" - " <toolitem action='TweakFidelityAction' />" - " <separator />" - " <toolitem action='TweakChannelsLabel' />" - " <toolitem action='TweakDoH' />" - " <toolitem action='TweakDoS' />" - " <toolitem action='TweakDoL' />" - " <toolitem action='TweakDoO' />" - " </toolbar>" - - " <toolbar name='SprayToolbar'>" - " <toolitem action='SprayModeAction' />" - " <separator />" - " <toolitem action='SprayWidthAction' />" - " <toolitem action='SprayPressureWidthAction' />" - " <toolitem action='SprayPopulationAction' />" - " <toolitem action='SprayPressurePopulationAction' />" - " <separator />" - " <toolitem action='SprayRotationAction' />" - " <toolitem action='SprayScaleAction' />" - " <toolitem action='SprayPressureScaleAction' />" - " <separator />" - " <toolitem action='SprayStandard_deviationAction' />" - " <toolitem action='SprayMeanAction' />" - " <separator />" - " <toolitem action='SprayOverNoTransparentAction' />" - " <toolitem action='SprayOverTransparentAction' />" - " <toolitem action='SprayPickNoOverlapAction' />" - " <toolitem action='SprayNoOverlapAction' />" - " <toolitem action='SprayToolOffsetAction' />" - " <separator />" - " <toolitem action='SprayPickColorAction' />" - " <toolitem action='SprayPickFillAction' />" - " <toolitem action='SprayPickStrokeAction' />" - " <toolitem action='SprayPickInverseValueAction' />" - " <toolitem action='SprayPickCenterAction' />" - " </toolbar>" - - " <toolbar name='ZoomToolbar'>" - " <toolitem action='ZoomIn' />" - " <toolitem action='ZoomOut' />" - " <separator />" - " <toolitem action='Zoom1:0' />" - " <toolitem action='Zoom1:2' />" - " <toolitem action='Zoom2:1' />" - " <separator />" - " <toolitem action='ZoomSelection' />" - " <toolitem action='ZoomDrawing' />" - " <toolitem action='ZoomPage' />" - " <toolitem action='ZoomPageWidth' />" - " <separator />" - " <toolitem action='ZoomPrev' />" - " <toolitem action='ZoomNext' />" - " </toolbar>" - - " <toolbar name='MeasureToolbar'>" - " <toolitem action='MeasureFontSizeAction' />" - " <separator />" - " <toolitem action='MeasurePrecisionAction' />" - " <separator />" - " <toolitem action='MeasureScaleAction' />" - " <separator />" - " <toolitem action='measure_units_label' />" - " <toolitem action='MeasureUnitsAction' />" - " <toolitem action='MeasureIgnore1stAndLast' />" - " <toolitem action='MeasureInBettween' />" - " <toolitem action='MeasureShowHidden' />" - " <toolitem action='MeasureAllLayers' />" - " <toolitem action='MeasureReverse' />" - " <toolitem action='MeasureToPhantom' />" - " <toolitem action='MeasureToGuides' />" - " <toolitem action='MeasureToItem' />" - " <toolitem action='MeasureMarkDimension' />" - " <toolitem action='MeasureOffsetAction' />" - " </toolbar>" - - " <toolbar name='StarToolbar'>" - " <separator />" - " <toolitem action='StarStateAction' />" - " <separator />" - " <toolitem action='FlatAction' />" - " <separator />" - " <toolitem action='MagnitudeAction' />" - " <toolitem action='SpokeAction' />" - " <toolitem action='RoundednessAction' />" - " <toolitem action='RandomizationAction' />" - " <separator />" - " <toolitem action='StarResetAction' />" - " </toolbar>" - - " <toolbar name='RectToolbar'>" - " <toolitem action='RectStateAction' />" - " <toolitem action='RectWidthAction' />" - " <toolitem action='RectHeightAction' />" - " <toolitem action='RadiusXAction' />" - " <toolitem action='RadiusYAction' />" - " <toolitem action='RectUnitsAction' />" - " <separator />" - " <toolitem action='RectResetAction' />" - " </toolbar>" - - " <toolbar name='3DBoxToolbar'>" - " <toolitem action='3DBoxAngleXAction' />" - " <toolitem action='3DBoxVPXStateAction' />" - " <separator />" - " <toolitem action='3DBoxAngleYAction' />" - " <toolitem action='3DBoxVPYStateAction' />" - " <separator />" - " <toolitem action='3DBoxAngleZAction' />" - " <toolitem action='3DBoxVPZStateAction' />" - " </toolbar>" - - " <toolbar name='SpiralToolbar'>" - " <toolitem action='SpiralStateAction' />" - " <toolitem action='SpiralRevolutionAction' />" - " <toolitem action='SpiralExpansionAction' />" - " <toolitem action='SpiralT0Action' />" - " <separator />" - " <toolitem action='SpiralResetAction' />" - " </toolbar>" - - " <toolbar name='PenToolbar'>" - " <toolitem action='FreehandModeActionPen' />" - " <separator />" - " <toolitem action='SetPenShapeAction'/>" - " </toolbar>" - - " <toolbar name='PencilToolbar'>" - " <toolitem action='FreehandModeActionPencil' />" - " <separator />" - " <toolitem action='PencilToleranceAction' />" - " <toolitem action='PencilLpeSimplify' />" - " <toolitem action='PencilLpeSimplifyFlatten' />" - " <separator />" - " <toolitem action='PencilResetAction' />" - " <separator />" - " <toolitem action='SetPencilShapeAction'/>" - " </toolbar>" - - " <toolbar name='CalligraphyToolbar'>" - " <separator />" - " <toolitem action='SetProfileAction'/>" - " <toolitem action='ProfileEditAction'/>" - " <separator />" - " <toolitem action='CalligraphyWidthAction' />" - " <toolitem action='PressureAction' />" - " <toolitem action='TraceAction' />" - " <toolitem action='ThinningAction' />" - " <separator />" - " <toolitem action='AngleAction' />" - " <toolitem action='TiltAction' />" - " <toolitem action='FixationAction' />" - " <separator />" - " <toolitem action='CapRoundingAction' />" - " <separator />" - " <toolitem action='TremorAction' />" - " <toolitem action='WiggleAction' />" - " <toolitem action='MassAction' />" - " <separator />" - " </toolbar>" - - " <toolbar name='ArcToolbar'>" - " <toolitem action='ArcStateAction' />" - " <separator />" - " <toolitem action='ArcStartAction' />" - " <toolitem action='ArcEndAction' />" - " <separator />" - " <toolitem action='ArcOpenAction' />" - " <separator />" - " <toolitem action='ArcResetAction' />" - " <separator />" - " </toolbar>" - -#if HAVE_POTRACE - " <toolbar name='PaintbucketToolbar'>" - " <toolitem action='ChannelsAction' />" - " <separator />" - " <toolitem action='ThresholdAction' />" - " <separator />" - " <toolitem action='OffsetAction' />" - " <toolitem action='PaintbucketUnitsAction' />" - " <separator />" - " <toolitem action='AutoGapAction' />" - " <separator />" - " <toolitem action='PaintbucketResetAction' />" - " </toolbar>" -#endif - - " <toolbar name='EraserToolbar'>" - " <toolitem action='EraserModeAction' />" - " <separator />" - " <toolitem action='EraserWidthAction' />" - " <toolitem action='EraserPressureAction' />" - " <separator />" - " <toolitem action='EraserThinningAction' />" - " <separator />" - " <toolitem action='EraserCapRoundingAction' />" - " <separator />" - " <toolitem action='EraserTremorAction' />" - " <separator />" - " <toolitem action='EraserMassAction' />" - " <separator />" - " <toolitem action='EraserBreakAppart' />" - " </toolbar>" - - " <toolbar name='TextToolbar'>" - " <toolitem action='TextFontFamilyAction' />" - " <toolitem action='TextFontStyleAction' />" - " <separator />" - " <toolitem action='TextOuterStyleAction' />" - " <toolitem action='TextFontSizeAction' />" - " <toolitem action='TextLineHeightAction' />" - " <toolitem action='TextLineHeightUnitsAction' />" - " <toolitem action='TextLineHeightUnsetAction' />" - " <separator />" - " <toolitem action='TextAlignAction' />" - " <separator />" - " <toolitem action='TextSuperscriptAction' />" - " <toolitem action='TextSubscriptAction' />" - " <separator />" - " <toolitem action='TextLetterSpacingAction' />" - " <toolitem action='TextWordSpacingAction' />" - " <toolitem action='TextDxAction' />" - " <toolitem action='TextDyAction' />" - " <toolitem action='TextRotationAction' />" - " <separator />" - " <toolitem action='TextWritingModeAction' />" - " <separator />" - " <toolitem action='TextOrientationAction' />" - " <separator />" - " <toolitem action='TextDirectionAction' />" - " </toolbar>" - - " <toolbar name='LPEToolToolbar'>" - " <toolitem action='LPEToolModeAction' />" - " <separator />" - " <toolitem action='LPEShowBBoxAction' />" - " <toolitem action='LPEBBoxFromSelectionAction' />" - " <separator />" - " <toolitem action='LPELineSegmentAction' />" - " <separator />" - " <toolitem action='LPEMeasuringAction' />" - " <toolitem action='LPEToolUnitsAction' />" - " <separator />" - " <toolitem action='LPEOpenLPEDialogAction' />" - " </toolbar>" - - " <toolbar name='GradientToolbar'>" - " <toolitem action='GradientNewTypeAction' />" - " <toolitem action='GradientNewFillStrokeAction' />" - " <separator />" - " <toolitem action='GradientSelectGradientAction' />" - " <toolitem action='GradientEditLinkAction' />" - " <toolitem action='GradientEditReverseAction' />" - " <toolitem action='GradientSelectRepeatAction' />" - " <separator />" - " <toolitem action='GradientEditStopsAction' />" - " <toolitem action='GradientEditOffsetAction' />" - " <toolitem action='GradientEditAddAction' />" - " <toolitem action='GradientEditDeleteAction' />" - " </toolbar>" - - " <toolbar name='MeshToolbar'>" - " <toolitem action='MeshNewTypeAction' />" - " <toolitem action='MeshNewFillStrokeAction' />" - " <toolitem action='MeshRowAction' />" - " <toolitem action='MeshColumnAction' />" - " <separator />" -// " <toolitem action='MeshEditFillAction' />" -// " <toolitem action='MeshEditStrokeAction' />" -// " <toolitem action='MeshShowHandlesAction' />" - " <toolitem action='MeshToggleSidesAction' />" - " <toolitem action='MeshMakeEllipticalAction' />" - " <toolitem action='MeshPickColorsAction' />" - " <toolitem action='MeshFitInBoundingBoxAction' />" - " <separator />" - " <toolitem action='MeshShowHandlesAction' />" - " <toolitem action='MeshEditFillAction' />" - " <toolitem action='MeshEditStrokeAction' />" - " <separator />" - " <toolitem action='MeshWarningAction' />" - " <separator />" - " <toolitem action='MeshSmoothAction' />" - " </toolbar>" - - " <toolbar name='DropperToolbar'>" - " <toolitem action='DropperOpacityAction' />" - " <toolitem action='DropperPickAlphaAction' />" - " <toolitem action='DropperSetAlphaAction' />" - " </toolbar>" - - " <toolbar name='ConnectorToolbar'>" - " <toolitem action='ConnectorAvoidAction' />" - " <toolitem action='ConnectorIgnoreAction' />" - " <toolitem action='ConnectorOrthogonalAction' />" - " <toolitem action='ConnectorCurvatureAction' />" - " <toolitem action='ConnectorSpacingAction' />" - " <toolitem action='ConnectorGraphAction' />" - " <toolitem action='ConnectorLengthAction' />" - " <toolitem action='ConnectorDirectedAction' />" - " <toolitem action='ConnectorOverlapAction' />" - " </toolbar>" - - "</ui>" -; static Glib::RefPtr<Gtk::ActionGroup> create_or_fetch_actions( SPDesktop* desktop ); @@ -995,6 +619,12 @@ static Glib::RefPtr<Gtk::ActionGroup> create_or_fetch_actions( SPDesktop* deskto if ( i == 0 ) { va->set_active(true); } + } else { + // This creates a blank action using the data_name, this can replace + // tools that have been disabled by compile time options. + Glib::RefPtr<Gtk::Action> act = Gtk::Action::create(Glib::ustring(tools[i].data_name)); + act->set_sensitive(false); + mainActions->add(act); } } } @@ -1196,7 +826,7 @@ void ToolboxFactory::setToolboxDesktop(GtkWidget *toolbox, SPDesktop *desktop) static void setupToolboxCommon( GtkWidget *toolbox, SPDesktop *desktop, - gchar const *descr, + gchar const *ui_file, gchar const* toolbarName, gchar const* sizePref ) { @@ -1204,12 +834,19 @@ static void setupToolboxCommon( GtkWidget *toolbox, Inkscape::Preferences *prefs = Inkscape::Preferences::get(); GtkUIManager* mgr = gtk_ui_manager_new(); - GError* errVal = 0; + GError* err = 0; GtkOrientation orientation = GTK_ORIENTATION_HORIZONTAL; gtk_ui_manager_insert_action_group( mgr, mainActions->gobj(), 0 ); - gtk_ui_manager_add_ui_from_string( mgr, descr, -1, &errVal ); + + char const *filename = get_filename(UI, ui_file); + gtk_ui_manager_add_ui_from_file( mgr, filename, &err ); + if(err) { + g_warning("Failed to load %s: %s", filename, err->message); + g_error_free(err); + return; + } GtkWidget* toolBar = gtk_ui_manager_get_widget( mgr, toolbarName ); if ( prefs->getBool("/toolbox/icononly", true) ) { @@ -1313,57 +950,10 @@ void ToolboxFactory::setOrientation(GtkWidget* toolbox, GtkOrientation orientati void setup_tool_toolbox(GtkWidget *toolbox, SPDesktop *desktop) { - gchar const * descr = - "<ui>" - " <toolbar name='ToolToolbar'>" - - " <!-- Basics -->" - " <toolitem action='ToolSelector' />" - " <toolitem action='ToolNode' />" - " <toolitem action='ToolTweak' />" - " <toolitem action='ToolZoom' />" - " <toolitem action='ToolMeasure' />" - - " <!-- Shapes -->" - " <toolitem action='ToolRect' />" - " <toolitem action='Tool3DBox' />" - " <toolitem action='ToolArc' />" - " <toolitem action='ToolStar' />" - " <toolitem action='ToolSpiral' />" - - " <!-- Paths -->" - " <toolitem action='ToolPencil' />" - " <toolitem action='ToolPen' />" - " <toolitem action='ToolCalligraphic' />" - - " <!-- Text -->" - " <toolitem action='ToolText' />" - - " <!-- Paint large areas -->" - " <toolitem action='ToolSpray' />" - " <toolitem action='ToolEraser' />" - -#if HAVE_POTRACE - " <!-- Fill -->" - " <toolitem action='ToolPaintBucket' />" -#endif - - " <toolitem action='ToolGradient' />" -#ifdef WITH_MESH - " <toolitem action='ToolMesh' />" -#endif - " <toolitem action='ToolDropper' />" - - " <toolitem action='ToolConnector' />" -#ifdef WITH_LPETOOL - " <toolitem action='ToolLPETool' />" -#endif - " </toolbar>" - "</ui>"; - - setupToolboxCommon( toolbox, desktop, descr, - "/ui/ToolToolbar", - "/toolbox/tools/small"); + setupToolboxCommon( toolbox, desktop, + "tool-toolbar.ui", + "/ui/ToolToolbar", + "/toolbox/tools/small"); } void update_tool_toolbox( SPDesktop *desktop, ToolBase *eventcontext, GtkWidget * /*toolbox*/ ) @@ -1391,9 +981,16 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) GtkSizeGroup* grouper = gtk_size_group_new( GTK_SIZE_GROUP_BOTH ); Glib::RefPtr<Gtk::ActionGroup> mainActions = create_or_fetch_actions( desktop ); GtkUIManager* mgr = gtk_ui_manager_new(); - GError* errVal = 0; + GError *err = 0; gtk_ui_manager_insert_action_group( mgr, mainActions->gobj(), 0 ); - gtk_ui_manager_add_ui_from_string( mgr, ui_descr, -1, &errVal ); + + char const *filename = get_filename(UI, "select-toolbar.ui"); + guint ret = gtk_ui_manager_add_ui_from_file(mgr, filename, &err); + if(err) { + g_warning("Failed to load aux toolbar %s: %s", filename, err->message); + g_error_free(err); + return; + } std::map<std::string, GtkWidget*> dataHolders; @@ -1494,49 +1091,10 @@ void update_aux_toolbox(SPDesktop * /*desktop*/, ToolBase *eventcontext, GtkWidg void setup_commands_toolbox(GtkWidget *toolbox, SPDesktop *desktop) { - gchar const * descr = - "<ui>" - " <toolbar name='CommandsToolbar'>" - " <toolitem action='FileNew' />" - " <toolitem action='FileOpen' />" - " <toolitem action='FileSave' />" - " <toolitem action='FilePrint' />" - " <separator />" - " <toolitem action='FileImport' />" - " <toolitem action='DialogExport' />" - " <separator />" - " <toolitem action='EditUndo' />" - " <toolitem action='EditRedo' />" - " <separator />" - " <toolitem action='EditCopy' />" - " <toolitem action='EditCut' />" - " <toolitem action='EditPaste' />" - " <separator />" - " <toolitem action='ZoomSelection' />" - " <toolitem action='ZoomDrawing' />" - " <toolitem action='ZoomPage' />" - " <separator />" - " <toolitem action='EditDuplicate' />" - " <toolitem action='EditClone' />" - " <toolitem action='EditUnlinkClone' />" - " <separator />" - " <toolitem action='SelectionGroup' />" - " <toolitem action='SelectionUnGroup' />" - " <separator />" - " <toolitem action='DialogFillStroke' />" - " <toolitem action='DialogText' />" - " <toolitem action='DialogLayers' />" - " <toolitem action='DialogXMLEditor' />" - " <toolitem action='DialogAlignDistribute' />" - " <separator />" - " <toolitem action='DialogDocumentProperties' />" - " <toolitem action='DialogPreferences' />" - " </toolbar>" - "</ui>"; - - setupToolboxCommon( toolbox, desktop, descr, - "/ui/CommandsToolbar", - "/toolbox/small" ); + setupToolboxCommon( toolbox, desktop, + "commands-toolbar.ui", + "/ui/CommandsToolbar", + "/toolbox/small" ); } void update_commands_toolbox(SPDesktop * /*desktop*/, ToolBase * /*eventcontext*/, GtkWidget * /*toolbox*/) @@ -1672,36 +1230,6 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop) { Glib::RefPtr<Gtk::ActionGroup> mainActions = create_or_fetch_actions(desktop); - gchar const * descr = - "<ui>" - " <toolbar name='SnapToolbar'>" - " <toolitem action='ToggleSnapGlobal' />" - " <separator />" - " <toolitem action='ToggleSnapFromBBoxCorner' />" - " <toolitem action='ToggleSnapToBBoxPath' />" - " <toolitem action='ToggleSnapToBBoxNode' />" - " <toolitem action='ToggleSnapToFromBBoxEdgeMidpoints' />" - " <toolitem action='ToggleSnapToFromBBoxCenters' />" - " <separator />" - " <toolitem action='ToggleSnapFromNode' />" - " <toolitem action='ToggleSnapToItemPath' />" - " <toolitem action='ToggleSnapToPathIntersections' />" - " <toolitem action='ToggleSnapToItemNode' />" - " <toolitem action='ToggleSnapToSmoothNodes' />" - " <toolitem action='ToggleSnapToFromLineMidpoints' />" - " <separator />" - " <toolitem action='ToggleSnapFromOthers' />" - " <toolitem action='ToggleSnapToFromObjectCenters' />" - " <toolitem action='ToggleSnapToFromRotationCenter' />" - " <toolitem action='ToggleSnapToFromTextBaseline' />" - " <separator />" - " <toolitem action='ToggleSnapToPageBorder' />" - " <toolitem action='ToggleSnapToGrids' />" - " <toolitem action='ToggleSnapToGuides' />" - //" <toolitem action='ToggleSnapToGridGuideIntersections' />" - " </toolbar>" - "</ui>"; - Inkscape::IconSize secondarySize = ToolboxFactory::prefToSize("/toolbox/secondary", 1); { @@ -1880,9 +1408,10 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop) g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_snap_callback), toolbox ); } - setupToolboxCommon( toolbox, desktop, descr, - "/ui/SnapToolbar", - "/toolbox/secondary" ); + setupToolboxCommon( toolbox, desktop, + "snap-toolbar.ui", + "/ui/SnapToolbar", + "/toolbox/secondary" ); } Glib::ustring ToolboxFactory::getToolboxName(GtkWidget* toolbox) |
