/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: set expandtab shiftwidth=2 tabstop=2: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Gtk2XtBin Widget Implementation. * * The Initial Developer of the Original Code is * Sun Microsystems, Inc. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #ifndef __GTK_XTBIN_H__ #define __GTK_XTBIN_H__ #include <gtk/gtk.h> #ifndef GTK_API_VERSION_2 #include <gtk/gtkx.h> #endif #include <X11/Intrinsic.h> #include <X11/Xutil.h> #include <X11/Xlib.h> #ifdef MOZILLA_CLIENT #include "nscore.h" #ifdef _IMPL_GTKXTBIN_API #define GTKXTBIN_API(type) NS_EXPORT_(type) #else #define GTKXTBIN_API(type) NS_IMPORT_(type) #endif #else #define GTKXTBIN_API(type) type #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef struct _GtkXtBin GtkXtBin; typedef struct _GtkXtBinClass GtkXtBinClass; #define GTK_TYPE_XTBIN (gtk_xtbin_get_type ()) #define GTK_XTBIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ GTK_TYPE_XTBIN, GtkXtBin)) #define GTK_XTBIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ GTK_TYPE_XTBIN, GtkXtBinClass)) #define GTK_IS_XTBIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ GTK_TYPE_XTBIN)) #define GTK_IS_XTBIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ GTK_TYPE_XTBIN)) typedef struct _XtClient XtClient; struct _XtClient { Display *xtdisplay; Widget top_widget; /* The toplevel widget */ Widget child_widget; /* The embedded widget */ Visual *xtvisual; int xtdepth; Colormap xtcolormap; Window oldwindow; }; struct _GtkXtBin { GtkSocket gsocket; GdkWindow *parent_window; Display *xtdisplay; /* Xt Toolkit Display */ Window xtwindow; /* Xt Toolkit XWindow */ gint x, y; gint width, height; XtClient xtclient; /* Xt Client for XEmbed */ }; struct _GtkXtBinClass { GtkSocketClass widget_class; }; GTKXTBIN_API(GType) gtk_xtbin_get_type (void); GTKXTBIN_API(GtkWidget *) gtk_xtbin_new (GtkWidget *parent_widget, String *f); GTKXTBIN_API(void) gtk_xtbin_set_position (GtkXtBin *xtbin, gint x, gint y); GTKXTBIN_API(void) gtk_xtbin_resize (GtkWidget *widget, gint width, gint height); typedef struct _XtTMRec { XtTranslations translations; /* private to Translation Manager */ XtBoundActions proc_table; /* procedure bindings for actions */ struct _XtStateRec *current_state; /* Translation Manager state ptr */ unsigned long lastEventTime; } XtTMRec, *XtTM; typedef struct _CorePart { Widget self; /* pointer to widget itself */ WidgetClass widget_class; /* pointer to Widget's ClassRec */ Widget parent; /* parent widget */ XrmName xrm_name; /* widget resource name quarkified */ Boolean being_destroyed; /* marked for destroy */ XtCallbackList destroy_callbacks; /* who to call when widget destroyed */ XtPointer constraints; /* constraint record */ Position x, y; /* window position */ Dimension width, height; /* window dimensions */ Dimension border_width; /* window border width */ Boolean managed; /* is widget geometry managed? */ Boolean sensitive; /* is widget sensitive to user events*/ Boolean ancestor_sensitive; /* are all ancestors sensitive? */ XtEventTable event_table; /* private to event dispatcher */ XtTMRec tm; /* translation management */ XtTranslations accelerators; /* accelerator translations */ Pixel border_pixel; /* window border pixel */ Pixmap border_pixmap; /* window border pixmap or NULL */ WidgetList popup_list; /* list of popups */ Cardinal num_popups; /* how many popups */ String name; /* widget resource name */ Screen *screen; /* window's screen */ Colormap colormap; /* colormap */ Window window; /* window ID */ Cardinal depth; /* number of planes in window */ Pixel background_pixel; /* window background pixel */ Pixmap background_pixmap; /* window background pixmap or NULL */ Boolean visible; /* is window mapped and not occluded?*/ Boolean mapped_when_managed;/* map window if it's managed? */ } CorePart; typedef struct _WidgetRec { CorePart core; } WidgetRec, CoreRec; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __GTK_XTBIN_H__ */