예제 #1
0
static GtkWidget *
normal_contents (void)
{
  GtkWidget *table;
  GtkWidget *toolbar;
  GtkWidget *handlebox;
  GtkWidget *statusbar;
  GtkWidget *contents;
  GtkWidget *sw;
  GtkItemFactory *item_factory;
      
  table = gtk_table_new (1, 4, FALSE);
  
  /* Create the menubar
   */
      
  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", NULL);

  gtk_item_factory_set_translate_func(item_factory,
				      (GtkTranslateFunc)gettext, NULL, NULL);

  /* Set up item factory to go away */
  g_object_ref (item_factory);
  g_object_ref_sink (item_factory);
  g_object_unref (item_factory);
  g_object_set_data_full (G_OBJECT (table),
                          "<main>",
                          item_factory,
                          (GDestroyNotify) g_object_unref);

  /* create menu items */
  gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
                                 menu_items, NULL);

  gtk_table_attach (GTK_TABLE (table),
                    gtk_item_factory_get_widget (item_factory, "<main>"),
                    /* X direction */          /* Y direction */
                    0, 1,                      0, 1,
                    GTK_EXPAND | GTK_FILL,     0,
                    0,                         0);

  /* Create the toolbar
   */
  toolbar = gtk_toolbar_new ();

  GtkToolItem *newButton = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
  gtk_tool_item_set_tooltip_text(newButton,
				 "Open another one of these windows");
  gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
		     newButton,
		     -1); /*-1 means append to end of toolbar*/

  GtkToolItem *openButton = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
  gtk_tool_item_set_tooltip_text(openButton,
				 "This is a demo button with an \'open\' icon");
  gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
		     openButton,
		     -1); /*-1 means append to end of toolbar*/

  GtkToolItem *quitButton = gtk_tool_button_new_from_stock(GTK_STOCK_QUIT);
  gtk_tool_item_set_tooltip_text(quitButton,
				 "This is a demo button with a \'quit\' icon");
  gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
		     quitButton,
		     -1); /*-1 means append to end of toolbar*/


  handlebox = gtk_handle_box_new ();

  gtk_container_add (GTK_CONTAINER (handlebox), toolbar);
      
  gtk_table_attach (GTK_TABLE (table),
                    handlebox,
                    /* X direction */       /* Y direction */
                    0, 1,                   1, 2,
                    GTK_EXPAND | GTK_FILL,  0,
                    0,                      0);

  /* Create document
   */

  sw = gtk_scrolled_window_new (NULL, NULL);

  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
                                  GTK_POLICY_AUTOMATIC,
                                  GTK_POLICY_AUTOMATIC);

  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
                                       GTK_SHADOW_IN);
      
  gtk_table_attach (GTK_TABLE (table),
                    sw,
                    /* X direction */       /* Y direction */
                    0, 1,                   2, 3,
                    GTK_EXPAND | GTK_FILL,  GTK_EXPAND | GTK_FILL,
                    0,                      0);
      
  contents = gtk_text_view_new ();
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (contents),
                               PANGO_WRAP_WORD);
      
  gtk_container_add (GTK_CONTAINER (sw),
                     contents);

  /* Create statusbar */

  statusbar = gtk_statusbar_new ();
  gtk_table_attach (GTK_TABLE (table),
                    statusbar,
                    /* X direction */       /* Y direction */
                    0, 1,                   3, 4,
                    GTK_EXPAND | GTK_FILL,  0,
                    0,                      0);

  gtk_widget_show_all (table);

  return table;
}
예제 #2
0
파일: testsocket.c 프로젝트: Aridna/gtk2
int
main (int argc, char *argv[])
{
  GtkWidget *button;
  GtkWidget *hbox;
  GtkWidget *vbox;
  GtkWidget *entry;
  GtkWidget *checkbutton;
  GtkAccelGroup *accel_group;
  GtkItemFactory *item_factory;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  g_signal_connect (window, "destroy",
		    G_CALLBACK (gtk_main_quit), NULL);
  
  gtk_window_set_title (GTK_WINDOW (window), "Socket Test");
  gtk_container_set_border_width (GTK_CONTAINER (window), 0);

  vbox = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (window), vbox);

  accel_group = gtk_accel_group_new ();
  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);

  
  gtk_item_factory_create_items (item_factory,
				 G_N_ELEMENTS (menu_items), menu_items,
				 NULL);
      
  gtk_box_pack_start (GTK_BOX (vbox),
		      gtk_item_factory_get_widget (item_factory, "<main>"),
		      FALSE, FALSE, 0);

  button = gtk_button_new_with_label ("Add Active Child");
  gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);

  g_signal_connect_swapped (button, "clicked",
			    G_CALLBACK (add_active_child), vbox);

  button = gtk_button_new_with_label ("Add Passive Child");
  gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);

  g_signal_connect_swapped (button, "clicked",
			    G_CALLBACK (add_passive_child), vbox);

  button = gtk_button_new_with_label ("Add Local Active Child");
  gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);

  g_signal_connect_swapped (button, "clicked",
			    G_CALLBACK (add_local_active_child), vbox);

  button = gtk_button_new_with_label ("Add Local Passive Child");
  gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);

  g_signal_connect_swapped (button, "clicked",
			    G_CALLBACK (add_local_passive_child), vbox);

  button = gtk_button_new_with_label ("Remove Last Child");
  gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);

  g_signal_connect_swapped (button, "clicked",
			    G_CALLBACK (remove_child), vbox);

  checkbutton = gtk_check_button_new_with_label ("Grab keyboard");
  gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, FALSE, 0);

  g_signal_connect (checkbutton, "toggled",
		    G_CALLBACK (grab_window_toggled),
		    window);

  hbox = gtk_hbox_new (FALSE, 0);
  gtk_box_pack_start (GTK_BOX(vbox), hbox, FALSE, FALSE, 0);

  entry = gtk_entry_new ();
  gtk_box_pack_start (GTK_BOX(hbox), entry, FALSE, FALSE, 0);

  button = gtk_button_new_with_label ("Steal");
  gtk_box_pack_start (GTK_BOX(hbox), button, FALSE, FALSE, 0);

  g_signal_connect (button, "clicked",
		    G_CALLBACK (steal),
		    entry);

  hbox = gtk_hbox_new (FALSE, 0);
  gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);

  box = hbox;
  
  gtk_widget_show_all (window);

  gtk_main ();

  if (n_children)
    {
      g_print ("Waiting for children to exit\n");

      while (n_children)
	g_main_context_iteration (NULL, TRUE);
    }

  return 0;
}
예제 #3
0
void _HYGWindow::_SetMenuBar(void)
{
    _HYWindow::_SetMenuBar();
    gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Copy"),  TRUE);
}
예제 #4
0
파일: main.c 프로젝트: chaos8/l3afpad
gint main(gint argc, gchar **argv)
{
	Conf *conf;
	gchar *stdin_data = NULL;

	bindtextdomain(PACKAGE, LOCALEDIR);
	bind_textdomain_codeset(PACKAGE, "UTF-8");
	textdomain(PACKAGE);

	pub = g_malloc(sizeof(PublicData));
	pub->fi = g_malloc(sizeof(FileInfo));
	pub->fi->filename     = NULL;
	pub->fi->charset      = NULL;
	pub->fi->charset_flag = FALSE;
	pub->fi->lineend      = LF;

	parse_args(argc, argv, pub->fi);

#if !ENABLE_XINPUT2
	gdk_disable_multidevice();
#endif

	gtk_init(&argc, &argv);
	g_set_application_name(PACKAGE_NAME);

	pub->mw = create_main_window();

	conf = g_malloc(sizeof(Conf));
	conf->width       = 600;
	conf->height      = 400;
	conf->fontname    = g_strdup("Monospace 12");
	conf->wordwrap    = FALSE;
	conf->linenumbers = FALSE;
	conf->autoindent  = FALSE;

	load_config_file(conf);

	gtk_window_set_default_size(
		GTK_WINDOW(pub->mw->window), conf->width, conf->height);
	set_text_font_by_name(pub->mw->view, conf->fontname);

	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
		gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/WordWrap")),
		conf->wordwrap);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
		gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/LineNumbers")),
		conf->linenumbers);
	indent_refresh_tab_width(pub->mw->view);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
		gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/AutoIndent")),
		conf->autoindent);

	gtk_widget_show_all(pub->mw->window);
	g_free(conf->fontname);
	g_free(conf);

#if ENABLE_EMACS
	check_emacs_key_theme(GTK_WINDOW(pub->mw->window), pub->mw->menubar);
#endif

	hlight_init(pub->mw->buffer);
	undo_init(pub->mw->view,
		gtk_item_factory_get_widget(pub->mw->menubar, "/M/Edit/Undo"),
		gtk_item_factory_get_widget(pub->mw->menubar, "/M/Edit/Redo"));
//	hlight_init(pub->mw->buffer);
	dnd_init(pub->mw->view);

	if (pub->fi->filename)
		file_open_real(pub->mw->view, pub->fi);
#ifdef G_OS_UNIX
	else
		stdin_data = gedit_utils_get_stdin();
#endif
	if (stdin_data) {
		gchar *str;
		GtkTextIter iter;

		str = g_convert(stdin_data, -1, "UTF-8",
			get_default_charset(), NULL, NULL, NULL);
		g_free(stdin_data);

//		gtk_text_buffer_set_text(buffer, "", 0);
		gtk_text_buffer_get_start_iter(pub->mw->buffer, &iter);
		gtk_text_buffer_insert(pub->mw->buffer, &iter, str, strlen(str));
		gtk_text_buffer_get_start_iter(pub->mw->buffer, &iter);
		gtk_text_buffer_place_cursor(pub->mw->buffer, &iter);
		gtk_text_buffer_set_modified(pub->mw->buffer, FALSE);
		gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(pub->mw->view), &iter, 0, FALSE, 0, 0);
		g_free(str);
	}

	if (jump_linenum) {
		GtkTextIter iter;

		gtk_text_buffer_get_iter_at_line(pub->mw->buffer, &iter, jump_linenum - 1);
		gtk_text_buffer_place_cursor(pub->mw->buffer, &iter);
//		gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview), &iter, 0.1, FALSE, 0.5, 0.5);
		scroll_to_cursor(pub->mw->buffer, 0.25);
	}

	set_main_window_title();
//	hlight_apply_all(pub->mw->buffer);

	gtk_main();

	return 0;
}
예제 #5
0
void GUI_CreateSpeedDialWindow(void)
{
	int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
	GtkItemFactory *item_factory;
	GtkAccelGroup *accel_group;
	SortColumn *sColumn;
	GtkWidget *menubar;
	GtkWidget *main_vbox;
	GtkWidget *toolbar;
	GtkWidget *clistScrolledWindow;
	register gint i;
	gchar *titles[3] = { _("Key"), _("Name"), _("Number") };


	InitMainMenu();
	GUI_SpeedDialWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_wmclass(GTK_WINDOW(GUI_SpeedDialWindow), "SpeedDialWindow", "Xgnokii");
	gtk_window_set_title(GTK_WINDOW(GUI_SpeedDialWindow), _("Speed Dial"));
	gtk_widget_set_usize(GTK_WIDGET(GUI_SpeedDialWindow), 350, 220);
	//gtk_container_set_border_width (GTK_CONTAINER (GUI_SpeedDialWindow), 10);
	gtk_signal_connect(GTK_OBJECT(GUI_SpeedDialWindow), "delete_event",
			   GTK_SIGNAL_FUNC(DeleteEvent), NULL);
	gtk_widget_realize(GUI_SpeedDialWindow);

	accel_group = gtk_accel_group_new();
	item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group);

	gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL);

	gtk_window_add_accel_group(GTK_WINDOW(GUI_SpeedDialWindow), accel_group);

	/* Finally, return the actual menu bar created by the item factory. */
	menubar = gtk_item_factory_get_widget(item_factory, "<main>");

	main_vbox = gtk_vbox_new(FALSE, 1);
	gtk_container_border_width(GTK_CONTAINER(main_vbox), 1);
	gtk_container_add(GTK_CONTAINER(GUI_SpeedDialWindow), main_vbox);
	gtk_widget_show(main_vbox);

	gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, FALSE, 0);
	gtk_widget_show(menubar);

	/* Create the toolbar */

	toolbar = gtk_toolbar_new();
	gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
	gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar), GTK_ORIENTATION_HORIZONTAL);

	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, _("Read from phone"), NULL,
				NewPixmap(Read_xpm, GUI_SpeedDialWindow->window,
					  &GUI_SpeedDialWindow->style->bg[GTK_STATE_NORMAL]),
				(GtkSignalFunc) ReadSpeedDial, NULL);
	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, _("Save to phone"), NULL,
				NewPixmap(Send_xpm, GUI_SpeedDialWindow->window,
					  &GUI_SpeedDialWindow->style->bg[GTK_STATE_NORMAL]),
				(GtkSignalFunc) SaveSpeedDial, NULL);

	gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));

	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, _("Import from file"), NULL,
				NewPixmap(Open_xpm, GUI_SpeedDialWindow->window,
					  &GUI_SpeedDialWindow->style->bg[GTK_STATE_NORMAL]),
				(GtkSignalFunc) ImportSpeedDial, NULL);
	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, _("Export to file"), NULL,
				NewPixmap(Save_xpm, GUI_SpeedDialWindow->window,
					  &GUI_SpeedDialWindow->style->bg[GTK_STATE_NORMAL]),
				(GtkSignalFunc) ExportSpeedDial, NULL);

	gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));

	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, _("Edit entry"), NULL,
				NewPixmap(Edit_xpm, GUI_SpeedDialWindow->window,
					  &GUI_SpeedDialWindow->style->bg[GTK_STATE_NORMAL]),
				(GtkSignalFunc) EditKey, NULL);

	gtk_box_pack_start(GTK_BOX(main_vbox), toolbar, FALSE, FALSE, 0);
	gtk_widget_show(toolbar);

	clist = gtk_clist_new_with_titles(3, titles);
	gtk_clist_set_shadow_type(GTK_CLIST(clist), GTK_SHADOW_OUT);
//  gtk_clist_set_compare_func (GTK_CLIST (clist), CListCompareFunc);
	gtk_clist_set_sort_column(GTK_CLIST(clist), 0);
	gtk_clist_set_sort_type(GTK_CLIST(clist), GTK_SORT_ASCENDING);
	gtk_clist_set_auto_sort(GTK_CLIST(clist), FALSE);
	//gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);

	gtk_clist_set_column_width(GTK_CLIST(clist), 1, 150);
	gtk_clist_set_column_width(GTK_CLIST(clist), 2, 115);
	gtk_clist_set_column_justification(GTK_CLIST(clist), 0, GTK_JUSTIFY_CENTER);
//  gtk_clist_set_column_visibility (GTK_CLIST (clist), 3, xgnokiiConfig.callerGroupsSupported);

	for (i = 0; i < 3; i++) {
		if ((sColumn = g_malloc(sizeof(SortColumn))) == NULL) {
			g_print(_("Error: %s: line %d: Can't allocate memory!\n"), __FILE__, __LINE__);
			gtk_main_quit();
		}
		sColumn->clist = clist;
		sColumn->column = i;
		gtk_signal_connect(GTK_OBJECT(GTK_CLIST(clist)->column[i].button), "clicked",
				   GTK_SIGNAL_FUNC(SetSortColumn), (gpointer) sColumn);
	}

	gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(ClickEntry), NULL);

	clistScrolledWindow = gtk_scrolled_window_new(NULL, NULL);
	gtk_container_add(GTK_CONTAINER(clistScrolledWindow), clist);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(clistScrolledWindow),
				       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_box_pack_start(GTK_BOX(main_vbox), clistScrolledWindow, TRUE, TRUE, 0);

	gtk_widget_show(clist);
	gtk_widget_show(clistScrolledWindow);

	questMark.pixmap = gdk_pixmap_create_from_xpm_d(GUI_SpeedDialWindow->window,
							&questMark.mask,
							&GUI_SpeedDialWindow->style->
							bg[GTK_STATE_NORMAL], quest_xpm);

	CreateErrorDialog(&errorDialog, GUI_SpeedDialWindow);
	CreateInfoDialog(&infoDialog, GUI_SpeedDialWindow);
	speedDialInitialized = FALSE;
}
예제 #6
0
파일: gui_menubar.c 프로젝트: EQ4/phasex
/*****************************************************************************
 * create_menubar()
 *****************************************************************************/
void
create_menubar(GtkWidget *main_window, GtkWidget *box)
{
	GtkAccelGroup   *accel_group;
	GtkItemFactory  *item_factory;
#ifdef CUSTOM_FONTS_IN_MENUS
	GtkWidget       *widget;
#endif
	int             mem_mode        = setting_bank_mem_mode;

	/* create item factory with associated accel group */
	accel_group = gtk_accel_group_new();
	item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group);

	/* build menubar and menus with the item factory */
	gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL);

	/* handle check and radio items */

	/* fullscreen checkbox */
	menu_item_fullscreen = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/View/FullScreen"));
	gtk_check_menu_item_set_active(menu_item_fullscreen, setting_fullscreen);

	/* window layout radio group */
	menu_item_notebook   = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/View/Notebook"));
	menu_item_one_page   = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/View/One Page"));
	menu_item_widescreen = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/View/WideScreen"));

	switch (setting_window_layout) {
	case LAYOUT_NOTEBOOK:
		if (!gtk_check_menu_item_get_active(menu_item_notebook)) {
			gtk_check_menu_item_set_active(menu_item_notebook, TRUE);
		}
		break;
	case LAYOUT_ONE_PAGE:
		if (!gtk_check_menu_item_get_active(menu_item_one_page)) {
			gtk_check_menu_item_set_active(menu_item_one_page, TRUE);
		}
		break;
	case LAYOUT_WIDESCREEN:
		if (!gtk_check_menu_item_get_active(menu_item_widescreen)) {
			gtk_check_menu_item_set_active(menu_item_widescreen, TRUE);
		}
		break;
	}

	/* jack manual/auto radio group */
	menu_item_autoconnect   = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/JACK/Autoconnect"));
	menu_item_manualconnect = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/JACK/Manual Connect"));

	if (setting_jack_autoconnect) {
		if (!gtk_check_menu_item_get_active(menu_item_autoconnect)) {
			gtk_check_menu_item_set_active(menu_item_autoconnect, TRUE);
		}
	}
	else {
		if (!gtk_check_menu_item_get_active(menu_item_manualconnect)) {
			gtk_check_menu_item_set_active(menu_item_manualconnect, TRUE);
		}
	}

	/* jack stereo/multi radio group */
	menu_item_stereo_out    = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/JACK/Stereo Output"));
	menu_item_multi_out     = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/JACK/Multi-Part Output"));

	if (setting_jack_multi_out) {
		if (!gtk_check_menu_item_get_active(menu_item_multi_out)) {
			gtk_check_menu_item_set_active(menu_item_multi_out, TRUE);
		}
	}
	else {
		if (!gtk_check_menu_item_get_active(menu_item_stereo_out)) {
			gtk_check_menu_item_set_active(menu_item_stereo_out, TRUE);
		}
	}


	/* midi channel radio group */
#if MAX_PARTS > 1
	menu_item_part[0]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/1"));
	menu_item_part[1]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/2"));
#endif
#if MAX_PARTS > 2
	menu_item_part[2]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/3"));
#endif
#if MAX_PARTS > 3
	menu_item_part[3]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/4"));
#endif
#if MAX_PARTS > 4
	menu_item_part[4]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/5"));
#endif
#if MAX_PARTS > 5
	menu_item_part[5]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/6"));
#endif
#if MAX_PARTS > 6
	menu_item_part[6]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/7"));
#endif
#if MAX_PARTS > 7
	menu_item_part[7]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/8"));
#endif
#if MAX_PARTS > 8
	menu_item_part[8]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/9"));
#endif
#if MAX_PARTS > 9
	menu_item_part[9]  = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/10"));
#endif
#if MAX_PARTS > 10
	menu_item_part[10] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/11"));
#endif
#if MAX_PARTS > 11
	menu_item_part[11] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/12"));
#endif
#if MAX_PARTS > 12
	menu_item_part[12] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/13"));
#endif
#if MAX_PARTS > 13
	menu_item_part[13] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/14"));
#endif
#if MAX_PARTS > 14
	menu_item_part[14] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/15"));
#endif
#if MAX_PARTS > 15
	menu_item_part[15] = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/Part/16"));
#endif

#if MAX_PARTS > 1
	if (visible_part_num <= 16) {
		gtk_check_menu_item_set_active(menu_item_part[visible_part_num], TRUE);
	}
#endif

	/* Bank memory mode radio group */
	bank_mem_menu_item[BANK_MEM_AUTOSAVE] = menu_item_autosave = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Autosave"));
	bank_mem_menu_item[BANK_MEM_WARN]     = menu_item_warn     = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Warn"));
	bank_mem_menu_item[BANK_MEM_PROTECT]  = menu_item_protect  = GTK_CHECK_MENU_ITEM
		(gtk_item_factory_get_item(item_factory, "/Patch/Bank Memory Protect"));

	switch (mem_mode) {
	case BANK_MEM_AUTOSAVE:
		gtk_check_menu_item_set_active(menu_item_autosave, TRUE);
		break;
	case BANK_MEM_PROTECT:
		gtk_check_menu_item_set_active(menu_item_protect, TRUE);
		break;
	case BANK_MEM_WARN:
		gtk_check_menu_item_set_active(menu_item_warn, TRUE);
		break;
	}

	/* ALSA Menu */
	alsa_menu_item         = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory,
	                                                                 "/ALSA"));
	alsa_pcm_hw_menu_item  = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory,
	                                                                 "/ALSA/ALSA PCM HW"));
	alsa_seq_hw_menu_item  = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory,
	                                                                 "/ALSA/ALSA Seq HW"));
	alsa_seq_sw_menu_item  = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory,
	                                                                 "/ALSA/ALSA Seq SW"));
	alsa_rawmidi_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory,
	                                                                 "/ALSA/ALSA Raw MIDI"));

	widget_set_custom_font(GTK_WIDGET(alsa_menu_item), phasex_font_desc);
	widget_set_custom_font(GTK_WIDGET(alsa_pcm_hw_menu_item), phasex_font_desc);
	widget_set_custom_font(GTK_WIDGET(alsa_seq_hw_menu_item), phasex_font_desc);
	widget_set_custom_font(GTK_WIDGET(alsa_seq_sw_menu_item), phasex_font_desc);
	widget_set_custom_font(GTK_WIDGET(alsa_rawmidi_menu_item), phasex_font_desc);

	if ((setting_midi_driver == MIDI_DRIVER_ALSA_SEQ) ||
	    (setting_midi_driver == MIDI_DRIVER_RAW_ALSA) ||
	    (setting_audio_driver == AUDIO_DRIVER_ALSA_PCM)) {
		gtk_widget_set_sensitive(GTK_WIDGET(alsa_menu_item), TRUE);
	}
	else {
		gtk_widget_set_sensitive(GTK_WIDGET(alsa_menu_item), FALSE);
	}

	/* Connect handler to build ALSA submenus */
	g_signal_connect(G_OBJECT(alsa_menu_item),
	                 "activate",
	                 GTK_SIGNAL_FUNC(on_alsa_menu_activate),
	                 (gpointer) 0);

	/* JACK Menu */
	jack_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/JACK"));
	jack_midi_menu_item = GTK_MENU_ITEM(gtk_item_factory_get_item(item_factory, "/JACK/MIDI"));

	widget_set_custom_font(GTK_WIDGET(jack_menu_item), phasex_font_desc);
	widget_set_custom_font(GTK_WIDGET(jack_midi_menu_item), phasex_font_desc);

	if (setting_audio_driver == AUDIO_DRIVER_JACK) {
		gtk_widget_set_sensitive(GTK_WIDGET(jack_menu_item), TRUE);
	}
	else {
		gtk_widget_set_sensitive(GTK_WIDGET(jack_menu_item), FALSE);
	}

	/* Connect handler to build JACK submenus */
	g_signal_connect(G_OBJECT(jack_menu_item),
	                 "activate",
	                 GTK_SIGNAL_FUNC(on_jack_menu_activate),
	                 (gpointer) 0);

	/* attach menubar's accel group to main window */
	gtk_window_add_accel_group(GTK_WINDOW(main_window), accel_group);

	/* add the menubar to the box passed in to this function */
	main_menubar = gtk_item_factory_get_widget(item_factory, "<main>");
	widget_set_custom_font(main_menubar, phasex_font_desc);
	widget_set_backing_store(main_menubar);
	gtk_box_pack_start(GTK_BOX(box), main_menubar, FALSE, FALSE, 0);

#ifdef CUSTOM_FONTS_IN_MENUS
	/* add custom fonts to the menus */
	widget = gtk_item_factory_get_widget(item_factory, "/File");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/View");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/Patch");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/MIDI");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/Part");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/JACK");
	widget_set_custom_font(widget, phasex_font_desc);

	widget = gtk_item_factory_get_widget(item_factory, "/Help");
	widget_set_custom_font(widget, phasex_font_desc);
#endif
}
예제 #7
0
GtkWidget *create_menubar(GtkWidget *window)
{
  GtkItemFactory *item_factory;
  GtkAccelGroup *accel_group;
  struct dirent **namelist;
  int n;
  const char *script_path=config_get_string(CONFIG_PATH_SCRIPT);
  GtkItemFactoryEntry fentry;
  struct menu_script* menu_item;
  char *dot;


  /* Make an accelerator group (shortcut keys) */
  accel_group = gtk_accel_group_new ();

  /* Make an ItemFactory (that makes a menubar) */
  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>",
                                       accel_group);

  /* This function generates the menu items. Pass the item factory,
     the number of items in the array, the array itself, and any
     callback data for the the menu items. */
  gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, NULL);

  if (script_path)
  {
    n = scandir(script_path, &namelist, select_lua, alphasort);
    if (n > 0)
    {
      while(n--) 
      {
	log_printf(LOG_INFO,"Adding %s script to menu", namelist[n]->d_name);

        menu_item=(struct menu_script *)malloc(sizeof(struct menu_script));
	menu_item->script_name = (char* )malloc(strlen(namelist[n]->d_name)+11);
	strcpy(menu_item->script_name,"/Analyser/");
	strcat(menu_item->script_name,namelist[n]->d_name);
	dot = rindex(menu_item->script_name,'.');
	if (dot)
	  *dot=0;
	menu_item->script_file = strdup(namelist[n]->d_name);
	menu_item->prev=SCRIPTS;
	SCRIPTS = menu_item;

	fentry.path=menu_item->script_name;
	fentry.callback=G_CALLBACK(gui_run_script_cb);
	fentry.callback_action=0;
	fentry.item_type="<StockItem>";
	fentry.extra_data=GTK_STOCK_PROPERTIES;
	gtk_item_factory_create_item(item_factory,&fentry,menu_item,2);
      }
      free(namelist);
    }
    else
      log_printf(LOG_WARNING,"No scripts found in %s",script_path);
  }

  /* FIXME: namelist must be deallocated but it holds pointer data for the callback */

  /* Attach the new accelerator group to the window. */
  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

  /* Finally, return the actual menu bar created by the item factory. */
  return gtk_item_factory_get_widget (item_factory, "<main>");
}
예제 #8
0
void gtkui_create_menu(int live)
{
   GtkAccelGroup *accel_group;
   GtkWidget *vbox, *item;
   GtkItemFactory *root_menu;
   int num_items = 0;
   
   DEBUG_MSG("gtk_create_menu");

   /* remove old menu, it will be automatically destroyed by gtk_main */
   vbox = gtk_bin_get_child(GTK_BIN (window));
   gtk_container_remove(GTK_CONTAINER (vbox), main_menu);

   /* Prepare to generate menus from the definitions in ec_gtk.h */
   accel_group = gtk_accel_group_new ();
   root_menu = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
   gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
   
   /* Start Menu */
   num_items = sizeof (gmenu_start) / sizeof (gmenu_start[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_start, NULL);
   
   /* Targets Menu */
   num_items = sizeof (gmenu_targets) / sizeof (gmenu_targets[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_targets, NULL);
   
   /* Hosts Menu */
   if (live > 0 && GBL_SNIFF->type != SM_BRIDGED) {
      num_items = sizeof (gmenu_hosts) / sizeof (gmenu_hosts[0]);
      gtk_item_factory_create_items (root_menu, num_items, gmenu_hosts, NULL);
   }
   
   /* View Menu */
   num_items = sizeof (gmenu_view) / sizeof (gmenu_view[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_view, NULL);
   
   /* MITM Menu */
   if (live > 0 && GBL_SNIFF->type != SM_BRIDGED) {
      num_items = sizeof (gmenu_mitm) / sizeof (gmenu_mitm[0]);
      gtk_item_factory_create_items (root_menu, num_items, gmenu_mitm, NULL);
   }
   
   /* Filters Menu */
   num_items = sizeof (gmenu_filters) / sizeof (gmenu_filters[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_filters, NULL);
   
   /* Logging Menu */
   num_items = sizeof (gmenu_logging) / sizeof (gmenu_logging[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_logging, NULL);

#ifdef HAVE_PLUGINS
   /* Plugins Menu */
   if(live > 0) {
      num_items = sizeof (gmenu_plugins) / sizeof (gmenu_plugins[0]);
      gtk_item_factory_create_items (root_menu, num_items, gmenu_plugins, NULL);
   }
#endif

#ifndef OS_WINDOWS
   /* Help Menu */
   num_items = sizeof (gmenu_help) / sizeof (gmenu_help[0]);
   gtk_item_factory_create_items (root_menu, num_items, gmenu_help, NULL);
#endif

   if(GBL_OPTIONS->reversed) {
      GBL_OPTIONS->reversed = 0;
      item = gtk_item_factory_get_item(root_menu, "/Targets/Reverse matching");
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE);
   }

   if(GBL_OPTIONS->resolve) {
      GBL_OPTIONS->resolve = 0;
      item = gtk_item_factory_get_item(root_menu, "/View/Resolve IP addresses");
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE);
   }

   if(GBL_OPTIONS->compress) {
      GBL_OPTIONS->compress = 0;
      item = gtk_item_factory_get_item(root_menu, "/Logging/Compressed file");
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE);
   }

   /* get the menu widget and add it to the window */
   main_menu = gtk_item_factory_get_widget (root_menu, "<main>");
   gtk_box_pack_start(GTK_BOX(vbox), main_menu, FALSE, FALSE, 0);
   gtk_widget_show(main_menu);
}
예제 #9
0
파일: interface.c 프로젝트: dimkr/beaver
GtkWidget *menubar_new (GtkWidget *Window)
{
  GtkWidget *Menu;
  GtkItemFactory *ItemFactory;
  GtkAccelGroup *AccelGroup;
  gchar *AccelRC;
  guint NbMenuEntries = sizeof (MenuEntries) / sizeof (MenuEntries[0]);

  MsgBarToggleDisplay = FALSE;
  ToolBarToggleDisplay = FALSE;
  ToggleWordwrap = FALSE;
  AccelGroup = gtk_accel_group_new();
  ItemFactory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", AccelGroup);
  gtk_item_factory_create_items (ItemFactory, NbMenuEntries,
				 MenuEntries, NULL);
  gtk_window_add_accel_group (GTK_WINDOW (Window), AccelGroup);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/File")), Menu);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/File/Recent Files")), Menu);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Edit")), Menu);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Tools")), Menu);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Tools/Conversions")), Menu);
  Menu = gtk_tearoff_menu_item_new (); 
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Settings")), Menu);
  Menu = gtk_tearoff_menu_item_new (); 
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Settings/Doc Tabs")), Menu);
  if (MSGBAR_DISPLAY)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Msg Bar")),
				    TRUE);
  if (TOOLBAR_DISPLAY)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Tool Bar")),
				    TRUE);
  if (TOGGLE_WORDWRAP)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Wordwrap")),
				    TRUE);
  if (TAB_POSITION == 1)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Doc Tabs/Top")),
				    TRUE);
  if (TAB_POSITION == 2)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Doc Tabs/Bottom")),
				    TRUE);
  if (TAB_POSITION == 3)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Doc Tabs/Left")),
				    TRUE);
  if (TAB_POSITION == 4)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Doc Tabs/Right")),
				    TRUE);
  Menu = gtk_tearoff_menu_item_new (); 
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Settings/Scroll Bar")),
		    Menu);
  if (SCROLLBAR_POSITION == 1)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Scroll Bar/Left")),
				    TRUE);
  if (SCROLLBAR_POSITION == 2)
    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				    (gtk_item_factory_get_widget
				     (ItemFactory,
				      "<main>/Settings/Scroll Bar/Right")),
				    TRUE);
  Menu = gtk_tearoff_menu_item_new ();
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Languages")), Menu);
  Menu = gtk_tearoff_menu_item_new (); 
  gtk_menu_prepend (GTK_MENU(gtk_item_factory_get_widget
			     (ItemFactory, "<main>/Help")), Menu);
  Menu = gtk_item_factory_get_widget (ItemFactory, "<main>");
  AccelRC = g_strconcat (g_get_home_dir (), PATH_SEP_STRING, CONF_DIR,
                         PATH_SEP_STRING, "AccelRC", NULL);
  gtk_item_factory_parse_rc (AccelRC);
  g_free (AccelRC);
  init_recent_files ();
  init_languages_menu ();
  gtk_menu_bar_set_shadow_type (GTK_MENU_BAR(Menu), GTK_SHADOW_NONE);
  return (Menu);
}
예제 #10
0
GtkWidget*
create_main_window (void)
{
  GtkWidget *window;
  GtkWidget *vbox, *hbox;
  GtkWidget *vbox_scenes, *vbox_sequence, *vbox_channels;
  GtkWidget *button;
  GtkWidget *menubar;
  GtkWidget *notebook;
  GtkWidget *status_bar;
  GtkWidget *label;
  GtkWidget *widget;
  
  GtkAccelGroup *accel_group;
  GtkItemFactory *item_factory;
  GtkItemFactoryEntry menu_entries[] = {
    { "/_File",             NULL,      NULL,            0, "<Branch>" },
    //    { "/File/tear1",        NULL,      NULL,         0, "<Tearoff>" },
    { "/File/_New",         NULL,      new_project,     1, "<StockItem>", GTK_STOCK_NEW },
    { "/File/_Open...",     NULL,      open_file_cb,    1, "<StockItem>", GTK_STOCK_OPEN },
    { "/File/_Save",        NULL,      save_file,       1, "<StockItem>", GTK_STOCK_SAVE },
    { "/File/Save as...",   NULL,      save_file_as_cb, 1, "<StockItem>", GTK_STOCK_SAVE_AS },
    { "/File/sep1",         NULL,      NULL,            0, "<Separator>" },
    { "/File/_Quit",        NULL,      (GtkItemFactoryCallback) quit,
                                                        0, "<StockItem>", GTK_STOCK_QUIT} 
  };

  /*** SETUP GTK MAIN WINDOW ***/
  
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_object_set_data (GTK_OBJECT (window), "main_window", window);
//  gtk_widget_set_usize (window, 800, 600);
  gtk_window_set_title (GTK_WINDOW (window), "GlowControl");
  g_signal_connect (G_OBJECT (window), "delete-event",
                    G_CALLBACK (quit), NULL);

  vbox = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (window), vbox);


  /* The menu */

  accel_group = gtk_accel_group_new ();
  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
  gtk_item_factory_create_items (item_factory, 
                                 sizeof (menu_entries) / sizeof (menu_entries[0]),
                                 menu_entries, 
                                 NULL);
  menubar = gtk_item_factory_get_widget (item_factory, "<main>");
  gtk_box_pack_start (GTK_BOX (vbox), menubar, FALSE, FALSE, 0);
  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

  notebook = gtk_notebook_new ();
  gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0);

  status_bar = gtk_statusbar_new ();
  gtk_box_pack_start (GTK_BOX (vbox), status_bar, FALSE, FALSE, 0);
 
  progress_bar = gtk_progress_bar_new ();
  gtk_box_pack_start (GTK_BOX (status_bar), progress_bar, TRUE, TRUE, 0);


  /*** PREPARE NOTEBOOK PAGES ***/

  /* NOTEBOOK PAGE: SCENES */

  vbox_scenes = gtk_vbox_new (FALSE, 0);
  widget = gtk_scrolled_window_new (NULL, NULL);
  scene_view = setup_list_view (scene_store);

  g_signal_connect (G_OBJECT (scene_view), "row-activated",
                    G_CALLBACK (scene_edit_clicked), NULL);

  gtk_tree_view_set_reorderable (scene_view, TRUE);
  gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (scene_view));
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN);

  gtk_box_pack_start (GTK_BOX (vbox_scenes), widget, TRUE, TRUE, 0);


  /* button bar */
  hbox = gtk_hbox_new (TRUE, 0);

  button = gtk_button_new_from_stock (GTK_STOCK_NEW);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (scene_new_clicked), NULL);

  button = gtk_button_new_from_stock (GTK_STOCK_COPY);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (scene_copy_clicked), NULL);

  button = gtk_button_new_from_stock (GTK_STOCK_DELETE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (scene_remove_clicked), NULL);
  gtk_box_pack_start (GTK_BOX (vbox_scenes), hbox, FALSE, FALSE, 0);

  /* NOTEBOOK: SEQUENCE */

  vbox_sequence = gtk_vbox_new (FALSE, 0);
  widget = gtk_scrolled_window_new (NULL, NULL);
  sequence_view = setup_list_view (sequence_store);

  g_signal_connect (G_OBJECT (sequence_view), "row-activated",
                    G_CALLBACK (step_edit_clicked), NULL);

  gtk_tree_view_set_reorderable (sequence_view, TRUE);
  gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (sequence_view));
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN);

  gtk_box_pack_start (GTK_BOX (vbox_sequence), widget, TRUE, TRUE, 0);

  hbox = gtk_hbox_new (TRUE, 0);

  button = gtk_button_new_from_stock (GTK_STOCK_NEW);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (step_new_clicked), NULL);

  button = gtk_button_new_from_stock (GTK_STOCK_DELETE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (step_remove_clicked), NULL);

  gtk_box_pack_start (GTK_BOX (vbox_sequence), hbox, FALSE, FALSE, 0);

  hbox = gtk_hbox_new (TRUE, 0);

  button = button_new ("../pixmaps/first.xpm", _("First"), FALSE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (sequence_first), NULL);

  button = button_new ("../pixmaps/prev.xpm", _("Previous"), FALSE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (sequence_prev), NULL);

  play_button = button_new ("../pixmaps/play.xpm", _("Play"), TRUE);
  gtk_box_pack_start (GTK_BOX (hbox), play_button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (play_button), "clicked",
                    G_CALLBACK (sequence_play_clicked), NULL);

  button = button_new ("../pixmaps/next.xpm", _("Next"), FALSE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (sequence_next_clicked), NULL);

  button = button_new ("../pixmaps/sync.xpm", _("Back to sync"), FALSE);
  gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
  g_signal_connect (G_OBJECT (button), "clicked",
                    G_CALLBACK (sequence_back_to_sync), NULL);


  gtk_box_pack_start (GTK_BOX (vbox_sequence), hbox, FALSE, FALSE, 0);
                

  /* NOTEBOOK: CHANNELS */

  vbox_channels = gtk_vbox_new (FALSE, 2);
  widget = gtk_scrolled_window_new (NULL, NULL);

  gtk_box_pack_start (GTK_BOX (vbox_channels), widget, TRUE, TRUE, 0);

  channel_view = setup_list_view (channel_store);
  gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (channel_view));

  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN);
  

  /*** GATHER STUFF FOR NOTEBOOK ***/
  label = gtk_label_new (_("Channels"));
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox_channels, label);

  label = gtk_label_new (_("Scenes"));
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox_scenes, label);

  label = gtk_label_new (_("Sequence"));
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox_sequence, label);

  gtk_widget_show_all (window);

  main_window = window;

  return window;
}
예제 #11
0
/*
 * display the initial menu to setup global options
 * at startup.
 */
static void gtkui_setup(void)
{
   GtkTextIter iter;
   GtkWidget *item, *vbox, *scroll, *vpaned, *logo;
   GtkItemFactory *item_factory;
   GClosure *closure = NULL;
   GdkModifierType mods;
   gint keyval, width, height, left, top;
   char *path = NULL;

   GtkItemFactoryEntry file_menu[] = {
      { "/_File",         "<shift>F",   NULL,             0, "<Branch>" },
      { "/File/_Open",    "<control>O", gtkui_file_open,  0, "<StockItem>", GTK_STOCK_OPEN },
      { "/File/_Save",    "<control>S", gtkui_file_write, 0, "<StockItem>", GTK_STOCK_SAVE },
      { "/File/sep1",     NULL,         NULL,             0, "<Separator>" },
      { "/File/E_xit",    "<control>x", gtkui_exit,       0, "<StockItem>", GTK_STOCK_QUIT },
      { "/_Sniff",        "<shift>S",   NULL,             0, "<Branch>" },
      { "/Sniff/Unified sniffing...",  "<shift>U", gtkui_unified_sniff, 0, "<StockItem>", GTK_STOCK_DND },
      { "/Sniff/Bridged sniffing...",  "<shift>B", gtkui_bridged_sniff, 0, "<StockItem>", GTK_STOCK_DND_MULTIPLE },
      { "/Sniff/sep2",    NULL,         NULL,             0, "<Separator>" },
      { "/Sniff/Set pcap filter...",    "p",       gtkui_pcap_filter,   0, "<StockItem>", GTK_STOCK_PREFERENCES },
      { "/_Options",                    "<shift>O", NULL, 0, "<Branch>" },
      { "/Options/Unoffensive", NULL, toggle_unoffensive, 0, "<ToggleItem>" },
      { "/Options/Promisc mode", NULL, toggle_nopromisc,  0, "<ToggleItem>" },
      { "/Options/Set netmask", "n", gtkui_set_netmask,   0, "<Item>"}
#ifndef OS_WINDOWS
     ,{"/_?",          NULL,         NULL,             0, "<Branch>" },
      {"/?/Contents", " ",           gtkui_help,       0, "<StockItem>", GTK_STOCK_HELP }
#endif
   };
   gint nmenu_items = sizeof (file_menu) / sizeof (file_menu[0]);

   DEBUG_MSG("gtkui_setup");

   width = gtkui_conf_get("window_width");
   height = gtkui_conf_get("window_height");
   left = gtkui_conf_get("window_left");
   top = gtkui_conf_get("window_top");

   /* create menu window */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW (window), EC_PROGRAM" "EC_VERSION);
   gtk_window_set_default_size(GTK_WINDOW (window), width, height);

   if(left > 0 || top > 0)
      gtk_window_move(GTK_WINDOW(window), left, top);

   g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtkui_exit), NULL);

   accel_group = gtk_accel_group_new ();
   item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
   gtk_item_factory_create_items (item_factory, nmenu_items, file_menu, NULL);

   /* hidden shortcut to start Unified Sniffing with default interface */
   closure = g_cclosure_new(G_CALLBACK(gtkui_unified_sniff_default), NULL, NULL);
   gtk_accelerator_parse ("u", &keyval, &mods);
   gtk_accel_group_connect(accel_group, keyval, mods, 0, closure);

   vbox = gtk_vbox_new(FALSE, 0);
   gtk_container_add(GTK_CONTAINER (window), vbox);
   gtk_widget_show(vbox);

   main_menu = gtk_item_factory_get_widget (item_factory, "<main>");
   gtk_box_pack_start(GTK_BOX(vbox), main_menu, FALSE, FALSE, 0);
   gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
   gtk_widget_show(main_menu);

   if(GBL_PCAP->promisc) {
      /* setting the menu item active will toggle this setting */
      /* it will be TRUE after the menu is updated */
      GBL_PCAP->promisc = 0;
      item = gtk_item_factory_get_item(item_factory, "/Options/Promisc mode");
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE);
   }

   if(GBL_OPTIONS->unoffensive) {
      GBL_OPTIONS->unoffensive = 0;
      item = gtk_item_factory_get_item(item_factory, "/Options/Unoffensive");
      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (item), TRUE);
   }

   vpaned = gtk_vpaned_new();

   /* notebook for MDI pages */
   notebook_frame = gtk_frame_new(NULL);
   gtk_frame_set_shadow_type(GTK_FRAME (notebook_frame), GTK_SHADOW_IN);
   gtk_paned_pack1(GTK_PANED(vpaned), notebook_frame, TRUE, TRUE);
   gtk_widget_show(notebook_frame);

   path = INSTALL_DATADIR "/" EC_PROGRAM "/" LOGO_FILE;
   if(g_file_test(path, G_FILE_TEST_EXISTS))
      logo = gtk_image_new_from_file(path);
   else /* if neither path is valid gtk will use a broken image icon */
      logo = gtk_image_new_from_file("./share/" LOGO_FILE);

   gtk_misc_set_alignment (GTK_MISC (logo), 0.5, 0.5);
   gtk_container_add(GTK_CONTAINER (notebook_frame), logo);
   gtk_widget_show(logo);

   /* messages */
   scroll = gtk_scrolled_window_new(NULL, NULL);
   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scroll),
                                  GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN);
   gtk_paned_pack2(GTK_PANED (vpaned), scroll, FALSE, TRUE);
   gtk_widget_show(scroll);

   textview = gtk_text_view_new();
   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW (textview), GTK_WRAP_WORD_CHAR);
   gtk_text_view_set_editable(GTK_TEXT_VIEW (textview), FALSE);
   gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW (textview), FALSE);
   gtk_widget_set_size_request(textview, -1, 140);
   gtk_container_add(GTK_CONTAINER (scroll), textview);
   gtk_widget_show(textview);

   msgbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (textview));
   gtk_text_buffer_get_end_iter(msgbuffer, &iter);
   endmark = gtk_text_buffer_create_mark(msgbuffer, "end", &iter, FALSE);

   gtk_box_pack_end(GTK_BOX(vbox), vpaned, TRUE, TRUE, 0);
   gtk_widget_show(vpaned);

   gtk_widget_show(window);

   DEBUG_MSG("gtk_setup: end");
}
예제 #12
0
void GTKMusicBrowser::CreateMenu(GtkWidget *topbox)
{
    GtkItemFactoryEntry menu_items[] = {
     {"/_File",                 NULL,           0,         0, "<Branch>" },
     {"/File/_New Playlist",    "<control>N",   (GtkItemFactoryCallback)new_plist, 0, 0 },
     {"/File/_Open Playlist",   "<control>O",   (GtkItemFactoryCallback)open_list, 0, 0 },
     {"/File/_Save Playlist",   "<control>S",   (GtkItemFactoryCallback)save_list, 0, 0 },
     {"/File/Save Playlist _As","<control>A",   (GtkItemFactoryCallback)saveas_list,0, 0 },
     {"/File/sep1",             NULL,           0,         0, "<Separator>" },
     {"/File/_Import Tracks and Playlists","<control>I", (GtkItemFactoryCallback)import_list, 0, 0 },
     {"/File/_Export Playlist", NULL,           (GtkItemFactoryCallback)export_list, 0, 0 },
     {"/File/sep0",             NULL,           0,         0, "<Separator>" },
     {"/File/Search Computer for Music", NULL, (GtkItemFactoryCallback)music_search, 0, 0 },
     {"/File/sep2",             NULL,           0,         0, "<Separator>" },
     {"/File/_Close",           "<control>Q",   (GtkItemFactoryCallback)quit_menu, 0, 0 },

     {"/_Edit",                 NULL,           0,         0, "<Branch>" },
     {"/_Edit/_Add Items to Playlist", NULL,   (GtkItemFactoryCallback)add_track_mb, 0, 0 },
     {"/_Edit/Add _Tracks or Playlists from Disk", NULL,  (GtkItemFactoryCallback)add_track, 0, 0 },
     {"/_Edit/_Remove Items from My Music", NULL,(GtkItemFactoryCallback)delete_sel,0, 0 },
     {"/_Edit/Add Stream to Favorites", NULL,   (GtkItemFactoryCallback)add_stream, 0, 0 },
     {"/_Edit/sep3",            NULL,           0,         0, "<Separator>" },
     {"/_Edit/Move _Up",         NULL,           (GtkItemFactoryCallback)move_up,   0, 0 },
     {"/_Edit/Move _Down",       NULL,           (GtkItemFactoryCallback)move_down, 0, 0 },
     {"/_Edit/sep4",            NULL,           0,         0, "<Separator>" },
     {"/_Edit/_Clear Playlist",  NULL,           (GtkItemFactoryCallback)clear_list, 0, 0 },
     {"/_Edit/Edit _Info",       NULL,           (GtkItemFactoryCallback)infoedit,  0, 0 },

     {"/_View",                 NULL,           0,         0, "<Branch>" },
     {"/_View/View _Playlist Only",NULL,        (GtkItemFactoryCallback)catalog_tog, 0, 0 },
     {"/_View/_Options",         NULL,         (GtkItemFactoryCallback)options_show, 0, 0 },

     {"/_Controls",             NULL,           0,         0, "<Branch>" },
     {"/_Controls/_Play",        NULL,           (GtkItemFactoryCallback)play_menu,0, 0 },
     {"/_Controls/_Stop",        NULL,           (GtkItemFactoryCallback)stop_menu, 0, 0 },
     {"/_Controls/sep6",        NULL,           0,         0, "<Separator>" },
     {"/_Controls/_Eject CD",    NULL,           (GtkItemFactoryCallback)eject_cd, 0, 0 },
     {"/_Controls/sep65",       NULL,           0,         0, "<Separator>" },
     {"/_Controls/_Next Track",   NULL,          (GtkItemFactoryCallback)next_menu, 0, 0 },
     {"/_Controls/Pre_vious Track", NULL,        (GtkItemFactoryCallback)prev_menu, 0, 0 },
     {"/_Controls/sep7",        NULL,           0,         0, "<Separator>" },
     {"/_Controls/Play Tracks in Nor_mal Order", NULL, (GtkItemFactoryCallback)sort_normal, 0, "<RadioItem>" },
     {"/_Controls/Play Tracks in _Random Order", NULL, (GtkItemFactoryCallback)sort_random2, 0, "/Controls/Play Tracks in Normal Order" },
     {"/_Controls/sep8",        NULL,           0,         0, "<Separator>" },
     {"/_Controls/Repeat N_o Tracks", NULL,      (GtkItemFactoryCallback)repeat_none, 0, "<RadioItem>" },
     {"/_Controls/Repeat _Current Track",  NULL, (GtkItemFactoryCallback)repeat_one, 0, "/Controls/Repeat No Tracks" },
     {"/_Controls/Repeat _All Tracks",  NULL,    (GtkItemFactoryCallback)repeat_all, 0, "/Controls/Repeat No Tracks" },

     {"/_Sort Playlist",        NULL,           0,         0, "<Branch>" },
     {"/_Sort Playlist/by _Artist",  NULL,      (GtkItemFactoryCallback)sort_artist, 0, 0 },
     {"/_Sort Playlist/by A_lbum", NULL,         (GtkItemFactoryCallback)sort_album, 0, 0 },
     {"/_Sort Playlist/by _Title", NULL,         (GtkItemFactoryCallback)sort_title, 0, 0 },
     {"/_Sort Playlist/by _Year", NULL,          (GtkItemFactoryCallback)sort_year,  0, 0 },
     {"/_Sort Playlist/by Trac_k Number", NULL,  (GtkItemFactoryCallback)sort_track, 0, 0 },
     {"/_Sort Playlist/by _Genre", NULL,         (GtkItemFactoryCallback)sort_genre, 0, 0 },
     {"/_Sort Playlist/by _Length", NULL,        (GtkItemFactoryCallback)sort_time,  0, 0 },
     {"/_Sort Playlist/by L_ocation", NULL,   (GtkItemFactoryCallback)sort_location, 0, 0 },
     {"/_Sort Playlist/by _Filename", NULL,   (GtkItemFactoryCallback)sort_filename, 0, 0 },
     {"/_Sort Playlist/by _Comment", NULL,    (GtkItemFactoryCallback)sort_comment, 0, 0},
     {"/_Sort Playlist/_Randomly", NULL,        (GtkItemFactoryCallback)sort_random, 0, 0 },

     {"/_Help",                 NULL,           0,          0, "<Branch>" },
     {"/_Help/_Zinf Web Site", NULL,         (GtkItemFactoryCallback)zinf_web, 0, 0 },
     {"/_Help/_About",           NULL,           (GtkItemFactoryCallback)show_about, 0, 0 }
    };

    int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);


    GtkAccelGroup *accel_group;
    GtkWidget *separator;

    accel_group = gtk_accel_group_new();
    menuFactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<blah>",
                                        accel_group);
    gtk_item_factory_create_items(menuFactory, nmenu_items, menu_items, 
                                  (void *)this);

    gtk_accel_group_attach(accel_group, GTK_OBJECT(musicBrowser));
    gtk_box_pack_start(GTK_BOX(topbox), gtk_item_factory_get_widget(
                       menuFactory, "<blah>"), FALSE, TRUE, 0);
    gtk_widget_show(gtk_item_factory_get_widget(menuFactory, "<blah>"));

    separator = gtk_hseparator_new();
    gtk_box_pack_start(GTK_BOX(topbox), separator, FALSE, TRUE, 0);
    gtk_widget_show(separator);
}