Esempio n. 1
0
void _HYModelWindow::_SetMenuBar(void)
{
    if (menu_items && !gtk_item_factory_get_item(menu_items,"<HY_WINDOW>/Model")) {
        gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Save");
        gtk_item_factory_create_items (menu_items,  sizeof (hyphy_parameter_model_window_menu) / sizeof (hyphy_parameter_model_window_menu[0]),
                                       hyphy_parameter_model_window_menu, this);

        GtkMenu * fileMenu = GTK_MENU (gtk_item_factory_get_widget (menu_items, "<HY_WINDOW>/File"));
        gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/Save"), 0);

        for (long k=0; k<rateOptions.lLength; k++) {
            _String *thisItem = (_String*)rateOptions (k),
                     chopped,
                     type = "<CheckItem>";

            GtkItemFactoryEntry aProcEntry = {NULL,NULL,(GtkItemFactoryCallback)hyphy_menu_item_callback,HY_MDL_WIN32_MENU_BASE+100+k,type.sData};
            chopped = _String("/Model/Rate variation/")&*thisItem;
            aProcEntry.path = chopped.sData;

            gtk_item_factory_create_items (menu_items,  1, &aProcEntry, this);
        }
        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget_by_action(menu_items,HY_MDL_WIN32_MENU_BASE+100+rateChoice)),
                                       true);

        gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Copy"),  true);
        gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Select All"),  true);
    }
}
Esempio n. 2
0
static  gint
cb_thumbview_button_press (GtkWidget * widget, GdkEventButton * event,
			   ThumbView * tv)
{
    if (ZALBUM (tv->album)->len == 0 || ZLIST (tv->album)->focus < 0)
	return FALSE;

    gtk_widget_grab_focus (GTK_WIDGET (tv->album));

    if (event->type == GDK_BUTTON_PRESS && event->button == 3)
    {
	gint    type;
	guint   n_menu_items;
	GtkWidget *popup_menu, *progs_submenu, *scripts_submenu;
	GtkWidget *menuitem;
	GtkItemFactory *ifactory;

	/*
	 * create popup menu 
	 */
	n_menu_items = sizeof (thumbview_popupmenu_items)
	    / sizeof (thumbview_popupmenu_items[0]) - 1;

	popup_menu =
	    menu_create_items (BROWSER_WINDOW, thumbview_popupmenu_items,
			       n_menu_items, "<ThumbnailButtonPop>", tv);

	ifactory = gtk_item_factory_from_widget (popup_menu);

	type = (gint) zalbum_get_cell_data (ZALBUM (tv->album), tv->current);

	thumbview_update_popupmenu (type, ifactory);

	menuitem =
	    gtk_item_factory_get_item (ifactory, "/Open in External Program");

	progs_submenu = create_progs_submenu (tv);
	menu_set_submenu (popup_menu, "/Open in External Program",
			  progs_submenu);

	menuitem = gtk_item_factory_get_item (ifactory, "/Scripts");
	scripts_submenu = create_scripts_submenu (tv);
	menu_set_submenu (popup_menu, "/Scripts", scripts_submenu);

	gtk_menu_popup (GTK_MENU (popup_menu),
			NULL, NULL, NULL, NULL, event->button, event->time);

#ifdef USE_GTK2
	gtk_object_ref (GTK_OBJECT (popup_menu));
	gtk_object_sink (GTK_OBJECT (popup_menu));
#endif
	gtk_widget_unref (popup_menu);

	return TRUE;
    }

    tv->current = ZLIST (tv->album)->focus;

    return FALSE;
}
Esempio n. 3
0
static void
cb_dock_clicked (GtkWidget * widget, GdkEventButton * event, gpointer data)
{
    if (event == NULL)
	return;

    if ((event->button == 1) && (event->type == GDK_BUTTON_PRESS))
	dock_toggle_callback (NULL, NULL);
    else if (event->type == GDK_BUTTON_PRESS && event->button == 3)
    {
	if (GTK_WIDGET_VISIBLE (GTK_WIDGET (BROWSER_WINDOW)))
	{
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (popup_item_factory,
				       "/Show Main Window"), FALSE);
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (popup_item_factory,
				       "/Hide Main Window"), TRUE);
	}
	else
	{
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (popup_item_factory,
				       "/Show Main Window"), TRUE);
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (popup_item_factory,
				       "/Hide Main Window"), FALSE);
	}

	gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL,
			event->button, event->time);
    }
}
Esempio n. 4
0
void save_config_file(void)				//not called in gint main
{
	FILE *fp;
	gchar *path;
	GtkItemFactory *ifactory;			//GtkItemFactory ??
	gint width, height;
	gchar *fontname;
	gboolean wordwrap, linenumbers, autoindent;
	
	gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height);
	fontname = get_font_name_from_widget(pub->mw->view);
	ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
	wordwrap = gtk_check_menu_item_get_active(
		GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
			"/Options/Word Wrap")));
	linenumbers = gtk_check_menu_item_get_active(
		GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
			"/Options/Line Numbers")));
	autoindent = gtk_check_menu_item_get_active(
		GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
			"/Options/Auto Indent")));
										//saves the variables for conf file
#if GLIB_CHECK_VERSION(2, 6, 0)
	path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL);	//fetches the address for conf and makes a dir for first 
	if (!g_file_test(path, G_FILE_TEST_IS_DIR)) {				//use if not present
# if GLIB_CHECK_VERSION(2, 8, 0)
		g_mkdir_with_parents(path, 0700);
# else
		g_mkdir(g_get_user_config_dir(), 0700);
		g_mkdir(path, 0700);
# endif
	}
	g_free(path);
	path = g_build_filename(g_get_user_config_dir(),
	    PACKAGE, PACKAGE "rc", NULL);
#else
	path = g_build_filename(g_get_home_dir(), "." PACKAGE, NULL);
#endif
	fp = fopen(path, "w");
	if (!fp) {
		g_print("%s: can't save config file - %s\n", PACKAGE, path);
		return;
	}
	g_free(path);
	
	fprintf(fp, "%s\n", PACKAGE_VERSION);
	fprintf(fp, "%d\n", width);
	fprintf(fp, "%d\n", height);
	fprintf(fp, "%s\n", fontname); 
	fprintf(fp, "%d\n", wordwrap);
	fprintf(fp, "%d\n", linenumbers);
	fprintf(fp, "%d\n", autoindent);
	fclose(fp);
	
	g_free(fontname);
}
void _HYConsoleWindow::_SetMenuBar(void)
{
    if (menu_items && !gtk_item_factory_get_item(menu_items,"<HY_WINDOW>/Analysis")) {
        gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Open");
        gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Close");
        gtk_item_factory_delete_item (menu_items, "<HY_WINDOW>/File/Switch to console");
        gtk_item_factory_create_items (menu_items,  sizeof (hyphy_console_window_menu_file) / sizeof (hyphy_console_window_menu_file[0]), hyphy_console_window_menu_file, this);

        GtkMenu * fileMenu = GTK_MENU (gtk_item_factory_get_widget (menu_items, "<HY_WINDOW>/File"));
        gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/New"), 0);
        gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/Open"), 1);
        gtk_menu_reorder_child (fileMenu, gtk_item_factory_get_item (menu_items, "<HY_WINDOW>/File/sep1"), 2);

        gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Clear"),  true);
        gtk_widget_set_sensitive(gtk_item_factory_get_widget (menu_items,"<HY_WINDOW>/Edit/Select All"),  true);
        gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,21),  false);
        gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,22),  false);
        gtk_widget_set_sensitive(gtk_item_factory_get_item (menu_items,"<HY_WINDOW>/Analysis/Results"),  false);
        gtk_widget_set_sensitive(gtk_item_factory_get_widget_by_action(menu_items,30),  false);

        for (long counter=0; counter<availablePostProcessors.countitems(); counter++) {
            _String * postItem = (_String*)(*(_List*)availablePostProcessors(counter))(0);
            if (!postItem->Equal (&menuSeparator)) {
                postItem = (_String*)(*(_List*)availablePostProcessors(counter))(1);
                _String tryFileName (*postItem);
                FILE    * tryFile   = doFileOpen (tryFileName.getStr(), "r");
                if (tryFile) {
                    fclose(tryFile);
                } else {
                    availablePostProcessors.Delete(counter);
                    counter--;
                }
            }
        }
        if (availablePostProcessors.lLength) {
            long sepCount = 0;
            for (long counter=0; counter<availablePostProcessors.countitems(); counter++) {
                _String * postItem = (_String*)(*(_List*)availablePostProcessors(counter))(0),
                          chopped  = _String("/Analysis/Results/")&*postItem;

                if (postItem->Equal (&menuSeparator)) {
                    GtkItemFactoryEntry aProcEntry = {NULL,NULL,NULL,0,"<Separator>"};
                    chopped = chopped & sepCount++;
                    aProcEntry.path = chopped.sData;
                    gtk_item_factory_create_items (menu_items,  1, &aProcEntry, this);
                } else {
                    GtkItemFactoryEntry aProcEntry = {NULL,NULL,hyphy_menu_item_callback,1000+counter,"<Item>"};
                    aProcEntry.path = chopped.sData;
                    gtk_item_factory_create_items (menu_items,  1, &aProcEntry, this);
                }
            }

        }
    }
}
Esempio n. 6
0
static void messageview_set_encoding_menu(MessageView *messageview)
{
	GtkItemFactoryEntry *entry;
	GtkItemFactory *ifactory;
	CharSet encoding;
	gchar *path, *p, *q;
	GtkWidget *item;

	encoding = conv_get_charset_from_str(prefs_common.force_charset);
	ifactory = gtk_item_factory_from_widget(messageview->menubar);

	for (entry = msgview_entries; entry->callback != view_source_cb;
	     entry++) {
		if (entry->callback == set_charset_cb &&
		    (CharSet)entry->callback_action == encoding) {
			p = q = path = g_strdup(entry->path);
			while (*p) {
				if (*p == '_') {
					if (p[1] == '_') {
						p++;
						*q++ = '_';
					}
				} else
					*q++ = *p;
				p++;
			}
			*q = '\0';
			item = gtk_item_factory_get_item(ifactory, path);
			gtk_widget_activate(item);
			g_free(path);
			break;
		}
	}
}
Esempio n. 7
0
void save_config_file(void)
{
	FILE *fp;
	gchar *path;
	gint width, height;
	gchar *fontname;
	gboolean wordwrap, linenumbers, autoindent;

	gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height);
	fontname = pango_font_description_to_string(gtk_style_context_get_font(gtk_widget_get_style_context(pub->mw->view), 0));
	wordwrap = gtk_check_menu_item_get_active(
		GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
			"/M/Options/WordWrap")));
	linenumbers = gtk_check_menu_item_get_active(
		GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
			"/M/Options/LineNumbers")));
	autoindent = gtk_check_menu_item_get_active(
		GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
			"/M/Options/AutoIndent")));

	path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL);
	if (!g_file_test(path, G_FILE_TEST_IS_DIR))
		g_mkdir_with_parents(path, 0700);
	g_free(path);
	path = g_build_filename(g_get_user_config_dir(),
	    PACKAGE, PACKAGE "rc", NULL);
	fp = fopen(path, "w");
	if (!fp) {
		g_print("%s: can't save config file - %s\n", PACKAGE, path);
		return;
	}
	g_free(path);

	fprintf(fp, "%s\n", PACKAGE_VERSION);
	fprintf(fp, "%d\n", width);
	fprintf(fp, "%d\n", height);
	fprintf(fp, "%s\n", fontname);
	fprintf(fp, "%d\n", wordwrap);
	fprintf(fp, "%d\n", linenumbers);
	fprintf(fp, "%d\n", autoindent);
	fclose(fp);

	g_free(fontname);
}
Esempio n. 8
0
void
menu_item_set_sensitive (GtkWidget *widget, gchar *path, gboolean sensitive)
{
   GtkWidget *menuitem;
   GtkItemFactory *ifactory;

   ifactory = gtk_item_factory_from_widget (widget);
   menuitem = gtk_item_factory_get_item (ifactory, path);
   gtk_widget_set_sensitive (menuitem, sensitive);
}
Esempio n. 9
0
/*
 *  menu_set_check_item:
 *     @ Set check menu item's value (TRUE or FALSE).
 *
 *  widget : Menu widget that contains check menu item.
 *  path   : Menu path to check menu item.
 *  active : Value for set.
 */
void
menu_check_item_set_active (GtkWidget *widget, gchar *path, gboolean active)
{
   GtkWidget *menuitem;
   GtkItemFactory *ifactory;

   ifactory = gtk_item_factory_from_widget (widget);
   menuitem = gtk_item_factory_get_item (ifactory, path);
   gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(menuitem), active);
}
Esempio n. 10
0
/*
 *  menu_set_check_item:
 *     @ Set check menu item's value (TRUE or FALSE).
 *
 *  widget : Menu widget that contains check menu item.
 *  path   : Menu path to check menu item.
 *  active : Value for set.
 */
gboolean
menu_check_item_get_active (GtkWidget *widget, gchar *path)
{
   GtkWidget *menuitem;
   GtkItemFactory *ifactory;

   ifactory = gtk_item_factory_from_widget (widget);
   menuitem = gtk_item_factory_get_item (ifactory, path);
   return GTK_CHECK_MENU_ITEM(menuitem)->active;
}
Esempio n. 11
0
/*
 *  menu_remove_submenu:
 *     @ Set sub menu.
 *
 *  widget  : Menu widget to set sub menu.
 *  path    : Menu path to check menu item.
 *  submenu : Submenu widget.
 */
void
menu_remove_submenu (GtkWidget *widget, const gchar *path, GtkWidget *submenu)
{
   GtkWidget *menuitem;
   GtkItemFactory *ifactory;

   ifactory = gtk_item_factory_from_widget (widget);
   menuitem = gtk_item_factory_get_item (ifactory, path);
   gtk_menu_item_remove_submenu (GTK_MENU_ITEM (menuitem));
}
Esempio n. 12
0
static VALUE
ifact_get_item(VALUE self, VALUE path)
{
    VALUE obj = Qnil;
    GtkWidget* widget = gtk_item_factory_get_item(_SELF(self), RVAL2CSTR(path));
    if (widget){
        obj = GOBJ2RVAL(widget);
        G_RELATIVE(obj, self);
    }
    return obj;
}
Esempio n. 13
0
GtkWidget *
menu_get_submenu (GtkWidget *widget, const gchar *path)
{
   GtkWidget *menuitem;
   GtkItemFactory *ifactory;

   ifactory = gtk_item_factory_from_widget (widget);
   menuitem = gtk_item_factory_get_item (ifactory, path);
   g_return_val_if_fail (menuitem, NULL);
   return GTK_MENU_ITEM(menuitem)->submenu;
}
Esempio n. 14
0
static void
thumbview_update_popupmenu (gint file_type, GtkItemFactory * ifactory)
{
    if (file_type == FILETYPE_VIDEO)
    {

#ifdef ENABLE_MOVIE
	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Movie"), TRUE);

	thumbview_update_popupmenu_movie (ifactory);
#endif

#ifdef ENABLE_EXIF
	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Scan EXIF Data"), FALSE);
#endif

	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Zoom"), FALSE);
	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Rotate"), FALSE);
    }
    else
    {
	ZAlbumCell *cell;

	cell =
	    ZLIST_CELL_FROM_INDEX (ZLIST (thumbview->album),
				   thumbview->current);

#ifdef ENABLE_MOVIE
	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Movie"), FALSE);
#endif

#ifdef ENABLE_EXIF
	if (file_type_is_jpeg (cell->name))
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (ifactory, "/Scan EXIF Data"), TRUE);
	else
	    gtk_widget_set_sensitive (gtk_item_factory_get_item
				      (ifactory, "/Scan EXIF Data"), FALSE);
#endif

	gtk_widget_set_sensitive (gtk_item_factory_get_item
				  (ifactory, "/Rotate"), TRUE);

	thumbview_update_popupmenu_zoom (ifactory);
    }
}
Esempio n. 15
0
static void
thumbview_update_popupmenu_zoom (GtkItemFactory * ifactory)
{
    gtk_widget_set_sensitive (gtk_item_factory_get_item
			      (ifactory, "/Zoom/Zoom In"), TRUE);
    gtk_widget_set_sensitive (gtk_item_factory_get_item
			      (ifactory, "/Zoom/Zoom Out"), TRUE);

    gtk_widget_set_sensitive (gtk_item_factory_get_item
			      (ifactory, "/Zoom/Fit to Window"),
			      (imageview->zoom !=
			       IMAGEVIEW_ZOOM_FIT) ? TRUE : FALSE);

    gtk_widget_set_sensitive (gtk_item_factory_get_item
			      (ifactory, "/Zoom/Original Size"),
			      (imageview->zoom !=
			       IMAGEVIEW_ZOOM_100) ? TRUE : FALSE);

    gtk_widget_set_sensitive (gtk_item_factory_get_item
			      (ifactory, "/Zoom/Auto Zoom"),
			      (imageview->zoom !=
			       IMAGEVIEW_ZOOM_AUTO) ? TRUE : FALSE);
}
Esempio n. 16
0
/** Clear the menu
 *
 * @param void
 * @return void
 */
static void ph_menu_reset(void)
{
	GtkWidget *menu_item = NULL;
	GList *menu_entries = NULL;
	GList *menu_entry = NULL;

	if(!g_ph_menu_factory) return;

	menu_item = gtk_item_factory_get_widget(g_ph_menu_factory, PH_MENU_TOP);
	menu_entries = gtk_container_get_children(GTK_CONTAINER(menu_item));

	for(menu_entry = g_list_first(menu_entries); menu_entry != NULL; menu_entry = g_list_next(menu_entry))
	{
		gtk_container_remove(GTK_CONTAINER(menu_item), menu_entry->data);
	}

	menu_item = gtk_item_factory_get_item(g_ph_menu_factory, PH_MENU_TOP);
	gtk_widget_set_sensitive(menu_item, FALSE);
}
Esempio n. 17
0
/******************************************************************************
* gtk_ItemFactoryGetItem( itemFactory, spath ) --> widget
******************************************************************************/
int
clip_GTK_ITEMFACTORYGETITEM(ClipMachine * cm)
{
        C_object       *citem = _fetch_co_arg(cm);
        const gchar     *path = _clip_parc(cm, 2);
        GtkWidget        *wid ;
        C_widget        *cwid ;

	CHECKARG(1, MAP_t); CHECKCOBJ(citem, GTK_IS_ITEM_FACTORY(citem->object));
        CHECKARG(2, CHARACTER_t);

	wid = gtk_item_factory_get_item(GTK_ITEM_FACTORY(citem->object), path);

	if (!wid) goto err;
	cwid = _register_widget(cm, wid, NULL);
	_clip_mclone(cm,RETPTR(cm),&cwid->obj);
	return 0;
err:
	return 1;
}
Esempio n. 18
0
//________________________________________________________
void    ToggleAnalysisMenu (bool running)
{
    if (hyphyConsoleWindow)
        //if (running)
    {
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 21), running);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 22), running);
        //gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 23), false);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 24), !running);
        gtk_widget_set_sensitive(gtk_item_factory_get_item(hyphyConsoleWindow->menu_items, "<HY_WINDOW>/Analysis/Results"), !running);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 30), !running);
    }
    /*else
    {
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 21), false);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 22), false);
        //gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 23), true);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 24), true);
        gtk_widget_set_sensitive(gtk_item_factory_get_item(hyphyConsoleWindow->menu_items, "<HY_WINDOW>/Analysis/Results"), true);
        gtk_widget_set_sensitive(gtk_item_factory_get_item_by_action(hyphyConsoleWindow->menu_items, 30), true);
        //SetStatusBarValue (-1,1,0);
        //SetStatusLine ("Idle");
    }*/
}
Esempio n. 19
0
/*****************************************************************************
 * 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
}
Esempio n. 20
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>", NULL },
      { "/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>", NULL },
      { "/File/E_xit",    "<control>x", gtkui_exit,       0, "<StockItem>", GTK_STOCK_QUIT },
      { "/_Sniff",        "<shift>S",   NULL,             0, "<Branch>", NULL },
      { "/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>", NULL },
      { "/Sniff/Set pcap filter...",    "p",       gtkui_pcap_filter,   0, "<StockItem>", GTK_STOCK_PREFERENCES },
      { "/_Options",                    "<shift>O", NULL, 0, "<Branch>", NULL },
      { "/Options/Unoffensive", NULL, toggle_unoffensive, 0, "<ToggleItem>", NULL },
      { "/Options/Promisc mode", NULL, toggle_nopromisc,  0, "<ToggleItem>", NULL },
      { "/Options/Set netmask", "n", gtkui_set_netmask,   0, "<Item>", NULL}
#ifndef OS_WINDOWS
     ,{"/_?",          NULL,         NULL,             0, "<Branch>", NULL },
      {"/?/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");
}
Esempio n. 21
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);
}
Esempio n. 22
0
int main(int argc, char **argv) {
	char buf[1024], *usage =
"usage: deepstripper-gtk [-d[ebug]] [-h[elp]] [-o[utput] <path>]\n"
"       [-dps12|-dps16 <path>] [-e[xtract] <project>]\n";
	GtkWidget *vbox, *men, *paned, *note, *frame, *scroll;
	GtkItemFactory *fac;
	GtkAccelGroup *acc;
	int i, dps = -1;

	for (i=1; i<argc; i++) {
		if (strcmp(argv[i], "-d")==0) {
			g_dbg = g_dbg<<1 | 1;
		} else if (strncmp(argv[i], "-h", 2)==0) {
			g_print("%s", usage);
			return 0;
		}
	}
	gtk_init(&argc, &argv);
	g_main = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_default_size(GTK_WINDOW(g_main), 600, 400);
	set_title("?", GETCWD(buf, sizeof(buf)), "");
	g_signal_connect(G_OBJECT(g_main), "delete_event", G_CALLBACK(quit), NULL);

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

	acc = gtk_accel_group_new();
	fac = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<deepstripper-main>", acc);
	gtk_item_factory_create_items(fac, MENU_SIZE, root_menu, 0);
	men = gtk_item_factory_get_widget(fac, "<deepstripper-main>");
	gtk_box_pack_start(GTK_BOX(vbox), men, FALSE, FALSE, 0);
	gtk_window_add_accel_group(GTK_WINDOW(g_main), acc);
	gtk_widget_show(men);
	g_multi = gtk_item_factory_get_item(fac, "/Multi");

	paned = gtk_hpaned_new();
	gtk_container_set_border_width(GTK_CONTAINER(paned), 5);
	gtk_box_pack_start(GTK_BOX(vbox), paned, TRUE, TRUE, 0);
	gtk_widget_show(paned);

	note = gtk_notebook_new();
	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(note), GTK_POS_BOTTOM);
	gtk_notebook_set_show_border(GTK_NOTEBOOK(note), TRUE);
	gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(note), TRUE);
	gtk_widget_set_size_request(note, 150, 200);
	gtk_paned_pack1(GTK_PANED(paned), note, TRUE, FALSE);
	gtk_widget_show(note);

	for (i=0; i<N_TABS; i++) {
		GtkWidget *l = gtk_label_new(g_tabs[i].tab);
		gtk_widget_show(l);
		gtk_notebook_append_page(GTK_NOTEBOOK(note),
			make_list(g_tabs[i].data, i), l);
	}

	frame = gtk_frame_new("Item properties:");
	gtk_widget_set_size_request(frame, 150, 200);
	gtk_paned_pack2(GTK_PANED(paned), frame, TRUE, FALSE);
	gtk_widget_show(frame);

	scroll = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
		GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_container_add(GTK_CONTAINER(frame), scroll);
	gtk_widget_show(scroll);
	
	g_info = gtk_label_new(DEFAULT_INFO);
	gtk_label_set_justify(GTK_LABEL(g_info), GTK_JUSTIFY_LEFT);
	gtk_label_set_line_wrap(GTK_LABEL(g_info), FALSE);
	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), g_info);
	gtk_widget_show(g_info);

	g_stat = gtk_statusbar_new();
	gtk_box_pack_end(GTK_BOX(vbox), g_stat, FALSE, FALSE, 0);
	gtk_widget_show(g_stat);
	set_status("status");
	
// Display everything
	gtk_widget_show(g_main);

// Process all other command line switches
	for (i=1; i<argc; i++) {
		if (strncmp(argv[i], "-o", 2)==0) {
			if (chdir(argv[++i]))
				about_box("unable to change directory");
			else
				set_title(NULL, GETCWD(buf, sizeof(buf)), NULL);
		} else if (strncmp(argv[i], "-dps", 4)==0) {
			open_backup(argv[i], argv[i+1]);
			if (strcmp(argv[i], "-dps12")==0)
				dps = AOSP_DPS12;
			else
				dps = AOSP_DPS16;
			++i;
		} else if (strncmp(argv[i], "-e", 2)==0) {
			if (dps<0)
				about_box("No backup specified to extract from");
			else {
				open_project(dps, akaiosdisk_project_byname(&g_disk, argv[++i]));
				select_tracks(MID_SELNOE);
				extract_tracks();
			}
		} else if (strncmp(argv[i], "-d", 2)==0 ||
			strncmp(argv[i], "-h", 2)==0) {
			; // Skip earlier opts
		} else {
			about_box(usage);
		}
	}

// Run message pump..
	gtk_main();
	return 0;
}
Esempio n. 23
0
MimeView *mimeview_create(void)
{
	MimeView *mimeview;

	GtkWidget *paned;
	GtkWidget *scrolledwin;
	GtkWidget *treeview;
	GtkTreeStore *store;
	GtkTreeSelection *selection;
	GtkTreeViewColumn *column;
	GtkCellRenderer *renderer;
	GtkWidget *mime_vbox;
	GtkWidget *popupmenu;
	GtkItemFactory *popupfactory;
	gint n_entries;
	GtkWidget *reply_separator;
	GtkWidget *reply_menuitem;
	GList *child;

	debug_print(_("Creating MIME view...\n"));
	mimeview = g_new0(MimeView, 1);

	scrolledwin = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
				       GTK_POLICY_AUTOMATIC,
				       GTK_POLICY_ALWAYS);
	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin),
					    GTK_SHADOW_IN);
	gtk_widget_set_size_request(scrolledwin, -1, 80);

	store = gtk_tree_store_new(N_COLS, G_TYPE_STRING, G_TYPE_STRING,
				   G_TYPE_STRING, G_TYPE_POINTER);

	treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
	g_object_unref(G_OBJECT(store));
	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE);
	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
	gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), COL_NAME);
	gtk_tree_view_set_reorderable(GTK_TREE_VIEW(treeview), FALSE);

	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
	gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);

	gtk_container_add(GTK_CONTAINER(scrolledwin), treeview);

	renderer = gtk_cell_renderer_text_new();
	g_object_set(renderer, "ypad", 0, NULL);
	column = gtk_tree_view_column_new_with_attributes
		(_("Data type"), renderer, "text", COL_MIMETYPE, NULL);
	gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
	gtk_tree_view_column_set_resizable(column, TRUE);
	gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

	renderer = gtk_cell_renderer_text_new();
	g_object_set(renderer, "xalign", 1.0, "ypad", 0, NULL);
	column = gtk_tree_view_column_new_with_attributes
		(_("Size"), renderer, "text", COL_SIZE, NULL);
	gtk_tree_view_column_set_alignment(column, 1.0);
	gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
	gtk_tree_view_column_set_resizable(column, TRUE);
	gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

	renderer = gtk_cell_renderer_text_new();
	g_object_set(renderer, "ypad", 0, NULL);
	column = gtk_tree_view_column_new_with_attributes
		(_("Name"), renderer, "text", COL_NAME, NULL);
	gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
	gtk_tree_view_column_set_resizable(column, TRUE);
	gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

	gtk_tree_view_enable_model_drag_source
		(GTK_TREE_VIEW(treeview), GDK_BUTTON1_MASK,
		 mimeview_mime_types, 1, GDK_ACTION_COPY);

	g_signal_connect(G_OBJECT(selection), "changed",
			 G_CALLBACK(mimeview_selection_changed), mimeview);
	g_signal_connect(G_OBJECT(treeview), "button_press_event",
			 G_CALLBACK(mimeview_button_pressed), mimeview);
	g_signal_connect(G_OBJECT(treeview), "key_press_event",
			 G_CALLBACK(mimeview_key_pressed), mimeview);

	g_signal_connect_after(G_OBJECT (treeview),"drag-begin",
			       G_CALLBACK (mimeview_drag_begin), mimeview);
	g_signal_connect(G_OBJECT (treeview),"drag-end",
			 G_CALLBACK (mimeview_drag_end), mimeview);
	g_signal_connect(G_OBJECT(treeview), "drag-data-get",
			 G_CALLBACK(mimeview_drag_data_get), mimeview);
    
	mime_vbox = gtk_vbox_new(FALSE, 0);
	gtk_container_set_reallocate_redraws(GTK_CONTAINER(mime_vbox), TRUE);

	paned = gtk_vpaned_new();
	gtk_paned_add1(GTK_PANED(paned), scrolledwin);
	gtk_paned_add2(GTK_PANED(paned), mime_vbox);

	n_entries = sizeof(mimeview_popup_entries) /
		sizeof(mimeview_popup_entries[0]);
	popupmenu = menu_create_items(mimeview_popup_entries, n_entries,
				      "<MimeView>", &popupfactory, mimeview);

	reply_menuitem = gtk_item_factory_get_item(popupfactory, "/Reply");
	child = g_list_find(GTK_MENU_SHELL(popupmenu)->children,
			    reply_menuitem);
	reply_separator = GTK_WIDGET(child->prev->data);

	mimeview->paned        = paned;
	mimeview->scrolledwin  = scrolledwin;
	mimeview->treeview     = treeview;
	mimeview->store        = store;
	mimeview->selection    = selection;
	mimeview->mime_vbox    = mime_vbox;
	mimeview->popupmenu    = popupmenu;
	mimeview->popupfactory = popupfactory;
	mimeview->reply_separator = reply_separator;
	mimeview->reply_menuitem  = reply_menuitem;
	mimeview->type         = -1;

	return mimeview;
}
Esempio n. 24
0
static void
thumbview_update_popupmenu_movie (GtkItemFactory * ifactory)
{
    switch (VIDEOPLAY_STATUS)
    {
      case VIDEOPLAY_STATUS_NULL:
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Fullscreen"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Play"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Pause"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Stop"), FALSE);
#if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD)
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Fast Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Slow Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Create Thumbnail"),
				    FALSE);
#endif
	  break;

      case VIDEOPLAY_STATUS_PLAYING:
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Fullscreen"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Play"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Pause"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Stop"), TRUE);
#if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD)
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Fast Forward"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Slow Forward"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Create Thumbnail"),
				    TRUE);
#endif
	  break;

      case VIDEOPLAY_STATUS_PAUSE:
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Fullscreen"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Play"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Pause"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Stop"), TRUE);
#if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD)
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Fast Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Slow Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Create Thumbnail"),
				    TRUE);
#endif
	  break;

      case VIDEOPLAY_STATUS_STOP:
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Fullscreen"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Play"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Pause"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Stop"), FALSE);
#if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD)
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Fast Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Slow Forward"), FALSE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Create Thumbnail"),
				    FALSE);
#endif
	  break;

      case VIDEOPLAY_STATUS_FORWARD:
      case VIDEOPLAY_STATUS_SLOW:
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Fullscreen"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Play"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Pause"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Stop"), TRUE);
#if (defined ENABLE_XINE) || (defined ENABLE_XINE_OLD)
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Fast Forward"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Slow Forward"), TRUE);
	  gtk_widget_set_sensitive (gtk_item_factory_get_item
				    (ifactory, "/Movie/Create Thumbnail"),
				    TRUE);
#endif
	  break;
    }
}