Ejemplo n.º 1
0
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));
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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));	
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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);
	}
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
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);

}
Ejemplo n.º 9
0
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);
}
Ejemplo n.º 10
0
static void
my_text_view_class_init (MyTextViewClass *klass)
{
  GTK_TEXT_VIEW_CLASS (klass)->snapshot_layer = my_text_view_snapshot_layer;
}