void CXTPFlowGraphImage::SetBitmap(HBITMAP hBitmap)
{
	SAFE_DELETE(m_pImage);
	m_pImage = new Gdiplus::Bitmap(hBitmap, 0);

	ImageChanged();
}
Exemple #2
0
	void Viewer::Rotate(Filter::RotationAngle r) {
		m_viewPort.Rotate(r);

		UpdateImageInformation();
		ImageChanged();
		m_viewPort.ImageUpdated();
	}
void CXTPFlowGraphImage::SetIcon(HICON hIcon)
{
	SAFE_DELETE(m_pImage);
	m_pImage =  new Gdiplus::Bitmap(hIcon);

	ImageChanged();
}
void CXTPFlowGraphImage::LoadFromFile(LPCTSTR lpszFileName)
{
	SAFE_DELETE(m_pImage);
	m_pImage =  new Gdiplus::Bitmap(XTP_CT2CW(lpszFileName));

	ImageChanged();
}
void
JXImageMenuData::SetImage
	(
	const JIndex	index,
	JXImage*		image,
	const JBoolean	menuOwnsImage
	)
{
	assert( image != NULL );

	IconData itemData = itsIconData->GetElement(index);

	if (itemData.image == NULL ||
		(itemData.image->GetBounds()) != image->GetBounds())
		{
		itsNeedGeomRecalcFlag = kJTrue;
		}

	if (itemData.ownsImage)
		{
		delete itemData.image;
		}

	itemData.image     = image;
	itemData.ownsImage = menuOwnsImage;
	itsIconData->SetElement(index, itemData);

	Broadcast(ImageChanged(index));
}
void
JXTextMenuData::SetImageID
(
 const JIndex index,
 JIndex imageID
 )
{
  if (imageID == 0)
    {
      ClearImageID(index);
      return;
    }

  TextItemData itemData = itsTextItemData->GetElement(index);

  if (itemData.imageID == 0)
    {
      itsNeedGeomRecalcFlag = kJTrue;
    }

  itemData.imageID   = imageID;
  itsTextItemData->SetElement(index, itemData);

  Broadcast(ImageChanged(index));
}
void CXTPFlowGraphImage::LoadFromResource(HINSTANCE hInstance, LPCTSTR lpszResourceName, LPCTSTR lpszResourceType)
{
	SAFE_DELETE(m_pImage);

	CXTPFlowGraphResourceStream st(hInstance, lpszResourceName, lpszResourceType);

	if (st.m_pStream != NULL)
	{
		m_pImage =  new Gdiplus::Bitmap(st.m_pStream, FALSE);
	}
	ImageChanged();
}
Exemple #8
0
	void Viewer::ViewportMode(ScreenMode newMode)
	{
		if (m_screenMode == newMode)
		{
			return;
		}

		m_screenMode = newMode;

		if (newMode == Viewer::SM_Fullscreen)
		{
			m_userInitiatedMove = false;
			wxDisplay mon(DisplayFromPointFallback(PositionScreen()));

			m_statusBar->Show(false);
			m_previousWindowStyle = GetWindowStyle();
			SetWindowStyleFlag(wxBORDER_NONE);
			m_previousWindowRegion = wxToRect(GetRect());
			auto monRegion = wxToRect(mon.GetClientArea());

			SetSize(monRegion.Left(), monRegion.Top(), monRegion.Width(), monRegion.Height());
			m_viewPort.ActiveCursorMode(ViewPort::CursorHideAutomatic);
			Raise();
			m_userInitiatedMove = true;
		}
		else
		{
			m_userInitiatedMove = false;
			SetWindowStyleFlag(m_previousWindowStyle);
			m_statusBar->Show(m_cfg.View.ShowStatusBar);
			SetSize(m_previousWindowRegion.Left(), m_previousWindowRegion.Top(), m_previousWindowRegion.Width(), m_previousWindowRegion.Height());
			m_viewPort.ActiveCursorMode(ViewPort::CursorShow);
			m_userInitiatedMove = true;
		}

		// Make sure that the settings and adjust dialogs are on top (if running)
		InitDialogs();
		if (m_settings->IsVisible())
		{
			ShowSettings();
		}

		if (m_adjust->IsVisible())
		{
			ShowAdjust();
		}

		ImageChanged();
		UpdateImageInformation();
	}
Exemple #9
0
	void Viewer::SettingsChanged() {
		Reg::Save(cg_SettingsLocation, m_cfg);
		m_cacher.WrapAround(m_cfg.View.BrowseWrapAround);
		m_keys.SetBindings(m_cfg.Keyboard);

		m_statusBar->Show(m_cfg.View.ShowStatusBar && ViewportMode() != SM_Fullscreen);

		UpdateViewportConfig();

		UpdateMemoryLimits();
		m_viewPort.Refresh();

		AlwaysOnTop(m_cfg.View.AlwaysOnTop);
		ImageChanged();
	}
Exemple #10
0
	void Viewer::ActiveImage(Img::Image::Ptr pImage) {
		if (m_viewPort.Image() == pImage) {
			return;
		}

		m_viewPort.Image(pImage);

		if (m_cfg.View.ResetZoom) {
			ZoomMode(m_cfg.View.DefaultZoomMode);
			UpdateImageInformation();
		}
		else {
			ImageChanged();
		}
	}
Exemple #11
0
	void Viewer::ZoomMode(App::ZoomMode mode) {
		m_viewPort.ZoomMode(mode);
		switch (mode) {
			case App::ZoomFitImage:
				m_contextMenu.FitImage();
				break;

			case App::ZoomFullSize:
			case App::ZoomFree:
				m_contextMenu.Zoomed(true);
				break;
		}

		ImageChanged();
		UpdateImageInformation();
	}
Exemple #12
0
	void Viewer::OnImageLoadEvent(wxCommandEvent &e)
	{
		std::unique_lock<std::mutex> l(m_mutexNotification);
		if (m_cacheNotifications.empty()) {
			DO_THROW(Err::CriticalError, "Notification queue is empty.");
		}

		CacheNotification notification = m_cacheNotifications.front();
		m_cacheNotifications.pop_front();
		l.unlock();

		if (notification.message == Img::MessageReceiver::LoadErrorCritical) {
			/*m_exceptionDescription = notification.desc;
			m_exceptionOcurred = true;
			PostMessage(Handle(), WM_CLOSE, 0, 0);*/
		}
		if (notification.image == m_viewPort.Image().get()) {
			switch (notification.message) {
			case Img::MessageReceiver::LoadDone:
				m_viewPort.ImageUpdated();
				UpdateImageInformation();
				m_viewPort.Refresh();
				break;
			case Img::MessageReceiver::LoadAllocated:
				m_viewPort.ImageUpdated();
				ImageChanged();
				break;
			case Img::MessageReceiver::LoadHeader:
				UpdateImageInformation();
				break;
			case Img::MessageReceiver::LoadErrorImage:
				UpdateImageInformation();
				break;
			}

			if (m_attemptToShow && notification.message >= Img::MessageReceiver::LoadAllocated) {
				Show(true);
			}
		}
	}
Exemple #13
0
	void Viewer::ZoomOut() {
		m_viewPort.ZoomOut();
		m_contextMenu.Zoomed(std::fabs(m_viewPort.ZoomLevel() - 1.0) < std::numeric_limits<float>::epsilon());
		ImageChanged();
		UpdateImageInformation();
	}
void CXTPFlowGraphImage::LoadFromResource(HINSTANCE hInstance, UINT nResourceName)
{
	SAFE_DELETE(m_pImage);
	m_pImage =  new Gdiplus::Bitmap(hInstance, MAKEINTRESOURCEW(nResourceName));
	ImageChanged();
}