summaryrefslogtreecommitdiff
path: root/protocols/Quotes/src/ExtraImages.cpp
blob: a89032e53cf63c6ffcadf4cce7160d5b4ec13c76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "StdAfx.h"
#include "ExtraImages.h"
#include "IconLib.h"
#include "EconomicRateInfo.h"
#include "ModuleInfo.h"
#include "QuotesProviders.h"
#include "IQuotesProvider.h"
#include "Log.h"
#include "DBUtils.h"
#include "resource.h"

CExtraImages::CExtraImages() :
	m_hExtraIcons(ExtraIcon_Register(ICON_STR_QUOTE,QUOTES_PROTOCOL_NAME,Quotes_MakeIconName(ICON_STR_MAIN).c_str())),
	m_bExtraImagesInit(false)
{
	m_ahExtraImages[eiUp] = INVALID_HANDLE_VALUE;
	m_ahExtraImages[eiDown] = INVALID_HANDLE_VALUE;
	m_ahExtraImages[eiNotChanged] = INVALID_HANDLE_VALUE;
}

CExtraImages::~CExtraImages()
{
}

CExtraImages& CExtraImages::GetInstance()
{
	static CExtraImages s_ei;
	return s_ei;
}

void CExtraImages::RebuildExtraImages()
{
}

bool CExtraImages::SetContactExtraImage(HANDLE hContact,EImageIndex nIndex)const
{
	if (!m_hExtraIcons)
		return false;

	HANDLE hIcolib;
	switch(nIndex) {
	case eiUp:
		hIcolib = Quotes_GetIconHandle(IDI_ICON_UP);
		break;
	case eiDown:
		hIcolib = Quotes_GetIconHandle(IDI_ICON_DOWN);
		break;
	case eiNotChanged:
		hIcolib = Quotes_GetIconHandle(IDI_ICON_NOTCHANGED);
		break;
	default:
		hIcolib = NULL;
	}
	return ExtraIcon_SetIcon(m_hExtraIcons, hContact, hIcolib) == 0;
}

int QuotesEventFunc_onExtraImageApply(WPARAM wp,LPARAM lp)
{
	HANDLE hContact = reinterpret_cast<HANDLE>(wp);

	const CModuleInfo::TQuotesProvidersPtr& pProviders = CModuleInfo::GetQuoteProvidersPtr();
	CQuotesProviders::TQuotesProviderPtr pProvider = pProviders->GetContactProviderPtr(hContact);
	if(pProvider)
		pProvider->SetContactExtraIcon(hContact);

	return 0;
}