home *** CD-ROM | disk | FTP | other *** search
- /* $Revision Header *** Header built automatically - do not edit! ***********
- *
- * (C) Copyright 1991 by Torsten Jürgeleit
- *
- * Name .....: req.c
- * Created ..: Sunday 22-Dec-91 21:23:00
- * Revision .: 0
- *
- * Date Author Comment
- * ========= ==================== ====================
- * 22-Dec-91 Torsten Jürgeleit Created this file!
- *
- ****************************************************************************
- *
- * Requester part
- *
- * $Revision Header ********************************************************/
-
- /* Includes */
-
- #include "includes.h"
- #include "defines.h"
- #include "imports.h"
- #include "protos.h"
-
- /* Defines for error requester */
-
- #define ERROR_WINDOW_TITLE " Error "
-
- /* Statics for error requester */
-
- STATIC BYTE *error_text[]=
- {
- "Can't open reqtools.library v38+",
- "Can't open intuisup.library",
- "Can't open window",
- "Out of memory",
- "Can't open file",
- "Error while saving",
- "Error while reading",
- "Line in load file too long",
- "Missing argument in load file",
- "Different block types for BEGIN and END in load file",
- "Invalid font"
- };
- /* Defines for continue, ok/cancel requester */
-
- #define AUTO_REQ_REQ_FLAGS (AUTO_REQ_FLAG_BACK_FILL | AUTO_REQ_FLAG_TEXT_CENTER | AUTO_REQ_FLAG_TEXT_COLOR2 | AUTO_REQ_FLAG_HOTKEY | AUTO_REQ_FLAG_MOVE_POINTER_NEG)
-
- /* Defines for about requester */
-
- #define ABOUT_REQ_WIDTH 304
- #define ABOUT_REQ_HEIGHT 126
- #define ABOUT_REQ_FLAGS (REQ_DATA_FLAG_BACK_FILL | REQ_DATA_FLAG_CENTER_SCREEN | REQ_DATA_FLAG_INNER_WINDOW)
- #define ABOUT_REQ_TITLE " About "
-
- #define ABOUT_TEXT1_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT1_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_BOLD)
- #define ABOUT_TEXT1_LEFT_EDGE 0
- #define ABOUT_TEXT1_TOP_EDGE (ABOUT_BORDER_TOP_EDGE + 7)
- #define ABOUT_TEXT1_TEXT "Template Editor v1.1"
- #define ABOUT_TEXT1_TEXT_ATTR &topaz60_attr
-
- #define ABOUT_TEXT2_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT2_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_COLOR2)
- #define ABOUT_TEXT2_LEFT_EDGE 0
- #define ABOUT_TEXT2_TOP_EDGE (ABOUT_TEXT1_TOP_EDGE + 15)
- #define ABOUT_TEXT2_TEXT "© 01/92 by Torsten Jürgeleit "
- #define ABOUT_TEXT2_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT3_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT3_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_COLOR2)
- #define ABOUT_TEXT3_LEFT_EDGE 0
- #define ABOUT_TEXT3_TOP_EDGE (ABOUT_TEXT2_TOP_EDGE + 10)
- #define ABOUT_TEXT3_TEXT " Am Sandberg 4 "
- #define ABOUT_TEXT3_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT4_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT4_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_COLOR2)
- #define ABOUT_TEXT4_LEFT_EDGE 0
- #define ABOUT_TEXT4_TOP_EDGE (ABOUT_TEXT3_TOP_EDGE + 10)
- #define ABOUT_TEXT4_TEXT " W-5270 Gummersbach "
- #define ABOUT_TEXT4_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT5_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT5_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_COLOR2)
- #define ABOUT_TEXT5_LEFT_EDGE 0
- #define ABOUT_TEXT5_TOP_EDGE (ABOUT_TEXT4_TOP_EDGE + 10)
- #define ABOUT_TEXT5_TEXT " Germany "
- #define ABOUT_TEXT5_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT6_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT6_FLAGS (TEXT_DATA_FLAG_CENTER | TEXT_DATA_FLAG_COLOR2)
- #define ABOUT_TEXT6_LEFT_EDGE 0
- #define ABOUT_TEXT6_TOP_EDGE (ABOUT_TEXT5_TOP_EDGE + 10)
- #define ABOUT_TEXT6_TEXT " Phone ++49 2261 27400"
- #define ABOUT_TEXT6_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT7_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT7_FLAGS (TEXT_DATA_FLAG_CENTER)
- #define ABOUT_TEXT7_LEFT_EDGE 0
- #define ABOUT_TEXT7_TOP_EDGE (ABOUT_TEXT6_TOP_EDGE + 10)
- #define ABOUT_TEXT7_TEXT " Thanks to Michael Bjerking "
- #define ABOUT_TEXT7_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_TEXT8_TYPE TEXT_DATA_TYPE_TEXT
- #define ABOUT_TEXT8_FLAGS (TEXT_DATA_FLAG_CENTER)
- #define ABOUT_TEXT8_LEFT_EDGE 0
- #define ABOUT_TEXT8_TOP_EDGE (ABOUT_TEXT7_TOP_EDGE + 10)
- #define ABOUT_TEXT8_TEXT " - for this new release. "
- #define ABOUT_TEXT8_TEXT_ATTR &topaz80_attr
-
- #define ABOUT_BORDER_TYPE BORDER_DATA_TYPE_BOX2_OUT
- #define ABOUT_BORDER_LEFT_EDGE 10
- #define ABOUT_BORDER_TOP_EDGE 5
- #define ABOUT_BORDER_WIDTH (ABOUT_REQ_WIDTH - 2 * ABOUT_BORDER_LEFT_EDGE)
- #define ABOUT_BORDER_HEIGHT (ABOUT_REQ_HEIGHT - (3 * ABOUT_BORDER_TOP_EDGE + ABOUT_GADGET_HEIGHT))
-
- #define ABOUT_GADGET_TYPE GADGET_DATA_TYPE_BUTTON
- #define ABOUT_GADGET_FLAGS (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_MOVE_POINTER)
- #define ABOUT_GADGET_TEXT "_Continue"
- #define ABOUT_GADGET_LEFT_EDGE ((ABOUT_REQ_WIDTH - ABOUT_GADGET_WIDTH) / 2)
- #define ABOUT_GADGET_TOP_EDGE (ABOUT_REQ_HEIGHT - ABOUT_GADGET_HEIGHT - 5)
- #define ABOUT_GADGET_WIDTH ((8 + 2) * 8)
- #define ABOUT_GADGET_HEIGHT 15
- #define ABOUT_GADGET_TEXT_ATTR &topaz80_attr
-
- /* Statics for about requester */
-
- STATIC struct TextData about_text_data[]=
- {
- {
- ABOUT_TEXT1_TYPE, /* td_Type */
- ABOUT_TEXT1_FLAGS, /* td_Flags */
- ABOUT_TEXT1_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT1_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT1_TEXT, /* *td_Text */
- ABOUT_TEXT1_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT2_TYPE, /* td_Type */
- ABOUT_TEXT2_FLAGS, /* td_Flags */
- ABOUT_TEXT2_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT2_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT2_TEXT, /* *td_Text */
- ABOUT_TEXT2_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT3_TYPE, /* td_Type */
- ABOUT_TEXT3_FLAGS, /* td_Flags */
- ABOUT_TEXT3_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT3_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT3_TEXT, /* *td_Text */
- ABOUT_TEXT3_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT4_TYPE, /* td_Type */
- ABOUT_TEXT4_FLAGS, /* td_Flags */
- ABOUT_TEXT4_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT4_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT4_TEXT, /* *td_Text */
- ABOUT_TEXT4_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT5_TYPE, /* td_Type */
- ABOUT_TEXT5_FLAGS, /* td_Flags */
- ABOUT_TEXT5_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT5_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT5_TEXT, /* *td_Text */
- ABOUT_TEXT5_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT6_TYPE, /* td_Type */
- ABOUT_TEXT6_FLAGS, /* td_Flags */
- ABOUT_TEXT6_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT6_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT6_TEXT, /* *td_Text */
- ABOUT_TEXT6_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT7_TYPE, /* td_Type */
- ABOUT_TEXT7_FLAGS, /* td_Flags */
- ABOUT_TEXT7_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT7_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT7_TEXT, /* *td_Text */
- ABOUT_TEXT7_TEXT_ATTR /* *td_TextAttr */
- },
- {
- ABOUT_TEXT8_TYPE, /* td_Type */
- ABOUT_TEXT8_FLAGS, /* td_Flags */
- ABOUT_TEXT8_LEFT_EDGE, /* td_LeftEdge */
- ABOUT_TEXT8_TOP_EDGE, /* td_TopEdge */
- ABOUT_TEXT8_TEXT, /* *td_Text */
- ABOUT_TEXT8_TEXT_ATTR /* *td_TextAttr */
- },
- {
- INTUISUP_DATA_END /* mark end of text data array */
- }
- };
- STATIC struct BorderData about_border_data[]=
- {
- {
- ABOUT_BORDER_TYPE, /* bd_Type */
- ABOUT_BORDER_LEFT_EDGE, /* bd_LeftEdge */
- ABOUT_BORDER_TOP_EDGE, /* bd_TopEdge */
- ABOUT_BORDER_WIDTH, /* bd_Width */
- ABOUT_BORDER_HEIGHT /* bd_Height */
- },
- {
- INTUISUP_DATA_END /* mark end of border data array */
- }
- };
- STATIC struct GadgetData about_gadget_data[]=
- {
- {
- ABOUT_GADGET_TYPE, /* gd_Type */
- ABOUT_GADGET_FLAGS, /* gd_Flags */
- ABOUT_GADGET_LEFT_EDGE, /* gd_LeftEdge */
- ABOUT_GADGET_TOP_EDGE, /* gd_TopEdge */
- ABOUT_GADGET_WIDTH, /* gd_Width */
- ABOUT_GADGET_HEIGHT, /* gd_Height */
- ABOUT_GADGET_TEXT, /* *gd_Text */
- ABOUT_GADGET_TEXT_ATTR, /* *gd_TextAttr */
- {0, 0, 0}
- },
- {
- INTUISUP_DATA_END /* mark end of gadget data */
- }
- };
- STATIC struct RequesterData about_requester_data =
- {
- 0, /* rd_LeftEdge */
- 0, /* rd_TopEdge */
- ABOUT_REQ_WIDTH, /* rd_Width */
- ABOUT_REQ_HEIGHT, /* rd_Height */
- ABOUT_REQ_FLAGS, /* rd_Flags */
- ABOUT_REQ_TITLE, /* *rd_Title */
- &about_text_data[0], /* *rd_Texts */
- &about_border_data[0], /* *rd_Borders */
- &about_gadget_data[0] /* *rd_Gadgets */
- };
- /* Show error message as continue requester */
-
- VOID
- show_error(SHORT status)
- {
- BYTE *error;
-
- if (status < EDITOR_STATUS_NORMAL)
- {
- error = error_text[-(status + 1)];
- if (IntuiSupBase)
- {
- continue_requester(ERROR_WINDOW_TITLE, error);
- }
- else
- {
- if (IntuitionBase)
- {
- intuition_error_requester(error);
- }
- }
- }
- }
-
- /* Show IntuiSup continue requester */
-
- VOID
- continue_requester(BYTE * title, BYTE * text)
- {
- IAutoRequest(ewin, title, text, "_Continue", NULL, 0L, 0L,
- AUTO_REQ_REQ_FLAGS, NULL);
- }
-
- /* Show Intuition error requester */
-
- STATIC VOID
- intuition_error_requester(BYTE * text)
- {
- struct Screen screen, *scr = &screen;
- struct IntuiText itext_error, itext_ok;
- USHORT border_left, border_top, width, height, max_width;
-
- /* Get screen dimension */
- GetScreenData((BYTE *) scr, (LONG) sizeof(struct Screen),
- (LONG) WBENCHSCREEN, (LONG) NULL);
- border_left = scr->BarHeight - scr->BarVBorder + scr->WBorTop;
- border_top = scr->WBorTop;
-
- /* Init message text */
- itext_error.LeftEdge = border_left;
- itext_error.TopEdge = border_top + 4;
- itext_error.DrawMode = JAM1;
- itext_error.FrontPen = 2;
- itext_error.IText = (UBYTE *) text;
- itext_error.ITextFont = &topaz80_attr;
- itext_error.NextText = NULL;
- max_width = IntuiTextLength(&itext_error);
-
- /* Init ok text */
- itext_ok.LeftEdge = 6;
- itext_ok.TopEdge = 4;
- itext_ok.DrawMode = JAM1;
- itext_ok.FrontPen = 3;
- itext_ok.ITextFont = &topaz60_attr;
- itext_ok.IText = (UBYTE *) "Ok";
- itext_ok.NextText = NULL;
- if ((width = IntuiTextLength(&itext_ok) + 2 * 16) * 2 > max_width)
- {
- max_width = width;
- }
-
- /* Calc requester dimension and scale it if neccessary */
- width = max_width + border_left + scr->WBorRight + 2 * 16;
- if (width > scr->Width)
- {
- width = scr->Width;
- }
- height = border_top + scr->WBorBottom + 8 + 10 + 9 + 2 * 8 + 2 * 4;
- if (height > scr->Height)
- {
- height = scr->Height;
- }
- AutoRequest((LONG) NULL, &itext_error, &itext_ok, &itext_ok, 0L, 0L,
- (LONG) width, (LONG) height);
- }
-
- /* Show about requester */
-
- VOID
- about_requester(VOID)
- {
- APTR rl;
-
- if (rl = IDisplayRequester(ewin, &about_requester_data, NULL))
- {
- struct MsgPort *up = ewin->UserPort;
- BOOL keepon = TRUE;
-
- do
- {
- struct IntuiMessage *msg;
-
- WaitPort(up);
- while (msg = IGetMsg(up))
- {
- if (msg->Class == ISUP_ID)
- {
- keepon = FALSE;
- }
- IReplyMsg(msg);
- }
- }
- while (keepon == TRUE);
- IRemoveRequester(rl);
- }
- }
-
- /* Show IntuiSup ok/cancel requester */
-
- BOOL
- ok_cancel_requester(BYTE * title, BYTE * text)
- {
- return (IAutoRequest(ewin, title, text, "_Ok", "_Cancel", 0L, 0L,
- AUTO_REQ_REQ_FLAGS, NULL));
- }
-