/* * Copyright (c) 1994 by Xerox Corporation. All rights reserved. * * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. * * Permission is hereby granted to use or copy this program * for any purpose, provided the above notices are retained on all copies. * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. */ /* Boehm, May 19, 1994 2:25 pm PDT */ /* cord.h, de_cmds.h, and windows.h should be included before this. */ # define OTHER_FLAG 0x100 # define EDIT_CMD_FLAG 0x200 # define REPEAT_FLAG 0x400 # define CHAR_CMD(i) ((i) & 0xff) /* MENU: DE */ #define IDM_FILESAVE (EDIT_CMD_FLAG + WRITE) #define IDM_FILEEXIT (OTHER_FLAG + 1) #define IDM_HELPABOUT (OTHER_FLAG + 2) #define IDM_HELPCONTENTS (OTHER_FLAG + 3) #define IDM_EDITPDOWN (REPEAT_FLAG + EDIT_CMD_FLAG + DOWN) #define IDM_EDITPUP (REPEAT_FLAG + EDIT_CMD_FLAG + UP) #define IDM_EDITUNDO (EDIT_CMD_FLAG + UNDO) #define IDM_EDITLOCATE (EDIT_CMD_FLAG + LOCATE) #define IDM_EDITDOWN (EDIT_CMD_FLAG + DOWN) #define IDM_EDITUP (EDIT_CMD_FLAG + UP) #define IDM_EDITLEFT (EDIT_CMD_FLAG + LEFT) #define IDM_EDITRIGHT (EDIT_CMD_FLAG + RIGHT) #define IDM_EDITBS (EDIT_CMD_FLAG + BS) #define IDM_EDITDEL (EDIT_CMD_FLAG + DEL) #define IDM_EDITREPEAT (EDIT_CMD_FLAG + REPEAT) #define IDM_EDITTOP (EDIT_CMD_FLAG + TOP) /* Windows UI stuff */ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam); LRESULT CALLBACK AboutBox( HWND hDlg, UINT message, UINT wParam, LONG lParam ); /* Screen dimensions. Maintained by de_win.c. */ extern int LINES; extern int COLS; /* File being edited. */ extern char * arg_file_name; /* Current display position in file. Maintained by de.c */ extern int dis_line; extern int dis_col; /* Current cursor position in file. */ extern int line; extern int col; /* * Calls from de_win.c to de.c */ CORD retrieve_screen_line(int i); /* Get the contents of i'th screen line. */ /* Relies on COLS. */ void set_position(int x, int y); /* Set column, row. Upper left of window = (0,0). */ void do_command(int); /* Execute an editor command. */ /* Agument is a command character or one */ /* of the IDM_ commands. */ void generic_init(void); /* OS independent initialization */ /* * Calls from de.c to de_win.c */ void move_cursor(int column, int line); /* Physically move the cursor on the display, */ /* so that it appears at */ /* (column, line). */ void invalidate_line(int line); /* Invalidate line i on the screen. */ void de_error(char *s); /* Display error message. */