diff options
author | Henry Stiles <henry.stiles@artifex.com> | 1998-07-26 07:36:41 +0000 |
---|---|---|
committer | Henry Stiles <henry.stiles@artifex.com> | 1998-07-26 07:36:41 +0000 |
commit | eec0ef527f18c5978c4476c9490f4de4c4249628 (patch) | |
tree | 5588d5e1300a245186594893c930949a19bcbbce /gs/src/dwtext.h | |
parent | d4bdba93ef34f68d27148e1b31088d1d3e786e8c (diff) | |
download | ghostpdl-eec0ef527f18c5978c4476c9490f4de4c4249628.tar.gz |
Initial revision
git-svn-id: http://svn.ghostscript.com/ghostpcl/trunk/ghostpcl@246 06663e23-700e-0410-b217-a244a6096597
Diffstat (limited to 'gs/src/dwtext.h')
-rw-r--r-- | gs/src/dwtext.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/gs/src/dwtext.h b/gs/src/dwtext.h new file mode 100644 index 000000000..210adcad8 --- /dev/null +++ b/gs/src/dwtext.h @@ -0,0 +1,144 @@ +/* Copyright (C) 1996, Russell Lang. All rights reserved. + + This file is part of Aladdin Ghostscript. + + Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author + or distributor accepts any responsibility for the consequences of using it, + or for whether it serves any particular purpose or works at all, unless he + or she says so in writing. Refer to the Aladdin Ghostscript Free Public + License (the "License") for full details. + + Every copy of Aladdin Ghostscript must include a copy of the License, + normally in a plain ASCII text file named PUBLIC. The License grants you + the right to copy, modify and redistribute Aladdin Ghostscript, but only + under certain conditions described in the License. Among other things, the + License requires that the copyright notice and this notice be preserved on + all copies. +*/ + + +// dwtext.h +// Text Window class + + +#ifdef _WINDOWS +#define _Windows +#endif + + +/* ================================== */ +/* text window class */ + + +class TextWindow { + HINSTANCE hInstance; /* required */ + LPSTR Title; /* required */ + HICON hIcon; /* optional */ + + BYTE FAR *ScreenBuffer; + POINT ScreenSize; /* optional */ + char *DragPre; /* optional */ + char *DragPost; /* optional */ + int nCmdShow; /* optional */ + HWND hwnd; + + BYTE FAR *KeyBuf; + BYTE FAR *KeyBufIn; + BYTE FAR *KeyBufOut; + unsigned int KeyBufSize; + BOOL quitnow; + + BOOL bFocus; + BOOL bGetCh; + char *fontname; // font name + int fontsize; // font size in pts + HFONT hfont; + int CharAscent; + + int CaretHeight; + int CursorFlag; + POINT CursorPos; + POINT ClientSize; + POINT CharSize; + POINT ScrollPos; + POINT ScrollMax; + + void error(char *message); + void new_line(void); + void update_text(int count); + void drag_drop(HDROP hdrop); + void copy_to_clipboard(void); + +public: + // constructor + TextWindow(void); + + // destructor + ~TextWindow(void); + + // register window class + int register_class(HINSTANCE hinst, HICON hicon); + + // test if a key has been pressed + // return TRUE if key hit + // return FALSE if no key + int kbhit(void); + + // Get a character from the keyboard, waiting if necessary + int getch(void); + + // Get a line from the keyboard + // store line in buf, with no more than len characters + // including null character + // return number of characters read + int gets(LPSTR buf, int len); + + // Get a line from the keyboard + // store line in buf, with no more than len characters + // line is not null terminated + // return number of characters read + int read_line(LPSTR buf, int len); + + // Put a character to the window + int putch(int ch); + + // Write cnt character from buf to the window + void write_buf(LPSTR buf, int cnt); + + // Put a string to the window + void puts(LPSTR str); + + // Scroll window to make cursor visible + void to_cursor(void); + + // Create and show window with given name and min/max/normal state + // return 0 on success, non-zero on error + int create(LPSTR title, int cmdShow); + + // Destroy window + int destroy(void); + + // Set window font and size + // a must choose monospaced + void font(const char *fontname, int fontsize); + + // Set screen size in characters + void size(int width, int height); + + // Set pre drag and post drag strings + // If a file is dropped on the window, the following will + // be poked into the keyboard buffer: + // the pre_drag string + // the file name + // the post_drag string + void drag(const char *pre_drag, const char *post_drag); + + // member window procedure + LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); + + // provide access to window handle + HWND get_handle(void) { return hwnd; }; +}; + +/* ================================== */ + |