windows-nt/Source/XPSP1/NT/enduser/stuff/hhctrl/cindex.h
2020-09-26 16:20:57 +08:00

139 lines
3.5 KiB
C++

// Copyright (C) 1996-1997 Microsoft Corporation. All rights reserved.
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef __CINDEX_H__
#define __CINDEX_H__
#ifndef __SITEMAP_H__
#include "sitemap.h"
#endif
#ifndef _CINFOTYPE_H
#include "cinfotyp.h"
#endif
#include "clistbox.h"
#include "navui.h" // Clean up headers
// CDlgItemInfo class --- currently only used for accelerator support.
#include "navpane.h"
#include "vlist.h"
// #include "secwin.h"
//////////////////////////////////////////////////////////////////////////
//
// Constants
//
///////////////////////////////////////////////////////////
//
// Forward References
//
class CHtmlHelpControl; // forward reference
class CHHWinType; // forward reference
///////////////////////////////////////////////////////////
//
// CIndex
//
class CIndex : MI_COUNT(CIndex) public INavUI, // NOTE: This interface must be first. Otherwise, you get an mem error.
public CSiteMap
{
public:
//--- Internal Contants
typedef enum DlgItemInfoIndex
{
c_KeywordEdit,
//c_KeywordsList,
c_DisplayBtn,
c_NumDlgItems
};
//--- Constructor
CIndex(CHtmlHelpControl* phhctrl, IUnknown* pUnkOuter, CHHWinType* phh);
virtual ~CIndex();
//--- INavUI Interface
BOOL Create(HWND hwndParent);
LRESULT OnCommand(HWND hwnd, UINT id, UINT uNotifiyCode, LPARAM lParam) ;
void ResizeWindow();
void HideWindow(void);
void ShowWindow(void);
void SetPadding(int pad) { m_padding = pad; }
void SetTabPos(int tabpos) { m_NavTabPos = tabpos; }
void SetDefaultFocus() ;
bool ProcessMenuChar(HWND hwndParent, int ch);
LRESULT OnNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) {return 1l;}
void OnDrawItem(UINT id, LPDRAWITEMSTRUCT pdis) {/*Not Implemented*/}
void Seed(PCSTR pszSeed);
void Seed(WCHAR* pwszSeed);
void Refresh(void)
{
if ( m_pVList )
m_pVList->Refresh();
}
// Other member functions.
void ChangeOuter(IUnknown* pUnkOuter) { m_pOuter = pUnkOuter; }
void OnVKListNotify(NMHDR* pNMHdr);
BOOL ReadIndexFile(PCSTR pszFile);
void FillListBox(BOOL fReset = FALSE);
//--- Helper functions.
// Returns the font to be used.
HFONT GetContentFont();
// Initialize the DlgItemArray.
void InitDlgItemArray() ;
//--- Member variables.
int m_cFonts;
HFONT* m_ahfonts;
BOOL m_fGlobal; // means we've already initialized ourselves once
LANGID m_langid;
CHtmlHelpControl* m_phhctrl;
IUnknown* m_pOuter;
CHHWinType* m_phh;
HPALETTE m_hpalBackGround;
HBRUSH m_hbrBackGround; // background brush
HBITMAP m_hbmpBackGround;
int m_cxBackBmp;
int m_cyBackBmp;
HWND m_hwndEditBox;
HWND m_hwndListBox;
HWND m_hwndDisplayButton;
HWND m_hwndStaticKeyword;
BOOL m_fSelectionChange;
int m_padding;
CDlgListBox m_listbox;
int m_NavTabPos; // location of parent tabs
BOOL m_fBinary;
CInfoType *pInfoType; // the Information Types
// The window passed into create is not the actual parent window of the
// controls. Instead, the controls are always parented to the Navigation window
// which owns the tabs. For resizing, we need to have a pointer to the
// tabctrl window. So, we save this pointer here.
HWND m_hwndResizeToParent ;
private:
BOOL m_bInit;
CVirtualListCtrl* m_pVList;
// Array of dlgitems
CDlgItemInfo m_aDlgItems[c_NumDlgItems] ;
BOOL m_bUnicode;
};
#endif // __CINDEX_H__