Commit 77e35cdb authored by Dave Schuyler's avatar Dave Schuyler Committed by Commit Bot

[Omnibox] Add OmniboxSeparatedLineView and OmniboxSuggestionView

This CL adds two classes for the suggestion and keyword views within an
OmniboxResultView. The intent is to move many of the members of
OmniboxResultView to one of the new classes. This CL doesn't move the
code yet. This Cl is boilerplate for the new classes. This is done to
better focus following CLs that will move code.

Bug: None
Change-Id: I0e9c766afef9c8cb13ff3b2a9b01a85c2041c51e
Reviewed-on: https://chromium-review.googlesource.com/980798
Commit-Queue: Dave Schuyler <dschuyler@chromium.org>
Reviewed-by: default avatarTommy Li <tommycli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547063}
parent fae6aebd
......@@ -96,7 +96,69 @@ int GetIconAlignmentOffset() {
} // namespace
////////////////////////////////////////////////////////////////////////////////
// OmniboxResultView:
// OmniboxSeparatedLineView:
class OmniboxSeparatedLineView : public views::View {
public:
explicit OmniboxSeparatedLineView(OmniboxResultView* result_view);
~OmniboxSeparatedLineView() override;
protected:
// views::View:
void Layout() override;
const char* GetClassName() const override;
OmniboxResultView* result_view_;
private:
DISALLOW_COPY_AND_ASSIGN(OmniboxSeparatedLineView);
};
OmniboxSeparatedLineView::OmniboxSeparatedLineView(
OmniboxResultView* result_view)
: result_view_(result_view) {}
OmniboxSeparatedLineView::~OmniboxSeparatedLineView() = default;
const char* OmniboxSeparatedLineView::GetClassName() const {
return "OmniboxSeparatedLineView";
}
void OmniboxSeparatedLineView::Layout() {
// TODO(dschuyler): Fill this in.
}
////////////////////////////////////////////////////////////////////////////////
// OmniboxSuggestionView:
class OmniboxSuggestionView : public OmniboxSeparatedLineView {
public:
explicit OmniboxSuggestionView(OmniboxResultView* result_view);
~OmniboxSuggestionView() override;
private:
// views::View:
void Layout() override;
const char* GetClassName() const override;
DISALLOW_COPY_AND_ASSIGN(OmniboxSuggestionView);
};
OmniboxSuggestionView::OmniboxSuggestionView(OmniboxResultView* result_view)
: OmniboxSeparatedLineView::OmniboxSeparatedLineView(result_view) {}
OmniboxSuggestionView::~OmniboxSuggestionView() = default;
const char* OmniboxSuggestionView::GetClassName() const {
return "OmniboxSuggestionView";
}
void OmniboxSuggestionView::Layout() {
// TODO(dschuyler): Fill this in.
}
////////////////////////////////////////////////////////////////////////////////
// OmniboxImageView:
class OmniboxImageView : public views::ImageView {
public:
......@@ -127,6 +189,9 @@ OmniboxResultView::OmniboxResultView(OmniboxPopupContentsView* model,
keyword_separator_view_(AddOmniboxTextView(font_list)) {
CHECK_GE(model_index, 0);
AddChildView(suggestion_view_ = new OmniboxSuggestionView(this));
AddChildView(keyword_view_ = new OmniboxSeparatedLineView(this));
keyword_icon_view_->EnableCanvasFlippingForRTLUI(true);
keyword_icon_view_->SetImage(gfx::CreateVectorIcon(
omnibox::kKeywordSearchIcon, GetLayoutConstant(LOCATION_BAR_ICON_SIZE),
......
......@@ -31,6 +31,8 @@ class Image;
}
class OmniboxImageView;
class OmniboxSeparatedLineView;
class OmniboxSuggestionView;
class OmniboxTabSwitchButton;
class OmniboxTextView;
......@@ -126,6 +128,12 @@ class OmniboxResultView : public views::View,
std::unique_ptr<gfx::SlideAnimation> animation_;
// Weak pointers for easy reference.
OmniboxSuggestionView* suggestion_view_; // The leading (or left) view.
OmniboxSeparatedLineView* keyword_view_; // The trailing (or right) view.
// TODO(dschuyler): Move these views into either suggestion_view_ or
// keyword_view_. I intend to do so by May, 2018.
views::ImageView* suggestion_icon_view_; // Small icon. e.g. favicon.
views::ImageView* suggestion_image_view_; // For rich suggestions.
OmniboxTextView* suggestion_content_view_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment