ui: focusing multiple tokens at once

This change focuses all token locations underneath the cursor at once by extending the focus handling to use vectors.
This commit is contained in:
Eberhard Graether
2015-11-12 10:14:46 +01:00
parent 28e3880e10
commit 00b74d2f30
18 changed files with 181 additions and 157 deletions
@@ -80,12 +80,12 @@ void CodeController::handleMessage(MessageActivateTokens* message)
void CodeController::handleMessage(MessageFocusIn* message)
{
getView()->focusToken(message->tokenId);
getView()->focusTokenIds(message->tokenIds);
}
void CodeController::handleMessage(MessageFocusOut* message)
{
getView()->defocusToken();
getView()->defocusTokenIds();
}
void CodeController::handleMessage(MessageShowErrors* message)
@@ -268,7 +268,7 @@ std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForFile(std:
}
);
atomicRanges = SnippetMerger::Range::mergeAdjacent(atomicRanges);
ranges = fileScopedMerger.merge(atomicRanges);
}
@@ -61,12 +61,12 @@ void GraphController::handleMessage(MessageFlushUpdates* message)
void GraphController::handleMessage(MessageFocusIn* message)
{
getView()->focusToken(message->tokenId);
getView()->focusTokenIds(message->tokenIds);
}
void GraphController::handleMessage(MessageFocusOut *message)
{
getView()->defocusToken(message->tokenId);
getView()->defocusTokenIds(message->tokenIds);
}
void GraphController::handleMessage(MessageGraphNodeBundleSplit* message)
+2 -2
View File
@@ -52,8 +52,8 @@ public:
virtual void showFirstActiveSnippet() = 0;
virtual void focusToken(const Id tokenId) = 0;
virtual void defocusToken() = 0;
virtual void focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;
virtual void defocusTokenIds() = 0;
private:
CodeController* getController();
+3 -2
View File
@@ -20,8 +20,9 @@ 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 focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;
virtual void defocusTokenIds(const std::vector<Id>& defocusedTokenIds) = 0;
virtual void resizeView() = 0;
+13 -10
View File
@@ -1,23 +1,26 @@
#ifndef MESSAGE_FOCUS_IN_H
#define MESSAGE_FOCUS_IN_H
#include <vector>
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageFocusIn : public Message<MessageFocusIn>
class MessageFocusIn
: public Message<MessageFocusIn>
{
public:
MessageFocusIn(Id tokenId)
: tokenId(tokenId)
{
}
MessageFocusIn(const std::vector<Id>& tokenIds)
: tokenIds(tokenIds)
{
}
static const std::string getStaticType()
{
return "MessageFocusIn";
}
static const std::string getStaticType()
{
return "MessageFocusIn";
}
const Id tokenId;
const std::vector<Id> tokenIds;
};
#endif //MESSAGE_FOCUS_IN_H
@@ -1,23 +1,26 @@
#ifndef MESSAGE_FOCUS_OUT_H
#define MESSAGE_FOCUS_OUT_H
#include <vector>
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageFocusOut : public Message<MessageFocusOut>
class MessageFocusOut
: public Message<MessageFocusOut>
{
public:
MessageFocusOut(Id tokenId)
: tokenId(tokenId)
{
}
MessageFocusOut(const std::vector<Id>& tokenIds)
: tokenIds(tokenIds)
{
}
static const std::string getStaticType()
{
return "MessageHoverLeave";
}
static const std::string getStaticType()
{
return "MessageHoverLeave";
}
const Id tokenId;
const std::vector<Id> tokenIds;
};
#endif //MESSAGE_FOCUS_OUT_H