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:
@@ -253,6 +253,8 @@ add_files(
|
||||
utility/messaging/type/MessageAutoRefreshChanged.h
|
||||
utility/messaging/type/MessageFind.h
|
||||
utility/messaging/type/MessageFinishedParsing.h
|
||||
utility/messaging/type/MessageFocusIn.h
|
||||
utility/messaging/type/MessageFocusOut.h
|
||||
utility/messaging/type/MessageGraphNodeExpand.h
|
||||
utility/messaging/type/MessageGraphNodeMove.h
|
||||
utility/messaging/type/MessageInterruptTasks.h
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -43,6 +43,9 @@ public:
|
||||
virtual void showCodeSnippets(const std::vector<CodeSnippetParams>& snippets) = 0;
|
||||
virtual void showCodeFile(const CodeSnippetParams& params) = 0;
|
||||
|
||||
virtual void focusToken(const Id tokenId) = 0;
|
||||
virtual void defocusToken() = 0;
|
||||
|
||||
private:
|
||||
CodeController* getController();
|
||||
};
|
||||
|
||||
@@ -24,6 +24,8 @@ public:
|
||||
virtual void rebuildGraph(
|
||||
std::shared_ptr<Graph> graph, const std::vector<DummyNode>& nodes, const std::vector<DummyEdge>& edges) = 0;
|
||||
virtual void clear() = 0;
|
||||
virtual void focusToken(Id tokenId) = 0;
|
||||
virtual void defocusToken(Id tokenId) = 0;
|
||||
|
||||
virtual void resizeView() = 0;
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef MESSAGE_FOCUS_IN_H
|
||||
#define MESSAGE_FOCUS_IN_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageFocusIn : public Message<MessageFocusIn>
|
||||
{
|
||||
public:
|
||||
MessageFocusIn(Id tokenId)
|
||||
: tokenId(tokenId)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageFocusIn";
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
};
|
||||
|
||||
#endif //MESSAGE_FOCUS_IN_H
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef MESSAGE_FOCUS_OUT_H
|
||||
#define MESSAGE_FOCUS_OUT_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageFocusOut : public Message<MessageFocusOut>
|
||||
{
|
||||
public:
|
||||
MessageFocusOut(Id tokenId)
|
||||
: tokenId(tokenId)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageHoverLeave";
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
};
|
||||
|
||||
#endif //MESSAGE_FOCUS_OUT_H
|
||||
Reference in New Issue
Block a user