#ifndef WGRAB_CAT_H
#define WGRAB_CAT_H


/****************************************************************************/


/* This file was created automatically by CatComp.
 * Do NOT edit by hand!
 */


#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifdef CATCOMP_ARRAY
#undef CATCOMP_NUMBERS
#undef CATCOMP_STRINGS
#define CATCOMP_NUMBERS
#define CATCOMP_STRINGS
#endif

#ifdef CATCOMP_BLOCK
#undef CATCOMP_STRINGS
#define CATCOMP_STRINGS
#endif


/****************************************************************************/


#ifdef CATCOMP_NUMBERS

#define MSG_PROJECT 0
#define MSG_SETTINGS 1
#define MSG_ABOUT 2
#define MSG_ABOUT_SC 3
#define MSG_HIDE 4
#define MSG_HIDE_SC 5
#define MSG_QUIT 6
#define MSG_QUIT_SC 7
#define MSG_LOAD 8
#define MSG_LOADENV 9
#define MSG_LOADDEF 10
#define MSG_USE 11
#define MSG_SAVE 12
#define MSG_ASK_BEFORE 13
#define MSG_ASK_HELP 14
#define MSG_FILENAME 15
#define MSG_FILENAME_HELP 16
#define MSG_DIR_MODE 17
#define MSG_DIR_MODE_HELP 18
#define MSG_HOTKEY_POPUP 19
#define MSG_HOTKEY_POPUP_HELP 20
#define MSG_HOTKEY_WGRAB 21
#define MSG_HOTKEY_WGRAB_HELP 22
#define MSG_HOTKEY_SGRAB 23
#define MSG_HOTKEY_SGRAB_HELP 24
#define MSG_HELP_HELP 25
#define MSG_GUI_SAVE 26
#define MSG_GUI_USE 27
#define MSG_GUI_QUIT 28

#endif /* CATCOMP_NUMBERS */


/****************************************************************************/


#ifdef CATCOMP_STRINGS

#define MSG_PROJECT_STR "Project"
#define MSG_SETTINGS_STR "Settings"
#define MSG_ABOUT_STR "About"
#define MSG_ABOUT_SC_STR "?"
#define MSG_HIDE_STR "Hide"
#define MSG_HIDE_SC_STR "h"
#define MSG_QUIT_STR "Quit"
#define MSG_QUIT_SC_STR "q"
#define MSG_LOAD_STR "Load last Used"
#define MSG_LOADENV_STR "Load last Saved"
#define MSG_LOADDEF_STR "Load Default"
#define MSG_USE_STR "Use"
#define MSG_SAVE_STR "Save"
#define MSG_ASK_BEFORE_STR "Ask Before"
#define MSG_ASK_HELP_STR "Ask For Filename before saving"
#define MSG_FILENAME_STR "FileName"
#define MSG_FILENAME_HELP_STR "File or Directory Name"
#define MSG_DIR_MODE_STR "Dir Mode"
#define MSG_DIR_MODE_HELP_STR "Filename will be [dir]pic<hour>.<min>.<sec>.iff"
#define MSG_HOTKEY_POPUP_STR "Popup"
#define MSG_HOTKEY_POPUP_HELP_STR "Hotkey to PopUp this Window"
#define MSG_HOTKEY_WGRAB_STR "Window Grab"
#define MSG_HOTKEY_WGRAB_HELP_STR "Hotkey to Grab Active Window"
#define MSG_HOTKEY_SGRAB_STR "Screen Grab"
#define MSG_HOTKEY_SGRAB_HELP_STR "Hotkey to Grab Active Screen"
#define MSG_HELP_HELP_STR "Small Help Text"
#define MSG_GUI_SAVE_STR "_Save"
#define MSG_GUI_USE_STR "_Use"
#define MSG_GUI_QUIT_STR "_Quit WGrab"

#endif /* CATCOMP_STRINGS */


/****************************************************************************/


#ifdef CATCOMP_ARRAY

struct CatCompArrayType
{
    LONG   cca_ID;
    STRPTR cca_Str;
};

static const struct CatCompArrayType CatCompArray[] =
{
    {MSG_PROJECT,(STRPTR)MSG_PROJECT_STR},
    {MSG_SETTINGS,(STRPTR)MSG_SETTINGS_STR},
    {MSG_ABOUT,(STRPTR)MSG_ABOUT_STR},
    {MSG_ABOUT_SC,(STRPTR)MSG_ABOUT_SC_STR},
    {MSG_HIDE,(STRPTR)MSG_HIDE_STR},
    {MSG_HIDE_SC,(STRPTR)MSG_HIDE_SC_STR},
    {MSG_QUIT,(STRPTR)MSG_QUIT_STR},
    {MSG_QUIT_SC,(STRPTR)MSG_QUIT_SC_STR},
    {MSG_LOAD,(STRPTR)MSG_LOAD_STR},
    {MSG_LOADENV,(STRPTR)MSG_LOADENV_STR},
    {MSG_LOADDEF,(STRPTR)MSG_LOADDEF_STR},
    {MSG_USE,(STRPTR)MSG_USE_STR},
    {MSG_SAVE,(STRPTR)MSG_SAVE_STR},
    {MSG_ASK_BEFORE,(STRPTR)MSG_ASK_BEFORE_STR},
    {MSG_ASK_HELP,(STRPTR)MSG_ASK_HELP_STR},
    {MSG_FILENAME,(STRPTR)MSG_FILENAME_STR},
    {MSG_FILENAME_HELP,(STRPTR)MSG_FILENAME_HELP_STR},
    {MSG_DIR_MODE,(STRPTR)MSG_DIR_MODE_STR},
    {MSG_DIR_MODE_HELP,(STRPTR)MSG_DIR_MODE_HELP_STR},
    {MSG_HOTKEY_POPUP,(STRPTR)MSG_HOTKEY_POPUP_STR},
    {MSG_HOTKEY_POPUP_HELP,(STRPTR)MSG_HOTKEY_POPUP_HELP_STR},
    {MSG_HOTKEY_WGRAB,(STRPTR)MSG_HOTKEY_WGRAB_STR},
    {MSG_HOTKEY_WGRAB_HELP,(STRPTR)MSG_HOTKEY_WGRAB_HELP_STR},
    {MSG_HOTKEY_SGRAB,(STRPTR)MSG_HOTKEY_SGRAB_STR},
    {MSG_HOTKEY_SGRAB_HELP,(STRPTR)MSG_HOTKEY_SGRAB_HELP_STR},
    {MSG_HELP_HELP,(STRPTR)MSG_HELP_HELP_STR},
    {MSG_GUI_SAVE,(STRPTR)MSG_GUI_SAVE_STR},
    {MSG_GUI_USE,(STRPTR)MSG_GUI_USE_STR},
    {MSG_GUI_QUIT,(STRPTR)MSG_GUI_QUIT_STR},
};

#endif /* CATCOMP_ARRAY */


/****************************************************************************/


#ifdef CATCOMP_BLOCK

static const char CatCompBlock[] =
{
    "\x00\x00\x00\x00\x00\x08"
    MSG_PROJECT_STR "\x00"
    "\x00\x00\x00\x01\x00\x0A"
    MSG_SETTINGS_STR "\x00\x00"
    "\x00\x00\x00\x02\x00\x06"
    MSG_ABOUT_STR "\x00"
    "\x00\x00\x00\x03\x00\x02"
    MSG_ABOUT_SC_STR "\x00"
    "\x00\x00\x00\x04\x00\x06"
    MSG_HIDE_STR "\x00\x00"
    "\x00\x00\x00\x05\x00\x02"
    MSG_HIDE_SC_STR "\x00"
    "\x00\x00\x00\x06\x00\x06"
    MSG_QUIT_STR "\x00\x00"
    "\x00\x00\x00\x07\x00\x02"
    MSG_QUIT_SC_STR "\x00"
    "\x00\x00\x00\x08\x00\x10"
    MSG_LOAD_STR "\x00\x00"
    "\x00\x00\x00\x09\x00\x10"
    MSG_LOADENV_STR "\x00"
    "\x00\x00\x00\x0A\x00\x0E"
    MSG_LOADDEF_STR "\x00\x00"
    "\x00\x00\x00\x0B\x00\x04"
    MSG_USE_STR "\x00"
    "\x00\x00\x00\x0C\x00\x06"
    MSG_SAVE_STR "\x00\x00"
    "\x00\x00\x00\x0D\x00\x0C"
    MSG_ASK_BEFORE_STR "\x00\x00"
    "\x00\x00\x00\x0E\x00\x20"
    MSG_ASK_HELP_STR "\x00\x00"
    "\x00\x00\x00\x0F\x00\x0A"
    MSG_FILENAME_STR "\x00\x00"
    "\x00\x00\x00\x10\x00\x18"
    MSG_FILENAME_HELP_STR "\x00\x00"
    "\x00\x00\x00\x11\x00\x0A"
    MSG_DIR_MODE_STR "\x00\x00"
    "\x00\x00\x00\x12\x00\x30"
    MSG_DIR_MODE_HELP_STR "\x00"
    "\x00\x00\x00\x13\x00\x06"
    MSG_HOTKEY_POPUP_STR "\x00"
    "\x00\x00\x00\x14\x00\x1C"
    MSG_HOTKEY_POPUP_HELP_STR "\x00"
    "\x00\x00\x00\x15\x00\x0C"
    MSG_HOTKEY_WGRAB_STR "\x00"
    "\x00\x00\x00\x16\x00\x1E"
    MSG_HOTKEY_WGRAB_HELP_STR "\x00\x00"
    "\x00\x00\x00\x17\x00\x0C"
    MSG_HOTKEY_SGRAB_STR "\x00"
    "\x00\x00\x00\x18\x00\x1E"
    MSG_HOTKEY_SGRAB_HELP_STR "\x00\x00"
    "\x00\x00\x00\x19\x00\x10"
    MSG_HELP_HELP_STR "\x00"
    "\x00\x00\x00\x1A\x00\x06"
    MSG_GUI_SAVE_STR "\x00"
    "\x00\x00\x00\x1B\x00\x06"
    MSG_GUI_USE_STR "\x00\x00"
    "\x00\x00\x00\x1C\x00\x0C"
    MSG_GUI_QUIT_STR "\x00"
};

#endif /* CATCOMP_BLOCK */


/****************************************************************************/


struct LocaleInfo
{
    APTR li_LocaleBase;
    APTR li_Catalog;
};


#ifdef CATCOMP_CODE

STRPTR GetString(struct LocaleInfo *li, LONG stringNum)
{
LONG   *l;
UWORD  *w;
STRPTR  builtIn;

    l = (LONG *)CatCompBlock;

    while (*l != stringNum)
    {
        w = (UWORD *)((ULONG)l + 4);
        l = (LONG *)((ULONG)l + (ULONG)*w + 6);
    }
    builtIn = (STRPTR)((ULONG)l + 6);

#define XLocaleBase LocaleBase
#define LocaleBase li->li_LocaleBase
    
    if (LocaleBase)
        return(GetCatalogStr(li->li_Catalog,stringNum,builtIn));
#define LocaleBase XLocaleBase
#undef XLocaleBase

    return(builtIn);
}


#endif /* CATCOMP_CODE */


/****************************************************************************/


#endif /* WGRAB_CAT_H */
