18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * vim: set expandtab shiftwidth=2 tabstop=2: */ 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* ***** BEGIN LICENSE BLOCK ***** 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Version: MPL 1.1/GPL 2.0/LGPL 2.1 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The contents of this file are subject to the Mozilla Public License Version 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.1 (the "License"); you may not use this file except in compliance with 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the License. You may obtain a copy of the License at 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * http://www.mozilla.org/MPL/ 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Software distributed under the License is distributed on an "AS IS" basis, 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for the specific language governing rights and limitations under the 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Original Code is the Gtk2XtBin Widget Implementation. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Initial Developer of the Original Code is 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Sun Microsystems, Inc. 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Portions created by the Initial Developer are Copyright (C) 2002 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Initial Developer. All Rights Reserved. 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Contributor(s): 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Alternatively, the contents of this file may be used under the terms of 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * either the GNU General Public License Version 2 or later (the "GPL"), or 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in which case the provisions of the GPL or the LGPL are applicable instead 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * of those above. If you wish to allow use of your version of this file only 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * under the terms of either the GPL or the LGPL, and not to allow others to 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * use your version of this file under the terms of the MPL, indicate your 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * decision by deleting the provisions above and replace them with the notice 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and other provisions required by the GPL or the LGPL. If you do not delete 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the provisions above, a recipient may use your version of this file under 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the terms of any one of the MPL, the GPL or the LGPL. 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ***** END LICENSE BLOCK ***** */ 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef __GTK_XTBIN_H__ 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define __GTK_XTBIN_H__ 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <gtk/gtk.h> 442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#ifndef GTK_API_VERSION_2 452fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include <gtk/gtkx.h> 462fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <X11/Intrinsic.h> 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <X11/Xutil.h> 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <X11/Xlib.h> 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef MOZILLA_CLIENT 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "nscore.h" 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef _IMPL_GTKXTBIN_API 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTKXTBIN_API(type) NS_EXPORT_(type) 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTKXTBIN_API(type) NS_IMPORT_(type) 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTKXTBIN_API(type) type 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __cplusplus 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern "C" { 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /* __cplusplus */ 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _GtkXtBin GtkXtBin; 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _GtkXtBinClass GtkXtBinClass; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTK_TYPE_XTBIN (gtk_xtbin_get_type ()) 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTK_XTBIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GTK_TYPE_XTBIN, GtkXtBin)) 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTK_XTBIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GTK_TYPE_XTBIN, GtkXtBinClass)) 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTK_IS_XTBIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GTK_TYPE_XTBIN)) 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GTK_IS_XTBIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GTK_TYPE_XTBIN)) 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _XtClient XtClient; 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct _XtClient { 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Display *xtdisplay; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Widget top_widget; /* The toplevel widget */ 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Widget child_widget; /* The embedded widget */ 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Visual *xtvisual; 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int xtdepth; 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Colormap xtcolormap; 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Window oldwindow; 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct _GtkXtBin 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GtkSocket gsocket; 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GdkWindow *parent_window; 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Display *xtdisplay; /* Xt Toolkit Display */ 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Window xtwindow; /* Xt Toolkit XWindow */ 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint x, y; 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint width, height; 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtClient xtclient; /* Xt Client for XEmbed */ 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct _GtkXtBinClass 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GtkSocketClass widget_class; 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectGTKXTBIN_API(GType) gtk_xtbin_get_type (void); 107e14391e94c850b8bd03680c23b38978db68687a8John ReckGTKXTBIN_API(GtkWidget *) gtk_xtbin_new (GtkWidget *parent_widget, String *f); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectGTKXTBIN_API(void) gtk_xtbin_set_position (GtkXtBin *xtbin, 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint x, 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint y); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectGTKXTBIN_API(void) gtk_xtbin_resize (GtkWidget *widget, 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint width, 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gint height); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _XtTMRec { 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtTranslations translations; /* private to Translation Manager */ 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtBoundActions proc_table; /* procedure bindings for actions */ 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project struct _XtStateRec *current_state; /* Translation Manager state ptr */ 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned long lastEventTime; 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} XtTMRec, *XtTM; 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _CorePart { 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Widget self; /* pointer to widget itself */ 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WidgetClass widget_class; /* pointer to Widget's ClassRec */ 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Widget parent; /* parent widget */ 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XrmName xrm_name; /* widget resource name quarkified */ 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean being_destroyed; /* marked for destroy */ 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtCallbackList destroy_callbacks; /* who to call when widget destroyed */ 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtPointer constraints; /* constraint record */ 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Position x, y; /* window position */ 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Dimension width, height; /* window dimensions */ 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Dimension border_width; /* window border width */ 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean managed; /* is widget geometry managed? */ 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean sensitive; /* is widget sensitive to user events*/ 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean ancestor_sensitive; /* are all ancestors sensitive? */ 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtEventTable event_table; /* private to event dispatcher */ 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtTMRec tm; /* translation management */ 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XtTranslations accelerators; /* accelerator translations */ 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Pixel border_pixel; /* window border pixel */ 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Pixmap border_pixmap; /* window border pixmap or NULL */ 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WidgetList popup_list; /* list of popups */ 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Cardinal num_popups; /* how many popups */ 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String name; /* widget resource name */ 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Screen *screen; /* window's screen */ 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Colormap colormap; /* colormap */ 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Window window; /* window ID */ 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Cardinal depth; /* number of planes in window */ 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Pixel background_pixel; /* window background pixel */ 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Pixmap background_pixmap; /* window background pixmap or NULL */ 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean visible; /* is window mapped and not occluded?*/ 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boolean mapped_when_managed;/* map window if it's managed? */ 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} CorePart; 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _WidgetRec { 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CorePart core; 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } WidgetRec, CoreRec; 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __cplusplus 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /* __cplusplus */ 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /* __GTK_XTBIN_H__ */ 162