TextSrcP.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:7k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2. * $Xorg: TextSrcP.h,v 1.4 2001/02/09 02:03:47 xorgcvs Exp $
  3. */
  4. /***********************************************************
  5. Copyright 1987, 1988, 1994, 1998  The Open Group
  6. Permission to use, copy, modify, distribute, and sell this software and its
  7. documentation for any purpose is hereby granted without fee, provided that
  8. the above copyright notice appear in all copies and that both that
  9. copyright notice and this permission notice appear in supporting
  10. documentation.
  11. The above copyright notice and this permission notice shall be included in
  12. all copies or substantial portions of the Software.
  13. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  16. OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  17. AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  18. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  19. Except as contained in this notice, the name of The Open Group shall not be
  20. used in advertising or otherwise to promote the sale, use or other dealings
  21. in this Software without prior written authorization from The Open Group.
  22. Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
  23.                         All Rights Reserved
  24. Permission to use, copy, modify, and distribute this software and its 
  25. documentation for any purpose and without fee is hereby granted, 
  26. provided that the above copyright notice appear in all copies and that
  27. both that copyright notice and this permission notice appear in 
  28. supporting documentation, and that the name of Digital not be
  29. used in advertising or publicity pertaining to distribution of the
  30. software without specific, written prior permission.  
  31. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  32. ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  33. DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  34. ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  35. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  36. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  37. SOFTWARE.
  38. ******************************************************************/
  39. /* $XFree86: xc/lib/Xaw/TextSrcP.h,v 1.14 2001/12/14 19:54:45 dawes Exp $ */
  40. #ifndef _XawTextSrcP_h
  41. #define _XawTextSrcP_h
  42. /*
  43.  * TextSrc Object Private Data
  44.  */
  45. #include <X11/Xfuncproto.h>
  46. #include <X11/Xaw/TextSrc.h>
  47. #include <X11/Xaw/TextP.h> /* This source works with the Text widget */
  48. _XFUNCPROTOBEGIN
  49. #ifndef OLDXAW
  50. struct _XawTextAnchor {
  51.     XawTextPosition position;
  52.     XawTextEntity *entities, *cache;
  53. };
  54. #define XAW_TENTF_HIDE 0x0001
  55. #define XAW_TENTF_READ 0x0002
  56. #define XAW_TENTF_REPLACE 0x0004
  57. struct _XawTextEntity {
  58.     short type;
  59.     short flags;
  60.     XawTextEntity *next;
  61.     XtPointer data;
  62.     XawTextPosition offset; /* from the anchor */
  63.     Cardinal length;
  64.     XrmQuark property;
  65. };
  66. #endif
  67. #if 0 /* no longer used */
  68. /* New fields for the TextSrc object class */
  69. typedef struct {
  70.   XtPointer next_extension;
  71.   XrmQuark record_type;
  72.   long version;
  73.   Cardinal record_size;
  74.   int (*Input)();
  75. } TextSrcExtRec, *TextSrcExt;
  76. #endif
  77. typedef XawTextPosition (*_XawSrcReadProc)
  78.      (Widget, XawTextPosition, XawTextBlock*, int);
  79. typedef int (*_XawSrcReplaceProc)
  80.      (Widget, XawTextPosition, XawTextPosition, XawTextBlock*);
  81. typedef XawTextPosition (*_XawSrcScanProc)
  82.      (Widget, XawTextPosition, XawTextScanType, XawTextScanDirection,
  83.       int, Bool);
  84. typedef XawTextPosition (*_XawSrcSearchProc)
  85.      (Widget, XawTextPosition, XawTextScanDirection, XawTextBlock*);
  86. typedef void (*_XawSrcSetSelectionProc)
  87.      (Widget, XawTextPosition, XawTextPosition, Atom);
  88. typedef Boolean (*_XawSrcConvertSelectionProc)
  89.      (Widget, Atom*, Atom*, Atom*, XtPointer*, unsigned long*, int*);
  90. typedef struct _TextSrcClassPart {
  91.     _XawSrcReadProc Read;
  92.     _XawSrcReplaceProc Replace;
  93.     _XawSrcScanProc Scan;
  94.     _XawSrcSearchProc Search;
  95.     _XawSrcSetSelectionProc SetSelection;
  96.     _XawSrcConvertSelectionProc ConvertSelection;
  97. #ifndef OLDXAW
  98.     XtPointer extension;
  99. #endif
  100. } TextSrcClassPart;
  101. /* Full class record */
  102. typedef struct _TextSrcClassRec {
  103.     ObjectClassPart     object_class;
  104.     TextSrcClassPart textSrc_class;
  105. } TextSrcClassRec;
  106. extern TextSrcClassRec textSrcClassRec;
  107. #ifndef OLDXAW
  108. typedef struct _XawTextUndo XawTextUndo;
  109. #endif
  110. /* New fields for the TextSrc object */
  111. typedef struct {
  112.     /* resources */
  113.     XawTextEditType edit_mode;
  114.     XrmQuark text_format; /* 2 formats: FMT8BIT for Ascii
  115.    FMTWIDE for ISO 10646 */
  116. #ifndef OLDXAW
  117.     XtCallbackList callback; /* A callback list to call when the
  118.    source is changed */
  119.     Boolean changed;
  120.     Boolean enable_undo;
  121.     /* private state */
  122.     Boolean undo_state; /* to protect undo manipulation */
  123.     XawTextUndo *undo;
  124.     WidgetList text; /* TextWidget's using this source */
  125.     Cardinal num_text;
  126.     XtCallbackList property_callback;
  127.     XawTextAnchor **anchors;
  128.     int num_anchors;
  129.     XtPointer pad[1]; /* for future use and keep binary compatability */
  130. #endif
  131. } TextSrcPart;
  132. /* Full instance record */
  133. typedef struct _TextSrcRec {
  134.     ObjectPart object;
  135.     TextSrcPart textSrc;
  136. } TextSrcRec;
  137. /*
  138.  * Semiprivate declarations of functions used in other modules
  139.  */
  140. char* _XawTextWCToMB
  141. (
  142.  Display *display,
  143.  wchar_t *wstr,
  144.  int *len_in_out
  145.  );
  146. wchar_t* _XawTextMBToWC
  147. (
  148.  Display *display,
  149.  char *str,
  150.  int *len_in_out
  151.  );
  152. #ifndef OLDXAW
  153. XawTextAnchor *XawTextSourceAddAnchor
  154. (
  155.  Widget source,
  156.  XawTextPosition position
  157.  );
  158. XawTextAnchor *XawTextSourceFindAnchor
  159. (
  160.  Widget source,
  161.  XawTextPosition position
  162.  );
  163. XawTextAnchor *XawTextSourceNextAnchor
  164. (
  165.  Widget  source,
  166.  XawTextAnchor *anchor
  167.  );
  168. XawTextAnchor *XawTextSourcePrevAnchor
  169. (
  170.  Widget  source,
  171.  XawTextAnchor *anchor
  172.  );
  173. XawTextAnchor *XawTextSourceRemoveAnchor
  174. (
  175.  Widget  source,
  176.  XawTextAnchor *anchor
  177.  );
  178. Bool XawTextSourceAnchorAndEntity
  179. (
  180.  Widget   w,
  181.  XawTextPosition   position,
  182.  XawTextAnchor **anchor_return,
  183.  XawTextEntity **entity_return
  184.  );
  185. XawTextEntity *XawTextSourceAddEntity
  186. (
  187.  Widget source,
  188.  int type,
  189.  int flags,
  190.  XtPointer data,
  191.  XawTextPosition position,
  192.  Cardinal length,
  193.  XrmQuark property
  194.  );
  195. void XawTextSourceClearEntities
  196. (
  197.  Widget w,
  198.  XawTextPosition left,
  199.  XawTextPosition right
  200.  );
  201. #endif
  202. #if 0 /* no longer used */
  203. typedef XawTextPosition (*_XawTextPositionFunc)();
  204. #endif
  205. #define XtInheritInput ((_XawTextPositionFunc)_XtInherit)
  206. #define XtInheritRead ((_XawSrcReadProc)_XtInherit)
  207. #define XtInheritReplace ((_XawSrcReplaceProc)_XtInherit)
  208. #define XtInheritScan ((_XawSrcScanProc)_XtInherit)
  209. #define XtInheritSearch ((_XawSrcSearchProc)_XtInherit)
  210. #define XtInheritSetSelection ((_XawSrcSetSelectionProc)_XtInherit)
  211. #define XtInheritConvertSelection     ((_XawSrcConvertSelectionProc)_XtInherit)
  212. #if 0
  213. #define XtTextSrcExtVersion       1
  214. #define XtTextSrcExtTypeString        "XT_TEXTSRC_EXT"
  215. #endif
  216. _XFUNCPROTOEND
  217. #endif /* _XawTextSrcP_h */