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

Side by Side Diff: ui/gfx/gtk_preserve_window.cc

Issue 10316010: Revert 135020 - Add initial GTK web accessibility framework. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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
« no previous file with comments | « ui/gfx/gtk_preserve_window.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/gfx/gtk_preserve_window.h" 5 #include "ui/gfx/gtk_preserve_window.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 9
10 #include "ui/base/gtk/gtk_compat.h" 10 #include "ui/base/gtk/gtk_compat.h"
11 11
12 G_BEGIN_DECLS 12 G_BEGIN_DECLS
13 13
14 #define GTK_PRESERVE_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ 14 #define GTK_PRESERVE_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
15 GTK_TYPE_PRESERVE_WINDOW, \ 15 GTK_TYPE_PRESERVE_WINDOW, \
16 GtkPreserveWindowPrivate)) 16 GtkPreserveWindowPrivate))
17 17
18 typedef struct _GtkPreserveWindowPrivate GtkPreserveWindowPrivate; 18 typedef struct _GtkPreserveWindowPrivate GtkPreserveWindowPrivate;
19 19
20 struct _GtkPreserveWindowPrivate { 20 struct _GtkPreserveWindowPrivate {
21 // If true, don't create/destroy windows on realize/unrealize. 21 // If true, don't create/destroy windows on realize/unrealize.
22 gboolean preserve_window; 22 gboolean preserve_window;
23 23
24 // Whether or not we delegate the resize of the GdkWindow 24 // Whether or not we delegate the resize of the GdkWindow
25 // to someone else. 25 // to someone else.
26 gboolean delegate_resize; 26 gboolean delegate_resize;
27
28 // Accessible factory and userdata.
29 AtkObject* (*accessible_factory)(void* userdata);
30 void* accessible_factory_userdata;
31 }; 27 };
32 28
33 G_DEFINE_TYPE(GtkPreserveWindow, gtk_preserve_window, GTK_TYPE_FIXED) 29 G_DEFINE_TYPE(GtkPreserveWindow, gtk_preserve_window, GTK_TYPE_FIXED)
34 30
35 static void gtk_preserve_window_destroy(GtkObject* object); 31 static void gtk_preserve_window_destroy(GtkObject* object);
36 static void gtk_preserve_window_realize(GtkWidget* widget); 32 static void gtk_preserve_window_realize(GtkWidget* widget);
37 static void gtk_preserve_window_unrealize(GtkWidget* widget); 33 static void gtk_preserve_window_unrealize(GtkWidget* widget);
38 static void gtk_preserve_window_size_allocate(GtkWidget* widget, 34 static void gtk_preserve_window_size_allocate(GtkWidget* widget,
39 GtkAllocation* allocation); 35 GtkAllocation* allocation);
40 static AtkObject* gtk_preserve_window_get_accessible(GtkWidget* widget);
41 36
42 static void gtk_preserve_window_class_init(GtkPreserveWindowClass *klass) { 37 static void gtk_preserve_window_class_init(GtkPreserveWindowClass *klass) {
43 GtkWidgetClass* widget_class = reinterpret_cast<GtkWidgetClass*>(klass); 38 GtkWidgetClass* widget_class = reinterpret_cast<GtkWidgetClass*>(klass);
44 widget_class->realize = gtk_preserve_window_realize; 39 widget_class->realize = gtk_preserve_window_realize;
45 widget_class->unrealize = gtk_preserve_window_unrealize; 40 widget_class->unrealize = gtk_preserve_window_unrealize;
46 widget_class->size_allocate = gtk_preserve_window_size_allocate; 41 widget_class->size_allocate = gtk_preserve_window_size_allocate;
47 widget_class->get_accessible = gtk_preserve_window_get_accessible;
48 42
49 GtkObjectClass* object_class = reinterpret_cast<GtkObjectClass*>(klass); 43 GtkObjectClass* object_class = reinterpret_cast<GtkObjectClass*>(klass);
50 object_class->destroy = gtk_preserve_window_destroy; 44 object_class->destroy = gtk_preserve_window_destroy;
51 45
52 GObjectClass* gobject_class = G_OBJECT_CLASS(klass); 46 GObjectClass* gobject_class = G_OBJECT_CLASS(klass);
53 g_type_class_add_private(gobject_class, sizeof(GtkPreserveWindowPrivate)); 47 g_type_class_add_private(gobject_class, sizeof(GtkPreserveWindowPrivate));
54 } 48 }
55 49
56 static void gtk_preserve_window_init(GtkPreserveWindow* widget) { 50 static void gtk_preserve_window_init(GtkPreserveWindow* widget) {
57 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); 51 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
58 priv->preserve_window = FALSE; 52 priv->preserve_window = FALSE;
59 priv->accessible_factory = NULL;
60 priv->accessible_factory_userdata = NULL;
61 53
62 // These widgets always have their own window. 54 // These widgets always have their own window.
63 gtk_widget_set_has_window(GTK_WIDGET(widget), TRUE); 55 gtk_widget_set_has_window(GTK_WIDGET(widget), TRUE);
64 } 56 }
65 57
66 GtkWidget* gtk_preserve_window_new() { 58 GtkWidget* gtk_preserve_window_new() {
67 return GTK_WIDGET(g_object_new(GTK_TYPE_PRESERVE_WINDOW, NULL)); 59 return GTK_WIDGET(g_object_new(GTK_TYPE_PRESERVE_WINDOW, NULL));
68 } 60 }
69 61
70 static void gtk_preserve_window_destroy(GtkObject* object) { 62 static void gtk_preserve_window_destroy(GtkObject* object) {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 children = children->next; 227 children = children->next;
236 } 228 }
237 } 229 }
238 230
239 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, 231 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget,
240 gboolean delegate) { 232 gboolean delegate) {
241 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); 233 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
242 priv->delegate_resize = delegate; 234 priv->delegate_resize = delegate;
243 } 235 }
244 236
245 void gtk_preserve_window_set_accessible_factory(
246 GtkPreserveWindow* widget,
247 AtkObject* (*factory)(void* userdata),
248 gpointer userdata) {
249 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
250 priv->accessible_factory = factory;
251 priv->accessible_factory_userdata = userdata;
252 }
253
254 AtkObject* gtk_preserve_window_get_accessible(GtkWidget* widget) {
255 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
256 if (priv->accessible_factory) {
257 return priv->accessible_factory(priv->accessible_factory_userdata);
258 } else {
259 return GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)
260 ->get_accessible(widget);
261 }
262 }
263
264 G_END_DECLS 237 G_END_DECLS
OLDNEW
« no previous file with comments | « ui/gfx/gtk_preserve_window.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698