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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
这里只有精品99re| 91一区二区在线观看| 制服丝袜亚洲播放| 奇米影视一区二区三区小说| 欧美一区二区福利在线| 日韩精品乱码免费| 日韩欧美久久久| 国产一区二区91| 亚洲色图欧洲色图婷婷| 日本韩国一区二区三区| 性久久久久久久久久久久| 欧美一区二区啪啪| 久久se精品一区二区| 欧美极品xxx| 91麻豆精品秘密| 亚洲va韩国va欧美va| 精品久久免费看| av在线免费不卡| 三级欧美在线一区| 久久久777精品电影网影网| 成人国产精品免费观看视频| 亚洲欧美电影院| 欧美一级日韩免费不卡| 国产精品小仙女| 亚洲国产精品天堂| 久久精品人人做人人爽人人| 99视频精品全部免费在线| 亚洲成a人v欧美综合天堂| 日韩欧美一区二区不卡| 成人h动漫精品一区二| 肉色丝袜一区二区| 欧美国产日韩一二三区| 欧美日韩国产精选| eeuss鲁片一区二区三区 | 精品美女在线播放| 成人毛片在线观看| 日韩电影免费在线观看网站| 国产精品免费观看视频| 日韩一级免费一区| 91首页免费视频| 激情另类小说区图片区视频区| 中文字幕一区二区三区在线不卡| 欧美精品高清视频| 91蜜桃网址入口| 国产一区免费电影| 亚洲a一区二区| 成人欧美一区二区三区小说 | 日韩欧美国产成人一区二区| 99久久精品国产网站| 久久99热这里只有精品| 亚洲在线视频免费观看| 国产精品日韩精品欧美在线| 日韩免费观看高清完整版| 色综合色狠狠综合色| 国产精品一区2区| 老司机精品视频线观看86| 一区二区三区视频在线看| 国产精品系列在线| 欧美不卡在线视频| 4438x成人网最大色成网站| 成人99免费视频| 国产一区二区三区精品视频 | 国产一区二区91| 男人的天堂久久精品| 亚洲图片一区二区| 一区二区国产视频| 亚洲免费观看高清完整版在线观看 | 国产精品一卡二卡在线观看| 首页欧美精品中文字幕| 天天亚洲美女在线视频| 亚洲精品久久久蜜桃| 最新高清无码专区| 一色桃子久久精品亚洲| 国产精品午夜在线观看| 国产精品美女久久福利网站| 久久精品一区二区三区不卡| www成人在线观看| 久久亚区不卡日本| 国产色综合一区| 久久夜色精品国产噜噜av| 欧美成人乱码一区二区三区| 日韩欧美一二三四区| 日韩色在线观看| 日韩欧美三级在线| 精品三级在线看| 久久精品视频一区| 国产精品视频线看| 日韩伦理电影网| 亚洲精品视频自拍| 亚洲成人av福利| 日本aⅴ免费视频一区二区三区| 天天操天天干天天综合网| 日韩黄色免费网站| 免费人成精品欧美精品| 国产乱子轮精品视频| 成人美女视频在线观看| 色婷婷精品大视频在线蜜桃视频| 欧美日韩一二三| 日韩一级完整毛片| 国产精品系列在线| 亚洲综合小说图片| 麻豆精品新av中文字幕| 国产成人精品网址| 91免费小视频| 欧美一区二区久久| 亚洲欧洲国产专区| 日韩中文字幕av电影| 精品写真视频在线观看| 成人自拍视频在线| 欧美性极品少妇| 精品国产麻豆免费人成网站| 国产精品丝袜久久久久久app| 亚洲第一精品在线| 国产精品18久久久久久久久| 一本色道久久综合亚洲精品按摩| 欧美精品高清视频| 国产精品蜜臀在线观看| 日韩中文字幕av电影| 成人午夜伦理影院| 在线成人午夜影院| 国产精品免费丝袜| 麻豆精品国产91久久久久久| 99久久免费视频.com| 欧美一级电影网站| 亚洲免费看黄网站| 国产真实乱子伦精品视频| 在线观看视频91| 中文字幕免费不卡| 美腿丝袜在线亚洲一区| 91农村精品一区二区在线| 精品国免费一区二区三区| 一级日本不卡的影视| 国产精品一区二区在线播放| 欧美日韩精品高清| 成人免费视频在线观看| 久久99精品国产麻豆婷婷洗澡| 色天天综合久久久久综合片| www国产亚洲精品久久麻豆| 午夜精品福利久久久| 99精品国产热久久91蜜凸| 久久精品一区蜜桃臀影院| 日韩国产在线一| 欧美性三三影院| 亚洲男女毛片无遮挡| 国产91综合一区在线观看| 欧美一级精品大片| 午夜成人在线视频| 91黄色免费观看| 亚洲欧美在线另类| aa级大片欧美| 国产精品免费看片| 成人午夜激情影院| 国产欧美一二三区| 国产原创一区二区| 欧美videos中文字幕| 天天色图综合网| 7777精品伊人久久久大香线蕉完整版 | 精品精品国产高清a毛片牛牛 | 久久99热狠狠色一区二区| 9191国产精品| 偷窥少妇高潮呻吟av久久免费| 91老司机福利 在线| 国产精品国产三级国产aⅴ无密码| 国产精品18久久久久久vr| 精品欧美乱码久久久久久| 免费成人在线播放| 91精品国产麻豆| 免费在线观看不卡| 日韩美一区二区三区| 老汉av免费一区二区三区 | 久久久电影一区二区三区| 久久91精品久久久久久秒播| 欧美一区日韩一区| 开心九九激情九九欧美日韩精美视频电影 | 亚洲国产一区二区三区青草影视| 91免费在线播放| 亚洲午夜久久久久| 欧美日韩情趣电影| 蜜臀av一区二区在线免费观看| 日韩精品中文字幕在线一区| 精品在线一区二区| 国产午夜精品久久| 色综合久久九月婷婷色综合| 一区av在线播放| 正在播放亚洲一区| 国产一区二区精品久久| 国产精品三级久久久久三级| 色综合天天综合网天天看片 | 日本特黄久久久高潮| 日韩免费一区二区| 丰满白嫩尤物一区二区| 成人免费一区二区三区视频 | 91麻豆免费观看| 视频一区视频二区在线观看| www激情久久| 色噜噜久久综合| 久久精品国产一区二区三| 国产精品嫩草99a| 91精品国产免费| 99精品视频一区二区|