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

Side by Side Diff: ui/base/gtk/gtk_floating_container.h

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef UI_BASE_GTK_GTK_FLOATING_CONTAINER_H_
6 #define UI_BASE_GTK_GTK_FLOATING_CONTAINER_H_
7
8 #include <gdk/gdk.h>
9 #include <gtk/gtk.h>
10
11 #include "ui/base/ui_base_export.h"
12
13 // A specialized container, which is a cross between a GtkBin and a
14 // GtkFixed. This container dervies from GtkBin and the implementation of
15 // gtk_container_add() is the same: only one GtkWidget can be added through
16 // that interface. The GtkBin portion contains normal content and is given the
17 // same allocation that this container has.
18 //
19 // In addition, any number of widgets can be added through the
20 // gtk_floating_container_add_floating() method, which provides functionality
21 // similar to a GtkFixed. Unlike a GtkFixed, coordinates are not set when you
22 // gtk_fixed_put(). The location of the floating widgets is determined while
23 // running the "set-floating-position" signal, which is emitted during this
24 // container's "size-allocate" handler.
25 //
26 // The "set-floating-position" signal is (semi-)mandatory if you want widgets
27 // placed anywhere other than the origin and should have the following
28 // signature:
29 //
30 // void (*set_floating_position)(GtkFloatingContainer* container,
31 // GtkAllocation* allocation,
32 // gpointer userdata);
33 //
34 // Your handler should, for each floating widget, set the "x" and "y" child
35 // properties.
36
37 G_BEGIN_DECLS
38
39 #define GTK_TYPE_FLOATING_CONTAINER \
40 (gtk_floating_container_get_type())
41 #define GTK_FLOATING_CONTAINER(obj) \
42 (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_FLOATING_CONTAINER, \
43 GtkFloatingContainer))
44 #define GTK_FLOATING_CONTAINER_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_FLOATING_CONTAINER, \
46 GtkFloatingContainerClass))
47 #define GTK_IS_FLOATING_CONTAINER(obj) \
48 (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_FLOATING_CONTAINER))
49 #define GTK_IS_FLOATING_CONTAINER_CLASS(klass) \
50 (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_FLOATING_CONTAINER))
51 #define GTK_FLOATING_CONTAINER_GET_CLASS(obj) \
52 (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_FLOATING_CONTAINER, \
53 GtkFloatingContainerClass))
54
55 typedef struct _GtkFloatingContainer GtkFloatingContainer;
56 typedef struct _GtkFloatingContainerClass GtkFloatingContainerClass;
57 typedef struct _GtkFloatingContainerChild GtkFloatingContainerChild;
58
59 struct _GtkFloatingContainer {
60 // Parent class.
61 GtkBin bin;
62
63 // A GList of all our floating children, in GtkFloatingContainerChild
64 // structs. Owned by the GtkFloatingContainer.
65 GList* floating_children;
66 };
67
68 struct _GtkFloatingContainerClass {
69 GtkBinClass parent_class;
70 };
71
72 // Internal structure used to associate a widget and its x/y child properties.
73 struct _GtkFloatingContainerChild {
74 GtkWidget* widget;
75 gint x;
76 gint y;
77 };
78
79 UI_BASE_EXPORT GType gtk_floating_container_get_type() G_GNUC_CONST;
80 UI_BASE_EXPORT GtkWidget* gtk_floating_container_new();
81 UI_BASE_EXPORT void gtk_floating_container_add_floating(
82 GtkFloatingContainer* container,
83 GtkWidget* widget);
84 // Use gtk_container_remove to remove all widgets; both widgets added with
85 // gtk_container_add() and gtk_floating_container_add_floating().
86
87 G_END_DECLS
88
89 #endif // UI_BASE_GTK_GTK_FLOATING_CONTAINER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698