mirror of
https://github.com/nickshanks/ResKnife.git
synced 2025-01-03 04:31:27 +00:00
97 lines
2.7 KiB
C
97 lines
2.7 KiB
C
|
#include "ResKnife.h"
|
||
|
#include "WindowObject.h"
|
||
|
#include "ResourceObject.h"
|
||
|
|
||
|
#ifndef _ResKnife_PlugObject_
|
||
|
#define _ResKnife_PlugObject_
|
||
|
|
||
|
/*!
|
||
|
@header PlugObject
|
||
|
@discussion Keeps track of all loaded plug-ins.
|
||
|
*/
|
||
|
|
||
|
/*!
|
||
|
@class PlugObject
|
||
|
@abstract Contains the data required to know which plug-ins can edit what.
|
||
|
@discussion Created when a plug-in is loaded for the first time, and is never destoyed, this class maintains the connection between the host and a plug-in. Also tracks whether the plug is an Editor or a Picker.
|
||
|
*/
|
||
|
typedef class PlugObject
|
||
|
{
|
||
|
/*! @var connID A CFM connection ID to a plug-in. */
|
||
|
CFragConnectionID connID;
|
||
|
/*! @var windowObj The first window loaded for this plug-in. Either a PickerWindow or an EditorWindow. */
|
||
|
WindowObjectPtr windowObj;
|
||
|
/*! @var resourceObj What the first loaded window edits (if anything). */
|
||
|
ResourceObjectPtr resourceObj;
|
||
|
// EditorType editorType;
|
||
|
/*! @var ResType The type of resource this plug can handle. */
|
||
|
ResType whatIActuallyEdit;
|
||
|
|
||
|
// for the plug's use
|
||
|
/*! @var refcon A plug-global refcon for storing (say) it's preferences structure. */
|
||
|
UInt32 refcon;
|
||
|
|
||
|
public:
|
||
|
/*!
|
||
|
@function GetConnectionID
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
CFragConnectionID GetConnectionID( void );
|
||
|
/*!
|
||
|
@function SetConnectionID
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
void SetConnectionID( CFragConnectionID newID );
|
||
|
/*!
|
||
|
@function GetWindowObject
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
WindowObjectPtr GetWindowObject( void );
|
||
|
/*!
|
||
|
@function SetWindowObject
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
void SetWindowObject( WindowObjectPtr newWindowObj );
|
||
|
/*!
|
||
|
@function GetResourceObject
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
ResourceObjectPtr GetResourceObject( void );
|
||
|
/*!
|
||
|
@function SetResourceObject
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
void SetResourceObject( ResourceObjectPtr newResourceObj );
|
||
|
/*!
|
||
|
@function SetRefCon
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
void SetRefCon( UInt32 value );
|
||
|
/*!
|
||
|
@function GetRefCon
|
||
|
@discussion Accessor function.
|
||
|
*/
|
||
|
UInt32 GetRefCon( void );
|
||
|
} PlugObject, *PlugObjectPtr;
|
||
|
|
||
|
/*!
|
||
|
@function LoadEditor
|
||
|
@discussion Loads a CFrag by name, and passes it a resource to edit.
|
||
|
@param resource The resource to be edited.
|
||
|
@param libName A string containing the fragment name of the editor to be used, for example "icns Editor" or "PICT Picker".
|
||
|
*/
|
||
|
OSStatus LoadEditor( ResourceObjectPtr resource, ConstStr63Param libName );
|
||
|
/*!
|
||
|
@function UnloadEditor
|
||
|
@discussion Unloads the given plug.
|
||
|
@param plug The plug-in to be killed.
|
||
|
*/
|
||
|
OSStatus UnloadEditor( PlugObjectPtr plug );
|
||
|
|
||
|
/*!
|
||
|
@typedef InitPlugProcPtr
|
||
|
@discussion The pointer to Plug_InitInstance() that FindSymbol returns.
|
||
|
*/
|
||
|
typedef OSStatus (* InitPlugProcPtr)( PlugObjectPtr plug, ResourceObjectPtr resource );
|
||
|
|
||
|
#endif
|