gecko-dev/cmd/macfe/MailNews/CSimpleFolderView.h
1998-06-25 05:50:45 +00:00

138 lines
4.0 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) 1997 Netscape Communications Corporation. All Rights
* Reserved.
*/
// CSimpleFolderView.h
#pragma once
#include "CMailFlexTable.h"
class CThreadView;
class CThreadWindow;
class CStr255;
class CMessageFolder;
//------------------------------------------------------------------------------
// ¥ CSimpleFolderView
//------------------------------------------------------------------------------
//
class CSimpleFolderView : public CMailFlexTable
{
private:
typedef CMailFlexTable Inherited;
public:
enum
{ class_ID = 'SFVw'
};
CSimpleFolderView(LStream *inStream);
virtual ~CSimpleFolderView();
protected:
//-----------------------------------
// Public folder fun
//-----------------------------------
public:
void LoadFolderList(CNSContext* inContext);
//-----------------------------------
// Command implementation
//-----------------------------------
MSG_FolderInfo* GetSelectedFolder() const;
void SelectFirstFolderWithFlags(uint32 inFlags);
void SelectFolder(const MSG_FolderInfo* inFolderInfo);
void SelectHilitesWholeRow(const Boolean inWholeRow)
{ mSelectHilitesWholeRow = inWholeRow;};
virtual void DeleteSelection();
//-----------------------------------
// Drawing (specials from CStandardFlexTable)
//-----------------------------------
protected:
virtual ResIDT GetIconID(TableIndexT inRow) const;
virtual UInt16 GetNestedLevel(TableIndexT inRow) const;
virtual TableIndexT GetHiliteColumn() const;
virtual Boolean GetHiliteTextRect(
const TableIndexT inRow,
Rect& outRect) const;
virtual void ApplyTextStyle(TableIndexT inRow) const;
virtual void DrawCellContents(
const STableCell &inCell,
const Rect &inLocalRect);
//-----------------------------------
// Hierarchy
//-----------------------------------
virtual Boolean CellHasDropFlag(const STableCell& inCell, Boolean& outIsExpanded) const;
virtual void SetCellExpansion(const STableCell& inCell, Boolean inExpand);
virtual void GetMainRowText(
TableIndexT inRow,
char* outText,
UInt16 inMaxBufferLength) const;
//-----------------------------------
// Commands
//-----------------------------------
virtual void FindCommandStatus(
CommandT inCommand,
Boolean &outEnabled,
Boolean &outUsesMark,
Char16 &outMark,
Str255 outName);
public:
//-----------------------------------
// Messaging
//-----------------------------------
virtual void ListenToMessage(MessageT inMessage, void* ioParam);
//-----------------------------------
// Data change notification (callbacks from MSGlib)
//-----------------------------------
virtual void ChangeFinished(
MSG_Pane* inPane,
MSG_NOTIFY_CODE inChangeCode,
TableIndexT inStartRow,
SInt32 inRowCount);
void FoldersChanged(
TableIndexT inStartRow,
SInt32 inRowCount) const;
protected:
void UpdateMailFolderMenusOnNextUpdate()
{ mUpdateMailFolderMenusOnNextUpdate = true; }
//-----------------------------------
// Data
//-----------------------------------
Boolean mSelectHilitesWholeRow; // select whole row vs. just the name
Boolean mUpdateMailFolderMenusWhenComplete;
Boolean mUpdateMailFolderMenusOnNextUpdate;
};