diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/gtkui/Makefile.am | 10 | ||||
-rw-r--r-- | plugins/gtkui/ddbcellrenderertextmultiline.c | 322 | ||||
-rw-r--r-- | plugins/gtkui/ddbcellrenderertextmultiline.h | 68 | ||||
-rw-r--r-- | plugins/gtkui/ddbcellrenderertextmultiline.vala | 118 | ||||
-rw-r--r-- | plugins/gtkui/ddbequalizer.h | 23 | ||||
-rw-r--r-- | plugins/gtkui/ddbseekbar.h | 29 | ||||
-rw-r--r-- | plugins/gtkui/gdk-keysyms.vapi | 2198 | ||||
-rw-r--r-- | plugins/gtkui/trkproperties.c | 4 |
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, >k_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); |