176 |
gsize bytes_read, bytes_written; |
gsize bytes_read, bytes_written; |
177 |
G_CONST_RETURN char **charset; |
G_CONST_RETURN char **charset; |
178 |
|
|
179 |
|
gint num_vis_lines = 0, current_line_index = 0, last_line_index; |
180 |
|
gint x, y, line_top, AuxHeight, AuxWidth; |
181 |
|
GtkWidget **LineNumberDisplay; |
182 |
|
GtkWidget *AuxBox; |
183 |
|
GdkWindow *AuxWindow; |
184 |
|
GtkTextIter iter; |
185 |
|
|
186 |
START_FCN |
START_FCN |
187 |
|
|
188 |
Buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Editor)); |
Buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Editor)); |
226 |
} |
} |
227 |
else |
else |
228 |
{ |
{ |
229 |
/* fix me, let the user choose the charset */ |
/* fix me, let the user choose the charset */ |
230 |
g_get_charset(charset); |
g_get_charset(charset); |
231 |
buffer = g_convert_with_fallback(buffer, strlen(buffer), |
buffer = g_convert_with_fallback(buffer, strlen(buffer), |
232 |
"UTF-8", "ISO-8859-1", "[INVALID CHAR]", |
"UTF-8", "ISO-8859-1", "[INVALID CHAR]", |
252 |
// } |
// } |
253 |
} |
} |
254 |
} |
} |
255 |
|
|
256 |
|
|
257 |
|
/* display line numbers */ |
258 |
|
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW(FPROPS(CurrentPage, Text)), GTK_TEXT_WINDOW_TEXT, 0, 0, &x, &y); |
259 |
|
gtk_text_view_get_line_at_y (GTK_TEXT_VIEW(FPROPS(CurrentPage, Text)), &iter, y, &line_top); |
260 |
|
|
261 |
|
gtk_text_view_set_border_window_size (GTK_TEXT_VIEW(FPROPS(CurrentPage, Text)), |
262 |
|
GTK_TEXT_WINDOW_LEFT, 50); |
263 |
|
AuxWindow = gtk_text_view_get_window (GTK_TEXT_VIEW(FPROPS(CurrentPage, Text)), |
264 |
|
GTK_TEXT_WINDOW_LEFT); /* FIXME: should be able to put this on the righthand side */ |
265 |
|
|
266 |
|
|
267 |
|
gtk_window_get_size(GTK_WINDOW(AuxWindow), &AuxWidth, &AuxHeight); |
268 |
|
g_printf("auxwindow size: %dx%d\n", AuxWidth, AuxHeight); |
269 |
|
AuxBox = gtk_fixed_new(); |
270 |
|
gtk_container_add(GTK_CONTAINER(AuxWindow), AuxBox); |
271 |
|
|
272 |
|
|
273 |
|
while (y < AuxHeight) |
274 |
|
{ |
275 |
|
current_line_index = gtk_text_iter_get_line (&iter); |
276 |
|
if (current_line_index > last_line_index) |
277 |
|
{ |
278 |
|
gtk_text_view_buffer_to_window_coords (GTK_TEXT_VIEW(FPROPS(CurrentPage, Text)), GTK_TEXT_WINDOW_TEXT, x, line_top, &x, &y); |
279 |
|
LineNumberDisplay[num_vis_lines] = gtk_label_new(g_strdup_printf("%s", current_line_index)); |
280 |
|
gtk_fixed_put(GTK_FIXED(AuxBox), LineNumberDisplay[num_vis_lines], 5, y); |
281 |
|
num_vis_lines++; |
282 |
|
} |
283 |
|
gtk_text_iter_forward_line(&iter); |
284 |
|
} |
285 |
|
|
286 |
|
/* end line number stuff */ |
287 |
|
|
288 |
gtk_text_buffer_get_start_iter(Buffer, &start); |
gtk_text_buffer_get_start_iter(Buffer, &start); |
289 |
gtk_text_buffer_place_cursor(Buffer, &start); |
gtk_text_buffer_place_cursor(Buffer, &start); |
290 |
gtk_widget_grab_focus(Editor); |
gtk_widget_grab_focus(Editor); |