EditresP.h
资源名称:X264CODEC.rar [点击查看]
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:9k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /* $Xorg: EditresP.h,v 1.4 2001/02/09 02:03:52 xorgcvs Exp $ */
- /*
- Copyright 1989, 1998 The Open Group
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation.
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Except as contained in this notice, the name of The Open Group shall not be
- used in advertising or otherwise to promote the sale, use or other dealings
- in this Software without prior written authorization from The Open Group.
- */
- /* $XFree86: xc/lib/Xmu/EditresP.h,v 1.5 2001/01/17 19:42:55 dawes Exp $ */
- /*
- * Author: Chris D. Peterson, MIT X Consortium
- */
- /************************************************************
- The Editres Protocol
- The Client message sent to the application is:
- ATOM = "ResEditor" --- RES_EDITOR_NAME
- FORMAT = 32 --- RES_EDIT_SEND_EVENT_FORMAT
- l[0] = timestamp
- l[1] = command atom name
- l[2] = ident of command
- l[3] = protocol version number to use
- The binary protocol has the following format:
- Card8: 8-bit unsingned integer
- Card16: 16-bit unsingned integer
- Card32: 32-bit unsingned integer
- Int16: 16-bit signed integer
- Window: 32-bit value
- Widget: 32-bit value
- String8: ListOfCard8
- [a][b][c] represent an exclusive list of choices.
- All widgets are passed as a list of widgets, containing the
- full instance heirarch of this widget. The hierarchy is ordered
- from parent to child. Thus the first element of each list is
- the root of the widget tree (this makes verifying that the widget
- still exists, MUCH faster).
- ListOfFoo comprises a list of things in the following format:
- number: Card16
- <number> things: ????
- This is a synchronous protocol, every request MUST be followed by a
- reply.
- Request:
- Serial Number: Card8
- Op Code: Card8 - { SendWidgetTree = 0,
- SetValues = 1,
- GetResources = 2,
- GetGeometry = 3,
- FindChild = 4,
- GetValues = 5 }
- Length: Card32
- Data:
- Reply:
- Serial Number: Card8
- Type: Card8 - { Formatted = 0,
- Unformatted = 1,
- ProtocolMismatch = 2
- }
- Length: Card32
- Byte Order:
- All Fields are MSB -> LSB
- Data:
- Formatted:
- The data contains the reply information for the request as
- specified below if the reply type is "Formatted". The return
- values for the other reply types are shown below.
- Unformatted:
- Message: String8
- ProtocolMismatch:
- RequestedVersion: Card8
- ------------------------------------------------------------
- SendWidgetTree:
- --->
- Number of Entries: Card16
- Entry:
- widget: ListOfWidgets
- name: String8
- class: String8
- window: Card32
- toolkit: String8
- Send Widget Tree returns the toolkit type, and a fuly specified list
- of widgets for each widget in the tree. This is enough information
- to completely reconstruct the entire widget heirarchy.
- The window return value contains the Xid of the window currently
- used by this widget. If the widget is unrealized then 0 is returned,
- and if widget is a non-windowed object a value of 2 is returned.
- SetValues:
- name: String8
- type: String8
- value: String8
- Number of Entries: Card16
- Entry:
- widget: ListOfWidgets
- --->
- Number of Entries: Card16
- Entry:
- widget: ListOfWidgets
- message: String8
- SetValues will allow the same resource to be set on a number of
- widgets. This function will return an error message if the SetValues
- request caused an Xt error.
- GetValues:
- names: ListOfString8
- widget: Widget
- --->
- novalues: ListOfCard16
- values: ListOfString8
- GetValues will allow a number of resource values to be read
- on a particular widget. The request specifies the names of
- the resources wanted and the widget id these resources are
- from. The reply returns a list of indices from the requests
- name list of resources for which a value can not be returned.
- It also returns a list of returned values, in the order of the
- requests names list, skipping those indices present in novalues.
- GetResources:
- Number of Entries: Card16
- Entry
- widget: ListOfWidgets:
- ---->
- Number of Entries: Card16
- Entry
- Widget: ListOfWidgets:
- Error: Bool
- [ Message: String 8 ]
- [ Number of Resources: Card16
- Resource:
- Kind: {normal, constraint}
- Name: String8
- Class: String8
- Type: String8 ]
- GetResource retrieves the kind, name, class and type for every
- widget passed to it. If an error occured with the resource fetch
- Error will be set to True for the given widget and a message
- is returned rather than the resource info.
- GetGeometry:
- Number of Entries: Card16
- Entry
- Widget: ListOfWidgets:
- ---->
- Number of Entries: Card16
- Entry
- Widget: ListOfWidgets:
- Error: Bool
- [ message: String 8 ]
- [ mapped: Boolean
- X: Int16
- Y: Int16
- Width: Card16
- Height: Card16
- BorderWidth: Card16 ]
- GetGeometry retreives the mapping state, x, y, width, height
- and border width for each widget specified. If an error occured
- with the geometry fetch "Error" will be set to True for the given
- widget and a message is returned rather than the geometry info.
- X an Y corrospond to the root coordinates of the upper left corner
- of the widget (outside the window border).
- FindChild:
- Widget: ListOfWidgets
- X: Int16
- Y: Int16
- --->
- Widget: ListOfWidgets
- Find Child returns a descendent of the widget specified that
- is at the root coordinates specified.
- NOTE:
- The returned widget is undefined if the point is contained in
- two or more mapped widgets, or in two overlapping Rect objs.
- GetValues:
- names: ListOfString8
- widget: Widget
- --->
- values: ListOfString8
- GetValues will allow a number of resource values to be read
- on a particular widget. Currently only InterViews 3.0.1 Styles
- and their attributes are supported. In addition, the current
- user interface only supports the return of 1 resource. The ability
- to specify and return multiple resources is defined for future editres
- interfaces where some or all of a widgets resource values are returned
- and displayed at once.
- ************************************************************/
- #include <X11/Intrinsic.h>
- #include <X11/Xfuncproto.h>
- #define XER_NBBY 8 /* number of bits in a byte */
- #define BYTE_MASK 255
- #define HEADER_SIZE 6
- #define EDITRES_IS_OBJECT 2
- #define EDITRES_IS_UNREALIZED 0
- /*
- * Format for atoms
- */
- #define EDITRES_FORMAT 8
- #define EDITRES_SEND_EVENT_FORMAT 32
- /*
- * Atoms
- */
- #define EDITRES_NAME "Editres"
- #define EDITRES_COMMAND_ATOM "EditresCommand"
- #define EDITRES_COMM_ATOM "EditresComm"
- #define EDITRES_CLIENT_VALUE "EditresClientVal"
- #define EDITRES_PROTOCOL_ATOM "EditresProtocol"
- typedef enum {
- SendWidgetTree = 0,
- SetValues = 1,
- GetResources = 2,
- GetGeometry = 3,
- FindChild = 4,
- GetValues = 5
- } EditresCommand;
- typedef enum {
- NormalResource = 0,
- ConstraintResource = 1
- } ResourceType;
- /*
- * The type of a resource identifier
- */
- typedef unsigned char ResIdent;
- typedef enum {
- PartialSuccess = 0,
- Failure = 1,
- ProtocolMismatch = 2
- } EditResError;
- typedef struct _WidgetInfo {
- unsigned short num_widgets;
- unsigned long *ids;
- Widget real_widget;
- } WidgetInfo;
- typedef struct _ProtocolStream {
- unsigned long size, alloc;
- unsigned char *real_top, *top, *current;
- } ProtocolStream;
- /************************************************************
- * Function definitions for reading and writing protocol requests
- ************************************************************/
- _XFUNCPROTOBEGIN
- void _XEditResPutString8
- (
- ProtocolStream *stream,
- char *str
- );
- void _XEditResPut8
- (
- ProtocolStream *stream,
- unsigned int value
- );
- void _XEditResPut16
- (
- ProtocolStream *stream,
- unsigned int value
- );
- void _XEditResPut32
- (
- ProtocolStream *stream,
- unsigned long value
- );
- void _XEditResPutWidgetInfo
- (
- ProtocolStream *stream,
- WidgetInfo *info
- );
- void _XEditResResetStream
- (
- ProtocolStream *stream
- );
- Bool _XEditResGet8
- (
- ProtocolStream *stream,
- unsigned char *value
- );
- Bool _XEditResGet16
- (
- ProtocolStream *stream,
- unsigned short *value
- );
- Bool _XEditResGetSigned16
- (
- ProtocolStream *stream,
- short *value
- );
- Bool _XEditResGet32
- (
- ProtocolStream *stream,
- unsigned long *value
- );
- Bool _XEditResGetString8
- (
- ProtocolStream *stream,
- char **str
- );
- Bool _XEditResGetWidgetInfo
- (
- ProtocolStream *stream,
- WidgetInfo *info
- );
- _XFUNCPROTOEND