Example #1
0
static void
launch_item (const char *file)
{
	MateDesktopItem *ditem;
	GList *file_list = NULL;
	int ret;

	ditem = mate_desktop_item_new_from_file (file,
						  MATE_DESKTOP_ITEM_LOAD_ONLY_IF_EXISTS,
						  NULL);
	if (ditem == NULL) {
		g_print ("File %s is not an existing ditem\n", file);
		return;

	}

#if 0
	file_list = g_list_append (NULL, "file:///bin/sh");
	file_list = g_list_append (file_list, "foo");
	file_list = g_list_append (file_list, "bar");
	file_list = g_list_append (file_list, "http://slashdot.org");
#endif

	ret = mate_desktop_item_launch (ditem, file_list, 0, NULL);
	g_print ("launch returned: %d\n", ret);
}
MateDesktopItem *
load_desktop_item_from_unknown (const gchar *id)
{
	MateDesktopItem *item;
	gchar            *basename;

	GError *error = NULL;


	item = mate_desktop_item_new_from_uri (id, 0, &error);

	if (! error)
		return item;
	else {
		g_error_free (error);
		error = NULL;
	}

	item = mate_desktop_item_new_from_file (id, 0, &error);

	if (! error)
		return item;
	else {
		g_error_free (error);
		error = NULL;
	}

	item = mate_desktop_item_new_from_basename (id, 0, &error);

	if (! error)
		return item;
	else {
		g_error_free (error);
		error = NULL;
	}

	basename = g_strrstr (id, "/");

	if (basename) {
		basename++;

		item = mate_desktop_item_new_from_basename (basename, 0, &error);

		if (! error)
			return item;
		else {
			g_error_free (error);
			error = NULL;
		}
	}

	return NULL;
}
MateDesktopItem *
load_desktop_item_by_unknown_id (const gchar * id)
{
	MateDesktopItem *item;
	GError *error = NULL;

	item = mate_desktop_item_new_from_uri (id, 0, &error);

	if (!error)
		return item;
	else
	{
		g_error_free (error);
		error = NULL;
	}

	item = mate_desktop_item_new_from_file (id, 0, &error);

	if (!error)
		return item;
	else
	{
		g_error_free (error);
		error = NULL;
	}

	item = mate_desktop_item_new_from_basename (id, 0, &error);

	if (!error)
		return item;
	else
	{
		g_error_free (error);
		error = NULL;
	}

	return NULL;
}
Example #4
0
static void
test_ditem (const char *file)
{
	MateDesktopItem *ditem;
	MateDesktopItemType type;
	const gchar *text;
	char *uri;
	char path[256];

	ditem = mate_desktop_item_new_from_file (file,
						  MATE_DESKTOP_ITEM_LOAD_ONLY_IF_EXISTS,
						  NULL);
	if (ditem == NULL) {
		g_print ("File %s is not an existing ditem\n", file);
		return;
	}

	text = mate_desktop_item_get_location (ditem);
	g_print ("LOCATION: |%s|\n", text);

	type = mate_desktop_item_get_entry_type (ditem);
	g_print ("TYPE: |%u|\n", type);

	text = mate_desktop_item_get_string
		(ditem, MATE_DESKTOP_ITEM_TYPE);
	g_print ("TYPE(string): |%s|\n", text);

	text = mate_desktop_item_get_string
		(ditem, MATE_DESKTOP_ITEM_EXEC);
	g_print ("EXEC: |%s|\n", text);

	text = mate_desktop_item_get_string
		(ditem, MATE_DESKTOP_ITEM_ICON);
	g_print ("ICON: |%s|\n", text);

	text = mate_desktop_item_get_localestring
		(ditem, MATE_DESKTOP_ITEM_NAME);
	g_print ("NAME: |%s|\n", text);

	text = mate_desktop_item_get_localestring_lang
		(ditem, MATE_DESKTOP_ITEM_NAME,
		 "cs_CZ");
	g_print ("NAME(lang=cs_CZ): |%s|\n", text);

	text = mate_desktop_item_get_localestring_lang
		(ditem, MATE_DESKTOP_ITEM_NAME,
		 "de");
	g_print ("NAME(lang=de): |%s|\n", text);


	text = mate_desktop_item_get_localestring_lang
		(ditem, MATE_DESKTOP_ITEM_NAME,
		 NULL);
	g_print ("NAME(lang=null): |%s|\n", text);

	text = mate_desktop_item_get_localestring
		(ditem, MATE_DESKTOP_ITEM_COMMENT);
	g_print ("COMMENT: |%s|\n", text);

	g_print ("Setting Name[de]=Neu gestzt! (I have no idea what that means)\n");
	mate_desktop_item_set_localestring
		(ditem,
		 MATE_DESKTOP_ITEM_NAME,
		 "Neu gesetzt!");

	getcwd (path, 255 - strlen ("/foo.desktop"));
	strcat (path, "/foo.desktop");

	g_print ("Saving to foo.desktop\n");
	uri = g_filename_to_uri (path, NULL, NULL);
	g_print ("URI: %s\n", uri);
	mate_desktop_item_save (ditem, uri, FALSE, NULL);
	g_free (uri);
}