cdesktopenv/cde/include/Dt/Dts.h

182 lines
4.7 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: Dts.h /main/5 1996/03/05 13:30:59 drk $ */
/*
* (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 _Dt_Dts_h
#define _Dt_Dts_h
#include <sys/stat.h>
#include <X11/Intrinsic.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Constants
*/
#define DtDTS_DC_NAME "DATA_CRITERIA"
#define DtDTS_NAME_PATTERN "NAME_PATTERN"
#define DtDTS_PATH_PATTERN "PATH_PATTERN"
#define DtDTS_CONTENT "CONTENT"
#define DtDTS_MODE "MODE"
#define DtDTS_LINK_PATH "LINK_PATH"
#define DtDTS_LINK_NAME "LINK_NAME"
#define DtDTS_DATA_ATTRIBUTES_NAME "DATA_ATTRIBUTES_NAME"
#define DtDTS_DT_RECURSIVE_LINK "RECURSIVE_LINK"
#define DtDTS_DT_BROKEN_LINK "BROKEN_LINK"
#define DtDTS_DT_UNKNOWN "UNKNOWN"
#define DtDTS_DA_IS_SYNTHETIC "IS_SYNTHETIC"
#define DtDTS_DA_LABEL "LABEL"
#define DtDTS_DA_NAME "DATA_ATTRIBUTES"
#define DtDTS_DA_DESCRIPTION "DESCRIPTION"
#define DtDTS_DA_DATA_HOST "DATA_HOST"
#define DtDTS_DA_ICON "ICON"
#define DtDTS_DA_INSTANCE_ICON "INSTANCE_ICON"
#define DtDTS_DA_PROPERTIES "PROPERTIES"
#define DtDTS_DA_ACTION_LIST "ACTIONS"
#define DtDTS_DA_NAME_TEMPLATE "NAME_TEMPLATE"
#define DtDTS_DA_MODE_TEMPLATE "MODE_TEMPLATE"
#define DtDTS_DA_MOVE_TO_ACTION "MOVE_TO_ACTION"
#define DtDTS_DA_COPY_TO_ACTION "COPY_TO_ACTION"
#define DtDTS_DA_LINK_TO_ACTION "LINK_TO_ACTION"
#define DtDTS_DA_IS_TEXT "IS_TEXT"
#define DtDTS_DA_MEDIA "MEDIA"
#define DtDTS_DA_MIME_TYPE "MIME_TYPE"
#define DtDTS_DA_MIME_TO_MEDIA_FILTER "MIME_TO_MEDIA_FILTER"
#define DtDTS_DA_MEDIA_TO_MIME_FILTER "MEDIA_TO_MIME_FILTER"
#define DtDTS_DA_X400_TYPE "X400_TYPE"
#define DtDTS_DA_X400_TO_MEDIA_FILTER "X400_TO_MEDIA_FILTER"
#define DtDTS_DA_MEDIA_TO_X400_FILTER "MEDIA_TO_X400_FILTER"
#define DtDTS_DA_IS_ACTION "IS_ACTION"
#define DtDTS_DA_IS_EXECUTABLE "IS_EXECUTABLE"
#define DtDTS_DT_DIR ".DtDirDataType"
/*
* Types
*/
typedef struct _DtDtsAttribute
{
char *name;
char *value;
} DtDtsAttribute;
/*
* Functions
*/
extern void DtDtsLoadDataTypes(void);
extern void DtDtsRelease(void);
extern char *DtDtsDataToDataType(
const char *filepath,
const void *buffer,
const int size,
const struct stat *stat_buff,
const char *link_name,
const struct stat *link_stat_buff,
const char *opt_name);
extern char *DtDtsFileToDataType(
const char *filepath);
extern char *DtDtsFileToAttributeValue(
const char *filepath,
const char *attr);
extern DtDtsAttribute **DtDtsFileToAttributeList(
const char *filepath);
extern char *DtDtsBufferToDataType(
const void *buffer,
const int size,
const char *opt_name);
extern char *DtDtsBufferToAttributeValue(
const void *buffer,
const int size,
const char *attr,
const char *opt_name);
extern DtDtsAttribute **DtDtsBufferToAttributeList(
const void *buffer,
const int size,
const char *opt_name);
extern char *DtDtsDataTypeToAttributeValue(
const char *datatype,
const char *attr,
const char *opt_name);
extern DtDtsAttribute **DtDtsDataTypeToAttributeList(
const char *datatype,
const char *opt_name);
extern void DtDtsFreeDataTypeNames(
char **namelist);
extern void DtDtsFreeAttributeList(
DtDtsAttribute **attr_list);
extern void DtDtsFreeAttributeValue(
char *attr_value);
extern void DtDtsFreeDataType(
char *datatype);
extern char **DtDtsDataTypeNames(void);
extern char **DtDtsFindAttribute(
const char *name,
const char *value);
extern char *DtDtsSetDataType(
const char *filepath,
const char *datatype,
const int override);
extern int DtDtsDataTypeIsAction(
const char *datatype);
extern Boolean DtDtsIsTrue(
const char *str);
#ifdef __cplusplus
}
#endif
#endif /* _Dt_Dts_h */