
/*
\\    Smily - demonstriert Border und Image
*/
#include "TOOL.h"
#define RP   win->RPort
#define XPOS win->MouseX
#define YPOS win->MouseY

USHORT *CData;
USHORT FData[]={                                              /* Image-Daten */
    0,0,0,0,252,0,771,0,1024,32768,2048,16384,4096,8192,
    4300,8192,4402,8192,8192,4096,8192,4096,9729,36864,
    8705,4096,4354,8192,4348,8192,4216,8192,2048,16384,
    1024,32768,771,0,252,0,0,0,0,0
};
SHORT RData[2][10]={                                         /* Border-Daten */
    0,0, 40,0, 40,40, 0,40, 0,0,
    0,0, 30,0, 30,50, 0,50, 0,0
};
struct Image Bild      ={
    9,15, 22,22,1, NULL, 2,1, NULL
};
struct Border Rahmen[2]={
    0,5, 1,0, JAM1, 5, &RData[0][0], NULL,
    5,0, 3,0, JAM1, 5, &RData[1][0], &Rahmen[0]
};

VOID error(Meldung)
    STRPTR Meldung;
{
    if(Meldung)  printf("Kann %s nicht öffnen",Meldung);
    if(CData)    FreeMem(CData,sizeof(FData));
    CloseLib();
    exit(0);
}

VOID main()
{
    struct Window *win;
    SHORT i,x,y;
    USHORT code=0;

    if(OpenLib()) error ("Lib's");
    if((CData=AllocMem(sizeof(FData),MEMF_CHIP))==0) error("Chip-Memory");
    for(i=0;i<44;i++) CData[i]=FData[i];      /* Image-Daten ins CHIP-Memory */
    Bild.ImageData=CData;           /* neue Adresse der Daten im CHIP-Memory */
    win=ACTIVE_WINDOW;           /* Arbeiten im gerade aktiven (CLI) Fenster */
    ModifyIDCMP(win,MOUSEBUTTONS|MOUSEMOVE);/* CLI-Fenster reagiert auf Maus */
    while(code!=SELECTDOWN){                         /* Warten auf Mausklick */
        GetMessage(win,&code,0,0);
        DrawImage(RP,&Bild,XPOS,YPOS);                /* Minigrafik zeichnen */
        DrawBorder(RP,&Rahmen[1],XPOS,YPOS);    /* doppelter Rahmen zeichnen */
    }
    ModifyIDCMP(win,0);
    error(0);
}


