/*
* CWPlugins.h - Common declarations for Metrowerks CodeWarrior<6F> plugins
*
* Copyright <20> 1995-1997 Metrowerks, Inc. All rights reserved.
*
*/#include"common.h"#ifndef __CWPlugins_H__#define __CWPlugins_H__#ifdef __MWERKS__# pragma once#endif#define CWPLUGIN_HOST_MACOS 1#define CWPLUGIN_HOST_WIN32 2#define CWPLUGIN_HOST_SOLARIS 3#define CWPLUGIN_HOST_LINUX 4#ifndef CWPLUGIN_HOST# ifdef WIN32# define CWPLUGIN_HOST CWPLUGIN_HOST_WIN32# elif defined(macintosh)# define CWPLUGIN_HOST CWPLUGIN_HOST_MACOS# elif defined(__sun__)# define CWPLUGIN_HOST CWPLUGIN_HOST_SOLARIS# elif defined(__linux__) || defined(__CLION_IDE__)# define CWPLUGIN_HOST CWPLUGIN_HOST_LINUX# else# error# endif#endif#define CWPLUGIN_API_MACOS 1#define CWPLUGIN_API_WIN32 2#define CWPLUGIN_API_UNIX 3#ifndef CWPLUGIN_API# ifdef WIN32# define CWPLUGIN_API CWPLUGIN_API_WIN32# elif defined(macintosh)# define CWPLUGIN_API CWPLUGIN_API_MACOS# elif defined(__sun__) || defined(__linux__) || defined(__CLION_IDE__)# define CWPLUGIN_API CWPLUGIN_API_UNIX# else# error# endif#endif/*
** Radix 256 notation where a 32-bit integer is created from four
** ASCII characters. A four-character constant of this form, say
** 'ABCD', must always be represented with the same pattern, 0x41424344
** in this case, regardless of big/little endian issues.
*/typedefSInt32CWFourCharType;#define CWFOURCHAR(a, b, c, d) \ (((CWFourCharType) ((a) & 0xff) << 24) \ | ((CWFourCharType) ((b) & 0xff) << 16) \ | ((CWFourCharType) ((c) & 0xff) << 8) \ | ((CWFourCharType) ((d) & 0xff)))#if CWPLUGIN_API == CWPLUGIN_API_UNIX#include<sys/param.h>#endif#ifndef CW_USE_PRAGMA_EXPORT#if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS#define CW_USE_PRAGMA_EXPORT 1#else#define CW_USE_PRAGMA_EXPORT 0#endif#endif#ifndef CW_USE_PRAGMA_IMPORT#if CWPLUGIN_HOST == CWPLUGIN_HOST_MACOS#define CW_USE_PRAGMA_IMPORT 1#else#define CW_USE_PRAGMA_IMPORT 0#endif#endif#ifdef __MWERKS__#pragma options align=mac68k#endif#ifdef _MSC_VER#pragma pack(push,2)#endif#ifdef __cplusplusextern"C"{#endif#if CW_USE_PRAGMA_IMPORT#pragma import on#endif/* These constants specify the action the IDE is asking the plugin to execute */enum{reqInitialize=-2,/* called when the plugin is loaded */reqTerminate=-1,/* called when the plugin is unloaded */reqIdle=-100,/* called periodically to allow for plugin tasks EP 6/24/98 */reqAbout=-101,/* called to ask plugin to display about dialog EP 6/24/98 */reqPrefsChange=-102/* called when an associated pref panel changes EP 6/24/98 */};/* Used in CWFileInfo.dependencyType to indicate what type of make *//* dependency to establish between files */typedefenumCWDependencyType{cwNoDependency,/* do not establish a dependency */cwNormalDependency,/* recompile dependent whenever prereq changes */cwInterfaceDependency/* recompile only if interface to file changes */}CWDependencyType;/* Used in CWFileInfo.filedatatype to indicate the type of data in a loaded file */enum{cwFileTypeUnknown,/* unknown binary data */cwFileTypeText,/* normal text file */cwFileTypePrecompiledHeader/* cached precompiled header */};/* constant for CWFileInfo.isdependentoffile */#define kCurrentCompiledFile -1L/* constant for CWStorePluginData/CWGetPluginData */#define kTargetGlobalPluginData -1L/* constant for CWNewProjectEntryInfo link order, segment, and overlay values */#define kDefaultLinkPosition -1L/* Selectors for CWFindLogicalDirectory */enum{kIDEDirectorySelector=1,/* parent directory of IDE application; "bin" folder on Win32 */kCodeWarriorDirectorySelector,/* root CodeWarrior directory */kSystemDirectorySelector,/* system directory */kProje