| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_GTK_CHROME_GTK_FRAME_H_ |
| #define CHROME_BROWSER_UI_GTK_CHROME_GTK_FRAME_H_ |
| #pragma once |
| |
| #include <gdk/gdk.h> |
| #include <gtk/gtkwindow.h> |
| |
| G_BEGIN_DECLS |
| |
| // This file declares two subclasses of GtkWindow for easier gtk+ theme |
| // integration. |
| // |
| // The first is "MetaFrames," which is (was?) the name of a gobject class in |
| // the metacity window manager. To actually get at those values, we need to |
| // have an object whose gobject class name string matches the definitions in |
| // the gtkrc file. MetaFrames derives from GtkWindow. |
| // |
| // Metaframes can not be instantiated. It has no constructor; instantiate |
| // ChromeGtkFrame instead. |
| typedef struct _MetaFrames MetaFrames; |
| typedef struct _MetaFramesClass MetaFramesClass; |
| |
| struct _MetaFrames { |
| GtkWindow window; |
| }; |
| |
| struct _MetaFramesClass { |
| GtkWindowClass parent_class; |
| }; |
| |
| |
| // The second is ChromeGtkFrame, which defines a number of optional style |
| // properties so theme authors can control how chromium appears in gtk-theme |
| // mode. It derives from MetaFrames in chrome so older themes that declare a |
| // MetaFrames theme will still work. New themes should target this class. |
| typedef struct _ChromeGtkFrame ChromeGtkFrame; |
| typedef struct _ChromeGtkFrameClass ChromeGtkFrameClass; |
| |
| struct _ChromeGtkFrame { |
| MetaFrames frames; |
| }; |
| |
| struct _ChromeGtkFrameClass { |
| MetaFramesClass frames_class; |
| }; |
| |
| // Creates a GtkWindow object the the class name "ChromeGtkFrame". |
| GtkWidget* chrome_gtk_frame_new(); |
| |
| G_END_DECLS |
| |
| #endif // CHROME_BROWSER_UI_GTK_CHROME_GTK_FRAME_H_ |