From 88efdb32b732e4335de0a3f3c93966a6c4d67031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Wed, 4 Sep 2013 09:58:45 +0000 Subject: Added MirandaG15 plugin sources (not adopted) git-svn-id: http://svn.miranda-ng.org/main/trunk@5938 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../!NotAdopted/MirandaG15/src/CEventScreen.cpp | 239 +++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 plugins/!NotAdopted/MirandaG15/src/CEventScreen.cpp (limited to 'plugins/!NotAdopted/MirandaG15/src/CEventScreen.cpp') diff --git a/plugins/!NotAdopted/MirandaG15/src/CEventScreen.cpp b/plugins/!NotAdopted/MirandaG15/src/CEventScreen.cpp new file mode 100644 index 0000000000..f1899fa3ba --- /dev/null +++ b/plugins/!NotAdopted/MirandaG15/src/CEventScreen.cpp @@ -0,0 +1,239 @@ +#include "stdafx.h" +#include "CEventScreen.h" +#include "CConfig.h" +#include "CAppletManager.h" + +//************************************************************************ +// Constructor +//************************************************************************ +CEventScreen::CEventScreen() +{ +} + +//************************************************************************ +// Destructor +//************************************************************************ +CEventScreen::~CEventScreen() +{ +} + +//************************************************************************ +// Initializes the screen +//************************************************************************ +bool CEventScreen::Initialize() +{ + if(!CScreen::Initialize()) + return false; + + m_EventLog.Initialize(); + m_EventLog.SetOrigin(0,0); + m_EventLog.SetSize(GetWidth()-5,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?6:0)); + m_EventLog.SetFont(CConfig::GetFont(FONT_LOG)); + + AddObject(&m_EventLog); + + m_Scrollbar.Initialize(); + m_Scrollbar.SetOrigin(GetWidth()-4,0); + m_Scrollbar.SetSize(4,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?5:0)); + m_EventLog.SetScrollbar(&m_Scrollbar); + + AddObject(&m_Scrollbar); + + SetButtonBitmap(0,IDB_UP); + SetButtonBitmap(1,IDB_DOWN); + SetButtonBitmap(2,IDB_CLIST); + SetButtonBitmap(3,NULL); + + return true; +} + +//************************************************************************ +// Shutdown the screen +//************************************************************************ +bool CEventScreen::Shutdown() +{ + if(!CScreen::Shutdown()) + return false; + + return true; +} + +//************************************************************************ +// Updates the screen +//************************************************************************ +bool CEventScreen::Update() +{ + if(!CScreen::Update()) + return false; + + return true; +} + +//************************************************************************ +// Draws the screen +//************************************************************************ +bool CEventScreen::Draw(CLCDGfx *pGfx) +{ + if(!CScreen::Draw(pGfx)) + return false; + + return true; +} + +//************************************************************************ +// Called when the screen size has changed +//************************************************************************ +void CEventScreen::OnSizeChanged() +{ + CScreen::OnSizeChanged(); + + m_EventLog.SetFont(CConfig::GetFont(FONT_LOG)); + m_EventLog.SetSize(GetWidth()-5,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?6:0)); + + m_Scrollbar.SetOrigin(GetWidth()-4,0); + + m_Scrollbar.SetSize(4,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?5:0)); +} + +//************************************************************************ +// Called when the configuration has changed +//************************************************************************ +void CEventScreen::OnConfigChanged() +{ + CScreen::OnConfigChanged(); + + m_EventLog.SetFont(CConfig::GetFont(FONT_LOG)); + m_EventLog.SetSize(GetWidth()-5,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?6:0)); + + // Update all timestamps + list*>::iterator iter = m_EventLog.begin(); + CListItem *pItem = NULL; + while(iter != m_EventLog.end()) + { + pItem = static_cast*>(*iter); + pItem->GetItemData()->strTimestamp = CAppletManager::GetFormattedTimestamp(&pItem->GetItemData()->Time) + _T(" "); + iter++; + } + + m_Scrollbar.SetSize(4,GetHeight()-(CConfig::GetBoolSetting(SHOW_LABELS)?5:0)); +} + +//************************************************************************ +// Called when an event is received +//************************************************************************ +void CEventScreen::OnEventReceived(CEvent *pEvent) +{ + // check if the event needs to be listed + if(!pEvent->bLog) + return; + + // create a list entry structure + CEventLogEntry *pEntry = new CEventLogEntry(); + pEntry->hContact = pEvent->hContact; + pEntry->eType = pEvent->eType; + + pEntry->Time = pEvent->Time; + pEntry->strTimestamp = CAppletManager::GetFormattedTimestamp(&pEvent->Time) + _T(" "); + pEntry->strValue = pEvent->strDescription; + + // add it to the list and scroll to it + m_EventLog.AddItem(pEntry); + + UpdateChatButton(); +} + +//************************************************************************ +// Updates the 4th softkey label +//************************************************************************ +void CEventScreen::UpdateChatButton() +{ + CListEntry *pItem = m_EventLog.GetSelectedEntry(); + if(!pItem || pItem->GetType() != ITEM) + return; + CEventLogEntry *pEntry = ((CListItem*)pItem)->GetItemData(); + if(pEntry->hContact) + SetButtonBitmap(3,IDB_CHAT); + else + SetButtonBitmap(3,NULL); +} + +//************************************************************************ +// Called when an LCD-button is pressed +//************************************************************************ +void CEventScreen::OnLCDButtonDown(int iButton) +{ + if(iButton == LGLCDBUTTON_CANCEL) { + CAppletManager::GetInstance()->ActivatePreviousScreen(); + } else if(iButton == LGLCDBUTTON_BUTTON1 || iButton == LGLCDBUTTON_DOWN) { + m_EventLog.ScrollDown(); + UpdateChatButton(); + } else if(iButton == LGLCDBUTTON_BUTTON0 || iButton == LGLCDBUTTON_UP) { + m_EventLog.ScrollUp(); + UpdateChatButton(); + } else if(iButton == LGLCDBUTTON_BUTTON2 || iButton == LGLCDBUTTON_MENU) { + CAppletManager::GetInstance()->ActivateCListScreen(); + } else if(iButton == LGLCDBUTTON_BUTTON3 || iButton == LGLCDBUTTON_OK) + { + CListEntry *pItem = m_EventLog.GetSelectedEntry(); + if(!pItem || pItem->GetType() != ITEM) + return; + CEventLogEntry *pEntry = ((CListItem*)pItem)->GetItemData(); + + if(!pEntry->hContact) + return; + + // if the contact is an irc chatroom, check if it is hidden (user left the channel) + char *szProto = (char *) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)pEntry->hContact, 0); + CIRCConnection *pIRCCon = CAppletManager::GetInstance()->GetIRCConnection(toTstring(szProto)); + + if(pIRCCon && DBGetContactSettingByte(pEntry->hContact, szProto, "ChatRoom", 0) != 0 && + DBGetContactSettingByte((HANDLE)pEntry->hContact,"CList","Hidden",0)) + return; + + CAppletManager::GetInstance()->ActivateChatScreen(pEntry->hContact); + } +} + +//************************************************************************ +// Called when an LCD-button event is repeated +//************************************************************************ +void CEventScreen::OnLCDButtonRepeated(int iButton) +{ + if(iButton == LGLCDBUTTON_BUTTON1 || iButton == LGLCDBUTTON_DOWN) { + m_EventLog.ScrollDown(); + UpdateChatButton(); + } else if(iButton == LGLCDBUTTON_BUTTON0 || iButton == LGLCDBUTTON_UP) { + m_EventLog.ScrollUp(); + UpdateChatButton(); + } +} + +//************************************************************************ +// Called when an LCD-button is released +//************************************************************************ +void CEventScreen::OnLCDButtonUp(int iButton) +{ + +} + +//************************************************************************ +// Called when the screen is activated +//************************************************************************ +void CEventScreen::OnActivation() +{ + +} + +//************************************************************************ +// Called when the screen is deactivated +//************************************************************************ +void CEventScreen::OnDeactivation() +{ +} + +//************************************************************************ +// Called when the screen has expired +//************************************************************************ +void CEventScreen::OnExpiration() +{ +} \ No newline at end of file -- cgit v1.2.3