home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ctcoll95.zip / UNIVERSE / CONTAINE.H < prev    next >
C/C++ Source or Header  |  1995-03-10  |  8KB  |  142 lines

  1. #if !defined(__OWL_CONTAINER_H)
  2. #define __OWL_CONTAINER_H
  3.  
  4. #define INCL_PM
  5.  
  6. #include <os2.h>
  7. #include <control.h>
  8. #include <gdiobjec.h>
  9.  
  10. // EIGENE FELDER FÜR DETAIL-VIEW
  11. typedef struct _RECORDEXT
  12. {
  13.   ULONG         ulAve;
  14.   ULONG         ulMax;
  15.   HICON         hico;
  16. } RECORDEXT, *PRECORDEXT;
  17.  
  18. // RECORDCORE ERWEITERN
  19. typedef struct _RECORDCNR
  20. {
  21.   RECORDCORE    RecordCore;
  22.   RECORDEXT     RecordExt;
  23. } RECORDCNR, *PRECORDCNR;
  24.  
  25.  
  26.  
  27. class _OWLCLASS TContainer;
  28.  
  29. class _OWLCLASS TContainer : public TControl
  30.       {
  31.          protected:     CNRINFO                 CI;
  32.                         FIELDINFO              *pLastFI;
  33.                         FIELDINFOINSERT         FII;
  34.                         RECORDCNR              *pLastRC;
  35.                         RECORDINSERT            RI;
  36.                         LONG                    lSortMode;
  37.                         LONG                    lFilterMode;
  38.  
  39.          public:        TContainer (TWindow *parent, int resourceId, TModule *module = 0)
  40.                        :TControl (parent, resourceId, module) {};
  41.                         TContainer (TWindow *parent, TResId id, int x, int y, int w, int h,
  42.                                     TModule *module = 0)
  43.                        :TControl (parent,id,NULL,x,y,w,h,module)
  44.                           { Attr.Style |= CCS_AUTOPOSITION | CCS_SINGLESEL; }
  45.                        // ÜBERSCHREIBEN FÜR EXTRA-SETUP
  46.                         virtual void    SetupWindow();
  47.                        // CONTAINER TITLE & ANSICHTEN
  48.                         BOOL            SetTitle (PSZ pszTitle = NULL, char chAlign = 'C');
  49.                         BOOL            SetIconView (BOOL fMini = FALSE, BOOL fTree = FALSE);
  50.                         BOOL            SetTextView (BOOL fFlow = FALSE, BOOL fTree = FALSE);
  51.                         BOOL            SetNameView (BOOL fMini = FALSE, BOOL fFlow = FALSE);
  52.                         BOOL            SetDetailView (BOOL fTitles = FALSE);
  53.                        // AUSWAHLMÖGLICHKEITEN (EINFACH, ERWEITERT, MEHRFACH)
  54.                         void            SetSingleSelection ();
  55.                         void            SetExtendedSelection ();
  56.                         void            SetMultipleSelection ();
  57.                        // RECORDS SORTIEREN
  58.                         virtual SHORT   CompareRecord (RECORDCNR *pRC1, RECORDCNR *pRC2,
  59.                                                        void *pStorage = NULL);
  60.                         void            SetSortMode (LONG lSM = 0) { lSortMode = lSM; };
  61.                         LONG            GetSortMode() { return (lSortMode); };
  62.                         BOOL            Sort (void *pStorage = NULL);
  63.                        // RECORDS FILTERN
  64.                         virtual BOOL    FilterRecord (RECORDCNR *pRC, void *pStorage = NULL)
  65.                                           { return TRUE; };
  66.                         void            SetFilterMode (LONG lFM = 0) { lFilterMode = lFM; };
  67.                         LONG            GetFilterMode() { return (lFilterMode); };
  68.                         BOOL            Filter (void *pStorage = NULL);
  69.                        // RECORD SUCHEN
  70.                         RECORDCNR      *SearchRecord (PSZ pszText, RECORDCNR *pRC = NULL,
  71.                                                       BOOL fPrefix = TRUE, BOOL fCase = FALSE);
  72.                        // EINGABEFELD ÖFFNEN/SCHLIESSEN
  73.                         BOOL            CloseEdit();
  74.                         BOOL            OpenEdit (RECORDCNR *pRC, FIELDINFO *pFI = NULL);
  75.                        // MARKIERUNG DEFINIEREN
  76.                         ULONG           SetEmphasis (RECORDCNR *pRC, BOOL fChange = TRUE,
  77.                                                      BOOL fSelected = TRUE,
  78.                                                      BOOL fCursored = FALSE,
  79.                                                      BOOL fInUse = FALSE);
  80.                         RECORDCNR      *GetEmphasis (RECORDCNR *pRC, BOOL fSelected = TRUE,
  81.                                                      BOOL fCursored = FALSE,
  82.                                                      BOOL fInUse = FALSE);
  83.                        // NUR ICON-VIEW
  84.                         BOOL            ArrangeIcons ();
  85.                        // NUR TREE-VIEW
  86.                         BOOL            CollapseTree (RECORDCNR *pRC = NULL);
  87.                         BOOL            ExpandTree (RECORDCNR *pRC = NULL);
  88.                         BOOL            SetTreeIndent (LONG lTI = -1);
  89.                         BOOL            SetTreeLine (LONG lTL = -1, BOOL fDraw = TRUE);
  90.                         BOOL            SetTreeIcons (TIcon *pIcoExp, TIcon *pIcoCol);
  91.                        // NUR DETAIL-VIEW
  92.                         BOOL            ScrollSplitWindow (BOOL fLeft, LONG lPixel);
  93.                         BOOL            SetSplitBar (LONG lSB = -1);
  94.                         BOOL            SetLastSplitColumn (FIELDINFO *pFI = NULL);
  95.                        // FÜR ALLE RECORDS
  96.                         void            SetReadOnly (BOOL fRO = TRUE);
  97.                         void            SetAutoPosition (BOOL fAuto = TRUE);
  98.                         void            SetPointerVerification (BOOL fVerify = FALSE);
  99.                         BOOL            ScrollWindow (BOOL fDir, LONG lPixel);
  100.                         BOOL            SetLineSpacing (LONG lLS = -1);
  101.                        // LETZTE EINGEFÜGTE POINTER ERMITTELN
  102.                         RECORDCNR      *GetLastRecord() { return (pLastRC); };
  103.                         FIELDINFO      *GetLastDetail() { return (pLastFI); };
  104.                        // NORMALEN RECORD EINFÜGEN
  105.                         ULONG           InsertRecord (RECORDCNR  *pRClevel,
  106.                                                       RECORDCNR  *pRCpred,
  107.                                                       RECORDEXT  *pRE,
  108.                                                       PSZ         pszText,
  109.                                                       TPoint     *pIconPos,
  110.                                                       TIcon      *pStdIcon,
  111.                                                       TIcon      *pMiniIcon,
  112.                                                       BOOL        fHide = FALSE,
  113.                                                       BOOL        fDrop = FALSE,
  114.                                                       BOOL        fReadOnly = FALSE);
  115.                        // DETAIL-BESCHREIBUNG EINFÜGEN
  116.                         ULONG           InsertDetail (FIELDINFO  *pFIpred,
  117.                                                       PSZ         pszTitle,
  118.                                                       ULONG       ulOfs = FIELDOFFSET(RECORDCNR,RecordCore.pszText),
  119.                                                       char        chType = 'S',
  120.                                                       ULONG       ulColWidth = 100,
  121.                                                       char        chAlignData = 'L',
  122.                                                       char        chAlignTitle = 'C',
  123.                                                       BOOL        fReadOnly = TRUE);
  124.                        // RECORD & DETAIL LÖSCHEN
  125.                         LONG            RemoveRecord (RECORDCNR *pRC = NULL);
  126.                         LONG            RemoveDetail (FIELDINFO *pFI = NULL);
  127.                        // SCROLLBARS ZUM LEBEN ERWECKEN
  128.                         void            EvHScroll (UINT scrollCode, UINT thumbPos, HWND hWndCtl);
  129.                         void            EvVScroll (UINT scrollCode, UINT thumbPos, HWND hWndCtl);
  130.                        // PROTECTED
  131.          protected:     void            SetStyle (ULONG ulStyle);
  132.                         ULONG           ClearStyle (ULONG ulStyle);
  133.                         BOOL            SetView (ULONG ulFlags);
  134.                         char far       *GetClassName();
  135.                        // RESPONSE TABLE
  136.                         DECLARE_RESPONSE_TABLE(TContainer);
  137.                         DECLARE_STREAMABLE(_OWLCLASS, TContainer, 1);
  138.       };
  139.  
  140. #endif
  141.  
  142.