summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/gtkui/Makefile.am10
-rw-r--r--plugins/gtkui/ddbcellrenderertextmultiline.c322
-rw-r--r--plugins/gtkui/ddbcellrenderertextmultiline.h68
-rw-r--r--plugins/gtkui/ddbcellrenderertextmultiline.vala118
-rw-r--r--plugins/gtkui/ddbequalizer.h23
-rw-r--r--plugins/gtkui/ddbseekbar.h29
-rw-r--r--plugins/gtkui/gdk-keysyms.vapi2198
-rw-r--r--plugins/gtkui/trkproperties.c4
8 files changed, 2714 insertions, 58 deletions
diff --git a/plugins/gtkui/Makefile.am b/plugins/gtkui/Makefile.am
index 775dfca4..8212e1f2 100644
--- a/plugins/gtkui/Makefile.am
+++ b/plugins/gtkui/Makefile.am
@@ -2,18 +2,18 @@ if HAVE_GTKUI
gtkuidir = $(libdir)/$(PACKAGE)
pkglib_LTLIBRARIES = gtkui.la
-gtkui_VALASOURCES = ddbequalizer.vala ddbseekbar.vala
-gtkui_VALABUILTSOURCES = $(gtkui_VALASOURCES:.vala=.c) ddbequalizer.h ddbseekbar.h
+gtkui_VALASOURCES = ddbequalizer.vala ddbseekbar.vala ddbcellrenderertextmultiline.vala
+gtkui_VALABUILTSOURCES = $(gtkui_VALASOURCES:.vala=.c) ddbequalizer.h ddbseekbar.h ddbcellrenderertextmultiline.h
if MAINTAINER_MODE
BUILT_SOURCES = vala.stamp
vala.stamp: $(gtkui_VALASOURCES)
- $(VALAC) -C -H ddbequalizer.h --library ddbequalizer gtkui.vapi --pkg=gtk+-2.0 $^
- $(VALAC) -C -H ddbseekbar.h --library ddbseekbar gtkui.vapi --pkg=gtk+-2.0 $^
+ $(VALAC) -C -H ddbcellrenderertextmultiline.h --library ddbcellrenderertextmultiline --pkg=gtk+-2.0 gdk-keysyms.vapi ddbcellrenderertextmultiline.vala
+ $(VALAC) -C -H ddbequalizer.h --library ddbequalizer gtkui.vapi --pkg=gtk+-2.0 ddbequalizer.vala
+ $(VALAC) -C -H ddbseekbar.h --library ddbseekbar gtkui.vapi --pkg=gtk+-2.0 ddbseekbar.vala
touch $@
endif
-
gtkui_la_SOURCES = $(gtkui_VALABUILTSOURCES)\
gtkui.c gtkui.h\
callbacks.c interface.c support.c callbacks.h interface.h support.h\
diff --git a/plugins/gtkui/ddbcellrenderertextmultiline.c b/plugins/gtkui/ddbcellrenderertextmultiline.c
new file mode 100644
index 00000000..f9e9c43a
--- /dev/null
+++ b/plugins/gtkui/ddbcellrenderertextmultiline.c
@@ -0,0 +1,322 @@
+/* ddbcellrenderertextmultiline.c generated by valac, the Vala compiler
+ * generated from ddbcellrenderertextmultiline.vala, do not modify */
+
+/*
+ DeaDBeeF - ultimate music player for GNU/Linux systems with X11
+ Copyright (C) 2009-2010 Alexey Yakovenko <waker@users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <gdk/gdkkeysyms.h>
+#include <gdk/gdk.h>
+
+
+#define DDB_TYPE_CELL_EDITABLE_TEXT_VIEW (ddb_cell_editable_text_view_get_type ())
+#define DDB_CELL_EDITABLE_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextView))
+#define DDB_CELL_EDITABLE_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextViewClass))
+#define DDB_IS_CELL_EDITABLE_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW))
+#define DDB_IS_CELL_EDITABLE_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW))
+#define DDB_CELL_EDITABLE_TEXT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextViewClass))
+
+typedef struct _DdbCellEditableTextView DdbCellEditableTextView;
+typedef struct _DdbCellEditableTextViewClass DdbCellEditableTextViewClass;
+typedef struct _DdbCellEditableTextViewPrivate DdbCellEditableTextViewPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE (ddb_cell_renderer_text_multiline_get_type ())
+#define DDB_CELL_RENDERER_TEXT_MULTILINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultiline))
+#define DDB_CELL_RENDERER_TEXT_MULTILINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultilineClass))
+#define DDB_IS_CELL_RENDERER_TEXT_MULTILINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE))
+#define DDB_IS_CELL_RENDERER_TEXT_MULTILINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE))
+#define DDB_CELL_RENDERER_TEXT_MULTILINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultilineClass))
+
+typedef struct _DdbCellRendererTextMultiline DdbCellRendererTextMultiline;
+typedef struct _DdbCellRendererTextMultilineClass DdbCellRendererTextMultilineClass;
+typedef struct _DdbCellRendererTextMultilinePrivate DdbCellRendererTextMultilinePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+struct _DdbCellEditableTextView {
+ GtkTextView parent_instance;
+ DdbCellEditableTextViewPrivate * priv;
+ gboolean editing_canceled;
+ char* tree_path;
+};
+
+struct _DdbCellEditableTextViewClass {
+ GtkTextViewClass parent_class;
+};
+
+struct _DdbCellRendererTextMultiline {
+ GtkCellRendererText parent_instance;
+ DdbCellRendererTextMultilinePrivate * priv;
+};
+
+struct _DdbCellRendererTextMultilineClass {
+ GtkCellRendererTextClass parent_class;
+};
+
+struct _DdbCellRendererTextMultilinePrivate {
+ DdbCellEditableTextView* entry;
+ gulong focus_out_id;
+};
+
+
+static gpointer ddb_cell_editable_text_view_parent_class = NULL;
+static GtkCellEditableIface* ddb_cell_editable_text_view_gtk_cell_editable_parent_iface = NULL;
+static gpointer ddb_cell_renderer_text_multiline_parent_class = NULL;
+
+GType ddb_cell_editable_text_view_get_type (void);
+enum {
+ DDB_CELL_EDITABLE_TEXT_VIEW_DUMMY_PROPERTY
+};
+static gboolean ddb_cell_editable_text_view_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static void ddb_cell_editable_text_view_real_start_editing (GtkCellEditable* base, GdkEvent* event);
+DdbCellEditableTextView* ddb_cell_editable_text_view_new (void);
+DdbCellEditableTextView* ddb_cell_editable_text_view_construct (GType object_type);
+static void ddb_cell_editable_text_view_finalize (GObject* obj);
+GType ddb_cell_renderer_text_multiline_get_type (void);
+#define DDB_CELL_RENDERER_TEXT_MULTILINE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultilinePrivate))
+enum {
+ DDB_CELL_RENDERER_TEXT_MULTILINE_DUMMY_PROPERTY
+};
+static void ddb_cell_renderer_text_multiline_gtk_cell_renderer_text_editing_done (DdbCellEditableTextView* entry, DdbCellRendererTextMultiline* _self_);
+static gboolean ddb_cell_renderer_text_multiline_gtk_cell_renderer_focus_out_event (DdbCellEditableTextView* entry, GdkEvent* event, DdbCellRendererTextMultiline* _self_);
+static GtkCellEditable* ddb_cell_renderer_text_multiline_real_start_editing (GtkCellRenderer* base, GdkEvent* event, GtkWidget* widget, const char* path, GdkRectangle* background_area, GdkRectangle* cell_area, GtkCellRendererState flags);
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_new (void);
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_construct (GType object_type);
+static void ddb_cell_renderer_text_multiline_finalize (GObject* obj);
+
+
+
+static gboolean ddb_cell_editable_text_view_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ DdbCellEditableTextView * self;
+ gboolean result = FALSE;
+ gboolean res;
+ self = (DdbCellEditableTextView*) base;
+ fprintf (stdout, "key_press_event\n");
+ res = TRUE;
+ if ((*event).keyval == GDK_Return) {
+ if (((*event).state & GDK_CONTROL_MASK) != 0) {
+ res = GTK_WIDGET_CLASS (ddb_cell_editable_text_view_parent_class)->key_press_event ((GtkWidget*) GTK_TEXT_VIEW (self), event);
+ } else {
+ gtk_cell_editable_editing_done ((GtkCellEditable*) self);
+ gtk_cell_editable_remove_widget ((GtkCellEditable*) self);
+ result = TRUE;
+ return result;
+ }
+ } else {
+ if ((*event).keyval == GDK_Escape) {
+ self->editing_canceled = TRUE;
+ gtk_cell_editable_editing_done ((GtkCellEditable*) self);
+ gtk_cell_editable_remove_widget ((GtkCellEditable*) self);
+ result = TRUE;
+ return result;
+ } else {
+ res = GTK_WIDGET_CLASS (ddb_cell_editable_text_view_parent_class)->key_press_event ((GtkWidget*) GTK_TEXT_VIEW (self), event);
+ }
+ }
+ result = res;
+ return result;
+}
+
+
+static void ddb_cell_editable_text_view_real_start_editing (GtkCellEditable* base, GdkEvent* event) {
+ DdbCellEditableTextView * self;
+ self = (DdbCellEditableTextView*) base;
+ g_return_if_fail (event != NULL);
+}
+
+
+DdbCellEditableTextView* ddb_cell_editable_text_view_construct (GType object_type) {
+ DdbCellEditableTextView * self;
+ self = g_object_newv (object_type, 0, NULL);
+ return self;
+}
+
+
+DdbCellEditableTextView* ddb_cell_editable_text_view_new (void) {
+ return ddb_cell_editable_text_view_construct (DDB_TYPE_CELL_EDITABLE_TEXT_VIEW);
+}
+
+
+static void ddb_cell_editable_text_view_class_init (DdbCellEditableTextViewClass * klass) {
+ ddb_cell_editable_text_view_parent_class = g_type_class_peek_parent (klass);
+ GTK_WIDGET_CLASS (klass)->key_press_event = ddb_cell_editable_text_view_real_key_press_event;
+ G_OBJECT_CLASS (klass)->finalize = ddb_cell_editable_text_view_finalize;
+}
+
+
+static void ddb_cell_editable_text_view_gtk_cell_editable_interface_init (GtkCellEditableIface * iface) {
+ ddb_cell_editable_text_view_gtk_cell_editable_parent_iface = g_type_interface_peek_parent (iface);
+ iface->start_editing = ddb_cell_editable_text_view_real_start_editing;
+}
+
+
+static void ddb_cell_editable_text_view_instance_init (DdbCellEditableTextView * self) {
+ self->editing_canceled = FALSE;
+}
+
+
+static void ddb_cell_editable_text_view_finalize (GObject* obj) {
+ DdbCellEditableTextView * self;
+ self = DDB_CELL_EDITABLE_TEXT_VIEW (obj);
+ _g_free0 (self->tree_path);
+ G_OBJECT_CLASS (ddb_cell_editable_text_view_parent_class)->finalize (obj);
+}
+
+
+GType ddb_cell_editable_text_view_get_type (void) {
+ static volatile gsize ddb_cell_editable_text_view_type_id__volatile = 0;
+ if (g_once_init_enter (&ddb_cell_editable_text_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DdbCellEditableTextViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ddb_cell_editable_text_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DdbCellEditableTextView), 0, (GInstanceInitFunc) ddb_cell_editable_text_view_instance_init, NULL };
+ static const GInterfaceInfo gtk_cell_editable_info = { (GInterfaceInitFunc) ddb_cell_editable_text_view_gtk_cell_editable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType ddb_cell_editable_text_view_type_id;
+ ddb_cell_editable_text_view_type_id = g_type_register_static (GTK_TYPE_TEXT_VIEW, "DdbCellEditableTextView", &g_define_type_info, 0);
+ g_type_add_interface_static (ddb_cell_editable_text_view_type_id, GTK_TYPE_CELL_EDITABLE, &gtk_cell_editable_info);
+ g_once_init_leave (&ddb_cell_editable_text_view_type_id__volatile, ddb_cell_editable_text_view_type_id);
+ }
+ return ddb_cell_editable_text_view_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
+static void ddb_cell_renderer_text_multiline_gtk_cell_renderer_text_editing_done (DdbCellEditableTextView* entry, DdbCellRendererTextMultiline* _self_) {
+ GtkTextBuffer* buf;
+ GtkTextIter begin = {0};
+ GtkTextIter end = {0};
+ char* new_text;
+ g_return_if_fail (entry != NULL);
+ g_return_if_fail (_self_ != NULL);
+ g_signal_handler_disconnect ((GObject*) entry, _self_->priv->focus_out_id);
+ gtk_cell_renderer_stop_editing ((GtkCellRenderer*) _self_, entry->editing_canceled);
+ buf = _g_object_ref0 (gtk_text_view_get_buffer ((GtkTextView*) entry));
+ gtk_text_buffer_get_iter_at_offset (buf, &begin, 0);
+ gtk_text_buffer_get_iter_at_offset (buf, &end, -1);
+ new_text = g_strdup (gtk_text_buffer_get_text (buf, &begin, &end, TRUE));
+ g_signal_emit_by_name ((GtkCellRendererText*) _self_, "edited", entry->tree_path, new_text);
+ _g_object_unref0 (buf);
+ _g_free0 (new_text);
+}
+
+
+static gboolean ddb_cell_renderer_text_multiline_gtk_cell_renderer_focus_out_event (DdbCellEditableTextView* entry, GdkEvent* event, DdbCellRendererTextMultiline* _self_) {
+ gboolean result = FALSE;
+ g_return_val_if_fail (entry != NULL, FALSE);
+ g_return_val_if_fail (event != NULL, FALSE);
+ g_return_val_if_fail (_self_ != NULL, FALSE);
+ fprintf (stdout, "focus_out_event\n");
+ entry->editing_canceled = TRUE;
+ gtk_cell_editable_remove_widget ((GtkCellEditable*) entry);
+ result = FALSE;
+ return result;
+}
+
+
+static GtkCellEditable* ddb_cell_renderer_text_multiline_real_start_editing (GtkCellRenderer* base, GdkEvent* event, GtkWidget* widget, const char* path, GdkRectangle* background_area, GdkRectangle* cell_area, GtkCellRendererState flags) {
+ DdbCellRendererTextMultiline * self;
+ GtkCellEditable* result = NULL;
+ gboolean _tmp0_;
+ DdbCellEditableTextView* _tmp1_;
+ char* _tmp2_;
+ GtkTextBuffer* buf;
+ char* _tmp4_;
+ char* _tmp3_ = NULL;
+ gboolean _tmp5_;
+ self = (DdbCellRendererTextMultiline*) base;
+ g_return_val_if_fail (event != NULL, NULL);
+ g_return_val_if_fail (widget != NULL, NULL);
+ g_return_val_if_fail (path != NULL, NULL);
+ if (!(g_object_get ((GtkCellRendererText*) self, "editable", &_tmp0_, NULL), _tmp0_)) {
+ result = GTK_CELL_EDITABLE (NULL);
+ return result;
+ }
+ self->priv->entry = (_tmp1_ = g_object_ref_sink (ddb_cell_editable_text_view_new ()), _g_object_unref0 (self->priv->entry), _tmp1_);
+ self->priv->entry->tree_path = (_tmp2_ = g_strdup (path), _g_free0 (self->priv->entry->tree_path), _tmp2_);
+ buf = gtk_text_buffer_new (NULL);
+ if ((_tmp5_ = (_tmp4_ = (g_object_get ((GtkCellRendererText*) self, "text", &_tmp3_, NULL), _tmp3_)) != NULL, _g_free0 (_tmp4_), _tmp5_)) {
+ char* _tmp7_;
+ char* _tmp6_ = NULL;
+ gtk_text_buffer_set_text (buf, _tmp7_ = (g_object_get ((GtkCellRendererText*) self, "text", &_tmp6_, NULL), _tmp6_), -1);
+ _g_free0 (_tmp7_);
+ }
+ gtk_text_view_set_buffer ((GtkTextView*) self->priv->entry, buf);
+ g_signal_connect (self->priv->entry, "editing-done", (GCallback) ddb_cell_renderer_text_multiline_gtk_cell_renderer_text_editing_done, self);
+ self->priv->focus_out_id = g_signal_connect_after (self->priv->entry, "focus-out-event", (GCallback) ddb_cell_renderer_text_multiline_gtk_cell_renderer_focus_out_event, self);
+ gtk_widget_set_size_request ((GtkWidget*) self->priv->entry, (*cell_area).width, (*cell_area).height);
+ gtk_widget_show ((GtkWidget*) self->priv->entry);
+ result = GTK_CELL_EDITABLE (self->priv->entry);
+ _g_object_unref0 (buf);
+ return result;
+}
+
+
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_construct (GType object_type) {
+ DdbCellRendererTextMultiline * self;
+ self = g_object_newv (object_type, 0, NULL);
+ return self;
+}
+
+
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_new (void) {
+ return ddb_cell_renderer_text_multiline_construct (DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE);
+}
+
+
+static void ddb_cell_renderer_text_multiline_class_init (DdbCellRendererTextMultilineClass * klass) {
+ ddb_cell_renderer_text_multiline_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (DdbCellRendererTextMultilinePrivate));
+ GTK_CELL_RENDERER_CLASS (klass)->start_editing = ddb_cell_renderer_text_multiline_real_start_editing;
+ G_OBJECT_CLASS (klass)->finalize = ddb_cell_renderer_text_multiline_finalize;
+}
+
+
+static void ddb_cell_renderer_text_multiline_instance_init (DdbCellRendererTextMultiline * self) {
+ self->priv = DDB_CELL_RENDERER_TEXT_MULTILINE_GET_PRIVATE (self);
+}
+
+
+static void ddb_cell_renderer_text_multiline_finalize (GObject* obj) {
+ DdbCellRendererTextMultiline * self;
+ self = DDB_CELL_RENDERER_TEXT_MULTILINE (obj);
+ _g_object_unref0 (self->priv->entry);
+ G_OBJECT_CLASS (ddb_cell_renderer_text_multiline_parent_class)->finalize (obj);
+}
+
+
+GType ddb_cell_renderer_text_multiline_get_type (void) {
+ static volatile gsize ddb_cell_renderer_text_multiline_type_id__volatile = 0;
+ if (g_once_init_enter (&ddb_cell_renderer_text_multiline_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DdbCellRendererTextMultilineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ddb_cell_renderer_text_multiline_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DdbCellRendererTextMultiline), 0, (GInstanceInitFunc) ddb_cell_renderer_text_multiline_instance_init, NULL };
+ GType ddb_cell_renderer_text_multiline_type_id;
+ ddb_cell_renderer_text_multiline_type_id = g_type_register_static (GTK_TYPE_CELL_RENDERER_TEXT, "DdbCellRendererTextMultiline", &g_define_type_info, 0);
+ g_once_init_leave (&ddb_cell_renderer_text_multiline_type_id__volatile, ddb_cell_renderer_text_multiline_type_id);
+ }
+ return ddb_cell_renderer_text_multiline_type_id__volatile;
+}
+
+
+
+
diff --git a/plugins/gtkui/ddbcellrenderertextmultiline.h b/plugins/gtkui/ddbcellrenderertextmultiline.h
new file mode 100644
index 00000000..128d5455
--- /dev/null
+++ b/plugins/gtkui/ddbcellrenderertextmultiline.h
@@ -0,0 +1,68 @@
+/* ddbcellrenderertextmultiline.h generated by valac, the Vala compiler, do not modify */
+
+
+#ifndef __DDBCELLRENDERERTEXTMULTILINE_H__
+#define __DDBCELLRENDERERTEXTMULTILINE_H__
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+
+G_BEGIN_DECLS
+
+
+#define DDB_TYPE_CELL_EDITABLE_TEXT_VIEW (ddb_cell_editable_text_view_get_type ())
+#define DDB_CELL_EDITABLE_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextView))
+#define DDB_CELL_EDITABLE_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextViewClass))
+#define DDB_IS_CELL_EDITABLE_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW))
+#define DDB_IS_CELL_EDITABLE_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW))
+#define DDB_CELL_EDITABLE_TEXT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_CELL_EDITABLE_TEXT_VIEW, DdbCellEditableTextViewClass))
+
+typedef struct _DdbCellEditableTextView DdbCellEditableTextView;
+typedef struct _DdbCellEditableTextViewClass DdbCellEditableTextViewClass;
+typedef struct _DdbCellEditableTextViewPrivate DdbCellEditableTextViewPrivate;
+
+#define DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE (ddb_cell_renderer_text_multiline_get_type ())
+#define DDB_CELL_RENDERER_TEXT_MULTILINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultiline))
+#define DDB_CELL_RENDERER_TEXT_MULTILINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultilineClass))
+#define DDB_IS_CELL_RENDERER_TEXT_MULTILINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE))
+#define DDB_IS_CELL_RENDERER_TEXT_MULTILINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE))
+#define DDB_CELL_RENDERER_TEXT_MULTILINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_CELL_RENDERER_TEXT_MULTILINE, DdbCellRendererTextMultilineClass))
+
+typedef struct _DdbCellRendererTextMultiline DdbCellRendererTextMultiline;
+typedef struct _DdbCellRendererTextMultilineClass DdbCellRendererTextMultilineClass;
+typedef struct _DdbCellRendererTextMultilinePrivate DdbCellRendererTextMultilinePrivate;
+
+struct _DdbCellEditableTextView {
+ GtkTextView parent_instance;
+ DdbCellEditableTextViewPrivate * priv;
+ gboolean editing_canceled;
+ char* tree_path;
+};
+
+struct _DdbCellEditableTextViewClass {
+ GtkTextViewClass parent_class;
+};
+
+struct _DdbCellRendererTextMultiline {
+ GtkCellRendererText parent_instance;
+ DdbCellRendererTextMultilinePrivate * priv;
+};
+
+struct _DdbCellRendererTextMultilineClass {
+ GtkCellRendererTextClass parent_class;
+};
+
+
+GType ddb_cell_editable_text_view_get_type (void);
+DdbCellEditableTextView* ddb_cell_editable_text_view_new (void);
+DdbCellEditableTextView* ddb_cell_editable_text_view_construct (GType object_type);
+GType ddb_cell_renderer_text_multiline_get_type (void);
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_new (void);
+DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_construct (GType object_type);
+
+
+G_END_DECLS
+
+#endif
diff --git a/plugins/gtkui/ddbcellrenderertextmultiline.vala b/plugins/gtkui/ddbcellrenderertextmultiline.vala
new file mode 100644
index 00000000..c19a1297
--- /dev/null
+++ b/plugins/gtkui/ddbcellrenderertextmultiline.vala
@@ -0,0 +1,118 @@
+/*
+ DeaDBeeF - ultimate music player for GNU/Linux systems with X11
+ Copyright (C) 2009-2010 Alexey Yakovenko <waker@users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+namespace Ddb {
+
+ public class CellEditableTextView : Gtk.CellEditable, Gtk.TextView {
+ public bool editing_canceled = false;
+ public string tree_path;
+
+// private bool on_key_press_event (Gdk.EventKey event) {
+ private override bool key_press_event (Gdk.EventKey event) {
+ stdout.printf ("key_press_event\n");
+ bool res = true;
+ if (event.keyval == Gdk.KeySyms.Return) {
+ if ((event.state & Gdk.ModifierType.CONTROL_MASK) != 0) {
+ res = base.key_press_event (event);
+ }
+ else {
+ editing_done ();
+ remove_widget ();
+ return true;
+ }
+ }
+ else if (event.keyval == Gdk.KeySyms.Escape) {
+ editing_canceled = true;
+ editing_done ();
+ remove_widget ();
+ return true;
+ }
+ else {
+ res = base.key_press_event (event);
+ }
+ /**** seems like auto-adjusting height is impossible when inside of cellrenderer
+ // test buffer height
+ Gtk.TextBuffer buf = get_buffer ();
+ Gtk.TextIter begin, end;
+ buf.get_iter_at_offset (out begin, 0);
+ buf.get_iter_at_offset (out end, -1);
+ int y_begin, y_end;
+ int h_begin, h_end;
+ get_line_yrange (begin, out y_begin, out h_begin);
+ get_line_yrange (end, out y_end, out h_end);
+ stdout.printf ("new y: %d %d, %d %d\n", y_begin, h_begin, y_end, h_end);
+ if (allocation.height < y_end) {
+ stdout.printf ("set_size_request %d\n", y_end + h_end);
+ set_size_request (-1, y_end + h_end);
+ }
+ */
+
+ return res;
+ }
+
+ public void start_editing (Gdk.Event event) {
+ // override keypress
+// key_press_event.connect (on_key_press_event);
+ }
+ }
+
+ public class CellRendererTextMultiline : Gtk.CellRendererText
+ {
+ private CellEditableTextView entry;
+ private ulong focus_out_id;
+
+ private static void gtk_cell_renderer_text_editing_done (CellEditableTextView entry, CellRendererTextMultiline self) {
+ entry.disconnect (self.focus_out_id);
+ self.stop_editing (entry.editing_canceled);
+ Gtk.TextBuffer buf = entry.get_buffer ();
+ Gtk.TextIter begin, end;
+ buf.get_iter_at_offset (out begin, 0);
+ buf.get_iter_at_offset (out end, -1);
+ string new_text = buf.get_text (begin, end, true);
+ self.edited (entry.tree_path, new_text);
+ }
+
+ private static bool gtk_cell_renderer_focus_out_event (CellEditableTextView entry, Gdk.Event event, CellRendererTextMultiline self) {
+ stdout.printf ("focus_out_event\n");
+ entry.editing_canceled = true;
+ entry.remove_widget ();
+ return false;
+ }
+
+
+ public override unowned Gtk.CellEditable start_editing (Gdk.Event event, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags) {
+ if (!editable) {
+ return (Gtk.CellEditable)null;
+ }
+ entry = new CellEditableTextView ();
+ entry.tree_path = path;
+ Gtk.TextBuffer buf = new Gtk.TextBuffer (null);
+ if (text != null) {
+ buf.set_text (text, -1);
+ }
+ entry.set_buffer (buf);
+ Signal.connect (entry, "editing-done", (GLib.Callback)gtk_cell_renderer_text_editing_done, this);
+ focus_out_id = Signal.connect_after (entry, "focus-out-event", (GLib.Callback)gtk_cell_renderer_focus_out_event, this);
+ entry.set_size_request (cell_area.width, cell_area.height);
+ entry.show ();
+
+ return (Gtk.CellEditable)entry;
+ }
+ }
+}
diff --git a/plugins/gtkui/ddbequalizer.h b/plugins/gtkui/ddbequalizer.h
index 0f51f6a8..1b843208 100644
--- a/plugins/gtkui/ddbequalizer.h
+++ b/plugins/gtkui/ddbequalizer.h
@@ -23,17 +23,6 @@ typedef struct _DdbEqualizer DdbEqualizer;
typedef struct _DdbEqualizerClass DdbEqualizerClass;
typedef struct _DdbEqualizerPrivate DdbEqualizerPrivate;
-#define DDB_TYPE_SEEKBAR (ddb_seekbar_get_type ())
-#define DDB_SEEKBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_SEEKBAR, DdbSeekbar))
-#define DDB_SEEKBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_SEEKBAR, DdbSeekbarClass))
-#define DDB_IS_SEEKBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_SEEKBAR))
-#define DDB_IS_SEEKBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_SEEKBAR))
-#define DDB_SEEKBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_SEEKBAR, DdbSeekbarClass))
-
-typedef struct _DdbSeekbar DdbSeekbar;
-typedef struct _DdbSeekbarClass DdbSeekbarClass;
-typedef struct _DdbSeekbarPrivate DdbSeekbarPrivate;
-
struct _DdbEqualizer {
GtkWidget parent_instance;
DdbEqualizerPrivate * priv;
@@ -43,15 +32,6 @@ struct _DdbEqualizerClass {
GtkWidgetClass parent_class;
};
-struct _DdbSeekbar {
- GtkWidget parent_instance;
- DdbSeekbarPrivate * priv;
-};
-
-struct _DdbSeekbarClass {
- GtkWidgetClass parent_class;
-};
-
GType ddb_equalizer_get_type (void);
void ddb_equalizer_set_band (DdbEqualizer* self, gint band, double v);
@@ -60,9 +40,6 @@ void ddb_equalizer_set_preamp (DdbEqualizer* self, double v);
double ddb_equalizer_get_preamp (DdbEqualizer* self);
DdbEqualizer* ddb_equalizer_new (void);
DdbEqualizer* ddb_equalizer_construct (GType object_type);
-GType ddb_seekbar_get_type (void);
-DdbSeekbar* ddb_seekbar_new (void);
-DdbSeekbar* ddb_seekbar_construct (GType object_type);
G_END_DECLS
diff --git a/plugins/gtkui/ddbseekbar.h b/plugins/gtkui/ddbseekbar.h
index 023aac93..28c69cd3 100644
--- a/plugins/gtkui/ddbseekbar.h
+++ b/plugins/gtkui/ddbseekbar.h
@@ -6,23 +6,10 @@
#include <glib.h>
#include <gtk/gtk.h>
-#include <float.h>
-#include <math.h>
G_BEGIN_DECLS
-#define DDB_TYPE_EQUALIZER (ddb_equalizer_get_type ())
-#define DDB_EQUALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_EQUALIZER, DdbEqualizer))
-#define DDB_EQUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_EQUALIZER, DdbEqualizerClass))
-#define DDB_IS_EQUALIZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DDB_TYPE_EQUALIZER))
-#define DDB_IS_EQUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DDB_TYPE_EQUALIZER))
-#define DDB_EQUALIZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DDB_TYPE_EQUALIZER, DdbEqualizerClass))
-
-typedef struct _DdbEqualizer DdbEqualizer;
-typedef struct _DdbEqualizerClass DdbEqualizerClass;
-typedef struct _DdbEqualizerPrivate DdbEqualizerPrivate;
-
#define DDB_TYPE_SEEKBAR (ddb_seekbar_get_type ())
#define DDB_SEEKBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DDB_TYPE_SEEKBAR, DdbSeekbar))
#define DDB_SEEKBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DDB_TYPE_SEEKBAR, DdbSeekbarClass))
@@ -34,15 +21,6 @@ typedef struct _DdbSeekbar DdbSeekbar;
typedef struct _DdbSeekbarClass DdbSeekbarClass;
typedef struct _DdbSeekbarPrivate DdbSeekbarPrivate;
-struct _DdbEqualizer {
- GtkWidget parent_instance;
- DdbEqualizerPrivate * priv;
-};
-
-struct _DdbEqualizerClass {
- GtkWidgetClass parent_class;
-};
-
struct _DdbSeekbar {
GtkWidget parent_instance;
DdbSeekbarPrivate * priv;
@@ -53,13 +31,6 @@ struct _DdbSeekbarClass {
};
-GType ddb_equalizer_get_type (void);
-void ddb_equalizer_set_band (DdbEqualizer* self, gint band, double v);
-double ddb_equalizer_get_band (DdbEqualizer* self, gint band);
-void ddb_equalizer_set_preamp (DdbEqualizer* self, double v);
-double ddb_equalizer_get_preamp (DdbEqualizer* self);
-DdbEqualizer* ddb_equalizer_new (void);
-DdbEqualizer* ddb_equalizer_construct (GType object_type);
GType ddb_seekbar_get_type (void);
DdbSeekbar* ddb_seekbar_new (void);
DdbSeekbar* ddb_seekbar_construct (GType object_type);
diff --git a/plugins/gtkui/gdk-keysyms.vapi b/plugins/gtkui/gdk-keysyms.vapi
new file mode 100644
index 00000000..48253395
--- /dev/null
+++ b/plugins/gtkui/gdk-keysyms.vapi
@@ -0,0 +1,2198 @@
+/*
+ DeaDBeeF - ultimate music player for GNU/Linux systems with X11
+ Copyright (C) 2009-2010 Alexey Yakovenko <waker@users.sourceforge.net>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+namespace Gdk {
+ [CCode (cprefix = "GDK_", cheader_filename = "gdk/gdkkeysyms.h")]
+ public enum KeySyms {
+ VoidSymbol,
+ BackSpace,
+ Tab,
+ Linefeed,
+ Clear,
+ Return,
+ Pause,
+ Scroll_Lock,
+ Sys_Req,
+ Escape,
+ Delete,
+ Multi_key,
+ Codeinput,
+ SingleCandidate,
+ MultipleCandidate,
+ PreviousCandidate,
+ Kanji,
+ Muhenkan,
+ Henkan_Mode,
+ Henkan,
+ Romaji,
+ Hiragana,
+ Katakana,
+ Hiragana_Katakana,
+ Zenkaku,
+ Hankaku,
+ Zenkaku_Hankaku,
+ Touroku,
+ Massyo,
+ Kana_Lock,
+ Kana_Shift,
+ Eisu_Shift,
+ Eisu_toggle,
+ Kanji_Bangou,
+ Zen_Koho,
+ Mae_Koho,
+ Home,
+ Left,
+ Up,
+ Right,
+ Down,
+ Prior,
+ Page_Up,
+ Next,
+ Page_Down,
+ End,
+ Begin,
+ Select,
+ Print,
+ Execute,
+ Insert,
+ Undo,
+ Redo,
+ Menu,
+ Find,
+ Cancel,
+ Help,
+ Break,
+ Mode_switch,
+ script_switch,
+ Num_Lock,
+ KP_Space,
+ KP_Tab,
+ KP_Enter,
+ KP_F1,
+ KP_F2,
+ KP_F3,
+ KP_F4,
+ KP_Home,
+ KP_Left,
+ KP_Up,
+ KP_Right,
+ KP_Down,
+ KP_Prior,
+ KP_Page_Up,
+ KP_Next,
+ KP_Page_Down,
+ KP_End,
+ KP_Begin,
+ KP_Insert,
+ KP_Delete,
+ KP_Equal,
+ KP_Multiply,
+ KP_Add,
+ KP_Separator,
+ KP_Subtract,
+ KP_Decimal,
+ KP_Divide,
+ KP_0,
+ KP_1,
+ KP_2,
+ KP_3,
+ KP_4,
+ KP_5,
+ KP_6,
+ KP_7,
+ KP_8,
+ KP_9,
+ F1,
+ F2,
+ F3,
+ F4,
+ F5,
+ F6,
+ F7,
+ F8,
+ F9,
+ F10,
+ F11,
+ L1,
+ F12,
+ L2,
+ F13,
+ L3,
+ F14,
+ L4,
+ F15,
+ L5,
+ F16,
+ L6,
+ F17,
+ L7,
+ F18,
+ L8,
+ F19,
+ L9,
+ F20,
+ L10,
+ F21,
+ R1,
+ F22,
+ R2,
+ F23,
+ R3,
+ F24,
+ R4,
+ F25,
+ R5,
+ F26,
+ R6,
+ F27,
+ R7,
+ F28,
+ R8,
+ F29,
+ R9,
+ F30,
+ R10,
+ F31,
+ R11,
+ F32,
+ R12,
+ F33,
+ R13,
+ F34,
+ R14,
+ F35,
+ R15,
+ Shift_L,
+ Shift_R,
+ Control_L,
+ Control_R,
+ Caps_Lock,
+ Shift_Lock,
+ Meta_L,
+ Meta_R,
+ Alt_L,
+ Alt_R,
+ Super_L,
+ Super_R,
+ Hyper_L,
+ Hyper_R,
+ ISO_Lock,
+ ISO_Level2_Latch,
+ ISO_Level3_Shift,
+ ISO_Level3_Latch,
+ ISO_Level3_Lock,
+ ISO_Level5_Shift,
+ ISO_Level5_Latch,
+ ISO_Level5_Lock,
+ ISO_Group_Shift,
+ ISO_Group_Latch,
+ ISO_Group_Lock,
+ ISO_Next_Group,
+ ISO_Next_Group_Lock,
+ ISO_Prev_Group,
+ ISO_Prev_Group_Lock,
+ ISO_First_Group,
+ ISO_First_Group_Lock,
+ ISO_Last_Group,
+ ISO_Last_Group_Lock,
+ ISO_Left_Tab,
+ ISO_Move_Line_Up,
+ ISO_Move_Line_Down,
+ ISO_Partial_Line_Up,
+ ISO_Partial_Line_Down,
+ ISO_Partial_Space_Left,
+ ISO_Partial_Space_Right,
+ ISO_Set_Margin_Left,
+ ISO_Set_Margin_Right,
+ ISO_Release_Margin_Left,
+ ISO_Release_Margin_Right,
+ ISO_Release_Both_Margins,
+ ISO_Fast_Cursor_Left,
+ ISO_Fast_Cursor_Right,
+ ISO_Fast_Cursor_Up,
+ ISO_Fast_Cursor_Down,
+ ISO_Continuous_Underline,
+ ISO_Discontinuous_Underline,
+ ISO_Emphasize,
+ ISO_Center_Object,
+ ISO_Enter,
+ dead_grave,
+ dead_acute,
+ dead_circumflex,
+ dead_tilde,
+ dead_perispomeni,
+ dead_macron,
+ dead_breve,
+ dead_abovedot,
+ dead_diaeresis,
+ dead_abovering,
+ dead_doubleacute,
+ dead_caron,
+ dead_cedilla,
+ dead_ogonek,
+ dead_iota,
+ dead_voiced_sound,
+ dead_semivoiced_sound,
+ dead_belowdot,
+ dead_hook,
+ dead_horn,
+ dead_stroke,
+ dead_abovecomma,
+ dead_psili,
+ dead_abovereversedcomma,
+ dead_dasia,
+ dead_doublegrave,
+ dead_belowring,
+ dead_belowmacron,
+ dead_belowcircumflex,
+ dead_belowtilde,
+ dead_belowbreve,
+ dead_belowdiaeresis,
+ dead_invertedbreve,
+ dead_belowcomma,
+ dead_currency,
+ dead_a,
+ dead_A,
+ dead_e,
+ dead_E,
+ dead_i,
+ dead_I,
+ dead_o,
+ dead_O,
+ dead_u,
+ dead_U,
+ dead_small_schwa,
+ dead_capital_schwa,
+ First_Virtual_Screen,
+ Prev_Virtual_Screen,
+ Next_Virtual_Screen,
+ Last_Virtual_Screen,
+ Terminate_Server,
+ AccessX_Enable,
+ AccessX_Feedback_Enable,
+ RepeatKeys_Enable,
+ SlowKeys_Enable,
+ BounceKeys_Enable,
+ StickyKeys_Enable,
+ MouseKeys_Enable,
+ MouseKeys_Accel_Enable,
+ Overlay1_Enable,
+ Overlay2_Enable,
+ AudibleBell_Enable,
+ Pointer_Left,
+ Pointer_Right,
+ Pointer_Up,
+ Pointer_Down,
+ Pointer_UpLeft,
+ Pointer_UpRight,
+ Pointer_DownLeft,
+ Pointer_DownRight,
+ Pointer_Button_Dflt,
+ Pointer_Button1,
+ Pointer_Button2,
+ Pointer_Button3,
+ Pointer_Button4,
+ Pointer_Button5,
+ Pointer_DblClick_Dflt,
+ Pointer_DblClick1,
+ Pointer_DblClick2,
+ Pointer_DblClick3,
+ Pointer_DblClick4,
+ Pointer_DblClick5,
+ Pointer_Drag_Dflt,
+ Pointer_Drag1,
+ Pointer_Drag2,
+ Pointer_Drag3,
+ Pointer_Drag4,
+ Pointer_Drag5,
+ Pointer_EnableKeys,
+ Pointer_Accelerate,
+ Pointer_DfltBtnNext,
+ Pointer_DfltBtnPrev,
+ 3270_Duplicate,
+ 3270_FieldMark,
+ 3270_Right2,
+ 3270_Left2,
+ 3270_BackTab,
+ 3270_EraseEOF,
+ 3270_EraseInput,
+ 3270_Reset,
+ 3270_Quit,
+ 3270_PA1,
+ 3270_PA2,
+ 3270_PA3,
+ 3270_Test,
+ 3270_Attn,
+ 3270_CursorBlink,
+ 3270_AltCursor,
+ 3270_KeyClick,
+ 3270_Jump,
+ 3270_Ident,
+ 3270_Rule,
+ 3270_Copy,
+ 3270_Play,
+ 3270_Setup,
+ 3270_Record,
+ 3270_ChangeScreen,
+ 3270_DeleteWord,
+ 3270_ExSelect,
+ 3270_CursorSelect,
+ 3270_PrintScreen,
+ 3270_Enter,
+ space,
+ exclam,
+ quotedbl,
+ numbersign,
+ dollar,
+ percent,
+ ampersand,
+ apostrophe,
+ quoteright,
+ parenleft,
+ parenright,
+ asterisk,
+ plus,
+ comma,
+ minus,
+ period,
+ slash,
+ _0,
+ _1,
+ _2,
+ _3,
+ _4,
+ _5,
+ _6,
+ _7,
+ _8,
+ _9,
+ colon,
+ semicolon,
+ less,
+ equal,
+ greater,
+ question,
+ at,
+ A,
+ B,
+ C,
+ D,
+ E,
+ F,
+ G,
+ H,
+ I,
+ J,
+ K,
+ L,
+ M,
+ N,
+ O,
+ P,
+ Q,
+ R,
+ S,
+ T,
+ U,
+ V,
+ W,
+ X,
+ Y,
+ Z,
+ bracketleft,
+ backslash,
+ bracketright,
+ asciicircum,
+ underscore,
+ grave,
+ quoteleft,
+ a,
+ b,
+ c,
+ d,
+ e,
+ f,
+ g,
+ h,
+ i,
+ j,
+ k,
+ l,
+ m,
+ n,
+ o,
+ p,
+ q,
+ r,
+ s,
+ t,
+ u,
+ v,
+ w,
+ x,
+ y,
+ z,
+ braceleft,
+ bar,
+ braceright,
+ asciitilde,
+ nobreakspace,
+ exclamdown,
+ cent,
+ sterling,
+ currency,
+ yen,
+ brokenbar,
+ section,
+ diaeresis,
+ copyright,
+ ordfeminine,
+ guillemotleft,
+ notsign,
+ hyphen,
+ registered,
+ macron,
+ degree,
+ plusminus,
+ twosuperior,
+ threesuperior,
+ acute,
+ mu,
+ paragraph,
+ periodcentered,
+ cedilla,
+ onesuperior,
+ masculine,
+ guillemotright,
+ onequarter,
+ onehalf,
+ threequarters,
+ questiondown,
+ Agrave,
+ Aacute,
+ Acircumflex,
+ Atilde,
+ Adiaeresis,
+ Aring,
+ AE,
+ Ccedilla,
+ Egrave,
+ Eacute,
+ Ecircumflex,
+ Ediaeresis,
+ Igrave,
+ Iacute,
+ Icircumflex,
+ Idiaeresis,
+ ETH,
+ Eth,
+ Ntilde,
+ Ograve,
+ Oacute,
+ Ocircumflex,
+ Otilde,
+ Odiaeresis,
+ multiply,
+ Oslash,
+ Ooblique,
+ Ugrave,
+ Uacute,
+ Ucircumflex,
+ Udiaeresis,
+ Yacute,
+ THORN,
+ Thorn,
+ ssharp,
+ agrave,
+ aacute,
+ acircumflex,
+ atilde,
+ adiaeresis,
+ aring,
+ ae,
+ ccedilla,
+ egrave,
+ eacute,
+ ecircumflex,
+ ediaeresis,
+ igrave,
+ iacute,
+ icircumflex,
+ idiaeresis,
+ eth,
+ ntilde,
+ ograve,
+ oacute,
+ ocircumflex,
+ otilde,
+ odiaeresis,
+ division,
+ oslash,
+ ooblique,
+ ugrave,
+ uacute,
+ ucircumflex,
+ udiaeresis,
+ yacute,
+ thorn,
+ ydiaeresis,
+ Aogonek,
+ breve,
+ Lstroke,
+ Lcaron,
+ Sacute,
+ Scaron,
+ Scedilla,
+ Tcaron,
+ Zacute,
+ Zcaron,
+ Zabovedot,
+ aogonek,
+ ogonek,
+ lstroke,
+ lcaron,
+ sacute,
+ caron,
+ scaron,
+ scedilla,
+ tcaron,
+ zacute,
+ doubleacute,
+ zcaron,
+ zabovedot,
+ Racute,
+ Abreve,
+ Lacute,
+ Cacute,
+ Ccaron,
+ Eogonek,
+ Ecaron,
+ Dcaron,
+ Dstroke,
+ Nacute,
+ Ncaron,
+ Odoubleacute,
+ Rcaron,
+ Uring,
+ Udoubleacute,
+ Tcedilla,
+ racute,
+ abreve,
+ lacute,
+ cacute,
+ ccaron,
+ eogonek,
+ ecaron,
+ dcaron,
+ dstroke,
+ nacute,
+ ncaron,
+ odoubleacute,
+ udoubleacute,
+ rcaron,
+ uring,
+ tcedilla,
+ abovedot,
+ Hstroke,
+ Hcircumflex,
+ Iabovedot,
+ Gbreve,
+ Jcircumflex,
+ hstroke,
+ hcircumflex,
+ idotless,
+ gbreve,
+ jcircumflex,
+ Cabovedot,
+ Ccircumflex,
+ Gabovedot,
+ Gcircumflex,
+ Ubreve,
+ Scircumflex,
+ cabovedot,
+ ccircumflex,
+ gabovedot,
+ gcircumflex,
+ ubreve,
+ scircumflex,
+ kra,
+ kappa,
+ Rcedilla,
+ Itilde,
+ Lcedilla,
+ Emacron,
+ Gcedilla,
+ Tslash,
+ rcedilla,
+ itilde,
+ lcedilla,
+ emacron,
+ gcedilla,
+ tslash,
+ ENG,
+ eng,
+ Amacron,
+ Iogonek,
+ Eabovedot,
+ Imacron,
+ Ncedilla,
+ Omacron,
+ Kcedilla,
+ Uogonek,
+ Utilde,
+ Umacron,
+ amacron,
+ iogonek,
+ eabovedot,
+ imacron,
+ ncedilla,
+ omacron,
+ kcedilla,
+ uogonek,
+ utilde,
+ umacron,
+ Babovedot,
+ babovedot,
+ Dabovedot,
+ Wgrave,
+ Wacute,
+ dabovedot,
+ Ygrave,
+ Fabovedot,
+ fabovedot,
+ Mabovedot,
+ mabovedot,
+ Pabovedot,
+ wgrave,
+ pabovedot,
+ wacute,
+ Sabovedot,
+ ygrave,
+ Wdiaeresis,
+ wdiaeresis,
+ sabovedot,
+ Wcircumflex,
+ Tabovedot,
+ Ycircumflex,
+ wcircumflex,
+ tabovedot,
+ ycircumflex,
+ OE,
+ oe,
+ Ydiaeresis,
+ overline,
+ kana_fullstop,
+ kana_openingbracket,
+ kana_closingbracket,
+ kana_comma,
+ kana_conjunctive,
+ kana_middledot,
+ kana_WO,
+ kana_a,
+ kana_i,
+ kana_u,
+ kana_e,
+ kana_o,
+ kana_ya,
+ kana_yu,
+ kana_yo,
+ kana_tsu,
+ kana_tu,
+ prolongedsound,
+ kana_A,
+ kana_I,
+ kana_U,
+ kana_E,
+ kana_O,
+ kana_KA,
+ kana_KI,
+ kana_KU,
+ kana_KE,
+ kana_KO,
+ kana_SA,
+ kana_SHI,
+ kana_SU,
+ kana_SE,
+ kana_SO,
+ kana_TA,
+ kana_CHI,
+ kana_TI,
+ kana_TSU,
+ kana_TU,
+ kana_TE,
+ kana_TO,
+ kana_NA,
+ kana_NI,
+ kana_NU,
+ kana_NE,
+ kana_NO,
+ kana_HA,
+ kana_HI,
+ kana_FU,
+ kana_HU,
+ kana_HE,
+ kana_HO,
+ kana_MA,
+ kana_MI,
+ kana_MU,
+ kana_ME,
+ kana_MO,
+ kana_YA,
+ kana_YU,
+ kana_YO,
+ kana_RA,
+ kana_RI,
+ kana_RU,
+ kana_RE,
+ kana_RO,
+ kana_WA,
+ kana_N,
+ voicedsound,
+ semivoicedsound,
+ kana_switch,
+ Farsi_0,
+ Farsi_1,
+ Farsi_2,
+ Farsi_3,
+ Farsi_4,
+ Farsi_5,
+ Farsi_6,
+ Farsi_7,
+ Farsi_8,
+ Farsi_9,
+ Arabic_percent,
+ Arabic_superscript_alef,
+ Arabic_tteh,
+ Arabic_peh,
+ Arabic_tcheh,
+ Arabic_ddal,
+ Arabic_rreh,
+ Arabic_comma,
+ Arabic_fullstop,
+ Arabic_0,
+ Arabic_1,
+ Arabic_2,
+ Arabic_3,
+ Arabic_4,
+ Arabic_5,
+ Arabic_6,
+ Arabic_7,
+ Arabic_8,
+ Arabic_9,
+ Arabic_semicolon,
+ Arabic_question_mark,
+ Arabic_hamza,
+ Arabic_maddaonalef,
+ Arabic_hamzaonalef,
+ Arabic_hamzaonwaw,
+ Arabic_hamzaunderalef,
+ Arabic_hamzaonyeh,
+ Arabic_alef,
+ Arabic_beh,
+ Arabic_tehmarbuta,
+ Arabic_teh,
+ Arabic_theh,
+ Arabic_jeem,
+ Arabic_hah,
+ Arabic_khah,
+ Arabic_dal,
+ Arabic_thal,
+ Arabic_ra,
+ Arabic_zain,
+ Arabic_seen,
+ Arabic_sheen,
+ Arabic_sad,
+ Arabic_dad,
+ Arabic_tah,
+ Arabic_zah,
+ Arabic_ain,
+ Arabic_ghain,
+ Arabic_tatweel,
+ Arabic_feh,
+ Arabic_qaf,
+ Arabic_kaf,
+ Arabic_lam,
+ Arabic_meem,
+ Arabic_noon,
+ Arabic_ha,
+ Arabic_heh,
+ Arabic_waw,
+ Arabic_alefmaksura,
+ Arabic_yeh,
+ Arabic_fathatan,
+ Arabic_dammatan,
+ Arabic_kasratan,
+ Arabic_fatha,
+ Arabic_damma,
+ Arabic_kasra,
+ Arabic_shadda,
+ Arabic_sukun,
+ Arabic_madda_above,
+ Arabic_hamza_above,
+ Arabic_hamza_below,
+ Arabic_jeh,
+ Arabic_veh,
+ Arabic_keheh,
+ Arabic_gaf,
+ Arabic_noon_ghunna,
+ Arabic_heh_doachashmee,
+ Farsi_yeh,
+ Arabic_farsi_yeh,
+ Arabic_yeh_baree,
+ Arabic_heh_goal,
+ Arabic_switch,
+ Cyrillic_GHE_bar,
+ Cyrillic_ghe_bar,
+ Cyrillic_ZHE_descender,
+ Cyrillic_zhe_descender,
+ Cyrillic_KA_descender,
+ Cyrillic_ka_descender,
+ Cyrillic_KA_vertstroke,
+ Cyrillic_ka_vertstroke,
+ Cyrillic_EN_descender,
+ Cyrillic_en_descender,
+ Cyrillic_U_straight,
+ Cyrillic_u_straight,
+ Cyrillic_U_straight_bar,
+ Cyrillic_u_straight_bar,
+ Cyrillic_HA_descender,
+ Cyrillic_ha_descender,
+ Cyrillic_CHE_descender,
+ Cyrillic_che_descender,
+ Cyrillic_CHE_vertstroke,
+ Cyrillic_che_vertstroke,
+ Cyrillic_SHHA,
+ Cyrillic_shha,
+ Cyrillic_SCHWA,
+ Cyrillic_schwa,
+ Cyrillic_I_macron,
+ Cyrillic_i_macron,
+ Cyrillic_O_bar,
+ Cyrillic_o_bar,
+ Cyrillic_U_macron,
+ Cyrillic_u_macron,
+ Serbian_dje,
+ Macedonia_gje,
+ Cyrillic_io,
+ Ukrainian_ie,
+ Ukranian_je,
+ Macedonia_dse,
+ Ukrainian_i,
+ Ukranian_i,
+ Ukrainian_yi,
+ Ukranian_yi,
+ Cyrillic_je,
+ Serbian_je,
+ Cyrillic_lje,
+ Serbian_lje,
+ Cyrillic_nje,
+ Serbian_nje,
+ Serbian_tshe,
+ Macedonia_kje,
+ Ukrainian_ghe_with_upturn,
+ Byelorussian_shortu,
+ Cyrillic_dzhe,
+ Serbian_dze,
+ numerosign,
+ Serbian_DJE,
+ Macedonia_GJE,
+ Cyrillic_IO,
+ Ukrainian_IE,
+ Ukranian_JE,
+ Macedonia_DSE,
+ Ukrainian_I,
+ Ukranian_I,
+ Ukrainian_YI,
+ Ukranian_YI,
+ Cyrillic_JE,
+ Serbian_JE,
+ Cyrillic_LJE,
+ Serbian_LJE,
+ Cyrillic_NJE,
+ Serbian_NJE,
+ Serbian_TSHE,
+ Macedonia_KJE,
+ Ukrainian_GHE_WITH_UPTURN,
+ Byelorussian_SHORTU,
+ Cyrillic_DZHE,
+ Serbian_DZE,
+ Cyrillic_yu,
+ Cyrillic_a,
+ Cyrillic_be,
+ Cyrillic_tse,
+ Cyrillic_de,
+ Cyrillic_ie,
+ Cyrillic_ef,
+ Cyrillic_ghe,
+ Cyrillic_ha,
+ Cyrillic_i,
+ Cyrillic_shorti,
+ Cyrillic_ka,
+ Cyrillic_el,
+ Cyrillic_em,
+ Cyrillic_en,
+ Cyrillic_o,
+ Cyrillic_pe,
+ Cyrillic_ya,
+ Cyrillic_er,
+ Cyrillic_es,
+ Cyrillic_te,
+ Cyrillic_u,
+ Cyrillic_zhe,
+ Cyrillic_ve,
+ Cyrillic_softsign,
+ Cyrillic_yeru,
+ Cyrillic_ze,
+ Cyrillic_sha,
+ Cyrillic_e,
+ Cyrillic_shcha,
+ Cyrillic_che,
+ Cyrillic_hardsign,
+ Cyrillic_YU,
+ Cyrillic_A,
+ Cyrillic_BE,
+ Cyrillic_TSE,
+ Cyrillic_DE,
+ Cyrillic_IE,
+ Cyrillic_EF,
+ Cyrillic_GHE,
+ Cyrillic_HA,
+ Cyrillic_I,
+ Cyrillic_SHORTI,
+ Cyrillic_KA,
+ Cyrillic_EL,
+ Cyrillic_EM,
+ Cyrillic_EN,
+ Cyrillic_O,
+ Cyrillic_PE,
+ Cyrillic_YA,
+ Cyrillic_ER,
+ Cyrillic_ES,
+ Cyrillic_TE,
+ Cyrillic_U,
+ Cyrillic_ZHE,
+ Cyrillic_VE,
+ Cyrillic_SOFTSIGN,
+ Cyrillic_YERU,
+ Cyrillic_ZE,
+ Cyrillic_SHA,
+ Cyrillic_E,
+ Cyrillic_SHCHA,
+ Cyrillic_CHE,
+ Cyrillic_HARDSIGN,
+ Greek_ALPHAaccent,
+ Greek_EPSILONaccent,
+ Greek_ETAaccent,
+ Greek_IOTAaccent,
+ Greek_IOTAdieresis,
+ Greek_IOTAdiaeresis,
+ Greek_OMICRONaccent,
+ Greek_UPSILONaccent,
+ Greek_UPSILONdieresis,
+ Greek_OMEGAaccent,
+ Greek_accentdieresis,
+ Greek_horizbar,
+ Greek_alphaaccent,
+ Greek_epsilonaccent,
+ Greek_etaaccent,
+ Greek_iotaaccent,
+ Greek_iotadieresis,
+ Greek_iotaaccentdieresis,
+ Greek_omicronaccent,
+ Greek_upsilonaccent,
+ Greek_upsilondieresis,
+ Greek_upsilonaccentdieresis,
+ Greek_omegaaccent,
+ Greek_ALPHA,
+ Greek_BETA,
+ Greek_GAMMA,
+ Greek_DELTA,
+ Greek_EPSILON,
+ Greek_ZETA,
+ Greek_ETA,
+ Greek_THETA,
+ Greek_IOTA,
+ Greek_KAPPA,
+ Greek_LAMDA,
+ Greek_LAMBDA,
+ Greek_MU,
+ Greek_NU,
+ Greek_XI,
+ Greek_OMICRON,
+ Greek_PI,
+ Greek_RHO,
+ Greek_SIGMA,
+ Greek_TAU,
+ Greek_UPSILON,
+ Greek_PHI,
+ Greek_CHI,
+ Greek_PSI,
+ Greek_OMEGA,
+ Greek_alpha,
+ Greek_beta,
+ Greek_gamma,
+ Greek_delta,
+ Greek_epsilon,
+ Greek_zeta,
+ Greek_eta,
+ Greek_theta,
+ Greek_iota,
+ Greek_kappa,
+ Greek_lamda,
+ Greek_lambda,
+ Greek_mu,
+ Greek_nu,
+ Greek_xi,
+ Greek_omicron,
+ Greek_pi,
+ Greek_rho,
+ Greek_sigma,
+ Greek_finalsmallsigma,
+ Greek_tau,
+ Greek_upsilon,
+ Greek_phi,
+ Greek_chi,
+ Greek_psi,
+ Greek_omega,
+ Greek_switch,
+ leftradical,
+ topleftradical,
+ horizconnector,
+ topintegral,
+ botintegral,
+ vertconnector,
+ topleftsqbracket,
+ botleftsqbracket,
+ toprightsqbracket,
+ botrightsqbracket,
+ topleftparens,
+ botleftparens,
+ toprightparens,
+ botrightparens,
+ leftmiddlecurlybrace,
+ rightmiddlecurlybrace,
+ topleftsummation,
+ botleftsummation,
+ topvertsummationconnector,
+ botvertsummationconnector,
+ toprightsummation,
+ botrightsummation,
+ rightmiddlesummation,
+ lessthanequal,
+ notequal,
+ greaterthanequal,
+ integral,
+ therefore,
+ variation,
+ infinity,
+ nabla,
+ approximate,
+ similarequal,
+ ifonlyif,
+ implies,
+ identical,
+ radical,
+ includedin,
+ includes,
+ intersection,
+ union,
+ logicaland,
+ logicalor,
+ partialderivative,
+ function,
+ leftarrow,
+ uparrow,
+ rightarrow,
+ downarrow,
+ blank,
+ soliddiamond,
+ checkerboard,
+ ht,
+ ff,
+ cr,
+ lf,
+ nl,
+ vt,
+ lowrightcorner,
+ uprightcorner,
+ upleftcorner,
+ lowleftcorner,
+ crossinglines,
+ horizlinescan1,
+ horizlinescan3,
+ horizlinescan5,
+ horizlinescan7,
+ horizlinescan9,
+ leftt,
+ rightt,
+ bott,
+ topt,
+ vertbar,
+ emspace,
+ enspace,
+ em3space,
+ em4space,
+ digitspace,
+ punctspace,
+ thinspace,
+ hairspace,
+ emdash,
+ endash,
+ signifblank,
+ ellipsis,
+ doubbaselinedot,
+ onethird,
+ twothirds,
+ onefifth,
+ twofifths,
+ threefifths,
+ fourfifths,
+ onesixth,
+ fivesixths,
+ careof,
+ figdash,
+ leftanglebracket,
+ decimalpoint,
+ rightanglebracket,
+ marker,
+ oneeighth,
+ threeeighths,
+ fiveeighths,
+ seveneighths,
+ trademark,
+ signaturemark,
+ trademarkincircle,
+ leftopentriangle,
+ rightopentriangle,
+ emopencircle,
+ emopenrectangle,
+ leftsinglequotemark,
+ rightsinglequotemark,
+ leftdoublequotemark,
+ rightdoublequotemark,
+ prescription,
+ minutes,
+ seconds,
+ latincross,
+ hexagram,
+ filledrectbullet,
+ filledlefttribullet,
+ filledrighttribullet,
+ emfilledcircle,
+ emfilledrect,
+ enopencircbullet,
+ enopensquarebullet,
+ openrectbullet,
+ opentribulletup,
+ opentribulletdown,
+ openstar,
+ enfilledcircbullet,
+ enfilledsqbullet,
+ filledtribulletup,
+ filledtribulletdown,
+ leftpointer,
+ rightpointer,
+ club,
+ diamond,
+ heart,
+ maltesecross,
+ dagger,
+ doubledagger,
+ checkmark,
+ ballotcross,
+ musicalsharp,
+ musicalflat,
+ malesymbol,
+ femalesymbol,
+ telephone,
+ telephonerecorder,
+ phonographcopyright,
+ caret,
+ singlelowquotemark,
+ doublelowquotemark,
+ cursor,
+ leftcaret,
+ rightcaret,
+ downcaret,
+ upcaret,
+ overbar,
+ downtack,
+ upshoe,
+ downstile,
+ underbar,
+ jot,
+ quad,
+ uptack,
+ circle,
+ upstile,
+ downshoe,
+ rightshoe,
+ leftshoe,
+ lefttack,
+ righttack,
+ hebrew_doublelowline,
+ hebrew_aleph,
+ hebrew_bet,
+ hebrew_beth,
+ hebrew_gimel,
+ hebrew_gimmel,
+ hebrew_dalet,
+ hebrew_daleth,
+ hebrew_he,
+ hebrew_waw,
+ hebrew_zain,
+ hebrew_zayin,
+ hebrew_chet,
+ hebrew_het,
+ hebrew_tet,
+ hebrew_teth,
+ hebrew_yod,
+ hebrew_finalkaph,
+ hebrew_kaph,
+ hebrew_lamed,
+ hebrew_finalmem,
+ hebrew_mem,
+ hebrew_finalnun,
+ hebrew_nun,
+ hebrew_samech,
+ hebrew_samekh,
+ hebrew_ayin,
+ hebrew_finalpe,
+ hebrew_pe,
+ hebrew_finalzade,
+ hebrew_finalzadi,
+ hebrew_zade,
+ hebrew_zadi,
+ hebrew_qoph,
+ hebrew_kuf,
+ hebrew_resh,
+ hebrew_shin,
+ hebrew_taw,
+ hebrew_taf,
+ Hebrew_switch,
+ Thai_kokai,
+ Thai_khokhai,
+ Thai_khokhuat,
+ Thai_khokhwai,
+ Thai_khokhon,
+ Thai_khorakhang,
+ Thai_ngongu,
+ Thai_chochan,
+ Thai_choching,
+ Thai_chochang,
+ Thai_soso,
+ Thai_chochoe,
+ Thai_yoying,
+ Thai_dochada,
+ Thai_topatak,
+ Thai_thothan,
+ Thai_thonangmontho,
+ Thai_thophuthao,
+ Thai_nonen,
+ Thai_dodek,
+ Thai_totao,
+ Thai_thothung,
+ Thai_thothahan,
+ Thai_thothong,
+ Thai_nonu,
+ Thai_bobaimai,
+ Thai_popla,
+ Thai_phophung,
+ Thai_fofa,
+ Thai_phophan,
+ Thai_fofan,
+ Thai_phosamphao,
+ Thai_moma,
+ Thai_yoyak,
+ Thai_rorua,
+ Thai_ru,
+ Thai_loling,
+ Thai_lu,
+ Thai_wowaen,
+ Thai_sosala,
+ Thai_sorusi,
+ Thai_sosua,
+ Thai_hohip,
+ Thai_lochula,
+ Thai_oang,
+ Thai_honokhuk,
+ Thai_paiyannoi,
+ Thai_saraa,
+ Thai_maihanakat,
+ Thai_saraaa,
+ Thai_saraam,
+ Thai_sarai,
+ Thai_saraii,
+ Thai_saraue,
+ Thai_sarauee,
+ Thai_sarau,
+ Thai_sarauu,
+ Thai_phinthu,
+ Thai_maihanakat_maitho,
+ Thai_baht,
+ Thai_sarae,
+ Thai_saraae,
+ Thai_sarao,
+ Thai_saraaimaimuan,
+ Thai_saraaimaimalai,
+ Thai_lakkhangyao,
+ Thai_maiyamok,
+ Thai_maitaikhu,
+ Thai_maiek,
+ Thai_maitho,
+ Thai_maitri,
+ Thai_maichattawa,
+ Thai_thanthakhat,
+ Thai_nikhahit,
+ Thai_leksun,
+ Thai_leknung,
+ Thai_leksong,
+ Thai_leksam,
+ Thai_leksi,
+ Thai_lekha,
+ Thai_lekhok,
+ Thai_lekchet,
+ Thai_lekpaet,
+ Thai_lekkao,
+ Hangul,
+ Hangul_Start,
+ Hangul_End,
+ Hangul_Hanja,
+ Hangul_Jamo,
+ Hangul_Romaja,
+ Hangul_Codeinput,
+ Hangul_Jeonja,
+ Hangul_Banja,
+ Hangul_PreHanja,
+ Hangul_PostHanja,
+ Hangul_SingleCandidate,
+ Hangul_MultipleCandidate,
+ Hangul_PreviousCandidate,
+ Hangul_Special,
+ Hangul_switch,
+ Hangul_Kiyeog,
+ Hangul_SsangKiyeog,
+ Hangul_KiyeogSios,
+ Hangul_Nieun,
+ Hangul_NieunJieuj,
+ Hangul_NieunHieuh,
+ Hangul_Dikeud,
+ Hangul_SsangDikeud,
+ Hangul_Rieul,
+ Hangul_RieulKiyeog,
+ Hangul_RieulMieum,
+ Hangul_RieulPieub,
+ Hangul_RieulSios,
+ Hangul_RieulTieut,
+ Hangul_RieulPhieuf,
+ Hangul_RieulHieuh,
+ Hangul_Mieum,
+ Hangul_Pieub,
+ Hangul_SsangPieub,
+ Hangul_PieubSios,
+ Hangul_Sios,
+ Hangul_SsangSios,
+ Hangul_Ieung,
+ Hangul_Jieuj,
+ Hangul_SsangJieuj,
+ Hangul_Cieuc,
+ Hangul_Khieuq,
+ Hangul_Tieut,
+ Hangul_Phieuf,
+ Hangul_Hieuh,
+ Hangul_A,
+ Hangul_AE,
+ Hangul_YA,
+ Hangul_YAE,
+ Hangul_EO,
+ Hangul_E,
+ Hangul_YEO,
+ Hangul_YE,
+ Hangul_O,
+ Hangul_WA,
+ Hangul_WAE,
+ Hangul_OE,
+ Hangul_YO,
+ Hangul_U,
+ Hangul_WEO,
+ Hangul_WE,
+ Hangul_WI,
+ Hangul_YU,
+ Hangul_EU,
+ Hangul_YI,
+ Hangul_I,
+ Hangul_J_Kiyeog,
+ Hangul_J_SsangKiyeog,
+ Hangul_J_KiyeogSios,
+ Hangul_J_Nieun,
+ Hangul_J_NieunJieuj,
+ Hangul_J_NieunHieuh,
+ Hangul_J_Dikeud,
+ Hangul_J_Rieul,
+ Hangul_J_RieulKiyeog,
+ Hangul_J_RieulMieum,
+ Hangul_J_RieulPieub,
+ Hangul_J_RieulSios,
+ Hangul_J_RieulTieut,
+ Hangul_J_RieulPhieuf,
+ Hangul_J_RieulHieuh,
+ Hangul_J_Mieum,
+ Hangul_J_Pieub,
+ Hangul_J_PieubSios,
+ Hangul_J_Sios,
+ Hangul_J_SsangSios,
+ Hangul_J_Ieung,
+ Hangul_J_Jieuj,
+ Hangul_J_Cieuc,
+ Hangul_J_Khieuq,
+ Hangul_J_Tieut,
+ Hangul_J_Phieuf,
+ Hangul_J_Hieuh,
+ Hangul_RieulYeorinHieuh,
+ Hangul_SunkyeongeumMieum,
+ Hangul_SunkyeongeumPieub,
+ Hangul_PanSios,
+ Hangul_KkogjiDalrinIeung,
+ Hangul_SunkyeongeumPhieuf,
+ Hangul_YeorinHieuh,
+ Hangul_AraeA,
+ Hangul_AraeAE,
+ Hangul_J_PanSios,
+ Hangul_J_KkogjiDalrinIeung,
+ Hangul_J_YeorinHieuh,
+ Korean_Won,
+ Armenian_ligature_ew,
+ Armenian_full_stop,
+ Armenian_verjaket,
+ Armenian_separation_mark,
+ Armenian_but,
+ Armenian_hyphen,
+ Armenian_yentamna,
+ Armenian_exclam,
+ Armenian_amanak,
+ Armenian_accent,
+ Armenian_shesht,
+ Armenian_question,
+ Armenian_paruyk,
+ Armenian_AYB,
+ Armenian_ayb,
+ Armenian_BEN,
+ Armenian_ben,
+ Armenian_GIM,
+ Armenian_gim,
+ Armenian_DA,
+ Armenian_da,
+ Armenian_YECH,
+ Armenian_yech,
+ Armenian_ZA,
+ Armenian_za,
+ Armenian_E,
+ Armenian_e,
+ Armenian_AT,
+ Armenian_at,
+ Armenian_TO,
+ Armenian_to,
+ Armenian_ZHE,
+ Armenian_zhe,
+ Armenian_INI,
+ Armenian_ini,
+ Armenian_LYUN,
+ Armenian_lyun,
+ Armenian_KHE,
+ Armenian_khe,
+ Armenian_TSA,
+ Armenian_tsa,
+ Armenian_KEN,
+ Armenian_ken,
+ Armenian_HO,
+ Armenian_ho,
+ Armenian_DZA,
+ Armenian_dza,
+ Armenian_GHAT,
+ Armenian_ghat,
+ Armenian_TCHE,
+ Armenian_tche,
+ Armenian_MEN,
+ Armenian_men,
+ Armenian_HI,
+ Armenian_hi,
+ Armenian_NU,
+ Armenian_nu,
+ Armenian_SHA,
+ Armenian_sha,
+ Armenian_VO,
+ Armenian_vo,
+ Armenian_CHA,
+ Armenian_cha,
+ Armenian_PE,
+ Armenian_pe,
+ Armenian_JE,
+ Armenian_je,
+ Armenian_RA,
+ Armenian_ra,
+ Armenian_SE,
+ Armenian_se,
+ Armenian_VEV,
+ Armenian_vev,
+ Armenian_TYUN,
+ Armenian_tyun,
+ Armenian_RE,
+ Armenian_re,
+ Armenian_TSO,
+ Armenian_tso,
+ Armenian_VYUN,
+ Armenian_vyun,
+ Armenian_PYUR,
+ Armenian_pyur,
+ Armenian_KE,
+ Armenian_ke,
+ Armenian_O,
+ Armenian_o,
+ Armenian_FE,
+ Armenian_fe,
+ Armenian_apostrophe,
+ Georgian_an,
+ Georgian_ban,
+ Georgian_gan,
+ Georgian_don,
+ Georgian_en,
+ Georgian_vin,
+ Georgian_zen,
+ Georgian_tan,
+ Georgian_in,
+ Georgian_kan,
+ Georgian_las,
+ Georgian_man,
+ Georgian_nar,
+ Georgian_on,
+ Georgian_par,
+ Georgian_zhar,
+ Georgian_rae,
+ Georgian_san,
+ Georgian_tar,
+ Georgian_un,
+ Georgian_phar,
+ Georgian_khar,
+ Georgian_ghan,
+ Georgian_qar,
+ Georgian_shin,
+ Georgian_chin,
+ Georgian_can,
+ Georgian_jil,
+ Georgian_cil,
+ Georgian_char,
+ Georgian_xan,
+ Georgian_jhan,
+ Georgian_hae,
+ Georgian_he,
+ Georgian_hie,
+ Georgian_we,
+ Georgian_har,
+ Georgian_hoe,
+ Georgian_fi,
+ Xabovedot,
+ Ibreve,
+ Zstroke,
+ Gcaron,
+ Ocaron,
+ Obarred,
+ xabovedot,
+ ibreve,
+ zstroke,
+ gcaron,
+ ocaron,
+ obarred,
+ SCHWA,
+ schwa,
+ Lbelowdot,
+ lbelowdot,
+ Abelowdot,
+ abelowdot,
+ Ahook,
+ ahook,
+ Acircumflexacute,
+ acircumflexacute,
+ Acircumflexgrave,
+ acircumflexgrave,
+ Acircumflexhook,
+ acircumflexhook,
+ Acircumflextilde,
+ acircumflextilde,
+ Acircumflexbelowdot,
+ acircumflexbelowdot,
+ Abreveacute,
+ abreveacute,
+ Abrevegrave,
+ abrevegrave,
+ Abrevehook,
+ abrevehook,
+ Abrevetilde,
+ abrevetilde,
+ Abrevebelowdot,
+ abrevebelowdot,
+ Ebelowdot,
+ ebelowdot,
+ Ehook,
+ ehook,
+ Etilde,
+ etilde,
+ Ecircumflexacute,
+ ecircumflexacute,
+ Ecircumflexgrave,
+ ecircumflexgrave,
+ Ecircumflexhook,
+ ecircumflexhook,
+ Ecircumflextilde,
+ ecircumflextilde,
+ Ecircumflexbelowdot,
+ ecircumflexbelowdot,
+ Ihook,
+ ihook,
+ Ibelowdot,
+ ibelowdot,
+ Obelowdot,
+ obelowdot,
+ Ohook,
+ ohook,
+ Ocircumflexacute,
+ ocircumflexacute,
+ Ocircumflexgrave,
+ ocircumflexgrave,
+ Ocircumflexhook,
+ ocircumflexhook,
+ Ocircumflextilde,
+ ocircumflextilde,
+ Ocircumflexbelowdot,
+ ocircumflexbelowdot,
+ Ohornacute,
+ ohornacute,
+ Ohorngrave,
+ ohorngrave,
+ Ohornhook,
+ ohornhook,
+ Ohorntilde,
+ ohorntilde,
+ Ohornbelowdot,
+ ohornbelowdot,
+ Ubelowdot,
+ ubelowdot,
+ Uhook,
+ uhook,
+ Uhornacute,
+ uhornacute,
+ Uhorngrave,
+ uhorngrave,
+ Uhornhook,
+ uhornhook,
+ Uhorntilde,
+ uhorntilde,
+ Uhornbelowdot,
+ uhornbelowdot,
+ Ybelowdot,
+ ybelowdot,
+ Yhook,
+ yhook,
+ Ytilde,
+ ytilde,
+ Ohorn,
+ ohorn,
+ Uhorn,
+ uhorn,
+ EcuSign,
+ ColonSign,
+ CruzeiroSign,
+ FFrancSign,
+ LiraSign,
+ MillSign,
+ NairaSign,
+ PesetaSign,
+ RupeeSign,
+ WonSign,
+ NewSheqelSign,
+ DongSign,
+ EuroSign,
+ zerosuperior,
+ foursuperior,
+ fivesuperior,
+ sixsuperior,
+ sevensuperior,
+ eightsuperior,
+ ninesuperior,
+ zerosubscript,
+ onesubscript,
+ twosubscript,
+ threesubscript,
+ foursubscript,
+ fivesubscript,
+ sixsubscript,
+ sevensubscript,
+ eightsubscript,
+ ninesubscript,
+ partdifferential,
+ emptyset,
+ elementof,
+ notelementof,
+ containsas,
+ squareroot,
+ cuberoot,
+ fourthroot,
+ dintegral,
+ tintegral,
+ because,
+ approxeq,
+ notapproxeq,
+ notidentical,
+ stricteq,
+ braille_dot_1,
+ braille_dot_2,
+ braille_dot_3,
+ braille_dot_4,
+ braille_dot_5,
+ braille_dot_6,
+ braille_dot_7,
+ braille_dot_8,
+ braille_dot_9,
+ braille_dot_10,
+ braille_blank,
+ braille_dots_1,
+ braille_dots_2,
+ braille_dots_12,
+ braille_dots_3,
+ braille_dots_13,
+ braille_dots_23,
+ braille_dots_123,
+ braille_dots_4,
+ braille_dots_14,
+ braille_dots_24,
+ braille_dots_124,
+ braille_dots_34,
+ braille_dots_134,
+ braille_dots_234,
+ braille_dots_1234,
+ braille_dots_5,
+ braille_dots_15,
+ braille_dots_25,
+ braille_dots_125,
+ braille_dots_35,
+ braille_dots_135,
+ braille_dots_235,
+ braille_dots_1235,
+ braille_dots_45,
+ braille_dots_145,
+ braille_dots_245,
+ braille_dots_1245,
+ braille_dots_345,
+ braille_dots_1345,
+ braille_dots_2345,
+ braille_dots_12345,
+ braille_dots_6,
+ braille_dots_16,
+ braille_dots_26,
+ braille_dots_126,
+ braille_dots_36,
+ braille_dots_136,
+ braille_dots_236,
+ braille_dots_1236,
+ braille_dots_46,
+ braille_dots_146,
+ braille_dots_246,
+ braille_dots_1246,
+ braille_dots_346,
+ braille_dots_1346,
+ braille_dots_2346,
+ braille_dots_12346,
+ braille_dots_56,
+ braille_dots_156,
+ braille_dots_256,
+ braille_dots_1256,
+ braille_dots_356,
+ braille_dots_1356,
+ braille_dots_2356,
+ braille_dots_12356,
+ braille_dots_456,
+ braille_dots_1456,
+ braille_dots_2456,
+ braille_dots_12456,
+ braille_dots_3456,
+ braille_dots_13456,
+ braille_dots_23456,
+ braille_dots_123456,
+ braille_dots_7,
+ braille_dots_17,
+ braille_dots_27,
+ braille_dots_127,
+ braille_dots_37,
+ braille_dots_137,
+ braille_dots_237,
+ braille_dots_1237,
+ braille_dots_47,
+ braille_dots_147,
+ braille_dots_247,
+ braille_dots_1247,
+ braille_dots_347,
+ braille_dots_1347,
+ braille_dots_2347,
+ braille_dots_12347,
+ braille_dots_57,
+ braille_dots_157,
+ braille_dots_257,
+ braille_dots_1257,
+ braille_dots_357,
+ braille_dots_1357,
+ braille_dots_2357,
+ braille_dots_12357,
+ braille_dots_457,
+ braille_dots_1457,
+ braille_dots_2457,
+ braille_dots_12457,
+ braille_dots_3457,
+ braille_dots_13457,
+ braille_dots_23457,
+ braille_dots_123457,
+ braille_dots_67,
+ braille_dots_167,
+ braille_dots_267,
+ braille_dots_1267,
+ braille_dots_367,
+ braille_dots_1367,
+ braille_dots_2367,
+ braille_dots_12367,
+ braille_dots_467,
+ braille_dots_1467,
+ braille_dots_2467,
+ braille_dots_12467,
+ braille_dots_3467,
+ braille_dots_13467,
+ braille_dots_23467,
+ braille_dots_123467,
+ braille_dots_567,
+ braille_dots_1567,
+ braille_dots_2567,
+ braille_dots_12567,
+ braille_dots_3567,
+ braille_dots_13567,
+ braille_dots_23567,
+ braille_dots_123567,
+ braille_dots_4567,
+ braille_dots_14567,
+ braille_dots_24567,
+ braille_dots_124567,
+ braille_dots_34567,
+ braille_dots_134567,
+ braille_dots_234567,
+ braille_dots_1234567,
+ braille_dots_8,
+ braille_dots_18,
+ braille_dots_28,
+ braille_dots_128,
+ braille_dots_38,
+ braille_dots_138,
+ braille_dots_238,
+ braille_dots_1238,
+ braille_dots_48,
+ braille_dots_148,
+ braille_dots_248,
+ braille_dots_1248,
+ braille_dots_348,
+ braille_dots_1348,
+ braille_dots_2348,
+ braille_dots_12348,
+ braille_dots_58,
+ braille_dots_158,
+ braille_dots_258,
+ braille_dots_1258,
+ braille_dots_358,
+ braille_dots_1358,
+ braille_dots_2358,
+ braille_dots_12358,
+ braille_dots_458,
+ braille_dots_1458,
+ braille_dots_2458,
+ braille_dots_12458,
+ braille_dots_3458,
+ braille_dots_13458,
+ braille_dots_23458,
+ braille_dots_123458,
+ braille_dots_68,
+ braille_dots_168,
+ braille_dots_268,
+ braille_dots_1268,
+ braille_dots_368,
+ braille_dots_1368,
+ braille_dots_2368,
+ braille_dots_12368,
+ braille_dots_468,
+ braille_dots_1468,
+ braille_dots_2468,
+ braille_dots_12468,
+ braille_dots_3468,
+ braille_dots_13468,
+ braille_dots_23468,
+ braille_dots_123468,
+ braille_dots_568,
+ braille_dots_1568,
+ braille_dots_2568,
+ braille_dots_12568,
+ braille_dots_3568,
+ braille_dots_13568,
+ braille_dots_23568,
+ braille_dots_123568,
+ braille_dots_4568,
+ braille_dots_14568,
+ braille_dots_24568,
+ braille_dots_124568,
+ braille_dots_34568,
+ braille_dots_134568,
+ braille_dots_234568,
+ braille_dots_1234568,
+ braille_dots_78,
+ braille_dots_178,
+ braille_dots_278,
+ braille_dots_1278,
+ braille_dots_378,
+ braille_dots_1378,
+ braille_dots_2378,
+ braille_dots_12378,
+ braille_dots_478,
+ braille_dots_1478,
+ braille_dots_2478,
+ braille_dots_12478,
+ braille_dots_3478,
+ braille_dots_13478,
+ braille_dots_23478,
+ braille_dots_123478,
+ braille_dots_578,
+ braille_dots_1578,
+ braille_dots_2578,
+ braille_dots_12578,
+ braille_dots_3578,
+ braille_dots_13578,
+ braille_dots_23578,
+ braille_dots_123578,
+ braille_dots_4578,
+ braille_dots_14578,
+ braille_dots_24578,
+ braille_dots_124578,
+ braille_dots_34578,
+ braille_dots_134578,
+ braille_dots_234578,
+ braille_dots_1234578,
+ braille_dots_678,
+ braille_dots_1678,
+ braille_dots_2678,
+ braille_dots_12678,
+ braille_dots_3678,
+ braille_dots_13678,
+ braille_dots_23678,
+ braille_dots_123678,
+ braille_dots_4678,
+ braille_dots_14678,
+ braille_dots_24678,
+ braille_dots_124678,
+ braille_dots_34678,
+ braille_dots_134678,
+ braille_dots_234678,
+ braille_dots_1234678,
+ braille_dots_5678,
+ braille_dots_15678,
+ braille_dots_25678,
+ braille_dots_125678,
+ braille_dots_35678,
+ braille_dots_135678,
+ braille_dots_235678,
+ braille_dots_1235678,
+ braille_dots_45678,
+ braille_dots_145678,
+ braille_dots_245678,
+ braille_dots_1245678,
+ braille_dots_345678,
+ braille_dots_1345678,
+ braille_dots_2345678,
+ braille_dots_12345678,
+ ModeLock,
+ MonBrightnessUp,
+ MonBrightnessDown,
+ KbdLightOnOff,
+ KbdBrightnessUp,
+ KbdBrightnessDown,
+ Standby,
+ AudioLowerVolume,
+ AudioMute,
+ AudioRaiseVolume,
+ AudioPlay,
+ AudioStop,
+ AudioPrev,
+ AudioNext,
+ HomePage,
+ Mail,
+ Start,
+ Search,
+ AudioRecord,
+ Calculator,
+ Memo,
+ ToDoList,
+ Calendar,
+ PowerDown,
+ ContrastAdjust,
+ RockerUp,
+ RockerDown,
+ RockerEnter,
+ Back,
+ Forward,
+ Stop,
+ Refresh,
+ PowerOff,
+ WakeUp,
+ Eject,
+ ScreenSaver,
+ WWW,
+ Sleep,
+ Favorites,
+ AudioPause,
+ AudioMedia,
+ MyComputer,
+ VendorHome,
+ LightBulb,
+ Shop,
+ History,
+ OpenURL,
+ AddFavorite,
+ HotLinks,
+ BrightnessAdjust,
+ Finance,
+ Community,
+ AudioRewind,
+ BackForward,
+ Launch0,
+ Launch1,
+ Launch2,
+ Launch3,
+ Launch4,
+ Launch5,
+ Launch6,
+ Launch7,
+ Launch8,
+ Launch9,
+ LaunchA,
+ LaunchB,
+ LaunchC,
+ LaunchD,
+ LaunchE,
+ LaunchF,
+ ApplicationLeft,
+ ApplicationRight,
+ Book,
+ CD,
+ WindowClear,
+ Close,
+ Copy,
+ Cut,
+ Display,
+ DOS,
+ Documents,
+ Excel,
+ Explorer,
+ Game,
+ Go,
+ iTouch,
+ LogOff,
+ Market,
+ Meeting,
+ MenuKB,
+ MenuPB,
+ MySites,
+ New,
+ News,
+ OfficeHome,
+ Open,
+ Option,
+ Paste,
+ Phone,
+ Reply,
+ Reload,
+ RotateWindows,
+ RotationPB,
+ RotationKB,
+ Save,
+ ScrollUp,
+ ScrollDown,
+ ScrollClick,
+ Send,
+ Spell,
+ SplitScreen,
+ Support,
+ TaskPane,
+ Terminal,
+ Tools,
+ Travel,
+ UserPB,
+ User1KB,
+ User2KB,
+ Video,
+ WheelButton,
+ Word,
+ Xfer,
+ ZoomIn,
+ ZoomOut,
+ Away,
+ Messenger,
+ WebCam,
+ MailForward,
+ Pictures,
+ Music,
+ Battery,
+ Bluetooth,
+ WLAN,
+ UWB,
+ AudioForward,
+ AudioRepeat,
+ AudioRandomPlay,
+ Subtitle,
+ AudioCycleTrack,
+ CycleAngle,
+ FrameBack,
+ FrameForward,
+ Time,
+ SelectButton,
+ View,
+ TopMenu,
+ Red,
+ Green,
+ Yellow,
+ Blue,
+ Suspend,
+ Hibernate,
+ Switch_VT_1,
+ Switch_VT_2,
+ Switch_VT_3,
+ Switch_VT_4,
+ Switch_VT_5,
+ Switch_VT_6,
+ Switch_VT_7,
+ Switch_VT_8,
+ Switch_VT_9,
+ Switch_VT_10,
+ Switch_VT_11,
+ Switch_VT_12,
+ Ungrab,
+ ClearGrab,
+ Next_VMode,
+ Prev_VMode,
+ }
+}
diff --git a/plugins/gtkui/trkproperties.c b/plugins/gtkui/trkproperties.c
index d86e3316..b24acdcc 100644
--- a/plugins/gtkui/trkproperties.c
+++ b/plugins/gtkui/trkproperties.c
@@ -27,6 +27,7 @@
#include "gtkui.h"
#include "mainplaylist.h"
#include "search.h"
+#include "ddbcellrenderertextmultiline.h"
static GtkWidget *trackproperties;
static DB_playItem_t *track;
@@ -54,6 +55,7 @@ on_trackproperties_key_press_event (GtkWidget *widget,
if (event->keyval == GDK_Escape) {
on_trackproperties_delete_event (NULL, NULL, NULL);
gtk_widget_destroy (widget);
+ return TRUE;
}
return FALSE;
}
@@ -148,7 +150,7 @@ show_track_properties_dlg (DB_playItem_t *it) {
store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model (tree, GTK_TREE_MODEL (store));
GtkCellRenderer *rend_text = gtk_cell_renderer_text_new ();
- rend_text2 = gtk_cell_renderer_text_new ();
+ rend_text2 = GTK_CELL_RENDERER (ddb_cell_renderer_text_multiline_new ());//gtk_cell_renderer_text_new ();
g_signal_connect ((gpointer)rend_text2, "edited",
G_CALLBACK (on_metadata_edited),
store);