Mercurial > hg > xemacs-beta
annotate src/console-msw-impl.h @ 5492:e82f5b7010fe
Merge some stuff in man, fix up Makefile
-------------------- ChangeLog entries follow: --------------------
man/ChangeLog addition:
2010-02-19 Ben Wing <ben@xemacs.org>
* widget.texi:
* widget.texi (Top):
* widget.texi (Introduction):
* widget.texi (User Interface):
* widget.texi (Programming Example):
* widget.texi (Setting Up the Buffer):
* widget.texi (Basic Types):
* widget.texi (link):
* widget.texi (url-link):
* widget.texi (info-link):
* widget.texi (push-button):
* widget.texi (editable-field):
* widget.texi (text):
* widget.texi (menu-choice):
* widget.texi (radio-button-choice):
* widget.texi (item):
* widget.texi (choice-item):
* widget.texi (toggle):
* widget.texi (checkbox):
* widget.texi (checklist):
* widget.texi (editable-list):
* widget.texi (group):
* widget.texi (Sexp Types):
* widget.texi (constants):
* widget.texi (generic):
* widget.texi (atoms):
* widget.texi (composite):
* widget.texi (Widget Properties):
* widget.texi (Defining New Widgets):
* widget.texi (Widget Browser):
* widget.texi (Widget Minor Mode):
* widget.texi (Utilities):
* widget.texi (Widget Wishlist):
* widget.texi (Widget Internals):
* widget.texi (GNU Free Documentation License):
* widget.texi (Index):
Sync with FSF 23.1.92.
2010-02-19 Ben Wing <ben@xemacs.org>
* texinfo/fdl.texi: New file.
* texinfo/texinfo.texi:
* texinfo/texinfo.texi (Top):
* texinfo/texinfo.texi (Copying Conditions):
* texinfo/texinfo.texi (Overview):
* texinfo/texinfo.texi (Reporting Bugs):
* texinfo/texinfo.texi (Using Texinfo):
* texinfo/texinfo.texi (Output Formats):
* texinfo/texinfo.texi (Info Files):
* texinfo/texinfo.texi (Printed Books):
* texinfo/texinfo.texi (Formatting Commands):
* texinfo/texinfo.texi (Conventions):
* texinfo/texinfo.texi (Comments):
* texinfo/texinfo.texi (Minimum):
* texinfo/texinfo.texi (Six Parts):
* texinfo/texinfo.texi (Short Sample):
* texinfo/texinfo.texi (History):
* texinfo/texinfo.texi (Texinfo Mode):
* texinfo/texinfo.texi (Texinfo Mode Overview):
* texinfo/texinfo.texi (XEmacs Editing):
* texinfo/texinfo.texi (Inserting):
* texinfo/texinfo.texi (Showing the Structure):
* texinfo/texinfo.texi (Updating Nodes and Menus):
* texinfo/texinfo.texi (Updating Commands):
* texinfo/texinfo.texi (Updating Requirements):
* texinfo/texinfo.texi (Other Updating Commands):
* texinfo/texinfo.texi (Info Formatting):
* texinfo/texinfo.texi (Printing):
* texinfo/texinfo.texi (Texinfo Mode Summary):
* texinfo/texinfo.texi (Beginning a File):
* texinfo/texinfo.texi (Sample Beginning):
* texinfo/texinfo.texi (Texinfo File Header):
* texinfo/texinfo.texi (First Line):
* texinfo/texinfo.texi (Start of Header):
* texinfo/texinfo.texi (setfilename):
* texinfo/texinfo.texi (settitle):
* texinfo/texinfo.texi (End of Header):
* texinfo/texinfo.texi (Document Permissions):
* texinfo/texinfo.texi (copying):
* texinfo/texinfo.texi (insertcopying):
* texinfo/texinfo.texi (Titlepage & Copyright Page):
* texinfo/texinfo.texi (titlepage):
* texinfo/texinfo.texi (titlefont center sp):
* texinfo/texinfo.texi (title subtitle author):
* texinfo/texinfo.texi (Copyright):
* texinfo/texinfo.texi (end titlepage):
* texinfo/texinfo.texi (headings on off):
* texinfo/texinfo.texi (Contents):
* texinfo/texinfo.texi (The Top Node):
* texinfo/texinfo.texi (Top Node Example):
* texinfo/texinfo.texi (Master Menu Parts):
* texinfo/texinfo.texi (Global Document Commands):
* texinfo/texinfo.texi (documentdescription):
* texinfo/texinfo.texi (setchapternewpage):
* texinfo/texinfo.texi (paragraphindent):
* texinfo/texinfo.texi (firstparagraphindent):
* texinfo/texinfo.texi (exampleindent):
* texinfo/texinfo.texi (Software Copying Permissions):
* texinfo/texinfo.texi (Ending a File):
* texinfo/texinfo.texi (Printing Indices & Menus):
* texinfo/texinfo.texi (File End):
* texinfo/texinfo.texi (Structuring):
* texinfo/texinfo.texi (Tree Structuring):
* texinfo/texinfo.texi (Structuring Command Types):
* texinfo/texinfo.texi (makeinfo top):
* texinfo/texinfo.texi (chapter):
* texinfo/texinfo.texi (unnumbered & appendix):
* texinfo/texinfo.texi (majorheading & chapheading):
* texinfo/texinfo.texi (section):
* texinfo/texinfo.texi (unnumberedsec appendixsec heading):
* texinfo/texinfo.texi (subsection):
* texinfo/texinfo.texi (unnumberedsubsec appendixsubsec subheading):
* texinfo/texinfo.texi (subsubsection):
* texinfo/texinfo.texi (Raise/lower sections):
* texinfo/texinfo.texi (Nodes):
* texinfo/texinfo.texi (Two Paths):
* texinfo/texinfo.texi (Node Menu Illustration):
* texinfo/texinfo.texi (node):
* texinfo/texinfo.texi (Node Names):
* texinfo/texinfo.texi (Writing a Node):
* texinfo/texinfo.texi (Node Line Tips):
* texinfo/texinfo.texi (Node Line Requirements):
* texinfo/texinfo.texi (First Node):
* texinfo/texinfo.texi (makeinfo top command):
* texinfo/texinfo.texi (makeinfo Pointer Creation):
* texinfo/texinfo.texi (anchor):
* texinfo/texinfo.texi (Menus):
* texinfo/texinfo.texi (Menu Location):
* texinfo/texinfo.texi (Writing a Menu):
* texinfo/texinfo.texi (Menu Parts):
* texinfo/texinfo.texi (Less Cluttered Menu Entry):
* texinfo/texinfo.texi (Menu Example):
* texinfo/texinfo.texi (Other Info Files):
* texinfo/texinfo.texi (Cross References):
* texinfo/texinfo.texi (References):
* texinfo/texinfo.texi (Cross Reference Commands):
* texinfo/texinfo.texi (Cross Reference Parts):
* texinfo/texinfo.texi (xref):
* texinfo/texinfo.texi (Reference Syntax):
* texinfo/texinfo.texi (One Argument):
* texinfo/texinfo.texi (Two Arguments):
* texinfo/texinfo.texi (Three Arguments):
* texinfo/texinfo.texi (Four and Five Arguments):
* texinfo/texinfo.texi (Top Node Naming):
* texinfo/texinfo.texi (ref):
* texinfo/texinfo.texi (pxref):
* texinfo/texinfo.texi (inforef):
* texinfo/texinfo.texi (uref):
* texinfo/texinfo.texi (cite):
* texinfo/texinfo.texi (Marking Text):
* texinfo/texinfo.texi (Indicating):
* texinfo/texinfo.texi (Useful Highlighting):
* texinfo/texinfo.texi (code):
* texinfo/texinfo.texi (kbd):
* texinfo/texinfo.texi (key):
* texinfo/texinfo.texi (samp):
* texinfo/texinfo.texi (verb):
* texinfo/texinfo.texi (var):
* texinfo/texinfo.texi (env):
* texinfo/texinfo.texi (file):
* texinfo/texinfo.texi (command):
* texinfo/texinfo.texi (option):
* texinfo/texinfo.texi (dfn):
* texinfo/texinfo.texi (abbr):
* texinfo/texinfo.texi (acronym):
* texinfo/texinfo.texi (indicateurl):
* texinfo/texinfo.texi (email):
* texinfo/texinfo.texi (Emphasis):
* texinfo/texinfo.texi (emph & strong):
* texinfo/texinfo.texi (Smallcaps):
* texinfo/texinfo.texi (Fonts):
* texinfo/texinfo.texi (Quotations and Examples):
* texinfo/texinfo.texi (Block Enclosing Commands):
* texinfo/texinfo.texi (quotation):
* texinfo/texinfo.texi (example):
* texinfo/texinfo.texi (verbatim):
* texinfo/texinfo.texi (verbatiminclude):
* texinfo/texinfo.texi (lisp):
* texinfo/texinfo.texi (small):
* texinfo/texinfo.texi (display):
* texinfo/texinfo.texi (format):
* texinfo/texinfo.texi (exdent):
* texinfo/texinfo.texi (flushleft & flushright):
* texinfo/texinfo.texi (noindent):
* texinfo/texinfo.texi (indent):
* texinfo/texinfo.texi (cartouche):
* texinfo/texinfo.texi (Lists and Tables):
* texinfo/texinfo.texi (Introducing Lists):
* texinfo/texinfo.texi (itemize):
* texinfo/texinfo.texi (enumerate):
* texinfo/texinfo.texi (Two-column Tables):
* texinfo/texinfo.texi (table):
* texinfo/texinfo.texi (ftable vtable):
* texinfo/texinfo.texi (itemx):
* texinfo/texinfo.texi (Multi-column Tables):
* texinfo/texinfo.texi (Multitable Column Widths):
* texinfo/texinfo.texi (Multitable Rows):
* texinfo/texinfo.texi (Special Displays):
* texinfo/texinfo.texi (Floats):
* texinfo/texinfo.texi (float):
* texinfo/texinfo.texi (caption shortcaption):
* texinfo/texinfo.texi (listoffloats):
* texinfo/texinfo.texi (Images):
* texinfo/texinfo.texi (Image Syntax):
* texinfo/texinfo.texi (Image Scaling):
* texinfo/texinfo.texi (Footnotes):
* texinfo/texinfo.texi (Footnote Commands):
* texinfo/texinfo.texi (Footnote Styles):
* texinfo/texinfo.texi (Indices):
* texinfo/texinfo.texi (Index Entries):
* texinfo/texinfo.texi (Predefined Indices):
* texinfo/texinfo.texi (Indexing Commands):
* texinfo/texinfo.texi (Combining Indices):
* texinfo/texinfo.texi (syncodeindex):
* texinfo/texinfo.texi (synindex):
* texinfo/texinfo.texi (New Indices):
* texinfo/texinfo.texi (Insertions):
* texinfo/texinfo.texi (Atsign Braces Comma):
* texinfo/texinfo.texi (Inserting an Atsign):
* texinfo/texinfo.texi (Inserting Braces):
* texinfo/texinfo.texi (Inserting a Comma):
* texinfo/texinfo.texi (Inserting Quote Characters):
* texinfo/texinfo.texi (Inserting Space):
* texinfo/texinfo.texi (Not Ending a Sentence):
* texinfo/texinfo.texi (Ending a Sentence):
* texinfo/texinfo.texi (Multiple Spaces):
* texinfo/texinfo.texi (frenchspacing):
* texinfo/texinfo.texi (dmn):
* texinfo/texinfo.texi (Inserting Accents):
* texinfo/texinfo.texi (Inserting Quotation Marks):
* texinfo/texinfo.texi (Dots Bullets):
* texinfo/texinfo.texi (dots):
* texinfo/texinfo.texi (bullet):
* texinfo/texinfo.texi (TeX and copyright):
* texinfo/texinfo.texi (tex):
* texinfo/texinfo.texi (copyright symbol):
* texinfo/texinfo.texi (registered symbol):
* texinfo/texinfo.texi (euro):
* texinfo/texinfo.texi (pounds):
* texinfo/texinfo.texi (textdegree):
* texinfo/texinfo.texi (minus):
* texinfo/texinfo.texi (geq leq):
* texinfo/texinfo.texi (math):
* texinfo/texinfo.texi (Click Sequences):
* texinfo/texinfo.texi (Glyphs):
* texinfo/texinfo.texi (Glyphs Summary):
* texinfo/texinfo.texi (result):
* texinfo/texinfo.texi (expansion):
* texinfo/texinfo.texi (Print Glyph):
* texinfo/texinfo.texi (Error Glyph):
* texinfo/texinfo.texi (Equivalence):
* texinfo/texinfo.texi (Point Glyph):
* texinfo/texinfo.texi (Breaks):
* texinfo/texinfo.texi (Break Commands):
* texinfo/texinfo.texi (Line Breaks):
* texinfo/texinfo.texi (- and hyphenation):
* texinfo/texinfo.texi (allowcodebreaks):
* texinfo/texinfo.texi (w):
* texinfo/texinfo.texi (tie):
* texinfo/texinfo.texi (sp):
* texinfo/texinfo.texi (page):
* texinfo/texinfo.texi (group):
* texinfo/texinfo.texi (need):
* texinfo/texinfo.texi (Definition Commands):
* texinfo/texinfo.texi (Def Cmd Template):
* texinfo/texinfo.texi (Def Cmd Continuation Lines):
* texinfo/texinfo.texi (Optional Arguments):
* texinfo/texinfo.texi (deffnx):
* texinfo/texinfo.texi (Def Cmds in Detail):
* texinfo/texinfo.texi (Functions Commands):
* texinfo/texinfo.texi (Variables Commands):
* texinfo/texinfo.texi (Typed Functions):
* texinfo/texinfo.texi (Typed Variables):
* texinfo/texinfo.texi (Data Types):
* texinfo/texinfo.texi (Abstract Objects):
* texinfo/texinfo.texi (Object-Oriented Variables):
* texinfo/texinfo.texi (Object-Oriented Methods):
* texinfo/texinfo.texi (Defining Macros):
* texinfo/texinfo.texi (Invoking Macros):
* texinfo/texinfo.texi (Macro Details):
* texinfo/texinfo.texi (alias):
* texinfo/texinfo.texi (definfoenclose):
* texinfo/texinfo.texi (Hardcopy):
* texinfo/texinfo.texi (Use TeX):
* texinfo/texinfo.texi (Format with tex/texindex):
* texinfo/texinfo.texi (Format with texi2dvi):
* texinfo/texinfo.texi (Print with lpr):
* texinfo/texinfo.texi (Within XEmacs):
* texinfo/texinfo.texi (Texinfo Mode Printing):
* texinfo/texinfo.texi (Compile-Command):
* texinfo/texinfo.texi (Requirements Summary):
* texinfo/texinfo.texi (Preparing for TeX):
* texinfo/texinfo.texi (Overfull hboxes):
* texinfo/texinfo.texi (smallbook):
* texinfo/texinfo.texi (A4 Paper):
* texinfo/texinfo.texi (pagesizes):
* texinfo/texinfo.texi (Cropmarks and Magnification):
* texinfo/texinfo.texi (PDF Output):
* texinfo/texinfo.texi (Obtaining TeX):
* texinfo/texinfo.texi (Creating and Installing Info Files):
* texinfo/texinfo.texi (Creating an Info File):
* texinfo/texinfo.texi (makeinfo advantages):
* texinfo/texinfo.texi (Invoking makeinfo):
* texinfo/texinfo.texi (makeinfo options):
* texinfo/texinfo.texi (Pointer Validation):
* texinfo/texinfo.texi (makeinfo in XEmacs):
* texinfo/texinfo.texi (texinfo-format commands):
* texinfo/texinfo.texi (Batch Formatting):
* texinfo/texinfo.texi (Tag and Split Files):
* texinfo/texinfo.texi (Installing an Info File):
* texinfo/texinfo.texi (Directory File):
* texinfo/texinfo.texi (New Info File):
* texinfo/texinfo.texi (Other Info Directories):
* texinfo/texinfo.texi (Installing Dir Entries):
* texinfo/texinfo.texi (Invoking install-info):
* texinfo/texinfo.texi (Generating HTML):
* texinfo/texinfo.texi (HTML Translation):
* texinfo/texinfo.texi (HTML Splitting):
* texinfo/texinfo.texi (HTML CSS):
* texinfo/texinfo.texi (HTML Xref):
* texinfo/texinfo.texi (HTML Xref Link Basics):
* texinfo/texinfo.texi (HTML Xref Node Name Expansion):
* texinfo/texinfo.texi (HTML Xref Command Expansion):
* texinfo/texinfo.texi (HTML Xref 8-bit Character Expansion):
* texinfo/texinfo.texi (HTML Xref Mismatch):
* texinfo/texinfo.texi (Command List):
* texinfo/texinfo.texi (Command Syntax):
* texinfo/texinfo.texi (Tips):
* texinfo/texinfo.texi (Sample Texinfo Files):
* texinfo/texinfo.texi (Short Sample Texinfo File):
* texinfo/texinfo.texi (GNU Sample Texts):
* texinfo/texinfo.texi (Invoking sample):
* texinfo/texinfo.texi (GNU Free Documentation License):
* texinfo/texinfo.texi (Index):
* texinfo/texinfo.texi (Verbatim Copying License):
* texinfo/texinfo.texi (All-permissive Copying License):
* texinfo/texinfo.texi (Include Files):
* texinfo/texinfo.texi (Using Include Files):
* texinfo/texinfo.texi (texinfo-multiple-files-update):
* texinfo/texinfo.texi (Include Files Requirements):
* texinfo/texinfo.texi (Sample Include File):
* texinfo/texinfo.texi (Include Files Evolution):
* texinfo/texinfo.texi (Headings):
* texinfo/texinfo.texi (Headings Introduced):
* texinfo/texinfo.texi (Heading Format):
* texinfo/texinfo.texi (Heading Choice):
* texinfo/texinfo.texi (Custom Headings):
* texinfo/texinfo.texi (Catching Mistakes):
* texinfo/texinfo.texi (makeinfo Preferred):
* texinfo/texinfo.texi (Debugging with Info):
* texinfo/texinfo.texi (Debugging with TeX):
* texinfo/texinfo.texi (Using texinfo-show-structure):
* texinfo/texinfo.texi (Using occur):
* texinfo/texinfo.texi (Running Info-Validate):
* texinfo/texinfo.texi (Using Info-validate):
* texinfo/texinfo.texi (Unsplit):
* texinfo/texinfo.texi (Tagifying):
* texinfo/texinfo.texi (Splitting):
* texinfo/texinfo.texi (Refilling Paragraphs):
* texinfo/texinfo.texi (Command and Variable Index):
* texinfo/texinfo.texi (General Index):
* texinfo/version.texi: New file.
Sync with FSF 23.1.92. Make new directory to hold the files needed
to generate texinfo.info, since there are three such files now.
2010-02-19 Ben Wing <ben@xemacs.org>
* Makefile:
* Makefile (src_files1):
* Makefile (DIR):
* Makefile (texinfo-srcs):
* Makefile ($(INFODIR)/widget.info):
* Makefile ($(INFODIR)/texinfo.info):
* Makefile (.PHONY):
* Makefile (texinfo.dvi):
* Makefile (texinfo.pdf):
* Makefile ($(HTMLDIR)/widget.html):
* Makefile ($(HTMLDIR)/texinfo.html):
Incorporate texinfo.texi moving to a subdirectory texinfo/.
Do some tricks to reduce the amount of duplication while still
maintaining compatible with non-GNU make (at least, with
Solaris make).
* doclicense.texi: New file.
* info.texi:
* info.texi (Top):
* info.texi (Getting Started):
* info.texi (Help-Small-Screen):
* info.texi (Help):
* info.texi (Help-P):
* info.texi (Help-^L):
* info.texi (Help-Inv):
* info.texi (Help-]):
* info.texi (Help-M):
* info.texi (Help-FOO):
* info.texi (Help-Xref):
* info.texi (Help-Int):
* info.texi (Help-Q):
* info.texi (Advanced):
* info.texi (Search Text):
* info.texi (Search Index):
* info.texi (Go to node):
* info.texi (Choose menu subtopic):
* info.texi (Create Info buffer):
* info.texi (XEmacs Info Variables):
* info.texi (Expert Info):
* info.texi (Add):
* info.texi (Menus):
* info.texi (Cross-refs):
* info.texi (Help-Cross):
* info.texi (Tags):
* info.texi (Checking):
* info.texi (Index):
* texinfo.tex:
* texinfo.tex (paragraphindent{%):
* texinfo.tex (sectionheading will have):
* texinfo.tex (chapterzzz{#3}%):
* texinfo.tex (subsubsection = \numberedsubsubsec):
* texinfo.tex (subsubsection = \appendixsubsubsec):
* texinfo.tex (subsubsection = \unnumberedsubsubsec):
* texinfo.tex (sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%):
* texinfo.tex (sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%):
* texinfo.tex (sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%):
* texinfo.tex (sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%):
* texinfo.tex (sectionheading{#1}{subsec}{Yappendix}%):
* texinfo.tex (sectionheading{#1}{subsec}{Ynothing}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Ynumbered}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Yappendix}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Ynothing}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Yomitfromtoc}{}):
* texinfo.tex (sectionheading to do the printing.):
* texinfo.tex (sectionlevel}{#1}{#4}%):
* texinfo.tex (sectionheading, q.v.):
Sync with FSF 23.1.92.
| author | Ben Wing <ben@xemacs.org> |
|---|---|
| date | Fri, 19 Feb 2010 22:39:19 -0600 |
| parents | 141c2920ea48 |
| children | d0c14ea98592 e0db3c197671 |
| rev | line source |
|---|---|
| 872 | 1 /* Define mswindows-specific console, device, and frame object for XEmacs. |
| 2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | |
| 3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. | |
| 4 Copyright (C) 2001, 2002 Ben Wing. | |
| 5 | |
| 6 This file is part of XEmacs. | |
| 7 | |
| 8 XEmacs is free software; you can redistribute it and/or modify it | |
| 9 under the terms of the GNU General Public License as published by the | |
| 10 Free Software Foundation; either version 2, or (at your option) any | |
| 11 later version. | |
| 12 | |
| 13 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
| 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| 16 for more details. | |
| 17 | |
| 18 You should have received a copy of the GNU General Public License | |
| 19 along with XEmacs; see the file COPYING. If not, write to | |
| 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 21 Boston, MA 02111-1307, USA. */ | |
| 22 | |
| 23 /* Synched up with: Not in FSF. */ | |
| 24 | |
| 25 /* This file essentially Mule-ized (except perhaps some Unicode splitting). | |
| 26 5-2000. */ | |
| 27 | |
| 28 /* Authorship: | |
| 29 | |
| 30 Ultimately based on FSF, then later on JWZ work for Lemacs. | |
| 31 Rewritten over time by Ben Wing and Chuck Thompson. | |
| 32 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. | |
| 33 */ | |
| 34 | |
| 35 #ifndef INCLUDED_console_msw_impl_h_ | |
| 36 #define INCLUDED_console_msw_impl_h_ | |
| 37 | |
| 38 #include "console-impl.h" | |
| 39 #include "console-msw.h" | |
| 40 | |
| 41 /* | |
| 42 * Consoles | |
| 43 */ | |
| 44 | |
| 45 DECLARE_CONSOLE_TYPE (mswindows); | |
| 46 | |
| 47 struct mswindows_console | |
| 48 { | |
| 49 int infd, outfd; | |
| 50 }; | |
| 51 | |
| 52 DECLARE_CONSOLE_TYPE (msprinter); | |
| 53 | |
| 54 /* | |
| 55 * Printer settings, aka devmode | |
| 56 */ | |
| 57 | |
| 903 | 58 struct Lisp_Devmode |
| 872 | 59 { |
| 3017 | 60 struct LCRECORD_HEADER header; |
| 872 | 61 |
| 62 /* Pointer to the DEVMODE structure */ | |
| 63 DEVMODEW *devmode; | |
| 64 | |
| 65 /* Full printer name. It can be longer than devmode->dmDeviceName | |
| 66 can accommodate, so need to keep it separately */ | |
| 67 Lisp_Object printer_name; | |
| 68 | |
| 69 /* Printer device this object is currently selected in, or Qnil | |
| 70 if not selected */ | |
| 71 Lisp_Object device; | |
| 72 | |
| 903 | 73 }; |
| 872 | 74 |
| 75 #define DEVMODE_SIZE(dm) ((dm)->dmSize + (dm)->dmDriverExtra) | |
| 76 #define XDEVMODE_SIZE(x) ((x)->devmode ? DEVMODE_SIZE((x)->devmode) : 0) | |
| 77 | |
| 78 /* | |
| 79 * Devices | |
| 80 */ | |
| 81 | |
| 82 struct mswindows_device | |
| 83 { | |
| 3092 | 84 #ifdef NEW_GC |
| 85 struct lrecord_header header; | |
| 86 #endif /* NEW_GC */ | |
| 872 | 87 Lisp_Object fontlist; /* List of (STRING . FIXED-P), device fonts */ |
| 88 HDC hcdc; /* Compatible DC */ | |
| 89 DWORD update_tick; /* Used when device is modified through | |
| 90 Windows messages, see WM_DISPLAYCHANGE | |
| 91 in event-msw.c */ | |
| 92 }; | |
| 93 | |
| 3092 | 94 #ifdef NEW_GC |
| 95 typedef struct mswindows_device Lisp_Mswindows_Device; | |
| 96 | |
| 97 DECLARE_LRECORD (mswindows_device, Lisp_Mswindows_Device); | |
| 98 | |
| 99 #define XMSWINDOWS_DEVICE(x) \ | |
| 100 XRECORD (x, mswindows_device, Lisp_Mswindows_Device) | |
| 101 #define wrap_mswindows_device(p) wrap_record (p, mswindows_device) | |
| 102 #define MSWINDOWS_DEVICE_P(x) RECORDP (x, mswindows_device) | |
| 103 #endif /* NEW_GC */ | |
| 104 | |
| 872 | 105 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) |
| 106 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) | |
| 107 #define DEVICE_MSWINDOWS_HCDC(d) (DEVICE_MSWINDOWS_DATA (d)->hcdc) | |
| 108 #define DEVICE_MSWINDOWS_UPDATE_TICK(d) (DEVICE_MSWINDOWS_DATA (d)->update_tick) | |
| 109 | |
| 110 struct msprinter_device | |
| 111 { | |
| 3092 | 112 #ifdef NEW_GC |
| 113 struct lrecord_header header; | |
| 114 #endif /* NEW_GC */ | |
| 872 | 115 HDC hdc, hcdc; /* Printer and the comp. DCs */ |
| 116 HANDLE hprinter; | |
| 117 Lisp_Object name; | |
| 118 Lisp_Object devmode; | |
| 119 Lisp_Object fontlist; | |
| 120 }; | |
| 121 | |
| 3092 | 122 #ifdef NEW_GC |
| 123 typedef struct msprinter_device Lisp_Msprinter_Device; | |
| 124 | |
| 125 DECLARE_LRECORD (msprinter_device, Lisp_Msprinter_Device); | |
| 126 | |
| 127 #define XMSPRINTER_DEVICE(x) \ | |
| 128 XRECORD (x, msprinter_device, Lisp_Msprinter_Device) | |
| 129 #define wrap_msprinter_device(p) wrap_record (p, msprinter_device) | |
| 130 #define MSPRINTER_DEVICE_P(x) RECORDP (x, msprinter_device) | |
| 131 #endif /* NEW_GC */ | |
| 132 | |
| 872 | 133 #define DEVICE_MSPRINTER_DATA(d) DEVICE_TYPE_DATA (d, msprinter) |
| 134 #define DEVICE_MSPRINTER_HDC(d) (DEVICE_MSPRINTER_DATA (d)->hdc) | |
| 135 #define DEVICE_MSPRINTER_HCDC(d) (DEVICE_MSPRINTER_DATA (d)->hcdc) | |
| 136 #define DEVICE_MSPRINTER_HPRINTER(d) (DEVICE_MSPRINTER_DATA (d)->hprinter) | |
| 137 #define DEVICE_MSPRINTER_FONTLIST(d) (DEVICE_MSPRINTER_DATA (d)->fontlist) | |
| 138 #define DEVICE_MSPRINTER_NAME(d) (DEVICE_MSPRINTER_DATA (d)->name) | |
| 139 #define DEVICE_MSPRINTER_DEVMODE(d) (DEVICE_MSPRINTER_DATA (d)->devmode) | |
| 140 | |
| 141 #define CONSOLE_TYPESYM_MSPRINTER_P(typesym) EQ (typesym, Qmsprinter) | |
| 142 #define DEVICE_MSPRINTER_P(dev) CONSOLE_TYPESYM_MSPRINTER_P (DEVICE_TYPE (dev)) | |
| 143 #define CHECK_MSPRINTER_DEVICE(z) CHECK_DEVICE_TYPE (z, msprinter) | |
| 144 #define CONCHECK_MSPRINTER_DEVICE(z) CONCHECK_DEVICE_TYPE (z, msprinter) | |
| 145 | |
| 146 /* Common checks */ | |
| 147 | |
| 148 #define DEVICE_MSGDI_P(dev) (DEVICE_MSWINDOWS_P(dev) || DEVICE_MSPRINTER_P(dev)) | |
| 149 #define CHECK_MSGDI_DEVICE(d) \ | |
| 150 do { \ | |
| 151 CHECK_DEVICE (d); \ | |
| 152 if (!(DEVICEP (d) && DEVICE_MSGDI_P(XDEVICE(d)))) \ | |
| 153 dead_wrong_type_argument \ | |
| 154 (list3 (Qor, Qmswindows, Qmsprinter), d); \ | |
| 155 } while (0) | |
| 156 #define CONCHECK_MSGDI_DEVICE(d) \ | |
| 157 do { \ | |
| 158 CHECK_DEVICE (d); \ | |
| 159 if (!(DEVICEP (d) && DEVICE_MSGDI_P(XDEVICE(d)))) \ | |
| 160 wrong_type_argument \ | |
| 161 (list3 (Qor, Qmswindows, Qmsprinter), d); \ | |
| 162 } while (0) | |
| 163 | |
| 164 /* | |
| 165 * Frames | |
| 166 */ | |
| 167 | |
| 168 struct mswindows_frame | |
| 169 { | |
| 3092 | 170 #ifdef NEW_GC |
| 171 struct lrecord_header header; | |
| 172 #endif /* NEW_GC */ | |
| 173 | |
| 872 | 174 /* win32 window handle */ |
| 175 HWND hwnd; | |
| 176 | |
| 177 /* DC for this win32 window */ | |
| 178 HDC hdc; | |
| 179 | |
| 180 /* Used with DeferWindowPos */ | |
| 181 HDWP hdwp; | |
| 182 | |
| 183 /* Time of last click event, for button 2 emul */ | |
| 184 DWORD last_click_time; | |
| 185 | |
| 186 /* Mods of last click event */ | |
| 187 DWORD last_click_mods; | |
| 188 | |
| 189 /* Coordinates of last click event, screen-relative */ | |
| 190 POINTS last_click_point; | |
| 191 #ifdef HAVE_TOOLBARS | |
| 192 /* Toolbar hash table. See toolbar-msw.c */ | |
| 193 Lisp_Object toolbar_hash_table; | |
| 194 unsigned int toolbar_checksum[4]; | |
| 195 #endif | |
| 196 | |
| 197 /* Menu hash table. See menubar-msw.c */ | |
| 198 Lisp_Object menu_hash_table; | |
| 199 | |
| 200 /* Menu checksum. See menubar-msw.c */ | |
| 201 unsigned int menu_checksum; | |
| 202 | |
| 203 /* Widget glyphs attached to this frame. See glyphs-msw.c */ | |
| 204 Lisp_Object widget_hash_table1, widget_hash_table2, widget_hash_table3; | |
| 205 | |
| 206 /* Frame title hash value. See frame-msw.c */ | |
| 207 unsigned int title_checksum; | |
| 208 | |
| 209 /* Real character width and height of the frame. | |
| 210 FRAME_{HEIGHT,WIDTH} do not work for pixel geometry! */ | |
| 211 int charheight, charwidth; | |
| 212 | |
| 213 #ifdef MULE | |
| 214 int cursor_x; | |
| 215 int cursor_y; | |
| 216 face_index cursor_findex; | |
| 217 #endif | |
| 218 | |
| 219 /* Misc flags */ | |
| 220 int button2_need_lbutton : 1; | |
| 221 int button2_need_rbutton : 1; | |
| 222 int button2_is_down : 1; | |
| 223 int ignore_next_lbutton_up : 1; | |
| 224 int ignore_next_rbutton_up : 1; | |
| 225 int sizing : 1; | |
| 226 int paint_pending : 1; /* Whether a WM_PAINT magic event has been queued */ | |
| 227 int popup : 1; /* frame is a popup frame */ | |
| 228 | |
| 229 /* Geometry, in characters, as specified by proplist during frame | |
| 230 creation. Members are set to -1 for unspecified */ | |
| 231 XEMACS_RECT_WH *target_rect; | |
| 232 }; | |
| 233 | |
| 3092 | 234 #ifdef NEW_GC |
| 235 typedef struct mswindows_frame Lisp_Mswindows_Frame; | |
| 236 | |
| 237 DECLARE_LRECORD (mswindows_frame, Lisp_Mswindows_Frame); | |
| 238 | |
| 239 #define XMSWINDOWS_FRAME(x) \ | |
| 240 XRECORD (x, mswindows_frame, Lisp_Mswindows_Frame) | |
| 241 #define wrap_mswindows_frame(p) wrap_record (p, mswindows_frame) | |
| 242 #define MSWINDOWS_FRAME_P(x) RECORDP (x, mswindows_frame) | |
| 243 #endif /* NEW_GC */ | |
| 244 | |
| 872 | 245 #define FRAME_MSWINDOWS_DATA(f) FRAME_TYPE_DATA (f, mswindows) |
| 246 | |
| 247 #define FRAME_MSWINDOWS_HANDLE(f) (FRAME_MSWINDOWS_DATA (f)->hwnd) | |
| 248 #define FRAME_MSWINDOWS_DC(f) (FRAME_MSWINDOWS_DATA (f)->hdc) | |
| 249 #define FRAME_MSWINDOWS_MENU_HASH_TABLE(f) (FRAME_MSWINDOWS_DATA (f)->menu_hash_table) | |
| 250 #define FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE(f) \ | |
| 251 (FRAME_MSWINDOWS_DATA (f)->toolbar_hash_table) | |
| 252 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE1(f) \ | |
| 253 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table1) | |
| 254 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE2(f) \ | |
| 255 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table2) | |
| 256 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE3(f) \ | |
| 257 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table3) | |
| 258 #define FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos) \ | |
| 259 (FRAME_MSWINDOWS_DATA (f)->toolbar_checksum[pos]) | |
| 260 #define FRAME_MSWINDOWS_MENU_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->menu_checksum) | |
| 261 #define FRAME_MSWINDOWS_TITLE_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->title_checksum) | |
| 262 #define FRAME_MSWINDOWS_CHARWIDTH(f) (FRAME_MSWINDOWS_DATA (f)->charwidth) | |
| 263 #define FRAME_MSWINDOWS_CHARHEIGHT(f) (FRAME_MSWINDOWS_DATA (f)->charheight) | |
| 264 #define FRAME_MSWINDOWS_TARGET_RECT(f) (FRAME_MSWINDOWS_DATA (f)->target_rect) | |
| 265 | |
| 266 #define FRAME_MSWINDOWS_POPUP(f) (FRAME_MSWINDOWS_DATA (f)->popup) | |
| 267 | |
| 268 #ifdef MULE | |
| 269 # define FRAME_MSWINDOWS_CURSOR_X(f) (FRAME_MSWINDOWS_DATA (f)->cursor_x) | |
| 270 # define FRAME_MSWINDOWS_CURSOR_Y(f) (FRAME_MSWINDOWS_DATA (f)->cursor_y) | |
| 271 # define FRAME_MSWINDOWS_CURSOR_FINDEX(f) (FRAME_MSWINDOWS_DATA (f)->cursor_findex) | |
| 272 #endif | |
| 273 | |
| 274 /* Frame check and validation macros */ | |
| 275 #define FRAME_MSWINDOWS_P(frm) CONSOLE_TYPESYM_MSWINDOWS_P (FRAME_TYPE (frm)) | |
| 276 #define CHECK_MSWINDOWS_FRAME(z) CHECK_FRAME_TYPE (z, mswindows) | |
| 277 #define CONCHECK_MSWINDOWS_FRAME(z) CONCHECK_FRAME_TYPE (z, mswindows) | |
| 278 | |
| 279 /* win32 window LONG indices */ | |
| 280 #define XWL_FRAMEOBJ 0 | |
| 281 #define XWL_COUNT 1 /* Number of LONGs that we use */ | |
| 282 #define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT * 4) | |
| 283 | |
| 284 /* | |
| 285 * Printer frame, aka printer job | |
| 286 */ | |
| 287 | |
| 288 struct msprinter_frame | |
| 289 { | |
| 290 int left_margin, top_margin, /* All in twips */ | |
| 291 right_margin, bottom_margin; | |
| 292 int charheight, charwidth; /* As per proplist or -1 if not given */ | |
| 293 int pix_left, pix_top; /* Calculated in init_frame_*, VP offset */ | |
| 294 int job_started : 1; | |
| 295 int page_started : 1; | |
| 296 }; | |
| 297 | |
| 298 #define FRAME_MSPRINTER_DATA(f) FRAME_TYPE_DATA (f, msprinter) | |
| 299 #define FRAME_MSPRINTER_LEFT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->left_margin) | |
| 300 #define FRAME_MSPRINTER_RIGHT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->top_margin) | |
| 301 #define FRAME_MSPRINTER_TOP_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->right_margin) | |
| 302 #define FRAME_MSPRINTER_BOTTOM_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->bottom_margin) | |
| 303 #define FRAME_MSPRINTER_JOB_STARTED(f) (FRAME_MSPRINTER_DATA (f)->job_started) | |
| 304 #define FRAME_MSPRINTER_PAGE_STARTED(f) (FRAME_MSPRINTER_DATA (f)->page_started) | |
| 305 #define FRAME_MSPRINTER_CHARWIDTH(f) (FRAME_MSPRINTER_DATA (f)->charwidth) | |
| 306 #define FRAME_MSPRINTER_CHARHEIGHT(f) (FRAME_MSPRINTER_DATA (f)->charheight) | |
| 307 #define FRAME_MSPRINTER_PIXLEFT(f) (FRAME_MSPRINTER_DATA (f)->pix_left) | |
| 308 #define FRAME_MSPRINTER_PIXTOP(f) (FRAME_MSPRINTER_DATA (f)->pix_top) | |
| 309 | |
| 310 /* | |
| 311 * Events | |
| 312 */ | |
| 313 | |
| 314 /* win32 messages / magic event types */ | |
| 315 #define XM_BUMPQUEUE (WM_USER + 101) | |
| 316 #define XM_MAPFRAME (WM_USER + 102) | |
| 317 #define XM_UNMAPFRAME (WM_USER + 103) | |
| 318 | |
| 319 struct mswindows_dialog_id | |
| 320 { | |
| 3017 | 321 struct LCRECORD_HEADER header; |
| 872 | 322 |
| 323 Lisp_Object frame; | |
| 324 Lisp_Object callbacks; | |
| 325 HWND hwnd; | |
| 326 }; | |
| 327 | |
| 328 #endif /* INCLUDED_console_msw_impl_h_ */ |
