![]() | InDesign SDK 20.5 |
#include <ISpreadFieldOrder.h>

Public Types | |
| enum | { kDefaultIID = IID_ISPREADFIELDORDER } |
| typedef K2Vector< UID > | TabOrder |
Public Member Functions | |
| virtual TabOrder | GetTabOrder (UID inPage)=0 |
| virtual void | SetTabOrder (UID inPage, const TabOrder &inPageItemList)=0 |
| virtual void | FieldWasAddedToHierarchy (const UID &inPageItem)=0 |
| virtual void | FieldWasAddedToHierarchy (UID inPageUID, const UID &inPageItem)=0 |
| virtual void | FieldWillBeRemovedFromHierarchy (const UID &inPageItem)=0 |
Public Member Functions inherited from IPMUnknown | |
| virtual IPMUnknown * | QueryInterface (PMIID interfaceID) const =0 |
| virtual void | AddRef () const =0 |
| virtual void | Release () const =0 |
This class tracks the tab order for form fields... These orderings are written to generated PDF files.
A tricky issue:
What about the order for items that appear on multiple pages? (such as items on master pages and items that span pages)
Ideally, such items would have an ordering for each page that they appear on. Therefore we track not only the pageitem but the spread and page for each potential instance of the item on a page.
For tab order, we track every spread with form fields, and every page within those spreads that contain form fields.
But I think for a first attempt at all this, I'm not going to worry about master pages and multipage spanning form fields.
This means that for now,
The master page items will always be ordered before the normal page items (but master page items can be ordered among the other master page items). Multipage spanning page items should have an order on each page.
I should be able to support any ordering of master page items, multipage spanning page items and normal page items later on without changing the file format.
Though this level of control might not be needed...
| pure virtual |
Called when a field is added to a hierarchy in a document (really when it is added to a spread hierarchy, but it is smart enough to ignore the cases where its not in a spread).
Takes care of entering inPageItem (if it's a form field) into the Tab Order
| inPageItem | Page item being added to hierarchy |
| pure virtual |
Called when a field is added to a hierarchy in a document (really when it is added to a spread hierarchy, but it is smart enough to ignore the cases where its not in a spread). Used when page uid is already known, so that page doesn't have to be looked up.
Takes care of entering inPageItem (if it's a form field) into the Tab Order
| inPageUID | Page of inPageItem being added to hierarchy |
| inPageItem | Page item being added to hierarchy |
| pure virtual |
Called when a field is to removed from a hierarchy in a document (really when it is removed from a spread hierarchy, but it is smart enough to ignore the cases where its not in a spread).
Takes care of removing inPageItem (if it's a form field) from the page's Tab Order
| inPageItem | Page item being removed to hierarchy |
Get Form Field Tab Order for a page on this Spread
| inPage | a page on this spread (ISpreadFieldOrder is an addin to the spread |
| pure virtual |
Set Form Field Tab Order for a page on this Spread
| inPage | a page on this spread (ISpreadFieldOrder is an addin to the spread |
| inPageItemList | an ordered list of form field UIDs |