1 /* 2 * Copyright (c) 1994 by Xerox Corporation. All rights reserved. 3 * 4 * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED 5 * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. 6 * 7 * Permission is hereby granted to use or copy this program 8 * for any purpose, provided the above notices are retained on all copies. 9 * Permission to modify the code and to distribute modified code is granted, 10 * provided the above notices are retained, and a notice that the code was 11 * modified is included with the above copyright notice. 12 */ 13 /* Boehm, May 19, 1994 2:25 pm PDT */ 14 15 /* cord.h, de_cmds.h, and windows.h should be included before this. */ 16 17 18 # define OTHER_FLAG 0x100 19 # define EDIT_CMD_FLAG 0x200 20 # define REPEAT_FLAG 0x400 21 22 # define CHAR_CMD(i) ((i) & 0xff) 23 24 /* MENU: DE */ 25 #define IDM_FILESAVE (EDIT_CMD_FLAG + WRITE) 26 #define IDM_FILEEXIT (OTHER_FLAG + 1) 27 #define IDM_HELPABOUT (OTHER_FLAG + 2) 28 #define IDM_HELPCONTENTS (OTHER_FLAG + 3) 29 30 #define IDM_EDITPDOWN (REPEAT_FLAG + EDIT_CMD_FLAG + DOWN) 31 #define IDM_EDITPUP (REPEAT_FLAG + EDIT_CMD_FLAG + UP) 32 #define IDM_EDITUNDO (EDIT_CMD_FLAG + UNDO) 33 #define IDM_EDITLOCATE (EDIT_CMD_FLAG + LOCATE) 34 #define IDM_EDITDOWN (EDIT_CMD_FLAG + DOWN) 35 #define IDM_EDITUP (EDIT_CMD_FLAG + UP) 36 #define IDM_EDITLEFT (EDIT_CMD_FLAG + LEFT) 37 #define IDM_EDITRIGHT (EDIT_CMD_FLAG + RIGHT) 38 #define IDM_EDITBS (EDIT_CMD_FLAG + BS) 39 #define IDM_EDITDEL (EDIT_CMD_FLAG + DEL) 40 #define IDM_EDITREPEAT (EDIT_CMD_FLAG + REPEAT) 41 #define IDM_EDITTOP (EDIT_CMD_FLAG + TOP) 42 43 44 45 46 /* Windows UI stuff */ 47 48 LRESULT CALLBACK WndProc (HWND hwnd, UINT message, 49 UINT wParam, LONG lParam); 50 51 LRESULT CALLBACK AboutBox( HWND hDlg, UINT message, 52 UINT wParam, LONG lParam ); 53 54 55 /* Screen dimensions. Maintained by de_win.c. */ 56 extern int LINES; 57 extern int COLS; 58 59 /* File being edited. */ 60 extern char * arg_file_name; 61 62 /* Current display position in file. Maintained by de.c */ 63 extern int dis_line; 64 extern int dis_col; 65 66 /* Current cursor position in file. */ 67 extern int line; 68 extern int col; 69 70 /* 71 * Calls from de_win.c to de.c 72 */ 73 74 CORD retrieve_screen_line(int i); 75 /* Get the contents of i'th screen line. */ 76 /* Relies on COLS. */ 77 78 void set_position(int x, int y); 79 /* Set column, row. Upper left of window = (0,0). */ 80 81 void do_command(int); 82 /* Execute an editor command. */ 83 /* Agument is a command character or one */ 84 /* of the IDM_ commands. */ 85 86 void generic_init(void); 87 /* OS independent initialization */ 88 89 90 /* 91 * Calls from de.c to de_win.c 92 */ 93 94 void move_cursor(int column, int line); 95 /* Physically move the cursor on the display, */ 96 /* so that it appears at */ 97 /* (column, line). */ 98 99 void invalidate_line(int line); 100 /* Invalidate line i on the screen. */ 101 102 void de_error(char *s); 103 /* Display error message. */