?
puh,
alos kann wirklich nur nen teil posten, da alles viel zu viel wäre:
// GUARDIAN CANCEL VIEWER
cancelWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
// true: all widgets in box have same size, with distance of 5 between the widgets
cancelHbox = gtk_hbox_new(TRUE, 5);
cancelTv1 = gtk_text_view_new();
cancelTv2 = gtk_text_view_new();
scrollwindow1 = gtk_scrolled_window_new(NULL, NULL);
scrollwindow2 = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwindow1), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
// settings for cwindow
gtk_container_set_border_width (GTK_CONTAINER (cancelWindow), 5);
// Sets that the window has no frame
gtk_window_set_decorated (GTK_WINDOW (cancelWindow), false);
gtk_window_set_type_hint(GTK_WINDOW(cancelWindow), GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_transient_for(GTK_WINDOW(cancelWindow), GTK_WINDOW(window));
// settings for textviews
gtk_text_view_set_editable(GTK_TEXT_VIEW(cancelTv1), false);
gtk_text_view_set_editable(GTK_TEXT_VIEW(cancelTv2), false);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(cancelTv1), false);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(cancelTv2), false);
// no wrapping of lines
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(cancelTv1), GTK_WRAP_NONE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(cancelTv2), GTK_WRAP_NONE);
// put textviews in hbox`
gtk_container_add(GTK_CONTAINER(scrollwindow1), cancelTv1);
gtk_container_add(GTK_CONTAINER(scrollwindow2), cancelTv2);
gtk_container_add(GTK_CONTAINER(cancelHbox), scrollwindow1);
gtk_container_add(GTK_CONTAINER(cancelHbox), scrollwindow2);
// Pack the hbox in the main cancel viewer window
gtk_container_add (GTK_CONTAINER (cancelWindow), cancelHbox);
***************************************************************
// hierüber wird das file eingelesen udn zeilenweise mit der funktion die darunter steht, in text view geschrieben
// wird zweimal aufgerufen, einmal für linke textview, andere mal für 2. textview
firstline = 1;
if (file.is_open())
{
while (! file.eof())
{
if (firstline != 1)
{
writeTextView(textview, "\n");
}
firstline++;
getline(file, line);
writeTextView(textview, line);
}
file.close();
***********************************************************
void FtpDownload::writeTextView(GtkWidget* textview, string text)
{
GtkTextBuffer* buffer;
GtkTextIter textiterend;
buffer = gtk_text_buffer_new(NULL);
// get text in textview
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
// get mark with last text character and add new text there
gtk_text_buffer_get_end_iter(buffer, &textiterend);
gtk_text_buffer_insert(buffer, &textiterend, text.c_str(), -1);
//g_free(buffer);
}
problem ist, wenn der text über die größe der textview hinausgeht. dann stürzt mir das programm ab