зеркало из https://github.com/mozilla/gecko-dev.git
199 строки
5.5 KiB
C++
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;
|
|
};
|
|
|