###############################################################################
#
#     develop.dt
#
#     Action and DataType definitions for the Common Desktop Environment
#     (CDE) components.  This file contains common datatypes for developers.
#
#    (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
#    (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
#    (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
#    (c) Copyright 1993, 1994, 1995 Novell, Inc.
#
#    $Revision: 1.9 $
#
###############################################################################
set DtDbVersion=1.0

###############################################################################
#
# WARNING:  This file may be overwritten in subsequent installations of
#     the Common Desktop Environment (CDE).  Consequently, any system wide
#     changes should be made to an equivalent database file in
#     /etc/dt/types and not in this file.
#
###############################################################################

###################################################################
#
# Data Attributes
#
###################################################################
DATA_ATTRIBUTES CORE
{
        ACTIONS         (None)
        ICON		Dtcore
        MIME_TYPE	application/octet-stream
        SUNV3_TYPE      corefile
	DESCRIPTION	This file contains a core image of a process \
                        that terminated abnormally.  Its data type is \
                        named CORE.
        TYPE_LABEL      CORE
}
DATA_CRITERIA CORE1
{
	DATA_ATTRIBUTES_NAME CORE
        MODE            f
	NAME_PATTERN	core
}
DATA_CRITERIA CORE2
{
	DATA_ATTRIBUTES_NAME CORE
        MODE            f
	NAME_PATTERN	core*
}
ACTION Print
{
        LABEL           Print
        ARG_TYPE        CORE
        TYPE            MAP
        MAP_ACTION      NoPrint
}

############################################################

DATA_ATTRIBUTES OBJECT
{
        ACTIONS         Open,Print
        ICON		Dtbin
        NAME_TEMPLATE	%s.o
        MIME_TYPE	application/octet-stream
        SUNV3_TYPE      o-file
	DESCRIPTION	This file contains binary data that a compiler \
                        has produced from a source file.  Its data type \
                        is named OBJECT.  OBJECT files have names ending \
                        with '.o'.
        TYPE_LABEL      OBJECT
}
DATA_CRITERIA OBJECT1
{
	DATA_ATTRIBUTES_NAME OBJECT
        MODE            f
	NAME_PATTERN	*.o
}
ACTION Open
{
        LABEL           Open
        ARG_TYPE        OBJECT
        TYPE            MAP
        MAP_ACTION      Nm
}
ACTION Print
{
        LABEL           Print
        ARG_TYPE        OBJECT
        TYPE            MAP
        MAP_ACTION      PrintNm
}

############################################################

DATA_ATTRIBUTES ASSEMBLER
{
        ACTIONS         Open,Print
        ICON            Dtbin
        IS_TEXT		true
        NAME_TEMPLATE	%s.s
        MIME_TYPE	text/plain
        SUNV3_TYPE      text
	DESCRIPTION	This file contains assembler code for a given \
                        architecture.  Its data type is named ASSEMBLER. \
                        ASSEMBLER files have names ending with '.s'.
        TYPE_LABEL      ASSEMBLER
}
DATA_CRITERIA ASSEMBLER1
{
        DATA_ATTRIBUTES_NAME ASSEMBLER
        MODE            f
        NAME_PATTERN    *.s
}

############################################################

DATA_ATTRIBUTES ARCH_LIB
{
        ACTIONS         Open,Print
        ICON		Dtbinml
        MIME_TYPE	application/octet-stream
	DESCRIPTION	This file contains an archived libarary of \
                        object files.  Its data type is named ARCH_LIB. \
                        ARCH_LIB files have names ending with '.a'.
        TYPE_LABEL      ARCH_LIB
}
DATA_CRITERIA ARCH_LIB1
{
	DATA_ATTRIBUTES_NAME ARCH_LIB
        MODE            f
	NAME_PATTERN	*.a
}
ACTION Open
{
        LABEL           Open
        ARG_TYPE        ARCH_LIB
        TYPE            MAP
        MAP_ACTION      Nm
}
ACTION Print
{
        LABEL           Print
        ARG_TYPE        ARCH_LIB
        TYPE            MAP
        MAP_ACTION      PrintNm
}

############################################################

DATA_ATTRIBUTES SHARED_LIB
{
        ACTIONS         Open,Print
        ICON		Dtbinml
        MIME_TYPE	application/octet-stream
	DESCRIPTION	This files contains a shared library of an \
                        object file.  Its data type is named SHARED_LIB. \
                        SHARD_LIB files have names ending with '.sl' or '.so'.
        TYPE_LABEL      SHARED_LIB
}
DATA_CRITERIA SHARED_LIB1
{
	DATA_ATTRIBUTES_NAME SHARED_LIB
        MODE            f
	NAME_PATTERN	*.sl
}
DATA_CRITERIA SHARED_LIB2
{
	DATA_ATTRIBUTES_NAME SHARED_LIB
        MODE            f
	NAME_PATTERN	*.so
}
DATA_CRITERIA SHARED_LIB3
{
	DATA_ATTRIBUTES_NAME SHARED_LIB
        MODE            f
	NAME_PATTERN	*.so*
}
ACTION Open
{
        LABEL           Open
        ARG_TYPE        SHARED_LIB
        TYPE            MAP
        MAP_ACTION      Nm
}
ACTION Print
{
        LABEL           Print
        ARG_TYPE        SHARED_LIB
        TYPE            MAP
        MAP_ACTION      PrintNm
}

############################################################

DATA_ATTRIBUTES C_SRC
{
        ACTIONS         Open,Make,Print
        ICON		DtdotC
        IS_TEXT		true
        NAME_TEMPLATE	%s.c
        MIME_TYPE	text/plain
        SUNV3_TYPE      c-file
	DESCRIPTION	This file is a source file in the C \
                        programming language.  Its data type is named \
                        C_SRC.  C_SRC files have names ending with '.c'.
        TYPE_LABEL      C_SRC
}
DATA_CRITERIA C_SRC1
{
	DATA_ATTRIBUTES_NAME C_SRC
        MODE            f
	NAME_PATTERN	*.c
}
ACTION Make
{
        LABEL           Make
        TYPE            COMMAND
        ARG_TYPE        C_SRC
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING     sh -c '             make `basename %(File)Arg_1% .c`.o 2>&1 | \${PAGER:-more};             echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Make command for C_SRC files uses the Unix \
                        'make' command to make the associated object file.
}

############################################################

DATA_ATTRIBUTES CPLUSPLUS_SRC
{
        ACTIONS         Open,Make,Print
        ICON            DtC++
        IS_TEXT         true
        NAME_TEMPLATE	%s.C
        MIME_TYPE	text/plain
        DESCRIPTION     This is a a source file in the C++ programming \
                        language.  Its data type is named CPLUSPLUS_SRC. \
                        CPLUSPLUS_SRC files have names ending with '.C' \
                        or '.cc'.
        TYPE_LABEL      CPLUSPLUS_SRC
}
DATA_CRITERIA C_PLUSPLUS1
{
        DATA_ATTRIBUTES_NAME CPLUSPLUS_SRC
        MODE            f
        NAME_PATTERN    *.C
}
DATA_CRITERIA C_PLUSPLUS2
{
        DATA_ATTRIBUTES_NAME CPLUSPLUS_SRC
        MODE            f
        NAME_PATTERN    *.cc
}
ACTION Make
{
        LABEL           Make
        TYPE            COMMAND
        ARG_TYPE        CPLUSPLUS_SRC
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING     sh -c '             if [ -r %(File)Arg_1%.C ]; then                make `basename %(File)Arg_1% .C`.o 2>&1 | \${PAGER:-more};             else                make `basename %(File)Arg_1% .cc`.o 2>&1 | \${PAGER:-more};             echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Make command for CPLUSPLUS_SRC files uses \
                        the Unix 'make' command to make the associated \
                        object file.
}

############################################################

DATA_ATTRIBUTES H_SRC
{
        ACTIONS         Open,Print
        ICON		DtdotH
        IS_TEXT		true
        NAME_TEMPLATE	%s.h
        MIME_TYPE	text/plain
        SUNV3_TYPE      h-file
	DESCRIPTION	This is a C-language program header file. Its \
                        data type is named H_SRC.  H_SRC files have names \
                        ending with *.h.
        TYPE_LABEL      H_SRC
}
DATA_CRITERIA H_SRC1
{
	DATA_ATTRIBUTES_NAME H_SRC
        MODE            f
	NAME_PATTERN	*.h
}

############################################################

DATA_ATTRIBUTES MAKEFILE
{
        ACTIONS         Open,Make,Print
        ICON		DtbigM
        IS_TEXT		true
        NAME_TEMPLATE	Makefile
        MIME_TYPE	text/plain
        SUNV3_TYPE      Makefile
	DESCRIPTION	This is a Makefile. A Makefile describes \
                        how to generate an executable file from a set of \
                        source files.  It is used by the make command.  \
                        Its data type is named MAKEFILE.  MAKEFILE files \
                        must be named Makefile or makefile, or have names \
                        starting with Makefile or makefile, or have names \
                        ending with '.mk'.
        TYPE_LABEL      MAKEFILE
}
DATA_CRITERIA MAKEFILE1
{
	DATA_ATTRIBUTES_NAME MAKEFILE
        MODE            f
        NAME_PATTERN    [Mm]akefile*
}
DATA_CRITERIA MAKEFILE2
{
	DATA_ATTRIBUTES_NAME MAKEFILE
        MODE            f
        NAME_PATTERN    *.mk
}
ACTION Make
{
        LABEL           Make
        TYPE            COMMAND
        ARG_TYPE        MAKEFILE
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING     sh -c '             make -f %(File)Arg_1% %"Target to Make:"% 2>&1 | \${PAGER:-more};             echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Make action for Makefiles prompts for the \
                        target to make, and then uses the Unix 'make' \
                        command to make it.  If target is left empty \
                        the command makes 'all' in the current folder.
}


############################################################

DATA_ATTRIBUTES IMAKEFILE
{
        ACTIONS         Open,Make,Print
        ICON            Dtimake
        IS_TEXT         true
        NAME_TEMPLATE	Imakefile
        MIME_TYPE	text/plain
        DESCRIPTION     This is an Imakefile. An Imakefile describes \
                        how to generate an executable file from a set of \
                        source files.  It is used by the make command.  \
                        Its data type is named IMAKEFILE.  IMAKEFILE files \
                        are named imakefile or Imakefile, or have names \
                        starting with imakefile or Imakefile.
        TYPE_LABEL      IMAKEFILE
}
DATA_CRITERIA IMAKEFILE1
{
        DATA_ATTRIBUTES_NAME IMAKEFILE
        MODE            f
        NAME_PATTERN    [Ii]makefile*
}
ACTION Make
{
        LABEL           Make
        TYPE            COMMAND
        ARG_TYPE        IMAKEFILE
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING     sh -c '             make Makefile 2>&1 | \${PAGER:-more};             echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Make command for Imakefile files uses the Unix \
                        'make' command to make the associated Makefile.
}

###############################################################################
###############################################################################
#
# Actions
#
###############################################################################

ACTION Nm
{
        LABEL           Symbols List
        TYPE            COMMAND
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING     sh -c '                  nm %(File)Arg_1"Filename:"% 2>&1 | \${PAGER:-more};                  echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Symbols List (Nm) action lists the symbol \
                        table of an object file or library file.  It uses \
                        the 'nm' command.
}
ACTION PrintNm
{
        LABEL           Print Symbol List
        TYPE            COMMAND
        WINDOW_TYPE     NO_STDIO
        EXEC_STRING     /bin/sh -c ' nm %(File)Arg_1% |                         /usr/dt/bin/dtlp -u "Symbols List"'
        DESCRIPTION     The Print Symbol List (PrintNm) action prints \
                        the output from the 'nm' command on the default printer.
}

ACTION Make
{
        LABEL           Make
        TYPE            COMMAND
        ARG_COUNT       0
        WINDOW_TYPE     PERM_TERMINAL
        EXEC_STRING               sh -c '             make -f %(File)Arg_1"Makefile:"% %"Target to Make:"% 2>&1 |               \${PAGER:-more};             echo "\\n*** Select Close or Exit from the window menu to close this window ***"'
        DESCRIPTION     The Make action for no arguments prompts for \
                        a Makefile and target, and then uses the Unix \
                        'make' command to make it.
}
########################### EOF ##############################################