place the selection panel beside what it describes
This commit is contained in:
@@ -9,6 +9,7 @@ SET(HDRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/BossWaveUpdatedEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/SchematicChoicesAvailableEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/SelectionChangedEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/SelectionAnchorChangedEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GameOverEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GameResetEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/WinEvent.h
|
||||
@@ -43,6 +44,7 @@ SET(HDRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/BeamFiredEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/DebugDrawToggledEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CommandRequestedEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/FloatingLayoutInvalidatedEvent.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/PlayerCommandsAppliedEvent.h
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
12
src/lib/eventsystem/event/FloatingLayoutInvalidatedEvent.h
Normal file
12
src/lib/eventsystem/event/FloatingLayoutInvalidatedEvent.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Event.h"
|
||||
|
||||
// Asks the owner of the widgets floating over the game world view to re-run its placement
|
||||
// pass (see ui/FloatingPanel.h). Published by a floating widget whose content or
|
||||
// visibility changed: what space that widget may take depends on the ones placed before
|
||||
// it, so it cannot re-place itself alone (REQ-UI-BUILD-BAR, REQ-UI-CONTROLS-PANEL,
|
||||
// REQ-UI-SELECTION-PANEL). Carries no payload -- the pass re-reads every widget.
|
||||
class FloatingLayoutInvalidatedEvent : public Event
|
||||
{
|
||||
};
|
||||
25
src/lib/eventsystem/event/SelectionAnchorChangedEvent.h
Normal file
25
src/lib/eventsystem/event/SelectionAnchorChangedEvent.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include <QRect>
|
||||
|
||||
#include "Event.h"
|
||||
|
||||
// Where on the screen the selection that is about to be made sits: the bounds of the one
|
||||
// object selected, or of all of them when the selection starts as a multi-selection
|
||||
// (REQ-UI-SELECTION-PANEL). The rectangle is in the game world view's own widget
|
||||
// coordinates.
|
||||
//
|
||||
// Published only when a selection *starts* -- a plain click or drag, or an additive one
|
||||
// onto an empty selection -- and always immediately before the selection itself. Adding
|
||||
// to a selection publishes nothing, which is what leaves the selection panel where it
|
||||
// is while the selection grows; and because the rectangle is screen space frozen at that
|
||||
// moment, scrolling the view or a selected ship flying off does not move the panel
|
||||
// either.
|
||||
class SelectionAnchorChangedEvent : public Event
|
||||
{
|
||||
public:
|
||||
explicit SelectionAnchorChangedEvent(QRect rectPx)
|
||||
: rectPx(rectPx) {}
|
||||
|
||||
const QRect rectPx;
|
||||
};
|
||||
Reference in New Issue
Block a user