Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: chrome/browser/ui/libgtk2ui/gtk2_border.cc

Issue 1234223005: Initial gtk3 support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed abort on GtkPrintUnixDialog Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/libgtk2ui/gtk2_border.h" 5 #include "chrome/browser/ui/libgtk2ui/gtk2_border.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "chrome/browser/ui/libgtk2ui/gtk2_ui.h" 9 #include "chrome/browser/ui/libgtk2ui/gtk2_ui.h"
10 #include "chrome/browser/ui/libgtk2ui/gtk2_util.h" 10 #include "chrome/browser/ui/libgtk2ui/gtk2_util.h"
(...skipping 15 matching lines...) Expand all
26 26
27 namespace libgtk2ui { 27 namespace libgtk2ui {
28 28
29 namespace { 29 namespace {
30 30
31 const int kNumberOfFocusedStates = 2; 31 const int kNumberOfFocusedStates = 2;
32 32
33 class ButtonImageSkiaSource : public gfx::ImageSkiaSource { 33 class ButtonImageSkiaSource : public gfx::ImageSkiaSource {
34 public: 34 public:
35 ButtonImageSkiaSource(const Gtk2UI* gtk2_ui, 35 ButtonImageSkiaSource(const Gtk2UI* gtk2_ui,
36 const GtkStateType state, 36 const GtkStateFlags state,
37 const bool focused,
38 const bool call_to_action,
39 const gfx::Size& size) 37 const gfx::Size& size)
40 : gtk2_ui_(gtk2_ui), 38 : gtk2_ui_(gtk2_ui),
41 state_(state), 39 state_(state),
42 focused_(focused),
43 call_to_action_(call_to_action),
44 size_(size) { 40 size_(size) {
45 } 41 }
46 42
47 ~ButtonImageSkiaSource() override {} 43 ~ButtonImageSkiaSource() override {}
48 44
49 gfx::ImageSkiaRep GetImageForScale(float scale) override { 45 gfx::ImageSkiaRep GetImageForScale(float scale) override {
50 int w = size_.width() * scale; 46 int w = size_.width() * scale;
51 int h = size_.height() * scale; 47 int h = size_.height() * scale;
52 return gfx::ImageSkiaRep( 48 return gfx::ImageSkiaRep(
53 gtk2_ui_->DrawGtkButtonBorder(state_, focused_, call_to_action_, w, h), 49 gtk2_ui_->DrawGtkButtonBorder(state_, w, h),
54 scale); 50 scale);
55 } 51 }
56 52
57 private: 53 private:
58 const Gtk2UI* gtk2_ui_; 54 const Gtk2UI* gtk2_ui_;
59 const GtkStateType state_; 55 const GtkStateFlags state_;
60 const bool focused_;
61 const bool call_to_action_;
62 const gfx::Size size_; 56 const gfx::Size size_;
63 57
64 DISALLOW_COPY_AND_ASSIGN(ButtonImageSkiaSource); 58 DISALLOW_COPY_AND_ASSIGN(ButtonImageSkiaSource);
65 }; 59 };
66 60
67 } // namespace 61 } // namespace
68 62
69 Gtk2Border::Gtk2Border(Gtk2UI* gtk2_ui, 63 Gtk2Border::Gtk2Border(Gtk2UI* gtk2_ui,
70 views::LabelButton* owning_button, 64 views::LabelButton* owning_button,
71 scoped_ptr<views::LabelButtonBorder> border) 65 scoped_ptr<views::LabelButtonBorder> border)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 const gfx::Rect& rect, 129 const gfx::Rect& rect,
136 gfx::Canvas* canvas) { 130 gfx::Canvas* canvas) {
137 bool focused = extra.button.is_focused; 131 bool focused = extra.button.is_focused;
138 Button::ButtonState views_state = Button::GetButtonStateFrom(state); 132 Button::ButtonState views_state = Button::GetButtonStateFrom(state);
139 133
140 if (border_->GetPainter(focused, views_state) || 134 if (border_->GetPainter(focused, views_state) ||
141 (focused && border_->GetPainter(false, views_state))) { 135 (focused && border_->GetPainter(false, views_state))) {
142 gfx::ImageSkia* image = &button_images_[focused][views_state]; 136 gfx::ImageSkia* image = &button_images_[focused][views_state];
143 137
144 if (image->isNull() || image->size() != rect.size()) { 138 if (image->isNull() || image->size() != rect.size()) {
145 bool call_to_action = owning_button_->GetClassName() == 139 int gtk_state = GetGtkState(state);
146 views::BlueButton::kViewClassName; 140 if (focused)
Elliot Glaysher 2015/07/20 19:31:40 So while I personally don't like this feature, thi
knthzh 2015/07/21 15:48:27 Okay. Where are the BlueButtons on the Chrome UI?
147 GtkStateType gtk_state = GetGtkState(state); 141 gtk_state |= GTK_STATE_FLAG_FOCUSED;
142
148 *image = gfx::ImageSkia( 143 *image = gfx::ImageSkia(
149 new ButtonImageSkiaSource(gtk2_ui_, 144 new ButtonImageSkiaSource(gtk2_ui_,
150 gtk_state, 145 (GtkStateFlags)gtk_state,
151 focused,
152 call_to_action,
153 rect.size()), 146 rect.size()),
154 rect.size()); 147 rect.size());
155 } 148 }
156 canvas->DrawImageInt(*image, rect.x(), rect.y()); 149 canvas->DrawImageInt(*image, rect.x(), rect.y());
157 } 150 }
158 } 151 }
159 152
160 } // namespace libgtk2ui 153 } // namespace libgtk2ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698