home *** CD-ROM | disk | FTP | other *** search
- /*************************************
- * *
- * Editor v1.0 *
- * by Torsten Jürgeleit in 07/91 *
- * *
- * Defines & structs *
- * *
- *************************************/
-
- /* Defines for defaults */
-
- #define DEFAULT_PROJECT_NAME "unnamed"
- #define DEFAULT_EDITOR_MODE EDITOR_MODE_CREATE
- #define DEFAULT_SNAP_OFFSET 1
- #define DEFAULT_TEMPLATE_TYPE TEMPLATE_TYPE_BUTTON
- #define DEFAULT_TEMPLATE_LIST_FLAGS TEMPLATE_LIST_FLAG_RESIZING
- #define DEFAULT_LIST_MODE LIST_MODE_EDIT
-
- /* Defines for windows */
-
- #define EDIT_RENDER_INFO_FLAGS (RENDER_INFO_FLAG_INNER_WINDOW | RENDER_INFO_FLAG_BACK_FILL)
- #define EDIT_OPEN_WINDOW_FLAGS 0
-
- #define PROJECT_RENDER_INFO_FLAGS 0
- #define PROJECT_OPEN_WINDOW_FLAGS 0
-
- #define EDITOR_WINDOW_LEFT 0
- #define EDITOR_WINDOW_TOP 0
- #define EDITOR_WINDOW_WIDTH 518
- #define EDITOR_WINDOW_HEIGHT 112
- #define EDITOR_WINDOW_TITLE (UBYTE *)" Template Editor v1.0 "
- #define EDITOR_WINDOW_IDCMP (CLOSEWINDOW | GADGET_IDCMP_FLAGS_ALL | MENUPICK)
- #define EDITOR_WINDOW_FLAGS (WINDOWCLOSE | WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH | NOCAREREFRESH | ACTIVATE)
-
- #define PROJECT_WINDOW_DETAIL_PEN 0
- #define PROJECT_WINDOW_BLOCK_PEN 1
- #define PROJECT_WINDOW_TITLE (UBYTE *)NULL
- #define PROJECT_WINDOW_IDCMP (MOUSEMOVE | MOUSEBUTTONS | NEWSIZE | GADGET_IDCMP_FLAGS_ALL)
- #define PROJECT_WINDOW_FLAGS (WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING | SMART_REFRESH | RMBTRAP | REPORTMOUSE)
- #define PROJECT_WINDOW_MIN_WIDTH 100
- #define PROJECT_WINDOW_MIN_HEIGHT 20
-
- /* Defines */
-
- #define MAX_PROJECT_NAME_LEN (LONG_FSIZE + 1)
- #define MAX_TEMPLATE_NAME_LEN 30
- #define MAX_TEXT_LEN 40
-
- /* Defines for editor status */
-
- #define EDITOR_STATUS_NORMAL 0
- #define EDITOR_STATUS_EOF 1
- #define EDITOR_STATUS_EOB 2
- #define EDITOR_STATUS_EDIT 3
- #define EDITOR_STATUS_WINDOW 4
- #define EDITOR_STATUS_NEW 5
- #define EDITOR_STATUS_LOAD 6
- #define EDITOR_STATUS_APPEND 7
- #define EDITOR_STATUS_SAVE 8
- #define EDITOR_STATUS_SAVE_C 9
- #define EDITOR_STATUS_ABOUT 10
- #define EDITOR_STATUS_QUIT 11
-
- /* Defines for editor error messages */
-
- #define EDITOR_ERROR_NO_ARP -1
- #define EDITOR_ERROR_NO_INTUISUP -2
- #define EDITOR_ERROR_NO_DISKFONT -3
- #define EDITOR_ERROR_NO_WINDOW -4
- #define EDITOR_ERROR_OUT_OF_MEM -5
- #define EDITOR_ERROR_OPEN_FAILED -6
- #define EDITOR_ERROR_WRITE_FAILED -7
- #define EDITOR_ERROR_READ_FAILED -8
- #define EDITOR_ERROR_LINE_TOO_LONG -9
- #define EDITOR_ERROR_NO_ARGUMENT -10
- #define EDITOR_ERROR_END_WRONG_BLOCK -11
-
- /* Defines for editor gadgets */
-
- #define EDITOR_GADGET_TYPE 0
- #define EDITOR_GADGET_CREATE 1
- #define EDITOR_GADGET_MODIFY 2
- #define EDITOR_GADGET_CLONE 3
- #define EDITOR_GADGET_DELETE 4
- #define EDITOR_GADGET_EDIT 5
- #define EDITOR_GADGET_USE 6
- #define EDITOR_GADGET_TEMPLATES 7
-
- #define EDITOR_MODE_CREATE 0
- #define EDITOR_MODE_MODIFY 1
- #define EDITOR_MODE_CLONE 2
- #define EDITOR_MODE_DELETE 3
- #define EDITOR_MODE_EDIT 4
- #define EDITOR_MODE_USE 5
-
- #define MODIFY_MODE_MOVE 0
- #define MODIFY_MODE_RESIZE 1
-
- /* Defines for templates */
-
- #define TEMPLATE_TYPE_BORDER 0
- #define TEMPLATE_TYPE_TEXT 1
- #define TEMPLATE_TYPE_BUTTON 2
- #define TEMPLATE_TYPE_CHECK 3
- #define TEMPLATE_TYPE_MX 4
- #define TEMPLATE_TYPE_STRING 5
- #define TEMPLATE_TYPE_INTEGER 6
- #define TEMPLATE_TYPE_SLIDER 7
- #define TEMPLATE_TYPE_SCROLLER 8
- #define TEMPLATE_TYPE_CYCLE 9
- #define TEMPLATE_TYPE_COUNT 10
- #define TEMPLATE_TYPE_LISTVIEW 11
- #define TEMPLATE_TYPE_PALETTE 12
-
- #define MAX_TEMPLATE_TYPES 13
-
- #define FIRST_GADGET_TEMPLATE_TYPE TEMPLATE_TYPE_BUTTON
-
- #define TEMPLATE_FLAG_DEFAULT_NAME (1 << 0)
- #define TEMPLATE_FLAG_MODIFIED (1 << 1)
-
- /* Defines for template groups */
-
- #define TEMPLATE_GROUP(tp) (tp->tp_Type < FIRST_GADGET_TEMPLATE_TYPE ? tp->tp_Type : TEMPLATE_GROUP_GADGET)
-
- #define TEMPLATE_GROUP_BORDER 0
- #define TEMPLATE_GROUP_TEXT 1
- #define TEMPLATE_GROUP_GADGET 2
-
- /* Defines for template list */
-
- #define TEMPLATE_LIST_FLAG_CHANGED (1 << 0) /* template list modified */
- #define TEMPLATE_LIST_FLAG_RESIZING (1 << 1) /* enable resizing of project window */
- #define TEMPLATE_LIST_FLAG_BACK_FILL (1 << 2) /* fill background of project window */
- #define TEMPLATE_LIST_FLAG_RENDER_COLORS (1 << 3) /* use colors from render info for rendering project window */
- #define TEMPLATE_LIST_FLAG_DEFAULT_WINDOW (1 << 4) /* use default flags and dimension for project window */
-
- /* Defines for file requester */
-
- #define PROJECT_LOAD_HAIL_TEXT " Load Project "
- #define PROJECT_APPEND_HAIL_TEXT " Append Project "
- #define PROJECT_SAVE_HAIL_TEXT " Save Project "
- #define PROJECT_FILE_NAME (DEFAULT_PROJECT_NAME ".tpl")
-
- #define CSOURCE_SAVE_HAIL_TEXT " Save C Source "
- #define CSOURCE_FILE_NAME (DEFAULT_PROJECT_NAME ".c")
-
- /* Defines for edit gadgets */
-
- #define EDIT_GADGET_OK 0
- #define EDIT_GADGET_DEFAULT 1
- #define EDIT_GADGET_SWITCH 2
- #define EDIT_GADGET_CANCEL 3
-
- #define BORDER_GADGET_NAME 0
- #define BORDER_GADGET_TYPE 1
-
- #define TEXT_GADGET_NAME 0
- #define TEXT_GADGET_TEXT 1
- #define TEXT_GADGET_FONT 2
- #define TEXT_GADGET_SIZE 3
- #define TEXT_GADGET_TYPE 4
- #define TEXT_GADGET_BOLD 5
- #define TEXT_GADGET_ITALIC 6
- #define TEXT_GADGET_UNDERLINED 7
- #define TEXT_GADGET_COLOR2 8
- #define TEXT_GADGET_COMPLEMENT 9
-
- #define NORMAL_GADGET_NAME 0
- #define NORMAL_GADGET_TEXT 1
- #define NORMAL_GADGET_FONT 2
- #define NORMAL_GADGET_SIZE 3
- #define NORMAL_GADGET_POS 4
- #define NORMAL_GADGET_DISABLED 5
- #define NORMAL_GADGET_NO_BORDER 6
- #define NORMAL_GADGET_HIGHCOMP 7
- #define NORMAL_GADGET_HOTKEY 8
- #define NORMAL_GADGET_COLOR2 9
-
- #define TEXT_POS_LEFT 0
- #define TEXT_POS_RIGHT 1
- #define TEXT_POS_ABOVE 2
- #define TEXT_POS_BELOW 3
- #define TEXT_POS_INSIDE 4
-
- #define GADGET_TEXT_POS_MASK(flags) (flags & (GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_TEXT_RIGHT | GADGET_DATA_FLAG_TEXT_ABOVE | GADGET_DATA_FLAG_TEXT_BELOW))
-
- /* Defines for load file */
-
- #define LOAD_MODE_NORMAL 0
- #define LOAD_MODE_APPEND 1
-
- /* Defines for text list editor modes */
-
- #define LIST_MODE_EDIT 0
- #define LIST_MODE_ADD 1
- #define LIST_MODE_INSERT 2
- #define LIST_MODE_DELETE 3
-
- /* Structures */
-
- struct Box {
- SHORT bo_X1;
- SHORT bo_Y1;
- SHORT bo_X2;
- SHORT bo_Y2;
- };
- struct Dimension {
- USHORT dim_Width;
- USHORT dim_Height;
- };
- struct Template {
- struct Node tp_Node; /* ln_Name points to tp_Name */
- UBYTE tp_Type; /* type for this template */
- UBYTE tp_Flags;
- USHORT tp_GroupEntryNum; /* ordinal number of group entry in template list -> used for default name */
- struct Box tp_Box;
- struct TextAttr tp_TextAttr;
- struct List tp_TextList; /* list for MX, Cycle und ListView template texts */
- union {
- struct BorderData tp_BorderData;
- struct TextData tp_TextData;
- struct GadgetData tp_GadgetData;
- } tp_Data;
- ULONG tp_DataEnd; /* needed for data end marker ISUP_DATA_END */
- struct Template *tp_PrevLocked; /* ptr to previous locked template */
- struct Template *tp_NextLocked; /* ptr to next locked template */
- BYTE tp_TemplateName[MAX_TEMPLATE_NAME_LEN + 1];
- };
- struct TemplateList {
- struct List tl_List;
- USHORT tl_ListEntries;
- USHORT tl_BorderTemplates;
- USHORT tl_TextTemplates;
- USHORT tl_GadgetTemplates;
- USHORT tl_Flags;
- BYTE tl_ProjectName[MAX_PROJECT_NAME_LEN + 1];
- };
- struct FileData {
- BPTR fd_Handle;
- BYTE *fd_ReadBuffer;
- BYTE *fd_CurrentPtr;
- BYTE *fd_EndPtr;
- BYTE *fd_LineBuffer;
- BYTE fd_CurrentLine;
- USHORT fd_Status;
- };
-