Exemple #1
0
/*** 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;
}
Exemple #3
0
/**
 *
 * 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();
}
Exemple #7
0
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;
}
Exemple #8
0
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;
}