00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef XAP_COCOAPLUGIN_H
00023 #define XAP_COCOAPLUGIN_H
00024
00025 #define XAP_COCOAPLUGIN_INTERFACE 20050925
00027 #import <Cocoa/Cocoa.h>
00028
00029 @class XAP_CocoaPlugin;
00030
00031 @protocol XAP_CocoaPlugin_Tool;
00032 @protocol XAP_CocoaPlugin_ToolProvider;
00033
00041 @protocol XAP_CocoaPlugin_ToolInstance
00042
00049 - (id <NSObject, XAP_CocoaPlugin_Tool>)tool;
00050
00057 - (NSView *)toolbarButton;
00058
00065 - (NSMenuItem *)toolbarMenuItem;
00066
00073 - (NSString *)configWidth;
00074
00081 - (NSString *)configHeight;
00082
00089 - (NSString *)configImage;
00090
00097 - (NSString *)configAltImage;
00098
00104 - (void)setConfigWidth:(NSString *)width;
00105
00111 - (void)setConfigHeight:(NSString *)height;
00112
00119 - (void)setConfigImage:(NSString *)image;
00120
00127 - (void)setConfigAltImage:(NSString *)altImage;
00128 @end
00129
00137 @protocol XAP_CocoaPlugin_Tool
00138
00144 - (NSString *)identifier;
00145
00151 - (NSString *)description;
00152
00159 - (void)setProvider:(id <NSObject, XAP_CocoaPlugin_ToolProvider>)provider;
00160
00166 - (id <NSObject, XAP_CocoaPlugin_ToolProvider>)provider;
00167
00174 - (id <NSObject, XAP_CocoaPlugin_ToolInstance>)tool;
00175 @end
00176
00183 @protocol XAP_CocoaPlugin_ToolProvider
00184
00190 - (NSString *)name;
00191
00199 - (id <NSObject, XAP_CocoaPlugin_Tool>)toolWithIdentifier:(NSString *)identifier;
00200
00206 - (NSArray *)toolIdentifiers;
00207
00215 - (NSString *)toolDescription:(NSString *)identifier;
00216
00217 @end
00218
00224 @protocol XAP_CocoaPlugin_SimpleXML
00225
00234 - (BOOL)startElement:(NSString *)name attributes:(NSDictionary *)attributes;
00235
00243 - (BOOL)endElement:(NSString *)name;
00244
00252 - (BOOL)characterData:(NSString *)data;
00253
00254 @end
00255
00261 @protocol XAP_CocoaPlugin_MenuItem
00262
00266 - (void)setLabel:(NSString *)label;
00267
00271 - (NSString *)label;
00272
00273 #if 0 // YAGNI
00274
00278 - (void)setAction:(SEL)aSelector;
00279
00283 - (SEL)action;
00284
00289 - (void)setTarget:(id <NSObject>)target;
00290
00294 - (id <NSObject>)target;
00295 #endif
00296
00300 - (void)setTag:(int)anInt;
00301
00305 - (int)tag;
00306
00311 - (void)setState:(int)state;
00312
00316 - (int)state;
00317
00322 - (void)setEnabled:(BOOL)enabled;
00323
00327 - (BOOL)isEnabled;
00328
00329 @end
00330
00337 @protocol XAP_CocoaPlugin_FramelessDocument
00338
00349 - (BOOL)exportDocumentToFile:(NSString *)path exportOptions:(NSDictionary *)options;
00350
00351 @end
00352
00366 @protocol XAP_CocoaPlugin_Document
00367
00374 - (BOOL)documentStillExists;
00375
00380 - (NSString *)title;
00381
00387 - (NSString *)selectWord;
00388
00394 - (NSString *)selectedText;
00395
00401 - (void)insertText:(NSString *)text;
00402
00403
00404
00405 - (NSString *)documentMailMergeSource;
00406 - (void)setDocumentMailMergeSource:(NSString *)path;
00407
00408 - (void)insertDocumentMailMergeField:(NSString *)field_name;
00409
00410 - (NSArray *)documentMailMergeFields;
00411 - (void)setDocumentMailMergeFields:(NSArray *)field_array;
00412 - (void)unsetDocumentMailMergeFields;
00413
00414
00415
00416 - (void)setDocumentMailMergeValues:(NSDictionary *)value_dictionary;
00417
00418 @end
00419
00428 @protocol XAP_CocoaPluginDelegate
00429
00447 - (BOOL)pluginCanRegisterForAbiWord:(XAP_CocoaPlugin *)AbiWord version:(NSString *)version interface:(unsigned long)interface;
00448
00454 - (BOOL)pluginIsActive;
00455
00459 - (void)pluginActivate;
00460
00464 - (void)pluginDeactivate;
00465
00473 - (BOOL)pluginCanDeactivate;
00474
00479 - (void)pluginCurrentDocumentHasChanged;
00480
00486 - (NSString *)pluginName;
00487
00493 - (NSString *)pluginAuthor;
00494
00500 - (NSString *)pluginVersion;
00501
00507 - (NSString *)pluginDescription;
00508
00514 - (NSString *)pluginUsage;
00515
00516 @end
00517
00523 @interface XAP_CocoaPlugin : NSObject
00524 {
00525 id <NSObject, XAP_CocoaPluginDelegate> m_delegate;
00526 }
00527
00531 - (id)init;
00532
00536 - (void)dealloc;
00537
00547 - (BOOL)loadBundleWithPath:(NSString *)path;
00548
00558 - (void)setDelegate:(id <NSObject, XAP_CocoaPluginDelegate>)delegate;
00559
00566 - (id <NSObject, XAP_CocoaPluginDelegate>)delegate;
00567
00578 - (void)appendMenuItem:(NSMenuItem *)menuItem;
00579
00585 - (void)removeMenuItem:(NSMenuItem *)menuItem;
00586
00598 - (id <NSObject, XAP_CocoaPlugin_Document>)currentDocument;
00599
00611 - (NSArray *)documents;
00612
00618 - (NSString *)selectMailMergeSource;
00619
00628 - (NSMutableArray *)importMailMergeSource:(NSString *)path;
00629
00642 - (id <NSObject, XAP_CocoaPlugin_FramelessDocument>)importDocumentFromFile:(NSString *)path importOptions:(NSDictionary *)options;
00643
00655 - (id <NSObject, XAP_CocoaPlugin_MenuItem>)contextMenuItemWithLabel:(NSString *)label;
00656
00663 - (NSArray *)toolProviders;
00664
00674 - (id <NSObject, XAP_CocoaPlugin_ToolProvider>)toolProvider:(NSString *)name;
00675
00685 - (NSString *)findResourcePath:(NSString *)relativePath;
00686
00694 - (NSString *)userResourcePath:(NSString *)relativePath;
00695
00704 - (NSString *)parseFile:(NSString *)path simpleXML:(id <XAP_CocoaPlugin_SimpleXML>)callback;
00705
00706 @end
00707
00708 #endif