mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-23 18:39:55 +00:00
Identify different Timeline areas with Site::Focus
This commit is contained in:
parent
7ced1c791b
commit
147588ff6f
@ -60,7 +60,7 @@ void RemoveLayerCommand::onExecute(Context* context)
|
||||
DocumentApi api = document->getApi(transaction);
|
||||
|
||||
const Site* site = writer.site();
|
||||
if (site->focus() == Site::OnTimeline &&
|
||||
if (site->inTimeline() &&
|
||||
!site->selectedLayers().empty()) {
|
||||
SelectedLayers selLayers = site->selectedLayers();
|
||||
remove_children_if_parent_is_selected(selLayers);
|
||||
|
@ -227,7 +227,11 @@ void UIContext::onGetActiveSite(Site* site) const
|
||||
Timeline* timeline = App::instance()->timeline();
|
||||
if (timeline &&
|
||||
timeline->range().enabled()) {
|
||||
site->focus(Site::OnTimeline);
|
||||
switch (timeline->range().type()) {
|
||||
case DocumentRange::kCels: site->focus(Site::InCels); break;
|
||||
case DocumentRange::kFrames: site->focus(Site::InFrames); break;
|
||||
case DocumentRange::kLayers: site->focus(Site::InLayers); break;
|
||||
}
|
||||
site->selectedLayers(timeline->selectedLayers());
|
||||
site->selectedFrames(timeline->selectedFrames());
|
||||
}
|
||||
@ -235,10 +239,10 @@ void UIContext::onGetActiveSite(Site* site) const
|
||||
ColorBar* colorBar = ColorBar::instance();
|
||||
if (colorBar &&
|
||||
colorBar->getPaletteView()->getSelectedEntriesCount() > 0) {
|
||||
site->focus(Site::OnColorBar);
|
||||
site->focus(Site::InColorBar);
|
||||
}
|
||||
else {
|
||||
site->focus(Site::OnEditor);
|
||||
site->focus(Site::InEditor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,12 +28,14 @@ namespace doc {
|
||||
public:
|
||||
// Were is the user focus. E.g. If this focus is in the timeline,
|
||||
// it means that commands should applied in the context of the
|
||||
// timeline (layers + frames).
|
||||
// timeline (layers, or frames, or cels).
|
||||
enum Focus {
|
||||
None,
|
||||
OnEditor,
|
||||
OnTimeline,
|
||||
OnColorBar
|
||||
InEditor,
|
||||
InLayers,
|
||||
InFrames,
|
||||
InCels,
|
||||
InColorBar
|
||||
};
|
||||
|
||||
Site()
|
||||
@ -44,6 +46,13 @@ namespace doc {
|
||||
, m_frame(0) { }
|
||||
|
||||
const Focus focus() const { return m_focus; }
|
||||
bool inEditor() const { return m_focus == InEditor; }
|
||||
bool inLayers() const { return m_focus == InLayers; }
|
||||
bool inFrames() const { return m_focus == InFrames; }
|
||||
bool inCels() const { return m_focus == InCels; }
|
||||
bool inColorBar() const { return m_focus == InColorBar; }
|
||||
bool inTimeline() const { return (inLayers() || inFrames() || inCels()); }
|
||||
|
||||
const Document* document() const { return m_document; }
|
||||
const Sprite* sprite() const { return m_sprite; }
|
||||
const Layer* layer() const { return m_layer; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user