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