From: pabs Date: Mon, 3 Mar 2008 05:21:21 +0000 (+0000) Subject: Release 0.61.08 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=79fcd5b32f0accf9f1d13f9b6ded0d628e6f4b33;p=synfig.git Release 0.61.08 git-svn-id: http://svn.voria.com/code@1850 1f10aa63-cdf2-0310-b900-c93c546f37ac --- diff --git a/synfig-studio/tags/0.61.08/AUTHORS b/synfig-studio/tags/0.61.08/AUTHORS new file mode 100644 index 0000000..94271a4 --- /dev/null +++ b/synfig-studio/tags/0.61.08/AUTHORS @@ -0,0 +1,31 @@ +Developers: + +Robert B. Quattlebaum Jr (darco) +Adrian Bentley + +Contributors: + +Paul Wise (pabs) +Chris Moore (dooglus) +Yue Shi Lai +Douglas Lau +Miguel Gea Milvaques +David Roden (Bombe) +Dmitriy Pomerantsev (Atrus) +Adrian Winchell (SnapSilverlight) +Andreas Jochens +Chris Norman (pixelgeek) +Timo Paulssen (timonator) +IL'dar AKHmetgaleev (AkhIL) +Gerald Young (Yoyobuae) + +Translators: + +Français: Aurore D (rore) +Español: Carlos López González (genete) + +Artists: + +Chris Norman (pixelgeek) +Carlos López González (genete) +Aurore D (rore) diff --git a/synfig-studio/tags/0.61.08/ChangeLog.old b/synfig-studio/tags/0.61.08/ChangeLog.old new file mode 100644 index 0000000..7ce32e4 --- /dev/null +++ b/synfig-studio/tags/0.61.08/ChangeLog.old @@ -0,0 +1,342 @@ +2005-11-26 Robert Quattlebaum + * src/gtkmm/layertreestore.cpp: Fixed bug which caused crash on DND layer move + +2005-11-03 Robert Quattlebaum + * src/gtkmm/render.cpp: Fixed default render file to use the directory seperator for the given OS, rather than just use forward slashes all the time. + +2004-04-26 (darco): Delete button now deletes layers +2004-04-21 (darco): Various improvements to the dock/dialog system +2004-04-19 (adruab): Added Zoom out to the zoom tool using the Ctrl key +2004-04-16 (adruab): Added basic zoom tool +2004-04-15 (darco): Added meta data stuff to properties dialog +2004-04-12 (darco): Dockable Dialog madness! +2004-04-08 (darco): Changed "Select All Ducks" from CTRL-F to CTRL-G +2004-04-08 (darco): Added search capability to layer tree. (Ctrl-F) +2004-04-08 (darco): The order of the layers is now accurate for a given moment in time +2004-04-07 (darco): Foldy... Powers? +2004-04-07 (darco): Added the length field to keyframe tab +2004-04-02 (adruab): Added a preview thing... it's cool +2004-04-02 (darco): The rulers now adhere to the default unit system +2004-04-02 (darco): Improved defaults display +2004-04-01 (darco): Different units now supported +2004-03-31 (darco): Tweaks now preserved! +2004-03-30 (darco): Checkerboard pattern now used to convey alpha +2004-03-30 (darco): got rid of stupid negative zero thing in color selection dialog +2004-03-30 (darco): Adjustments to color dialog to reduce crashes (hopefully) +2004-03-30 (darco): Changed default frame rate from 30 to 24 FPS +2004-03-30 (darco): Fixed keyframe weirdness +2004-03-25 (darco): fixed the zillion dialog box bug +2004-03-25 (darco): Minor improvements to parameter view +2004-03-25 (darco): Added "Select all children" option for layers +2004-03-24 (darco): Added hack to make connecting and disconnecting BLinePoints(vertices) easier +2004-03-22 (darco): Improved grid snap +2004-03-18 (darco): You can now rotate the order of the items in a list! +2004-03-17 (darco): Linking! +2004-03-16 (darco): You can now rename layers with a single click +2004-03-16 (darco): You can now edit parameters even when you have multiple layers selected (Useful!) +2004-03-15 (darco): Added the ability to jump around on the history tab +2004-03-15 (darco): You can now right-click on ducks to edit waypoints! Group selection even! +2004-03-08 (darco): Improved vertex addition/removal +2004-03-05 (darco): Fixed weird tangent bug in BLine tool +2004-03-05 (darco): You can now change all of the waypoints in a keyframe rather easily by right clicking on the keyframe in the keyframe tab and selecting "Properties". +2004-03-05 (darco): Keyframe manipulation now much faster +2004-03-04 (darco): BLine tool will now automaticly create if you leave the tool with something in it +2004-03-04 (darco): You can now close polygons in the polygon tool by clicking on the first point in the polygon +2004-03-04 (darco): Improved grid snap stuff +2004-03-02 (darco): Fixed weird selection box when using fill tool +2004-03-02 (darco): Fixed crash on undo stroke from sketch tool +2004-03-02 (darco): Added Rotate Tool +2004-03-02 (darco): Improved the performance of the duck manipulation tools +2004-03-01 (darco): minor adjustment for deleting waypoints +2004-03-01 (darco): Fixed a crash bug on waypoint manipulation +2004-02-20 (darco): Changed the way the BLine tool operates +2004-02-20 (darco): Added "Clear History" button to the "history" tab +2004-02-18 (darco): Added palette dialog +2004-02-18 (darco): Menus no longer activate the first item in the menu when you click to open it +2004-02-16 (darco): slight improvement to the way gradients are handled +2004-02-16 (darco): Added "Apply Deafult Gradient" action for gradient parameters. (just right click on them) +2004-02-16 (darco): The mouse pointer will now change depending on the currently selected tool. +2004-02-16 (darco): Moved icons around +2004-02-16 (darco): File selection dialog box now remembers previous path +2004-02-13 (darco): Added box select +2004-02-12 (darco): Added Scale tool! +2004-02-12 (darco): Added SmoothMove tool! +2004-02-11 (darco): You can now drag sketch files into canvases to load the sketch +2004-02-11 (adruab): Added rect tool and futzed with the tool options for the draw tool. +2004-02-11 (darco) : Fixed crash-on-exit bug +2004-02-11 (darco) : Added "File->Revert" menu option +2004-02-10 (darco) : Crash on "CVS-Update" bug fixed +2004-02-10 (darco) : Fixed layer-click problem after using the gradient tool +2004-02-10 (darco) : Added "Grab" button +2004-02-10 (darco) : Draw, Gradient, and BLine tool now add layers "in place" +2004-02-09 (darco) : Added preliminary gradient support +2004-02-09 (darco) : Added "CTRL-D" to unselect all layers +2004-02-09 (darco) : Added feather option to the draw and bline tools. +2004-02-09 (darco) : Polygon tool is now implemented correctly +2004-02-09 (darco) : Increased the size of the "One moment please..." font. +2004-02-09 (darco) : Negative color values are now clamped off. +2004-02-07 (darco) : Auto recovery now no longer saves the recovery files in the same directory, which should lead to a more tidy filesystem. +2004-02-06 (darco) : You can now move multiple layers at once +2004-02-06 (darco) : Layer heirarchies are now less likely to collapse when moving layers. +2004-02-06 (darco) : Raising multiple layers at the same time now works correctly +2004-02-06 (darco) : Encapsulating no longer puts the encapsulated layer at the top +2004-02-06 (darco) : Gradient previews are now antialiased +2004-02-06 (darco) : Fixed odd positioning of dialogs +2004-02-06 (darco) : Changed the BLine tool to have a more consistant user interface +2004-02-05 (darco) : Fixed a bug in the text layer regarding the size duck +2004-01-27 (darco) : Strokes in the draw tool should now draw better and undo better. +2004-01-27 (darco) : Added "fill last stroke" button to draw tool options +2004-01-27 (darco) : Auto crash-recovery feature now implemented! +2004-01-27 (darco) : Canvas should now only redraw when a value is truly changed. (ie: just opening a parameter and not changing it will now no longer force a redraw, or add a new action) +2004-01-24 (darco) : Improved consistancy of tool options dialog when working with several canvases at the same time +2004-01-24 (darco) : Fixed a bug with loading sketches where the loaded sketch would dissapear. +2004-01-23 (darco) : Fixed width duck size bug +2004-01-23 (darco) : Improved existing icons +2004-01-23 (darco) : Added new icons +2004-01-23 (darco) : Fixed bug where studio would ask you to commit file not in repository or sandbox +2004-01-22 (darco) : Initial version of the split layer tab +2004-01-21 (darco) : Changed the "default width" to "0.01" and the default increment to "0.005" +2004-01-21 (darco) : SINFG Studio will now ask you to commit your file to CVS upon exit if you haven't already. +2004-01-21 (darco) : Fixed bug where the color sliders in the gradient editor didn't work. +2004-01-21 (darco) : You can now load and save sketches +2004-01-19 (darco) : Minor fix for remembering settings +2004-01-19 (darco) : Added "Auto Loop" and "Auto Connect" toggles to the tool options for the draw tool. +2004-01-19 (darco) : Tool options for the draw tool are now retained between sessions. Tool options can also be customized for specific input devices.(that last part may be slightly buggy) +2004-01-19 (darco) : Added a "show sketch" toggle to the tool options for the scribble tool. This allows you to temporarily hide the sketch. +2004-01-19 (darco) : changed default grid size from 0.2,0.2 to 0.25,0.25 +2004-01-17 (darco) : Individual input devices should now remember their associated settings +2004-01-17 (darco) : Dialogs should now remember their positions +2004-01-17 (darco) : Added some tool options for draw tool +2004-01-16 (darco) : Tool Options dialog has been implemented. Currently the only tool that supports it is the sketch tool +2004-01-16 (darco) : You can now clear the sketch area via the tool options dialog when the sketch tool is selected +2004-01-16 (darco) : Changes in the color dialog are now immediately reflected in whatever is in context. (As opposed to having to always hit "apply") +2004-01-16 (darco) : Sketch tool is now persistant. Still needs some work--as it stands, you can't undo or turn off the sketch without closing the file and opening it up again. +2004-01-15 (darco) : Added preliminary version of the sketch tool. This version doesn't suport colors, or persist across different tools yet. This support is on the way. +2004-01-15 (darco) : Renamed tools +2004-01-14 (darco) : Updates for supporting new BLines +2004-01-14 (darco) : Import tool now respects the width and height of a bitmap when placing it +2004-01-13 (darco) : Added support for multiple-line strings (for layers such as the Text layer) +2004-01-13 (darco) : Added low-resolution mode to work area to speed up render times. You can toggle it on and off via the View->ToggleLow-Res menu item. (Low-res mode is ON by default) +2004-01-09 (darco) : drawing onto the start or end of an existing BLine will now extend it rather than creating a new BLine +2004-01-09 (darco) : You can now delete canvases from the canvas browser. +2004-01-07 (adruab) : Pen sample grouping, gets rid of small errors in line, but also tends to cause breaking to occur at lower curvatures than it should +2004-01-06 (darco) : Preliminary support for creating regions now implemented. It is EXTREMELY buggy, but it gives you an idea of what you can do with it. +2004-01-06 (darco) : I fixed an error that is probably the source for many of the random crashes that seem to occur. +2004-01-05 (darco) : Individual input devices (mouse, wacom tablet, etc) will now remember their associated tool, color, and BLine width. These settings are not yet saved on program exit--this will be implemented in the future. +2004-01-05 (darco) : You can now adjust the default BLine size by directly clicking up the upper or lower part of the BLine size indicator. +2004-01-05 (darco) : You can now draw looped blines in the sketch tool. +2004-01-02 (adruab) : Fixed weird reversing tangents bug +2004-01-01 (adruab) : Added tangent breaking to the curve input tool (first post of 2004 :P) +2003-12-28 (adruab) : Fixed the dumb adaptive tesselator, and put pressure sensitivity back in +2003-12-28 (adruab) : Finished the "dumb" adaptive curve tesselator (-bugs) +2003-12-28 (darco) : Added physical dimensions to properties and render dialogs +2003-12-24 (darco) : The clicking-too-fast bug should be fixed +2003-12-24 (darco) : Added Fill Tool +2003-12-23 (darco) : Preliminary support for automatic vertex connection when scribbiling in the new rotoscope tool +2003-12-19 (darco) : Fix for last vertex width being wrong when drawing +2003-12-18 (darco) : The zero-tangent bug with the new rotoscope should also be fixed +2003-12-18 (darco) : Tangent handles are now turned off when rotoscoping +2003-12-18 (darco) : Improved pressure sensitivity. +2003-12-18 (darco) : Pressure sensitivity... :) +2003-12-18 (darco) : Preliminary tablet support now implemented +2003-12-17 (darco) : A handful of under-the-hood tweaks that should make using the program a tad more friendly. +2003-12-17 (darco) : Improvements to the new rotoscope +2003-12-17 (darco) : Creating a new layer will now insert it at the depth of the currently selected layer +2003-12-03 (darco) : The place-holder for the new rotoscope now creates blines +2003-12-03 (darco) : Fixed minor bug with disconnecting value nodes +2003-12-02 (darco) : Improved about dialog graphic +2003-12-02 (darco) : When you open a really big canvas, it is now auto-zoomed out to fit the window. +2003-12-01 (darco) : Tool buttons can now show you which tool is currently active. +2003-11-29 (darco) : Changed default aspect ratio of new composition from 4:3 to 16:9 +2003-11-29 (darco) : Changed default resolution of new composition from 75dpi to 72dpi +2003-11-29 (darco) : Added locks&links to properties dialog. +2003-11-29 (darco) : Converted resolution in Properties from Dots-per-meter to Dots-per-inch +2003-11-29 (darco) : Added stub for new rotoscope tool. It doesn't do much at the moment other than let you temporarily draw over the window. +2003-11-25 (darco) : Removed the useless red-blue selection +2003-11-18 (darco) : Fixed weird crash-bug when importing compositions +2003-11-13 (darco) : Fixed bug where encapsulating might re-order the layers +2003-11-12 (darco) : Opening a new large composition will no longer result in un-weildly large canvas windows. +2003-11-12 (darco) : Improved all of the CVS command. +2003-11-12 (darco) : "CVS Add" will no longer ask you for a log entry. You enter the log entry when you "commit" +2003-11-12 (darco) : Using "saveas" will now append ".sif" to the filename if you didn't specify an extension. +2003-11-10 (darco) : The default value increment/decrement for the Waypoint Dialog has been changed from 1.0(which is fairly useless) to 0.1. (This is mostly for the TCB controls) +2003-11-10 (darco) : Ducks now (for the most part) are always accurate with respect to what they are visually representing. They are now context-sensitive. :) +2003-11-06 (darco) : You can now import other SINFG compositions in the exact same way you would import any other image. +2003-11-06 (darco) : Added "remove" to waypoint right-click menu. +2003-11-05 (darco) : Fixed a refresh bug with the time window and the children tab +2003-11-05 (darco) : Added the ability to duplicate waypoints +2003-10-31 (darco) : Grid snap now works again +2003-10-31 (darco) : Added "Jump" column to keyframe tab +2003-10-31 (darco) : MUCH IMPROVED support for selecting and moving multiple ducks +2003-10-30 (darco) : Preliminary support for selecting and moving multiple ducks +2003-10-28 (darco) : Fixed CVS-MODIFIED bug due to daylight-saving time +2003-10-22 (darco) : Added some CVS features (Although their usefulness is limited in windows) +2003-10-22 (darco) : Fixed some weirdness with undo/redo/refresh +2003-10-21 (darco) : Fixed some rotoscope weirdness +2003-10-21 (darco) : Minor improvement for confusing behavior of progress bar when rendering +2003-10-21 (darco) : A dialog box will now pop up whenever it is unable to open a composition +2003-10-21 (darco) : Added placeholders for icons +2003-10-21 (darco) : Fixed most (all?) of the crazy Gtk/Glib errors. +2003-10-19 (darco) : Fixed a bug where the "Use Current Frame" option in the Render Dialog was not being checked properly (meaning you couldn't render animatons) +2003-10-15 (darco) : Added eyedrop tool icon +2003-10-15 (darco) : Improved scrolling of work area +2003-10-15 (darco) : Added Eyedrop tool +2003-10-11 (darco) : Changed default undo/redo behavior to NOT clear the "redo" stack when a new action is performed. (the previous action was to clear the redo stack) +2003-10-11 (darco) : Fixed some weirdness with the children tab +2003-10-11 (darco) : Several speed improvements for the tables. This will greatly speed up loading files, editing values, and adjustments to keyframes. +2003-10-10 (darco) : The "Zoom to 100%" feature can now be accessed by pressing the "`" key. (This is the that has the "~" on it) +2003-10-10 (darco) : The "Zoom to 100%" feature will not "toggle", meaning that if you are alreay at a "100%" zoom level, then it will return to the previous zoom amount. +2003-10-08 (darco) : Fixed first/last point on looped bline not being splitable from the work area duck. +2003-10-07 (darco) : Fixed weird idle->rendering->idle->rendering switching bug +2003-10-07 (darco) : Added blend_method option to layer tab +2003-10-07 (darco) : Added amount slider to Layer tab +2003-10-07 (darco) : Layers are now categorized +2003-10-06 (darco) : Added red-blue gamma adjustment to setup dialog +2003-10-06 (darco) : Implemented Image Import Tool. (CTRL-I) +2003-10-06 (darco) : The Ducks in the Work Area are now more percisely placed. (Especially obvious for radiuses) +2003-10-06 (darco) : Implemented adjustable default BLine width. To adjust it, use the scroll wheel on your mouse. +2003-10-06 (darco) : Fixed bug where changing parameters may not always refresh the work area. (AGAIN) +2003-10-06 (darco) : Fixed dragging-layer-into-inline-canvas crash bug. +2003-10-06 (darco) : Removed activepoint-specific actions for non-animated canvases +2003-10-04 (darco) : Fixed bug where when dragging a layer below it ends up being one off. +2003-10-04 (darco) : Added button to toolbox for quickly displaying the color dialog +2003-10-04 (darco) : Fixed some minor consistancy issues regarding the layer tab. (ie: disconnections not being visible...) +2003-10-04 (darco) : You can now sort the ValueNodes in the Children tab +2003-10-04 (darco) : Fixed bug where changing parameters may not always refresh the work area. +2003-10-04 (darco) : Hopefuly fixed "dissapearing new layer menu" bug +2003-10-03 (darco) : Preliminary support for editing layer descriptions +2003-09-30 (darco) : Changing a canvas parameter now no longer requires you to click elsewhere before it takes effect. +2003-09-30 (darco) : Changing an Enum parameter now no longer requires you to click elsewhere before it takes effect. +2003-09-30 (darco) : The Keyframe tab and the TimeTrack columns are now hidden when the canvas's start and end times are equal (ie: if it isn't animated) +2003-09-30 (darco) : Added hotkey for toggling grid snap -- CONTROL-L +2003-09-30 (darco) : Added hotkey for toggling the grid -- CONTROL-G +2003-09-30 (darco) : Right clicking on the default colors (in the toolbox) will swap the FG and BG colors. +2003-09-30 (darco) : Right clicking on the default gradient (in the toolbox) will revert it back to being the FG->BG gradient. +2003-09-30 (darco) : Added several keyboard accelerators. F8="Properties Dialog", F9="Render", F12="Options" +2003-09-30 (darco) : Added "SaveAs..." to CanvasView "File" menu. +2003-09-30 (darco) : The "Escape" key is now bound to the stop button. +2003-09-30 (darco) : Added red-border visual queue for when we are in animate mode. +2003-09-30 (darco) : You can now right click on layers inside of the work area and raise/lower them +2003-09-30 (darco) : Added the ability to change the render quality of the work area. (View->PreviewQuality) +2003-09-30 (darco) : You can now loop/unloop BLines and DynamicLists by right clicking on them. +2003-09-30 (darco) : You can now halt rendering by pressing the stop button +2003-09-30 (darco) : Improved BLine editing via BLine Rotoscope tool. You now insert points by right clicking on the curve rather than the vertex. +2003-09-29 (darco) : Improved layer Drag-N-Drop +2003-09-25 (darco) : Layers can now be rearanged via Drag-N-Drop +2003-09-25 (darco) : The BLine Rotoscope tool now automaticly uses more reasonable tangents +2003-09-24 (darco) : You can now select layers from the work area that are inside inline canvases by just clicking on them. +2003-09-24 (darco) : Selecting a layer from the work area will now cause the layer tab to scroll to make that layer visible. +2003-09-24 (darco) : Improved in-line canvas editing (now it doesn't collapse ever time you make a change) +2003-09-24 (darco) : Fixed the bug where the canvas wouldn't refresh if values were edited too quickly +2003-09-24 (darco) : Added some icons to dynamicly generated menus +2003-09-24 (darco) : Added jump-to-(next/prev)-keyframe feature (Press '[' and ']') +2003-09-24 (darco) : Added time-zoom feature (Hold down shift and press '-' and '=') +2003-09-24 (darco) : Fixed lagging duck bug +2003-09-23 (darco) : Color editor will now intelegently clamp values if necessary +2003-09-23 (darco) : Added "selected color" box to color editing dialog +2003-09-23 (darco) : Implemented keyboard accelerators for zoom. (GIMP style -- '-' for zoom out and '=' for zoom in) +2003-09-23 (darco) : Implemented keyboard accelerators for Duck Hiding. (press ALT-1...6) +2003-09-23 (darco) : Angles can now be visually edited +2003-09-23 (darco) : Added "Split Tangents" action for BLinePoints +2003-09-23 (darco) : Added "Merge Tangents" action for BLinePoints +2003-09-23 (darco) : Added visual BLine width adjustment +2003-09-23 (darco) : Added smart dynamic list item remove and smart dynamic list item insert (works for BLines, too) +2003-09-22 (darco) : Implemented Duck Masking (see menu View->DuckMask from canvasview menu) +2003-09-22 (darco) : Implemented key accelerators in CanvasView... (eg: Ctrl-Z=Undo, Ctrl-S=Save, etc) +2003-09-22 (darco) : Added "Keyframe Lock" button +2003-09-17 (darco) : Added "Duplicate Keyframe" feature +2003-09-17 (darco) : Added "Remove Keyframe" feature +2003-09-17 (darco) : Finished SINFGApp re-write. +2003-09-05 (darco) : Added default foreground/background colors, as well as a default gradient. +2003-09-03 (darco) : Version Increment +2003-09-01 (darco) : If a given layer has a color parameter, then you can now edit the color of a layer by just selecting the layer and adjusting it's color in the color dialog. You can also adjust the color of all selected layers in this way. +2003-08-31 (darco) : Added color-selection dialog, improving the ease and intuitiveness of color selection. +2003-08-18 (darco) : Preliminary support for dynamic point removal. +2003-08-18 (darco) : Improved support for adding points dynamicly. +2003-08-14 (darco) : Preliminary support for animating the addition and removal of points +2003-08-12 (darco) : You can now right click on segments! To add a point ot a bline, right click on the segment where you want to add the point, and then select "add point". +2003-08-12 (darco) : You can now click on a layer in the work area and it will be selected. (Not yet supported for all layers) +2003-08-12 (darco) : Gradient editor now works. Right click on the gradient in the editor to display a menu for adding and removing CPoints. +2003-08-11 (darco) : You can now see ducks appear as you select children. This greatly improves the ability to edit and work with complex images. +2003-08-06 (darco) : The canvas browser is now hidden by default. When you first load a canvas, it will pop up automaticlly. +2003-08-06 (darco) : Added blacklevel test pattern to the gamma tab of the setup dialog. As with the other patterns, try to make the middle of the square match the outside of the square. The goal is to have the highest blacklevel setting where the blacklevel pattern looks solid black. +2003-08-06 (darco) : I am currently working on adding support for the color gradient editor. It isn't done yet, but if you double click on a gradient, you can bring up what will be the gradient editor. +2003-08-06 (darco) : Added "Visually Linear Color Selection" checkbox to the setup. This adjusts all color values that you see so that they are more linear in scale. The default is ON. +2003-08-05 (darco) : The "insert point" option in the rotoscope (bline) is being implemented. It currently only works for adding points to the start of the BLine. +2003-08-05 (darco) : The "delete point" option in the rotoscope (bline) now works. (Although, it seems to crash when you try to delete the most recent point. Investigating...) +2003-08-04 (darco) : The setup dialog now saves your changes to disk immediately. This makes is so that if the program crashes, then we don't loose our recently-updated changes +2003-08-04 (darco) : The setup dialog is now broken down into tabs. +2003-08-04 (darco) : Improved the speed of the gamma adjustments in the setup dialog. +2003-08-01 (darco) : Changes made to the setup dialog are now saved to disk, and will be automaticly reloaded upon restarting the program. +2003-08-01 (darco) : Setup dialog is now implemented, with visual gamma adjustments and the ability to choose the type of timestamp you want +2003-07-28 (darco) : Added gradients as viewable parameters. (the gradient editor isn't ready yet though) +2003-07-23 (darco) : Added buttons to the toolbar for poly and bline rotoscope +2003-07-21 (darco) : Faster window scrolling, and better tiling +2003-07-15 (darco) : For canvas parameters, you can now select canvases that are outside of the current canvas, even in other files +2003-07-14 (darco) : TCB controls now implemented +2003-05-22 (darco) : The time code in the canvas view work area will turn turn "red" if you are on a keyframe +2003-05-22 (darco) : Activepoint keyframe stuff was more broken than I realized, but it should work now.. +2003-05-22 (darco) : Activepoints can now be viewed in the track view. You can select them, but not much else. Red lines are "off" and green lines are "on" +2003-05-19 (darco) : Fixed a crashing bug that would sneak up while animating stuff. +2003-05-19 (darco) : Improved keyframe editing even more. +2003-05-08 (darco) : Improved keyframe editing. One step closer to "just working". *sigh* Ahh... Automagick... +2003-05-08 (darco) : Many, Many under the hood updates and cleanups +2003-04-27 (darco) : Adding a new layer now inserts it at the selected depth in the stack +2003-04-27 (darco) : Duplicating a layer now puts the clone layer next to the original layer +2003-04-24 (darco) : Preliminary support for keyframes/dope-sheet has now been implemented! +2003-04-23 (darco) : Fixed bug where new canvases would have weird time +2003-04-23 (darco) : You can now import image files into a canvas by dragging them onto the canvas window +2003-04-22 (darco) : Raising and lowering layers is now faster +2003-04-22 (darco) : Added some convenience buttons for raising and lowering the layers +2003-04-19 (darco) : Added timecode readout on keyframe view. (still rather non-functional) +2003-04-17 (darco) : PasteCanvas layers will now display the name of the canvas it is pasting instead of just "PasteCanvas" +2003-04-17 (darco) : You can now view and edit the contents of an inline canvas +2003-04-13 (darco) : Fixed crash bug when pressing render button on render dialog with empty filename +2003-04-13 (darco) : The render dialog now has a default file name. +2003-04-13 (darco) : On the Canvas Browser -- renamed "Undo/Redo" tab to "History" +2003-04-13 (darco) : The layer and children tables now do a better job of keeping in sync with the scene -- meaning that you don't have to hit "refresh" as often. +2003-04-13 (darco) : Fixed the bug where you could not see the polygon as you were rotoscoping it. +2003-04-11 (darco) : Fixed a bug in the time widget which would crash the program if you pressed "enter" and the de-focused it. +2003-04-11 (darco) : Start of significant under-the-hood updates +2003-04-11 (darco) : "Time Bar" now only appears when start time and end time are not equal. +2003-04-11 (darco) : Implemented the "move to top" and "move to bottom" +2003-04-07 (darco) : Changes to properties window of canvas is now undoable +2003-04-07 (darco) : Creation of Canvases is now undoable +2003-04-04 (darco) : Improved path rotoscope +2003-04-03 (darco) : Added "encapsulate" option to layer menu +2003-04-03 (darco) : All references to time now use the time code format. +2003-04-02 (darco) : Using the rotoscope tool to create a path is now WYSIWYG (Instead of just showing lines, you now see the curve and the control points) +2003-04-01 (darco) : Set the default frame-rate for new compositions to 30. +2003-03-31 (darco) : Tons of under-the-hood changes. +2003-03-31 (darco) : Added the ability to delete, raise, and lower items on a dynamic list +2003-03-31 (darco) : Added dialog box to path rotoscope +2003-03-26 (darco) : Removed the "ID" entrybox from the Canvas Properties when the canvas is root. +2003-03-26 (darco) : Set the default end-time for new compositions to ZERO. +2003-03-26 (darco) : Set the default frame-rate for new compositions to 15. +2003-03-22 (darco) : Added canvas options dialog +2003-03-22 (darco) : Added ability to adjust grid size + +2003-03-21 (darco) : Added "Delete" button to waypoint dialog + +2003-03-20 (darco) : Version Increment (0.60.03) +2003-03-20 (darco) : Added Waypoint dialog for editing waypoints + +2003-03-20 (darco) : Version Increment (0.60.02) +2003-03-20 (darco) : Names of DataNode parameters are now more readable +2003-03-20 (darco) : Removed "Rotoscope", added "Rotoscope Path" and "Rotoscope Poly" + +2003-03-19 (darco) : Added "Find" button to parameters that represent filenames + +2003-03-17 (darco) : Fixed a bug where the "Open Recent" list is reversed when restarting the program +2003-03-17 (darco) : Added an "Open Recent" option to the file menu on the toolbox. It remembers the last 10 files opened or saved. +2003-03-17 (darco) : Added target selection box to render dialog. +2003-03-17 (darco) : Added "Use current frame" checkbox to render dialog. + +2003-03-04 (darco) : Implemented Render Functionality. +2003-03-04 (darco) : Added support for "angle" type. +2003-03-04 (darco) : Deselecting a parameter-edit popup will now make it dissapear immediately, rather than after the refresh. + +2003-03-01 (darco) : The root canvas on a new composition is now clean, instead of having a mandelbrot set. + +2003-02-26 (darco) : Changed the file dialogs to use the native Win32 file open/save dialogs when built for Win32 rather than the nasty looking Gtk+ file dialogs. +2003-02-26 (darco) : Fixed Bug 0000007 (http://dev.sinfg.com/mantis/view_bug_page.php?f_id=0000007) diff --git a/synfig-studio/tags/0.61.08/Makefile.am b/synfig-studio/tags/0.61.08/Makefile.am new file mode 100644 index 0000000..5d017f6 --- /dev/null +++ b/synfig-studio/tags/0.61.08/Makefile.am @@ -0,0 +1,113 @@ +# $Id$ + +MAINTAINERCLEANFILES=COPYING INSTALL config/ltmain.sh doxygen.cfg config/config.guess config/config.sub config/ltmain.sh config/install-sh config/mkinstalldirs config/aclocal.m4 config/missing config/texinfo.tex config/depcomp aclocal.m4 config.h.in configure stamp-h.in Makefile.in config.log config.status .doc_stamp .DS_Store + +SUBDIRS=build_tools src images po + +EXTRA_DIST=COPYING TODO m4/subs.m4 doxygen.cfg.in doxygen.cfg macosxbuild.sh win32build.sh win32inst.nsi.in config/package config/depcomp m4/cxx_macros.m4 m4/ETL.m4 ChangeLog.old synfigstudio.xml.in synfigstudio-thumbnailer.schemas.in + +# Desktop entry +#desktopdir = $(datadir)/gnome/apps/Graphics +desktopdir = $(prefix)/share/applications +desktop_DATA = synfigstudio.desktop +#desktop_in_files = synfigstudio.desktop.in +#desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) + +# @INTLTOOL_DESKTOP_RULE@ + +mimedir = $(prefix)/share/mime-info +mime_DATA = synfigstudio.keys synfigstudio.mime + +# Icon +icondir = $(datadir)/pixmaps +icon_DATA = images/synfig_icon.png images/sif_icon.png + +ACLOCAL_AMFLAGS=-I m4 + +CVS=cvs +GREP=grep +PRINTF=printf +SH=sh +DOXYGEN=doxygen +#SVN_REPOSITORY=@SVN_REPOSITORY@ + +SVN=svn +TAG=@PACKAGE_TARNAME@_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@ + + +tagstable: + -$(SVN) delete $(SVN_REPOSITORY)/tags/stable -m "Stable Tag: Removing old tag" + $(SVN) copy $(top_srcdir) $(SVN_REPOSITORY)/tags/stable -m "Stable Tag: Copying everything over" + +tagrelease: + $(SVN) copy $(top_srcdir) $(SVN_REPOSITORY)/tags/$(TAG) -m "Release $(TAG)" + +ChangeLog: + -svn update + svn2cl --include-rev || touch ChangeLog + +stats: + -@echo + -@echo -- Stats + -@echo + -@$(PRINTF) "Total lines: " + -@wc -l $(shell find $(top_srcdir)/src -name '*.[ch]*' | $(GREP) -v libavcodec) | $(GREP) total + -@$(PRINTF) "Total size: " + -@du -hcs $(shell find $(top_srcdir)/src -name '*.[ch]*' | $(GREP) -v libavcodec) | $(GREP) total + -@echo + +#tagstable: +# $(CVS) tag -F stable + +#tagrelease: +# $(CVS) tag -F @PACKAGE_TARNAME@_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@ + +listfixmes: + -@echo + -@echo -- List of pending FIXMEs + -@echo + -@$(GREP) FIXME -n $(shell find $(top_srcdir) -name '*.[ch]*' | grep -v svn) + -@echo + +listhacks: + -@echo + -@echo -- List of pending HACKs + -@echo + -@$(GREP) HACK -n $(shell find $(top_srcdir) -name '*.[ch]*' | grep -v svn) + -@echo + +run: check + +.doc_stamp: doxygen.cfg + $(DOXYGEN) doxygen.cfg + touch .doc_stamp + +package-win32: all win32inst.nsi + convert images/installer_logo.png bmp3:images/installer_logo.bmp + make -C images sif_icon.ico synfig_icon.ico + grep -v -e 'installer_logo' -e 'sif_icon' images/images.nsh >images/images.nsh.tmp + grep -v -e 'installer_logo' -e 'sif_icon' images/unimages.nsh >images/unimages.nsh.tmp + mv -f images/images.nsh.tmp images/images.nsh + mv -f images/unimages.nsh.tmp images/unimages.nsh + makensis win32inst.nsi + +package-osx: all pkg-info/macosx/synfig-studio.info + [ -d pkg_root ] && $(RMDIR) pkg_root || true + convert images/installer_logo_osx.png $(srcdir)/pkg-info/macosx/studio-resources/background.tif + make install prefix="`pwd`/pkg_root" + $(srcdir)/config/package pkg_root pkg-info/macosx/synfig-studio.info -r $(srcdir)/pkg-info/macosx/studio-resources +if WIN32_PKG +package: package-win32 +else +if MACOSX_PKG +package: package-osx +endif +endif + +html: .doc_stamp + +rtf: .doc_stamp + +docs: pdf html + +.PHONY: stats tagstable tagrelease listfixmes listhacks check docs pdf html rtf diff --git a/synfig-studio/tags/0.61.08/NEWS b/synfig-studio/tags/0.61.08/NEWS new file mode 100644 index 0000000..ccc0de8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/NEWS @@ -0,0 +1,122 @@ + synfigstudio releases + +More detailed notes are available on the releases page: + +http://synfig.org/Releases + + 0.61.08 (SVN 1839) - March 3, 2008 - Bug fixes, features + + * Update the website URL to synfig.org instead of synfig.com + * Synfig is now translatable using gettext + * Removed the 'bootstrap' script for building. Use autoreconf instead + * Fixed errors and warnings detected by a pre-release version of GCC 4.3 + * Fixes to allow sigc++ 2.1 and newer to be used. + * Add a new bog-standard about dialog and a new splash screen + * Add a new icons for rename, encapsulate, show child layers and time + * Usability enhancements for new users, env vars to control them + * Improvements to the draw, bline and sketch tools + * Improvements for linking, quality menu, save dialog, render dialog + * Cut down on the console output and output a user-friendly message + * Don't wrap angles at 360 degrees, allows better rotations + * Settings for auto-backup interval, run everything in one thread + * Fix waypoint issues; drawing, menus, crash, label and others + * Fix time issues; time field expansion & editing, ticks and others + * Fix ducks issues; prioritise & restrict radius, show circle size, others + * Allow horizontal scrolling the time field and the default brush size + * Allow different pixel sizes in the workarea window + * Remember window locations and ignore corrupted values + * Widen the toolbox to 5 icons instead of 4 icons + * Tile renderer changes: disable with env var, fix wrong placing + * Improves the details in the history dialog quite a bit + * Fix typos, several crashes, usability and other issues + +0.61.07 (SVN 878) - October 10, 2007 - Bug fixes + + * Fix some tooltips and menu stuff (#1787437) + * Allow left-right scrolling in canvas window with shift + mouse-wheel + * Rework mouse interaction with ducks and tangents + * Move icons to a subdir + * Fix some typos, several crashes (#1780016, #1785598) and other bugs + * Re-enable sketch, draw, polygon by default + * Add keyboard shortcuts for all tools ( http://synfig.org/Keyboard_Shortcuts ) + * Fix crash when setting canvas resolution to zero (#1779616) + * Add 'auto-export' checkbox and layer name box to the draw tool + * Various GUI fixes (#1794006, #1796110) + * File-selector fixes (#1383736) + * Fix the View>Play menu entry to allow playback inside the workarea, shortcut Ctrl-P + * Save to .sifz (compressed) format by default if no extension is given + * Remember the path used when saving a document and default to it in future + * Call new documents "Synfig Animation " by default, rather than "untitled0" + * Don't quit until the user clearly answers "do you want to save?" (#1799722) + * Remember the filename the animation was last rendered to, and default to it (#1799250) + * Improved the 'Groups' function a little (#1368694). It's still quite broken + * Fixed the colors displayed on the sliders in the Color Editor dialog + * Added option to Bline Tool to allow positions to be automatically linked (#1776156) + * Added menu entry to restore all dialogs to their default positions + * Fix red "Animate Editing Mode" frame so it shows up in all themes (#1801220) + * Allow user to "export SYNFIG_DISABLE_POPUP_WINDOWS=1" to make splash screen etc. less obtrusive + * Fixed the logic used to decide which value to use when linking values together + * Update child canvas time sliders when parent time slider is moved + * Prevent the caret menu entries from being disabled when another canvas is closed + * Show the correct initial quality level in the View > Preview Quality menu + + 0.61.06 (SVN 543) - June 20, 2007 - Bug fixes + + * Fix amd64 issues + * Fix corruption of gamma settings + * Fix manipulating layers in the layer dialog + * Disable the timebar instead of hiding it + * Fix File -> Close & input devices close button + * Fix targets that crash in synfigstudio + * Fix some doxygen warnings + * Fixes in the sketch tool + * Fixes in the draw tool + * Fix several crashes + * Fix bline looping + * Misc Win32 fixes + * Add optional GNOME thumbnailer + * Rework several dialogs to use GNOME HIG + * Disable several tools, see FAQ to re-enable + * Disable the empty Palette Browser dialog + * Add mousewheel support in canvas windows + * Add tooltips to preview window & give it a default size + * Display HTML values in the colour dialog + * Add an icon for the curves dialog + * New Tango ArtLibreSet styled icons by PXEGeek + + 0.61.05 (SVN 128) - February 27, 2006 - build issues + + * Fixed building with gtkmm 2.8 (#1373933, #1358304) + * Allow the toolbox to come to the front (#1367916) + * Make the user prefs dir configurable at build time + * Fixed minor build issues + + 0.61.04 (SVN 103) - January 10, 2006 - MacOS X packaging + + * Fixes for the MacOS X packaging + + 0.61.03 - December 8, 2005 - Build & copyright fixes + + * Update more old copyright and licence notices + * Fully fix building with GCC 4 + + 0.61.02 - November 26, 2005 - Build fixes + + * Better Win32 / MacOS X packaging + * Use new GTK+ file chooser + * Adds some GCC 4 tweaks + * Fixes crash on layer reorder + * Include errno.h where needed + * Other tweaks + + 0.61.01 - November 6, 2005 - Copyright updates + + * Update old copyright and licence notices + * Add ./configure options for debug, warnings, optimisation, profiling + * Uses per-os directory separator + * Add TODO file + + 0.61.00-39 - November 1, 2005 - Developer preview + + * First public release! + diff --git a/synfig-studio/tags/0.61.08/README b/synfig-studio/tags/0.61.08/README new file mode 100644 index 0000000..d9bc6d1 --- /dev/null +++ b/synfig-studio/tags/0.61.08/README @@ -0,0 +1,51 @@ + synfigstudio -- vector animation studio + +synfig is a vector based 2D animation package. It is designed to be +capable of producing feature-film quality animation. It eliminates the +need for tweening, preventing the need to hand-draw each frame. synfig +features spatial and temporal resolution independence (sharp and smooth +at any resolution or framerate), high dynamic range images, and a +flexible plugin system. + +synfigstudio is the animation studio for synfig and provides the GUI +interface to create synfig animations which are saved in synfig .sif +format. + +Links + +Web: http://synfig.org/ +SVN: http://svn.voria.com/code/synfig/ +Proj: http://sf.net/projects/synfig/ +IRC: irc://irc.freenode.net/synfig + +Please use the IRC channel and the sf.net tracker to get support and +report bugs, request features and submit patches. + +Copyright + +Copyright 2002 Robert B. Quattlebaum Jr. +Copyright 2002 Adrian Bentley +Copyright 2006 Yue Shi Lai +Copyright 2007 Chris Moore +Copyright 2007-2008 Paul Wise +Copyright 2008 Aurore D. + +Some of the icons are placed in the Public Domain by Chris Norman +Some of the icons are placed in the Public Domain by Carlos López González + +Licence + +This package is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +This package 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +or visit http://www.gnu.org/licenses/gpl.html diff --git a/synfig-studio/tags/0.61.08/TODO b/synfig-studio/tags/0.61.08/TODO new file mode 100644 index 0000000..0e822d2 --- /dev/null +++ b/synfig-studio/tags/0.61.08/TODO @@ -0,0 +1,32 @@ +## FIXMEs ## + +* Install freedesktop.org mime info +* Install gnome thumbnailer + +## General ## + +* Re-implement draw tool +* Re-implement WorkArea class to use OpenGL +* Migrate toward extensible plug-in architecture +* Migrate toward scripted architecture +* Ability for "Auto Recover" feature to recover history +* Ability to edit curves in the curves tab. +* Subversion integration +* Integrated error console tab +* Clean up crazy confusing console output +* Implement palette browser feature +* Move to icon theming so synfig icons can be customised +* Switch icon naming to Tango and ArtLibreSet + +## Wishful Thinking ## + +* Visual conflict resolution for version control merging conflicts + +## Long Term ## + +* Make majority of user-interface components controlled by scripts + +## User-requested features ## + +http://synfig.org/Wish_list +http://sf.net/tracker/?group_id=144022&atid=757419 diff --git a/synfig-studio/tags/0.61.08/build_tools/Makefile.am b/synfig-studio/tags/0.61.08/build_tools/Makefile.am new file mode 100644 index 0000000..23a1201 --- /dev/null +++ b/synfig-studio/tags/0.61.08/build_tools/Makefile.am @@ -0,0 +1,8 @@ +dist_noinst_SCRIPTS=autorevision.sh + +all-local: + sh $(srcdir)/autorevision.sh "$(top_srcdir)" "$(top_builddir)" + +clean-local: + -rm -f $(top_builddir)/autorevision.h + diff --git a/synfig-studio/tags/0.61.08/build_tools/autorevision.sh b/synfig-studio/tags/0.61.08/build_tools/autorevision.sh new file mode 100644 index 0000000..6464d73 --- /dev/null +++ b/synfig-studio/tags/0.61.08/build_tools/autorevision.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008 Paul Wise +# +# This package is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This package 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 +# General Public License for more details. + + +get_git_svn_id(){ + export SCM=git-svn + export REVISION=`cd "$1"; git svn find-rev HEAD` + export COMPARE="$1/.git/" + if [ x = "x$REVISION" ] ; then + # The extra M at the end is for Modified + export REVISION=`cd "$1"; git svn find-rev \`git rev-list --max-count=1 --grep='git-svn-id: ' HEAD\``M + else + export REVISION="$REVISION"`cd "$1"; git diff --quiet HEAD || echo M` + fi +} + +get_svn_id(){ + export SCM=svn + export REVISION=`cd "$1"; svnversion || svn info | sed -n 's/^Revision: \(.*\)/\1/p'` +} + + +HEADER="$2/autorevision.h" +SCM=none + + +if [ ! -f "$HEADER" ] ; then + touch -t 197001010101 "$HEADER" +fi + + +# Extract the revision from SVN/git/etc +if [ -d "$1/.git/svn" ] ; then + get_git_svn_id "$1" +elif [ -d "$1/../.git/svn" ] ; then + get_git_svn_id "$1/.." +elif [ -d "$1/../../.git/svn" ] ; then + get_git_svn_id "$1/../.." +elif [ -d "$1/.svn" ] ; then + COMPARE="$1/.svn" + get_svn_id "$1" +elif [ -d "$1/_svn" ] ; then + COMPARE="$1/_svn" + get_svn_id "$1" +fi + + +# Allow overriding both REVISION and DEVEL_VERSION +if [ -f "$2/autorevision.conf" ] ; then + SCM=manual + . "$2/autorevision.conf" +fi + + +# Abort if the header is newer +if [ "$COMPARE" -ot "$HEADER" ] ; then return; fi + + +# Set the development version string +if [ x = "x$DEVEL_VERSION" ] ; then + if [ x != "x$REVISION" ] ; then + if [ $SCM = svn ] ; then + DEVEL_VERSION="SVN r$REVISION" + elif [ $SCM = git-svn ] ; then + DEVEL_VERSION="SVN r$REVISION (via git)" + elif [ $SCM = manual ] ; then + DEVEL_VERSION="$REVISION (manually configured)" + fi + fi +fi + + +# Output the header +if [ x != "x$DEVEL_VERSION" ] ; then + echo "#define SHOW_EXTRA_INFO" > "$HEADER" + echo "#define DEVEL_VERSION \"$DEVEL_VERSION\"" >> "$HEADER" +fi diff --git a/synfig-studio/tags/0.61.08/config/ltmain.patch b/synfig-studio/tags/0.61.08/config/ltmain.patch new file mode 100644 index 0000000..9d51a5c --- /dev/null +++ b/synfig-studio/tags/0.61.08/config/ltmain.patch @@ -0,0 +1,17 @@ +--- ltmain.bak Thu Apr 7 19:12:55 2005 ++++ ltmain.sh Thu Apr 7 19:20:28 2005 +@@ -5362,10 +5362,10 @@ + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit 1 +- fi ++# if test "$inst_prefix_dir" = "$destdir"; then ++# $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++# exit 1 ++# fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. diff --git a/synfig-studio/tags/0.61.08/config/package b/synfig-studio/tags/0.61.08/config/package new file mode 100755 index 0000000..28b7896 --- /dev/null +++ b/synfig-studio/tags/0.61.08/config/package @@ -0,0 +1,293 @@ +#! /bin/csh -ef +# this file was orignally distributed by Apple in the Developer Tools package +#it is distributed under the Apple Open Source License +set version=0.2 +set prog = `/usr/bin/basename $0` +set usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar] [-bzip]" +set noglob + +if (-x /usr/bin/mkbom) then + set mkbom=/usr/bin/mkbom + set lsbom=/usr/bin/lsbom +else + set mkbom=/usr/etc/mkbom + set lsbom=/usr/etc/lsbom +endif + +if (-x /usr/bin/awk) then + set awk=/usr/bin/awk +else + set awk=/bin/awk +endif +set bzip2=`which bzip2` +set gnutar=/usr/bin/gnutar +set tar=/usr/bin/tar +set pax=/bin/pax + +# gather parameters +if ($#argv == 0) then + echo $usage + exit(1) +endif +unset usebzip +while ( $#argv > 0 ) + switch ( $argv[1] ) + case -d: + if ( $?destDir ) then + echo ${prog}: dest-dir parameter already set to ${destDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -d option requires destination directory. + echo $usage + exit(1) + else + set destDir = $argv[2] + shift; shift + breaksw + endif + case -f: + if ( $?rootDir ) then + echo ${prog}: root-dir parameter already set to ${rootDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -f option requires package root directory. + echo $usage + exit(1) + else + set rootDir = $argv[2] + set fflag + shift; shift + breaksw + endif + case -r: + if ( $?resDir ) then + echo ${prog}: resource-dir parameter already set to ${resDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -r option requires package resource directory. + echo $usage + exit(1) + else + set resDir = $argv[2] + shift; shift + breaksw + endif + case -traditional: + echo useing standard tar + set usetar + unset usegnutar + unset usepax + breaksw + case -gnutar: + echo using gnutar + set usegnutar + unset usepax + unset usetar + shift + case -bzip: + if (-x $bzip2) then + set usebzip + echo using bzip compression + else + echo COMPRESSION ERROR: You can not use BZIP2 you do not have it installed + exit(1) + endif + shift + breaksw + case -*: + echo ${prog}: Unknown option: $argv[1] + echo $usage + exit(1) + case *.info: + if ( $?info ) then + echo ${prog}: info-file parameter already set to ${info}. + echo $usage + exit(1) + else + set info = "$argv[1]" + shift + breaksw + endif + case *.tiff: + if ( $?tiff ) then + echo ${prog}: tiff-file parameter already set to ${tiff}. + echo $usage + exit(1) + else + set tiff = "$argv[1]" + shift + breaksw + endif + default: + if ( $?rootDir ) then + echo ${prog}: unrecognized parameter: $argv[1] + echo $usage + exit(1) + else + set rootDir = "$argv[1]" + shift + breaksw + endif + endsw +end + +# check for mandatory parameters +if ( ! $?rootDir ) then + echo ${prog}: missing root-dir parameter. + echo $usage + exit(1) +else if ( ! $?info) then + echo ${prog}: missing info-file parameter. + echo $usage + exit(1) +endif + +# destDir gets default value if unset on command line +if ( $?destDir ) then + /bin/mkdir -p $destDir +else + set destDir = . +endif + +# derive the root name for the package from the root name of the info file +set root = `/usr/bin/basename $info .info` + +# create package directory +set pkg = ${destDir}/${root}.pkg +echo Generating Installer package $pkg ... +if ( -e $pkg ) /bin/rm -rf $pkg +/bin/mkdir -p -m 755 $pkg +/bin/mkdir -p -m 755 $pkg/Contents +/bin/mkdir -p -m 755 $pkg/Contents/Resources +/bin/mkdir -p -m 755 $pkg/Contents/Resources/English.lproj/ +echo "gxpmpkg2" >$pkg/Contents/PkgInfo +chmod 755 $pkg/Contents/PkgInfo +# (gnu)tar/pax and compress root directory to package archive +echo -n " creating package archive ... " +if ( $?fflag ) then + set pkgTop = ${rootDir:t} + set parent = ${rootDir:h} + if ( "$parent" == "$pkgTop" ) set parent = "." +else + set parent = $rootDir + set pkgTop = . +endif +if ( $?usetar ) then + set pkgArchive = $pkg/Contents/Resources/$root.tar.Z + (cd $parent; $tar -w $pkgTop) | /usr/bin/tar -f -c > $pkgArchive +else if ( $?usegnutar ) then + if ( $?usebzip ) then + set pkgArchive = $pkg/Contents/Resources/$root.tar.bz2 + (cd $parent; $gnutar c $pkgTop) | $bzip2 -f -c > $pkgArchive + else + set pkgArchive = $pkg/Contents/Resources/$root.tar.gz + (cd $parent; $gnutar zcf $pkgArchive $pkgTop) + endif +else + set pkgArchive = $pkg/Contents/Resources/$root.pax.gz + (cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive +endif +/bin/chmod 755 $pkgArchive +echo done. + +# copy info file to package +set pkgInfo = $pkg/Contents/Resources/English.lproj/$root.info +echo -n " copying ${info:t} ... " +/bin/cp $info $pkgInfo +/bin/chmod 755 $pkgInfo +echo done. + +# copy tiff file to package +if ( $?tiff ) then + set pkgTiff = $pkg/$root.tiff + echo -n " copying ${tiff:t} ... " + /bin/cp $tiff $pkgTiff + /bin/chmod 444 $pkgTiff + echo done. +endif + +# copy resources to package +if ( $?resDir ) then + echo -n " copying ${resDir:t} ... " + + # don't want to see push/pop output + pushd $resDir > /dev/null + # get lists of resources. We'll want to change + # permissions on just these things later. + set directoriesInResDir = `find . -type d | grep -v -e svn -e CVS` + set filesInResDir = `find . -type f | grep -v -e svn -e CVS` + popd > /dev/null + + # copy the resource directory contents into the package directory + foreach resFile (`cd $resDir && find . | grep -v svn`) + + cp -fr "$resDir/$resFile" "$pkg/Contents/Resources" + end + + pushd $pkg/Contents/Resources > /dev/null + # Change all directories to +r+x, except the package + # directory itself + foreach resFileItem ($directoriesInResDir) + if ( $resFileItem != "." ) then + chmod 755 "$resFileItem" + endif + end + # change all flat files to read only + foreach resFileItem ($filesInResDir) + if ( $resFileItem != "./.DS_Store" ) then + chmod 755 "$resFileItem" + endif + end + popd > /dev/null + + echo done. +endif + +# generate bom file +set pkgBom = $pkg/Contents/Resources/$root.bom +echo -n " generating bom file ... " +/bin/rm -f $pkgBom +if ( $?fflag ) then + $mkbom $parent $pkgBom >& /dev/null +else + $mkbom $rootDir $pkgBom >& /dev/null +endif +/bin/chmod 444 $pkgArchive +echo done. + +# generate sizes file +set pkgSizes = $pkg/Contents/Resources/$root.sizes +echo -n " generating sizes file ... " + +# compute number of files in package +set numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l` + +# compute package size when compressed +@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'` +@ compressedSize += 3 # add 1KB each for sizes, location, status files + +@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'` +@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'` +if ( $?tiff ) then + @ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'` +else + @ tiffSize = 0 +endif + +@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'` +@ installedSize += $infoSize + $bomSize + $tiffSize + 3 + +# echo size parameters to sizes file +echo NumFiles $numFiles > $pkgSizes +echo InstalledSize $installedSize >> $pkgSizes +echo CompressedSize $compressedSize >> $pkgSizes +echo done. +echo " ... finished generating $pkg." + +exit(0) + +# end package + diff --git a/synfig-studio/tags/0.61.08/configure.ac b/synfig-studio/tags/0.61.08/configure.ac new file mode 100755 index 0000000..8e61eba --- /dev/null +++ b/synfig-studio/tags/0.61.08/configure.ac @@ -0,0 +1,289 @@ +# $Id$ + +# -- I N I T -------------------------------------------------- + +AC_INIT([Synfig Studio],[0.61.08],[http://synfig.org/Bugs],[synfigstudio]) +AC_REVISION + +AC_CONFIG_AUX_DIR(config) +AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST +dnl AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE +AM_MAINTAINER_MODE + +API_VERSION=0.0 + +# -- V A R I A B L E S ---------------------------------------- + +SVN_REPOSITORY=http://svn.voria.com/code/synfig-studio + +# -- P R O G R A M S ------------------------------------------ + +AC_PROG_CC +AC_GNU_SOURCE +AC_PROG_CXX +AC_PROG_CPP +AC_PROG_CXXCPP +AC_PROG_INSTALL + +AC_LANG_CPLUSPLUS + + +AC_ARG_DEBUG + +case "$debug" in + yes) + AC_DEFINE(SHOW_EXTRA_INFO,[],[Show extra info in the about dialog]) + ;; +esac + +AC_ARG_OPTIMIZATION +AC_ARG_WARNINGS +AC_ARG_PROFILE_ARCS +AC_ARG_BRANCH_PROBABILITIES +AC_ARG_PROFILING + +AC_ARG_ENABLE(g5opt,[ + --enable-g5opt enable optimizations specific to G5 proc],[ + G5OPTFLAGS="-mpowerpc-gpopt -mno-multiple -mno-update -mcpu=970 -mtune=970 -falign-loops=16 -falign-functions=16" +], +[ + G5OPTFLAGS= +]) + +AC_WIN32_QUIRKS + +AC_LIBTOOL_WIN32_DLL +AC_LIBTOOL_DLOPEN +AC_DISABLE_STATIC +AC_ENABLE_SHARED +AC_PROG_LIBTOOL +AC_SUBST(LIBTOOL_DEPS) +AC_LIBTOOL_PATCH + +## FIXME: add i18n for .desktop and other non-compiled files +## AM_GLIB_GNU_GETTEXT([external]) +## AC_PROG_INTLTOOL(0.11) +ALL_LINGUAS="fr es" +AM_GNU_GETTEXT([external]) +# This is here so autoreconf will run autopoint +AM_GNU_GETTEXT_VERSION([0.14.4]) + +case "$host" in + *mingw* | *cygwin*) + AM_CONDITIONAL(WIN32_PKG, true) + AM_CONDITIONAL(MACOSX_PKG, false) + ;; + *darwin*) + AM_CONDITIONAL(WIN32_PKG, false) + AM_CONDITIONAL(MACOSX_PKG, true) + AC_DEFINE(USE_OPEN_FOR_URLS,[],[On MacOS X "open " works, on Linux it tries to open a virtual console.] ) + ;; + *) + AM_CONDITIONAL(WIN32_PKG, false) + AM_CONDITIONAL(MACOSX_PKG, false) + ;; +esac +# -- L I B R A R I E S ---------------------------------------- + +PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 gthread-2.0,[ + AC_MSG_CHECKING([for Gtk::AboutDialog::set_program_name]) + synfigstudio_save_cxxflags="$CXXFLAGS" + CXXFLAGS="$GTKMM_CFLAGS $CXXFLAGS" + AC_COMPILE_IFELSE( + [ + AC_LANG_PROGRAM([ + [#include ] + ],[ + [Gtk::AboutDialog about; about.set_program_name(PACKAGE_NAME)] + ]) + ],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,[],[Define if GTKmm provides Gtk::AboutDialog::set_program_name()] ) + AM_CONDITIONAL(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,true) + ],[ + AC_MSG_RESULT([no]) + AM_CONDITIONAL(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,false) + ] + ) + CXXFLAGS="$synfigstudio_save_cxxflags" +],[ + AC_MSG_ERROR([ ** Gtkmm-2.4 Is a required library, aborting.]) +]) +AC_SUBST(GTKMM_CFLAGS) +AC_SUBST(GTKMM_LIBS) + +PKG_CHECK_MODULES(SYNFIG, [synfig >= 0.61.08] [ETL >= 0.04.11] sigc++-2.0,,[ + AC_MSG_ERROR([ ** Unable to set up dependent libraries (synfig >= 0.61.08, ETL >= 0.04.11)]) +]) +AC_SUBST(SYNFIG_CFLAGS) +AC_SUBST(SYNFIG_LIBS) + +windowsys="gtkmm" +AC_DEFINE(STUDIO_WINSYS_H,"gtkmm/winsys.h",[blah]) +AM_CONDITIONAL(WINDOWSYS_GTKMM,true) + +AC_ARG_WITH(userdir,[ + --with-userdir=(dirname) Relative path to user directory],[ +],[ +case "$host" in + *mingw* | *cygwin*) + with_userdir="Synfig" + ;; + *darwin*) + with_userdir="Library/Synfig" + ;; + *) + with_userdir=".synfig" + ;; +esac +]) +AC_DEFINE_UNQUOTED(SYNFIG_USER_APP_DIR,"$with_userdir",[Synfig User Data Directory]) + +# --- FMOD CHECK ------------- +AC_ARG_WITH(libfmod,[ + --with-libfmod Enable support for FMOD],[ +],[ + AC_CHECK_LIB(fmod, FSOUND_Init,[ + with_libfmod="yes" + ],[ + with_libfmod="no" + ]) +]) +if test $with_libfmod = "yes" ; then { + AM_CONDITIONAL(WITH_FMOD,true) + FMOD_LIBS="/usr/lib/libfmod.so" + AC_DEFINE(WITH_FMOD,"I'm here damnit",[blah]) +} else { + AM_CONDITIONAL(WITH_FMOD,false) + FMOD_LIBS= +} ; fi + +# Check for unordered_map or hash_map headers +AC_MSG_CHECKING([for unordered_map::const_iterator]) +AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + [#include ] + ],[ + [std::tr1::unordered_map::const_iterator iter;] + ])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HASH_MAP_CLASS],[HASH_MAP_NAMESPACE::unordered_map],[The template name for unordered maps.]) + AC_DEFINE([HASH_MAP_H],[],[The header file to include for unordered maps.]) + AC_DEFINE([HASH_MAP_NAMESPACE],[std::tr1],[The namespace for unordered maps.]) + AC_DEFINE([FUNCTIONAL_H],[],[The header file for hash.]) + AC_DEFINE([FUNCTIONAL_HASH_ON_STRING],[1],[Define to 1 if hash needs to use T=String rather than T=char* to hash strings.]) +],[ + AC_MSG_RESULT([no]) + AC_CHECK_HEADERS([ext/hash_map],[ + AC_DEFINE([HASH_MAP_CLASS],[HASH_MAP_NAMESPACE::hash_map],[The template name for unordered maps.]) + AC_DEFINE([HASH_MAP_H],[],[The header file to include for unordered maps.]) + AC_DEFINE([HASH_MAP_NAMESPACE],[__gnu_cxx],[The namespace for unordered maps.]) + AC_DEFINE([FUNCTIONAL_H],[],[The header file for hash.]) + ],[ + AC_MSG_ERROR([C++ compiler does not seem to support unordered containers]) + ]) +]) + +# Check for unordered_set or hash_set headers +AC_MSG_CHECKING([for unordered_set::const_iterator]) +AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + [#include ] + ],[ + [std::tr1::unordered_set::const_iterator iter;] + ])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HASH_SET_CLASS],[HASH_SET_NAMESPACE::unordered_set],[The template name for unordered sets.]) + AC_DEFINE([HASH_SET_H],[],[The header file to include for unordered sets.]) + AC_DEFINE([HASH_SET_NAMESPACE],[std::tr1],[The namespace for unordered sets.]) +],[ + AC_MSG_RESULT([no]) + AC_CHECK_HEADERS([ext/hash_set],[ + AC_DEFINE([HASH_SET_CLASS],[HASH_SET_NAMESPACE::hash_set],[The template name for unordered sets.]) + AC_DEFINE([HASH_SET_H],[],[The header file to include for unordered sets.]) + AC_DEFINE([HASH_SET_NAMESPACE],[__gnu_cxx],[The namespace for unordered sets.]) + ],[ + AC_MSG_ERROR([C++ compiler does not seem to support unordered containers]) + ]) +]) + +# -- H E A D E R S -------------------------------------------- + +AC_CHECK_HEADERS([unistd.h signal.h fcntl.h]) +AC_CHECK_HEADERS([sys/types.h sys/wait.h sys/stat.h sys/time.h sys/resource.h sys/errno.h]) + +# -- T Y P E S & S T R U C T S -------------------------------- + +# -- F U N C T I O N S ---------------------------------------- + +AC_CHECK_FUNCS([fork]) +AC_CHECK_FUNCS([kill]) +AC_CHECK_FUNCS([pipe]) +AC_CHECK_FUNCS([setpriority mkfifo stat]) + +# -- A R G U M E N T S ---------------------------------------- + +# -- O U T P U T ---------------------------------------------- + +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(LDFLAGS) +AC_SUBST(SVN_REPOSITORY) + +AC_SUBST(API_VERSION) + +# fmod stuff... +AC_SUBST(FMOD_LIBS) + +imageext=png +AC_SUBST(imageext) + +imagedir="${datadir}/pixmaps/synfigstudio" +AC_SUBST(imagedir) + +AC_OUTPUT( +Makefile +build_tools/Makefile +doxygen.cfg +po/Makefile.in +synfigstudio.desktop +synfigstudio.mime +synfigstudio.keys +synfigstudio.xml +synfigstudio-thumbnailer.schemas +src/Makefile +src/gtkmm/Makefile +src/synfigapp/Makefile +images/Makefile +win32inst.nsi +pkg-info/macosx/synfig-studio.info +) + +# -- S U M M A R Y -------------------------------------------- + +echo " +$PACKAGE_NAME v.$VERSION +Configuration Summary +- - - - - - + +Install Prefix -------------------> $prefix +Host Platform --------------------> $host +Icon Format ----------------------> $imageext +Debug Mode -----------------------> $debug +Profiling Mode -------------------> $profiling +Optimizations --------------------> $optimization +Window System --------------------> $windowsys +FMOD Enabled ---------------------> $with_libfmod + +"'$'"CXX ------------------------------> '$CXX' +"'$'"CXXFLAGS -------------------------> '$CXXFLAGS' +"'$'"LDFLAGS --------------------------> '$LDFLAGS' +"'$'"SYNFIG_CFLAGS ---------------------> '$SYNFIG_CFLAGS' +"'$'"SYNFIG_LIBS -----------------------> '$SYNFIG_LIBS' +"'$'"GTKMM_CFLAGS ---------------------> '$GTKMM_CFLAGS' +"'$'"GTKMM_LIBS -----------------------> '$GTKMM_LIBS' +" diff --git a/synfig-studio/tags/0.61.08/debugcrash b/synfig-studio/tags/0.61.08/debugcrash new file mode 100755 index 0000000..467bd6a --- /dev/null +++ b/synfig-studio/tags/0.61.08/debugcrash @@ -0,0 +1,2 @@ +#!/bin/sh +gdb -nw --core=~/core src/gtkmm/.libs/lt-synfigstudio diff --git a/synfig-studio/tags/0.61.08/doxygen.cfg.in b/synfig-studio/tags/0.61.08/doxygen.cfg.in new file mode 100644 index 0000000..11cc015 --- /dev/null +++ b/synfig-studio/tags/0.61.08/doxygen.cfg.in @@ -0,0 +1,1220 @@ +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = "legal=\if legal" \ + endlegal=\endif \ + "writeme=\todo This needs to be documented further." \ + "stub=\todo This is a non-functional stub." \ + "optimize=\todo This needs to be optimized further." + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = YES + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.h \ + *.hxx \ + *.hpp \ + *.cpp \ + *.cxx + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = src/template.cpp src/template.h + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = SYNFIG_NO_DEPRECATED \ + DOXYGEN_SKIP + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = gif + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/synfig-studio/tags/0.61.08/images/Makefile.am b/synfig-studio/tags/0.61.08/images/Makefile.am new file mode 100644 index 0000000..73f7b52 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/Makefile.am @@ -0,0 +1,83 @@ + +SYNFIG=synfig +EXT=@imageext@ + +EXTRA_DIST=installer_logo.sif installer_logo_osx.sif splash_screen.sif splash_screen-0.61.07.sif about_icon.sif angle_icon.sif bline_icon.sif blinepoint_icon.sif bool_icon.sif canvas_icon.sif canvas_pointer_icon.sif children_icon.sif circle_icon.sif clear_redo_icon.sif clear_undo_icon.sif color_icon.sif curves_icon.sif draw_icon.sif duplicate_icon.sif encapsulate_icon.sif eyedrop_icon.sif fill_icon.sif gradient_icon.sif group_icon.sif info_icon.sif integer_icon.sif keyframe_icon.sif keyframe_lock_icon.sif layer_icon.sif list_icon.sif logo.sif meta_data_icon.sif mirror_icon.sif navigator_icon.sif normal_icon.sif pastecanvas_icon.sif polygon_icon.sif real_icon.sif rectangle_icon.sif rotate_icon.sif saveall_icon.sif scale_icon.sif segment_icon.sif select_all_child_layers_icon.sif sif_icon.sif sketch_icon.sif smooth_move_icon.sif string_icon.sif swap_colors_icon.sif synfig_icon.sif time_icon.sif time_track_icon.sif valuenode_icon.sif vector_icon.sif wallpaper.sif width_icon.sif zoom_icon.sif rename_icon.sif +IMAGES=installer_logo.$(EXT) installer_logo_osx.$(EXT) mirror_icon.$(EXT) time_icon.$(EXT) time_track_icon.$(EXT) curves_icon.$(EXT) pastecanvas_icon.$(EXT) group_icon.$(EXT) clear_redo_icon.$(EXT) clear_undo_icon.$(EXT) navigator_icon.$(EXT) info_icon.$(EXT) zoom_icon.$(EXT) meta_data_icon.$(EXT) children_icon.$(EXT) keyframe_icon.$(EXT) swap_colors_icon.$(EXT) rotate_icon.$(EXT) scale_icon.$(EXT) smooth_move_icon.$(EXT) width_icon.$(EXT) rectangle_icon.$(EXT) circle_icon.$(EXT) draw_icon.$(EXT) sketch_icon.$(EXT) fill_icon.$(EXT) normal_icon.$(EXT) select_all_child_layers_icon.$(EXT) sif_icon.$(EXT) synfig_icon.$(EXT) saveall_icon.$(EXT) bool_icon.$(EXT) integer_icon.$(EXT) angle_icon.$(EXT) segment_icon.$(EXT) blinepoint_icon.$(EXT) list_icon.$(EXT) canvas_pointer_icon.$(EXT) string_icon.$(EXT) eyedrop_icon.$(EXT) about_icon.$(EXT) splash_screen.$(EXT) canvas_icon.$(EXT) vector_icon.$(EXT) real_icon.$(EXT) color_icon.$(EXT) valuenode_icon.$(EXT) polygon_icon.$(EXT) bline_icon.$(EXT) layer_icon.$(EXT) duplicate_icon.$(EXT) encapsulate_icon.$(EXT) gradient_icon.$(EXT) keyframe_lock_all.$(EXT) keyframe_lock_past.$(EXT) keyframe_lock_future.$(EXT) keyframe_lock_none.$(EXT) rename_icon.$(EXT) + +MAINTAINERCLEANFILES=Makefile.in +CLEANFILES=$(IMAGES) images.nsh unimages.nsh installer_logo.bmp sif_icon.ico synfig_icon.ico icons.nsh unicons.nsh + +image_DATA=$(IMAGES) + + +all: $(IMAGES) + +SUFFIXES=.sif .tif .png + +#.SUFFIXES: $(SUFFIXES) + +PNGTOICO=png2ico + +.sif.ico: + $(SYNFIG) $< -w 16 -h 16 -o $*-16x16.png $< -w 32 -h 32 -o $*-32x32.png $< -w 48 -h 48 -o $*-48x48.png $< -w 64 -h 64 -o $*-64x64.png + cp -f `which $(PNGTOICO)`.* ./ + $(PNGTOICO) $@ $*-16x16.png $*-32x32.png $*-48x48.png $*-64x64.png + rm -f ./$(PNGTOICO).* $*-16x16.png $*-32x32.png $*-48x48.png $*-64x64.png + echo " File \"images\\$@\"" >>./icons.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unicons.nsh + +clean: + $(RM) $(CLEANFILES) + +.sif.bmp: + $(SYNFIG) -q $< -o $@ --time 0 + +.sif.$(EXT): + $(SYNFIG) -q $< -o $@ --time 0 + echo " File \"images\\$@\"" >>./images.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh + +keyframe_lock_all.$(EXT): $(srcdir)/keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 + echo " File \"images\\$@\"" >>./images.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh + +keyframe_lock_past.$(EXT): $(srcdir)/keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c PastOnly + echo " File \"images\\$@\"" >>./images.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh + +keyframe_lock_future.$(EXT): $(srcdir)/keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c FutureOnly + echo " File \"images\\$@\"" >>./images.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh + +keyframe_lock_none.$(EXT): $(srcdir)/keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c Disabled + echo " File \"images\\$@\"" >>./images.nsh + echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh + +#.sif.png: +# $(SYNFIG) -q $< -o $@ --time 0 + +#datanode_icon.$(EXT): datanode_icon.sif +# $(SYNFIG) -q datanode_icon.sif -o datanode_icon.$(EXT) -w 128 -h 128 --time 0 + +#color_icon.$(EXT): color_icon.sif +# $(SYNFIG) -q color_icon.sif -o color_icon.$(EXT) -w 128 -h 128 --time 0 + +#real_icon.$(EXT): real_icon.sif +# $(SYNFIG) -q real_icon.sif -o real_icon.$(EXT) -w 128 -h 128 --time 0 + +#vector_icon.$(EXT): vector_icon.sif +# $(SYNFIG) -q vector_icon.sif -o vector_icon.$(EXT) -w 128 -h 128 --time 0 + +#splash_screen.$(EXT): splash_screen.sif +# $(SYNFIG) -q splash_screen.sif -o splash_screen.$(EXT) --time 0 + +#about_icon.$(EXT): about_icon.sif +# $(SYNFIG) -q about_icon.sif -o about_icon.$(EXT) -w 128 -h 128 --time 0 + +#canvas_icon.$(EXT): canvas_icon.sif +# $(SYNFIG) -q canvas_icon.sif -o canvas_icon.$(EXT) -w 128 -h 128 --time 0 diff --git a/synfig-studio/tags/0.61.08/images/Makefile.inc b/synfig-studio/tags/0.61.08/images/Makefile.inc new file mode 100644 index 0000000..9736508 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/Makefile.inc @@ -0,0 +1,35 @@ + +EXT=png +SYNFIG=synfig + +EXTRA_DIST=studio_about.sif +IMAGES=fill_icon.$(EXT) normal_icon.$(EXT) sif_icon.$(EXT) synfig_icon.$(EXT) saveall_icon.$(EXT) bool_icon.$(EXT) integer_icon.$(EXT) angle_icon.$(EXT) segment_icon.$(EXT) blinepoint_icon.$(EXT) list_icon.$(EXT) canvas_pointer_icon.$(EXT) string_icon.$(EXT) eyedrop_icon.$(EXT) about_icon.$(EXT) splash_screen.$(EXT) canvas_icon.$(EXT) vector_icon.$(EXT) real_icon.$(EXT) color_icon.$(EXT) valuenode_icon.$(EXT) polygon_icon.$(EXT) bline_icon.$(EXT) layer_icon.$(EXT) duplicate_icon.$(EXT) gradient_icon.$(EXT) keyframe_lock_all.$(EXT) keyframe_lock_past.$(EXT) keyframe_lock_future.$(EXT) keyframe_lock_none.$(EXT) + +CLEANFILES=$(IMAGES) + + +all: $(IMAGES) + +.SUFFIXES:.sif .tif .png + +clean: + $(RM) $(CLEANFILES) + +.sif.tif: + $(SYNFIG) -q $< -o $@ --time 0 + +.sif.png: + $(SYNFIG) -q $< -o $@ --time 0 + +keyframe_lock_all.$(EXT): keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 + +keyframe_lock_past.$(EXT): keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c PastOnly + +keyframe_lock_future.$(EXT): keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c FutureOnly + +keyframe_lock_none.$(EXT): keyframe_lock_icon.sif + $(SYNFIG) -q $< -o $@ --time 0 -c Disabled + diff --git a/synfig-studio/tags/0.61.08/images/about_icon.sif b/synfig-studio/tags/0.61.08/images/about_icon.sif new file mode 100644 index 0000000..aff3ee3 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/about_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + + 0.0000000000 + 0.0500000007 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/angle_icon.sif b/synfig-studio/tags/0.61.08/images/angle_icon.sif new file mode 100644 index 0000000..d53afe1 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/angle_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + DEG + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 1.0000000000 + 1.2031250000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/bline_icon.sif b/synfig-studio/tags/0.61.08/images/bline_icon.sif new file mode 100644 index 0000000..ceb7b63 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/bline_icon.sif @@ -0,0 +1,1813 @@ + + + Synfig Studio B-Line Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0377842039 + -0.1834019721 + + + + + + + + + + + + + + + + + + + + + -2.9584641457 + -1.9259779453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.9849041700 + 0.3456619680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4225540161 + 1.8059999943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.2716398239 + -2.7584199905 + + + + + -1.4603400230 + 2.9206800461 + + + + + + + + + + + + + + + + + + + + + + 0.039242 + 0.733975 + 0.703853 + 1.000000 + + + + + -2.1093800068 + -2.5961599350 + + + + + -1.6225999594 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.8659877777 + 2.4338970184 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.8659877777 + 0.0811299011 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.8659877777 + -2.3527672291 + + + + + + + + + + + + + + + + + + + + + + 0.537454 + 0.563494 + 0.016721 + 1.000000 + + + + + + + + + + + -1.8659877777 + -2.3527672291 + + + + + + + + + + + + + + + + + + + + + + 0.428529 + 0.100841 + 0.016721 + 1.000000 + + + + + + + + + + + -1.8659877777 + 0.0811299011 + + + + + + + + + + + + + + + + + + + + + + 0.233646 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.8659877777 + 2.4338970184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.844853 + 0.828491 + 0.118994 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.3245196044 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9735588431 + 1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9735588431 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225980520 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225980520 + 1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2716372013 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848578691 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112990260 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + -1.2980799675 + + + + + 0.4867799878 + 1.4603400230 + + + + + + 1.000000 + 0.537059 + 0.001616 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.828491 + 0.537454 + 0.003862 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.3245196044 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9735588431 + 1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9735588431 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225980520 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225980520 + 1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2716372013 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848578691 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112990260 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.2980784178 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2980784178 + 1.7848578691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.2980784178 + -0.1622598022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.6490392089 + -1.4603382349 + + + + + 1.9471176863 + -3.0829362869 + + + + + + + + + + + + + + + + + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + + + 0.9735588431 + -1.7848578691 + + + + + 1.6225980520 + -3.0829362869 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.3067390919 + -3.0541522503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3275415897 + -2.1596431732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.111449 + 0.112213 + 0.111449 + 0.111111 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.1649046391 + 0.1649046391 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.4867794216 + -3.0829362869 + + + + + 2.5961568356 + -3.2451961040 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/blinepoint_icon.sif b/synfig-studio/tags/0.61.08/images/blinepoint_icon.sif new file mode 100644 index 0000000..badbf3a --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/blinepoint_icon.sif @@ -0,0 +1,66 @@ + + + Untitled0 + + + + + + + + + + + + BLINE +POINT + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.6250000000 + 1.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/bool_icon.sif b/synfig-studio/tags/0.61.08/images/bool_icon.sif new file mode 100644 index 0000000..2f1a95e --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/bool_icon.sif @@ -0,0 +1,266 @@ + + + Untitled0 + + + + + + + + + + + + ON +OFF + + + + 0.531049 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.6250000000 + 0.7500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.000000 + 0.217638 + -0.000000 + 1.000000 + + + + + -1.2500000000 + 0.1250000000 + + + + + 1.3750000000 + 1.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + 1.000000 + + + + + -1.5000000000 + -0.1250000000 + + + + + 1.5000000000 + 0.1250000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + 0.0000000000 + 0.1250000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/canvas_icon.sif b/synfig-studio/tags/0.61.08/images/canvas_icon.sif new file mode 100644 index 0000000..ec2c1b5 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/canvas_icon.sif @@ -0,0 +1,332 @@ + + + Synfig Studio Canvas Icon + + + Sphere + + + + + + + + + + + + + 0.000000 + 0.744518 + 0.825040 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.587045 + 0.941024 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.1500000060 + -0.3499999940 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.762890 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/canvas_pointer_icon.sif b/synfig-studio/tags/0.61.08/images/canvas_pointer_icon.sif new file mode 100644 index 0000000..99a4c06 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/canvas_pointer_icon.sif @@ -0,0 +1,193 @@ + + + Untitled0 + + + + + + + + + + + + + 0.985195 + 0.174900 + -0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.6000000238 + 0.2000000030 + + + + + 0.8000000119 + 0.2000000030 + + + + + 0.8000000119 + -0.2000000030 + + + + + 1.6000000238 + 0.6000000238 + + + + + 0.8000000119 + 1.3999999762 + + + + + 0.8000000119 + 1.0000000000 + + + + + -0.6000000238 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.0000000000 + + + + + 0.3499999940 + 0.3499999940 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/children_icon.sif b/synfig-studio/tags/0.61.08/images/children_icon.sif new file mode 100644 index 0000000..c3bb476 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/children_icon.sif @@ -0,0 +1,80 @@ + + + Untitled0 + + + + + + + + + + + + + + + + CHILD + + + + 0.000000 + 0.189396 + 0.155043 + 1.000000 + + + + Arial Black + + + + + + + + + + + + + + + + 0.7919595838 + 0.7919595838 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/circle_icon.sif b/synfig-studio/tags/0.61.08/images/circle_icon.sif new file mode 100644 index 0000000..fcfb2d5 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/circle_icon.sif @@ -0,0 +1,289 @@ + + + Synfig Studio Circle Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.012910 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.1808688790 + -0.3216028810 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -2.7224798203 + + + + + -2.7515196800 + -2.7079598904 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.6642030478 + -1.9762411118 + + + + + -0.6339452267 + 0.8150724769 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/clear_redo_icon.sif b/synfig-studio/tags/0.61.08/images/clear_redo_icon.sif new file mode 100644 index 0000000..9f89262 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/clear_redo_icon.sif @@ -0,0 +1,1834 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 0.213899 + 0.706536 + 0.150728 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0000001192 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000298 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0000001192 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000298 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2499999702 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/clear_undo_icon.sif b/synfig-studio/tags/0.61.08/images/clear_undo_icon.sif new file mode 100644 index 0000000..f5eaa34 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/clear_undo_icon.sif @@ -0,0 +1,1834 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 1.000000 + 0.250000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + -1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/color_icon.sif b/synfig-studio/tags/0.61.08/images/color_icon.sif new file mode 100644 index 0000000..d3883d9 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/color_icon.sif @@ -0,0 +1,391 @@ + + + Synfig Studio Color Icon + + + ColorDisc + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + 0.000000 + 1.000000 + 0.000000 + 1.000000 + + + 0.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.000000 + 1.000000 + 1.000000 + + + 1.000000 + 0.000000 + 1.000000 + 1.000000 + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0625000000 + 0.1093750000 + + + + + + + + + + + + + + + + + + + + + + 0.333252 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.1093750000 + -0.1406250000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.1151999980 + 0.1151999980 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/curves_icon.sif b/synfig-studio/tags/0.61.08/images/curves_icon.sif new file mode 100644 index 0000000..242f85a --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/curves_icon.sif @@ -0,0 +1,1178 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.0000000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -1.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 1.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.5000000000 + -1.1153845787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.7500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.265306 + 0.153061 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0937500000 + -0.0937500000 + + + + + 0.1250000000 + 0.1250000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/draw_icon.sif b/synfig-studio/tags/0.61.08/images/draw_icon.sif new file mode 100644 index 0000000..ccab320 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/draw_icon.sif @@ -0,0 +1,2879 @@ + + + Synfig Studio Draw Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.4680073857 + -0.1302433461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0151638985 + 0.0332840607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8139812946 + 0.3994087279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6309189796 + -0.3661246896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.3631684780 + -0.2496304661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8291451931 + -0.5159029365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1801059246 + -0.7156073451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7159649134 + -1.1748492718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0690946579 + -1.4653589725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5316315889 + -1.6045765877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1150161028 + -1.1483001709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4659768641 + -1.4312146902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1664203107 + -1.5976349115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1331362426 + -1.1649421453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5824710727 + -0.6656812429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1015108600 + -0.2318952978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0594419725 + 0.1615791917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3323673308 + 0.3501750827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + + + + + + + -0.4277517200 + -1.7467887402 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + + + + + + + 0.7232670188 + 0.8187858462 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + + + + + + + 2.5515329838 + 1.0178622007 + + + + + + + + + + + + + + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + 0.3795310557 + -1.9670532942 + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + + + + + + + + + + -2.0000000000 + 2.0000000000 + + + + + 2.0000000000 + -2.0000000000 + + + + + -1.3954342604 + -0.3894235194 + + + + + 1.3305304050 + -0.3894235194 + + + + + 3.4723596573 + -3.1802921295 + + + + + -3.2776479721 + -3.2776479721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.012910 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + -0.1869648695 + 1.3090070486 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -2.7224798203 + + + + + -2.7515196800 + -2.7079598904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.2716372013 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716372013 + 0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.9471176863 + 0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3245196044 + 0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6490392089 + 0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6490392089 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + + + + + + + + + -0.7169033289 + 0.1413370967 + + + + + + + + + + + + + -2.6490392685 + 2.4992609024 + + + + + 1.3509606123 + -1.5007389784 + + + + + -2.2716374397 + 0.8237805963 + + + + + 0.8321015239 + 0.8154594898 + + + + + 2.1301798820 + -0.3245196044 + + + + + -3.7111730576 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1967480183 + 0.3827666938 + + + + + 0.5325449705 + 0.3827666938 + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + 0.000000 + 0.003862 + 0.077982 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0249629989 + -1.5477088690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6475610733 + -1.5477088690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716372013 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716372013 + 1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.9471176863 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3245196044 + 1.6225980520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6490392089 + 1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6490392089 + -1.2980784178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2980784178 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.9471175671 + 2.5745220184 + + + + + 0.3494826555 + -0.0216347706 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.8112990260 + -0.2596156895 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.8112990260 + 2.5745220184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.134413 + 0.134413 + 0.134413 + 1.000000 + + + + + -1.7474132776 + 2.2283678055 + + + + + 0.1331362426 + -0.1081733331 + + + + + + + + + + + + + + + + + + + + + + 0.134413 + 0.134413 + 0.134413 + 1.000000 + + + + + + + + + + + -0.8112990260 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.1622598022 + 0.6490392089 + + + + + -1.7848578691 + 0.6490392089 + + + + + + 0.001151 + 0.001616 + 0.001616 + 1.000000 + + + 0.134413 + 0.134413 + 0.134413 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.134413 + 0.134413 + 0.134413 + 1.000000 + + + + + + + + + + + -0.8112990260 + 2.2716372013 + + + + + + + + + + + + + -2.9206764698 + 2.2716372013 + + + + + 1.1358186007 + -1.9471176863 + + + + + -2.9206764698 + 1.2980784178 + + + + + 1.1358186007 + 1.2980784178 + + + + + 1.1358186007 + -0.3245196044 + + + + + -2.9206764698 + -0.3245196044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0166420303 + 0.1331362426 + + + + + + + + + + + + + + + + + + + + + -1.8306233883 + 1.0983740091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.8487435579 + 0.8487435579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2163463980 + 1.1150161028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -0.3661246896 + 0.4160507619 + + + + + + + + + + + + + + + + + + + + + -1.6766846180 + -1.6642030478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6766846180 + 0.4576558769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3521651030 + 0.7821754813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.6309189796 + -1.3812885284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225980520 + 0.6490392089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980784178 + 0.9735588431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/duplicate_icon.sif b/synfig-studio/tags/0.61.08/images/duplicate_icon.sif new file mode 100644 index 0000000..83e12c8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/duplicate_icon.sif @@ -0,0 +1,366 @@ + + + Untitled1 + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.3000000119 + 0.3000000119 + + + + + -0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + 0.3000000119 + + + + + + + + + + + + + + + + + + + + 0.4000000060 + -0.4000000060 + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.8000000119 + -0.1000000015 + + + + + -0.6000000238 + -0.1000000015 + + + + + -0.6000000238 + -0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + -0.4000000060 + -0.2000000030 + + + + + -0.1000000015 + -0.5000000000 + + + + + -0.4000000060 + -0.8000000119 + + + + + -0.4000000060 + -0.6000000238 + + + + + -0.8000000119 + -0.6000000238 + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/encapsulate_icon.sif b/synfig-studio/tags/0.61.08/images/encapsulate_icon.sif new file mode 100644 index 0000000..af78b99 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/encapsulate_icon.sif @@ -0,0 +1,2547 @@ + + + Untitled1 + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.3000000119 + 0.3000000119 + + + + + -0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + 0.3000000119 + + + + + + + + Untitled0 + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + -0.6999999881 + -0.1000000015 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.6999999881 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.3589743674 + -0.1217948720 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5064102411 + 0.5257631540 + + + + + + + + + + + + + + + + + + + + + 0.4307692349 + -0.4410256445 + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2102564126 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.1729302704 + 0.6133797169 + + + + + -0.1718716621 + 0.4133825302 + + + + + 0.1281241328 + 0.4149704278 + + + + + 0.1291827410 + 0.1084988564 + + + + + -0.0708144605 + 0.1074402481 + + + + + 0.2307692319 + -0.1909676492 + + + + + 0.5291771293 + 0.1106160656 + + + + + 0.3291799426 + 0.1095574647 + + + + + 0.3270627260 + 0.6160262227 + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/eyedrop_icon.sif b/synfig-studio/tags/0.61.08/images/eyedrop_icon.sif new file mode 100644 index 0000000..e071cf1 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/eyedrop_icon.sif @@ -0,0 +1,2834 @@ + + + Synfig Studio Eye-drop Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.013228 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.1808688790 + -0.3216028810 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.9820623398 + -1.8497612476 + + + + + 2.5961568356 + 0.4867799878 + + + + + 2.9924266338 + -0.8112984300 + + + + + -2.9206800461 + -2.9206800461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + -0.0132999839 + -0.6649991870 + + + + + + + + + + + + + + + + + + + + + -2.2920219898 + -0.7859437466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5535967350 + -1.3166984320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1412973404 + -1.6491979361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7555978298 + -1.3432983160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0060851574 + -0.7668812871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1412973404 + -0.2792996466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0930998847 + -0.6250992417 + + + + + + + + + + + + -2.2559943199 + -0.8017961979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4569699764 + -1.3428850174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1106762886 + -1.5562306643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7458248138 + -1.3274253607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0240991116 + -0.7863364816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1323168278 + -0.1834089756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -0.0265999679 + -0.7314990759 + + + + + + + + + + + + + + + + + + + + + -2.2738904953 + -0.7939217091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5003969669 + -1.2634984255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1013975143 + -1.6092979908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7422978878 + -1.2634984255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0151507854 + -0.7766723633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1412973404 + -0.2393997014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.1530662775 + 1.5584833622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4430936575 + -1.0376765728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7676136494 + -1.0376765728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0186016560 + -1.2941199541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.3603677750 + -0.9054833651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4867799878 + 2.2716398239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.8112999797 + + + + + -1.2980799675 + 1.7848598957 + + + + + + 0.017745 + 0.111701 + 0.372646 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + -0.0789170563 + -0.0841611475 + + + + + -0.9735599756 + 0.8112999797 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + -0.2005944252 + 0.0375162214 + + + + + -0.9735599756 + 0.8112999797 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.1530662775 + 1.5584833622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4430936575 + -1.0376765728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7676136494 + -1.0376765728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0186016560 + -1.2941199541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.3603677750 + -0.9054833651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4867799878 + 2.2716398239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0194535479 + -0.0824068487 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + 0.1673063785 + 2.4640371799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5627578497 + 2.4488275051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7452738881 + 3.1332626343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8555798531 + 3.1028432846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8707895279 + 2.0229568481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2167736292 + 1.8252310753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2167736292 + 1.4449892044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7652084827 + 2.6126971245 + + + + + 1.6358979940 + 1.5693980455 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.5852279067 + 1.6465466022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3107939661 + 1.8741867542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8695641160 + 1.7695893049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + 0.1673063785 + 2.4640371799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5627578497 + 2.4488275051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7452738881 + 3.1332626343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8555798531 + 3.1028432846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8707895279 + 2.0229568481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2167736292 + 1.8252310753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2167736292 + 1.4449892044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2962405682 + 2.1288678646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + diff --git a/synfig-studio/tags/0.61.08/images/fill_icon.sif b/synfig-studio/tags/0.61.08/images/fill_icon.sif new file mode 100644 index 0000000..67ad86a --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/fill_icon.sif @@ -0,0 +1,1935 @@ + + + Synfig Studio Fill Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.012910 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.4421221614 + -0.2282502055 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -2.7224798203 + + + + + -2.7515196800 + -2.7079598904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 1.2980799675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716398239 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + -1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848578691 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.4867799878 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0797998980 + 0.0531999357 + + + + + + + + + + + + -1.4603400230 + 1.2980799675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716398239 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + -1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848578691 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.4867799878 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 1.2980799675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716398239 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338970184 + -1.1358186007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7848578691 + 0.8112990260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.4867799878 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.4867794216 + 0.3245196044 + + + + + + + + + + + + + + + + + + + -2.2821619511 + 0.5186938047 + + + + + 0.5516833067 + 2.2716372013 + + + + + 2.3689930439 + -0.8437509537 + + + + + -0.4867794216 + -2.6610608101 + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.5144248009 + 0.7655333877 + + + + + 0.9818798304 + 2.2799582481 + + + + + 2.5462307930 + -0.4493348300 + + + + + 0.0998521820 + -1.9804016352 + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.2081265152 + -0.1595559418 + + + + + + + + + + + + + + + + + + + -1.4562788010 + 0.8751632571 + + + + + 0.7071851492 + 2.1565995216 + + + + + 2.0718317032 + -0.2232107669 + + + + + -0.0250641759 + -1.5046471357 + + + + + + + + + + + + + + + + + + 1.6445538998 + 0.8490541577 + + + + + -0.6709950566 + -0.5245345235 + + + + + + 0.133333 + 0.133333 + 0.133333 + 1.000000 + + + 0.880142 + 0.880142 + 0.880142 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.133333 + 0.133333 + 0.133333 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.1497782767 + 0.6656812429 + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + 0.1497782767 + 0.6656812429 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.1595997959 + 1.0107988119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1622598022 + 2.4338970184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9735588431 + 2.9206764698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7640552521 + 2.4297363758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7806973457 + 1.1483001709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/gradient_icon.sif b/synfig-studio/tags/0.61.08/images/gradient_icon.sif new file mode 100644 index 0000000..c202802 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/gradient_icon.sif @@ -0,0 +1,286 @@ + + + Synfig Studio Gradient Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + -0.6717824340 + 8.4043684006 + + + + + -0.4427109957 + -1.6098945141 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.3365411758 + -2.3365411758 + + + + + 2.3365411758 + -2.3365411758 + + + + + 3.1153881550 + -3.1153881550 + + + + + -1.5576940775 + -3.1153881550 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.3365411758 + -2.3365411758 + + + + + 2.3365411758 + 2.3365411758 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -2.0769255161 + -2.0769255161 + + + + + 2.0769255161 + 2.0769255161 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.8173098564 + -1.8173098564 + + + + + 1.8173098564 + 1.8173098564 + + + + + + + + + + + + + + + + + + + + + + -2.2322316170 + 0.0718793422 + + + + + 2.4828822613 + 0.0593391433 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/group_icon.sif b/synfig-studio/tags/0.61.08/images/group_icon.sif new file mode 100644 index 0000000..f84e075 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/group_icon.sif @@ -0,0 +1,2065 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + -0.6999999881 + -0.1000000015 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.6999999881 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 1.000000 + 0.250000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 1.000000 + 0.250000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.3589743674 + -0.1217948720 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 1.000000 + 0.250000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 1.000000 + 0.250000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/info_icon.sif b/synfig-studio/tags/0.61.08/images/info_icon.sif new file mode 100644 index 0000000..38b549e --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/info_icon.sif @@ -0,0 +1,106 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 0.000000 + 0.265778 + 0.265778 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + i + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 2.2500000000 + 2.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/installer_logo.sif b/synfig-studio/tags/0.61.08/images/installer_logo.sif new file mode 100644 index 0000000..08f797b --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/installer_logo.sif @@ -0,0 +1,568 @@ + + + Untitled0 + + + + + + + + + + + + + -0.0000000000 + -3.9643168449 + + + + + -0.0000000000 + 4.0161380768 + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.396489 + 0.634903 + 1.000000 + + + 0.000000 + 0.122969 + 0.361867 + 0.985507 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + -1.2437071800 + 0.9068698287 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1481799483 + -0.1481799483 + + + + + 0.3109268248 + 0.3109268248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0099999998 + -3.5756583214 + + + + + + + + + + + + + + + + + -0.0990606323 + 0.4690153301 + + + + + -0.0990606323 + -0.0307283755 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.0734415054 + 0.6111532450 + + + + + 2.1833333969 + -0.0333333351 + + + + + -2.5265016556 + -0.3445624709 + + + + + 2.6473100185 + -0.3445624709 + + + + + 2.1666667461 + 0.0170713197 + + + + + -2.0499999523 + 0.0170713197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.0000000000 + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.4500000179 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + -2.5000000000 + 0.7500000000 + + + + + 2.5000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + S Y N F I G + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.3000000119 + 0.2166666687 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.5666666627 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/installer_logo_osx.sif b/synfig-studio/tags/0.61.08/images/installer_logo_osx.sif new file mode 100644 index 0000000..077ea30 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/installer_logo_osx.sif @@ -0,0 +1,613 @@ + + + Untitled0 + + + + + + + + + + + + + 5.7804918289 + 0.0777316988 + + + + + -0.7748818994 + 0.0777316988 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + -0.0000000000 + 4.0485877991 + + + + + -0.0000000000 + -3.2156248093 + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.396489 + 0.634903 + 1.000000 + + + 0.000000 + 0.122969 + 0.361867 + 0.985507 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + -0.6178145409 + -2.1114645004 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1481799483 + -0.1481799483 + + + + + 0.3109268248 + 0.3109268248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3659884930 + 3.2156248093 + + + + + + + + + + + + + + + + + -0.0990606323 + 0.4690153301 + + + + + -0.0990606323 + -0.0307283755 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.0734415054 + 0.6111532450 + + + + + 2.1833333969 + -0.0333333351 + + + + + -2.5265016556 + -0.3445624709 + + + + + 2.6473100185 + -0.3445624709 + + + + + 2.1666667461 + 0.0170713197 + + + + + -2.0499999523 + 0.0170713197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.0000000000 + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.4500000179 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + -2.5000000000 + 0.7500000000 + + + + + 2.5000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + S Y N F I G + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.3000000119 + 0.2166666687 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.5666666627 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/integer_icon.sif b/synfig-studio/tags/0.61.08/images/integer_icon.sif new file mode 100644 index 0000000..48fe158 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/integer_icon.sif @@ -0,0 +1,66 @@ + + + Untitled0 + + + + + + + + + + + + 123 +456 + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 1.2656250000 + 1.2968750000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/keyframe_icon.sif b/synfig-studio/tags/0.61.08/images/keyframe_icon.sif new file mode 100644 index 0000000..3474cc8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/keyframe_icon.sif @@ -0,0 +1,331 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.0000000000 + 0.2500000000 + + + + + 1.7500000000 + 0.2500000000 + + + + + 1.7500000000 + -0.7500000000 + + + + + 1.5000000000 + -0.7500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + 1.2500000000 + 0.0000000000 + + + + + 1.2500000000 + -0.2500000000 + + + + + 1.0000000000 + -0.2500000000 + + + + + 1.0000000000 + 0.0000000000 + + + + + 0.7500000000 + 0.0000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + -0.2500000000 + -0.5000000000 + + + + + -1.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.377273 + 0.210909 + 0.054545 + 1.000000 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0937500000 + -0.0937500000 + + + + + 0.1250000000 + 0.1250000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/keyframe_lock_icon.sif b/synfig-studio/tags/0.61.08/images/keyframe_lock_icon.sif new file mode 100644 index 0000000..bd8f202 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/keyframe_lock_icon.sif @@ -0,0 +1,2407 @@ + + + Keyframe Lock Button + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + -1.5000000000 + + + + + 2.0000000000 + -1.5000000000 + + + + + 2.0000000000 + 0.7500000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.0000000000 + 2.0000000000 + + + + + 0.0000000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + -2.0000000000 + 0.7500000000 + + + + + -2.0000000000 + -1.2500000000 + + + + + -0.7500000000 + -1.2500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 2.0000000000 + + + + + 2.0000000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + 0.493452 + 0.491552 + 0.491552 + 1.000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.0000000000 + + + + + 0.7500000000 + 0.0000000000 + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.505263 + 0.505263 + 0.505263 + 1.000000 + + + 0.485435 + 0.484084 + 0.485435 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0900000036 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + -0.2151769996 + -0.6455309987 + + + + + 0.2151769996 + -0.6455309987 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.280608 + 0.280608 + 0.280608 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0000000000 + 1.6250000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6250000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3750000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0000000000 + 1.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3750000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.6250000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0000000000 + 1.6250000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6250000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3750000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0000000000 + 1.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3750000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.6250000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + 0.2500000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + -0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + -1.0000000000 + 0.7500000000 + + + + + + + + + + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + 0.0192307699 + -0.6346153617 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + -0.5000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + -1.0000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -1.0000000000 + -0.7500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + 0.352394 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + -0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + -1.0000000000 + 0.7500000000 + + + + + + + + + + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + 0.0192307699 + -0.6346153617 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + -0.5000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + -1.0000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + -0.7500000000 + + + + + + + + + -1.0000000000 + -0.7500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + 1.0000000000 + -0.7500000000 + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + 0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 0.5000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + 1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + 0.7500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + 0.352394 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + 1.0000000000 + -0.7500000000 + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + 0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 0.5000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + 1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + -0.0000000000 + -0.0000000000 + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + 0.7500000000 + + + + + + + + + + + + + + -0.0000000000 + 0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.2500000000 + + + + diff --git a/synfig-studio/tags/0.61.08/images/layer_icon.sif b/synfig-studio/tags/0.61.08/images/layer_icon.sif new file mode 100644 index 0000000..73c8b73 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/layer_icon.sif @@ -0,0 +1,332 @@ + + + Untitled0 + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + -0.6999999881 + -0.1000000015 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.6999999881 + + + + + + + + + + + + + + + + + + + + 0.5000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + -0.2000000030 + + + + + + + + + + + + + + + + + + + + + -0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/list_icon.sif b/synfig-studio/tags/0.61.08/images/list_icon.sif new file mode 100644 index 0000000..07c99dc --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/list_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + LIST + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.9375000000 + 1.0781250000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/logo.sif b/synfig-studio/tags/0.61.08/images/logo.sif new file mode 100644 index 0000000..2aab820 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/logo.sif @@ -0,0 +1,3062 @@ + + + Voria Logo + + + WhiteBG + + + + + + + + + + + + + 0.0000000000 + 0.0273553673 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0495141000 + -0.0378637239 + + + + + 0.1417397559 + 0.1417397559 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.333333 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + -1.3750000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 1.3999999762 + 1.3999999762 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + -0.000000 + + + + + -0.000000 + -0.000000 + -0.000000 + 1.000000 + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.7300000191 + -0.2599999905 + + + + + + + + + 0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + 0.3750000000 + -0.6250000000 + + + + + 0.4900000095 + -0.6999999881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + -0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + -0.5000000000 + -0.5000000000 + + + + + -0.8012820482 + -0.5311999917 + + + + + + + + + -0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + -0.3750000000 + -0.6250000000 + + + + + -0.5833333135 + -0.3968000114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + 0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + 0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + -0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + -0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + -0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + -0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + 0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + 0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + -0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + -0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + -0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + 0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + 0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + 0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2019230723 + -1.2694432735 + + + + + + + + + + + + + + 0.1888111830 + -0.3540983498 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2045454532 + -1.2720662355 + + + + + + + + + + + + + + -0.1730769277 + -0.3304918110 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + 0.0000000000 + 0.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.3750000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0000000150 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.1250000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0500000007 + -0.0500000007 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + diff --git a/synfig-studio/tags/0.61.08/images/meta_data_icon.sif b/synfig-studio/tags/0.61.08/images/meta_data_icon.sif new file mode 100644 index 0000000..dc77e29 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/meta_data_icon.sif @@ -0,0 +1,80 @@ + + + Untitled0 + + + + + + + + + + + + + + + + META + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial Black + + + + + + + + + + + + + + + + 0.7919595838 + 0.7919595838 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/mirror_icon.sif b/synfig-studio/tags/0.61.08/images/mirror_icon.sif new file mode 100644 index 0000000..56a55f1 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/mirror_icon.sif @@ -0,0 +1,3147 @@ + + + Synfig Studio Mirror Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.300000 + 0.300000 + 0.300000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.5961599350 + 2.5961599350 + + + + + 2.6703450680 + -2.1673052311 + + + + + -3.2451999187 + -1.6225999594 + + + + + 2.7584199905 + -1.6225999594 + + + + + 3.2451999187 + -2.9206800461 + + + + + -2.7584199905 + -2.9206800461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4867799878 + -0.6490399837 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + -3.6021683216 + -1.4278855324 + + + + + 2.3689925671 + 2.9855811596 + + + + + + + + + + + + + + + + + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + + + -3.3425526619 + -1.1682698727 + + + + + 1.8497612476 + 2.7259654999 + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + 1.9471199512 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.2980769873 + -2.8557741642 + + + + + 3.6346211433 + 0.5192298293 + + + + + + + + + + + + + + + + + + + + + + -1.7848600149 + -1.1358200312 + + + + + 6.0036196709 + -1.1358200312 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4867799878 + -0.6490399837 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + -3.6021683216 + -1.4278855324 + + + + + 2.3689925671 + 2.9855811596 + + + + + + + + + + + + + + + + + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + + + -3.3425526619 + -1.1682698727 + + + + + 2.1093769073 + 2.7259654999 + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + 1.9471199512 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.2980769873 + -2.8557741642 + + + + + 3.6346211433 + 0.5192298293 + + + + + + + + + + + + + + + + + + + + + + -1.7848600149 + 1.9471199512 + + + + + 2.9206800461 + -4.0564999580 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + -0.3245199919 + 3.4074599743 + + + + + 2.4338998795 + -1.6225999594 + + + + + -0.3245199919 + 3.4074599743 + + + + + 2.7584199905 + 4.5432796478 + + + + + 2.7584199905 + -2.7584199905 + + + + + -0.3245199919 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.3631684780 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.5254285336 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7141284943 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0582443662 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.5185843706 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5254285336 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.3631684780 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3896085024 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0650885105 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0650885105 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2537885308 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0650885105 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0650885105 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3896085024 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.3631684780 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.5254285336 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7141284943 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0582443662 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1940643787 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.5185843706 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5254285336 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.8763884306 + 0.0000000000 + + + + + -2.2009084225 + 0.0000000000 + + + + + + 0.011238 + 0.065656 + 0.247059 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.8112999797 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.3245199919 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3245199919 + 0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.9735599756 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 1.1358199120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + 0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.6490399837 + 0.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + 0.011238 + 0.065656 + 0.247059 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/navigator_icon.sif b/synfig-studio/tags/0.61.08/images/navigator_icon.sif new file mode 100644 index 0000000..f09c758 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/navigator_icon.sif @@ -0,0 +1,451 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + 0.000000 + 0.411657 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.068166 + 0.086724 + 0.444444 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.7500000000 + + + + + -0.5000000000 + 1.0000000000 + + + + + 0.5000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + 0.068166 + 0.086724 + 0.444444 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 1.7500000000 + 0.0000000000 + + + + + 1.0000000000 + 0.5000000000 + + + + + 1.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + 0.068166 + 0.086724 + 0.444444 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + -1.7500000000 + + + + + 0.5000000000 + -1.0000000000 + + + + + -0.5000000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + 0.068166 + 0.086724 + 0.444444 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.7500000000 + 0.0000000000 + + + + + -1.0000000000 + -0.5000000000 + + + + + -1.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAV + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.5000000000 + 0.7500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1562500000 + 0.1562500000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/normal_icon.sif b/synfig-studio/tags/0.61.08/images/normal_icon.sif new file mode 100644 index 0000000..8934fb8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/normal_icon.sif @@ -0,0 +1,310 @@ + + + Untitled0 + + + + + + + + + + + + + -0.000000 + 0.147464 + 0.764577 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 4.594794 + 4.594794 + 4.594794 + 1.000000 + + + + + 0.1005025133 + -0.0201005023 + + + + + + + + + + + + + + + + + + + 0.4000000060 + 0.4000000060 + + + + + -0.8000000119 + 1.6000000238 + + + + + -0.8000000119 + -0.2000000030 + + + + + -0.4000000060 + 0.0000000000 + + + + + 0.4000000060 + -1.6000000238 + + + + + 0.8000000119 + -1.3999999762 + + + + + -0.0000000000 + 0.2000000030 + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1005025133 + -0.0201005023 + + + + + + + + + + + + + + + + + + + 0.4000000060 + 0.4000000060 + + + + + -0.8000000119 + 1.6000000238 + + + + + -0.8000000119 + -0.2000000030 + + + + + -0.4000000060 + 0.0000000000 + + + + + 0.4000000060 + -1.6000000238 + + + + + 0.8000000119 + -1.3999999762 + + + + + -0.0000000000 + 0.2000000030 + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/pastecanvas_icon.sif b/synfig-studio/tags/0.61.08/images/pastecanvas_icon.sif new file mode 100644 index 0000000..58e809e --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/pastecanvas_icon.sif @@ -0,0 +1,2065 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + -0.6999999881 + -0.1000000015 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.6999999881 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.3589743674 + -0.1217948720 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/polygon_icon.sif b/synfig-studio/tags/0.61.08/images/polygon_icon.sif new file mode 100644 index 0000000..03f2411 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/polygon_icon.sif @@ -0,0 +1,886 @@ + + + Synfig Studio Polygon Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.012910 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.1808688790 + -0.3216028810 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -2.7224798203 + + + + + -2.7515196800 + -2.7079598904 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 2.5961568356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.3407971859 + 0.4787994027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3033983707 + -2.2077972889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4895981550 + -2.2077972889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.3008971214 + 0.4920994043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 2.2875971794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.0747973919 + 0.4388994575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1171985865 + -1.9816975594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3432983160 + -1.9550975561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0747973919 + 0.4388994575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.428529 + 0.428529 + 0.428529 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 2.0215976238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.8619977236 + 0.3989995122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.9708988070 + -1.7821978331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1836985350 + -1.7821978331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8619977236 + 0.3457995653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5355694294 + -3.3529567719 + + + + + -0.6339452267 + 0.8150724769 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/real_icon.sif b/synfig-studio/tags/0.61.08/images/real_icon.sif new file mode 100644 index 0000000..783619c --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/real_icon.sif @@ -0,0 +1,281 @@ + + + Synfig Studio Canvas Icon + + + Untitled + + + + + + + + + + + + + 1.000000 + 0.300000 + 0.100000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.2187500000 + -0.2812500000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.2031250000 + -0.2656250000 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 0.4215 + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.3281250000 + 0.3828125000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.2624999881 + -0.8750000000 + + + + + + + + + + + + + + + + + + + + + 3.1415 + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.4046874940 + 0.6234375238 + + + + + 0.5000000000 + 0.5000000000 + + + + + -0.1312499940 + 0.2843750119 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/rectangle_icon.sif b/synfig-studio/tags/0.61.08/images/rectangle_icon.sif new file mode 100644 index 0000000..dac8a49 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/rectangle_icon.sif @@ -0,0 +1,286 @@ + + + Synfig Studio Rectangle Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + -0.6717824340 + 8.4043684006 + + + + + -0.4427109957 + -1.6098945141 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.3365411758 + -2.3365411758 + + + + + 2.3365411758 + -2.3365411758 + + + + + 3.1153881550 + -3.1153881550 + + + + + -1.5576940775 + -3.1153881550 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.3365411758 + -2.3365411758 + + + + + 2.3365411758 + 2.3365411758 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -2.0769255161 + -2.0769255161 + + + + + 2.0769255161 + 2.0769255161 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.8173098564 + -1.8173098564 + + + + + 1.8173098564 + 1.8173098564 + + + + + + + + + + + + + + + + + + + + + + 2.1013975143 + -2.0880973339 + + + + + -1.7954977751 + 1.7954977751 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/rename_icon.sif b/synfig-studio/tags/0.61.08/images/rename_icon.sif new file mode 100644 index 0000000..89e1fdc --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/rename_icon.sif @@ -0,0 +1,3542 @@ + + + Untitled1 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -4.3990993500 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4.3990993500 + -6.8018569946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + -6.8018569946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1830623448 + 3.0621335506 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -4.3990993500 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4.3990993500 + -6.8018569946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + -6.8018569946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5564579964 + 0.1537004113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4162864685 + 2.2938718796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 2.6752145290 + 2.6752145290 + + + + + 0.5000000000 + 0.5000000000 + + + + + -1.7238850594 + -4.1266427040 + + + + + + + + + + + + + + + + + + + + + + + + a + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 2.6752145290 + 3.2102572918 + + + + + 0.5000000000 + 0.5000000000 + + + + + -1.7238850594 + -0.3813425004 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -3.3290138245 + -1.9864711761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1187564358 + 1.2237862349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0214152336 + -4.1266427040 + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.013228 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.2707099915 + -0.5653312802 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.8436625004 + -1.2998692989 + + + + + 2.9688537121 + 2.2388386726 + + + + + 2.9537954330 + -0.7728276849 + + + + + -2.5876708031 + -2.2636024952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0214152336 + -4.1266427040 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.4603400230 + + + + + 2.1093800068 + 2.9206798077 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.706375 + 0.315940 + 0.001616 + 1.000000 + + + 0.625088 + 0.423825 + 0.000000 + 1.000000 + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1906459332 + -1.2300417423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 0.718828 + 0.313430 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1958444118 + -1.2352403402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.718828 + 0.323086 + 0.100841 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225999594 + 1.7848598957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4603400230 + 2.4338998795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112999797 + 2.5961599350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.485435 + 0.487383 + 0.487383 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.4603400230 + 2.4338998795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225999594 + 1.7848598957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206798077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112999797 + 2.5961599350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206798077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.1622599959 + + + + + -0.9735599756 + 0.6490399837 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + -0.6490399837 + 0.4867799878 + + + + + -1.1358199120 + 0.9735599756 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1830623448 + 3.0621335506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/rotate_icon.sif b/synfig-studio/tags/0.61.08/images/rotate_icon.sif new file mode 100644 index 0000000..7fab72e --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/rotate_icon.sif @@ -0,0 +1,2393 @@ + + + Synfig Studio Rotate Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.300000 + 0.300000 + 0.300000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.5961599350 + 2.5961599350 + + + + + 2.6703450680 + -2.1673052311 + + + + + -3.2451999187 + 0.8112999797 + + + + + 1.7848598957 + 0.8112999797 + + + + + 2.2716398239 + -0.3245199919 + + + + + -2.9206800461 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.300000 + 0.300000 + 0.300000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.5961599350 + 2.5961599350 + + + + + 2.6703450680 + -2.1673052311 + + + + + -2.2716398239 + -1.4603400230 + + + + + 2.7584199905 + -1.4603400230 + + + + + 3.2451999187 + -2.5961599350 + + + + + -1.9471199512 + -2.5961599350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4867799878 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + -3.3425526619 + 0.0000000000 + + + + + 0.5516827703 + 3.1153881550 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -3.0829367638 + 0.2596156895 + + + + + 0.2920670807 + 2.8557724953 + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + 1.9471199512 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.0384613276 + -1.4278886318 + + + + + 1.8173112869 + 0.6490369439 + + + + + + + + + + + + + + + + + + + + + + -1.7848600149 + 1.9471199512 + + + + + 2.9206800461 + -4.0564999580 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + -1.1146180630 + -2.0209679604 + + + + + 2.5569021702 + 0.9162484407 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -0.8734864593 + -1.7986452579 + + + + + 2.3052372932 + 0.6841450930 + + + + + + + + + + + + + + + + + + + + + + 0.1622599959 + -0.3245199919 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -0.8288472295 + -1.2672259808 + + + + + 1.9548872709 + 0.7829568982 + + + + + + + + + + + + + + + + + + + + + + 2.0723481178 + -2.8204009533 + + + + + -2.8938808441 + 3.8485348225 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + 0.9735599756 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -4.0240430832 + -2.9855804443 + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 0.8437545300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7524110079 + 1.4927937984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7524110079 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1033717394 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1418344975 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1418344975 + 1.6226016283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 1.2331780195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.303279 + 0.295082 + 0.303279 + 0.333333 + + + + + -0.1894220859 + -0.1675494760 + + + + + 0.1000007167 + 0.1000007167 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247059 + 1.000000 + + + + + -4.0240430832 + -2.9855804443 + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 0.8437545300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7524110079 + 1.4927937984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7524110079 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1033717394 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1418344975 + 1.8822172880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1418344975 + 1.6226016283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.7908737659 + 1.2331780195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.1622599959 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206800461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1742811203 + 2.4014453888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1742811203 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8233203888 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9795694351 + 1.1033670902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358184814 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848576307 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.2716398239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358184814 + 2.5312533379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.1622599959 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206800461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1742811203 + 2.4014453888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1742811203 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8233203888 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9795694351 + 1.1033670902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358184814 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848576307 + 1.8822140694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.2716398239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358184814 + 2.5312533379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/saveall_icon.sif b/synfig-studio/tags/0.61.08/images/saveall_icon.sif new file mode 100644 index 0000000..98d9282 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/saveall_icon.sif @@ -0,0 +1,66 @@ + + + Untitled0 + + + + + + + + + + + + SAVE +ALL + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.7500000000 + 1.0000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/scale_icon.sif b/synfig-studio/tags/0.61.08/images/scale_icon.sif new file mode 100644 index 0000000..cd3c687 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/scale_icon.sif @@ -0,0 +1,3494 @@ + + + Synfig Studio Scale Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + -0.6717824340 + 8.4043684006 + + + + + -0.4427109957 + -1.6098945141 + + + + + + 0.064115 + 0.064115 + 0.064115 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + -1.1483865976 + 1.7675857544 + + + + + 2.6703450680 + -2.1673052311 + + + + + -1.6225999594 + -2.2716398239 + + + + + 2.7584199905 + -2.2716398239 + + + + + 3.4074599743 + -3.0829398632 + + + + + -1.1358199120 + -3.0829398632 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + -1.8173098564 + -2.5961568356 + + + + + 3.1153881550 + 1.5576940775 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.5576940775 + -2.3365411758 + + + + + 2.8557724953 + 1.2980784178 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -1.2980784178 + -2.0769255161 + + + + + 2.5961568356 + 1.0384627581 + + + + + + + + + + + + + + + + + + + + + + -1.7848600149 + 1.9471199512 + + + + + 2.9206800461 + -4.0564999580 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + -3.1153881550 + 0.2596156895 + + + + + 0.0000000000 + 2.8557724953 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -2.8557724953 + 0.5192313790 + + + + + -0.2596156895 + 2.5961568356 + + + + + + + + + + + + + + + + + + + + + + -1.7848598957 + 1.9471199512 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + -0.8112969995 + -1.1682728529 + + + + + 1.2656285763 + 0.3894212246 + + + + + + + + + + + + + + + + + + + + + + -1.7848600149 + 1.9471199512 + + + + + 2.9206800461 + -4.0564999580 + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2769572735 + -1.7023979425 + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 0.6490399837 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 1.2980799675 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9788787961 + -1.5747181177 + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 0.6490399837 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + 1.2980799675 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.9471199512 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.2716398239 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.9471199512 + 1.9471199512 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0957598835 + -2.7983164787 + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 2.2716398239 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.7848598957 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.2980799675 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 0.8112999797 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 0.3245199919 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + -0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0286085363 + 0.0443108305 + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 2.2716398239 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.7848598957 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 1.2980799675 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 0.8112999797 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 0.3245199919 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + -0.1622599959 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.064115 + 0.247404 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.7130378485 + 2.0215976238 + + + + + -2.0641574860 + 1.6385580301 + + + + + 0.7235190868 + -0.7979990244 + + + + + -0.0033114245 + -1.5410472155 + + + + + 1.8586863279 + -1.5304071903 + + + + + 1.8513576984 + 0.3191995919 + + + + + 1.0852786303 + -0.4468794465 + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.7236778736 + 1.7875177860 + + + + + -1.8407176733 + 1.6704779863 + + + + + 0.9682388306 + -0.7979990244 + + + + + 0.4222880602 + -1.3601673841 + + + + + 1.6990864277 + -1.3601673841 + + + + + 1.6704779863 + -0.1063998714 + + + + + 1.1065586805 + -0.6703191996 + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/segment_icon.sif b/synfig-studio/tags/0.61.08/images/segment_icon.sif new file mode 100644 index 0000000..9ec6a04 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/segment_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + SEG + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 1.0000000000 + 1.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/select_all_child_layers_icon.sif b/synfig-studio/tags/0.61.08/images/select_all_child_layers_icon.sif new file mode 100644 index 0000000..2b2d11c --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/select_all_child_layers_icon.sif @@ -0,0 +1,2948 @@ + + + Untitled1 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.4000000060 + 0.4000000060 + + + + + -0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + -0.4000000060 + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.3000000119 + 0.3000000119 + + + + + -0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + -0.3000000119 + + + + + 0.3000000119 + 0.3000000119 + + + + + + + + Untitled0 + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 0.8000000119 + + + + + -0.8000000119 + -0.2000000030 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.8000000119 + + + + + + + + + + + + + + + + + + 1.000000 + 0.900000 + 0.600000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + -0.6999999881 + 0.6999999881 + + + + + -0.6999999881 + -0.1000000015 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.6999999881 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.3589743674 + -0.1217948720 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.6217948794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.3782051206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.850000 + 0.640000 + 0.200000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.7500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + -0.0012820513 + 0.0064102565 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.4871794879 + 0.5750963688 + + + + + + + + + + + + + + + + + + + + + -0.8560000062 + 0.8719999790 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -0.0209230706 + 0.0100513026 + + + + + + + + + + + + + + + + + + + + + + + + 0.0102564106 + -1.7641025782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7692307234 + -0.0102564106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7641025782 + -1.7641025782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0209230706 + 0.0100513026 + + + + + + + + + + + + 0.0102564106 + -1.7641025782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7692307234 + -0.0102564106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7641025782 + -1.7641025782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/sif_icon.sif b/synfig-studio/tags/0.61.08/images/sif_icon.sif new file mode 100644 index 0000000..68875fe --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/sif_icon.sif @@ -0,0 +1,1236 @@ + + + Untitled0 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.5091290474 + 1.5202518702 + + + + + + + + + + + + + + -0.0000000000 + 1.2000000477 + + + + + 1.2000000477 + -1.2000000477 + + + + + + + + + 1.5202518702 + 0.5133263469 + + + + + + + + + + + + + + 1.2000000477 + -1.2000000477 + + + + + -1.2000000477 + 0.0000000000 + + + + + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + 0.0000000000 + 1.2000000477 + + + + + + + + + + + + + + + + + + + + 1.0499999523 + 1.0499999523 + + + + + 0.6999999881 + 0.6999999881 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.5091290474 + 1.5202518702 + + + + + + + + + + + + + + -0.0000000000 + 1.2000000477 + + + + + 1.2000000477 + -1.2000000477 + + + + + + + + + 1.5202518702 + 0.5133263469 + + + + + + + + + + + + + + 1.2000000477 + -1.2000000477 + + + + + -1.2000000477 + 0.0000000000 + + + + + + + + + 0.4000000060 + 0.4000000060 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + 0.0000000000 + 1.2000000477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 1.6000000238 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + 0.0000000000 + -1.7999999523 + + + + + + + + + -0.8000000119 + -1.6000000238 + + + + + + + + + + + + + + -0.0000000000 + -2.4000000954 + + + + + 1.7999999523 + 0.0000000000 + + + + + + + + + 1.6000000238 + -1.6000000238 + + + + + + + + + + + + + + 1.7999999523 + -0.0000000000 + + + + + -0.0000000000 + 1.7999999523 + + + + + + + + + 1.6000000238 + 0.2000000030 + + + + + + + + + + + + + + -0.0000000000 + 1.7999999523 + + + + + 0.0000000000 + 0.6000000238 + + + + + + + + + 1.2000000477 + 0.6000000238 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + -0.6000000238 + 0.0000000000 + + + + + + + + + 0.6000000238 + 0.6000000238 + + + + + + + + + + + + + + -0.6000000238 + -0.0000000000 + + + + + 0.0000000000 + 0.6000000238 + + + + + + + + + 0.6000000238 + 1.2000000477 + + + + + + + + + + + + + + 0.0000000000 + 1.2000000477 + + + + + -0.0000000000 + 0.6000000238 + + + + + + + + + 0.2000000030 + 1.6000000238 + + + + + + + + + + + + + + -0.6000000238 + -0.0000000000 + + + + + -0.6000000238 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + 1.0499999523 + 1.0499999523 + + + + + 0.8500000238 + 0.8500000238 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8000000119 + 1.6000000238 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + 0.0000000000 + -1.7999999523 + + + + + + + + + -0.8000000119 + -1.6000000238 + + + + + + + + + + + + + + -0.0000000000 + -2.4000000954 + + + + + 1.7999999523 + 0.0000000000 + + + + + + + + + 1.6000000238 + -1.6000000238 + + + + + + + + + + + + + + 1.7999999523 + -0.0000000000 + + + + + -0.0000000000 + 1.7999999523 + + + + + + + + + 1.6000000238 + 0.2000000030 + + + + + + + + + + + + + + -0.0000000000 + 1.7999999523 + + + + + 0.0000000000 + 0.6000000238 + + + + + + + + + 1.2000000477 + 0.6000000238 + + + + + + + + + + + + + + -1.2000000477 + -0.0000000000 + + + + + -0.6000000238 + 0.0000000000 + + + + + + + + + 0.6000000238 + 0.6000000238 + + + + + + + + + + + + + + -0.6000000238 + -0.0000000000 + + + + + 0.0000000000 + 0.6000000238 + + + + + + + + + 0.6000000238 + 1.2000000477 + + + + + + + + + + + + + + 0.0000000000 + 1.2000000477 + + + + + -0.0000000000 + 0.6000000238 + + + + + + + + + 0.2000000030 + 1.6000000238 + + + + + + + + + + + + + + -0.6000000238 + -0.0000000000 + + + + + -0.6000000238 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.2307692319 + 0.7179487348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + -0.4000000060 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0750000030 + -0.0750000030 + + + + + 0.1500000060 + 0.1500000060 + + + + + + + + + + + + + + + + + + + + -0.2000000030 + 0.0000000000 + + + + diff --git a/synfig-studio/tags/0.61.08/images/sketch_icon.sif b/synfig-studio/tags/0.61.08/images/sketch_icon.sif new file mode 100644 index 0000000..201a04c --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/sketch_icon.sif @@ -0,0 +1,2351 @@ + + + Synfig Studio Sketch Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 1.000000 + + + 0.013228 + 0.012910 + 0.012910 + 0.731343 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.2707099915 + -0.5653312802 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.8436625004 + -1.2998692989 + + + + + 2.9688537121 + 2.2388386726 + + + + + 2.9537954330 + -0.7728276849 + + + + + -2.5876708031 + -2.2636024952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.4867799878 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.4603400230 + + + + + 2.1093800068 + 2.9206798077 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.706375 + 0.315940 + 0.001616 + 1.000000 + + + 0.625088 + 0.423825 + 0.000000 + 1.000000 + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1906459332 + -1.2300417423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 0.718828 + 0.313430 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1958444118 + -1.2352403402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.718828 + 0.323086 + 0.100841 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.4867799878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225999594 + 1.7848598957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4603400230 + 2.4338998795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112999797 + 2.5961599350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.485435 + 0.487383 + 0.487383 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.4603400230 + 2.4338998795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6225999594 + 1.7848598957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206798077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8112999797 + 2.5961599350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9471199512 + 2.1093800068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1358199120 + 2.9206798077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.1622599959 + + + + + -0.9735599756 + 0.6490399837 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + -0.6490399837 + 0.4867799878 + + + + + -1.1358199120 + 0.9735599756 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 2.5961599350 + 2.7584199905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -1.4603400230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.5961599350 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.4338998795 + -1.1358200312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.7848598957 + 3.5697197914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.4338998795 + 3.4074599743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1830623448 + 3.0621335506 + + + + diff --git a/synfig-studio/tags/0.61.08/images/smooth_move_icon.sif b/synfig-studio/tags/0.61.08/images/smooth_move_icon.sif new file mode 100644 index 0000000..2e184b7 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/smooth_move_icon.sif @@ -0,0 +1,3458 @@ + + + Synfig Studio Smooth Move Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.169382 + 0.175873 + 0.175873 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + -0.1586221159 + -0.3810055256 + + + + + + + + + + + + + + + + -2.5961599350 + 2.5961599350 + + + + + 2.6703450680 + -2.1673052311 + + + + + -3.2451999187 + -1.6225999594 + + + + + 2.7584199905 + -1.6225999594 + + + + + 3.4074599743 + -3.0829398632 + + + + + -2.5961599350 + -3.0829398632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 0.103175 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 0.404762 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 0.680000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 2.9206800461 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -3.0829398632 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358201504 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3245201111 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358201504 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.0829398632 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 1.4603400230 + -0.9735599756 + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.9735599756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.6490400434 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716400623 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.9735599756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 1.4603400230 + 1.6225999594 + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2716400623 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 0.9735599756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.6490400434 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.011238 + 0.065656 + 0.247404 + 1.000000 + + + + + 0.3245199919 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.9206800461 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 1.4603400230 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.8112999797 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + -0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 1.4603400230 + 1.6225999594 + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.6225999594 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4603400230 + 0.8112999797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.8112999797 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.3245199919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -1.6225999594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 2.9206800461 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.9206800461 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3896085024 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.4867799878 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1358199120 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3896085024 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.9206800461 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.447059 + 0.623529 + 0.811765 + 1.000000 + + + + + 0.3245199919 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + -0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.7584199905 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + 0.6490399837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.1093800068 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2980799675 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1622599959 + 0.1622599959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/splash_screen-0.61.07.sif b/synfig-studio/tags/0.61.08/images/splash_screen-0.61.07.sif new file mode 100644 index 0000000..4844e6c --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/splash_screen-0.61.07.sif @@ -0,0 +1,1992 @@ + + + Splash Screen Graphic + This is the splash screen graphic which is displayed when Synfig Studio starts. + + + + + + + + + + Aqua Sphere + This aqua-colored sphere reminds me of something from MacOS X. + + + + + + + + + + + + + 0.000000 + 0.744518 + 0.825040 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.587045 + 0.941024 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.1500000060 + -0.3499999940 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.762890 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + SYNFIG Studio + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + luxisr + + + + + + + + + + + + + + + + 0.1899999976 + 0.2000000030 + + + + + 1.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0500000007 + 0.0500000007 + + + + + + + + + + + + + + + + + + SYNFIG Studio + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + luxisr + + + + + + + + + + + + + + + + 0.1899999976 + 0.2000000030 + + + + + 1.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + 0.0000000000 + 2.7500000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.7500000000 + 2.5000000000 + + + + + 1.7500000000 + 2.2500703335 + + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 2.5000000000 + + + + + -1.2500000000 + 2.2500000000 + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 2.3697917461 + + + + + + + + + + + + + + + + A + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + arial + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + 1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + H + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + arial + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + P + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + arial + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + L + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + arial + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + -0.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + A + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + arial + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + -1.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 2.3711292744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5000000000 + 2.5000000000 + + + + + 1.5000000000 + 2.2500000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.483334 + 0.483334 + 0.483334 + 1.000000 + + + 0.801383 + 0.801383 + 0.801384 + 1.000000 + + + 0.546153 + 0.546153 + 0.546153 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0416666679 + -0.0416666679 + + + + + 0.0416666679 + 0.0416666679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + 0.920368 + 0.920368 + 0.920368 + 0.000000 + + + 0.934270 + 0.934270 + 0.934270 + 0.820503 + + + 0.929226 + 0.929226 + 0.929226 + 0.404875 + + + 1.000000 + 1.000000 + 1.000000 + 0.425000 + + + 0.876978 + 0.876978 + 0.876978 + 0.064816 + + + 0.940432 + 0.940432 + 0.940432 + 0.353949 + + + 0.976427 + 0.976427 + 0.976427 + 0.252097 + + + 1.000000 + 1.000000 + 1.000000 + 0.800000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 0.655000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 0.997147 + 0.997147 + 0.997147 + 0.752147 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 0.697727 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.958579 + 0.958579 + 0.958579 + 0.150345 + + + 0.930914 + 0.930914 + 0.930914 + 1.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 0.992545 + 0.992545 + 0.992545 + 0.537339 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.525000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.493478 + 1.439264 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0374999978 + 0.0374999978 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + 0.013829 + 0.013829 + 0.013829 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1041666642 + 0.1041666642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0099999998 + 0.1424999982 + + + + + + + + + + + + + + + + + -0.0990606323 + 0.4690153301 + + + + + -0.0990606323 + -0.0307283755 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.0734415054 + 0.6111532450 + + + + + 2.1833333969 + -0.0333333351 + + + + + -2.5265016556 + -0.3445624709 + + + + + 2.6473100185 + -0.3445624709 + + + + + 2.1666667461 + 0.0170713197 + + + + + -2.0499999523 + 0.0170713197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.0000000000 + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.4500000179 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.5000000000 + 0.7500000000 + + + + + 2.5000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + S Y N F I G + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.3000000119 + 0.2166666687 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.5666666627 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + 2.5000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.5000000000 + 2.5000000000 + + + + + 1.5000000000 + -1.0000000000 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/splash_screen.sif b/synfig-studio/tags/0.61.08/images/splash_screen.sif new file mode 100644 index 0000000..0d6edca --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/splash_screen.sif @@ -0,0 +1,3075 @@ + + + Synfig Splash Screen + Licenced under GPLv2 and above, by Aurore D. (rore) + + + + + + + + + + + + + 0.313598 + 0.000338 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -1.1452138424 + -3.9326298237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5435938835 + 3.9727866650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8817074299 + 4.0854911804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9639706612 + -4.0614352226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6097564697 + 1.9441053867 + + + + + 2.6706390381 + 0.7204564214 + + + + + + 0.557123 + 0.042463 + 0.003340 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -1.9019440413 + 3.8761827946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8512661457 + -3.8843278885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.9842073321 + -4.3029446602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2078564167 + 3.9083840847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7587983012 + 1.2034757137 + + + + + -2.5459699631 + 0.0120280515 + + + + + + 0.630060 + 0.042463 + 0.000000 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.4206847847 + 4.3431015015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2842235565 + -4.1902403831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.6706390381 + -3.7716233730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3664867878 + 4.3592019081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2520222664 + -3.1920001507 + + + + + 0.4165487289 + 2.9745466709 + + + + + + 0.557123 + 0.042463 + 0.003340 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.980719 + 0.042463 + 0.003340 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + -3.2657737732 + -2.8742499352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.5566513538 + -1.5943112373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.8919279575 + -1.9295026064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.3116415739 + -1.0915242434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.7701739073 + -2.7776460648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0939468369 + -2.1175196171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8398905396 + -3.2767660618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9708181620 + -1.9939625263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4737330675 + -0.0859501958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1700766087 + -0.6531971097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5253140926 + -0.4856014252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0411241055 + -1.7361229658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.6858868599 + -1.0141724348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.2388865948 + -2.4556331635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.5447988510 + -4.5809183121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.9598615170 + -4.1462006569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0036742054 + -0.6145212054 + + + + + 0.4034270644 + -3.2444841862 + + + + + + 0.810842 + 0.072322 + 0.000000 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.5292532444 + 3.8439815044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1935157776 + -4.0292339325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.8375414610 + -4.1419382095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5977918506 + 4.2786989212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2901196480 + -1.1311177015 + + + + + -2.6425738335 + 2.6525337696 + + + + + + 0.557123 + 0.042463 + 0.003340 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 2.8316454887 + 3.1194524765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5292532444 + -3.9004285336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2435777038 + -4.0292339325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.3723828495 + 4.1176924706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1249771118 + -0.8091048002 + + + + + -2.6908757687 + 1.3644821644 + + + + + + 0.557123 + 0.042463 + 0.003340 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 2.1393177509 + 3.3770627975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.2985641956 + -3.5462143421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5936558247 + -3.8682272434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.3808274269 + 3.7956795692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.5579345226 + -1.0828157663 + + + + + -0.7587983012 + -1.2438222170 + + + + + + 0.557123 + 0.042463 + 0.003340 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.506508 + 0.023233 + 0.033219 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.8656067848 + 3.6507737637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1106364802 + -3.9326298237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0986718982 + -3.8360259533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2274770588 + 3.7473776340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6240971088 + -0.3260854781 + + + + + -0.7587983012 + -1.2438222170 + + + + + + 0.669578 + 0.056951 + 0.000000 + 1.000000 + + + 0.313598 + 0.000338 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0342693217 + -1.4531306028 + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + 0.013829 + 0.013829 + 0.013829 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1524682790 + 0.1524682790 + + + + + + + + + + + + + + + + + + + + + + 0.833806 + 0.087474 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.3220129013 + 0.3220129013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.0503699630 + -2.0649549961 + + + + + + + + + + + + + + + + + 0.1000000015 + 0.0000000000 + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.4500000179 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -2.6026895046 + 0.7568103671 + + + + + 2.6368906498 + -0.5291483402 + + + + + + + + + + + + + + + + + + + + + S Y N F I G + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.3000000119 + 0.2166666687 + + + + + 0.5000000000 + 1.0000000000 + + + + + -0.0056594773 + 0.6860917807 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 0.106447 + 0.015346 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/string_icon.sif b/synfig-studio/tags/0.61.08/images/string_icon.sif new file mode 100644 index 0000000..04f81d5 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/string_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + STR + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 1.0000000000 + 1.1250000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/swap_colors_icon.sif b/synfig-studio/tags/0.61.08/images/swap_colors_icon.sif new file mode 100644 index 0000000..2b75b0b --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/swap_colors_icon.sif @@ -0,0 +1,308 @@ + + + Untitled1 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3750000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.1250000000 + -0.2500000000 + + + + + 0.3750000000 + -0.8750000000 + + + + + 0.8750000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.8750000000 + + + + + -0.8750000000 + 0.3750000000 + + + + + -0.2500000000 + -0.1250000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0625000000 + -0.0625000000 + + + + + 0.0625000000 + 0.0625000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + diff --git a/synfig-studio/tags/0.61.08/images/synfig_icon.sif b/synfig-studio/tags/0.61.08/images/synfig_icon.sif new file mode 100644 index 0000000..aff3ee3 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/synfig_icon.sif @@ -0,0 +1,65 @@ + + + Untitled0 + + + + + + + + + + + + + 0.0000000000 + 0.0500000007 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/time_icon.sif b/synfig-studio/tags/0.61.08/images/time_icon.sif new file mode 100644 index 0000000..04c7bf4 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/time_icon.sif @@ -0,0 +1,1198 @@ + + + Synfig Studio Time Icon + Placed in the Public Domain in 2008 by Carlos López (Genete) + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.302831 + + + + + + + + + + + 0.0000000000 + -4.1999998093 + + + + + + + + + + + + + 1.0609271526 + 0.4160498679 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.116374 + 0.093697 + 0.173189 + 0.998120 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.284698 + 0.292440 + 0.430366 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + 1.8662887812 + -2.0927865505 + + + + + -1.6451721191 + 2.3339841366 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.998689 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.116308 + 0.093644 + 0.173090 + 0.998689 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + 0.6514231563 + -0.6562495232 + + + + + -2.6456887722 + 3.5754768848 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.998689 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.998689 + + + + + + + + + + + 0.0000000000 + 0.2496299297 + + + + + + + + + + + + + + + + + + + + + + -1.4121842384 + 2.0011441708 + + + + + 1.5667328835 + -1.4603906870 + + + + + + 0.302631 + 0.302631 + 0.309557 + 0.998689 + + + 0.956527 + 0.956527 + 0.956527 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.998689 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + + 0.956527 + 0.956527 + 0.956527 + 0.000000 + + + 0.361867 + 0.361867 + 0.361867 + 0.801471 + + + + + + -0.7488897443 + 1.1025321484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.476177 + 0.493616 + 0.447871 + 1.000000 + + + + + + + + + + + 0.0000000000 + -1.5211824179 + + + + + + + + + + + + + + + + + + + + + + 0.476177 + 0.493616 + 0.447871 + 1.000000 + + + + + + + + + + + 0.0000000000 + 2.0282433033 + + + + + + + + + + + + + + + + + + + + + + 0.476177 + 0.493616 + 0.447871 + 1.000000 + + + + + + + + + + + 1.7747128010 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + 0.476177 + 0.493616 + 0.447871 + 1.000000 + + + + + + + + + + + -1.7747128010 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6402822733 + 1.5116592646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.9831250906 + 1.0006059408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.2535304129 + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/time_track_icon.sif b/synfig-studio/tags/0.61.08/images/time_track_icon.sif new file mode 100644 index 0000000..cceda49 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/time_track_icon.sif @@ -0,0 +1,242 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.265778 + 0.265778 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + i + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 2.2500000000 + 2.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.444444 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.7500000000 + + + + + 1.7500000000 + 1.7500000000 + + + + + 1.7500000000 + 0.7500000000 + + + + + 0.5000000000 + 0.7500000000 + + + + + 0.5000000000 + -1.7500000000 + + + + + -0.5000000000 + -1.7500000000 + + + + + -0.5000000000 + 0.7500000000 + + + + + -1.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/valuenode_icon.sif b/synfig-studio/tags/0.61.08/images/valuenode_icon.sif new file mode 100644 index 0000000..90b4d7e --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/valuenode_icon.sif @@ -0,0 +1,240 @@ + + + DataNode Icon + + + Untitled + + + + + + + + + + + + + 1.000000 + 0.300000 + 0.100000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.2187500000 + -0.2812500000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.2031250000 + -0.2656250000 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + DYN + + + + 0.500000 + 0.750000 + 1.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.6250000000 + 1.0000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/vector_icon.sif b/synfig-studio/tags/0.61.08/images/vector_icon.sif new file mode 100644 index 0000000..38030f3 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/vector_icon.sif @@ -0,0 +1,250 @@ + + + Synfig Studio Vector Icon + + + Sphere + + + + + + + + + + + + + 0.898889 + 0.100146 + 0.001630 + 0.986486 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.2187500000 + -0.2812500000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.2031250000 + -0.2656250000 + + + + + + + + + + + + + + + + + + + + + + 0.4375000000 + 0.4218750000 + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + 0.5749999881 + 0.5500000119 + + + + diff --git a/synfig-studio/tags/0.61.08/images/wallpaper.sif b/synfig-studio/tags/0.61.08/images/wallpaper.sif new file mode 100644 index 0000000..66db075 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/wallpaper.sif @@ -0,0 +1,687 @@ + + + Untitled0 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + 0.0149999997 + 0.1562500000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.1000000015 + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.470726 + 0.477000 + 0.477000 + 1.000000 + + + + + + + + + + + + + + + + 0.638086 + 0.509474 + 0.361408 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.531049 + 0.531049 + 0.531049 + 0.000000 + + + 0.006310 + 0.000000 + 0.000000 + 0.485794 + + + 0.006310 + 0.000000 + 0.000000 + 0.750000 + + + 0.076829 + 0.010931 + 0.001345 + 0.652360 + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + 0.0000000000 + 1.5000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.457498 + 0.383419 + 0.344119 + 0.000000 + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.295985 + 0.026400 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.0750000030 + 0.0750000030 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + 0.0111111114 + 0.0111111114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.881822 + 0.788820 + 0.722108 + 0.602041 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.956527 + 0.878455 + 0.809212 + 0.500000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.561224 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.100000 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/width_icon.sif b/synfig-studio/tags/0.61.08/images/width_icon.sif new file mode 100644 index 0000000..886143a --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/width_icon.sif @@ -0,0 +1,153 @@ + + + Untitled0 + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8906250000 + 0.7656250000 + + + + + + + + + + + + + + 1.0937500000 + 1.0000000000 + + + + + 1.0937500000 + 1.0000000000 + + + + + + + + + -0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 0.2197851539 + -0.9105731249 + + + + + 0.2197851539 + -0.9105731249 + + + + + + + + + 0.8906250000 + -0.8125000000 + + + + + + + + + + + + + + 1.6562500000 + 0.7656250000 + + + + + 1.6562500000 + 0.7656250000 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/images/zoom_icon.sif b/synfig-studio/tags/0.61.08/images/zoom_icon.sif new file mode 100644 index 0000000..df7d888 --- /dev/null +++ b/synfig-studio/tags/0.61.08/images/zoom_icon.sif @@ -0,0 +1,1967 @@ + + + Synfig Studio Zoom Icon + Placed in the Public Domain in 2007 by Chris Norman (pixelgeek) + + + + + + + + + + + + + + + + + + + + 0.012910 + 0.012910 + 0.012910 + 0.791045 + + + 0.013228 + 0.012910 + 0.012910 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.1808688790 + -0.3216028810 + + + + + + + + + + + + + + + + -1.8803261518 + 2.0255250931 + + + + + 1.9384056330 + -1.9093658924 + + + + + -2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -1.2269309759 + + + + + 2.7515196800 + -2.7224798203 + + + + + -2.7515196800 + -2.7079598904 + + + + + + + + + + + + + + + + + + + + + + 0.373780 + 0.373780 + 0.373780 + 1.000000 + + + + + 0.2596156895 + -0.2596156895 + + + + + + + + + + + + + + + + + + + + + 0.3228553534 + -0.6057698131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5558438301 + -0.9885365963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2548090219 + -1.9038481712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1534788609 + -2.6860237122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.6194555759 + -2.5695295334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8025181293 + -2.1035525799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0369846821 + -1.3213771582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8720423579 + -0.6224118471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5059177279 + -0.4060654938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5059177279 + -0.3894234598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + 0.2596156895 + -0.2596156895 + + + + + + + + + + + + + + + + + + + + + 0.3228553534 + -0.6057698131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5558438301 + -0.9885365963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2548090219 + -1.9038481712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.1534788609 + -2.6860237122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.6194555759 + -2.5695295334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8025181293 + -2.1035525799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0369846821 + -1.3213771582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8720423579 + -0.6224118471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5059177279 + -0.4060654938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5059177279 + -0.3894234598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + 0.8154594898 + -0.7322493792 + + + + + + + + + + + + + + + + + + + + + 1.9304755926 + -1.1150159836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6142770052 + -1.5477088690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0983740091 + -1.9138334990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + 0.3994087279 + -0.3661246896 + + + + + + + + + + + + + + + + + + + + + 1.8971915245 + -1.0817320347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6142770052 + -1.5477088690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1316580772 + -1.9304755926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.8805494308 + -1.1316580772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6142770052 + -1.5477088690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.1316580772 + -1.9304755926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.2814362049 + -1.3247057199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.6960089207 + -2.5395739079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.006310 + 0.006310 + 0.006310 + 1.000000 + + + + + + + + + + + -0.7788470387 + 0.7788470387 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.7788470387 + 0.7788470387 + + + + + + + + + + + + + + + + + + + + + + 0.172611 + 0.349351 + 0.629024 + 1.000000 + + + + + + + + + + + -0.7788470387 + 0.7788470387 + + + + + + + + + + + + + + + + + + + + + + 0.028991 + 0.133209 + 0.374624 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.5961568356 + 0.7788470387 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -0.7788470387 + -1.0384627581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0384627581 + 0.7788470387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.8154594898 + 0.3328406215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-studio/tags/0.61.08/m4/ETL.m4 b/synfig-studio/tags/0.61.08/m4/ETL.m4 new file mode 100755 index 0000000..4cbd609 --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/ETL.m4 @@ -0,0 +1,75 @@ +# ETL M4 Macro +# For GNU Autotools +# $Id$ +# +# By Robert B. Quattlebaum Jr. +# + +AC_DEFUN([ETL_DEPS], +[ + AC_C_BIGENDIAN + + AC_CHECK_LIB(user32, main) + AC_CHECK_LIB(kernel32, main) + AC_CHECK_LIB(pthread, main) + + AC_HEADER_STDC + + AC_CHECK_HEADERS(pthread.h) + AC_CHECK_HEADERS(sched.h) + AC_CHECK_HEADERS(sys/times.h) + AC_CHECK_HEADERS(sys/time.h) + AC_CHECK_HEADERS(unistd.h) + AC_CHECK_HEADERS(windows.h) + AC_CHECK_FUNCS([pthread_create]) + AC_CHECK_FUNCS([pthread_rwlock_init]) + AC_CHECK_FUNCS([pthread_yield]) + AC_CHECK_FUNCS([sched_yield]) + AC_CHECK_FUNCS([CreateThread]) + AC_CHECK_FUNCS([__clone]) + AC_CHECK_FUNCS([QueryPerformanceCounter]) + + AC_CHECK_FUNCS([gettimeofday]) + AC_CHECK_FUNCS([vsscanf]) + AC_CHECK_FUNCS([vsprintf]) + AC_CHECK_FUNCS([vasprintf]) + AC_CHECK_FUNCS([vsnprintf],[],[ + AC_CHECK_FUNC([_vsnprintf],[ + AC_DEFINE(vsnprintf,_vsnprintf,[define if the vsnprintf function is mangled]) + AC_DEFINE(HAVE_VSNPRINTF,1) + ]) + ]) + + $1 +]) + +AC_DEFUN([USING_ETL], +[ + AC_ARG_WITH(ETL-includes, + [ --with-ETL-includes Specify location of ETL headers],[ + CXXFLAGS="$CXXFLAGS -I$withval" + ]) + + AC_PATH_PROG(ETL_CONFIG,ETL-config,no) + + if test "$ETL_CONFIG" = "no"; then + no_ETL_config="yes" + $2 + else + AC_MSG_CHECKING([if $ETL_CONFIG works]) + if $ETL_CONFIG --libs >/dev/null 2>&1; then + ETL_VERSION="`$ETL_CONFIG --version`" + AC_MSG_RESULT([yes, $ETL_VERSION]) + CXXFLAGS="$CXXFLAGS `$ETL_CONFIG --cxxflags`" + $1 + else + AC_MSG_RESULT(no) + no_ETL_config="yes" + $2 + fi + fi + + ETL_DEPS($1,$2) +]) + + diff --git a/synfig-studio/tags/0.61.08/m4/cxx_macros.m4 b/synfig-studio/tags/0.61.08/m4/cxx_macros.m4 new file mode 100755 index 0000000..8fc247a --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/cxx_macros.m4 @@ -0,0 +1,88 @@ +AC_DEFUN([AC_CXX_FUNCTION_NONTYPE_PARAMETERS], +[AC_CACHE_CHECK(whether the compiler supports function templates with non-type parameters, +ac_cv_cxx_function_nontype_parameters, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ +template class A {}; +template int f(const A& x) { return 0; } +],[A z; return f(z);], + ac_cv_cxx_function_nontype_parameters=yes, ac_cv_cxx_function_nontype_parameters=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_function_nontype_parameters" = yes; then + AC_DEFINE(HAVE_FUNCTION_NONTYPE_PARAMETERS,, + [define if the compiler supports function templates with non-type parameters]) +fi +]) + +AC_DEFUN([AC_CXX_NAMESPACES], +[AC_CACHE_CHECK(whether the compiler implements namespaces, +ac_cv_cxx_namespaces, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], + [using namespace Outer::Inner; return i;], + ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_namespaces" = yes; then + AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces]) +fi +]) + +AC_DEFUN([AC_CXX_HAVE_COMPLEX], +[AC_CACHE_CHECK(whether the compiler has complex, +ac_cv_cxx_have_complex, +[AC_REQUIRE([AC_CXX_NAMESPACES]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include +#ifdef HAVE_NAMESPACES +using namespace std; +#endif],[complex a; complex b; return 0;], + ac_cv_cxx_have_complex=yes, ac_cv_cxx_have_complex=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_have_complex" = yes; then + AC_DEFINE(HAVE_COMPLEX,,[define if the compiler has complex]) +fi +]) + +AC_DEFUN([AC_CXX_HAVE_SSTREAM], +[AC_CACHE_CHECK(whether the compiler has stringstream, +ac_cv_cxx_have_sstream, +[AC_REQUIRE([AC_CXX_NAMESPACES]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include +#ifdef HAVE_NAMESPACES +using namespace std; +#endif],[stringstream message; message << "Hello"; return 0;], + ac_cv_cxx_have_sstream=yes, ac_cv_cxx_have_sstream=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_have_sstream" = yes; then + AC_DEFINE(HAVE_SSTREAM,,[define if the compiler has stringstream]) +fi +]) + +AC_DEFUN([AC_CXX_MUTABLE], +[AC_CACHE_CHECK(whether the compiler supports the mutable keyword, +ac_cv_cxx_mutable, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ +class A { mutable int i; + public: + int f (int n) const { i = n; return i; } + }; +],[A a; return a.f (1);], + ac_cv_cxx_mutable=yes, ac_cv_cxx_mutable=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_mutable" = yes; then + AC_DEFINE(HAVE_MUTABLE,,[define if the compiler supports the mutable keyword]) +fi +]) + diff --git a/synfig-studio/tags/0.61.08/m4/gnome.m4 b/synfig-studio/tags/0.61.08/m4/gnome.m4 new file mode 100755 index 0000000..1bc2a90 --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/gnome.m4 @@ -0,0 +1,405 @@ +# gnome-common.m4 +# + +dnl GNOME_COMMON_INIT + +AC_DEFUN([GNOME_COMMON_INIT], +[ + AC_CACHE_VAL(ac_cv_gnome_aclocal_dir, + [ac_cv_gnome_aclocal_dir="$GNOME_COMMON_MACROS_DIR"]) + AC_CACHE_VAL(ac_cv_gnome_aclocal_flags, + [ac_cv_gnome_aclocal_flags="$ACLOCAL_FLAGS"]) + GNOME_ACLOCAL_DIR="$ac_cv_gnome_aclocal_dir" + GNOME_ACLOCAL_FLAGS="$ac_cv_gnome_aclocal_flags" + AC_SUBST(GNOME_ACLOCAL_DIR) + AC_SUBST(GNOME_ACLOCAL_FLAGS) + + ACLOCAL="$ACLOCAL $GNOME_ACLOCAL_FLAGS" + + AM_CONDITIONAL(INSIDE_GNOME_DOCU, false) +]) + +AC_DEFUN([GNOME_GTKDOC_CHECK], +[ + AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) + AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC) + AC_SUBST(HAVE_GTK_DOC) + + dnl Let people disable the gtk-doc stuff. + AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) + + if test x$enable_gtk_doc = xauto ; then + if test x$GTKDOC = xtrue ; then + enable_gtk_doc=yes + else + enable_gtk_doc=no + fi + fi + + dnl NOTE: We need to use a separate automake conditional for this + dnl to make this work with the tarballs. + AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) +]) + +AC_DEFUN([GNOME_DEBUG_CHECK], +[ + AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]], enable_debug="$enableval", enable_debug=no) + + if test x$enable_debug = xyes ; then + AC_DEFINE(GNOME_ENABLE_DEBUG) + fi +]) + +# Define a conditional. + +AC_DEFUN([AM_CONDITIONAL], +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN([PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. +# +# +# If you make changes to this file, you MUST update the copy in +# acinclude.m4. [ aclocal dies on duplicate macros, so if +# we run 'aclocal -I macros/' then we'll run into problems +# once we've installed glib-gettext.m4 :-( ] +# + +AC_DEFUN([AM_GLIB_LC_MESSAGES], + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +dnl AM_GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +AC_DEFUN([AM_GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + dnl Figure out what method + nls_cv_force_use_gnu_gettext="no" + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + XGETTEXT=: + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([#include ], [return (int) dgettext ("","")], + gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)]) + + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + if test "$gt_cv_func_dgettext_libc" != "yes" ; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)]) + + if test "$gt_cv_func_dgettext_libc" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv) + fi + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + LIBS="$LIBS -lintl $libintl_extra_libs"; + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AM_GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + + # Added by Martin Baulig 12/15/98 for libc5 systems + if test "$gt_cv_func_dgettext_libc" != "yes" \ + && test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + fi + ]) + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included in the C library. + dnl Fall back on GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" != "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + else + dnl Unset this variable since we use the non-zero value as a flag. + CATOBJEXT= + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN([AM_GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +strdup __argz_count __argz_stringify __argz_next]) + + AM_GLIB_LC_MESSAGES + AM_GLIB_WITH_NLS + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + test -d po || mkdir po + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/po/$msgformat-msg.sed > po/po2msg.sed + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + diff --git a/synfig-studio/tags/0.61.08/m4/libxml.m4 b/synfig-studio/tags/0.61.08/m4/libxml.m4 new file mode 100755 index 0000000..8b0e006 --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/libxml.m4 @@ -0,0 +1,389 @@ +# Configure paths for LIBXML2 +# Toshio Kuratomi 2001-04-21 +# Adapted from: +# Configure paths for GLIB +# Owen Taylor 97-11-3 + +dnl AM_PATH_XML([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for XML, and define XML_CFLAGS and XML_LIBS +dnl +AC_DEFUN([AM_PATH_XML],[ +AC_ARG_WITH(xml-prefix, + [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], + xml_config_prefix="$withval", xml_config_prefix="") +AC_ARG_WITH(xml-exec-prefix, + [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], + xml_config_exec_prefix="$withval", xml_config_exec_prefix="") +AC_ARG_ENABLE(xmltest, + [ --disable-xmltest Do not try to compile and run a test LIBXML program],, + enable_xmltest=yes) + + if test x$xml_config_exec_prefix != x ; then + xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" + if test x${XML_CONFIG+set} != xset ; then + XML_CONFIG=$xml_config_exec_prefix/bin/xml-config + fi + fi + if test x$xml_config_prefix != x ; then + xml_config_args="$xml_config_args --prefix=$xml_config_prefix" + if test x${XML_CONFIG+set} != xset ; then + XML_CONFIG=$xml_config_prefix/bin/xml-config + fi + fi + + AC_PATH_PROG(XML_CONFIG, xml-config, no) + min_xml_version=ifelse([$1], ,1.0.0,[$1]) + AC_MSG_CHECKING(for libxml - version >= $min_xml_version) + no_xml="" + if test "$XML_CONFIG" = "no" ; then + no_xml=yes + else + XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags` + XML_LIBS=`$XML_CONFIG $xml_config_args --libs` + xml_config_major_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + xml_config_minor_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_xmltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $XML_CFLAGS" + LIBS="$XML_LIBS $LIBS" +dnl +dnl Now check if the installed libxml is sufficiently new. +dnl (Also sanity checks the results of xml-config to some extent) +dnl + rm -f conf.xmltest + AC_TRY_RUN([ +#include +#include +#include +#include + +int +main() +{ + int xml_major_version, xml_minor_version, xml_micro_version; + int major, minor, micro; + char *tmp_version; + int tmp_int_version; + + system("touch conf.xmltest"); + + /* Capture xml-config output via autoconf/configure variables */ + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = (char *)strdup("$min_xml_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string from xml-config\n", "$min_xml_version"); + exit(1); + } + free(tmp_version); + + /* Capture the version information from the header files */ + tmp_int_version = LIBXML_VERSION; + xml_major_version=tmp_int_version / 10000; + xml_minor_version=(tmp_int_version - xml_major_version * 10000) / 100; + xml_micro_version=(tmp_int_version - xml_minor_version * 100 - xml_major_version * 10000); + + /* Compare xml-config output to the libxml headers */ + if ((xml_major_version != $xml_config_major_version) || + (xml_minor_version != $xml_config_minor_version) +#if 0 + || +/* The last released version of libxml-1.x has an incorrect micro version in + * the header file so neither the includes nor the library will match the + * micro_version to the output of xml-config + */ + (xml_micro_version != $xml_config_micro_version) +#endif + ) + + { + printf("*** libxml header files (version %d.%d.%d) do not match\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** xml-config (version %d.%d.%d)\n", + $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); + return 1; + } +/* Compare the headers to the library to make sure we match */ + /* Less than ideal -- doesn't provide us with return value feedback, + * only exits if there's a serious mismatch between header and library. + */ + LIBXML_TEST_VERSION; + + /* Test that the library is greater than our minimum version */ + if (($xml_config_major_version > major) || + (($xml_config_major_version == major) && ($xml_config_minor_version > minor)) || + (($xml_config_major_version == major) && ($xml_config_minor_version == minor) && + ($xml_config_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the xml-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of LIBXML, but you can also set the XML_CONFIG environment to point to the\n"); + printf("*** correct copy of xml-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + return 1; +} +],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + if test "x$no_xml" = x ; then + AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$XML_CONFIG" = "no" ; then + echo "*** The xml-config script installed by LIBXML could not be found" + echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the XML_CONFIG environment variable to the" + echo "*** full path to xml-config." + else + if test -f conf.xmltest ; then + : + else + echo "*** Could not run libxml test program, checking why..." + CFLAGS="$CFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + AC_TRY_LINK([ +#include +#include +], [ LIBXML_TEST_VERSION; return 0;], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding LIBXML or finding the wrong" + echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" + echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" + echo "*** may want to edit the xml-config script: $XML_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + XML_CFLAGS="" + XML_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(XML_CFLAGS) + AC_SUBST(XML_LIBS) + rm -f conf.xmltest +]) + +# Configure paths for LIBXML2 +# Toshio Kuratomi 2001-04-21 +# Adapted from: +# Configure paths for GLIB +# Owen Taylor 97-11-3 + +dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for XML, and define XML_CFLAGS and XML_LIBS +dnl +AC_DEFUN([AM_PATH_XML2],[ +AC_ARG_WITH(xml-prefix, + [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], + xml_config_prefix="$withval", xml_config_prefix="") +AC_ARG_WITH(xml-exec-prefix, + [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], + xml_config_exec_prefix="$withval", xml_config_exec_prefix="") +AC_ARG_ENABLE(xmltest, + [ --disable-xmltest Do not try to compile and run a test LIBXML program],, + enable_xmltest=yes) + + if test x$xml_config_exec_prefix != x ; then + xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" + if test x${XML2_CONFIG+set} != xset ; then + XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config + fi + fi + if test x$xml_config_prefix != x ; then + xml_config_args="$xml_config_args --prefix=$xml_config_prefix" + if test x${XML2_CONFIG+set} != xset ; then + XML2_CONFIG=$xml_config_prefix/bin/xml2-config + fi + fi + + AC_PATH_PROG(XML2_CONFIG, xml2-config, no) + min_xml_version=ifelse([$1], ,2.0.0,[$1]) + AC_MSG_CHECKING(for libxml - version >= $min_xml_version) + no_xml="" + if test "$XML2_CONFIG" = "no" ; then + no_xml=yes + else + XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags` + XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` + xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_xmltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $XML_CFLAGS" + CXXFLAGS="$CXXFLAGS $XML_CFLAGS" + LIBS="$XML_LIBS $LIBS" +dnl +dnl Now check if the installed libxml is sufficiently new. +dnl (Also sanity checks the results of xml2-config to some extent) +dnl + rm -f conf.xmltest + AC_TRY_RUN([ +#include +#include +#include +#include + +int +main() +{ + int xml_major_version, xml_minor_version, xml_micro_version; + int major, minor, micro; + char *tmp_version; + + system("touch conf.xmltest"); + + /* Capture xml2-config output via autoconf/configure variables */ + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = (char *)strdup("$min_xml_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string from xml2-config\n", "$min_xml_version"); + exit(1); + } + free(tmp_version); + + /* Capture the version information from the header files */ + tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); + if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { + printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); + exit(1); + } + free(tmp_version); + + /* Compare xml2-config output to the libxml headers */ + if ((xml_major_version != $xml_config_major_version) || + (xml_minor_version != $xml_config_minor_version) || + (xml_micro_version != $xml_config_micro_version)) + { + printf("*** libxml header files (version %d.%d.%d) do not match\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** xml2-config (version %d.%d.%d)\n", + $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); + return 1; + } +/* Compare the headers to the library to make sure we match */ + /* Less than ideal -- doesn't provide us with return value feedback, + * only exits if there's a serious mismatch between header and library. + */ + LIBXML_TEST_VERSION; + + /* Test that the library is greater than our minimum version */ + if ((xml_major_version > major) || + ((xml_major_version == major) && (xml_minor_version > minor)) || + ((xml_major_version == major) && (xml_minor_version == minor) && + (xml_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); + printf("*** correct copy of xml2-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + return 1; +} +],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + if test "x$no_xml" = x ; then + AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$XML2_CONFIG" = "no" ; then + echo "*** The xml2-config script installed by LIBXML could not be found" + echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the XML2_CONFIG environment variable to the" + echo "*** full path to xml2-config." + else + if test -f conf.xmltest ; then + : + else + echo "*** Could not run libxml test program, checking why..." + CFLAGS="$CFLAGS $XML_CFLAGS" + CXXFLAGS="$CXXFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + AC_TRY_LINK([ +#include +#include +], [ LIBXML_TEST_VERSION; return 0;], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding LIBXML or finding the wrong" + echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" + echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" + echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + XML_CFLAGS="" + XML_LIBS="" + $3 + + + ifelse([$3], , :, [$3]) + fi + AC_SUBST(XML_CFLAGS) + AC_SUBST(XML_LIBS) + rm -f conf.xmltest +]) diff --git a/synfig-studio/tags/0.61.08/m4/subs.m4 b/synfig-studio/tags/0.61.08/m4/subs.m4 new file mode 100755 index 0000000..b16508b --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/subs.m4 @@ -0,0 +1,245 @@ + +## AC_ARG_WARNINGS() +## +## Provide the --enable-warnings configure argument, set to 'minimum' +## by default. +## +AC_DEFUN([AC_ARG_WARNINGS], +[ + AC_ARG_ENABLE([warnings], + [ --enable-warnings=[[none|minimum|maximum|hardcore]] + Control compiler pickyness. [[default=maximum]]], + [gtkmm_enable_warnings="$enableval"], + gtkmm_enable_warnings="maximum") + + AC_MSG_CHECKING([for compiler warning flags to use]) + + gtkmm_warning_flags='' + + # -W is now known as -Wextra, but that's not known by gcc 2 or 3 + case "$gtkmm_enable_warnings" in + none|no) gtkmm_warning_flags='';; + minimum|yes) gtkmm_warning_flags='-Wall -Wno-unused-parameter';; + maximum) gtkmm_warning_flags='-W -Wall';; + hardcore) gtkmm_warning_flags='-W -Wall -Werror';; + esac + + gtkmm_use_flags='' + + if test "x$gtkmm_warning_flags" != "x" + then + echo 'int foo() { return 0; }' > conftest.cc + + for flag in $gtkmm_warning_flags + do + # Test whether the compiler accepts the flag. GCC doesn't bail + # out when given an unsupported flag but prints a warning, so + # check the compiler output instead. + gtkmm_cxx_out="`$CXX $flag -c conftest.cc 2>&1`" + rm -f conftest.$OBJEXT + test "x${gtkmm_cxx_out}" = "x" && \ + gtkmm_use_flags="${gtkmm_use_flags:+$gtkmm_use_flags }$flag" + done + + rm -f conftest.cc + gtkmm_cxx_out='' + fi + + if test "x$gtkmm_use_flags" != "x" + then + for flag in $gtkmm_use_flags + do + case " $CXXFLAGS " in + *" $flag "*) ;; # don't add flags twice + *) CXXFLAGS="${CXXFLAGS:+$CXXFLAGS }$flag";; + esac + done + else + gtkmm_use_flags='none' + fi + + AC_MSG_RESULT([$gtkmm_use_flags]) +]) + + + + +AC_DEFUN([AC_ARG_DEBUG], +[ + AC_MSG_CHECKING([for debug flags]) + + AC_ARG_ENABLE(debug,[ --enable-debug Build in debugging mode],[ + debug=$enableval + ],[ + debug="no" + ]) + debug_flags='' + + case "$debug" in + yes) + debug_flags="-D_DEBUG -g" + ;; + half) + debug_flags="-DNDEBUG -g" + ;; + no|*) + debug_flags="-DNDEBUG -Wno-deprecated" + ;; + esac + + + CXXFLAGS="`echo $CXXFLAGS | sed s:-g::` $debug_flags" + CFLAGS="`echo $CFLAGS | sed s:-g::` $debug_flags" + + AC_MSG_RESULT([$debug_flags]) +]) + + + + +AC_DEFUN([AC_ARG_OPTIMIZATION], +[ + AC_MSG_CHECKING([for optimization flags]) + + AC_ARG_ENABLE(optimization,[ --enable-optimization=[[0,1,2,3,4]] Select optimization level (default=2)],[ + optimization=$enableval + ],[ + optimization="2" + ]) + optimization_flags='' + case "$optimization" in + 0|no) optimization_flags="-O0";; + 1) optimization_flags="-O1";; + 2|yes) optimization_flags="-O2";; + pass1) optimization_flags="-O2 -fprofile-arcs";; + pass2) optimization_flags="-O2 -fbranch-probabilities";; + 3) optimization_flags="-O3";; + *) optimization_flags="-O4";; + esac + CXXFLAGS="`echo $CXXFLAGS | sed 's:-O.::g'` $optimization_flags" + CFLAGS="`echo $CFLAGS | sed 's:-O.::g'` $optimization_flags" + AC_MSG_RESULT([$optimization_flags]) +]) + +AC_DEFUN([AC_ARG_PROFILE_ARCS], +[ + AC_MSG_CHECKING([for arc profiling]) + + AC_ARG_ENABLE(profile-arcs,[ --enable-profile-arcs Enable arc profiling],[ + profile_arcs=$enableval + ],[ + profile_arcs=no + ]) + + if test $profile_arcs = "yes" ; then { + CXXFLAGS="$CXXFLAGS -fprofile-arcs"; + CFLAGS="$CFLAGS -fprofile-arcs"; + } ; fi + + AC_MSG_RESULT([$profile_arcs]) +]) + +AC_DEFUN([AC_ARG_BRANCH_PROBABILITIES], +[ + AC_MSG_CHECKING([for branch-probabilities]) + + AC_ARG_ENABLE(branch-probabilities,[ --enable-branch-probabilities Enable branch-probabilities],[ + branch_probabilities=$enableval + ],[ + branch_probabilities=no + ]) + + if test $branch_probabilities = "yes" ; then { + CXXFLAGS="$CXXFLAGS -fbranch-probabilities"; + CFLAGS="$CFLAGS -fbranch-probabilities"; + } ; fi + + AC_MSG_RESULT([$branch_probabilities]) +]) + +AC_DEFUN([AC_ARG_PROFILING], +[ + AC_MSG_CHECKING([for profiling]) + + AC_ARG_ENABLE(profiling,[ --enable-profiling Enable profiling using gprof],[ + profiling=$enableval + ],[ + profiling=no + ]) + + if test $profiling = "yes" ; then { + CFLAGS="$CFLAGS -pg"; + CXXFLAGS="$CXXFLAGS -pg"; + LDFLAGS="$LDFLAGS -pg"; + LIBS="$LIBS"; + } ; fi + + AC_MSG_RESULT([$profiling]) +]) + +MINGW_FLAGS="-mno-cygwin" + + +AC_DEFUN([AC_WIN32_QUIRKS], +[ + +case "$host" in + *mingw*) + AC_MSG_CHECKING([the flavor of the compiler]) + if ( $CC --version | grep -q mingw ) ; then { + AC_MSG_RESULT([compiler is mingw special]) + LIBTOOL_PATCH_SED=" + s/dir=\"\$absdir\"/dir=\`cygpath -d -m \"\$absdir\"\`/; + s/absdir=\`cd \"\$dir\" && pwd\`/absdir=\`cygpath -d -m \"\$dir\"\`/; + s/# We need an absolute path/dir=\`cygpath -d -m \"\$dir\"\` # We need an absolute path/; + s- /usr/lib- C:/mingw/lib-g; + s-\"/lib -\"C:/mingw/lib -g; + s- /lib/ - -g; + "; + sys_lib_dlsearch_path_spec="C:/mingw/lib" + ac_default_prefix=`cygpath -d -m "$ac_default_prefix"`; + } else { + AC_MSG_RESULT([compiler is cygwin stock, adding -mno-cygwin]) + CPP="$CPP $MINGW_FLAGS" + CC="$CC $MINGW_FLAGS" + CXX="$CXX $MINGW_FLAGS -L/usr/$host/lib -I/usr/include/c++/3.3.3/$host" + CXXCPP="$CXXCPP $MINGW_FLAGS" + + +} ; fi + + LTCC="gcc" + CXXFLAGS="$CXXFLAGS -LC:/GTK/lib" + CFLAGS="$CFLAGS -LC:/GTK/lib" + LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc" +dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc" + ;; + *cygwin*) + LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols" +dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console" + CXXFLAGS="$CXXFLAGS -I/target/include" + CFLAGS="$CFLAGS -I/target/include" + ;; + powerpc-apple*) + echo Adding mac-specific optimization flags. . . + CXXFLAGS="$CXXFLAGS $G5OPTFLAGS" + ;; +esac + + +]) + +AC_DEFUN([AC_LIBTOOL_PATCH], +[ + +if [[ "$LIBTOOL_PATCH_SED""x" != "x" ]] ; then { + printf "Patching libtool... " + cat libtool | sed "$LIBTOOL_PATCH_SED" > libtool2 + rm libtool + mv libtool2 libtool + chmod +x libtool + AC_MSG_RESULT([patched]) +} fi ; + + +]) diff --git a/synfig-studio/tags/0.61.08/m4/synfig.m4 b/synfig-studio/tags/0.61.08/m4/synfig.m4 new file mode 100755 index 0000000..5c9ca83 --- /dev/null +++ b/synfig-studio/tags/0.61.08/m4/synfig.m4 @@ -0,0 +1,51 @@ +# SYNFIG M4 Macro +# For GNU Autotools +# $Id$ +# +# By Robert B. Quattlebaum Jr. +# + +AC_DEFUN([SYNFIG_DEPS], +[ + USING_ETL(,$2) + AM_PATH_XML2(,,$2) + AC_CHECK_FUNCS([floor pow sqrt],,$2) + $1 +]) + +AC_DEFUN([USING_SYNFIG], +[ + AC_ARG_WITH(synfig-includes, + [ --with-synfig-includes Specify location of synfig headers],[ + CXXFLAGS="$CXXFLAGS -I$withval" + ]) + + AC_PATH_PROG(SYNFIG_CONFIG,synfig-config,no) + + if test "$SYNFIG_CONFIG" = "no"; then + no_SYNFIG_config="yes" + $2 + else + AC_MSG_CHECKING([if $SYNFIG_CONFIG works]) + if $SYNFIG_CONFIG --libs >/dev/null 2>&1; then + SYNFIG_VERSION="`$SYNFIG_CONFIG --version`" + AC_MSG_RESULT([yes, $SYNFIG_VERSION]) + SYNFIG_CXXFLAGS="`$SYNFIG_CONFIG --cxxflags`" + SYNFIG_CFLAGS="`$SYNFIG_CONFIG --cflags`" + SYNFIG_LIBS="`$SYNFIG_CONFIG --libs`" + CXXFLAGS="$CXXFLAGS $SYNFIG_CXXFLAGS" + AC_SUBST(SYNFIG_CXXFLAGS) + AC_SUBST(SYNFIG_LIBS) + AC_SUBST(SYNFIG_CFLAGS) + $1 + else + AC_MSG_RESULT(no) + no_SYNFIG_config="yes" + $2 + fi + fi + + SYNFIG_DEPS($1,$2) +]) + + diff --git a/synfig-studio/tags/0.61.08/macosxbuild.sh b/synfig-studio/tags/0.61.08/macosxbuild.sh new file mode 100755 index 0000000..6dcfcbe --- /dev/null +++ b/synfig-studio/tags/0.61.08/macosxbuild.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +#PREFIX=/Applications/SynfigStudio.app/Contents/synfig +PREFIX=/Users/darco/Projects/Voria/synfig-build +#OPTIONS="--disable-optimization --enable-debug" +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11R6/lib/pkgconfig +export MACOSX_DEPLOYMENT_TARGET=10.4 +OPTIONS="--prefix=$PREFIX" +OPTIONS="$OPTIONS --enable-optimization=2" +#OPTIONS="$OPTIONS --enable-optimization=3 --enable-g5opt" +#OPTIONS="$OPTIONS --disable-optimization" +OPTIONS="$OPTIONS --disable-debug" +OPTIONS="$OPTIONS --disable-dependency-tracking" +#OPTIONS="$OPTIONS --enable-debug" +#export LDFLAGS='-undefined dynamic-lookup' +LDFLAGS="-prebind -prebind_all_twolevel_modules -twolevel_namespace -bind_at_load -undefined dynamic_lookup" +BUILDDIR=macosxbuild + +ARCH_FLAGS="" +#ARCH_FLAGS="$ARCH_FLAGS -arch ppc" +ARCH_FLAGS="$ARCH_FLAGS -arch i386" + +CC="gcc $ARCH_FLAGS" +CXX="g++ $ARCH_FLAGS" + +CPP="gcc -E" +CXXCPP="g++ -E" + + +[ -e configure ] || autoreconf --force --install || exit 1 + +[ -d $BUILDDIR ] && rm -fr $BUILDDIR + +mkdir $BUILDDIR + +cd $BUILDDIR + +set -x + +../configure $OPTIONS LDFLAGS="$LDFLAGS" CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" || exit 1 + +make -j2 +make install-strip +#make package + +#make installer + + diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Description.plist b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Description.plist new file mode 100644 index 0000000..2fb0360 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Description.plist @@ -0,0 +1,8 @@ + + + + + IFPkgFlagBackgroundScaling + none + + \ No newline at end of file diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/English.lproj/InstallationCheck.strings b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/English.lproj/InstallationCheck.strings new file mode 100644 index 0000000..1bde3de --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/English.lproj/InstallationCheck.strings @@ -0,0 +1,2 @@ +"16" = "Synfig Studio requires GTKMM 2.4, which was not found on your computer." +"17" = "Synfig Studio requires Synfig Core, which was not found on your computer." diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/ReadMe.txt b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/ReadMe.txt new file mode 100644 index 0000000..cdb5c31 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/ReadMe.txt @@ -0,0 +1 @@ +This is the readme for Synfig Core. diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Welcome.txt b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Welcome.txt new file mode 100644 index 0000000..f1e8e92 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/Welcome.txt @@ -0,0 +1 @@ +This is the welcome for Synfig. diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/install.sh b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/install.sh new file mode 100755 index 0000000..42e2b02 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/install.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="~/synfig-core_install.log" + +/usr/X11R6/bin/fc-cache +/usr/X11R6/bin/fc-list + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@synfig_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_install b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_install new file mode 100755 index 0000000..42e2b02 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_install @@ -0,0 +1,61 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="~/synfig-core_install.log" + +/usr/X11R6/bin/fc-cache +/usr/X11R6/bin/fc-list + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@synfig_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_upgrade b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_upgrade new file mode 100755 index 0000000..42e2b02 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/synfig-studio.post_upgrade @@ -0,0 +1,61 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="~/synfig-core_install.log" + +/usr/X11R6/bin/fc-cache +/usr/X11R6/bin/fc-list + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@synfig_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/upgrade.sh b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/upgrade.sh new file mode 100755 index 0000000..42e2b02 --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/studio-resources/upgrade.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="~/synfig-core_install.log" + +/usr/X11R6/bin/fc-cache +/usr/X11R6/bin/fc-list + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@synfig_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-studio/tags/0.61.08/pkg-info/macosx/synfig-studio.info.in b/synfig-studio/tags/0.61.08/pkg-info/macosx/synfig-studio.info.in new file mode 100644 index 0000000..7dc1a3b --- /dev/null +++ b/synfig-studio/tags/0.61.08/pkg-info/macosx/synfig-studio.info.in @@ -0,0 +1,14 @@ +Title @PACKAGE_NAME@ @VERSION@ +Version @VERSION@ +Description @PACKAGE_NAME@ +DefaultLocation /usr/local +DeleteWarning +NeedsAuthorization YES +DisableStop NO +UseUserMask YES +Application NO +Relocatable NO +Required NO +InstallOnly NO +RequiresReboot NO +InstallFat NO diff --git a/synfig-studio/tags/0.61.08/po/Makevars b/synfig-studio/tags/0.61.08/po/Makevars new file mode 100644 index 0000000..92b987a --- /dev/null +++ b/synfig-studio/tags/0.61.08/po/Makevars @@ -0,0 +1,7 @@ +DOMAIN = synfigstudio +subdir = po +top_builddir = .. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --add-comments=TRANSLATORS +COPYRIGHT_HOLDER = Synfig Contributors +MSGID_BUGS_ADDRESS = http://synfig.org/Bugs +EXTRA_LOCALE_CATEGORIES = diff --git a/synfig-studio/tags/0.61.08/po/POTFILES.in b/synfig-studio/tags/0.61.08/po/POTFILES.in new file mode 100644 index 0000000..efde817 --- /dev/null +++ b/synfig-studio/tags/0.61.08/po/POTFILES.in @@ -0,0 +1,407 @@ +src/gtkmm/about.cpp +src/gtkmm/about.h +src/gtkmm/adjust_window.cpp +src/gtkmm/adjust_window.h +src/gtkmm/app.cpp +src/gtkmm/app.h +src/gtkmm/asyncrenderer.cpp +src/gtkmm/asyncrenderer.h +src/gtkmm/audiocontainer.cpp +src/gtkmm/audiocontainer.h +src/gtkmm/autorecover.cpp +src/gtkmm/autorecover.h +src/gtkmm/canvasoptions.cpp +src/gtkmm/canvasoptions.h +src/gtkmm/canvasproperties.cpp +src/gtkmm/canvasproperties.h +src/gtkmm/canvastreestore.cpp +src/gtkmm/canvastreestore.h +src/gtkmm/canvasview.cpp +src/gtkmm/canvasview.h +src/gtkmm/cellrenderer_gradient.cpp +src/gtkmm/cellrenderer_gradient.h +src/gtkmm/cellrenderer_time.cpp +src/gtkmm/cellrenderer_time.h +src/gtkmm/cellrenderer_timetrack.cpp +src/gtkmm/cellrenderer_timetrack.h +src/gtkmm/cellrenderer_value.cpp +src/gtkmm/cellrenderer_value.h +src/gtkmm/childrentree.cpp +src/gtkmm/childrentree.h +src/gtkmm/childrentreestore.cpp +src/gtkmm/childrentreestore.h +src/gtkmm/compview.h +src/gtkmm/devicetracker.cpp +src/gtkmm/devicetracker.h +src/gtkmm/dialog_color.cpp +src/gtkmm/dialog_color.h +src/gtkmm/dialog_gradient.cpp +src/gtkmm/dialog_gradient.h +src/gtkmm/dialog_keyframe.cpp +src/gtkmm/dialog_keyframe.h +src/gtkmm/dialog_preview.cpp +src/gtkmm/dialog_preview.h +src/gtkmm/dialogsettings.cpp +src/gtkmm/dialogsettings.h +src/gtkmm/dialog_setup.cpp +src/gtkmm/dialog_setup.h +src/gtkmm/dialog_soundselect.cpp +src/gtkmm/dialog_soundselect.h +src/gtkmm/dialog_tooloptions.cpp +src/gtkmm/dialog_tooloptions.h +src/gtkmm/dialog_waypoint.cpp +src/gtkmm/dialog_waypoint.h +src/gtkmm/dockable.cpp +src/gtkmm/dockable.h +src/gtkmm/dockbook.cpp +src/gtkmm/dockbook.h +src/gtkmm/dock_canvases.cpp +src/gtkmm/dock_canvases.h +src/gtkmm/dock_canvasspecific.cpp +src/gtkmm/dock_canvasspecific.h +src/gtkmm/dock_children.cpp +src/gtkmm/dock_children.h +src/gtkmm/dock_curves.cpp +src/gtkmm/dock_curves.h +src/gtkmm/dockdialog.cpp +src/gtkmm/dockdialog.h +src/gtkmm/dock_history.cpp +src/gtkmm/dock_history.h +src/gtkmm/dock_info.cpp +src/gtkmm/dock_info.h +src/gtkmm/dock_keyframes.cpp +src/gtkmm/dock_keyframes.h +src/gtkmm/dock_layergroups.cpp +src/gtkmm/dock_layergroups.h +src/gtkmm/dock_layers.cpp +src/gtkmm/dock_layers.h +src/gtkmm/dockmanager.cpp +src/gtkmm/dockmanager.h +src/gtkmm/dock_metadata.cpp +src/gtkmm/dock_metadata.h +src/gtkmm/dock_navigator.cpp +src/gtkmm/dock_navigator.h +src/gtkmm/dock_params.cpp +src/gtkmm/dock_params.h +src/gtkmm/dock_timetrack.cpp +src/gtkmm/dock_timetrack.h +src/gtkmm/duck.cpp +src/gtkmm/duck.h +src/gtkmm/duckmatic.cpp +src/gtkmm/duckmatic.h +src/gtkmm/ducktransform_rotate.h +src/gtkmm/ducktransform_scale.h +src/gtkmm/ducktransform_translate.h +src/gtkmm/eventkey.h +src/gtkmm/event_layerclick.h +src/gtkmm/event_mouse.h +src/gtkmm/groupactionmanager.cpp +src/gtkmm/groupactionmanager.h +src/gtkmm/historytreestore.cpp +src/gtkmm/historytreestore.h +src/gtkmm/iconcontroller.cpp +src/gtkmm/iconcontroller.h +src/gtkmm/instance.cpp +src/gtkmm/instance.h +src/gtkmm/ipc.cpp +src/gtkmm/ipc.h +src/gtkmm/keyframeactionmanager.cpp +src/gtkmm/keyframeactionmanager.h +src/gtkmm/keyframetree.cpp +src/gtkmm/keyframetree.h +src/gtkmm/keyframetreestore.cpp +src/gtkmm/keyframetreestore.h +src/gtkmm/keymapsettings.cpp +src/gtkmm/keymapsettings.h +src/gtkmm/layeractionmanager.cpp +src/gtkmm/layeractionmanager.h +src/gtkmm/layergrouptree.cpp +src/gtkmm/layergrouptree.h +src/gtkmm/layergrouptreestore.cpp +src/gtkmm/layergrouptreestore.h +src/gtkmm/layerparamtreestore.cpp +src/gtkmm/layerparamtreestore.h +src/gtkmm/layertree.cpp +src/gtkmm/layertree.h +src/gtkmm/layertreestore.cpp +src/gtkmm/layertreestore.h +src/gtkmm/main.cpp +src/gtkmm/metadatatreestore.cpp +src/gtkmm/metadatatreestore.h +src/gtkmm/mod_mirror/mod_mirror.cpp +src/gtkmm/mod_mirror/mod_mirror.h +src/gtkmm/mod_mirror/state_mirror.cpp +src/gtkmm/mod_mirror/state_mirror.h +src/gtkmm/mod_palette/dock_palbrowse.cpp +src/gtkmm/mod_palette/dock_palbrowse.h +src/gtkmm/mod_palette/dock_paledit.cpp +src/gtkmm/mod_palette/dock_paledit.h +src/gtkmm/mod_palette/mod_palette.cpp +src/gtkmm/mod_palette/mod_palette.h +src/gtkmm/module.cpp +src/gtkmm/module.h +src/gtkmm/onemoment.cpp +src/gtkmm/onemoment.h +src/gtkmm/preview.cpp +src/gtkmm/preview.h +src/gtkmm/renddesc.cpp +src/gtkmm/renddesc.h +src/gtkmm/render.cpp +src/gtkmm/renderer_bbox.cpp +src/gtkmm/renderer_bbox.h +src/gtkmm/renderer_canvas.cpp +src/gtkmm/renderer_canvas.h +src/gtkmm/renderer_dragbox.cpp +src/gtkmm/renderer_dragbox.h +src/gtkmm/renderer_ducks.cpp +src/gtkmm/renderer_ducks.h +src/gtkmm/renderer_grid.cpp +src/gtkmm/renderer_grid.h +src/gtkmm/renderer_guides.cpp +src/gtkmm/renderer_guides.h +src/gtkmm/renderer_timecode.cpp +src/gtkmm/renderer_timecode.h +src/gtkmm/render.h +src/gtkmm/smach.h +src/gtkmm/splash.cpp +src/gtkmm/splash.h +src/gtkmm/state_bline.cpp +src/gtkmm/state_bline.h +src/gtkmm/state_circle.cpp +src/gtkmm/state_circle.h +src/gtkmm/state_draw.cpp +src/gtkmm/state_draw.h +src/gtkmm/state_eyedrop.cpp +src/gtkmm/state_eyedrop.h +src/gtkmm/state_fill.cpp +src/gtkmm/state_fill.h +src/gtkmm/state_gradient.cpp +src/gtkmm/state_gradient.h +src/gtkmm/statemanager.cpp +src/gtkmm/statemanager.h +src/gtkmm/state_normal.cpp +src/gtkmm/state_normal.h +src/gtkmm/state_polygon.cpp +src/gtkmm/state_polygon.h +src/gtkmm/state_rectangle.cpp +src/gtkmm/state_rectangle.h +src/gtkmm/state_rotate.cpp +src/gtkmm/state_rotate.h +src/gtkmm/state_scale.cpp +src/gtkmm/state_scale.h +src/gtkmm/state_sketch.cpp +src/gtkmm/state_sketch.h +src/gtkmm/state_smoothmove.cpp +src/gtkmm/state_smoothmove.h +src/gtkmm/state_stroke.cpp +src/gtkmm/state_stroke.h +src/gtkmm/state_width.cpp +src/gtkmm/state_width.h +src/gtkmm/state_zoom.cpp +src/gtkmm/state_zoom.h +src/gtkmm/toolbox.cpp +src/gtkmm/toolbox.h +src/gtkmm/valuelink.cpp +src/gtkmm/valuelink.h +src/gtkmm/widget_canvaschooser.cpp +src/gtkmm/widget_canvaschooser.h +src/gtkmm/widget_color.cpp +src/gtkmm/widget_coloredit.cpp +src/gtkmm/widget_coloredit.h +src/gtkmm/widget_color.h +src/gtkmm/widget_compselect.cpp +src/gtkmm/widget_compselect.h +src/gtkmm/widget_curves.cpp +src/gtkmm/widget_curves.h +src/gtkmm/widget_defaults.cpp +src/gtkmm/widget_defaults.h +src/gtkmm/widget_distance.cpp +src/gtkmm/widget_distance.h +src/gtkmm/widget_enum.cpp +src/gtkmm/widget_enum.h +src/gtkmm/widget_filename.cpp +src/gtkmm/widget_filename.h +src/gtkmm/widget_gradient.cpp +src/gtkmm/widget_gradient.h +src/gtkmm/widget_sound.cpp +src/gtkmm/widget_sound.h +src/gtkmm/widget_time.cpp +src/gtkmm/widget_time.h +src/gtkmm/widget_timeslider.cpp +src/gtkmm/widget_timeslider.h +src/gtkmm/widget_value.cpp +src/gtkmm/widget_value.h +src/gtkmm/widget_vector.cpp +src/gtkmm/widget_vector.h +src/gtkmm/widget_waypoint.cpp +src/gtkmm/widget_waypoint.h +src/gtkmm/widget_waypointmodel.cpp +src/gtkmm/widget_waypointmodel.h +src/gtkmm/workarea.cpp +src/gtkmm/workarea.h +src/gtkmm/workarearenderer.cpp +src/gtkmm/workarearenderer.h +src/gtkmm/zoomdial.cpp +src/gtkmm/zoomdial.h +# FIXME: Split these out into a libsynfigapp domain +src/synfigapp/action.cpp +src/synfigapp/action.h +src/synfigapp/action_param.cpp +src/synfigapp/action_param.h +src/synfigapp/actions/activepointadd.cpp +src/synfigapp/actions/activepointadd.h +src/synfigapp/actions/activepointremove.cpp +src/synfigapp/actions/activepointremove.h +src/synfigapp/actions/activepointset.cpp +src/synfigapp/actions/activepointset.h +src/synfigapp/actions/activepointsetoff.cpp +src/synfigapp/actions/activepointsetoff.h +src/synfigapp/actions/activepointseton.cpp +src/synfigapp/actions/activepointseton.h +src/synfigapp/actions/activepointsetsmart.cpp +src/synfigapp/actions/activepointsetsmart.h +src/synfigapp/actions/activepointsimpleadd.cpp +src/synfigapp/actions/activepointsimpleadd.h +src/synfigapp/actions/blinepointtangentmerge.cpp +src/synfigapp/actions/blinepointtangentmerge.h +src/synfigapp/actions/blinepointtangentsplit.cpp +src/synfigapp/actions/blinepointtangentsplit.h +src/synfigapp/actions/canvasadd.cpp +src/synfigapp/actions/canvasadd.h +src/synfigapp/actions/canvasremove.cpp +src/synfigapp/actions/canvasremove.h +src/synfigapp/actions/canvasrenddescset.cpp +src/synfigapp/actions/canvasrenddescset.h +src/synfigapp/actions/colorset.cpp +src/synfigapp/actions/colorset.h +src/synfigapp/actions/editmodeset.cpp +src/synfigapp/actions/editmodeset.h +src/synfigapp/actions/gradientset.cpp +src/synfigapp/actions/gradientset.h +src/synfigapp/actions/groupaddlayers.cpp +src/synfigapp/actions/groupaddlayers.h +src/synfigapp/actions/groupremove.cpp +src/synfigapp/actions/groupremove.h +src/synfigapp/actions/groupremovelayers.cpp +src/synfigapp/actions/groupremovelayers.h +src/synfigapp/actions/grouprename.cpp +src/synfigapp/actions/grouprename.h +src/synfigapp/actions/keyframeadd.cpp +src/synfigapp/actions/keyframeadd.h +src/synfigapp/actions/keyframeduplicate.cpp +src/synfigapp/actions/keyframeduplicate.h +src/synfigapp/actions/keyframeremove.cpp +src/synfigapp/actions/keyframeremove.h +src/synfigapp/actions/keyframeset.cpp +src/synfigapp/actions/keyframesetdelta.cpp +src/synfigapp/actions/keyframesetdelta.h +src/synfigapp/actions/keyframeset.h +src/synfigapp/actions/keyframewaypointset.cpp +src/synfigapp/actions/keyframewaypointset.h +src/synfigapp/actions/layeractivate.cpp +src/synfigapp/actions/layeractivate.h +src/synfigapp/actions/layeradd.cpp +src/synfigapp/actions/layeradd.h +src/synfigapp/actions/layerduplicate.cpp +src/synfigapp/actions/layerduplicate.h +src/synfigapp/actions/layerencapsulate.cpp +src/synfigapp/actions/layerencapsulate.h +src/synfigapp/actions/layerlower.cpp +src/synfigapp/actions/layerlower.h +src/synfigapp/actions/layermove.cpp +src/synfigapp/actions/layermove.h +src/synfigapp/actions/layerparamconnect.cpp +src/synfigapp/actions/layerparamconnect.h +src/synfigapp/actions/layerparamdisconnect.cpp +src/synfigapp/actions/layerparamdisconnect.h +src/synfigapp/actions/layerparamset.cpp +src/synfigapp/actions/layerparamset.h +src/synfigapp/actions/layerraise.cpp +src/synfigapp/actions/layerraise.h +src/synfigapp/actions/layerremove.cpp +src/synfigapp/actions/layerremove.h +src/synfigapp/actions/layersetdesc.cpp +src/synfigapp/actions/layersetdesc.h +src/synfigapp/actions/timepointscopy.cpp +src/synfigapp/actions/timepointscopy.h +src/synfigapp/actions/timepointsdelete.cpp +src/synfigapp/actions/timepointsdelete.h +src/synfigapp/actions/timepointsmove.cpp +src/synfigapp/actions/timepointsmove.h +src/synfigapp/actions/valuedescconnect.cpp +src/synfigapp/actions/valuedescconnect.h +src/synfigapp/actions/valuedescconvert.cpp +src/synfigapp/actions/valuedescconvert.h +src/synfigapp/actions/valuedescdisconnect.cpp +src/synfigapp/actions/valuedescdisconnect.h +src/synfigapp/actions/valuedescexport.cpp +src/synfigapp/actions/valuedescexport.h +src/synfigapp/actions/valuedesclink.cpp +src/synfigapp/actions/valuedesclink.h +src/synfigapp/actions/valuedescset.cpp +src/synfigapp/actions/valuedescset.h +src/synfigapp/actions/valuenodeadd.cpp +src/synfigapp/actions/valuenodeadd.h +src/synfigapp/actions/valuenodeconstset.cpp +src/synfigapp/actions/valuenodeconstset.h +src/synfigapp/actions/valuenodedynamiclistinsert.cpp +src/synfigapp/actions/valuenodedynamiclistinsert.h +src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp +src/synfigapp/actions/valuenodedynamiclistinsertsmart.h +src/synfigapp/actions/valuenodedynamiclistloop.cpp +src/synfigapp/actions/valuenodedynamiclistloop.h +src/synfigapp/actions/valuenodedynamiclistremove.cpp +src/synfigapp/actions/valuenodedynamiclistremove.h +src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp +src/synfigapp/actions/valuenodedynamiclistremovesmart.h +src/synfigapp/actions/valuenodedynamiclistrotateorder.cpp +src/synfigapp/actions/valuenodedynamiclistrotateorder.h +src/synfigapp/actions/valuenodedynamiclistunloop.cpp +src/synfigapp/actions/valuenodedynamiclistunloop.h +src/synfigapp/actions/valuenodelinkconnect.cpp +src/synfigapp/actions/valuenodelinkconnect.h +src/synfigapp/actions/valuenodelinkdisconnect.cpp +src/synfigapp/actions/valuenodelinkdisconnect.h +src/synfigapp/actions/valuenoderemove.cpp +src/synfigapp/actions/valuenoderemove.h +src/synfigapp/actions/valuenoderename.cpp +src/synfigapp/actions/valuenoderename.h +src/synfigapp/actions/valuenodereplace.cpp +src/synfigapp/actions/valuenodereplace.h +src/synfigapp/actions/waypointadd.cpp +src/synfigapp/actions/waypointadd.h +src/synfigapp/actions/waypointremove.cpp +src/synfigapp/actions/waypointremove.h +src/synfigapp/actions/waypointset.cpp +src/synfigapp/actions/waypointset.h +src/synfigapp/actions/waypointsetsmart.cpp +src/synfigapp/actions/waypointsetsmart.h +src/synfigapp/actions/waypointsimpleadd.cpp +src/synfigapp/actions/waypointsimpleadd.h +src/synfigapp/action_system.cpp +src/synfigapp/action_system.h +src/synfigapp/blineconvert.cpp +src/synfigapp/blineconvert.h +src/synfigapp/canvasinterface.cpp +src/synfigapp/canvasinterface.h +src/synfigapp/cvs.cpp +src/synfigapp/cvs.h +src/synfigapp/editmode.h +src/synfigapp/inputdevice.cpp +src/synfigapp/inputdevice.h +src/synfigapp/instance.cpp +src/synfigapp/instance.h +src/synfigapp/main.cpp +src/synfigapp/main.h +src/synfigapp/selectionmanager.h +src/synfigapp/settings.cpp +src/synfigapp/settings.h +src/synfigapp/timegather.cpp +src/synfigapp/timegather.h +src/synfigapp/uimanager.cpp +src/synfigapp/uimanager.h +src/synfigapp/value_desc.cpp +src/synfigapp/value_desc.h +# Disabled because they are not built +# src/template.cpp +# src/template.h diff --git a/synfig-studio/tags/0.61.08/po/es.po b/synfig-studio/tags/0.61.08/po/es.po new file mode 100644 index 0000000..f2904b7 --- /dev/null +++ b/synfig-studio/tags/0.61.08/po/es.po @@ -0,0 +1,4069 @@ +# translation of es.po to Español +# Copyright (C) YEAR Synfig Contributors +# This file is distributed under the same license as the PACKAGE package. +# +# Carlos López González , 2008. +msgid "" +msgstr "" +"Project-Id-Version: es\n" +"Report-Msgid-Bugs-To: http://synfig.org/Bugs\n" +"POT-Creation-Date: 2008-03-02 09:10+0100\n" +"PO-Revision-Date: 2008-03-02 09:13+0100\n" +"Last-Translator: Carlos López González \n" +"Language-Team: Español \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: src/gtkmm/about.cpp:104 +msgid "2D vector animation studio" +msgstr "Estudio de animación vectorial 2D" + +#: src/gtkmm/about.cpp:108 +msgid "Visit the Synfig website" +msgstr "Visite la web de Synfig" + +#: src/gtkmm/about.cpp:110 +msgid "" +"Copyright 2001-2008\n" +"Robert B. Quattlebaum Jr.,\n" +"Adrian Bentley and Synfig contributors" +msgstr "" +"Copyright 2001-2008\n" +"Robert B. Quattlebaum Jr.,\n" +"Adrian Bentley y los contribuidores de Synfig" + +#. TRANSLATORS: change this to your name, separate multiple names with \n +#: src/gtkmm/about.cpp:162 +msgid "translator-credits" +msgstr "Carlos López González (genete)" + +#: src/gtkmm/about.cpp:188 +#, c-format +msgid "" +"\n" +"Development version:\n" +"%s\n" +msgstr "" +"\n" +"Versión de desarrollo:\n" +"%s \n" + +#: src/gtkmm/about.cpp:193 +#, c-format +msgid "Built on %s\n" +msgstr "Contruido el %s\n" + +#: src/gtkmm/about.cpp:197 +msgid "Built with:\n" +msgstr "Construido con: \n" + +#: src/gtkmm/about.cpp:198 +#, c-format +msgid "ETL %s\n" +msgstr "ETL %s\n" + +#: src/gtkmm/about.cpp:199 +#, c-format +msgid "Synfig API %s\n" +msgstr "Synfig API %s\n" + +#: src/gtkmm/about.cpp:200 +#, c-format +msgid "Synfig library %d\n" +msgstr "Librería Synfig %d\n" + +#: src/gtkmm/about.cpp:201 +#, c-format +msgid "GTK+ %d.%d.%d\n" +msgstr "GTK+ %d.%d.%d\n" + +#: src/gtkmm/about.cpp:203 +#, c-format +msgid "GNU G++ %d.%d.%d\n" +msgstr "GNU G++ %d.%d.%d\n" + +#: src/gtkmm/about.cpp:208 +msgid "Using:\n" +msgstr "Usando:\n" + +#: src/gtkmm/about.cpp:209 +#, c-format +msgid "Synfig %s\n" +msgstr "Synfig %s\n" + +#: src/gtkmm/about.cpp:210 +#, c-format +msgid "GTK+ %d.%d.%d" +msgstr "GTK+ %d.%d.%d" + +#: src/gtkmm/app.cpp:613 src/gtkmm/toolbox.cpp:281 +msgid "_File" +msgstr "_Archivo" + +#: src/gtkmm/app.cpp:614 src/gtkmm/canvasview.cpp:3227 +msgid "_Edit" +msgstr "_Editar" + +#: src/gtkmm/app.cpp:615 +msgid "_View" +msgstr "_Ver" + +#: src/gtkmm/app.cpp:616 +msgid "_Canvas" +msgstr "_Lienzo" + +#: src/gtkmm/app.cpp:617 +msgid "_Layer" +msgstr "_Capa" + +#: src/gtkmm/app.cpp:618 +msgid "Show/Hide Ducks" +msgstr "Mostrar/Ocultar Patos" + +#: src/gtkmm/app.cpp:619 +msgid "Preview Quality" +msgstr "Calidad de Previsualiación" + +#: src/gtkmm/app.cpp:620 +msgid "Low-Res Pixel Size" +msgstr "Tamaño de pixel Baja Resolución" + +#: src/gtkmm/app.cpp:621 src/gtkmm/canvasview.cpp:2243 +#: src/synfigapp/actions/layeradd.cpp:82 +msgid "New Layer" +msgstr "Nueva Capa" + +#: src/gtkmm/app.cpp:622 src/synfigapp/actions/keyframeduplicate.cpp:79 +#: src/synfigapp/actions/keyframeremove.cpp:78 +#: src/synfigapp/actions/keyframesetdelta.cpp:79 +#: src/synfigapp/actions/keyframewaypointset.cpp:78 +msgid "Keyframe" +msgstr "Fotograma Clave" + +#: src/gtkmm/app.cpp:623 src/gtkmm/iconcontroller.cpp:159 +#: src/synfigapp/actions/groupaddlayers.cpp:78 +#: src/synfigapp/actions/groupremove.cpp:72 +msgid "Group" +msgstr "Grupo" + +#: src/gtkmm/app.cpp:624 +msgid "State" +msgstr "Estado" + +#: src/gtkmm/app.cpp:625 +msgid "Toolbox" +msgstr "Caja de Herramientas" + +#: src/gtkmm/app.cpp:642 src/gtkmm/keyframeactionmanager.cpp:239 +msgid "Keyframe Properties" +msgstr "Propiedades del Fotograma Clave" + +#: src/gtkmm/app.cpp:653 src/gtkmm/canvasview.cpp:1202 +msgid "Import" +msgstr "Importar" + +#: src/gtkmm/app.cpp:654 src/gtkmm/canvasview.cpp:1205 +msgid "Render" +msgstr "Mostrar" + +#: src/gtkmm/app.cpp:655 src/gtkmm/canvasview.cpp:1208 +#: src/gtkmm/dialog_preview.cpp:171 +msgid "Preview" +msgstr "Previsualizar" + +#: src/gtkmm/app.cpp:656 +msgid "Preview Dialog" +msgstr "Diálogo de Previsualización" + +#: src/gtkmm/app.cpp:657 src/gtkmm/canvasview.cpp:1211 +msgid "Sound File" +msgstr "Archivo de Sonido" + +#: src/gtkmm/app.cpp:658 src/gtkmm/canvasoptions.cpp:151 +#: src/gtkmm/canvasview.cpp:1214 +msgid "Options" +msgstr "Opciones" + +#: src/gtkmm/app.cpp:659 +msgid "Close View" +msgstr "Cerrar Vista" + +#: src/gtkmm/app.cpp:660 src/gtkmm/canvasview.cpp:1220 +msgid "Close Document" +msgstr "Cerrar Documento" + +#: src/gtkmm/app.cpp:669 src/gtkmm/canvasview.cpp:1235 +msgid "Select All Ducks" +msgstr "Seleccionar todos los Patos" + +#: src/gtkmm/app.cpp:670 src/gtkmm/canvasview.cpp:1239 +msgid "Unselect All Layers" +msgstr "Deseleccionar Todas las Capas" + +#: src/gtkmm/app.cpp:671 src/gtkmm/canvasproperties.cpp:196 +msgid "Properties" +msgstr "Propiedades" + +#: src/gtkmm/app.cpp:673 src/gtkmm/canvasview.cpp:1405 +msgid "Show Position Ducks" +msgstr "Mostrar los Patos de Posición" + +#: src/gtkmm/app.cpp:674 src/gtkmm/canvasview.cpp:1407 +msgid "Show Vertex Ducks" +msgstr "Mostrar los Patos de Vértice" + +#: src/gtkmm/app.cpp:675 src/gtkmm/canvasview.cpp:1406 +msgid "Show Tangent Ducks" +msgstr "Mostrar los Patos de Tangente" + +#: src/gtkmm/app.cpp:676 src/gtkmm/canvasview.cpp:1408 +msgid "Show Radius Ducks" +msgstr "Mostrar los Patos de Radio" + +#: src/gtkmm/app.cpp:677 src/gtkmm/canvasview.cpp:1409 +msgid "Show Width Ducks" +msgstr "Mostrar los Patos de Espesor" + +#: src/gtkmm/app.cpp:678 src/gtkmm/canvasview.cpp:1410 +msgid "Show Angle Ducks" +msgstr "Mostrar los Patos de Ángulo" + +#: src/gtkmm/app.cpp:679 src/gtkmm/canvasview.cpp:1258 +msgid "Use Parametric Renderer" +msgstr "Usar Muestreador Paramétrico " + +#: src/gtkmm/app.cpp:680 +msgid "Use Quality Level 1" +msgstr "Usar Nivel de Calidad 1" + +#: src/gtkmm/app.cpp:681 +msgid "Use Quality Level 2" +msgstr "Usar Nivel de Calidad 2" + +#: src/gtkmm/app.cpp:682 +msgid "Use Quality Level 3" +msgstr "Usar Nivel de Calidad 3" + +#: src/gtkmm/app.cpp:683 +msgid "Use Quality Level 4" +msgstr "Usar Nivel de Calidad 4" + +#: src/gtkmm/app.cpp:684 +msgid "Use Quality Level 5" +msgstr "Usar Nivel de Calidad 5" + +#: src/gtkmm/app.cpp:685 +msgid "Use Quality Level 6" +msgstr "Usar Nivel de Calidad 6" + +#: src/gtkmm/app.cpp:686 +msgid "Use Quality Level 7" +msgstr "Usar Nivel de Calidad 7" + +#: src/gtkmm/app.cpp:687 +msgid "Use Quality Level 8" +msgstr "Usar Nivel de Calidad 8" + +#: src/gtkmm/app.cpp:688 +msgid "Use Quality Level 9" +msgstr "Usar Nivel de Calidad 8" + +#: src/gtkmm/app.cpp:689 +msgid "Use Quality Level 10" +msgstr "Usar Nivel de Calidad 10" + +#: src/gtkmm/app.cpp:691 src/gtkmm/canvasview.cpp:1292 +#, c-format +msgid "Set Low-Res pixel size to %d" +msgstr "Establecer el tamaño de pixel de Baja Resolución a %d" + +#: src/gtkmm/app.cpp:692 src/gtkmm/preview.cpp:358 +msgid "Play" +msgstr "Reproducir" + +#: src/gtkmm/app.cpp:694 src/gtkmm/canvasview.cpp:990 +#: src/gtkmm/preview.cpp:364 +msgid "Stop" +msgstr "Parar" + +#: src/gtkmm/app.cpp:695 +msgid "Toggle Grid Show" +msgstr "Alternar Mostrar Rejilla" + +#: src/gtkmm/app.cpp:696 +msgid "Toggle Grid Snap" +msgstr "Alternar Adherir a Rejilla" + +#: src/gtkmm/app.cpp:697 +msgid "Toggle Guide Show" +msgstr "Alternar Mostrar Guía" + +#: src/gtkmm/app.cpp:698 +msgid "Toggle Low-Res" +msgstr "Alternar Baja Resolución" + +#: src/gtkmm/app.cpp:699 src/gtkmm/canvasview.cpp:1308 +msgid "Decrease Low-Res Pixel Size" +msgstr "Disminuir el tamaño de pixel de Baja Resolución" + +#: src/gtkmm/app.cpp:700 src/gtkmm/canvasview.cpp:1311 +msgid "Increase Low-Res Pixel Size" +msgstr "Aumentar el tamaño de pixel de Baja Resolución" + +#: src/gtkmm/app.cpp:701 +msgid "Toggle Onion Skin" +msgstr "Alternar Piel de Cebolla" + +#: src/gtkmm/app.cpp:708 src/gtkmm/canvasview.cpp:1374 +msgid "Jump to Next Keyframe" +msgstr "Saltar al Fotograma Clave Siguiente" + +#: src/gtkmm/app.cpp:709 src/gtkmm/canvasview.cpp:1377 +msgid "Jump to Prev Keyframe" +msgstr "Saltar al Fotograma Clave Previo" + +#: src/gtkmm/app.cpp:710 src/gtkmm/canvasview.cpp:1358 +msgid "Next Frame" +msgstr "Fotograma Siguiente" + +#: src/gtkmm/app.cpp:711 src/gtkmm/canvasview.cpp:1360 +msgid "Prev Frame" +msgstr "Fotograma Previo" + +#: src/gtkmm/app.cpp:712 src/gtkmm/canvasview.cpp:1363 +msgid "Seek Forward" +msgstr "Avanzar" + +#: src/gtkmm/app.cpp:713 src/gtkmm/canvasview.cpp:1365 +msgid "Seek Backward" +msgstr "Retroceder" + +#: src/gtkmm/app.cpp:714 src/gtkmm/canvasview.cpp:1371 +msgid "Seek to Begin" +msgstr "Retroceder al Principio" + +#: src/gtkmm/app.cpp:715 src/gtkmm/canvasview.cpp:1368 +msgid "Seek to End" +msgstr "Avanzar al Final" + +#: src/gtkmm/app.cpp:717 +msgid "Add group" +msgstr "Añadir grupo" + +#: src/gtkmm/app.cpp:719 src/gtkmm/iconcontroller.cpp:155 +#: src/synfigapp/actions/canvasadd.cpp:73 +msgid "New Canvas" +msgstr "Nuevo Lienzo" + +#: src/gtkmm/app.cpp:721 src/gtkmm/layeractionmanager.cpp:104 +#: src/gtkmm/layeractionmanager.cpp:494 +msgid "Increase Amount" +msgstr "Incrementar la Cantidad" + +#: src/gtkmm/app.cpp:722 src/gtkmm/layeractionmanager.cpp:116 +#: src/gtkmm/layeractionmanager.cpp:511 +msgid "Decrease Amount" +msgstr "Disminuir la Cantidad" + +#: src/gtkmm/app.cpp:1074 src/gtkmm/toolbox.cpp:359 +msgid "Synfig Studio" +msgstr "Synfig Studio" + +#: src/gtkmm/app.cpp:1087 +msgid "Failed to initialize synfig!" +msgstr "¡Fallo al inizializar Synfig!" + +#: src/gtkmm/app.cpp:1096 +msgid "Init UI Manager..." +msgstr "Iniciar Encargado de Interfaz de Usuario ..." + +#: src/gtkmm/app.cpp:1100 +msgid "Init Dock Manager..." +msgstr "Iniciar Encargado de Empotrables..." + +#: src/gtkmm/app.cpp:1103 +msgid "Init State Manager..." +msgstr "Iniciar Encargado de Estado..." + +#: src/gtkmm/app.cpp:1106 +msgid "Init Toolbox..." +msgstr "Iniciar Caja de Herramientas..." + +#: src/gtkmm/app.cpp:1109 +msgid "Init About Dialog..." +msgstr "Iniciar Diálogo Acerca de..." + +#: src/gtkmm/app.cpp:1112 +msgid "Init Tool Options..." +msgstr "Iniciar Opciones de Herramienta..." + +#: src/gtkmm/app.cpp:1116 +msgid "Init History..." +msgstr "Iniciar Historial..." + +#: src/gtkmm/app.cpp:1120 +msgid "Init Canvases..." +msgstr "Iniciar Lienzos..." + +#: src/gtkmm/app.cpp:1124 +msgid "Init Keyframes..." +msgstr "Iniciar Fotogramas Claves..." + +#: src/gtkmm/app.cpp:1128 +msgid "Init Layers..." +msgstr "Iniciar Capas..." + +#: src/gtkmm/app.cpp:1132 +msgid "Init Params..." +msgstr "Iniciar Parametros..." + +#: src/gtkmm/app.cpp:1136 +msgid "Init MetaData..." +msgstr "Iniciar Meta Datos..." + +#: src/gtkmm/app.cpp:1140 +msgid "Init Children..." +msgstr "Iniciar Descendientes..." + +#: src/gtkmm/app.cpp:1144 +msgid "Init Info..." +msgstr "Iniciar Información..." + +#: src/gtkmm/app.cpp:1148 +msgid "Init Navigator..." +msgstr "Iniciar Navegador..." + +#: src/gtkmm/app.cpp:1152 +msgid "Init Timetrack..." +msgstr "Iniciar Linea de Tiempo..." + +#: src/gtkmm/app.cpp:1156 +msgid "Init Curve Editor..." +msgstr "Iniciar Editor de Curvas..." + +#: src/gtkmm/app.cpp:1160 +msgid "Init Layer Groups..." +msgstr "Iniciar Grupos de Capas..." + +#: src/gtkmm/app.cpp:1165 +msgid "Init Color Dialog..." +msgstr "Iniciar Diálogo de Color..." + +#: src/gtkmm/app.cpp:1168 +msgid "Init Gradient Dialog..." +msgstr "Iniciar Diálogo de Gradiente..." + +#: src/gtkmm/app.cpp:1171 +msgid "Init DeviceTracker..." +msgstr "Iniciar Seguimiento Dispositivos..." + +#: src/gtkmm/app.cpp:1174 +msgid "Init Tools..." +msgstr "Iniciar Herramientas..." + +#: src/gtkmm/app.cpp:1181 +msgid "Init ModMirror..." +msgstr "Iniciar Espejo..." + +#: src/gtkmm/app.cpp:1200 +msgid "Init ModPalette..." +msgstr "Iniciar Paleta..." + +#: src/gtkmm/app.cpp:1203 +msgid "Init Setup Dialog..." +msgstr "Iniciar Diálogo de Atributos..." + +#: src/gtkmm/app.cpp:1206 +msgid "Init Input Dialog..." +msgstr "Iniciar Diálogo de Entrada..." + +#: src/gtkmm/app.cpp:1211 +msgid "Init auto recovery..." +msgstr "Iniciar Autorecuperación..." + +#: src/gtkmm/app.cpp:1215 +msgid "Loading Settings..." +msgstr "Cargando Atributos..." + +#: src/gtkmm/app.cpp:1217 +msgid "Checking auto-recover..." +msgstr "Chekeando Autorecuperación..." + +#: src/gtkmm/app.cpp:1225 +msgid "Auto Recovery" +msgstr "Autorecuperación" + +#: src/gtkmm/app.cpp:1226 +msgid "" +"Synfig Studio seems to have crashed\n" +"before you could save all your files.\n" +"Would you like to re-open those files\n" +"and recover your unsaved changes?" +msgstr "" +"Synfig parece haberse cerrado antes \n" +"de que pudiera salvar todos los ficheros\n" +"¿Quiere re-abrir esos ficheros y recuperar\n" +"los cambios no salvados?" + +#: src/gtkmm/app.cpp:1235 +msgid "Unable to fully recover from previous crash" +msgstr "Imposible recuperar completamente desde el ultimo cierrre" + +#: src/gtkmm/app.cpp:1237 +msgid "Unable to recover from previous crash" +msgstr "Imposible recuperar desde el ultimo cierre" + +#: src/gtkmm/app.cpp:1240 +msgid "" +"Synfig Studio has attempted to recover\n" +"from a previous crash. The files that it has\n" +"recovered are NOT YET SAVED. It would be a good\n" +"idea to review them and save them now." +msgstr "" +"Synfig ha intentado recuperarse de\n" +"un cierre previo. Los archivos que no se\n" +"han recuperado NO HAN SIDO SALVADOS \n" +" TODAVÍA. Parece una buena idea recuperarlos\n" +"y salvarlos ahora." + +#: src/gtkmm/app.cpp:1256 +msgid "Loading files..." +msgstr "Cargando Ficheros..." + +#: src/gtkmm/app.cpp:1267 +msgid "Done." +msgstr "Hecho." + +#: src/gtkmm/app.cpp:1274 src/gtkmm/app.cpp:1278 +msgid "" +"Unknown exception caught when constructing App.\n" +"This software may be unstable." +msgstr "" +"Atrapada excepción desconocida cuando se construía la Aplicación. \n" +"Este programa puede ser inestable." + +#: src/gtkmm/app.cpp:1682 +msgid "Quit Request" +msgstr "Requerimiento de Salida" + +#: src/gtkmm/app.cpp:1685 +msgid "Cannot quit!" +msgstr "¡No puedo Salir!" + +#: src/gtkmm/app.cpp:1685 +msgid "" +"Tasks are currently running.\n" +"Please cancel the current tasks and try again" +msgstr "" +"Hay tareas ejecutandose actualmente.\n" +"Por favor cancelelas e inténtelo de nuevo." + +#: src/gtkmm/app.cpp:1753 +msgid "Quit Request sent" +msgstr "Requerimiento de Salida enviado" + +#: src/gtkmm/app.cpp:1970 +msgid "current" +msgstr "actual" + +#: src/gtkmm/app.cpp:1972 +msgid "and older" +msgstr "y más antiguo" + +#: src/gtkmm/app.cpp:1976 +msgid "File Format Version: " +msgstr "Versión de Formato de Archivo: " + +#: src/gtkmm/app.cpp:2075 +msgid "Feature not available" +msgstr "Característica no disponible" + +#: src/gtkmm/app.cpp:2076 +msgid "Sorry, this feature has not yet been implemented." +msgstr "Lo siento, esta característica no ha sido aún creada" + +#: src/gtkmm/app.cpp:2161 +msgid "Documentation" +msgstr "Documentación" + +#: src/gtkmm/app.cpp:2162 +msgid "" +"Documentation for Synfig Studio is available on the website:\n" +"\n" +"http://www.synfig.org/Documentation" +msgstr "" +"La Documentación para Synfig Studio está disponible en el sitio: \n" +"\n" +"http://www.synfig.org/Documentation" + +#: src/gtkmm/app.cpp:2163 src/gtkmm/toolbox.cpp:298 +msgid "Help" +msgstr "_Ayuda" + +#: src/gtkmm/app.cpp:2173 +msgid "No browser was found. Please load this website manually:" +msgstr "No se ha encontrado navegador. Por favor cargue esta página web manualmente:" + +#: src/gtkmm/app.cpp:2175 +msgid "No browser found" +msgstr "No se ha encontrado Navegador" + +#: src/gtkmm/app.cpp:2250 +#, c-format +msgid "Unable to open file \"%s\"" +msgstr "Imposible abrir archivo \"%s\"" + +#: src/gtkmm/app.cpp:2258 +#, c-format +msgid "Unable to create instance for \"%s\"" +msgstr "Imposible crear instancia para \"%s\"" + +#: src/gtkmm/app.cpp:2264 src/gtkmm/iconcontroller.cpp:184 +#: src/gtkmm/instance.cpp:560 +msgid "CVS Update" +msgstr "Actualización por CVS" + +#: src/gtkmm/app.cpp:2264 +msgid "" +"There appears to be a newer version of this file available on the CVS " +"repository.\n" +"Would you like to update now? (It would probably be a good idea)" +msgstr "" +"Parece haber una nueva versión de este fichero en el depósito CVS.\n" +"¿Quiere actualizar ahora? (probablemente sea una buena idea)" + +#: src/gtkmm/app.cpp:2270 src/gtkmm/app.cpp:2275 src/gtkmm/instance.cpp:482 +#: src/gtkmm/instance.cpp:498 src/gtkmm/instance.cpp:510 +#: src/gtkmm/instance.cpp:521 src/gtkmm/instance.cpp:535 +#: src/gtkmm/instance.cpp:546 src/gtkmm/instance.cpp:576 +#: src/gtkmm/instance.cpp:587 src/gtkmm/instance.cpp:603 +#: src/gtkmm/instance.cpp:612 src/gtkmm/layerparamtreestore.cpp:246 +#: src/gtkmm/widget_canvaschooser.cpp:145 +#: src/gtkmm/widget_canvaschooser.cpp:163 +msgid "Error" +msgstr "Error" + +#: src/gtkmm/app.cpp:2275 +msgid "Uncaught error on file open (BUG)" +msgstr "Error no atrapado al abrir fichero (BUG)" + +#: src/gtkmm/app.cpp:2327 +msgid "Unable to open file" +msgstr "Imposible abrir fichero" + +#: src/gtkmm/canvasoptions.cpp:61 +msgid "Canvas Options" +msgstr "Opciones de Lienzo" + +#: src/gtkmm/canvasoptions.cpp:63 +msgid "_Snap to grid" +msgstr "Adherir a la _Rejilla" + +#: src/gtkmm/canvasoptions.cpp:64 +msgid "S_how grid" +msgstr "_Mostrar la Rejilla" + +#: src/gtkmm/canvasoptions.cpp:65 +msgid "Snap to _frame" +msgstr "Ahderir a _Fotograma" + +#: src/gtkmm/canvasoptions.cpp:80 +msgid "Grid" +msgstr "Rejilla" + +#: src/gtkmm/canvasoptions.cpp:90 +msgid "_Grid size" +msgstr "_Tamaño de Rejilla" + +#: src/gtkmm/canvasoptions.cpp:104 src/gtkmm/iconcontroller.cpp:139 +#: src/gtkmm/keyframetree.cpp:62 src/gtkmm/renddesc.cpp:96 +#: src/synfigapp/actions/activepointadd.cpp:85 +#: src/synfigapp/actions/activepointsetoff.cpp:92 +#: src/synfigapp/actions/activepointseton.cpp:92 +#: src/synfigapp/actions/activepointsetsmart.cpp:92 +#: src/synfigapp/actions/blinepointtangentmerge.cpp:91 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:91 +#: src/synfigapp/actions/colorset.cpp:83 +#: src/synfigapp/actions/gradientset.cpp:83 +#: src/synfigapp/actions/keyframeduplicate.cpp:84 +#: src/synfigapp/actions/layerparamdisconnect.cpp:83 +#: src/synfigapp/actions/valuedescconvert.cpp:102 +#: src/synfigapp/actions/valuedescdisconnect.cpp:94 +#: src/synfigapp/actions/valuedescset.cpp:100 +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:79 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:81 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:80 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:83 +#: src/synfigapp/actions/waypointadd.cpp:86 +#: src/synfigapp/actions/waypointsetsmart.cpp:100 +msgid "Time" +msgstr "Tiempo" + +#: src/gtkmm/canvasoptions.cpp:113 src/gtkmm/dialog_setup.cpp:174 +msgid "Units" +msgstr "Unidades" + +#: src/gtkmm/canvasoptions.cpp:114 +msgid "Not yet implemented!" +msgstr "¡Aún no creado!" + +#: src/gtkmm/canvasoptions.cpp:169 src/gtkmm/dialog_keyframe.cpp:89 +msgid "Not yet implemented" +msgstr "Aun no creado" + +#: src/gtkmm/canvasproperties.cpp:64 +msgid "Canvas Properties" +msgstr "Propiedades del Lienzo" + +#: src/gtkmm/canvasproperties.cpp:77 +msgid "Canvas Info" +msgstr "Información del Lienzo" + +#: src/gtkmm/canvasproperties.cpp:79 +msgid "Canvas Info" +msgstr "Información del Lienzo" + +#: src/gtkmm/canvasproperties.cpp:95 +msgid "_ID" +msgstr "_ID" + +#: src/gtkmm/canvasproperties.cpp:101 +msgid "_Name" +msgstr "_Nombre" + +#: src/gtkmm/canvasproperties.cpp:104 +msgid "_Description" +msgstr "_Descripción" + +#: src/gtkmm/canvasproperties.cpp:145 src/gtkmm/dock_metadata.cpp:69 +msgid "Key" +msgstr "Clave" + +#: src/gtkmm/canvasproperties.cpp:146 src/gtkmm/dock_metadata.cpp:70 +msgid "Data" +msgstr "Datos" + +#: src/gtkmm/canvasproperties.cpp:181 src/gtkmm/dock_metadata.cpp:134 +msgid "New MetaData Entry" +msgstr "Nueva Entrada de Meta Datos" + +#: src/gtkmm/canvasproperties.cpp:181 src/gtkmm/dock_metadata.cpp:134 +msgid "Please enter the name of the key" +msgstr "Por favor introduzca el nombre de la clave" + +#: src/gtkmm/canvastreestore.cpp:204 src/gtkmm/canvastreestore.cpp:242 +#: src/gtkmm/childrentreestore.cpp:204 src/gtkmm/iconcontroller.cpp:146 +#: src/synfigapp/action.cpp:456 +msgid "Canvas" +msgstr "Lienzo" + +#: src/gtkmm/canvastreestore.cpp:241 src/gtkmm/childrentreestore.cpp:201 +#: src/gtkmm/instance.cpp:416 +msgid "[Unnamed]" +msgstr "[Sin Nombre]" + +#: src/gtkmm/canvasview.cpp:237 src/gtkmm/workarea.cpp:2342 +#: src/gtkmm/workarea.cpp:2437 +msgid "Idle" +msgstr "Inactivo" + +#: src/gtkmm/canvasview.cpp:327 +msgid "ERROR" +msgstr "ERROR" + +#: src/gtkmm/canvasview.cpp:376 +msgid "Feature not yet implemented" +msgstr "Característica aún no creada" + +#: src/gtkmm/canvasview.cpp:922 +msgid "Moves the time window" +msgstr "Mueve la ventana de tiempo" + +#: src/gtkmm/canvasview.cpp:923 +msgid "Changes the current time" +msgstr "Cambia el tiempo actual" + +#: src/gtkmm/canvasview.cpp:932 +msgid "Animate" +msgstr "Animar" + +#: src/gtkmm/canvasview.cpp:936 src/gtkmm/canvasview.cpp:2509 +#: src/gtkmm/iconcontroller.cpp:178 +msgid "All Keyframes Locked" +msgstr "Todos los Fotogramas Clave Bloqueados" + +#: src/gtkmm/canvasview.cpp:991 +msgid "Refresh" +msgstr "Refrescar" + +#: src/gtkmm/canvasview.cpp:1217 +msgid "Close Window" +msgstr "Cerrar Ventana" + +#: src/gtkmm/canvasview.cpp:1223 +msgid "Quit" +msgstr "_Salir" + +#: src/gtkmm/canvasview.cpp:1267 +msgid " (best)" +msgstr "(mejor)" + +#: src/gtkmm/canvasview.cpp:1268 +msgid " (fastest)" +msgstr "(el más rápido)" + +#: src/gtkmm/canvasview.cpp:1270 +#, c-format +msgid "Set Quality to %d" +msgstr "Establecer calidad a %d" + +#: src/gtkmm/canvasview.cpp:1320 +msgid "Flipbook Dialog" +msgstr "Diálogo de Previsualización" + +#: src/gtkmm/canvasview.cpp:1327 src/gtkmm/iconcontroller.cpp:160 +msgid "Show Grid" +msgstr "Mostar Rejilla" + +#: src/gtkmm/canvasview.cpp:1331 +msgid "Snap to Grid" +msgstr "Adherir a la _Rejilla" + +#: src/gtkmm/canvasview.cpp:1335 +msgid "Show Guides" +msgstr "Mostar Guías" + +#: src/gtkmm/canvasview.cpp:1339 +msgid "Use Low-Res" +msgstr "Usar Baja Resolución" + +#: src/gtkmm/canvasview.cpp:1343 +msgid "Show Onion Skin" +msgstr "Mostrar Piel de Cebolla" + +#: src/gtkmm/canvasview.cpp:1386 +msgid "Zoom In on Timeline" +msgstr "Acercar en la Línea de Tiempo" + +#: src/gtkmm/canvasview.cpp:1389 +msgid "Zoom Out on Timeline" +msgstr "Alejar de la Linea de Tiempo" + +#: src/gtkmm/canvasview.cpp:1785 src/gtkmm/canvasview.cpp:2246 +msgid "Select All Children" +msgstr "Seleccionar todos los Descendientes" + +#: src/gtkmm/canvasview.cpp:2059 +msgid "-MODIFIED" +msgstr "-MODIFICADO" + +#: src/gtkmm/canvasview.cpp:2061 +msgid "-UPDATED" +msgstr "-ACTUALIZADO" + +#: src/gtkmm/canvasview.cpp:2066 +msgid " (Root)" +msgstr "(Raíz)" + +#: src/gtkmm/canvasview.cpp:2488 +msgid "In Animate Editing Mode" +msgstr "En Modo de Edición de Animación" + +#: src/gtkmm/canvasview.cpp:2498 +msgid "Not in Animate Editing Mode" +msgstr "No en Modo de Edición de Animación" + +#: src/gtkmm/canvasview.cpp:2519 src/gtkmm/iconcontroller.cpp:180 +msgid "Future Keyframes Locked" +msgstr "Fotogramas Claves Futuros Bloqueados" + +#: src/gtkmm/canvasview.cpp:2529 src/gtkmm/iconcontroller.cpp:179 +msgid "Past Keyframes Locked" +msgstr "Fotogramas Clave Pasados Bloqueados" + +#: src/gtkmm/canvasview.cpp:2539 src/gtkmm/iconcontroller.cpp:181 +msgid "No Keyframes Locked" +msgstr "Sin Bloquear Fotogramas Clave" + +#: src/gtkmm/canvasview.cpp:3084 +msgid "Change Waypoint Group" +msgstr "Cambiar Interpolación del Grupo" + +#: src/gtkmm/canvasview.cpp:3115 +msgid "Duplicate Waypoints" +msgstr "Duplicar Interpolaciones" + +#: src/gtkmm/canvasview.cpp:3131 +msgid "Remove Waypoints" +msgstr "Borrar Interpolaciones" + +#: src/gtkmm/canvasview.cpp:3176 src/gtkmm/canvasview.cpp:3179 +#: src/gtkmm/canvasview.cpp:3182 src/gtkmm/widget_defaults.cpp:287 +msgid "_TCB" +msgstr "_TCB" + +#: src/gtkmm/canvasview.cpp:3186 src/gtkmm/canvasview.cpp:3189 +#: src/gtkmm/canvasview.cpp:3192 src/gtkmm/widget_defaults.cpp:290 +msgid "_Linear" +msgstr "_Linear" + +#: src/gtkmm/canvasview.cpp:3196 +msgid "_Ease In" +msgstr "_Entrada Suave" + +#: src/gtkmm/canvasview.cpp:3199 +msgid "_Ease Out" +msgstr "_Salida Suave" + +#: src/gtkmm/canvasview.cpp:3202 src/gtkmm/widget_defaults.cpp:289 +msgid "_Ease In/Out" +msgstr "Sua_ve Entrada/Salida" + +#: src/gtkmm/canvasview.cpp:3206 src/gtkmm/canvasview.cpp:3209 +#: src/gtkmm/canvasview.cpp:3212 src/gtkmm/widget_defaults.cpp:288 +msgid "_Constant" +msgstr "_Constante" + +#: src/gtkmm/canvasview.cpp:3217 +msgid "_Jump To" +msgstr "_Saltar A" + +#: src/gtkmm/canvasview.cpp:3220 +msgid "_Duplicate" +msgstr "_Duplicar" + +#: src/gtkmm/canvasview.cpp:3223 +msgid "_Remove" +msgstr "_Borrar" + +#: src/gtkmm/canvasview.cpp:3223 +#, c-format +msgid "_Remove %d Waypoints" +msgstr "_Borrar %d Interpolación" + +#: src/gtkmm/canvasview.cpp:3234 +msgid "_Both" +msgstr "_Ámbos" + +#: src/gtkmm/canvasview.cpp:3235 +msgid "_In" +msgstr "_Entrada" + +#: src/gtkmm/canvasview.cpp:3236 +msgid "_Out" +msgstr "_Salida" + +#: src/gtkmm/canvasview.cpp:3467 src/synfigapp/canvasinterface.cpp:536 +msgid "Import Image" +msgstr "Importar imagen" + +#: src/gtkmm/cellrenderer_value.cpp:221 +msgid "Paragraph" +msgstr "Párrafo" + +#: src/gtkmm/cellrenderer_value.cpp:225 +msgid "Enter Paragraph Text Here:" +msgstr "Introduzca Texto del Párrafo Aquí" + +#: src/gtkmm/cellrenderer_value.cpp:411 +msgid "" +msgstr "" + +#: src/gtkmm/cellrenderer_value.cpp:441 src/gtkmm/iconcontroller.cpp:143 +msgid "Segment" +msgstr "Segmento" + +#: src/gtkmm/cellrenderer_value.cpp:448 +msgid "List" +msgstr "Lista" + +#: src/gtkmm/cellrenderer_value.cpp:451 src/gtkmm/iconcontroller.cpp:144 +msgid "BLine Point" +msgstr "Punto Línea Beizer" + +#: src/gtkmm/cellrenderer_value.cpp:454 +msgid "UNKNOWN" +msgstr "DESCONOCIDO" + +#: src/gtkmm/childrentree.cpp:93 src/gtkmm/dock_canvases.cpp:108 +#: src/synfigapp/actions/canvasadd.cpp:78 +msgid "ID" +msgstr "ID" + +#: src/gtkmm/childrentree.cpp:113 src/gtkmm/layertree.cpp:354 +#: src/synfigapp/actions/valuedescconvert.cpp:97 +msgid "Type" +msgstr "Tipo" + +#: src/gtkmm/childrentree.cpp:124 src/synfigapp/actions/layerparamset.cpp:80 +#: src/synfigapp/actions/valuedescset.cpp:96 +#: src/synfigapp/actions/valuenodeconstset.cpp:77 +msgid "ValueBase" +msgstr "Valor Base" + +#: src/gtkmm/childrentree.cpp:140 src/gtkmm/dock_timetrack.cpp:87 +#: src/gtkmm/iconcontroller.cpp:176 src/gtkmm/layertree.cpp:367 +msgid "Time Track" +msgstr "Pista de Tiempo" + +#: src/gtkmm/childrentreestore.cpp:78 +msgid "Canvases" +msgstr "Lienzos" + +#: src/gtkmm/childrentreestore.cpp:83 +msgid "ValueBase Nodes" +msgstr "Nodos de Valor Base" + +#: src/gtkmm/dialog_color.cpp:68 +msgid "Colors" +msgstr "Colores" + +#: src/gtkmm/dialog_gradient.cpp:65 +msgid "Gradient Editor" +msgstr "Editor de Gradiente" + +#: src/gtkmm/dialog_gradient.cpp:75 +msgid "Grab" +msgstr "Grabar" + +#: src/gtkmm/dialog_keyframe.cpp:59 +msgid "Keyframe Dialog" +msgstr "Diálogo de Fotograma Clave" + +#: src/gtkmm/dialog_preview.cpp:62 +msgid "Preview Window" +msgstr "Ventana de Previsualización" + +#: src/gtkmm/dialog_preview.cpp:88 +msgid "Preview Options" +msgstr "Opciones de Previsualización" + +#: src/gtkmm/dialog_preview.cpp:91 +msgid "_Begin Time" +msgstr "Tiempo de _Comienzo" + +#: src/gtkmm/dialog_preview.cpp:92 src/gtkmm/renddesc.cpp:556 +msgid "_End Time" +msgstr "Tiempo de _Fin" + +#: src/gtkmm/dialog_preview.cpp:106 +msgid "General Settings" +msgstr "Atributos Generales" + +#: src/gtkmm/dialog_preview.cpp:108 +msgid "General Settings" +msgstr "Atributos Generales" + +#: src/gtkmm/dialog_preview.cpp:120 +msgid "_Zoom" +msgstr "_Ampliación" + +#: src/gtkmm/dialog_preview.cpp:129 src/gtkmm/renddesc.cpp:546 +msgid "_Frames per second" +msgstr "_Fotogramas por Segundo" + +#: src/gtkmm/dialog_preview.cpp:138 src/gtkmm/renddesc.cpp:532 +msgid "Time Settings" +msgstr "Atributos de Tiempo" + +#: src/gtkmm/dialog_preview.cpp:140 src/gtkmm/renddesc.cpp:534 +msgid "Time Settings" +msgstr "Atributos de Tiempo" + +#: src/gtkmm/dialog_setup.cpp:73 +msgid "Synfig Studio Setup" +msgstr "Atributos de Synfig Studio" + +#: src/gtkmm/dialog_setup.cpp:79 +msgid "Visually Linear Color Selection" +msgstr "Selección del Color de manera Visualmente Linear" + +#: src/gtkmm/dialog_setup.cpp:81 +msgid "Use Only a Single Thread" +msgstr "Usar sólo un Simple Hilo" + +#: src/gtkmm/dialog_setup.cpp:83 +msgid "Restrict Real-Valued Ducks to Top Right Quadrant" +msgstr "Restringir Patos de Valores Reales al Cuadrante Superior Derecho" + +#: src/gtkmm/dialog_setup.cpp:110 +msgid "Gamma" +msgstr "Gamma" + +#: src/gtkmm/dialog_setup.cpp:116 src/gtkmm/widget_coloredit.cpp:311 +msgid "Red" +msgstr "Rojo" + +#: src/gtkmm/dialog_setup.cpp:121 src/gtkmm/widget_coloredit.cpp:313 +msgid "Green" +msgstr "Verde" + +#: src/gtkmm/dialog_setup.cpp:126 src/gtkmm/widget_coloredit.cpp:315 +msgid "Blue" +msgstr "Azul" + +#: src/gtkmm/dialog_setup.cpp:130 +msgid "Black Level" +msgstr "Nivel de Negro" + +#: src/gtkmm/dialog_setup.cpp:141 +msgid "Misc." +msgstr "Misc." + +#: src/gtkmm/dialog_setup.cpp:147 +msgid "Timestamp" +msgstr "Formato Tiempo" + +#: src/gtkmm/dialog_setup.cpp:175 +msgid "Pixels" +msgstr "Pixels" + +#: src/gtkmm/dialog_setup.cpp:176 +msgid "Points" +msgstr "Puntos" + +#: src/gtkmm/dialog_setup.cpp:177 +msgid "Inches" +msgstr "Pulgadas" + +#: src/gtkmm/dialog_setup.cpp:178 +msgid "Meters" +msgstr "Metros" + +#: src/gtkmm/dialog_setup.cpp:179 +msgid "Centimeters" +msgstr "Centímetros" + +#: src/gtkmm/dialog_setup.cpp:180 +msgid "Millimeters" +msgstr "Milímetros" + +#: src/gtkmm/dialog_setup.cpp:185 +msgid "Unit System" +msgstr "Systema de Unidades" + +#: src/gtkmm/dialog_setup.cpp:191 +msgid "Recent Files" +msgstr "Archivos Recientes" + +#: src/gtkmm/dialog_setup.cpp:203 +msgid "Auto Backup Interval (0 to disable)" +msgstr "Intervalo de Copia de Seguridad Automatica (0 para deshabilitar)" + +#: src/gtkmm/dialog_setup.cpp:210 +msgid "Browser Command" +msgstr "Comando del Navegador" + +#: src/gtkmm/dialog_soundselect.cpp:56 +msgid "Sound Select" +msgstr "Seleccionar Sonido" + +#: src/gtkmm/dialog_soundselect.cpp:57 +msgid "Ok" +msgstr "OK" + +#: src/gtkmm/dialog_tooloptions.cpp:56 src/gtkmm/dialog_tooloptions.cpp:78 +msgid "Tool Options" +msgstr "Opciones de Herramienta" + +#: src/gtkmm/dialog_tooloptions.cpp:57 +msgid "This tool has no options" +msgstr "Esta herramienta no tiene opciones" + +#: src/gtkmm/dialog_waypoint.cpp:63 +msgid "Waypoint Editor" +msgstr "Editor de Interpolación" + +#: src/gtkmm/dockable.cpp:121 +msgid "X" +msgstr "X" + +#: src/gtkmm/dock_canvases.cpp:55 +msgid "Canvas Browser" +msgstr "Navegador de Lienzos" + +#: src/gtkmm/dock_children.cpp:67 src/gtkmm/iconcontroller.cpp:171 +msgid "Children" +msgstr "Descendientes" + +#: src/gtkmm/dock_curves.cpp:70 src/gtkmm/iconcontroller.cpp:172 +msgid "Curves" +msgstr "Curvas" + +#: src/gtkmm/dockdialog.cpp:115 +msgid "Dock Panel" +msgstr "Panel Empotrable" + +#: src/gtkmm/dockdialog.cpp:563 +msgid "Empty Dock Panel" +msgstr "Panel Empotrable Vacío" + +#: src/gtkmm/dock_history.cpp:69 src/gtkmm/dock_history.cpp:125 +msgid "History" +msgstr "Historial" + +#: src/gtkmm/dock_history.cpp:78 src/gtkmm/iconcontroller.cpp:168 +msgid "Clear Undo Stack" +msgstr "Vaciar Pila de Deshacer" + +#: src/gtkmm/dock_history.cpp:79 +msgid "Clear the undo stack" +msgstr "Vaciar la pila de deshacer" + +#: src/gtkmm/dock_history.cpp:89 src/gtkmm/iconcontroller.cpp:169 +msgid "Clear Redo Stack" +msgstr "Vaciar Pila de Rehacer" + +#: src/gtkmm/dock_history.cpp:90 +msgid "Clear the redo stack" +msgstr "Vaciar la pila de rehacer" + +#: src/gtkmm/dock_history.cpp:100 +msgid "Clear Undo and Redo Stacks" +msgstr "Vaciar Pilas de Deshacer y Rehacer" + +#: src/gtkmm/dock_history.cpp:101 +msgid "Clear the undo and redo stacks" +msgstr "Vaciar pilas de deshacer y de rehacer" + +#: src/gtkmm/dock_history.cpp:111 src/gtkmm/toolbox.cpp:294 +msgid "Undo" +msgstr "Deshacer" + +#: src/gtkmm/dock_history.cpp:112 +msgid "Undo the previous action" +msgstr "Deshacer la acción anterior" + +#: src/gtkmm/dock_history.cpp:119 src/gtkmm/toolbox.cpp:295 +msgid "Redo" +msgstr "Rehacer" + +#: src/gtkmm/dock_history.cpp:120 +msgid "Redo the previously undone action" +msgstr "Rehacer la acción previamente deshecha" + +#: src/gtkmm/dock_history.cpp:211 src/gtkmm/keyframetree.cpp:92 +msgid "Jump" +msgstr "Saltar" + +#: src/gtkmm/dock_history.cpp:216 src/gtkmm/keyframetree.cpp:96 +msgid "(JMP)" +msgstr "(SALTA)" + +#: src/gtkmm/dock_history.cpp:228 +msgid "Action" +msgstr "Acción" + +#: src/gtkmm/dock_history.cpp:275 src/gtkmm/dock_history.cpp:283 +#: src/gtkmm/dock_history.cpp:291 +msgid "Clear History" +msgstr "Borrar Historial" + +#: src/gtkmm/dock_history.cpp:276 +msgid "" +"You will not be able to undo any changes that you have made!\n" +"Are you sure you want to clear the undo stack?" +msgstr "" +"No podrá deshacer cualquier cambio que haya hecho!\n" +"¿Está seguro de que quieres vaciar la pila de deshacer?" + +#: src/gtkmm/dock_history.cpp:284 +msgid "" +"You will not be able to redo any changes that you have made!\n" +"Are you sure you want to clear the redo stack?" +msgstr "" +"No podrá deshacer cualquier cambio que haya hecho!\n" +"¿Está seguro de que quieres vaciar la pila de rehacer?" + +#: src/gtkmm/dock_history.cpp:292 +msgid "" +"You will not be able to undo or redo any changes that you have made!\n" +"Are you sure you want to clear the undo and redo stacks?" +msgstr "" +"No podrá deshacer cualquier cambio que haya hecho!\n" +"¿Está seguro de que quiere vaciar las pilas de deshacer y rehacer?" + +#: src/gtkmm/dock_info.cpp:96 src/gtkmm/instance.cpp:551 +msgid "Info" +msgstr "Información" + +#: src/gtkmm/dock_info.cpp:103 +msgid "X: " +msgstr "X: " + +#: src/gtkmm/dock_info.cpp:104 +msgid "Y: " +msgstr "Y: " + +#: src/gtkmm/dock_info.cpp:114 +msgid "R: " +msgstr "R: " + +#: src/gtkmm/dock_info.cpp:115 +msgid "G: " +msgstr "G: " + +#: src/gtkmm/dock_info.cpp:116 +msgid "B: " +msgstr "B: " + +#: src/gtkmm/dock_info.cpp:117 +msgid "A: " +msgstr "A: " + +#: src/gtkmm/dock_keyframes.cpp:66 src/gtkmm/iconcontroller.cpp:173 +msgid "Keyframes" +msgstr "Fotogramas Clave" + +#: src/gtkmm/dock_layergroups.cpp:68 +msgid "Groups" +msgstr "Grupos" + +#: src/gtkmm/dock_layergroups.cpp:74 +msgid "Group Ops" +msgstr "Opciones de Grupo" + +#: src/gtkmm/dock_layergroups.cpp:76 src/gtkmm/groupactionmanager.cpp:175 +#: src/gtkmm/groupactionmanager.cpp:176 +msgid "Add a New Group" +msgstr "Añadir un Nuevo Grupo" + +#: src/gtkmm/dock_layers.cpp:74 +msgid "Layers" +msgstr "Capas" + +#: src/gtkmm/dock_layers.cpp:146 +msgid "Layer Ops" +msgstr "Opciones de Capa" + +#: src/gtkmm/dock_metadata.cpp:64 +msgid "Canvas MetaData" +msgstr "Meta Datos del Lienzo" + +#: src/gtkmm/dock_metadata.cpp:84 +msgid "Add new MetaData entry" +msgstr "Añadir una nueva entrada de Meta Dato" + +#: src/gtkmm/dock_metadata.cpp:94 +msgid "Remove selected MetaData entry" +msgstr "Borra la entrada de Meta Dato seleccionada" + +#: src/gtkmm/dock_navigator.cpp:496 src/gtkmm/iconcontroller.cpp:175 +msgid "Navigator" +msgstr "Navegador" + +#: src/gtkmm/dock_params.cpp:65 +msgid "Params" +msgstr "Parámetros" + +#: src/gtkmm/dock_timetrack.cpp:83 src/gtkmm/layergrouptree.cpp:75 +#: src/gtkmm/layertree.cpp:221 src/gtkmm/layertree.cpp:300 +#: src/synfigapp/actions/valuedescexport.cpp:92 +#: src/synfigapp/actions/valuenodeadd.cpp:77 +#: src/synfigapp/actions/valuenoderename.cpp:86 +msgid "Name" +msgstr "Nombre" + +#: src/gtkmm/dock_timetrack.cpp:404 +msgid "Timetrack" +msgstr "Pista de Tiempo" + +#: src/gtkmm/groupactionmanager.cpp:269 +msgid "UnnamedGroup" +msgstr "Grupo Sin Nombre" + +#: src/gtkmm/iconcontroller.cpp:136 +msgid "Bool" +msgstr "Booleano" + +#: src/gtkmm/iconcontroller.cpp:137 +msgid "Integer" +msgstr "Entero" + +#: src/gtkmm/iconcontroller.cpp:138 +msgid "Angle" +msgstr "Ángulo" + +#: src/gtkmm/iconcontroller.cpp:140 +msgid "Real" +msgstr "Real" + +#: src/gtkmm/iconcontroller.cpp:141 +msgid "Vector" +msgstr "Vector" + +#: src/gtkmm/iconcontroller.cpp:142 +msgid "Color" +msgstr "Color" + +#: src/gtkmm/iconcontroller.cpp:145 src/gtkmm/iconcontroller.cpp:147 +#: src/gtkmm/iconcontroller.cpp:153 src/gtkmm/iconcontroller.cpp:154 +msgid "Rename" +msgstr "Renombar" + +#: src/gtkmm/iconcontroller.cpp:148 src/gtkmm/state_bline.cpp:363 +msgid "Gradient" +msgstr "Gradiente" + +#: src/gtkmm/iconcontroller.cpp:150 +msgid "Swap Colors" +msgstr "Intercambiar Colores" + +#: src/gtkmm/iconcontroller.cpp:151 +#: src/synfigapp/actions/layerparamconnect.cpp:80 +#: src/synfigapp/actions/valuenodedynamiclistloop.cpp:72 +#: src/synfigapp/actions/valuenodedynamiclistunloop.cpp:72 +#: src/synfigapp/actions/valuenoderemove.cpp:80 +msgid "ValueNode" +msgstr "Valor de Nodo" + +#: src/gtkmm/iconcontroller.cpp:152 +msgid "About" +msgstr "Acerca de" + +#: src/gtkmm/iconcontroller.cpp:156 src/gtkmm/toolbox.cpp:293 +msgid "Save All" +msgstr "Salvar Todo" + +#: src/gtkmm/iconcontroller.cpp:157 src/gtkmm/layergrouptreestore.cpp:920 +#: src/gtkmm/layertreestore.cpp:930 +#: src/synfigapp/actions/groupaddlayers.cpp:72 +#: src/synfigapp/actions/groupremovelayers.cpp:73 +#: src/synfigapp/actions/layeractivate.cpp:86 +#: src/synfigapp/actions/layerduplicate.cpp:81 +#: src/synfigapp/actions/layerencapsulate.cpp:81 +#: src/synfigapp/actions/layerlower.cpp:80 +#: src/synfigapp/actions/layermove.cpp:85 +#: src/synfigapp/actions/layerparamconnect.cpp:72 +#: src/synfigapp/actions/layerparamdisconnect.cpp:75 +#: src/synfigapp/actions/layerparamset.cpp:72 +#: src/synfigapp/actions/layerraise.cpp:80 +#: src/synfigapp/actions/layerremove.cpp:79 +#: src/synfigapp/actions/layersetdesc.cpp:85 +msgid "Layer" +msgstr "Capa" + +#: src/gtkmm/iconcontroller.cpp:158 +msgid "Paste Canvas" +msgstr "Lienzo Pegado" + +#: src/gtkmm/iconcontroller.cpp:161 +msgid "Hide Grid" +msgstr "Ocultar Rejilla" + +#: src/gtkmm/iconcontroller.cpp:162 +msgid "Enable Grid Snap" +msgstr "Habilitar Adherir a Rejilla" + +#: src/gtkmm/iconcontroller.cpp:163 +msgid "Disable Grid Snap" +msgstr "Deshabilitar Adherir a Rejilla" + +#: src/gtkmm/iconcontroller.cpp:164 +msgid "Duplicate" +msgstr "Duplicar" + +#: src/gtkmm/iconcontroller.cpp:165 +#: src/synfigapp/actions/layerencapsulate.cpp:52 +msgid "Encapsulate" +msgstr "Encapsular" + +#: src/gtkmm/iconcontroller.cpp:166 src/gtkmm/layeractionmanager.cpp:134 +msgid "Select All Child Layers" +msgstr "Seleccionar Todas las Capas Decendientes" + +#: src/gtkmm/iconcontroller.cpp:174 +msgid "MetaData" +msgstr "Meta Dato" + +#: src/gtkmm/iconcontroller.cpp:183 +msgid "CVS Add" +msgstr "Añadir CVS" + +#: src/gtkmm/iconcontroller.cpp:185 src/gtkmm/instance.cpp:491 +#: src/gtkmm/instance.cpp:502 +msgid "CVS Commit" +msgstr "Entrega CVS" + +#: src/gtkmm/iconcontroller.cpp:186 src/gtkmm/instance.cpp:593 +msgid "CVS Revert" +msgstr "Revertir CVS" + +#: src/gtkmm/iconcontroller.cpp:189 +msgid "Normal Tool" +msgstr "Herramienta Normal" + +#: src/gtkmm/iconcontroller.cpp:190 src/gtkmm/state_polygon.cpp:273 +msgid "Polygon Tool" +msgstr "Herramienta Polígono" + +#: src/gtkmm/iconcontroller.cpp:191 src/gtkmm/state_bline.cpp:421 +msgid "BLine Tool" +msgstr "Herramienta Línea Beizer" + +#: src/gtkmm/iconcontroller.cpp:192 +msgid "Eyedrop Tool" +msgstr "Herramienta Recoge Color" + +#: src/gtkmm/iconcontroller.cpp:193 +msgid "Fill Tool" +msgstr "Herramienta de Relleno" + +#: src/gtkmm/iconcontroller.cpp:194 src/gtkmm/state_draw.cpp:519 +msgid "Draw Tool" +msgstr "Herramienta de Dibujo" + +#: src/gtkmm/iconcontroller.cpp:195 src/gtkmm/state_sketch.cpp:401 +msgid "Sketch Tool" +msgstr "Herramienta de Boceto" + +#: src/gtkmm/iconcontroller.cpp:196 src/gtkmm/state_circle.cpp:351 +msgid "Circle Tool" +msgstr "Herramienta de Círculo" + +#: src/gtkmm/iconcontroller.cpp:197 src/gtkmm/state_rectangle.cpp:305 +msgid "Rectangle Tool" +msgstr "Herramienta de Rectángulo" + +#: src/gtkmm/iconcontroller.cpp:198 +msgid "SmoothMove Tool" +msgstr "Herramienta de Mover Suave" + +#: src/gtkmm/iconcontroller.cpp:199 src/gtkmm/state_scale.cpp:192 +msgid "Scale Tool" +msgstr "Herramienta de Escalar" + +#: src/gtkmm/iconcontroller.cpp:200 src/gtkmm/state_width.cpp:307 +msgid "Width Tool" +msgstr "Herramienta de Espesor" + +#: src/gtkmm/iconcontroller.cpp:201 src/gtkmm/state_rotate.cpp:207 +msgid "Rotate Tool" +msgstr "Heramienta de Rotar" + +#: src/gtkmm/iconcontroller.cpp:202 src/gtkmm/state_zoom.cpp:199 +msgid "Zoom Tool" +msgstr "Herramienta de Zoom" + +#: src/gtkmm/iconcontroller.cpp:203 +msgid "Info Tool" +msgstr "Herramienta de Información" + +#: src/gtkmm/iconcontroller.cpp:204 src/gtkmm/mod_mirror/state_mirror.cpp:185 +#: src/gtkmm/mod_mirror/state_mirror.cpp:213 +msgid "Mirror Tool" +msgstr "Herramienta de Espejo" + +#: src/gtkmm/instance.cpp:281 +msgid "Choose a Filename to Save As" +msgstr "Elija un Nombre de Archivo para Guardar Como" + +#: src/gtkmm/instance.cpp:299 +msgid "Unknown extension" +msgstr "Extensión desconocida" + +#: src/gtkmm/instance.cpp:300 +msgid "" +"You have given the file name an extension\n" +"which I do not recognize. Are you sure this is what you want?" +msgstr "" +"Ha dado una extensión al archivo desconocida.\n" +"¿Está seguro que es eso lo que quiere?" + +#: src/gtkmm/instance.cpp:482 +msgid "You must first add this composition to the repository" +msgstr "Debe añadir antes esta composición al almacén" + +#: src/gtkmm/instance.cpp:491 src/gtkmm/instance.cpp:560 +msgid "This will save any changes you have made. Are you sure?" +msgstr "Esto guardará cualquier cambio que haya hecho. ¿Esta seguro?" + +#: src/gtkmm/instance.cpp:498 +msgid "" +"The local copy of the file hasn't been changed since the last update.\n" +"Nothing to commit!" +msgstr "" +"La copia local del archivo no ha sido cambiado desde la ultima " +"actualización.\n" +"!Nada que enviar!" + +#: src/gtkmm/instance.cpp:502 +msgid "Enter a log message describing the changes you have made" +msgstr "Introduzca un mensaje de diario describiendo los cambios que ha realizado" + +#: src/gtkmm/instance.cpp:510 +msgid "An error has occurred when trying to COMMIT" +msgstr "Ha ocurrido un error intentando ENVIAR" + +#: src/gtkmm/instance.cpp:521 +msgid "This composition has already been added to the repository" +msgstr "La composición ya ha sido enviada al almacén" + +#: src/gtkmm/instance.cpp:535 +msgid "An error has occurred when trying to ADD" +msgstr "Un error ha ocurrido cuando se intentaba AÑADIR" + +#: src/gtkmm/instance.cpp:546 +msgid "This file is not under version control, so there is nothing to update from!" +msgstr "" +"Este archivo no está actualmente bajo control de versión, así que ¡nada que " +"actualizar!" + +#: src/gtkmm/instance.cpp:551 +msgid "This file is up-to-date" +msgstr "Este archivo está actualizado" + +#: src/gtkmm/instance.cpp:576 src/gtkmm/instance.cpp:612 +msgid "An error has occurred when trying to UPDATE" +msgstr "Ha ocurrido un error cuando trataba de ACTUALIZAR" + +#: src/gtkmm/instance.cpp:587 +msgid "This file is not under version control, so there is nothing to revert to!" +msgstr "" +"Este archivo no está actualmente bajo control de versión, así que ¡nada que " +"desactualizar!" + +#: src/gtkmm/instance.cpp:594 +msgid "" +"This will abandon all changes you have made\n" +"since the last time you performed a commit\n" +"operation. This cannot be undone! Are you sure\n" +"you want to do this?" +msgstr "" +"Esto abandonará todos los cambios que ha hecho\n" +"desde la última operación de envío realizada.\n" +"¡Esto no se puede deshacer! ¿Está seguro que \n" +"quiere hacer esto?" + +#: src/gtkmm/instance.cpp:603 +msgid "Unable to remove previous version" +msgstr "Imposible eliminar versión anterior" + +#: src/gtkmm/instance.cpp:631 +msgid "Error: Revert Failed" +msgstr "Error: Desactualización Fallida" + +#: src/gtkmm/instance.cpp:631 +msgid "" +"The revert operation has failed. This can be due to it being\n" +"referenced by another composition that is already open, or\n" +"because of an internal error in Synfig Studio. Try closing any\n" +"compositions that might reference this composition and try\n" +"again, or restart Synfig Studio." +msgstr "" +"La operación de desactualización ha fallado. Esto se puede deber\n" +" a que está referenciad por otra composición que esta actualmente \n" +"abierta o porque hay un error interno en Synfig Studio. Intente\n" +"cerrar cualquier composición que pueda hacer referencia a esta\n" +" y pruebe de nuevo o reinicie Synfig Studio" + +#: src/gtkmm/instance.cpp:659 +msgid "Revert to saved" +msgstr "Descatualizar a Salvado" + +#: src/gtkmm/instance.cpp:659 +msgid "" +"You will lose any changes you have made since your last save.\n" +"Are you sure?" +msgstr "" +"Se perderán los cambios realizaos hasta la última vex que salvó.\n" +"¿Está seguro?" + +#: src/gtkmm/instance.cpp:682 +#, c-format +msgid "Would you like to save your changes to %s?" +msgstr "¿Quiere salvar los cambios a %s?" + +#: src/gtkmm/instance.cpp:698 +#, c-format +msgid "" +"%s has changes not yet on the CVS repository.\n" +"Would you like to commit these changes?" +msgstr "" +"%s no ha cambiado en el almacén CVS.\n" +"¿Quiere enviar dichos cambios?" + +#: src/gtkmm/instance.cpp:1090 +msgid "Edit Waypoint" +msgstr "Editar Interpolación" + +#: src/gtkmm/instance.cpp:1131 +msgid "Set Waypoints" +msgstr "Establecer Interpolación" + +#: src/gtkmm/instance.cpp:1176 +msgid "Unable to convert to animated waypoint" +msgstr "Imposible convertir a una interpolación animada" + +#: src/gtkmm/instance.cpp:1193 +msgid "Unable to find waypoint_set_smart action" +msgstr "Imposible encotrar acción de establecer_interpolación_inteligente" + +#: src/gtkmm/instance.cpp:1206 +msgid "Unable to set a specific waypoint" +msgstr "Imposible establecer una interpolación especificada" + +#: src/gtkmm/instance.cpp:1234 +msgid "Edit Waypoints" +msgstr "Editar Interpolaciones" + +#: src/gtkmm/instance.h:41 +msgid "Synfig Animation " +msgstr "Animación Synfig " + +#: src/gtkmm/keyframeactionmanager.cpp:221 +msgid "Add New Keyframe" +msgstr "Añadir un nuevo Fotograma Clave" + +#: src/gtkmm/keyframetree.cpp:77 +msgid "Length" +msgstr "Longitud" + +#: src/gtkmm/keyframetree.cpp:108 +msgid "Description" +msgstr "Descripción" + +#: src/gtkmm/keyframetreestore.cpp:795 src/gtkmm/keyframetreestore.cpp:810 +msgid "Unable to find Keyframe in table" +msgstr "Imposible encontrar un Fotograma Clave en la tabla" + +#: src/gtkmm/keyframetreestore.cpp:801 +msgid "There are no keyframes n this canvas" +msgstr "No hay fotogramas clave en este lienzo" + +#: src/gtkmm/layeractionmanager.cpp:128 +msgid "Amount" +msgstr "Cantidad" + +#: src/gtkmm/layeractionmanager.cpp:364 +msgid "Paste" +msgstr "Pegar" + +#: src/gtkmm/layeractionmanager.cpp:450 +#: src/synfigapp/actions/layerduplicate.cpp:178 +#: src/synfigapp/canvasinterface.cpp:202 +#, c-format +msgid "Index %d" +msgstr "Índice %d" + +#: src/gtkmm/layergrouptree.cpp:64 src/gtkmm/layergrouptree.cpp:69 +#: src/gtkmm/layertree.cpp:193 +msgid " " +msgstr " " + +#: src/gtkmm/layergrouptreestore.cpp:442 +msgid "Activate " +msgstr "Activar " + +#: src/gtkmm/layergrouptreestore.cpp:442 +msgid "Deactivate " +msgstr "Desactivar " + +#: src/gtkmm/layergrouptreestore.cpp:566 +msgid "Regroup" +msgstr "Reagrupar" + +#: src/gtkmm/layerparamtreestore.cpp:234 +msgid "Set Layer Params" +msgstr "Establecer los Parámetros de Capa" + +#: src/gtkmm/layerparamtreestore.cpp:246 +msgid "Unable to set all layer parameters." +msgstr "Imposible establecer todos los parámetros de capa" + +#: src/gtkmm/layertree.cpp:206 src/gtkmm/layertree.cpp:249 +msgid "Z" +msgstr "Z" + +#: src/gtkmm/layertree.cpp:334 +msgid "Value" +msgstr "Valor" + +#: src/gtkmm/layertreestore.cpp:462 +msgid "Move Layers" +msgstr "Mover Capas" + +#: src/gtkmm/main.cpp:73 +msgid "synfig studio is already running" +msgstr "Synfig Studio ya está ejecutandose" + +#: src/gtkmm/main.cpp:74 +msgid "the existing process will be used" +msgstr "el proceso existente será usado" + +#: src/gtkmm/main.cpp:97 +msgid "synfig studio -- starting up application..." +msgstr "Synfig Studio: comenzando aplicación..." + +#: src/gtkmm/mod_mirror/state_mirror.cpp:181 +msgid "Horizontal" +msgstr "Horizontal" + +#: src/gtkmm/mod_mirror/state_mirror.cpp:182 +msgid "Vertical" +msgstr "Vertical" + +#: src/gtkmm/mod_palette/dock_palbrowse.cpp:56 +msgid "Palette Browser" +msgstr "Navegador de Paleta" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:120 +msgid "Palette Editor" +msgstr "Editor de Paleta" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:128 +msgid "Add Color" +msgstr "Añadir Color" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:129 +msgid "" +"Add current foreground color\n" +"to the palette" +msgstr "" +"Añadir color de frente actual\n" +"a la paleta" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:211 +msgid "Load Default Palette" +msgstr "Cargar Paleta por Defecto" + +#: src/gtkmm/onemoment.cpp:91 src/gtkmm/onemoment.cpp:93 +msgid "One Moment, Please..." +msgstr "Un momento, Por Favor..." + +#: src/gtkmm/preview.cpp:352 +msgid "Toggle Looping" +msgstr "Alternar Bucle" + +#: src/gtkmm/preview.cpp:376 +msgid "Halt Render" +msgstr "Parar Muestreo" + +#: src/gtkmm/preview.cpp:382 +msgid "Re-Preview" +msgstr "Re-Previsualizar" + +#: src/gtkmm/preview.cpp:388 +msgid "Erase All" +msgstr "Borrar Todo" + +#: src/gtkmm/preview.cpp:398 +msgid "Last Rendered: " +msgstr "Último Muestreo: " + +#: src/gtkmm/renddesc.cpp:95 +msgid "Image" +msgstr "Imagen" + +#: src/gtkmm/renddesc.cpp:97 +msgid "Other" +msgstr "Otro" + +#: src/gtkmm/renddesc.cpp:390 +msgid "_Pixel Aspect" +msgstr "_Aspecto del Pixel" + +#: src/gtkmm/renddesc.cpp:392 +msgid "Pi_xel Width" +msgstr "Ancho del _Pixel" + +#: src/gtkmm/renddesc.cpp:394 +msgid "Pix_el Height" +msgstr "Al_tura del Pixel" + +#: src/gtkmm/renddesc.cpp:396 +msgid "Image _Aspect" +msgstr "Aspecto de la _Imagen" + +#: src/gtkmm/renddesc.cpp:398 +msgid "Image _Width" +msgstr "Anchura de la Ima_gen" + +#: src/gtkmm/renddesc.cpp:400 +msgid "Image _Height" +msgstr "Al_tura de la Imagen" + +#: src/gtkmm/renddesc.cpp:402 +msgid "Image _Span" +msgstr "_Escalado Imagen" + +#: src/gtkmm/renddesc.cpp:442 +msgid "Image Size" +msgstr "Tamaño de Imagen" + +#: src/gtkmm/renddesc.cpp:444 +msgid "Image Size" +msgstr "Tamaño de Imagen" + +#: src/gtkmm/renddesc.cpp:455 +msgid "_Width" +msgstr "_Ancho" + +#: src/gtkmm/renddesc.cpp:458 +msgid "_Height" +msgstr "Al_to" + +#: src/gtkmm/renddesc.cpp:461 +msgid "_XRes" +msgstr "_XRes" + +#: src/gtkmm/renddesc.cpp:464 +msgid "_YRes" +msgstr "_YRes" + +#: src/gtkmm/renddesc.cpp:467 +msgid "_Physical Width" +msgstr "Ancho _Físico" + +#: src/gtkmm/renddesc.cpp:470 +msgid "Phy_sical Height" +msgstr "Alto Físi_co" + +#: src/gtkmm/renddesc.cpp:473 +msgid "I_mage Span" +msgstr "Expansión de la I_magen" + +#: src/gtkmm/renddesc.cpp:494 +msgid "Image Area" +msgstr "Área de la Imagen" + +#: src/gtkmm/renddesc.cpp:496 +msgid "Image Area" +msgstr "Área de la Imagen" + +#: src/gtkmm/renddesc.cpp:508 +msgid "_Top Left" +msgstr "Superior _Izda." + +#: src/gtkmm/renddesc.cpp:511 +msgid "_Bottom Right" +msgstr "Inferior _Dcha." + +#: src/gtkmm/renddesc.cpp:551 +msgid "_Start Time" +msgstr "_Tiempo de Comienzo" + +#: src/gtkmm/renddesc.cpp:574 +msgid "Locks and Links" +msgstr "Bloqueos y Enlaces" + +#: src/gtkmm/renddesc.cpp:576 +msgid "Locks and Links" +msgstr "Bloqueos y Enlaces" + +#: src/gtkmm/renddesc.cpp:597 +msgid "Focus Point" +msgstr "Punto de Foco" + +#: src/gtkmm/renddesc.cpp:599 +msgid "Focus Point" +msgstr "Punto de Foco" + +#: src/gtkmm/renddesc.cpp:609 +msgid "_Focus Point" +msgstr "Punto de _Foco" + +#: src/gtkmm/render.cpp:61 src/gtkmm/render.cpp:177 +msgid "Render Settings" +msgstr "Atributos de Muestreo" + +#: src/gtkmm/render.cpp:67 +msgid "Use _current frame" +msgstr "Usar fotogra_ma actual" + +#: src/gtkmm/render.cpp:77 +msgid "Auto" +msgstr "Auto" + +#: src/gtkmm/render.cpp:101 +msgid "Choose..." +msgstr "Elegir..." + +#: src/gtkmm/render.cpp:105 +msgid "Target" +msgstr "Objetivo" + +#: src/gtkmm/render.cpp:107 +msgid "Target" +msgstr "Objetivo" + +#: src/gtkmm/render.cpp:118 +msgid "_Filename" +msgstr "_Nombre Archivo" + +#: src/gtkmm/render.cpp:125 +msgid "_Target" +msgstr "_Objetivo" + +#: src/gtkmm/render.cpp:133 +msgid "Settings" +msgstr "Atributos" + +#: src/gtkmm/render.cpp:135 +msgid "Settings" +msgstr "Atributos" + +#: src/gtkmm/render.cpp:147 +msgid "_Quality" +msgstr "_Calidad" + +#: src/gtkmm/render.cpp:153 +msgid "_Anti-Aliasing" +msgstr "_Anti-Aliasing" + +#: src/gtkmm/render.cpp:247 +msgid "You must supply a filename!" +msgstr "¡Debe suminstrar un nombre de archivo!" + +#: src/gtkmm/render.cpp:273 +msgid "Unable to determine proper target from filename." +msgstr "Imposible determinar el objetivo adecuado desde el nombre de archivo." + +#: src/gtkmm/render.cpp:280 +msgid "A filename is required for this target" +msgstr "Un nombre de archivo es requerido para este objetivo" + +#: src/gtkmm/render.cpp:287 +msgid "Unable to create target for " +msgstr "Imposible crear objetivo para " + +#: src/gtkmm/render.cpp:304 +msgid "Target initialization failure" +msgstr "Fallo de inicialización de objetivo" + +#: src/gtkmm/render.cpp:308 +msgid "Rendering " +msgstr "Mostrando " + +#: src/gtkmm/render.cpp:336 +msgid "File rendered successfully" +msgstr "Archivo mostrado existosamente" + +#: src/gtkmm/splash.cpp:113 +msgid "ERROR:" +msgstr "ERROR:" + +#: src/gtkmm/splash.cpp:129 +msgid "WARNING:" +msgstr "AVISO:" + +#: src/gtkmm/state_bline.cpp:361 +msgid "Fill" +msgstr "Relleno" + +#: src/gtkmm/state_bline.cpp:362 +msgid "Outline" +msgstr "Contorno" + +#: src/gtkmm/state_bline.cpp:364 +msgid "Plant" +msgstr "Planta" + +#: src/gtkmm/state_bline.cpp:365 +msgid "Link Offsets" +msgstr "Enlazar Desfases" + +#: src/gtkmm/state_bline.cpp:366 src/gtkmm/state_draw.cpp:415 +msgid "Auto Export" +msgstr "Auto Exportar" + +#: src/gtkmm/state_bline.cpp:367 src/gtkmm/state_polygon.cpp:228 +msgid "Make" +msgstr "Crear" + +#: src/gtkmm/state_bline.cpp:368 +msgid "Clear" +msgstr "Borrar" + +#: src/gtkmm/state_bline.cpp:385 src/gtkmm/state_draw.cpp:450 +msgid "Feather" +msgstr "Desvanecimiento" + +#: src/gtkmm/state_bline.cpp:426 +msgid "Make BLine and/or Region" +msgstr "Hacer Linea Beizer, Planta y/o Region" + +#: src/gtkmm/state_bline.cpp:436 +msgid "Clear current BLine" +msgstr "Borrar Línea Beizer actual" + +#: src/gtkmm/state_bline.cpp:541 +msgid "New BLine" +msgstr "Nueva Línea Beizer" + +#: src/gtkmm/state_bline.cpp:584 +msgid "Unable to add value node" +msgstr "Imposible añadir valor de nodo" + +#: src/gtkmm/state_bline.cpp:621 +msgid " Gradient" +msgstr "Gradiente" + +#: src/gtkmm/state_bline.cpp:640 src/gtkmm/state_bline.cpp:662 +msgid "Unable to create Gradient layer" +msgstr "Imposible crear una Capa Gradiente" + +#: src/gtkmm/state_bline.cpp:679 +msgid " Plant" +msgstr "Planta" + +#: src/gtkmm/state_bline.cpp:698 src/gtkmm/state_bline.cpp:721 +msgid "Unable to create Plant layer" +msgstr "Imposible crear una Capa Planta" + +#: src/gtkmm/state_bline.cpp:738 src/gtkmm/state_draw.cpp:1058 +#: src/gtkmm/state_draw.cpp:1977 +msgid " Region" +msgstr "Region" + +#: src/gtkmm/state_bline.cpp:768 src/gtkmm/state_bline.cpp:790 +#: src/gtkmm/state_draw.cpp:1800 src/gtkmm/state_draw.cpp:1993 +msgid "Unable to create Region layer" +msgstr "Imposible crear una capa Región" + +#: src/gtkmm/state_bline.cpp:807 src/gtkmm/state_draw.cpp:1053 +msgid " Outline" +msgstr "Contorno" + +#: src/gtkmm/state_bline.cpp:831 src/gtkmm/state_bline.cpp:853 +msgid "Unable to create Outline layer" +msgstr "Imposible crear una Capa Contorno" + +#: src/gtkmm/state_bline.cpp:1242 +msgid "Unloop BLine" +msgstr "Quitar Bucle" + +#: src/gtkmm/state_bline.cpp:1246 +msgid "Loop BLine" +msgstr "Hacer Bucle" + +#: src/gtkmm/state_bline.cpp:1251 +msgid "Delete Vertex" +msgstr "Borrar Vértice" + +#: src/gtkmm/state_bline.cpp:1266 +msgid "Insert Vertex" +msgstr "Insertar Vértice" + +#: src/gtkmm/state_bline.cpp:1332 +msgid "Unable to find where to insert vertex, internal error, please report this bug" +msgstr "" +"Imposible encontrar donde insertar el vértice, error interno, por favor " +"reporte este bug" + +#: src/gtkmm/state_bline.cpp:1351 +msgid "Unable to remove vertex, internal error, please report this bug" +msgstr "Imposible borrar el vértice, error interno, por favor reporte este bug" + +#: src/gtkmm/state_bline.cpp:1365 +#: src/synfigapp/actions/blinepointtangentmerge.cpp:56 +msgid "Merge Tangents" +msgstr "Mezclar tangentes" + +#: src/gtkmm/state_bline.cpp:1372 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:56 +msgid "Split Tangents" +msgstr "Dividir Tangentes" + +#: src/gtkmm/state_circle.cpp:286 src/gtkmm/state_rectangle.cpp:254 +msgid "Invert" +msgstr "Invertir" + +#: src/gtkmm/state_circle.cpp:294 +msgid "Falloff" +msgstr "Caída" + +#: src/gtkmm/state_circle.cpp:295 +msgid "Determines the falloff function for the feather" +msgstr "Determina la funcíon de caída del desvanecimiento" + +#: src/gtkmm/state_circle.cpp:297 src/gtkmm/state_gradient.cpp:265 +msgid "Linear" +msgstr "Linear" + +#: src/gtkmm/state_circle.cpp:298 +msgid "Squared" +msgstr "Proporcional" + +#: src/gtkmm/state_circle.cpp:299 +msgid "Square Root" +msgstr "Raíz cuadrada" + +#: src/gtkmm/state_circle.cpp:300 +msgid "Sigmond" +msgstr "Sigmoidea" + +#: src/gtkmm/state_circle.cpp:301 +msgid "Cosine" +msgstr "Coseno" + +#: src/gtkmm/state_circle.cpp:304 src/gtkmm/state_gradient.cpp:271 +msgid "Blend Method" +msgstr "Método de Mezcla" + +#: src/gtkmm/state_circle.cpp:305 +msgid "Defines the blend method to be used for circles" +msgstr "Define el método de mezcla usado para círculos" + +#: src/gtkmm/state_circle.cpp:310 +msgid "Feather:" +msgstr "Desvanecimiento:" + +#: src/gtkmm/state_circle.cpp:400 +msgid "New Circle" +msgstr "Nuevo Círculo" + +#: src/gtkmm/state_draw.cpp:409 +msgid "Pressure Width" +msgstr "Presión del Espesor" + +#: src/gtkmm/state_draw.cpp:410 +msgid "Auto Loop" +msgstr "Auto Bucle" + +#: src/gtkmm/state_draw.cpp:411 +msgid "Auto Extend" +msgstr "Auto Extender" + +#: src/gtkmm/state_draw.cpp:412 +msgid "Auto Link" +msgstr "Auto Enlazar" + +#: src/gtkmm/state_draw.cpp:413 +msgid "Create Region" +msgstr "Crear Region" + +#: src/gtkmm/state_draw.cpp:414 +msgid "Create Outline" +msgstr "Crear Contorno" + +#: src/gtkmm/state_draw.cpp:416 src/gtkmm/state_draw.cpp:524 +msgid "Fill Last Stroke" +msgstr "Rellenar Último Trazo" + +#: src/gtkmm/state_draw.cpp:419 +msgid "Min Pressure" +msgstr "Mínima Presión" + +#: src/gtkmm/state_draw.cpp:425 +msgid "LocalError" +msgstr "Error Local" + +#: src/gtkmm/state_draw.cpp:447 +msgid "Smooth" +msgstr "Suave" + +#: src/gtkmm/state_draw.cpp:778 +msgid "Sketch BLine" +msgstr "Esbozar Línea Beizer" + +#: src/gtkmm/state_draw.cpp:1088 +msgid "Unable to create layer" +msgstr "Imposible crear capa" + +#: src/gtkmm/state_draw.cpp:1272 +msgid "Define Region" +msgstr "Definir Region" + +#: src/gtkmm/state_draw.cpp:1834 src/gtkmm/state_draw.cpp:1885 +msgid "Extend BLine" +msgstr "Extender Línea Béizer" + +#: src/gtkmm/state_draw.cpp:1847 src/gtkmm/state_draw.cpp:1898 +msgid "Unable to set loop for bline" +msgstr "Imposible hacer bucle para la línea béizer" + +#: src/gtkmm/state_draw.cpp:1871 src/gtkmm/state_draw.cpp:1922 +msgid "Unable to insert item" +msgstr "Imposible insertar elemento" + +#: src/gtkmm/state_draw.cpp:1955 +msgid "Fill Stroke" +msgstr "Rellenar Trazo" + +#: src/gtkmm/state_fill.cpp:145 +msgid "No layer here" +msgstr "No capa aquí" + +#: src/gtkmm/state_fill.cpp:155 +msgid "Unable to set layer color" +msgstr "Imposible establecer color de capa" + +#: src/gtkmm/state_gradient.cpp:262 +msgid "Gradient Type" +msgstr "Tipo de Gradiente" + +#: src/gtkmm/state_gradient.cpp:263 +msgid "Determines the type of Gradient used" +msgstr "Determina el tipo de Gradiente usado" + +#: src/gtkmm/state_gradient.cpp:266 +msgid "Radial" +msgstr "Radial" + +#: src/gtkmm/state_gradient.cpp:267 +msgid "Conical" +msgstr "Cónico" + +#: src/gtkmm/state_gradient.cpp:268 +msgid "Spiral" +msgstr "Espiral" + +#: src/gtkmm/state_gradient.cpp:272 +msgid "The blend method the gradient will use" +msgstr "El método de mezcla que el gradiente usará" + +#: src/gtkmm/state_gradient.cpp:314 +msgid "Gradient Tool" +msgstr "Herramienta de Gradiente" + +#: src/gtkmm/state_gradient.cpp:368 +msgid "New Gradient" +msgstr "Nuevo Gradiente" + +#: src/gtkmm/state_polygon.cpp:278 +msgid "Make Polygon" +msgstr "Crear Polígono" + +#: src/gtkmm/state_polygon.cpp:288 +msgid "Clear current Polygon" +msgstr "Borrar Polígono actual" + +#: src/gtkmm/state_polygon.cpp:370 +msgid "New Polygon" +msgstr "Nuevo Polígono" + +#: src/gtkmm/state_rectangle.cpp:264 +msgid "Expansion:" +msgstr "Expansión" + +#: src/gtkmm/state_rectangle.cpp:355 +msgid "New Rectangle" +msgstr "Nuevo Rectángulo" + +#: src/gtkmm/state_rotate.cpp:175 +msgid "Allow Scale" +msgstr "Permitir Escalar" + +#: src/gtkmm/state_rotate.cpp:369 +msgid "Move Duck" +msgstr "Mover Pato" + +#: src/gtkmm/state_rotate.cpp:374 +msgid "Rotate Ducks" +msgstr "Rotar Patos" + +#: src/gtkmm/state_scale.cpp:163 +msgid "Lock Aspect Ratio" +msgstr "Bloquear Relación de Aspecto" + +#: src/gtkmm/state_sketch.cpp:158 src/gtkmm/state_sketch.cpp:239 +msgid "Save Sketch" +msgstr "Salvar Boceto" + +#: src/gtkmm/state_sketch.cpp:168 +msgid "Unable to save sketch" +msgstr "Imposible salvar boceto" + +#: src/gtkmm/state_sketch.cpp:177 src/gtkmm/state_sketch.cpp:240 +msgid "Load Sketch" +msgstr "Cargar Boceto" + +#: src/gtkmm/state_sketch.cpp:187 +msgid "Unable to load sketch" +msgstr "Imposible cargar boceto" + +#: src/gtkmm/state_sketch.cpp:237 src/gtkmm/state_sketch.cpp:268 +#: src/gtkmm/state_sketch.cpp:269 +msgid "Clear Sketch" +msgstr "Borrar Boceto" + +#: src/gtkmm/state_sketch.cpp:238 +msgid "Undo Stroke" +msgstr "Deshacer Trazo" + +#: src/gtkmm/state_sketch.cpp:241 +msgid "Show Sketch" +msgstr "Mostrar Boceto" + +#: src/gtkmm/state_sketch.cpp:256 src/gtkmm/state_sketch.cpp:257 +msgid "Undo Last Stroke" +msgstr "Deshacer Último Trazo" + +#: src/gtkmm/state_sketch.cpp:280 src/gtkmm/state_sketch.cpp:281 +#: src/gtkmm/state_sketch.cpp:292 src/gtkmm/state_sketch.cpp:293 +msgid "Save Sketch As..." +msgstr "Salvar Boceto Como..." + +#: src/gtkmm/state_sketch.cpp:304 src/gtkmm/state_sketch.cpp:305 +msgid "Open a Sketch" +msgstr "Abrir un Boceto" + +#: src/gtkmm/state_smoothmove.cpp:178 +msgid "Radius" +msgstr "Radio" + +#: src/gtkmm/state_smoothmove.cpp:204 +msgid "Smooth Move" +msgstr "Mover Suave" + +#: src/gtkmm/state_width.cpp:225 +msgid "Relative Growth" +msgstr "Crecimiento Relativo" + +#: src/gtkmm/state_width.cpp:234 +msgid "Growth:" +msgstr "Crecimiento:" + +#: src/gtkmm/state_width.cpp:237 +msgid "Radius:" +msgstr "Radio:" + +#: src/gtkmm/state_width.cpp:562 +msgid "Sketch Width" +msgstr "Espesor del Boceto" + +#: src/gtkmm/toolbox.cpp:133 +msgid "Cannot save" +msgstr "No puedo salvar" + +#: src/gtkmm/toolbox.cpp:133 src/gtkmm/toolbox.cpp:145 +msgid "Nothing to save" +msgstr "Nada a salvar" + +#: src/gtkmm/toolbox.cpp:145 +msgid "Cannot save as" +msgstr "No puedo salvar como" + +#: src/gtkmm/toolbox.cpp:167 +msgid "Cannot close" +msgstr "No puedo cerrar" + +#: src/gtkmm/toolbox.cpp:167 +msgid "Nothing to close" +msgstr "Nada para cerrrar" + +#: src/gtkmm/toolbox.cpp:220 +msgid "Vertical Dock: Canvases, History" +msgstr "Empotrable Vertical: Lienzos, Historial" + +#: src/gtkmm/toolbox.cpp:221 +msgid "Horizontal Dock: Layers, Children, Params" +msgstr "Emportrable Horizontal: Capas, Descendientes, Parámetros" + +#: src/gtkmm/toolbox.cpp:223 +msgid "Reset Windows to Original Layout" +msgstr "Restablecer Ventanas a su Disposición Original" + +#: src/gtkmm/toolbox.cpp:232 +msgid "Open Recent" +msgstr "Abrir Reciente" + +#: src/gtkmm/toolbox.cpp:239 +msgid "Panels" +msgstr "Paneles" + +#: src/gtkmm/toolbox.cpp:251 +msgid "Input Devices..." +msgstr "Dispositivos de Entrada..." + +#: src/gtkmm/toolbox.cpp:253 +msgid "Setup..." +msgstr "Atributos..." + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:268 +msgid "Synfig Wiki" +msgstr "Synfig Wiki" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:268 +msgid "/Main_Page" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:269 +msgid "Tutorials" +msgstr "Tutoriales" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:269 +msgid "/Tutorials" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:270 +msgid "Frequently Asked Questions" +msgstr "Preguntas Frecuentes" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:270 +msgid "/FAQ" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:271 +msgid "Get Support" +msgstr "Obtener Soporte" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:271 +msgid "/Communication" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:272 +msgid "Keyboard Shortcuts" +msgstr "Atajos de Teclado" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:272 +msgid "/Keyboard_Shortcuts" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:273 +msgid "Mouse Shortcuts" +msgstr "Atajos de Ratón" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:273 +msgid "/Mouse_Shortcuts" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:274 +msgid "All Pages" +msgstr "Todas las Páginas" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:274 +msgid "/Special:Allpages" +msgstr "" + +#: src/gtkmm/toolbox.cpp:282 +msgid "_Help" +msgstr "_Ayuda" + +#: src/gtkmm/toolbox.cpp:289 +msgid "New..." +msgstr "Nuevo..." + +#: src/gtkmm/toolbox.cpp:290 +msgid "Open..." +msgstr "Abrir..." + +#: src/gtkmm/toolbox.cpp:291 +msgid "Save" +msgstr "Guardar" + +#: src/gtkmm/toolbox.cpp:292 +msgid "Save As..." +msgstr "Guardar como..." + +#: src/gtkmm/toolbox.cpp:296 +msgid "Setup" +msgstr "Atributos" + +#: src/gtkmm/toolbox.cpp:297 +msgid "About Synfig Studio" +msgstr "Acerca de Synfig Studio" + +#: src/gtkmm/widget_canvaschooser.cpp:115 +msgid "Other..." +msgstr "Otro..." + +#: src/gtkmm/widget_canvaschooser.cpp:136 +msgid "Choose Canvas" +msgstr "Elegir Lienzo" + +#: src/gtkmm/widget_canvaschooser.cpp:136 +msgid "Enter the relative name of the canvas that you want" +msgstr "Introduzca el nombre dado al lienzo que desee" + +#: src/gtkmm/widget_canvaschooser.cpp:145 +msgid "No canvas name was specified" +msgstr "No se ha especificado nombre de lienzo" + +#: src/gtkmm/widget_canvaschooser.cpp:158 +msgid "Error:Exception Thrown" +msgstr "Error: Excepción Lanzada" + +#: src/gtkmm/widget_canvaschooser.cpp:163 +msgid "Unknown Exception" +msgstr "Excepción Desconocida" + +#: src/gtkmm/widget_coloredit.cpp:262 +msgid "RGB" +msgstr "RGB" + +#: src/gtkmm/widget_coloredit.cpp:263 +msgid "YUV" +msgstr "YUV" + +#: src/gtkmm/widget_coloredit.cpp:318 +msgid "HTML code" +msgstr "Código HTML" + +#: src/gtkmm/widget_coloredit.cpp:331 +msgid "Luma" +msgstr "Luma" + +#: src/gtkmm/widget_coloredit.cpp:332 +msgid "Hue" +msgstr "Matiz" + +#: src/gtkmm/widget_coloredit.cpp:333 +msgid "Saturation" +msgstr "Saturación" + +#: src/gtkmm/widget_coloredit.cpp:334 +msgid "U" +msgstr "U" + +#: src/gtkmm/widget_coloredit.cpp:335 +msgid "V" +msgstr "V" + +#: src/gtkmm/widget_coloredit.cpp:339 +msgid "Alpha" +msgstr "Transparencia" + +#: src/gtkmm/widget_defaults.cpp:213 +msgid "Foreground Color" +msgstr "Color de Frente" + +#: src/gtkmm/widget_defaults.cpp:221 +msgid "Background Color" +msgstr "Color de Fondo" + +#: src/gtkmm/widget_defaults.cpp:238 +msgid "" +"Swap Background and\n" +"Foreground Colors" +msgstr "" +"Intercambiar colores \n" +"de Frente y Fondo" + +#: src/gtkmm/widget_defaults.cpp:249 +msgid "Reset Colors to Black and White" +msgstr "Restablecer colores a Blanco y Negro" + +#: src/gtkmm/widget_defaults.cpp:261 +msgid "Brush Preview" +msgstr "Previsualizar Brocha" + +#: src/gtkmm/widget_defaults.cpp:271 +msgid "Brush Size" +msgstr "Tamaño de Brocha" + +#: src/gtkmm/widget_defaults.cpp:279 +msgid "Default Blend Method" +msgstr "Método de Mezcla por Defecto" + +#: src/gtkmm/widget_defaults.cpp:293 +msgid "Default Interpolation" +msgstr "Interpolación por Defecto" + +#: src/gtkmm/widget_defaults.cpp:301 +msgid "Default Opacity" +msgstr "Opacidad por Defecto" + +#: src/gtkmm/widget_defaults.cpp:308 +msgid "Default Gradient" +msgstr "Gradiente por Defecto" + +#: src/gtkmm/widget_filename.cpp:60 +msgid "Find" +msgstr "Encontrar" + +#: src/gtkmm/widget_filename.cpp:114 +msgid "Choose File" +msgstr "Elegir Archivo" + +#: src/gtkmm/widget_gradient.cpp:223 +msgid "Insert CPoint" +msgstr "Insertar CPunto" + +#: src/gtkmm/widget_gradient.cpp:235 +msgid "Remove CPoint" +msgstr "Quitar CPunto" + +#: src/gtkmm/widget_waypoint.cpp:76 +msgid "(Non-static value)" +msgstr "(Valor no-estático)" + +#: src/gtkmm/widget_waypoint.cpp:121 +#: src/synfigapp/actions/waypointremove.cpp:78 +#: src/synfigapp/actions/waypointset.cpp:77 +#: src/synfigapp/actions/waypointsimpleadd.cpp:78 +msgid "Waypoint" +msgstr "Interpolación" + +#: src/gtkmm/widget_waypoint.cpp:123 +msgid "Waypoint" +msgstr "Inetrpolación" + +#: src/gtkmm/widget_waypoint.cpp:135 +msgid "_Value" +msgstr "_Valor" + +#: src/gtkmm/widget_waypoint.cpp:142 +msgid "_Time" +msgstr "_Tiempo" + +#: src/gtkmm/widget_waypoint.cpp:148 +msgid "Interpolation" +msgstr "Interpolación" + +#: src/gtkmm/widget_waypoint.cpp:150 +msgid "Interpolation" +msgstr "Interpolación" + +#: src/gtkmm/widget_waypoint.cpp:162 +msgid "_In Interpolation" +msgstr "Interpolación de _Entrada" + +#: src/gtkmm/widget_waypoint.cpp:168 +msgid "_Out Interpolation" +msgstr "Interpolación de _Salida" + +#: src/gtkmm/widget_waypoint.cpp:174 +msgid "TCB Parameters" +msgstr "Parámetros TBC" + +#: src/gtkmm/widget_waypoint.cpp:176 +msgid "TCB Parameter" +msgstr "Parámetros TBC" + +#: src/gtkmm/widget_waypoint.cpp:188 +msgid "T_ension" +msgstr "T_ensión" + +#: src/gtkmm/widget_waypoint.cpp:195 +msgid "_Continuity" +msgstr "_Continuidad" + +#: src/gtkmm/widget_waypoint.cpp:202 +msgid "_Bias" +msgstr "_Bias" + +#: src/gtkmm/widget_waypoint.cpp:209 +msgid "Te_mporal Tension" +msgstr "Tensión Te_mporal" + +#: src/gtkmm/widget_waypointmodel.cpp:64 +msgid "Out:" +msgstr "Salida:" + +#: src/gtkmm/widget_waypointmodel.cpp:65 +msgid "In:" +msgstr "Entrda:" + +#: src/gtkmm/widget_waypointmodel.cpp:66 +msgid "Tension:" +msgstr "Tensión:" + +#: src/gtkmm/widget_waypointmodel.cpp:67 +msgid "Continuity:" +msgstr "Continuidad:" + +#: src/gtkmm/widget_waypointmodel.cpp:68 +msgid "Bias:" +msgstr "Bias:" + +#: src/gtkmm/widget_waypointmodel.cpp:69 +msgid "Temporal Tension:" +msgstr "Tensión Temporal:" + +#: src/gtkmm/workarea.cpp:1171 +msgid "Nudge" +msgstr "Empujoncito" + +#: src/gtkmm/workarea.cpp:1627 +msgid "Move" +msgstr "Mover" + +#: src/gtkmm/workarea.cpp:2320 +msgid "Rendering..." +msgstr "Mostrando..." + +#: src/gtkmm/workarea.cpp:2347 src/gtkmm/workarea.cpp:2439 +msgid "Render Failed" +msgstr "Muestreo Fallido" + +#: src/gtkmm/workarea.cpp:2421 +#, c-format +msgid "Rendering canvas %s..." +msgstr "Muestreando lienzos %s..." + +#: src/gtkmm/zoomdial.h:69 +msgid "Zoom In" +msgstr "Acercar" + +#: src/gtkmm/zoomdial.h:70 +msgid "Zoom Out" +msgstr "Alejar" + +#: src/gtkmm/zoomdial.h:71 +msgid "Zoom Fit" +msgstr "Ajustar Acercamiento" + +#: src/gtkmm/zoomdial.h:72 +msgid "Zoom to 100%" +msgstr "Ajustar al 100%" + +#: src/synfigapp/action.cpp:457 +msgid "Selected Canvas" +msgstr "Lienzo Seleccionado" + +#: src/synfigapp/action.cpp:461 src/synfigapp/action.cpp:462 +msgid "Canvas Interface" +msgstr "Interfase de Lienzo" + +#: src/synfigapp/actions/activepointadd.cpp:49 +msgid "Add Activepoint" +msgstr "Añadir Punto activo" + +#: src/synfigapp/actions/activepointadd.cpp:75 +#: src/synfigapp/actions/activepointremove.cpp:74 +#: src/synfigapp/actions/activepointset.cpp:73 +#: src/synfigapp/actions/activepointsetoff.cpp:83 +#: src/synfigapp/actions/activepointseton.cpp:83 +#: src/synfigapp/actions/activepointsetsmart.cpp:82 +#: src/synfigapp/actions/colorset.cpp:79 +#: src/synfigapp/actions/gradientset.cpp:79 +#: src/synfigapp/actions/valuedescconvert.cpp:93 +#: src/synfigapp/actions/valuedescdisconnect.cpp:81 +#: src/synfigapp/actions/valuedescdisconnect.cpp:90 +#: src/synfigapp/actions/valuedescexport.cpp:88 +#: src/synfigapp/actions/valuedescset.cpp:83 +#: src/synfigapp/actions/valuedescset.cpp:92 +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:76 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:78 +#: src/synfigapp/actions/valuenodedynamiclistremove.cpp:74 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:77 +#: src/synfigapp/actions/valuenodedynamiclistrotateorder.cpp:74 +msgid "ValueDesc" +msgstr "Descripción de Valor" + +#: src/synfigapp/actions/activepointadd.cpp:79 +#: src/synfigapp/actions/activepointsetsmart.cpp:86 +msgid "New Activepoint" +msgstr "Nuevo Punto Activo" + +#: src/synfigapp/actions/activepointadd.cpp:80 +#: src/synfigapp/actions/activepointsetsmart.cpp:87 +#: src/synfigapp/actions/activepointsimpleadd.cpp:79 +msgid "Activepoint to be added" +msgstr "Punto Activo ara ser añadido" + +#: src/synfigapp/actions/activepointadd.cpp:86 +#: src/synfigapp/actions/activepointsetsmart.cpp:93 +msgid "Time where activepoint is to be added" +msgstr "Tiempo donde se añadirá el Punto Activo" + +#: src/synfigapp/actions/activepointadd.cpp:177 +#: src/synfigapp/actions/activepointremove.cpp:163 +msgid "A Activepoint already exists at this point in time" +msgstr "Un Punto Activo existe actualmente en este punto en el tiempo" + +#: src/synfigapp/actions/activepointadd.cpp:180 +#: src/synfigapp/actions/activepointremove.cpp:166 +msgid "This activepoint is already in the ValueNode" +msgstr "Este punto activo esta ya en el Valor de Nodo" + +#: src/synfigapp/actions/activepointremove.cpp:49 +msgid "Remove Activepoint" +msgstr "Borrar Punto Activo" + +#: src/synfigapp/actions/activepointremove.cpp:78 +#: src/synfigapp/actions/activepointset.cpp:77 +#: src/synfigapp/actions/activepointsetoff.cpp:87 +#: src/synfigapp/actions/activepointseton.cpp:87 +#: src/synfigapp/actions/activepointsimpleadd.cpp:78 +msgid "Activepoint" +msgstr "Punto Activo" + +#: src/synfigapp/actions/activepointremove.cpp:79 +#: src/synfigapp/actions/activepointset.cpp:78 +msgid "Activepoint to be changed" +msgstr "Punto Activo para ser cambiado" + +#: src/synfigapp/actions/activepointremove.cpp:144 +#: src/synfigapp/actions/activepointset.cpp:152 +#: src/synfigapp/actions/activepointset.cpp:210 +#: src/synfigapp/actions/activepointset.cpp:256 +#: src/synfigapp/actions/activepointset.cpp:277 +msgid "Unable to find activepoint" +msgstr "Imposible encontrar punto activo" + +#: src/synfigapp/actions/activepointset.cpp:49 +msgid "Set Activepoint" +msgstr "Establecer Punto Activo" + +#: src/synfigapp/actions/activepointsetoff.cpp:57 +msgid "Mark Activepoint as \"Off\"" +msgstr "Marcar Punto Activo como \"Off\"" + +#: src/synfigapp/actions/activepointseton.cpp:57 +msgid "Mark Activepoint as \"On\"" +msgstr "Marcar Punto Activo como \"On\"" + +#: src/synfigapp/actions/activepointsetsmart.cpp:56 +msgid "Set Activepoint (Smart)" +msgstr "Establecer Punto Activo (Inteligente)" + +#: src/synfigapp/actions/activepointsetsmart.cpp:366 +#: src/synfigapp/actions/waypointsetsmart.cpp:444 +msgid "Unable to determine how to proceed. This is a bug." +msgstr "Imposible determinar como proceder. Esto es un bug" + +#: src/synfigapp/actions/activepointsimpleadd.cpp:49 +#: src/synfigapp/actions/waypointsimpleadd.cpp:49 +msgid "Simply Add Waypoint" +msgstr "Simplemente Añade una Interpolación" + +#: src/synfigapp/actions/activepointsimpleadd.cpp:74 +#: src/synfigapp/actions/waypointadd.cpp:76 +#: src/synfigapp/actions/waypointset.cpp:73 +#: src/synfigapp/actions/waypointsetsmart.cpp:85 +#: src/synfigapp/actions/waypointsimpleadd.cpp:74 +msgid "Destination ValueNode (Animated)" +msgstr "Valor de Nodo de Destino (Animado)" + +#: src/synfigapp/actions/activepointsimpleadd.cpp:169 +msgid "The activepoint to remove no longer exists" +msgstr "El punto activo a eliminar no existe ya" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:78 +#, c-format +msgid "Merge Tangents of '%s'" +msgstr "Mezclar tangentes de '%s'" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:87 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:87 +msgid "ValueNode of BLinePoint" +msgstr "Valor de Nodo del Punto de Línea Béizer" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:156 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:156 +msgid "Couldn't find action \"value_desc_set\"" +msgstr "No puedo encontrar la acción \"value_desc_set\"" + +#: src/synfigapp/actions/blinepointtangentsplit.cpp:78 +#, c-format +msgid "Split Tangents of '%s'" +msgstr "Dividir Tangentes de '%s'" + +#: src/synfigapp/actions/canvasadd.cpp:49 +msgid "Add Child Canvas" +msgstr "Añadir Lienzo Descendiente" + +#: src/synfigapp/actions/canvasadd.cpp:79 +msgid "The name that you want this canvas to be" +msgstr "El nombre que Ud. quiere que sea este lienzo" + +#: src/synfigapp/actions/canvasremove.cpp:49 +msgid "Remove Canvas" +msgstr "Borrar Lienzo" + +#: src/synfigapp/actions/canvasremove.cpp:107 +msgid "You cannot remove the root canvas!" +msgstr "¡No puede borrar el lienzo raíz!" + +#: src/synfigapp/actions/canvasremove.cpp:110 +msgid "You cannot remove an inline canvas!" +msgstr "¡No puede borrar un lienzo en línea!" + +#: src/synfigapp/actions/canvasrenddescset.cpp:49 +msgid "Set Canvas RendDesc" +msgstr "Establecer Descripción de la Muestra del Lienzo" + +#: src/synfigapp/actions/canvasrenddescset.cpp:73 +msgid "RendDesc" +msgstr "Descripción de la Muestra" + +#: src/synfigapp/actions/colorset.cpp:55 +msgid "Apply Default Color" +msgstr "Aplicar Color por Defecto" + +#: src/synfigapp/actions/editmodeset.cpp:49 +msgid "Set Edit Mode" +msgstr "Establecer Modo Edición" + +#: src/synfigapp/actions/editmodeset.cpp:72 +msgid "New Edit Mode" +msgstr "Nuevo Modo Edición" + +#: src/synfigapp/actions/gradientset.cpp:55 +msgid "Apply Default Gradient" +msgstr "Aplicar Gradiente por Defecto" + +#: src/synfigapp/actions/groupaddlayers.cpp:49 +msgid "Add Layers to Group" +msgstr "Añadir Capas a Grupo" + +#: src/synfigapp/actions/groupaddlayers.cpp:73 +msgid "Layer to be added to group" +msgstr "Capas para ser añadiddas a grupo" + +#: src/synfigapp/actions/groupaddlayers.cpp:79 +msgid "Name of the Group to add the Layers to" +msgstr "Nombre del Grupo al que se añaden las Capas" + +#: src/synfigapp/actions/groupremove.cpp:49 +msgid "Remove Group" +msgstr "Borrar Grupo" + +#: src/synfigapp/actions/groupremove.cpp:73 +msgid "Name of the Group to remove" +msgstr "Nombre del Grupo a Borrar" + +#: src/synfigapp/actions/groupremovelayers.cpp:50 +msgid "Remove Layers from a Group" +msgstr "Borra Capas de un Grupo" + +#: src/synfigapp/actions/groupremovelayers.cpp:74 +msgid "Layer to be removed from group" +msgstr "Capa para ser borrada de un grupo" + +#: src/synfigapp/actions/grouprename.cpp:49 +msgid "Rename Group" +msgstr "Renombrar Grupo" + +#: src/synfigapp/actions/grouprename.cpp:72 +msgid "Old Group" +msgstr "Viejo Grupo" + +#: src/synfigapp/actions/grouprename.cpp:73 +msgid "Name of the Group to rename" +msgstr "Nombre del Grupo a Renombrar" + +#: src/synfigapp/actions/grouprename.cpp:77 +msgid "New Group" +msgstr "Nuevo Grupo" + +#: src/synfigapp/actions/grouprename.cpp:78 +msgid "New name for group" +msgstr "Nombre Nuevo para el Grupo" + +#: src/synfigapp/actions/grouprename.cpp:123 +#, c-format +msgid "A group with the name \"%s\" already exists!" +msgstr "¡Un grupo con el nombre \"%s\" ya existe!" + +#: src/synfigapp/actions/keyframeadd.cpp:49 +msgid "Add Keyframe" +msgstr "Añadir Fotograma Clave" + +#: src/synfigapp/actions/keyframeadd.cpp:74 +#: src/synfigapp/actions/keyframeset.cpp:78 +msgid "New Keyframe" +msgstr "Nuevo Fotograma Clave" + +#: src/synfigapp/actions/keyframeadd.cpp:75 +#: src/synfigapp/actions/keyframeset.cpp:79 +msgid "Keyframe to be added" +msgstr "Fotograma Clave para ser añadido" + +#: src/synfigapp/actions/keyframeadd.cpp:114 +#: src/synfigapp/actions/keyframeduplicate.cpp:138 +#: src/synfigapp/actions/keyframeduplicate.cpp:217 +#: src/synfigapp/actions/keyframeremove.cpp:219 +#: src/synfigapp/actions/keyframeset.cpp:128 +msgid "A Keyframe already exists at this point in time" +msgstr "Un Fotograma Clave ya existe en ese punto del tiempo" + +#: src/synfigapp/actions/keyframeadd.cpp:117 +#: src/synfigapp/actions/keyframeduplicate.cpp:220 +#: src/synfigapp/actions/keyframeremove.cpp:222 +msgid "This keyframe is already in the ValueNode" +msgstr "Este Fotograma Clave ya está en el Valor de Nodo" + +#: src/synfigapp/actions/keyframeduplicate.cpp:53 +msgid "Duplicate Keyframe" +msgstr "Duplicar Fotograma Clave" + +#: src/synfigapp/actions/keyframeduplicate.cpp:80 +msgid "Keyframe to be duplicated" +msgstr "Fotograma Clave para ser Duplicado" + +#: src/synfigapp/actions/keyframeduplicate.cpp:102 +msgid " (Duplicate)" +msgstr " (Duplicado)" + +#: src/synfigapp/actions/keyframeduplicate.cpp:135 +#: src/synfigapp/actions/keyframeremove.cpp:120 +#: src/synfigapp/actions/keyframeset.cpp:377 +#: src/synfigapp/actions/keyframewaypointset.cpp:129 +msgid "Unable to find the given keyframe" +msgstr "Imposible encontrar el fotograma clave dado" + +#: src/synfigapp/actions/keyframeremove.cpp:53 +msgid "Remove Keyframe" +msgstr "Borrar Fotograma Clave" + +#: src/synfigapp/actions/keyframeremove.cpp:79 +msgid "Keyframe to be removed" +msgstr "Fotograma Clave a ser borrado" + +#: src/synfigapp/actions/keyframeset.cpp:53 +msgid "Set Keyframe" +msgstr "Establecer Fotograma Clave" + +#: src/synfigapp/actions/keyframeset.cpp:385 +msgid "" +"Cannot change keyframe time because another keyframe already exists with " +"that time." +msgstr "" +"No puedo cambiar el fotograma clave porque otro fotograma clave existe " +"actualmente con ese tiempo" + +#: src/synfigapp/actions/keyframesetdelta.cpp:53 +msgid "Set Keyframe Delta" +msgstr "Establecer Delta del Fotograma Clave" + +#: src/synfigapp/actions/keyframesetdelta.cpp:82 +msgid "Delta" +msgstr "Delta" + +#: src/synfigapp/actions/keyframewaypointset.cpp:53 +msgid "Set Waypoints at Keyframe" +msgstr "Establecer Interpolaciones en el Fotograma Clave" + +#: src/synfigapp/actions/keyframewaypointset.cpp:82 +#: src/synfigapp/actions/waypointsetsmart.cpp:95 +msgid "Waypoint Model" +msgstr "Modelo de Inerpolación" + +#: src/synfigapp/actions/layeractivate.cpp:50 +#: src/synfigapp/actions/layeractivate.cpp:71 +#: src/synfigapp/actions/layeractivate.cpp:75 +msgid "Activate Layer" +msgstr "Activar Capa" + +#: src/synfigapp/actions/layeractivate.cpp:76 +msgid "Deactivate Layer" +msgstr "Desactivar Capa" + +#: src/synfigapp/actions/layeractivate.cpp:90 +msgid "New Status" +msgstr "Nuevo Estado" + +#: src/synfigapp/actions/layeractivate.cpp:91 +msgid "The new status of the layer" +msgstr "El nuevo estado de la capa" + +#: src/synfigapp/actions/layeractivate.cpp:141 +#: src/synfigapp/actions/layeradd.cpp:144 +#: src/synfigapp/actions/layerduplicate.cpp:135 +#: src/synfigapp/actions/layerencapsulate.cpp:191 +#: src/synfigapp/actions/layerlower.cpp:140 +#: src/synfigapp/actions/layermove.cpp:161 +#: src/synfigapp/actions/layermove.cpp:234 +#: src/synfigapp/actions/layerraise.cpp:137 +#: src/synfigapp/actions/layerremove.cpp:134 +msgid "This layer doesn't exist anymore." +msgstr "La capa no existe ya." + +#: src/synfigapp/actions/layeradd.cpp:50 src/synfigapp/actions/layeradd.cpp:71 +#: src/synfigapp/actions/layeradd.cpp:73 +msgid "Add Layer" +msgstr "Añadir capa" + +#: src/synfigapp/actions/layeradd.cpp:83 +msgid "Layer to be added" +msgstr "Capa para ser añadida" + +#: src/synfigapp/actions/layerduplicate.cpp:52 +#: src/synfigapp/actions/layerduplicate.cpp:72 +msgid "Duplicate Layer" +msgstr "Duplciar Capa" + +#: src/synfigapp/actions/layerduplicate.cpp:72 +msgid "Duplicate Layers" +msgstr "Duplciar Capas" + +#: src/synfigapp/actions/layerduplicate.cpp:82 +msgid "Layer to be duplicated" +msgstr "Capa para ser duplicada" + +#: src/synfigapp/actions/layerduplicate.cpp:141 +#: src/synfigapp/actions/layerencapsulate.cpp:200 +#: src/synfigapp/actions/layerremove.cpp:144 +msgid "This layer doesn't belong to this canvas anymore" +msgstr "La capa ya no pertenece más a este lienzo" + +#: src/synfigapp/actions/layerencapsulate.cpp:72 +msgid "Encapsulate Layer" +msgstr "Encapsular Capa" + +#: src/synfigapp/actions/layerencapsulate.cpp:72 +msgid "Encapsulate Layers" +msgstr "Encapsular Capas" + +#: src/synfigapp/actions/layerencapsulate.cpp:82 +msgid "Layer to be encapsulated" +msgstr "Capa para ser encapsulada" + +#: src/synfigapp/actions/layerencapsulate.cpp:141 +msgid "No layers to encapsulate" +msgstr "Sin capas que encapsular" + +#: src/synfigapp/actions/layerencapsulate.cpp:194 +msgid "This layer doesn't have a parent canvas" +msgstr "Esta capa no tiene un lienzo ascendiente" + +#: src/synfigapp/actions/layerencapsulate.cpp:203 +msgid "get_canvas()!=subcanvas" +msgstr "get_canvas()!=subcanvas" + +#: src/synfigapp/actions/layerlower.cpp:51 +#: src/synfigapp/actions/layerlower.cpp:71 +msgid "Lower Layer" +msgstr "Bajar Capa" + +#: src/synfigapp/actions/layerlower.cpp:71 +msgid "Lower Layers" +msgstr "Bajar Capas" + +#: src/synfigapp/actions/layerlower.cpp:81 +msgid "Layer to be lowered" +msgstr "Capa para ser bajada" + +#: src/synfigapp/actions/layermove.cpp:50 +#: src/synfigapp/actions/layermove.cpp:74 +#: src/synfigapp/actions/layermove.cpp:76 +msgid "Move Layer" +msgstr "Mover capa" + +#: src/synfigapp/actions/layermove.cpp:86 +#: src/synfigapp/actions/layersetdesc.cpp:86 +msgid "Layer to be moved" +msgstr "Capa para ser movida" + +#: src/synfigapp/actions/layermove.cpp:90 +msgid "New Index" +msgstr "Nuevo índice" + +#: src/synfigapp/actions/layermove.cpp:91 +msgid "Where the layer is to be moved to" +msgstr "Donde la capa va a ser movida" + +#: src/synfigapp/actions/layermove.cpp:95 +msgid "Destination Canvas" +msgstr "Lienzo Destino" + +#: src/synfigapp/actions/layermove.cpp:96 +msgid "The canvas the layer is to be moved to" +msgstr "El Iienzo donde la capa va a ser movida" + +#: src/synfigapp/actions/layermove.cpp:170 +msgid "You cannot directly move layers across compositions" +msgstr "No puede mover capas directamente entre composiciones" + +#: src/synfigapp/actions/layerparamconnect.cpp:49 +msgid "Connect Layer Parameter" +msgstr "Conectar Parámetro de Capa" + +#: src/synfigapp/actions/layerparamconnect.cpp:76 +#: src/synfigapp/actions/layerparamdisconnect.cpp:79 +#: src/synfigapp/actions/layerparamset.cpp:76 +msgid "Param" +msgstr "Parámetro" + +#: src/synfigapp/actions/layerparamconnect.cpp:147 +msgid "Layer did not recognize parameter name" +msgstr "Capa no reconoce el nombre del parámetro" + +#: src/synfigapp/actions/layerparamconnect.cpp:150 +msgid "Bad connection" +msgstr "Mala conexión" + +#: src/synfigapp/actions/layerparamdisconnect.cpp:50 +msgid "Disconnect Layer Parameter" +msgstr "Desconectar el Parámetro de la Capa" + +#: src/synfigapp/actions/layerparamdisconnect.cpp:135 +msgid "Layer Parameter is not connected to anything" +msgstr "El Parámetro de la Capa no esta conectado a nada" + +#: src/synfigapp/actions/layerparamset.cpp:49 +msgid "Set Layer Parameter" +msgstr "Establecer el Parámetro de la Capa" + +#: src/synfigapp/actions/layerparamset.cpp:132 +msgid "ValueNode attached to Parameter." +msgstr "Valor de Nodo adjunto a Parámetro" + +#: src/synfigapp/actions/layerparamset.cpp:137 +#: src/synfigapp/actions/layerparamset.cpp:157 +msgid "Layer did not accept parameter." +msgstr "Capa no acepta el parámetro" + +#: src/synfigapp/actions/layerraise.cpp:51 +#: src/synfigapp/actions/layerraise.cpp:71 +msgid "Raise Layer" +msgstr "Elevar Capa" + +#: src/synfigapp/actions/layerraise.cpp:71 +msgid "Raise Layers" +msgstr "Elevar Capas" + +#: src/synfigapp/actions/layerraise.cpp:81 +msgid "Layer to be raised" +msgstr "Capa para ser elevada" + +#: src/synfigapp/actions/layerremove.cpp:50 +#: src/synfigapp/actions/layerremove.cpp:70 +msgid "Remove Layer" +msgstr "Borrar Capa" + +#: src/synfigapp/actions/layerremove.cpp:70 +msgid "Remove Layers" +msgstr "Borrar Capas" + +#: src/synfigapp/actions/layerremove.cpp:80 +msgid "Layer to be deleted" +msgstr "Capa para ser borrada" + +#: src/synfigapp/actions/layersetdesc.cpp:50 +#: src/synfigapp/actions/layersetdesc.cpp:73 +msgid "Set Layer Description" +msgstr "Establecer Descripción de la Capa" + +#. TRANSLATORS: this is the string used in the history dialog when renaming a layer to/from its default name +#: src/synfigapp/actions/layersetdesc.cpp:75 +#: src/synfigapp/actions/layersetdesc.cpp:76 +msgid "[default]" +msgstr "[por defecto]" + +#: src/synfigapp/actions/layersetdesc.cpp:90 +msgid "New Description" +msgstr "Nueva Descripción" + +#: src/synfigapp/actions/layersetdesc.cpp:91 +msgid "Enter a new description for this layer" +msgstr "Introduzca una nueva descripción para esta capa" + +#: src/synfigapp/actions/timepointscopy.cpp:58 +msgid "Copy Time Points" +msgstr "Copiar Puntos de Tiempo" + +#: src/synfigapp/actions/timepointscopy.cpp:83 +#: src/synfigapp/actions/timepointsdelete.cpp:82 +#: src/synfigapp/actions/timepointsmove.cpp:83 +msgid "New Selected Layer" +msgstr "Nueva Capa Seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:84 +#: src/synfigapp/actions/timepointsdelete.cpp:83 +#: src/synfigapp/actions/timepointsmove.cpp:84 +msgid "A layer to add to our selected list" +msgstr "Una capa a añadir a nuestra lista seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:90 +#: src/synfigapp/actions/timepointsdelete.cpp:89 +#: src/synfigapp/actions/timepointsmove.cpp:90 +msgid "New Selected Canvas" +msgstr "Nuevo Lienzo Seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:91 +#: src/synfigapp/actions/timepointsdelete.cpp:90 +#: src/synfigapp/actions/timepointsmove.cpp:91 +msgid "A canvas to add to our selected list" +msgstr "Un lienzo a aádir a nuestra lista seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:97 +#: src/synfigapp/actions/timepointsdelete.cpp:96 +#: src/synfigapp/actions/timepointsmove.cpp:97 +msgid "New Selected ValueBase" +msgstr "Nuevo Valor Base Seleccionado" + +#: src/synfigapp/actions/timepointscopy.cpp:98 +#: src/synfigapp/actions/timepointsdelete.cpp:97 +#: src/synfigapp/actions/timepointsmove.cpp:98 +msgid "A valuenode's description to add to our selected list" +msgstr "Una descripción del valor de nodo a añadir a nuestra lista seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:104 +#: src/synfigapp/actions/timepointsdelete.cpp:103 +#: src/synfigapp/actions/timepointsmove.cpp:104 +msgid "New Selected Time Point" +msgstr "Nuevo Punto de Tiempo Seleccionado" + +#: src/synfigapp/actions/timepointscopy.cpp:105 +#: src/synfigapp/actions/timepointsdelete.cpp:104 +#: src/synfigapp/actions/timepointsmove.cpp:105 +msgid "A time point to add to our selected list" +msgstr "Un punto de tiempo a añadir a nuestra lista seleccionada" + +#: src/synfigapp/actions/timepointscopy.cpp:110 +#: src/synfigapp/actions/timepointsmove.cpp:110 +msgid "Time adjustment" +msgstr "Ajsute de TIempo" + +#: src/synfigapp/actions/timepointscopy.cpp:111 +#: src/synfigapp/actions/timepointsmove.cpp:111 +msgid "The amount of time to adjust all the selected points" +msgstr "La cantidad de tiempo a ajustar a todos los puntos seleccionados" + +#: src/synfigapp/actions/timepointsdelete.cpp:58 +msgid "Delete Time Points" +msgstr "Borrar Puntos de Tiempo" + +#: src/synfigapp/actions/timepointsmove.cpp:58 +msgid "Move Time Points" +msgstr "Mover Puntos de Tiempo" + +#: src/synfigapp/actions/valuedescconnect.cpp:54 +msgid "Connect" +msgstr "Connectar" + +#. TRANSLATORS: This is used in the 'history' dialog when a connection is made. +#: src/synfigapp/actions/valuedescconnect.cpp:75 +#, c-format +msgid "Connect '%s' to '%s'" +msgstr "Conectar '%s' a '%s'" + +#: src/synfigapp/actions/valuedescconnect.cpp:86 +msgid "Destination ValueDesc" +msgstr "Descripción del Valor de Destino" + +#: src/synfigapp/actions/valuedescconnect.cpp:90 +#: src/synfigapp/actions/valuenodereplace.cpp:90 +msgid "Source ValueNode" +msgstr "Valor de Nodo de Origen" + +#: src/synfigapp/actions/valuedescconnect.cpp:95 +msgid "Source ValueNode Name" +msgstr "Nombre del Valor de Nodo de Origen" + +#: src/synfigapp/actions/valuedescconnect.cpp:239 +#: src/synfigapp/actions/valuedescdisconnect.cpp:217 +msgid "ValueDesc is not recognized or supported." +msgstr "Descripción del Valor no reconocido o soportado" + +#: src/synfigapp/actions/valuedescconvert.cpp:60 +msgid "Convert" +msgstr "Convertir" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is converted. The first %s is what is converted, the 2nd is the local name of the ValueNode's type. +#: src/synfigapp/actions/valuedescconvert.cpp:82 +#, c-format +msgid "Convert '%s' to ValueNode type '%s'" +msgstr "Convertir '%s' al tipo de Valor de Nodo '%s'" + +#: src/synfigapp/actions/valuedescconvert.cpp:98 +msgid "The type of ValueNode that you want to be converted to" +msgstr "El tipo de Valor de Nodo al que se quiere convertir" + +#: src/synfigapp/actions/valuedescconvert.cpp:166 +msgid "Unable to decipher ValueDesc (Bug?)" +msgstr "Imposible descifrar La Descripción del Valor (¿Bug?)" + +#: src/synfigapp/actions/valuedescconvert.cpp:171 +msgid "Unable to create new value node" +msgstr "Imposible crear nuevo valor de nodo" + +#: src/synfigapp/actions/valuedescdisconnect.cpp:56 +msgid "Disconnect" +msgstr "Desconectar" + +#. TRANSLATORS: This is used in the History dialog when a ValueNode is disconnected. +#: src/synfigapp/actions/valuedescdisconnect.cpp:78 +#, c-format +msgid "Disconnect %s" +msgstr "Desconectar %s" + +#: src/synfigapp/actions/valuedescexport.cpp:56 +msgid "Export" +msgstr "Exportar" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is exported. The first %s is what is exported, the 2nd is the name it is given. +#: src/synfigapp/actions/valuedescexport.cpp:77 +#, c-format +msgid "Export '%s' as '%s'" +msgstr "Exportar '%s' como '%s'" + +#: src/synfigapp/actions/valuedescexport.cpp:93 +msgid "The name that you want this value to be exported as" +msgstr "El nombre con el que quiere que se exporte este valor" + +#: src/synfigapp/actions/valuedescexport.cpp:151 +msgid "Can only export Canvas when used as constant parameter" +msgstr "Sólo se puede exportar un lienzo cuando se use como parámetro constante" + +#: src/synfigapp/actions/valuedescexport.cpp:174 +msgid "ValueBase is already exported" +msgstr "Valor de Base actualmente exportado" + +#: src/synfigapp/actions/valuedescexport.cpp:181 +msgid "Unable to export parameter. (Bug?)" +msgstr "Imposible exportar parámetro. (¿Bug?)" + +#: src/synfigapp/actions/valuedesclink.cpp:52 +msgid "Link" +msgstr "Enlazar" + +#: src/synfigapp/actions/valuedesclink.cpp:75 +msgid "ValueDesc to link" +msgstr "Descripción del Valor a enlazar" + +#: src/synfigapp/actions/valuedesclink.cpp:112 +msgid "Cannot link two different exported values ('" +msgstr "No puedo enlazar dos valores exportados diferentes ('" + +#: src/synfigapp/actions/valuedesclink.cpp:113 +msgid "' and '" +msgstr "' y '" + +#: src/synfigapp/actions/valuedesclink.cpp:114 +msgid "')" +msgstr "')" + +#: src/synfigapp/actions/valuedesclink.cpp:119 +msgid "Used exported ValueNode ('" +msgstr "Usado Valor de Nodo exportado ('" + +#: src/synfigapp/actions/valuedesclink.cpp:119 +msgid "')." +msgstr "')." + +#: src/synfigapp/actions/valuedesclink.cpp:126 +msgid "Using the only available ValueNode." +msgstr "Usando el único Valor de Nodo disponible." + +#: src/synfigapp/actions/valuedesclink.cpp:139 +#: src/synfigapp/actions/valuedesclink.cpp:145 +msgid "Using the most referenced ValueNode." +msgstr "Usando el Valor de Nodo más referenciado" + +#: src/synfigapp/actions/valuedesclink.cpp:153 +#: src/synfigapp/actions/valuedesclink.cpp:161 +msgid "There's a tie for most referenced; using the animated ValueNode." +msgstr "Hay un lazo para el más refernciado; usando el Valor de Nodo animado" + +#: src/synfigapp/actions/valuedesclink.cpp:174 +#: src/synfigapp/actions/valuedesclink.cpp:180 +msgid "" +"There's a tie for most referenced, and both are animated; using the one with " +"the most waypoints." +msgstr "" +"Hay un lazo para el más referenciado; y ámbos son animados; usando el que " +"tiene mas interpolaciones." + +#: src/synfigapp/actions/valuedesclink.cpp:189 +#: src/synfigapp/actions/valuedesclink.cpp:195 +msgid "Everything is tied; using the least recently modified value." +msgstr "Todo esta enlazado; usando el valor más recientemente modificado." + +#: src/synfigapp/actions/valuedesclink.cpp:201 +msgid "Absolutely everything is tied." +msgstr "Absolutamente todo esta enlazado." + +#: src/synfigapp/actions/valuedesclink.cpp:209 +#, c-format +msgid "Cannot link two values of different types ('%s' and '%s')" +msgstr "No puedo enlazar dos valores de tipo diferente ('%s' y '%s')" + +#: src/synfigapp/actions/valuedesclink.cpp:246 +msgid "No ValueNodes were available, so one was created." +msgstr "No hay Valor de Nodo disponible, así que uno fue creado." + +#: src/synfigapp/actions/valuedescset.cpp:59 +msgid "Set ValueDesc" +msgstr "Establecer Descripción del Valor" + +#: src/synfigapp/actions/valuedescset.cpp:80 +#, c-format +msgid "Set %s" +msgstr "Establecer %s" + +#: src/synfigapp/actions/valuedescset.cpp:180 +#: src/synfigapp/actions/valuedescset.cpp:205 +#: src/synfigapp/actions/valuedescset.cpp:273 +#: src/synfigapp/actions/valuedescset.cpp:331 +#: src/synfigapp/actions/valuedescset.cpp:368 +#: src/synfigapp/actions/valuedescset.cpp:393 +#: src/synfigapp/actions/valuedescset.cpp:411 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:185 +msgid "Unable to find action value_desc_set (bug)" +msgstr "Imposible encontrar acción value_set_desc (error)" + +#: src/synfigapp/actions/valuedescset.cpp:262 +#, c-format +msgid "Bad type for composite (%s)" +msgstr "Mal tipo para composición (%s)" + +#: src/synfigapp/actions/valuedescset.cpp:321 +#, c-format +msgid "Bad type for radial composite (%s)" +msgstr "Mal tipo para composición radial (%s)" + +#: src/synfigapp/actions/valuedescset.cpp:497 +#: src/synfigapp/actions/valuedescset.cpp:544 +msgid "Direct manipulation of this ValueNode type is not yet supported" +msgstr "Manipulación directa de este tipo de Valor de Nodo no esta soportado aún" + +#: src/synfigapp/actions/valuedescset.cpp:542 +msgid "You must be in Animate-Editing-Mode to directly manipulate this value" +msgstr "Debe estar en Modo de Edición de Animación para manipular este valor" + +#: src/synfigapp/actions/valuedescset.cpp:564 +msgid "Unsupported ValueDesc type" +msgstr "Tipo de Descripción de Valor no soportado" + +#: src/synfigapp/actions/valuenodeadd.cpp:49 +msgid "Add ValueNode" +msgstr "Añadir Valor de Nodo" + +#: src/synfigapp/actions/valuenodeadd.cpp:72 +msgid "New ValueNode" +msgstr "Nuevo Valor de Nodo" + +#: src/synfigapp/actions/valuenodeadd.cpp:73 +msgid "ValueNode to be added" +msgstr "Valor de Nodo a ser añadido" + +#: src/synfigapp/actions/valuenodeadd.cpp:122 +msgid "Parameter appears to already be exported" +msgstr "El parámetro parece que ya ha sido exportado" + +#: src/synfigapp/actions/valuenodeadd.cpp:131 +msgid "Another exported ValueBase with this name already exists" +msgstr "Otro Valor Base exportado con este nombre ya existe" + +#: src/synfigapp/actions/valuenodeadd.cpp:135 +msgid "Exception caught on Add ValueNode." +msgstr "Atrapada excepción al Añadir Valor de Nodo." + +#: src/synfigapp/actions/valuenodeadd.cpp:154 +msgid "Exception caught on Remove ValueNode." +msgstr "Atrapada excepción al Borrar Valor de Nodo." + +#: src/synfigapp/actions/valuenodeconstset.cpp:49 +msgid "Set ValueNode_Const" +msgstr "Establecer Valor de Nodo Constante" + +#: src/synfigapp/actions/valuenodeconstset.cpp:73 +#: src/synfigapp/actions/valuenoderename.cpp:82 +msgid "ValueNode_Const" +msgstr "Valor de Nodo Constante" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:49 +msgid "Insert Item" +msgstr "Insertar Elemento" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:83 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:85 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:84 +msgid "Origin" +msgstr "Origen" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:87 +msgid "ValueNode to insert" +msgstr "Valor de Nodo a insertar" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:51 +msgid "Insert Item (Smart)" +msgstr "Insertar Elemento (inteligente)" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:206 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:260 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:159 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:177 +msgid "Unable to find action (bug)" +msgstr "Imposible encontrar acción (error)" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:222 +msgid "Unable to find action \"activepoint_set_off\"" +msgstr "Imposible encontrar acción \"active_point_set_off\"" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:241 +msgid "Unable to find action \"activepoint_set_on\"" +msgstr "Imposible encontrar acción \"active_point_set_on\"" + +#: src/synfigapp/actions/valuenodedynamiclistloop.cpp:49 +msgid "Loop" +msgstr "Bucle" + +#: src/synfigapp/actions/valuenodedynamiclistremove.cpp:49 +msgid "Remove Item" +msgstr "Borrar Elemento" + +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:50 +msgid "Remove Item (Smart)" +msgstr "Borrar Elemento (Inteligente)" + +#: src/synfigapp/actions/valuenodedynamiclistrotateorder.cpp:49 +msgid "Rotate Order" +msgstr "Rotar Orden" + +#: src/synfigapp/actions/valuenodedynamiclistunloop.cpp:49 +msgid "Unloop" +msgstr "Quitar Bucle" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:49 +msgid "Connect ValueNode Link" +msgstr "Conectar Enlace a Valor de Nodo" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:73 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:75 +msgid "Parent ValueNode" +msgstr "Valor de Nodo ascendiente" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:77 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:79 +msgid "Index" +msgstr "Índice" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:81 +msgid "ValueNode to be connected" +msgstr "Valor de Nodo a ser conectado" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:132 +#: src/synfigapp/actions/valuenodelinkconnect.cpp:151 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:135 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:159 +#, c-format +msgid "Bad index, too big. LinkCount=%d, Index=%d" +msgstr "Mal Índice, demasiado grande. LinkCount=%d, Index=%d" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:137 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:140 +msgid "Parent would not accept link" +msgstr "Ascendiente no aceptará el enlace" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:154 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:162 +msgid "Parent would not accept old link" +msgstr "Ascendiente no aceptará el enlace antiguo" + +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:50 +msgid "Disconnect ValueNode Link" +msgstr "Desconectar el Enlace del Valor de Nodo" + +#: src/synfigapp/actions/valuenoderemove.cpp:50 +msgid "Unexport" +msgstr "Des-exportar" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is unexported. +#: src/synfigapp/actions/valuenoderemove.cpp:71 +#, c-format +msgid "Unexport '%s'" +msgstr "Des-exportar '%s'" + +#: src/synfigapp/actions/valuenoderename.cpp:50 +msgid "Rename ValueNode" +msgstr "Renombrar Valor de Nodo" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is renamed. +#: src/synfigapp/actions/valuenoderename.cpp:71 +#, c-format +msgid "Rename ValueNode from '%s' to '%s'" +msgstr "Renombrar Valor de Nodo desde '%s' a '%s'" + +#: src/synfigapp/actions/valuenoderename.cpp:87 +msgid "The new name of the ValueNode" +msgstr "El nuevo nombre al Valor de Nodo" + +#: src/synfigapp/actions/valuenoderename.cpp:151 +msgid "A ValueNode with this ID already exists in this canvas" +msgstr "Un Valor de Nodo con este ID ya existe en este lienzo" + +#: src/synfigapp/actions/valuenoderename.cpp:169 +msgid "A ValueNode with the old ID already exists in this canvas (BUG)" +msgstr "Un Valor de Nodo con el antiguo ID ya existe en este lienzo (BUG)" + +#: src/synfigapp/actions/valuenodereplace.cpp:49 +msgid "Replace ValueNode" +msgstr "Reemplazar Valor de Nodo" + +#: src/synfigapp/actions/valuenodereplace.cpp:85 +msgid "Destination ValueNode" +msgstr "Valor de Nodo de Destino" + +#: src/synfigapp/actions/valuenodereplace.cpp:86 +msgid "ValueNode to replaced" +msgstr "Valor de Nodo a reemplazar" + +#: src/synfigapp/actions/valuenodereplace.cpp:91 +msgid "ValueNode that will replace the destination" +msgstr "Valor de Nodo que reemplazará al destino" + +#: src/synfigapp/actions/valuenodereplace.cpp:137 +#: src/synfigapp/actions/valuenodereplace.cpp:193 +msgid "Attempted to replace valuenode with itself" +msgstr "Intento de reemplazar un Valor de Nodo consigo mismo." + +#: src/synfigapp/actions/valuenodereplace.cpp:140 +#: src/synfigapp/actions/valuenodereplace.cpp:196 +msgid "You cannot replace ValueNodes with different types!" +msgstr "¡No puede reemplazar Valore de Nodo de diferentes tipos!" + +#: src/synfigapp/actions/valuenodereplace.cpp:163 +#: src/synfigapp/actions/valuenodereplace.cpp:201 +msgid "Nothing to replace." +msgstr "Nada a remplazar." + +#: src/synfigapp/actions/valuenodereplace.cpp:170 +#: src/synfigapp/actions/valuenodereplace.cpp:208 +msgid "Action Failure. This is a bug. Please report it." +msgstr "Acción Fallida. Esto es un error. Por favor informe del mismo." + +#: src/synfigapp/actions/valuenodereplace.cpp:188 +msgid "This action cannot be undone under these circumstances." +msgstr "Esta acción no puede ser deshecha bajo estas circunstancias." + +#: src/synfigapp/actions/valuenodereplace.cpp:213 +msgid ": (Undo) " +msgstr ": (Deshacer) " + +#: src/synfigapp/actions/waypointadd.cpp:50 +#: src/synfigapp/actions/waypointsetsmart.cpp:59 +msgid "Add Waypoint" +msgstr "Añadir Interpolación" + +#: src/synfigapp/actions/waypointadd.cpp:80 +#: src/synfigapp/actions/waypointsetsmart.cpp:89 +msgid "New Waypoint" +msgstr "Nueva Interpolación" + +#: src/synfigapp/actions/waypointadd.cpp:81 +#: src/synfigapp/actions/waypointsetsmart.cpp:90 +#: src/synfigapp/actions/waypointsimpleadd.cpp:79 +msgid "Waypoint to be added" +msgstr "Interpolación para ser añadida" + +#: src/synfigapp/actions/waypointadd.cpp:87 +#: src/synfigapp/actions/waypointsetsmart.cpp:101 +msgid "Time where waypoint is to be added" +msgstr "Tiempo donde se va a añadir la interpolación" + +#: src/synfigapp/actions/waypointadd.cpp:189 +#, c-format +msgid "A Waypoint already exists at this point in time (%s)" +msgstr "Una interpolación existe ya en ese punto en el tiempo (%s)" + +#: src/synfigapp/actions/waypointadd.cpp:192 +#: src/synfigapp/actions/waypointremove.cpp:180 +msgid "This waypoint is already in the ValueNode" +msgstr "Esta interpolación ya está en el Valor de Nodo" + +#: src/synfigapp/actions/waypointremove.cpp:49 +msgid "Remove Waypoint" +msgstr "Borrar Interpolación" + +#: src/synfigapp/actions/waypointremove.cpp:74 +msgid "ValueNode (Animated)" +msgstr "Valor de Nodo (Animado)" + +#: src/synfigapp/actions/waypointremove.cpp:79 +msgid "Waypoint to be Removed" +msgstr "Interpolación a ser Borrada" + +#: src/synfigapp/actions/waypointremove.cpp:124 +#, c-format +msgid "UniqueID mismatch, iter=%d, waypoint=%d" +msgstr "Descuadre de ID único;iter =%d, waypoint=%d" + +#: src/synfigapp/actions/waypointremove.cpp:127 +#, c-format +msgid "Time mismatch iter=%s, waypoint=%s" +msgstr "Descuadre de tiempo iter=%s, waypoint=%s" + +#: src/synfigapp/actions/waypointremove.cpp:141 +msgid "Unable to create ValueNode_Reference" +msgstr "Imposible crear Referencia al Valor de Nodo" + +#: src/synfigapp/actions/waypointremove.cpp:162 +msgid "" +"This animated value node should be empty, but for some reason it isn't. This " +"is a bug. (1)" +msgstr "" +"Este valor de nodo animado debería estar vacío, por alguna razón no lo está. " +"Esto es un error. (1)" + +#: src/synfigapp/actions/waypointremove.cpp:172 +msgid "" +"This animated value node should be empty, but for some reason it isn't. This " +"is a bug. (2)" +msgstr "" +"Este valor de nodo animado debería estar vacío, por alguna razón no lo está. " +"Esto es un error. (2)" + +#: src/synfigapp/actions/waypointremove.cpp:177 +msgid "A Waypoint already exists at this point in time" +msgstr "Una Interpolación ya existe en ese punto del tiempo" + +#: src/synfigapp/actions/waypointset.cpp:49 +msgid "Set Waypoint" +msgstr "Establecer Interpolación" + +#: src/synfigapp/actions/waypointset.cpp:78 +msgid "Waypoint to be changed" +msgstr "Interpolación a ser cambiada" + +#: src/synfigapp/actions/waypointset.cpp:133 +#: src/synfigapp/actions/waypointset.cpp:191 +#: src/synfigapp/actions/waypointset.cpp:235 +#: src/synfigapp/actions/waypointset.cpp:256 +msgid "Unable to find waypoint" +msgstr "Imposible encontrar Interpolación" + +#: src/synfigapp/actions/waypointsimpleadd.cpp:146 +msgid "The waypoint to remove no longer exists" +msgstr "La interpolación a borrar ya no existe" + +#: src/synfigapp/action_system.cpp:77 +msgid "Action is not ready." +msgstr "La acción no está preparada" + +#: src/synfigapp/action_system.cpp:109 +msgid "This action cannot be undone! Are you sure you want to continue?" +msgstr "¡Esta acción no puede deshacerse! ¿Esta seguro de querer continuar?" + +#: src/synfigapp/action_system.cpp:128 src/synfigapp/action_system.cpp:145 +#: src/synfigapp/action_system.cpp:156 +msgid "Failed" +msgstr "Fallido" + +#: src/synfigapp/action_system.cpp:189 +msgid "Successful" +msgstr "Éxito" + +#: src/synfigapp/action_system.cpp:222 src/synfigapp/action_system.cpp:224 +msgid " (Undo): " +msgstr "(Deshacer): " + +#: src/synfigapp/action_system.cpp:284 +msgid "Failed to undo." +msgstr "Fallado al deshacer" + +#: src/synfigapp/action_system.cpp:320 src/synfigapp/action_system.cpp:322 +msgid " (Redo): " +msgstr " (Rehacer): " + +#: src/synfigapp/action_system.cpp:382 +msgid "Failed to redo." +msgstr "Fallado al rehacer" + +#: src/synfigapp/action_system.cpp:698 +msgid "State restore failure" +msgstr "Fallo al restaurar estado" + +#: src/synfigapp/canvasinterface.cpp:160 +msgid "Action Not Ready, unable to change mode" +msgstr "Acción no preparada, imposible cambiar el modo" + +#: src/synfigapp/canvasinterface.cpp:166 +msgid "Unable to change mode" +msgstr "Imposible cambiar el modo" + +#: src/synfigapp/canvasinterface.cpp:183 +msgid "Add Layer To" +msgstr "Añadir Capa A" + +#: src/synfigapp/canvasinterface.cpp:288 src/synfigapp/canvasinterface.cpp:349 +#: src/synfigapp/canvasinterface.cpp:382 +msgid "Action Not Ready" +msgstr "Acción No Preparada" + +#: src/synfigapp/canvasinterface.cpp:294 src/synfigapp/canvasinterface.cpp:356 +#: src/synfigapp/canvasinterface.cpp:389 src/synfigapp/canvasinterface.cpp:477 +#: src/synfigapp/canvasinterface.cpp:666 src/synfigapp/canvasinterface.cpp:691 +#: src/synfigapp/canvasinterface.cpp:744 +msgid "Action Failed." +msgstr "Acció Fallida." + +#: src/synfigapp/canvasinterface.cpp:316 +msgid "Move Action Not Ready" +msgstr "Acción Mover No Preparada" + +#: src/synfigapp/canvasinterface.cpp:322 +msgid "Move Action Failed." +msgstr "Acción Mover Falida." + +#: src/synfigapp/canvasinterface.cpp:365 +msgid "Empty name!" +msgstr "¡Nombre vacío!" + +#: src/synfigapp/canvasinterface.cpp:542 +msgid "Filename must have an extension!" +msgstr "¡El archivo debe terner una extensión!" + +#: src/synfigapp/canvasinterface.cpp:556 +msgid "Unable to open this composition" +msgstr "Imposible abrir esta composición" + +#: src/synfigapp/canvasinterface.cpp:560 +msgid "Unable to create \"Paste Canvas\" layer" +msgstr "Impsible crear capa \"Lienzo Pegado\"" + +#: src/synfigapp/canvasinterface.cpp:575 +msgid "" +"Uncaught exception when attempting\n" +"to open this composition -- " +msgstr "" +"Excepción sin atrapar cuando se intentaba\n" +"abrir esta composición" + +#: src/synfigapp/canvasinterface.cpp:581 +msgid "I don't know how to open images of this type -- " +msgstr "No se como abrir imágenes de este tipo -- " + +#: src/synfigapp/canvasinterface.cpp:736 +#, c-format +msgid "Unnamed%08d" +msgstr "Sin Nombre%08d" + +#: src/synfigapp/canvasinterface.cpp:767 +msgid "" +"The value you are trying to edit is in a composition\n" +"which doesn't seem to be open. Open that composition and you\n" +"should be able to edit this value as normal." +msgstr "" +"El valor que esta intentando editar esta en una composición\n" +"que parece que no está abierta. Abra esa composición y podrá\n" +"editar este valor normalmente." + +#: src/synfigapp/uimanager.cpp:56 src/synfigapp/uimanager.cpp:83 +msgid "(no/yes)" +msgstr "(no/si)" + +#: src/synfigapp/uimanager.cpp:58 src/synfigapp/uimanager.cpp:85 +msgid "(yes/no)" +msgstr "(si/no)" + +#: src/synfigapp/uimanager.cpp:110 +msgid "(cancel/ok)" +msgstr "(cancelar/ok)" + +#: src/synfigapp/uimanager.cpp:112 +msgid "(ok/cancel)" +msgstr "(ok/cancelar)" + +#: src/synfigapp/uimanager.cpp:142 +msgid "error: " +msgstr "error: " + +#: src/synfigapp/uimanager.cpp:149 +msgid "warning: " +msgstr "aviso: " + +#: src/synfigapp/value_desc.cpp:60 +msgid "Layer Parameter" +msgstr "Parámetro de la Capa" + +#: src/synfigapp/value_desc.cpp:71 +msgid "Value Node" +msgstr "Valor de Nodo" + +#: src/synfigapp/value_desc.cpp:81 +msgid "Exported ValueNode" +msgstr "Valor de Nodo Exportado" + diff --git a/synfig-studio/tags/0.61.08/po/fr.po b/synfig-studio/tags/0.61.08/po/fr.po new file mode 100644 index 0000000..56c6a7c --- /dev/null +++ b/synfig-studio/tags/0.61.08/po/fr.po @@ -0,0 +1,4084 @@ +# translation of fr.po to +# French translations for Synfig Studio package. +# Copyright (C) 2007 Synfig Contributors +# This file is distributed under the same license as the Synfig Studio package. +# Aurore D , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: http://synfig.org/Bugs\n" +"POT-Creation-Date: 2008-03-02 15:51+0900\n" +"PO-Revision-Date: 2008-03-02 16:14+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: src/gtkmm/about.cpp:104 +msgid "2D vector animation studio" +msgstr "Studio d'animation vectorielle 2D" + +#: src/gtkmm/about.cpp:108 +msgid "Visit the Synfig website" +msgstr "Visiter le site de Synfig" + +#: src/gtkmm/about.cpp:110 +msgid "" +"Copyright 2001-2008\n" +"Robert B. Quattlebaum Jr.,\n" +"Adrian Bentley and Synfig contributors" +msgstr "" +"Copyright 2001-2008\n" +"Robert B. Quattlebaum Jr.,\n" +"Adrian Bentley et les contributeurs Synfig" + +#. TRANSLATORS: change this to your name, separate multiple names with \n +#: src/gtkmm/about.cpp:162 +msgid "translator-credits" +msgstr "Aurore D (rore)" + +#: src/gtkmm/about.cpp:188 +#, c-format +msgid "" +"\n" +"Development version:\n" +"%s\n" +msgstr "" +"\n" +"Version de développement :\n" +"%s\n" + +#: src/gtkmm/about.cpp:193 +#, c-format +msgid "Built on %s\n" +msgstr "" + +#: src/gtkmm/about.cpp:197 +msgid "Built with:\n" +msgstr "" + +#: src/gtkmm/about.cpp:198 +#, c-format +msgid "ETL %s\n" +msgstr "" + +#: src/gtkmm/about.cpp:199 +#, c-format +msgid "Synfig API %s\n" +msgstr "" + +#: src/gtkmm/about.cpp:200 +#, c-format +msgid "Synfig library %d\n" +msgstr "" + +#: src/gtkmm/about.cpp:201 +#, c-format +msgid "GTK+ %d.%d.%d\n" +msgstr "" + +#: src/gtkmm/about.cpp:203 +#, c-format +msgid "GNU G++ %d.%d.%d\n" +msgstr "" + +#: src/gtkmm/about.cpp:208 +msgid "Using:\n" +msgstr "" + +#: src/gtkmm/about.cpp:209 +#, c-format +msgid "Synfig %s\n" +msgstr "Synfig %s\n" + +#: src/gtkmm/about.cpp:210 +#, c-format +msgid "GTK+ %d.%d.%d" +msgstr "GTK+ %d.%d.%d" + +#: src/gtkmm/app.cpp:613 src/gtkmm/toolbox.cpp:281 +msgid "_File" +msgstr "_Fichier" + +#: src/gtkmm/app.cpp:614 src/gtkmm/canvasview.cpp:3227 +msgid "_Edit" +msgstr "_Édition" + +#: src/gtkmm/app.cpp:615 +msgid "_View" +msgstr "_Affichage" + +#: src/gtkmm/app.cpp:616 +msgid "_Canvas" +msgstr "_Canevas" + +#: src/gtkmm/app.cpp:617 +msgid "_Layer" +msgstr "Ca_lque" + +#: src/gtkmm/app.cpp:618 +msgid "Show/Hide Ducks" +msgstr "Afficher/Masquer les poignées" + +#: src/gtkmm/app.cpp:619 +msgid "Preview Quality" +msgstr "Qualité de l'aperçu" + +#: src/gtkmm/app.cpp:620 +msgid "Low-Res Pixel Size" +msgstr "" + +#: src/gtkmm/app.cpp:621 src/gtkmm/canvasview.cpp:2243 +#: src/synfigapp/actions/layeradd.cpp:82 +msgid "New Layer" +msgstr "Nouveau calque" + +#: src/gtkmm/app.cpp:622 src/synfigapp/actions/keyframeduplicate.cpp:79 +#: src/synfigapp/actions/keyframeremove.cpp:78 +#: src/synfigapp/actions/keyframesetdelta.cpp:79 +#: src/synfigapp/actions/keyframewaypointset.cpp:78 +msgid "Keyframe" +msgstr "Image Clé" + +#: src/gtkmm/app.cpp:623 src/gtkmm/iconcontroller.cpp:159 +#: src/synfigapp/actions/groupaddlayers.cpp:78 +#: src/synfigapp/actions/groupremove.cpp:72 +msgid "Group" +msgstr "Groupe" + +#: src/gtkmm/app.cpp:624 +msgid "State" +msgstr "État" + +#: src/gtkmm/app.cpp:625 +msgid "Toolbox" +msgstr "Boîte à outils" + +#: src/gtkmm/app.cpp:642 src/gtkmm/keyframeactionmanager.cpp:239 +msgid "Keyframe Properties" +msgstr "Propriétés de l'image clé" + +#: src/gtkmm/app.cpp:653 src/gtkmm/canvasview.cpp:1202 +msgid "Import" +msgstr "Importer" + +#: src/gtkmm/app.cpp:654 src/gtkmm/canvasview.cpp:1205 +msgid "Render" +msgstr "Rendu" + +#: src/gtkmm/app.cpp:655 src/gtkmm/canvasview.cpp:1208 +#: src/gtkmm/dialog_preview.cpp:171 +msgid "Preview" +msgstr "Aperçu" + +#: src/gtkmm/app.cpp:656 +msgid "Preview Dialog" +msgstr "Dialogue d'aperçu" + +#: src/gtkmm/app.cpp:657 src/gtkmm/canvasview.cpp:1211 +msgid "Sound File" +msgstr "Fichier audio" + +#: src/gtkmm/app.cpp:658 src/gtkmm/canvasoptions.cpp:151 +#: src/gtkmm/canvasview.cpp:1214 +msgid "Options" +msgstr "Options" + +#: src/gtkmm/app.cpp:659 +msgid "Close View" +msgstr "Fermer la vue" + +#: src/gtkmm/app.cpp:660 src/gtkmm/canvasview.cpp:1220 +msgid "Close Document" +msgstr "Fermer le document" + +#: src/gtkmm/app.cpp:669 src/gtkmm/canvasview.cpp:1235 +msgid "Select All Ducks" +msgstr "Sélectionner toutes les poignées" + +#: src/gtkmm/app.cpp:670 src/gtkmm/canvasview.cpp:1239 +msgid "Unselect All Layers" +msgstr "Déselectionner tous les calques" + +#: src/gtkmm/app.cpp:671 src/gtkmm/canvasproperties.cpp:196 +msgid "Properties" +msgstr "Propriétés" + +#: src/gtkmm/app.cpp:673 src/gtkmm/canvasview.cpp:1405 +msgid "Show Position Ducks" +msgstr "Afficher les poignées de position" + +#: src/gtkmm/app.cpp:674 src/gtkmm/canvasview.cpp:1407 +msgid "Show Vertex Ducks" +msgstr "Afficher les poignées de sommet" + +#: src/gtkmm/app.cpp:675 src/gtkmm/canvasview.cpp:1406 +msgid "Show Tangent Ducks" +msgstr "Afficher les tangentes" + +#: src/gtkmm/app.cpp:676 src/gtkmm/canvasview.cpp:1408 +msgid "Show Radius Ducks" +msgstr "Afficher les poignées de rayon" + +#: src/gtkmm/app.cpp:677 src/gtkmm/canvasview.cpp:1409 +msgid "Show Width Ducks" +msgstr "Afficher les poignées de largeur" + +#: src/gtkmm/app.cpp:678 src/gtkmm/canvasview.cpp:1410 +msgid "Show Angle Ducks" +msgstr "Afficher les poignées d'angle" + +#: src/gtkmm/app.cpp:679 src/gtkmm/canvasview.cpp:1258 +msgid "Use Parametric Renderer" +msgstr "Rendu paramétrique" + +#: src/gtkmm/app.cpp:680 +msgid "Use Quality Level 1" +msgstr "Qualité niveau 1" + +#: src/gtkmm/app.cpp:681 +msgid "Use Quality Level 2" +msgstr "Qualité niveau 2" + +#: src/gtkmm/app.cpp:682 +msgid "Use Quality Level 3" +msgstr "Qualité niveau 3" + +#: src/gtkmm/app.cpp:683 +msgid "Use Quality Level 4" +msgstr "Qualité niveau 4" + +#: src/gtkmm/app.cpp:684 +msgid "Use Quality Level 5" +msgstr "Qualité niveau 5" + +#: src/gtkmm/app.cpp:685 +msgid "Use Quality Level 6" +msgstr "Qualité niveau 6" + +#: src/gtkmm/app.cpp:686 +msgid "Use Quality Level 7" +msgstr "Qualité niveau 7" + +#: src/gtkmm/app.cpp:687 +msgid "Use Quality Level 8" +msgstr "Qualité niveau 8" + +#: src/gtkmm/app.cpp:688 +msgid "Use Quality Level 9" +msgstr "Qualité niveau 9" + +#: src/gtkmm/app.cpp:689 +msgid "Use Quality Level 10" +msgstr "Qualité niveau 10" + +#: src/gtkmm/app.cpp:691 src/gtkmm/canvasview.cpp:1292 +#, c-format +msgid "Set Low-Res pixel size to %d" +msgstr "" + +#: src/gtkmm/app.cpp:692 src/gtkmm/preview.cpp:358 +msgid "Play" +msgstr "Jouer" + +#: src/gtkmm/app.cpp:694 src/gtkmm/canvasview.cpp:990 +#: src/gtkmm/preview.cpp:364 +msgid "Stop" +msgstr "Arrêter" + +#: src/gtkmm/app.cpp:695 +msgid "Toggle Grid Show" +msgstr "Basculer l'affichage de la grille" + +#: src/gtkmm/app.cpp:696 +msgid "Toggle Grid Snap" +msgstr "Basculer l'adhérence de la grille" + +#: src/gtkmm/app.cpp:697 +msgid "Toggle Guide Show" +msgstr "Basculer l'affichage des guides" + +#: src/gtkmm/app.cpp:698 +msgid "Toggle Low-Res" +msgstr "Basculer en/hors basse résolution" + +#: src/gtkmm/app.cpp:699 src/gtkmm/canvasview.cpp:1308 +msgid "Decrease Low-Res Pixel Size" +msgstr "" + +#: src/gtkmm/app.cpp:700 src/gtkmm/canvasview.cpp:1311 +msgid "Increase Low-Res Pixel Size" +msgstr "" + +#: src/gtkmm/app.cpp:701 +msgid "Toggle Onion Skin" +msgstr "Basculer l'onion skin" + +#: src/gtkmm/app.cpp:708 src/gtkmm/canvasview.cpp:1374 +msgid "Jump to Next Keyframe" +msgstr "Aller à l'image clé suivante" + +#: src/gtkmm/app.cpp:709 src/gtkmm/canvasview.cpp:1377 +msgid "Jump to Prev Keyframe" +msgstr "Aller à l'image clé précédente" + +#: src/gtkmm/app.cpp:710 src/gtkmm/canvasview.cpp:1358 +msgid "Next Frame" +msgstr "Image suivante" + +#: src/gtkmm/app.cpp:711 src/gtkmm/canvasview.cpp:1360 +msgid "Prev Frame" +msgstr "Image précédente" + +#: src/gtkmm/app.cpp:712 src/gtkmm/canvasview.cpp:1363 +msgid "Seek Forward" +msgstr "Avancer" + +#: src/gtkmm/app.cpp:713 src/gtkmm/canvasview.cpp:1365 +msgid "Seek Backward" +msgstr "Reculer" + +#: src/gtkmm/app.cpp:714 src/gtkmm/canvasview.cpp:1371 +msgid "Seek to Begin" +msgstr "Aller au début" + +#: src/gtkmm/app.cpp:715 src/gtkmm/canvasview.cpp:1368 +msgid "Seek to End" +msgstr "Aller à la fin" + +#: src/gtkmm/app.cpp:717 +msgid "Add group" +msgstr "Ajouter un groupe" + +#: src/gtkmm/app.cpp:719 src/gtkmm/iconcontroller.cpp:155 +#: src/synfigapp/actions/canvasadd.cpp:73 +msgid "New Canvas" +msgstr "Nouveau canevas" + +#: src/gtkmm/app.cpp:721 src/gtkmm/layeractionmanager.cpp:104 +#: src/gtkmm/layeractionmanager.cpp:494 +msgid "Increase Amount" +msgstr "Augmenter la visibilité" + +#: src/gtkmm/app.cpp:722 src/gtkmm/layeractionmanager.cpp:116 +#: src/gtkmm/layeractionmanager.cpp:511 +msgid "Decrease Amount" +msgstr "Diminuer la visibilité" + +#: src/gtkmm/app.cpp:1074 src/gtkmm/toolbox.cpp:359 +msgid "Synfig Studio" +msgstr "Synfig Studio" + +#: src/gtkmm/app.cpp:1087 +msgid "Failed to initialize synfig!" +msgstr "Échec de l'initialisation de Synfig" + +#: src/gtkmm/app.cpp:1096 +msgid "Init UI Manager..." +msgstr "Initialisation du gestionaire d'interface" + +#: src/gtkmm/app.cpp:1100 +msgid "Init Dock Manager..." +msgstr "Initialisation du gestionnaire d'onglet" + +#: src/gtkmm/app.cpp:1103 +msgid "Init State Manager..." +msgstr "Initialisation du gestionnaire d'état" + +#: src/gtkmm/app.cpp:1106 +msgid "Init Toolbox..." +msgstr "Initialisation de la boîte à outils" + +#: src/gtkmm/app.cpp:1109 +msgid "Init About Dialog..." +msgstr "Initialisation du dialogue \"à propos\"" + +#: src/gtkmm/app.cpp:1112 +msgid "Init Tool Options..." +msgstr "Initialisation des options des outils" + +#: src/gtkmm/app.cpp:1116 +msgid "Init History..." +msgstr "Initialisation de l'historique" + +#: src/gtkmm/app.cpp:1120 +msgid "Init Canvases..." +msgstr "Initialisation des canevas" + +#: src/gtkmm/app.cpp:1124 +msgid "Init Keyframes..." +msgstr "Initialisation des images clés" + +#: src/gtkmm/app.cpp:1128 +msgid "Init Layers..." +msgstr "Initialisation des calques" + +#: src/gtkmm/app.cpp:1132 +msgid "Init Params..." +msgstr "Initialisation des paramètres" + +#: src/gtkmm/app.cpp:1136 +msgid "Init MetaData..." +msgstr "Initialisation des métadonnées" + +#: src/gtkmm/app.cpp:1140 +msgid "Init Children..." +msgstr "Initialisation des éléments enfant " + +#: src/gtkmm/app.cpp:1144 +msgid "Init Info..." +msgstr "Initialisation du dialogue d'info" + +#: src/gtkmm/app.cpp:1148 +msgid "Init Navigator..." +msgstr "Initialisation du navigateur" + +#: src/gtkmm/app.cpp:1152 +msgid "Init Timetrack..." +msgstr "Initialisation de l'axe de temps" + +#: src/gtkmm/app.cpp:1156 +msgid "Init Curve Editor..." +msgstr "Initialisation de l'éditeur de courbes" + +#: src/gtkmm/app.cpp:1160 +msgid "Init Layer Groups..." +msgstr "Initialisation des groupes de calques" + +#: src/gtkmm/app.cpp:1165 +msgid "Init Color Dialog..." +msgstr "Initialisation du dialogue de couleur" + +#: src/gtkmm/app.cpp:1168 +msgid "Init Gradient Dialog..." +msgstr "Initialisation du dialogue de dégradé" + +#: src/gtkmm/app.cpp:1171 +msgid "Init DeviceTracker..." +msgstr "Initialisation du traqueur de périphériques" + +#: src/gtkmm/app.cpp:1174 +msgid "Init Tools..." +msgstr "Initialisation des outils" + +#: src/gtkmm/app.cpp:1181 +msgid "Init ModMirror..." +msgstr "Initialisation de ModMiroir" + +#: src/gtkmm/app.cpp:1200 +msgid "Init ModPalette..." +msgstr "Initialisation de ModPalette" + +#: src/gtkmm/app.cpp:1203 +msgid "Init Setup Dialog..." +msgstr "Initialisation du dialogue de configuration" + +#: src/gtkmm/app.cpp:1206 +msgid "Init Input Dialog..." +msgstr "Initialisation du dialogue d'entrée" + +#: src/gtkmm/app.cpp:1211 +msgid "Init auto recovery..." +msgstr "Initialisation de l'auto-restauration " + +#: src/gtkmm/app.cpp:1215 +msgid "Loading Settings..." +msgstr "Chargement de la configuration ..." + +#: src/gtkmm/app.cpp:1217 +msgid "Checking auto-recover..." +msgstr "Vérification de l'auto-restauration" + +#: src/gtkmm/app.cpp:1225 +msgid "Auto Recovery" +msgstr "Auto-restauration" + +#: src/gtkmm/app.cpp:1226 +msgid "" +"Synfig Studio seems to have crashed\n" +"before you could save all your files.\n" +"Would you like to re-open those files\n" +"and recover your unsaved changes?" +msgstr "" +"Il semblerait que Synfig se soit terminé\n" +"brutalement avant la sauvegarde de tous\n" +"vos fichiers.\n" +"Voulez-vous réouvrir ces fichiers et récupérer\n" +"vos modifications non enregistrées ?" + +#: src/gtkmm/app.cpp:1235 +msgid "Unable to fully recover from previous crash" +msgstr "Impossible de récupérer la session" + +#: src/gtkmm/app.cpp:1237 +msgid "Unable to recover from previous crash" +msgstr "Impossible de récupérer la session" + +#: src/gtkmm/app.cpp:1240 +msgid "" +"Synfig Studio has attempted to recover\n" +"from a previous crash. The files that it has\n" +"recovered are NOT YET SAVED. It would be a good\n" +"idea to review them and save them now." +msgstr "" +"Synfig Studio a essayé de récupérer la session d'avant\n" +"le dernier plantage. Les fichiers qui ont été récupérés ne\n" +"sont PAS ENCORE ENREGISTRÉS. Pensez à vérifier leur\n" +"état et à les enregistrer maintenant." + +#: src/gtkmm/app.cpp:1256 +msgid "Loading files..." +msgstr "Chargement des fichiers ..." + +#: src/gtkmm/app.cpp:1267 +msgid "Done." +msgstr "Fini." + +#: src/gtkmm/app.cpp:1274 src/gtkmm/app.cpp:1278 +msgid "" +"Unknown exception caught when constructing App.\n" +"This software may be unstable." +msgstr "" +"Une exception inconnue est survenue lors de l'initialisation de " +"l'application. Ce programme risque d'être instable." + +#: src/gtkmm/app.cpp:1682 +msgid "Quit Request" +msgstr "Demande d'arrêt" + +#: src/gtkmm/app.cpp:1685 +msgid "Cannot quit!" +msgstr "Impossible d'arrêter" + +#: src/gtkmm/app.cpp:1685 +msgid "" +"Tasks are currently running.\n" +"Please cancel the current tasks and try again" +msgstr "" +"Des tâches sont actuellement en cours.\n" +"Annulez les tâches courantes et réessayez." + +#: src/gtkmm/app.cpp:1753 +msgid "Quit Request sent" +msgstr "Demande d'arrêt envoyée" + +#: src/gtkmm/app.cpp:1970 +msgid "current" +msgstr "" + +#: src/gtkmm/app.cpp:1972 +msgid "and older" +msgstr "" + +#: src/gtkmm/app.cpp:1976 +msgid "File Format Version: " +msgstr "" + +#: src/gtkmm/app.cpp:2075 +msgid "Feature not available" +msgstr "Fonctionnalité non disponible." + +#: src/gtkmm/app.cpp:2076 +msgid "Sorry, this feature has not yet been implemented." +msgstr "Désolé, cette fonctionnalité n'a pas encore été implémentée." + +#: src/gtkmm/app.cpp:2161 +msgid "Documentation" +msgstr "" + +#: src/gtkmm/app.cpp:2162 +msgid "" +"Documentation for Synfig Studio is available on the website:\n" +"\n" +"http://www.synfig.org/Documentation" +msgstr "" + +#: src/gtkmm/app.cpp:2163 src/gtkmm/toolbox.cpp:298 +msgid "Help" +msgstr "Aide" + +#: src/gtkmm/app.cpp:2173 +msgid "No browser was found. Please load this website manually:" +msgstr "" + +#: src/gtkmm/app.cpp:2175 +msgid "No browser found" +msgstr "" + +#: src/gtkmm/app.cpp:2250 +#, c-format +msgid "Unable to open file \"%s\"" +msgstr "Impossible d'ouvrir le fichier \"%s\"" + +#: src/gtkmm/app.cpp:2258 +#, c-format +msgid "Unable to create instance for \"%s\"" +msgstr "Impossible de créer une instance pour \"%s\"" + +#: src/gtkmm/app.cpp:2264 src/gtkmm/iconcontroller.cpp:184 +#: src/gtkmm/instance.cpp:560 +msgid "CVS Update" +msgstr "Mise à jour CVS (update)" + +#: src/gtkmm/app.cpp:2264 +msgid "" +"There appears to be a newer version of this file available on the CVS " +"repository.\n" +"Would you like to update now? (It would probably be a good idea)" +msgstr "" +"Il semble qu'une version plus récente de ce fichier soit disponible dans le " +"dépôt CVS.\n" +"Voulez-vous mettre à jour maintenant ? (ce serait probablement une bonne " +"idée)" + +#: src/gtkmm/app.cpp:2270 src/gtkmm/app.cpp:2275 src/gtkmm/instance.cpp:482 +#: src/gtkmm/instance.cpp:498 src/gtkmm/instance.cpp:510 +#: src/gtkmm/instance.cpp:521 src/gtkmm/instance.cpp:535 +#: src/gtkmm/instance.cpp:546 src/gtkmm/instance.cpp:576 +#: src/gtkmm/instance.cpp:587 src/gtkmm/instance.cpp:603 +#: src/gtkmm/instance.cpp:612 src/gtkmm/layerparamtreestore.cpp:246 +#: src/gtkmm/widget_canvaschooser.cpp:145 +#: src/gtkmm/widget_canvaschooser.cpp:163 +msgid "Error" +msgstr "Erreur" + +#: src/gtkmm/app.cpp:2275 +msgid "Uncaught error on file open (BUG)" +msgstr "Erreur inconnue à l'ouverture du fichier" + +#: src/gtkmm/app.cpp:2327 +msgid "Unable to open file" +msgstr "Impossible d'ouvrir le fichier" + +#: src/gtkmm/canvasoptions.cpp:61 +msgid "Canvas Options" +msgstr "Options du canevas" + +#: src/gtkmm/canvasoptions.cpp:63 +msgid "_Snap to grid" +msgstr "Faire adhérer à la grille" + +#: src/gtkmm/canvasoptions.cpp:64 +msgid "S_how grid" +msgstr "Affic_her la grille" + +#: src/gtkmm/canvasoptions.cpp:65 +msgid "Snap to _frame" +msgstr "Faire adhérer aux images " + +#: src/gtkmm/canvasoptions.cpp:80 +msgid "Grid" +msgstr "Grille" + +#: src/gtkmm/canvasoptions.cpp:90 +msgid "_Grid size" +msgstr "Taille de la _grille" + +#: src/gtkmm/canvasoptions.cpp:104 src/gtkmm/iconcontroller.cpp:139 +#: src/gtkmm/keyframetree.cpp:62 src/gtkmm/renddesc.cpp:96 +#: src/synfigapp/actions/activepointadd.cpp:85 +#: src/synfigapp/actions/activepointsetoff.cpp:92 +#: src/synfigapp/actions/activepointseton.cpp:92 +#: src/synfigapp/actions/activepointsetsmart.cpp:92 +#: src/synfigapp/actions/blinepointtangentmerge.cpp:91 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:91 +#: src/synfigapp/actions/colorset.cpp:83 +#: src/synfigapp/actions/gradientset.cpp:83 +#: src/synfigapp/actions/keyframeduplicate.cpp:84 +#: src/synfigapp/actions/layerparamdisconnect.cpp:83 +#: src/synfigapp/actions/valuedescconvert.cpp:102 +#: src/synfigapp/actions/valuedescdisconnect.cpp:94 +#: src/synfigapp/actions/valuedescset.cpp:100 +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:79 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:81 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:80 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:83 +#: src/synfigapp/actions/waypointadd.cpp:86 +#: src/synfigapp/actions/waypointsetsmart.cpp:100 +msgid "Time" +msgstr "Temps" + +#: src/gtkmm/canvasoptions.cpp:113 src/gtkmm/dialog_setup.cpp:174 +msgid "Units" +msgstr "Unités" + +#: src/gtkmm/canvasoptions.cpp:114 +msgid "Not yet implemented!" +msgstr "Pas encore implémenté !" + +#: src/gtkmm/canvasoptions.cpp:169 src/gtkmm/dialog_keyframe.cpp:89 +msgid "Not yet implemented" +msgstr "Pas encore implémenté" + +#: src/gtkmm/canvasproperties.cpp:64 +msgid "Canvas Properties" +msgstr "Propriétés du canevas" + +#: src/gtkmm/canvasproperties.cpp:77 +msgid "Canvas Info" +msgstr "Infos sur le canevas" + +#: src/gtkmm/canvasproperties.cpp:79 +msgid "Canvas Info" +msgstr "Infos sur le canevas" + +#: src/gtkmm/canvasproperties.cpp:95 +msgid "_ID" +msgstr "_Identifiant" + +#: src/gtkmm/canvasproperties.cpp:101 +msgid "_Name" +msgstr "_Nom" + +#: src/gtkmm/canvasproperties.cpp:104 +msgid "_Description" +msgstr "_Description" + +#: src/gtkmm/canvasproperties.cpp:145 src/gtkmm/dock_metadata.cpp:69 +msgid "Key" +msgstr "Clé" + +#: src/gtkmm/canvasproperties.cpp:146 src/gtkmm/dock_metadata.cpp:70 +msgid "Data" +msgstr "Données" + +#: src/gtkmm/canvasproperties.cpp:181 src/gtkmm/dock_metadata.cpp:134 +msgid "New MetaData Entry" +msgstr "Nouvelle métadonnée" + +#: src/gtkmm/canvasproperties.cpp:181 src/gtkmm/dock_metadata.cpp:134 +msgid "Please enter the name of the key" +msgstr "Saisissez le nom de la clé " + +#: src/gtkmm/canvastreestore.cpp:204 src/gtkmm/canvastreestore.cpp:242 +#: src/gtkmm/childrentreestore.cpp:204 src/gtkmm/iconcontroller.cpp:146 +#: src/synfigapp/action.cpp:456 +msgid "Canvas" +msgstr "Canevas" + +#: src/gtkmm/canvastreestore.cpp:241 src/gtkmm/childrentreestore.cpp:201 +#: src/gtkmm/instance.cpp:416 +msgid "[Unnamed]" +msgstr "[Sans nom]" + +#: src/gtkmm/canvasview.cpp:237 src/gtkmm/workarea.cpp:2342 +#: src/gtkmm/workarea.cpp:2437 +msgid "Idle" +msgstr "En attente" + +#: src/gtkmm/canvasview.cpp:327 +msgid "ERROR" +msgstr "ERREUR" + +#: src/gtkmm/canvasview.cpp:376 +msgid "Feature not yet implemented" +msgstr "Fonctionnalité pas encore implémentée" + +#: src/gtkmm/canvasview.cpp:922 +msgid "Moves the time window" +msgstr "Déplacer l'axe temporel" + +#: src/gtkmm/canvasview.cpp:923 +msgid "Changes the current time" +msgstr "Changer l'instant courant" + +#: src/gtkmm/canvasview.cpp:932 +msgid "Animate" +msgstr "Animer" + +#: src/gtkmm/canvasview.cpp:936 src/gtkmm/canvasview.cpp:2509 +#: src/gtkmm/iconcontroller.cpp:178 +msgid "All Keyframes Locked" +msgstr "Images clés toutes verrouillées" + +#: src/gtkmm/canvasview.cpp:991 +msgid "Refresh" +msgstr "Rafraîchir" + +#: src/gtkmm/canvasview.cpp:1217 +msgid "Close Window" +msgstr "Fermer la fenêtre" + +#: src/gtkmm/canvasview.cpp:1223 +msgid "Quit" +msgstr "Quitter" + +#: src/gtkmm/canvasview.cpp:1267 +msgid " (best)" +msgstr "" + +#: src/gtkmm/canvasview.cpp:1268 +msgid " (fastest)" +msgstr "" + +#: src/gtkmm/canvasview.cpp:1270 +#, c-format +msgid "Set Quality to %d" +msgstr "Qualité à %d" + +#: src/gtkmm/canvasview.cpp:1320 +msgid "Flipbook Dialog" +msgstr "Revoir l'aperçu" + +#: src/gtkmm/canvasview.cpp:1327 src/gtkmm/iconcontroller.cpp:160 +msgid "Show Grid" +msgstr "Afficher la grille" + +#: src/gtkmm/canvasview.cpp:1331 +msgid "Snap to Grid" +msgstr "Faire adhérer à la grille" + +#: src/gtkmm/canvasview.cpp:1335 +msgid "Show Guides" +msgstr "Afficher les guides" + +#: src/gtkmm/canvasview.cpp:1339 +msgid "Use Low-Res" +msgstr "Utiliser la basse résolution" + +#: src/gtkmm/canvasview.cpp:1343 +msgid "Show Onion Skin" +msgstr "Afficher l'onion skin" + +#: src/gtkmm/canvasview.cpp:1386 +msgid "Zoom In on Timeline" +msgstr "Zoomer sur l'axe de temps" + +#: src/gtkmm/canvasview.cpp:1389 +msgid "Zoom Out on Timeline" +msgstr "Dézoomer sur l'axe de temps" + +#: src/gtkmm/canvasview.cpp:1785 src/gtkmm/canvasview.cpp:2246 +msgid "Select All Children" +msgstr "Sélectionner tous les enfants" + +#: src/gtkmm/canvasview.cpp:2059 +msgid "-MODIFIED" +msgstr "-MODIFIÉ" + +#: src/gtkmm/canvasview.cpp:2061 +msgid "-UPDATED" +msgstr "-MIS À JOUR" + +#: src/gtkmm/canvasview.cpp:2066 +msgid " (Root)" +msgstr "(Racine)" + +#: src/gtkmm/canvasview.cpp:2488 +msgid "In Animate Editing Mode" +msgstr "En mode Édition d'animation" + +#: src/gtkmm/canvasview.cpp:2498 +msgid "Not in Animate Editing Mode" +msgstr "Hors mode Édition d'animation" + +#: src/gtkmm/canvasview.cpp:2519 src/gtkmm/iconcontroller.cpp:180 +msgid "Future Keyframes Locked" +msgstr "Images clés suivantes verrouillées" + +#: src/gtkmm/canvasview.cpp:2529 src/gtkmm/iconcontroller.cpp:179 +msgid "Past Keyframes Locked" +msgstr "Images clés précédentes verrouillées" + +#: src/gtkmm/canvasview.cpp:2539 src/gtkmm/iconcontroller.cpp:181 +msgid "No Keyframes Locked" +msgstr "Aucune image clé verrouillée" + +#: src/gtkmm/canvasview.cpp:3084 +msgid "Change Waypoint Group" +msgstr "Modifier le groupe de point de passage" + +#: src/gtkmm/canvasview.cpp:3115 +msgid "Duplicate Waypoints" +msgstr "Dupliquer les points de passage" + +#: src/gtkmm/canvasview.cpp:3131 +msgid "Remove Waypoints" +msgstr "Supprimer les points de passage" + +#: src/gtkmm/canvasview.cpp:3176 src/gtkmm/canvasview.cpp:3179 +#: src/gtkmm/canvasview.cpp:3182 src/gtkmm/widget_defaults.cpp:287 +msgid "_TCB" +msgstr "_TCB" + +#: src/gtkmm/canvasview.cpp:3186 src/gtkmm/canvasview.cpp:3189 +#: src/gtkmm/canvasview.cpp:3192 src/gtkmm/widget_defaults.cpp:290 +msgid "_Linear" +msgstr "_Linéaire" + +#: src/gtkmm/canvasview.cpp:3196 +msgid "_Ease In" +msgstr "" + +#: src/gtkmm/canvasview.cpp:3199 +msgid "_Ease Out" +msgstr "" + +#: src/gtkmm/canvasview.cpp:3202 src/gtkmm/widget_defaults.cpp:289 +msgid "_Ease In/Out" +msgstr "Ad_oucir" + +#: src/gtkmm/canvasview.cpp:3206 src/gtkmm/canvasview.cpp:3209 +#: src/gtkmm/canvasview.cpp:3212 src/gtkmm/widget_defaults.cpp:288 +msgid "_Constant" +msgstr "_Constant" + +#: src/gtkmm/canvasview.cpp:3217 +msgid "_Jump To" +msgstr "_Aller à" + +#: src/gtkmm/canvasview.cpp:3220 +msgid "_Duplicate" +msgstr "_Dupliquer" + +#: src/gtkmm/canvasview.cpp:3223 +msgid "_Remove" +msgstr "Supp_rimer" + +#: src/gtkmm/canvasview.cpp:3223 +#, c-format +msgid "_Remove %d Waypoints" +msgstr "Supp_rimer %d points de passage" + +#: src/gtkmm/canvasview.cpp:3234 +msgid "_Both" +msgstr "" + +#: src/gtkmm/canvasview.cpp:3235 +msgid "_In" +msgstr "_Entrée" + +#: src/gtkmm/canvasview.cpp:3236 +msgid "_Out" +msgstr "_Sortie" + +#: src/gtkmm/canvasview.cpp:3467 src/synfigapp/canvasinterface.cpp:536 +msgid "Import Image" +msgstr "Importer une image" + +#: src/gtkmm/cellrenderer_value.cpp:221 +msgid "Paragraph" +msgstr "Paragraphe" + +#: src/gtkmm/cellrenderer_value.cpp:225 +msgid "Enter Paragraph Text Here:" +msgstr "Saisissez votre texte :" + +#: src/gtkmm/cellrenderer_value.cpp:411 +msgid "" +msgstr "" + +#: src/gtkmm/cellrenderer_value.cpp:441 src/gtkmm/iconcontroller.cpp:143 +msgid "Segment" +msgstr "Segment" + +#: src/gtkmm/cellrenderer_value.cpp:448 +msgid "List" +msgstr "Liste" + +#: src/gtkmm/cellrenderer_value.cpp:451 src/gtkmm/iconcontroller.cpp:144 +msgid "BLine Point" +msgstr "Point de BLine" + +#: src/gtkmm/cellrenderer_value.cpp:454 +msgid "UNKNOWN" +msgstr "INCONNU" + +#: src/gtkmm/childrentree.cpp:93 src/gtkmm/dock_canvases.cpp:108 +#: src/synfigapp/actions/canvasadd.cpp:78 +msgid "ID" +msgstr "Identifiant" + +#: src/gtkmm/childrentree.cpp:113 src/gtkmm/layertree.cpp:354 +#: src/synfigapp/actions/valuedescconvert.cpp:97 +msgid "Type" +msgstr "Type" + +#: src/gtkmm/childrentree.cpp:124 src/synfigapp/actions/layerparamset.cpp:80 +#: src/synfigapp/actions/valuedescset.cpp:96 +#: src/synfigapp/actions/valuenodeconstset.cpp:77 +msgid "ValueBase" +msgstr "Valeur de base" + +#: src/gtkmm/childrentree.cpp:140 src/gtkmm/dock_timetrack.cpp:87 +#: src/gtkmm/iconcontroller.cpp:176 src/gtkmm/layertree.cpp:367 +msgid "Time Track" +msgstr "Axe de temps" + +#: src/gtkmm/childrentreestore.cpp:78 +msgid "Canvases" +msgstr "Canevas" + +#: src/gtkmm/childrentreestore.cpp:83 +msgid "ValueBase Nodes" +msgstr "Nœuds de valeurs de base" + +#: src/gtkmm/dialog_color.cpp:68 +msgid "Colors" +msgstr "Couleurs" + +#: src/gtkmm/dialog_gradient.cpp:65 +msgid "Gradient Editor" +msgstr "Éditeur de dégradés" + +#: src/gtkmm/dialog_gradient.cpp:75 +msgid "Grab" +msgstr "" + +#: src/gtkmm/dialog_keyframe.cpp:59 +msgid "Keyframe Dialog" +msgstr "Dialogue d'image clé" + +#: src/gtkmm/dialog_preview.cpp:62 +msgid "Preview Window" +msgstr "Fenêtre d'aperçu" + +#: src/gtkmm/dialog_preview.cpp:88 +msgid "Preview Options" +msgstr "Options d'aperçu" + +#: src/gtkmm/dialog_preview.cpp:91 +msgid "_Begin Time" +msgstr "Heure de _début" + +#: src/gtkmm/dialog_preview.cpp:92 src/gtkmm/renddesc.cpp:556 +msgid "_End Time" +msgstr "Heure de _fin" + +#: src/gtkmm/dialog_preview.cpp:106 +msgid "General Settings" +msgstr "Configuration générale" + +#: src/gtkmm/dialog_preview.cpp:108 +msgid "General Settings" +msgstr "Configuration générale" + +#: src/gtkmm/dialog_preview.cpp:120 +msgid "_Zoom" +msgstr "_Zoom" + +#: src/gtkmm/dialog_preview.cpp:129 src/gtkmm/renddesc.cpp:546 +msgid "_Frames per second" +msgstr "Images par seconde" + +#: src/gtkmm/dialog_preview.cpp:138 src/gtkmm/renddesc.cpp:532 +msgid "Time Settings" +msgstr "Paramètres temporels" + +#: src/gtkmm/dialog_preview.cpp:140 src/gtkmm/renddesc.cpp:534 +msgid "Time Settings" +msgstr "Paramètres temporels" + +#: src/gtkmm/dialog_setup.cpp:73 +msgid "Synfig Studio Setup" +msgstr "Configuration de Synfig Studio" + +#: src/gtkmm/dialog_setup.cpp:79 +msgid "Visually Linear Color Selection" +msgstr "Correction de couleur linéaire" + +#: src/gtkmm/dialog_setup.cpp:81 +msgid "Use Only a Single Thread" +msgstr "Utiliser un seul processus" + +#: src/gtkmm/dialog_setup.cpp:83 +msgid "Restrict Real-Valued Ducks to Top Right Quadrant" +msgstr "" + +#: src/gtkmm/dialog_setup.cpp:110 +msgid "Gamma" +msgstr "Gamma" + +#: src/gtkmm/dialog_setup.cpp:116 src/gtkmm/widget_coloredit.cpp:311 +msgid "Red" +msgstr "Rouge" + +#: src/gtkmm/dialog_setup.cpp:121 src/gtkmm/widget_coloredit.cpp:313 +msgid "Green" +msgstr "Vert" + +#: src/gtkmm/dialog_setup.cpp:126 src/gtkmm/widget_coloredit.cpp:315 +msgid "Blue" +msgstr "Bleu" + +#: src/gtkmm/dialog_setup.cpp:130 +msgid "Black Level" +msgstr "Niveau de noir" + +#: src/gtkmm/dialog_setup.cpp:141 +msgid "Misc." +msgstr "Divers" + +#: src/gtkmm/dialog_setup.cpp:147 +msgid "Timestamp" +msgstr "Horodatage" + +#: src/gtkmm/dialog_setup.cpp:175 +msgid "Pixels" +msgstr "Pixels" + +#: src/gtkmm/dialog_setup.cpp:176 +msgid "Points" +msgstr "Points" + +#: src/gtkmm/dialog_setup.cpp:177 +msgid "Inches" +msgstr "Pouces" + +#: src/gtkmm/dialog_setup.cpp:178 +msgid "Meters" +msgstr "Mètres" + +#: src/gtkmm/dialog_setup.cpp:179 +msgid "Centimeters" +msgstr "Centimètres" + +#: src/gtkmm/dialog_setup.cpp:180 +msgid "Millimeters" +msgstr "Millimètres" + +#: src/gtkmm/dialog_setup.cpp:185 +msgid "Unit System" +msgstr "Système d'unités" + +#: src/gtkmm/dialog_setup.cpp:191 +msgid "Recent Files" +msgstr "Fichiers récents" + +#: src/gtkmm/dialog_setup.cpp:203 +msgid "Auto Backup Interval (0 to disable)" +msgstr "" + +#: src/gtkmm/dialog_setup.cpp:210 +msgid "Browser Command" +msgstr "" + +#: src/gtkmm/dialog_soundselect.cpp:56 +msgid "Sound Select" +msgstr "Sélection de son" + +#: src/gtkmm/dialog_soundselect.cpp:57 +msgid "Ok" +msgstr "Valider" + +#: src/gtkmm/dialog_tooloptions.cpp:56 src/gtkmm/dialog_tooloptions.cpp:78 +msgid "Tool Options" +msgstr "Options des outils" + +#: src/gtkmm/dialog_tooloptions.cpp:57 +msgid "This tool has no options" +msgstr "Cet outil n'a pas d'options" + +#: src/gtkmm/dialog_waypoint.cpp:63 +msgid "Waypoint Editor" +msgstr "Editeur de point de passage" + +#: src/gtkmm/dockable.cpp:121 +msgid "X" +msgstr "X" + +#: src/gtkmm/dock_canvases.cpp:55 +msgid "Canvas Browser" +msgstr "Explorateur de canevas" + +#: src/gtkmm/dock_children.cpp:67 src/gtkmm/iconcontroller.cpp:171 +msgid "Children" +msgstr "Enfants" + +#: src/gtkmm/dock_curves.cpp:70 src/gtkmm/iconcontroller.cpp:172 +msgid "Curves" +msgstr "Courbes" + +#: src/gtkmm/dockdialog.cpp:115 +msgid "Dock Panel" +msgstr "Dialogue d'onglets" + +#: src/gtkmm/dockdialog.cpp:563 +msgid "Empty Dock Panel" +msgstr "Dialogue d'onglets vide" + +#: src/gtkmm/dock_history.cpp:69 src/gtkmm/dock_history.cpp:125 +msgid "History" +msgstr "Historique" + +#: src/gtkmm/dock_history.cpp:78 src/gtkmm/iconcontroller.cpp:168 +msgid "Clear Undo Stack" +msgstr "Vider l'historique d'annulation" + +#: src/gtkmm/dock_history.cpp:79 +msgid "Clear the undo stack" +msgstr "Vider l'historique d'annulation" + +#: src/gtkmm/dock_history.cpp:89 src/gtkmm/iconcontroller.cpp:169 +msgid "Clear Redo Stack" +msgstr "Vider l'historique de rétablissement" + +#: src/gtkmm/dock_history.cpp:90 +msgid "Clear the redo stack" +msgstr "Vider l'historique de rétablissement" + +#: src/gtkmm/dock_history.cpp:100 +msgid "Clear Undo and Redo Stacks" +msgstr "Vider l'historique d'annulation et de rétablissement" + +#: src/gtkmm/dock_history.cpp:101 +msgid "Clear the undo and redo stacks" +msgstr "Vider l'historique d'annulation et de rétablissement" + +#: src/gtkmm/dock_history.cpp:111 src/gtkmm/toolbox.cpp:294 +msgid "Undo" +msgstr "Annuler" + +#: src/gtkmm/dock_history.cpp:112 +msgid "Undo the previous action" +msgstr "Annuler la dernière action" + +#: src/gtkmm/dock_history.cpp:119 src/gtkmm/toolbox.cpp:295 +msgid "Redo" +msgstr "Rétablir" + +#: src/gtkmm/dock_history.cpp:120 +msgid "Redo the previously undone action" +msgstr "Rétablir la dernière action annulée" + +#: src/gtkmm/dock_history.cpp:211 src/gtkmm/keyframetree.cpp:92 +msgid "Jump" +msgstr "Aller à" + +#: src/gtkmm/dock_history.cpp:216 src/gtkmm/keyframetree.cpp:96 +msgid "(JMP)" +msgstr "" + +#: src/gtkmm/dock_history.cpp:228 +msgid "Action" +msgstr "Action" + +#: src/gtkmm/dock_history.cpp:275 src/gtkmm/dock_history.cpp:283 +#: src/gtkmm/dock_history.cpp:291 +msgid "Clear History" +msgstr "Effacer l'historique" + +#: src/gtkmm/dock_history.cpp:276 +msgid "" +"You will not be able to undo any changes that you have made!\n" +"Are you sure you want to clear the undo stack?" +msgstr "" +"Vous ne pourrez plus défaire vos changements !\n" +"Êtes-vous sûr de vouloir effacer l'historique d'annulation ?" + +#: src/gtkmm/dock_history.cpp:284 +msgid "" +"You will not be able to redo any changes that you have made!\n" +"Are you sure you want to clear the redo stack?" +msgstr "" +"Vous ne pourrez plus rétablir vos changements !\n" +"Êtes-vous sûr de vouloir effacer l'historique de rétablissement" + +#: src/gtkmm/dock_history.cpp:292 +msgid "" +"You will not be able to undo or redo any changes that you have made!\n" +"Are you sure you want to clear the undo and redo stacks?" +msgstr "" +"Vous ne pourrez plus défaire ou refaire vos changements !\n" +"Êtes-vous sûr de vouloir effacer l'historique d'annulation et de " +"rétablissement ?" + +#: src/gtkmm/dock_info.cpp:96 src/gtkmm/instance.cpp:551 +msgid "Info" +msgstr "Info" + +#: src/gtkmm/dock_info.cpp:103 +msgid "X: " +msgstr "X :" + +#: src/gtkmm/dock_info.cpp:104 +msgid "Y: " +msgstr "Y :" + +#: src/gtkmm/dock_info.cpp:114 +msgid "R: " +msgstr "R :" + +#: src/gtkmm/dock_info.cpp:115 +msgid "G: " +msgstr "V :" + +#: src/gtkmm/dock_info.cpp:116 +msgid "B: " +msgstr "B :" + +#: src/gtkmm/dock_info.cpp:117 +msgid "A: " +msgstr "A :" + +#: src/gtkmm/dock_keyframes.cpp:66 src/gtkmm/iconcontroller.cpp:173 +msgid "Keyframes" +msgstr "Images clés" + +#: src/gtkmm/dock_layergroups.cpp:68 +msgid "Groups" +msgstr "Groupes" + +#: src/gtkmm/dock_layergroups.cpp:74 +msgid "Group Ops" +msgstr "Opérations de groupe" + +#: src/gtkmm/dock_layergroups.cpp:76 src/gtkmm/groupactionmanager.cpp:175 +#: src/gtkmm/groupactionmanager.cpp:176 +msgid "Add a New Group" +msgstr "Ajouter un nouveau groupe" + +#: src/gtkmm/dock_layers.cpp:74 +msgid "Layers" +msgstr "Calques" + +#: src/gtkmm/dock_layers.cpp:146 +msgid "Layer Ops" +msgstr "Opérations de calque" + +#: src/gtkmm/dock_metadata.cpp:64 +msgid "Canvas MetaData" +msgstr "Métadonnées du canevas" + +#: src/gtkmm/dock_metadata.cpp:84 +msgid "Add new MetaData entry" +msgstr "Ajouter une nouvelle métadonnée" + +#: src/gtkmm/dock_metadata.cpp:94 +msgid "Remove selected MetaData entry" +msgstr "Supprimer la métadonnée sélectionnée" + +#: src/gtkmm/dock_navigator.cpp:496 src/gtkmm/iconcontroller.cpp:175 +msgid "Navigator" +msgstr "Navigateur" + +#: src/gtkmm/dock_params.cpp:65 +msgid "Params" +msgstr "Paramètres" + +#: src/gtkmm/dock_timetrack.cpp:83 src/gtkmm/layergrouptree.cpp:75 +#: src/gtkmm/layertree.cpp:221 src/gtkmm/layertree.cpp:300 +#: src/synfigapp/actions/valuedescexport.cpp:92 +#: src/synfigapp/actions/valuenodeadd.cpp:77 +#: src/synfigapp/actions/valuenoderename.cpp:86 +msgid "Name" +msgstr "Nom" + +#: src/gtkmm/dock_timetrack.cpp:404 +msgid "Timetrack" +msgstr "Axe de temps" + +#: src/gtkmm/groupactionmanager.cpp:269 +msgid "UnnamedGroup" +msgstr "Groupe sans nom" + +#: src/gtkmm/iconcontroller.cpp:136 +msgid "Bool" +msgstr "Booléen " + +#: src/gtkmm/iconcontroller.cpp:137 +msgid "Integer" +msgstr "Entier" + +#: src/gtkmm/iconcontroller.cpp:138 +msgid "Angle" +msgstr "Angle" + +#: src/gtkmm/iconcontroller.cpp:140 +msgid "Real" +msgstr "Réel" + +#: src/gtkmm/iconcontroller.cpp:141 +msgid "Vector" +msgstr "Vecteur" + +#: src/gtkmm/iconcontroller.cpp:142 +msgid "Color" +msgstr "Couleur" + +#: src/gtkmm/iconcontroller.cpp:145 src/gtkmm/iconcontroller.cpp:147 +#: src/gtkmm/iconcontroller.cpp:153 src/gtkmm/iconcontroller.cpp:154 +msgid "Rename" +msgstr "Renommer" + +#: src/gtkmm/iconcontroller.cpp:148 src/gtkmm/state_bline.cpp:363 +msgid "Gradient" +msgstr "Dégradé" + +#: src/gtkmm/iconcontroller.cpp:150 +msgid "Swap Colors" +msgstr "Échanger les couleurs" + +#: src/gtkmm/iconcontroller.cpp:151 +#: src/synfigapp/actions/layerparamconnect.cpp:80 +#: src/synfigapp/actions/valuenodedynamiclistloop.cpp:72 +#: src/synfigapp/actions/valuenodedynamiclistunloop.cpp:72 +#: src/synfigapp/actions/valuenoderemove.cpp:80 +msgid "ValueNode" +msgstr "Nœud de valeur" + +#: src/gtkmm/iconcontroller.cpp:152 +msgid "About" +msgstr "À propos" + +#: src/gtkmm/iconcontroller.cpp:156 src/gtkmm/toolbox.cpp:293 +msgid "Save All" +msgstr "Tout enregistrer" + +#: src/gtkmm/iconcontroller.cpp:157 src/gtkmm/layergrouptreestore.cpp:920 +#: src/gtkmm/layertreestore.cpp:930 +#: src/synfigapp/actions/groupaddlayers.cpp:72 +#: src/synfigapp/actions/groupremovelayers.cpp:73 +#: src/synfigapp/actions/layeractivate.cpp:86 +#: src/synfigapp/actions/layerduplicate.cpp:81 +#: src/synfigapp/actions/layerencapsulate.cpp:81 +#: src/synfigapp/actions/layerlower.cpp:80 +#: src/synfigapp/actions/layermove.cpp:85 +#: src/synfigapp/actions/layerparamconnect.cpp:72 +#: src/synfigapp/actions/layerparamdisconnect.cpp:75 +#: src/synfigapp/actions/layerparamset.cpp:72 +#: src/synfigapp/actions/layerraise.cpp:80 +#: src/synfigapp/actions/layerremove.cpp:79 +#: src/synfigapp/actions/layersetdesc.cpp:85 +msgid "Layer" +msgstr "Calque" + +#: src/gtkmm/iconcontroller.cpp:158 +msgid "Paste Canvas" +msgstr "Coller le canevas" + +#: src/gtkmm/iconcontroller.cpp:161 +msgid "Hide Grid" +msgstr "Cacher la grille" + +#: src/gtkmm/iconcontroller.cpp:162 +msgid "Enable Grid Snap" +msgstr "Activer l'adhérence de la grille" + +#: src/gtkmm/iconcontroller.cpp:163 +msgid "Disable Grid Snap" +msgstr "Désactiver l'adhérence de la grille" + +#: src/gtkmm/iconcontroller.cpp:164 +msgid "Duplicate" +msgstr "Dupliquer" + +#: src/gtkmm/iconcontroller.cpp:165 +#: src/synfigapp/actions/layerencapsulate.cpp:52 +msgid "Encapsulate" +msgstr "Encapsuler" + +#: src/gtkmm/iconcontroller.cpp:166 src/gtkmm/layeractionmanager.cpp:134 +msgid "Select All Child Layers" +msgstr "Sélectionner tous les calques enfants" + +#: src/gtkmm/iconcontroller.cpp:174 +msgid "MetaData" +msgstr "Métadonnée" + +#: src/gtkmm/iconcontroller.cpp:183 +msgid "CVS Add" +msgstr "Ajout pour CVS (add)" + +#: src/gtkmm/iconcontroller.cpp:185 src/gtkmm/instance.cpp:491 +#: src/gtkmm/instance.cpp:502 +msgid "CVS Commit" +msgstr "Archivage CVS (commit)" + +#: src/gtkmm/iconcontroller.cpp:186 src/gtkmm/instance.cpp:593 +msgid "CVS Revert" +msgstr "Rétablissement CVS (revert)" + +#: src/gtkmm/iconcontroller.cpp:189 +msgid "Normal Tool" +msgstr "Outil normal" + +#: src/gtkmm/iconcontroller.cpp:190 src/gtkmm/state_polygon.cpp:273 +msgid "Polygon Tool" +msgstr "Outil polygone" + +#: src/gtkmm/iconcontroller.cpp:191 src/gtkmm/state_bline.cpp:421 +msgid "BLine Tool" +msgstr "Outil BLine" + +#: src/gtkmm/iconcontroller.cpp:192 +msgid "Eyedrop Tool" +msgstr "Outil pipette" + +#: src/gtkmm/iconcontroller.cpp:193 +msgid "Fill Tool" +msgstr "Outil remplissage" + +#: src/gtkmm/iconcontroller.cpp:194 src/gtkmm/state_draw.cpp:519 +msgid "Draw Tool" +msgstr "Outil calligraphie" + +#: src/gtkmm/iconcontroller.cpp:195 src/gtkmm/state_sketch.cpp:401 +msgid "Sketch Tool" +msgstr "Outil dessin" + +#: src/gtkmm/iconcontroller.cpp:196 src/gtkmm/state_circle.cpp:351 +msgid "Circle Tool" +msgstr "Outil cercle" + +#: src/gtkmm/iconcontroller.cpp:197 src/gtkmm/state_rectangle.cpp:305 +msgid "Rectangle Tool" +msgstr "Outil rectangle" + +#: src/gtkmm/iconcontroller.cpp:198 +msgid "SmoothMove Tool" +msgstr "Outil déplacement lissé" + +#: src/gtkmm/iconcontroller.cpp:199 src/gtkmm/state_scale.cpp:192 +msgid "Scale Tool" +msgstr "Outil dimension" + +#: src/gtkmm/iconcontroller.cpp:200 src/gtkmm/state_width.cpp:307 +msgid "Width Tool" +msgstr "Outil épaisseur" + +#: src/gtkmm/iconcontroller.cpp:201 src/gtkmm/state_rotate.cpp:207 +msgid "Rotate Tool" +msgstr "Outil rotation" + +#: src/gtkmm/iconcontroller.cpp:202 src/gtkmm/state_zoom.cpp:199 +msgid "Zoom Tool" +msgstr "Outil zoom" + +#: src/gtkmm/iconcontroller.cpp:203 +msgid "Info Tool" +msgstr "Outil information" + +#: src/gtkmm/iconcontroller.cpp:204 src/gtkmm/mod_mirror/state_mirror.cpp:185 +#: src/gtkmm/mod_mirror/state_mirror.cpp:213 +msgid "Mirror Tool" +msgstr "Outil miroir" + +#: src/gtkmm/instance.cpp:281 +msgid "Choose a Filename to Save As" +msgstr "Choisissez un nom de fichier pour enregistrer sous" + +#: src/gtkmm/instance.cpp:299 +msgid "Unknown extension" +msgstr "Extension inconnue" + +#: src/gtkmm/instance.cpp:300 +msgid "" +"You have given the file name an extension\n" +"which I do not recognize. Are you sure this is what you want?" +msgstr "" +"Vous avez nommé votre fichier avec une\n" +"extention qui n'est pas reconnue.\n" +" Êtes-vous sûr de vouloir continuer ?" + +#: src/gtkmm/instance.cpp:482 +msgid "You must first add this composition to the repository" +msgstr "Vous devez d'abord ajouter (add) cette composition au dépôt " + +#: src/gtkmm/instance.cpp:491 src/gtkmm/instance.cpp:560 +msgid "This will save any changes you have made. Are you sure?" +msgstr "Ceci enregistera toutes vos modifications. Êtes-vous sûr ?" + +#: src/gtkmm/instance.cpp:498 +msgid "" +"The local copy of the file hasn't been changed since the last update.\n" +"Nothing to commit!" +msgstr "" +"La copie locale du fichier n'a pas changé depuis la dernière mise à jour.\n" +"Rien à archiver !" + +#: src/gtkmm/instance.cpp:502 +msgid "Enter a log message describing the changes you have made" +msgstr "Saisissez la description de vos modifications" + +#: src/gtkmm/instance.cpp:510 +msgid "An error has occurred when trying to COMMIT" +msgstr "Une erreur est survenue durant l'opération \"COMMIT\"" + +#: src/gtkmm/instance.cpp:521 +msgid "This composition has already been added to the repository" +msgstr "Cette composition a déjà été ajoutée au dépôt" + +#: src/gtkmm/instance.cpp:535 +msgid "An error has occurred when trying to ADD" +msgstr "Une erreur est survenue durant l'opération \"ADD\"" + +#: src/gtkmm/instance.cpp:546 +msgid "" +"This file is not under version control, so there is nothing to update from!" +msgstr "" +"Ce fichier n'est pas inclu dans la gestion de version (CVS), impossible de " +"le mettre à jour" + +#: src/gtkmm/instance.cpp:551 +msgid "This file is up-to-date" +msgstr "Ce fichier est à jour" + +#: src/gtkmm/instance.cpp:576 src/gtkmm/instance.cpp:612 +msgid "An error has occurred when trying to UPDATE" +msgstr "Une erreur est survenue durant l'opération \"UPDATE\" (mise à jour)" + +#: src/gtkmm/instance.cpp:587 +msgid "" +"This file is not under version control, so there is nothing to revert to!" +msgstr "" +"Ce fichier n'est pas inclu dans la gestion de version (CVS), impossible de " +"rétablir l'état antérieur." + +#: src/gtkmm/instance.cpp:594 +msgid "" +"This will abandon all changes you have made\n" +"since the last time you performed a commit\n" +"operation. This cannot be undone! Are you sure\n" +"you want to do this?" +msgstr "" +"Toutes les modifications effectuées depuis le dernier\n" +" archivage (cvs commit) vont être abandonnées.\n" +"Vous ne pourrez plus revenir en arrière !\n" +"Êtes-vous sûr de vouloir continuer ?" + +#: src/gtkmm/instance.cpp:603 +msgid "Unable to remove previous version" +msgstr "Impossible de supprimer la version précédente." + +#: src/gtkmm/instance.cpp:631 +msgid "Error: Revert Failed" +msgstr "Erreur : Échec du retour à la version antérieure" + +#: src/gtkmm/instance.cpp:631 +msgid "" +"The revert operation has failed. This can be due to it being\n" +"referenced by another composition that is already open, or\n" +"because of an internal error in Synfig Studio. Try closing any\n" +"compositions that might reference this composition and try\n" +"again, or restart Synfig Studio." +msgstr "" +"L'opération de rétablissement d'une version antérieure (revert)\n" +"a échoué. Une composition déjà ouverte fait peut-être référence\n" +"à cette version, ou bien il s'agit d'une erreur interne de Synfig Studio.\n" +"Fermez toutes les compositions qui pourraient faire référence à\n" +"la composition courante et réessayez, ou bien redémarrez Synfig Studio." + +#: src/gtkmm/instance.cpp:659 +msgid "Revert to saved" +msgstr "Rétablissement de la dernière version sauvegardée." + +#: src/gtkmm/instance.cpp:659 +msgid "" +"You will lose any changes you have made since your last save.\n" +"Are you sure?" +msgstr "" +"Vous allez perdre toutes vos modifications depuis la dernière sauvegarde.\n" +"Êtes-vous sûr de vouloir continuer ?" + +#: src/gtkmm/instance.cpp:682 +#, c-format +msgid "Would you like to save your changes to %s?" +msgstr "Voulez-vous enregistrer vos modifications dans %s ?" + +#: src/gtkmm/instance.cpp:698 +#, c-format +msgid "" +"%s has changes not yet on the CVS repository.\n" +"Would you like to commit these changes?" +msgstr "" +"%s comporte des modifications pas encore enregistrées dans CVS.\n" +"Voulez-vous archiver ces modifications ?" + +#: src/gtkmm/instance.cpp:1090 +msgid "Edit Waypoint" +msgstr "Éditer le point de passage" + +#: src/gtkmm/instance.cpp:1131 +msgid "Set Waypoints" +msgstr "Définir les points de passage" + +#: src/gtkmm/instance.cpp:1176 +msgid "Unable to convert to animated waypoint" +msgstr "Conversion en point de passage animé impossible" + +#: src/gtkmm/instance.cpp:1193 +msgid "Unable to find waypoint_set_smart action" +msgstr "Impossible de trouver l'action waypoint_set_smart" + +#: src/gtkmm/instance.cpp:1206 +msgid "Unable to set a specific waypoint" +msgstr "Impossible de définir un point de passage spécifique" + +#: src/gtkmm/instance.cpp:1234 +msgid "Edit Waypoints" +msgstr "Éditer les points de passage" + +#: src/gtkmm/instance.h:41 +msgid "Synfig Animation " +msgstr "Animation Synfig " + +#: src/gtkmm/keyframeactionmanager.cpp:221 +msgid "Add New Keyframe" +msgstr "Ajouter une nouvelle image clé" + +#: src/gtkmm/keyframetree.cpp:77 +msgid "Length" +msgstr "Longueur" + +#: src/gtkmm/keyframetree.cpp:108 +msgid "Description" +msgstr "Description" + +#: src/gtkmm/keyframetreestore.cpp:795 src/gtkmm/keyframetreestore.cpp:810 +msgid "Unable to find Keyframe in table" +msgstr "Impossible de trouver l'image clé dans la table" + +#: src/gtkmm/keyframetreestore.cpp:801 +msgid "There are no keyframes n this canvas" +msgstr "Ce canevas ne contient pas d'image clé " + +#: src/gtkmm/layeractionmanager.cpp:128 +msgid "Amount" +msgstr "Visibilité" + +#: src/gtkmm/layeractionmanager.cpp:364 +msgid "Paste" +msgstr "Coller" + +#: src/gtkmm/layeractionmanager.cpp:450 +#: src/synfigapp/actions/layerduplicate.cpp:178 +#: src/synfigapp/canvasinterface.cpp:202 +#, c-format +msgid "Index %d" +msgstr "Index %d" + +#: src/gtkmm/layergrouptree.cpp:64 src/gtkmm/layergrouptree.cpp:69 +#: src/gtkmm/layertree.cpp:193 +msgid " " +msgstr "" + +#: src/gtkmm/layergrouptreestore.cpp:442 +msgid "Activate " +msgstr "Activer" + +#: src/gtkmm/layergrouptreestore.cpp:442 +msgid "Deactivate " +msgstr "Désactiver" + +#: src/gtkmm/layergrouptreestore.cpp:566 +msgid "Regroup" +msgstr "Regrouper" + +#: src/gtkmm/layerparamtreestore.cpp:234 +msgid "Set Layer Params" +msgstr "Définir les paramètres de calque" + +#: src/gtkmm/layerparamtreestore.cpp:246 +msgid "Unable to set all layer parameters." +msgstr "Impossible de définir tous les paramètres de calque." + +#: src/gtkmm/layertree.cpp:206 src/gtkmm/layertree.cpp:249 +msgid "Z" +msgstr "Z" + +#: src/gtkmm/layertree.cpp:334 +msgid "Value" +msgstr "Valeur" + +#: src/gtkmm/layertreestore.cpp:462 +msgid "Move Layers" +msgstr "Déplacer les calques" + +#: src/gtkmm/main.cpp:73 +msgid "synfig studio is already running" +msgstr "" + +#: src/gtkmm/main.cpp:74 +msgid "the existing process will be used" +msgstr "" + +#: src/gtkmm/main.cpp:97 +msgid "synfig studio -- starting up application..." +msgstr "" + +#: src/gtkmm/mod_mirror/state_mirror.cpp:181 +msgid "Horizontal" +msgstr "Horizontal" + +#: src/gtkmm/mod_mirror/state_mirror.cpp:182 +msgid "Vertical" +msgstr "Vertical" + +#: src/gtkmm/mod_palette/dock_palbrowse.cpp:56 +msgid "Palette Browser" +msgstr "Explorateur de palettes" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:120 +msgid "Palette Editor" +msgstr "Éditeur de palette" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:128 +msgid "Add Color" +msgstr "Ajouter une couleur" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:129 +msgid "" +"Add current foreground color\n" +"to the palette" +msgstr "" +"Ajouter la couleur de premier plan\n" +"à la palette" + +#: src/gtkmm/mod_palette/dock_paledit.cpp:211 +msgid "Load Default Palette" +msgstr "Charger la palette par défaut" + +#: src/gtkmm/onemoment.cpp:91 src/gtkmm/onemoment.cpp:93 +msgid "One Moment, Please..." +msgstr "Un moment, s'il vous plaît" + +#: src/gtkmm/preview.cpp:352 +msgid "Toggle Looping" +msgstr "Lecture en boucle" + +#: src/gtkmm/preview.cpp:376 +msgid "Halt Render" +msgstr "Stopper le rendu" + +#: src/gtkmm/preview.cpp:382 +msgid "Re-Preview" +msgstr "Re-prévisualiser" + +#: src/gtkmm/preview.cpp:388 +msgid "Erase All" +msgstr "Tout effacer" + +#: src/gtkmm/preview.cpp:398 +msgid "Last Rendered: " +msgstr "Dernier rendu :" + +#: src/gtkmm/renddesc.cpp:95 +msgid "Image" +msgstr "Image" + +#: src/gtkmm/renddesc.cpp:97 +msgid "Other" +msgstr "Autre" + +#: src/gtkmm/renddesc.cpp:390 +msgid "_Pixel Aspect" +msgstr "Aspect des _pixels" + +#: src/gtkmm/renddesc.cpp:392 +msgid "Pi_xel Width" +msgstr "Largeur de pi_xel" + +#: src/gtkmm/renddesc.cpp:394 +msgid "Pix_el Height" +msgstr "Hauteur de pix_el" + +#: src/gtkmm/renddesc.cpp:396 +msgid "Image _Aspect" +msgstr "_Aspect de l'image" + +#: src/gtkmm/renddesc.cpp:398 +msgid "Image _Width" +msgstr "_Largeur de l'image" + +#: src/gtkmm/renddesc.cpp:400 +msgid "Image _Height" +msgstr "_Hauteur de l'image" + +#: src/gtkmm/renddesc.cpp:402 +msgid "Image _Span" +msgstr "_Étendue de l'image" + +#: src/gtkmm/renddesc.cpp:442 +msgid "Image Size" +msgstr "Taille de l'image" + +#: src/gtkmm/renddesc.cpp:444 +msgid "Image Size" +msgstr "Taille de l'image" + +#: src/gtkmm/renddesc.cpp:455 +msgid "_Width" +msgstr "_Largeur" + +#: src/gtkmm/renddesc.cpp:458 +msgid "_Height" +msgstr "_Hauteur" + +#: src/gtkmm/renddesc.cpp:461 +msgid "_XRes" +msgstr "Résolution _X" + +#: src/gtkmm/renddesc.cpp:464 +msgid "_YRes" +msgstr "Résolution _Y" + +#: src/gtkmm/renddesc.cpp:467 +msgid "_Physical Width" +msgstr "Largeur _physique" + +#: src/gtkmm/renddesc.cpp:470 +msgid "Phy_sical Height" +msgstr "Hauteur phy_sique" + +#: src/gtkmm/renddesc.cpp:473 +msgid "I_mage Span" +msgstr "_Étendue de l'image" + +#: src/gtkmm/renddesc.cpp:494 +msgid "Image Area" +msgstr "Zone de l'image" + +#: src/gtkmm/renddesc.cpp:496 +msgid "Image Area" +msgstr "Zone de l'image" + +#: src/gtkmm/renddesc.cpp:508 +msgid "_Top Left" +msgstr "Haut gauche" + +#: src/gtkmm/renddesc.cpp:511 +msgid "_Bottom Right" +msgstr "Bas droite" + +#: src/gtkmm/renddesc.cpp:551 +msgid "_Start Time" +msgstr "_Heure de début" + +#: src/gtkmm/renddesc.cpp:574 +msgid "Locks and Links" +msgstr "Verrous et liens" + +#: src/gtkmm/renddesc.cpp:576 +msgid "Locks and Links" +msgstr "Verrous et liens" + +#: src/gtkmm/renddesc.cpp:597 +msgid "Focus Point" +msgstr "Point focal" + +#: src/gtkmm/renddesc.cpp:599 +msgid "Focus Point" +msgstr "Point focal" + +#: src/gtkmm/renddesc.cpp:609 +msgid "_Focus Point" +msgstr "Point _focal" + +#: src/gtkmm/render.cpp:61 src/gtkmm/render.cpp:177 +msgid "Render Settings" +msgstr "Paramètres de rendu" + +#: src/gtkmm/render.cpp:67 +msgid "Use _current frame" +msgstr "Utiliser l'image courante" + +#: src/gtkmm/render.cpp:77 +msgid "Auto" +msgstr "Automatique" + +#: src/gtkmm/render.cpp:101 +msgid "Choose..." +msgstr "Sélectionner ..." + +#: src/gtkmm/render.cpp:105 +msgid "Target" +msgstr "Cible" + +#: src/gtkmm/render.cpp:107 +msgid "Target" +msgstr "Cible" + +#: src/gtkmm/render.cpp:118 +msgid "_Filename" +msgstr "Nom de _fichier" + +#: src/gtkmm/render.cpp:125 +msgid "_Target" +msgstr "_Cible" + +#: src/gtkmm/render.cpp:133 +msgid "Settings" +msgstr "Paramètres" + +#: src/gtkmm/render.cpp:135 +msgid "Settings" +msgstr "Paramètres" + +#: src/gtkmm/render.cpp:147 +msgid "_Quality" +msgstr "_Qualité" + +#: src/gtkmm/render.cpp:153 +msgid "_Anti-Aliasing" +msgstr "_Anti-crénelage" + +#: src/gtkmm/render.cpp:247 +msgid "You must supply a filename!" +msgstr "Vous devez fournir un nom de fichier !" + +#: src/gtkmm/render.cpp:273 +msgid "Unable to determine proper target from filename." +msgstr "Impossible de déterminer le type de fichier cible à partir du nom." + +#: src/gtkmm/render.cpp:280 +msgid "A filename is required for this target" +msgstr "Un nom de fichier est nécéssaire pour ce type de fichier cible." + +#: src/gtkmm/render.cpp:287 +msgid "Unable to create target for " +msgstr "Impossible de créer un fichier cible pour " + +#: src/gtkmm/render.cpp:304 +msgid "Target initialization failure" +msgstr "Erreur d'initialisation du fichier cible" + +#: src/gtkmm/render.cpp:308 +msgid "Rendering " +msgstr "Rendu en cours" + +#: src/gtkmm/render.cpp:336 +msgid "File rendered successfully" +msgstr "Fichier rendu avec succès" + +#: src/gtkmm/splash.cpp:113 +msgid "ERROR:" +msgstr "ERREUR :" + +#: src/gtkmm/splash.cpp:129 +msgid "WARNING:" +msgstr "AVERTISSEMENT :" + +#: src/gtkmm/state_bline.cpp:361 +msgid "Fill" +msgstr "Remplissage" + +#: src/gtkmm/state_bline.cpp:362 +msgid "Outline" +msgstr "Contour" + +#: src/gtkmm/state_bline.cpp:364 +msgid "Plant" +msgstr "Plante" + +#: src/gtkmm/state_bline.cpp:365 +msgid "Link Offsets" +msgstr "Lier les déplacements" + +#: src/gtkmm/state_bline.cpp:366 src/gtkmm/state_draw.cpp:415 +msgid "Auto Export" +msgstr "Exporter automatiquement" + +#: src/gtkmm/state_bline.cpp:367 src/gtkmm/state_polygon.cpp:228 +msgid "Make" +msgstr "Créer" + +#: src/gtkmm/state_bline.cpp:368 +msgid "Clear" +msgstr "Effacer" + +#: src/gtkmm/state_bline.cpp:385 src/gtkmm/state_draw.cpp:450 +msgid "Feather" +msgstr "Adoucissement" + +#: src/gtkmm/state_bline.cpp:426 +msgid "Make BLine and/or Region" +msgstr "Créer une BLine et/ou une Région" + +#: src/gtkmm/state_bline.cpp:436 +msgid "Clear current BLine" +msgstr "Effacer la BLine courante" + +#: src/gtkmm/state_bline.cpp:541 +msgid "New BLine" +msgstr "Nouvelle BLine" + +#: src/gtkmm/state_bline.cpp:584 +msgid "Unable to add value node" +msgstr "Impossible d'ajouter un nœud de valeur" + +#: src/gtkmm/state_bline.cpp:621 +msgid " Gradient" +msgstr "Dégradé" + +#: src/gtkmm/state_bline.cpp:640 src/gtkmm/state_bline.cpp:662 +msgid "Unable to create Gradient layer" +msgstr "Impossible de créer un calque de dégradé" + +#: src/gtkmm/state_bline.cpp:679 +msgid " Plant" +msgstr " Plante" + +#: src/gtkmm/state_bline.cpp:698 src/gtkmm/state_bline.cpp:721 +msgid "Unable to create Plant layer" +msgstr "Impossible de créer un calque de plante" + +#: src/gtkmm/state_bline.cpp:738 src/gtkmm/state_draw.cpp:1058 +#: src/gtkmm/state_draw.cpp:1977 +msgid " Region" +msgstr "Région" + +#: src/gtkmm/state_bline.cpp:768 src/gtkmm/state_bline.cpp:790 +#: src/gtkmm/state_draw.cpp:1800 src/gtkmm/state_draw.cpp:1993 +msgid "Unable to create Region layer" +msgstr "Impossible de créer un calque de région" + +#: src/gtkmm/state_bline.cpp:807 src/gtkmm/state_draw.cpp:1053 +msgid " Outline" +msgstr "Contour" + +#: src/gtkmm/state_bline.cpp:831 src/gtkmm/state_bline.cpp:853 +msgid "Unable to create Outline layer" +msgstr "Impossible de créer un calque de contour" + +#: src/gtkmm/state_bline.cpp:1242 +msgid "Unloop BLine" +msgstr "Ouvrir la BLine" + +#: src/gtkmm/state_bline.cpp:1246 +msgid "Loop BLine" +msgstr "Fermer la BLine" + +#: src/gtkmm/state_bline.cpp:1251 +msgid "Delete Vertex" +msgstr "" + +#: src/gtkmm/state_bline.cpp:1266 +msgid "Insert Vertex" +msgstr "" + +#: src/gtkmm/state_bline.cpp:1332 +msgid "" +"Unable to find where to insert vertex, internal error, please report this bug" +msgstr "" + +#: src/gtkmm/state_bline.cpp:1351 +msgid "Unable to remove vertex, internal error, please report this bug" +msgstr "" + +#: src/gtkmm/state_bline.cpp:1365 +#: src/synfigapp/actions/blinepointtangentmerge.cpp:56 +msgid "Merge Tangents" +msgstr "Fusionner les tangentes" + +#: src/gtkmm/state_bline.cpp:1372 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:56 +msgid "Split Tangents" +msgstr "Séparer les tangentes" + +#: src/gtkmm/state_circle.cpp:286 src/gtkmm/state_rectangle.cpp:254 +msgid "Invert" +msgstr "Inverser" + +#: src/gtkmm/state_circle.cpp:294 +msgid "Falloff" +msgstr "Atténuation" + +#: src/gtkmm/state_circle.cpp:295 +msgid "Determines the falloff function for the feather" +msgstr "Détermine la fonction d'atténuation utilisée pour l'adoucissement" + +#: src/gtkmm/state_circle.cpp:297 src/gtkmm/state_gradient.cpp:265 +msgid "Linear" +msgstr "Linéaire" + +#: src/gtkmm/state_circle.cpp:298 +msgid "Squared" +msgstr "Carré" + +#: src/gtkmm/state_circle.cpp:299 +msgid "Square Root" +msgstr "Racine carré" + +#: src/gtkmm/state_circle.cpp:300 +msgid "Sigmond" +msgstr "Sigmoïde" + +#: src/gtkmm/state_circle.cpp:301 +msgid "Cosine" +msgstr "Cosinus" + +#: src/gtkmm/state_circle.cpp:304 src/gtkmm/state_gradient.cpp:271 +msgid "Blend Method" +msgstr "Mode de fusion" + +#: src/gtkmm/state_circle.cpp:305 +msgid "Defines the blend method to be used for circles" +msgstr "Défini le mode de fusion à utiliser pour les cercles" + +#: src/gtkmm/state_circle.cpp:310 +msgid "Feather:" +msgstr "Adoucissement :" + +#: src/gtkmm/state_circle.cpp:400 +msgid "New Circle" +msgstr "Nouveau cercle" + +#: src/gtkmm/state_draw.cpp:409 +msgid "Pressure Width" +msgstr "Largeur selon la pression" + +#: src/gtkmm/state_draw.cpp:410 +msgid "Auto Loop" +msgstr "Fermeture automatique" + +#: src/gtkmm/state_draw.cpp:411 +msgid "Auto Extend" +msgstr "Étendre automatiquement" + +#: src/gtkmm/state_draw.cpp:412 +msgid "Auto Link" +msgstr "Lier automatiquement" + +#: src/gtkmm/state_draw.cpp:413 +msgid "Create Region" +msgstr "Créer une région" + +#: src/gtkmm/state_draw.cpp:414 +msgid "Create Outline" +msgstr "Créer un contour" + +#: src/gtkmm/state_draw.cpp:416 src/gtkmm/state_draw.cpp:524 +msgid "Fill Last Stroke" +msgstr "Remplissage du dernier tracé" + +#: src/gtkmm/state_draw.cpp:419 +msgid "Min Pressure" +msgstr "Pression minimale" + +#: src/gtkmm/state_draw.cpp:425 +msgid "LocalError" +msgstr "Erreur locale" + +#: src/gtkmm/state_draw.cpp:447 +msgid "Smooth" +msgstr "Lissage" + +#: src/gtkmm/state_draw.cpp:778 +msgid "Sketch BLine" +msgstr "Dessin de la BLine" + +#: src/gtkmm/state_draw.cpp:1088 +msgid "Unable to create layer" +msgstr "Impossible de créer le calque" + +#: src/gtkmm/state_draw.cpp:1272 +msgid "Define Region" +msgstr "Definir la région" + +#: src/gtkmm/state_draw.cpp:1834 src/gtkmm/state_draw.cpp:1885 +msgid "Extend BLine" +msgstr "Étendre la BLine" + +#: src/gtkmm/state_draw.cpp:1847 src/gtkmm/state_draw.cpp:1898 +msgid "Unable to set loop for bline" +msgstr "Impossible de fermer la BLine" + +#: src/gtkmm/state_draw.cpp:1871 src/gtkmm/state_draw.cpp:1922 +msgid "Unable to insert item" +msgstr "Impossible d'insérer un élément" + +#: src/gtkmm/state_draw.cpp:1955 +msgid "Fill Stroke" +msgstr "Remplir le tracé" + +#: src/gtkmm/state_fill.cpp:145 +msgid "No layer here" +msgstr "Pas de calque ici" + +#: src/gtkmm/state_fill.cpp:155 +msgid "Unable to set layer color" +msgstr "Impossible de définir la couleur du calque" + +#: src/gtkmm/state_gradient.cpp:262 +msgid "Gradient Type" +msgstr "Type de dégradé" + +#: src/gtkmm/state_gradient.cpp:263 +msgid "Determines the type of Gradient used" +msgstr "Détermine le type de dégradé utilisé" + +#: src/gtkmm/state_gradient.cpp:266 +msgid "Radial" +msgstr "Radial" + +#: src/gtkmm/state_gradient.cpp:267 +msgid "Conical" +msgstr "Conique" + +#: src/gtkmm/state_gradient.cpp:268 +msgid "Spiral" +msgstr "Spirale" + +#: src/gtkmm/state_gradient.cpp:272 +msgid "The blend method the gradient will use" +msgstr "Le mode de fusion utilisé pour le dégradé" + +#: src/gtkmm/state_gradient.cpp:314 +msgid "Gradient Tool" +msgstr "Outil dégradé" + +#: src/gtkmm/state_gradient.cpp:368 +msgid "New Gradient" +msgstr "Nouveau dégradé" + +#: src/gtkmm/state_polygon.cpp:278 +msgid "Make Polygon" +msgstr "Créer un polygone" + +#: src/gtkmm/state_polygon.cpp:288 +msgid "Clear current Polygon" +msgstr "Effacer le polygone courant " + +#: src/gtkmm/state_polygon.cpp:370 +msgid "New Polygon" +msgstr "Nouveau polygone" + +#: src/gtkmm/state_rectangle.cpp:264 +msgid "Expansion:" +msgstr "Expansion :" + +#: src/gtkmm/state_rectangle.cpp:355 +msgid "New Rectangle" +msgstr "Nouveau rectangle" + +#: src/gtkmm/state_rotate.cpp:175 +msgid "Allow Scale" +msgstr "Autoriser la mise à l'échelle" + +#: src/gtkmm/state_rotate.cpp:369 +msgid "Move Duck" +msgstr "Déplacer les poignées" + +#: src/gtkmm/state_rotate.cpp:374 +msgid "Rotate Ducks" +msgstr "Tourner les poignées" + +#: src/gtkmm/state_scale.cpp:163 +msgid "Lock Aspect Ratio" +msgstr "Verrouiller le ratio d'aspect" + +#: src/gtkmm/state_sketch.cpp:158 src/gtkmm/state_sketch.cpp:239 +msgid "Save Sketch" +msgstr "Enregistrer le dessin" + +#: src/gtkmm/state_sketch.cpp:168 +msgid "Unable to save sketch" +msgstr "Impossible d'enregistrer le dessin" + +#: src/gtkmm/state_sketch.cpp:177 src/gtkmm/state_sketch.cpp:240 +msgid "Load Sketch" +msgstr "Charger un dessin" + +#: src/gtkmm/state_sketch.cpp:187 +msgid "Unable to load sketch" +msgstr "Impossible de charger le dessin" + +#: src/gtkmm/state_sketch.cpp:237 src/gtkmm/state_sketch.cpp:268 +#: src/gtkmm/state_sketch.cpp:269 +msgid "Clear Sketch" +msgstr "Effacer le dessin" + +#: src/gtkmm/state_sketch.cpp:238 +msgid "Undo Stroke" +msgstr "Annuler le tracé" + +#: src/gtkmm/state_sketch.cpp:241 +msgid "Show Sketch" +msgstr "Afficher le dessin" + +#: src/gtkmm/state_sketch.cpp:256 src/gtkmm/state_sketch.cpp:257 +msgid "Undo Last Stroke" +msgstr "Annuler le dernier tracé" + +#: src/gtkmm/state_sketch.cpp:280 src/gtkmm/state_sketch.cpp:281 +#: src/gtkmm/state_sketch.cpp:292 src/gtkmm/state_sketch.cpp:293 +msgid "Save Sketch As..." +msgstr "Enregistrer le dessin sous ..." + +#: src/gtkmm/state_sketch.cpp:304 src/gtkmm/state_sketch.cpp:305 +msgid "Open a Sketch" +msgstr "Ouvrir un dessin" + +#: src/gtkmm/state_smoothmove.cpp:178 +msgid "Radius" +msgstr "Rayon" + +#: src/gtkmm/state_smoothmove.cpp:204 +msgid "Smooth Move" +msgstr "Déplacement lissé" + +#: src/gtkmm/state_width.cpp:225 +msgid "Relative Growth" +msgstr "Agrandissement relatif" + +#: src/gtkmm/state_width.cpp:234 +msgid "Growth:" +msgstr "Agrandissement :" + +#: src/gtkmm/state_width.cpp:237 +msgid "Radius:" +msgstr "Rayon :" + +#: src/gtkmm/state_width.cpp:562 +msgid "Sketch Width" +msgstr "Largeur du dessin" + +#: src/gtkmm/toolbox.cpp:133 +msgid "Cannot save" +msgstr "Impossible d'enregistrer" + +#: src/gtkmm/toolbox.cpp:133 src/gtkmm/toolbox.cpp:145 +msgid "Nothing to save" +msgstr "Rien à enregistrer" + +#: src/gtkmm/toolbox.cpp:145 +msgid "Cannot save as" +msgstr "Impossible d'enregistrer sous" + +#: src/gtkmm/toolbox.cpp:167 +msgid "Cannot close" +msgstr "Impossible de fermer" + +#: src/gtkmm/toolbox.cpp:167 +msgid "Nothing to close" +msgstr "Rien à fermer" + +#: src/gtkmm/toolbox.cpp:220 +msgid "Vertical Dock: Canvases, History" +msgstr "Dialogue vertical : Canevas, historique" + +#: src/gtkmm/toolbox.cpp:221 +msgid "Horizontal Dock: Layers, Children, Params" +msgstr "Dialogue Horizontal : Calques, Enfants, Paramètres" + +#: src/gtkmm/toolbox.cpp:223 +msgid "Reset Windows to Original Layout" +msgstr "Rétablir la disposition d'origine des fenêtres" + +#: src/gtkmm/toolbox.cpp:232 +msgid "Open Recent" +msgstr "Récemment ouverts" + +#: src/gtkmm/toolbox.cpp:239 +msgid "Panels" +msgstr "Panneaux" + +#: src/gtkmm/toolbox.cpp:251 +msgid "Input Devices..." +msgstr "Périphériques d'entrée" + +#: src/gtkmm/toolbox.cpp:253 +msgid "Setup..." +msgstr "Configuration ..." + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:268 +msgid "Synfig Wiki" +msgstr "Wiki Synfig" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:268 +msgid "/Main_Page" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:269 +msgid "Tutorials" +msgstr "Tutoriels" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:269 +msgid "/Tutorials" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:270 +msgid "Frequently Asked Questions" +msgstr "FAQ (Questions fréquentes)" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:270 +msgid "/FAQ" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:271 +msgid "Get Support" +msgstr "Support" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:271 +msgid "/Communication" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:272 +msgid "Keyboard Shortcuts" +msgstr "Raccourcis clavier" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:272 +msgid "/Keyboard_Shortcuts" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:273 +msgid "Mouse Shortcuts" +msgstr "Raccourcis souris" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:273 +msgid "/Mouse_Shortcuts" +msgstr "" + +#. TRANSLATORS: Help menu entry +#: src/gtkmm/toolbox.cpp:274 +msgid "All Pages" +msgstr "Toutes les pages" + +#. TRANSLATORS: a wiki page +#: src/gtkmm/toolbox.cpp:274 +msgid "/Special:Allpages" +msgstr "" + +#: src/gtkmm/toolbox.cpp:282 +msgid "_Help" +msgstr "_Aide" + +#: src/gtkmm/toolbox.cpp:289 +msgid "New..." +msgstr "Nouveau ..." + +#: src/gtkmm/toolbox.cpp:290 +msgid "Open..." +msgstr "Ouvrir ..." + +#: src/gtkmm/toolbox.cpp:291 +msgid "Save" +msgstr "Enregistrer" + +#: src/gtkmm/toolbox.cpp:292 +msgid "Save As..." +msgstr "Enregistrer sous ..." + +#: src/gtkmm/toolbox.cpp:296 +msgid "Setup" +msgstr "Configuration" + +#: src/gtkmm/toolbox.cpp:297 +msgid "About Synfig Studio" +msgstr "À propos de Synfig Studio" + +#: src/gtkmm/widget_canvaschooser.cpp:115 +msgid "Other..." +msgstr "Autre ..." + +#: src/gtkmm/widget_canvaschooser.cpp:136 +msgid "Choose Canvas" +msgstr "Sélectionner un canevas" + +#: src/gtkmm/widget_canvaschooser.cpp:136 +msgid "Enter the relative name of the canvas that you want" +msgstr "Entrer le nom relatif du canevas désiré" + +#: src/gtkmm/widget_canvaschooser.cpp:145 +msgid "No canvas name was specified" +msgstr "Aucun nom de canevas spécifié" + +#: src/gtkmm/widget_canvaschooser.cpp:158 +msgid "Error:Exception Thrown" +msgstr "Erreur : Exception générée" + +#: src/gtkmm/widget_canvaschooser.cpp:163 +msgid "Unknown Exception" +msgstr "Exception inconnue" + +#: src/gtkmm/widget_coloredit.cpp:262 +msgid "RGB" +msgstr "RVB" + +#: src/gtkmm/widget_coloredit.cpp:263 +msgid "YUV" +msgstr "YUV" + +#: src/gtkmm/widget_coloredit.cpp:318 +msgid "HTML code" +msgstr "Code HTML" + +#: src/gtkmm/widget_coloredit.cpp:331 +msgid "Luma" +msgstr "Luminance" + +#: src/gtkmm/widget_coloredit.cpp:332 +msgid "Hue" +msgstr "Teinte" + +#: src/gtkmm/widget_coloredit.cpp:333 +msgid "Saturation" +msgstr "Saturation" + +#: src/gtkmm/widget_coloredit.cpp:334 +msgid "U" +msgstr "U" + +#: src/gtkmm/widget_coloredit.cpp:335 +msgid "V" +msgstr "V" + +#: src/gtkmm/widget_coloredit.cpp:339 +msgid "Alpha" +msgstr "Alpha" + +#: src/gtkmm/widget_defaults.cpp:213 +msgid "Foreground Color" +msgstr "Couleur de premier plan" + +#: src/gtkmm/widget_defaults.cpp:221 +msgid "Background Color" +msgstr "Couleur d'arrière plan" + +#: src/gtkmm/widget_defaults.cpp:238 +msgid "" +"Swap Background and\n" +"Foreground Colors" +msgstr "" +"Échanger les couleurs de\n" +"premier et d'arrière plan" + +#: src/gtkmm/widget_defaults.cpp:249 +msgid "Reset Colors to Black and White" +msgstr "Réinitialiser les couleurs à Noir et Blanc" + +#: src/gtkmm/widget_defaults.cpp:261 +msgid "Brush Preview" +msgstr "Aperçu du pinceau" + +#: src/gtkmm/widget_defaults.cpp:271 +msgid "Brush Size" +msgstr "Taille du pinceau" + +#: src/gtkmm/widget_defaults.cpp:279 +msgid "Default Blend Method" +msgstr "Mode de fusion par défaut" + +#: src/gtkmm/widget_defaults.cpp:293 +msgid "Default Interpolation" +msgstr "Interpolation par défaut" + +#: src/gtkmm/widget_defaults.cpp:301 +msgid "Default Opacity" +msgstr "Opacité par défaut" + +#: src/gtkmm/widget_defaults.cpp:308 +msgid "Default Gradient" +msgstr "Dégradé par défaut" + +#: src/gtkmm/widget_filename.cpp:60 +msgid "Find" +msgstr "Chercher" + +#: src/gtkmm/widget_filename.cpp:114 +msgid "Choose File" +msgstr "Sélectionner un fichier" + +#: src/gtkmm/widget_gradient.cpp:223 +msgid "Insert CPoint" +msgstr "Ajouter un point de contrôle" + +#: src/gtkmm/widget_gradient.cpp:235 +msgid "Remove CPoint" +msgstr "http://rore.dyndns.org/rore/synfig/core_fr.po de contrôle" + +#: src/gtkmm/widget_waypoint.cpp:76 +msgid "(Non-static value)" +msgstr "(Valeur non-statique)" + +#: src/gtkmm/widget_waypoint.cpp:121 +#: src/synfigapp/actions/waypointremove.cpp:78 +#: src/synfigapp/actions/waypointset.cpp:77 +#: src/synfigapp/actions/waypointsimpleadd.cpp:78 +msgid "Waypoint" +msgstr "Point de passage" + +#: src/gtkmm/widget_waypoint.cpp:123 +msgid "Waypoint" +msgstr "Point de passage" + +#: src/gtkmm/widget_waypoint.cpp:135 +msgid "_Value" +msgstr "_Valeur" + +#: src/gtkmm/widget_waypoint.cpp:142 +msgid "_Time" +msgstr "_Temps" + +#: src/gtkmm/widget_waypoint.cpp:148 +msgid "Interpolation" +msgstr "Interpolation" + +#: src/gtkmm/widget_waypoint.cpp:150 +msgid "Interpolation" +msgstr "Interpolation" + +#: src/gtkmm/widget_waypoint.cpp:162 +msgid "_In Interpolation" +msgstr "_Interpolation entrante" + +#: src/gtkmm/widget_waypoint.cpp:168 +msgid "_Out Interpolation" +msgstr "Interpolation s_ortante" + +#: src/gtkmm/widget_waypoint.cpp:174 +msgid "TCB Parameters" +msgstr "Paramètres TCB" + +#: src/gtkmm/widget_waypoint.cpp:176 +msgid "TCB Parameter" +msgstr "Paramètres TCB" + +#: src/gtkmm/widget_waypoint.cpp:188 +msgid "T_ension" +msgstr "T_ension" + +#: src/gtkmm/widget_waypoint.cpp:195 +msgid "_Continuity" +msgstr "_Continuité" + +#: src/gtkmm/widget_waypoint.cpp:202 +msgid "_Bias" +msgstr "_Biais" + +#: src/gtkmm/widget_waypoint.cpp:209 +msgid "Te_mporal Tension" +msgstr "Tension te_mporelle" + +#: src/gtkmm/widget_waypointmodel.cpp:64 +msgid "Out:" +msgstr "Sortie :" + +#: src/gtkmm/widget_waypointmodel.cpp:65 +msgid "In:" +msgstr "Entrée :" + +#: src/gtkmm/widget_waypointmodel.cpp:66 +msgid "Tension:" +msgstr "Tension :" + +#: src/gtkmm/widget_waypointmodel.cpp:67 +msgid "Continuity:" +msgstr "Continuité :" + +#: src/gtkmm/widget_waypointmodel.cpp:68 +msgid "Bias:" +msgstr "Biais :" + +#: src/gtkmm/widget_waypointmodel.cpp:69 +msgid "Temporal Tension:" +msgstr "Tension temporelle :" + +#: src/gtkmm/workarea.cpp:1171 +msgid "Nudge" +msgstr "" + +#: src/gtkmm/workarea.cpp:1627 +msgid "Move" +msgstr "Déplacer" + +#: src/gtkmm/workarea.cpp:2320 +msgid "Rendering..." +msgstr "Rendu en cours ..." + +#: src/gtkmm/workarea.cpp:2347 src/gtkmm/workarea.cpp:2439 +msgid "Render Failed" +msgstr "Échec du rendu" + +#: src/gtkmm/workarea.cpp:2421 +#, c-format +msgid "Rendering canvas %s..." +msgstr "Rendu du canevas %s ..." + +#: src/gtkmm/zoomdial.h:69 +msgid "Zoom In" +msgstr "Zoomer" + +#: src/gtkmm/zoomdial.h:70 +msgid "Zoom Out" +msgstr "Dézoomer" + +#: src/gtkmm/zoomdial.h:71 +msgid "Zoom Fit" +msgstr "Zoom adapté" + +#: src/gtkmm/zoomdial.h:72 +msgid "Zoom to 100%" +msgstr "Zoomer à 100%" + +#: src/synfigapp/action.cpp:457 +msgid "Selected Canvas" +msgstr "Canevas sélectionné" + +#: src/synfigapp/action.cpp:461 src/synfigapp/action.cpp:462 +msgid "Canvas Interface" +msgstr "Interface du canevas" + +#: src/synfigapp/actions/activepointadd.cpp:49 +msgid "Add Activepoint" +msgstr "Ajouter un point d'action" + +#: src/synfigapp/actions/activepointadd.cpp:75 +#: src/synfigapp/actions/activepointremove.cpp:74 +#: src/synfigapp/actions/activepointset.cpp:73 +#: src/synfigapp/actions/activepointsetoff.cpp:83 +#: src/synfigapp/actions/activepointseton.cpp:83 +#: src/synfigapp/actions/activepointsetsmart.cpp:82 +#: src/synfigapp/actions/colorset.cpp:79 +#: src/synfigapp/actions/gradientset.cpp:79 +#: src/synfigapp/actions/valuedescconvert.cpp:93 +#: src/synfigapp/actions/valuedescdisconnect.cpp:81 +#: src/synfigapp/actions/valuedescdisconnect.cpp:90 +#: src/synfigapp/actions/valuedescexport.cpp:88 +#: src/synfigapp/actions/valuedescset.cpp:83 +#: src/synfigapp/actions/valuedescset.cpp:92 +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:76 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:78 +#: src/synfigapp/actions/valuenodedynamiclistremove.cpp:74 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:77 +#: src/synfigapp/actions/valuenodedynamiclistrotateorder.cpp:74 +msgid "ValueDesc" +msgstr "Description de valeur (ValueDesc)" + +#: src/synfigapp/actions/activepointadd.cpp:79 +#: src/synfigapp/actions/activepointsetsmart.cpp:86 +msgid "New Activepoint" +msgstr "Nouveau point d'action" + +#: src/synfigapp/actions/activepointadd.cpp:80 +#: src/synfigapp/actions/activepointsetsmart.cpp:87 +#: src/synfigapp/actions/activepointsimpleadd.cpp:79 +msgid "Activepoint to be added" +msgstr "Point d'action à ajouter" + +#: src/synfigapp/actions/activepointadd.cpp:86 +#: src/synfigapp/actions/activepointsetsmart.cpp:93 +msgid "Time where activepoint is to be added" +msgstr "Moment où ajouter le point d'action" + +#: src/synfigapp/actions/activepointadd.cpp:177 +#: src/synfigapp/actions/activepointremove.cpp:163 +msgid "A Activepoint already exists at this point in time" +msgstr "Un point d'action existe déjà à cet endroit" + +#: src/synfigapp/actions/activepointadd.cpp:180 +#: src/synfigapp/actions/activepointremove.cpp:166 +msgid "This activepoint is already in the ValueNode" +msgstr "Ce point d'action est déjà dans le nœud de valeur" + +#: src/synfigapp/actions/activepointremove.cpp:49 +msgid "Remove Activepoint" +msgstr "Supprimer le point d'action" + +#: src/synfigapp/actions/activepointremove.cpp:78 +#: src/synfigapp/actions/activepointset.cpp:77 +#: src/synfigapp/actions/activepointsetoff.cpp:87 +#: src/synfigapp/actions/activepointseton.cpp:87 +#: src/synfigapp/actions/activepointsimpleadd.cpp:78 +msgid "Activepoint" +msgstr "Point d'action" + +#: src/synfigapp/actions/activepointremove.cpp:79 +#: src/synfigapp/actions/activepointset.cpp:78 +msgid "Activepoint to be changed" +msgstr "Point d'action à modifier" + +#: src/synfigapp/actions/activepointremove.cpp:144 +#: src/synfigapp/actions/activepointset.cpp:152 +#: src/synfigapp/actions/activepointset.cpp:210 +#: src/synfigapp/actions/activepointset.cpp:256 +#: src/synfigapp/actions/activepointset.cpp:277 +msgid "Unable to find activepoint" +msgstr "Impossible de trouver le point d'action" + +#: src/synfigapp/actions/activepointset.cpp:49 +msgid "Set Activepoint" +msgstr "Définir un point d'action" + +#: src/synfigapp/actions/activepointsetoff.cpp:57 +msgid "Mark Activepoint as \"Off\"" +msgstr "Désactiver ce point d'action" + +#: src/synfigapp/actions/activepointseton.cpp:57 +msgid "Mark Activepoint as \"On\"" +msgstr "Activer ce point d'action" + +#: src/synfigapp/actions/activepointsetsmart.cpp:56 +msgid "Set Activepoint (Smart)" +msgstr "Définir le point d'action (Intelligent)" + +#: src/synfigapp/actions/activepointsetsmart.cpp:366 +#: src/synfigapp/actions/waypointsetsmart.cpp:444 +msgid "Unable to determine how to proceed. This is a bug." +msgstr "" +"Impossible de décider comment continuer.\n" +"C'est un bogue." + +#: src/synfigapp/actions/activepointsimpleadd.cpp:49 +#: src/synfigapp/actions/waypointsimpleadd.cpp:49 +msgid "Simply Add Waypoint" +msgstr "Ajouter simplement un point de passage " + +#: src/synfigapp/actions/activepointsimpleadd.cpp:74 +#: src/synfigapp/actions/waypointadd.cpp:76 +#: src/synfigapp/actions/waypointset.cpp:73 +#: src/synfigapp/actions/waypointsetsmart.cpp:85 +#: src/synfigapp/actions/waypointsimpleadd.cpp:74 +msgid "Destination ValueNode (Animated)" +msgstr "Nœud de valeur de destination (Animé)" + +#: src/synfigapp/actions/activepointsimpleadd.cpp:169 +msgid "The activepoint to remove no longer exists" +msgstr "Le point d'action à supprimer n'existe plus" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:78 +#, c-format +msgid "Merge Tangents of '%s'" +msgstr "Fusionner les tangentes de \"%s\"" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:87 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:87 +msgid "ValueNode of BLinePoint" +msgstr "Nœud de valeur de la poigné de BLine" + +#: src/synfigapp/actions/blinepointtangentmerge.cpp:156 +#: src/synfigapp/actions/blinepointtangentsplit.cpp:156 +msgid "Couldn't find action \"value_desc_set\"" +msgstr "Impossible de trouver l'action \"value_desc_set\"" + +#: src/synfigapp/actions/blinepointtangentsplit.cpp:78 +#, c-format +msgid "Split Tangents of '%s'" +msgstr "Séparer les tangentes de \"%s\"" + +#: src/synfigapp/actions/canvasadd.cpp:49 +msgid "Add Child Canvas" +msgstr "Ajouter un canevas enfant" + +#: src/synfigapp/actions/canvasadd.cpp:79 +msgid "The name that you want this canvas to be" +msgstr "Le nom que vous souhaitez donner au canevas" + +#: src/synfigapp/actions/canvasremove.cpp:49 +msgid "Remove Canvas" +msgstr "Supprimer le canevas" + +#: src/synfigapp/actions/canvasremove.cpp:107 +msgid "You cannot remove the root canvas!" +msgstr "Vous ne pouvez pas supprimer le canevas racine !" + +#: src/synfigapp/actions/canvasremove.cpp:110 +msgid "You cannot remove an inline canvas!" +msgstr "Vous ne pouvez pas supprimer un canevas inclu !" + +#: src/synfigapp/actions/canvasrenddescset.cpp:49 +msgid "Set Canvas RendDesc" +msgstr "" + +#: src/synfigapp/actions/canvasrenddescset.cpp:73 +msgid "RendDesc" +msgstr "" + +#: src/synfigapp/actions/colorset.cpp:55 +msgid "Apply Default Color" +msgstr "Appliquer la couleur par défaut" + +#: src/synfigapp/actions/editmodeset.cpp:49 +msgid "Set Edit Mode" +msgstr "Définir le mode d'édition" + +#: src/synfigapp/actions/editmodeset.cpp:72 +msgid "New Edit Mode" +msgstr "Nouveau mode d'édition" + +#: src/synfigapp/actions/gradientset.cpp:55 +msgid "Apply Default Gradient" +msgstr "Appliquer le dégradé par défaut" + +#: src/synfigapp/actions/groupaddlayers.cpp:49 +msgid "Add Layers to Group" +msgstr "Ajouter les calques au groupe" + +#: src/synfigapp/actions/groupaddlayers.cpp:73 +msgid "Layer to be added to group" +msgstr "Calques à ajouter au groupe" + +#: src/synfigapp/actions/groupaddlayers.cpp:79 +msgid "Name of the Group to add the Layers to" +msgstr "Nom du groupe auquel ajouter les calques" + +#: src/synfigapp/actions/groupremove.cpp:49 +msgid "Remove Group" +msgstr "Supprimer le groupe" + +#: src/synfigapp/actions/groupremove.cpp:73 +msgid "Name of the Group to remove" +msgstr "Nom du groupe à supprimer" + +#: src/synfigapp/actions/groupremovelayers.cpp:50 +msgid "Remove Layers from a Group" +msgstr "Enlever les calques d'un groupe" + +#: src/synfigapp/actions/groupremovelayers.cpp:74 +msgid "Layer to be removed from group" +msgstr "Calques à supprimer du groupe" + +#: src/synfigapp/actions/grouprename.cpp:49 +msgid "Rename Group" +msgstr "Renommer un groupe" + +#: src/synfigapp/actions/grouprename.cpp:72 +msgid "Old Group" +msgstr "Ancien groupe" + +#: src/synfigapp/actions/grouprename.cpp:73 +msgid "Name of the Group to rename" +msgstr "Nom du groupe à renomer" + +#: src/synfigapp/actions/grouprename.cpp:77 +msgid "New Group" +msgstr "Nouveau groupe" + +#: src/synfigapp/actions/grouprename.cpp:78 +msgid "New name for group" +msgstr "Nouveau nom du groupe" + +#: src/synfigapp/actions/grouprename.cpp:123 +#, c-format +msgid "A group with the name \"%s\" already exists!" +msgstr "Il existe déjà un groupe du nom de \"%s\" !" + +#: src/synfigapp/actions/keyframeadd.cpp:49 +msgid "Add Keyframe" +msgstr "Ajouter une image clé" + +#: src/synfigapp/actions/keyframeadd.cpp:74 +#: src/synfigapp/actions/keyframeset.cpp:78 +msgid "New Keyframe" +msgstr "Nouvelle image clé" + +#: src/synfigapp/actions/keyframeadd.cpp:75 +#: src/synfigapp/actions/keyframeset.cpp:79 +msgid "Keyframe to be added" +msgstr "Image clé à ajouter" + +#: src/synfigapp/actions/keyframeadd.cpp:114 +#: src/synfigapp/actions/keyframeduplicate.cpp:138 +#: src/synfigapp/actions/keyframeduplicate.cpp:217 +#: src/synfigapp/actions/keyframeremove.cpp:219 +#: src/synfigapp/actions/keyframeset.cpp:128 +msgid "A Keyframe already exists at this point in time" +msgstr "Une image clé existe déjà à cet endroit" + +#: src/synfigapp/actions/keyframeadd.cpp:117 +#: src/synfigapp/actions/keyframeduplicate.cpp:220 +#: src/synfigapp/actions/keyframeremove.cpp:222 +msgid "This keyframe is already in the ValueNode" +msgstr "Cette image clé est déjà dans le nœud de valeur" + +#: src/synfigapp/actions/keyframeduplicate.cpp:53 +msgid "Duplicate Keyframe" +msgstr "Dupliquer l'image clé" + +#: src/synfigapp/actions/keyframeduplicate.cpp:80 +msgid "Keyframe to be duplicated" +msgstr "Image clé à dupliquer" + +#: src/synfigapp/actions/keyframeduplicate.cpp:102 +msgid " (Duplicate)" +msgstr "(Dupliquée)" + +#: src/synfigapp/actions/keyframeduplicate.cpp:135 +#: src/synfigapp/actions/keyframeremove.cpp:120 +#: src/synfigapp/actions/keyframeset.cpp:377 +#: src/synfigapp/actions/keyframewaypointset.cpp:129 +msgid "Unable to find the given keyframe" +msgstr "Impossible de trouver l'image clé donnée" + +#: src/synfigapp/actions/keyframeremove.cpp:53 +msgid "Remove Keyframe" +msgstr "Supprimer l'image clé" + +#: src/synfigapp/actions/keyframeremove.cpp:79 +msgid "Keyframe to be removed" +msgstr "Image clé à supprimer" + +#: src/synfigapp/actions/keyframeset.cpp:53 +msgid "Set Keyframe" +msgstr "Configurer l'image clé" + +#: src/synfigapp/actions/keyframeset.cpp:385 +msgid "" +"Cannot change keyframe time because another keyframe already exists with " +"that time." +msgstr "" +"Impossible de déplacer l'image clé car une autre image clé existe déjà à cet " +"endroit" + +#: src/synfigapp/actions/keyframesetdelta.cpp:53 +msgid "Set Keyframe Delta" +msgstr "Définir le delta de l'image clé" + +#: src/synfigapp/actions/keyframesetdelta.cpp:82 +msgid "Delta" +msgstr "Delta" + +#: src/synfigapp/actions/keyframewaypointset.cpp:53 +msgid "Set Waypoints at Keyframe" +msgstr "Définir un http://rore.dyndns.org/rore/synfig/core_fr.po à l'image clé" + +#: src/synfigapp/actions/keyframewaypointset.cpp:82 +#: src/synfigapp/actions/waypointsetsmart.cpp:95 +msgid "Waypoint Model" +msgstr "Modèle de point de passage" + +#: src/synfigapp/actions/layeractivate.cpp:50 +#: src/synfigapp/actions/layeractivate.cpp:71 +#: src/synfigapp/actions/layeractivate.cpp:75 +msgid "Activate Layer" +msgstr "Activer le calque" + +#: src/synfigapp/actions/layeractivate.cpp:76 +msgid "Deactivate Layer" +msgstr "Désactiver le calque" + +#: src/synfigapp/actions/layeractivate.cpp:90 +msgid "New Status" +msgstr "Nouvel état" + +#: src/synfigapp/actions/layeractivate.cpp:91 +msgid "The new status of the layer" +msgstr "Le nouvel état du calque" + +#: src/synfigapp/actions/layeractivate.cpp:141 +#: src/synfigapp/actions/layeradd.cpp:144 +#: src/synfigapp/actions/layerduplicate.cpp:135 +#: src/synfigapp/actions/layerencapsulate.cpp:191 +#: src/synfigapp/actions/layerlower.cpp:140 +#: src/synfigapp/actions/layermove.cpp:161 +#: src/synfigapp/actions/layermove.cpp:234 +#: src/synfigapp/actions/layerraise.cpp:137 +#: src/synfigapp/actions/layerremove.cpp:134 +msgid "This layer doesn't exist anymore." +msgstr "Ce calque n'existe plus." + +#: src/synfigapp/actions/layeradd.cpp:50 src/synfigapp/actions/layeradd.cpp:71 +#: src/synfigapp/actions/layeradd.cpp:73 +msgid "Add Layer" +msgstr "Ajouter un calque" + +#: src/synfigapp/actions/layeradd.cpp:83 +msgid "Layer to be added" +msgstr "Calque à ajouter" + +#: src/synfigapp/actions/layerduplicate.cpp:52 +#: src/synfigapp/actions/layerduplicate.cpp:72 +msgid "Duplicate Layer" +msgstr "Dupliquer le calque" + +#: src/synfigapp/actions/layerduplicate.cpp:72 +msgid "Duplicate Layers" +msgstr "Dupliquer les calques" + +#: src/synfigapp/actions/layerduplicate.cpp:82 +msgid "Layer to be duplicated" +msgstr "Calque à dupliquer" + +#: src/synfigapp/actions/layerduplicate.cpp:141 +#: src/synfigapp/actions/layerencapsulate.cpp:200 +#: src/synfigapp/actions/layerremove.cpp:144 +msgid "This layer doesn't belong to this canvas anymore" +msgstr "Ce calque n'appartient plus à ce canevas" + +#: src/synfigapp/actions/layerencapsulate.cpp:72 +msgid "Encapsulate Layer" +msgstr "Encapsuler le calque" + +#: src/synfigapp/actions/layerencapsulate.cpp:72 +msgid "Encapsulate Layers" +msgstr "Encapsuler les calques" + +#: src/synfigapp/actions/layerencapsulate.cpp:82 +msgid "Layer to be encapsulated" +msgstr "Calque à encapsuler" + +#: src/synfigapp/actions/layerencapsulate.cpp:141 +msgid "No layers to encapsulate" +msgstr "Pas de calque à encapsuler" + +#: src/synfigapp/actions/layerencapsulate.cpp:194 +msgid "This layer doesn't have a parent canvas" +msgstr "Ce calque n'a pas de canevas parent" + +#: src/synfigapp/actions/layerencapsulate.cpp:203 +msgid "get_canvas()!=subcanvas" +msgstr "" + +#: src/synfigapp/actions/layerlower.cpp:51 +#: src/synfigapp/actions/layerlower.cpp:71 +msgid "Lower Layer" +msgstr "Descendre le calque" + +#: src/synfigapp/actions/layerlower.cpp:71 +msgid "Lower Layers" +msgstr "Descendre les calques" + +#: src/synfigapp/actions/layerlower.cpp:81 +msgid "Layer to be lowered" +msgstr "Calque à descendre" + +#: src/synfigapp/actions/layermove.cpp:50 +#: src/synfigapp/actions/layermove.cpp:74 +#: src/synfigapp/actions/layermove.cpp:76 +msgid "Move Layer" +msgstr "Déplacer le calque" + +#: src/synfigapp/actions/layermove.cpp:86 +#: src/synfigapp/actions/layersetdesc.cpp:86 +msgid "Layer to be moved" +msgstr "Calque à déplacer" + +#: src/synfigapp/actions/layermove.cpp:90 +msgid "New Index" +msgstr "Nouvel index" + +#: src/synfigapp/actions/layermove.cpp:91 +msgid "Where the layer is to be moved to" +msgstr "Où déplacer le calque" + +#: src/synfigapp/actions/layermove.cpp:95 +msgid "Destination Canvas" +msgstr "Canevas de destination" + +#: src/synfigapp/actions/layermove.cpp:96 +msgid "The canvas the layer is to be moved to" +msgstr "Canevas où déplacer le calque" + +#: src/synfigapp/actions/layermove.cpp:170 +msgid "You cannot directly move layers across compositions" +msgstr "" +"Vous ne pouvez pas déplacer les calques directement d'une composition à " +"l'autre" + +#: src/synfigapp/actions/layerparamconnect.cpp:49 +msgid "Connect Layer Parameter" +msgstr "Connecter le paramètre de calque" + +#: src/synfigapp/actions/layerparamconnect.cpp:76 +#: src/synfigapp/actions/layerparamdisconnect.cpp:79 +#: src/synfigapp/actions/layerparamset.cpp:76 +msgid "Param" +msgstr "Paramètre" + +#: src/synfigapp/actions/layerparamconnect.cpp:147 +msgid "Layer did not recognize parameter name" +msgstr "Nom de paramètre inconnu pour ce calque" + +#: src/synfigapp/actions/layerparamconnect.cpp:150 +msgid "Bad connection" +msgstr "Mauvaise connexion" + +#: src/synfigapp/actions/layerparamdisconnect.cpp:50 +msgid "Disconnect Layer Parameter" +msgstr "Déconnecter le paramètre de calque" + +#: src/synfigapp/actions/layerparamdisconnect.cpp:135 +msgid "Layer Parameter is not connected to anything" +msgstr "Le paramètre de calque n'est connecté à rien" + +#: src/synfigapp/actions/layerparamset.cpp:49 +msgid "Set Layer Parameter" +msgstr "Définir le paramètre de calque" + +#: src/synfigapp/actions/layerparamset.cpp:132 +msgid "ValueNode attached to Parameter." +msgstr "Nœud de valeur lié au paramètre" + +#: src/synfigapp/actions/layerparamset.cpp:137 +#: src/synfigapp/actions/layerparamset.cpp:157 +msgid "Layer did not accept parameter." +msgstr "Ce calque n'accepte pas ce paramètre" + +#: src/synfigapp/actions/layerraise.cpp:51 +#: src/synfigapp/actions/layerraise.cpp:71 +msgid "Raise Layer" +msgstr "Monter le calque" + +#: src/synfigapp/actions/layerraise.cpp:71 +msgid "Raise Layers" +msgstr "Monter les calques" + +#: src/synfigapp/actions/layerraise.cpp:81 +msgid "Layer to be raised" +msgstr "Calque à monter" + +#: src/synfigapp/actions/layerremove.cpp:50 +#: src/synfigapp/actions/layerremove.cpp:70 +msgid "Remove Layer" +msgstr "Supprimer le calque" + +#: src/synfigapp/actions/layerremove.cpp:70 +msgid "Remove Layers" +msgstr "Supprimer les calques" + +#: src/synfigapp/actions/layerremove.cpp:80 +msgid "Layer to be deleted" +msgstr "Calque à supprimer" + +#: src/synfigapp/actions/layersetdesc.cpp:50 +#: src/synfigapp/actions/layersetdesc.cpp:73 +msgid "Set Layer Description" +msgstr "Décrire le calque" + +#. TRANSLATORS: this is the string used in the history dialog when renaming a layer to/from its default name +#: src/synfigapp/actions/layersetdesc.cpp:75 +#: src/synfigapp/actions/layersetdesc.cpp:76 +msgid "[default]" +msgstr "" + +#: src/synfigapp/actions/layersetdesc.cpp:90 +msgid "New Description" +msgstr "Nouvelle description" + +#: src/synfigapp/actions/layersetdesc.cpp:91 +msgid "Enter a new description for this layer" +msgstr "Entrez une nouvelle description pour ce calque" + +#: src/synfigapp/actions/timepointscopy.cpp:58 +msgid "Copy Time Points" +msgstr "Copier les points temporels" + +#: src/synfigapp/actions/timepointscopy.cpp:83 +#: src/synfigapp/actions/timepointsdelete.cpp:82 +#: src/synfigapp/actions/timepointsmove.cpp:83 +msgid "New Selected Layer" +msgstr "Nouveau calque sélectionné" + +#: src/synfigapp/actions/timepointscopy.cpp:84 +#: src/synfigapp/actions/timepointsdelete.cpp:83 +#: src/synfigapp/actions/timepointsmove.cpp:84 +msgid "A layer to add to our selected list" +msgstr "Calque à ajouter à la liste sélectionnée" + +#: src/synfigapp/actions/timepointscopy.cpp:90 +#: src/synfigapp/actions/timepointsdelete.cpp:89 +#: src/synfigapp/actions/timepointsmove.cpp:90 +msgid "New Selected Canvas" +msgstr "Nouveau canevas sélectionné" + +#: src/synfigapp/actions/timepointscopy.cpp:91 +#: src/synfigapp/actions/timepointsdelete.cpp:90 +#: src/synfigapp/actions/timepointsmove.cpp:91 +msgid "A canvas to add to our selected list" +msgstr "Canevas à ajouter à la liste sélectionnée" + +#: src/synfigapp/actions/timepointscopy.cpp:97 +#: src/synfigapp/actions/timepointsdelete.cpp:96 +#: src/synfigapp/actions/timepointsmove.cpp:97 +msgid "New Selected ValueBase" +msgstr "Nouvelle valeur de base sélectionnée" + +#: src/synfigapp/actions/timepointscopy.cpp:98 +#: src/synfigapp/actions/timepointsdelete.cpp:97 +#: src/synfigapp/actions/timepointsmove.cpp:98 +msgid "A valuenode's description to add to our selected list" +msgstr "Descriptions de nœud de valeur à ajouter à la liste sélectionnée" + +#: src/synfigapp/actions/timepointscopy.cpp:104 +#: src/synfigapp/actions/timepointsdelete.cpp:103 +#: src/synfigapp/actions/timepointsmove.cpp:104 +msgid "New Selected Time Point" +msgstr "Nouveau point temporel sélectionné" + +#: src/synfigapp/actions/timepointscopy.cpp:105 +#: src/synfigapp/actions/timepointsdelete.cpp:104 +#: src/synfigapp/actions/timepointsmove.cpp:105 +msgid "A time point to add to our selected list" +msgstr "Un point temporel à ajouter à votre liste sélectionnée" + +#: src/synfigapp/actions/timepointscopy.cpp:110 +#: src/synfigapp/actions/timepointsmove.cpp:110 +msgid "Time adjustment" +msgstr "Ajustement temporel" + +#: src/synfigapp/actions/timepointscopy.cpp:111 +#: src/synfigapp/actions/timepointsmove.cpp:111 +msgid "The amount of time to adjust all the selected points" +msgstr "La durée à laquelle ajuster tous les points sélectionnés" + +#: src/synfigapp/actions/timepointsdelete.cpp:58 +msgid "Delete Time Points" +msgstr "Supprimer les points temporels" + +#: src/synfigapp/actions/timepointsmove.cpp:58 +msgid "Move Time Points" +msgstr "Déplacer les points temporels" + +#: src/synfigapp/actions/valuedescconnect.cpp:54 +msgid "Connect" +msgstr "Connecter" + +#. TRANSLATORS: This is used in the 'history' dialog when a connection is made. +#: src/synfigapp/actions/valuedescconnect.cpp:75 +#, c-format +msgid "Connect '%s' to '%s'" +msgstr "Connecter \"%s\" à \"%s\"" + +#: src/synfigapp/actions/valuedescconnect.cpp:86 +msgid "Destination ValueDesc" +msgstr "Description de valeur (ValueDesc) de destination" + +#: src/synfigapp/actions/valuedescconnect.cpp:90 +#: src/synfigapp/actions/valuenodereplace.cpp:90 +msgid "Source ValueNode" +msgstr "Nœud de valeur source" + +#: src/synfigapp/actions/valuedescconnect.cpp:95 +msgid "Source ValueNode Name" +msgstr "Nom du nœud de valeur source" + +#: src/synfigapp/actions/valuedescconnect.cpp:239 +#: src/synfigapp/actions/valuedescdisconnect.cpp:217 +msgid "ValueDesc is not recognized or supported." +msgstr "Description de valeur (ValueDesc) non reconnue ou supportée." + +#: src/synfigapp/actions/valuedescconvert.cpp:60 +msgid "Convert" +msgstr "Convertir" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is converted. The first %s is what is converted, the 2nd is the local name of the ValueNode's type. +#: src/synfigapp/actions/valuedescconvert.cpp:82 +#, c-format +msgid "Convert '%s' to ValueNode type '%s'" +msgstr "" + +#: src/synfigapp/actions/valuedescconvert.cpp:98 +msgid "The type of ValueNode that you want to be converted to" +msgstr "Type de nœud de valeur vers lequel vous voulez effectuer la conversion" + +#: src/synfigapp/actions/valuedescconvert.cpp:166 +msgid "Unable to decipher ValueDesc (Bug?)" +msgstr "Impossible de décoder la description de valeur (ValueDesc). Bogue ?" + +#: src/synfigapp/actions/valuedescconvert.cpp:171 +msgid "Unable to create new value node" +msgstr "Impossible de créer un nouveau nœud de valeur" + +#: src/synfigapp/actions/valuedescdisconnect.cpp:56 +msgid "Disconnect" +msgstr "Déconnecter" + +#. TRANSLATORS: This is used in the History dialog when a ValueNode is disconnected. +#: src/synfigapp/actions/valuedescdisconnect.cpp:78 +#, c-format +msgid "Disconnect %s" +msgstr "Déconnecter %s" + +#: src/synfigapp/actions/valuedescexport.cpp:56 +msgid "Export" +msgstr "Exporter" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is exported. The first %s is what is exported, the 2nd is the name it is given. +#: src/synfigapp/actions/valuedescexport.cpp:77 +#, c-format +msgid "Export '%s' as '%s'" +msgstr "Exporter \"%s\" en tant que \"%s\"" + +#: src/synfigapp/actions/valuedescexport.cpp:93 +msgid "The name that you want this value to be exported as" +msgstr "Nom sous lequel vous voulez exporter cette valeur" + +#: src/synfigapp/actions/valuedescexport.cpp:151 +msgid "Can only export Canvas when used as constant parameter" +msgstr "Le canevas ne peut être exporté qu'en tant que paramètre constant." + +#: src/synfigapp/actions/valuedescexport.cpp:174 +msgid "ValueBase is already exported" +msgstr "La valeur de base est déjà exportée" + +#: src/synfigapp/actions/valuedescexport.cpp:181 +msgid "Unable to export parameter. (Bug?)" +msgstr "Impossible d'exporter le paramètre. (Bogue ?)" + +#: src/synfigapp/actions/valuedesclink.cpp:52 +msgid "Link" +msgstr "Lier" + +#: src/synfigapp/actions/valuedesclink.cpp:75 +msgid "ValueDesc to link" +msgstr "Description de valeur (ValueDesc) vers lien" + +#: src/synfigapp/actions/valuedesclink.cpp:112 +msgid "Cannot link two different exported values ('" +msgstr "Impossible de lier deux valeurs exportées différentes (\"" + +#: src/synfigapp/actions/valuedesclink.cpp:113 +msgid "' and '" +msgstr "\" et \"" + +#: src/synfigapp/actions/valuedesclink.cpp:114 +msgid "')" +msgstr "\")" + +#: src/synfigapp/actions/valuedesclink.cpp:119 +msgid "Used exported ValueNode ('" +msgstr "Utilisation du nœud de valeur exporté (\"" + +#: src/synfigapp/actions/valuedesclink.cpp:119 +msgid "')." +msgstr "\")." + +#: src/synfigapp/actions/valuedesclink.cpp:126 +msgid "Using the only available ValueNode." +msgstr "Utilisation du seul nœud de valeur disponible." + +#: src/synfigapp/actions/valuedesclink.cpp:139 +#: src/synfigapp/actions/valuedesclink.cpp:145 +msgid "Using the most referenced ValueNode." +msgstr "Utilisation du nœud de valeur le plus référencé." + +#: src/synfigapp/actions/valuedesclink.cpp:153 +#: src/synfigapp/actions/valuedesclink.cpp:161 +msgid "There's a tie for most referenced; using the animated ValueNode." +msgstr "Nombre de références égales. Utilisation du nœud de valeur animé." + +#: src/synfigapp/actions/valuedesclink.cpp:174 +#: src/synfigapp/actions/valuedesclink.cpp:180 +msgid "" +"There's a tie for most referenced, and both are animated; using the one with " +"the most waypoints." +msgstr "" +"Nombre de références égales, et les deux nœuds sont animés. Utilisation de " +"celui avec le plus de points de passage." + +#: src/synfigapp/actions/valuedesclink.cpp:189 +#: src/synfigapp/actions/valuedesclink.cpp:195 +msgid "Everything is tied; using the least recently modified value." +msgstr "" +"Égalité à tous les niveaux, utilisation de la valeur la plus anciennement " +"modifiée." + +#: src/synfigapp/actions/valuedesclink.cpp:201 +msgid "Absolutely everything is tied." +msgstr "Égalité à tous les niveaux." + +#: src/synfigapp/actions/valuedesclink.cpp:209 +#, c-format +msgid "Cannot link two values of different types ('%s' and '%s')" +msgstr "Impossible de lier deux valeurs de type différent (\"%s\" et \"%s\")" + +#: src/synfigapp/actions/valuedesclink.cpp:246 +msgid "No ValueNodes were available, so one was created." +msgstr "Pas de nœud de valeur disponible, création d'un nouveau." + +#: src/synfigapp/actions/valuedescset.cpp:59 +msgid "Set ValueDesc" +msgstr "Définir la description de valeur (ValueDesc)" + +#: src/synfigapp/actions/valuedescset.cpp:80 +#, c-format +msgid "Set %s" +msgstr "Définir %s" + +#: src/synfigapp/actions/valuedescset.cpp:180 +#: src/synfigapp/actions/valuedescset.cpp:205 +#: src/synfigapp/actions/valuedescset.cpp:273 +#: src/synfigapp/actions/valuedescset.cpp:331 +#: src/synfigapp/actions/valuedescset.cpp:368 +#: src/synfigapp/actions/valuedescset.cpp:393 +#: src/synfigapp/actions/valuedescset.cpp:411 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:185 +msgid "Unable to find action value_desc_set (bug)" +msgstr "Impossible de trouver l'action value_desc_set (Bogue)" + +#: src/synfigapp/actions/valuedescset.cpp:262 +#, c-format +msgid "Bad type for composite (%s)" +msgstr "Type invalide pour un composé (%s)" + +#: src/synfigapp/actions/valuedescset.cpp:321 +#, c-format +msgid "Bad type for radial composite (%s)" +msgstr "Type invalide pour un composé radial (%s)" + +#: src/synfigapp/actions/valuedescset.cpp:497 +#: src/synfigapp/actions/valuedescset.cpp:544 +msgid "Direct manipulation of this ValueNode type is not yet supported" +msgstr "" +"La manipulation directe de ce nœud de valeur n'est pas encore disponible" + +#: src/synfigapp/actions/valuedescset.cpp:542 +msgid "You must be in Animate-Editing-Mode to directly manipulate this value" +msgstr "" +"Vous devez être en mode édition d'animation pour manipuler directement cette " +"valeur" + +#: src/synfigapp/actions/valuedescset.cpp:564 +msgid "Unsupported ValueDesc type" +msgstr "Description de valeur (ValueDesc) non supportée." + +#: src/synfigapp/actions/valuenodeadd.cpp:49 +msgid "Add ValueNode" +msgstr "Ajouter un nœud de valeur" + +#: src/synfigapp/actions/valuenodeadd.cpp:72 +msgid "New ValueNode" +msgstr "Nouveau nœud de valeur" + +#: src/synfigapp/actions/valuenodeadd.cpp:73 +msgid "ValueNode to be added" +msgstr "Nœud de valeur à ajouter" + +#: src/synfigapp/actions/valuenodeadd.cpp:122 +msgid "Parameter appears to already be exported" +msgstr "Le paramètre semble déjà exporté" + +#: src/synfigapp/actions/valuenodeadd.cpp:131 +msgid "Another exported ValueBase with this name already exists" +msgstr "Une autre valeur de base de même nom existe déjà" + +#: src/synfigapp/actions/valuenodeadd.cpp:135 +msgid "Exception caught on Add ValueNode." +msgstr "Une exception est survenue lors de l'ajout du nœud de valeur" + +#: src/synfigapp/actions/valuenodeadd.cpp:154 +msgid "Exception caught on Remove ValueNode." +msgstr "Un exception est survenue lors de la suppression du nœud de valeur" + +#: src/synfigapp/actions/valuenodeconstset.cpp:49 +msgid "Set ValueNode_Const" +msgstr "Définir ValueNode_Const" + +#: src/synfigapp/actions/valuenodeconstset.cpp:73 +#: src/synfigapp/actions/valuenoderename.cpp:82 +msgid "ValueNode_Const" +msgstr "" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:49 +msgid "Insert Item" +msgstr "Insérer un élément" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:83 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:85 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:84 +msgid "Origin" +msgstr "Origine" + +#: src/synfigapp/actions/valuenodedynamiclistinsert.cpp:87 +msgid "ValueNode to insert" +msgstr "Nœud de valeur à insérer" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:51 +msgid "Insert Item (Smart)" +msgstr "Insérer un élément (Intelligent)" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:206 +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:260 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:159 +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:177 +msgid "Unable to find action (bug)" +msgstr "Impossible de trouver l'action (Bogue)" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:222 +msgid "Unable to find action \"activepoint_set_off\"" +msgstr "Impossible de trouver l'action \"activepoint_set_off\"" + +#: src/synfigapp/actions/valuenodedynamiclistinsertsmart.cpp:241 +msgid "Unable to find action \"activepoint_set_on\"" +msgstr "Impossible de trouver l'action \"activepoint_set_on\"" + +#: src/synfigapp/actions/valuenodedynamiclistloop.cpp:49 +msgid "Loop" +msgstr "Fermer" + +#: src/synfigapp/actions/valuenodedynamiclistremove.cpp:49 +msgid "Remove Item" +msgstr "Supprimer l'élément" + +#: src/synfigapp/actions/valuenodedynamiclistremovesmart.cpp:50 +msgid "Remove Item (Smart)" +msgstr "Supprimer l'élément (intelligemment)" + +#: src/synfigapp/actions/valuenodedynamiclistrotateorder.cpp:49 +msgid "Rotate Order" +msgstr "Inverser l'ordre" + +#: src/synfigapp/actions/valuenodedynamiclistunloop.cpp:49 +msgid "Unloop" +msgstr "Ouvrir" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:49 +msgid "Connect ValueNode Link" +msgstr "Connecter le lien du nœud de valeur" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:73 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:75 +msgid "Parent ValueNode" +msgstr "Nœud de valeur parent" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:77 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:79 +msgid "Index" +msgstr "Index" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:81 +msgid "ValueNode to be connected" +msgstr "Nœud de valeur à connecter" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:132 +#: src/synfigapp/actions/valuenodelinkconnect.cpp:151 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:135 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:159 +#, c-format +msgid "Bad index, too big. LinkCount=%d, Index=%d" +msgstr "Erreur d'index, trop grand. LinkCount=%d, Index=%d" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:137 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:140 +msgid "Parent would not accept link" +msgstr "Le parent à refusé le lien" + +#: src/synfigapp/actions/valuenodelinkconnect.cpp:154 +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:162 +msgid "Parent would not accept old link" +msgstr "Le parent à refusé l'ancien lien" + +#: src/synfigapp/actions/valuenodelinkdisconnect.cpp:50 +msgid "Disconnect ValueNode Link" +msgstr "Déconnecter le lien du nœud de valeur" + +#: src/synfigapp/actions/valuenoderemove.cpp:50 +msgid "Unexport" +msgstr "Annuler l'export" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is unexported. +#: src/synfigapp/actions/valuenoderemove.cpp:71 +#, c-format +msgid "Unexport '%s'" +msgstr "Annuler l'export de \"%s\"" + +#: src/synfigapp/actions/valuenoderename.cpp:50 +msgid "Rename ValueNode" +msgstr "Renommer le nœud de valeur" + +#. TRANSLATORS: This is used in the 'history' dialog when a ValueNode is renamed. +#: src/synfigapp/actions/valuenoderename.cpp:71 +#, c-format +msgid "Rename ValueNode from '%s' to '%s'" +msgstr "Renommer le nœud de valeur \"%s\" en \"%s\"" + +#: src/synfigapp/actions/valuenoderename.cpp:87 +msgid "The new name of the ValueNode" +msgstr "Le nouveau nom du nœud de valeur" + +#: src/synfigapp/actions/valuenoderename.cpp:151 +msgid "A ValueNode with this ID already exists in this canvas" +msgstr "Un nœud de valeur avec cet identifiant existe déjà dans le canevas" + +#: src/synfigapp/actions/valuenoderename.cpp:169 +msgid "A ValueNode with the old ID already exists in this canvas (BUG)" +msgstr "" +"Un nœud de valeur avant l'ancien identifiant existe déjà dans ce canevas " +"(bogue)" + +#: src/synfigapp/actions/valuenodereplace.cpp:49 +msgid "Replace ValueNode" +msgstr "Remplacer le nœud de valeur" + +#: src/synfigapp/actions/valuenodereplace.cpp:85 +msgid "Destination ValueNode" +msgstr "Nœud de valeur destination" + +#: src/synfigapp/actions/valuenodereplace.cpp:86 +msgid "ValueNode to replaced" +msgstr "Nœud de valeur à remplacer" + +#: src/synfigapp/actions/valuenodereplace.cpp:91 +msgid "ValueNode that will replace the destination" +msgstr "Nœud de valeur qui va remplacer celui de destination" + +#: src/synfigapp/actions/valuenodereplace.cpp:137 +#: src/synfigapp/actions/valuenodereplace.cpp:193 +msgid "Attempted to replace valuenode with itself" +msgstr "Tentative de remplacer le nœud de valeur avec lui même" + +#: src/synfigapp/actions/valuenodereplace.cpp:140 +#: src/synfigapp/actions/valuenodereplace.cpp:196 +msgid "You cannot replace ValueNodes with different types!" +msgstr "Vous ne pouvez pas remplacer des nœud de valeur de types différents !" + +#: src/synfigapp/actions/valuenodereplace.cpp:163 +#: src/synfigapp/actions/valuenodereplace.cpp:201 +msgid "Nothing to replace." +msgstr "Rien à remplacer" + +#: src/synfigapp/actions/valuenodereplace.cpp:170 +#: src/synfigapp/actions/valuenodereplace.cpp:208 +msgid "Action Failure. This is a bug. Please report it." +msgstr "Échec de l'action. Ceci est un bogue (Signalez le, s'il vous plaît)" + +#: src/synfigapp/actions/valuenodereplace.cpp:188 +msgid "This action cannot be undone under these circumstances." +msgstr "Cette action ne peut être annulée dans ces circonstances." + +#: src/synfigapp/actions/valuenodereplace.cpp:213 +msgid ": (Undo) " +msgstr ": (Annuler)" + +#: src/synfigapp/actions/waypointadd.cpp:50 +#: src/synfigapp/actions/waypointsetsmart.cpp:59 +msgid "Add Waypoint" +msgstr "Ajouter un point de passage" + +#: src/synfigapp/actions/waypointadd.cpp:80 +#: src/synfigapp/actions/waypointsetsmart.cpp:89 +msgid "New Waypoint" +msgstr "Nouveau point de passage" + +#: src/synfigapp/actions/waypointadd.cpp:81 +#: src/synfigapp/actions/waypointsetsmart.cpp:90 +#: src/synfigapp/actions/waypointsimpleadd.cpp:79 +msgid "Waypoint to be added" +msgstr "Point de passage à ajouter" + +#: src/synfigapp/actions/waypointadd.cpp:87 +#: src/synfigapp/actions/waypointsetsmart.cpp:101 +msgid "Time where waypoint is to be added" +msgstr "Moment où ajouter le point de passage" + +#: src/synfigapp/actions/waypointadd.cpp:189 +#, c-format +msgid "A Waypoint already exists at this point in time (%s)" +msgstr "Un point de passage existe déjà à cet endroit (%s)" + +#: src/synfigapp/actions/waypointadd.cpp:192 +#: src/synfigapp/actions/waypointremove.cpp:180 +msgid "This waypoint is already in the ValueNode" +msgstr "Ce point de passage est déjà dans le nœud de valeur" + +#: src/synfigapp/actions/waypointremove.cpp:49 +msgid "Remove Waypoint" +msgstr "Supprimer le point de passage" + +#: src/synfigapp/actions/waypointremove.cpp:74 +msgid "ValueNode (Animated)" +msgstr "Nœud de valeur (Animé)" + +#: src/synfigapp/actions/waypointremove.cpp:79 +msgid "Waypoint to be Removed" +msgstr "Point de passage à supprimer" + +#: src/synfigapp/actions/waypointremove.cpp:124 +#, c-format +msgid "UniqueID mismatch, iter=%d, waypoint=%d" +msgstr "Identifiants uniques non correspondants, iter=%d, waypoint=%d" + +#: src/synfigapp/actions/waypointremove.cpp:127 +#, c-format +msgid "Time mismatch iter=%s, waypoint=%s" +msgstr "Temps non correspondant, iter=%s, waypoint=%s" + +#: src/synfigapp/actions/waypointremove.cpp:141 +msgid "Unable to create ValueNode_Reference" +msgstr "" +"Impossible de créer une réflérence de nœud de valeur (ValueNode_Reference)" + +#: src/synfigapp/actions/waypointremove.cpp:162 +msgid "" +"This animated value node should be empty, but for some reason it isn't. This " +"is a bug. (1)" +msgstr "" +"Ce nœud de valeur animé devrait être vide, mais il ne l'est pas. C'est un " +"bogue (1)" + +#: src/synfigapp/actions/waypointremove.cpp:172 +msgid "" +"This animated value node should be empty, but for some reason it isn't. This " +"is a bug. (2)" +msgstr "" +"Ce nœud de valeur animé devrait être vide, mais il ne l'est pas. C'est un " +"bogue (2)" + +#: src/synfigapp/actions/waypointremove.cpp:177 +msgid "A Waypoint already exists at this point in time" +msgstr "Un point de passage existe déjà à cet endroit" + +#: src/synfigapp/actions/waypointset.cpp:49 +msgid "Set Waypoint" +msgstr "Définir le point de passage" + +#: src/synfigapp/actions/waypointset.cpp:78 +msgid "Waypoint to be changed" +msgstr "Point de passage à modifier" + +#: src/synfigapp/actions/waypointset.cpp:133 +#: src/synfigapp/actions/waypointset.cpp:191 +#: src/synfigapp/actions/waypointset.cpp:235 +#: src/synfigapp/actions/waypointset.cpp:256 +msgid "Unable to find waypoint" +msgstr "Impossible de trouver le point de passage" + +#: src/synfigapp/actions/waypointsimpleadd.cpp:146 +msgid "The waypoint to remove no longer exists" +msgstr "Le point de passage à enlever n'existe plus" + +#: src/synfigapp/action_system.cpp:77 +msgid "Action is not ready." +msgstr "L'action n'est pas prête" + +#: src/synfigapp/action_system.cpp:109 +msgid "This action cannot be undone! Are you sure you want to continue?" +msgstr "" +"Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer ?" + +#: src/synfigapp/action_system.cpp:128 src/synfigapp/action_system.cpp:145 +#: src/synfigapp/action_system.cpp:156 +msgid "Failed" +msgstr "Échec" + +#: src/synfigapp/action_system.cpp:189 +msgid "Successful" +msgstr "Succès" + +#: src/synfigapp/action_system.cpp:222 src/synfigapp/action_system.cpp:224 +msgid " (Undo): " +msgstr "(Annuler) :" + +#: src/synfigapp/action_system.cpp:284 +msgid "Failed to undo." +msgstr "Échec de l'annulation." + +#: src/synfigapp/action_system.cpp:320 src/synfigapp/action_system.cpp:322 +msgid " (Redo): " +msgstr "(Rétablir) :" + +#: src/synfigapp/action_system.cpp:382 +msgid "Failed to redo." +msgstr "Échec du rétablissement " + +#: src/synfigapp/action_system.cpp:698 +msgid "State restore failure" +msgstr "Échec de la récupération de l'état" + +#: src/synfigapp/canvasinterface.cpp:160 +msgid "Action Not Ready, unable to change mode" +msgstr "Action non prête. Impossible de changer de mode" + +#: src/synfigapp/canvasinterface.cpp:166 +msgid "Unable to change mode" +msgstr "Impossible de changer de mode" + +#: src/synfigapp/canvasinterface.cpp:183 +msgid "Add Layer To" +msgstr "Ajouter un calque à" + +#: src/synfigapp/canvasinterface.cpp:288 src/synfigapp/canvasinterface.cpp:349 +#: src/synfigapp/canvasinterface.cpp:382 +msgid "Action Not Ready" +msgstr "Action non prête" + +#: src/synfigapp/canvasinterface.cpp:294 src/synfigapp/canvasinterface.cpp:356 +#: src/synfigapp/canvasinterface.cpp:389 src/synfigapp/canvasinterface.cpp:477 +#: src/synfigapp/canvasinterface.cpp:666 src/synfigapp/canvasinterface.cpp:691 +#: src/synfigapp/canvasinterface.cpp:744 +msgid "Action Failed." +msgstr "L'action a échoué" + +#: src/synfigapp/canvasinterface.cpp:316 +msgid "Move Action Not Ready" +msgstr "Action de déplacement non prête" + +#: src/synfigapp/canvasinterface.cpp:322 +msgid "Move Action Failed." +msgstr "L'action de déplacement a échoué" + +#: src/synfigapp/canvasinterface.cpp:365 +msgid "Empty name!" +msgstr "Nom vide !" + +#: src/synfigapp/canvasinterface.cpp:542 +msgid "Filename must have an extension!" +msgstr "Le nom de fichier doit comporter une extension !" + +#: src/synfigapp/canvasinterface.cpp:556 +msgid "Unable to open this composition" +msgstr "Impossible d'ouvrir cette composition" + +#: src/synfigapp/canvasinterface.cpp:560 +msgid "Unable to create \"Paste Canvas\" layer" +msgstr "Impossible de créer un calque \"Canevas collé\"" + +#: src/synfigapp/canvasinterface.cpp:575 +msgid "" +"Uncaught exception when attempting\n" +"to open this composition -- " +msgstr "" +"Une exception inconnue est survenue lors de\n" +"la tentative d'ouverture de cette composition --" + +#: src/synfigapp/canvasinterface.cpp:581 +msgid "I don't know how to open images of this type -- " +msgstr "Je ne sais pas ouvrir les images de ce type --" + +#: src/synfigapp/canvasinterface.cpp:736 +#, c-format +msgid "Unnamed%08d" +msgstr "SansNom%08d" + +#: src/synfigapp/canvasinterface.cpp:767 +msgid "" +"The value you are trying to edit is in a composition\n" +"which doesn't seem to be open. Open that composition and you\n" +"should be able to edit this value as normal." +msgstr "" +"Le nœud de valeur que vous essayez de modifier appartient à\n" +"une composition qui semble ne pas être ouverte. Ouvrez cette\n" +"composition et vous devriez être capable de modifier cette valeur." + +#: src/synfigapp/uimanager.cpp:56 src/synfigapp/uimanager.cpp:83 +msgid "(no/yes)" +msgstr "(non/oui)" + +#: src/synfigapp/uimanager.cpp:58 src/synfigapp/uimanager.cpp:85 +msgid "(yes/no)" +msgstr "(oui/non)" + +#: src/synfigapp/uimanager.cpp:110 +msgid "(cancel/ok)" +msgstr "(annuler/valider)" + +#: src/synfigapp/uimanager.cpp:112 +msgid "(ok/cancel)" +msgstr "(valider/annuler)" + +#: src/synfigapp/uimanager.cpp:142 +msgid "error: " +msgstr "erreur :" + +#: src/synfigapp/uimanager.cpp:149 +msgid "warning: " +msgstr "avertissement :" + +#: src/synfigapp/value_desc.cpp:60 +msgid "Layer Parameter" +msgstr "Pparamètre de calque" + +#: src/synfigapp/value_desc.cpp:71 +msgid "Value Node" +msgstr "Nœud de valeur" + +#: src/synfigapp/value_desc.cpp:81 +msgid "Exported ValueNode" +msgstr "Nœud de valeur exporté" diff --git a/synfig-studio/tags/0.61.08/src/Makefile.am b/synfig-studio/tags/0.61.08/src/Makefile.am new file mode 100644 index 0000000..f4111e8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/Makefile.am @@ -0,0 +1,20 @@ +# $Id$ + +MAINTAINERCLEANFILES=Makefile.in +EXTRA_DIST=template.cpp template.h + +SUBDIRS=synfigapp gtkmm + +#if WINDOWSYS_GTKMM +#WINDOWSYS_LIBS=$(top_builddir)/src/gtkmm/libwindowsys.a @GTKMM_LIBS@ +#SUBDIRS=synfigapp gtkmm +#else +#WINDOWSYS_LIBS=$(top_builddir)/src/win32/libwindowsys.a @WIN32_LIBS@ +#SUBDIRS=win32 +#endif + +#bin_PROGRAMS = synfigstudio +#synfigstudio_SOURCES = main.cpp app.cpp app.h instance.cpp instance.h actions.cpp actions.h toolbox.cpp toolbox.h compview.cpp compview.h canvasview.cpp canvasview.h workarea.cpp workarea.h canvasproperties.cpp canvasproperties.h +# view.h view.cpp workarea.cpp workarea.h toolbox.cpp toolbox.h trackview.cpp trackview.h actions.cpp actions.h compview.cpp compview.h +#synfigstudio_LDADD = @SYNFIG_LIBS@ $(WINDOWSYS_LIBS) +#synfigstudio_LDFLAGS=-dlopen self diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/Makefile.am b/synfig-studio/tags/0.61.08/src/gtkmm/Makefile.am new file mode 100644 index 0000000..d14521a --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/Makefile.am @@ -0,0 +1,111 @@ +# $Id$ + +EXTRA_DIST = compview.cpp +MAINTAINERCLEANFILES = Makefile.in $(GLADE_FILES) + +CELLRENDERER_HH = \ + cellrenderer_gradient.h cellrenderer_time.h cellrenderer_timetrack.h cellrenderer_value.h +CELLRENDERER_CC = \ + cellrenderer_gradient.cpp cellrenderer_time.cpp cellrenderer_timetrack.cpp cellrenderer_value.cpp + +WORKAREARENDERER_HH = \ + renderer_bbox.h renderer_canvas.h renderer_dragbox.h renderer_ducks.h renderer_grid.h \ + renderer_guides.h renderer_timecode.h workarearenderer.h +WORKAREARENDERER_CC = \ + renderer_bbox.cpp renderer_canvas.cpp renderer_dragbox.cpp renderer_ducks.cpp renderer_grid.cpp \ + renderer_guides.cpp renderer_timecode.cpp workarearenderer.cpp + +PALETTE_HH = \ + mod_palette/dock_palbrowse.h mod_palette/dock_paledit.h mod_palette/mod_palette.h +PALETTE_CC = \ + mod_palette/dock_palbrowse.cpp mod_palette/dock_paledit.cpp mod_palette/mod_palette.cpp + +MOD_MIRROR_HH = \ + mod_mirror/mod_mirror.h mod_mirror/state_mirror.h +MOD_MIRROR_CC = \ + mod_mirror/mod_mirror.cpp mod_mirror/state_mirror.cpp + +DIALOG_HH = \ + dialog_color.h dialog_gradient.h dialog_keyframe.h dialog_preview.h dialog_setup.h \ + dialog_soundselect.h dialog_waypoint.h +DIALOG_CC = \ + dialog_color.cpp dialog_gradient.cpp dialog_keyframe.cpp dialog_preview.cpp dialog_setup.cpp \ + dialog_soundselect.cpp dialog_waypoint.cpp + +DOCK_HH = \ + dialog_tooloptions.h dock_canvases.h dock_canvasspecific.h dock_children.h dock_curves.h \ + dock_history.h dock_info.h dock_keyframes.h dock_layergroups.h dock_layers.h dock_metadata.h \ + dock_navigator.h dock_params.h dock_timetrack.h dockable.h dockbook.h dockdialog.h dockmanager.h +DOCK_CC = \ + dialog_tooloptions.cpp dock_canvases.cpp dock_canvasspecific.cpp dock_children.cpp dock_curves.cpp \ + dock_history.cpp dock_info.cpp dock_keyframes.cpp dock_layergroups.cpp dock_layers.cpp dock_metadata.cpp \ + dock_navigator.cpp dock_params.cpp dock_timetrack.cpp dockable.cpp dockbook.cpp dockdialog.cpp dockmanager.cpp + +WIDGET_HH = \ + widget_canvaschooser.h widget_color.h widget_coloredit.h widget_compselect.h widget_curves.h \ + widget_defaults.h widget_distance.h widget_enum.h widget_filename.h widget_gradient.h \ + widget_sound.h widget_time.h widget_timeslider.h widget_value.h widget_vector.h widget_waypoint.h \ + widget_waypointmodel.h +WIDGET_CC = \ + widget_canvaschooser.cpp widget_color.cpp widget_coloredit.cpp widget_compselect.cpp widget_curves.cpp \ + widget_defaults.cpp widget_distance.cpp widget_enum.cpp widget_filename.cpp widget_gradient.cpp \ + widget_sound.cpp widget_time.cpp widget_timeslider.cpp widget_value.cpp widget_vector.cpp widget_waypoint.cpp \ + widget_waypointmodel.cpp + +STATE_HH = \ + state_bline.h state_circle.h state_draw.h state_eyedrop.h state_fill.h state_gradient.h \ + state_normal.h state_polygon.h state_rectangle.h state_rotate.h state_scale.h state_sketch.h \ + state_smoothmove.h state_stroke.h state_width.h state_zoom.h +STATE_CC = \ + state_bline.cpp state_circle.cpp state_draw.cpp state_eyedrop.cpp state_fill.cpp state_gradient.cpp \ + state_normal.cpp state_polygon.cpp state_rectangle.cpp state_rotate.cpp state_scale.cpp state_sketch.cpp \ + state_smoothmove.cpp state_stroke.cpp state_width.cpp state_zoom.cpp + +TREEVIEW_HH = \ + childrentree.h keyframetree.h layergrouptree.h layertree.h +TREEVIEW_CC = \ + childrentree.cpp keyframetree.cpp layergrouptree.cpp layertree.cpp + +TREESTORE_HH = \ + canvastreestore.h childrentreestore.h historytreestore.h keyframetreestore.h layergrouptreestore.h \ + layerparamtreestore.h layertreestore.h metadatatreestore.h +TREESTORE_CC = \ + canvastreestore.cpp childrentreestore.cpp historytreestore.cpp keyframetreestore.cpp layergrouptreestore.cpp \ + layerparamtreestore.cpp layertreestore.cpp metadatatreestore.cpp + +DUCKTRANSFORM_HH = ducktransform_rotate.h ducktransform_scale.h ducktransform_translate.h \ + duck.h +DUCKTRANSFORM_CC = \ + duck.cpp + +EVENTS_HH = event_layerclick.h event_mouse.h + +ACTION_MANAGERS_HH = \ + groupactionmanager.h keyframeactionmanager.h layeractionmanager.h +ACTION_MANAGERS_CC = \ + groupactionmanager.cpp keyframeactionmanager.cpp layeractionmanager.cpp + +OTHER_HH = compview.h eventkey.h smach.h \ + about.h adjust_window.h app.h asyncrenderer.h audiocontainer.h autorecover.h canvasoptions.h \ + canvasproperties.h canvasview.h devicetracker.h dialogsettings.h duckmatic.h general.h \ + iconcontroller.h instance.h ipc.h keymapsettings.h module.h onemoment.h preview.h renddesc.h \ + render.h splash.h statemanager.h toolbox.h valuelink.h workarea.h zoomdial.h +OTHER_CC = main.cpp \ + about.cpp adjust_window.cpp app.cpp asyncrenderer.cpp audiocontainer.cpp autorecover.cpp canvasoptions.cpp \ + canvasproperties.cpp canvasview.cpp devicetracker.cpp dialogsettings.cpp duckmatic.cpp iconcontroller.cpp \ + instance.cpp ipc.cpp keymapsettings.cpp module.cpp onemoment.cpp preview.cpp renddesc.cpp render.cpp \ + splash.cpp statemanager.cpp toolbox.cpp valuelink.cpp workarea.cpp zoomdial.cpp + +INCLUDES = -I$(top_srcdir)/src + +bin_PROGRAMS = synfigstudio +synfigstudio_SOURCES = \ + $(MOD_MIRROR_CC) $(MOD_MIRROR_HH) $(PALETTE_CC) $(PALETTE_HH) $(WORKAREARENDERER_CC) $(WORKAREARENDERER_HH) \ + $(ACTION_MANAGERS_HH) $(ACTION_MANAGERS_CC) $(DOCK_HH) $(DOCK_CC) $(OTHER_HH) $(OTHER_CC) $(EVENTS_HH) \ + $(DUCKTRANSFORM_HH) $(DUCKTRANSFORM_CC) $(TREEVIEW_HH) $(TREEVIEW_CC) $(TREESTORE_HH) $(TREESTORE_CC) \ + $(STATE_CC) $(STATE_HH) $(WIDGET_CC) $(WIDGET_HH) $(CELLRENDERER_HH) $(CELLRENDERER_CC) \ + $(DIALOG_HH) $(DIALOG_CC) + +synfigstudio_LDADD = ../synfigapp/libsynfigapp.la @SYNFIG_LIBS@ @GTKMM_LIBS@ @FMOD_LIBS@ +synfigstudio_LDFLAGS = -dlopen self +synfigstudio_CXXFLAGS = @SYNFIG_CFLAGS@ @GTKMM_CFLAGS@ -DIMAGE_DIR=\"$(imagedir)\" -DIMAGE_EXT=\"$(imageext)\" "-DLOCALEDIR=\"$(localedir)\"" diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/about.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/about.cpp new file mode 100644 index 0000000..3b5dad9 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/about.cpp @@ -0,0 +1,232 @@ +/* === S Y N F I G ========================================================= */ +/*! \file about.cpp +** \brief About dialog implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2008 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include + +#include + +#include + +#include + +// This is generated at make time from .svn or .git/svn or autorevision.conf +#include + +#include "about.h" +#include "app.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +#ifndef VERSION +#define VERSION "unknown" +#define PACKAGE "synfigstudio" +#endif + +#ifdef WIN32 +# ifdef IMAGE_DIR +# undef IMAGE_DIR +# define IMAGE_DIR "share\\pixmaps" +# endif +#endif + +#ifndef IMAGE_DIR +# define IMAGE_DIR "/usr/local/share/pixmaps" +#endif + +#ifndef IMAGE_EXT +# define IMAGE_EXT "png" +#endif + +#define stringify_(x) #x +#define stringify(x) stringify_(x) + +/* === G L O B A L S ======================================================= */ + +extern const guint gtk_major_version; +extern const guint gtk_minor_version; +extern const guint gtk_micro_version; +extern const guint gtk_binary_age; +extern const guint gtk_interface_age; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +About::About() +{ + +#ifdef HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME + set_program_name(PACKAGE_NAME); +#else + set_name(PACKAGE_NAME); +#endif + set_version(VERSION); + set_comments(_("2D vector animation studio")); + + set_url_hook(sigc::mem_fun(*this, &About::on_link_clicked)); + set_website("http://www.synfig.org/"); + set_website_label(_("Visit the Synfig website")); + + set_copyright(_("Copyright 2001-2008\nRobert B. Quattlebaum Jr.,\nAdrian Bentley and Synfig contributors")); + Glib::ustring license = + "This program is free software; you can redistribute it and/or modify " + "it under the terms of the GNU General Public License as published by " + "the Free Software Foundation; either version 2 of the License, or " + "(at your option) any later version.\n\n" + + "This program 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 General Public License for more details.\n\n" + + "You should have received a copy of the GNU General Public License along " + "with this program; if not, write to the Free Software Foundation, Inc., " + "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or visit: http://www.gnu.org/"; + set_license(license); + set_wrap_license(true); + + std::vector authors; + authors.push_back("Original developers:"); + authors.push_back(""); + authors.push_back("Robert B. Quattlebaum Jr (darco)"); + authors.push_back("Adrian Bentley"); + authors.push_back(""); + authors.push_back("Contributors:"); + authors.push_back(""); + authors.push_back("Adrian Winchell (SnapSilverlight)"); + authors.push_back("Andreas Jochens"); + authors.push_back("Carlos López González (genete)"); + authors.push_back("Chris Moore (dooglus)"); + authors.push_back("Chris Norman (pixelgeek)"); + authors.push_back("Daniel Fort"); + authors.push_back("David Roden (Bombe)"); + authors.push_back("Dmitriy Pomerantsev (Atrus)"); + authors.push_back("Douglas Lau"); + authors.push_back("Gerald Young (Yoyobuae)"); + authors.push_back("IL'dar AKHmetgaleev (AkhIL)"); + authors.push_back("Luka Pravica"); + authors.push_back("Martin Michlmayr (tbm)"); + authors.push_back("Miguel Gea Milvaques (xerakko)"); + authors.push_back("Paul Wise (pabs)"); + authors.push_back("Ralf Corsepius"); + authors.push_back("Yue Shi Lai"); + set_authors(authors); + + std::vector artists; + artists.push_back("Robert B. Quattlebaum Jr. (darco)"); + artists.push_back("Aurore D (rore)"); + artists.push_back("Carlos López González (genete)"); + artists.push_back("Chris Norman (pixelgeek)"); + set_artists(artists); + + // TRANSLATORS: change this to your name, separate multiple names with \n + set_translator_credits(_("translator-credits")); + + std::string imagepath; +#ifdef WIN32 + imagepath=App::get_base_path()+ETL_DIRECTORY_SEPARATOR+IMAGE_DIR; +#else + imagepath=IMAGE_DIR; +#endif + char* synfig_root=getenv("SYNFIG_ROOT"); + if(synfig_root) { + imagepath=synfig_root; + imagepath+=ETL_DIRECTORY_SEPARATOR; + + imagepath+="share/pixmaps"; + } + imagepath+=ETL_DIRECTORY_SEPARATOR; + + Gtk::Image *Logo = manage(new class Gtk::Image()); + Logo->set(imagepath+"synfig_icon."IMAGE_EXT); + set_logo(Logo->get_pixbuf()); + +#ifdef SHOW_EXTRA_INFO + + string extra_info = get_comments() + "\n"; + + #ifdef DEVEL_VERSION + extra_info += strprintf(_("\nDevelopment version:\n%s\n"),DEVEL_VERSION); + #endif + + extra_info += "\n"; + + extra_info += strprintf(_("Built on %s" /* at %s */ "\n"), __DATE__ /* , __TIME__ */ ); + + extra_info += "\n"; + + extra_info += strprintf(_("Built with:\n"), ETL_VERSION); + extra_info += strprintf(_("ETL %s\n"), ETL_VERSION); + extra_info += strprintf(_("Synfig API %s\n"), stringify(SYNFIG_VERSION)); + extra_info += strprintf(_("Synfig library %d\n"), SYNFIG_LIBRARY_VERSION); + extra_info += strprintf(_("GTK+ %d.%d.%d\n"), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); + #ifdef __GNUC__ + extra_info += strprintf(_("GNU G++ %d.%d.%d\n"),__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__); + #endif + + extra_info += "\n"; + + extra_info += strprintf(_("Using:\n"), synfig::get_version()); + extra_info += strprintf(_("Synfig %s\n"), synfig::get_version()); + extra_info += strprintf(_("GTK+ %d.%d.%d"),gtk_major_version,gtk_minor_version,gtk_micro_version); + + #ifdef _DEBUG + extra_info += "\n\nDEBUG BUILD"; + #endif + + set_comments(extra_info); + +#endif + + // Hide the dialog when you click close + signal_response().connect(sigc::mem_fun(*this, &About::close)); +} + +void About::close(int){ + hide(); +} + +void About::on_link_clicked(Gtk::AboutDialog&, const Glib::ustring &url) +{ + App::open_url(url); +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/about.h b/synfig-studio/tags/0.61.08/src/gtkmm/about.h new file mode 100644 index 0000000..3be68be --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/about.h @@ -0,0 +1,55 @@ +/* === S Y N F I G ========================================================= */ +/*! \file about.h +** \brief About dialog class +** +** $Id$ +** +** \legal +** Copyright (c) 2008 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GTKMM_ABOUT_H +#define __SYNFIG_GTKMM_ABOUT_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +# + +namespace studio { + +class About : public Gtk::AboutDialog +{ +public: + + About(); + void close(int); + void on_link_clicked(Gtk::AboutDialog&, const Glib::ustring &url); +}; + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.cpp new file mode 100644 index 0000000..0b62737 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.cpp @@ -0,0 +1,170 @@ +/* === S Y N F I G ========================================================= */ +/*! \file adjust_window.cpp +** \brief Adjustment Window Implementation File +** +** $Id$ +** +** \legal +** Copyright (c) 2004 Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "adjust_window.h" +#include "app.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +//using namespace synfig; + +using studio::Adjust_Window; + +/* === M A C R O S ========================================================= */ +const double EPSILON = 1.0e-6; + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Adjust_Window::Adjust_Window(double value, double lower, double upper, + double stepinc, double pageinc, double pagesize, + Gtk::Adjustment *adj) +: Adjustment(value,lower,upper,stepinc,pageinc,pagesize), + adj_child(0) +{ + if(adj) set_child_adjustment(adj); +} + +Adjust_Window::~Adjust_Window() +{ + //connections should automatically be killed etc. +} + +//child interface functions +Gtk::Adjustment *Adjust_Window::get_child_adjustment() +{ + return adj_child; +} + +const Gtk::Adjustment *Adjust_Window::get_child_adjustment() const +{ + return adj_child; +} + +void Adjust_Window::set_child_adjustment(Gtk::Adjustment *child) +{ + childchanged.disconnect(); + + adj_child = child; + + // synfig::info("Adjust: connecting to child signals"); + + if(child) + { + childchanged = child->signal_changed().connect(sigc::mem_fun(*this,&Adjust_Window::update_fromchild)); + + update_child(); + } +} + +void Adjust_Window::on_changed() +{ + update_child(); +} + +void Adjust_Window::on_value_changed() +{ + update_child(); +} + +//SUB TIME FUNCTIONS +double Adjust_Window::get_sub_lower() const +{ + return get_value(); +} + +double Adjust_Window::get_sub_upper() const +{ + return get_value() + get_page_size(); +} + +//---- REFRESH FUNCTIONS ----- +void Adjust_Window::update_child() +{ + if(adj_child) + { + bool childchanged = false; + + double v = get_value(); + double ve = v + get_page_size(); + + //reset child's values if they need to be... + if(abs(v - adj_child->get_lower()) > EPSILON) + { + adj_child->set_lower(v); + childchanged = true; + } + + if(abs(ve - adj_child->get_upper()) > EPSILON) + { + adj_child->set_upper(ve); + childchanged = true; + } + + if(childchanged) + { + adj_child->changed(); + } + } +} + +void Adjust_Window::update_fromchild() +{ + if(adj_child) + { + double b = adj_child->get_lower(); + double dist = adj_child->get_upper() - b; + + //reset our values if they need to be... + if(abs(get_value() - b) > EPSILON) + { + set_value(b); + value_changed(); + } + + if(abs(get_page_size() - dist) > EPSILON) + { + set_page_size(dist); + changed(); + } + } +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.h b/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.h new file mode 100644 index 0000000..d1b57c3 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/adjust_window.h @@ -0,0 +1,94 @@ +/* === S Y N F I G ========================================================= */ +/*! \file adjust_window.h +** \brief Adjustment Window Header +** +** $Id$ +** +** \legal +** Copyright (c) 2004 Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TEMPLATE_H +#define __SYNFIG_TEMPLATE_H + +/* === H E A D E R S ======================================================= */ +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +/* Sets up an adjustment that controls/communicates with another adjustment + (could be expanded to multiple children) + + The current value and pagesize define the lower and upper bounds of the + child adjustment. + + NEED TO REPLACE FUNCTIONALITY IN: + refresh_rend_desc + refresh_time_window + on_time_changed - possibly.... + + time_zoom_in - possibly... + time_zoom_out - possibly... + + play - possibly... + + THINGS TO CHECK: + disp_audio's use of time_adjustment + children_tree's use of time_adjustment + layer_tree's use of time_adjustment +*/ +class Adjust_Window : public Gtk::Adjustment +{ + Gtk::Adjustment *adj_child; + + sigc::connection childchanged; //we only care about the non-value parts of the child + + virtual void on_changed(); //value+pagesize corresponds to child upper + virtual void on_value_changed(); //value corresponds to child lower + +protected: //update interface + virtual void update_child(); + virtual void update_fromchild(); + +public: //structors + Adjust_Window(double value, double lower, double upper, + double step_increment=1, double page_increment=10, double page_size=0, + Gtk::Adjustment *adj = 0); + + virtual ~Adjust_Window(); + +public: //child interface + Gtk::Adjustment *get_child_adjustment(); + const Gtk::Adjustment *get_child_adjustment() const; + void set_child_adjustment(Gtk::Adjustment *child); + +public: //Sub value interface + double get_sub_lower() const; + double get_sub_upper() const; +}; + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/app.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/app.cpp new file mode 100644 index 0000000..1aa798c --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/app.cpp @@ -0,0 +1,2420 @@ +/* === S Y N F I G ========================================================= */ +/*! \file app.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** Copyright (c) 2008 Gerald Young +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef WIN32 +#define WINVER 0x0500 +#include +#endif + +#include +#include +#include +#include + +#ifdef HAVE_SYS_ERRNO_H +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + +#include "app.h" +#include "about.h" +#include "splash.h" +#include "instance.h" +#include "canvasview.h" +#include "dialog_setup.h" +#include "dialog_gradient.h" +#include "dialog_color.h" +#include "toolbox.h" +#include "compview.h" +#include "onemoment.h" + +#include "dockmanager.h" + +#include "state_eyedrop.h" +#include "state_normal.h" +#include "state_draw.h" +#include "state_fill.h" +#include "state_bline.h" +#include "state_polygon.h" +#include "state_sketch.h" +#include "state_gradient.h" +#include "state_circle.h" +#include "state_rectangle.h" +#include "state_smoothmove.h" +#include "state_scale.h" +#include "state_width.h" +#include "state_rotate.h" +#include "state_zoom.h" + +#include "devicetracker.h" +#include "dialog_tooloptions.h" +#include "widget_enum.h" + +#include "autorecover.h" + +#include +#include "dock_history.h" +#include "dock_canvases.h" +#include "dock_keyframes.h" +#include "dock_layers.h" +#include "dock_params.h" +#include "dock_metadata.h" +#include "dock_children.h" +#include "dock_info.h" +#include "dock_navigator.h" +#include "dock_layergroups.h" +#include "dock_timetrack.h" +#include "dock_curves.h" + +#include "mod_palette/mod_palette.h" +#include "mod_mirror/mod_mirror.h" + +#include + +#include "ipc.h" + +#include "module.h" + +#include "statemanager.h" + +#ifdef WITH_FMOD +#include +#endif + +#include +#include +#include + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +#ifndef SYNFIG_USER_APP_DIR +#ifdef __APPLE__ +#define SYNFIG_USER_APP_DIR "Library/Synfig" +#elif defined(_WIN32) +#define SYNFIG_USER_APP_DIR "Synfig" +#else +#define SYNFIG_USER_APP_DIR ".synfig" +#endif +#endif + +#ifndef DPM2DPI +#define DPM2DPI(x) (float(x)/39.3700787402f) +#define DPI2DPM(x) (float(x)*39.3700787402f) +#endif + +#ifdef WIN32 +# ifdef IMAGE_DIR +# undef IMAGE_DIR +# define IMAGE_DIR "share\\pixmaps" +# endif +#endif + +#ifndef IMAGE_DIR +# define IMAGE_DIR "/usr/local/share/pixmaps" +#endif + +#ifndef IMAGE_EXT +# define IMAGE_EXT "tif" +#endif + +#include + +/* === S I G N A L S ======================================================= */ + +static sigc::signal signal_present_all_; +sigc::signal& +App::signal_present_all() { return signal_present_all_; } + +static sigc::signal signal_recent_files_changed_; +sigc::signal& +App::signal_recent_files_changed() { return signal_recent_files_changed_; } + +static sigc::signal > signal_canvas_view_focus_; +sigc::signal >& +App::signal_canvas_view_focus() { return signal_canvas_view_focus_; } + +static sigc::signal > signal_instance_selected_; +sigc::signal >& +App::signal_instance_selected() { return signal_instance_selected_; } + +static sigc::signal > signal_instance_created_; +sigc::signal >& +App::signal_instance_created() { return signal_instance_created_; } + +static sigc::signal > signal_instance_deleted_; +sigc::signal >& +App::signal_instance_deleted() { return signal_instance_deleted_; } + +/* === G L O B A L S ======================================================= */ + +static std::list recent_files; +const std::list& App::get_recent_files() { return recent_files; } + +static std::list recent_files_window_size; + +int App::Busy::count; +bool App::shutdown_in_progress; + +synfig::Gamma App::gamma; + +Glib::RefPtr App::ui_manager_; + +synfig::Distance::System App::distance_system; + +studio::Dialog_Setup* App::dialog_setup; + +etl::handle< studio::ModPalette > mod_palette_; +//studio::Dialog_Palette* App::dialog_palette; + +std::list > App::instance_list; + +static etl::handle ui_interface_; +const etl::handle& App::get_ui_interface() { return ui_interface_; } + +etl::handle App::selected_instance; +etl::handle App::selected_canvas_view; + +studio::About *studio::App::about=NULL; + +studio::Toolbox *studio::App::toolbox=NULL; + +studio::AutoRecover *studio::App::auto_recover=NULL; + +studio::IPC *ipc=NULL; + +studio::DockManager* studio::App::dock_manager=0; + +studio::DeviceTracker* studio::App::device_tracker=0; + +studio::Dialog_Gradient* studio::App::dialog_gradient; + +studio::Dialog_Color* studio::App::dialog_color; + +Gtk::InputDialog* studio::App::dialog_input; + +studio::Dialog_ToolOptions* studio::App::dialog_tool_options; + +studio::Dock_History* dock_history; +studio::Dock_Canvases* dock_canvases; +studio::Dock_Keyframes* dock_keyframes; +studio::Dock_Layers* dock_layers; +studio::Dock_Params* dock_params; +studio::Dock_MetaData* dock_meta_data; +studio::Dock_Children* dock_children; +studio::Dock_Info* dock_info; +studio::Dock_LayerGroups* dock_layer_groups; +studio::Dock_Navigator* dock_navigator; +studio::Dock_Timetrack* dock_timetrack; +studio::Dock_Curves* dock_curves; + +std::list< etl::handle< studio::Module > > module_list_; + +bool studio::App::use_colorspace_gamma=true; +#ifdef SINGLE_THREADED +bool studio::App::single_threaded=false; +#endif +bool studio::App::restrict_radius_ducks=false; +#ifdef USE_OPEN_FOR_URLS +String studio::App::browser_command("open"); // MacOS only +#else +String studio::App::browser_command("xdg-open"); // Linux XDG standard +#endif + +static int max_recent_files_=25; +int studio::App::get_max_recent_files() { return max_recent_files_; } +void studio::App::set_max_recent_files(int x) { max_recent_files_=x; } + +static synfig::String app_base_path_; + +namespace studio { + +bool +really_delete_widget(Gtk::Widget *widget) +{ + // synfig::info("really delete %p", (void*)widget); + delete widget; + return false; +} + +// nasty workaround - when we've finished with a popup menu, we want to delete it +// attaching to the signal_hide() signal gets us here before the action on the menu has run, +// so schedule the real delete to happen in 50ms, giving the action a chance to run +void +delete_widget(Gtk::Widget *widget) +{ + // synfig::info("delete %p", (void*)widget); + Glib::signal_timeout().connect(sigc::bind(sigc::ptr_fun(&really_delete_widget), widget), 50); +} + +}; // END of namespace studio +studio::StateManager* state_manager; + + + + +class GlobalUIInterface : public synfigapp::UIInterface +{ +public: + + virtual Response yes_no(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES) + { + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES); + dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + virtual Response yes_no_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES) + { + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES); + dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO); + dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + virtual Response ok_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_OK) + { + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-ok"),RESPONSE_OK); + dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + + virtual bool + task(const std::string &task) + { + std::cerr<& action_group, int pos) +{ + action_group_list.push_back(action_group); + Gtk::UIManager::insert_action_group(action_group, pos); +} + +void +studio::UIManager::remove_action_group (const Glib::RefPtr& action_group) +{ + std::list >::iterator iter; + for(iter=action_group_list.begin();iter!=action_group_list.end();++iter) + if(*iter==action_group) + { + action_group_list.erase(iter); + Gtk::UIManager::remove_action_group(action_group); + return; + } + synfig::error("Unable to find action group"); +} + +void +studio::add_action_group_to_top(Glib::RefPtr ui_manager, Glib::RefPtr group) +{ + ui_manager->insert_action_group(group,0); + return; + std::list > prev_groups(ui_manager->get_action_groups()); + std::list >::reverse_iterator iter; + + for(iter=prev_groups.rbegin();iter!=prev_groups.rend();++iter) + { + if(*iter && (*iter)->get_name()!="menus") + { + synfig::info("Removing action group "+(*iter)->get_name()); + ui_manager->remove_action_group(*iter); + } + } + ui_manager->insert_action_group(group,0); + + for(;!prev_groups.empty();prev_groups.pop_front()) + { + if(prev_groups.front() && prev_groups.front()!=group && prev_groups.front()->get_name()!="menus") + ui_manager->insert_action_group(prev_groups.front(),1); + } +} +*/ +class Preferences : public synfigapp::Settings +{ +public: + virtual bool get_value(const synfig::String& key, synfig::String& value)const + { + if(key=="gamma") + { + value=strprintf("%f %f %f %f", + App::gamma.get_gamma_r(), + App::gamma.get_gamma_g(), + App::gamma.get_gamma_b(), + App::gamma.get_black_level() + ); + return true; + } + if(key=="time_format") + { + value=strprintf("%i",App::get_time_format()); + return true; + } + if(key=="file_history.size") + { + value=strprintf("%i",App::get_max_recent_files()); + return true; + } + if(key=="use_colorspace_gamma") + { + value=strprintf("%i",(int)App::use_colorspace_gamma); + return true; + } + if(key=="distance_system") + { + value=strprintf("%s",Distance::system_name(App::distance_system).c_str()); + return true; + } +#ifdef SINGLE_THREADED + if(key=="single_threaded") + { + value=strprintf("%i",(int)App::single_threaded); + return true; + } +#endif + if(key=="auto_recover_backup_interval") + { + value=strprintf("%i",App::auto_recover->get_timeout()); + return true; + } + if(key=="restrict_radius_ducks") + { + value=strprintf("%i",(int)App::restrict_radius_ducks); + return true; + } + if(key=="browser_command") + { + value=App::browser_command; + return true; + } + + return synfigapp::Settings::get_value(key,value); + } + + virtual bool set_value(const synfig::String& key,const synfig::String& value) + { + if(key=="gamma") + { + float r,g,b,blk; + + strscanf(value,"%f %f %f %f", + &r, + &g, + &b, + &blk + ); + + App::gamma.set_all(r,g,b,blk); + + return true; + } + if(key=="time_format") + { + int i(atoi(value.c_str())); + App::set_time_format(static_cast(i)); + return true; + } + if(key=="auto_recover_backup_interval") + { + int i(atoi(value.c_str())); + App::auto_recover->set_timeout(i); + return true; + } + if(key=="file_history.size") + { + int i(atoi(value.c_str())); + App::set_max_recent_files(i); + return true; + } + if(key=="use_colorspace_gamma") + { + int i(atoi(value.c_str())); + App::use_colorspace_gamma=i; + return true; + } + if(key=="distance_system") + { + App::distance_system=Distance::ident_system(value);; + return true; + } +#ifdef SINGLE_THREADED + if(key=="single_threaded") + { + int i(atoi(value.c_str())); + App::single_threaded=i; + return true; + } +#endif + if(key=="restrict_radius_ducks") + { + int i(atoi(value.c_str())); + App::restrict_radius_ducks=i; + return true; + } + if(key=="browser_command") + { + App::browser_command=value; + return true; + } + + return synfigapp::Settings::set_value(key,value); + } + + virtual KeyList get_key_list()const + { + KeyList ret(synfigapp::Settings::get_key_list()); + ret.push_back("gamma"); + ret.push_back("time_format"); + ret.push_back("distance_system"); + ret.push_back("file_history.size"); + ret.push_back("use_colorspace_gamma"); +#ifdef SINGLE_THREADED + ret.push_back("single_threaded"); +#endif + ret.push_back("auto_recover_backup_interval"); + ret.push_back("restrict_radius_ducks"); + ret.push_back("browser_command"); + return ret; + } +}; + +static ::Preferences _preferences; + +void +init_ui_manager() +{ + Glib::RefPtr menus_action_group = Gtk::ActionGroup::create("menus"); + + Glib::RefPtr toolbox_action_group = Gtk::ActionGroup::create("toolbox"); + + Glib::RefPtr actions_action_group = Gtk::ActionGroup::create(); + + menus_action_group->add( Gtk::Action::create("menu-file", _("_File")) ); + menus_action_group->add( Gtk::Action::create("menu-edit", _("_Edit")) ); + menus_action_group->add( Gtk::Action::create("menu-view", _("_View")) ); + menus_action_group->add( Gtk::Action::create("menu-canvas", _("_Canvas")) ); + menus_action_group->add( Gtk::Action::create("menu-layer", _("_Layer")) ); + menus_action_group->add( Gtk::Action::create("menu-duck-mask", _("Show/Hide Ducks")) ); + menus_action_group->add( Gtk::Action::create("menu-preview-quality", _("Preview Quality")) ); + menus_action_group->add( Gtk::Action::create("menu-lowres-pixel", _("Low-Res Pixel Size")) ); + menus_action_group->add( Gtk::Action::create("menu-layer-new", _("New Layer")) ); + menus_action_group->add( Gtk::Action::create("menu-keyframe", _("Keyframe")) ); + menus_action_group->add( Gtk::Action::create("menu-group", _("Group")) ); + menus_action_group->add( Gtk::Action::create("menu-state", _("State")) ); + menus_action_group->add( Gtk::Action::create("menu-toolbox", _("Toolbox")) ); + + // Add the synfigapp actions... + synfigapp::Action::Book::iterator iter; + for(iter=synfigapp::Action::book().begin();iter!=synfigapp::Action::book().end();++iter) + { + actions_action_group->add(Gtk::Action::create( + "action-"+iter->second.name, + get_action_stock_id(iter->second), + iter->second.local_name,iter->second.local_name + )); + } + +#define DEFINE_ACTION(x,stock) { Glib::RefPtr action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); } +#define DEFINE_ACTION2(x,stock,label) { Glib::RefPtr action( Gtk::Action::create(x, stock,label,label) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); } +#define DEFINE_ACTION_SIG(group,x,stock,sig) { Glib::RefPtr action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ group->add(action,sig); } + + DEFINE_ACTION2("keyframe-properties", Gtk::StockID("gtk-properties"), _("Keyframe Properties")); + DEFINE_ACTION("about", Gtk::StockID("synfig-about")); + DEFINE_ACTION("new", Gtk::Stock::NEW); + DEFINE_ACTION("open", Gtk::Stock::OPEN); + DEFINE_ACTION("save", Gtk::Stock::SAVE); + DEFINE_ACTION("save-as", Gtk::Stock::SAVE_AS); + DEFINE_ACTION("revert", Gtk::Stock::REVERT_TO_SAVED); + DEFINE_ACTION("cvs-add", Gtk::StockID("synfig-cvs_add")); + DEFINE_ACTION("cvs-update", Gtk::StockID("synfig-cvs_update")); + DEFINE_ACTION("cvs-commit", Gtk::StockID("synfig-cvs_commit")); + DEFINE_ACTION("cvs-revert", Gtk::StockID("synfig-cvs_revert")); + DEFINE_ACTION("import", _("Import")); + DEFINE_ACTION("render", _("Render")); + DEFINE_ACTION("preview", _("Preview")); + DEFINE_ACTION("dialog-flipbook", _("Preview Dialog")); + DEFINE_ACTION("sound", _("Sound File")); + DEFINE_ACTION("options", _("Options")); + DEFINE_ACTION("close", _("Close View")); + DEFINE_ACTION("close-document", _("Close Document")); + DEFINE_ACTION("quit", Gtk::Stock::QUIT); + + + DEFINE_ACTION("undo", Gtk::StockID("gtk-undo")); + DEFINE_ACTION("redo", Gtk::StockID("gtk-redo")); + DEFINE_ACTION("cut", Gtk::StockID("gtk-cut")); + DEFINE_ACTION("copy", Gtk::StockID("gtk-copy")); + DEFINE_ACTION("paste", Gtk::StockID("gtk-paste")); + DEFINE_ACTION("select-all-ducks", _("Select All Ducks")); + DEFINE_ACTION("unselect-all-layers", _("Unselect All Layers")); + DEFINE_ACTION("properties", _("Properties")); + + DEFINE_ACTION("mask-position-ducks", _("Show Position Ducks")); + DEFINE_ACTION("mask-vertex-ducks", _("Show Vertex Ducks")); + DEFINE_ACTION("mask-tangent-ducks", _("Show Tangent Ducks")); + DEFINE_ACTION("mask-radius-ducks", _("Show Radius Ducks")); + DEFINE_ACTION("mask-width-ducks", _("Show Width Ducks")); + DEFINE_ACTION("mask-angle-ducks", _("Show Angle Ducks")); + DEFINE_ACTION("quality-00", _("Use Parametric Renderer")); + DEFINE_ACTION("quality-01", _("Use Quality Level 1")); + DEFINE_ACTION("quality-02", _("Use Quality Level 2")); + DEFINE_ACTION("quality-03", _("Use Quality Level 3")); + DEFINE_ACTION("quality-04", _("Use Quality Level 4")); + DEFINE_ACTION("quality-05", _("Use Quality Level 5")); + DEFINE_ACTION("quality-06", _("Use Quality Level 6")); + DEFINE_ACTION("quality-07", _("Use Quality Level 7")); + DEFINE_ACTION("quality-08", _("Use Quality Level 8")); + DEFINE_ACTION("quality-09", _("Use Quality Level 9")); + DEFINE_ACTION("quality-10", _("Use Quality Level 10")); + for(list::iterator iter = CanvasView::get_pixel_sizes().begin(); iter != CanvasView::get_pixel_sizes().end(); iter++) + DEFINE_ACTION(strprintf("lowres-pixel-%d", *iter), strprintf(_("Set Low-Res pixel size to %d"), *iter)); + DEFINE_ACTION("play", _("Play")); + // DEFINE_ACTION("pause", _("Pause")); + DEFINE_ACTION("stop", _("Stop")); + DEFINE_ACTION("toggle-grid-show", _("Toggle Grid Show")); + DEFINE_ACTION("toggle-grid-snap", _("Toggle Grid Snap")); + DEFINE_ACTION("toggle-guide-show", _("Toggle Guide Show")); + DEFINE_ACTION("toggle-low-res", _("Toggle Low-Res")); + DEFINE_ACTION("decrease-low-res-pixel-size", _("Decrease Low-Res Pixel Size")); + DEFINE_ACTION("increase-low-res-pixel-size", _("Increase Low-Res Pixel Size")); + DEFINE_ACTION("toggle-onion-skin", _("Toggle Onion Skin")); + DEFINE_ACTION("canvas-zoom-in", Gtk::StockID("gtk-zoom-in")); + DEFINE_ACTION("canvas-zoom-out", Gtk::StockID("gtk-zoom-out")); + DEFINE_ACTION("canvas-zoom-fit", Gtk::StockID("gtk-zoom-fit")); + DEFINE_ACTION("canvas-zoom-100", Gtk::StockID("gtk-zoom-100")); + DEFINE_ACTION("time-zoom-in", Gtk::StockID("gtk-zoom-in")); + DEFINE_ACTION("time-zoom-out", Gtk::StockID("gtk-zoom-out")); + DEFINE_ACTION("jump-next-keyframe", _("Jump to Next Keyframe")); + DEFINE_ACTION("jump-prev-keyframe", _("Jump to Prev Keyframe")); + DEFINE_ACTION("seek-next-frame", _("Next Frame")); + DEFINE_ACTION("seek-prev-frame", _("Prev Frame")); + DEFINE_ACTION("seek-next-second", _("Seek Forward")); + DEFINE_ACTION("seek-prev-second", _("Seek Backward")); + DEFINE_ACTION("seek-begin", _("Seek to Begin")); + DEFINE_ACTION("seek-end", _("Seek to End")); + + DEFINE_ACTION("action-group_add", _("Add group")); + + DEFINE_ACTION("canvas-new", _("New Canvas")); + + DEFINE_ACTION("amount-inc", _("Increase Amount")); + DEFINE_ACTION("amount-dec", _("Decrease Amount")); + +#undef DEFINE_ACTION + + +// Set up synfigapp actions + /*{ + synfigapp::Action::Book::iterator iter; + + for(iter=synfigapp::Action::book().begin();iter!=synfigapp::Action::book().end();++iter) + { + Gtk::StockID stock_id; + + if(!(iter->second.category&synfigapp::Action::CATEGORY_HIDDEN)) + { + //Gtk::Image* image(manage(new Gtk::Image())); + if(iter->second.task=="raise") stock_id=Gtk::Stock::GO_UP; + else if(iter->second.task=="lower") stock_id=Gtk::Stock::GO_DOWN; + else if(iter->second.task=="move_top") stock_id=Gtk::Stock::GOTO_TOP; + else if(iter->second.task=="move_bottom") stock_id=Gtk::Stock::GOTO_BOTTOM; + else if(iter->second.task=="remove") stock_id=Gtk::Stock::DELETE; + else if(iter->second.task=="set_on") stock_id=Gtk::Stock::YES; + else if(iter->second.task=="set_off") stock_id=Gtk::Stock::NO; + //else if(iter->second.task=="duplicate") stock_id=Gtk::Stock::COPY; + else if(iter->second.task=="remove") stock_id=Gtk::Stock::DELETE; + else stock_id=Gtk::StockID("synfig-"+iter->second.task); + + actions_action_group->add(Gtk::Action::create( + "action-"+iter->second.name, + stock_id, + iter->second.local_name,iter->second.local_name + )); + } + } + } +*/ + + + Glib::ustring ui_info = +"" +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +; + + for(list::iterator iter = CanvasView::get_pixel_sizes().begin(); iter != CanvasView::get_pixel_sizes().end(); iter++) + ui_info += strprintf(" ", *iter); + + ui_info += +" " +" " +" " +//" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +//" " +//" " +//" " +//" " +" " +" " +" " +" " +" " +" " +" " +" " + +"" +; +/* "" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + ""; +*/ + try + { + actions_action_group->set_sensitive(false); + App::ui_manager()->set_add_tearoffs(true); + App::ui_manager()->insert_action_group(menus_action_group,1); + App::ui_manager()->insert_action_group(actions_action_group,1); + App::ui_manager()->add_ui_from_string(ui_info); + + //App::ui_manager()->get_accel_group()->unlock(); + } + catch(const Glib::Error& ex) + { + synfig::error("building menus and toolbars failed: " + ex.what()); + } + + // Add default keyboard accelerators +#define ACCEL(path,accel) \ + { \ + Gtk::AccelKey accel_key(accel,path); \ + Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(), accel_key.get_mod()); \ + } + +#define ACCEL2(accel) \ + { \ + Gtk::AccelKey accel_key(accel); \ + Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(), accel_key.get_mod()); \ + } + + ACCEL("//select-all-ducks","a"); + ACCEL("//unselect-all-layers","d"); + ACCEL("//render","F9"); + ACCEL("//preview","F11"); + ACCEL("//properties","F8"); + ACCEL("//options","F12"); + ACCEL("//import","i"); + ACCEL2(Gtk::AccelKey(GDK_Escape,static_cast(0),"//stop")); + ACCEL("//toggle-grid-show","g"); + ACCEL("//toggle-grid-snap","l"); + ACCEL2(Gtk::AccelKey('`',Gdk::CONTROL_MASK,"//toggle-low-res")); + ACCEL("//mask-position-ducks", "1"); + ACCEL("//mask-vertex-ducks", "2"); + ACCEL("//mask-tangent-ducks", "3"); + ACCEL("//mask-radius-ducks", "4"); + ACCEL("//mask-width-ducks", "5"); + ACCEL("//mask-angle-ducks", "6"); + + ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,"//action-layer_raise")); + ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,"//action-layer_lower")); + + ACCEL("//quality-01","1"); + ACCEL("//quality-02","2"); + ACCEL("//quality-03","3"); + ACCEL("//quality-04","4"); + ACCEL("//quality-05","5"); + ACCEL("//quality-06","6"); + ACCEL("//quality-07","7"); + ACCEL("//quality-08","8"); + ACCEL("//quality-09","9"); + ACCEL("//quality-10","0"); + ACCEL("//undo","z"); + ACCEL("//redo","r"); + ACCEL("//action-layer_remove","Delete"); + +/* ACCEL2(Gtk::AccelKey(']',static_cast(0),"//jump-next-keyframe")); + ACCEL2(Gtk::AccelKey('[',static_cast(0),"//jump-prev-keyframe")); + ACCEL2(Gtk::AccelKey('=',static_cast(0),"//canvas-zoom-in")); + ACCEL2(Gtk::AccelKey('-',static_cast(0),"//canvas-zoom-out")); + ACCEL("//time-zoom-in","+"); + ACCEL("//time-zoom-out","_"); +*/ + ACCEL2(Gtk::AccelKey('(',Gdk::CONTROL_MASK,"//decrease-low-res-pixel-size")); + ACCEL2(Gtk::AccelKey(')',Gdk::CONTROL_MASK,"//increase-low-res-pixel-size")); + + ACCEL2(Gtk::AccelKey('(',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,"//amount-dec")); + ACCEL2(Gtk::AccelKey(')',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,"//amount-inc")); + + ACCEL2(Gtk::AccelKey(']',Gdk::CONTROL_MASK,"//jump-next-keyframe")); + ACCEL2(Gtk::AccelKey('[',Gdk::CONTROL_MASK,"//jump-prev-keyframe")); + ACCEL2(Gtk::AccelKey('=',Gdk::CONTROL_MASK,"//canvas-zoom-in")); + ACCEL2(Gtk::AccelKey('-',Gdk::CONTROL_MASK,"//canvas-zoom-out")); + ACCEL2(Gtk::AccelKey('+',Gdk::CONTROL_MASK,"//time-zoom-in")); + ACCEL2(Gtk::AccelKey('_',Gdk::CONTROL_MASK,"//time-zoom-out")); + ACCEL2(Gtk::AccelKey('.',Gdk::CONTROL_MASK,"//seek-next-frame")); + ACCEL2(Gtk::AccelKey(',',Gdk::CONTROL_MASK,"//seek-prev-frame")); + ACCEL2(Gtk::AccelKey('>',Gdk::CONTROL_MASK,"//seek-next-second")); + ACCEL2(Gtk::AccelKey('<',Gdk::CONTROL_MASK,"//seek-prev-second")); + ACCEL2(Gtk::AccelKey('o',Gdk::MOD1_MASK,"//toggle-onion-skin")); + ACCEL("//play", "p"); + ACCEL("//seek-begin","Home"); + ACCEL("//seek-end","End"); + + ACCEL("//state-normal", "a"); + ACCEL("//state-smooth_move", "v"); + ACCEL("//state-scale", "d"); + ACCEL("//state-rotate", "s"); + + ACCEL("//state-bline", "b"); + ACCEL("//state-circle", "c"); + ACCEL("//state-rectangle", "r"); + ACCEL("//state-gradient", "g"); + + ACCEL("//state-eyedrop", "e"); + ACCEL("//state-fill", "f"); + ACCEL("//state-zoom", "z"); + ACCEL("//state-polygon", "p"); + + ACCEL("//state-draw", "w"); + ACCEL("//state-sketch", "k"); + ACCEL("//state-width", "t"); + ACCEL("//state-mirror", "m"); + + ACCEL("//canvas-zoom-fit","z"); + +#undef ACCEL +} + +#ifdef _WIN32 +#define mkdir(x,y) mkdir(x) +#endif + +/* === M E T H O D S ======================================================= */ + +App::App(int *argc, char ***argv): + Gtk::Main(argc,argv), + IconController(etl::dirname((*argv)[0])) +{ + app_base_path_=etl::dirname(etl::dirname((*argv)[0])); + + + ui_interface_=new GlobalUIInterface(); + + gdk_rgb_init(); + + // don't call thread_init() if threads are already initialized + // on some machines bonobo_init() initialized threads before we get here + if (!g_thread_supported()) + Glib::thread_init(); + + distance_system=Distance::SYSTEM_UNITS; + + if(mkdir(get_user_app_directory().c_str(),ACCESSPERMS)<0) + { + if(errno!=EEXIST) + synfig::error("UNABLE TO CREATE \"%s\"",get_user_app_directory().c_str()); + } + else + { + synfig::info("Created directory \"%s\"",get_user_app_directory().c_str()); + } + + + ipc=new IPC(); + + if(!SYNFIG_CHECK_VERSION()) + { + cerr<<"FATAL: Synfig Version Mismatch"<(new synfigapp::Main(etl::dirname((*argv)[0]),&synfig_init_cb)); } + catch(...) + { + get_ui_interface()->error(_("Failed to initialize synfig!")); + throw; + } + + // add the preferences to the settings + synfigapp::Main::settings().add_domain(&_preferences,"pref"); + + try + { + studio_init_cb.task(_("Init UI Manager...")); + App::ui_manager_=studio::UIManager::create(); + init_ui_manager(); + + studio_init_cb.task(_("Init Dock Manager...")); + dock_manager=new studio::DockManager(); + + studio_init_cb.task(_("Init State Manager...")); + state_manager=new StateManager(); + + studio_init_cb.task(_("Init Toolbox...")); + toolbox=new studio::Toolbox(); + + studio_init_cb.task(_("Init About Dialog...")); + about=new studio::About(); + + studio_init_cb.task(_("Init Tool Options...")); + dialog_tool_options=new studio::Dialog_ToolOptions(); + dock_manager->register_dockable(*dialog_tool_options); + + studio_init_cb.task(_("Init History...")); + dock_history=new studio::Dock_History(); + dock_manager->register_dockable(*dock_history); + + studio_init_cb.task(_("Init Canvases...")); + dock_canvases=new studio::Dock_Canvases(); + dock_manager->register_dockable(*dock_canvases); + + studio_init_cb.task(_("Init Keyframes...")); + dock_keyframes=new studio::Dock_Keyframes(); + dock_manager->register_dockable(*dock_keyframes); + + studio_init_cb.task(_("Init Layers...")); + dock_layers=new studio::Dock_Layers(); + dock_manager->register_dockable(*dock_layers); + + studio_init_cb.task(_("Init Params...")); + dock_params=new studio::Dock_Params(); + dock_manager->register_dockable(*dock_params); + + studio_init_cb.task(_("Init MetaData...")); + dock_meta_data=new studio::Dock_MetaData(); + dock_manager->register_dockable(*dock_meta_data); + + studio_init_cb.task(_("Init Children...")); + dock_children=new studio::Dock_Children(); + dock_manager->register_dockable(*dock_children); + + studio_init_cb.task(_("Init Info...")); + dock_info = new studio::Dock_Info(); + dock_manager->register_dockable(*dock_info); + + studio_init_cb.task(_("Init Navigator...")); + dock_navigator = new studio::Dock_Navigator(); + dock_manager->register_dockable(*dock_navigator); + + studio_init_cb.task(_("Init Timetrack...")); + dock_timetrack = new studio::Dock_Timetrack(); + dock_manager->register_dockable(*dock_timetrack); + + studio_init_cb.task(_("Init Curve Editor...")); + dock_curves = new studio::Dock_Curves(); + dock_manager->register_dockable(*dock_curves); + + studio_init_cb.task(_("Init Layer Groups...")); + dock_layer_groups = new studio::Dock_LayerGroups(); + dock_manager->register_dockable(*dock_layer_groups); + + + studio_init_cb.task(_("Init Color Dialog...")); + dialog_color=new studio::Dialog_Color(); + + studio_init_cb.task(_("Init Gradient Dialog...")); + dialog_gradient=new studio::Dialog_Gradient(); + + studio_init_cb.task(_("Init DeviceTracker...")); + device_tracker=new studio::DeviceTracker(); + + studio_init_cb.task(_("Init Tools...")); + + /* row 1 */ + state_manager->add_state(&state_normal); + state_manager->add_state(&state_smooth_move); + state_manager->add_state(&state_scale); + state_manager->add_state(&state_rotate); + studio_init_cb.task(_("Init ModMirror...")); module_list_.push_back(new ModMirror()); module_list_.back()->start(); + + /* row 2 */ + state_manager->add_state(&state_bline); + state_manager->add_state(&state_circle); + state_manager->add_state(&state_rectangle); + state_manager->add_state(&state_gradient); + if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon); // Enabled - for working without ducks + + /* row 3 */ + if(!getenv("SYNFIG_DISABLE_DRAW" )) state_manager->add_state(&state_draw); // Enabled for now. Let's see whether they're good enough yet. + if(!getenv("SYNFIG_DISABLE_SKETCH" )) state_manager->add_state(&state_sketch); + state_manager->add_state(&state_fill); + state_manager->add_state(&state_eyedrop); + state_manager->add_state(&state_zoom); + + // Disabled by default - it doesn't work properly? + if(getenv("SYNFIG_ENABLE_WIDTH" )) state_manager->add_state(&state_width); + + studio_init_cb.task(_("Init ModPalette...")); + module_list_.push_back(new ModPalette()); module_list_.back()->start(); + + studio_init_cb.task(_("Init Setup Dialog...")); + dialog_setup=new studio::Dialog_Setup(); + + studio_init_cb.task(_("Init Input Dialog...")); + dialog_input=new Gtk::InputDialog(); + dialog_input->get_close_button()->signal_clicked().connect( sigc::mem_fun( *dialog_input, &Gtk::InputDialog::hide ) ); + dialog_input->get_save_button()->signal_clicked().connect( sigc::ptr_fun(studio::App::dialog_not_implemented) ); + + studio_init_cb.task(_("Init auto recovery...")); + auto_recover=new AutoRecover(); + + studio_init_cb.amount_complete(9250,10000); + studio_init_cb.task(_("Loading Settings...")); + load_settings(); + studio_init_cb.task(_("Checking auto-recover...")); + + studio_init_cb.amount_complete(9900,10000); + + bool opened_any = false; + if(auto_recover->recovery_needed()) + { + splash_screen.hide(); + if (get_ui_interface()->yes_no(_("Auto Recovery"), + _("Synfig Studio seems to have crashed\n" + "before you could save all your files.\n" + "Would you like to re-open those files\n" + "and recover your unsaved changes?")) == + synfigapp::UIInterface::RESPONSE_YES) + { + int number_recovered; + if(!auto_recover->recover(number_recovered)) + if (number_recovered) + get_ui_interface()->error(_("Unable to fully recover from previous crash")); + else + get_ui_interface()->error(_("Unable to recover from previous crash")); + else + get_ui_interface()->error( + _("Synfig Studio has attempted to recover\n" + "from a previous crash. The files that it has\n" + "recovered are NOT YET SAVED. It would be a good\n" + "idea to review them and save them now.")); + + if (number_recovered) + opened_any = true; + } + splash_screen.show(); + } + + // Look for any files given on the command line, + // and load them if found. + for(;*argc>=1;(*argc)--) + if((*argv)[*argc] && (*argv)[*argc][0]!='-') + { + studio_init_cb.task(_("Loading files...")); + splash_screen.hide(); + open((*argv)[*argc]); + opened_any = true; + splash_screen.show(); + } + + // if no file was specified to be opened, create a new document to help new users get started more easily + if (!opened_any && !getenv("SYNFIG_DISABLE_AUTOMATIC_DOCUMENT_CREATION")) + new_instance(); + + studio_init_cb.task(_("Done.")); + studio_init_cb.amount_complete(10000,10000); + + toolbox->present(); + } + catch(String x) + { + get_ui_interface()->error(_("Unknown exception caught when constructing App.\nThis software may be unstable.") + String("\n\n") + x); + } + catch(...) + { + get_ui_interface()->error(_("Unknown exception caught when constructing App.\nThis software may be unstable.")); + } +} + +StateManager* App::get_state_manager() { return state_manager; } + +App::~App() +{ + shutdown_in_progress=true; + + save_settings(); + + synfigapp::Main::settings().remove_domain("pref"); + + selected_instance=0; + + // Unload all of the modules + for(;!module_list_.empty();module_list_.pop_back()) + ; + + delete state_manager; + + delete ipc; + + delete auto_recover; + + delete about; + + toolbox->hide(); + +// studio::App::iteration(false); + + delete toolbox; + +// studio::App::iteration(false); + +// studio::App::iteration(false); + + delete dialog_setup; + + delete dialog_gradient; + + delete dialog_color; + + delete dialog_input; + + delete dock_manager; + + instance_list.clear(); + +// studio::App::iteration(false); +} + +String +App::get_user_app_directory() +{ +//! \todo do we need locale_from_utf8() on non-Windows boxes too? (bug #1837445) +#ifdef WIN32 + return Glib::locale_from_utf8(Glib::build_filename(Glib::get_home_dir(),SYNFIG_USER_APP_DIR)); +#else + return Glib::build_filename(Glib::get_home_dir(),SYNFIG_USER_APP_DIR); +#endif +} + +synfig::String +App::get_config_file(const synfig::String& file) +{ + return Glib::build_filename(get_user_app_directory(),file); +} + +#define SCALE_FACTOR (1280) +//! set the \a instance's canvas(es) position and size to be those specified in the first entry of recent_files_window_size +void +App::set_recent_file_window_size(etl::handle instance) +{ + int screen_w(Gdk::screen_width()); + int screen_h(Gdk::screen_height()); + + const std::string &canvas_window_size = *recent_files_window_size.begin(); + + if(canvas_window_size.empty()) + return; + + synfig::String::size_type current=0; + bool seen_root(false), shown_non_root(false); + + while(current != synfig::String::npos) + { + // find end of first field (canvas) or return + synfig::String::size_type separator = canvas_window_size.find_first_of(' ', current); + if(separator == synfig::String::npos) break; + + // find the canvas + synfig::Canvas::Handle canvas; + try { + canvas = instance->get_canvas()->find_canvas(String(canvas_window_size, current, separator-current)); + } + catch(Exception::IDNotFound) { + // can't find the canvas; skip to the next canvas or return + separator = canvas_window_size.find_first_of('\t', current); + if(separator == synfig::String::npos) return; + current = separator+1; + continue; + } + + if (canvas->is_root()) + seen_root = true; + else + shown_non_root = true; + + // check that we have the tab character the ends this canvas' data or return + current = separator+1; + separator = canvas_window_size.find_first_of('\t', current); + if(separator == synfig::String::npos) return; + + int x,y,w,h; + if(!strscanf(String(canvas_window_size, current, separator-current),"%d %d %d %d",&x, &y, &w, &h)) + { + current = separator+1; + continue; + } + + if (x > SCALE_FACTOR) x = SCALE_FACTOR - 150; if (x < 0) x = 0; + if (y > SCALE_FACTOR) y = SCALE_FACTOR - 150; if (y < 0) y = 0; + x=x*screen_w/SCALE_FACTOR; + y=y*screen_h/SCALE_FACTOR; + if(getenv("SYNFIG_WINDOW_POSITION_X_OFFSET")) + x += atoi(getenv("SYNFIG_WINDOW_POSITION_X_OFFSET")); + if(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET")) + y += atoi(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET")); + + if (w > SCALE_FACTOR) w = 150; if (w < 0) w = 0; + if (h > SCALE_FACTOR) h = 150; if (h < 0) h = 0; + + CanvasView::Handle canvasview = instance->find_canvas_view(canvas); + canvasview->move(x,y); + canvasview->resize(w*screen_w/SCALE_FACTOR,h*screen_h/SCALE_FACTOR); + canvasview->present(); + + current = separator+1; + } + + if (shown_non_root && !seen_root) + instance->find_canvas_view(instance->get_canvas())->hide(); +} + +void +App::add_recent_file(const etl::handle instance) +{ + int screen_w(Gdk::screen_width()); + int screen_h(Gdk::screen_height()); + + std::string canvas_window_size; + + const Instance::CanvasViewList& cview_list = instance->canvas_view_list(); + Instance::CanvasViewList::const_iterator iter; + + for(iter=cview_list.begin();iter!=cview_list.end();iter++) + { + if( !((*iter)->is_visible()) ) + continue; + + etl::handle canvas = (*iter)->get_canvas(); + int x_pos, y_pos, x_size, y_size; + (*iter)->get_position(x_pos,y_pos); + (*iter)->get_size(x_size,y_size); + + canvas_window_size += strprintf("%s %d %d %d %d\t", + canvas->get_relative_id(canvas->get_root()).c_str(), + x_pos*SCALE_FACTOR/screen_w, y_pos*SCALE_FACTOR/screen_h, + x_size*SCALE_FACTOR/screen_w, y_size*SCALE_FACTOR/screen_h); + } + + add_recent_file(absolute_path(instance->get_file_name()), canvas_window_size); +} +#undef SCALE_FACTOR + +void +App::add_recent_file(const std::string &file_name, const std::string &window_size) +{ + std::string filename(file_name); + + assert(!filename.empty()); + + if(filename.empty()) + return; + + // Toss out any "hidden" files + if(basename(filename)[0]=='.') + return; + + // If we aren't an absolute path, turn ourselves into one + if(!is_absolute_path(filename)) + filename=absolute_path(filename); + + std::string old_window_size; + + list::iterator iter; + list::iterator iter_wsize; + // Check to see if the file is already on the list. + // If it is, then remove it from the list + for(iter=recent_files.begin(), iter_wsize=recent_files_window_size.begin();iter!=recent_files.end();iter++, iter_wsize++) + if(*iter==filename) + { + recent_files.erase(iter); + old_window_size = *iter_wsize; + recent_files_window_size.erase(iter_wsize); + break; + } + + + // Push the filename to the front of the list + recent_files.push_front(filename); + if(window_size.empty()) + recent_files_window_size.push_front(old_window_size); + else + recent_files_window_size.push_front(window_size); + + // Clean out the files at the end of the list. + while(recent_files.size()>(unsigned)get_max_recent_files()) + { + recent_files.pop_back(); + recent_files_window_size.pop_back(); + } + + signal_recent_files_changed_(); + + return; +} + +static Time::Format _App_time_format(Time::FORMAT_NORMAL); + +Time::Format +App::get_time_format() +{ + return _App_time_format; +} + +void +App::set_time_format(synfig::Time::Format x) +{ + _App_time_format=x; +} + + +void +App::save_settings() +{ + char * old_locale; + try + { + old_locale=strdup(setlocale(LC_NUMERIC, NULL)); + setlocale(LC_NUMERIC, "C"); + { + std::string filename=get_config_file("accelrc"); + Gtk::AccelMap::save(filename); + } + do{ + std::string filename=get_config_file("recentfiles"); + + std::ofstream file(filename.c_str()); + + if(!file) + { + synfig::warning("Unable to save %s",filename.c_str()); + break; + } + + list::reverse_iterator iter; + + for(iter=recent_files.rbegin();iter!=recent_files.rend();iter++) + file<<*iter<::reverse_iterator iter; + + for(iter=recent_files_window_size.rbegin();iter!=recent_files_window_size.rend();iter++) + file<<*iter<task(_("Quit Request")); + if(Busy::count) + { + dialog_error_blocking(_("Cannot quit!"),_("Tasks are currently running.\nPlease cancel the current tasks and try again")); + return; + } + + std::list >::iterator iter; + for(iter=instance_list.begin();!instance_list.empty();iter=instance_list.begin()) + { + if(!(*iter)->safe_close()) + return; + +/* + if((*iter)->synfigapp::Instance::get_action_count()) + { + handle uim; + uim=(*iter)->find_canvas_view((*iter)->get_canvas())->get_ui_interface(); + assert(uim); + string str=strprintf(_("Would you like to save your changes to %s?"),(*iter)->get_file_name().c_str() ); + switch(uim->yes_no_cancel((*iter)->get_canvas()->get_name(),str,synfigapp::UIInterface::RESPONSE_YES)) + { + case synfigapp::UIInterface::RESPONSE_NO: + break; + case synfigapp::UIInterface::RESPONSE_YES: + (*iter)->save(); + break; + case synfigapp::UIInterface::RESPONSE_CANCEL: + return; + default: + assert(0); + return; + } + } + + + if((*iter)->synfigapp::Instance::is_modified()) + { + handle uim; + uim=(*iter)->find_canvas_view((*iter)->get_canvas())->get_ui_interface(); + assert(uim); + string str=strprintf(_("%s has changes not yet on the CVS repository.\nWould you like to commit these changes?"),(*iter)->get_file_name().c_str() ); + switch(uim->yes_no_cancel((*iter)->get_canvas()->get_name(),str,synfigapp::UIInterface::RESPONSE_YES)) + { + case synfigapp::UIInterface::RESPONSE_NO: + break; + case synfigapp::UIInterface::RESPONSE_YES: + (*iter)->dialog_cvs_commit(); + break; + case synfigapp::UIInterface::RESPONSE_CANCEL: + return; + default: + assert(0); + return; + } + } +*/ + + // This next line causes things to crash for some reason + //(*iter)->close(); + } + + shutdown_in_progress=true; + + instance_list.clear(); + + while(studio::App::events_pending())studio::App::iteration(false); + + Gtk::Main::quit(); + auto_recover->normal_shutdown(); + + get_ui_interface()->task(_("Quit Request sent")); +} + +void +App::show_setup() +{ + dialog_setup->refresh(); + dialog_setup->show(); +} + +gint Signal_Open_Ok(GtkWidget */*widget*/, int *val){*val=1;return 0;} +gint Signal_Open_Cancel(GtkWidget */*widget*/, int *val){*val=2;return 0;} + +//#ifdef WIN32 +//#define USE_WIN32_FILE_DIALOGS 1 +//#endif + +#ifdef USE_WIN32_FILE_DIALOGS +static OPENFILENAME ofn={}; +#endif + +#ifdef WIN32 +#include +#endif + +bool +App::dialog_open_file(const std::string &title, std::string &filename, std::string preference) +{ + info("App::dialog_open_file('%s', '%s', '%s')", title.c_str(), filename.c_str(), preference.c_str()); + +#ifdef USE_WIN32_FILE_DIALOGS + static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ; + + GdkWindow *gdkWinPtr=toolbox->get_window()->gobj(); + HINSTANCE hInstance=static_cast(GetModuleHandle(NULL)); + HWND hWnd=static_cast(GDK_WINDOW_HWND(gdkWinPtr)); + + ofn.lStructSize=sizeof(OPENFILENAME); + ofn.hwndOwner = hWnd; + ofn.hInstance = hInstance; + ofn.lpstrFilter = szFilter; +// ofn.lpstrCustomFilter=NULL; +// ofn.nMaxCustFilter=0; +// ofn.nFilterIndex=0; +// ofn.lpstrFile=NULL; + ofn.nMaxFile=MAX_PATH; +// ofn.lpstrFileTitle=NULL; +// ofn.lpstrInitialDir=NULL; +// ofn.lpstrTitle=NULL; + ofn.Flags=OFN_HIDEREADONLY; +// ofn.nFileOffset=0; +// ofn.nFileExtension=0; + ofn.lpstrDefExt=TEXT("sif"); +// ofn.lCustData = 0l; + ofn.lpfnHook=NULL; +// ofn.lpTemplateName=NULL; + + CHAR szFilename[MAX_PATH]; + CHAR szTitle[500]; + strcpy(szFilename,filename.c_str()); + strcpy(szTitle,title.c_str()); + + ofn.lpstrFile=szFilename; + ofn.lpstrFileTitle=szTitle; + + if(GetOpenFileName(&ofn)) + { + filename=szFilename; + return true; + } + return false; + +#else + synfig::String prev_path; + + if(!_preferences.get_value(preference, prev_path)) + prev_path = "."; + + prev_path = absolute_path(prev_path); + + Gtk::FileChooserDialog *dialog = new Gtk::FileChooserDialog(title, Gtk::FILE_CHOOSER_ACTION_OPEN); + + dialog->set_current_folder(prev_path); + dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); + dialog->add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT); + + if (filename.empty()) + dialog->set_filename(prev_path); + else if (is_absolute_path(filename)) + dialog->set_filename(filename); + else + dialog->set_filename(prev_path + ETL_DIRECTORY_SEPARATOR + filename); + + if(dialog->run() == GTK_RESPONSE_ACCEPT) { + filename = dialog->get_filename(); + info("Saving preference %s = '%s' in App::dialog_open_file()", preference.c_str(), dirname(filename).c_str()); + _preferences.set_value(preference, dirname(filename)); + delete dialog; + return true; + } + + delete dialog; + return false; + + /* + + GtkWidget *ok; + GtkWidget *cancel; + int val=0; + + GtkWidget *fileselection; + fileselection = gtk_file_selection_new(title.c_str()); + + + if(basename(filename)==filename) + { + gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),(prev_path+ETL_DIRECTORY_SEPARATOR).c_str()); + } + else + gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),dirname(filename).c_str()); + + gtk_file_selection_complete(GTK_FILE_SELECTION(fileselection),basename(filename).c_str()); + + ok=GTK_FILE_SELECTION(fileselection)->ok_button; + cancel=GTK_FILE_SELECTION(fileselection)->cancel_button; + + gtk_signal_connect(GTK_OBJECT(ok),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Ok),&val); + gtk_signal_connect(GTK_OBJECT(cancel),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Cancel),&val); + + gtk_widget_show(fileselection); + + while(!val) + iteration(); + + + if(val==1) + { + filename=gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection)); + _preferences.set_value(preference,dirname(filename)); + } + else + { + gtk_widget_destroy(fileselection); + return false; + } + gtk_widget_destroy(fileselection); + return true; + */ +#endif +} + +bool +App::dialog_save_file(const std::string &title, std::string &filename, std::string preference) +{ + info("App::dialog_save_file('%s', '%s', '%s')", title.c_str(), filename.c_str(), preference.c_str()); + +#if USE_WIN32_FILE_DIALOGS + static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ; + + GdkWindow *gdkWinPtr=toolbox->get_window()->gobj(); + HINSTANCE hInstance=static_cast(GetModuleHandle(NULL)); + HWND hWnd=static_cast(GDK_WINDOW_HWND(gdkWinPtr)); + + ofn.lStructSize=sizeof(OPENFILENAME); + ofn.hwndOwner = hWnd; + ofn.hInstance = hInstance; + ofn.lpstrFilter = szFilter; +// ofn.lpstrCustomFilter=NULL; +// ofn.nMaxCustFilter=0; +// ofn.nFilterIndex=0; +// ofn.lpstrFile=NULL; + ofn.nMaxFile=MAX_PATH; +// ofn.lpstrFileTitle=NULL; +// ofn.lpstrInitialDir=NULL; +// ofn.lpstrTitle=NULL; + ofn.Flags=OFN_OVERWRITEPROMPT; +// ofn.nFileOffset=0; +// ofn.nFileExtension=0; + ofn.lpstrDefExt=TEXT("sif"); +// ofn.lCustData = 0l; + ofn.lpfnHook=NULL; +// ofn.lpTemplateName=NULL; + + CHAR szFilename[MAX_PATH]; + CHAR szTitle[500]; + strcpy(szFilename,filename.c_str()); + strcpy(szTitle,title.c_str()); + + ofn.lpstrFile=szFilename; + ofn.lpstrFileTitle=szTitle; + + if(GetSaveFileName(&ofn)) + { + filename=szFilename; + _preferences.set_value(preference,dirname(filename)); + return true; + } + return false; +#else + synfig::String prev_path; + + if(!_preferences.get_value(preference, prev_path)) + prev_path="."; + + prev_path = absolute_path(prev_path); + + Gtk::FileChooserDialog *dialog = new Gtk::FileChooserDialog(title, Gtk::FILE_CHOOSER_ACTION_SAVE); + + dialog->set_current_folder(prev_path); + dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); + dialog->add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_ACCEPT); + + Widget_Enum *file_type_enum = 0; + if (preference == ANIMATION_DIR_PREFERENCE) + { + file_type_enum = manage(new Widget_Enum()); + file_type_enum->set_param_desc(ParamDesc().set_hint("enum") + .add_enum_value(synfig::RELEASE_VERSION_0_61_08, "0.61.08", strprintf("0.61.08 (%s)", _("current"))) + .add_enum_value(synfig::RELEASE_VERSION_0_61_07, "0.61.07", "0.61.07") + .add_enum_value(synfig::RELEASE_VERSION_0_61_06, "0.61.06", strprintf("0.61.06 %s", _("and older")))); + file_type_enum->set_value(RELEASE_VERSION_END-1); // default to the most recent version + + Gtk::HBox *hbox = manage(new Gtk::HBox); + hbox->pack_start(*manage(new Gtk::Label(_("File Format Version: "))),Gtk::PACK_SHRINK,0); + hbox->pack_start(*file_type_enum,Gtk::PACK_EXPAND_WIDGET,0); + hbox->show_all(); + + dialog->set_extra_widget(*hbox); + } + + if (filename.empty()) + dialog->set_filename(prev_path); + else + { + std::string full_path; + if (is_absolute_path(filename)) + full_path = filename; + else + full_path = prev_path + ETL_DIRECTORY_SEPARATOR + filename; + + // select the file if it exists + dialog->set_filename(full_path); + + // if the file doesn't exist, put its name into the filename box + struct stat s; + if(stat(full_path.c_str(),&s) == -1 && errno == ENOENT) + dialog->set_current_name(basename(filename)); + } + + if(dialog->run() == GTK_RESPONSE_ACCEPT) { + if (preference == ANIMATION_DIR_PREFERENCE) + set_file_version(synfig::ReleaseVersion(file_type_enum->get_value())); + filename = dialog->get_filename(); + info("Saving preference %s = '%s' in App::dialog_save_file()", preference.c_str(), dirname(filename).c_str()); + _preferences.set_value(preference, dirname(filename)); + delete dialog; + return true; + } + + delete dialog; + return false; +#endif +} + +void +App::dialog_error_blocking(const std::string &title, const std::string &message) +{ + Gtk::MessageDialog dialog(message, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true); + dialog.set_title(title); + dialog.show(); + dialog.run(); +} + +void +App::dialog_warning_blocking(const std::string &title, const std::string &message) +{ + Gtk::MessageDialog dialog(message, false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_CLOSE, true); + dialog.set_title(title); + dialog.show(); + dialog.run(); +} + +bool +App::dialog_yes_no(const std::string &title, const std::string &message) +{ + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),1); + dialog.add_button(Gtk::StockID("gtk-no"),0); + dialog.show(); + return dialog.run(); +} + +int +App::dialog_yes_no_cancel(const std::string &title, const std::string &message) +{ + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),1); + dialog.add_button(Gtk::StockID("gtk-no"),0); + dialog.add_button(Gtk::StockID("gtk-cancel"),2); + dialog.show(); + return dialog.run(); +} + +void +App::dialog_not_implemented() +{ + Gtk::MessageDialog dialog(_("Feature not available"), false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true); + dialog.set_secondary_text(_("Sorry, this feature has not yet been implemented.")); + dialog.run(); +} + +static bool +try_open_url(const std::string &url) +{ +#ifdef WIN32 + return ShellExecute(GetDesktopWindow(), "open", url.c_str(), NULL, NULL, SW_SHOW); +#else // !WIN32 + std::vector command_line; + std::vector browsers; + browsers.reserve(23); + + // Browser wrapper scripts +#ifdef USE_OPEN_FOR_URLS + browsers.push_back("open"); // Apple MacOS X wrapper, on Linux it opens a virtual console +#endif + browsers.push_back("xdg-open"); // XDG wrapper + browsers.push_back("sensible-browser"); // Debian wrapper + browsers.push_back("gnome-open"); // GNOME wrapper + browsers.push_back("kfmclient"); // KDE wrapper + browsers.push_back("exo-open"); // XFCE wrapper + + // Alternatives system + browsers.push_back("gnome-www-browser"); // Debian GNOME alternative + browsers.push_back("x-www-browser"); // Debian GUI alternative + + // Individual browsers + browsers.push_back("firefox"); + browsers.push_back("epiphany-browser"); + browsers.push_back("epiphany"); + browsers.push_back("konqueror"); + browsers.push_back("iceweasel"); + browsers.push_back("mozilla"); + browsers.push_back("netscape"); + browsers.push_back("icecat"); + browsers.push_back("galeon"); + browsers.push_back("midori"); + browsers.push_back("safari"); + browsers.push_back("opera"); + browsers.push_back("amaya"); + browsers.push_back("netsurf"); + browsers.push_back("dillo"); + + // Try the user-specified browser first + command_line.push_back(App::browser_command); + if( command_line[0] == "kfmclient" ) command_line.push_back("openURL"); + command_line.push_back(url); + + try { Glib::spawn_async(".", command_line, Glib::SPAWN_SEARCH_PATH); return true; } + catch( Glib::SpawnError& exception ){ + + while ( !browsers.empty() ) + { + // Skip the browser if we already tried it + if( browsers[0] == App::browser_command ) + continue; + + // Construct the command line + command_line.clear(); + command_line.push_back(browsers[0]); + if( command_line[0] == "kfmclient" ) command_line.push_back("openURL"); + command_line.push_back(url); + + // Remove the browser from the list + browsers.erase(browsers.begin()); + + // Try to spawn the browser + try { Glib::spawn_async(".", command_line, Glib::SPAWN_SEARCH_PATH); } + // Failed, move on to the next one + catch(Glib::SpawnError& exception){ continue; } + return true; // No exception means we succeeded! + } + } + + return false; +#endif // !WIN32 +} + +void +App::dialog_help() +{ + if (!try_open_url("http://synfig.org/Documentation")) + { + Gtk::MessageDialog dialog(_("Documentation"), false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_CLOSE, true); + dialog.set_secondary_text(_("Documentation for Synfig Studio is available on the website:\n\nhttp://www.synfig.org/Documentation")); + dialog.set_title(_("Help")); + dialog.run(); + } +} + +void +App::open_url(const std::string &url) +{ + if(!try_open_url(url)) + { + Gtk::MessageDialog dialog(_("No browser was found. Please load this website manually:"), false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true); + dialog.set_secondary_text(url); + dialog.set_title(_("No browser found")); + dialog.run(); + } +} + +bool +App::dialog_entry(const std::string &title, const std::string &message,std::string &text) +{ + Gtk::Dialog dialog( + title, // Title + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + dialog.get_vbox()->pack_start(label); + + Gtk::Entry entry; + entry.set_text(text); + entry.show(); + entry.set_activates_default(true); + dialog.get_vbox()->pack_start(entry); + + dialog.add_button(Gtk::StockID("gtk-ok"),Gtk::RESPONSE_OK); + dialog.add_button(Gtk::StockID("gtk-cancel"),Gtk::RESPONSE_CANCEL); + dialog.set_default_response(Gtk::RESPONSE_OK); + entry.signal_activate().connect(sigc::bind(sigc::mem_fun(dialog,&Gtk::Dialog::response),Gtk::RESPONSE_OK)); + dialog.show(); + + if(dialog.run()!=Gtk::RESPONSE_OK) + return false; + + text=entry.get_text(); + + return true; +} + + + + +bool +App::open(std::string filename) +{ + return open_as(filename,filename); +} + +// this is called from autorecover.cpp: +// App::open_as(get_shadow_file_name(filename),filename) +// other than that, 'filename' and 'as' are the same +bool +App::open_as(std::string filename,std::string as) +{ +#ifdef WIN32 + char long_name[1024]; + if(GetLongPathName(as.c_str(),long_name,sizeof(long_name))); + // when called from autorecover.cpp, filename doesn't exist, and so long_name is empty + // don't use it if that's the case + if (long_name[0] != '\0') + as=long_name; +#endif + + try + { + OneMoment one_moment; + + etl::handle canvas(open_canvas_as(filename,as)); + if(canvas && get_instance(canvas)) + { + get_instance(canvas)->find_canvas_view(canvas)->present(); + info("%s is already open", filename.c_str()); + // throw (String)strprintf(_("\"%s\" appears to already be open!"),filename.c_str()); + } + else + { + if(!canvas) + throw (String)strprintf(_("Unable to open file \"%s\""),filename.c_str()); + + if (as.find(DEFAULT_FILENAME_PREFIX) != 0) + add_recent_file(as); + + handle instance(Instance::create(canvas)); + + if(!instance) + throw (String)strprintf(_("Unable to create instance for \"%s\""),filename.c_str()); + + set_recent_file_window_size(instance); + + one_moment.hide(); + + if(instance->is_updated() && App::dialog_yes_no(_("CVS Update"), _("There appears to be a newer version of this file available on the CVS repository.\nWould you like to update now? (It would probably be a good idea)"))) + instance->dialog_cvs_update(); + } + } + catch(String x) + { + dialog_error_blocking(_("Error"), x); + return false; + } + catch(...) + { + dialog_error_blocking(_("Error"), _("Uncaught error on file open (BUG)")); + return false; + } + + return true; +} + + +void +App::new_instance() +{ + handle canvas=synfig::Canvas::create(); + + String file_name(strprintf("%s%d", DEFAULT_FILENAME_PREFIX, Instance::get_count()+1)); + canvas->set_name(file_name); + file_name += ".sifz"; + + canvas->rend_desc().set_frame_rate(24.0); + canvas->rend_desc().set_time_start(0.0); + canvas->rend_desc().set_time_end(5.0); + canvas->rend_desc().set_x_res(DPI2DPM(72.0f)); + canvas->rend_desc().set_y_res(DPI2DPM(72.0f)); + canvas->rend_desc().set_tl(Vector(-4,2.25)); + canvas->rend_desc().set_br(Vector(4,-2.25)); + canvas->rend_desc().set_w(480); + canvas->rend_desc().set_h(270); + canvas->rend_desc().set_antialias(1); + canvas->rend_desc().set_flags(RendDesc::PX_ASPECT|RendDesc::IM_SPAN); + canvas->set_file_name(file_name); + + handle instance = Instance::create(canvas); + + if (getenv("SYNFIG_ENABLE_NEW_CANVAS_EDIT_PROPERTIES")) + instance->find_canvas_view(canvas)->canvas_properties.present(); +} + +void +App::dialog_open(string filename) +{ + if (filename.empty()) + filename="*.sif"; + + while(dialog_open_file("Open", filename, ANIMATION_DIR_PREFERENCE)) + { + // If the filename still has wildcards, then we should + // continue looking for the file we want + if(find(filename.begin(),filename.end(),'*')!=filename.end()) + continue; + + if(open(filename)) + break; + + get_ui_interface()->error(_("Unable to open file")); + } +} + +void +App::set_selected_instance(etl::loose_handle instance) +{ +/* if(get_selected_instance()==instance) + { + selected_instance=instance; + signal_instance_selected()(instance); + return; + } + else + { +*/ + selected_instance=instance; + if(get_selected_canvas_view() && get_selected_canvas_view()->get_instance()!=instance) + { + if(instance) + { + instance->focus(instance->get_canvas()); + } + else + set_selected_canvas_view(0); + } + signal_instance_selected()(instance); +} + +void +App::set_selected_canvas_view(etl::loose_handle canvas_view) +{ + selected_canvas_view=canvas_view; + signal_canvas_view_focus()(selected_canvas_view); + if(canvas_view) + { + selected_instance=canvas_view->get_instance(); + signal_instance_selected()(canvas_view->get_instance()); + } +/* + if(get_selected_canvas_view()==canvas_view) + { + signal_canvas_view_focus()(selected_canvas_view); + signal_instance_selected()(canvas_view->get_instance()); + return; + } + selected_canvas_view=canvas_view; + if(canvas_view && canvas_view->get_instance() != get_selected_instance()) + set_selected_instance(canvas_view->get_instance()); + signal_canvas_view_focus()(selected_canvas_view); +*/ +} + +etl::loose_handle +App::get_instance(etl::handle canvas) +{ + if(!canvas) return 0; + canvas=canvas->get_root(); + + std::list >::iterator iter; + for(iter=instance_list.begin();iter!=instance_list.end();++iter) + { + if((*iter)->get_canvas()==canvas) + return *iter; + } + return 0; +} + +void +App::dialog_about() +{ + if(about) + about->show(); +} + +void +studio::App::undo() +{ + if(selected_instance) + selected_instance->undo(); +} + +void +studio::App::redo() +{ + if(selected_instance) + selected_instance->redo(); +} + +synfig::String +studio::App::get_base_path() +{ + return app_base_path_; +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/app.h b/synfig-studio/tags/0.61.08/src/gtkmm/app.h new file mode 100644 index 0000000..f3d7338 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/app.h @@ -0,0 +1,355 @@ +/* === S Y N F I G ========================================================= */ +/*! \file app.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_APP_H +#define __SYNFIG_STUDIO_APP_H + +/* === H E A D E R S ======================================================= */ + +#include + +#include +#include +#include + +#include + +#include +#include +#include + +#include + +#include +#include "iconcontroller.h" + +/* === M A C R O S ========================================================= */ + +#define MISC_DIR_PREFERENCE "misc_dir" +#define ANIMATION_DIR_PREFERENCE "animation_dir" +#define IMAGE_DIR_PREFERENCE "image_dir" +#define SKETCH_DIR_PREFERENCE "sketch_dir" +#define RENDER_DIR_PREFERENCE "render_dir" + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace Gtk +{ + class InputDialog; + class UIManager; + class ActionGroup; +}; + +namespace synfigapp +{ + class UIInterface; + class Main; +}; + +class Preferences; + +namespace studio { + +typedef Gtk::UIManager UIManager; + +class About; +class Toolbox; +class Instance; +class CanvasView; +class Dialog_Setup; +class Dialog_Gradient; +class Dialog_Color; +class Dialog_ToolOptions; +class DeviceTracker; +class AutoRecover; + +class DockManager; + +class Dock_History; +class Dock_Canvases; + +class Dock_Keyframes; +class Dock_Params; +class Dock_Layers; +class Dock_MetaData; +class Dock_Children; +class Dock_Info; +class Dock_Navigator; +class Dock_LayerGroups; +class IPC; + +class Module; + +class StateManager; +class IconController; + +class App : public Gtk::Main, private IconController +{ + friend class Preferences; + friend class Dialog_Setup; + + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + struct Busy + { + static int count; + Busy(){count++;} + ~Busy(){count--;} + }; + + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +private: + //static etl::handle ui_interface_; + //static int max_recent_files; + +/* + static Dock_Keyframes *dock_keyframes; + static Dock_Layers *dock_layers; + static Dock_Params *dock_params; + static Dock_MetaData *dock_meta_data; + static Dock_Children *dock_children; + static Dock_Info *dock_info; + static Dock_Navigator *dock_navigator; + static Dock_History *dock_history; + static Dock_Canvases *dock_canvases; + static Dock_LayerGroups *dock_layer_groups; + + static IPC *ipc; +*/ + + etl::smart_ptr synfigapp_main; + + + static etl::handle selected_instance; + static etl::handle selected_canvas_view; + + static Glib::RefPtr ui_manager_; + +// static std::list< etl::handle< Module > > module_list_; + + /* + -- ** -- P U B L I C D A T A ----------------------------------------------- + */ + +public: + static Gtk::InputDialog* dialog_input; + + static DeviceTracker* device_tracker; + static AutoRecover* auto_recover; + static DockManager* dock_manager; + + static DockManager* get_dock_manager() { return dock_manager; } + + static Dialog_Setup* dialog_setup; + static Dialog_Gradient* dialog_gradient; + static Dialog_Color* dialog_color; +// static Dialog_Palette* dialog_palette; + static Dialog_ToolOptions *dialog_tool_options; + + static synfig::Distance::System distance_system; + + static synfig::Gamma gamma; + + static About *about; + static Toolbox *toolbox; + + static std::list > instance_list; + + static bool shutdown_in_progress; + + static bool use_colorspace_gamma; + +#ifdef SINGLE_THREADED + static bool single_threaded; +#endif + + static bool restrict_radius_ducks; + + static synfig::String browser_command; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ +/* + static sigc::signal< + void, + etl::loose_handle + > signal_canvas_view_focus_; + static sigc::signal< + void, + etl::handle + > signal_instance_selected_; + static sigc::signal< + void, + etl::handle + > signal_instance_created_; + static sigc::signal< + void, + etl::handle + > signal_instance_deleted_; + static sigc::signal signal_recent_files_changed_; + static sigc::signal signal_present_all_; +*/ +public: + + static sigc::signal &signal_present_all(); + + static sigc::signal &signal_recent_files_changed(); + + static sigc::signal< + void, + etl::loose_handle + >& signal_canvas_view_focus(); + + static sigc::signal< + void, + etl::handle + > &signal_instance_selected(); + + static sigc::signal< + void, + etl::handle + > &signal_instance_created(); + + static sigc::signal< + void, + etl::handle + > &signal_instance_deleted(); + + /* + -- ** -- P R I V A T E M E T H O D S --------------------------------------- + */ + +private: + static void add_recent_file(const std::string &filename, const std::string &window_size = std::string()); + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + + App(int *argc, char ***argv); + virtual ~App(); + + /* + -- ** -- S T A T I C P U B L I C M E T H O D S --------------------------- + */ + +public: + + static StateManager* get_state_manager(); + + static Glib::RefPtr& ui_manager() { return ui_manager_; } + + static void set_recent_file_window_size(etl::handle instance); + static void add_recent_file(const etl::handle instance); + + static synfig::String get_base_path(); + static void save_settings(); + static void load_settings(); + static void reset_initial_window_configuration(); + + static const std::list& get_recent_files(); + + static const etl::handle& get_ui_interface(); + + + static void set_selected_instance(etl::loose_handle instance); + static void set_selected_canvas_view(etl::loose_handle); + + static etl::loose_handle get_instance(etl::handle canvas); + + static etl::loose_handle get_selected_instance() { return selected_instance; } + static etl::loose_handle get_selected_canvas_view() { return selected_canvas_view; } + + static bool open(std::string filename); + + static bool open_as(std::string filename,std::string as); + + static void new_instance(); + + static void dialog_open(std::string filename = ""); + + static void dialog_about(); + + static void quit(); + + static void show_setup(); + + static void undo(); + static void redo(); + + static int get_max_recent_files(); + static void set_max_recent_files(int x); + + + static synfig::Time::Format get_time_format(); + static void set_time_format(synfig::Time::Format x); + + static bool shutdown_request(GdkEventAny*bleh=NULL); + +// static bool dialog_file(const std::string &title, std::string &filename); + + static bool dialog_open_file(const std::string &title, std::string &filename, std::string preference); + static bool dialog_save_file(const std::string &title, std::string &filename, std::string preference); + + static void dialog_error_blocking(const std::string &title, const std::string &message); + + static void dialog_warning_blocking(const std::string &title, const std::string &message); + + static bool dialog_entry(const std::string &title, const std::string &message,std::string &text); + + static bool dialog_yes_no(const std::string &title, const std::string &message); + + static int dialog_yes_no_cancel(const std::string &title, const std::string &message); + + static void dialog_not_implemented(); + + static void dialog_help(); + + static void open_url(const std::string &url); + + static synfig::String get_user_app_directory(); + static synfig::String get_config_file(const synfig::String& file); +}; // END of class App + + void delete_widget(Gtk::Widget *widget); + +}; // END namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.cpp new file mode 100644 index 0000000..72a286c --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.cpp @@ -0,0 +1,541 @@ +/* === S Y N F I G ========================================================= */ +/*! \file asyncrenderer.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "asyncrenderer.h" +#include "app.h" +#include +#include + +#ifdef HAVE_UNISTD_H +#include +#endif + +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#ifdef HAVE_SYS_WAIT_H +#include +#endif + +#ifdef HAVE_SIGNAL_H +#include +#endif + +#include +#include + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +#define BOREDOM_TIMEOUT 50 + +#define REJOIN_ON_STOP 1 + +// The Glib::Dispatcher class is broken as of Glibmm 2.4.5. +// Defining this macro enables the workaround. +#define GLIB_DISPATCHER_BROKEN 1 + +/* === C L A S S E S ======================================================= */ + +class AsyncTarget_Tile : public synfig::Target_Tile +{ +public: + etl::handle warm_target; + + struct tile_t + { + Surface surface; + int x,y; + tile_t(const Surface& surface,int x, int y): + surface(surface), + x(x),y(y) + { + } + }; + std::list tile_queue; + Glib::Mutex mutex; + +#ifndef GLIB_DISPATCHER_BROKEN + Glib::Dispatcher tile_ready_signal; +#endif + Glib::Cond cond_tile_queue_empty; + bool alive_flag; + + sigc::connection ready_connection; + +public: + AsyncTarget_Tile(etl::handle warm_target): + warm_target(warm_target) + { + set_avoid_time_sync(warm_target->get_avoid_time_sync()); + set_tile_w(warm_target->get_tile_w()); + set_tile_h(warm_target->get_tile_h()); + set_canvas(warm_target->get_canvas()); + set_quality(warm_target->get_quality()); + set_remove_alpha(warm_target->get_remove_alpha()); + set_threads(warm_target->get_threads()); + set_clipping(warm_target->get_clipping()); + set_rend_desc(&warm_target->rend_desc()); + alive_flag=true; +#ifndef GLIB_DISPATCHER_BROKEN + ready_connection=tile_ready_signal.connect(sigc::mem_fun(*this,&AsyncTarget_Tile::tile_ready)); +#endif + } + + ~AsyncTarget_Tile() + { + ready_connection.disconnect(); + } + void set_dead() + { + Glib::Mutex::Lock lock(mutex); + alive_flag=false; + } + + virtual int total_tiles()const + { + return warm_target->total_tiles(); + } + + virtual int next_tile(int& x, int& y) + { + if(!alive_flag) + return 0; + + return warm_target->next_tile(x,y); + } + + virtual int next_frame(Time& time) + { + if(!alive_flag) + return 0; + return warm_target->next_frame(time); + } + + virtual bool start_frame(synfig::ProgressCallback *cb=0) + { + if(!alive_flag) + return false; + return warm_target->start_frame(cb); + } + + virtual bool add_tile(const synfig::Surface &surface, int gx, int gy) + { + assert(surface); + if(!alive_flag) + return false; + Glib::Mutex::Lock lock(mutex); + tile_queue.push_back(tile_t(surface,gx,gy)); + if(tile_queue.size()==1) + { +#ifdef GLIB_DISPATCHER_BROKEN + ready_connection=Glib::signal_timeout().connect( + sigc::bind_return( + sigc::mem_fun(*this,&AsyncTarget_Tile::tile_ready), + false + ) + ,0 + ); +#else + tile_ready_signal(); +#endif + } + + return alive_flag; + } + + void tile_ready() + { + Glib::Mutex::Lock lock(mutex); + if(!alive_flag) + { + tile_queue.clear(); + cond_tile_queue_empty.signal(); + return; + } + while(!tile_queue.empty() && alive_flag) + { + tile_t& tile(tile_queue.front()); + + if (getenv("SYNFIG_SHOW_TILE_OUTLINES")) + { + Color red(1,0,0); + tile.surface.fill(red, 0, 0, 1, tile.surface.get_h()); + tile.surface.fill(red, 0, 0, tile.surface.get_w(), 1); + } + + alive_flag=warm_target->add_tile(tile.surface,tile.x,tile.y); + + tile_queue.pop_front(); + } + cond_tile_queue_empty.signal(); + } + + virtual void end_frame() + { +#ifdef SINGLE_THREADED + if (!single_threaded()) + { +#endif + while(alive_flag) + { + Glib::Mutex::Lock lock(mutex); + if(!tile_queue.empty() && alive_flag) + { + if(cond_tile_queue_empty.timed_wait(mutex,Glib::TimeVal(0,BOREDOM_TIMEOUT))) + break; + } + else + break; + } +#ifdef SINGLE_THREADED + } +#endif + Glib::Mutex::Lock lock(mutex); + if(!alive_flag) + return; + return warm_target->end_frame(); + } +}; + + + +class AsyncTarget_Scanline : public synfig::Target_Scanline +{ +public: + etl::handle warm_target; + + int scanline_; + Surface surface; + + Glib::Mutex mutex; + +#ifndef GLIB_DISPATCHER_BROKEN + Glib::Dispatcher frame_ready_signal; +#endif + Glib::Cond cond_frame_queue_empty; + bool alive_flag; + bool ready_next; + sigc::connection ready_connection; + + +public: + AsyncTarget_Scanline(etl::handle warm_target): + warm_target(warm_target) + { + set_avoid_time_sync(warm_target->get_avoid_time_sync()); + set_canvas(warm_target->get_canvas()); + set_quality(warm_target->get_quality()); + set_remove_alpha(warm_target->get_remove_alpha()); + set_threads(warm_target->get_threads()); + set_rend_desc(&warm_target->rend_desc()); + alive_flag=true; +#ifndef GLIB_DISPATCHER_BROKEN + ready_connection=frame_ready_signal.connect(sigc::mem_fun(*this,&AsyncTarget_Scanline::frame_ready)); +#endif + surface.set_wh(warm_target->rend_desc().get_w(),warm_target->rend_desc().get_h()); + } + + ~AsyncTarget_Scanline() + { + ready_connection.disconnect(); + } + + virtual int next_frame(Time& time) + { + if(!alive_flag) + return 0; + return warm_target->next_frame(time); + + } + + void set_dead() + { + Glib::Mutex::Lock lock(mutex); + alive_flag=false; + } + + virtual bool start_frame(synfig::ProgressCallback */*cb*/=0) + { + return alive_flag; + } + + virtual void end_frame() + { + { + Glib::Mutex::Lock lock(mutex); + + if(!alive_flag) + return; + ready_next=false; + +#ifdef GLIB_DISPATCHER_BROKEN + ready_connection=Glib::signal_timeout().connect( + sigc::bind_return( + sigc::mem_fun(*this,&AsyncTarget_Scanline::frame_ready), + false + ) + ,0 + ); +#else + frame_ready_signal(); +#endif + } + +#ifdef SINGLE_THREADED + if (single_threaded()) + signal_progress()(); + else +#endif + while(alive_flag && !ready_next) + { + Glib::Mutex::Lock lock(mutex); + if(cond_frame_queue_empty.timed_wait(mutex,Glib::TimeVal(0,BOREDOM_TIMEOUT))) + break; + } + } + + + virtual Color * start_scanline(int scanline) + { + Glib::Mutex::Lock lock(mutex); + + return surface[scanline]; + } + + virtual bool end_scanline() + { + return alive_flag; + } + + void frame_ready() + { + Glib::Mutex::Lock lock(mutex); + if(alive_flag) + alive_flag=warm_target->add_frame(&surface); +#ifdef SINGLE_THREADED + if (!single_threaded()) +#endif + cond_frame_queue_empty.signal(); + ready_next=true; + } +}; + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +AsyncRenderer::AsyncRenderer(etl::handle target_,synfig::ProgressCallback *cb): + error(false), + success(false), + cb(cb) +#ifdef SINGLE_THREADED + , updating(false) +#endif +{ + render_thread=0; + if(etl::handle::cast_dynamic(target_)) + { + etl::handle wrap_target( + new AsyncTarget_Tile(etl::handle::cast_dynamic(target_)) + ); + + signal_stop_.connect(sigc::mem_fun(*wrap_target,&AsyncTarget_Tile::set_dead)); + + target=wrap_target; + } + else if(etl::handle::cast_dynamic(target_)) + { + etl::handle wrap_target( + new AsyncTarget_Scanline( + etl::handle::cast_dynamic(target_) + ) + ); + + signal_stop_.connect(sigc::mem_fun(*wrap_target,&AsyncTarget_Scanline::set_dead)); + + target=wrap_target; + } +} + +AsyncRenderer::~AsyncRenderer() +{ + stop(); +} + +void +AsyncRenderer::stop() +{ + if(target) + { + Glib::Mutex::Lock lock(mutex); + done_connection.disconnect(); + + if(render_thread) + { + signal_stop_(); + +#if REJOIN_ON_STOP +#ifdef SINGLE_THREADED + if (!single_threaded()) +#endif + render_thread->join(); +#endif + + // Make sure all the dispatch crap is cleared out + //Glib::MainContext::get_default()->iteration(false); + + if(success) + signal_success_(); + + signal_finished_(); + + target=0; + render_thread=0; + } + } +} + +void +AsyncRenderer::pause() +{ +} + +void +AsyncRenderer::resume() +{ +} + +void +AsyncRenderer::start() +{ + done_connection=Glib::signal_timeout().connect( + sigc::bind_return( + mem_fun(*this,&AsyncRenderer::start_), + false + ) + ,50 + ); +} + +#ifdef SINGLE_THREADED +void +AsyncRenderer::rendering_progress() +{ + updating = true; + while(studio::App::events_pending()) studio::App::iteration(false); + updating = false; +} +#endif + +void +AsyncRenderer::start_() +{ + error=false;success=false; + if(target) + { +#ifndef GLIB_DISPATCHER_BROKEN + done_connection=signal_done_.connect(mem_fun(*this,&AsyncRenderer::stop)); +#endif + +#ifdef SINGLE_THREADED + if (single_threaded()) + { + synfig::info("%s:%d rendering in the same thread", __FILE__, __LINE__); + target->signal_progress().connect(sigc::mem_fun(this,&AsyncRenderer::rendering_progress)); + render_thread = (Glib::Thread*)1; + render_target(); + } + else +#endif + { + render_thread=Glib::Thread::create( + sigc::mem_fun(*this,&AsyncRenderer::render_target), +#if REJOIN_ON_STOP + true +#else + false +#endif + ); + assert(render_thread); + } + } + else + { + stop(); + } +} + +void +AsyncRenderer::render_target() +{ + etl::handle target(AsyncRenderer::target); + + if(target && target->render()) + { + success=true; + } + else + { + error=true; +#ifndef REJOIN_ON_STOP + return; +#endif + } + + if(mutex.trylock()) + { +#ifdef GLIB_DISPATCHER_BROKEN + done_connection=Glib::signal_timeout().connect( + sigc::bind_return( + mem_fun(*this,&AsyncRenderer::stop), + false + ) + ,0 + ); +#else + signal_done_.emit(); +#endif + mutex.unlock(); + } +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.h b/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.h new file mode 100644 index 0000000..6678e4e --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/asyncrenderer.h @@ -0,0 +1,121 @@ +/* === S Y N F I G ========================================================= */ +/*! \file asyncrenderer.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_ASYNCRENDERER_H +#define __SYNFIG_ASYNCRENDERER_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +// uncomment to use a single thread, and hopefully get more stability +// #define SINGLE_THREADED +#ifdef SINGLE_THREADED +# define single_threaded() App::single_threaded +#endif + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +class AsyncRenderer : public etl::shared_object, public sigc::trackable +{ + sigc::signal signal_finished_; + sigc::signal signal_success_; + + std::list activity_connection_list; + + //etl::handle target_scanline; + //etl::handle target_tile; + etl::handle target; + + bool error; + bool success; + + synfig::ProgressCallback *cb; + + sigc::signal signal_stop_; + + Glib::Thread* render_thread; + Glib::Dispatcher signal_done_; + Glib::Mutex mutex; + sigc::connection done_connection; + + /* + -- ** -- P A R E N T M E M B E R S ----------------------------------------- + */ +public: + + AsyncRenderer(etl::handle target,synfig::ProgressCallback *cb=0); + virtual ~AsyncRenderer(); + + void start(); + void stop(); + void pause(); + void resume(); +#ifdef SINGLE_THREADED + void rendering_progress(); + bool updating; +#endif + + bool has_error()const { return error; } + bool has_success()const { return success; } + + sigc::signal& signal_finished() { return signal_finished_; } + sigc::signal& signal_success() { return signal_success_; } + +private: + + void render_target(); + void start_(); + + /* + -- ** -- C H I L D M E M B E R S ------------------------------------------- + */ + +protected: + +}; + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.cpp new file mode 100644 index 0000000..70d5dd9 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.cpp @@ -0,0 +1,1429 @@ +/* === S Y N F I G ========================================================= */ +/*! \file audiocontainer.cpp +** \brief Audio Container implementation File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include +#include +//#include +#include + +#include + +#include + +#include "audiocontainer.h" + +#include +#include +#include + +#include +#include + +#ifdef WITH_FMOD +#include +#endif + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ +#ifdef __WIN32 +#else //linux... +#define AUDIO_OUTPUT FSOUND_OUTPUT_OSS +#endif + +/* === G L O B A L S ======================================================= */ +const double delay_factor = 3; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +//Help constructing stuff +struct FSOUND_SAMPLE; +using studio::AudioContainer; + +#ifdef WITH_FMOD +bool build_profile(FSOUND_SAMPLE *sample, double &samplerate, std::vector &samples) +#else +bool build_profile(FSOUND_SAMPLE */*sample*/, double &/*samplerate*/, std::vector &/*samples*/) +#endif +{ +#ifdef WITH_FMOD + + float sps = samplerate; + + //trivial rejection... + if(!sample || sps < 1) + { + synfig::warning("build_profile: Sample rate was too low or sample was invalid"); + return false; + } + + //lock for all samples and process them into a subset + unsigned int mode = FSOUND_Sample_GetMode(sample); + + //make sure that it's 8 bit... I hope this works... + + //sample rate of the actual song... + int allsamplerate = 0; + FSOUND_Sample_GetDefaults(sample,&allsamplerate,0,0,0); + + //get the size of the sample defaults from the mode + int channels = 1; + int channelsize = 1; //number of bytes + + if(mode & FSOUND_16BITS) channelsize = 2; //this shouldn't happen + if(mode & FSOUND_STEREO) channels = 2; + + //Get the sample information + int samplesize = channels*channelsize; //the only two things that increase samplesize + int numsamples = FSOUND_Sample_GetLength(sample); //number of samples in the sound + int sizeall = samplesize*numsamples; //should be the size of the entire song... + + if(sizeall <= 0) + { + synfig::warning("ProfileAudio: Sample buffer cannot be size smaller than 1 (%X)",FSOUND_GetError()); + return false; + } + + //be sure that the new sample rate is less than or equal to the original + if(sps > allsamplerate) sps = allsamplerate; + + float stride = allsamplerate/(float)sps; + + //down sampling to 8 bit min/max values + synfig::warning("About to downsample from %d Hz to %.1f Hz, sample stride: %f", allsamplerate, sps, stride); + + char *sampledata=0,*useless = 0; + unsigned int len1,len2; + // vector samples; + { + if(!FSOUND_Sample_Lock(sample,0,sizeall,(void**)&sampledata,(void**)&useless,&len1,&len2)) + { + synfig::warning("ProfileAudio: Unable to lock the sound buffer... (%X)",FSOUND_GetError()); + return false; + } + synfig::warning("Locked: %X: %d bytes, %X: %d bytes",sampledata,len1,useless,len2); + + if(channelsize == 1) + { + //process the data + char *iter = sampledata; + char *end = iter + sizeall; + + float curaccum = 0; + float numinc = sps/(float)allsamplerate; + + /* Loop per sample DDA alg. + */ + + int i = 0; + + //HACK - to prevent if statement inside inner loop + //synfig::warning("wo baby wo baby, inc: %d, stride: %f, size: %d", inc, stride, sizeall); + while(iter < end) + { + int maxs = 0, mins = 0; + + for(;curaccum < 1; curaccum += numinc) + { + for(i = 0; iter < end && i < channels; ++i, iter += channelsize) + { + maxs = std::max(maxs,(int)*iter); + mins = std::min(mins,(int)*iter); + } + } + //insert onto new list + samples.push_back(maxs); + samples.push_back(mins); + + //and flush all the used samples for curaccum + curaccum -= 1; + } + }else if(channelsize == 2) + { + //process the data + char *iter = sampledata; + char *end = iter + sizeall; + + float curaccum = 0; + float numinc = sps/(float)allsamplerate; + + /* Loop per sample DDA alg. + */ + + int i = 0; + + //HACK - to prevent if statement inside inner loop + //synfig::warning("wo baby wo baby, inc: %d, stride: %f, size: %d", inc, stride, sizeall); + while(iter < end) + { + int maxs = 0, mins = 0; + + for(;curaccum < 1; curaccum += numinc) + { + for(i = 0; iter < end && i < channels; ++i, iter += channelsize) + { + maxs = std::max(maxs,(int)*(short*)iter); + mins = std::min(mins,(int)*(short*)iter); + } + } + //insert onto new list + samples.push_back(maxs / 256); + samples.push_back(mins / 256); + + //and flush all the used samples for curaccum + curaccum -= 1; + } + } + } + + synfig::warning("Stats: %f seconds with %d bytes now %d bytes", (samples.size()/2)/sps, sizeall, samples.size()); + synfig::warning(" %f seconds before", numsamples/(float)allsamplerate); + + //we're done yay!, unlock + FSOUND_Sample_Unlock(sample,sampledata,useless,len1,len2); + synfig::info("Unlocked"); + + //FSOUND_PlaySound(FSOUND_FREE,sound); //test + + //we're done + samplerate = sps*2; //it must be x2 because we are sampling max and min + + return true; + + #else + + return false; + + #endif +} + + +//FMOD Systemwide Specific data mostly here... + +struct scrubinfo; + +#ifdef WITH_FMOD +static double buffer_length_sec = 0; + +//------- Scrubbing -------------- +/* Scrubbing works as follows: + + The sound is played using PlaySoundEx + we specify a user created DSP for scrubbing + set it initially to inactive + + When the program initiates it + we set the initial data in the shared structure and activate the dsp unit + then for each cursor update we get we set the value in the shared structure +*/ + +/* Things to check: + If IsPlaying just governs the channel play/stop value or if it also concerns the pause state + +*/ + +//so we can know where to create all this stuff +struct scrubinfo +{ + /* Linearly fit the frequency to hit the desired zero point... + */ + /*struct scrubelement + { + double pos; + double dt; + //the amount of time left til the cursor hits this one + // it's incremental so that the cursor must pass previous + // ones before decrementing this value + }; + */ + + //the time it should take to get to the next position... + + //to prevent from writing to the same location at once... (pos, deltatime, delaystart) + //Glib::Mutex lock; + + //the queue system would provide a more accurate representation... + volatile double pos; + volatile double deltatime; + + volatile double delaystart; //the amount of time we need to go before we start interpolating... + + volatile int channel; + + /*std::list queue; + + volatile int channel; + + //current position is FSOUND_GetCurrentPosition and current time is always 0... + + void add(const scrubelement &elem) + { + lock.LockWrite(); + + queue.push_back(elem); + + lock.UnlockWrite(); + } + + //Function to safely get rid of all the old samples (dt < 0) + void flush() + { + lock.LockWrite(); + + while(queue.size() && queue.front().dt < 0) + { + queue.pop_front(); + } + + lock.UnlockWrite(); + }*/ + + void Lock() + { + //lock.lock(); + } + + void Unlock() + { + //lock.unlock(); + } + + //All parameters and state should be set by the time we get here... + void scrub_dsp_process() + { + const double epsilon = 1e-5; + + //Trivial reject... we go nowhere if we aren't playing (hit boundary...) + if(!FSOUND_IsPlaying(channel)) return; + + //Get rid of all the old samples + //flush(); + + //Trivial reject #2 - We also go nowhere with no future samples (pause) + /*if(queue.size() <= 0) + { + FSOUND_SetPaused(channel,true); + return; + }*/ + + double dt = buffer_length_sec; + + //Lock ourselves so we don't die + Lock(); + + //printf("DSP data: delay = %.3f s, pos = %d, dt = %.3f\n", delaystart, (int)pos, deltatime); + + //Check delay + if(delaystart > 0) + { + delaystart -= dt; + + if(delaystart < 0) + { + dt = -delaystart; //add time back... + delaystart = 0; + } + } + + //Trivial reject for if we're past current sample... + if(delaystart > 0 || deltatime <= 0) + { + FSOUND_SetPaused(channel,true); + Unlock(); + return; + } + + //Calculate stretched frequency based on delayed future sample... + + //NOTE: BY NOT TRACKING POSITION AS A FLOAT AND JUST USING THE SOUNDS VALUE + // WE ARE LOSING A TINY AMOUNT OF PRECISION ACCURACY EVERY UPDATE + // (THIS SHOULDN'T BE A PROBLEM) + const double p0 = FSOUND_GetCurrentPosition(channel); + double curdp = 0; + + if(!FSOUND_GetPaused(channel)) + { + curdp = FSOUND_GetFrequency(channel) * deltatime; + } + + //need to rescale derivative... + + //Extrapolate from difference in position and deltatime vs dt... + const double pa = p0 + curdp/2; + + const double p1 = pos; + + //const double pb = p0/3 + p1*2/3; + + //will extrapolate if needed... (could be funky on a curve) + double t = 0; + if(deltatime > epsilon) + { + t = dt / deltatime; + } + + //Decrement deltatime (we may have gone past but that's what happens when we don't get input...) + deltatime -= dt; + + //we don't need to look at the current variables anymore... + Unlock(); + + const double invt = 1-t; + //double deltapos = (p1-p0)*t; //linear version + double deltapos = invt*invt*p0 + 2*t*invt*pa + t*t*p1 - p0; //quadratic smoothing version + + //Attempted cubic smoothing + //const double invt2 = invt*invt; + //const double t2 = t*t; + //double deltapos = invt2*invt*p0 + 3*t*invt2*pa + 3*t2*invt*pb + t2*t*p1; + //double deltapos = p0 + t*(3*(pa-p0) + t*(3*(p0+2*pa+pb) + t*((p1-3*pb+3*ba-p0)))); //unwound cubic + + //printf("\ttime = %.2f; p(%d,%d,%d) dp:%d - delta = %d\n",t,(int)p0,(int)p1,(int)p2,(int)curdp,(int)deltapos); + + //Based on the delta info calculate the stretched frequency + const int dest_samplesize = FSOUND_DSP_GetBufferLength(); + + //rounded to nearest frequency... (hopefully...) + int freq = (int)(deltapos * FSOUND_GetOutputRate() / (double)dest_samplesize); + + //NOTE: WE MIGHT WANT TO DO THIS TO BE MORE ACCURATE BUT YEAH... ISSUES WITH SMALL NUMBERS + //double newdp = deltapos / t; + + //printf("\tfreq = %d Hz\n", freq); + + // !If I failed... um assume we have to pause it... ? + if(abs(freq) < 100) + { + FSOUND_SetPaused(channel,true); + }else + { + //synfig::info("DSP f = %d Hz", freq); + FSOUND_SetPaused(channel,false); + if(!FSOUND_SetFrequency(channel,freq)) + { + //ERROR WILL ROBINSON!!!... + printf("Error in Freq... what do I do?\n"); + } + } + } +}; + +struct scrubuserdata +{ + /* //for use with multiple + //each one is a 'handle' to a pointer that will be effected by something else + typedef scrubinfo** value_type; + typedef std::set< value_type > scrubslist; + scrubslist scrubs; + + //so we can lock access to the list... + ReadWriteLock lock; + + void AddScrub(scrubinfo **i) + { + lock.LockWrite(); + scrubs.insert(i); + lock.UnLockWrite(); + } + + void RemoveScrub(scrubinfo **i) + { + lock.LockWrite(); + scrubs.erase(i); + lock.UnLockWrite(); + }*/ + + scrubinfo * volatile * scrub; +}; + +//Scrubbing data structures +static const int default_scrub_priority = 5; //between clear and sfx/music mix +static scrubuserdata g_scrubdata = {0}; +static FSOUND_DSPUNIT *scrubdspunit = 0; + +void * scrubdspwrap(void *originalbuffer, void *newbuffer, int length, void *userdata) +{ + //std::string dsp = "DSP"; + if(userdata) + { + scrubuserdata &sd = *(scrubuserdata*)userdata; + + /* //For use with multiple scrubs... + //Lock so no one can write to it while we're reading from it... + sd.lock.LockRead(); + + //make a copy of it... + std::vector v(sd.scrubs.begin(),sd.scrubs.end()); + + //other things can do stuff with it again... + sd.lock.UnLockRead(); + + //loop through the list and process all the active scrub units + std::vector::iterator i = v.begin(), + end = v.end(); + for(;i != end; ++i) + { + //check to make sure this object is active... + if(*i && **i) + { + (**i)->scrub_dsp_process(); + } + } + */ + + if(sd.scrub && *sd.scrub) + { + //dsp += " processing..."; + scrubinfo * info = (*sd.scrub); + info->scrub_dsp_process(); + } + } + + //synfig::info(dsp); + + return newbuffer; +} + +//------- Class for loading fmod on demand ------- + +class FMODInitializer +{ + bool loaded; + int refcount; + +public: + FMODInitializer():loaded(false),refcount(0) {} + ~FMODInitializer() + { + clear(); + } + + void addref() + { + if(!loaded) + { + #ifdef WITH_FMOD + synfig::info("Initializing FMOD on demand..."); + + { + FSOUND_SetOutput(AUDIO_OUTPUT); + + /*int numdrivers = FSOUND_GetNumDrivers(); + synfig::info("Num FMOD drivers = %d",numdrivers); + synfig::info("Current Driver is #%d", FSOUND_GetDriver()); + + for(int i = 0; i < numdrivers; ++i) + { + unsigned int caps = 0; + FSOUND_GetDriverCaps(i,&caps); + + synfig::info(" Caps for driver %d (%s) = %x",i,FSOUND_GetDriverName(i),caps); + } + + FSOUND_SetDriver(0);*/ + + //Modify buffer size... + //FSOUND_SetBufferSize(100); + + if(!FSOUND_Init(44100, 32, 0)) + { + synfig::warning("Unable to load FMOD"); + }else + { + loaded = true; + + //Create the DSP for processing scrubbing... + scrubdspunit = FSOUND_DSP_Create(&scrubdspwrap,default_scrub_priority,&g_scrubdata); + + //Load the number of sec per buffer into the global variable... + buffer_length_sec = FSOUND_DSP_GetBufferLength() / (double)FSOUND_GetOutputRate(); + } + } + #endif + } + + //add to the refcount + ++refcount; + //synfig::info("Audio: increment fmod refcount %d", refcount); + } + + void decref() + { + if(refcount <= 0) + { + synfig::warning("FMOD refcount is already 0..."); + }else + { + --refcount; + //synfig::info("Audio: decrement fmod refcount %d", refcount); + + //NOTE: UNCOMMENT THIS IF YOU WANT FMOD TO UNLOAD ITSELF WHEN IT ISN'T NEEDED ANYMORE... + flush(); + } + } + + bool is_loaded() const { return loaded; } + + void clear() + { + refcount = 0; + flush(); + } + + void flush() + { + if(loaded && refcount <= 0) + { + #ifdef WITH_FMOD + synfig::info("Unloading FMOD"); + if(scrubdspunit) FSOUND_DSP_Free(scrubdspunit); + FSOUND_Close(); + #endif + loaded = false; + } + } +}; + +//The global counter for FMOD.... +FMODInitializer fmodinit; + +#endif + +//----- AudioProfile Implementation ----------- +void studio::AudioProfile::clear() +{ + samplerate = 0; + samples.clear(); +} + +handle studio::AudioProfile::get_parent() const +{ + return parent; +} + +void studio::AudioProfile::set_parent(etl::handle i) +{ + parent = i; +} + +double studio::AudioProfile::get_offset() const +{ + if(parent) + return parent->get_offset(); + return 0; +} + +//---------- AudioContainer definitions --------------------- + +struct studio::AudioContainer::AudioImp +{ + //Sample load time information + FSOUND_SAMPLE * sample; + int channel; + int sfreq; + int length; + + //Time information + double offset; //time offset for playing... + + //We don't need it now that we've adopted the play(t) time schedule... + //current time... and playing info.... + //float seekpost; + //bool useseekval; + + //Make sure to sever our delayed start if we are stopped prematurely + sigc::connection delaycon; + + //Action information + bool playing; + double curscrubpos; + etl::clock timer; //for getting the time diff between scrub input points + + //Scrubbing information... + //the current position of the sound will be sufficient for normal stuff... + #ifdef WITH_FMOD + scrubinfo scrinfo; + #endif + + scrubinfo *scrptr; + + bool is_scrubbing() const {return scrptr != 0;} +#ifdef WITH_FMOD + void set_scrubbing(bool s) +#else + void set_scrubbing(bool /*s*/) +#endif + { + #ifdef WITH_FMOD + if(s) + scrptr = &scrinfo; + else + #endif + scrptr = 0; + } + + //helper to make sure we are actually playing (and to get a new channel...) + bool init_play() + { + #ifdef WITH_FMOD + if(!FSOUND_IsPlaying(channel)) + { + if(sample) + { + //play sound paused etc. + channel = FSOUND_PlaySoundEx(FSOUND_FREE,sample,0,true); + if(channel < 0 || FSOUND_GetError() != FMOD_ERR_NONE) + { + synfig::warning("Could not play the sample..."); + return false; + } + } + }else + { + FSOUND_SetPaused(channel,true); + FSOUND_SetFrequency(channel,sfreq); + } + return true; + + #else + + return false; + + #endif + } + +public: //structors + AudioImp() + :sample(0), + channel(0), + sfreq(0), + length(0), + offset(0), + playing(false), + scrptr(0) + { + //reuse the channel... + #ifdef WITH_FMOD + channel = FSOUND_FREE; + #endif + } + + ~AudioImp() + { + clear(); + } + +public: //helper/accessor funcs + bool start_playing_now() //callback for timer... + { + #ifdef WITH_FMOD + if(playing) + { + //Make sure the sound is playing and if it is un pause it... + if(init_play()) + FSOUND_SetPaused(channel,false); + } + #endif + + return false; //so the timer doesn't repeat itself + } + + bool isRunning() + { + #ifdef WITH_FMOD + return FSOUND_IsPlaying(channel); + #else + return false; + #endif + } + + bool isPaused() + { +#ifdef WITH_FMOD + return FSOUND_GetPaused(channel); +#else + return false; +#endif + } + + +public: //forward interface + + //Accessors for the offset - in seconds + const double &get_offset() const {return offset;} + void set_offset(const double &d) + { + offset = d; + } + + //Will override the parameter timevalue if the sound is running, and not if it's not... +#ifdef WITH_FMOD + bool get_current_time(double &out) +#else + bool get_current_time(double &/*out*/) +#endif + { + if(isRunning()) + { + #ifdef WITH_FMOD + unsigned int pos = FSOUND_GetCurrentPosition(channel); + + //adjust back by 1 frame... HACK.... + //pos -= FSOUND_DSP_GetBufferLength(); + + //set the position + out = pos/(double)sfreq + offset; + #endif + + return true; + } + return false; + } + + //Big implementation functions... + bool load(const std::string &filename, const std::string &filedirectory); + void clear(); + + //playing functions + void play(double t); + void stop(); + + //scrubbing functions + void start_scrubbing(double t); + void scrub(double t); + void stop_scrubbing(); + + double scrub_time() + { + return curscrubpos; + } +}; + +//--------------- Audio Container definitions -------------------------- +studio::AudioContainer::AudioContainer() +{ + imp = 0; +} + +studio::AudioContainer::~AudioContainer() +{ + if(imp) delete (imp); +} + +bool studio::AudioContainer::load(const std::string &filename,const std::string &filedirectory) +{ + if(!imp) + { + imp = new AudioImp; + } + + profilevalid = false; + return imp->load(filename,filedirectory); +} + +#ifdef WITH_FMOD +handle studio::AudioContainer::get_profile(float samplerate) +#else +handle studio::AudioContainer::get_profile(float /*samplerate*/) +#endif +{ + #ifdef WITH_FMOD + + //if we already have done our work, then we're good + if(profilevalid && prof) + { + //synfig::info("Using already built profile"); + return prof; + } + + //synfig::info("Before profile"); + //make a new profile at current sample rate + + //NOTE: We might want to reuse the structure already there... + prof = new AudioProfile; + prof->set_parent(this); //Our parent is THIS!!! + + if(!prof) + { + synfig::warning("Couldn't allocate audioprofile..."); + return handle(); + } + + //setting the info for the sample rate + //synfig::info("Setting info..."); + + synfig::info("Building Profile..."); + prof->samplerate = samplerate; + if(build_profile(imp->sample,prof->samplerate,prof->samples)) + { + synfig::info(" Success!"); + profilevalid = true; + return prof; + }else + { + return handle(); + } + + #else + + return handle(); + + #endif +} + +void studio::AudioContainer::clear() +{ + if(imp) + { + delete imp; + imp = 0; + } + + profilevalid = false; +} + +void studio::AudioContainer::play(double t) +{ + if(imp) imp->play(t); +} + +void studio::AudioContainer::stop() +{ + if(imp) imp->stop(); +} + +bool studio::AudioContainer::get_current_time(double &out) +{ + if(imp) return imp->get_current_time(out); + else return false; +} + +void AudioContainer::set_offset(const double &s) +{ + if(imp) imp->set_offset(s); +} + +double AudioContainer::get_offset() const +{ + static double zero = 0; + if(imp) + return imp->get_offset(); + return zero; +} + +bool AudioContainer::is_playing() const +{ + if(imp) + return imp->playing; + return false; +} + +bool AudioContainer::is_scrubbing() const +{ + if(imp) + return imp->is_scrubbing(); + return false; +} + +void AudioContainer::start_scrubbing(double t) +{ + if(imp) imp->start_scrubbing(t); +} + +void AudioContainer::stop_scrubbing() +{ + if(imp) imp->stop_scrubbing(); +} + +void AudioContainer::scrub(double t) +{ + if(imp) imp->scrub(t); +} + +double AudioContainer::scrub_time() const +{ + if(imp) return imp->scrub_time(); + else return 0; +} + +bool AudioContainer::isRunning() const +{ + if(imp) return imp->isRunning(); + else return false; +} + +bool AudioContainer::isPaused() const +{ + if(imp) return imp->isPaused(); + else return false; +} + +//----------- Audio imp information ------------------- + +#ifdef WITH_FMOD +bool studio::AudioContainer::AudioImp::load(const std::string &filename, + const std::string &filedirectory) +#else +bool studio::AudioContainer::AudioImp::load(const std::string &/*filename*/, + const std::string &/*filedirectory*/) +#endif +{ + clear(); + + #ifdef WITH_FMOD + + //And continue with the sound loading... + string file = filename; + + //Trivial reject... (fixes stat call problem... where it just looks at directory and not file...) + if(file.length() == 0) return false; + + //we don't need the file directory? + if(!is_absolute_path(file)) + { + file=filedirectory+filename; + synfig::warning("Not absolute hoooray"); + } + synfig::info("Loading Audio file: %s", file.c_str()); + + //check to see if file exists + { + struct stat s; + if(stat(file.c_str(),&s) == -1 && errno == ENOENT) + { + synfig::info("There was no audio file..."); + return false; + } + } + + //load fmod if we can... + //synfig::warning("I'm compiled with FMOD!"); + fmodinit.addref(); + + //load the stream + int ch = FSOUND_FREE; + FSOUND_SAMPLE *sm = FSOUND_Sample_Load(FSOUND_FREE,file.c_str(),FSOUND_LOOP_OFF|FSOUND_MPEGACCURATE,0,0); + + if(!sm) + { + synfig::warning("Could not open the audio file as a sample: %s",file.c_str()); + goto error; + } + + //synfig::warning("Opened a file as a sample! :)"); + + /*{ + int bufferlen = FSOUND_DSP_GetBufferLength(); + synfig::info("Buffer length = %d samples, %.3lf s",bufferlen, bufferlen / (double)FSOUND_GetOutputRate()); + }*/ + + //set all the variables since everything has worked out... + //get the length of the stream + { + length = FSOUND_Sample_GetLength(sm); + + int volume = 0; + FSOUND_Sample_GetDefaults(sm,&sfreq,&volume,0,0); + + //double len = length / (double)sfreq; + //synfig::info("Sound info: %.2lf s long, %d Hz, %d Vol",(double)length,sfreq,volume); + } + + //synfig::warning("Got all info, and setting up everything, %.2f sec.", length); + //synfig::warning(" BigSample: composed of %d samples", FSOUND_Sample_GetLength(sm)); + synfig::info("Successfully opened %s as a sample and initialized it.",file.c_str()); + + //set up the playable info + sample = sm; + channel = ch; + + //the length and sfreq params have already been initialized + + return true; + +error: + if(sm) FSOUND_Sample_Free(sm); + file = ""; + + fmodinit.decref(); + + return false; + + #else + return false; + #endif +} + +#ifdef WITH_FMOD +void studio::AudioContainer::AudioImp::play(double t) +#else +void studio::AudioContainer::AudioImp::play(double /*t*/) +#endif +{ + #ifdef WITH_FMOD + if(!sample) return; + + //stop scrubbing if we are... + if(is_scrubbing()) stop_scrubbing(); + + //t -= offset; + t -= get_offset(); + playing = true; + + if(t < 0) + { + unsigned int timeout = (int)floor(-t * 1000 + 0.5); + //synfig::info("Playing audio delayed by %d ms",timeout); + //delay for t seconds... + delaycon = Glib::signal_timeout().connect( + sigc::mem_fun(*this,&studio::AudioContainer::AudioImp::start_playing_now),timeout); + + init_play(); + FSOUND_SetFrequency(channel,sfreq); + FSOUND_SetCurrentPosition(channel,0); + return; + } + + unsigned int position = (int)floor(t*sfreq + 0.5); + + if(position >= FSOUND_Sample_GetLength(sample)) + { + synfig::warning("Can't play audio when past length..."); + return; + } + + init_play(); + FSOUND_SetFrequency(channel,sfreq); + FSOUND_SetCurrentPosition(channel,position); + FSOUND_SetPaused(channel,false); + + //synfig::info("Playing audio with position %d samples",position); + + #endif +} + +void studio::AudioContainer::AudioImp::stop() +{ + delaycon.disconnect(); + + #ifdef WITH_FMOD + if(fmodinit.is_loaded() && playing && isRunning()) + { + FSOUND_SetPaused(channel,true); + } + #endif + + playing = false; +} + +void studio::AudioContainer::AudioImp::clear() +{ + #ifdef WITH_FMOD + delaycon.disconnect(); + + stop(); + stop_scrubbing(); + + if(sample) + { + if(FSOUND_IsPlaying(channel)) + { + FSOUND_StopSound(channel); + } + channel = FSOUND_FREE; + FSOUND_Sample_Free(sample); + fmodinit.decref(); + } + + playing = false; + + #else + channel = 0; + #endif + + sample = 0; + playing = false; +} + +#ifdef WITH_FMOD +void studio::AudioContainer::AudioImp::start_scrubbing(double t) +#else +void studio::AudioContainer::AudioImp::start_scrubbing(double /*t*/) +#endif +{ + //synfig::info("Start scrubbing: %lf", t); + if(playing) stop(); + + set_scrubbing(true); + + #ifdef WITH_FMOD + //make sure the other one is not scrubbing... + if(g_scrubdata.scrub) + { + *g_scrubdata.scrub = 0; //nullify the pointer... + } + + //Set up the initial state for the delayed audio position + scrinfo.delaystart = 0; + scrinfo.pos = 0; + scrinfo.deltatime = 0; + + //set it to point to our pointer (dizzy...) + g_scrubdata.scrub = &scrptr; + + //setup position info so we can know what to do on boundary conditions... + curscrubpos = (t - get_offset()) * sfreq; + + //So we can get an accurate difference... + timer.reset(); + + //reposition the sound if it won't be when scrubbed (if it's already in the range...) + int curi = (int)curscrubpos; + if(curi >= 0 && curi < length) + { + init_play(); + FSOUND_SetCurrentPosition(channel,curi); + + //Set the values... + scrinfo.pos = curscrubpos; + scrinfo.delaystart = delay_factor*buffer_length_sec; + + //synfig::info("\tStarting at %d samps, with %d p %.3f delay", + // FSOUND_GetCurrentPosition(channel), (int)scrinfo.pos, scrinfo.delaystart); + } + + + + //enable the dsp... + //synfig::info("\tActivating DSP"); + FSOUND_DSP_SetActive(scrubdspunit,true); + #endif +} + +void studio::AudioContainer::AudioImp::stop_scrubbing() +{ + //synfig::info("Stop scrubbing"); + + if(is_scrubbing()) + { + set_scrubbing(false); + + #ifdef WITH_FMOD + g_scrubdata.scrub = 0; + + //stop the dsp... + //synfig::info("\tDeactivating DSP"); + FSOUND_DSP_SetActive(scrubdspunit,false); + if(FSOUND_IsPlaying(channel)) FSOUND_SetPaused(channel,true); + #endif + } + + curscrubpos = 0; +} + +#ifdef WITH_FMOD +void studio::AudioContainer::AudioImp::scrub(double t) +#else +void studio::AudioContainer::AudioImp::scrub(double /*t*/) +#endif +{ + #ifdef WITH_FMOD + //synfig::info("Scrub to %lf",t); + if(is_scrubbing()) + { + //What should we do? + + /* Different special cases + All outside, all inside, + coming in (left or right), + going out (left or right) + */ + double oldpos = curscrubpos; + double newpos = (t - get_offset()) * sfreq; + + curscrubpos = newpos; + + //Ok the sound is running, now we need to tweak it + if(newpos > oldpos) + { + //Outside so completely stopped... + if(newpos < 0 || oldpos >= length) + { + //synfig::info("\tOut +"); + if(FSOUND_IsPlaying(channel)) + { + FSOUND_SetPaused(channel,true); + } + + //Zero out the data! + scrinfo.Lock(); + scrinfo.delaystart = 0; + scrinfo.deltatime = 0; + scrinfo.Unlock(); + + return; + } + + //going in? - start the sound at the beginning... + /*else if(oldpos < 0) + { + //Set up the sound to be playing paused at the start... + init_play(); + FSOUND_SetCurrentPosition(channel,0); + + synfig::info("\tIn + %d", FSOUND_GetCurrentPosition(channel)); + + scrinfo.Lock(); + scrinfo.pos = 0; + scrinfo.delaystart = delay_factor*buffer_length_sec; + scrinfo.deltatime = 0; + scrinfo.Unlock(); + }*/ + //don't need to deal with leaving... automatically dealt with... + + else //We're all inside... + { + //Set new position and decide what to do with time... + scrinfo.Lock(); + scrinfo.pos = newpos; + + //should we restart the delay cycle... (is it done?) + if(!isRunning() || (scrinfo.delaystart <= 0 && scrinfo.deltatime <= 0 && isPaused())) + { + //synfig::info("Starting + at %d",(int)newpos); + scrinfo.deltatime = 0; + scrinfo.delaystart = delay_factor*buffer_length_sec; + scrinfo.Unlock(); + + //Set up the sound paused at the current position + init_play(); + int setpos = min(max((int)newpos,0),length); + FSOUND_SetCurrentPosition(channel,setpos); + timer.reset(); + return; + } + + //No! just increment the time delta... + scrinfo.deltatime += timer.pop_time(); + + //Nope... continue and just increment the deltatime and reset position... + scrinfo.Unlock(); + + //set channel and unpause + FSOUND_SetPaused(channel,false); + scrinfo.channel = channel; + + } + }else if(newpos < oldpos) + { + //completely stopped... + if(newpos >= length || oldpos < 0) + { + //synfig::info("Out -"); + if(FSOUND_IsPlaying(channel)) + { + FSOUND_SetPaused(channel,true); + } + + //Zero out the data! + scrinfo.Lock(); + scrinfo.delaystart = 0; + scrinfo.deltatime = 0; + scrinfo.Unlock(); + } + + //going in? - start going backwards at the end... + /*else if(oldpos >= length) + { + synfig::info("In -"); + //Set up the sound to be playing paused at the start... + init_play(); + FSOUND_SetCurrentPosition(channel,length-1); + + scrinfo.Lock(); + scrinfo.pos = length-1; + scrinfo.delaystart = delay_factor*buffer_length_sec; + scrinfo.deltatime = 0; + scrinfo.Unlock(); + }*/ + //we don't have to worry about the leaving case... + + else //We're all inside... + { + //Set new position and decide what to do with time... + scrinfo.Lock(); + scrinfo.pos = newpos; + + //should we restart the delay cycle... (is it done?) + if(!isRunning() ||(scrinfo.delaystart <= 0 && scrinfo.deltatime <= 0 && isPaused())) + { + //synfig::info("Starting - at %d",(int)newpos); + scrinfo.deltatime = 0; + scrinfo.delaystart = delay_factor*buffer_length_sec; + scrinfo.Unlock(); + + //reset timing so next update will be a valid diff... + init_play(); + int setpos = min(max((int)newpos,0),length); + FSOUND_SetCurrentPosition(channel,setpos); + timer.reset(); + return; + } + + //No! just increment the time delta... + scrinfo.deltatime += timer.pop_time(); + + //Nope... continue and just increment the deltatime and reset position... + scrinfo.Unlock(); + + //set channel and unpause + FSOUND_SetPaused(channel,false); + scrinfo.channel = channel; + } + } + } + #endif +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.h b/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.h new file mode 100644 index 0000000..21d5f51 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/audiocontainer.h @@ -0,0 +1,139 @@ +/* === S Y N F I G ========================================================= */ +/*! \file audiocontainer.h +** \brief Sound info header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_AUDIOCONTAINER_H +#define __SYNFIG_AUDIOCONTAINER_H + +/* === H E A D E R S ======================================================= */ +#include + +#include + +#include +#include + +#include + +/* === M A C R O S ========================================================= */ +const float DEF_DISPLAYSAMPLERATE = 400; +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +class AudioContainer; + +//Note: Might want to abstract something to share data between profile and parent +class AudioProfile : public etl::shared_object +{ +public: + typedef std::vector SampleProfile; + +private: + SampleProfile samples; + double samplerate; //samples / second of the profile + + //reference our parent for any native sound info + etl::loose_handle parent; + +public: //samples interface + + SampleProfile::const_iterator begin() const {return samples.begin();} + SampleProfile::const_iterator end() const {return samples.end();} + + void clear(); + unsigned int size() const {return samples.size();} + + char operator[](int i) const + { + if(i >= 0 && i < (int)samples.size()) return samples[i]; + else return 0; + } + +public: // + + double get_samplerate() const {return samplerate;} + void set_samplerate(double f) {samplerate = f;} + + double get_offset() const; + + etl::handle get_parent() const; + void set_parent(etl::handle i); + friend class AudioContainer; +}; + +/* Audio container actually implements all the cool stuff + Note: May be a bit too monolithic... +*/ +class AudioContainer : public sigc::trackable, public etl::shared_object +{ + etl::handle prof; + + struct AudioImp; + AudioImp *imp; + + bool profilevalid; //this is only half useful + //it makes it so we don't always have to realloc memory when the file switches... + +public: //structors + + AudioContainer(); + ~AudioContainer(); + +public: //accessor interface + void set_offset(const double &s); + double get_offset() const; + +public: //info gather interface + etl::handle get_profile(float samplerate = DEF_DISPLAYSAMPLERATE); + bool get_current_time(double &out); + +public: //operational interface + bool load(const std::string &filename, const std::string &filedirectory = ""); + void clear(); + + //play functions... + void play(double t); + void stop(); + //Note: this refers to the wrapper concept of the audio, the actual sound may or may not be playing... + bool is_playing() const; + + //scrubbing functions... + void start_scrubbing(double t); + void stop_scrubbing(); + void scrub(double t); //!< if we are not currently scrubbing this will not work + bool is_scrubbing() const; + + double scrub_time() const; + + bool isRunning() const; + bool isPaused() const; +}; + +} // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.cpp new file mode 100644 index 0000000..1b55eb4 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.cpp @@ -0,0 +1,330 @@ +/* === S Y N F I G ========================================================= */ +/*! \file autorecover.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "autorecover.h" + +#ifdef HAVE_SYS_ERRNO_H +#include +#endif +//#include +#include "app.h" +#include +#include +#include +#include +#include "instance.h" + +#ifdef HAVE_SYS_STAT_H +#include +#endif + +#ifdef HAVE_SYS_TIME_H +#include +#endif + +#ifdef HAVE_SYS_WAIT_H +#include +#endif + +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif + +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +#ifdef _WIN32 +#define mkdir(x,y) mkdir(x) +#endif + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +AutoRecover::AutoRecover() +{ + // Three Minutes + set_timeout(3*60*1000); + + if(mkdir(get_shadow_directory().c_str(),ACCESSPERMS)<0) + { + if(errno!=EEXIST) + synfig::error("UNABLE TO CREATE \"%s\"",get_shadow_directory().c_str()); + } + else + { + synfig::info("Created directory \"%s\"",get_shadow_directory().c_str()); + } +} + +AutoRecover::~AutoRecover() +{ +} + +synfig::String +AutoRecover::get_shadow_directory() +{ + return Glib::build_filename(App::get_user_app_directory(),"tmp"); +} + +int +AutoRecover::pid() +{ +// return getpid(); + return 0; +} + +void +AutoRecover::set_timeout(int milliseconds) +{ + timeout=milliseconds; + auto_backup_connect.disconnect(); + if(timeout) + auto_backup_connect=Glib::signal_timeout().connect(sigc::ptr_fun(&AutoRecover::auto_backup),timeout); +// auto_backup_connect=App::main.get_context()->signal_timeout().connect(sigc::mem_fun(&AutoRecover::auto_backup),timeout); +} + +synfig::String +AutoRecover::get_shadow_file_name(const synfig::String& filename) +{ + unsigned int hash1(0xdeadbeef); + unsigned int hash2(0x83502529); + char* str_hash1(reinterpret_cast(&hash1)); + char* str_hash2(reinterpret_cast(&hash2)); + + // First we need to hash up the directory + { + String pool(dirname(filename)); + + while(pool.size()>4) + { + str_hash1[0]^=pool[1];str_hash1[1]^=pool[2];str_hash1[2]^=pool[3];str_hash1[3]^=pool[0]; + str_hash2[3]+=pool[0];str_hash2[2]+=pool[1];str_hash2[1]+=pool[2];str_hash2[0]+=pool[3]; + swap(hash1,hash2); + pool=String(pool,4,pool.size()); + } + while(pool.size()) + { + str_hash1[0]^=pool[0]; + str_hash1[2]^=pool[0]; + str_hash2[1]^=pool[0]; + str_hash2[3]^=pool[0]; + swap(hash1,hash2); + pool=String(pool,1,pool.size()); + } + } + hash1^=hash2; + + return Glib::build_filename(get_shadow_directory(),strprintf("%08X-%s",hash1,basename(filename).c_str())); + +// return dirname(filename) + ETL_DIRECTORY_SEPARATOR + ".shadow_" + basename(filename); +} + +bool +AutoRecover::cleanup_pid(int pid) +{ +#ifdef HAVE_FORK + int status=0; + if(waitpid(pid,&status,WNOHANG)==-1) + { + synfig::info("PID %d isn't a zombie yet",pid); + return true; + } + if(WEXITSTATUS(status)!=0) + { + synfig::error("Autobackup seems to have failed! (PID=%d)",pid); + } +// else +// synfig::info("PID=%d has been cleaned up",pid); +#endif + return false; +} + +bool +AutoRecover::auto_backup() +{ + int pid(0); + +#ifdef HAVE_FORK + pid=fork(); +#endif + + if(pid<=0) + { +#ifdef HAVE_SETPRIORITY + // make us low priority so that we don't + // cause the machine to slow down too much + setpriority(PRIO_PROCESS,0,15); +#endif + + try + { + std::list >::iterator iter; + + std::string filename=App::get_config_file("autorecovery"); + std::ofstream file(filename.c_str()); + + int savecount(0); + + for(iter=App::instance_list.begin();iter!=App::instance_list.end();++iter) + { + // If this file hasn't even been changed + // since it was last saved, then don't bother + // backing it up. + if((*iter)->get_action_count()==0) + continue; + + Canvas::Handle canvas((*iter)->get_canvas()); + file<get_file_name()<get_file_name()),canvas); + savecount++; + } + +// if(savecount) +// synfig::info("AutoRecover::auto_backup(): %d Files backed up.",savecount); + } + catch(...) + { + synfig::error("AutoRecover::auto_backup(): UNKNOWN EXCEPTION THROWN."); + synfig::error("AutoRecover::auto_backup(): FILES NOT BACKED UP."); + } + +#ifdef HAVE_FORK + if(pid==0) + { + _exit(0); + } +#endif + } + +#ifdef HAVE_FORK + Glib::signal_timeout().connect( + sigc::bind( + sigc::ptr_fun(&AutoRecover::cleanup_pid), + pid + ), + 60*1000 + ); +#endif + + // Also go ahead and save the settings + App::save_settings(); + + return true; +} + +bool +AutoRecover::recovery_needed()const +{ + std::string filename=App::get_config_file("autorecovery"); + std::ifstream file(filename.c_str()); + if(!file) + return false; + + while(file) + { + std::string filename; + getline(file,filename); + if(!filename.empty()) + return true; + } + + return false; +} + +bool +AutoRecover::recover(int& number_recovered) +{ + std::string filename=App::get_config_file("autorecovery"); + std::ifstream file(filename.c_str()); + number_recovered = 0; + if(!file) + return false; + bool success=true; + + while(file) + { + std::string filename; + getline(file,filename); + if(filename.empty()) + continue; + + // Open the file + if(App::open_as(get_shadow_file_name(filename),filename)) + { + // Correct the file name + App::instance_list.back()->set_file_name(filename); + + // This file isn't saved! mark it as such + App::instance_list.back()->inc_action_count(); + + number_recovered++; + } + else + success=false; + } + + return success; +} + +void +AutoRecover::normal_shutdown() +{ + // Turn off the timer + auto_backup_connect.disconnect(); + + std::string filename=App::get_config_file("autorecovery"); + remove(filename.c_str()); +} + +void +AutoRecover::clear_backup(synfig::Canvas::Handle canvas) +{ + if(canvas) + remove(get_shadow_file_name(canvas->get_file_name()).c_str()); +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.h b/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.h new file mode 100644 index 0000000..9bdedac --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/autorecover.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file autorecover.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_AUTORECOVER_H +#define __SYNFIG_AUTORECOVER_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +class AutoRecover +{ + int timeout; + sigc::connection auto_backup_connect; +public: + AutoRecover(); + ~AutoRecover(); + + static int pid(); + static synfig::String get_shadow_file_name(const synfig::String& filename); + + static bool auto_backup(); + + static bool cleanup_pid(int pid); + + void set_timeout(int milliseconds); + int get_timeout()const { return timeout; } + + static synfig::String get_shadow_directory(); + + bool recovery_needed()const; + bool recover(int& number_recovered); + + void normal_shutdown(); + + void clear_backup(synfig::Canvas::Handle canvas); +}; // END of class AutoRecover + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.cpp new file mode 100644 index 0000000..dfc15ed --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.cpp @@ -0,0 +1,215 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasoptions.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvasoptions.h" +#include +#include +#include +#include +#include +#include "canvasview.h" +#include "workarea.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CanvasOptions::CanvasOptions(etl::loose_handle canvas_view): + Gtk::Dialog(_("Canvas Options"),*canvas_view,false,true), + canvas_view_(canvas_view), + toggle_grid_snap(_("_Snap to grid"), true), + toggle_grid_show(_("S_how grid"), true), + toggle_time_snap(_("Snap to _frame"), true) +{ + vector_grid_size.set_canvas(canvas_view->get_canvas()); + + Gtk::Alignment *dialogPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + dialogPadding->set_padding(12, 12, 12, 12); + + Gtk::Notebook *notebook=manage(new class Gtk::Notebook()); + dialogPadding->add(*notebook); + + toggle_grid_snap.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_snap_toggle)); + toggle_grid_show.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_show_toggle)); + + Gtk::Alignment *gridPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + gridPadding->set_padding(12, 12, 12, 12); + notebook->append_page(*gridPadding, _("Grid")); + + Gtk::VBox *gridBox = manage(new Gtk::VBox(false, 12)); + gridPadding->add(*gridBox); + + Gtk::Table *gridTable = manage(new Gtk::Table(3, 2, false)); + gridTable->set_row_spacings(6); + gridTable->set_col_spacings(12); + gridBox->pack_start(*gridTable, false, false, 0); + + Gtk::Label *gridSizeLabel = manage(new Gtk::Label(_("_Grid size"), true)); + gridSizeLabel->set_alignment(0, 0.5); + gridSizeLabel->set_mnemonic_widget(vector_grid_size); + + toggle_grid_show.set_alignment(0, 0.5); + toggle_grid_snap.set_alignment(0, 0.5); + + gridTable->attach(*gridSizeLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(vector_grid_size, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(toggle_grid_show, 0, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(toggle_grid_snap, 0, 2, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Alignment *timePadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + timePadding->set_padding(12, 12, 12, 12); + notebook->append_page(*timePadding, _("Time")); + + Gtk::VBox *timeBox = manage(new Gtk::VBox(false, 12)); + timePadding->add(*timeBox); + + timeBox->pack_start(toggle_time_snap, false, false, 0); + + Gtk::Alignment *unitPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + unitPadding->set_padding(12, 12, 12, 12); + notebook->append_page(*unitPadding, _("Units")); + unitPadding->add(*manage(new Gtk::Label(_("Not yet implemented!")))); + + Gtk::Button *ok_button(manage(new class Gtk::Button(Gtk::StockID("gtk-ok")))); + ok_button->show(); + add_action_widget(*ok_button,2); + ok_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_ok_pressed)); + + Gtk::Button *apply_button(manage(new class Gtk::Button(Gtk::StockID("gtk-apply")))); + apply_button->show(); + add_action_widget(*apply_button,1); + apply_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_apply_pressed)); + + Gtk::Button *cancel_button(manage(new class Gtk::Button(Gtk::StockID("gtk-close")))); + cancel_button->show(); + add_action_widget(*cancel_button,0); + cancel_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_cancel_pressed)); + + //set_default_response(1); + + + get_vbox()->pack_start(*dialogPadding); + get_vbox()->show_all(); + + signal_show().connect(sigc::mem_fun(*this, &studio::CanvasOptions::refresh)); + + vector_grid_size.set_digits(5); + + update_title(); +} + +CanvasOptions::~CanvasOptions() +{ +} + +void +CanvasOptions::update_title() +{ + set_title(_("Options")+String(" - ")+canvas_view_->get_canvas()->get_name()); +} + +void +CanvasOptions::refresh() +{ + if(canvas_view_->work_area->grid_status()) + toggle_grid_show.set_active(true); + else + toggle_grid_show.set_active(false); + + if(canvas_view_->work_area->get_grid_snap()) + toggle_grid_snap.set_active(true); + else + toggle_grid_snap.set_active(false); + + vector_grid_size.set_value(canvas_view_->work_area->get_grid_size()); + + tooltips.set_tip(toggle_time_snap,_("Not yet implemented")); + toggle_time_snap.set_sensitive(false); + + update_title(); +} + +void +CanvasOptions::on_grid_snap_toggle() +{ +} + +void +CanvasOptions::on_grid_show_toggle() +{ +} + +void +CanvasOptions::on_apply_pressed() +{ + canvas_view_->set_grid_snap_toggle(toggle_grid_snap.get_active()); + if(toggle_grid_snap.get_active()) + canvas_view_->work_area->enable_grid_snap(); + else + canvas_view_->work_area->disable_grid_snap(); + + canvas_view_->set_grid_show_toggle(toggle_grid_show.get_active()); + if(toggle_grid_show.get_active()) + canvas_view_->work_area->enable_grid(); + else + canvas_view_->work_area->disable_grid(); + + canvas_view_->work_area->set_grid_size(vector_grid_size.get_value()); +} + +void +CanvasOptions::on_ok_pressed() +{ + on_apply_pressed(); + hide(); +} + +void +CanvasOptions::on_cancel_pressed() +{ + refresh(); + hide(); +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.h b/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.h new file mode 100644 index 0000000..452ab3f --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasoptions.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasoptions.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GTKMM_CANVASOPTIONS_H +#define __SYNFIG_GTKMM_CANVASOPTIONS_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include "widget_value.h" +#include "widget_vector.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio +{ + +class CanvasView; + +class CanvasOptions : public Gtk::Dialog +{ + Gtk::Tooltips tooltips; + + etl::loose_handle canvas_view_; + + Gtk::CheckButton toggle_grid_snap; + Gtk::CheckButton toggle_grid_show; + + Widget_Vector vector_grid_size; + + Gtk::CheckButton toggle_time_snap; + +public: + CanvasOptions(etl::loose_handle canvas_view); + ~CanvasOptions(); + + void refresh(); + void update_title(); +private: + + void on_grid_snap_toggle(); + void on_grid_show_toggle(); + + void on_ok_pressed(); + void on_apply_pressed(); + void on_cancel_pressed(); +}; // END of class CanvasOptions + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.cpp new file mode 100644 index 0000000..ea1f83b --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.cpp @@ -0,0 +1,249 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasproperties.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvasproperties.h" +#include +#include +#include +#include +#include +#include "metadatatreestore.h" +#include +#include +#include "app.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CanvasProperties::CanvasProperties(Gtk::Window& parent,etl::handle canvas_interface): + Gtk::Dialog(_("Canvas Properties"),parent,false,true), + canvas_interface_(canvas_interface) +{ + widget_rend_desc.show(); + widget_rend_desc.signal_changed().connect(sigc::mem_fun(*this,&studio::CanvasProperties::on_rend_desc_changed)); + + Gtk::Alignment *dialogPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + dialogPadding->set_padding(12, 12, 12, 12); + get_vbox()->pack_start(*dialogPadding, false, false, 0); + + Gtk::VBox *dialogBox = manage(new Gtk::VBox(false, 12)); + dialogPadding->add(*dialogBox); + + Gtk::Frame *info_frame=manage(new Gtk::Frame(_("Canvas Info"))); + info_frame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) info_frame->get_label_widget())->set_markup(_("Canvas Info")); + dialogBox->pack_start(*info_frame, false, false, 0); + + Gtk::Alignment *infoPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + infoPadding->set_padding(6, 0, 24, 0); + info_frame->add(*infoPadding); + + Gtk::Table *info_table=manage(new Gtk::Table(2,2,false)); + info_table->set_row_spacings(6); + info_table->set_col_spacings(12); + infoPadding->add(*info_table); + + // The root canvas doesn't have an ID, so don't + // display it if this is a root canvas. + if(!canvas_interface_->get_canvas()->is_root()) + { + Gtk::Label *idLabel = manage(new Gtk::Label(_("_ID"), true)); + idLabel->set_alignment(0, 0.5); + idLabel->set_mnemonic_widget(entry_id); + info_table->attach(*idLabel, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + info_table->attach(entry_id, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + } + Gtk::Label *nameLabel = manage(new Gtk::Label(_("_Name"), true)); + nameLabel->set_alignment(0, 0.5); + nameLabel->set_mnemonic_widget(entry_name); + Gtk::Label *descriptionLabel = manage(new Gtk::Label(_("_Description"), true)); + descriptionLabel->set_alignment(0, 0.5); + descriptionLabel->set_mnemonic_widget(entry_description); + info_table->attach(*nameLabel, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + info_table->attach(*descriptionLabel, 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + info_table->attach(entry_name, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + info_table->attach(entry_description, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + dialogBox->pack_start(widget_rend_desc, false, false, 0); + + canvas_interface_->signal_rend_desc_changed().connect(sigc::mem_fun(*this,&studio::CanvasProperties::refresh)); + + Gtk::Button *ok_button(manage(new class Gtk::Button(Gtk::StockID("gtk-ok")))); + ok_button->show(); + add_action_widget(*ok_button,2); + ok_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasProperties::on_ok_pressed)); + + Gtk::Button *apply_button(manage(new class Gtk::Button(Gtk::StockID("gtk-apply")))); + apply_button->show(); + add_action_widget(*apply_button,1); + apply_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasProperties::on_apply_pressed)); + + Gtk::Button *cancel_button(manage(new class Gtk::Button(Gtk::StockID("gtk-close")))); + cancel_button->show(); + add_action_widget(*cancel_button,0); + cancel_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasProperties::on_cancel_pressed)); + + //set_default_response(1); + + get_vbox()->show_all(); + refresh(); + + update_title(); +} + +Gtk::Widget& +CanvasProperties::create_meta_data_view() +{ + MetaDataTreeStore::Model model; + meta_data_tree_view=(manage(new class Gtk::TreeView())); + + meta_data_tree_view->append_column(_("Key"),model.key); + meta_data_tree_view->append_column_editable(_("Data"),model.data); + meta_data_tree_view->set_model(MetaDataTreeStore::create(canvas_interface_)); + meta_data_tree_view->set_rules_hint(); + meta_data_tree_view->show(); + + Gtk::ScrolledWindow *scrolledwindow = manage(new class Gtk::ScrolledWindow()); + scrolledwindow->set_flags(Gtk::CAN_FOCUS); + scrolledwindow->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + scrolledwindow->add(*meta_data_tree_view); + scrolledwindow->set_shadow_type(Gtk::SHADOW_ETCHED_IN); + scrolledwindow->show(); + + + + Gtk::Table *table=manage(new Gtk::Table()); + table->attach(*scrolledwindow, 0, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + + Gtk::Button* button_add(manage(new Gtk::Button(Gtk::StockID("gtk-add")))); + button_add->show(); + button_add->signal_clicked().connect(sigc::mem_fun(*this,&CanvasProperties::on_button_meta_data_add)); + table->attach(*button_add, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + Gtk::Button* button_delete(manage(new Gtk::Button(Gtk::StockID("gtk-delete")))); + button_delete->show(); + button_delete->signal_clicked().connect(sigc::mem_fun(*this,&CanvasProperties::on_button_meta_data_delete)); + table->attach(*button_delete, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + table->show(); + return *table; +} + +void +CanvasProperties::on_button_meta_data_add() +{ + synfig::String key; + if(App::dialog_entry(_("New MetaData Entry"), _("Please enter the name of the key"),key) && !key.empty()) + { + canvas_interface_->set_meta_data(key," "); + } + +} + +void +CanvasProperties::on_button_meta_data_delete() +{ +} + +void +CanvasProperties::update_title() +{ + set_title(_("Properties")+String(" - ")+canvas_interface_->get_canvas()->get_name()); +} + +void +CanvasProperties::refresh() +{ + widget_rend_desc.set_rend_desc(canvas_interface_->get_canvas()->rend_desc()); + entry_id.set_text(canvas_interface_->get_canvas()->get_id()); + entry_name.set_text(canvas_interface_->get_canvas()->get_name()); + entry_description.set_text(canvas_interface_->get_canvas()->get_description()); + + dirty_rend_desc=false; + + update_title(); +} + +CanvasProperties::~CanvasProperties() +{ +} + +void +CanvasProperties::on_rend_desc_changed() +{ + dirty_rend_desc=true; +} + +void +CanvasProperties::on_apply_pressed() +{ + if(entry_id.get_text()!=canvas_interface_->get_canvas()->get_id() && !entry_id.get_text().empty()) + canvas_interface_->set_id(entry_id.get_text()); + if(entry_name.get_text()!=canvas_interface_->get_canvas()->get_name()) + canvas_interface_->set_name(entry_name.get_text()); + if(entry_description.get_text()!=canvas_interface_->get_canvas()->get_description()) + canvas_interface_->set_description(entry_description.get_text()); + if(dirty_rend_desc) // do this last, because it causes the dialog to be refreshed with currently set values + canvas_interface_->set_rend_desc(widget_rend_desc.get_rend_desc()); + + dirty_rend_desc=false; +} + +void +CanvasProperties::on_ok_pressed() +{ + on_apply_pressed(); + hide(); +} + +void +CanvasProperties::on_cancel_pressed() +{ + refresh(); + hide(); +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.h b/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.h new file mode 100644 index 0000000..3a32d40 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasproperties.h @@ -0,0 +1,87 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasproperties.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GTKMM_CANVASPROPERTIES_H +#define __SYNFIG_GTKMM_CANVASPROPERTIES_H + +/* === H E A D E R S ======================================================= */ + +#include + +#include +#include +#include +#include +#include + +#include "renddesc.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace Gtk { class TreeView; }; +namespace synfigapp { class CanvasInterface; }; + +namespace studio +{ +class CanvasProperties : public Gtk::Dialog +{ + Gtk::Tooltips tooltips; + + etl::handle canvas_interface_; + Widget_RendDesc widget_rend_desc; + Gtk::Entry entry_id; + Gtk::Entry entry_name; + Gtk::Entry entry_description; + + bool dirty_rend_desc; + + Gtk::TreeView* meta_data_tree_view; + void on_button_meta_data_add(); + void on_button_meta_data_delete(); + +public: + CanvasProperties(Gtk::Window& parent,etl::handle canvas_interface); + ~CanvasProperties(); + + void refresh(); + void update_title(); +private: + void on_rend_desc_changed(); + + Gtk::Widget& create_meta_data_view(); + + void on_ok_pressed(); + void on_apply_pressed(); + void on_cancel_pressed(); +}; // END of class CanvasProperties + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.cpp new file mode 100644 index 0000000..f49d7a3 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.cpp @@ -0,0 +1,622 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvastreestore.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvastreestore.h" +#include +#include "iconcontroller.h" +#include +#include +#include +#include +#include "cellrenderer_value.h" +#include "cellrenderer_timetrack.h" +#include + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +static CanvasTreeStore::Model& ModelHack() +{ + static CanvasTreeStore::Model* model(0); + if(!model)model=new CanvasTreeStore::Model; + return *model; +} + +CanvasTreeStore::CanvasTreeStore(etl::loose_handle canvas_interface_): + Gtk::TreeStore(ModelHack()), + canvas_interface_ (canvas_interface_) +{ +} + +CanvasTreeStore::~CanvasTreeStore() +{ +} + +void +CanvasTreeStore::get_value_vfunc(const Gtk::TreeModel::iterator& iter, int column, Glib::ValueBase& value)const +{ + if(column==model.value.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + if(!value_desc) + { + x.set(ValueBase()); + } + else + if(value_desc.is_const()) + x.set(value_desc.get_value()); + else + if(value_desc.is_value_node()) + x.set((*value_desc.get_value_node())(canvas_interface()->get_time())); + else + { + synfig::error(__FILE__":%d: Unable to figure out value",__LINE__); + return; + } + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.is_value_node.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + x.set(value_desc && value_desc.is_value_node()); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.is_shared.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + x.set(value_desc.is_value_node() && value_desc.get_value_node()->rcount()>1); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.is_exported.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + x.set(value_desc.is_value_node() && value_desc.get_value_node()->is_exported()); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.is_canvas.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + x.set(!value_desc && (Canvas::Handle)(*iter)[model.canvas]); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.id.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + if(value_desc && value_desc.is_value_node()) + x.set(value_desc.get_value_node()->get_id()); + else if(!value_desc && Canvas::Handle((*iter)[model.canvas])) + x.set(Canvas::Handle((*iter)[model.canvas])->get_id()); + else + return Gtk::TreeStore::get_value_vfunc(iter,column,value); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.is_editable.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + x.set(!value_desc.is_value_node() || synfigapp::is_editable(value_desc.get_value_node())); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.type.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + // Set the type + if(!value_desc) + { + if((*iter)[model.is_canvas]) + x.set(_("Canvas")); + } + else + { + if(!value_desc.is_value_node() || value_desc.get_value_node()->get_name()=="constant") + { + x.set(ValueBase::type_local_name(value_desc.get_value_type())); + } + else + { + x.set(value_desc.get_value_node()->get_local_name()); + } + } + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.label.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + + Glib::Value x; + g_value_init(x.gobj(),x.value_type()); + + // Set the type + if(!value_desc) + { + Canvas::Handle canvas((*iter)[model.canvas]); + if(canvas) + { + if(!canvas->get_id().empty()) + x.set(canvas->get_id()); + else + if(!canvas->get_name().empty()) + x.set(canvas->get_name()); + else + x.set(_("[Unnamed]")); + x.set(_("Canvas")); + } + return Gtk::TreeStore::get_value_vfunc(iter,column,value); + } + else + { + ValueNode::Handle value_node=value_desc.get_value_node(); + + // Setup the row's label + if(value_node->get_id().empty()) + x.set(Glib::ustring((*iter)[model.name])); + else if(Glib::ustring((*iter)[model.name]).empty()) + x.set(value_node->get_id()); + else + x.set(Glib::ustring((*iter)[model.name])+" ("+value_node->get_id()+')'); + } + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + if(column==model.icon.index()) + { + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); + if(!value_desc) + return Gtk::TreeStore::get_value_vfunc(iter,column,value); + + Glib::Value > x; + g_value_init(x.gobj(),x.value_type()); + + x.set(get_tree_pixbuf(value_desc.get_value_type())); + + g_value_init(value.gobj(),x.value_type()); + g_value_copy(x.gobj(),value.gobj()); + } + else + Gtk::TreeStore::get_value_vfunc(iter,column,value); +} + +bool +CanvasTreeStore::find_first_value_desc(const synfigapp::ValueDesc& value_desc, Gtk::TreeIter& iter) +{ + iter=children().begin(); + while(iter && value_desc!=(*iter)[model.value_desc]) + { + if(!iter->children().empty()) + { + Gtk::TreeIter iter2(iter->children().begin()); + //! \todo confirm that the && should be done before the || + if((iter2 && value_desc==(*iter2)[model.value_desc]) || find_next_value_desc(value_desc, iter2)) + { + iter=iter2; + return true; + } + } + Gtk::TreeIter iter2(++iter); + if(!iter2) + iter==iter->parent(); + else + iter=iter2; + } + return (bool)iter && value_desc==(*iter)[model.value_desc]; +} + +bool +CanvasTreeStore::find_next_value_desc(const synfigapp::ValueDesc& value_desc, Gtk::TreeIter& iter) +{ + if(!iter) return find_first_value_desc(value_desc,iter); + + if(iter) do { + if(!iter->children().empty()) + { + Gtk::TreeIter iter2(iter->children().begin()); + //! \todo confirm that the && should be done before the || + if((iter2 && value_desc==(*iter2)[model.value_desc]) || find_next_value_desc(value_desc, iter2)) + { + iter=iter2; + return true; + } + } + Gtk::TreeIter iter2(++iter); + if(!iter2) + { + iter==iter->parent(); + if(iter)++iter; + } + else + iter=iter2; + } while(iter && value_desc!=(*iter)[model.value_desc]); + return (bool)iter && value_desc==(*iter)[model.value_desc]; +} + +bool +CanvasTreeStore::find_first_value_node(const synfig::ValueNode::Handle& value_node, Gtk::TreeIter& iter) +{ + iter=children().begin(); + while(iter && value_node!=(ValueNode::Handle)(*iter)[model.value_node]) + { + if(!iter->children().empty()) + { + Gtk::TreeIter iter2(iter->children().begin()); + //! \todo confirm that the && should be done before the || + if((iter2 && value_node==(ValueNode::Handle)(*iter2)[model.value_node]) || find_next_value_node(value_node, iter2)) + { + iter=iter2; + return true; + } + } + Gtk::TreeIter iter2(++iter); + if(!iter2) + iter==iter->parent(); + else + iter=iter2; + } + return (bool)iter && value_node==(ValueNode::Handle)(*iter)[model.value_node]; +} + +bool +CanvasTreeStore::find_next_value_node(const synfig::ValueNode::Handle& value_node, Gtk::TreeIter& iter) +{ + if(!iter) return find_first_value_node(value_node,iter); + + if(iter) do { + if(!iter->children().empty()) + { + Gtk::TreeIter iter2(iter->children().begin()); + //! \todo confirm that the && should be done before the || + if((iter2 && value_node==(ValueNode::Handle)(*iter2)[model.value_node]) || find_next_value_node(value_node, iter2)) + { + iter=iter2; + return true; + } + } + Gtk::TreeIter iter2(++iter); + if(!iter2) + { + iter==iter->parent(); + if(iter)++iter; + } + else + iter=iter2; + } while(iter && value_node!=(ValueNode::Handle)(*iter)[model.value_node]); + return (bool)iter && value_node==(ValueNode::Handle)(*iter)[model.value_node]; +} + +void +CanvasTreeStore::set_row(Gtk::TreeRow row,synfigapp::ValueDesc value_desc, bool do_children) +{ + Gtk::TreeModel::Children children = row.children(); + while(!children.empty() && erase(children.begin())) + ; + + row[model.value_desc]=value_desc; + try + { + //row[model.icon] = get_tree_pixbuf(value_desc.get_value_type()); + + if(value_desc.is_value_node()) + { + ValueNode::Handle value_node=value_desc.get_value_node(); + + assert(value_node); + + row[model.value_node] = value_node; + //row[model.is_canvas] = false; + //row[model.is_value_node] = true; + //row[model.is_editable] = synfigapp::is_editable(value_node); + //row[model.id]=value_node->get_id(); + + // Set the canvas + if(value_desc.parent_is_canvas()) + row[model.canvas]=value_desc.get_canvas(); + else + row[model.canvas]=canvas_interface()->get_canvas(); + + LinkableValueNode::Handle linkable; + linkable=LinkableValueNode::Handle::cast_dynamic(value_node); + + if(linkable && do_children) + { + row[model.link_count] = linkable->link_count(); + for(int i=0;ilink_count();i++) + { + Gtk::TreeRow child_row=*(append(row.children())); + child_row[model.link_id] = i; + child_row[model.canvas] = static_cast(row[model.canvas]); + child_row[model.name] = linkable->link_local_name(i); + set_row(child_row,synfigapp::ValueDesc(linkable,i)); + } + } + return; + } + else + { + //row[model.is_value_node] = false; + //row[model.is_editable] = true; + //row[model.label] = Glib::ustring(row[model.name]); + return; + } + } + catch(synfig::Exception::IDNotFound x) + { + synfig::error(__FILE__":%d: IDNotFound thrown",__LINE__); + erase(row); + return; + } + + // We should never get to this point + assert(0); +} + +void +CanvasTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool do_children) +{ + synfigapp::ValueDesc value_desc=row[model.value_desc]; + + if(value_desc) + { + if((bool)row[model.is_value_node] != value_desc.is_value_node() || + (!bool(row[model.is_value_node]) && row[model.link_count]!=0)) + { + set_row(row,value_desc,do_children); + return; + } + + if(row[model.is_value_node]) + { + ValueNode::Handle value_node(value_desc.get_value_node()); + + if(ValueNode::Handle(row[model.value_node])!=value_node) + { + rebuild_row(row,do_children); + return; + } + + //row[model.id]=value_node->get_id(); + + // Setup the row's label + /* + if(value_node->get_id().empty()) + row[model.label] = Glib::ustring(row[model.name]); + else if(Glib::ustring(row[model.name]).empty()) + row[model.label] = value_node->get_id(); + else + row[model.label] = Glib::ustring(row[model.name])+" ("+value_node->get_id()+')'; + */ + + LinkableValueNode::Handle linkable; + linkable=LinkableValueNode::Handle::cast_dynamic(value_node); + if(do_children && linkable && ((int)row[model.link_count] != linkable->link_count())) + { + // Gtk::TreeModel::Children children = row.children(); + // while(!children.empty() && erase(children.begin())); + + set_row(row,value_desc); + return; + } + } + else + { + //row[model.label] = Glib::ustring(row[model.name]); + //row[model.is_value_node] = false; + //row[model.is_editable] = true; + } + } + if(!do_children) + return; + + Gtk::TreeModel::Children children = row.children(); + Gtk::TreeModel::Children::iterator iter; + + if(!children.empty()) + for(iter = children.begin(); iter != children.end(); ++iter) + { + Gtk::TreeRow row=*iter; + refresh_row(row); + } +} + +void +CanvasTreeStore::rebuild_row(Gtk::TreeModel::Row &row, bool do_children) +{ + synfigapp::ValueDesc value_desc=(synfigapp::ValueDesc)row[model.value_desc]; + + if(value_desc && value_desc.get_value_node()) + { + ValueNode::Handle value_node; + value_node=value_desc.get_value_node(); + + assert(value_node);if(!value_node)return; + + if(value_node && value_node!=(ValueNode::Handle)row[model.value_node]) + { +// Gtk::TreeModel::Children children = row.children(); +// while(!children.empty() && erase(children.begin())); + + set_row(row,value_desc,do_children); + return; + } + + LinkableValueNode::Handle linkable; + linkable=LinkableValueNode::Handle::cast_dynamic(value_node); + + if( do_children && linkable && (int)row[model.link_count] != linkable->link_count()) + { +// Gtk::TreeModel::Children children = row.children(); +// while(!children.empty() && erase(children.begin())); + + set_row(row,value_desc); + return; + } + + //if(!value_node) + // value_node=row[model.value_node]; + + row[model.id]=value_node->get_id(); + + // Setup the row's label + if(value_node->get_id().empty()) + row[model.label] = Glib::ustring(row[model.name]); + else if(Glib::ustring(row[model.name]).empty()) + row[model.label] = value_node->get_id(); + else + row[model.label] = Glib::ustring(row[model.name])+" ("+value_node->get_id()+')'; + } + else + { + row[model.label] = Glib::ustring(row[model.name]); + row[model.is_value_node] = false; + row[model.is_editable] = true; + Gtk::TreeModel::Children children = row.children(); + while(!children.empty() && erase(children.begin())) + ; + } + if(!do_children) + return; + + Gtk::TreeModel::Children children = row.children(); + Gtk::TreeModel::Children::iterator iter; + if(!children.empty()) + for(iter = children.begin(); iter != children.end(); ++iter) + { + Gtk::TreeRow row=*iter; + rebuild_row(row); + } +} + +CellRenderer_ValueBase* +CanvasTreeStore::add_cell_renderer_value(Gtk::TreeView::Column* column) +{ + const CanvasTreeStore::Model model; + + CellRenderer_ValueBase* ret; + + ret=Gtk::manage( new CellRenderer_ValueBase() ); + + column->pack_start(*ret,true); + column->add_attribute(ret->property_value(), model.value); + column->add_attribute(ret->property_editable(), model.is_editable); + column->add_attribute(ret->property_canvas(), model.canvas); + + return ret; +} + +CellRenderer_TimeTrack* +CanvasTreeStore::add_cell_renderer_value_node(Gtk::TreeView::Column* column) +{ + const CanvasTreeStore::Model model; + + CellRenderer_TimeTrack* ret; + + ret = Gtk::manage( new CellRenderer_TimeTrack() ); + + column->pack_start(*ret,true); + //column->add_attribute(ret->property_visible(), model.is_value_node); + column->add_attribute(ret->property_value_desc(), model.value_desc); + column->add_attribute(ret->property_canvas(), model.canvas); + + + return ret; +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.h b/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.h new file mode 100644 index 0000000..faed8b6 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvastreestore.h @@ -0,0 +1,195 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvastreestore.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_CANVASTREESTORE_H +#define __SYNFIG_STUDIO_CANVASTREESTORE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +class CellRenderer_TimeTrack; +class CellRenderer_ValueBase; + + enum ColumnID + { + COLUMNID_ID, + COLUMNID_VALUE, + COLUMNID_TIME_TRACK, + COLUMNID_TYPE, + + COLUMNID_END //!< \internal + }; +#define COLUMNID_NAME COLUMNID_ID + +class CanvasTreeStore : virtual public Gtk::TreeStore +{ + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + class Model : public Gtk::TreeModel::ColumnRecord + { + public: + Gtk::TreeModelColumn > icon; + Gtk::TreeModelColumn label; + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn id; + + Gtk::TreeModelColumn canvas; + Gtk::TreeModelColumn is_canvas; + + Gtk::TreeModelColumn value_node; + Gtk::TreeModelColumn is_value_node; + Gtk::TreeModelColumn value; + Gtk::TreeModelColumn type; + Gtk::TreeModelColumn link_id; + Gtk::TreeModelColumn link_count; + + Gtk::TreeModelColumn is_editable; + + Gtk::TreeModelColumn is_shared; + Gtk::TreeModelColumn is_exported; + + Gtk::TreeModelColumn value_desc; + + Gtk::TreeModelColumn tooltip; + + Model() + { + add(value); + add(name); + add(label); + add(icon); + add(type); + add(id); + add(canvas); + add(value_node); + add(is_canvas); + add(is_value_node); + + add(is_shared); + add(is_exported); + add(is_editable); + add(value_desc); + add(link_count); + add(link_id); + + add(tooltip); + } + }; + + /* + -- ** -- P U B L I C D A T A ------------------------------------------------ + */ + +public: + + const Model model; + + //std::multimap, sigc::connection> connection_map; + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +private: + + etl::loose_handle canvas_interface_; + + /* + -- ** -- P R I V A T E M E T H O D S --------------------------------------- + */ + +private: + +protected: + virtual void get_value_vfunc (const Gtk::TreeModel::iterator& iter, int column, Glib::ValueBase& value)const; + + /* + -- ** -- S I G N A L T E R M I N A L S ------------------------------------- + */ + +private: + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + + CanvasTreeStore(etl::loose_handle canvas_interface_); + ~CanvasTreeStore(); + + etl::loose_handle canvas_interface() { return canvas_interface_; } + etl::loose_handle canvas_interface()const { return canvas_interface_; } + + virtual void rebuild_row(Gtk::TreeModel::Row &row, bool do_children=true); + + virtual void refresh_row(Gtk::TreeModel::Row &row, bool do_children=true); + + virtual void set_row(Gtk::TreeRow row,synfigapp::ValueDesc value_desc, bool do_children=true); + + bool find_first_value_desc(const synfigapp::ValueDesc& value_desc, Gtk::TreeIter& iter); + bool find_next_value_desc(const synfigapp::ValueDesc& value_desc, Gtk::TreeIter& iter); + + bool find_first_value_node(const synfig::ValueNode::Handle& value_node, Gtk::TreeIter& iter); + bool find_next_value_node(const synfig::ValueNode::Handle& value_node, Gtk::TreeIter& iter); + + + static CellRenderer_ValueBase* add_cell_renderer_value(Gtk::TreeView::Column* column); + + static CellRenderer_TimeTrack* add_cell_renderer_value_node(Gtk::TreeView::Column* column); + + etl::loose_handle get_canvas_interface()const { return canvas_interface_; } + + virtual void on_value_node_changed(synfig::ValueNode::Handle value_node)=0; + + /* + -- ** -- P R O T E C T E D M E T H O D S ----------------------------------- + */ + +public: + +}; // END of class CanvasTreeStore + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.cpp new file mode 100644 index 0000000..84b0f45 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.cpp @@ -0,0 +1,3733 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasview.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +//#include +//#include + +#include +#include +//#include + +#include "canvasview.h" +#include "instance.h" +#include "app.h" +#include "cellrenderer_value.h" +#include "cellrenderer_timetrack.h" +#include "workarea.h" +#include "dialog_color.h" +#include "eventkey.h" + +#include "state_polygon.h" +#include "state_bline.h" +#include "state_normal.h" +#include "state_eyedrop.h" +#include "state_draw.h" + +#include "ducktransform_scale.h" +#include "ducktransform_translate.h" +#include "ducktransform_rotate.h" + +#include "event_mouse.h" +#include "event_layerclick.h" + +#include "toolbox.h" + +#include "dialog_preview.h" +#include "dialog_soundselect.h" + +#include "preview.h" +#include "audiocontainer.h" +#include "widget_timeslider.h" + +#include +#include + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; +using namespace sigc; + +/* === M A C R O S ========================================================= */ + +#define GRAB_HINT_DATA(y) { \ + String x; \ + if(synfigapp::Main::settings().get_value(String("pref.")+y+"_hints",x)) \ + { \ + set_type_hint((Gdk::WindowTypeHint)atoi(x.c_str())); \ + } \ + } + +#define DEFAULT_TIME_WINDOW_SIZE (10.0) + +#ifndef SMALL_BUTTON +#define SMALL_BUTTON(button,stockid,tooltip) \ + button = manage(new class Gtk::Button()); \ + icon=manage(new Gtk::Image(Gtk::StockID(stockid),iconsize)); \ + button->add(*icon); \ + tooltips.set_tip(*button,tooltip); \ + icon->set_padding(0,0);\ + icon->show(); \ + button->set_relief(Gtk::RELIEF_NONE); \ + button->show() +#endif + +#ifndef NORMAL_BUTTON +#define NORMAL_BUTTON(button,stockid,tooltip) \ + button = manage(new class Gtk::Button()); \ + icon=manage(new Gtk::Image(Gtk::StockID(stockid),Gtk::ICON_SIZE_BUTTON)); \ + button->add(*icon); \ + tooltips.set_tip(*button,tooltip); \ + icon->set_padding(0,0);\ + icon->show(); \ + /*button->set_relief(Gtk::RELIEF_NONE);*/ \ + button->show() +#endif + +#define NEW_SMALL_BUTTON(x,y,z) Gtk::Button *SMALL_BUTTON(x,y,z) + +#define NOT_IMPLEMENTED_SLOT sigc::mem_fun(*reinterpret_cast(get_ui_interface().get()),&studio::CanvasViewUIInterface::not_implemented) + +#define SLOT_EVENT(x) sigc::hide_return(sigc::bind(sigc::mem_fun(*this,&studio::CanvasView::process_event_key),x)) + +/* === C L A S S E S ======================================================= */ + +class studio::UniversalScrubber +{ + CanvasView *canvas_view; + + bool scrubbing; + etl::clock scrub_timer; + + sigc::connection end_scrub_connection; +public: + UniversalScrubber(CanvasView *canvas_view): + canvas_view(canvas_view), + scrubbing(false) + { + canvas_view->canvas_interface()->signal_time_changed().connect( + sigc::mem_fun(*this,&studio::UniversalScrubber::on_time_changed) + ); + } + + ~UniversalScrubber() + { + end_scrub_connection.disconnect(); + } + + void on_time_changed() + { + // Make sure we are changing the time quickly + // before we enable scrubbing + if(!scrubbing && scrub_timer()>1) + { + scrub_timer.reset(); + return; + } + + // If we aren't scrubbing already, enable it + if(!scrubbing) + { + scrubbing=true; + audio_container()->start_scrubbing(canvas_view->get_time()); + } + + // Reset the scrubber ender + end_scrub_connection.disconnect(); + end_scrub_connection=Glib::signal_timeout().connect( + sigc::bind_return( + sigc::mem_fun(*this,&UniversalScrubber::end_of_scrubbing), + false + ), + 1000 + ); + + // Scrub! + audio_container()->scrub(canvas_view->get_time()); + + scrub_timer.reset(); + } + + void end_of_scrubbing() + { + scrubbing=false; + audio_container()->stop_scrubbing(); + scrub_timer.reset(); + } + + handle audio_container() + { + assert(canvas_view->audio); + return canvas_view->audio; + } +}; + +class studio::CanvasViewUIInterface : public synfigapp::UIInterface +{ + CanvasView *view; + +public: + + CanvasViewUIInterface(CanvasView *view): + view(view) + { + view->statusbar->push(_("Idle")); + } + + ~CanvasViewUIInterface() + { + //view->statusbar->pop(); + //view->progressbar->set_fraction(0); + } + + virtual Response yes_no(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES) + { + view->present(); + //while(studio::App::events_pending())studio::App::iteration(false); + Gtk::Dialog dialog( + title, // Title + *view, // Parent + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES); + dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + virtual Response yes_no_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES) + { + view->present(); + //while(studio::App::events_pending())studio::App::iteration(false); + Gtk::Dialog dialog( + title, // Title + *view, // Parent + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES); + dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO); + dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + virtual Response ok_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_OK) + { + view->present(); + //while(studio::App::events_pending())studio::App::iteration(false); + Gtk::Dialog dialog( + title, // Title + *view, // Parent + true, // Modal + true // use_separator + ); + Gtk::Label label(message); + label.show(); + + dialog.get_vbox()->pack_start(label); + dialog.add_button(Gtk::StockID("gtk-ok"),RESPONSE_OK); + dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL); + + dialog.set_default_response(dflt); + dialog.show(); + return (Response)dialog.run(); + } + + virtual bool + task(const std::string &task) + { + if(!view->is_playing_) + { + view->statusbar->pop(); + view->statusbar->push(task); + } + //while(studio::App::events_pending())studio::App::iteration(false); + if(view->cancel){return false;} + return true; + } + + virtual bool + error(const std::string &err) + { + view->statusbar->push(_("ERROR")); + + // If we are in the process of canceling, + // then just go ahead and return false -- + // don't bother displaying a dialog + if(view->cancel)return false; + Gtk::MessageDialog dialog(*view, err, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true); + dialog.show(); + dialog.run(); + view->statusbar->pop(); + return true; + } + + virtual bool + warning(const std::string &err) + { + view->statusbar->pop(); + view->statusbar->push(err); + + //while(studio::App::events_pending())studio::App::iteration(false); + if(view->cancel)return false; + return true; + } + + virtual bool + amount_complete(int current, int total) + { + if(!view->is_playing_) + { + if(!view->working_depth) + { + if(current) + view->stopbutton->set_sensitive(true); + else + view->stopbutton->set_sensitive(false); + } + float x((float)current/(float)total); + if(x<0)x=0; + else if(x>1)x=1; + view->progressbar->set_fraction(x); + } + //while(studio::App::events_pending())studio::App::iteration(false); + if(view->cancel){/*view->cancel=false;*/return false;} + return true; + } + + void + not_implemented() + { + error(_("Feature not yet implemented")); + } +}; + +class studio::CanvasViewSelectionManager : public synfigapp::SelectionManager +{ + CanvasView *view; + CanvasView::LayerTreeModel layer_tree_model; + CanvasView::ChildrenTreeModel children_tree_model; + +public: + CanvasViewSelectionManager(CanvasView *view): view(view) { } + +private: + void _set_selected_layer(const synfig::Layer::Handle &layer) + { + view->layer_tree->select_layer(layer); +/* + // Don't change the selection while we are busy + // I cannot remember exactly why I put this here... + // It musta been for some reason, but I cannot recall. + //if(App::Busy::count) + // return; + + if(view->layer_tree->get_selection()->get_selected()) + { + const Gtk::TreeRow row = *(view->layer_tree->get_selection()->get_selected()); + + // Don't do anything if that layer is already selected + if(layer == static_cast(row[layer_tree_model.layer])) + return; + } + Gtk::TreeModel::Children::iterator iter; + if(view->layer_tree_store()->find_layer_row(layer,iter)) + { + Gtk::TreePath path(iter); + for(int i=path.get_depth();i;i--) + { + int j; + path=Gtk::TreePath(iter); + for(j=i;j;j--) + path.up(); + view->layer_tree->get_tree_view().expand_row(path,false); + } + view->layer_tree->get_tree_view().scroll_to_row(Gtk::TreePath(iter)); + view->layer_tree->get_selection()->select(iter); + } +*/ + } +public: + + //! Returns the number of layers selected. + virtual int get_selected_layer_count()const + { + return get_selected_layers().size(); + } + + //! Returns a list of the currently selected layers. + virtual LayerList get_selected_layers()const + { +// assert(view->layer_tree); + + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return LayerList(); } + return view->layer_tree->get_selected_layers(); + } + + //! Returns the first layer selected or an empty handle if none are selected. + virtual synfig::Layer::Handle get_selected_layer()const + { +// assert(view->layer_tree); + + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return 0; } + return view->layer_tree->get_selected_layer(); + } + + //! Sets which layers should be selected + virtual void set_selected_layers(const LayerList &layer_list) + { +// assert(view->layer_tree); + + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return; } + view->layer_tree->select_layers(layer_list); + //view->get_smach().process_event(EVENT_REFRESH_DUCKS); + + //view->queue_rebuild_ducks(); + } + + //! Sets which layer should be selected. + virtual void set_selected_layer(const synfig::Layer::Handle &layer) + { +// assert(view->layer_tree); + + if(!view->layer_tree) { synfig::error("canvas_view.layer_tree not defined!?"); return; } + view->layer_tree->select_layer(layer); + //view->queue_rebuild_ducks(); + } + + //! Clears the layer selection list + virtual void clear_selected_layers() + { + if(!view->layer_tree) return; + view->layer_tree->clear_selected_layers(); + } + + //! Returns the number of value_nodes selected. + virtual int get_selected_children_count()const + { + return get_selected_children().size(); + } + + static inline void __child_grabber(const Gtk::TreeModel::iterator& iter, ChildrenList* ret) + { + const CanvasView::ChildrenTreeModel children_tree_model; + synfigapp::ValueDesc value_desc((*iter)[children_tree_model.value_desc]); + if(value_desc) + ret->push_back(value_desc); + } + + //! Returns a list of the currently selected value_nodes. + virtual ChildrenList get_selected_children()const + { + if(!view->children_tree) return ChildrenList(); + + Glib::RefPtr selection=view->children_tree->get_selection(); + + if(!selection) + return ChildrenList(); + + ChildrenList ret; + + selection->selected_foreach_iter( + sigc::bind( + sigc::ptr_fun( + &studio::CanvasViewSelectionManager::__child_grabber + ), + &ret + ) + ); + + /* + Gtk::TreeModel::Children::iterator iter(view->children_tree_store()->children().begin()); + iter++; + Gtk::TreeModel::Children children = iter->children(); + for(iter = children.begin(); iter != children.end(); ++iter) + { + Gtk::TreeModel::Row row = *iter; + if(selection->is_selected(row)) + ret.push_back((synfigapp::ValueDesc)row[children_tree_model.value_desc]); + } + */ + return ret; + } + + //! Returns the first value_node selected or an empty handle if none are selected. + virtual ChildrenList::value_type get_selected_child()const + { + if(!view->children_tree) return ChildrenList::value_type(); + + ChildrenList children(get_selected_children()); + + if(children.empty()) + return ChildrenList::value_type(); + + return children.front(); + } + + //! Sets which value_nodes should be selected + virtual void set_selected_children(const ChildrenList &/*children_list*/) + { + return; + } + + //! Sets which value_node should be selected. Empty handle if none. + virtual void set_selected_child(const ChildrenList::value_type &/*child*/) + { + return; + } + + //! Clears the value_node selection list + virtual void clear_selected_children() + { + return; + } + + int get_selected_layer_parameter_count()const + { + return get_selected_layer_parameters().size(); + } + + LayerParamList get_selected_layer_parameters()const + { + if(!view->layer_tree) return LayerParamList(); + + Glib::RefPtr selection=view->layer_tree->get_selection(); + + if(!selection) + return LayerParamList(); + + LayerParamList ret; + + Gtk::TreeModel::Children children = const_cast(view)->layer_tree_store()->children(); + Gtk::TreeModel::Children::iterator iter; + for(iter = children.begin(); iter != children.end(); ++iter) + { + Gtk::TreeModel::Row row = *iter; + Gtk::TreeModel::Children::iterator iter; + for(iter=row.children().begin();iter!=row.children().end();iter++) + { + Gtk::TreeModel::Row row = *iter; + if(selection->is_selected(row)) + ret.push_back(LayerParam(row[layer_tree_model.layer],(Glib::ustring)row[layer_tree_model.id])); + } + } + return ret; + } + + LayerParam get_selected_layer_parameter() const + { + if(!view->layer_tree) return LayerParam(); + return get_selected_layer_parameters().front(); + } + + void set_selected_layer_parameters(const LayerParamList &/*layer_param_list*/) + { + return; + } + + void set_selected_layer_param(const LayerParam &/*layer_param*/) + { + return; + } + + void clear_selected_layer_parameters() + { + return; + } + +}; // END of class SelectionManager + +CanvasView::IsWorking::IsWorking(CanvasView &canvas_view_): + canvas_view_(canvas_view_) +{ + if(!canvas_view_.working_depth) + canvas_view_.stopbutton->set_sensitive(true); + canvas_view_.working_depth++; + canvas_view_.cancel=false; +} + +CanvasView::IsWorking::~IsWorking() +{ + canvas_view_.working_depth--; + if(!canvas_view_.working_depth) + canvas_view_.stopbutton->set_sensitive(false); +} + +CanvasView::IsWorking::operator bool()const +{ + if(canvas_view_.cancel) + return false; + return true; +} + +/* === M E T H O D S ======================================================= */ + +CanvasView::CanvasView(etl::loose_handle instance,etl::handle canvas_interface_): + smach_ (this), + instance_ (instance), + canvas_interface_ (canvas_interface_), + //layer_tree_store_ (LayerTreeStore::create(canvas_interface_)), + //children_tree_store_ (ChildrenTreeStore::create(canvas_interface_)), + //keyframe_tree_store_ (KeyframeTreeStore::create(canvas_interface_)), + time_adjustment_ (0,0,25,0,0,0), + time_window_adjustment_ (0,0,25,0,0,0), + statusbar (manage(new class Gtk::Statusbar())), + + timeslider (new Widget_Timeslider), + + ui_interface_ (new CanvasViewUIInterface(this)), + selection_manager_ (new CanvasViewSelectionManager(this)), + is_playing_ (false), + + working_depth (0), + cancel (false), + + canvas_properties (*this,canvas_interface_), + canvas_options (this), + render_settings (*this,canvas_interface_), + waypoint_dialog (*this,canvas_interface_->get_canvas()), + keyframe_dialog (*this,canvas_interface_), + preview_dialog (new Dialog_Preview), + sound_dialog (new Dialog_SoundSelect(*this,canvas_interface_)) +{ + layer_tree=0; + children_tree=0; + duck_refresh_flag=true; + + smach_.set_default_state(&state_normal); + + disp_audio = new Widget_Sound(); + + //synfig::info("Canvasview: Entered constructor"); + // Minor hack + get_canvas()->set_time(0); + //layer_tree_store_->rebuild(); + + // Set up the UI and Selection managers + canvas_interface()->set_ui_interface(get_ui_interface()); + canvas_interface()->set_selection_manager(get_selection_manager()); + rebuild_ducks_queued=false; + + //notebook=manage(new class Gtk::Notebook()); + //Gtk::VPaned *vpaned = manage(new class Gtk::VPaned()); + //vpaned->pack1(*create_work_area(), Gtk::EXPAND|Gtk::SHRINK); + //vpaned->pack2(*notebook, Gtk::SHRINK); + //vpaned->show_all(); + + //notebook->show(); + + //notebook->append_page(*create_layer_tree(),_("Layers")); + //notebook->append_page(*create_children_tree(),_("Children")); + //notebook->append_page(*create_keyframe_tree(),_("Keyframes")); + + //synfig::info("Canvasview: Before big chunk of allocation and tabling stuff"); + //create all allocated stuff for this canvas + audio = new AudioContainer(); + + Gtk::Table *layout_table= manage(new class Gtk::Table(1, 3, false)); + //layout_table->attach(*vpaned, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + layout_table->attach(*create_work_area(), 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + init_menus(); + //layout_table->attach(*App::ui_manager()->get_widget("/menu-main"), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + layout_table->attach(*create_time_bar(), 0, 1, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + layout_table->attach(*create_status_bar(), 0, 1, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + update_title(); + + layout_table->show(); + add(*layout_table); + + //set_transient_for(*App::toolbox); + + //synfig::info("Canvasview: Before Signals"); + /* + -- ** -- Signals ------------------------------------------------------------- + */ + + canvas_interface()->signal_dirty_preview().connect(sigc::mem_fun(*this,&studio::CanvasView::on_dirty_preview)); + canvas_interface()->signal_mode_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_mode_changed)); + + canvas_interface()->signal_time_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_time_changed)); + + //canvas_interface()->signal_time_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::refresh_tables)); + canvas_interface()->signal_id_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_id_changed)); + canvas_interface()->signal_rend_desc_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::refresh_rend_desc)); + waypoint_dialog.signal_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_waypoint_changed)); + waypoint_dialog.signal_delete().connect(sigc::mem_fun(*this,&studio::CanvasView::on_waypoint_delete)); + + //MODIFIED TIME ADJUSTMENT STUFF.... + time_window_adjustment().set_child_adjustment(&time_adjustment()); + time_window_adjustment().signal_value_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::refresh_time_window)); + time_adjustment().signal_value_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::time_was_changed)); + + work_area->signal_layer_selected().connect(sigc::mem_fun(*this,&studio::CanvasView::workarea_layer_selected)); + work_area->signal_input_device_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_input_device_changed)); + + canvas_interface()->signal_canvas_added().connect( + sigc::hide( + sigc::mem_fun(*instance,&studio::Instance::refresh_canvas_tree) + ) + ); + canvas_interface()->signal_canvas_removed().connect( + sigc::hide( + sigc::mem_fun(*instance,&studio::Instance::refresh_canvas_tree) + ) + ); + + canvas_interface()->signal_layer_param_changed().connect( + sigc::hide( + sigc::hide( + SLOT_EVENT(EVENT_REFRESH_DUCKS) + ) + ) + ); + + //MUCH TIME STUFF TAKES PLACE IN HERE + refresh_rend_desc(); + refresh_time_window(); + + /*! \todo We shouldn't need to do this at construction -- + ** This should be performed at the first time the window + ** becomes visible. + */ + work_area->queue_render_preview(); + + // If the canvas is really big, zoom out so that we can fit it all in the window + /*! \todo In other words, this is a zoom-to-fit, and should be + ** in its own function. + */ + int w=get_canvas()->rend_desc().get_w()+70; + int h=get_canvas()->rend_desc().get_h()+70; + while(w>700 || h>600) + { + // Minor hack: + // zoom_out() => + // WorkArea::async_update_preview() => + // WorkArea::set_zoom(float) => + // WorkArea::async_update_preview() => + // desc.set_time(cur_time), where cur_time isn't initialized + work_area->set_time(0); + work_area->zoom_out(); + w=round_to_int(get_canvas()->rend_desc().get_w()*work_area->get_zoom()+70); + h=round_to_int(get_canvas()->rend_desc().get_h()*work_area->get_zoom()+70); + } + if(w>700)w=700; + if(h>600)h=600; + set_default_size(w,h); + property_window_position().set_value(Gtk::WIN_POS_NONE); + + std::list listTargets; + listTargets.push_back( Gtk::TargetEntry("STRING") ); + listTargets.push_back( Gtk::TargetEntry("text/plain") ); + listTargets.push_back( Gtk::TargetEntry("image") ); + + drag_dest_set(listTargets); + signal_drag_data_received().connect( sigc::mem_fun(*this, &studio::CanvasView::on_drop_drag_data_received) ); + + /* + Time length(get_canvas()->rend_desc().get_time_end()-get_canvas()->rend_desc().get_time_start()); + if(length<10.0) + { + time_window_adjustment().set_page_increment(length); + time_window_adjustment().set_page_size(length); + } + else + { + time_window_adjustment().set_page_increment(10.0); + time_window_adjustment().set_page_size(10.0); + } + */ + + //synfig::info("Canvasview: Before Sound Hookup"); + //load sound info from meta data + { + //synfig::warning("Should load Audio: %s with %s offset",apath.c_str(),aoffset.c_str()); + + on_audio_file_notify(); //redundant setting of the metadata, but oh well, it's no big deal :) + on_audio_offset_notify(); + + //signal connection - since they are all associated with the canvas view + + //hook in signals for sound options box + sound_dialog->signal_file_changed().connect(sigc::mem_fun(*this,&CanvasView::on_audio_file_change)); + sound_dialog->signal_offset_changed().connect(sigc::mem_fun(*this,&CanvasView::on_audio_offset_change)); + + //attach to the preview when it's visible + //preview_dialog->get_widget().signal_play().connect(sigc::mem_fun(*this,&CanvasView::play_audio)); + //preview_dialog->get_widget().signal_stop().connect(sigc::mem_fun(*this,&CanvasView::stop_audio)); + + //hook to metadata signals + get_canvas()->signal_meta_data_changed("audiofile").connect(sigc::mem_fun(*this,&CanvasView::on_audio_file_notify)); + get_canvas()->signal_meta_data_changed("audiooffset").connect(sigc::mem_fun(*this,&CanvasView::on_audio_offset_notify)); + + //universal_scrubber=std::auto_ptr(new UniversalScrubber(this)); + } + + //synfig::info("Canvasview: Before Final time set up"); + //MORE TIME STUFF + time_window_adjustment().set_value(get_canvas()->rend_desc().get_time_start()); + time_window_adjustment().value_changed(); + + GRAB_HINT_DATA("canvas_view"); + /* + { + set_skip_taskbar_hint(true); + set_skip_pager_hint(true); + set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY); + } + */ + + refresh_rend_desc(); + hide_tables(); + + on_time_changed(); + //synfig::info("Canvasview: Constructor Done"); +} + +CanvasView::~CanvasView() +{ + signal_deleted()(); + + App::ui_manager()->remove_action_group(action_group); + + // Shut down the smach + smach_.egress(); + smach_.set_default_state(0); + + // We want to ensure that the UI_Manager and + // the selection manager get destructed right now. + ui_interface_.reset(); + selection_manager_.reset(); + + // Delete any external widgets + for(;!ext_widget_book_.empty();ext_widget_book_.erase(ext_widget_book_.begin())) + { + if(ext_widget_book_.begin()->second) + delete ext_widget_book_.begin()->second; + } + + //delete preview + audio.reset(); + + hide(); + + // don't be calling on_dirty_preview once this object has been deleted; + // this was causing a crash before + canvas_interface()->signal_dirty_preview().clear(); + + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("CanvasView::~CanvasView(): Deleted"); +} + +std::list& +CanvasView::get_pixel_sizes() +{ + // prime factors of 120 are 2, 2, 2, 3, 5 - see TILE_SIZE in synfig-core/trunk/src/synfig/target_tile.h + static int pixel_size_array[] = {2,3,4,5,6,8,10,12,15,20,24,30,40,60,120}; + static list pixel_sizes = list(pixel_size_array, pixel_size_array + sizeof(pixel_size_array) / sizeof(int)); + + return pixel_sizes; +} + +Gtk::Widget * +CanvasView::create_time_bar() +{ + Gtk::Image *icon; + + Gtk::HScrollbar *time_window_scroll = manage(new class Gtk::HScrollbar(time_window_adjustment())); + //Gtk::HScrollbar *time_scroll = manage(new class Gtk::HScrollbar(time_adjustment())); + //TIME BAR TEMPORARY POSITION + //Widget_Timeslider *time_scroll = manage(new Widget_Timeslider); + timeslider->show(); + timeslider->set_time_adjustment(&time_adjustment()); + timeslider->set_bounds_adjustment(&time_window_adjustment()); + //layout_table->attach(*timeslider, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL); + + tooltips.set_tip(*time_window_scroll,_("Moves the time window")); + tooltips.set_tip(*timeslider,_("Changes the current time")); + time_window_scroll->show(); + timeslider->show(); + time_window_scroll->set_flags(Gtk::CAN_FOCUS); + timeslider->set_flags(Gtk::CAN_FOCUS); + + //time_scroll->signal_value_changed().connect(sigc::mem_fun(*work_area, &studio::WorkArea::render_preview_hook)); + //time_scroll->set_update_policy(Gtk::UPDATE_DISCONTINUOUS); + + NORMAL_BUTTON(animatebutton,"gtk-yes",_("Animate")); + animatebutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_animate_button_pressed)); + animatebutton->show(); + + NORMAL_BUTTON(keyframebutton,"synfig-keyframe_lock_all",_("All Keyframes Locked")); + keyframebutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_button_pressed)); + keyframebutton->show(); + + Gtk::Table *table= manage(new class Gtk::Table(2, 3, false)); + + //setup the audio display + disp_audio->set_size_request(-1,32); //disp_audio->show(); + disp_audio->set_time_adjustment(&time_adjustment()); + disp_audio->signal_start_scrubbing().connect( + sigc::mem_fun(*audio,&AudioContainer::start_scrubbing) + ); + disp_audio->signal_scrub().connect( + sigc::mem_fun(*audio,&AudioContainer::scrub) + ); + disp_audio->signal_stop_scrubbing().connect( + sigc::mem_fun(*audio,&AudioContainer::stop_scrubbing) + ); + + table->attach(*manage(disp_audio), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table->attach(*timeslider, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 0, 0); + table->attach(*time_window_scroll, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 0, 0); + + table->attach(*animatebutton, 1, 2, 0, 3, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + table->attach(*keyframebutton, 2, 3, 0, 3, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + timebar=table; + table->show(); + return table; +} + +Gtk::Widget * +CanvasView::create_work_area() +{ + work_area=std::auto_ptr(new class studio::WorkArea(canvas_interface_)); + work_area->set_instance(get_instance()); + work_area->set_canvas(get_canvas()); + work_area->set_canvas_view(this); + work_area->set_progress_callback(get_ui_interface().get()); + work_area->signal_popup_menu().connect(sigc::mem_fun(*this, &studio::CanvasView::popup_main_menu)); + work_area->show(); + return work_area.get(); +} + +Gtk::Widget* +CanvasView::create_status_bar() +{ + Gtk::Image *icon; + Gtk::IconSize iconsize=Gtk::IconSize::from_name("synfig-small_icon"); + cancel=false; + + // Create the status bar at the bottom of the window + Gtk::Table *statusbartable= manage(new class Gtk::Table(7, 1, false)); +// statusbar = manage(new class Gtk::Statusbar()); // This is already done at construction + progressbar =manage(new class Gtk::ProgressBar()); + SMALL_BUTTON(stopbutton,"gtk-stop",_("Stop")); + SMALL_BUTTON(refreshbutton,"gtk-refresh",_("Refresh")); + //SMALL_BUTTON(treetogglebutton,"gtk-go-down",_("Toggle Layer Tree")); +// NEW_SMALL_BUTTON(raisebutton,"gtk-go-up",_("Raise Layer")); +// NEW_SMALL_BUTTON(lowerbutton,"gtk-go-down",_("Lower Layer")); + //statusbartable->attach(*treetogglebutton, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); +// statusbartable->attach(*lowerbutton, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); +// statusbartable->attach(*raisebutton, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + + current_time_widget=manage(new Widget_Time); + current_time_widget->set_value(get_time()); + current_time_widget->set_fps(get_canvas()->rend_desc().get_frame_rate()); + current_time_widget->signal_value_changed().connect( + sigc::mem_fun(*this,&CanvasView::on_current_time_widget_changed) + ); + + statusbartable->attach(*current_time_widget, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + statusbartable->attach(*statusbar, 3, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + statusbartable->attach(*progressbar, 4, 5, 0, 1, Gtk::SHRINK, Gtk::EXPAND|Gtk::FILL, 0, 0); + statusbartable->attach(*refreshbutton, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + statusbartable->attach(*stopbutton, 6, 7, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + statusbar->set_has_resize_grip(false); + statusbar->show(); + stopbutton->show(); + refreshbutton->show(); + progressbar->show(); + stopbutton->set_sensitive(false); + + //refreshbutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_refresh_pressed)); + //stopbutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::stop)); + //treetogglebutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::toggle_tables)); + + refreshbutton->signal_clicked().connect(SLOT_EVENT(EVENT_REFRESH)); + stopbutton->signal_clicked().connect(SLOT_EVENT(EVENT_STOP)); + + statusbartable->show_all(); + return statusbartable; +} + +void +CanvasView::on_current_time_widget_changed() +{ + set_time(current_time_widget->get_value()); + + // show the value being used - it will have been rounded to nearest frame + // this was already being done elsewhere, but only if the time was really changed; + // if the current time was 6f and the user edited it to 6.1f, then the 6.1f would + // be left in the display without the following line to fix it + current_time_widget->set_value(get_time()); + current_time_widget->set_position(-1); // leave the cursor at the end +} + +// Gtk::Widget* +// CanvasView::create_children_tree() +// { +// // Create the layer tree +// children_tree=manage(new class ChildrenTree()); +// +// // Set up the layer tree +// //children_tree->set_model(children_tree_store()); +// if(children_tree)children_tree->set_time_adjustment(time_adjustment()); +// if(children_tree)children_tree->show(); +// +// // Connect Signals +// if(children_tree)children_tree->signal_edited_value().connect(sigc::mem_fun(*this, &studio::CanvasView::on_edited_value)); +// if(children_tree)children_tree->signal_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_children_user_click)); +// if(children_tree)children_tree->signal_waypoint_clicked_childrentree().connect(sigc::mem_fun(*this, &studio::CanvasView::on_waypoint_clicked_canvasview)); +// if(children_tree)children_tree->get_selection()->signal_changed().connect(SLOT_EVENT(EVENT_REFRESH_DUCKS)); +// +// return children_tree; +// } + +// Gtk::Widget* +// CanvasView::create_keyframe_tree() +// { +// keyframe_tree=manage(new KeyframeTree()); +// +// //keyframe_tree->get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); +// //keyframe_tree->show(); +// //keyframe_tree->set_model(keyframe_tree_store()); +// keyframe_tree->set_editable(true); +// //keyframe_tree->signal_edited().connect(sigc::hide_return(sigc::mem_fun(*canvas_interface(), &synfigapp::CanvasInterface::update_keyframe))); +// +// keyframe_tree->signal_event().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_tree_event)); +// +// Gtk::ScrolledWindow *scroll_layer_tree = manage(new class Gtk::ScrolledWindow()); +// scroll_layer_tree->set_flags(Gtk::CAN_FOCUS); +// scroll_layer_tree->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); +// scroll_layer_tree->add(*keyframe_tree); +// scroll_layer_tree->set_shadow_type(Gtk::SHADOW_ETCHED_IN); +// //scroll_layer_tree->show(); +// +// +// Gtk::Table *layout_table= manage(new Gtk::Table(1, 2, false)); +// layout_table->attach(*scroll_layer_tree, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); +// +// Gtk::Image *icon; +// Gtk::IconSize iconsize(Gtk::IconSize::from_name("synfig-small_icon")); +// +// NEW_SMALL_BUTTON(button_add,"gtk-add",_("New Keyframe")); +// NEW_SMALL_BUTTON(button_duplicate,"synfig-duplicate",_("Duplicate Keyframe")); +// NEW_SMALL_BUTTON(button_delete,"gtk-delete",_("Delete Keyframe")); +// +// Gtk::HBox *hbox(manage(new Gtk::HBox())); +// layout_table->attach(*hbox, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 0, 0); +// +// hbox->pack_start(*button_add,Gtk::PACK_SHRINK); +// hbox->pack_start(*button_duplicate,Gtk::PACK_SHRINK); +// hbox->pack_start(*button_delete,Gtk::PACK_SHRINK); +// +// /* +// button_raise->set_relief(Gtk::RELIEF_HALF); +// button_lower->set_relief(Gtk::RELIEF_HALF); +// button_duplicate->set_relief(Gtk::RELIEF_HALF); +// button_delete->set_relief(Gtk::RELIEF_HALF); +// */ +// +// button_add->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_add_pressed)); +// button_duplicate->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_duplicate_pressed)); +// button_delete->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_remove_pressed)); +// +// //layout_table->show_all(); +// +// keyframe_tab_child=layout_table; +// +// +// layout_table->hide(); +// +// return layout_table; +// } + +// Gtk::Widget* +// CanvasView::create_layer_tree() +// { +// // Create the layer tree +// printf("CanvasView::create_layer_tree()\n"); +// layer_tree=manage(new class LayerTree()); +// +// // Set up the layer tree +// //layer_tree->set_model(layer_tree_store()); +// layer_tree->set_time_adjustment(time_adjustment()); +// layer_tree->show(); +// +// // Connect Signals +// layer_tree->signal_layer_toggle().connect(sigc::mem_fun(*this, &studio::CanvasView::on_layer_toggle)); +// layer_tree->signal_edited_value().connect(sigc::mem_fun(*this, &studio::CanvasView::on_edited_value)); +// layer_tree->signal_layer_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_layer_user_click)); +// layer_tree->signal_param_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_children_user_click)); +// layer_tree->signal_waypoint_clicked_layertree().connect(sigc::mem_fun(*this, &studio::CanvasView::on_waypoint_clicked_canvasview)); +// layer_tree->get_selection()->signal_changed().connect(SLOT_EVENT(EVENT_REFRESH_DUCKS)); +// +// layer_tree->hide(); +// return layer_tree; +// } + +void +CanvasView::init_menus() +{ +/* + mainmenu.set_accel_group(get_accel_group()); + mainmenu.set_accel_path(""); + + filemenu.set_accel_group(get_accel_group()); + filemenu.set_accel_path("/File"); + + editmenu.set_accel_group(get_accel_group()); + editmenu.set_accel_path("/Edit"); + + layermenu.set_accel_group(get_accel_group()); + layermenu.set_accel_path("/Layer"); +*/ + //cache the position of desired widgets + + /*Menus to worry about: + - filemenu + - editmenu + - layermenu + - duckmaskmenu + - mainmenu + - canvasmenu + - viewmenu + */ + action_group = Gtk::ActionGroup::create(); + + //action_group->add( Gtk::Action::create("MenuFile", _("_File")) ); + action_group->add( Gtk::Action::create("new", Gtk::Stock::NEW), + sigc::hide_return(sigc::ptr_fun(&studio::App::new_instance)) + ); + action_group->add( Gtk::Action::create("open", Gtk::Stock::OPEN), + sigc::hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::open)) + ); + action_group->add( Gtk::Action::create("save", Gtk::Stock::SAVE), + hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::save)) + ); + action_group->add( Gtk::Action::create("save-as", Gtk::Stock::SAVE_AS), + sigc::hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::dialog_save_as)) + ); + action_group->add( Gtk::Action::create("revert", Gtk::Stock::REVERT_TO_SAVED), + sigc::hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::safe_revert)) + ); + action_group->add( Gtk::Action::create("cvs-add", Gtk::StockID("synfig-cvs_add")), + sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_add)) + ); + action_group->add( Gtk::Action::create("cvs-update", Gtk::StockID("synfig-cvs_update")), + sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_update)) + ); + action_group->add( Gtk::Action::create("cvs-revert", Gtk::StockID("synfig-cvs_revert")), + sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_revert)) + ); + action_group->add( Gtk::Action::create("cvs-commit", Gtk::StockID("synfig-cvs_commit")), + sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_commit)) + ); + action_group->add( Gtk::Action::create("import", _("Import")), + sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::image_import)) + ); + action_group->add( Gtk::Action::create("render", _("Render")), + sigc::mem_fun0(render_settings,&studio::RenderSettings::present) + ); + action_group->add( Gtk::Action::create("preview", _("Preview")), + sigc::mem_fun(*this,&CanvasView::on_preview_option) + ); + action_group->add( Gtk::Action::create("sound", _("Sound File")), + sigc::mem_fun(*this,&CanvasView::on_audio_option) + ); + action_group->add( Gtk::Action::create("options", _("Options")), + sigc::mem_fun0(canvas_options,&studio::CanvasOptions::present) + ); + action_group->add( Gtk::Action::create("close", Gtk::StockID("gtk-close"), _("Close Window")), + sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_view)) + ); + action_group->add( Gtk::Action::create("close-document", Gtk::StockID("gtk-close"), _("Close Document")), + sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_instance)) + ); + action_group->add( Gtk::Action::create("quit", Gtk::StockID("gtk-quit"), _("Quit")), + sigc::hide_return(sigc::ptr_fun(&studio::App::quit)) + ); + + //action_group->add( Gtk::Action::create("undo", Gtk::StockID("gtk-undo")), + // SLOT_EVENT(EVENT_UNDO) + //); + + //action_group->add( Gtk::Action::create("redo", Gtk::StockID("gtk-redo")), + // SLOT_EVENT(EVENT_REDO) + //); + + action_group->add( Gtk::Action::create("select-all-ducks", _("Select All Ducks")), + sigc::mem_fun(*work_area,&studio::WorkArea::select_all_ducks) + ); + + action_group->add( Gtk::Action::create("unselect-all-layers", _("Unselect All Layers")), + sigc::mem_fun(*this,&CanvasView::on_unselect_layers) + ); + + action_group->add( Gtk::Action::create("stop", Gtk::StockID("gtk-stop")), + SLOT_EVENT(EVENT_STOP) + ); + + action_group->add( Gtk::Action::create("refresh", Gtk::StockID("gtk-refresh")), + SLOT_EVENT(EVENT_REFRESH) + ); + + action_group->add( Gtk::Action::create("properties", Gtk::StockID("gtk-properties")), + sigc::mem_fun0(canvas_properties,&studio::CanvasProperties::present) + ); + + // Preview Quality Menu + { + int i; + action_group->add( Gtk::RadioAction::create(quality_group,"quality-00", _("Use Parametric Renderer")), + sigc::bind( + sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), + 0 + ) + ); + for(i=1;i<=10;i++) + { + String note; + if (i == 1) note = _(" (best)"); + if (i == 10) note = _(" (fastest)"); + Glib::RefPtr action(Gtk::RadioAction::create(quality_group,strprintf("quality-%02d",i), + strprintf(_("Set Quality to %d"),i) + note)); + if (i==8) // default quality + { + action->set_active(); + work_area->set_quality(i); + } + action_group->add( action, + sigc::bind( + sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), + i + ) + ); + } + } + + // Low-Res Quality Menu + { + int i; + for(list::iterator iter = CanvasView::get_pixel_sizes().begin(); iter != CanvasView::get_pixel_sizes().end(); iter++) + { + i = *iter; + Glib::RefPtr action(Gtk::RadioAction::create(low_res_pixel_size_group,strprintf("lowres-pixel-%d",i), + strprintf(_("Set Low-Res pixel size to %d"),i))); + if(i==2) // default pixel size + { + action->set_active(); + work_area->set_low_res_pixel_size(i); + } + action_group->add( action, + sigc::bind( + sigc::mem_fun(*work_area, &studio::WorkArea::set_low_res_pixel_size), + i + ) + ); + } + + Glib::RefPtr action; + + action=Gtk::Action::create("decrease-low-res-pixel-size", _("Decrease Low-Res Pixel Size")); + action_group->add( action,sigc::mem_fun(this, &studio::CanvasView::decrease_low_res_pixel_size)); + + action=Gtk::Action::create("increase-low-res-pixel-size", _("Increase Low-Res Pixel Size")); + action_group->add( action, sigc::mem_fun(this, &studio::CanvasView::increase_low_res_pixel_size)); + + } + + action_group->add( Gtk::Action::create("play", Gtk::Stock::MEDIA_PLAY), + sigc::mem_fun(*this, &studio::CanvasView::play) + ); + + action_group->add( Gtk::Action::create("dialog-flipbook", _("Flipbook Dialog")), + sigc::mem_fun0(*preview_dialog, &studio::Dialog_Preview::present) + ); + + { + Glib::RefPtr action; + + grid_show_toggle = Gtk::ToggleAction::create("toggle-grid-show", _("Show Grid")); + grid_show_toggle->set_active(work_area->grid_status()); + action_group->add(grid_show_toggle, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid)); + + grid_snap_toggle = Gtk::ToggleAction::create("toggle-grid-snap", _("Snap to Grid")); + grid_snap_toggle->set_active(work_area->get_grid_snap()); + action_group->add(grid_snap_toggle, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap)); + + action = Gtk::ToggleAction::create("toggle-guide-show", _("Show Guides")); + action->set_active(work_area->get_show_guides()); + action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap)); + + action = Gtk::ToggleAction::create("toggle-low-res", _("Use Low-Res")); + action->set_active(work_area->get_low_resolution_flag()); + action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag)); + + action = Gtk::ToggleAction::create("toggle-onion-skin", _("Show Onion Skin")); + action->set_active(work_area->get_onion_skin()); + action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_onion_skin)); + } + + action_group->add( Gtk::Action::create("canvas-zoom-fit", Gtk::StockID("gtk-zoom-fit")), + sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit) + ); + action_group->add( Gtk::Action::create("canvas-zoom-100", Gtk::StockID("gtk-zoom-100")), + sigc::mem_fun(*work_area, &studio::WorkArea::zoom_norm) + ); + + { + Glib::RefPtr action; + + action=Gtk::Action::create("seek-next-frame", Gtk::Stock::GO_FORWARD,_("Next Frame"),_("Next Frame")); + action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_frame),1)); + action=Gtk::Action::create("seek-prev-frame", Gtk::Stock::GO_BACK,_("Prev Frame"),_("Prev Frame")); + action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_frame),-1)); + + action=Gtk::Action::create("seek-next-second", Gtk::Stock::GO_FORWARD,_("Seek Forward"),_("Seek Forward")); + action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time(1))); + action=Gtk::Action::create("seek-prev-second", Gtk::Stock::GO_BACK,_("Seek Backward"),_("Seek Backward")); + action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time(-1))); + + action=Gtk::Action::create("seek-end", Gtk::Stock::GOTO_LAST,_("Seek to End"),_("Seek to End")); + action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time::end())); + + action=Gtk::Action::create("seek-begin", Gtk::Stock::GOTO_FIRST,_("Seek to Begin"),_("Seek to Begin")); + action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time::begin())); + + action=Gtk::Action::create("jump-next-keyframe", Gtk::Stock::GO_FORWARD,_("Jump to Next Keyframe"),_("Jump to Next Keyframe")); + action_group->add( action,sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_next_keyframe)); + + action=Gtk::Action::create("jump-prev-keyframe", Gtk::Stock::GO_BACK,_("Jump to Prev Keyframe"),_("Jump to Prev Keyframe")); + action_group->add( action,sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_prev_keyframe)); + + action=Gtk::Action::create("canvas-zoom-in", Gtk::Stock::ZOOM_IN); + action_group->add( action,sigc::mem_fun(*work_area, &studio::WorkArea::zoom_in)); + + action=Gtk::Action::create("canvas-zoom-out", Gtk::Stock::ZOOM_OUT); + action_group->add( action, sigc::mem_fun(*work_area, &studio::WorkArea::zoom_out) ); + + action=Gtk::Action::create("time-zoom-in", Gtk::Stock::ZOOM_IN, _("Zoom In on Timeline")); + action_group->add( action, sigc::mem_fun(*this, &studio::CanvasView::time_zoom_in) ); + + action=Gtk::Action::create("time-zoom-out", Gtk::Stock::ZOOM_OUT, _("Zoom Out on Timeline")); + action_group->add( action, sigc::mem_fun(*this, &studio::CanvasView::time_zoom_out) ); + + } + + { + Glib::RefPtr action; + +#define DUCK_MASK(lower,upper,string) \ + action=Gtk::ToggleAction::create("mask-" #lower "-ducks", string); \ + action->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_##upper)); \ + action_group->add(action, \ + sigc::bind( \ + sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), \ + Duck::TYPE_##upper)) + + DUCK_MASK(position,POSITION,_("Show Position Ducks")); + DUCK_MASK(tangent,TANGENT,_("Show Tangent Ducks")); + DUCK_MASK(vertex,VERTEX,_("Show Vertex Ducks")); + DUCK_MASK(radius,RADIUS,_("Show Radius Ducks")); + DUCK_MASK(width,WIDTH,_("Show Width Ducks")); + DUCK_MASK(angle,ANGLE,_("Show Angle Ducks")); + +#undef DUCK_MASK + } + + add_accel_group(App::ui_manager()->get_accel_group()); + +/* // Here is where we add the actions that may have conflicting + // keyboard accelerators. + { + Glib::RefPtr accel_action_group(Gtk::ActionGroup::create("canvas_view")); + Glib::RefPtr action; + + action=Gtk::Action::create("seek-next-frame", Gtk::StockID("gtk-forward"),_("Next Frame"),_("Next Frame")); + accel_action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek),1)); + + action=Gtk::Action::create("seek-prev-frame", Gtk::StockID("gtk-forward"),_("Prev Frame"),_("Prev Frame")); + accel_action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek),-1)); + + action=Gtk::Action::create("jump-next-keyframe", Gtk::StockID("gtk-forward"),_("Jump to Next Keyframe"),_("Jump to Next Keyframe")); + accel_action_group->add( action,sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_next_keyframe)); + + action=Gtk::Action::create("jump-prev-keyframe", Gtk::StockID("gtk-back"),_("Jump to Prev Keyframe"),_("Jump to Prev Keyframe")); + accel_action_group->add( action,sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_prev_keyframe)); + + action=Gtk::Action::create("canvas-zoom-in", Gtk::StockID("gtk-zoom-in")); + accel_action_group->add( action,sigc::mem_fun(*work_area, &studio::WorkArea::zoom_in)); + + action=Gtk::Action::create("canvas-zoom-out", Gtk::StockID("gtk-zoom-out")); + accel_action_group->add( action, sigc::mem_fun(*work_area, &studio::WorkArea::zoom_out) ); + + action=Gtk::Action::create("time-zoom-in", Gtk::StockID("gtk-zoom-in"), _("Zoom In on Timeline")); + accel_action_group->add( action, sigc::mem_fun(*this, &studio::CanvasView::time_zoom_in) ); + + action=Gtk::Action::create("time-zoom-out", Gtk::StockID("gtk-zoom-out"), _("Zoom Out on Timeline")); + accel_action_group->add( action, sigc::mem_fun(*this, &studio::CanvasView::time_zoom_out) ); + + Glib::RefPtr accel_ui_manager(Gtk::UIManager::create()); + + Glib::ustring ui_info = + " + + + + + + + + + + + "; + + accel_ui_manager->add_ui_from_string(ui_info); + add_accel_group(accel_ui_manager->get_accel_group()); + + accel_ui_manager->insert_action_group(accel_action_group); + set_ref_obj("accel_ui_manager",accel_ui_manager); + set_ref_obj("accel_action_group",accel_action_group); + } +*/ + +#if 0 +// +// //Test some key stuff +// +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save"), +// hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::save)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save-as"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_save_as)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-revert-to-saved"),hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::safe_revert)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_add"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_add)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_update"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_update)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_commit"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_commit)))); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Import..."),Gtk::AccelKey('I',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::image_import)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Render"),Gtk::AccelKey("F9"), +// sigc::mem_fun(render_settings,&studio::RenderSettings::present) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview"),Gtk::AccelKey("F11"), +// sigc::mem_fun(*this,&CanvasView::on_preview_option) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Sound File"), +// sigc::mem_fun(*this,&CanvasView::on_audio_option) +// )); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Options"),Gtk::AccelKey("F12"), +// sigc::mem_fun(canvas_options,&studio::CanvasOptions::present) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close View"), +// sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_view)) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close Document"), +// sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_document)) +// )); +// +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-undo"),Gtk::AccelKey('Z',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_UNDO))); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-redo"),Gtk::AccelKey('R',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_REDO))); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-cut"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-copy"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-paste"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Ducks"),Gtk::AccelKey('E',Gdk::CONTROL_MASK),sigc::mem_fun(*work_area,&studio::WorkArea::select_all_ducks))); +// editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Unselect All Layers"),Gtk::AccelKey('D',Gdk::CONTROL_MASK),sigc::mem_fun(*this,&CanvasView::on_unselect_layers))); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(0)),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::stop)))); +// //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-refresh"),Gtk::AccelKey('k',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::on_refresh_pressed)))); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(0)),SLOT_EVENT(EVENT_STOP))); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-refresh"),Gtk::AccelKey('k',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_REFRESH))); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-properties"),Gtk::AccelKey("F8"), +// sigc::mem_fun(canvas_properties,&studio::CanvasProperties::present) +// )); +// +// build_new_layer_menu(newlayermenu); +// layermenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New"),newlayermenu)); +// +// +// { +// synfigapp::Action::ParamList param_list; +// param_list.add("canvas",Canvas::Handle(get_canvas())); +// param_list.add("canvas_interface",canvas_interface()); +// add_actions_to_menu(&canvasmenu, param_list,synfigapp::Action::CATEGORY_CANVAS); +// } +// +// +// //canvasmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Keyframe Dialog"),sigc::mem_fun(keyframe_dialog,&studio::Dialog_Keyframe::present))); +// +// // Duck Mask Menu +// if(1) +// { +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Position Ducks"),Gtk::AccelKey('1',Gdk::MOD1_MASK))); +// duck_mask_position=static_cast(&duckmaskmenu.items().back()); +// duck_mask_position->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_POSITION)); +// duck_mask_position->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_POSITION +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Vertex Ducks"),Gtk::AccelKey('2',Gdk::MOD1_MASK))); +// duck_mask_vertex=static_cast(&duckmaskmenu.items().back()); +// duck_mask_vertex->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_VERTEX)); +// duck_mask_vertex->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_VERTEX +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Tangent Ducks"),Gtk::AccelKey('3',Gdk::MOD1_MASK))); +// duck_mask_tangent=static_cast(&duckmaskmenu.items().back()); +// duck_mask_tangent->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_TANGENT)); +// duck_mask_tangent->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_TANGENT +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Radius Ducks"),Gtk::AccelKey('4',Gdk::MOD1_MASK))); +// duck_mask_radius=static_cast(&duckmaskmenu.items().back()); +// duck_mask_radius->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_RADIUS)); +// duck_mask_radius->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_RADIUS +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Width Ducks"),Gtk::AccelKey('5',Gdk::MOD1_MASK))); +// duck_mask_width=static_cast(&duckmaskmenu.items().back()); +// duck_mask_width->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_WIDTH)); +// duck_mask_width->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_WIDTH +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Angle Ducks"),Gtk::AccelKey('6',Gdk::MOD1_MASK))); +// duck_mask_angle=static_cast(&duckmaskmenu.items().back()); +// duck_mask_angle->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_ANGLE)); +// duck_mask_angle->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_ANGLE +// ) +// ); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Mask Ducks"),duckmaskmenu)); +// } +// +// // Preview Quality Menu +// if(1) +// { +// qualitymenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// int i; +// qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Use Parametric Renderer"),0), +// sigc::bind( +// sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), +// 0 +// ) +// )); +// for(i=1;i<=10;i++) +// { +// qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Set Quality to %d"),i),Gtk::AccelKey('0'+(i%10),Gdk::CONTROL_MASK), +// sigc::bind( +// sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), +// i +// ) +// )); +// } +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu)); +// } +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock::MEDIA_PLAY, +// sigc::mem_fun(*this, &studio::CanvasView::play))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"), +// sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Show"),Gtk::AccelKey('g',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Snap"),Gtk::AccelKey('l',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Guide Snap"),Gtk::AccelKey('k',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Low-Res"),Gtk::AccelKey('`',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('=',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_in))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('-',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_out))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-fit"), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-100"),Gtk::AccelKey('`',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_norm))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('+',static_cast(0)), +// sigc::mem_fun(*this, &studio::CanvasView::time_zoom_in))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('_',static_cast(0)), +// sigc::mem_fun(*this, &studio::CanvasView::time_zoom_out))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Next Keyframe"),Gtk::AccelKey(']',static_cast(0)), +// sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_next_keyframe))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Prev Keyframe"),Gtk::AccelKey('[',static_cast(0)), +// sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_prev_keyframe))); +// +// mainmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_File"),filemenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Edit"),editmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_View"),viewmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Canvas"),canvasmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Layer"),layermenu)); +// +// mainmenu.accelerate(*this); +// +///* +// { +// +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Waypoint"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Delete Waypoint"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Export"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Properties"),NOT_IMPLEMENTED_SLOT)); +// } +//*/ +// mainmenu.show(); +// filemenu.show(); +// editmenu.show(); +// canvasmenu.show(); +// layermenu.show(); +// +// keyframemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-properties"), +// sigc::mem_fun(*this,&studio::CanvasView::show_keyframe_dialog) +// )); +// +// +// get_accel_group()->unlock(); +// +// //Set the accelerator paths for all the menus +// filemenu.set_accel_path("/File"); +// editmenu.set_accel_path("/Edit"); +// layermenu.set_accel_path("/Layer"); +// //mainmenu.set_accel_path(""); +// canvasmenu.set_accel_path("/Canvas"); +// viewmenu.set_accel_path("/View"); +// duckmaskmenu.set_accel_path("/DuckMask"); +#endif +} + +void +CanvasView::on_unselect_layers() +{ + layer_tree->clear_selected_layers(); +} + +void +CanvasView::show_keyframe_dialog() +{ + Glib::RefPtr selection(keyframe_tree->get_selection()); + if(selection->get_selected()) + { + Gtk::TreeRow row(*selection->get_selected()); + + Keyframe keyframe(row[keyframe_tree->model.keyframe]); + + keyframe_dialog.set_keyframe(keyframe); + keyframe_dialog.present(); + } +} + +void +CanvasView::add_layer(synfig::String x) +{ + Canvas::Handle canvas; + + synfigapp::SelectionManager::LayerList layer_list(get_selection_manager()->get_selected_layers()); + + int target_depth(0); + + if(layer_list.empty()) + { + canvas=get_canvas(); + } + else + { + canvas=(*layer_list.begin())->get_canvas(); + target_depth=canvas->get_depth(*layer_list.begin()); + } + + Layer::Handle layer(canvas_interface()->add_layer_to(x,canvas,target_depth)); + if(layer) + { + get_selection_manager()->clear_selected_layers(); + get_selection_manager()->set_selected_layer(layer); + } +} + +void +CanvasView::popup_layer_menu(synfig::Layer::Handle layer) +{ + //Gtk::Menu* menu(manage(new Gtk::Menu)); + Gtk::Menu* menu(¶mmenu); + menu->items().clear(); + + synfigapp::Action::ParamList param_list; + param_list.add("time",canvas_interface()->get_time()); + param_list.add("canvas",Canvas::Handle(layer->get_canvas())); + param_list.add("canvas_interface",canvas_interface()); + param_list.add("layer",layer); + + //Gtk::Menu *newlayers(manage(new Gtk::Menu())); + //build_new_layer_menu(*newlayers); + + //parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers)); + + if(layer->get_name()=="PasteCanvas") + { + menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"), + sigc::bind( + sigc::mem_fun( + *layer_tree, + &studio::LayerTree::select_all_children_layers + ), + layer + ) + )); + } + + add_actions_to_menu(menu, param_list,synfigapp::Action::CATEGORY_LAYER); + + menu->popup(3,gtk_get_current_event_time()); +} + +void +CanvasView::register_layer_type(synfig::Layer::Book::value_type &/*lyr*/,std::map* /*category_map*/) +{ +/* if(lyr.second.category==CATEGORY_DO_NOT_USE) + return; + + if(category_map->count(lyr.second.category)==0) + (*category_map)[lyr.second.category]=manage(new Gtk::Menu()); + + (*category_map)[lyr.second.category]->items().push_back(Gtk::Menu_Helpers::MenuElem(lyr.second.local_name, + sigc::hide_return( + sigc::bind( + sigc::mem_fun(*this,&studio::CanvasView::add_layer), + lyr.first + ) + ) + )); +*/ +} + +void +CanvasView::build_new_layer_menu(Gtk::Menu &/*menu*/) +{ +/* + std::map category_map; + + std::for_each( + synfig::Layer::book().begin(), + synfig::Layer::book().end(), + sigc::bind( + sigc::mem_fun( + *this, + &studio::CanvasView::register_layer_type + ), + &category_map + ) + ); + + menu.items().clear(); + menu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); + + std::map::iterator iter; + for(iter=category_map.begin();iter!=category_map.end();++iter) + menu.items().push_back(Gtk::Menu_Helpers::MenuElem(iter->first,*iter->second)); + + menu.show(); +*/ +} + +void +CanvasView::popup_main_menu() +{ + //mainmenu.popup(0,gtk_get_current_event_time()); + Gtk::Menu* menu = dynamic_cast(App::ui_manager()->get_widget("/menu-main")); + if(menu) + { + //menu->set_accel_group(App::ui_manager()->get_accel_group()); + //menu->accelerate(*this); + menu->popup(0,gtk_get_current_event_time()); + } +} + +void +CanvasView::on_refresh_pressed() +{ + rebuild_tables(); + rebuild_ducks(); + work_area->queue_render_preview(); +} + +void +CanvasView::workarea_layer_selected(synfig::Layer::Handle layer) +{ + get_selection_manager()->clear_selected_layers(); + if(layer) + get_selection_manager()->set_selected_layer(layer); +} + +void +CanvasView::refresh_rend_desc() +{ + current_time_widget->set_fps(get_canvas()->rend_desc().get_frame_rate()); + + //???? + //synfig::info("Canvasview: Refreshing render desc info"); + if(!get_time().is_equal(time_adjustment().get_value())) + { + time_adjustment().set_value(get_time()); + time_adjustment().value_changed(); + } + + Time length(get_canvas()->rend_desc().get_time_end()-get_canvas()->rend_desc().get_time_start()); + if(lengthset_global_fps(get_canvas()->rend_desc().get_frame_rate()); + + //set the beginning and ending time of the time slider + Time begin_time=get_canvas()->rend_desc().get_time_start(); + Time end_time=get_canvas()->rend_desc().get_time_end(); + + // Setup the time_window adjustment + time_window_adjustment().set_lower(begin_time); + time_window_adjustment().set_upper(end_time); + time_window_adjustment().set_step_increment(synfig::Time(1.0/get_canvas()->rend_desc().get_frame_rate())); + + //Time length(get_canvas()->rend_desc().get_time_end()-get_canvas()->rend_desc().get_time_start()); + if(length < time_window_adjustment().get_page_size()) + { + time_window_adjustment().set_page_increment(length); + time_window_adjustment().set_page_size(length); + } + + /*synfig::info("w: %p - [%.3f,%.3f] (%.3f,%.3f) child: %p\n", + &time_window_adjustment_, time_window_adjustment_.get_lower(), + time_window_adjustment_.get_upper(),time_window_adjustment_.get_value(), + time_window_adjustment_.get_page_size(),time_window_adjustment_.get_child_adjustment() + );*/ + + time_window_adjustment().changed(); //only non-value stuff was changed + + // Setup the time adjustment + + //NOTE THESE TWO SHOULD BE CHANGED BY THE changed() CALL ABOVE + //time_adjustment().set_lower(time_window_adjustment().get_value()); + //time_adjustment().set_upper(time_window_adjustment().get_value()+time_window_adjustment().get_page_size()); + +// time_adjustment().set_lower(get_canvas()->rend_desc().get_time_start()); +// time_adjustment().set_upper(get_canvas()->rend_desc().get_time_end()); + time_adjustment().set_step_increment(synfig::Time(1.0/get_canvas()->rend_desc().get_frame_rate())); + time_adjustment().set_page_increment(synfig::Time(1.0)); + time_adjustment().set_page_size(0); + + time_adjustment().changed(); + + /*synfig::info("w: %p - [%.3f,%.3f] (%.3f,%.3f) child: %p\n", + &time_window_adjustment_, time_window_adjustment_.get_lower(), + time_window_adjustment_.get_upper(),time_window_adjustment_.get_value(), + time_window_adjustment_.get_page_size(),time_window_adjustment_.get_child_adjustment() + ); */ + + if(begin_time==end_time) + { + hide_timebar(); + } + else + { + show_timebar(); + } + + //clamp time to big bounds... + if(time_adjustment().get_value() < begin_time) + { + time_adjustment().set_value(begin_time); + time_adjustment().value_changed(); + } + + if(time_adjustment().get_value() > end_time) + { + time_adjustment().set_value(end_time); + time_adjustment().value_changed(); + } + + /*synfig::info("Time stats: \n" + "w: %p - [%.3f,%.3f] (%.3f,%.3f) child: %p\n" + "t: %p - [%.3f,%.3f] %.3f", + &time_window_adjustment_, time_window_adjustment_.get_lower(), + time_window_adjustment_.get_upper(),time_window_adjustment_.get_value(), + time_window_adjustment_.get_page_size(),time_window_adjustment_.get_child_adjustment(), + &time_adjustment_,time_adjustment_.get_lower(),time_adjustment_.get_upper(), + time_adjustment_.get_value() + );*/ + + work_area->queue_render_preview(); +} + +bool +CanvasView::close_view() +{ + if(get_instance()->get_visible_canvases()==1) + close_instance(); + else + hide(); + return false; +} + +static bool _close_instance(etl::handle instance) +{ + etl::handle argh(instance); + instance->safe_close(); + synfig::info("closed"); + return false; +} + +bool +CanvasView::close_instance() +{ +#ifdef SINGLE_THREADED + if (get_work_area()->get_updating()) + { + get_work_area()->stop_updating(true); // stop and mark as cancelled + + // give the workarea chances to stop updating + Glib::signal_timeout().connect( + sigc::mem_fun(*this, &CanvasView::close_instance), + 250); + } + else +#endif + Glib::signal_timeout().connect( + sigc::bind(sigc::ptr_fun(_close_instance), + (etl::handle)get_instance()), + 250); + return false; +} + +handle +CanvasView::create(etl::loose_handle instance, etl::handle canvas) +{ + etl::handle view(new CanvasView(instance,instance->synfigapp::Instance::find_canvas_interface(canvas))); + instance->canvas_view_list().push_front(view); + instance->signal_canvas_view_created()(view.get()); + return view; +} + +void +CanvasView::update_title() +{ + string title; + + title = strprintf("%s%s\"%s\"", + ( + get_instance()->get_action_count() + ? "*" + : "" + ), ( + get_instance()->has_real_filename() + ? (etl::basename(get_instance()->get_file_name()) + " : ").c_str() + : "" + ), ( + get_canvas()->get_name().empty() + ? get_canvas()->get_id().c_str() + : get_canvas()->get_name().c_str() + )); + + if(get_instance()->synfigapp::Instance::in_repository()) + { + title+=" (CVS"; + if(get_instance()->synfigapp::Instance::is_modified()) + title+=_("-MODIFIED"); + if(get_instance()->synfigapp::Instance::is_updated()) + title+=_("-UPDATED"); + title+=')'; + } + + if(get_canvas()->is_root()) + title+=_(" (Root)"); + + set_title(title); +} + +void +CanvasView::on_hide() +{ + smach_.egress(); + Gtk::Window::on_hide(); +} + +void +CanvasView::present() +{ + grab_focus();//on_focus_in_event(0); + Gtk::Window::present(); +} + +bool +CanvasView::on_focus_in_event(GdkEventFocus*x) +{ + if(studio::App::get_selected_canvas_view()!=this) + { + if(studio::App::get_selected_canvas_view()) + { + studio::App::get_selected_canvas_view()->get_smach().process_event(EVENT_YIELD_TOOL_OPTIONS); + App::ui_manager()->remove_action_group(App::get_selected_canvas_view()->action_group); + } + + get_smach().process_event(EVENT_REFRESH_TOOL_OPTIONS); + + studio::App::set_selected_canvas_view(this); + + App::ui_manager()->insert_action_group(action_group); + } + + // HACK ... Questionable...? + if(x) + return Gtk::Window::on_focus_in_event(x); + + return true; +} + +bool +CanvasView::on_focus_out_event(GdkEventFocus*x) +{ + //App::ui_manager()->remove_action_group(action_group); + //App::ui_manager()->ensure_update(); + return Gtk::Window::on_focus_out_event(x); +} + +void +CanvasView::refresh_tables() +{ +// if(layer_tree_store_)layer_tree_store_->refresh(); +// if(children_tree_store_)children_tree_store_->refresh(); +} + +void +CanvasView::rebuild_tables() +{ +// layer_tree_store_->rebuild(); +// children_tree_store_->rebuild(); +} + +void +CanvasView::build_tables() +{ +// layer_tree_store_->rebuild(); +// children_tree_store_->rebuild(); +} + +void +CanvasView::on_layer_toggle(synfig::Layer::Handle layer) +{ + synfigapp::Action::Handle action(synfigapp::Action::create("layer_activate")); + assert(action); + + if(!action) + return; + + action->set_param("canvas",Canvas::Handle(layer->get_canvas())); + if(!action->set_param("canvas_interface",canvas_interface())) +// if(!action->set_param("canvas_interface",get_instance()->find_canvas_interface(layer->get_canvas()))) + synfig::error("LayerActivate didn't like CanvasInterface...?"); + action->set_param("time",get_time()); + action->set_param("layer",layer); + action->set_param("new_status",!layer->active()); + + assert(action->is_ready()); + + canvas_interface()->get_instance()->perform_action(action); +} + +void +CanvasView::popup_param_menu(synfigapp::ValueDesc value_desc, float location) +{ + parammenu.items().clear(); + get_instance()->make_param_menu(¶mmenu,get_canvas(),value_desc,location); + + parammenu.popup(3,gtk_get_current_event_time()); +} + +void +CanvasView::add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamList ¶m_list,synfigapp::Action::Category category)const +{ + get_instance()->add_actions_to_menu(menu, param_list, category); +} + +bool +CanvasView::on_layer_user_click(int button, Gtk::TreeRow /*row*/, LayerTree::ColumnID /*column_id*/) +{ + switch(button) + { + case 3: + { + Gtk::MenuItem* menu = dynamic_cast(App::ui_manager()->get_widget("/menu-main/menu-layer")); + if(menu && menu->get_submenu()) + { + //menu->set_accel_group(App::ui_manager()->get_accel_group()); + //menu->accelerate(*this); + menu->get_submenu()->popup(button,gtk_get_current_event_time()); + } + + #if 0 + bool multiple_selected=true; + + if(layer_tree->get_selection()->count_selected_rows()<=1) + multiple_selected=false; + + // If the clicked row is not selected, then unselect + // everything that isn't selected and select this row + if(multiple_selected && !layer_tree->get_selection()->is_selected(row)) + { + layer_tree->get_selection()->unselect_all(); + layer_tree->get_selection()->select(row); + multiple_selected=false; + } + + if(column_id==COLUMNID_TIME_TRACK) + return false; + + //synfigapp::ValueDesc value_desc(row[layer_param_tree_model.value_desc]); + //ValueNode::Handle value_node(row[layer_param_tree_model.value_node]); + //ValueNode::Handle parent_value_node; + //ValueBase value=row[layer_param_tree_model.value]; + + //if(row.parent()) + //{ + // parent_value_node=(*row.parent())[layer_tree_model.value_node]; + //} + + { + Layer::Handle layer(row[layer_tree_model.layer]); + synfigapp::Action::ParamList param_list; + param_list.add("time",canvas_interface()->get_time()); + param_list.add("canvas",Canvas::Handle(row[layer_tree_model.canvas])); + param_list.add("canvas_interface",canvas_interface()); + if(!multiple_selected) + param_list.add("layer",layer); + else + { + synfigapp::SelectionManager::LayerList layer_list(get_selection_manager()->get_selected_layers()); + synfigapp::SelectionManager::LayerList::iterator iter; + + for(iter=layer_list.begin();iter!=layer_list.end();++iter) + param_list.add("layer",Layer::Handle(*iter)); + } + + parammenu.items().clear(); + + Gtk::Menu *newlayers(manage(new Gtk::Menu())); + // do we need this? the code is all #ifdef'ed out anyway + // newlayers->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), newlayers)); + build_new_layer_menu(*newlayers); + + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers)); + if(!multiple_selected && layer->get_name()=="PasteCanvas") + { + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"), + sigc::bind( + sigc::mem_fun( + *layer_tree, + &studio::LayerTree::select_all_children_layers + ), + layer + ) + )); + } + + add_actions_to_menu(¶mmenu, param_list,synfigapp::Action::CATEGORY_LAYER); + parammenu.popup(button,gtk_get_current_event_time()); + return true; + } +/* + else if(column_id==LayerTree::COLUMNID_TIME_TRACK && value_node && handle::cast_dynamic(value_node)) + { + // Right-click on time track with animated +// trackmenu.popup(0,0); + return true; + } + else + { + if(!multiple_selected) + { + popup_param_menu(value_desc); + return true; + } + else + { +#warning update me! +#if 0 + parammenu.items().clear(); + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Connect"), + hide_return(sigc::mem_fun(*canvas_interface().get(),&synfigapp::CanvasInterface::connect_selected_layer_params)) + )); + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Disconnect"), + hide_return(sigc::mem_fun(*canvas_interface().get(),&synfigapp::CanvasInterface::disconnect_selected_layer_params)) + )); + parammenu.popup(0,0); +#endif + } + return true; + } + */ +#endif +} + return true; + break; + + default: + return false; + break; + } +} + +bool +CanvasView::on_children_user_click(int button, Gtk::TreeRow row, ChildrenTree::ColumnID column_id) +{ + switch(button) + { + case 3: + { + if(column_id==COLUMNID_TIME_TRACK) + return false; + if(!(bool)row[children_tree_model.is_canvas]) + { + synfigapp::ValueDesc value_desc=row[children_tree_model.value_desc]; + if (!value_desc) + { + //! \todo fix properly -- what is the child dialog for? + synfig::info("preventing child dialog right-click crash"); + return true; + } + assert(value_desc); + popup_param_menu(value_desc); + return true; + } + } + return true; + break; + + default: + return false; + break; + } +} + +bool +CanvasView::on_keyframe_tree_event(GdkEvent *event) +{ + switch(event->type) + { + case GDK_BUTTON_PRESS: + switch(event->button.button) + { + case 3: + { + //keyframemenu.popup(event->button.button,gtk_get_current_event_time()); + return true; + } + break; + } + break; + case GDK_MOTION_NOTIFY: + break; + case GDK_BUTTON_RELEASE: + break; + default: + break; + } + return false; +} + +void +CanvasView::refresh_time_window() +{ + //THESE SHOULD AUTOMATICALLY BE TAKEN CARE OF + //time_adjustment().set_lower(time_window_adjustment().get_value()); + //time_adjustment().set_upper(time_window_adjustment().get_value()+time_window_adjustment().get_page_size()); + + time_adjustment().set_page_increment(1.0); // One second + time_adjustment().set_page_size(0); + + if(get_canvas()) + time_adjustment().set_step_increment(1.0/get_canvas()->rend_desc().get_frame_rate()); + time_adjustment().changed(); + + //NOTE THIS SHOULD HOOK INTO THE CORRECT SIGNALS... + if(children_tree) + children_tree->queue_draw(); +} + +void +CanvasView::on_time_changed() +{ + Time time(get_time()); + + current_time_widget->set_value(time); + try { + get_canvas()->keyframe_list().find(time); + current_time_widget->modify_text(Gtk::STATE_NORMAL,Gdk::Color("#FF0000")); + }catch(...){ + current_time_widget->modify_text(Gtk::STATE_NORMAL,Gdk::Color("#000000")); + } + + if(get_time() != time_adjustment().get_value()) + { + //Recenters the window, causing it to jump (possibly undesirably... but whatever) + if(time < time_window_adjustment().get_value() || + time > time_window_adjustment().get_value()+time_window_adjustment().get_page_size()) + { + time_window_adjustment().set_value( + time-time_window_adjustment().get_page_size()/2 + ); + } + time_adjustment().set_value(time); + time_adjustment().value_changed(); + + // Shouldn't these trees just hook into + // the time changed signal...? + //YES THEY SHOULD... + if(layer_tree)layer_tree->queue_draw(); + if(children_tree)children_tree->queue_draw(); + } +} + +void +CanvasView::time_zoom_in() +{ + float frame_rate = get_canvas()->rend_desc().get_frame_rate(); + Time min_page_size = 2/frame_rate; + + time_window_adjustment().set_page_size(time_window_adjustment().get_page_size()*0.75); + if (time_window_adjustment().get_page_size() < min_page_size) + time_window_adjustment().set_page_size(min_page_size); + time_window_adjustment().changed(); + + refresh_time_window(); +} + +void +CanvasView::time_zoom_out() +{ + Time length = (get_canvas()->rend_desc().get_time_end() - + get_canvas()->rend_desc().get_time_start()); + + time_window_adjustment().set_page_size(time_window_adjustment().get_page_size()/0.75); + if (time_window_adjustment().get_page_size() > length) + time_window_adjustment().set_page_size(length); + time_window_adjustment().changed(); + + refresh_time_window(); +} + +void +CanvasView::time_was_changed() +{ + synfig::Time time((synfig::Time)(double)time_adjustment().get_value()); + set_time(time); +} + +void +CanvasView::on_edited_value(synfigapp::ValueDesc value_desc,synfig::ValueBase new_value) +{ + canvas_interface()->change_value(value_desc,new_value); +} + +/* +void +CanvasView::on_children_edited_value(const Glib::ustring&path_string,synfig::ValueBase value) +{ + Gtk::TreePath path(path_string); + + const Gtk::TreeRow row = *(children_tree->get_model()->get_iter(path)); + + assert((bool)row[children_tree_model.is_value_node]); + + synfigapp::ValueDesc value_desc=row[children_tree_model.value_desc]; + assert(value_desc); + + on_edited_value(value_desc,value); +} +*/ + +void +CanvasView::on_id_changed() +{ + update_title(); +} + +void +CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) +{ + // If the animate flag was set in mode... + if(mode&synfigapp::MODE_ANIMATE) + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("gtk-no"),Gtk::ICON_SIZE_BUTTON)); + animatebutton->remove(); + animatebutton->add(*icon); + tooltips.set_tip(*animatebutton,_("In Animate Editing Mode")); + icon->set_padding(0,0); + icon->show(); + } + else + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("gtk-yes"),Gtk::ICON_SIZE_BUTTON)); + animatebutton->remove(); + animatebutton->add(*icon); + tooltips.set_tip(*animatebutton,_("Not in Animate Editing Mode")); + icon->set_padding(0,0); + icon->show(); + } + + if((mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST)) + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("synfig-keyframe_lock_all"),Gtk::ICON_SIZE_BUTTON)); + keyframebutton->remove(); + keyframebutton->add(*icon); + tooltips.set_tip(*keyframebutton,_("All Keyframes Locked")); + icon->set_padding(0,0); + icon->show(); + } + else if((mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST)) + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("synfig-keyframe_lock_future"),Gtk::ICON_SIZE_BUTTON)); + keyframebutton->remove(); + keyframebutton->add(*icon); + tooltips.set_tip(*keyframebutton,_("Future Keyframes Locked")); + icon->set_padding(0,0); + icon->show(); + } + else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST)) + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("synfig-keyframe_lock_past"),Gtk::ICON_SIZE_BUTTON)); + keyframebutton->remove(); + keyframebutton->add(*icon); + tooltips.set_tip(*keyframebutton,_("Past Keyframes Locked")); + icon->set_padding(0,0); + icon->show(); + } + else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST)) + { + Gtk::Image *icon; + icon=manage(new Gtk::Image(Gtk::StockID("synfig-keyframe_lock_none"),Gtk::ICON_SIZE_BUTTON)); + keyframebutton->remove(); + keyframebutton->add(*icon); + tooltips.set_tip(*keyframebutton,_("No Keyframes Locked")); + icon->set_padding(0,0); + icon->show(); + } + + work_area->queue_draw(); +} + +void +CanvasView::on_animate_button_pressed() +{ + if(get_mode()&synfigapp::MODE_ANIMATE) + set_mode(get_mode()-synfigapp::MODE_ANIMATE); + else + set_mode(get_mode()|synfigapp::MODE_ANIMATE); +} + +void +CanvasView::on_keyframe_button_pressed() +{ + synfigapp::CanvasInterface::Mode mode(get_mode()); + + // future && past --> past + if((mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST)) + set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE); + // past --> future + else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST)) + set_mode((get_mode()-synfigapp::MODE_ANIMATE_PAST)|synfigapp::MODE_ANIMATE_FUTURE); + // future --> (nothing) + else if((mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST)) + set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE); + // (nothing) --> future && past + else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST)) + set_mode(get_mode()|synfigapp::MODE_ANIMATE_FUTURE|synfigapp::MODE_ANIMATE_PAST); +} + +bool +CanvasView::duck_change_param(const synfig::Point &value,synfig::Layer::Handle layer, synfig::String param_name) +{ + return canvas_interface()->change_value(synfigapp::ValueDesc(layer,param_name),value); +} + +bool +CanvasView::on_duck_changed(const synfig::Point &value,const synfigapp::ValueDesc& value_desc) +{ + switch(value_desc.get_value_type()) + { + case ValueBase::TYPE_REAL: + return canvas_interface()->change_value(value_desc,value.mag()); + break; + case ValueBase::TYPE_ANGLE: + return canvas_interface()->change_value(value_desc,Angle::tan(value[1],value[0])); + break; + default: + return canvas_interface()->change_value(value_desc,value); + break; + } + + return true; +} + +bool +CanvasView::on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp::ValueDesc& value_desc) +{ + // \todo will this really always be the case? + assert(value_desc.get_value_type() == ValueBase::TYPE_ANGLE); + return canvas_interface()->change_value(value_desc, value_desc.get_value(get_time()).get(Angle()) + rotation); +} + +void +CanvasView::selected_layer_color_set(synfig::Color color) +{ + synfigapp::SelectionManager::LayerList selected_list(get_selection_manager()->get_selected_layers()); + synfigapp::SelectionManager::LayerList::iterator iter; + + // Create the action group + //synfigapp::PassiveGrouper group(canvas_interface()->get_instance(),_("Set Colors")); + + Layer::Handle layer; + for(iter=selected_list.begin();iter!=selected_list.end();++iter) + { + if(*iter==layer) + continue; + layer=*iter; + on_edited_value(synfigapp::ValueDesc(layer,"color"),color); + } +} + +void +CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set& selected_list) +{ + int transforms(0); + String layer_name; + +#define QUEUE_REBUILD_DUCKS sigc::mem_fun(*this,&CanvasView::queue_rebuild_ducks) + + if(!canvas) + { + synfig::warning("CanvasView::rebuild_ducks_layer_(): Layer doesn't have canvas set"); + return; + } + for(Canvas::iterator iter(canvas->begin());iter!=canvas->end();++iter) + { + Layer::Handle layer(*iter); + + if(selected_list.count(layer)) + { + if(!curr_transform_stack_set) + { + curr_transform_stack_set=true; + curr_transform_stack=transform_stack; + } + + // This layer is currently selected. + duck_changed_connections.push_back(layer->signal_changed().connect(QUEUE_REBUILD_DUCKS)); + + // do the bounding box thing + bbox|=transform_stack.perform(layer->get_bounding_rect()); + + // Grab the layer's list of parameters + Layer::ParamList paramlist(layer->get_param_list()); + + // Grab the layer vocabulary + Layer::Vocab vocab=layer->get_param_vocab(); + Layer::Vocab::iterator iter; + + for(iter=vocab.begin();iter!=vocab.end();iter++) + { + if(!iter->get_hidden() && !iter->get_invisible_duck()) + { + synfigapp::ValueDesc value_desc(layer,iter->get_name()); + work_area->add_to_ducks(value_desc,this,transform_stack,&*iter); + if(value_desc.is_value_node()) + duck_changed_connections.push_back(value_desc.get_value_node()->signal_changed().connect(QUEUE_REBUILD_DUCKS)); + } + if(iter->get_name()=="color") + { + /* + if(!App::dialog_color->busy()) + { + App::dialog_color->reset(); + App::dialog_color->set_color(layer->get_param("color").get(Color())); + App::dialog_color->signal_edited().connect( + sigc::mem_fun( + *this, + &studio::CanvasView::selected_layer_color_set + ) + ); + } + */ + } + } + } + + layer_name=layer->get_name(); + + if(layer->active()) + { + Transform::Handle trans(layer->get_transform()); + if(trans) + { + transform_stack.push(trans); + transforms++; + } + +/* // Add transforms onto the stack + if(layer_name=="Translate") + { + transform_stack.push(synfig::Transform_Translate(layer->get_param("origin").get(Vector()))); + transforms++; + }else + if(layer_name=="Zoom") + { + Vector scale; + scale[0]=scale[1]=exp(layer->get_param("amount").get(Real())); + transform_stack.push(synfig::Transform_Scale(scale,layer->get_param("center").get(Vector()))); + transforms++; + }else + if(layer_name=="stretch") + { + Vector scale(layer->get_param("amount").get(Vector())); + transform_stack.push(synfig::Transform_Scale(scale,layer->get_param("center").get(Vector()))); + transforms++; + }else + if(layer_name=="Rotate") + { + transform_stack.push(synfig::Transform_Rotate(layer->get_param("amount").get(Angle()),layer->get_param("origin").get(Vector()))); + transforms++; + } +*/ + } + + // If this is a paste canvas layer, then we need to + // descend into it + if(layer_name=="PasteCanvas") + { + Vector scale; + scale[0]=scale[1]=exp(layer->get_param("zoom").get(Real())); + Vector origin(layer->get_param("origin").get(Vector())); + + Canvas::Handle child_canvas(layer->get_param("canvas").get(Canvas::Handle())); + + if(!scale.is_equal_to(Vector(1,1))) + transform_stack.push(new Transform_Scale(scale,origin)); + if(!scale.is_equal_to(Vector(0,0))) + transform_stack.push(new Transform_Translate(origin)); + + rebuild_ducks_layer_(transform_stack,child_canvas,selected_list); + + if(!scale.is_equal_to(Vector(0,0))) + transform_stack.pop(); + if(!scale.is_equal_to(Vector(1,1))) + transform_stack.pop(); + } + } + // Remove all of the transforms we have added + while(transforms--) { transform_stack.pop(); } + +#undef QUEUE_REBUILD_DUCKS +} + +void +CanvasView::queue_rebuild_ducks() +{ +#if 0 + if(rebuild_ducks_queued) + return; +#else + if(rebuild_ducks_queued) + queue_rebuild_ducks_connection.disconnect(); +#endif + + queue_rebuild_ducks_connection=Glib::signal_timeout().connect( + sigc::bind_return( + sigc::mem_fun(*this,&CanvasView::rebuild_ducks), + false + ), + 50 + ); + + rebuild_ducks_queued=true; +} + +void +CanvasView::rebuild_ducks() +{ + /*static int i=0; + i++; + if(i>30) + synfig::info("%d",i/(i-i)); + */ + + rebuild_ducks_queued=false; + //queue_rebuild_ducks_connection.disconnect(); + + if(work_area->is_dragging()) + { + queue_rebuild_ducks(); + return; + } + + if(!duck_refresh_flag) + { + duck_refresh_needed=true; + return; + } + + bbox=Rect::zero(); + + work_area->clear_ducks(); + work_area->set_time(get_time()); + get_canvas()->set_time(get_time()); + curr_transform_stack.clear(); + //curr_transform_stack.push(new Transform_Translate(Point(0,0))); + curr_transform_stack_set=false; + + for(;!duck_changed_connections.empty();duck_changed_connections.pop_back())duck_changed_connections.back().disconnect(); + + //get_canvas()->set_time(get_time()); + bool not_empty(false); + + // First do the layers... + do{ + synfigapp::SelectionManager::LayerList selected_list(get_selection_manager()->get_selected_layers()); + std::set layer_set(selected_list.begin(),selected_list.end()); + + if(!layer_set.empty()) + not_empty=true; + + synfig::TransformStack transform_stack; + + rebuild_ducks_layer_(transform_stack, get_canvas(), layer_set); + + }while(0); + + // Now do the children + do{ + synfigapp::SelectionManager::ChildrenList selected_list(get_selection_manager()->get_selected_children()); + synfigapp::SelectionManager::ChildrenList::iterator iter; + synfig::TransformStack transform_stack; + + if(selected_list.empty()) + { + break; + } + else + { + not_empty=true; + for(iter=selected_list.begin();iter!=selected_list.end();++iter) + { + work_area->add_to_ducks(*iter,this,transform_stack); + } + } + }while(0); + work_area->refresh_selected_ducks(); + work_area->queue_draw_preview(); +} + +void +CanvasView::decrease_low_res_pixel_size() +{ + list sizes = CanvasView::get_pixel_sizes(); + int pixel_size = work_area->get_low_res_pixel_size(); + + for (list::iterator iter = sizes.begin(); iter != sizes.end(); iter++) + if (*iter == pixel_size) + { + if (iter == sizes.begin()) + // we already have the smallest low-res pixels possible - turn off low-res instead + work_area->set_low_resolution_flag(false); + else + { + iter--; + Glib::RefPtr action = action_group->get_action(strprintf("lowres-pixel-%d", *iter)); + action->activate(); // to make sure the radiobutton in the menu is updated too + work_area->set_low_resolution_flag(true); + } + break; + } +} + +void +CanvasView::increase_low_res_pixel_size() +{ + list sizes = CanvasView::get_pixel_sizes(); + int pixel_size = work_area->get_low_res_pixel_size(); + + if (!work_area->get_low_resolution_flag()) + { + work_area->set_low_resolution_flag(true); + return; + } + + for (list::iterator iter = sizes.begin(); iter != sizes.end(); iter++) + if (*iter == pixel_size) + { + iter++; + if (iter != sizes.end()) + { + Glib::RefPtr action = action_group->get_action(strprintf("lowres-pixel-%d", *iter)); + action->activate(); // to make sure the radiobutton in the menu is updated too + work_area->set_low_resolution_flag(true); + } + break; + } +} + +void +CanvasView::on_dirty_preview() +{ + if(!is_playing_) + { + IsWorking is_working(*this); + + work_area->queue_render_preview(); + } +} + +void +CanvasView::play() +{ + assert(get_canvas()); + + // If we are already busy, don't play! + if(working_depth)return; + + // Set us up as working + IsWorking is_working(*this); + + etl::clock timer; + Time + time=work_area->get_time(), + endtime=get_canvas()->rend_desc().get_time_end(); + + // If we are already at the end of time, start over + if(time==endtime) + time=get_canvas()->rend_desc().get_time_start(); + + is_playing_=true; + + work_area->clear_ducks(); + + for(timer.reset(); time + timer() < endtime;) + { + //Clamp the time window so we can see the time value as it races across the horizon + bool timewindreset = false; + + while( time + timer() > Time(time_window_adjustment().get_sub_upper()) ) + { + time_window_adjustment().set_value( + min( + time_window_adjustment().get_value()+time_window_adjustment().get_page_size()/2, + time_window_adjustment().get_upper()-time_window_adjustment().get_page_size() ) + ); + timewindreset = true; + } + + while( time + timer() < Time(time_window_adjustment().get_sub_lower()) ) + { + time_window_adjustment().set_value( + max( + time_window_adjustment().get_value()-time_window_adjustment().get_page_size()/2, + time_window_adjustment().get_lower()) + ); + + timewindreset = true; + } + + //we need to tell people that the value changed + if(timewindreset) time_window_adjustment().value_changed(); + + //update actual time to next step + time_adjustment().set_value(time+timer()); + time_adjustment().value_changed(); + + if(!work_area->sync_render_preview()) + break; + + // wait for the workarea to refresh itself + while (studio::App::events_pending()) + studio::App::iteration(false); + + if(get_cancel_status()) + { + is_playing_=false; + return; + } + } + is_playing_=false; + + time_adjustment().set_value(endtime); + time_adjustment().value_changed(); +} + +void +CanvasView::show_tables() +{ +/* + Smach::event_result x(process_event_key(EVENT_TABLES_SHOW)); + if(x==Smach::RESULT_OK || x==Smach::RESULT_ACCEPT) + { + Gtk::IconSize iconsize=Gtk::IconSize::from_name("synfig-small_icon"); + treetogglebutton->remove(); + treetogglebutton->add(*manage(new Gtk::Image(Gtk::StockID("gtk-go-down"),iconsize))); + treetogglebutton->show_all(); + notebook->show(); + } +*/ +} + +void +CanvasView::hide_tables() +{ +/* + Smach::event_result x(process_event_key(EVENT_TABLES_HIDE)); + if(x==Smach::RESULT_OK || x==Smach::RESULT_ACCEPT) + { + Gtk::IconSize iconsize=Gtk::IconSize::from_name("synfig-small_icon"); + treetogglebutton->remove(); + treetogglebutton->add(*manage(new Gtk::Image(Gtk::StockID("gtk-go-up"),iconsize))); + treetogglebutton->show_all(); + notebook->hide(); + } +*/ +} + +bool +CanvasView::tables_are_visible() +{ +// return notebook->is_visible(); + return false; +} + +void +CanvasView::toggle_tables() +{ +// if(tables_are_visible()) +// hide_tables(); +// else +// show_tables(); +} + +void +CanvasView::show_timebar() +{ + timebar->show(); + current_time_widget->show(); + + //keyframe_tab_child->show(); + if(layer_tree) + layer_tree->set_show_timetrack(true); + if(children_tree) + children_tree->set_show_timetrack(true); +} + +void +CanvasView::hide_timebar() +{ + timebar->hide(); + current_time_widget->hide(); + //keyframe_tab_child->hide(); + if(layer_tree) + layer_tree->set_show_timetrack(false); + if(children_tree) + children_tree->set_show_timetrack(false); +} + +void +CanvasView::set_sensitive_timebar(bool sensitive) +{ + timebar->set_sensitive(sensitive); + current_time_widget->set_sensitive(sensitive); + //keyframe_tab_child->set_sensitive(sensitive); + if(layer_tree) + layer_tree->set_sensitive(sensitive); + if(children_tree) + children_tree->set_sensitive(sensitive); +} + +static void +set_waypoint_model(std::set > waypoints, + Waypoint::Model model, + etl::loose_handle canvas_interface) +{ + // Create the action group + synfigapp::Action::PassiveGrouper group(canvas_interface->get_instance().get(),_("Change Waypoint Group")); + + std::set >::const_iterator iter; + for(iter=waypoints.begin();iter!=waypoints.end();++iter) + { + Waypoint waypoint(*iter); + waypoint.apply_model(model); + + synfigapp::Action::Handle action(synfigapp::Action::create("waypoint_set")); + + assert(action); + + action->set_param("canvas",canvas_interface->get_canvas()); + action->set_param("canvas_interface",canvas_interface); + + action->set_param("waypoint",waypoint); + action->set_param("value_node",waypoint.get_parent_value_node()); + + if(!canvas_interface->get_instance()->perform_action(action)) + { + group.cancel(); + return; + } + } +} + +static void +duplicate_waypoints(std::set > waypoints, + etl::loose_handle canvas_interface) +{ + // Create the action group + synfigapp::Action::PassiveGrouper group(canvas_interface->get_instance().get(),_("Duplicate Waypoints")); + + std::set >::const_iterator iter; + for (iter = waypoints.begin(); iter != waypoints.end(); iter++) + { + Waypoint waypoint(*iter); + ValueNode::Handle value_node(iter->get_parent_value_node()); + canvas_interface->waypoint_duplicate(value_node, waypoint); + } +} + +static void +remove_waypoints(std::set > waypoints, + etl::loose_handle canvas_interface) +{ + // Create the action group + synfigapp::Action::PassiveGrouper group(canvas_interface->get_instance().get(),_("Remove Waypoints")); + + std::set >::const_iterator iter; + for (iter = waypoints.begin(); iter != waypoints.end(); iter++) + { + Waypoint waypoint(*iter); + ValueNode::Handle value_node(iter->get_parent_value_node()); + canvas_interface->waypoint_remove(value_node, waypoint); + } +} + +void +CanvasView::on_waypoint_clicked_canvasview(synfigapp::ValueDesc value_desc, + std::set > waypoint_set, + int button) +{ + int size = waypoint_set.size(); + Waypoint waypoint(*(waypoint_set.begin())); + Time time(waypoint.get_time()); + + if (size == 1) + { + waypoint_dialog.set_value_desc(value_desc); + waypoint_dialog.set_waypoint(waypoint); + } + + switch(button) + { + case -1: + if (size == 1) + waypoint_dialog.show(); + break; + case 2: + { + Gtk::Menu* waypoint_menu(manage(new Gtk::Menu())); + waypoint_menu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), waypoint_menu)); + + Gtk::Menu* interp_menu_in(manage(new Gtk::Menu())); + Gtk::Menu* interp_menu_out(manage(new Gtk::Menu())); + Gtk::Menu* interp_menu_both(manage(new Gtk::Menu())); + + { + Waypoint::Model model; + + model.reset(); model.set_before(INTERPOLATION_TCB); + interp_menu_in->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_TCB"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.reset(); model.set_after(INTERPOLATION_TCB); + interp_menu_out->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_TCB"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.set_before(INTERPOLATION_TCB); + interp_menu_both->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_TCB"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + + model.reset(); model.set_before(INTERPOLATION_LINEAR); + interp_menu_in->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Linear"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.reset(); model.set_after(INTERPOLATION_LINEAR); + interp_menu_out->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Linear"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.set_before(INTERPOLATION_LINEAR); + interp_menu_both->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Linear"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + + model.reset(); model.set_before(INTERPOLATION_HALT); + interp_menu_in->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Ease In"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.reset(); model.set_after(INTERPOLATION_HALT); + interp_menu_out->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Ease Out"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.set_before(INTERPOLATION_HALT); + interp_menu_both->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Ease In/Out"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + + model.reset(); model.set_before(INTERPOLATION_CONSTANT); + interp_menu_in->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Constant"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.reset(); model.set_after(INTERPOLATION_CONSTANT); + interp_menu_out->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Constant"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + model.set_before(INTERPOLATION_CONSTANT); + interp_menu_both->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Constant"), + sigc::bind(sigc::ptr_fun(set_waypoint_model), waypoint_set, model, canvas_interface()))); + } + + // ------------------------------------------------------------------------ + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Jump To"), + sigc::bind(sigc::mem_fun(*canvas_interface(), &synfigapp::CanvasInterface::set_time), time))); + + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Duplicate"), + sigc::bind(sigc::ptr_fun(duplicate_waypoints), waypoint_set, canvas_interface()))); + + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem((size == 1) ? _("_Remove") : strprintf(_("_Remove %d Waypoints"), size), + sigc::bind(sigc::ptr_fun(remove_waypoints), waypoint_set, canvas_interface()))); + + if (size == 1 && value_desc.is_valid()) + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Edit"), + sigc::mem_fun(waypoint_dialog,&Gtk::Widget::show))); + + // ------------------------------------------------------------------------ + waypoint_menu->items().push_back(Gtk::Menu_Helpers::SeparatorElem()); + + // ------------------------------------------------------------------------ + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Both"), *interp_menu_both)); + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_In"), *interp_menu_in)); + waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Out"), *interp_menu_out)); + + // ------------------------------------------------------------------------ + waypoint_menu->popup(button+1,gtk_get_current_event_time()); + } + break; + + default: + break; + } +} + +void +CanvasView::on_waypoint_changed() +{ + synfigapp::Action::ParamList param_list; + param_list.add("canvas",get_canvas()); + param_list.add("canvas_interface",canvas_interface()); + param_list.add("value_node",waypoint_dialog.get_value_desc().get_value_node()); + param_list.add("waypoint",waypoint_dialog.get_waypoint()); +// param_list.add("time",canvas_interface()->get_time()); + + get_instance()->process_action("waypoint_set_smart", param_list); +} + +void +CanvasView::on_waypoint_delete() +{ + synfigapp::Action::ParamList param_list; + param_list.add("canvas",get_canvas()); + param_list.add("canvas_interface",canvas_interface()); + param_list.add("value_node",waypoint_dialog.get_value_desc().get_value_node()); + param_list.add("waypoint",waypoint_dialog.get_waypoint()); +// param_list.add("time",canvas_interface()->get_time()); + + get_instance()->process_action("waypoint_remove", param_list); +} + +void +CanvasView::on_drop_drag_data_received(const Glib::RefPtr& context, int /*x*/, int /*y*/, const Gtk::SelectionData& selection_data_, guint /*info*/, guint time) +{ + // We will make this true once we have a solid drop + bool success(false); + //synfig::info("Dropped data of type \"%s\"",selection_data.get_data_type()); + //synfig::info("Dropped data of target \"%s\"",gdk_atom_name(selection_data->target)); + //synfig::info("selection=\"%s\"",gdk_atom_name(selection_data->selection)); + + if ((selection_data_.get_length() >= 0) && (selection_data_.get_format() == 8)) + { + if(synfig::String(selection_data_.get_data_type())=="STRING")do + { + synfig::String selection_data((gchar *)(selection_data_.get_data())); + + Layer::Handle layer(synfig::Layer::create("Text")); + if(!layer) + break; + if(!layer->set_param("text",ValueBase(selection_data))) + break; + + synfigapp::Action::Handle action(synfigapp::Action::create("layer_add")); + + assert(action); + if(!action) + break; + + action->set_param("canvas",get_canvas()); + action->set_param("canvas_interface",canvas_interface()); + action->set_param("new",layer); + + if(!get_instance()->perform_action(action)) + break; + + // Ok, we have successfully imported at least one item. + success=true; + } while(0); // END of "STRING" + + if(synfig::String(selection_data_.get_data_type())=="text/plain") + { + synfig::String selection_data((gchar *)(selection_data_.get_data())); + + // For some reason, GTK hands us a list of URLs separated + // by not only Carriage-Returns, but also Line-Feeds. + // Line-Feeds will mess us up. Remove all the line-feeds. + while(selection_data.find_first_of('\r')!=synfig::String::npos) + selection_data.erase(selection_data.begin()+selection_data.find_first_of('\r')); + + std::stringstream stream(selection_data); + + //synfigapp::PassiveGrouper group(canvas_interface()->get_instance(),_("Insert Image")); + while(stream) + { + synfig::String filename,URI; + getline(stream,filename); + + // If we don't have a filename, move on. + if(filename.empty()) + continue; + + // Make sure this URL is of the "file://" type. + URI=String(filename.begin(),filename.begin()+sizeof("file://")-1); + if(URI!="file://") + { + synfig::warning("Unknown URI (%s) in \"%s\"",URI.c_str(),filename.c_str()); + continue; + } + + // Strip the "file://" part from the filename + filename=synfig::String(filename.begin()+sizeof("file://")-1,filename.end()); + + String ext(filename_extension(filename)); + if (ext.size()) ext = ext.substr(1); // skip initial '.' + + // If this is a SIF file, then we need to do things slightly differently + if(ext=="sketch") + { + if(work_area->load_sketch(filename)) + { + success=true; + work_area->queue_draw(); + } + } + else + { + if(canvas_interface()->import(filename)) + success=true; + } + + continue; + } + } // END of "text/plain" + } + else + ui_interface_->error("Drop failed: bad selection data"); + + // Finish the drag + context->drag_finish(success, false, time); +} + +void +CanvasView::on_keyframe_add_pressed() +{ + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_add")); + + if(!action) + { + ui_interface_->error("I am unable to find the appropriate action"); + return; + } + + action->set_param("canvas",get_canvas()); + action->set_param("canvas_interface",canvas_interface()); + action->set_param("keyframe",Keyframe(get_time())); + + canvas_interface()->get_instance()->perform_action(action); +} + +void +CanvasView::on_keyframe_duplicate_pressed() +{ + const KeyframeTreeStore::Model model; + const Gtk::TreeRow row(*keyframe_tree->get_selection()->get_selected()); + Keyframe keyframe; + if(!row) + { + ui_interface_->error("I am unable to duplicate the keyframe"); + return; + } + keyframe=row[model.keyframe]; + + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_duplicate")); + + if(!action) + { + ui_interface_->error("I am unable to find the appropriate action"); + return; + } + + action->set_param("canvas",get_canvas()); + action->set_param("canvas_interface",canvas_interface()); + action->set_param("keyframe",keyframe); + action->set_param("time",get_time()); + + canvas_interface()->get_instance()->perform_action(action); +} + +void +CanvasView::on_keyframe_remove_pressed() +{ + const KeyframeTreeStore::Model model; + const Gtk::TreeRow row(*keyframe_tree->get_selection()->get_selected()); + Keyframe keyframe; + if(!row) + { + ui_interface_->error("I am unable to remove the keyframe"); + return; + } + keyframe=row[model.keyframe]; + + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_remove")); + + if(!action) + { + ui_interface_->error("I am unable to find the appropriate action"); + return; + } + + action->set_param("canvas",get_canvas()); + action->set_param("canvas_interface",canvas_interface()); + action->set_param("keyframe",keyframe); + + canvas_interface()->get_instance()->perform_action(action); +} + +void +CanvasView::toggle_duck_mask(Duckmatic::Type type) +{ + bool is_currently_on(work_area->get_type_mask()&type); + + if(is_currently_on) + work_area->set_type_mask(work_area->get_type_mask()-type); + else + work_area->set_type_mask(work_area->get_type_mask()|type); + + work_area->queue_draw(); +} + +void +CanvasView::image_import() +{ + // String filename(dirname(get_canvas()->get_file_name())); + String filename("*.*"); + if(App::dialog_open_file(_("Import Image"), filename, IMAGE_DIR_PREFERENCE)) + canvas_interface()->import(filename); +} + +Smach::event_result +CanvasView::process_event_key(EventKey x) +{ + return smach_.process_event(x); +} + +void +CanvasView::on_input_device_changed(GdkDevice* device) +{ + if(!device) + { + get_smach().egress(); + } + assert(device); + + synfigapp::InputDevice::Handle input_device; + input_device=synfigapp::Main::select_input_device(device->name); + App::toolbox->change_state(input_device->get_state()); + process_event_key(EVENT_INPUT_DEVICE_CHANGED); +} + +void +CanvasView::on_preview_option() +{ + Dialog_PreviewOptions *po = dynamic_cast(get_ext_widget("prevoptions")); + + Canvas::Handle canv = get_canvas(); + + if(canv) + { + RendDesc &r = canv->rend_desc(); + if(r.get_frame_rate()) + { + float rate = 1/r.get_frame_rate(); + float beg = r.get_time_start() + r.get_frame_start()*rate; + float end = r.get_time_start() + r.get_frame_end()*rate; + + if(!po) + { + po = new Dialog_PreviewOptions; + po->set_zoom(work_area->get_zoom()/2); + po->set_fps(r.get_frame_rate()/2); + po->set_begintime(beg); + po->set_begin_override(false); + po->set_endtime(end); + po->set_end_override(false); + + set_ext_widget("prevoptions",po); + } + /*po->set_zoom(work_area->get_zoom()/2); + po->set_fps(r.get_frame_rate()/2); + po->set_begintime(beg); + po->set_begin_override(false); + po->set_endtime(end); + po->set_end_override(false);*/ + + po->set_global_fps(r.get_frame_rate()); + po->signal_finish().connect(sigc::mem_fun(*this,&CanvasView::on_preview_create)); + po->present(); + } + } +} + +void +CanvasView::on_preview_create(const PreviewInfo &info) +{ + //set all the options + etl::handle prev = new Preview; + + prev->set_canvasview(this); + prev->set_zoom(info.zoom); + prev->set_fps(info.fps); + prev->set_overbegin(info.overbegin); + prev->set_begintime(info.begintime); + prev->set_overend(info.overend); + prev->set_endtime(info.endtime); + prev->set_quality(work_area->get_quality()); + + //render it out... + prev->render(); + + Dialog_Preview *pd = preview_dialog.get(); + assert(pd); + + pd->set_default_size(700,510); + pd->set_preview(prev.get()); + pd->present(); +} + +void +CanvasView::on_audio_option() +{ + synfig::warning("Launching Audio Options"); + sound_dialog->set_global_fps(get_canvas()->rend_desc().get_frame_rate()); + sound_dialog->present(); +} + +void +CanvasView::on_audio_file_change(const std::string &f) +{ + //save in meta data - always even when not valid... + canvas_interface()->set_meta_data("audiofile",f); +} + +void +CanvasView::on_audio_offset_change(const synfig::Time &t) +{ + canvas_interface()->set_meta_data("audiooffset",t.get_string()); +} + +void +CanvasView::on_audio_file_notify() +{ + std::string file(get_canvas()->get_meta_data("audiofile")); + if(!file.c_str()) return; + + if(!audio->load(file,dirname(get_canvas()->get_file_name())+string("/"))) + { + if(file != "") synfig::warning("Could not load the file: %s", file.c_str()); + get_canvas()->erase_meta_data("audiofile"); + disp_audio->hide(); + disp_audio->set_profile(etl::handle()); + }else + { + //save in canvasview + synfig::warning("Getting the profile of the music stuff"); + + //profile specific stuff for the preview widget + //similar for other attachments + Dialog_Preview *pd = preview_dialog.get(); + pd->get_widget().set_audio(audio); + + handle prof = audio->get_profile(); + + if(!prof) + { + synfig::warning("Agh, I couldn't build the profile captain!"); + } + pd->get_widget().set_audioprofile(prof); + + disp_audio->set_profile(audio->get_profile()); + disp_audio->show(); + + synfig::warning("successfully set the profiles and stuff"); + } + disp_audio->queue_draw(); +} + +void +CanvasView::on_audio_offset_notify() +{ + Time t(get_canvas()->get_meta_data("audiooffset"),get_canvas()->rend_desc().get_frame_rate()); + audio->set_offset(t); + sound_dialog->set_offset(t); + disp_audio->queue_draw(); + + // synfig::info("CanvasView::on_audio_offset_notify(): offset time set to %s",t.get_string(get_canvas()->rend_desc().get_frame_rate()).c_str()); +} + +void +CanvasView::play_audio(float t) +{ + if(audio.get()) + { + synfig::info("Playing audio at %f s",t); + audio->play(t); + } +} + +void +CanvasView::stop_audio() +{ + if(audio.get()) + { + audio->stop(); + } +} + +bool +CanvasView::on_audio_scrub() +{ + disp_audio->draw(); + return true; +} + +Glib::RefPtr +CanvasView::get_ref_obj(const synfig::String& x) +{ + return ref_obj_book_[x]; +} + +Glib::RefPtr +CanvasView::get_ref_obj(const synfig::String& x)const +{ + return ref_obj_book_.find(x)->second; +} + +void +CanvasView::set_ref_obj(const synfig::String& x, Glib::RefPtr y) +{ + ref_obj_book_[x]=y; +} + +Glib::RefPtr +CanvasView::get_tree_model(const synfig::String& x) +{ + return Glib::RefPtr::cast_dynamic(ref_obj_book_["_tree_model_"+x]); +} + +Glib::RefPtr +CanvasView::get_tree_model(const synfig::String& x)const +{ + return Glib::RefPtr::cast_dynamic(ref_obj_book_.find("_tree_model_"+x)->second); +} + +void +CanvasView::set_tree_model(const synfig::String& x, Glib::RefPtr y) +{ + ref_obj_book_["_tree_model_"+x]=Glib::RefPtr::cast_static(y); +} + +Gtk::Widget* +CanvasView::get_ext_widget(const synfig::String& x) +{ + return ext_widget_book_[x]; +} + +void +CanvasView::set_ext_widget(const synfig::String& x, Gtk::Widget* y) +{ + ext_widget_book_[x]=y; + if(x=="layers_cmp") + { + layer_tree=dynamic_cast(y); + + layer_tree->get_selection()->signal_changed().connect(SLOT_EVENT(EVENT_LAYER_SELECTION_CHANGED)); + layer_tree->get_selection()->signal_changed().connect(SLOT_EVENT(EVENT_REFRESH_DUCKS)); + layer_tree->signal_layer_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_layer_user_click)); + layer_tree->signal_param_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_children_user_click)); + layer_tree->signal_waypoint_clicked_layertree().connect(sigc::mem_fun(*this, &studio::CanvasView::on_waypoint_clicked_canvasview)); + } + if(x=="children") + { + children_tree=dynamic_cast(y); + if(children_tree)children_tree->signal_user_click().connect(sigc::mem_fun(*this, &studio::CanvasView::on_children_user_click)); + if(children_tree)children_tree->signal_waypoint_clicked_childrentree().connect(sigc::mem_fun(*this, &studio::CanvasView::on_waypoint_clicked_canvasview)); + if(children_tree)children_tree->get_selection()->signal_changed().connect(SLOT_EVENT(EVENT_REFRESH_DUCKS)); + } + if(x=="keyframes") + keyframe_tree=dynamic_cast(y); +} + +bool +CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) +{ + close_view(); + + //! \todo This causes the window to be deleted straight away - but what if we prompt 'save?' and the user cancels? + // Is there ever any need to pass on the delete event to the window here? + // if(event) return Gtk::Window::on_delete_event(event); + + return true; +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.h b/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.h new file mode 100644 index 0000000..6afc299 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/canvasview.h @@ -0,0 +1,695 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasview.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_GTKMM_CANVASVIEW_H +#define __SYNFIG_STUDIO_GTKMM_CANVASVIEW_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "instance.h" +#include "canvasproperties.h" +#include "canvasoptions.h" +#include "render.h" +#include "cellrenderer_timetrack.h" +#include "app.h" + +#include "layertreestore.h" +#include "layertree.h" +#include "childrentreestore.h" +#include "childrentree.h" +#include "keyframetreestore.h" +#include "keyframetree.h" + +#include "dialog_waypoint.h" +#include "dialog_keyframe.h" + +#include "duckmatic.h" +#include + +#include + +#include "smach.h" + +#include +#include +#include +#include +#include +#include + +#include "adjust_window.h" + +#include + +/* === M A C R O S ========================================================= */ + +#ifndef DEBUGPOINT_CLASS +#if _DEBUG +#define DEBUGPOINT_CLASS(x) struct debugpointclass_ ## x { debugpointclass_ ## x () { DEBUGPOINT(); } ~debugpointclass_ ## x () { DEBUGPOINT(); } } badfthguae_ ## x ; +#else +#define DEBUGPOINT_CLASS(x) +#endif +#endif + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + class TransformStack; +} + +namespace studio { + +class CanvasViewUIInterface; +class CanvasViewSelectionManager; + +class CellRenderer_TimeTrack; +class CellRenderer_ValueBase; +class UniversalScrubber; +class WorkArea; + +class Duckmatic; + +class Preview; +struct PreviewInfo; +class AudioContainer; + +class Widget_Sound; +class Widget_Timeslider; +class Widget_Time; + +class Dialog_SoundSelect; +class Dialog_Preview; + +class Dock_Layers; +class Dock_Children; +class Dock_Keyframes; + +class CanvasView : public Gtk::Window, public etl::shared_object +{ + friend class UniversalScrubber; + friend class Dock_Layers; + friend class Dock_Children; + friend class Dock_Keyframes; + + friend class CanvasViewUIInterface; + friend class CanvasViewSelectionManager; + + friend class Duckmatic; + + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + typedef etl::handle Handle; + + typedef etl::handle ConstHandle; + + typedef etl::loose_handle LooseHandle; + + typedef LayerTreeStore::Model LayerTreeModel; + + typedef ChildrenTreeStore::Model ChildrenTreeModel; + + //! Create an instance of this class whenever doing a longer task. + /*! Make sure that you check the bool value of this class occasionally + ** to make sure the action has not been canceled. */ + class IsWorking + { + CanvasView &canvas_view_; + + public: + IsWorking(CanvasView &canvas_view_); + ~IsWorking(); + operator bool()const; + }; + friend class IsWorking; + + typedef synfigapp::CanvasInterface::Mode Mode; + + void set_grid_snap_toggle(bool flag) { grid_snap_toggle->set_active(flag); } + void set_grid_show_toggle(bool flag) { grid_show_toggle->set_active(flag); } + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +public: + std::auto_ptr work_area; + + WorkArea* get_work_area() { return work_area.get(); } +private: + + synfig::TransformStack curr_transform_stack; + bool curr_transform_stack_set; + + synfig::Rect bbox; + + // DEBUGPOINT_CLASS(1); + + //! State Machine + Smach smach_; + + // DEBUGPOINT_CLASS(2); + + etl::loose_handle instance_; + etl::handle canvas_interface_; + + // DEBUGPOINT_CLASS(3); + + //! Sound and information to play it + etl::handle audio; + studio::Widget_Sound *disp_audio; //should this be put into thing too? + + sigc::connection playcon; + sigc::connection stopcon; + + std::auto_ptr universal_scrubber; + + //! Tooltip controller + Gtk::Tooltips tooltips; + + // DEBUGPOINT_CLASS(4); + + //! TreeModel for the layers + LayerTreeModel layer_tree_model; + + //! TreeModel for the the children + ChildrenTreeModel children_tree_model; + + //Glib::RefPtr layer_tree_store_; + + //Glib::RefPtr children_tree_store_; + + //Glib::RefPtr keyframe_tree_store_; + + // DEBUGPOINT_CLASS(5); + + //std::map > tree_model_book_; + std::map > ref_obj_book_; + std::map ext_widget_book_; + + //! The time adjustment's scope is defined by the time_window adjustment + Gtk::Adjustment time_adjustment_; + + //! The time_window adjustment governs the position of the time window on the whole time line + //Gtk::Adjustment time_window_adjustment_; + studio::Adjust_Window time_window_adjustment_; + + LayerTree *layer_tree; + + ChildrenTree *children_tree; + + KeyframeTree *keyframe_tree; + + Gtk::Widget *keyframe_tab_child; + + Gtk::ProgressBar *progressbar; + Gtk::Statusbar *statusbar; + + Gtk::TreeRow children_canvas_row; + Gtk::TreeRow children_valuenode_row; + + Gtk::Button *stopbutton; + Gtk::Button *refreshbutton; + Gtk::Button *treetogglebutton; + Gtk::Notebook *notebook; + Gtk::Widget *timebar; + + Widget_Time *current_time_widget; + void on_current_time_widget_changed(); + + std::auto_ptr timeslider; + + std::list duck_changed_connections; + + Gtk::Button *animatebutton; + Gtk::Button *keyframebutton; + +/* DEBUGPOINT_CLASS(8); + + Gtk::Menu duckmaskmenu; + DEBUGPOINT_CLASS(77); + Gtk::Menu qualitymenu; + DEBUGPOINT_CLASS(6); + + Gtk::Menu filemenu; + DEBUGPOINT_CLASS(777); + Gtk::Menu editmenu; + DEBUGPOINT_CLASS(71); + Gtk::Menu canvasmenu; + DEBUGPOINT_CLASS(73); +public: + Gtk::Menu layermenu; +private: + DEBUGPOINT_CLASS(74); + Gtk::Menu newlayermenu; + DEBUGPOINT_CLASS(76); + Gtk::Menu viewmenu; + + DEBUGPOINT_CLASS(99); + Gtk::Menu keyframemenu; + + Gtk::Menu parammenu; + DEBUGPOINT_CLASS(9); + Gtk::Menu trackmenu; + DEBUGPOINT_CLASS(7); + + Gtk::CheckMenuItem* duck_mask_position; + Gtk::CheckMenuItem* duck_mask_vertex; + Gtk::CheckMenuItem* duck_mask_tangent; + Gtk::CheckMenuItem* duck_mask_radius; + Gtk::CheckMenuItem* duck_mask_width; + Gtk::CheckMenuItem* duck_mask_angle; +*/ + Gtk::Menu parammenu; + + Glib::RefPtr grid_snap_toggle; + Glib::RefPtr grid_show_toggle; + + Gtk::RadioButtonGroup quality_group; + Gtk::RadioButtonGroup low_res_pixel_size_group; + + Glib::RefPtr action_group; + + etl::handle ui_interface_; + etl::handle selection_manager_; + + bool is_playing_; + + sigc::signal signal_deleted_; + + bool rebuild_ducks_queued; + sigc::connection queue_rebuild_ducks_connection; + + /* + -- ** -- P U B L I C D A T A ----------------------------------------------- + */ + +public: + void queue_rebuild_ducks(); + sigc::signal& signal_deleted() { return signal_deleted_; } + + Gtk::Menu mainmenu; + + bool duck_refresh_flag; + bool duck_refresh_needed; + + //! This is for the IsWorking class. + int working_depth; + + bool cancel; + + /* + -- ** -- D I A L O G S ------------------------------------------------------- + */ + +public: + + CanvasProperties canvas_properties; + CanvasOptions canvas_options; + RenderSettings render_settings; + Dialog_Waypoint waypoint_dialog; + Dialog_Keyframe keyframe_dialog; + + std::auto_ptr preview_dialog; + //std::auto_ptr previewoption_dialog; + std::auto_ptr sound_dialog; + + /* + -- ** -- P R I V A T E M E T H O D S --------------------------------------- + */ + +private: + + // Constructor is private to force the use of the "create()" constructor + CanvasView(etl::loose_handle instance,etl::handle canvas_interface); + + //! Constructor Helper + // Gtk::Widget* create_layer_tree(); + + //! Constructor Helper + // Gtk::Widget* create_children_tree(); + + //! Constructor Helper + // Gtk::Widget* create_keyframe_tree(); + + //! Constructor Helper + Gtk::Widget* create_status_bar(); + + //! Constructor Helper - Initializes all of the menus + void init_menus(); + + bool duck_change_param(const synfig::Point &value,synfig::Layer::Handle layer, synfig::String param_name); + + void refresh_time_window(); + + void time_was_changed(); + + void refresh_rend_desc(); + + void toggle_duck_mask(Duckmatic::Type type); + + Gtk::Widget *create_work_area(); + + Gtk::Widget *create_time_bar(); + + void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc) + { popup_param_menu(value_desc,location); } + + void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0); + + void workarea_layer_selected(synfig::Layer::Handle layer); + + void selected_layer_color_set(synfig::Color color); + + void register_layer_type(synfig::Layer::Book::value_type &lyr,std::map*); + + //! Rebuilds the "new layer" menu + void build_new_layer_menu(Gtk::Menu &menu); + + void rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set& selected_list); + + void decrease_low_res_pixel_size(); + void increase_low_res_pixel_size(); + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + const synfig::TransformStack& get_curr_transform_stack()const { return curr_transform_stack; } + + const synfig::Rect& get_bbox()const { return bbox; } + + Glib::RefPtr get_ref_obj(const synfig::String& x); + Glib::RefPtr get_ref_obj(const synfig::String& x)const; + void set_ref_obj(const synfig::String& x, Glib::RefPtr y); + + Glib::RefPtr get_tree_model(const synfig::String& x); + Glib::RefPtr get_tree_model(const synfig::String& x)const; + void set_tree_model(const synfig::String& x, Glib::RefPtr y); + + Gtk::Widget* get_ext_widget(const synfig::String& x); + void set_ext_widget(const synfig::String& x, Gtk::Widget* y); + + //std::map& tree_view_book() { return tree_view_book_; } + //std::map& ext_widget_book() { return tree_view_book_; } + + void popup_main_menu(); + + Smach& get_smach() { return smach_; } + + const Smach& get_smach()const { return smach_; } + + Smach::event_result process_event_key(EventKey x); + + void popup_layer_menu(synfig::Layer::Handle layer); + + virtual ~CanvasView(); + + void set_mode(Mode x) { canvas_interface()->set_mode(x); } + + Mode get_mode()const { return canvas_interface()->get_mode(); } + + Gtk::Adjustment &time_adjustment() { return time_adjustment_; } + + const Gtk::Adjustment &time_adjustment()const { return time_adjustment_; } + + studio::Adjust_Window &time_window_adjustment() { return time_window_adjustment_; } + + const studio::Adjust_Window &time_window_adjustment()const { return time_window_adjustment_; } + + etl::handle get_ui_interface() { return ui_interface_;} + + etl::handle get_selection_manager() { return selection_manager_; } + + Glib::RefPtr layer_tree_store() { return get_tree_model("layers"); } + + Glib::RefPtr layer_tree_store()const { return get_tree_model("layers"); } + + Glib::RefPtr children_tree_store() { return get_tree_model("children"); } + + Glib::RefPtr children_tree_store()const { return get_tree_model("children"); } + + Glib::RefPtr keyframe_tree_store() { return get_tree_model("keyframes"); } + + Glib::RefPtr keyframe_tree_store()const { return get_tree_model("keyframes"); } + + void set_time(synfig::Time t) { canvas_interface_->set_time(t); } + + synfig::Time get_time() { return canvas_interface_->get_time(); } + + etl::handle get_canvas()const { return canvas_interface_->get_canvas(); } + + etl::handle get_instance()const { return instance_; } + + etl::handle canvas_interface() { return canvas_interface_; } + + etl::handle canvas_interface()const { return canvas_interface_; } + + void add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamList ¶m_list, synfigapp::Action::Category category=synfigapp::Action::CATEGORY_ALL)const; + + //! Updates the title of the window + void update_title(); + + //! Closes this document + bool close_instance(); + + //! Closes this canvas view + bool close_view(); + + //! Stops the currently executing action + /*! \see get_cancel_status(), reset_cancel_status(), IsWorking */ + void stop() { cancel=true; } + + //! Returns the cancel status + /*! \see stop(), reset_cancel_status(), IsWorking */ + bool get_cancel_status()const { return cancel; } + + //! Resets the cancel status + /*! \see stop(), get_cancel_status(), IsWorking */ + void reset_cancel_status() { cancel=false; } + + void new_child_canvas(); + + //! Rebuilds layer_tree_store_ from the Canvas. Maintains selected items. + void rebuild_tables(); + + //! Builds layer_tree_store_ from the Canvas. Does not maintain selected items. + void build_tables(); + + //! Refreshes the data for the tables + void refresh_tables(); + + //void rebuild_layer_table(); + //void build_layer_table(); + //void refresh_layer_table(); + +// void rebuild_canvas_table(); +// void build_canvas_table(); +// void refresh_canvas_table(); + +// void rebuild_valuenode_table(); +// void build_valuenode_table(); +// void refresh_valuenode_table(); + + //! \writeme + void rebuild_ducks(); + + //bool add_to_ducks(synfigapp::ValueDesc value_desc, synfig::ParamDesc *param_desc=NULL); + + //! Starts "playing" the animation in real-time + void play(); + + //! Shows the tables (Layer/Children) + void show_tables(); + + //! Hides the tables (Layer/Children) + void hide_tables(); + + //! Toggles the tables + void toggle_tables(); + + //! Gets the table status + bool tables_are_visible(); + + //! Shows the time bar + void show_timebar(); + + //! Hides the time bar + void hide_timebar(); + + //t Enables or disables interaction with the timebar + void set_sensitive_timebar(bool sensitive); + + void time_zoom_in(); + void time_zoom_out(); + + void add_layer(synfig::String x); + + void show_keyframe_dialog(); + + void play_audio(float t); + void stop_audio(); + + void image_import(); + + void on_waypoint_clicked_canvasview(synfigapp::ValueDesc,std::set >, int button); + + void preview_option() {on_preview_option();} + + void present(); + + bool is_playing() { return is_playing_; } + + /* + -- ** -- S I G N A L T E R M I N A L S ------------------------------------- + */ + +private: + + void on_unselect_layers(); + + void on_input_device_changed(GdkDevice*); + + virtual void on_hide(); + + virtual bool on_focus_in_event(GdkEventFocus*); + virtual bool on_focus_out_event(GdkEventFocus*); + + //bool on_children_tree_event(GdkEvent *event); + + bool on_keyframe_tree_event(GdkEvent *event); + + //void on_children_edited_value(const Glib::ustring&path_string,synfig::ValueBase value); + + void on_dirty_preview(); + + bool on_children_user_click(int, Gtk::TreeRow, ChildrenTree::ColumnID); + + bool on_layer_user_click(int, Gtk::TreeRow, LayerTree::ColumnID); + +// void on_layer_toggle(const Glib::ustring& path_string, Gtk::TreeModelColumn column); + + void on_mode_changed(synfigapp::CanvasInterface::Mode mode); + +// void on_layer_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator); + + //void on_children_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator); + + void on_waypoint_changed(); + + void on_waypoint_delete(); + + void on_refresh_pressed(); + + void on_id_changed(); + + void on_time_changed(); + + /* + void on_layer_raise_pressed(); + void on_layer_lower_pressed(); + void on_layer_duplicate_pressed(); + void on_layer_delete_pressed(); + */ + + void on_keyframe_add_pressed(); + + void on_keyframe_duplicate_pressed(); + + void on_keyframe_remove_pressed(); + + void on_animate_button_pressed(); + + void on_keyframe_button_pressed(); + + void on_preview_option(); + void on_preview_create(const PreviewInfo &); + + void on_audio_option(); + void on_audio_file_change(const std::string &f); + void on_audio_offset_change(const synfig::Time &t); + + void on_audio_file_notify(); + void on_audio_offset_notify(); + + bool on_duck_changed(const synfig::Point &value,const synfigapp::ValueDesc& value_desc); + bool on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp::ValueDesc& value_desc); + + void on_layer_toggle(synfig::Layer::Handle); + + void on_edited_value(synfigapp::ValueDesc,synfig::ValueBase); + + void on_drop_drag_data_received(const Glib::RefPtr& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time); + + //void on_audio_play(); + bool on_audio_scrub(); + +protected: + bool close_instance_when_safe(); + bool on_delete_event(GdkEventAny* event); + + /* + -- ** -- S T A T I C P U B L I C M E T H O D S --------------------------- + */ + +public: + + static etl::handle create(etl::loose_handle instance,etl::handle canvas); + static std::list& get_pixel_sizes(); + +}; // END of class CanvasView + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.cpp new file mode 100644 index 0000000..ffbc218 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.cpp @@ -0,0 +1,95 @@ +/* === S Y N F I G ========================================================= */ +/*! \file cellrenderer_gradient.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include "cellrenderer_gradient.h" +#include "widget_gradient.h" +#include "app.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CellRenderer_Gradient::CellRenderer_Gradient(): + Glib::ObjectBase (typeid(CellRenderer_Gradient)), + Gtk::CellRendererText (), + property_gradient_(*this,"gradient",synfig::Gradient()) +{ + //CellRendererText::signal_edited().connect(sigc::mem_fun(*this,&studio::CellRenderer_Gradient::string_edited_)); +} + +CellRenderer_Gradient::~CellRenderer_Gradient() +{ +} + + +void +CellRenderer_Gradient::render_vfunc( + const Glib::RefPtr& window, + Gtk::Widget& /*widget*/, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& ca, + const Gdk::Rectangle& /*expose_area*/, + Gtk::CellRendererState /*flags*/) +{ + if(!window) + return; + render_gradient_to_window(window,ca,property_gradient_.get_value()); +} + + +Gtk::CellEditable* +CellRenderer_Gradient::start_editing_vfunc( + GdkEvent* /*event*/, + Gtk::Widget& /*widget*/, + const Glib::ustring& /*path*/, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + return 0; +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.h b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.h new file mode 100644 index 0000000..10b54c5 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_gradient.h @@ -0,0 +1,88 @@ +/* === S Y N F I G ========================================================= */ +/*! \file cellrenderer_gradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_CELLRENDERER_GRADIENT_H +#define __SYNFIG_STUDIO_CELLRENDERER_GRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +#include +#include + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace Gtk { class Entry; class Button; }; + +namespace studio { + +class CellRenderer_Gradient : public Gtk::CellRendererText +{ + sigc::signal signal_secondary_click_; + sigc::signal signal_edited_; + + Glib::Property property_gradient_; + +public: + sigc::signal &signal_edited() + {return signal_edited_; } + + Glib::PropertyProxy property_gradient() { return property_gradient_.get_proxy();} + + CellRenderer_Gradient(); + ~CellRenderer_Gradient(); + +protected: + + virtual void + render_vfunc( + const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& ca, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags); + + virtual Gtk::CellEditable* start_editing_vfunc(GdkEvent* event, + Gtk::Widget& widget, + const Glib::ustring& path, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags); + +}; // END of class CellRenderer_Gradient + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.cpp new file mode 100644 index 0000000..5567a35 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.cpp @@ -0,0 +1,133 @@ +/* === S Y N F I G ========================================================= */ +/*! \file cellrenderer_time.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include "cellrenderer_time.h" +#include "app.h" +#include "widget_time.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CellRenderer_Time::CellRenderer_Time(): + Glib::ObjectBase (typeid(CellRenderer_Time)), + Gtk::CellRendererText (), + property_time_(*this,"time",synfig::Time(0)), + property_fps_(*this,"fps", float(0)) +{ + CellRendererText::signal_edited().connect(sigc::mem_fun(*this,&studio::CellRenderer_Time::string_edited_)); +} + +CellRenderer_Time::~CellRenderer_Time() +{ + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("CellRenderer_Time::~CellRenderer_Time(): Deleted"); +} + +void +CellRenderer_Time::string_edited_(const Glib::ustring&path,const Glib::ustring&str) +{ + signal_edited_(path,Time((String)str,(Real)Time(property_fps_))); +} + +void +CellRenderer_Time::render_vfunc( + const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& ca, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags) +{ + if(!window) + return; + //int height = ca.get_height(); + + Gtk::StateType state = Gtk::STATE_INSENSITIVE; + if(property_editable()) + state = Gtk::STATE_NORMAL; + if((flags & Gtk::CELL_RENDERER_SELECTED) != 0) + state = (widget.has_focus()) ? Gtk::STATE_SELECTED : Gtk::STATE_ACTIVE; + + const Time time(property_time_); + const float fps((Real)Time(property_fps_)); + + property_text()=(Glib::ustring)time.get_string(fps,App::get_time_format()); + + CellRendererText::render_vfunc(window,widget,background_area,ca,expose_area,flags); +} + + +Gtk::CellEditable* +CellRenderer_Time::start_editing_vfunc( + GdkEvent* event, + Gtk::Widget& widget, + const Glib::ustring& path, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags) +{ + // If we aren't editable, then there is nothing to do + if(!property_editable()) + return 0; + + const Time time(property_time_); + const float fps((Real)Time(property_fps_)); + + property_text()=(Glib::ustring)time.get_string(fps,App::get_time_format()|Time::FORMAT_FULL); +#if 0 + Widget_Time* widget_time(manage(new Widget_Time)); + widget_time->set_fps(fps); + widget_time->set_value(time); + widget_time->signal_editing_done().connect(sigc::mem_fun(*this, &CellRenderer_Time::on_value_editing_done)); + return widget_time; +#else + return CellRendererText::start_editing_vfunc(event,widget,path,background_area,cell_area,flags); +#endif +} diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.h b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.h new file mode 100644 index 0000000..149f7d8 --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_time.h @@ -0,0 +1,94 @@ +/* === S Y N F I G ========================================================= */ +/*! \file cellrenderer_time.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_CELLRENDERER_TIME_H +#define __SYNFIG_STUDIO_CELLRENDERER_TIME_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +#include +#include + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace Gtk { class Entry; class Button; }; + +namespace studio { + +class CellRenderer_Time : public Gtk::CellRendererText +{ + sigc::signal signal_secondary_click_; + sigc::signal signal_edited_; + + Glib::Property property_time_; + Glib::Property property_fps_; + + void string_edited_(const Glib::ustring&,const Glib::ustring&); + + void on_value_editing_done(); + +public: + sigc::signal &signal_edited() + {return signal_edited_; } + + Glib::PropertyProxy property_time() { return property_time_.get_proxy();} + Glib::PropertyProxy property_fps() { return property_fps_.get_proxy();} + + CellRenderer_Time(); + ~CellRenderer_Time(); + +protected: + + virtual void + render_vfunc( + const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& ca, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags); + + virtual Gtk::CellEditable* start_editing_vfunc(GdkEvent* event, + Gtk::Widget& widget, + const Glib::ustring& path, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags); + +}; // END of class CellRenderer_Time + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_timetrack.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_timetrack.cpp new file mode 100644 index 0000000..e2ad77a --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/cellrenderer_timetrack.cpp @@ -0,0 +1,905 @@ +/* === S Y N F I G ========================================================= */ +/*! \file cellrenderer_timetrack.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package 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 +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "cellrenderer_timetrack.h" +#include +#include +#include +#include +#include "widget_value.h" +#include "app.h" +#include +#include +#include "widget_time.h" +#include "widget_timeslider.h" + +#include +#include "instance.h" + +#include "general.h" + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +static char stipple_xpm[] = { 2, 0 }; + +//mode for modifier keys +enum MODMODE +{ + NONE = 0, + SELECT_MASK = Gdk::CONTROL_MASK, + COPY_MASK = Gdk::SHIFT_MASK, + DELETE_MASK = Gdk::MOD1_MASK +}; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CellRenderer_TimeTrack::CellRenderer_TimeTrack(): + Glib::ObjectBase (typeid(CellRenderer_TimeTrack)), + Gtk::CellRenderer (), + adjustment_ (10,10,20,0,0,0), + + property_valuedesc_ (*this,"value_desc",synfigapp::ValueDesc()), + property_canvas_ (*this,"canvas",synfig::Canvas::Handle()), + property_adjustment_(*this,"adjustment",&adjustment_), + property_enable_timing_info_(*this,"enable-timing-info", false) +{ + dragging=false; + selection=false; +} + +CellRenderer_TimeTrack::~CellRenderer_TimeTrack() +{ + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("CellRenderer_TimeTrack::~CellRenderer_TimeTrack(): Deleted"); +} + +void +CellRenderer_TimeTrack::set_adjustment(Gtk::Adjustment &x) +{ + property_adjustment_=&x; +// x.signal_value_changed().connect(sigc::mem_fun(*this,&Gtk::Widget::queue_draw)); +} + +synfig::Canvas::Handle +CellRenderer_TimeTrack::get_canvas()const +{ + return const_cast(this)->property_canvas().get_value(); +} + +Gtk::Adjustment * +CellRenderer_TimeTrack::get_adjustment() +{ + return (Gtk::Adjustment*)property_adjustment_; +} + +const Gtk::Adjustment * +CellRenderer_TimeTrack::get_adjustment()const +{ + return (const Gtk::Adjustment*)property_adjustment_; +} + +bool +CellRenderer_TimeTrack::is_selected(const Waypoint& waypoint)const +{ + return selected==waypoint; +} + +const synfig::Time get_time_offset_from_vdesc(const synfigapp::ValueDesc &v) +{ +#ifdef ADJUST_WAYPOINTS_FOR_TIME_OFFSET + if(getenv("SYNFIG_SHOW_CANVAS_PARAM_WAYPOINTS") || + v.get_value_type() != synfig::ValueBase::TYPE_CANVAS) + return synfig::Time::zero(); + + synfig::Canvas::Handle canvasparam = v.get_value().get(Canvas::Handle()); + if(!canvasparam) + return synfig::Time::zero(); + + if (!v.parent_is_layer_param()) + return synfig::Time::zero(); + + synfig::Layer::Handle layer = v.get_layer(); + + if (layer->get_name()!="PasteCanvas") + return synfig::Time::zero(); + + return layer->get_param("time_offset").get(Time()); +#else // ADJUST_WAYPOINTS_FOR_TIME_OFFSET + return synfig::Time::zero(); +#endif +} + +//kind of a hack... pointer is ugly +const synfig::Node::time_set *get_times_from_vdesc(const synfigapp::ValueDesc &v) +{ + if(!getenv("SYNFIG_SHOW_CANVAS_PARAM_WAYPOINTS") && + v.get_value_type() == synfig::ValueBase::TYPE_CANVAS) + { + synfig::Canvas::Handle canvasparam = v.get_value().get(Canvas::Handle()); + + if(canvasparam) + return &canvasparam->get_times(); + } + + ValueNode *base_value = v.get_value_node().get(); + + ValueNode_DynamicList *parent_value_node = + v.parent_is_value_node() ? + dynamic_cast(v.get_parent_value_node().get()) : + 0; + + //we want a dynamic list entry to override the normal... + if(parent_value_node) + { + return &parent_value_node->list[v.get_index()].get_times(); + }else if(base_value) //don't render stuff if it's just animated... + { + return &base_value->get_times(); + } + return 0; +} + +bool get_closest_time(const synfig::Node::time_set &tset, const Time &t, const Time &range, Time &out) +{ + Node::time_set::const_iterator i,j,end = tset.end(); + + // stop the crash mentioned in bug #1689282 + // doesn't solve the underlying problem though, I don't think + if (tset.size() == 0) + { + synfig::error(__FILE__":%d: tset.size() == 0",__LINE__); + return false; + } + + //TODO add in RangeGet so it's not so damn hard to click on points + + i = tset.upper_bound(t); //where t is the lower bound, t < [first,i) + j = i; --j; + + double dist = Time::end(); + double closest = 0; + + if(i != end) + { + closest = i->get_time(); + dist = abs(i->get_time() - t); + } + + if(j != end && (abs(j->get_time() - t) < dist) ) + { + closest = j->get_time(); + dist = abs(j->get_time() - t); + } + + if( dist <= range/2 ) + { + out = closest; + return true; + } + + return false; +} + +void +CellRenderer_TimeTrack::render_vfunc( + const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& area_, + const Gdk::Rectangle& /*expose_area*/, + Gtk::CellRendererState /*flags*/) +{ + if(!window) + return; + + Glib::RefPtr gc(Gdk::GC::create(window)); + Glib::RefPtr inactive_gc(Gdk::GC::create(window)); + Gtk::Adjustment *adjustment=get_adjustment(); + // Gtk::StateType state = Gtk::STATE_ACTIVE; + // Gtk::ShadowType shadow; + + Gdk::Color + curr_time_color("#0000ff"), + inactive_color("#000000"), + keyframe_color("#a07f7f"); + Gdk::Color activepoint_color[2]; + + activepoint_color[0]=Gdk::Color("#ff0000"); + activepoint_color[1]=Gdk::Color("#00ff00"); + + inactive_gc->set_rgb_fg_color(inactive_color); + inactive_gc->set_stipple(Gdk::Bitmap::create(stipple_xpm,2,2)); + inactive_gc->set_fill(Gdk::STIPPLED); + + synfig::Canvas::Handle canvas(property_canvas().get_value()); + + synfigapp::ValueDesc value_desc = property_value_desc().get_value(); + synfig::ValueNode *base_value = value_desc.get_value_node().get(); + // synfig::ValueNode_Animated *value_node=dynamic_cast(base_value); + + synfig::ValueNode_DynamicList *parent_value_node(0); + if(property_value_desc().get_value().parent_is_value_node()) + parent_value_node=dynamic_cast(property_value_desc().get_value().get_parent_value_node().get()); + + // If the canvas is defined, then load up the keyframes + if(canvas) + { + const synfig::KeyframeList& keyframe_list(canvas->keyframe_list()); + synfig::KeyframeList::const_iterator iter; + + for(iter=keyframe_list.begin();iter!=keyframe_list.end();++iter) + { + if(!iter->get_time().is_valid()) + continue; + + const int x((int)((float)area_.get_width()/(adjustment->get_upper()-adjustment->get_lower())*(iter->get_time()-adjustment->get_lower()))); + if(iter->get_time()>=adjustment->get_lower() && iter->get_time()get_upper()) + { + gc->set_rgb_fg_color(keyframe_color); + window->draw_rectangle(gc, true, area_.get_x()+x, area_.get_y(), 1, area_.get_height()+1); + } + } + } + + //render all the time points that exist + { + const synfig::Node::time_set *tset = get_times_from_vdesc(value_desc); + + if(tset) + { + const synfig::Time time_offset = get_time_offset_from_vdesc(value_desc); + synfig::Node::time_set::const_iterator i = tset->begin(), end = tset->end(); + + float lower = adjustment->get_lower(), + upper = adjustment->get_upper(); + + Glib::RefPtr gc = Gdk::GC::create(widget.get_window()); + + Gdk::Rectangle area(area_); + gc->set_clip_rectangle(area); + gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER); + + bool valselected = sel_value.get_value_node() == base_value && !sel_times.empty(); + + float cfps = get_canvas()->rend_desc().get_frame_rate(); + + vector