/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #ifndef __APIOUTLN_H #define __APIOUTLN_H #ifndef __APIAPI_H #include "apiapi.h" #endif #ifndef __NSGUIDS_H #include "nsguids.h" #endif #define APICLASS_OUTLINERPARENT "OutlinerParent" #define APICLASS_OUTLINER "Outliner" typedef enum { ColumnFixed, ColumnVariable } Column_t; typedef enum { CropNone = 0, CropCenter, CropRight, CropLeft } CropType_t; typedef enum { AlignLeft, AlignRight, AlignCenter } AlignType_t; #define OUTLINER_RETURN 1 #define OUTLINER_LBUTTONDOWN 2 #define OUTLINER_LBUTTONUP 3 #define OUTLINER_RBUTTONDOWN 4 #define OUTLINER_RBUTTON 4 // For compatibility #define OUTLINER_RBUTTONUP 5 #define OUTLINER_LBUTTONDBLCLK 6 #define OUTLINER_KEYDOWN 7 #define OUTLINER_PROPERTIES 8 #define OUTLINER_TIMER 9 #define OUTLINER_SET 10 class COutliner; // temporary hack class IOutliner { public: virtual void EnableTips ( BOOL = TRUE ) = 0; virtual BOOL GetTipsEnabled ( void ) = 0; virtual void SetCSID ( int csid ) = 0; virtual int GetCSID ( void ) = 0; virtual int AddColumn ( LPCTSTR header, UINT idCol, int iMinCol, int iMaxCol = 10000, Column_t cType = ColumnFixed, int iPercent = 50, BOOL bIsButton = TRUE, CropType_t ct = CropRight, AlignType_t at = AlignLeft ) = 0; virtual int GetColumnSize ( UINT idCol ) = 0; virtual void SetColumnSize ( UINT idCol, int iSize ) = 0; virtual int GetColumnPercent ( UINT idCol ) = 0; virtual void SetColumnPercent ( UINT idCol, int iPercent ) = 0; virtual int GetColumnPos( UINT idCol ) = 0; virtual void SetColumnPos( UINT idCol, int iColumn ) = 0; virtual void SetColumnName ( UINT idCol, LPCTSTR pName ) = 0; virtual LPCTSTR GetColumnName ( UINT idCol ) = 0; virtual void SetImageColumn( UINT idCol ) = 0; virtual void SetHasPipes( BOOL bPipes ) = 0; virtual void SetVisibleColumns( UINT iVisCol ) = 0; virtual UINT GetVisibleColumns( void ) = 0; virtual void SelectItem ( int iSel, int mode = OUTLINER_SET, UINT flags = 0 ) = 0; virtual BOOL DeleteItem ( int iLine ) = 0; virtual void ScrollIntoView( int iVisibleLine ) = 0; virtual int GetFocusLine( void ) = 0; virtual void SetTotalLines( int ) = 0; virtual int GetTotalLines( void ) = 0; }; typedef IOutliner * LPIOUTLINER; #define ApiOutliner(v,unk) APIPTRDEF(IID_IOutliner,IOutliner,v,unk) class IOutlinerParent { public: virtual void EnableBorder ( BOOL = TRUE ) = 0; virtual void EnableHeaders ( BOOL = TRUE ) = 0; virtual void SetOutliner ( COutliner * pIOutliner ) = 0; virtual COutliner * GetOutliner ( void ) = 0; virtual void CreateColumns ( void ) = 0; virtual BOOL ColumnCommand ( int idColumn ) = 0; virtual BOOL RenderData ( int idColumn, CRect & rect, CDC & dc, LPCTSTR lpsz = NULL ) = 0; }; typedef IOutlinerParent * LPIOUTLINERPARENT; #define ApiOutlinerParent(v,unk) APIPTRDEF(IID_IOutlinerParent,IOutlinerParent,v,unk) #endif