/*
 * A Skeleton Enhanced Drawing Mode for ImageFX 2.0
 *
 */

#include <exec/types.h>
#include <scan/modall.h>
#include <scan/drawinfo.h>
#include "common.h"

/**********************************************************************\

                                Library Vectors

\**********************************************************************/

/*
 * XDM_Attr:
 *
 * Return to ImageFX some information about the Drawing Style (eg.
 * whether Options are needed, whether we work on greyscale or
 * color, etc.).  Called when ImageFX first scans the drawing
 * style directory.
 *
 */
ULONG __saveds __asm XDS_Attr (register __a0 struct XDrawAttr *attr)
{
   return(0);
}

/*
 * XDS_Begin:
 *
 * Prepare before a pixel affecting operation.
 *
 */
int __saveds __asm XDS_Begin (register __a0 struct IDrawInfo *di)
{
   return(1);
}

/*
 * XDS_End:
 *
 * Cleanup after a pixel affecting operation.
 *
 */
void __saveds __asm XDS_End (register __a0 struct IDrawInfo *di)
{
}

/*
 * XDS_Get:
 *
 *
 */
int __saveds __asm XDS_Get (register __a0 struct IDrawInfo *di)
{
   return(1);
}

/*
 * XDS_Put:
 *
 *
 */
int __saveds __asm XDS_Put (register __a0 struct IDrawInfo *di)
{
   return(1);
}

/*
 * XDS_Options:
 *
 * Present a window to the user allowing him to adjust drawing style
 * options.  Arguments may optionally be passed from an Arexx command.
 *
 */
int __saveds __asm XDS_Options (register __a0 LONG *args)
{
   return(0);
}

/*
 * XDS_LoadPrefs:
 *
 * Set preferences according to information loaded from disk.
 *
 */
int __saveds __asm XDS_LoadPrefs (register __a0 void *prefs)
{
   return(1);
}

/*
 * XDS_SavePrefs:
 *
 * Request preferences settings that are about to be saved to disk.
 *
 */
int __saveds __asm XDS_SavePrefs (register __a0 void *prefs)
{
   return(1);
}

/*
 * XDS_HandleMButton:
 *
 * Handle a mousebutton event from the main window.
 *
 */
int __saveds __asm XDS_HandleMButton (register __a0 struct IntuiMessage *msg)
{
   return(0);
}

/*
 * XDS_HandleMMove:
 *
 * Handle a mousemove event from the main window.
 *
 */
int __saveds __asm XDS_HandleMMove (register __a0 struct IntuiMessage *msg)
{
   return(0);
}

int __saveds __asm XDS_Init (void)
{
   return(1);
}

void __saveds __asm XDS_Cleanup (void)
{
}

void __saveds __asm XDS_Redraw (register __d0 int left,
                                register __d1 int top,
                                register __d2 int right,
                                register __d3 int bottom)
{
}

BOOL __saveds __asm XDS_SaveUndo (register __a0 struct Buffer *buf,
                                  register __d0 int left,
                                  register __d1 int top,
                                  register __d2 int w,
                                  register __d3 int h)
{
   return(FALSE);
}


/**********************************************************************\

                         Library Initialization Stuff

\**********************************************************************/

/*
 * This is the table of all the functions that can be called in this
 * module.  The first four (Open, Close, Expunge, and Null) are reserved
 * for system use and MUST be specified in the order shown.  The actual
 * functions are in the standard module startup code.
 */
ULONG FuncTable[] = {
   /* These four MUST be present in this order */
   (ULONG) LibOpen,
   (ULONG) LibClose,
   (ULONG) LibExpunge,
   (ULONG) LibNull,

   /* Specific to the module */
   (ULONG) XDS_Attr,
   (ULONG) XDS_Begin,
   (ULONG) XDS_End,
   (ULONG) XDS_Get,
   (ULONG) XDS_Put,
   (ULONG) XDS_Options,
   (ULONG) XDS_LoadPrefs,
   (ULONG) XDS_SavePrefs,
   (ULONG) XDS_HandleMButton,
   (ULONG) XDS_HandleMMove,
   (ULONG) XDS_Init,
   (ULONG) XDS_Cleanup,
   (ULONG) XDS_Redraw,
   (ULONG) XDS_SaveUndo,

   /* End with -1L */
   (ULONG) -1L
};

/*
 * These are used by the standard module startup code.
 * LibraryName is the name of the library, and LibraryID is a short
 * description of the library.  Both of these are largely irrelavent,
 * but they are included just for completeness.
 */
UBYTE LibraryID[]    = "$VER: Skeleton Extended Drawing Style 2.0.0 (13.2.94)";
UBYTE LibraryType    = NT_XDRAWSTYLE;

/*
 * This is called by the standard module startup code when Image Scan
 * first opens the module.  Here we should fill in the NumGads,
 * NewGad, Language, and LangCount fields of the provided ModuleBase
 * structure if necessary.
 */
long  __asm UserOpen (register __a6 struct ModuleBase *modbase)
{
   return(TRUE);
}

/*
 * This is called by the standard module startup code when Image Scan
 * closes the module.  It should cleanup anything allocated or obtained
 * in the UserOpen() function.
 */
long  __asm UserClose (register __a6 struct ModuleBase *modbase)
{
   return(TRUE);
}

