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

Side by Side Diff: chrome/browser/gtk/nine_box.h

Issue 40139: Put the dropdown menu button on the linux download shelf.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #ifndef CHROME_BROWSER_GTK_NINE_BOX_H_ 5 #ifndef CHROME_BROWSER_GTK_NINE_BOX_H_
6 #define CHROME_BROWSER_GTK_NINE_BOX_H_ 6 #define CHROME_BROWSER_GTK_NINE_BOX_H_
7 7
8 #include <gdk-pixbuf/gdk-pixbuf.h> 8 #include <gdk-pixbuf/gdk-pixbuf.h>
9 9
10 // A NineBox manages a set of source images representing a 3x3 grid, where 10 // A NineBox manages a set of source images representing a 3x3 grid, where
11 // non-corner images can be tiled to make a larger image. It's used to 11 // non-corner images can be tiled to make a larger image. It's used to
12 // use bitmaps for constructing image-based resizable widgets like buttons. 12 // use bitmaps for constructing image-based resizable widgets like buttons.
13 // 13 //
14 // If you want just a vertical image that stretches in height but is fixed
15 // in width, only pass in images for the left column (leave others NULL).
16 // Similarly, for a horizontal image that stretches in width but is fixed in
17 // height, only pass in images for the top row.
18 //
14 // TODO(port): add support for caching server-side pixmaps of prerendered 19 // TODO(port): add support for caching server-side pixmaps of prerendered
15 // nineboxes. 20 // nineboxes.
16 class NineBox { 21 class NineBox {
17 public: 22 public:
18 // Construct a NineBox with nine images. NULL images are allowed. 23 // Construct a NineBox with nine images. NULL images are allowed.
19 // Takes ownership of each image, but not the |images| array. 24 // Takes ownership of each image, but not the |images| array.
20 NineBox(GdkPixbuf* images[9]); 25 NineBox(GdkPixbuf* images[9]);
21 ~NineBox(); 26 ~NineBox();
22 27
23 // Render the NineBox to dst. 28 // Render the NineBox to dst.
24 // Expects dst to already be the proper size. 29 // Expects dst to already be the proper size.
25 void RenderToPixbuf(GdkPixbuf* dst); 30 void RenderToPixbuf(GdkPixbuf* dst);
26 31
27 // Render the top row of images to dst between x1 and x2. 32 // Render the top row of images to dst between x1 and x2.
28 // This is split from RenderToPixbuf so the toolbar can use it. 33 // This is split from RenderToPixbuf so the toolbar can use it.
29 void RenderTopCenterStrip(GdkPixbuf* dst, int x1, int x2); 34 void RenderTopCenterStrip(GdkPixbuf* dst, int x1, int x2);
30 35
31 private: 36 private:
32 // Repeatedly stamp src across dst. 37 // Repeatedly stamp src across dst.
33 void TileImage(GdkPixbuf* src, GdkPixbuf* dst, 38 void TileImage(GdkPixbuf* src, GdkPixbuf* dst,
34 int x1, int y1, int x2, int y2); 39 int x1, int y1, int x2, int y2);
35 40
36 GdkPixbuf* images_[9]; 41 GdkPixbuf* images_[9];
37 }; 42 };
38 43
39 #endif // CHROME_BROWSER_GTK_NINE_BOX_H_ 44 #endif // CHROME_BROWSER_GTK_NINE_BOX_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698