GtkWidget * do_textscroll (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *hbox; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); hbox = gtk_hbox_new (TRUE, 6); gtk_container_add (GTK_CONTAINER (window), hbox); create_text_view (hbox, TRUE); create_text_view (hbox, FALSE); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; }
/* static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view) { gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(view)); } */ MainWin *create_main_window(void) { GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; GtkWidget *sw; GtkWidget *view; GtkWidget *statusBar; guint statusBarContext; MainWin *mw = g_malloc(sizeof(MainWin)); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_name(window, PACKAGE_NAME); #if GTK_CHECK_VERSION(2, 6, 0) gtk_window_set_default_icon_name(PACKAGE); #else GdkPixbuf *icon = gdk_pixbuf_new_from_file( ICONDIR G_DIR_SEPARATOR_S PACKAGE ".png", NULL); gtk_window_set_icon(GTK_WINDOW(window), icon); if (icon) g_object_unref(icon); #endif g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(on_file_quit), NULL); g_signal_connect_after(G_OBJECT(window), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); menubar = create_menu_bar(window); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); view = create_text_view(); gtk_container_add(GTK_CONTAINER(sw), view); statusBar = gtk_statusbar_new(); statusBarContext = gtk_statusbar_get_context_id( (GtkStatusbar *) statusBar, "status" ); gtk_statusbar_push( (GtkStatusbar *) statusBar, statusBarContext, " " ); gtk_box_pack_start(GTK_BOX(vbox), statusBar, FALSE, FALSE, 0); mw->window = window; mw->menubar = menubar; mw->view = view; mw->statusBar = (GtkStatusbar *) statusBar; mw->statusBarContext = statusBarContext; mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); return mw; }
/* static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view) { gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(view)); } */ MainWin *create_main_window(void) { GtkWidget *vbox; GtkWidget *sw; MainWin *mw = g_malloc(sizeof(MainWin)); mw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_name(mw->window, PACKAGE_NAME); gtk_window_set_icon_from_file(GTK_WINDOW(mw->window), ICONDIR"/l3afpad.png", NULL); gtk_window_set_default_icon_name(PACKAGE); g_signal_connect(G_OBJECT(mw->window), "delete-event", G_CALLBACK(on_file_quit), NULL); g_signal_connect_after(G_OBJECT(mw->window), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(mw->window), vbox); mw->menubar = create_menu_bar(mw->window); gtk_box_pack_start(GTK_BOX(vbox), gtk_ui_manager_get_widget(mw->menubar, "/M"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_hexpand (sw, TRUE); gtk_widget_set_vexpand (sw, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); mw->view = create_text_view(); gtk_container_add(GTK_CONTAINER(sw), mw->view); mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(mw->view)); return mw; }
/* static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view) { gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(view)); } */ MainWin *create_main_window(void) { GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; GtkWidget *sw; GtkWidget *view; // gint size; // GtkAdjustment *hadj, *vadj; MainWin *mw = g_malloc(sizeof(MainWin)); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); // gtk_window_set_title(GTK_WINDOW(window), PACKAGE_NAME); gtk_widget_set_name(window, PACKAGE_NAME); /* #if GTK_CHECK_VERSION(2, 4, 0) // size = gtk_icon_size_lookup(GTK_ICON_SIZE_LARGE_TOOLBAR, &size, NULL); icon = gtk_icon_theme_load_icon( gtk_icon_theme_get_default(), PACKAGE, 16, // size 0, // flags NULL); gtk_window_set_default_icon(icon); */ #if GTK_CHECK_VERSION(2, 6, 0) gtk_window_set_default_icon_name(PACKAGE); #else GdkPixbuf *icon = gdk_pixbuf_new_from_file( ICONDIR G_DIR_SEPARATOR_S PACKAGE ".png", NULL); gtk_window_set_icon(GTK_WINDOW(window), icon); if (icon) g_object_unref(icon); #endif g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(on_file_quit), NULL); g_signal_connect_after(G_OBJECT(window), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); menubar = create_menu_bar(window); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); view = create_text_view(); gtk_container_add(GTK_CONTAINER(sw), view); /* hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(sw)); vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)); g_signal_connect_after(G_OBJECT(hadj), "value-changed", G_CALLBACK(cb_scroll_event), view); g_signal_connect_after(G_OBJECT(vadj), "value-changed", G_CALLBACK(cb_scroll_event), view); */ mw->window = window; mw->menubar = menubar; mw->view = view; mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); return mw; }