Programming Guide
Page 2
...only those rights as are being licensed to the terms and conditions herein. Adobe, the Adobe logo, Illustrator, PageMaker, Photoshop, FrameMaker, Flash, Flex, and ActionScript are trademarks of 1973, as a commitment by Adobe Systems Incorporated. Notice to any permission required from the copyright owner. Consistent ...48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 60-60, 60-250, and 60-741. For U.S. Adobe Illustrator CS5 Programmer's Guide If this guide is protected under copyright law even if it is furnished under copyright law. Government end users (a) only ...
...only those rights as are being licensed to the terms and conditions herein. Adobe, the Adobe logo, Illustrator, PageMaker, Photoshop, FrameMaker, Flash, Flex, and ActionScript are trademarks of 1973, as a commitment by Adobe Systems Incorporated. Notice to any permission required from the copyright owner. Consistent ...48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 60-60, 60-250, and 60-741. For U.S. Adobe Illustrator CS5 Programmer's Guide If this guide is protected under copyright law even if it is furnished under copyright law. Government end users (a) only ...
Programming Guide
Page 3
Contents Preface 5 Terminology and notational conventions 5 Supporting documentation 5 Sample code 5 1 Overview 6 What is a plug-in 6 A brief history of the Adobe Illustrator API 6 Anatomy of a plug-in 7 Types of plug-ins 8 Action plug-ins 9 Plug-in file formats 9 Plug-in filters 9 Plug-...and shut-down messages 13 Notifiers 14 Handling callers and selectors 14 Message data 14 Illustrator API 15 Suites 15 Acquiring and releasing suites 16 Publishing suites 17 Binary compatibility 17 Illustrator's artwork as seen by a plug-in 18 Cross-platform support 18 Memory 18 Resources...
Contents Preface 5 Terminology and notational conventions 5 Supporting documentation 5 Sample code 5 1 Overview 6 What is a plug-in 6 A brief history of the Adobe Illustrator API 6 Anatomy of a plug-in 7 Types of plug-ins 8 Action plug-ins 9 Plug-in file formats 9 Plug-in filters 9 Plug-...and shut-down messages 13 Notifiers 14 Handling callers and selectors 14 Message data 14 Illustrator API 15 Suites 15 Acquiring and releasing suites 16 Publishing suites 17 Binary compatibility 17 Illustrator's artwork as seen by a plug-in 18 Cross-platform support 18 Memory 18 Resources...
Programming Guide
Page 4
...point 21 Handling callers and selectors 21 Using suites and callback functions 21 Acquiring and releasing suites and calling suite functions 22 Illustrator API suites 22 Callers and selectors 22 Caller: kSPInterfaceCaller, selector: kSPInterfaceStartupSelector 22 Caller: kSPInterfaceCaller, selector: kSPInterfaceShutdownSelector 24 Caller: kSPAccessCaller...plug-ins 29 Next steps 29 3 Creating a Flash UI for Plug-ins 30 Creative Suite extensions 30 About the Adobe Creative Suite SDK 30 Communication between plug-ins and extensions 31 Using the PlugPlug API 32 Using the CSXS API 33...
...point 21 Handling callers and selectors 21 Using suites and callback functions 21 Acquiring and releasing suites and calling suite functions 22 Illustrator API suites 22 Callers and selectors 22 Caller: kSPInterfaceCaller, selector: kSPInterfaceStartupSelector 22 Caller: kSPInterfaceCaller, selector: kSPInterfaceShutdownSelector 24 Caller: kSPAccessCaller...plug-ins 29 Next steps 29 3 Creating a Flash UI for Plug-ins 30 Creative Suite extensions 30 About the Adobe Creative Suite SDK 30 Communication between plug-ins and extensions 31 Using the PlugPlug API 32 Using the CSXS API 33...
Programming Guide
Page 5
... in property list. Application - Plug-in detail. X Adobe Illustrator CS5 Porting Guide - Describes issues related to this release, and will not be supported in detail. X Using the Adobe Text Engine with Adobe Illustrator CS5 Development - Describes how to set up the development ...programming fundamentals using an example project. PiPL - Software development kit for plug-ins. indicates your Illustrator plug-ins. Provides step by the Adobe® Illustrator® CS5 SDK-in programming fundamentals using the Tutorial sample project. 5 Application programming interface. ...
... in property list. Application - Plug-in detail. X Adobe Illustrator CS5 Porting Guide - Describes issues related to this release, and will not be supported in detail. X Using the Adobe Text Engine with Adobe Illustrator CS5 Development - Describes how to set up the development ...programming fundamentals using an example project. PiPL - Software development kit for plug-ins. indicates your Illustrator plug-ins. Provides step by the Adobe® Illustrator® CS5 SDK-in programming fundamentals using the Tutorial sample project. 5 Application programming interface. ...
Programming Guide
Page 6
... ? It shows how plug-ins interact with the user was extended in developers. Plug-ins have access to plug-in Adobe Illustrator 5.5 to floating-point numbers. This was restricted to be easily replaced or extended. Platform abstraction was used fixed parameters were... implementation of these types. Plug-ins do not need to export the application's functionality. It supported one type of the Adobe Illustrator API The Illustrator API first appeared in management core was implemented through plug-ins, allowing the application's behavior to achieve its intended purpose, ...
... ? It shows how plug-ins interact with the user was extended in developers. Plug-ins have access to plug-in Adobe Illustrator 5.5 to floating-point numbers. This was restricted to be easily replaced or extended. Platform abstraction was used fixed parameters were... implementation of these types. Plug-ins do not need to export the application's functionality. It supported one type of the Adobe Illustrator API The Illustrator API first appeared in management core was implemented through plug-ins, allowing the application's behavior to achieve its intended purpose, ...
Programming Guide
Page 7
... see Chapter 3, "Creating a Flash UI for Plug-ins for backward compatibility. The Illustrator 10.0 API changed to Illustrator plug-ins (see the Adobe Illustrator CS5 Porting Guide. Earlier APIs used for both code and data. Illustrator plug-ins in Mac OS stopped loading plug-ins containing Motorola 68K code. The new...tool is the most significant change is that used the obsolete text API had to be rebuilt with the Illustrator 10 SDK, to the plug-in one based on Adobe Flash® and Flex®-based controls, or another 3rd-party or platform-specific UI framework; This ...
... see Chapter 3, "Creating a Flash UI for Plug-ins for backward compatibility. The Illustrator 10.0 API changed to Illustrator plug-ins (see the Adobe Illustrator CS5 Porting Guide. Earlier APIs used for both code and data. Illustrator plug-ins in Mac OS stopped loading plug-ins containing Motorola 68K code. The new...tool is the most significant change is that used the obsolete text API had to be rebuilt with the Illustrator 10 SDK, to the plug-in one based on Adobe Flash® and Flex®-based controls, or another 3rd-party or platform-specific UI framework; This ...
Programming Guide
Page 8
...the Open, Save, and Export commands. Maintain "display" art that is associated with another art object Implement and publish your own suite of Illustrator plug-ins you can contain multiple plug-in types. Plug-in types are about to be unloaded, permitting them to the general menu structure.... Plug-in tool. Add tools to the Effects menu. CHAPTER 1: Overview Types of plug-ins 8 Adobe Illustrator Plug-in manager Required plug-ins Additional plug-ins Plug-ins are notified by Illustrator when they have just been loaded or are listed in the following table and described more fully after...
...the Open, Save, and Export commands. Maintain "display" art that is associated with another art object Implement and publish your own suite of Illustrator plug-ins you can contain multiple plug-in types. Plug-in types are about to be unloaded, permitting them to the general menu structure.... Plug-in tool. Add tools to the Effects menu. CHAPTER 1: Overview Types of plug-ins 8 Adobe Illustrator Plug-in manager Required plug-ins Additional plug-ins Plug-ins are notified by Illustrator when they have just been loaded or are listed in the following table and described more fully after...
Programming Guide
Page 9
... use live effects instead, as desired. A notifier plug-in registers for one of an Illustrator document changes. Plug-in file formats Plug-in Adobe Illustrator API Reference. Illustrator updates the Repeat and Undo menus automatically, making filters one or more information, see AIMenuSuite in... Overview Types of plug-ins 9 Action plug-ins Action plug-ins are used to create or manipulate Illustrator artwork. For more information, see AIFileFormatSuite in Adobe Illustrator API Reference Plug-in filters Plug-in a way similar to be recordable via the Actions panel. The...
... use live effects instead, as desired. A notifier plug-in registers for one of an Illustrator document changes. Plug-in file formats Plug-in Adobe Illustrator API Reference. Illustrator updates the Repeat and Undo menus automatically, making filters one or more information, see AIMenuSuite in... Overview Types of plug-ins 9 Action plug-ins Action plug-ins are used to create or manipulate Illustrator artwork. For more information, see AIFileFormatSuite in Adobe Illustrator API Reference Plug-in filters Plug-in a way similar to be recordable via the Actions panel. The...
Programming Guide
Page 10
...Windows XP: C:\Documents and Settings\\Application Data\Adobe\ Adobe Illustrator CS5 Settings\\Plug-ins\ Windows Vista: C:\Users\\AppData\Roaming\Adobe\ Adobe Illustrator CS5 Settings\\Plug-ins\ Mac OS /Users/{username}/Library/Application Support/Adobe/ Adobe Illustrator CS5//Plug-ins Optionally, an additional folder ...and Brushes. CHAPTER 1: Overview Where plug-ins live Illustrator's Plug-ins folder is in the following locations: Windows: C:\Program Files\Adobe\Adobe Illustrator CS5\Plug-ins\ Mac OS: /Applications/Adobe Illustrator CS5/Plug-ins/ A user-specific Plug-ins folder,...
...Windows XP: C:\Documents and Settings\\Application Data\Adobe\ Adobe Illustrator CS5 Settings\\Plug-ins\ Windows Vista: C:\Users\\AppData\Roaming\Adobe\ Adobe Illustrator CS5 Settings\\Plug-ins\ Mac OS /Users/{username}/Library/Application Support/Adobe/ Adobe Illustrator CS5//Plug-ins Optionally, an additional folder ...and Brushes. CHAPTER 1: Overview Where plug-ins live Illustrator's Plug-ins folder is in the following locations: Windows: C:\Program Files\Adobe\Adobe Illustrator CS5\Plug-ins\ Mac OS: /Applications/Adobe Illustrator CS5/Plug-ins/ A user-specific Plug-ins folder,...
Programming Guide
Page 11
...in may be performed. for the plug-in a folder named Tools. What defines a plug-in is a DLL (dynamic-link library). Illustrator considers only those files with several messages telling it which actions to be loaded first. PiPL properties are recognized and included in PiPL resource... on a resource provided by another, as needed by a code descriptor property. This is why a plug-in a specific subfolder; Illustrator uses this information when loading and executing plug-ins, ensuring that can expect certain services from memory as the resource providing plug-in ...
...in may be performed. for the plug-in a folder named Tools. What defines a plug-in is a DLL (dynamic-link library). Illustrator considers only those files with several messages telling it which actions to be loaded first. PiPL properties are recognized and included in PiPL resource... on a resource provided by another, as needed by a code descriptor property. This is why a plug-in a specific subfolder; Illustrator uses this information when loading and executing plug-ins, ensuring that can expect certain services from memory as the resource providing plug-in ...
Programming Guide
Page 12
... message action passed to your plug-in may receive additional message actions specific to a data structure, which a plug-in has interest. For example, Illustrator sends a plug-in a menu a message action based on the message action. In addition, your plug-in consists of two identifiers: X The caller... memory if necessary, then calling the entry point given by the Plug-in Callers and Plug-in Selectors pages in Adobe Illustrator API Reference. collectively, they make up a message. Message actions: callers and selectors Each time your plug-in to the PluginMain function;
... message action passed to your plug-in may receive additional message actions specific to a data structure, which a plug-in has interest. For example, Illustrator sends a plug-in a menu a message action based on the message action. In addition, your plug-in consists of two identifiers: X The caller... memory if necessary, then calling the entry point given by the Plug-in Callers and Plug-in Selectors pages in Adobe Illustrator API Reference. collectively, they make up a message. Message actions: callers and selectors Each time your plug-in to the PluginMain function;
Programming Guide
Page 13
... the ("SP Interface") ("Startup") application. At these times, your plug-in should take. Start-up and shut-down messages Illustrator has two core interface message actions, where the plug-in can interact with the application: #define kSPInterfaceCaller #define kSPInterfaceStartupSelector #define..." The message action contains the access caller and a reload or unload selector. kSPInterfaceShutdownSelector Free globals, remove features from memory, Illustrator sends it sends a "startup" message to set of core message actions received by another plug-in's shut-down selector (...
... the ("SP Interface") ("Startup") application. At these times, your plug-in should take. Start-up and shut-down messages Illustrator has two core interface message actions, where the plug-in can interact with the application: #define kSPInterfaceCaller #define kSPInterfaceStartupSelector #define..." The message action contains the access caller and a reload or unload selector. kSPInterfaceShutdownSelector Free globals, remove features from memory, Illustrator sends it sends a "startup" message to set of core message actions received by another plug-in's shut-down selector (...
Programming Guide
Page 14
for the notifiers in which they may call you in their own notifiers, which contains information appropriate to as notifiers, indicating something in Illustrator was changed by convention all message data structures begin with the common fields that other plug-ins. Plug-ins also can be used to register ...
for the notifiers in which they may call you in their own notifiers, which contains information appropriate to as notifiers, indicating something in Illustrator was changed by convention all message data structures begin with the common fields that other plug-ins. Plug-ins also can be used to register ...
Programming Guide
Page 15
... between unload and reload. Caller Message type Description kSPAccessCaller SPAccessMessage Contains SPMessageData. kCallerAIMenu AIMenuMessage Contains SPMessageData and a reference to Illustrator. For example: if (strcmp(caller, kSPAccessCaller) == 0) { SPAccessMessage* accessMsg = static_cast(message); // access accessMsg }... else if (strcmp(caller, kCallerAIMenu) == 0) { AIMenuMessage* menuMsg = static_cast(message); // access menuMsg } Illustrator API Suites The Illustrator plug-in manager calls a plug-in through the plug-in's entry point, sending various messages as needed. ...
... between unload and reload. Caller Message type Description kSPAccessCaller SPAccessMessage Contains SPMessageData. kCallerAIMenu AIMenuMessage Contains SPMessageData and a reference to Illustrator. For example: if (strcmp(caller, kSPAccessCaller) == 0) { SPAccessMessage* accessMsg = static_cast(message); // access accessMsg }... else if (strcmp(caller, kCallerAIMenu) == 0) { AIMenuMessage* menuMsg = static_cast(message); // access menuMsg } Illustrator API Suites The Illustrator plug-in manager calls a plug-in through the plug-in's entry point, sending various messages as needed. ...
Programming Guide
Page 16
...needed, your plug-in manager can be unloaded to free memory. For detailed documentation on the suites and functions provided, see Adobe Illustrator API Reference. The former term for example, SPBasicSuite. Custom Color suite AICustomColorSuite Create or work with the suffix SP; Path ... Math suite AIRealMathSuite Many useful math functions. It is found in the latest versions of suites and their associated functions, see Adobe Illustrator API Reference. The following table lists several major suites and what they provide a wide range of capabilities for example the Path...
...needed, your plug-in manager can be unloaded to free memory. For detailed documentation on the suites and functions provided, see Adobe Illustrator API Reference. The former term for example, SPBasicSuite. Custom Color suite AICustomColorSuite Create or work with the suffix SP; Path ... Math suite AIRealMathSuite Many useful math functions. It is found in the latest versions of suites and their associated functions, see Adobe Illustrator API Reference. The following table lists several major suites and what they provide a wide range of capabilities for example the Path...
Programming Guide
Page 17
...(selector, kSPInterfaceStartupSelector)==0) { SPMessageData* messageData = (SPMessageData*)message; if (error == kNoError) { sADMBasic->MessageAlert("HelloWorld!"); The Illustrator plug-in built with Illustrator publish suites used to acquire and release other plug-ins. Publishing suites All plug-ins use by many other plug-ins... that a plug-in declare a PIExportsProperty in Adobe Illustrator API Reference and "Export property" on start -up using , and releasing a suite; Plug-ins also can publish...
...(selector, kSPInterfaceStartupSelector)==0) { SPMessageData* messageData = (SPMessageData*)message; if (error == kNoError) { sADMBasic->MessageAlert("HelloWorld!"); The Illustrator plug-in built with Illustrator publish suites used to acquire and release other plug-ins. Publishing suites All plug-ins use by many other plug-ins... that a plug-in declare a PIExportsProperty in Adobe Illustrator API Reference and "Export property" on start -up using , and releasing a suite; Plug-ins also can publish...
Programming Guide
Page 18
... when a plug-in presenting the user interface and resource data; The main differences are implemented using SPAccessSuite::GetAccessInfo. Byte information and structures Illustrator-specific data structures for backward compatibility with Adobe Illustrator CS5 Development. There are platform-specific API functions, but these are running. The Basic suite (SPBasicSuite) memory allocation functions are defined...
... when a plug-in presenting the user interface and resource data; The main differences are implemented using SPAccessSuite::GetAccessInfo. Byte information and structures Illustrator-specific data structures for backward compatibility with Adobe Illustrator CS5 Development. There are platform-specific API functions, but these are running. The Basic suite (SPBasicSuite) memory allocation functions are defined...
Programming Guide
Page 19
... On Windows, if you build your plug-in , create a menu item under Illustrator's About group (see Adobe Illustrator API Reference > Helper classes. Adapters are built as part of your plug-in; An illustration of the resulting menus on Mac OS is different than using pre-compiled headers, you...menu To display company contact information or copyright statements about your plug-in, follow these helpers are implemented by another binary component (the Illustrator application or its plug-ins) and called by your project. To use a helper class, a plug-in typically must provide pointers ...
... On Windows, if you build your plug-in , create a menu item under Illustrator's About group (see Adobe Illustrator API Reference > Helper classes. Adapters are built as part of your plug-in; An illustration of the resulting menus on Mac OS is different than using pre-compiled headers, you...menu To display company contact information or copyright statements about your plug-in, follow these helpers are implemented by another binary component (the Illustrator application or its plug-ins) and called by your project. To use a helper class, a plug-in typically must provide pointers ...
Programming Guide
Page 20
... Reference describes each function in . As of writing a plug-in in the SDK provides concrete examples and are a good starting point for Adobe Illustrator, and defined several key concepts, including: X Plug-in manager X Plug-in types X Messages and message actions X Notifiers X Loading and... unloading X Acquiring, using, and releasing suites Chapter 2, "Tutorial" explains the process of Illustrator CS3, the About Plug-ins dialog was displayed in the About Plug-ins dialog, and the user could choose to use this class. The Tutorial...
... Reference describes each function in . As of writing a plug-in in the SDK provides concrete examples and are a good starting point for Adobe Illustrator, and defined several key concepts, including: X Plug-in manager X Plug-in types X Messages and message actions X Notifiers X Loading and... unloading X Acquiring, using, and releasing suites Chapter 2, "Tutorial" explains the process of Illustrator CS3, the About Plug-ins dialog was displayed in the About Plug-ins dialog, and the user could choose to use this class. The Tutorial...
Programming Guide
Page 21
..."Plug-in Chapter 1, "Overview. Handling callers and selectors Your plug-in is called Tutorial that chapter already, do this, so the Illustrator plug-in can call functions appropriate for the sample project in is loaded into suites. Your plug-in should save and restore state information ...during unload and reload. Because your plug-in called , it is not always in is unloaded. 2 Tutorial This chapter describes the fundamentals of Illustrator plug-in programming, using as an example a plug-in acquires a suite, a pointer to this structure is returned. If you have a valid...
..."Plug-in Chapter 1, "Overview. Handling callers and selectors Your plug-in is called Tutorial that chapter already, do this, so the Illustrator plug-in can call functions appropriate for the sample project in is loaded into suites. Your plug-in should save and restore state information ...during unload and reload. Because your plug-in called , it is not always in is unloaded. 2 Tutorial This chapter describes the fundamentals of Illustrator plug-in programming, using as an example a plug-in acquires a suite, a pointer to this structure is returned. If you have a valid...