You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
4.8 KiB
166 lines
4.8 KiB
/////////////////////////////////////////////////////////////////////////////
|
|
// Copyright (C) 1993-1996 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// MODULE: statbar.h
|
|
//
|
|
// PURPOSE: Defines the CStatusBar class
|
|
//
|
|
|
|
#ifndef __STATBAR_H__
|
|
#define __STATBAR_H__
|
|
|
|
#include "spoolapi.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// STATUS_BAR_PART
|
|
//
|
|
// Defines the different parts that are available in the status bar
|
|
//
|
|
typedef enum {
|
|
SBP_FILTERED = 0,
|
|
SBP_GENERAL,
|
|
SBP_PROGRESS,
|
|
SBP_CONNECTED,
|
|
SBP_SPOOLER,
|
|
SBP_MAX
|
|
} STATUS_BAR_PART;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Initialization Flags
|
|
//
|
|
|
|
#define SBI_HIDE_SPOOLER 0x00000001
|
|
#define SBI_HIDE_CONNECTED 0x00000002
|
|
#define SBI_HIDE_FILTERED 0x00000004
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CONN_STATUS
|
|
//
|
|
// Parameter to SetConnectedStatus().
|
|
//
|
|
typedef enum {
|
|
CONN_STATUS_WORKOFFLINE = 0,
|
|
CONN_STATUS_CONNECTED,
|
|
CONN_STATUS_DISCONNECTED,
|
|
CONN_STATUS_MAX
|
|
} CONN_STATUS;
|
|
|
|
enum {
|
|
STATUS_IMAGE_CONNECTED = 0,
|
|
STATUS_IMAGE_AUTHORIZING,
|
|
STATUS_IMAGE_CHECKING,
|
|
STATUS_IMAGE_CHECKING_NEWS,
|
|
STATUS_IMAGE_SENDING,
|
|
STATUS_IMAGE_RECEIVING,
|
|
STATUS_IMAGE_NOMSGS,
|
|
STATUS_IMAGE_NEWMSGS,
|
|
STATUS_IMAGE_ERROR,
|
|
STATUS_IMAGE_DISCONNECTED,
|
|
STATUS_IMAGE_OFFLINE,
|
|
STATUS_IMAGE_ONLINE,
|
|
STATUS_IMAGE_MAX
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IStatusBar
|
|
//
|
|
interface IStatusBar : public IUnknown
|
|
{
|
|
STDMETHOD(Initialize)(THIS_ HWND hwndParent, DWORD dwFlags) PURE;
|
|
STDMETHOD(ShowStatus)(THIS_ BOOL fShow) PURE;
|
|
STDMETHOD(OnSize)(THIS_ int cx, int cy) PURE;
|
|
STDMETHOD(GetHeight)(THIS_ int *cy) PURE;
|
|
STDMETHOD(ShowSimpleText)(THIS_ LPTSTR pszText) PURE;
|
|
STDMETHOD(HideSimpleText)(THIS) PURE;
|
|
STDMETHOD(SetStatusText)(THIS_ LPTSTR pszText) PURE;
|
|
STDMETHOD(ShowProgress)(THIS_ DWORD dwRange) PURE;
|
|
STDMETHOD(SetProgress)(THIS_ DWORD dwPos) PURE;
|
|
STDMETHOD(HideProgress)(THIS) PURE;
|
|
STDMETHOD(SetConnectedStatus)(THIS_ CONN_STATUS status) PURE;
|
|
STDMETHOD(SetSpoolerStatus)(THIS_ DELIVERYNOTIFYTYPE type, DWORD cMsgs) PURE;
|
|
STDMETHOD(OnNotify)(THIS_ NMHDR *pnmhdr) PURE;
|
|
STDMETHOD(SetFilter)(THIS_ RULEID ridFilter) PURE;
|
|
};
|
|
|
|
#define IDC_STATUS_BAR 4000
|
|
#define IDC_STATUS_PROGRESS 4001
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CStatusBar
|
|
//
|
|
|
|
class CStatusBar : public IStatusBar
|
|
{
|
|
public:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Constructors, Destructors, and Initialization
|
|
//
|
|
CStatusBar();
|
|
~CStatusBar();
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// IUnknown
|
|
//
|
|
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
|
|
ULONG STDMETHODCALLTYPE AddRef(void);
|
|
ULONG STDMETHODCALLTYPE Release(void);
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// IStatusBar
|
|
//
|
|
STDMETHODIMP Initialize(HWND hwndParent, DWORD dwFlags);
|
|
STDMETHODIMP ShowStatus(BOOL fShow);
|
|
STDMETHODIMP OnSize(int cx, int cy);
|
|
STDMETHODIMP GetHeight(int *pcy);
|
|
STDMETHODIMP ShowSimpleText(LPTSTR pszText);
|
|
STDMETHODIMP HideSimpleText(void);
|
|
STDMETHODIMP SetStatusText(LPTSTR pszText);
|
|
STDMETHODIMP ShowProgress(DWORD dwRange);
|
|
STDMETHODIMP SetProgress(DWORD dwPos);
|
|
STDMETHODIMP HideProgress(void);
|
|
STDMETHODIMP SetConnectedStatus(CONN_STATUS status);
|
|
STDMETHODIMP SetSpoolerStatus(DELIVERYNOTIFYTYPE type, DWORD cMsgs);
|
|
STDMETHODIMP OnNotify(NMHDR *pnmhdr);
|
|
STDMETHODIMP SetFilter(RULEID ridFilter);
|
|
|
|
private:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Utility Functions
|
|
//
|
|
void _UpdateWidths(void);
|
|
HICON _GetIcon(DWORD iIndex);
|
|
|
|
private:
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// Class Data
|
|
//
|
|
ULONG m_cRef;
|
|
HWND m_hwnd;
|
|
HWND m_hwndProg;
|
|
DWORD m_tidOwner;
|
|
|
|
DWORD m_dwFlags;
|
|
HIMAGELIST m_himl;
|
|
HICON m_rgIcons[STATUS_IMAGE_MAX];
|
|
|
|
// Cached width information
|
|
int m_cxFiltered;
|
|
int m_cxSpooler;
|
|
int m_cxConnected;
|
|
int m_cxProgress;
|
|
|
|
// State
|
|
BOOL m_fInSimple;
|
|
|
|
// Cached filter info
|
|
RULEID m_ridFilter;
|
|
CONN_STATUS m_statusConn;
|
|
DELIVERYNOTIFYTYPE m_typeDelivery;
|
|
DWORD m_cMsgsDelivery;
|
|
};
|
|
|
|
|
|
#endif
|
|
|