Index: mandoline/tab/frame.cc |
diff --git a/mandoline/tab/frame.cc b/mandoline/tab/frame.cc |
index 89969c2fa91f18ed9efd8492e7c6dd0e6783d9e6..c9a4c0d985309643cfe83f555d1354dbb1aa5580 100644 |
--- a/mandoline/tab/frame.cc |
+++ b/mandoline/tab/frame.cc |
@@ -31,6 +31,9 @@ FrameDataPtr FrameToFrameData(const Frame* frame) { |
frame_data->frame_id = frame->view()->id(); |
frame_data->parent_id = |
frame->parent() ? frame->parent()->view()->id() : kNoParentId; |
+ frame_data->name = frame->name(); |
+ // TODO(sky): implement me. |
+ frame_data->origin = std::string(); |
return frame_data.Pass(); |
} |
@@ -175,6 +178,15 @@ void Frame::NotifyRemoved(const Frame* source, const Frame* removed_node) { |
child->NotifyRemoved(source, removed_node); |
} |
+void Frame::NotifyFrameNameChanged(const Frame* source) { |
+ if (this != source) { |
+ frame_tree_client_->OnFrameNameChanged(source->view_->id(), source->name_); |
+ } |
+ |
+ for (Frame* child : children_) |
+ child->NotifyFrameNameChanged(source); |
+} |
+ |
void Frame::OnViewDestroying(mojo::View* view) { |
if (parent_) |
parent_->Remove(this); |
@@ -231,4 +243,12 @@ void Frame::ProgressChanged(double progress) { |
tree_->ProgressChanged(); |
} |
+void Frame::SetFrameName(const mojo::String& name) { |
+ if (name_ == name) |
+ return; |
+ |
+ name_ = name; |
+ tree_->FrameNameChanged(this); |
+} |
+ |
} // namespace mandoline |