1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_COMPOSITOR_DECORATION_TAB_TITLE_H_
#define CHROME_BROWSER_ANDROID_COMPOSITOR_DECORATION_TAB_TITLE_H_
#include <jni.h>
#include "cc/slim/ui_resource_layer.h"
#include "chrome/browser/android/compositor/decoration_icon_title.h" // Base class
#include "ui/gfx/geometry/size.h"
namespace cc::slim {
class SolidColorLayer;
} // namespace cc::slim
namespace android {
class DecorationTabTitle : public DecorationIconTitle {
public:
DecorationTabTitle(ui::ResourceManager* resource_manager,
int title_resource_id,
int icon_resource_id,
int spinner_resource_id,
int spinner_resource_id_incognito,
int fade_width,
int icon_start_padding,
int icon_end_padding,
bool is_incognito,
bool is_rtl,
bool show_bubble,
int bubble_inner_dimension,
int bubble_outer_dimension,
int bubble_offset,
int bubble_inner_tint,
int bubble_outer_tint);
~DecorationTabTitle() override;
void SetUIResourceIds() override;
void SetIsLoading(bool is_loading);
void SetSpinnerRotation(float rotation);
void setBounds(const gfx::Size& bounds) override;
void Update(int title_resource_id,
int icon_resource_id,
int fade_width,
int icon_start_padding,
int icon_end_padding,
bool is_incognito,
bool is_rtl,
bool show_bubble);
void SetShowBubble(bool show_bubble);
const gfx::Size& size() { return size_; }
private:
int spinner_resource_id_;
int spinner_incognito_resource_id_;
bool show_bubble_;
int bubble_inner_dimension_;
int bubble_outer_dimension_;
int bubble_offset_;
int bubble_inner_tint_;
int bubble_outer_tint_;
scoped_refptr<cc::slim::SolidColorLayer> tab_bubble_outer_circle_layer_;
scoped_refptr<cc::slim::SolidColorLayer> tab_bubble_inner_circle_layer_;
scoped_refptr<cc::slim::SolidColorLayer> CreateTabBubbleCircle(int size,
int tint);
void CreateTabBubble();
void CreateAndShowTabBubble(gfx::PointF position);
void HideTabBubble();
gfx::Size size_;
float spinner_rotation_ = 0;
bool is_loading_ = false;
};
} // namespace android
#endif // CHROME_BROWSER_ANDROID_COMPOSITOR_DECORATION_TAB_TITLE_H_
|