314 lines
8.0 KiB
C
314 lines
8.0 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these librararies and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: AccessSDLP.h /main/7 1995/12/18 16:30:11 cde-hp $ */
|
|
/************************************<+>*************************************
|
|
****************************************************************************
|
|
**
|
|
** File: AccessSDLP.h
|
|
**
|
|
** Project: Run Time Project File Access
|
|
**
|
|
** Description: Header file for Access.h
|
|
**
|
|
** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
|
|
**
|
|
** (c) Copyright 1993, 1994 Hewlett-Packard Company
|
|
** (c) Copyright 1993, 1994 International Business Machines Corp.
|
|
** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
|
** (c) Copyright 1993, 1994 Novell, Inc.
|
|
**
|
|
**
|
|
****************************************************************************
|
|
************************************<+>*************************************/
|
|
#ifndef _DtHelpAccessSDLP_h
|
|
#define _DtHelpAccessSDLP_h
|
|
|
|
#include "CanvasSegP.h"
|
|
#include "SDLI.h"
|
|
|
|
/****************************************************************************
|
|
* Private Structure
|
|
****************************************************************************/
|
|
/*
|
|
* The following structure holds the sdl document specific information
|
|
*/
|
|
typedef struct _sdlDocInfo {
|
|
char *language;
|
|
char *char_set;
|
|
char *first_pg;
|
|
char *doc_id;
|
|
char *timestamp;
|
|
char *sdldtd;
|
|
} SDLDocInfo;
|
|
|
|
/*
|
|
* The following structure holds the id specific information
|
|
*/
|
|
typedef struct _sdlIdInfo {
|
|
SdlOption type;
|
|
char *rssi;
|
|
int rlevel;
|
|
int offset;
|
|
} SDLIdInfo;
|
|
|
|
/*
|
|
* The following structure holds the toss style specific information
|
|
*/
|
|
typedef struct _sdlTossInfo {
|
|
unsigned long enum_values;
|
|
unsigned long num_values;
|
|
unsigned long str1_values;
|
|
unsigned long str2_values;
|
|
|
|
enum SdlElement el_type;
|
|
SdlOption clan;
|
|
char *ssi;
|
|
union
|
|
{
|
|
char *str;
|
|
char *colj;
|
|
char *enter;
|
|
} str1;
|
|
union
|
|
{
|
|
char *str;
|
|
char *colw;
|
|
char *exit;
|
|
} str2;
|
|
int rlevel;
|
|
_DtHelpFontHints font_specs;
|
|
} SDLTossInfo;
|
|
|
|
/*
|
|
* The following structure holds the entry or index specific strings
|
|
*/
|
|
typedef struct _sdlEntryInfo {
|
|
char *main;
|
|
char *locs;
|
|
char *syns;
|
|
char *sort;
|
|
} SDLEntryInfo;
|
|
|
|
/*
|
|
* The following structure holds loaded volumes. The fields of this
|
|
* structure should not be accessed by any code outside of the volume
|
|
* module.
|
|
*/
|
|
typedef struct _sdlVolume {
|
|
SDLDocInfo *sdl_info; /* A pointer to the SDL doc info */
|
|
_DtCvSegment *toss; /* A pointer to the Table of Styles */
|
|
/* and Semantics withing the volume */
|
|
_DtCvSegment *loids; /* A pointer to the List of Ids */
|
|
_DtCvSegment *index; /* A pointer to the List of Keywords */
|
|
_DtCvSegment *title; /* A pointer to the document head */
|
|
_DtCvSegment *snb; /* A pointer to the document's snb */
|
|
_DtCvPointer client_data; /* data that must be used to free the title
|
|
and snb */
|
|
void (*destroy_region)(); /* The destroy region routine specified
|
|
when the title was read */
|
|
short minor_no; /* The minor number of the sdl version */
|
|
short title_processed; /* If the title has already been searched for */
|
|
|
|
} CESDLVolume;
|
|
|
|
/****************************************************************************
|
|
* Private Macros
|
|
****************************************************************************/
|
|
/*********************/
|
|
/* SDLDocInfo macros */
|
|
/*********************/
|
|
|
|
#ifndef _SdlDocInfoPtrCharSet
|
|
#define _SdlDocInfoPtrCharSet(x) ((x)->char_set)
|
|
#endif
|
|
|
|
#ifndef _SdlDocInfoPtrDocId
|
|
#define _SdlDocInfoPtrDocId(x) ((x)->doc_id)
|
|
#endif
|
|
|
|
#ifndef _SdlDocInfoPtrFirstPg
|
|
#define _SdlDocInfoPtrFirstPg(x) ((x)->first_pg)
|
|
#endif
|
|
|
|
#ifndef _SdlDocInfoPtrLanguage
|
|
#define _SdlDocInfoPtrLanguage(x) ((x)->language)
|
|
#endif
|
|
|
|
#ifndef _SdlDocInfoPtrSdlDtd
|
|
#define _SdlDocInfoPtrSdlDtd(x) ((x)->sdldtd)
|
|
#endif
|
|
|
|
#ifndef _SdlDocInfoPtrStamp
|
|
#define _SdlDocInfoPtrStamp(x) ((x)->timestamp)
|
|
#endif
|
|
|
|
/***********************/
|
|
/* SDLEntryInfo macros */
|
|
/***********************/
|
|
|
|
#ifndef _SdlSegEntryInfo
|
|
#define _SdlSegEntryInfo(x) ((FrmtPrivInfoPtr(x))->entry)
|
|
#endif
|
|
|
|
#ifndef _SdlSegToSdlEntryInfo
|
|
#define _SdlSegToSdlEntryInfo(x) ((SDLEntryInfo *) _SdlSegEntryInfo(x))
|
|
#endif
|
|
|
|
/********************/
|
|
/* SDLIdInfo macros */
|
|
/********************/
|
|
|
|
#ifndef _SdlIdInfoPtrOffset
|
|
#define _SdlIdInfoPtrOffset(x) ((x)->offset)
|
|
#endif
|
|
|
|
#ifndef _SdlIdInfoPtrRlevel
|
|
#define _SdlIdInfoPtrRlevel(x) ((x)->rlevel)
|
|
#endif
|
|
|
|
#ifndef _SdlIdInfoPtrRssi
|
|
#define _SdlIdInfoPtrRssi(x) ((x)->rssi)
|
|
#endif
|
|
|
|
#ifndef _SdlIdInfoPtrType
|
|
#define _SdlIdInfoPtrType(x) ((x)->type)
|
|
#endif
|
|
|
|
#ifndef _SdlSegToSdlIdInfoPtr
|
|
#define _SdlSegToSdlIdInfoPtr(x) \
|
|
((SDLIdInfo *)((FrmtPrivInfoPtr(x))->id_info))
|
|
#endif
|
|
|
|
#ifndef _SdlSegToSdlIdInfoRssi
|
|
#define _SdlSegToSdlIdInfoRssi(x) \
|
|
(((SDLIdInfo *)((FrmtPrivInfoPtr(x))->id_info))->rssi)
|
|
#endif
|
|
|
|
#ifndef _SdlSegToSdlIdInfoType
|
|
#define _SdlSegToSdlIdInfoType(x) \
|
|
(((SDLIdInfo *)((FrmtPrivInfoPtr(x))->id_info))->type)
|
|
#endif
|
|
|
|
#ifndef _SdlSegToSdlIdInfoLevel
|
|
#define _SdlSegToSdlIdInfoLevel(x) \
|
|
(((SDLIdInfo *)((FrmtPrivInfoPtr(x))->id_info))->rlevel)
|
|
#endif
|
|
|
|
/**********************/
|
|
/* SDLTossInfo macros */
|
|
/**********************/
|
|
|
|
#ifndef _SdlTossInfoPtrFlag1
|
|
#define _SdlTossInfoPtrFlag1(x) ((x)->enum_values)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrFlag2
|
|
#define _SdlTossInfoPtrFlag2(x) ((x)->num_values)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrFlag3
|
|
#define _SdlTossInfoPtrFlag3(x) ((x)->str1_values)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrFlag4
|
|
#define _SdlTossInfoPtrFlag4(x) ((x)->str2_values)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrEnter
|
|
#define _SdlTossInfoPtrEnter(x) ((x)->str1.enter)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrExit
|
|
#define _SdlTossInfoPtrExit(x) ((x)->str2.exit)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrColJ
|
|
#define _SdlTossInfoPtrColJ(x) ((x)->str1.colj)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrColW
|
|
#define _SdlTossInfoPtrColW(x) ((x)->str2.colw)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrRlevel
|
|
#define _SdlTossInfoPtrRlevel(x) ((x)->rlevel)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrStr1
|
|
#define _SdlTossInfoPtrStr1(x) ((x)->str1.str)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrStr2
|
|
#define _SdlTossInfoPtrStr2(x) ((x)->str2.str)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrSsi
|
|
#define _SdlTossInfoPtrSsi(x) ((x)->ssi)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrFontSpecs
|
|
#define _SdlTossInfoPtrFontSpecs(x) ((x)->font_specs)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrClan
|
|
#define _SdlTossInfoPtrClan(x) ((x)->clan)
|
|
#endif
|
|
|
|
#ifndef _SdlTossInfoPtrType
|
|
#define _SdlTossInfoPtrType(x) ((x)->el_type)
|
|
#endif
|
|
|
|
#ifndef _SdlSegTossInfo
|
|
#define _SdlSegTossInfo(x) ((FrmtPrivInfoPtr(x))->toss)
|
|
#endif
|
|
|
|
#ifndef _SdlSegPtrToTossInfo
|
|
#define _SdlSegPtrToTossInfo(x) ((SDLTossInfo *) _SdlSegTossInfo(x))
|
|
#endif
|
|
|
|
#ifndef _SdlSegPtrToTossType
|
|
#define _SdlSegPtrToTossType(x) ((_SdlSegPtrToTossInfo(x))->el_type)
|
|
#endif
|
|
|
|
/*****************/
|
|
/* Volume macros */
|
|
/*****************/
|
|
|
|
#ifndef _SdlVolumeMinorNumber
|
|
#define _SdlVolumeMinorNumber(x) ((x)->minor_no)
|
|
#endif
|
|
|
|
/*******************/
|
|
/* Language macros */
|
|
/*******************/
|
|
|
|
#ifndef _SdlSegLangChar
|
|
#define _SdlSegLangChar(x) ((FrmtPrivInfoPtr(x))->lang_char)
|
|
#endif
|
|
|
|
#ifndef _SdlSegPtrToLangChar
|
|
#define _SdlSegPtrToLangChar(x) ((char **)_SdlSegLangChar(x))
|
|
#endif
|
|
|
|
#endif /* _DtHelpAccessSDLP_h */
|