Adobe 65061456 Programming Guide - Page 6

Overview, What is a plug-in?, A brief history of the Adobe Illustrator API

Page 6 highlights

1 Overview This chapter introduces the Adobe® Illustrator® plug-in architecture. It shows how plug-ins interact with Illustrator and gives an idea of the power of plug-ins. What is a plug-in? A plug-in is a library that extends or changes the behavior of Illustrator. On Windows, a plug-in is built as a DLL (dynamic-link library). On Mac OS, a plug-in is built as a bundle that contains a shared library. The plug-in architecture in Illustrator is very powerful. Plug-ins have access to Illustrator's elegant vector, text, and raster engines, as well as Illustrator's user interface. The API is a fundamental part of the application; in fact, most of Illustrator itself is implemented as plug-ins. You can create plug-ins that add new tools to the drawing, shading, and raster tools already in Illustrator. Plug-ins can turn Illustrator into a powerful CAD, cartographic, or other custom design application. Users can add or remove plug-ins to quickly and easily customize Illustrator to their needs. The Illustrator API offers several benefits to plug-in developers. Because Illustrator handles large application tasks like printing and saving files, you can concentrate on the implementation of your plug-in's unique features. Plug-ins do not need to support undo or window updating; these are handled by the API and are invisible to the plug-in. This translates into shorter development cycles. A brief history of the Adobe Illustrator API The Illustrator API first appeared in version 5.0. It supported one type of plug-in, filters. This was extended in Adobe Illustrator 5.5 to include file formats. The 5.x APIs displayed characteristics of many early API design efforts: the interface was monolithic, incorporating enough function to achieve its intended purpose, but not allowing for future expansion. A single callback function table was provided, with no means to extend or update it. Platform abstraction was minimal, and interaction with the user was restricted to modal. The Illustrator 6.0 API began addressing these limitations. A modular and extensible approach was used to export the application's functionality. Callback functions were organized into suites that could be easily replaced or extended. The plug-in types were abstracted and extended to include tools, floating windows, menu items, events, and combinations of these types. The first steps towards platform abstraction were taken. The Illustrator 7.0 API refined prior efforts. The API was extended to be truly cross-platform (the Windows version of Adobe Illustrator jumped from version 4.2 directly to 7.0), including a complete set of user-interface suites. The plug-in management core was generalized for not only cross-platform, but also cross-product use. More of Illustrator's core functionality was implemented through plug-ins, allowing the application's behavior to change without modifying the application itself. The most significant change in the Illustrator 8.0 API was the switch from fixed numbers to floating-point numbers. All suites that used fixed parameters were updated to use floating-point parameters; in some cases, Adobe changed function names to reflect this. The Illustrator 8.0 API also included more than a dozen new suites, many corresponding to new user features like plug-in groups, cursor snapping, and actions. 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

6
1
Overview
This chapter introduces the Adobe® Illustrator® plug-in architecture. It shows how plug-ins interact with
Illustrator and gives an idea of the power of plug-ins.
What is a plug-in?
A plug-in is a library that extends or changes the behavior of Illustrator. On Windows, a plug-in is built as a
DLL (dynamic-link library). On Mac OS, a plug-in is built as a bundle that contains a shared library.
The plug-in architecture in Illustrator is very powerful. Plug-ins have access to Illustrator’s elegant vector,
text, and raster engines, as well as Illustrator’s user interface. The API is a fundamental part of the
application; in fact, most of Illustrator itself is implemented as plug-ins.
You can create plug-ins that add new tools to the drawing, shading, and raster tools already in Illustrator.
Plug-ins can turn Illustrator into a powerful CAD, cartographic, or other custom design application. Users
can add or remove plug-ins to quickly and easily customize Illustrator to their needs.
The Illustrator API offers several benefits to plug-in developers. Because Illustrator handles large
application tasks like printing and saving files, you can concentrate on the implementation of your
plug-in’s unique features. Plug-ins do not need to support undo or window updating; these are handled by
the API and are invisible to the plug-in. This translates into shorter development cycles.
A brief history of the Adobe Illustrator API
The Illustrator API first appeared in version 5.0. It supported one type of plug-in, filters. This was extended
in Adobe Illustrator 5.5 to include file formats. The 5.x APIs displayed characteristics of many early API
design efforts: the interface was monolithic, incorporating enough function to achieve its intended
purpose, but not allowing for future expansion. A single callback function table was provided, with no
means to extend or update it. Platform abstraction was minimal, and interaction with the user was
restricted to modal.
The Illustrator 6.0 API began addressing these limitations. A modular and extensible approach was used to
export the application’s functionality. Callback functions were organized into
suites
that could be easily
replaced or extended. The plug-in types were abstracted and extended to include tools, floating windows,
menu items, events, and combinations of these types. The first steps towards platform abstraction were
taken.
The Illustrator 7.0 API refined prior efforts. The API was extended to be truly cross-platform (the Windows
version of Adobe Illustrator jumped from version 4.2 directly to 7.0), including a complete set of
user-interface suites. The plug-in management core was generalized for not only cross-platform, but also
cross-product use. More of Illustrator’s core functionality was implemented through plug-ins, allowing the
application’s behavior to change without modifying the application itself.
The most significant change in the Illustrator 8.0 API was the switch from fixed numbers to floating-point
numbers. All suites that used fixed parameters were updated to use floating-point parameters; in some
cases, Adobe changed function names to reflect this. The Illustrator 8.0 API also included more than a
dozen new suites, many corresponding to new user features like plug-in groups, cursor snapping, and
actions.