home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / misc_src / cslib16b / include / cspanel.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-01  |  3.6 KB  |  121 lines

  1. /***********************************************************************
  2.  
  3.                                        CSA Library, Version 1.6.b 
  4.                                          Released: March 2nd 1995 
  5.  
  6.        Defining the PANEL class.
  7.  
  8.                                            Copyright(c) 1994,1995 
  9.                                                            Combis 
  10.                                                   The Netherlands 
  11. ***********************************************************************/
  12.  
  13. #ifndef __CSPANEL_H
  14. #define __CSPANEL_H
  15.  
  16.  
  17. #ifndef __CSWINDOW_H
  18.   #include "cswindow.h"
  19. #endif
  20. #ifndef __CSFIELD_H
  21.   #include "csfield.h"
  22. #endif
  23.  
  24. #define MAX_FIELDS  35
  25. #define mod_field  field()
  26.  
  27.  
  28.  
  29.  
  30. class PANEL: public WINDOW
  31. {
  32. private:
  33.  
  34.    int num_field;
  35.    int exitkey;
  36.    int use_exit_f;
  37.    int esc_allow;
  38.    int fieldcolor;
  39.    int is_changed;
  40.  
  41.    FIELD *fields[MAX_FIELDS+1];   // pointers to the fields
  42.  
  43. protected:
  44.    int calc_changed(void);
  45.    int add_field(int r,int k,int le,FIELD *fpp);
  46.  
  47.  
  48. ////////////////////////////////////////////////////////////////////////
  49. ////////////////////// PUBLIC FUNCTIONS ////////////////////////////////
  50. ////////////////////////////////////////////////////////////////////////
  51.  
  52. public:
  53.  
  54.  
  55. /////////////////////// Adding a field /////////////////////////////////
  56.    int add_field(int r,int k,CSCHAR *s) { return add_field(r,k,strlen(s),s); }
  57.    int add_field(int r,int k,int le,CSCHAR *s) ;
  58.    int add_field(int r,int k,int dl,int ml, CSCHAR *s) ;
  59.    int add_field(int r,int k,CSCHAR &ch) { return  add_field(r,k,1,ch); }
  60.    int add_field(int r,int k,int le,CSCHAR &ch) ;
  61.    int add_field(int r,int k,int le,int &i) ;
  62.    int add_field(int r,int k,int le,long &l) ;
  63.    int add_field(int r,int k,int le,float &t) ;
  64.    int add_field(int r,int k,int le,double &d) ;
  65.    int add_field(int r,int k,int le,DATE &d) ;
  66.    int add_field(int r,int k,DATE &d) { return add_field(r,k,d.long_year()*2+8,d); }
  67.  
  68.  
  69.  
  70. /////////////////////// Read & Edit ////////////////////////////////////
  71.    int read(void);
  72.  
  73. //////////////////////// Display ///////////////////////////////////////
  74.    void display(void);
  75.  
  76. //////////////////////// Update panel //////////////////////////////////
  77.    void recreate(void);
  78.  
  79. //////////////////////// Changed? //////////////////////////////////////
  80.    int changed(void)              { return is_changed; }
  81.  
  82. //////////////////////// FIELD pointer /////////////////////////////////
  83.    FIELD& field(void)              { return field(num_field-1); }
  84.    FIELD& field(int num)          { return *fields[num]; }
  85.  
  86.  
  87. //////////////////////// Defining the panel ////////////////////////////
  88.    void protect(int ebd);
  89.    void protect(int field,int ebd);
  90.    void exit_key(int tf)          { exitkey=tf; }
  91.    void exit_field(int num,int tf);
  92.    void exit_field(int tf)          { exit_field(num_field-1,tf); }
  93.    void escape_off(void)          { escape(FALSE); }
  94.    void escape_on(void)           { escape(TRUE); }
  95.    void escape(int tf)              { esc_allow=tf; }
  96.  
  97.  
  98. /////////////////////////Remove panel from screen //////////////////////
  99.    void remove(void);
  100.  
  101.  
  102. ///////////////////////// Setting colors ///////////////////////////////
  103.    void field_color(int c)          { fieldcolor=c; }
  104.    int    field_color(void)          { return fieldcolor; }
  105.    void color(int borc,int scrc,int fiec)
  106.                       { border_color(borc);
  107.                     screen_color(scrc);
  108.                     field_color(fiec);
  109.                       }
  110.  
  111.  
  112. ///////////////////////// Con&Des-structor /////////////////////////////
  113.    PANEL(void);
  114.    ~PANEL(void);
  115.  
  116. };
  117.  
  118.  
  119.  
  120. #endif
  121.