예제 #1
0
파일: textscroll.c 프로젝트: Aridna/gtk2
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;
}
예제 #2
0
파일: window.c 프로젝트: Baltasarq/texted
/*
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;
}
예제 #3
0
파일: window.c 프로젝트: City-busz/l3afpad
/*
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;
}
예제 #4
0
파일: window.c 프로젝트: Aseeker/leafpad
/*
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;
}