ui: bidirectional hovering

hovering for graphview and codeview via messaging, hovering in one view will "hover" the equivalent in the other view
This commit is contained in:
Andreas Stallinger
2015-05-12 13:55:23 +02:00
parent 97345cc72f
commit a41c0e1b85
25 changed files with 302 additions and 10 deletions
@@ -70,6 +70,16 @@ void CodeController::handleMessage(MessageFinishedParsing* message)
}
}
void CodeController::handleMessage(MessageFocusIn* message)
{
getView()->focusToken(message->tokenId);
}
void CodeController::handleMessage(MessageFocusOut* message)
{
getView()->defocusToken();
}
void CodeController::handleMessage(MessageRefresh* message)
{
getView()->refreshView();
@@ -183,7 +193,7 @@ std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForFile(std:
std::shared_ptr<TokenLocationFile> tempFile = m_storageAccess->getTokenLocationsForLinesInFile(file->getFilePath().str(), params.startLineNumber, params.endLineNumber);
TokenLocationLine* firstUsedLine = nullptr;
for (rsize_t i = params.startLineNumber; i <= params.endLineNumber, firstUsedLine == nullptr; i++)
for (size_t i = params.startLineNumber; i <= params.endLineNumber, firstUsedLine == nullptr; i++)
{
firstUsedLine = tempFile->findTokenLocationLineByNumber(i);
}
@@ -11,6 +11,8 @@
#include "utility/messaging/type/MessageActivateTokenLocation.h"
#include "utility/messaging/type/MessageActivateTokens.h"
#include "utility/messaging/type/MessageFinishedParsing.h"
#include "utility/messaging/type/MessageFocusIn.h"
#include "utility/messaging/type/MessageFocusOut.h"
#include "utility/messaging/type/MessageRefresh.h"
#include "utility/messaging/type/MessageShowFile.h"
#include "utility/types.h"
@@ -23,6 +25,8 @@ class CodeController
, public MessageListener<MessageActivateTokenLocation>
, public MessageListener<MessageActivateTokens>
, public MessageListener<MessageFinishedParsing>
, public MessageListener<MessageFocusIn>
, public MessageListener<MessageFocusOut>
, public MessageListener<MessageRefresh>
, public MessageListener<MessageShowFile>
{
@@ -36,6 +40,8 @@ private:
virtual void handleMessage(MessageActivateTokenLocation* message);
virtual void handleMessage(MessageActivateTokens* message);
virtual void handleMessage(MessageFinishedParsing* message);
virtual void handleMessage(MessageFocusIn* message);
virtual void handleMessage(MessageFocusOut* message);
virtual void handleMessage(MessageRefresh* message);
virtual void handleMessage(MessageShowFile* message);
@@ -51,6 +51,18 @@ void GraphController::handleMessage(MessageFinishedParsing* message)
getView()->clear();
}
#include <iostream>
void GraphController::handleMessage(MessageFocusIn* message)
{
getView()->focusToken(message->tokenId);
}
void GraphController::handleMessage(MessageFocusOut *message)
{
getView()->defocusToken(message->tokenId);
}
void GraphController::handleMessage(MessageGraphNodeExpand* message)
{
DummyNode* node = findDummyNodeRecursive(m_dummyNodes, message->tokenId);
@@ -6,6 +6,8 @@
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageActivateTokens.h"
#include "utility/messaging/type/MessageFinishedParsing.h"
#include "utility/messaging/type/MessageFocusIn.h"
#include "utility/messaging/type/MessageFocusOut.h"
#include "utility/messaging/type/MessageGraphNodeExpand.h"
#include "utility/messaging/type/MessageGraphNodeMove.h"
@@ -24,6 +26,8 @@ class GraphController
: public Controller
, public MessageListener<MessageActivateTokens>
, public MessageListener<MessageFinishedParsing>
, public MessageListener<MessageFocusIn>
, public MessageListener<MessageFocusOut>
, public MessageListener<MessageGraphNodeExpand>
, public MessageListener<MessageGraphNodeMove>
{
@@ -34,6 +38,8 @@ public:
private:
virtual void handleMessage(MessageActivateTokens* message);
virtual void handleMessage(MessageFinishedParsing* message);
virtual void handleMessage(MessageFocusIn* message);
virtual void handleMessage(MessageFocusOut* message);
virtual void handleMessage(MessageGraphNodeExpand* message);
virtual void handleMessage(MessageGraphNodeMove* message);