cdesktopenv/cde/include/Dt/Mmdb.h

306 lines
8.2 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 libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* $XConsortium: Mmdb.h /main/4 1996/05/29 13:01:24 rcs $ */
/*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1994, 1995, 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
#ifndef _MMDB_C_API_H
#define _MMDB_C_API_H
#define DtMmdb_PROTO1(x) (x)
#define DtMmdb_PROTO2(x,y) (x,y)
#define DtMmdb_PROTO3(x,y,z) (x,y,z)
#undef _not_defined
#ifdef _not_defined
#ifdef __cplusplus
#else
#define DtMmdb_PROTO1(x) ()
#define DtMmdb_PROTO2(x,y) ()
#define DtMmdb_PROTO3(x,y,z) ()
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned int DtMmdbBool;
#define DtMmdbTrue 1
#define DtMmdbFalse 0
/*****************************************************/
/* info lib structure */
/*****************************************************/
typedef struct _DtMmdbInfoLibInfo
{
const char* path;
const char* name;
unsigned int num_bookcases;
} DtMmdbInfoLibInfo;
/*****************************************************/
/* basecase structure */
/*****************************************************/
typedef struct _DtMmdbBookCaseInfo
{
const char* name;
unsigned int num_books;
} DtMmdbBookCaseInfo;
/*****************************************************/
/* oid handler structure */
/*****************************************************/
typedef struct _DtMmdbObjectId
{
void* oid_ptr;
} DtMmdbHandle;
extern DtMmdbHandle* DtMmdbGroundId;
/*****************************************************/
/* info request structure */
/*****************************************************/
typedef struct _DtMmdbInfoRequest
{
int bookcase_descriptor;
char* locator_ptr;
DtMmdbHandle* primary_oid;
DtMmdbHandle* secondary_oid;
int sequence_num;
} DtMmdbInfoRequest ;
/*****************************************************/
/* graphic info structure */
/*****************************************************/
typedef struct _DtMmdbGraphicInfo
{
unsigned short type;
unsigned short width;
unsigned short height;
unsigned int llx, lly ;
unsigned int urx, ury ;
char* version;
} DtMmdbGraphicInfo;
/*****************************************************/
/* mmdb */
/*****************************************************/
void DtMmdbInit();
void DtMmdbQuit();
/*****************************************************/
/* Handle space release*/
/*****************************************************/
void DtMmdbFreeHandle(DtMmdbHandle*);
void DtMmdbFreeHandleList(DtMmdbHandle**);
/*****************************************************/
/* infolib */
/*****************************************************/
int DtMmdbOpenInfoLib DtMmdb_PROTO3(
const char* infolib_path,
const char* selected_base_name,
DtMmdbBool delayed_infolib_init
);
void DtMmdbCloseInfoLib DtMmdb_PROTO1(int infolib_descriptor);
DtMmdbInfoLibInfo* DtMmdbInfoLibGetInfo DtMmdb_PROTO1(int infolib_descriptor);
void DtMmdbInfoLibFreeInfo DtMmdb_PROTO1(DtMmdbInfoLibInfo*);
/*****************************************************/
/* bookcase */
/*****************************************************/
int
DtMmdbGetBookCaseByName
DtMmdb_PROTO2(int infolib_descriptor, const char* name);
int
DtMmdbGetBookCaseByIndex DtMmdb_PROTO2(int infolib_descriptor, int index);
int
DtMmdbGetBookCaseByLoc DtMmdb_PROTO2(
int infolib_descriptor,
const char* locator
);
int*
DtMmdbGetBookCaseByLocs DtMmdb_PROTO2(
int infolib_descriptor,
const char** locators
);
DtMmdbBookCaseInfo* DtMmdbBookCaseGetInfo DtMmdb_PROTO1(int bookcase_descriptor);
void DtMmdbBookCaseFreeInfo DtMmdb_PROTO1(DtMmdbBookCaseInfo*);
/*****************************************************/
/* section */
/*****************************************************/
const char* DtMmdbSectionGetLoc DtMmdb_PROTO1(DtMmdbInfoRequest* request);
const char*
DtMmdbSectionGetLongTitle DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* title_length
);
const char*
DtMmdbSectionGetShortTitle DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* title_length
);
const char*
DtMmdbSectionGetData DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* data_length
);
int DtMmdbSectionGetDataSize DtMmdb_PROTO1(DtMmdbInfoRequest* request);
const char* DtMmdbSectionGetTocLoc DtMmdb_PROTO1( DtMmdbInfoRequest* request);
DtMmdbHandle*
DtMmdbSectionGetBookId DtMmdb_PROTO1( DtMmdbInfoRequest* request);
DtMmdbHandle*
DtMmdbSectionGetStyleSheetId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
/*****************************************************/
/* TOC */
/*****************************************************/
DtMmdbHandle*
DtMmdbTocGetParentId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
DtMmdbHandle**
DtMmdbTocGetChildIds DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* list_length
);
int DtMmdbTocGetNumOfChildren DtMmdb_PROTO1( DtMmdbInfoRequest* request);
/*****************************************************/
/* Locator */
/*****************************************************/
const char*
DtMmdbLocatorGetSectionLoc DtMmdb_PROTO1(DtMmdbInfoRequest* request);
DtMmdbHandle*
DtMmdbLocatorGetSectionObjectId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
/*****************************************************/
/* Graphic */
/*****************************************************/
const char*
DtMmdbGraphicGetData DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* data_length
);
DtMmdbGraphicInfo*
DtMmdbGraphicGetInfo DtMmdb_PROTO1(DtMmdbInfoRequest* request);
void DtMmdbFreeGraphicInfo(DtMmdbGraphicInfo*);
/*****************************************************/
/* Stylesheet */
/*****************************************************/
const char*
DtMmdbStylesheetGetName DtMmdb_PROTO1(DtMmdbInfoRequest* request);
const char*
DtMmdbStylesheetGetata DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* data_length
);
/*****************************************************/
/* BOOk */
/*****************************************************/
DtMmdbHandle*
DtMmdbBookGetTocObjectId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
const char*
DtMmdbBookGetShortTitle DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* length
);
const char*
DtMmdbBookGetLongTitle DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* length
);
int DtMmdbBookGetSeqNum DtMmdb_PROTO1(DtMmdbInfoRequest* request);
const char*
DtMmdbBookGetSeqLIcense DtMmdb_PROTO2(
DtMmdbInfoRequest* request,
unsigned int* length
);
DtMmdbHandle** DtMmdbBookGetTabList DtMmdb_PROTO2(
DtMmdbInfoRequest* request, unsigned int* length
);
/*****************************************************/
/* DLP */
/*****************************************************/
DtMmdbHandle*
DtMmdbDlpGetPrevSectionId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
DtMmdbHandle*
DtMmdbDlpGetNextSectionId DtMmdb_PROTO1(DtMmdbInfoRequest* request);
DtMmdbInfoRequest* newDtMmdbInfoRequestWithLoc(int bc_id, char* loc);
DtMmdbInfoRequest* newDtMmdbInfoRequestWithPrimaryOid(int bc_id, char* oid_str);
DtMmdbInfoRequest* newDtMmdbInfoRequestWithSecondaryOid(int bc_id, char* oid_str);
DtMmdbInfoRequest* newDtMmdbInfoRequestWithSeqnum(int bc_id, char* oid_str);
char* DtMmdbHandleToString(DtMmdbHandle* x);
void DtMmdbFreeInfoRequest(DtMmdbInfoRequest*);
#ifdef __cplusplus
}
#endif
#endif