gecko-dev/cmd/macfe/MailNews/CMailFolderButtonPopup.h

199 строки
5.5 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.
*/
// CMailFolderButtonPopup.h
#pragma once
/*====================================================================================*/
#pragma mark INCLUDE FILES
/*====================================================================================*/
#include "CPatternButtonPopup.h"
#include "CPatternButtonPopupText.h"
#include "UMailFolderMenus.h"
/*====================================================================================*/
#pragma mark CLASS DECLARATIONS
/*====================================================================================*/
#pragma mark - CMailFolderButtonPopup
//======================================
class CMailFolderButtonPopup : public CPatternButtonPopup,
public CMailFolderPopupMixin
// Class for the button popup
//======================================
{
public:
enum { class_ID = 'MfPu' };
CMailFolderButtonPopup(LStream *inStream) :
CPatternButtonPopup(inStream) {
}
protected:
virtual void FinishCreateSelf(void);
virtual void BroadcastValueMessage(void);
virtual Boolean TrackHotSpot(Int16 inHotSpot, Point inPoint, Int16 inModifiers);
virtual MenuHandle MGetSystemMenuHandle(void);
virtual void MRefreshMenu(void);
};
#pragma mark - CMailFolderPatternTextPopup
//======================================
class CMailFolderPatternTextPopup : public CPatternButtonPopupText,
public CGAPopupFolderMixin
// Class for the relocation popup menu in the thread pane
//======================================
{
private:
typedef CPatternButtonPopupText Inherited;
public:
enum { class_ID = 'MfPT' };
CMailFolderPatternTextPopup(LStream *inStream);
protected:
virtual void FinishCreateSelf(void);
virtual void BroadcastValueMessage(void);
virtual Boolean TrackHotSpot(Int16 inHotSpot, Point inPoint, Int16 inModifiers);
virtual void HandlePopupMenuSelect( Point inPopupLoc,
Int16 inCurrentItem,
Int16 &outMenuID,
Int16 &outMenuItem);
virtual MenuHandle MGetSystemMenuHandle(void);
virtual void MRefreshMenu(void);
}; // class CMailFolderPatternTextPopup
#pragma mark - CMailFolderGAPopup
//======================================
class CMailFolderGAPopup : public LGAPopup,
public CGAPopupFolderMixin
// Class for the relocation popup menu in the thread pane
//======================================
{
public:
enum { class_ID = 'MfPM' };
CMailFolderGAPopup(LStream *inStream);
protected:
virtual void FinishCreateSelf(void);
virtual void BroadcastValueMessage(void);
virtual Boolean TrackHotSpot(Int16 inHotSpot, Point inPoint, Int16 inModifiers);
virtual void HandlePopupMenuSelect( Point inPopupLoc,
Int16 inCurrentItem,
Int16 &outMenuID,
Int16 &outMenuItem);
virtual MenuHandle MGetSystemMenuHandle(void);
virtual void MRefreshMenu(void);
}; // class CMailFolderGAPopup
#pragma mark - CFolderScopeGAPopup
//======================================
class CFolderScopeGAPopup : public CMailFolderGAPopup
// differs from CMailFolderGAPopup only in the setting of mDesiredFolderFlags
//======================================
{
public:
enum { class_ID = 'SsPM' };
CFolderScopeGAPopup(LStream *inStream);
}; // class CFolderScopeGAPopup
#pragma mark - CFolderMoveGAPopup
//======================================
class CFolderMoveGAPopup : public CMailFolderGAPopup
//======================================
{
typedef CMailFolderGAPopup Inherited;
public:
enum { class_ID = 'SsFM' };
CFolderMoveGAPopup(LStream *inStream);
virtual ~CFolderMoveGAPopup();
protected:
virtual Boolean TrackHotSpot(
Int16 inHotSpot,
Point inPoint,
Int16 inModifiers);
}; // class CFolderScopeGAPopup
#pragma mark - CMailFolderSubmenu
//======================================
class CMailFolderSubmenu : public LMenu,
public CMenuMailFolderMixin
// Class for the hierarchical menu
//======================================
{
public:
static void InstallMailFolderSubmenus(void);
static void RemoveMailFolderSubmenus(void);
static void SetSelectedFolder(const MSG_FolderInfo* inInfo);
static Boolean IsMailFolderCommand(CommandT *ioMenuCommand, const char** outName = nil);
CMailFolderSubmenu(Int16 inMENUid,
CommandT inMenuCommand = cmd_UseMenuItem) :
LMenu(inMENUid),
CMenuMailFolderMixin(inMenuCommand) {
}
protected:
enum {
menuID_MoveMessage = 44
, menuID_CopyMessage = 46
};
static void CreateMenus(void);
// Instance variables
// Class variables
static CMailFolderSubmenu *sMoveMessageMenu;
static CMailFolderSubmenu *sCopyMessageMenu;
};