gecko-dev/cmd/winfe/apioutln.h

214 строки
3.9 KiB
C++

/* -*- 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