| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- /*
 
-  * UpdateToolTip.cpp
 
-  * -----------------
 
-  * Purpose: Implementation of the update tooltip in the main toolbar.
 
-  * Notes  : (currently none)
 
-  * Authors: OpenMPT Devs
 
-  * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
 
-  */
 
- #include "stdafx.h"
 
- #include "Mptrack.h"
 
- #include "Mainfrm.h"
 
- OPENMPT_NAMESPACE_BEGIN
 
- BEGIN_MESSAGE_MAP(UpdateToolTip, CToolTipCtrl)
 
- 	ON_WM_LBUTTONUP()
 
- 	ON_NOTIFY_REFLECT(TTN_POP, &UpdateToolTip::OnPop)
 
- 	ON_NOTIFY_REFLECT(TTN_SHOW, &UpdateToolTip::OnShow)
 
- 	ON_NOTIFY_REFLECT(TTN_LINKCLICK, &UpdateToolTip::OnLinkClick)
 
- END_MESSAGE_MAP()
 
- bool UpdateToolTip::ShowUpdate(CWnd &parent, const CString &newVersion, const CString &infoURL, const CRect rectClient, const CPoint ptScreen, const int buttonID)
 
- {
 
- 	if(m_hWnd)
 
- 		DestroyWindow();
 
- 	Create(&parent, TTS_NOPREFIX | TTS_BALLOON | TTS_CLOSE | TTS_NOFADE);
 
- 	m_infoURL = infoURL;
 
- 	CString message = MPT_CFORMAT("OpenMPT {} has been released.\n<a>Click here to see what's new.</a>")(newVersion);
 
- 	TOOLINFO ti{};
 
- 	ti.cbSize = TTTOOLINFO_V1_SIZE;
 
- 	ti.uFlags = TTF_TRACK | TTF_PARSELINKS;
 
- 	ti.hwnd = parent;
 
- 	ti.lpszText = message.GetBuffer();
 
- 	ti.uId = buttonID;
 
- 	ti.rect = rectClient;
 
- 	if(!SendMessage(TTM_ADDTOOL, 0, reinterpret_cast<LPARAM>(&ti)))
 
- 		return false;
 
- 	SetTitle(TTI_INFO, _T("Update Available"));
 
- 	SendMessage(TTM_TRACKPOSITION, 0, static_cast<LPARAM>(MAKELONG(ptScreen.x, ptScreen.y)));
 
- 	SendMessage(TTM_TRACKACTIVATE, TRUE, reinterpret_cast<LPARAM>(&ti));
 
- 	return true;
 
- }
 
- void UpdateToolTip::SetResult(PopAction action)
 
- {
 
- 	m_popAction = action;
 
- 	SendMessage(TTM_TRACKACTIVATE, FALSE, 0);
 
- 	if(action != PopAction::CloseButton)
 
- 		CMainFrame::GetMainFrame()->SendMessage(WM_MOD_UPDATENOTIFY, static_cast<WPARAM>(action));
 
- }
 
- void UpdateToolTip::OnLButtonUp(UINT nFlags, CPoint point)
 
- {
 
- 	CToolTipCtrl::OnLButtonUp(nFlags, point);
 
- 	if(m_popAction == PopAction::Undetermined)
 
- 		SetResult(PopAction::ClickBubble);
 
- }
 
- void UpdateToolTip::OnPop(NMHDR *pNMHDR, LRESULT *)
 
- {
 
- 	if(pNMHDR->idFrom == UINT_PTR(-1))
 
- 		SetResult(PopAction::CloseButton);
 
- }
 
- void UpdateToolTip::OnShow(NMHDR *, LRESULT *)
 
- {
 
- 	m_popAction = PopAction::Undetermined;
 
- }
 
- void UpdateToolTip::OnLinkClick(NMHDR *, LRESULT *)
 
- {
 
- 	CTrackApp::OpenURL(m_infoURL);
 
- 	SetResult(PopAction::ClickLink);
 
- }
 
- OPENMPT_NAMESPACE_END
 
 
  |