home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / itk.h < prev    next >
C/C++ Source or Header  |  2003-09-01  |  4KB  |  119 lines

  1. /*
  2.  * ------------------------------------------------------------------------
  3.  *      PACKAGE:  [incr Tk]
  4.  *  DESCRIPTION:  Building mega-widgets with [incr Tcl]
  5.  *
  6.  *  [incr Tk] provides a framework for building composite "mega-widgets"
  7.  *  using [incr Tcl] classes.  It defines a set of base classes that are
  8.  *  specialized to create all other widgets.
  9.  *
  10.  *  ADDING [incr Tk] TO A Tcl-BASED APPLICATION:
  11.  *
  12.  *    To add [incr Tk] facilities to a Tcl application, modify the
  13.  *    Tcl_AppInit() routine as follows:
  14.  *
  15.  *    1) Include the header files for [incr Tcl] and [incr Tk] near
  16.  *       the top of the file containing Tcl_AppInit():
  17.  *
  18.  *         #include "itcl.h"
  19.  *         #include "itk.h"
  20.  *
  21.  *    2) Within the body of Tcl_AppInit(), add the following lines:
  22.  *
  23.  *         if (Itcl_Init(interp) == TCL_ERROR) {
  24.  *             return TCL_ERROR;
  25.  *         }
  26.  *         if (Itk_Init(interp) == TCL_ERROR) {
  27.  *             return TCL_ERROR;
  28.  *         }
  29.  *
  30.  *    3) Link your application with libitcl.a and libitk.a
  31.  *
  32.  *    NOTE:  An example file "tkAppInit.c" containing the changes shown
  33.  *           above is included in this distribution.
  34.  *
  35.  * ========================================================================
  36.  *  AUTHOR:  Michael J. McLennan
  37.  *           Bell Labs Innovations for Lucent Technologies
  38.  *           mmclennan@lucent.com
  39.  *           http://www.tcltk.com/itcl
  40.  *
  41.  *     RCS:  $Id: itk.h,v 1.9 2001/05/25 00:15:04 davygrvy Exp $
  42.  * ========================================================================
  43.  *           Copyright (c) 1993-1998  Lucent Technologies, Inc.
  44.  * ------------------------------------------------------------------------
  45.  * See the file "license.terms" for information on usage and redistribution
  46.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  47.  */
  48. #ifndef ITK_H
  49. #define ITK_H
  50.  
  51. /*
  52.  * A special definition used to allow this header file to be included
  53.  * in resource files so that they can get obtain version information from
  54.  * this file.  Resource compilers don't like all the C stuff, like typedefs
  55.  * and procedure declarations, that occur below.
  56.  */
  57.  
  58. #ifndef RC_INVOKED
  59.  
  60. #include "itclInt.h"
  61. #include "tk.h"
  62.  
  63. # undef TCL_STORAGE_CLASS
  64. #ifdef BUILD_itk
  65. # define TCL_STORAGE_CLASS DLLEXPORT
  66. #else
  67. # define TCL_STORAGE_CLASS
  68. #endif
  69.  
  70. /*
  71.  *  List of options in alphabetical order:
  72.  */
  73. typedef struct ItkOptList {
  74.     Tcl_HashTable *options;     /* list containing the real options */
  75.     Tcl_HashEntry **list;       /* gives ordering of options */
  76.     int len;                    /* number of entries in order list */
  77.     int max;                    /* maximum size of order list */
  78. } ItkOptList;
  79.  
  80. /*
  81.  *  List of options created in the class definition:
  82.  */
  83. typedef struct ItkClassOptTable {
  84.     Tcl_HashTable options;        /* option storage with fast lookup */
  85.     ItkOptList order;             /* gives ordering of options */
  86. } ItkClassOptTable;
  87.  
  88. /*
  89.  *  Each option created in the class definition:
  90.  */
  91. typedef struct ItkClassOption {
  92.     ItclMember *member;           /* info about this option */
  93.     char *resName;                /* resource name in X11 database */
  94.     char *resClass;               /* resource class name in X11 database */
  95.     char *init;                   /* initial value for option */
  96. } ItkClassOption;
  97.  
  98. #include "itkDecls.h"
  99.  
  100. /*
  101.  *  This function is contained in the itkstub static library
  102.  */
  103.  
  104. #ifdef USE_ITK_STUBS
  105.  
  106. CONST char *        Itk_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
  107.                 char *version, int exact));
  108. #endif
  109.  
  110. /*
  111.  * Public functions that are not accessible via the stubs table.
  112.  */
  113.  
  114. # undef TCL_STORAGE_CLASS
  115. # define TCL_STORAGE_CLASS DLLIMPORT
  116.  
  117. #endif /* RC_INVOKED */
  118. #endif /* ITK_H */
  119.