2
* anjuta-diff-renderer-test.c
4
* Copyright (C) 2013 - James Liggett
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20
#include <libanjuta/anjuta-cell-renderer-diff.h>
30
on_window_destroy (GtkWidget *window, gpointer user_data)
36
main (int argc, char **argv)
39
GtkWidget *scrolled_window;
41
GtkTreeViewColumn *column;
42
GtkCellRenderer *renderer;
43
GtkListStore *list_store;
45
const gchar header1[] =
46
"diff --git a/libanjuta/Makefile.am b/libanjuta/Makefile.am\n";
48
const gchar header2[] =
49
"index 4ac227e..d47c978 100644\n";
51
const gchar header3[] =
52
"--- a/libanjuta/Makefile.am\n";
54
const gchar header4[] =
55
"+++ b/libanjuta/Makefile.am\n";
57
const gchar hunk_header[] =
58
"@@ -138,7 +138,9 @@ libanjuta_3_la_SOURCES= \\\n";
60
const gchar context[] =
61
" anjuta-close-button.c \\\n";
64
"+ anjuta-modeline.h \\\n";
66
const gchar delete[] =
67
"- anjuta-modeline.h\n";
69
const gchar non_diff[] = "non-diff text";
70
const gchar broken_hunk[] = "@";
72
gtk_init (&argc, &argv);
75
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
76
gtk_window_set_title (GTK_WINDOW (window), "Diff renderer test");
78
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
79
tree_view = gtk_tree_view_new ();
81
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
83
renderer = anjuta_cell_renderer_diff_new ();
84
column = gtk_tree_view_column_new ();
86
gtk_tree_view_column_pack_start (column, renderer, TRUE);
87
gtk_tree_view_column_add_attribute (column, renderer, "diff", COL_DIFF);
88
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
90
gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
91
gtk_container_add (GTK_CONTAINER (window), scrolled_window);
93
list_store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING);
96
gtk_list_store_append (list_store, &iter);
97
gtk_list_store_set (list_store, &iter, COL_DIFF, header1, -1);
99
gtk_list_store_append (list_store, &iter);
100
gtk_list_store_set (list_store, &iter, COL_DIFF, header2, -1);
102
gtk_list_store_append (list_store, &iter);
103
gtk_list_store_set (list_store, &iter, COL_DIFF, header3, -1);
105
gtk_list_store_append (list_store, &iter);
106
gtk_list_store_set (list_store, &iter, COL_DIFF, header4, -1);
108
/* Test hunk headers */
109
gtk_list_store_append (list_store, &iter);
110
gtk_list_store_set (list_store, &iter, COL_DIFF, hunk_header, -1);
113
gtk_list_store_append (list_store, &iter);
114
gtk_list_store_set (list_store, &iter, COL_DIFF, context, -1);
117
gtk_list_store_append (list_store, &iter);
118
gtk_list_store_set (list_store, &iter, COL_DIFF, add, -1);
121
gtk_list_store_append (list_store, &iter);
122
gtk_list_store_set (list_store, &iter, COL_DIFF, delete, -1);
124
/* Test non-diff text */
125
gtk_list_store_append (list_store, &iter);
126
gtk_list_store_set (list_store, &iter, COL_DIFF, non_diff, -1);
128
/* Test broken hunks */
129
gtk_list_store_append (list_store, &iter);
130
gtk_list_store_set (list_store, &iter, COL_DIFF, broken_hunk, -1);
132
/* Test empty and NULL strings */
133
gtk_list_store_append (list_store, &iter);
134
gtk_list_store_set (list_store, &iter, COL_DIFF, "", -1);
136
gtk_list_store_append (list_store, &iter);
137
gtk_list_store_set (list_store, &iter, COL_DIFF, NULL, -1);
139
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view),
140
GTK_TREE_MODEL (list_store));
142
g_signal_connect (G_OBJECT (window), "destroy",
143
G_CALLBACK (on_window_destroy),
146
gtk_widget_set_size_request (window, 650, 400);
148
gtk_widget_show_all (window);
b'\\ No newline at end of file'