Ejemplo n.º 1
0
void CNavPaneWnd::ActivateTab(int nTab, bool bExpand)
{
	m_nActiveTab = nTab;

	for (size_t i = 0; i < m_tabs.size(); ++i)
	{
		const CRect& rc = m_tabs[i].rcContent;
		if (i != nTab || rc.Width() <= 0 || rc.Height() <= 0)
		{
			m_tabs[i].pWnd->ShowWindow(SW_HIDE);
		}
		else
		{
			m_tabs[i].pWnd->SetWindowPos(NULL,
					rc.left, rc.top, rc.Width(), rc.Height(), SWP_NOACTIVATE);
			m_tabs[i].pWnd->ShowWindow(SW_SHOW);
		}
	}

	UpdateButtons();
	Invalidate();

	if (bExpand)
		GetParent()->SendMessage(WM_EXPAND_NAV);

	m_tabs[nTab].pWnd->SetFocus();

	UpdateObservers(SIDEBAR_TAB_CHANGED);
}
Ejemplo n.º 2
0
bool DocSettings::DeleteAnnotation(const Annotation* pAnno, int nPage)
{
	PageSettings& settings = pageSettings[nPage];
	list<Annotation>::iterator it;
	for (it = settings.anno.begin(); it != settings.anno.end(); ++it)
	{
		Annotation* pCurAnno = &(*it);
		if (pCurAnno == pAnno)
		{
			list<Annotation> temp;
			temp.splice(temp.end(), settings.anno, it);
			ASSERT(&(temp.front()) == pCurAnno);

			UpdateObservers(AnnotationMsg(ANNOTATION_DELETED, pCurAnno, nPage));

			if (settings.anno.empty())
				pageSettings.erase(nPage);
			return true;
		}
	}

	if (settings.anno.empty())
		pageSettings.erase(nPage);
	return false;
}
Ejemplo n.º 3
0
Annotation* DocSettings::AddAnnotation(const Annotation& anno, int nPage)
{
	PageSettings& settings = pageSettings[nPage];
	settings.anno.push_back(anno);

	Annotation* pNewAnno = &(settings.anno.back());
	UpdateObservers(AnnotationMsg(ANNOTATION_ADDED, pNewAnno, nPage));

	return pNewAnno;
}
Ejemplo n.º 4
0
void mitk::LevelWindowManager::DataStorageAddedNode( const mitk::DataNode* )
{

  //update observers with new data storage
  UpdateObservers();

  //Initialize LevelWindowsManager to new image
  SetAutoTopMostImage(true);

  //check if everything is still ok
  if ((m_PropObserverToNode.size() != m_PropObserverToNode2.size()) || (m_PropObserverToNode2.size() != this->GetRelevantNodes()->size()))
     {mitkThrow() << "Wrong number of observers in Level Window Manager!";}

}
Ejemplo n.º 5
0
DjVuSource::~DjVuSource()
{
	while (!m_eventCache.empty())
	{
		HANDLE hEvent = m_eventCache.top();
		m_eventCache.pop();

		::CloseHandle(hEvent);
	}

	m_pDjVuDoc = NULL;

	// Close open files
	GURL url = GURL::Filename::UTF8(MakeUTF8String(m_strFileName));
	DataPool::load_file(url);

	UpdateObservers(SOURCE_RELEASED);
}
Ejemplo n.º 6
0
void mitk::LevelWindowManager::DataStorageRemovedNode( const mitk::DataNode* removedNode )
{
  //first: check if deleted node is part of relevant nodes. If not, abort method because there is no need change anything.
  if ((this->GetRelevantNodes()->size() == 0)) return;
  bool removedNodeIsRelevant = false;
  /* Iterator code: is crashing, don't know why... so using for loop
  for (mitk::DataStorage::SetOfObjects::ConstIterator it = this->GetRelevantNodes()->Begin();
       it != this->GetRelevantNodes()->End();
       ++it)
  {if (it->Value() == removedNode) {removedNodeIsRelevant=true;}}*/
  for (unsigned int i=0; i<this->GetRelevantNodes()->size(); i++)
    {
    if (this->GetRelevantNodes()->at(i) == removedNode) {removedNodeIsRelevant=true;}
    }
  if (!removedNodeIsRelevant) return;

  //remember node which will be removed
  m_NodeMarkedToDelete = removedNode;

  //update observers
  UpdateObservers();

  /* search image than belongs to the property */
  if (m_LevelWindowProperty.IsNull())
  {
    SetAutoTopMostImage(true, removedNode);
  }
  else
  {
    mitk::NodePredicateProperty::Pointer p2 = mitk::NodePredicateProperty::New("levelwindow", m_LevelWindowProperty);
    mitk::DataNode* n = m_DataStorage->GetNode(p2);
    if (n == NULL || m_AutoTopMost) // if node was deleted, change our behaviour to AutoTopMost, if AutoTopMost is true change level window to topmost node
    {
      SetAutoTopMostImage(true, removedNode);
    }
  }

  //reset variable
  m_NodeMarkedToDelete = NULL;

  //check if everything is still ok
  if ((m_PropObserverToNode.size() != m_PropObserverToNode2.size()) || (m_PropObserverToNode2.size() != (this->GetRelevantNodes()->size()-1)))
     {mitkThrow() << "Wrong number of observers in Level Window Manager!";}
}
Ejemplo n.º 7
0
bool DocSettings::DeleteBookmark(const Bookmark* pBookmark)
{
	list<Bookmark>& bmList = (pBookmark->pParent != NULL ?
		pBookmark->pParent->children : bookmarks);

	for (list<Bookmark>::iterator it = bmList.begin(); it != bmList.end(); ++it)
	{
		Bookmark* pCurBookmark = &(*it);
		if (pCurBookmark == pBookmark)
		{
			list<Bookmark> temp;
			temp.splice(temp.end(), bmList, it);
			ASSERT(&(temp.front()) == pCurBookmark);

			UpdateObservers(BookmarkMsg(BOOKMARK_DELETED, pCurBookmark));
			return true;
		}
	}

	return false;
}
Ejemplo n.º 8
0
void Document::Evaluate()
{
	_expression.Evaluate();
	UpdateObservers();
}
Ejemplo n.º 9
0
void Document::BackExpression()
{
	_expression.BackExpression();
	UpdateObservers();
}
Ejemplo n.º 10
0
void Document::ClearExpression()
{
	_expression.ClearExpression();
	UpdateObservers();
}