home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / ccs / ccs-11tl.lha / lbl / include / function.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-19  |  3.8 KB  |  151 lines

  1. /*    FUNCTION . H
  2. %
  3. %    Copyright (c)    Jin Guojun    1991
  4. %
  5. %    functions including:
  6. %
  7. %        create color lookup table, get closest color,
  8. %        grey level quantization, quicksort, create panel.
  9. %        integrated histogram stretching algorithms.
  10. %        Histogram ploting subroutine, and exposure handling.
  11. %    Remember:
  12. %        The functions above require the X window library.  So, if
  13. %    any window program is invoked, please use X_WINDOW_DEP or C_TUNER
  14. %    directive. Otherwise, this header file is only a general definition
  15. %    file for regular filters.
  16. %
  17. % AUTHOR:    Guojun Jin - LBL    4/1/91
  18. */
  19.  
  20. #ifndef    FUNC_H
  21. #define    FUNC_H
  22.  
  23. #ifndef    LKT
  24. #define    LKT    int
  25. #endif            /* for lookup-table and interpolation */
  26.  
  27. #include "header.def"    /* for different images */
  28.  
  29. #define    I_Mask    PointerMotionMask | EnterWindowMask |    \
  30.         ButtonPressMask | ButtonReleaseMask | ExposureMask
  31.  
  32. #ifndef    MAX_ITP_LEVEL
  33. #define    MAX_ITP_LEVEL    8    /* maximum interpolation level, 64K mem */
  34. #endif
  35.  
  36.  
  37. /* X_WINDOW dependency OR color "tuner" applications. */
  38.  
  39. #if    defined    X_WINDOW_DEP | defined C_TUNER
  40.  
  41. #include "panel.h"
  42.  
  43. typedef    struct    {
  44.     char    *copyarea;
  45.     Image    *src, *dst, *copy;
  46.     bool    fill, cut;    /* cut or copy */
  47.     int    x0, y0, w, h, dstx, dsty;
  48.     } EditorSpace;
  49.  
  50. #define    ClearParameterWin(imginfo, y0)    \
  51.     XClearArea (imginfo->dpy, imginfo->win, 0, y0,    \
  52.     0, abs(imginfo->tmp_offset), 1); /* imginfo->offset = img->font_h<<1 */
  53.  
  54. #define    ImageEvent(img, Ievent)    \
  55.     XCheckMaskEvent(img->dpy, Ievent, img->event)
  56. #define    RemoveImageEvent(img, Xevent)    \
  57.     while(ImageEvent(img, Xevent))
  58.  
  59. /*    Export variables    */
  60.  
  61. extern    Panel    *Epanel;
  62. extern    Slider    *ESlider, *LSlider, *slider, *CSlider, *QSlider;
  63. extern    Button    *EButton, *FButton, *fButton, *hButton,
  64.         *QButton, *ZButton, *maxButt, *DButton, *Interpolate;
  65. extern    PressButton    *RstButt, *heqButt, *rfsButt;
  66. extern    HistoInfo    histinfo;
  67.  
  68. /*    import variables    */
  69.  
  70. extern    PColor    MGray, Light;
  71. extern    QSCell    QSArray[];
  72. extern    XColor    graylevel[];
  73.  
  74. #define    GetUserColor(color_table, entries, r, g, b)    \
  75.     GetCloseColor(0, 0, entries, color_table, r, g, b)
  76.  
  77. #define    GetUserGray(color_table, entries, gray)    \
  78.     GetCloseColor(0, 0, entries, color_table, gray, gray, gray)
  79.  
  80. #endif    X_WINDOW_DEP | C_TUNER
  81.  
  82.  
  83. #include "imagedef.h"
  84.  
  85. extern    char    *Help_message_array1;
  86. extern    bool    cntz, top, neg, verbose;
  87. extern    int    topv, *dgt, VCTEntry, precision, start_fast,
  88.         fontWidth, fontHeight, ncolors;
  89.  
  90. #define    ELALINFO    1    /* Slider events */
  91. #define    CLIPINFO    2
  92. #define    QUANINFO    3
  93. #define    HMARKPOS    4
  94. #define    IMAGEINFO    5
  95. #define    MOVESCROLLBAR    6
  96.  
  97.     /* ETA function codes */
  98.  
  99. #define    ETAForeGD    0    /* elastic on foreground */
  100. #define    ETABackGD    1    /* elastic on background */
  101. #define    ETALinear    2    /* linear scale, it effects all others */
  102. #define    ETAQuant    4    /* quantization on */
  103. #define    ETAHistoEq    0x80    /* histo equalization */
  104.  
  105. #define    OnETASlider    1
  106. #define    OnClipSlider    2
  107. #define    OnQuanSlider    3
  108. #define    OnHistButton    5
  109. #define    OnHEQButton    6
  110. #define    OnZcntButton    7
  111. #define    OnQuanButton    8
  112. #define    OnFrameButton    9
  113. #define    OnChannel    9    /* for color version */
  114. #define    OnDataButton    10
  115. #define    OnInterpolate    11
  116. #define    OnETAButton    12
  117. #define    OnMaxButton    13    /* not used */
  118. #define    OnResetButton    14
  119. #define    OnRefresh    15
  120.  
  121.  
  122. #define    fb_format    "%3d/%3d"
  123.  
  124. #define    PosFRAME    0
  125. #define    NumFRAME    1    /* frame change button */
  126. #define    PrevFRAME    2
  127. #define    NextFRAME    3
  128.  
  129. #define    FileLabel    0
  130. #define    FileLoad    1    /* file access button */
  131. #define    FileSave    2
  132. #define    FileReLoad    -1    /* for FileLoad and FileAccess. Not FButton */
  133.  
  134. #define    DataAnalys    0    /* data update button. boolean value */
  135. #define    DateUpdate    1    /* never change these 2 definetions */
  136.  
  137. #ifndef    HistBottom
  138. #define    HistBottom    1
  139. #endif
  140. #define    HistScaleSelf    0+HistBottom    /* hButton (SelfScale/Set button) */
  141. #define    HistScaleSet    1+HistBottom
  142. #define    HistBgNeg    2+HistBottom
  143. #define    HistBgGrid    3+HistBottom
  144.  
  145. #define    ButtonRed    0    /* for color version */
  146. #define    ButtonGreen    1
  147. #define    ButtonBlue    2
  148. #define    ButtonSync    3    /* 3 channel function together */
  149.  
  150. #endif    FUNC_H
  151.