The InDesign CC 2014 SDK will be available on the InDesign Family SDK Access Program from June 20.
If you are new to InDesign development, the best place to get started is ‘Getting Started with InDesign Development’, which is a guide included in the SDK.
As for this latest release, the following are the most significant changes in the SDK.
- Xcode updated to Xcode 5.0.2.
- Visual Studio updated to Visual Studio 2012 SP4.
- PMString::GrabCString removed.
- Windows HiDPI support added.
- Boost version updated to 1.54.
- IPMStream updated to support files larger than 4GB.
- CSXS events with global scope are replaced with VulcanMessage.
The porting guide, included in the SDK, contains more in-depth information on each of these changes, but I’ve given summaries below.
- For Windows development, Windows 7 SP1 or Windows 8 are minimum requirements.
- For Mac development, Mac OS 10.8.4 or later is now required (Xcode 5.0.2 requires this).
Visual Studio version is now Visual Studio 2012 SP4
To update a Visual Studio project, the simplest method is to open the project in Visual Studio 2012 and use the prompt to update the project.
Alternatively you can modify the project file in a text editor by changing the PlatformToolset version to v110. Details are given in the porting guide.
Xcode version is now Xcode 5.0.2
Updating Xcode projects
When building your projects with Xcode 5, one issue you will quickly run into is PluginPList.plc giving compilation issues:
Unable to run command 'CopyPlistFile Info.plist' this target might include its own product.
In case you don’t know, PluginPList.plc is the template for generating plugin plist files.
To fix this, move the plc file from the Sources group section into the Resources group in the Xcode project. You can do this in the Xcode IDE by dragging PluginPList.plc from Sources to Resources. The effect of this change is that the .plc file is included in the “Copy Bundle Resources Phase” instead of the “Compile Sources Phase”.
Boost version change
InDesign now uses Boost 1.54, with some modifications. One side effect of this change is that you may need to update your plug-in projects to link against boost_system.
Removal of GrabCString from PMString
PMString::GrabCString has been removed. You should use GetCString or GetPlatformString().c_str() instead.
Windows HiDPI support
InDesign now supports HiDPI on Windows. If you added support for HiDPI on Mac in the 9.0 release of InDesign, you will now need to make similar changes for Windows.
If you use widgets with custom drawing, you should test how they look on Windows at 2x and 1.5x to see if changes are required. In most cases, the drawing that you are doing for 1x should work on 1.5x and 2x. You might sometimes need to do some one pixel adjustments specific to 1.5x or 2x. Standard widgets work fine without any changes.
InDesign supports the following scaling factors:
- System Scaling < 1.24 => InDesign Scaling = 1x
- System Scaling >= 1.25 and <= 1.74 => InDesign Scaling = 1.5x
- System Scaling >= 1.75 => InDesign Scaling = 2x
CSXS events with global scope are no longer supported
In InDesign 9.0 we added an API for dispatching CSXS events. This API included the ability to dispatch events with global scope so they could be sent between applications.
In InDesign 10.0, CSXS events with global scope are no longer supported and Vulcan Messages should be used instead. A new API has been added to send/receive VulcanMessages. The API exists at: /source/public/interfaces/ui/ICSXSVulcanMessageHandler.h.