Created
May 11, 2015 14:58
-
-
Save romiras/b89b9dc371c998402bd5 to your computer and use it in GitHub Desktop.
GTK+ pipe viewer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Simple GTK+ pipe viewer | |
Contributors: Romiras | |
Based on paned.c | |
LICENSE: GNU GPLv3 | |
*/ | |
#include <stdio.h> | |
#include <unistd.h> | |
#include <gtk/gtk.h> | |
char input_buf[BUFSIZ]; | |
void insert_text (GtkTextBuffer *buffer, FILE *file) | |
{ | |
GtkTextIter iter; | |
int n; | |
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0); | |
while((n = read(0, input_buf, sizeof(input_buf))) != 0){ | |
gtk_text_buffer_insert(buffer, &iter, input_buf, -1); | |
} | |
} | |
GtkWidget *create_text( void ) | |
{ | |
GtkWidget *scrolled_window; | |
GtkWidget *view; | |
GtkTextBuffer *buffer; | |
view = gtk_text_view_new (); | |
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); | |
scrolled_window = gtk_scrolled_window_new (NULL, NULL); | |
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), | |
GTK_POLICY_AUTOMATIC, | |
GTK_POLICY_AUTOMATIC); | |
gtk_container_add (GTK_CONTAINER (scrolled_window), view); | |
insert_text (buffer, stdin); | |
gtk_widget_show_all (scrolled_window); | |
return scrolled_window; | |
} | |
int main( int argc, char *argv[] ) | |
{ | |
GtkWidget *window; | |
GtkWidget *text; | |
gtk_init (&argc, &argv); | |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
gtk_window_set_title (GTK_WINDOW (window), "Pipe text viewer"); | |
g_signal_connect (G_OBJECT (window), "destroy", | |
G_CALLBACK (gtk_main_quit), NULL); | |
gtk_container_set_border_width (GTK_CONTAINER (window), 10); | |
gtk_widget_set_size_request (GTK_WIDGET (window), 800, 600); | |
text = create_text (); | |
gtk_container_add (GTK_CONTAINER (window), text); | |
gtk_widget_show (text); | |
gtk_widget_show (window); | |
gtk_main (); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment