/* Copyright 1997 Acorn Computers Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/***************************************************/
/* File   : Printing.h                             */
/*                                                 */
/* Purpose: Printing functions for the browser.    */
/*                                                 */
/* Author : A.D.Hodgkinson                         */
/*                                                 */
/* History: 27-Jan-97: Created.                    */
/***************************************************/

/* Message definitions */

#define Browser_Message_PrintFile      0x80140
#define Browser_Message_WillPrint      0x80141
#define Browser_Message_PrintSave      0x80142
#define Browser_Message_PrintError     0x80144
#define Browser_Message_PrintTypeOdd   0x80145
#define Browser_Message_PrintTypeKnown 0x80146

/* (RAM transfer not supported in this version of the code) */

#define Browser_Message_DataSave       0x00001
#define Browser_Message_DataSaveAck    0x00002
#define Browser_Message_DataLoad       0x00003
#define Browser_Message_DataLoadAck    0x00004
#define Browser_Message_DataOpen       0x00005

/* Printer driver features */

#define Browser_Printer_Colour             1 << 0
#define Browser_Printer_LimitedColours     1 << 1
#define Browser_Printer_DiscreteColours    1 << 2
#define Browser_Printer_OutlinesOnly       1 << 8
#define Browser_Printer_ThinLinesOnly      1 << 9
#define Browser_Printer_NoOverwriting      1 << 10
#define Browser_Printer_TransformsSprites  1 << 11
#define Browser_Printer_TransformsFonts    1 << 12
#define Browser_Printer_PreScansRectangles 1 << 13
#define Browser_Printer_ScreenDumps        1 << 24
#define Browser_Printer_TransformsPages    1 << 25
#define Browser_Printer_InsertIllustration 1 << 26
#define Browser_Printer_MiscOp             1 << 27
#define Browser_Printer_SetDriver          1 << 28
#define Browser_Printer_DeclareFont        1 << 29

/* Function prototypes */

int               print_initiate       (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
int               print_to_be_shown    (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
int               print_restore        (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);
void              print_print          (const char * path);
_kernel_oserror * print_page           (browser_data * b, int copies, int from, int to, int reformat, int orientation, const char * path);
void              print_abort_print    (void);

int               print_check_contents (int eventcode, ToolboxEvent * event, IdBlock * idb, void * handle);