/*** SET GFX CONTAINER TO USE FOR SCREEN OUTPUT ***/ static void scr_set_gfx(SCREEN *scr, GFX_CONTAINER *ds) { scr->sd->scr_ds = ds; scr->wd->min_w = scr->wd->max_w = scr->wd->w = gfx->get_width(ds); scr->wd->min_h = scr->wd->max_h = scr->wd->h = gfx->get_height(ds); /* * Now we know the size of the gfx container, * we can create a menubar and desktop */ if (config_menubar) create_menubar(scr); create_desktop(scr); }
static GtkWidget * create_content (GtkWindow *window, gboolean local) { GtkWidget *vbox; GtkWidget *button; GtkWidget *frame; frame = gtk_frame_new (local? "Local" : "Remote"); gtk_container_set_border_width (GTK_CONTAINER (frame), 3); vbox = gtk_vbox_new (TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 3); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Combo */ gtk_box_pack_start (GTK_BOX (vbox), create_combo(), TRUE, TRUE, 0); /* Entry */ gtk_box_pack_start (GTK_BOX (vbox), gtk_entry_new(), TRUE, TRUE, 0); /* Close Button */ button = gtk_button_new_with_mnemonic ("_Close"); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); /* Blink Button */ button = gtk_button_new_with_mnemonic ("_Blink"); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); g_signal_connect (button, "clicked", G_CALLBACK (blink), window); /* Menubar */ gtk_box_pack_start (GTK_BOX (vbox), create_menubar (GTK_WINDOW (window)), TRUE, TRUE, 0); /* Combo Box */ gtk_box_pack_start (GTK_BOX (vbox), create_combo_box (), TRUE, TRUE, 0); add_buttons (NULL, vbox); return frame; }
/** * * init_web_browser * * Initialise the webkit browser * * @parent: Widget to house the browser */ WebBrowser *init_web_browser(GtkWidget *parent) { browser = g_new0(WebBrowser, 1); create_menubar(); create_toolbar(); create_browser(); create_statusbar(); GtkWidget* vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX (vbox), browser->menubar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX (vbox), browser->toolbar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX (vbox), browser->browser_window, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX (vbox), GTK_WIDGET(browser->statusbar), FALSE, FALSE, 0); if (GTK_IS_SCROLLED_WINDOW(parent)) gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(parent), vbox); else gtk_container_add(GTK_CONTAINER (parent), vbox); return browser; }
int main(int argc, char *argv[]) { GtkWidget *window, *vbox; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "USB Counter"); vbox = gtk_vbox_new(FALSE, 1); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); gtk_box_pack_start(GTK_BOX(vbox), create_menubar(window), FALSE, TRUE, 0); gtk_box_pack_end(GTK_BOX(vbox), create_counter(), TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show_all(window); gtk_main(); return 0; }
/* create playlist window, run_updater = 1 will run the title updating * applet = 1 means that the playlist is called from the panel applet, * use 0 otherwise! */ GtkWidget *mpd_win_new(int run_updater, int applet) { int internal_debug = 0; guint mb_page_id = -1; GtkWidget *mpd_win, *hbox, *vbox, *menubar, *statusbar, *label, *frame; GtkWidget *panes, *page, *page_label; /* GtkWidget *lyrics_expander; GtkWidget *lyrics; */ GFunc *quit_proc; gchar label_text[255]; MpdWin.window_creation_finished = 0; /* create the window widget, set its properties */ mpd_win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(mpd_win), 700,500); gtk_window_set_title(GTK_WINDOW(mpd_win), "MPD playlist"); /* get the actual size of the window */ if(internal_debug) { g_signal_connect(G_OBJECT(mpd_win), "size-allocate", G_CALLBACK(print_size), NULL); } if (debug) { fprintf(log_file, "[%s:%3i] %s(): before adding buttons\n", __FILE__, __LINE__, __FUNCTION__); fflush(log_file); } /* add some control buttons */ vbox = gtk_vbox_new(FALSE,0); if(applet == 1) quit_proc = (GFunc *)applet_pl_cleanup_cb; else quit_proc = (GFunc *)quit_procedure; menubar = create_menubar(quit_proc); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE,FALSE, 0); /* * add panes for playlist, media browser, add */ hbox = gtk_hbox_new(FALSE, 10); notConnectedMsg = gtk_label_new("Not connected to MPD daemon"); panes = gtk_notebook_new(); mpdElements = panes; /* Playlist: */ page = init_pl_widget(); page_label = gtk_label_new("Playlist"); gtk_notebook_append_page(GTK_NOTEBOOK(panes), page, page_label); /* Media Browser */ page = NULL; page = init_mb_widget("/"); //page = gtk_label_new("Test"); if(page != NULL) { page_label = gtk_label_new("Media Browser"); mb_page_id = gtk_notebook_append_page(GTK_NOTEBOOK(panes), page, page_label); } else { fprintf(err_file, "[%s:%3i] %s(): error: page == NULL, error in init_mb_widget()\n", __FILE__,__LINE__,__FUNCTION__); fflush(err_file); } // connect signal for the media browser page g_signal_connect(G_OBJECT(panes), "switch-page", G_CALLBACK(page_switched), (guint *)mb_page_id); /* Search dialog */ page = NULL; page = init_search_widget(mpd_win); page_label = gtk_label_new("Search & Add"); gtk_notebook_append_page(GTK_NOTEBOOK(panes), page, page_label); /* song lyrics * TODO: * find out how to prevent * problems on program start, * if server isn't found or similar */ /* page = lyrics_pane(); page_label = gtk_label_new("Song lyrics"); gtk_notebook_append_page(GTK_NOTEBOOK(panes),page,page_label); */ #if 0 if(!applet) { lyrics_expander = gtk_expander_new("Lyrics"); lyrics = lyrics_pane(lyrics_buf); g_signal_connect (G_OBJECT(lyrics_expander), "notify::expanded", G_CALLBACK(lyrics_expander_cb), lyrics); //gtk_expander_set_label_widget(GTK_EXPANDER(lyrics_expander), lyrics_pane()); gtk_container_add(GTK_CONTAINER(lyrics_expander), lyrics); //gtk_widget_set_size_request(lyrics_expander, 300, -1); gtk_box_pack_start(GTK_BOX(hbox), lyrics_expander, FALSE, FALSE, 0); } #endif /* add panes to window */ gtk_box_pack_start(GTK_BOX(hbox), panes, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), notConnectedMsg, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); if (debug) { fprintf(log_file, "[%s:%3i] %s(): before statusbar\n", __FILE__, __LINE__, __FUNCTION__); fflush(log_file); } /* statusbar */ statusbar = gtk_statusbar_new(); /* repeat label */ frame = gtk_frame_new(NULL); if(mpd_info.mps.repeat) label = gtk_label_new("repeat on"); else label = gtk_label_new("repeat off"); gtk_container_add(GTK_CONTAINER(frame), label); /* remember in file scope */ repeat_label = label; gtk_box_set_homogeneous(GTK_BOX(statusbar), FALSE); gtk_box_set_spacing(GTK_BOX(statusbar), 0); gtk_box_pack_start(GTK_BOX(statusbar), frame, FALSE, FALSE, 1); /* random label */ frame = gtk_frame_new(NULL); if(mpd_info.mps.random) label = gtk_label_new("random on"); else label = gtk_label_new("random off"); gtk_container_add(GTK_CONTAINER(frame), label); /* remember in file scope */ random_label = label; gtk_box_set_homogeneous(GTK_BOX(statusbar), FALSE); gtk_box_set_spacing(GTK_BOX(statusbar), 0); gtk_box_pack_start(GTK_BOX(statusbar), frame, FALSE, FALSE, 1); /* crossfade label */ frame = gtk_frame_new(NULL); snprintf(label_text, 255, "crossfade %is", mpd_info.mps.xfade); label = gtk_label_new(label_text); gtk_container_add(GTK_CONTAINER(frame), label); /* remember in file scope */ xfade_label = label; gtk_box_set_homogeneous(GTK_BOX(statusbar), FALSE); gtk_box_set_spacing(GTK_BOX(statusbar), 0); gtk_box_pack_start(GTK_BOX(statusbar), frame, FALSE, FALSE, 1); gtk_box_pack_end(GTK_BOX(vbox), statusbar, FALSE, FALSE, 0); StatusBar = statusbar; /* finishing up */ gtk_container_add(GTK_CONTAINER(mpd_win), vbox); MpdWin.win = mpd_win; /* running auto-update processes (title/statusbar and hide elements when not connected) */ if(run_updater == 1) { if (debug) { fprintf(log_file, "[%s:%3i] %s(): before g_timeout_add()\n", __FILE__, __LINE__, __FUNCTION__); fflush(log_file); } mpd_info.update_routines = g_list_append(mpd_info.update_routines, titlebar_updater); mpd_info.update_routines = g_list_append(mpd_info.update_routines, auto_change_view); g_timeout_add(mpd_info.update_interval, titlebar_updater, (gpointer)mpd_info.update_interval); // hide mpd elements when appropriate g_timeout_add(mpd_info.update_interval, auto_change_view, (gpointer)mpd_info.update_interval); } if(debug) { fprintf(log_file, "[%s:%3i] %s(): before return\n", __FILE__, __LINE__, __FUNCTION__); fflush(log_file); } return mpd_win; }
void Launch_Gtk_Process(int pipe_number) { int argc = 0; gchar **argv = NULL; GtkWidget *button, *mbar, *swin; GtkWidget *table, *align, *handlebox; GtkWidget *vbox, *hbox, *vbox2, *scrolled_win; GtkObject *adj; /* enable locale */ gtk_set_locale (); gtk_init (&argc, &argv); ttip = create_yellow_tooltips(); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_name(window, "TiMidity"); gtk_window_set_title(GTK_WINDOW(window), "TiMidity - MIDI Player"); gtk_window_set_wmclass(GTK_WINDOW(window), "timidity", "TiMidity"); gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); mbar = create_menubar(); gtk_box_pack_start(GTK_BOX(vbox), mbar, FALSE, FALSE, 0); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE ,0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_widget_show(scrolled_win); #ifdef HAVE_GTK_2 text = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); #else text = gtk_text_new(NULL, NULL); #endif gtk_widget_show(text); gtk_container_add(GTK_CONTAINER(scrolled_win), text); hbox = gtk_hbox_new(FALSE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); gtk_widget_show(hbox); adj = gtk_adjustment_new(0., 0., 100., 1., 20., 0.); locator = gtk_hscale_new(GTK_ADJUSTMENT(adj)); gtk_scale_set_draw_value(GTK_SCALE(locator), TRUE); gtk_signal_connect(GTK_OBJECT(adj), "value_changed", GTK_SIGNAL_FUNC(generic_scale_cb), (gpointer)GTK_CHANGE_LOCATOR); gtk_signal_connect(GTK_OBJECT(locator), "button_press_event", GTK_SIGNAL_FUNC(locate_update_cb), NULL); gtk_signal_connect(GTK_OBJECT(locator), "button_release_event", GTK_SIGNAL_FUNC(locate_update_cb), NULL); gtk_range_set_update_policy(GTK_RANGE(locator), GTK_UPDATE_DISCONTINUOUS); gtk_scale_set_digits(GTK_SCALE(locator), 0); gtk_widget_show(locator); gtk_box_pack_start(GTK_BOX(hbox), locator, TRUE, TRUE, 4); align = gtk_alignment_new(0., 1., 1., 0.); gtk_widget_show(align); cnt_lbl = gtk_label_new("00:00"); gtk_widget_show(cnt_lbl); gtk_container_add(GTK_CONTAINER(align), cnt_lbl); gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, TRUE, 0); align = gtk_alignment_new(0., 1., 1., 0.); gtk_widget_show(align); tot_lbl = gtk_label_new("/00:00"); gtk_widget_show(tot_lbl); gtk_container_add(GTK_CONTAINER(align), tot_lbl); gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 4); swin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); clist = gtk_clist_new(1); gtk_container_add(GTK_CONTAINER(swin), clist); gtk_widget_show(swin); gtk_widget_show(clist); gtk_widget_set_usize(clist, 200, 10); gtk_clist_set_reorderable(GTK_CLIST(clist), TRUE); gtk_clist_set_button_actions(GTK_CLIST(clist), 0, GTK_BUTTON_SELECTS); gtk_clist_set_button_actions(GTK_CLIST(clist), 1, GTK_BUTTON_DRAGS); gtk_clist_set_button_actions(GTK_CLIST(clist), 2, GTK_BUTTON_SELECTS); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 1, TRUE); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(file_list_cb), NULL); gtk_box_pack_start(GTK_BOX(hbox), swin, TRUE, TRUE, 0); vbox2 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0); gtk_widget_show(vbox2); /* This is so the pixmap creation works properly. */ gtk_widget_realize(window); set_icon_pixmap(window, timidity_xpm); gtk_box_pack_start(GTK_BOX(vbox2), create_pixmap_label(window, loud_xpm), FALSE, FALSE, 0); adj = gtk_adjustment_new(30., 0., (gfloat)MAX_AMPLIFICATION, 1., 20., 0.); vol_scale = gtk_vscale_new(GTK_ADJUSTMENT(adj)); gtk_scale_set_draw_value(GTK_SCALE(vol_scale), FALSE); gtk_signal_connect (GTK_OBJECT(adj), "value_changed", GTK_SIGNAL_FUNC(generic_scale_cb), (gpointer)GTK_CHANGE_VOLUME); gtk_range_set_update_policy(GTK_RANGE(vol_scale), GTK_UPDATE_DELAYED); gtk_widget_show(vol_scale); gtk_tooltips_set_tip(ttip, vol_scale, "Volume control", NULL); gtk_box_pack_start(GTK_BOX(vbox2), vol_scale, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox2), create_pixmap_label(window, quiet_xpm), FALSE, FALSE, 0); handlebox = gtk_handle_box_new(); gtk_box_pack_start(GTK_BOX(hbox), handlebox, FALSE, FALSE, 0); table = gtk_table_new(7, 2, TRUE); gtk_container_add(GTK_CONTAINER(handlebox), table); button = create_button_with_pixmap(window, playpaus_xpm, GTK_PAUSE, "Play/Pause"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 2, 0, 1); button = create_button_with_pixmap(window, prevtrk_xpm, GTK_PREV, "Previous file"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 1, 2); button = create_button_with_pixmap(window, nexttrk_xpm, GTK_NEXT, "Next file"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 1, 2); button = create_button_with_pixmap(window, rew_xpm, GTK_RWD, "Rewind"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 2, 3); button = create_button_with_pixmap(window, ff_xpm, GTK_FWD, "Fast forward"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 2, 3); button = create_button_with_pixmap(window, keydown_xpm, GTK_KEYDOWN, "Lower pitch"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 3, 4); button = create_button_with_pixmap(window, keyup_xpm, GTK_KEYUP, "Raise pitch"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 3, 4); button = create_button_with_pixmap(window, slow_xpm, GTK_SLOWER, "Decrease tempo"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 4, 5); button = create_button_with_pixmap(window, fast_xpm, GTK_FASTER, "Increase tempo"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 4, 5); button = create_button_with_pixmap(window, restart_xpm, GTK_RESTART, "Restart"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 5, 6); button = create_button_with_pixmap(window, open_xpm, 0, "Open"); #ifdef HAVE_GTK_2 gtk_signal_disconnect_by_func(GTK_OBJECT(button), G_CALLBACK(generic_cb), 0); #else gtk_signal_disconnect_by_func(GTK_OBJECT(button), generic_cb, 0); #endif gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(open_file_cb), 0); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 5, 6); button = create_button_with_pixmap(window, quit_xpm, GTK_QUIT, "Quit"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 2, 6, 7); gtk_widget_show(hbox); gtk_widget_show(vbox); gtk_widget_show(table); gtk_widget_show(handlebox); gtk_widget_show(window); gdk_input_add(pipe_number, GDK_INPUT_READ, handle_input, NULL); gtk_main(); }
int gui_create(application_callback_t run_script_cb, application_callback_t run_command_cb) { GtkWidget *view; GtkWidget *text; GtkWidget *vpaned; GtkWidget *vbox; GtkWidget *entry; GtkWidget *frame1; GtkWidget *frame2; GtkWidget *status; GtkWidget *menu; RUN_LUA_SCRIPT = run_script_cb; RUN_LUA_COMMAND = run_command_cb; MAIN_WINDOW = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(MAIN_WINDOW),600,400); gtk_container_set_border_width (GTK_CONTAINER (MAIN_WINDOW), 0); g_signal_connect (MAIN_WINDOW, "delete_event", gtk_main_quit, NULL); /* dirty */ CARDTREE = cardtree_new(); vbox = gtk_vbox_new (FALSE, 0); vpaned = gtk_vpaned_new (); view = create_view (CARDTREE); frame1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame1),GTK_SHADOW_ETCHED_IN); gtk_container_add (GTK_CONTAINER(frame1),view); gtk_paned_add1 (GTK_PANED (vpaned), frame1); text = create_text (); SCROLL_TEXT = GTK_SCROLLED_WINDOW(text); frame2 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame2),GTK_SHADOW_ETCHED_IN); gtk_container_add (GTK_CONTAINER(frame2),text); gtk_paned_add2 (GTK_PANED (vpaned), frame2); log_activate(gui_logfunction); entry = create_command_entry (); status = gtk_statusbar_new (); menu = create_menubar(MAIN_WINDOW); gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, TRUE, 0); gtk_container_add (GTK_CONTAINER (MAIN_WINDOW), vbox); gtk_widget_show_all (MAIN_WINDOW); /*gtk_widget_size_request(vpaned,&requisition);*/ gtk_paned_set_position(GTK_PANED (vpaned), 256); return 1; }
int main(int argc, char **argv) { BrailleMusicEditor *editor; // allocate the memory needed by our BrailleMusicEditor struct editor = g_slice_new (BrailleMusicEditor); //initialize GTK+ libraries gtk_init(&argc, &argv); ev_init(); // Creation of the main window create_window("BMC",600,400, editor); editor->vbox = gtk_vbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(editor->window), editor->vbox); //Creation of the menubar create_menubar(editor); gtk_box_pack_start(GTK_BOX(editor->vbox), editor->menubar, FALSE, FALSE, 0); // Creation of the toolbar create_toolbar(editor); gtk_box_pack_start(GTK_BOX(editor->vbox), editor->toolbar, FALSE, FALSE, 2); //Creation of the two text views with scrollbars editor->hbox = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(editor->vbox), editor->hbox); editor->edit_scrollbar = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(editor->edit_scrollbar), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(editor->hbox),editor->edit_scrollbar, TRUE, TRUE, 5); editor->textview=gtk_source_view_new(); //show line number gtk_source_view_set_show_line_numbers(GTK_SOURCE_VIEW(editor->textview), TRUE); g_signal_connect(gtk_text_view_get_buffer(GTK_TEXT_VIEW(editor->textview)), "changed", G_CALLBACK(on_text_changed), editor); gtk_container_add(GTK_CONTAINER(editor->edit_scrollbar), editor->textview); //lexical coloration auto update g_signal_connect(gtk_text_view_get_buffer(GTK_TEXT_VIEW(editor->textview)), "changed", G_CALLBACK(coloration_update), editor); //score view editor->score_scrollbar = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(editor->hbox),editor->score_scrollbar, TRUE, TRUE, 5); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(editor->score_scrollbar), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); editor->score_view = ev_view_new(); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(editor->score_scrollbar), editor->score_view); show_score(editor); gtk_widget_grab_focus(editor->textview); //Creation of the message error views with scrollbar editor->error_scrollbar = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(editor->vbox),editor->error_scrollbar, FALSE, TRUE, 0); gtk_widget_set_size_request (editor->error_scrollbar, -1, 100); gtk_container_set_border_width(GTK_CONTAINER(editor->error_scrollbar), 5); editor->error_view = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(editor->error_view), FALSE); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(editor->error_scrollbar), editor->error_view); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(editor->error_scrollbar), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); // show the window gtk_widget_show_all(editor->window); // enter GTK+ main loop gtk_main(); // free memory we allocated for BrailleMusicEditor struct g_slice_free (BrailleMusicEditor, editor); return EXIT_SUCCESS; }