139 lines
3.5 KiB
C++
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__
|