home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / LISTVIEW.PAS < prev    next >
Pascal/Delphi Source File  |  1997-04-07  |  6KB  |  176 lines

  1.  
  2. {╔══════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                          ║
  4.  ║     Sibyl Portable Component Classes                                     ║
  5.  ║                                                                          ║
  6.  ║     Copyright (c) 1995,97 SpeedSoft Germany,   All rights reserved.      ║
  7.  ║                                                                          ║
  8.  ╚══════════════════════════════════════════════════════════════════════════╝}
  9.  
  10. UNIT ListView;
  11.  
  12.  
  13. INTERFACE
  14.  
  15. {$IFDEF OS2}
  16. USES Os2Def,PmWin,PmStdDlg;
  17. {$ENDIF}
  18.  
  19. {$IFDEF Win95}
  20. USES WinDef,WinUser,WinGDI,CommCtrl;
  21. {$ENDIF}
  22.  
  23. USES Messages,{Rene}SysUtils,Classes,Forms,Graphics,OutLine;
  24.  
  25. TYPE
  26.     EListViewError=CLASS(Exception);
  27.  
  28. TYPE
  29.     TListViewNode=CLASS;
  30.     TListView=CLASS;
  31.  
  32.     PListViewRecord=^TListViewRecord;
  33.     TListViewRecord=RECORD
  34.          {$IFDEF OS2}
  35.          RecordCore:RECORDCORE;
  36.          {$ENDIF}
  37.          {$IFDEF Win95}
  38.          RecordCore:LV_ITEM;
  39.          {$ENDIF}
  40.          Node:TListViewNode;  {extra data}
  41.     END;
  42.  
  43.     TListViewNode=CLASS
  44.       PRIVATE
  45.          FTreeRec:PListViewRecord;
  46.          FCaption:PChar;
  47.          FData:POINTER;
  48.          FIndex:LONGINT;
  49.          FListView:TListView;
  50.          FBitmap:TBitmap;
  51.       PRIVATE
  52.          FUNCTION GetCaption:STRING;
  53.          PROCEDURE SetCaption(NewCaption:STRING);
  54.          FUNCTION GetBitmap:TBitmap;
  55.          PROCEDURE SetBitmap(NewBitmap:TBitmap);
  56.       PUBLIC
  57.          CONSTRUCTOR Create(Owner:TListView);
  58.          DESTRUCTOR Destroy;OVERRIDE;
  59.       PUBLIC
  60.          PROPERTY Data:Pointer read FData write FData;
  61.          PROPERTY Text:STRING read GetCaption write SetCaption;
  62.          PROPERTY Bitmap:TBitmap read GetBitmap write SetBitmap;
  63.          PROPERTY Index:LONGINT read FIndex;
  64.     END;
  65.     TListViewNodeClass=CLASS OF TListViewNode;
  66.  
  67.     {$M+}
  68.     TListViewItemSelectEvent=PROCEDURE(Sender:TObject;Index:LONGINT) OF OBJECT;
  69.     {$M-}
  70.  
  71.     TListView=CLASS(TControl)
  72.       PRIVATE
  73.          FBitmapSize:TSize;
  74.          FInitNodes:TList;
  75.          FNodes:TList;
  76.          FNodeClass:TListViewNodeClass;
  77.          FPictureList:TBitmapList;
  78.          FMultipleSel:BOOLEAN;
  79.          FBorderStyle:TBorderStyle;
  80.          FPopupPos:TPoint;
  81.          {$IFDEF Win95}
  82.          FHim:HIMAGELIST;
  83.          {$ENDIF}
  84.          FOnItemSelect:TListViewItemSelectEvent;
  85.       PRIVATE
  86.          {$IFDEF OS2}
  87.          PROCEDURE WMPaint(VAR Msg:TMessage);message WM_PAINT;
  88.          {$ENDIF}
  89.          PROCEDURE SetCnrInfo;
  90.          PROCEDURE SetupImageList;
  91.          PROCEDURE SetupList;
  92.          FUNCTION AddPicture(NewBitmap:TBitmap):TBitmap;
  93.          FUNCTION Get(Index:LONGINT):TListViewNode;
  94.          FUNCTION GetItemCount:LONGINT;
  95.          PROCEDURE UpdateNode(Node:TListViewNode);
  96.          PROCEDURE SetBorderStyle(NewBorder:TBorderStyle);
  97.          FUNCTION GetItemIndex:LONGINT;
  98.          PROCEDURE SetItemIndex(NewValue:LONGINT);
  99.          FUNCTION GetSelect(Index:LONGINT):BOOLEAN;
  100.          PROCEDURE SetSelect(Index:LONGINT;NewValue:BOOLEAN);
  101.       PROTECTED
  102.          PROCEDURE SetupComponent;OVERRIDE;
  103.          {$IFDEF OS2}
  104.          PROCEDURE SetupShow;OVERRIDE;
  105.          {$ENDIF}
  106.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  107.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  108.          PROCEDURE CreateWnd;OVERRIDE;
  109.          PROCEDURE DestroyWnd;OVERRIDE;
  110.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  111.          PROCEDURE ItemSelect(Index:LONGINT);VIRTUAL;
  112.          PROCEDURE ScanEvent(VAR Msg:TWMChar;VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  113.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  114.       PUBLIC
  115.          DESTRUCTOR Destroy;OVERRIDE;
  116.          FUNCTION Add(CONST Text:STRING;Data:POINTER;Bitmap:TBitmap):TListViewNode;
  117.       PUBLIC
  118.          PROPERTY NodeClass:TListViewNodeClass read FNodeClass write FNodeClass;
  119.          PROPERTY Nodes:TList read FNodes;
  120.          PROPERTY Items[Index:LONGINT]:TListViewNode read Get;default;
  121.          PROPERTY ItemCount:LONGINT read GetItemCount;
  122.          PROPERTY ItemIndex:LONGINT read GetItemIndex write SetItemIndex;
  123.          PROPERTY Selected[Index:LONGINT]:BOOLEAN read GetSelect write SetSelect;
  124.          PROPERTY XAlign;
  125.          PROPERTY XStretch;
  126.          PROPERTY YAlign;
  127.          PROPERTY YStretch;
  128.       PUBLISHED
  129.          PROPERTY Align;
  130.          PROPERTY Color;
  131.          PROPERTY BitmapSize:TSize read FBitmapSize write FBitmapSize;
  132.          PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
  133.          PROPERTY PenColor;
  134.          PROPERTY DragCursor;
  135.          PROPERTY DragMode;
  136.          PROPERTY Enabled;
  137.          PROPERTY Font;
  138.          PROPERTY MultipleSel:BOOLEAN read FMultipleSel write FMultipleSel;
  139.          PROPERTY ParentColor;
  140.          PROPERTY ParentPenColor;
  141.          PROPERTY ParentFont;
  142.          PROPERTY ParentShowHint;
  143.          {Rene}
  144.          PROPERTY PopupMenu;
  145.          PROPERTY ShowHint;
  146.          PROPERTY TabOrder;
  147.          PROPERTY TabStop;
  148.          PROPERTY Visible;
  149.          PROPERTY ZOrder;
  150.  
  151.          PROPERTY OnCanDrag;
  152.          {Rene}
  153.          PROPERTY OnDblClick;
  154.          PROPERTY OnDragDrop;
  155.          PROPERTY OnDragOver;
  156.          PROPERTY OnEndDrag;
  157.          PROPERTY OnEnter;
  158.          PROPERTY OnExit;
  159.          PROPERTY OnFontChange;
  160.          PROPERTY OnItemSelect:TListViewItemSelectEvent read FOnItemSelect write FOnItemSelect;
  161.          PROPERTY OnMouseClick;
  162.          PROPERTY OnMouseDblClick;
  163.          PROPERTY OnMouseDown;
  164.          PROPERTY OnMouseMove;
  165.          PROPERTY OnMouseUp;
  166.          PROPERTY OnSetupShow;
  167.          PROPERTY OnStartDrag;
  168.     END;
  169.  
  170.  
  171. FUNCTION InsertListView(Parent:TControl;Left,Bottom,Width,Height:LONGINT;Hint:STRING):TListView;
  172.  
  173.  
  174. IMPLEMENTATION
  175.  
  176.