112 lines
2.7 KiB
C++
Executable File
112 lines
2.7 KiB
C++
Executable File
/*
|
|
* IBrowser.h - Browser Manager public interface
|
|
*
|
|
* contains public interface defintions for the global manager
|
|
* and individual browsers
|
|
*
|
|
* Copyright © Autodesk, Inc, 2000. John Wainwright.
|
|
*
|
|
*/
|
|
|
|
#ifndef _H_IBROWSER
|
|
#define _H_IBROWSER
|
|
|
|
#include "iFnPub.h"
|
|
|
|
#ifdef BLD_BROWSER
|
|
# define BrowserExport __declspec( dllexport )
|
|
#else
|
|
# define BrowserExport __declspec( dllimport )
|
|
#endif
|
|
|
|
class IBrowserMgr;
|
|
class IBrowser;
|
|
|
|
// Core interface to the new MAX browser manager
|
|
|
|
// Browser Manager interface ID
|
|
#define BROWSER_MGR_INTERFACE Interface_ID(0x65342378, 0x4c540d3b)
|
|
inline IBrowserMgr* GetBrowserMgr() { return (IBrowserMgr*)GetCOREInterface(BROWSER_MGR_INTERFACE); }
|
|
|
|
// class IBrowserMgr
|
|
// manager public Core interface
|
|
class IBrowserMgr : public FPStaticInterface
|
|
{
|
|
public:
|
|
// new browser windows
|
|
virtual IBrowser* NewBrowser(TCHAR* rootURL,
|
|
BOOL showDirectory=TRUE, BOOL showContent=TRUE,
|
|
BOOL showToolbar=TRUE, BOOL showMenu=TRUE,
|
|
HWND parentWindow=NULL)=0;
|
|
// iterate browsers
|
|
virtual int NumBrowsers()=0;
|
|
virtual IBrowser* GetBrowser(int i)=0;
|
|
|
|
// interface function IDs
|
|
enum {
|
|
newBrowser,
|
|
numBrowsers,
|
|
getBrowser,
|
|
};
|
|
|
|
};
|
|
|
|
// Browser interface ID
|
|
#define BROWSER_INTERFACE_DESC Interface_ID(0x74a22be8, 0x18e117c9)
|
|
inline FPInterfaceDesc* GetBrowserInterfaceDesc() { return (FPInterfaceDesc*)GetCOREInterface(BROWSER_INTERFACE_DESC); }
|
|
|
|
// class IBrowser
|
|
// individiual browser interface
|
|
class IBrowser : public FPMixinInterface
|
|
{
|
|
public:
|
|
// browser control
|
|
#ifdef USE_CUSTOM_MATNAV
|
|
virtual void Init()=0;
|
|
#endif
|
|
virtual void Close()=0;
|
|
virtual void ShowDirectory(BOOL onOff)=0;
|
|
virtual void ShowContent(BOOL onOff)=0;
|
|
virtual void ShowMenu(BOOL onOff)=0;
|
|
virtual void ShowToolbar(BOOL onOff)=0;
|
|
|
|
// navigation
|
|
virtual BOOL SetRootURL(TCHAR* rootURL)=0;
|
|
virtual BOOL BrowseTo(TCHAR* browseURL)=0;
|
|
|
|
// interface function IDs
|
|
enum {
|
|
#ifdef USE_CUSTOM_MATNAV // russom - 10/18/01
|
|
init,
|
|
#endif
|
|
close,
|
|
showDirectory,
|
|
showContent,
|
|
showMenu,
|
|
showToolbar,
|
|
setRootURL,
|
|
browseTo,
|
|
};
|
|
|
|
// dispatch map
|
|
BEGIN_FUNCTION_MAP
|
|
#ifdef USE_CUSTOM_MATNAV
|
|
VFN_0(init, Init);
|
|
#endif
|
|
VFN_0(close, Close);
|
|
VFN_1(showDirectory,ShowDirectory, TYPE_BOOL);
|
|
VFN_1(showContent, ShowContent, TYPE_BOOL);
|
|
VFN_1(showMenu, ShowMenu, TYPE_BOOL);
|
|
VFN_1(showToolbar, ShowToolbar, TYPE_BOOL);
|
|
FN_1(setRootURL, TYPE_BOOL, SetRootURL, TYPE_STRING);
|
|
FN_1(browseTo, TYPE_BOOL, BrowseTo, TYPE_STRING);
|
|
END_FUNCTION_MAP
|
|
|
|
FPInterfaceDesc* GetDesc() { return GetBrowserInterfaceDesc(); }
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|