summaryrefslogtreecommitdiff
path: root/gdk/linux-fb/gdkim-fb.c
diff options
context:
space:
mode:
authorElliot Lee <sopwith@src.gnome.org>2000-05-31 21:50:38 +0000
committerElliot Lee <sopwith@src.gnome.org>2000-05-31 21:50:38 +0000
commitc4962116760783afa572f01ee532addecb359e98 (patch)
treecba684a9e2b38430e9493e1b44878ca455e4c1c3 /gdk/linux-fb/gdkim-fb.c
parent85e7a89b132cf3bb299c876fc340ab0ce8fbd7d3 (diff)
downloadgtk+-c4962116760783afa572f01ee532addecb359e98.tar.gz
Put it into CVS.
Put it into CVS.
Diffstat (limited to 'gdk/linux-fb/gdkim-fb.c')
-rw-r--r--gdk/linux-fb/gdkim-fb.c242
1 files changed, 242 insertions, 0 deletions
diff --git a/gdk/linux-fb/gdkim-fb.c b/gdk/linux-fb/gdkim-fb.c
new file mode 100644
index 0000000000..05da53fc48
--- /dev/null
+++ b/gdk/linux-fb/gdkim-fb.c
@@ -0,0 +1,242 @@
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ */
+
+/*
+ * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS
+ * file for a list of people on the GTK+ Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
+#include "gdki18n.h"
+#include "gdkinternals.h"
+#include "gdkprivate-fb.h"
+
+#if HAVE_CONFIG_H
+# include <config.h>
+# if STDC_HEADERS
+# include <string.h>
+# endif
+#endif
+
+#include <locale.h>
+
+/* If this variable is FALSE, it indicates that we should
+ * avoid trying to use multibyte conversion functions and
+ * assume everything is 1-byte per character
+ */
+static gboolean gdk_use_mb;
+
+/*
+ *--------------------------------------------------------------
+ * gdk_set_locale
+ *
+ * Arguments:
+ *
+ * Results:
+ *
+ * Side effects:
+ *
+ *--------------------------------------------------------------
+ */
+
+gchar*
+gdk_set_locale (void)
+{
+ wchar_t result;
+ gchar *current_locale;
+
+ gdk_use_mb = FALSE;
+
+ if (!setlocale (LC_ALL,""))
+ g_warning ("locale not supported by C library");
+
+ current_locale = setlocale (LC_ALL, NULL);
+
+ if ((strcmp (current_locale, "C")) && (strcmp (current_locale, "POSIX")))
+ {
+ gdk_use_mb = TRUE;
+
+#ifndef X_LOCALE
+ /* Detect GNU libc, where mb == UTF8. Not useful unless it's
+ * really a UTF8 locale. The below still probably will
+ * screw up on Greek, Cyrillic, etc, encoded as UTF8.
+ */
+
+ if ((MB_CUR_MAX == 2) &&
+ (mbstowcs (&result, "\xdd\xa5", 1) > 0) &&
+ result == 0x765)
+ {
+ if ((strlen (current_locale) < 4) ||
+ g_strcasecmp (current_locale + strlen(current_locale) - 4, "utf8"))
+ gdk_use_mb = FALSE;
+ }
+#endif /* X_LOCALE */
+ }
+
+ GDK_NOTE (MISC,
+ g_message ("%s multi-byte string functions.",
+ gdk_use_mb ? "Using" : "Not using"));
+
+ return current_locale;
+}
+
+void
+gdk_im_begin (GdkIC *ic, GdkWindow* window)
+{
+}
+
+void
+gdk_im_end (void)
+{
+}
+
+GdkIMStyle
+gdk_im_decide_style (GdkIMStyle supported_style)
+{
+ return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
+}
+
+GdkIMStyle
+gdk_im_set_best_style (GdkIMStyle style)
+{
+ return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
+}
+
+gint
+gdk_im_ready (void)
+{
+ return FALSE;
+}
+
+gint
+gdk_im_open(void)
+{
+ return TRUE;
+}
+
+void
+gdk_im_close(void)
+{
+}
+
+GdkIC *
+gdk_ic_new (GdkICAttr *attr, GdkICAttributesType mask)
+{
+ return NULL;
+}
+
+void
+gdk_ic_destroy (GdkIC *ic)
+{
+}
+
+GdkIMStyle
+gdk_ic_get_style (GdkIC *ic)
+{
+ return GDK_IM_PREEDIT_NONE | GDK_IM_STATUS_NONE;
+}
+
+void
+gdk_ic_set_values (GdkIC *ic, ...)
+{
+}
+
+void
+gdk_ic_get_values (GdkIC *ic, ...)
+{
+}
+
+GdkICAttributesType
+gdk_ic_set_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
+{
+ return 0;
+}
+
+GdkICAttributesType
+gdk_ic_get_attr (GdkIC *ic, GdkICAttr *attr, GdkICAttributesType mask)
+{
+ return 0;
+}
+
+GdkEventMask
+gdk_ic_get_events (GdkIC *ic)
+{
+ return 0;
+}
+
+/*
+ * gdk_wcstombs
+ *
+ * Returns a multi-byte string converted from the specified array
+ * of wide characters. The string is newly allocated. The array of
+ * wide characters must be null-terminated. If the conversion is
+ * failed, it returns NULL.
+ */
+gchar *
+gdk_wcstombs (const GdkWChar *src)
+{
+ gchar *mbstr;
+
+ gint length = 0;
+ gint i;
+
+ while (src[length] != 0)
+ length++;
+
+ mbstr = g_new (gchar, length + 1);
+
+ for (i=0; i<length+1; i++)
+ mbstr[i] = src[i];
+
+ return mbstr;
+}
+
+/*
+ * gdk_mbstowcs
+ *
+ * Converts the specified string into wide characters, and, returns the
+ * number of wide characters written. The string 'src' must be
+ * null-terminated. If the conversion is failed, it returns -1.
+ */
+gint
+gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
+{
+ gint i;
+
+ for (i=0; i<dest_max && src[i]; i++)
+ dest[i] = src[i];
+
+ return i;
+}
+
+void
+gdk_ic_cleanup(void)
+{
+}
+
+GdkICAttr* gdk_ic_attr_new (void)
+{
+ return NULL;
+}
+
+void
+gdk_ic_attr_destroy (GdkICAttr *attr)
+{
+}