#if defined(SAMSUNG_TOOLBAR_UI)
#include "chrome/browser/ui/views/samsung/bookmarks/bookmarks_bubble_view.h"
+#include "chrome/browser/ui/views/samsung/exit_browser_bubble_view.h"
#include "chrome/browser/ui/views/samsung/handoff/handoff_bubble_view.h"
#include "chrome/browser/ui/views/samsung/handoff/handoff_timeout_bubble_view.h"
-#include "chrome/browser/ui/views/samsung/exit_browser_bubble_view.h"
#include "chrome/browser/ui/views/samsung/passkey/passkey_bubble_view.h"
+#include "ui/views/vector_icons.h"
#endif //SAMSUNG_TOOLBAR_UI
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
auto image_model = ui::ImageModel::FromVectorIcon(
kZoomMinusMenuRefreshIcon, ui::kColorMenuItemForeground);
+ WebContents* current_tab = GetWebContents();
+ const int index =
+ browser_->tab_strip_model()->GetIndexOfWebContents(current_tab);
+
+ bool is_current_tab_pinned = false;
+ if (index != TabStripModel::kNoTab)
+ is_current_tab_pinned = browser_->tab_strip_model()->IsTabPinned(index);
+
+ std::unique_ptr<views::Button> pin_button = CreateButtonWithAccessibleName(
+ base::BindRepeating(callback, browser_, IDC_WINDOW_PIN_TAB),
+ IDS_ACCNAME_ZOOM_MINUS2, false, true,
+ ui::ImageModel::FromVectorIcon(
+ is_current_tab_pinned ? views::kUnpinIcon : views::kPinIcon,
+ ui::kColorMenuItemForeground));
+
+ std::unique_ptr<views::ImageButton> pintab_button(
+ static_cast<views::ImageButton*>(pin_button.release()));
+
std::unique_ptr<views::Button> decrement_button =
CreateButtonWithAccessibleName(
base::BindRepeating(callback, browser_, IDC_ZOOM_MINUS),
if (media_button)
media_button_ = container_view_->AddChildView(std::move(media_button));
#if defined(SAMSUNG_TOOLBAR_UI)
+ pintab_button_ = container_view_->AddChildView(std::move(pintab_button));
decrement_button_ =
container_view_->AddChildView(std::move(decrement_button));
zoom_label_ = container_view_->AddChildView(std::move(zoom_label));
inc_button->UpdateIconsWithStandardColors(kZoomPlusMenuRefreshIcon);
}
+void ToolbarView::UpdatePinTabButtonState() {
+ bool isWebApp = browser_view_->GetIsWebAppType();
+ if (isWebApp) {
+ LOG(INFO) << "No pin in PWA, returning";
+ return;
+ }
+
+ WebContents* current_tab = GetWebContents();
+ const int current_tab_index =
+ browser_->tab_strip_model()->GetIndexOfWebContents(current_tab);
+ bool is_current_tab_pinned =
+ browser_->tab_strip_model()->IsTabPinned(current_tab_index);
+
+ pintab_button_->SetImageModel(
+ views::Button::STATE_NORMAL,
+ ui::ImageModel::FromVectorIcon(
+ is_current_tab_pinned ? views::kUnpinIcon : views::kPinIcon,
+ ui::kColorMenuItemForeground));
+
+ auto browser_core = samsung_browser_main::SamsungBrowserCore::instance();
+ if (!browser_core) {
+ LOG(INFO) << "browser_core is null";
+ return;
+ }
+
+ auto multi_language_controller = browser_core->MultiLanguageController();
+ if (!multi_language_controller) {
+ LOG(INFO) << "multi_language_controller is null";
+ return;
+ }
+
+ int pinned_count = browser_->tab_strip_model()->IndexOfFirstNonPinnedTab();
+ if (pinned_count >= 2 && !is_current_tab_pinned) {
+ pintab_button_->SetTooltipText(multi_language_controller->GetUTF16String(
+ "TV_SID_WEBBROWSER_CEAUG_TO_PIN_TAB_UNPIN_THE_PREVIOUS_ONE"));
+ return;
+ }
+
+ if (is_current_tab_pinned) {
+ pintab_button_->SetTooltipText(multi_language_controller->GetUTF16String(
+ "TV_SID_WEBBROWSER_CEAUG_UNPIN_TAB"));
+ } else {
+ pintab_button_->SetTooltipText(multi_language_controller->GetUTF16String(
+ "TV_SID_WEBBROWSER_CEAUG_PIN_TAB"));
+ }
+}
+
void ToolbarView::UpdateButtonToolTips() {
auto browser_core = samsung_browser_main::SamsungBrowserCore::instance();
if (!browser_core) {
if (tab) {
LOG(INFO) << "Updating Zoom value";
UpdateZoomControls();
+ UpdatePinTabButtonState();
}
#endif
if (location_bar_)