home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / powervww / pvlist.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-05  |  3.2 KB  |  78 lines

  1. //  ____________________________________________________
  2. // |                                                    |
  3. // |  Project:     POWER VIEW INTERFACE                 |
  4. // |  File:        PVLIST.H                             |
  5. // |  Compiler:    WPP386 (10.6)                        |
  6. // |                                                    |
  7. // |  Subject:     Dynamic lists interface              |
  8. // |                                                    |
  9. // |  Author:      Emil Dotchevski                      |
  10. // |____________________________________________________|
  11. //
  12. // E-mail: zajo@geocities.com
  13. // URL:    http://www.geocities.com/SiliconValley/Bay/3577
  14.  
  15. #ifndef _PVLIST_H
  16. #define _PVLIST_H
  17.  
  18. #define leINDEX      0xD5 //index out of range
  19. #define leOVERFLOW   0xD6 //list runs out of range
  20.  
  21. #define loASSOCIATED 0x01 //list is associated w/ another list
  22. #define loSORTED     0x02 //list is sorted
  23.  
  24. class Tlist;
  25.  
  26. typedef boolean (* Tlfilter) ( Tlist *l, uint i );
  27.  
  28. class Tlist
  29. {
  30.   public:
  31.     char options;
  32.     uint _vcount;
  33.     uint _vcurrent;
  34.     uint _vbeg_print;
  35.     int _vmax_print;
  36.     uint &vcount; //total number of items in the list
  37.     uint &vcurrent; //index of the currently selected item
  38.     uint &vbeg_print; //index of the topmost visible item
  39.     int &vmax_print; //number of visible items
  40.     char scroll_ahead;
  41.     Tlist( void );
  42.     Tlist( Tlist *_list );
  43.     Tlist( uint &v_count, uint &v_current, uint &v_beg_print, int &v_max_print );
  44.     virtual ~Tlist( void );
  45.     virtual void clear( void ); //empty the list
  46.     virtual uint add( void *data ) = 0; //add an item to the list
  47.     virtual void ins( uint i, void *data ) = 0; //insert an item before the i-th item
  48.     virtual void del( uint i ) = 0; //delete i-th item
  49.     virtual void get( uint i, void *data ) = 0; //get the i-th item
  50.     virtual void put( uint i, void *data ) = 0; //replace the i-th item
  51.     virtual void sort( void ) = 0; //sort items in the list
  52.     virtual void up( void ); //select previous item
  53.     virtual void down( void ); //select next item
  54.     virtual void pgup( void );
  55.     virtual void pgdn( void );
  56.     virtual void top( void ); //select the first item
  57.     virtual void bottom( void ); //select the last them
  58.     virtual void at( uint i ); //scroll to i-th item
  59.     virtual void gettxt( uint i, char *t ) = 0; //get i-th item as a string
  60.     virtual void *getptr( uint i ) = 0; //get ptr to i-th item
  61.     virtual uint findf( Tlfilter p ); //find first
  62.     virtual uint findn( void ); //find next
  63.     virtual void error( int error_code ) = 0; //called on error
  64.  
  65.   protected:
  66.     Tlfilter cur_filter;
  67.     uint find_index;
  68.     virtual void inc_count( void ); //called to increase count
  69.     virtual void dec_count( void ); //called to decrease count
  70. };
  71. #endif
  72.  
  73. void cursor_up_left( uint ¤t, uint &beg_print, uint max_print, uint scroll_ahead );
  74. void cursor_down_right( uint ¤t, uint &beg_print, uint max_print, uint count, uint scroll_ahead );
  75. void cursor_top_home( uint ¤t, uint &beg_print );
  76. void cursor_bottom_end( uint ¤t, uint &beg_print, uint max_print, uint count );
  77. void cursor_at( uint i, uint ¤t, uint &beg_print, uint max_print, uint count );
  78.