亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? callbacks.c

?? Linux下的飛鴿傳書
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* *  Copyright (C) 2006 Takeharu KATO * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <gnome.h>#include <glib.h>#include <gconf/gconf-client.h>#include "callbacks.h"#include "interface.h"#include "support.h"#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/time.h>#include <errno.h>#include <libgnomevfs/gnome-vfs.h>#include <libgnomevfs/gnome-vfs-utils.h>#include <libgnomevfs/gnome-vfs-mime-handlers.h>#include "common.h"#define GLADE_HOOKUP_OBJECT(component,widget,name) \  g_object_set_data_full (G_OBJECT (component), name, \    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)static GtkTargetEntry targetentries[] =    {      { "text/uri-list", 0, 0 },    };static intget_group_index(GtkComboBox *combobox,const gchar *groupname,int *index) {  GtkTreeModel *model;  GtkTreeIter iter;  gboolean valid;  int count=0;  if ( (!combobox) || (!groupname) || (!index) )    return -EINVAL;  g_assert(combobox);  model=gtk_combo_box_get_model(combobox);  g_assert(model);  valid = gtk_tree_model_get_iter_first (model, &iter);  while(valid) {    gchar *str_data;    gtk_tree_model_get (model, &iter,                           0, &str_data,                          -1);    dbg_out("group:%s\n",str_data);    if (!strcmp(groupname,str_data)) {      *index=count;      dbg_out("find:%s(%d)\n",str_data,*index);      g_free(str_data);      return 0;    }    g_free(str_data);    valid = gtk_tree_model_iter_next (model, &iter);    ++count;  }  return -ESRCH;}static intget_current_group_index(GtkComboBox *combobox) {  int rc;  int index=0;  gchar *current_group;  g_assert(combobox);  current_group=(gchar *)hostinfo_refer_group_name();  rc=get_group_index(combobox,current_group,&index);  return index;}static intupdateConfigWindowGroups(GtkWidget *comboEntry) {  GtkTreeModel *model;  GtkTreePath *path;  GtkTreeIter iter;  gchar *active_text;  int group_index=0;  int rc;  model=gtk_combo_box_get_model(GTK_COMBO_BOX(comboEntry));  if (!model)    return -EINVAL;  path=gtk_tree_path_new_first ();  g_assert(path);  if (gtk_tree_model_get_iter(model,&iter,path)) {    while(gtk_list_store_remove(GTK_LIST_STORE(model), &iter))      dbg_out("Remove group\n");  }  gtk_tree_path_free (path);  userdb_update_group_list(GTK_COMBO_BOX(comboEntry));  active_text=gtk_combo_box_get_active_text(GTK_COMBO_BOX(comboEntry));  if ( (active_text) &&   ((strlen(active_text))>0)) {    rc=get_group_index(GTK_COMBO_BOX(comboEntry),active_text,&group_index);    if (rc<0)      gtk_combo_box_append_text (GTK_COMBO_BOX(comboEntry),active_text);    else      gtk_combo_box_set_active (GTK_COMBO_BOX(comboEntry),group_index);  }  if (active_text)    g_free(active_text);  return 0;}static voidsendmessage_get_attachment_part(long pktno,GtkWidget *editor,const char **ext_part){  attach_file_block_t *afcb;  GtkTreeIter  iter;  GtkWidget    *view;  GtkTreeModel *model;  gboolean valid;  gchar *string;  int count;    dbg_out("here\n");  g_assert(ext_part);  g_assert(*ext_part == NULL);  if (create_attach_file_block(&afcb))    return;  view=lookup_widget(editor,"attachedFilesView");  g_assert(view);  model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));  g_assert(model);  count=0;  valid = gtk_tree_model_get_iter_first (model, &iter);  while(valid) {      gchar *filepath;      gtk_tree_model_get (model, &iter,                           0, &filepath,                          -1);      dbg_out("filepath:%s\n",filepath);      add_attach_file(afcb,filepath);      g_free(filepath);      ++count;      valid = gtk_tree_model_iter_next (model, &iter);  }  if ( (count > 0) && (!get_attach_file_extention(afcb,(const gchar **)&string)) ){    add_upload_queue(pktno,afcb);    dbg_out("Attach file string:%s\n",string);    *ext_part=string;    }}static voiddo_send(GtkTreeModel *model,	       GtkTreePath *path,	       GtkTreeIter *iter,	       gpointer data){  send_info_t *info;  gchar *ipaddr;  int pkt_no;  int rc;  GtkWidget *attachment_editor;  gchar *ext_part=NULL;  int lflags;  info=(send_info_t *)data;  gtk_tree_model_get (model, iter, 		      USER_VIEW_IPADDR_ID, &ipaddr,		      -1);  pkt_no=ipmsg_get_pkt_no();  lflags=info->flags;  dbg_out("Send to %s Flags[%x] from ui\n",ipaddr,lflags);  if ( lflags & IPMSG_FILEATTACHOPT){    /*     *アタッチメント     */    attachment_editor=info->attachment_editor;    if (attachment_editor) {      dbg_out("This message has attachment\n");      ext_part=NULL;      sendmessage_get_attachment_part(pkt_no,GTK_WIDGET(attachment_editor),(const char **)&ext_part);      if (!ext_part) {	lflags &= ~IPMSG_FILEATTACHOPT;      }    }  }  if ( lflags & IPMSG_FILEATTACHOPT){    rc=ipmsg_send_send_msg(udp_con,ipaddr,lflags,pkt_no,info->msg,ext_part);    if (!rc) {      ref_attach_file_block(pkt_no,ipaddr);    }  } else {    rc=ipmsg_send_send_msg(udp_con,ipaddr,lflags,pkt_no,info->msg,NULL);  }  if (rc)    ipmsg_err_dialog(_("Can not send message to %s pktno=%d"),ipaddr,pkt_no);  if (ext_part)    g_free(ext_part);  g_free(ipaddr);}static inthas_dupulicated_string_in_cell(const char *string,GtkTreeView *treeview){  GtkTreeModel *model;  GtkTreeIter iter;  gboolean valid;  int rc;  g_assert(treeview);  if (!string)    return -EINVAL;  rc=-ESRCH;  model = gtk_tree_view_get_model(treeview);  for(valid = gtk_tree_model_get_iter_first (model, &iter);      valid;      valid = gtk_tree_model_iter_next (model, &iter)) {	gchar *str_data;	gtk_tree_model_get (model, &iter,                           0, &str_data,                          -1);	if (!strcmp(string,str_data)) {	  dbg_out("Already exist:%s\n",str_data);	  g_free(str_data);	  rc=0;	  break;	}	g_free(str_data);  }  return rc;}static voidonBroadcastSelectionChanged (GtkTreeSelection *sel, GtkListStore *liststore){  GtkTreeIter  selected_row;  GtkWidget    *view;  GtkWidget    *remove_btn;    view=GTK_WIDGET(gtk_tree_selection_get_tree_view(sel));  g_assert(view);  remove_btn=lookup_widget(GTK_WIDGET(view),"configRemoveBcastBtn");  g_assert(remove_btn);  g_assert(gtk_tree_selection_get_mode(sel) == GTK_SELECTION_SINGLE);  if (gtk_tree_selection_get_selected(sel, NULL, &selected_row))    {      gtk_widget_set_sensitive(remove_btn, TRUE);    }  else    {      gtk_widget_set_sensitive(remove_btn, FALSE);    }}voidon_app1_drag_data_received             (GtkWidget       *widget,                                        GdkDragContext  *drag_context,                                        gint             x,                                        gint             y,                                        GtkSelectionData *data,                                        guint            info,                                        guint            time,                                        gpointer         user_data){  dbg_out("here\n");}gbooleanon_app1_drag_drop                      (GtkWidget       *widget,                                        GdkDragContext  *drag_context,                                        gint             x,                                        gint             y,                                        guint            time,                                        gpointer         user_data){  dbg_out("here\n");  return FALSE;}gbooleanon_app1_destroy_event                  (GtkWidget       *widget,                                        GdkEvent        *event,                                        gpointer         user_data){  dbg_out("here\n");  return FALSE;}voidon_app1_destroy                        (GtkObject       *object,                                        gpointer         user_data){  GtkWidget *window;  GtkWidget *attachment_editor;  dbg_out("here\n");  window=lookup_widget(GTK_WIDGET(object),"messageWindow");  g_assert(window);  attachment_editor = (GtkWidget*) g_object_get_data (G_OBJECT (object),						      "attach_win");  if (attachment_editor)     gtk_widget_destroy (attachment_editor);  else    dbg_out("No attachment editor\n");  userdb_remove_waiter_window(window);}voidon_new1_activate                       (GtkMenuItem     *menuitem,                                        gpointer         user_data){  dbg_out("here\n");}/* notice: This function may be called from applt, so we should not use * menuitem argument. */voidon_preferences1_activate               (GtkMenuItem     *menuitem,                                        gpointer         user_data){  GtkWidget *configWindow;  GtkTreeView *broadcasts;  GtkCellRenderer    *renderer;  GtkTreeViewColumn  *col;  GtkTreeSelection   *sel;  GtkListStore       *liststore;  dbg_out("here\n");  configWindow=create_configWindow1 ();  if (!configWindow)     return;  broadcasts=GTK_TREE_VIEW(lookup_widget(configWindow,"treeview4"));  g_assert(broadcasts);  renderer = gtk_cell_renderer_text_new();  if (!renderer)    goto free_window;  col = gtk_tree_view_column_new();  if (!col)    goto free_renderer;  liststore = gtk_list_store_new(1, G_TYPE_STRING);  if (!liststore)    goto free_col;  gtk_tree_view_set_model(GTK_TREE_VIEW(broadcasts), GTK_TREE_MODEL(liststore));  g_object_unref(liststore);  gtk_tree_view_column_pack_start(col, renderer, TRUE);  gtk_tree_view_column_add_attribute(col, renderer, "text", 0);  gtk_tree_view_column_set_title(col, _("Broad cast addresses"));  gtk_tree_view_append_column(GTK_TREE_VIEW(broadcasts), col);  sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(broadcasts));  gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);  g_signal_connect(sel, "changed", 		   G_CALLBACK(onBroadcastSelectionChanged),		   liststore);    gtk_widget_show (configWindow);  return; free_window:  gtk_widget_destroy(GTK_WIDGET(configWindow)); free_col:  gtk_object_destroy(GTK_OBJECT(col)); free_renderer:  gtk_object_destroy(GTK_OBJECT(renderer));  return;}voidon_update2_activate                    (GtkMenuItem     *menuitem,                                        gpointer         user_data){  dbg_out("here\n");  ipmsg_update_ui_user_list();}voidon_about1_activate                     (GtkMenuItem     *menuitem,                                        gpointer         user_data){  ipmsg_show_about_dialog();}voidon_sendBtn_released                    (GtkButton       *button,                                        gpointer         user_data){  dbg_out("here\n");}voidon_sendBtn_pressed                     (GtkButton       *button,                                        gpointer         user_data){  dbg_out("here\n");}voidon_configOpenCheckChkBtn_toggled       (GtkToggleButton *togglebutton,                                        gpointer         user_data){  dbg_out("here\n");}voidon_configNonPopupCheckBtn_toggled      (GtkToggleButton *togglebutton,                                        gpointer         user_data){  dbg_out("here\n");}voidon_configNoSoundCheckBtn_toggled       (GtkToggleButton *togglebutton,                                        gpointer         user_data){  dbg_out("here\n");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲一本大道中文在线| 欧美大片免费久久精品三p| 国产激情一区二区三区四区 | 成人午夜视频福利| 国产电影一区在线| 成人福利视频在线| 成人av在线网| 色婷婷av一区二区三区大白胸| 99精品桃花视频在线观看| 99re热这里只有精品免费视频| 色一情一乱一乱一91av| 欧美色图片你懂的| 制服丝袜av成人在线看| 精品日韩99亚洲| 日本一区二区三区久久久久久久久不 | 欧美一区二区三区播放老司机| 6080日韩午夜伦伦午夜伦| 日韩三级在线观看| 亚洲国产精品高清| 香蕉影视欧美成人| 国产在线精品国自产拍免费| 国产不卡视频一区二区三区| 色婷婷综合久久久久中文 | 国产午夜一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 亚洲国产视频a| 另类的小说在线视频另类成人小视频在线 | 色系网站成人免费| 91精品国模一区二区三区| 久久精品男人的天堂| 亚洲欧美日韩一区| 亚洲v中文字幕| 91.麻豆视频| 91在线无精精品入口| 91同城在线观看| 日韩亚洲欧美一区| 一区二区三区四区国产精品| 秋霞午夜鲁丝一区二区老狼| 福利一区二区在线观看| 成人午夜视频网站| 国内精品伊人久久久久av影院 | 免费亚洲电影在线| 精品欧美一区二区三区精品久久| 日韩高清在线一区| 久久这里只有精品首页| 国产精品资源网站| 亚洲色图欧美偷拍| 91精品在线一区二区| 久久精品国产在热久久| 国产日韩成人精品| 色94色欧美sute亚洲线路一久| 亚洲高清三级视频| 精品国产欧美一区二区| 大白屁股一区二区视频| 亚洲精品久久7777| 欧美电视剧在线看免费| 成人免费毛片高清视频| 一区二区三区在线观看网站| 91精品国产一区二区三区蜜臀| 国产精品99久久久久久久vr| 亚洲最色的网站| 欧美一级精品大片| 9色porny自拍视频一区二区| 亚洲一区二区三区国产| 精品欧美乱码久久久久久| www.综合网.com| 美女视频黄a大片欧美| 中文字幕成人在线观看| 欧洲激情一区二区| 国产成人激情av| 三级一区在线视频先锋| 国产拍欧美日韩视频二区 | 99这里都是精品| 水野朝阳av一区二区三区| 国产日韩v精品一区二区| 欧美日韩不卡一区| 国产99久久久久| 裸体在线国模精品偷拍| 亚洲精品成人精品456| 久久久久久久久久久久久女国产乱| 91福利国产精品| 国产精品91一区二区| 性久久久久久久久久久久| 国产精品国产三级国产普通话蜜臀| 制服丝袜一区二区三区| 色综合天天综合网国产成人综合天| 精品无码三级在线观看视频| 九色综合国产一区二区三区| 最新日韩av在线| 久久精品免视看| 欧美一区二区三区系列电影| 91丨porny丨最新| 成人av网站在线观看| 国产一区二区成人久久免费影院 | 884aa四虎影成人精品一区| 91丨九色丨黑人外教| 国产成人av福利| 久久99久久久欧美国产| 日本在线不卡视频一二三区| 亚洲一区二区欧美日韩| 亚洲精品videosex极品| 国产精品理论片| 国产精品午夜春色av| 久久久91精品国产一区二区精品| 日韩一区二区三区免费看| 欧美高清视频www夜色资源网| 在线视频一区二区三区| 色综合久久久久| 色综合久久99| 欧美亚日韩国产aⅴ精品中极品| 99re这里都是精品| 色婷婷久久99综合精品jk白丝| 色哟哟在线观看一区二区三区| 99久久精品国产一区二区三区 | 日韩美女久久久| 亚洲女厕所小便bbb| 亚洲免费观看高清完整| 日韩美女久久久| 亚洲在线视频网站| 偷窥少妇高潮呻吟av久久免费| 亚洲高清免费一级二级三级| 亚洲成av人**亚洲成av**| 日韩激情在线观看| 久久99国内精品| 国产成人福利片| 91污在线观看| 欧美日韩精品专区| 日韩午夜小视频| 久久精品免费在线观看| 国产精品高潮呻吟久久| 亚洲精品乱码久久久久久久久 | 日韩一区二区三区精品视频| 日韩欧美精品三级| 国产亚洲短视频| 中文字幕色av一区二区三区| 亚洲一区在线观看网站| 日韩高清一区二区| 国产成人综合网站| 在线视频欧美区| 日韩免费观看高清完整版| 国产欧美综合在线观看第十页| 亚洲色欲色欲www在线观看| 亚洲123区在线观看| 国产精品69久久久久水密桃| 色综合天天做天天爱| 日韩一区二区三区高清免费看看| 国产日本欧洲亚洲| 亚洲蜜臀av乱码久久精品| 蜜桃视频一区二区三区| 成人蜜臀av电影| 欧美久久久久中文字幕| 久久精品免费在线观看| 亚洲图片有声小说| 国产大陆a不卡| 欧美精品色一区二区三区| 日本一二三四高清不卡| 日韩av中文字幕一区二区三区| 成人精品免费视频| 日韩欧美一二区| 亚洲欧美日韩一区二区三区在线观看 | 一区二区三区欧美久久| 久久se精品一区精品二区| 91亚洲精品久久久蜜桃网站| 日韩精品一区在线| 亚洲日本韩国一区| 国产又粗又猛又爽又黄91精品| 91激情在线视频| 国产精品日产欧美久久久久| 视频一区免费在线观看| 99久久亚洲一区二区三区青草| 久久丝袜美腿综合| 日韩电影在线免费看| 色婷婷综合久久久中文字幕| 欧美极品美女视频| 精品一区二区三区的国产在线播放| 欧美在线视频全部完| 中文字幕在线不卡一区| 国产成人免费网站| 久久这里只有精品视频网| 日本va欧美va精品| 欧美视频在线一区二区三区| 国产精品久久久久影院老司| 精品一区二区三区影院在线午夜| 欧美日韩国产免费一区二区| 亚洲欧美另类图片小说| caoporm超碰国产精品| 国产亚洲一区二区三区在线观看 | 亚洲狠狠爱一区二区三区| 一本色道久久综合精品竹菊| 国产精品视频一二三区 | 国产亚洲欧美一区在线观看| 美女高潮久久久| 欧美一区二区三区四区在线观看| 亚洲一区二区三区四区在线观看 | 欧洲色大大久久| 夜夜嗨av一区二区三区四季av| 91麻豆国产自产在线观看| 国产精品免费人成网站| 国产suv精品一区二区6| 日本一区二区不卡视频|