Esempio n. 1
0
/**
 * 插入图片到输入缓冲区.
 * @param dlgpr 对话框类
 */
void DialogPeer::InsertPicture(DialogPeer *dlgpr)
{
        GtkWidget *widget, *window;
        GtkTextBuffer *buffer;
        GtkTextIter iter;
        GdkPixbuf *pixbuf;
        gchar *filename;
        gint position;

        window = GTK_WIDGET(g_datalist_get_data(&dlgpr->widset, "window-widget"));
        if (!(filename = choose_file_with_preview(
                 _("Please select a picture to insert the buffer"), window)))
                return;

        if (!(pixbuf = gdk_pixbuf_new_from_file(filename, NULL))) {
                g_free(filename);
                return;
        }
        g_free(filename);

        widget = GTK_WIDGET(g_datalist_get_data(&dlgpr->widset,
                                         "input-textview-widget"));
        buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
        g_object_get(buffer, "cursor-position", &position, NULL);
        gtk_text_buffer_get_iter_at_offset(buffer, &iter, position);
        gtk_text_buffer_insert_pixbuf(buffer, &iter, pixbuf);
        g_object_unref(pixbuf);
}
Esempio n. 2
0
/**
 * 创建主窗口.
 * @return 窗口
 */
GtkWidget *DialogPeer::CreateMainWindow()
{
        char buf[MAX_BUFLEN];
        GtkWidget *window;
        gint width, height;
        PalInfo *palinfor;
        char ipstr[INET_ADDRSTRLEN];

        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        palinfor = (PalInfo *)grpinf->member->data;
        inet_ntop(AF_INET, &palinfor->ipv4, ipstr, INET_ADDRSTRLEN);
        snprintf(buf, MAX_BUFLEN, _("Talk with %s(%s) IP:%s"),
                 palinfor->name,palinfor->host,ipstr);
        gtk_window_set_title(GTK_WINDOW(window), buf);
        width = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "window-width"));
        height = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "window-height"));
        gtk_window_set_default_size(GTK_WINDOW(window), width, height);
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
        gtk_window_add_accel_group(GTK_WINDOW(window), accel);
        widget_enable_dnd_uri(window);
        g_datalist_set_data(&widset, "window-widget", window);
        grpinf->dialog = window;
        g_object_set_data(G_OBJECT(window),"dialog",this);

        MainWindowSignalSetup(window);
        g_signal_connect_swapped(GTK_OBJECT(window), "show",
                        G_CALLBACK(ShowDialogPeer), this);
        return window;
}
Esempio n. 3
0
static void
pine_import_exec (struct _pine_import_msg *m,
                  GCancellable *cancellable,
                  GError **error)
{
	EShell *shell;
	EShellBackend *shell_backend;
	EMailSession *session;

	/* XXX Dig up the EMailSession from the default EShell.
	 *     Since the EImport framework doesn't allow for user
	 *     data, I don't see how else to get to it. */
	shell = e_shell_get_default ();
	shell_backend = e_shell_get_backend_by_name (shell, "mail");
	session = e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend));

	if (GPOINTER_TO_INT (g_datalist_get_data (&m->target->data, "pine-do-addr")))
		import_contacts ();

	if (GPOINTER_TO_INT (g_datalist_get_data (&m->target->data, "pine-do-mail"))) {
		gchar *path;

		path = g_build_filename (g_get_home_dir (), "mail", NULL);
		mail_importer_import_folders_sync (
			session, path, pine_special_folders, 0, m->cancellable);
		g_free (path);
	}
}
Esempio n. 4
0
gboolean
pluginInit							(gpointer data, gchar** error)
{
	GData* fileConfig = (GData*)data;
	
	/* Load configuration parameters */
	if (g_datalist_get_data(&fileConfig, "files") != NULL)
	{
		/* Returns a NULL terminated array of strings. */
		files = g_strsplit(g_datalist_get_data(&fileConfig, "files"), ",", 0);

		if (g_strv_length(files) > MAXFILES)
		{
			*error = g_strdup(MAXFILESERROR);
			return (FALSE);
		}
	}
	else
	{
		/* Needs at least one file to watch for */
		*error = g_strdup(NOFILESAVAILABLE);
		return (FALSE);
	}

	if (g_datalist_get_data(&fileConfig, "delete") != NULL)
	{
		files = (gboolean)g_datalist_get_data(&fileConfig, "delete");
	}
	
	g_debug("FILE plugin loaded and initialized");
	return (TRUE);
}
Esempio n. 5
0
qq_im_format *qq_im_fmt_new_by_purple(const gchar *msg)
{
	qq_im_format *fmt;
	const gchar *start, *end, *last;
	GData *attribs;
	gchar *tmp;
	unsigned char *rgb;

	g_return_val_if_fail(msg != NULL, NULL);

	fmt = qq_im_fmt_new();

	last = msg;
	while (purple_markup_find_tag("font", last, &start, &end, &attribs)) {
		tmp = g_datalist_get_data(&attribs, "face");
		if (tmp && strlen(tmp) > 0) {
			if (fmt->font)	g_free(fmt->font);
			fmt->font_len = strlen(tmp);
			fmt->font = g_strdup(tmp);
		}

		tmp = g_datalist_get_data(&attribs, "size");
		if (tmp) {
			fmt->attr = atoi(tmp) * 3 + 1;
			fmt->attr &= 0x0f;
		}

		tmp = g_datalist_get_data(&attribs, "color");
		if (tmp && strlen(tmp) > 1) {
			rgb = purple_base16_decode(tmp + 1, NULL);
			g_memmove(fmt->rgb, rgb, 3);
			g_free(rgb);
		}

		g_datalist_clear(&attribs);
		last = end + 1;
	}

	if (purple_markup_find_tag("b", msg, &start, &end, &attribs)) {
		fmt->attr |= 0x20;
		g_datalist_clear(&attribs);
	}

	if (purple_markup_find_tag("i", msg, &start, &end, &attribs)) {
		fmt->attr |= 0x40;
		g_datalist_clear(&attribs);
	}

	if (purple_markup_find_tag("u", msg, &start, &end, &attribs)) {
		fmt->attr |= 0x80;
		g_datalist_clear(&attribs);
	}

	return fmt;
}
Esempio n. 6
0
/**
 * 播放文件结束响应处理函数.
 */
void SoundSystem::EosMessageOccur(SoundSystem *sndsys)
{
        GstElement *pipeline, *decode, *volume;

        pipeline = GST_ELEMENT(g_datalist_get_data(&sndsys->eltset, "pipeline-element"));
        gst_element_set_state(pipeline, GST_STATE_READY);
        decode = GST_ELEMENT(g_datalist_get_data(&sndsys->eltset, "decode-element"));
        volume = GST_ELEMENT(g_datalist_get_data(&sndsys->eltset, "volume-element"));
        gst_element_unlink(decode, volume);
        sndsys->persist = false;
}
Esempio n. 7
0
static void
pine_import (EImport *ei,
             EImportTarget *target,
             EImportImporter *im)
{
	if (GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pine-do-mail"))
	    || GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pine-do-addr")))
		mail_importer_pine_import (ei, target);
	else
		e_import_complete (ei, target, NULL);
}
static gchar *gfire_sq_gamespy2_details(gfire_game_server *p_server)
{
	GString *str = g_string_new(NULL);

	gfire_sq_gamespy2_data *data = (gfire_sq_gamespy2_data*)p_server->data->proto_data;

	// General server infos
	g_string_append(str, _("<b><font size=\"5\">General Server Details:</font></b><br>"));
	//	Server Name
	gchar *escaped = gfire_escape_html(p_server->data->name);
	g_string_append_printf(str, _("<b>Server Name:</b> %s<br>"), escaped);
	g_free(escaped);
	//	Players
	g_string_append_printf(str, _("<b>Players:</b> %u/%u<br>"), p_server->data->players, p_server->data->max_players);
	//	Map
	escaped = gfire_escape_html(p_server->data->map);
	g_string_append_printf(str, _("<b>Map:</b> %s<br>"), escaped);
	g_free(escaped);
	//	Password secured
	g_string_append_printf(str, _("<b>Password secured:</b> %s<br>"), (g_strcmp0("True", g_datalist_get_data(&data->info, "password")) == 0) ||
						   (g_strcmp0("1", g_datalist_get_data(&data->info, "password")) == 0)
						   ? _("Yes") : _("No"));
	// Game Type
	g_string_append_printf(str, _("<b>Game Type:</b> %s<br>"), g_datalist_get_data(&data->info, "gametype") ?
							   (gchar*)g_datalist_get_data(&data->info, "gametype") : _("N/A"));
	// Version
	g_string_append_printf(str, _("<b>Version:</b> %s"), g_datalist_get_data(&data->info, "gamever") ?
							   (gchar*)g_datalist_get_data(&data->info, "gamever") : _("N/A"));

	// Players
	g_string_append(str, _("<br><br><b><font size=\"5\">Players:</font></b><br><font face=\"monospace\"><b>Name             Score      Ping</b><br>"));
	GSList *cur = data->players;
	while(cur)
	{
		gfire_sq_gamespy2_player *player = (gfire_sq_gamespy2_player*)cur->data;

		gchar *unescaped = gfire_sq_gamespy2_fixed_len_string(player->name, 16);
		gchar *name = gfire_escape_html(unescaped);
		g_free(unescaped);

		g_string_append_printf(str, "%s %-10d %d<br>", name, player->score, player->ping);

		g_free(name);

		cur = g_slist_next(cur);
	}

	// Other server rules
	g_string_append(str, _("<br></font><b><font size=\"5\">All Server Info:</font></b><br>"));
	g_datalist_foreach(&data->info, gfire_sq_gamespy2_details_vars, str);

	return g_string_free(str, FALSE);
}
Esempio n. 9
0
/**
 * 图片拖拽事件响应函数.
 * @param dlgpr 对话框类
 * @param context the drag context
 * @param x where the drop happened
 * @param y where the drop happened
 * @param data the received data
 * @param info the info that has been registered with the target in the GtkTargetList
 * @param time the timestamp at which the data was received
 */
void DialogPeer::DragPicReceived(DialogPeer *dlgpr, GdkDragContext *context,
                                 gint x, gint y, GtkSelectionData *data,
                                 guint info, guint time)
{
        GtkWidget *widget;
        GtkTextBuffer *buffer;
        GtkTextIter iter;
        GdkPixbuf *pixbuf;
        GSList *list, *flist, *tlist;
        gint position;

        if (data->length <= 0 || data->format != 8) {
                gtk_drag_finish(context, FALSE, FALSE, time);
                return;
        }

        /* 获取(text-buffer)的当前插入点 */
        widget = GTK_WIDGET(g_datalist_get_data(&dlgpr->widset, "input-textview-widget"));
        buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
        g_object_get(buffer, "cursor-position", &position, NULL);
        gtk_text_buffer_get_iter_at_offset(buffer, &iter, position);
        /* 分离图片文件和常规文件,图片立即处理,常规文件稍候再处理 */
        flist = NULL;   //预置常规文件链表为空
        tlist = list = selection_data_get_path(data);   //获取所有文件
        while (tlist) {
                if ( (pixbuf = gdk_pixbuf_new_from_file((char *)tlist->data, NULL))) {
                        /* 既然是图片,那就立即处理吧 */
                        gtk_text_buffer_insert_pixbuf(buffer, &iter, pixbuf);
                        g_object_unref(pixbuf);
                } else {
                        /* 将文件路径转移至文件链表(flist) */
                        flist = g_slist_append(flist, tlist->data);
                        tlist->data = NULL;
                }
                tlist = g_slist_next(tlist);
        }
        /*/* 释放链表数据 */
        g_slist_foreach(list, GFunc(g_free), NULL);
        g_slist_free(list);
        /* 如果文件链表有文件,那就添加为附件吧 */
        if (flist) {
                dlgpr->AttachEnclosure(flist);
                g_slist_foreach(flist, GFunc(g_free), NULL);
                g_slist_free(flist);
                widget = GTK_WIDGET(g_datalist_get_data(&dlgpr->widset,
                                         "enclosure-frame-widget"));
                gtk_widget_show(widget);
        }

        gtk_drag_finish(context, TRUE, FALSE, time);
}
static gboolean gfire_sq_gamespy2_parse(gfire_game_server *p_server, guint16 p_ping, gboolean p_full,
									 const unsigned char *p_data, guint p_len)
{
	// Check header
	if(p_data[0] != 0 || memcmp(p_data + 1, "GFSQ", 4) != 0)
		return FALSE;

	p_server->data = g_new0(gfire_game_server_data, 1);
	p_server->data->driver = &gf_sq_gamespy2_driver;
	p_server->data->ping = p_ping;

	gfire_sq_gamespy2_data *gsdata = p_server->data->proto_data = g_new0(gfire_sq_gamespy2_data, 1);

	// Parse info
	guint offset = 5;
	offset += gfire_sq_gamespy2_parseInfo(gsdata, p_data + offset, p_len - offset);

	if(g_datalist_get_data(&gsdata->info, "hostname"))
		p_server->data->name = g_strdup(g_datalist_get_data(&gsdata->info, "hostname"));
	if(g_datalist_get_data(&gsdata->info, "mapname"))
		p_server->data->map = g_strdup(g_datalist_get_data(&gsdata->info, "mapname"));
	if(g_datalist_get_data(&gsdata->info, "numplayers"))
		sscanf(g_datalist_get_data(&gsdata->info, "numplayers"), "%u", &p_server->data->players);
	if(g_datalist_get_data(&gsdata->info, "maxplayers"))
		sscanf(g_datalist_get_data(&gsdata->info, "maxplayers"), "%u", &p_server->data->max_players);

	if(p_full)
	{
		// Parse players
		offset += gfire_sq_gamespy2_parsePlayers(gsdata, p_data + offset, p_len - offset);
	}

	return FALSE;
}
Esempio n. 11
0
static void
gnome_calendar_import (EImport *ei,
                       EImportTarget *target,
                       EImportImporter *im)
{
	icalcomponent *icalcomp = NULL;
	gchar *filename;
	gint do_calendar, do_tasks;
	ICalIntelligentImporter *ici;

	/* This is pretty shitty, everything runs in the gui thread and can block
	 * for quite some time */

	do_calendar = GPOINTER_TO_INT (g_datalist_get_data (&target->data, "gnomecal-do-cal"));
	do_tasks = GPOINTER_TO_INT (g_datalist_get_data (&target->data, "gnomecal-do-tasks"));

	/* If neither is selected, just return. */
	if (!do_calendar && !do_tasks)
		return;

	/* Load the Gnome Calendar file and convert to iCalendar. */
	filename = g_build_filename (g_get_home_dir (), "user-cal.vcf", NULL);
	icalcomp = load_vcalendar_file (filename);
	g_free (filename);

	/* If we couldn't load the file, just return. FIXME: Error message? */
	if (icalcomp) {
		ici = g_malloc0 (sizeof (*ici));
		ici->ei = ei;
		ici->target = target;
		ici->cancellable = g_cancellable_new ();
		ici->icalcomp = icalcomp;

		g_datalist_set_data_full (&target->data, "gnomecal-data", ici, free_ici);

		prepare_events (ici->icalcomp, &ici->tasks);
		if (do_calendar) {
			open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_EVENTS, gc_import_events);
			return;
		}

		prepare_tasks (ici->icalcomp, ici->tasks);
		if (do_tasks) {
			open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_TASKS, gc_import_tasks);
			return;
		}
	}

	e_import_complete (ei, target);
}
Esempio n. 12
0
/**
 * 创建所有区域.
 * @return 主窗体
 */
GtkWidget *DialogPeer::CreateAllArea()
{
        GtkWidget *box;
        GtkWidget *hpaned, *vpaned;
        gint position;

        box = gtk_vbox_new(FALSE, 0);

        /* 加入菜单条 */
        gtk_box_pack_start(GTK_BOX(box), CreateMenuBar(), FALSE, FALSE, 0);

        /* 加入主区域 */
        hpaned = gtk_hpaned_new();
        g_datalist_set_data(&widset, "main-paned", hpaned);
        g_object_set_data(G_OBJECT(hpaned), "position-name",
                                 (gpointer)"main-paned-divide");
        position = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "main-paned-divide"));
        gtk_paned_set_position(GTK_PANED(hpaned), position);
        gtk_box_pack_start(GTK_BOX(box), hpaned, TRUE, TRUE, 0);
        g_signal_connect(hpaned, "notify::position",
                         G_CALLBACK(PanedDivideChanged), &dtset);
        /*/* 加入聊天历史记录&输入区域 */
        vpaned = gtk_vpaned_new();
        g_object_set_data(G_OBJECT(vpaned), "position-name",
                         (gpointer)"historyinput-paned-divide");
        position = GPOINTER_TO_INT(g_datalist_get_data(&dtset,
                                 "historyinput-paned-divide"));
        gtk_paned_set_position(GTK_PANED(vpaned), position);
        gtk_paned_pack1(GTK_PANED(hpaned), vpaned, TRUE, TRUE);
        g_signal_connect(vpaned, "notify::position",
                         G_CALLBACK(PanedDivideChanged), &dtset);
        gtk_paned_pack1(GTK_PANED(vpaned), CreateHistoryArea(), TRUE, TRUE);
        gtk_paned_pack2(GTK_PANED(vpaned), CreateInputArea(), FALSE, TRUE);
        /* 加入好友信息&附件区域 */
        vpaned = gtk_vpaned_new();
        g_object_set_data(G_OBJECT(vpaned), "position-name",
                         (gpointer)"infoenclosure-paned-divide");
        position = GPOINTER_TO_INT(g_datalist_get_data(&dtset,
                                 "infoenclosure-paned-divide"));
        gtk_paned_set_position(GTK_PANED(vpaned), position);
        gtk_paned_pack2(GTK_PANED(hpaned), vpaned, FALSE, TRUE);
        g_signal_connect(vpaned, "notify::position",
                         G_CALLBACK(PanedDivideChanged), &dtset);
        gtk_paned_pack1(GTK_PANED(vpaned), CreateInfoArea(), TRUE, TRUE);
        gtk_paned_pack2(GTK_PANED(vpaned), CreateFileArea(), FALSE, TRUE);

        return box;
}
Esempio n. 13
0
static gboolean gfire_sq_savage_parse(gfire_game_server *p_server, guint16 p_ping, gboolean p_full,
									 const unsigned char *p_data, guint p_len)
{
	static guint8 check[] = { 0x9e, 0x4c, 0x23, 0x00, 0x00, 0xcf };

	if(p_len < 12 || memcmp(p_data, check, 6) != 0 || memcmp(p_data + 7, "GFSQ", 4) != 0)
		return FALSE;

	p_server->data = g_new0(gfire_game_server_data, 1);
	p_server->data->driver = &gf_sq_savage_driver;
	p_server->data->ping = p_ping;

	gfire_sq_savage_data *gsdata = p_server->data->proto_data = g_new0(gfire_sq_savage_data, 1);
	g_datalist_init(&gsdata->info);

	// Parse
	const gchar *section = (const gchar*)p_data + 12;
	guint offset = 0;

	while(offset < p_len)
	{
		gchar **chunks = g_strsplit(section, "\xff", -1);
		gchar **pos = chunks;
		while(*pos)
		{
			char **pieces = g_strsplit(*pos, "\xfe", -1);
			if(g_strv_length(pieces) != 2)
			{
				g_strfreev(pieces);
				pos++;
				continue;
			}

			if(g_strcmp0(pieces[0], "players") == 0)
				gsdata->players = g_strsplit(pieces[1], "\n", -1);
			else
				g_datalist_set_data_full(&gsdata->info, pieces[0], g_strdup(pieces[1]), g_free);

			g_strfreev(pieces);
			pos++;
		}
		g_strfreev(chunks);

		offset += strlen(section) + 1;
		section = (const gchar*)p_data + offset + 2; // skip 0x00 and 0xff
	}

	if(g_datalist_get_data(&gsdata->info, "name"))
		p_server->data->name = gfire_sq_savage_strip_color_codes(g_datalist_get_data(&gsdata->info, "name"));
	if(g_datalist_get_data(&gsdata->info, "world"))
		p_server->data->map = g_strdup(g_datalist_get_data(&gsdata->info, "world"));
	if(g_datalist_get_data(&gsdata->info, "cnum"))
		sscanf(g_datalist_get_data(&gsdata->info, "cnum"), "%u", &p_server->data->players);
	if(g_datalist_get_data(&gsdata->info, "cmax"))
		sscanf(g_datalist_get_data(&gsdata->info, "cmax"), "%u", &p_server->data->max_players);

	return FALSE;
}
Esempio n. 14
0
/**
 * 调整音量.
 * @param value 音量值
 */
void SoundSystem::AdjustVolume(double value)
{
        GstElement *volume;

        volume = GST_ELEMENT(g_datalist_get_data(&eltset, "volume-element"));
        g_object_set(volume, "volume", value, NULL);
}
Esempio n. 15
0
/**
 * @param stock_id	stock name
 * @return		this @a stock_id's pixbuf (or NULL for invalid stock ids)
 *
 * Return the pixbuf associated with @a stock_id, the pixbuf is
 * owned by the stock system and persists throughout runtime.
 * To display stock icons in widgets use gxk_stock_image() and not
 * this pixbuf.
 */
GdkPixbuf*
gxk_stock_fallback_pixbuf (const gchar *stock_id)
{
  static GData *stock_pixbuf_repo = NULL;
  GdkPixbuf *pixbuf;

  g_return_val_if_fail (stock_id != NULL, NULL);

  pixbuf = g_datalist_get_data (&stock_pixbuf_repo, stock_id);
  if (!pixbuf)
    {
      GtkIconSet *iset = gtk_icon_factory_lookup_default (stock_id);

      if (iset)
	{
	  static GtkStyle *style = NULL;	/* FIXME: GTKFIX: gtk_icon_set_render_icon() shouldn't demand a style */
	  if (!style)
	    style = gtk_style_new ();
	  pixbuf = gtk_icon_set_render_icon (iset, style, GTK_TEXT_DIR_NONE,
					     GTK_STATE_NORMAL, -1, NULL, NULL);
	  g_datalist_set_data (&stock_pixbuf_repo, stock_id, pixbuf);
	}
    }
  return pixbuf;
}
void
c2_html_gtkhtml_url_requested (GtkWidget *widget, const gchar *url, GtkHTMLStream *handle, gpointer data)
{
	C2HTML *html = C2_HTML (data);
	C2HTMLLinkManager lm_func;
	gchar *prefix;

	prefix = c2_str_get_word (0, url, ':');

	lm_func = (C2HTMLLinkManager) g_datalist_get_data (&html->link_manager_data, prefix);
	
	if (lm_func)
		lm_func (html, url, handle);
	else
	{
		C2Pthread2 *data;
		pthread_t thread;

		data = g_new0 (C2Pthread2, 1);
		data->v1 = (gpointer) url;
		data->v2 = handle;
		
		/* Try now for built-in supported links */
		if (c2_streq (prefix, "http"))
			pthread_create (&thread, NULL, C2_PTHREAD_FUNC (on_html_http_url_requested), data);
		else if (c2_streq (prefix, "ftp"))
			L
		else if (c2_streq (prefix, "c2dist"))
			pthread_create (&thread, NULL, C2_PTHREAD_FUNC (on_html_c2dist_url_requested), data);

	}
	g_free (prefix);
}
Esempio n. 17
0
/**
 * 好友对话框入口.
 * @param grpinf 好友群组信息
 */
void DialogPeer::PeerDialogEntry(GroupInfo *grpinf)
{
        DialogPeer *dlgpr;
        GtkWidget *window, *widget;

        dlgpr = new DialogPeer(grpinf);
        window = dlgpr->CreateMainWindow();
        gtk_container_add(GTK_CONTAINER(window), dlgpr->CreateAllArea());
        gtk_widget_show_all(window);

        /* 将焦点置于文本输入框 */
        widget = GTK_WIDGET(g_datalist_get_data(&dlgpr->widset,
                                         "input-textview-widget"));
        gtk_widget_grab_focus(widget);

        /* 从消息队列中移除 */
        pthread_mutex_lock(cthrd.GetMutex());
        if (cthrd.MsglineContainItem(grpinf)) {
                mwin.MakeItemBlinking(grpinf, FALSE);
                cthrd.PopItemFromMsgline(grpinf);
        }
        pthread_mutex_unlock(cthrd.GetMutex());

        /* delete dlgpr;//请不要这样做,此类将会在窗口被摧毁后自动释放 */
}
static void
mbox_cancel(EImport *ei, EImportTarget *target, EImportImporter *im)
{
	MboxImporter *importer = g_datalist_get_data(&target->data, "mbox-data");

	if (importer)
		camel_operation_cancel(importer->cancel);
}
Esempio n. 19
0
static void
elm_cancel(EImport *ei, EImportTarget *target, EImportImporter *im)
{
	struct _elm_import_msg *m = g_datalist_get_data(&target->data, "elm-msg");

	if (m)
		camel_operation_cancel(m->status);
}
Esempio n. 20
0
static void
elm_import(EImport *ei, EImportTarget *target, EImportImporter *im)
{
	if (GPOINTER_TO_INT(g_datalist_get_data(&target->data, "elm-do-mail")))
		mail_importer_elm_import(ei, target);
	else
		e_import_complete(ei, target);
}
Esempio n. 21
0
/**
 * 类析构函数.
 */
SoundSystem::~SoundSystem()
{
        GstElement *pipeline;

        if ( (pipeline = GST_ELEMENT(g_datalist_get_data(&eltset, "pipeline-element"))))
                gst_element_set_state(pipeline, GST_STATE_NULL);
        g_datalist_clear(&eltset);
}
Esempio n. 22
0
/**
 * camel_url_get_param:
 * @url: a #CamelURL
 * @name: name of the param
 *
 * Get the value of the specified param on the URL.
 *
 * Returns: the value of a param if found or %NULL otherwise
 **/
const gchar *
camel_url_get_param (CamelURL *url,
                     const gchar *name)
{
	g_return_val_if_fail (url != NULL, NULL);

	return g_datalist_get_data (&url->params, name);
}
Esempio n. 23
0
const char *
qipu_get_info (qipu_t *qipu, const char *token)
{
  gpointer data;

  data = g_datalist_get_data (&qipu->tv_list, token);
  return data;
}
Esempio n. 24
0
/**
 * Adds a track into a tree structure
 * @param itdbtrk Pointer to the track's Itdb_Track structure
 * @param start Pointer to the root of the tree
 * @param track If not NULL, pointer to the node of the track
 * @param ipod Root node of this track
 */
static void
ipoddisk_add_track (Itdb_Track *itdbtrk,
                    struct ipoddisk_node *start, struct ipoddisk_node *albums,
                    struct ipoddisk_node *track, struct ipoddisk_ipod *ipod)
{
	struct ipoddisk_node *artist;
	struct ipoddisk_node *album;
	gchar                *track_ext;
	gchar                *album_name;
	gchar                *track_name;
	gchar                *artist_name;

	album_name  = itdbtrk->album ? itdbtrk->album : "Unknown Album";
	track_name  = itdbtrk->title ? itdbtrk->title : "Unknown Track";
	artist_name = itdbtrk->artist ? itdbtrk->artist : "Unknown Artist";

	artist = g_datalist_get_data(&start->nd_children, artist_name);
	if (!artist)
		artist = ipoddisk_new_node(start, artist_name,
                                           IPODDISK_NODE_DEFAULT);

	album = g_datalist_get_data(&artist->nd_children, album_name);
	if (!album) {
		album = ipoddisk_new_node(artist, album_name,
                                          IPODDISK_NODE_DEFAULT);
                if (albums != NULL)
                        ipoddisk_add_child(albums, album, album_name);
        }

        track_ext = ipod_get_track_extension(itdbtrk->ipod_path);
        track_name = g_strconcat(track_name, track_ext, NULL);

        if (track != NULL) {
                ipoddisk_add_child(album, track, track_name);
        } else {
                track = ipoddisk_new_node(album, track_name,
                                          IPODDISK_NODE_LEAF);
                track->nd_children = (GData *) itdbtrk;
                track->nd_data.track.trk_ipod = ipod;
                itdbtrk->userdata = track;
        }

        g_free(track_name);
	return;
}
Esempio n. 25
0
/**
 * 保存对话框的UI布局数据.
 */
void DialogPeer::WriteUILayout()
{
        GConfClient *client;
        gint numeric;

        client = gconf_client_get_default();

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "window-width"));
        gconf_client_set_int(client, GCONF_PATH "/peer_window_width", numeric, NULL);
        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "window-height"));
        gconf_client_set_int(client, GCONF_PATH "/peer_window_height", numeric, NULL);

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset, "main-paned-divide"));
        gconf_client_set_int(client, GCONF_PATH "/peer_main_paned_divide", numeric, NULL);

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset,
                                 "historyinput-paned-divide"));
        gconf_client_set_int(client, GCONF_PATH "/peer_historyinput_paned_divide",
                                                                 numeric, NULL);

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset,
                                 "infoenclosure-paned-divide"));
        gconf_client_set_int(client, GCONF_PATH "/peer_infoenclosure_paned_divide",
                                                                 numeric, NULL);

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset,"enclosure-paned-divide"));
        gconf_client_set_int(client, GCONF_PATH "/peer_enclosure_paned_divide",
                                                                 numeric, NULL);

        numeric = GPOINTER_TO_INT(g_datalist_get_data(&dtset,"file-receive-paned-divide"));
        gconf_client_set_int(client, GCONF_PATH "/peer_file_recieve_paned_divide",
                                                                 numeric, NULL);

        g_object_unref(client);
}
Esempio n. 26
0
/**
 * 播放音频文件.
 * @param file 音频文件
 * @note 如果时间间隔过短,系统将会忽略后一个请求.
 */
void SoundSystem::Playing(const char *file)
{
        GstElement *pipeline, *filesrc;
        struct timeval time;

        gettimeofday(&time, NULL);
        if (!FLAG_ISSET(progdt.sndfgs, 0) || (difftimeval(time, timestamp) < 0.1))
                return;

        if (persist)
                EosMessageOccur(this);
        persist = true;
        filesrc = GST_ELEMENT(g_datalist_get_data(&eltset, "filesrc-element"));
        g_object_set(filesrc, "location", file, NULL);
        pipeline = GST_ELEMENT(g_datalist_get_data(&eltset, "pipeline-element"));
        gst_element_set_state(pipeline, GST_STATE_PLAYING);
        timestamp = time;
}
Esempio n. 27
0
static void
csv_cancel (EImport *ei,
            EImportTarget *target,
            EImportImporter *im)
{
	CSVImporter *gci = g_datalist_get_data (&target->data, "csv-data");

	if (gci)
		gci->state = 1;
}
Esempio n. 28
0
static void
pine_cancel (EImport *ei,
             EImportTarget *target,
             EImportImporter *im)
{
	struct _pine_import_msg *m = g_datalist_get_data (&target->data, "pine-msg");

	if (m)
		g_cancellable_cancel (m->cancellable);
}
static void
mbox_cancel (EImport *ei,
             EImportTarget *target,
             EImportImporter *im)
{
	MboxImporter *importer = g_datalist_get_data (&target->data, "mbox-data");

	if (importer)
		g_cancellable_cancel (importer->cancellable);
}
Esempio n. 30
0
static void
vcard_cancel (EImport *ei,
              EImportTarget *target,
              EImportImporter *im)
{
	VCardImporter *gci = g_datalist_get_data(&target->data, "vcard-data");

	if (gci)
		gci->state = 1;
}