//..............................................................................
//
// Ninja document model - plugin host
//

import "doc_MainThreadScheduler.jnc"
import "ui_Menu.jnc"
import "ui_ToolBar.jnc"
import "ui_StatusBar.jnc"
import "ui_PropertyGrid.jnc"
import "ui_InformationGrid.jnc"
import "ui_Terminal.jnc"
import "log_Log.jnc"

namespace doc {

//! \addtogroup api-doc
//! @{

//..............................................................................

opaque class PluginHost
{
	ui.Menu m_menu;
	ui.ToolBar m_toolBar;
	ui.StatusBar m_statusBar;
	ui.PropertyGrid m_propertyGrid;
	ui.InformationGrid m_informationGrid;
	ui.Terminal m_terminal;
	log.Log m_log;
	MainThreadScheduler* m_mainThreadScheduler;

	char const* const property m_pluginDir;

	destruct();
}

//..............................................................................

//! @}

} // namespace doc

void trace(char const* p);
void sendKeepAlive();
