From 3350ea746618d70db640bc3ce1032e2e3cc1f339 Mon Sep 17 00:00:00 2001 Message-Id: <3350ea746618d70db640bc3ce1032e2e3cc1f339.1714130020.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 31 Oct 2004 12:14:47 +0000 Subject: [PATCH] Moved from main gtk source directory Organization: Straylight/Edgeware From: espen --- gtk/alien/glue.c | 426 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 426 insertions(+) create mode 100644 gtk/alien/glue.c diff --git a/gtk/alien/glue.c b/gtk/alien/glue.c new file mode 100644 index 0000000..6cd334c --- /dev/null +++ b/gtk/alien/glue.c @@ -0,0 +1,426 @@ +/* Common Lisp bindings for GTK+ v2.0 + * Copyright (C) 1999-2002 Espen S. Johnsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* $Id: glue.c,v 1.1 2004-10-31 12:14:47 espen Exp $ */ + + +#include + + +/* + * + * Gtk helper functions + * + */ + +void +gtk_query_version (guint *major, guint *minor, guint *micro) +{ + *major = gtk_major_version; + *minor = gtk_minor_version; + *micro = gtk_micro_version; +} + + +void gtk_callback_marshal (GtkWidget *widget, gpointer data) +{ + GValue arg; + + memset (&arg, 0, sizeof (GValue)); + g_value_init (&arg, gtk_widget_get_type ()); + g_value_set_object (&arg, widget); + callback_marshal ((guint)data, NULL, 1, &arg); +} + +void gtk_menu_position_callback_marshal (GtkMenu *menu, gint x, gint y, + gboolean push_in, gpointer data) +{ + GValue args[3]; + + memset (args, 0, 3 * sizeof (GValue)); + g_value_init (&args[0], G_TYPE_INT); + g_value_set_int (&args[0], x); + g_value_init (&args[1], G_TYPE_INT); + g_value_set_int (&args[1], y); + g_value_init (&args[2], G_TYPE_BOOLEAN); + g_value_set_boolean (&args[2], push_in); + + callback_marshal ((guint)data, NULL, 3, args); +} + + +/* Widget */ + +GdkWindow* +gtk_widget_get_window (GtkWidget *widget) +{ + return widget->window; +} + +GtkStateType +gtk_widget_get_state (GtkWidget *widget) +{ + return widget->state; +} + +gboolean +gtk_widget_mapped_p (GtkWidget *widget) +{ + return GTK_WIDGET_MAPPED (widget); +} + +void +gtk_widget_get_size_allocation (GtkWidget *widget, int *width, int *height) +{ + *width = widget->allocation.width; + *height = widget->allocation.height; +} + + +/* Container */ + +GtkWidget* +gtk_container_get_focus_child (GtkContainer *container) +{ + return container->focus_child; +} + + +/* Dialog */ + +GtkWidget* +gtk_dialog_get_vbox (GtkDialog *dialog) +{ + return dialog->vbox; +} + +GtkWidget* +gtk_dialog_get_action_area (GtkDialog *dialog) +{ + return dialog->action_area; +} + + + +/* Check menu item */ + +gboolean +gtk_check_menu_item_get_active (GtkCheckMenuItem* check_menu_item) +{ + return check_menu_item->active; +} + +gboolean +gtk_check_menu_item_get_show_toggle (GtkCheckMenuItem* check_menu_item) +{ + return check_menu_item->always_show_toggle; +} + + + +/* Window */ + +GtkWidget* +gtk_window_get_default (GtkWindow *window) +{ + return window->default_widget; +} + + +/* File selection */ + +GtkWidget* +gtk_file_selection_get_action_area (GtkFileSelection *filesel) +{ + return filesel->action_area; +} + +GtkWidget* +gtk_file_selection_get_ok_button (GtkFileSelection *filesel) +{ + return filesel->ok_button; +} + +GtkWidget* +gtk_file_selection_get_cancel_button (GtkFileSelection *filesel) +{ + return filesel->cancel_button; +} + + +/* Color selection */ + +gtk_color_selection_set_color_by_values (GtkColorSelection *colorsel, + gdouble red, + gdouble green, + gdouble blue, + gdouble opacity) +{ + gdouble color[4]; + + color[0] = red; + color[1] = green; + color[2] = blue; + color[3] = opacity; + + gtk_color_selection_set_color (colorsel, color); +} + +void +gtk_color_selection_get_color_as_values (GtkColorSelection *colorsel, + gdouble *red, + gdouble *green, + gdouble *blue, + gdouble *opacity) +{ + gdouble color[4]; + + gtk_color_selection_get_color (colorsel, color); + + *red = color[0]; + *green = color[1]; + *blue = color[2]; + *opacity = color[3]; +} + + +/* Combo */ + +GtkWidget* +gtk_combo_get_entry (GtkCombo *combo) +{ + return combo->entry; +} + +gboolean +gtk_combo_get_use_arrows (GtkCombo *combo) +{ + return combo->use_arrows; +} + +gboolean +gtk_combo_get_use_arrows_always (GtkCombo *combo) +{ + return combo->use_arrows_always; +} + +gboolean +gtk_combo_get_case_sensitive (GtkCombo *combo) +{ + return combo->case_sensitive; +} + + +/* Paned */ + +GtkWidget* +gtk_paned_child1 (GtkPaned *paned, guint *resize, guint *shrink) +{ + *resize = paned->child1_resize; + *shrink = paned->child1_shrink; + + return paned->child1; +} + + +GtkWidget* +gtk_paned_child2 (GtkPaned *paned, guint *resize, guint *shrink) +{ + *resize = paned->child2_resize; + *shrink = paned->child2_shrink; + + return paned->child2; +} + + +/* Layout */ + +GdkWindow* +gtk_layout_get_bin_window (GtkLayout *layout) +{ + return layout->bin_window; +} + + +/* List */ + +GList* +gtk_list_selection (GtkList *list) +{ + return list->selection; +} + + + +/* Toolbar */ + +gint +gtk_toolbar_get_tooltips (GtkToolbar *toolbar) +{ + return toolbar->tooltips->enabled; +} + + +/* Drawing area */ + +void +gtk_drawing_area_get_size (GtkDrawingArea *darea, gint *width, gint *height) +{ + GtkWidget *widget; + + widget = GTK_WIDGET (darea); + *width = widget->allocation.width; + *height = widget->allocation.height; +} + + +/* Progress */ + +gchar* +gtk_progress_get_format_string (GtkProgress *progress) +{ + return progress->format; +} + +GtkAdjustment* +gtk_progress_get_adjustment (GtkProgress *progress) +{ + return progress->adjustment; +} + + +/* Tooltips */ + +gboolean +gtk_tooltips_get_enabled (GtkTooltips *tooltips) +{ + return tooltips->enabled; +} + + +/* GtkStyle accessor functions */ + +typedef enum { + GTK_COLOR_FG, + GTK_COLOR_BG, + GTK_COLOR_LIGHT, + GTK_COLOR_DARK, + GTK_COLOR_MID, + GTK_COLOR_TEXT, + GTK_COLOR_BASE, + GTK_COLOR_WHITE, + GTK_COLOR_BLACK +} GtkColorType; + +GdkColor* +gtk_style_get_color (GtkStyle *style, GtkColorType color_type, + GtkStateType state) +{ + switch (color_type) + { + case GTK_COLOR_WHITE: + return &style->white; + case GTK_COLOR_BLACK: + return &style->black; + case GTK_COLOR_FG: + return &style->fg[state]; + case GTK_COLOR_BG: + return &style->bg[state]; + case GTK_COLOR_LIGHT: + return &style->light[state]; + case GTK_COLOR_DARK: + return &style->dark[state]; + case GTK_COLOR_MID: + return &style->mid[state]; + case GTK_COLOR_TEXT: + return &style->text[state]; + case GTK_COLOR_BASE: + return &style->base[state]; + } +} + + +GdkColor* +gtk_style_set_color (GtkStyle *style, GtkColorType color_type, + GtkStateType state, GdkColor *color) +{ + switch (color_type) + { + case GTK_COLOR_WHITE: + style->white = *color; break; + case GTK_COLOR_BLACK: + style->black = *color; break; + case GTK_COLOR_FG: + style->fg[state] = *color; break; + case GTK_COLOR_BG: + style->bg[state] = *color; break; + case GTK_COLOR_LIGHT: + style->light[state] = *color; break; + case GTK_COLOR_DARK: + style->dark[state] = *color; break; + case GTK_COLOR_MID: + style->mid[state] = *color; break; + case GTK_COLOR_TEXT: + style->text[state] = *color; break; + case GTK_COLOR_BASE: + style->base[state] = *color; break; + } + + return gtk_style_get_color (style, color_type, state); +} + +/* +GdkFont* +gtk_style_get_font (GtkStyle *style) +{ + return style->font; +} + + +GdkFont* +gtk_style_set_font (GtkStyle *style, GdkFont *font) +{ + return style->font = font; +} +*/ + +GdkGC* +gtk_style_get_gc (GtkStyle *style, GtkColorType color_type, GtkStateType state) +{ + switch (color_type) + { + case GTK_COLOR_WHITE: + return style->white_gc; + case GTK_COLOR_BLACK: + return style->black_gc; + case GTK_COLOR_FG: + return style->fg_gc[state]; + case GTK_COLOR_BG: + return style->bg_gc[state]; + case GTK_COLOR_LIGHT: + return style->light_gc[state]; + case GTK_COLOR_DARK: + return style->dark_gc[state]; + case GTK_COLOR_MID: + return style->mid_gc[state]; + case GTK_COLOR_TEXT: + return style->text_gc[state]; + case GTK_COLOR_BASE: + return style->base_gc[state]; + } +} -- [mdw]