static void empathy_chat_text_view_class_init (EmpathyChatTextViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkTextViewClass *text_view_class = GTK_TEXT_VIEW_CLASS (klass); object_class->finalize = chat_text_view_finalize; object_class->get_property = chat_text_view_get_property; object_class->set_property = chat_text_view_set_property; widget_class->size_allocate = chat_text_view_size_allocate; widget_class->drag_motion = chat_text_view_drag_motion; text_view_class->copy_clipboard = text_view_copy_clipboard; g_object_class_install_property (object_class, PROP_LAST_CONTACT, g_param_spec_object ("last-contact", "Last contact", "The sender of the last received message", EMPATHY_TYPE_CONTACT, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_ONLY_IF_DATE, g_param_spec_boolean ("only-if-date", "Only if date", "Display timestamp only if the date changes", FALSE, G_PARAM_READWRITE)); g_type_class_add_private (object_class, sizeof (EmpathyChatTextViewPriv)); }
static void dma_chunk_view_move_cursor (GtkTextView *text_view, GtkMovementStep step, gint count, gboolean extend_selection) { DmaChunkView *view = DMA_CHUNK_VIEW (text_view); GtkTextMark *mark; GtkTextBuffer *buffer; GtkTextIter cur; gint line; gdouble value, step_increment; switch (step) { case GTK_MOVEMENT_LOGICAL_POSITIONS: case GTK_MOVEMENT_VISUAL_POSITIONS: case GTK_MOVEMENT_WORDS: case GTK_MOVEMENT_DISPLAY_LINE_ENDS: case GTK_MOVEMENT_HORIZONTAL_PAGES: break; case GTK_MOVEMENT_DISPLAY_LINES: case GTK_MOVEMENT_PARAGRAPHS: case GTK_MOVEMENT_PARAGRAPH_ENDS: buffer = gtk_text_view_get_buffer (text_view); mark = gtk_text_buffer_get_insert (buffer); gtk_text_buffer_get_iter_at_mark (buffer, &cur, mark); line = gtk_text_iter_get_line (&cur); step_increment = gtk_adjustment_get_step_increment (view->vadjustment); if ((count < 0) && (line == 0)) { value += count * step_increment; set_adjustment_clamped (view->vadjustment, value); return; } else if ((count > 0) && (line == gtk_text_buffer_get_line_count(buffer) - 1)) { value += count * step_increment; set_adjustment_clamped (view->vadjustment, value); return; } break; case GTK_MOVEMENT_PAGES: value += count * gtk_adjustment_get_page_increment (view->vadjustment); set_adjustment_clamped (view->vadjustment, value); return; case GTK_MOVEMENT_BUFFER_ENDS: set_adjustment_clamped (view->vadjustment, count < 0 ? gtk_adjustment_get_lower (view->vadjustment) : gtk_adjustment_get_upper (view->vadjustment)); return; default: break; } GTK_TEXT_VIEW_CLASS (parent_class)->move_cursor (text_view, step, count, extend_selection); }
static void ygtk_text_view_class_init (YGtkTextViewClass *klass) { GtkTextViewClass *gtktextview_class = GTK_TEXT_VIEW_CLASS (klass); gtktextview_class->populate_popup = ygtk_text_view_populate_popup; GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); gtkwidget_class->realize = ygtk_text_view_realize; gtkwidget_class->button_press_event = ygtk_text_view_button_press_event; }
static void dma_sparse_view_class_init (DmaSparseViewClass * klass) { GObjectClass *gobject_class; GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkTextViewClass *text_view_class; g_return_if_fail (klass != NULL); gobject_class = (GObjectClass *) klass; object_class = (GtkObjectClass *) klass; widget_class = GTK_WIDGET_CLASS (klass); text_view_class = GTK_TEXT_VIEW_CLASS (klass); parent_class = (GtkTextViewClass*) g_type_class_peek_parent (klass); gobject_class->dispose = dma_sparse_view_dispose; gobject_class->finalize = dma_sparse_view_finalize; gobject_class->get_property = dma_sparse_view_get_property; gobject_class->set_property = dma_sparse_view_set_property; object_class->destroy = dma_sparse_view_destroy; widget_class->size_allocate = dma_sparse_view_size_allocate; widget_class->expose_event = dma_sparse_view_expose; text_view_class->move_cursor = dma_sparse_view_move_cursor; text_view_class->set_scroll_adjustments = dma_sparse_view_set_scroll_adjustments; g_object_class_install_property (gobject_class, PROP_SHOW_LINE_NUMBERS, g_param_spec_boolean ("show_line_numbers", _("Show Line Numbers"), _("Whether to display line numbers"), FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_SHOW_LINE_MARKERS, g_param_spec_boolean ("show_line_markers", _("Show Line Markers"), _("Whether to display line marker pixbufs"), FALSE, G_PARAM_READWRITE)); }
static gboolean gtk_source_view_extend_selection (GtkTextView *text_view, GtkTextExtendSelection granularity, const GtkTextIter *location, GtkTextIter *start, GtkTextIter *end) { if (granularity == GTK_TEXT_EXTEND_SELECTION_WORD) { _gtk_source_iter_extend_selection_word (location, start, end); return GDK_EVENT_STOP; } /* Alignment on second opening parenthesis. */ return GTK_TEXT_VIEW_CLASS (gtk_source_view_parent_class)->extend_selection (text_view, granularity, location, start, end); }
static void dma_sparse_view_set_scroll_adjustments (GtkTextView *text_view, GtkAdjustment *hadj, GtkAdjustment *vadj) { DmaSparseView *view = DMA_SPARSE_VIEW (text_view); if (vadj) g_return_if_fail (GTK_IS_ADJUSTMENT (vadj)); if (view->priv->vadjustment && (view->priv->vadjustment != vadj)) { g_signal_handlers_disconnect_by_func (view->priv->vadjustment, dma_sparse_view_value_changed, view); g_object_unref (view->priv->vadjustment); } if (view->priv->vadjustment != vadj) { GTK_TEXT_VIEW_CLASS (parent_class)->set_scroll_adjustments (GTK_TEXT_VIEW (view), hadj, NULL); if (vadj != NULL) { g_object_ref_sink (vadj); g_signal_connect (vadj, "value_changed", G_CALLBACK (dma_sparse_view_value_changed), view); gtk_adjustment_set_upper (vadj, dma_sparse_buffer_get_upper (view->priv->buffer)); gtk_adjustment_set_lower (vadj, dma_sparse_buffer_get_lower (view->priv->buffer)); gtk_adjustment_set_value (vadj, 0); } view->priv->vadjustment = vadj; dma_sparse_view_update_adjustement (view); } }
static void dma_sparse_view_move_cursor (GtkTextView *text_view, GtkMovementStep step, gint count, gboolean extend_selection) { DmaSparseView *view = DMA_SPARSE_VIEW (text_view); switch (step) { case GTK_MOVEMENT_LOGICAL_POSITIONS: case GTK_MOVEMENT_VISUAL_POSITIONS: case GTK_MOVEMENT_WORDS: case GTK_MOVEMENT_DISPLAY_LINE_ENDS: case GTK_MOVEMENT_HORIZONTAL_PAGES: break; case GTK_MOVEMENT_DISPLAY_LINES: case GTK_MOVEMENT_PARAGRAPHS: case GTK_MOVEMENT_PARAGRAPH_ENDS: dma_sparse_iter_forward_lines (&view->priv->start, count); gtk_adjustment_set_value (view->priv->vadjustment, (gdouble)dma_sparse_iter_get_address (&view->priv->start)); return; case GTK_MOVEMENT_PAGES: dma_sparse_iter_forward_lines (&view->priv->start, count * (view->priv->line_by_page > 1 ? view->priv->line_by_page - 1 : view->priv->line_by_page)); gtk_adjustment_set_value (view->priv->vadjustment, (gdouble)dma_sparse_iter_get_address (&view->priv->start)); return; case GTK_MOVEMENT_BUFFER_ENDS: break; default: break; } GTK_TEXT_VIEW_CLASS (parent_class)->move_cursor (text_view, step, count, extend_selection); }
static void gglk_text_class_init(GglkTextClass *klass) { GtkTextViewClass *view_class = GTK_TEXT_VIEW_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); view_class->paste_clipboard = gglk_text_paste_clipboard; klass->orig_button_press = widget_class->button_press_event; widget_class->button_press_event = gglk_text_button_press_event; klass->char_input_event = NULL; gglk_text_signals[CHAR_SIGNAL] = g_signal_new("char-input-event", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, char_input_event), NULL, NULL, gtk_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); klass->line_input_event = NULL; gglk_text_signals[LINE_SIGNAL] = g_signal_new("line-input-event", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, line_input_event), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); klass->hyper_input_event = NULL; gglk_text_signals[HYPER_SIGNAL] = g_signal_new("hyper-input-event", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, hyper_input_event), NULL, NULL, gtk_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); klass->mouse_input_event = NULL; gglk_text_signals[MOUSE_SIGNAL] = g_signal_new("mouse-input-event", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, mouse_input_event), NULL, NULL, gtk_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); klass->clear_action = NULL; gglk_text_signals[CLEAR_SIGNAL] = g_signal_new("clear", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, clear_action), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); klass->put_buffer = NULL; gglk_text_signals[PUT_BUFFER_SIGNAL] = g_signal_new("put-buffer", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GglkTextClass, put_buffer), NULL, NULL, gtk_marshal_VOID__POINTER_INT, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_INT); }
static void gimp_text_proxy_class_init (GimpTextProxyClass *klass) { GtkTextViewClass *tv_class = GTK_TEXT_VIEW_CLASS (klass); GtkBindingSet *binding_set; tv_class->move_cursor = gimp_text_proxy_move_cursor; tv_class->insert_at_cursor = gimp_text_proxy_insert_at_cursor; tv_class->delete_from_cursor = gimp_text_proxy_delete_from_cursor; tv_class->backspace = gimp_text_proxy_backspace; tv_class->cut_clipboard = gimp_text_proxy_cut_clipboard; tv_class->copy_clipboard = gimp_text_proxy_copy_clipboard; tv_class->paste_clipboard = gimp_text_proxy_paste_clipboard; tv_class->toggle_overwrite = gimp_text_proxy_toggle_overwrite; proxy_signals[CHANGE_SIZE] = g_signal_new ("change-size", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_size), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); proxy_signals[CHANGE_BASELINE] = g_signal_new ("change-baseline", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_baseline), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); proxy_signals[CHANGE_KERNING] = g_signal_new ("change-kerning", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_kerning), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_plus, GDK_MOD1_MASK, "change-size", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_minus, GDK_MOD1_MASK, "change-size", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, GDK_MOD1_MASK, "change-baseline", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, GDK_MOD1_MASK, "change-baseline", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, GDK_MOD1_MASK, "change-kerning", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, GDK_MOD1_MASK, "change-kerning", 1, G_TYPE_DOUBLE, 1.0); }
static void my_text_view_class_init (MyTextViewClass *klass) { GTK_TEXT_VIEW_CLASS (klass)->snapshot_layer = my_text_view_snapshot_layer; }