⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callbacks.c

📁 Linux下的飞鸽传书
💻 C
📖 第 1 页 / 共 5 页
字号:
  if (rc<0)    ipmsg_err_dialog(_("Can not handle drag data %s (%d)"),strerror(-rc),-rc);  return rc;}voidon_close1_activate                     (GtkMenuItem     *menuitem,                                        gpointer         user_data){  GtkWidget *top;  dbg_out("here\n");  top=lookup_widget(GTK_WIDGET(menuitem),"messageWindow");  g_assert(top);  gtk_widget_destroy(top);}voidon_attachFileEditor_destroy            (GtkObject       *object,                                        gpointer         user_data){  GtkWidget *mainwindow;  GtkWidget *attachment_editor;  dbg_out("here\n");  mainwindow = (GtkWidget*) g_object_get_data (G_OBJECT (object),						      "main_win");  g_assert(mainwindow);  dbg_out("Remove Assosiation\n");  attachment_editor =  (GtkWidget*) g_object_get_data (G_OBJECT (mainwindow),						      "attach_win");  g_assert(attachment_editor);  g_object_set_data (G_OBJECT (attachment_editor),		     "main_win",		     NULL);  g_object_set_data (G_OBJECT (mainwindow),		     "attach_win",		     NULL);  attachment_editor =  (GtkWidget*) g_object_get_data (G_OBJECT (mainwindow),						      "attach_win");  g_assert(!attachment_editor);}voidon_attachFileEditor_show               (GtkWidget       *widget,                                        gpointer         user_data){  GtkWidget *attachment_editor;  GtkWidget *add_btn;  GtkWidget *remove_btn;  GtkWidget *view;  GtkWidget *entry;  GtkTreeSelection *sel;  GtkTreeModel     *model;  GtkTreeIter  selected_row;  size_t size;  time_t mtime;  int type;  int rc;  gchar *filepath;  dbg_out("here\n");  /*   * setup button/entry   */  attachment_editor=lookup_widget(widget,"attachFileEditor");  g_assert(attachment_editor);  add_btn=lookup_widget(GTK_WIDGET(attachment_editor),"AttachFIleAddBtn");  g_assert(add_btn);  remove_btn=lookup_widget(GTK_WIDGET(attachment_editor),"AttachFileRemoveBtn");  g_assert(remove_btn);  entry=lookup_widget(GTK_WIDGET(attachment_editor),"AttachFilePathEntry");  g_assert(entry);  filepath=(char *)gtk_entry_get_text(GTK_ENTRY(entry));  rc=get_file_info(filepath,&size,&mtime,&type);  if ( (rc) || (!is_supported_file_type(type)) )    gtk_widget_set_sensitive(add_btn,FALSE);  else    gtk_widget_set_sensitive(add_btn,TRUE);  view=lookup_widget(GTK_WIDGET(attachment_editor),"attachedFilesView");  g_assert(GTK_TREE_VIEW(view));  sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(view));  g_assert(gtk_tree_selection_get_mode(sel) == GTK_SELECTION_SINGLE);  if (gtk_tree_selection_get_selected(sel, &model, &selected_row))    gtk_widget_set_sensitive(remove_btn,TRUE);  else    gtk_widget_set_sensitive(remove_btn,FALSE);}voidon_AttachFIleAddBtn_clicked            (GtkButton       *button,                                        gpointer         user_data){  GtkWidget *parent_window;  GtkWidget *file_entry;  char *filename;  dbg_out("here\n");  parent_window=lookup_widget(GTK_WIDGET(button),"attachFileEditor");  file_entry=lookup_widget(GTK_WIDGET(button),"AttachFilePathEntry");  filename=(char *)gtk_entry_get_text(GTK_ENTRY(file_entry));   on_add_new_file(filename,parent_window,TRUE);}voidon_AttachFileRemoveBtn_clicked         (GtkButton       *button,                                        gpointer         user_data){  GtkTreeIter  selected_row;  GtkWidget    *view;  GtkTreeSelection *sel;  GtkTreeModel *model;  GtkWidget    *remove_btn;  GtkWidget    *file_entry;  dbg_out("here\n");  view=lookup_widget(GTK_WIDGET(button),"attachedFilesView");  g_assert(view);  remove_btn=lookup_widget(GTK_WIDGET(button),"AttachFileRemoveBtn");  g_assert(remove_btn);    sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(view));  g_assert(sel);    file_entry=lookup_widget(GTK_WIDGET(button),"AttachFilePathEntry");  g_assert(file_entry);  g_assert(gtk_tree_selection_get_mode(sel) == GTK_SELECTION_SINGLE);  if (gtk_tree_selection_get_selected(sel, &model, &selected_row))    {      gchar *tree_path;      gtk_tree_model_get (model, &selected_row,                           0, &tree_path,                          -1);      dbg_out("Selected: %s\n",tree_path);      gtk_entry_set_text(GTK_ENTRY(file_entry), tree_path);             g_free(tree_path);      gtk_list_store_remove(GTK_LIST_STORE(model), &selected_row);      gtk_widget_set_sensitive(remove_btn, FALSE);    }}static int on_attach_window_drag_data_received(GtkWidget *widget,GtkSelectionData *data){  GtkWidget *attachment_editor;  int rc;  if (!data)    return -EINVAL;  dbg_out("here:data %s\n",(char *)data->data);    attachment_editor=lookup_widget(widget,"attachFileEditor");  g_assert(attachment_editor);  gtk_widget_show(attachment_editor);  rc=handle_attachment_drag_data(data,attachment_editor);  if (rc<0)    ipmsg_err_dialog(_("Can not handle drag data %s (%d)"),strerror(-rc),-rc);  return rc;}voidon_attachedFilesView_drag_data_received                                        (GtkWidget       *widget,                                        GdkDragContext  *drag_context,                                        gint             x,                                        gint             y,                                        GtkSelectionData *data,                                        guint            info,                                        guint            time,                                        gpointer         user_data){  int rc;  dbg_out("here\n");  if (!data)    return;  rc=on_attach_window_drag_data_received(widget,data);  if (rc<0)    ipmsg_err_dialog(_("Can not handle drag data %s (%d)"),strerror(-rc),-rc);  return;}static intelapsed_time(struct timeval *old,struct timeval *new,struct timeval *elaps){  time_t sec;  suseconds_t usec;  if ( (!old) || (!new) || (!elaps) )    return -EINVAL;  if  ( (!(old->tv_sec)) && (!(old->tv_usec)) )    return -ENOENT;  sec=new->tv_sec;  if (old->tv_usec > new->tv_usec) {    --sec;    usec=1000*1000 +(new->tv_usec - old->tv_usec);  }else{    usec= new->tv_usec - old->tv_usec ;  }  sec -= old->tv_sec;  elaps->tv_sec=sec;  elaps->tv_usec=usec;  return 0;}voidon_DownLoadOKBtn_clicked               (GtkButton       *button,                                        gpointer         user_data){  dbg_out("Recv start");  recv_attachments(button);}voidon_DownLoadCancelBtn_clicked           (GtkButton       *button,                                        gpointer         user_data){  GtkWidget *window;  dbg_out("here:\n");  window=lookup_widget(GTK_WIDGET(button),"downloadWindow");  g_assert(window);  gtk_widget_destroy (window);  }voidon_DownLoadOpenBtn_clicked             (GtkButton       *button,                                        gpointer         user_data){  int rc;  GtkWidget *parent_window;  GtkWidget *dialog;  GtkWidget *file_entry;  struct stat stat_buf;  dbg_out("here\n");  parent_window=lookup_widget(GTK_WIDGET(button),"downloadWindow");  file_entry=lookup_widget(GTK_WIDGET(button),"DownLoadDirectoryEntry");  /*    * なんで, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDERが   *  アンドキュメンテッドなの?   */  dialog = gtk_file_chooser_dialog_new ("Download Directory",					GTK_WINDOW(parent_window),					GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,					GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,					GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,					NULL);  if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)  {    char *filename;    filename = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dialog));    rc=stat(filename,&stat_buf);    if (rc<0)       goto free_file_out;    if (!(S_ISDIR(stat_buf.st_mode)))      goto free_file_out;    gtk_entry_set_text(GTK_ENTRY(file_entry), filename);  free_file_out:    g_free (filename);  }  gtk_widget_destroy (dialog);}voidon_attachFileEditorMainFrame_drag_data_received                                        (GtkWidget       *widget,                                        GdkDragContext  *drag_context,                                        gint             x,                                        gint             y,                                        GtkSelectionData *data,                                        guint            info,                                        guint            time,                                        gpointer         user_data){  int rc;  dbg_out("here\n");  if (!data)    return;  rc=on_attach_window_drag_data_received(widget,data);  if (rc<0)    ipmsg_err_dialog(_("Can not handle drag data %s (%d)"),strerror(-rc),-rc);  return;}voidon_entry3_activate                     (GtkEntry        *entry,                                        gpointer         user_data){  GtkTreeView *treeview;  const gchar *txt;  dbg_out("here\n");  g_assert(entry);  treeview = GTK_TREE_VIEW(lookup_widget(GTK_WIDGET(entry),"treeview4"));  txt = gtk_entry_get_text(GTK_ENTRY(entry));  if (txt && *txt) {      GtkTreeModel *model;      GtkTreeIter   newrow;      if (has_dupulicated_string_in_cell(txt,treeview)){	model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));      	gtk_list_store_append(GTK_LIST_STORE(model), &newrow);      	gtk_list_store_set(GTK_LIST_STORE(model), &newrow, 0, txt, -1);      	gtk_entry_set_text(GTK_ENTRY(entry), ""); /* clear entry */      }    }}voidon_entry3_changed                      (GtkEditable     *editable,                                        gpointer         user_data){  GtkWidget *addr_entry;  GtkWidget *configAddBcastBtn;  gchar *addr;  configAddBcastBtn=lookup_widget(GTK_WIDGET(editable),"configAddBcastBtn");  g_assert(configAddBcastBtn);  addr_entry=lookup_widget(GTK_WIDGET(editable),"entry3");  g_assert(addr_entry);  addr=(char *)gtk_entry_get_text(GTK_ENTRY(addr_entry));  if ( (addr) && (*addr) )     gtk_widget_set_sensitive(configAddBcastBtn,TRUE);  else    gtk_widget_set_sensitive(configAddBcastBtn,FALSE);}voidon_downloadMonitor_destroy             (GtkObject       *object,                                        gpointer         user_data){  GtkWidget *window;  dbg_out("here\n");  window=lookup_widget(GTK_WIDGET(object),"downloadMonitor");  download_monitor_remove_waiter_window(window);}voidon_downloadMonitor_show                (GtkWidget       *widget,                                        gpointer         user_data){  GtkWidget *window;    download_monitor_update_state();}voidon_deleteBtn_clicked                   (GtkButton       *button,                                        gpointer         user_data){  download_monitor_delete_btn_action(button,user_data);  }voidon_updateBtn_clicked                   (GtkButton       *button,                                        gpointer         user_data){  download_monitor_update_state();}voidon_closeBtn_clicked                    (GtkButton       *button,                                        gpointer         user_data){  GtkWidget *window;  window=lookup_widget(GTK_WIDGET(button),"downloadMonitor");  g_assert(window);  gtk_widget_destroy(GTK_WIDGET(window));}voidon_initialWindow_check_resize          (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_downloadWindow_check_resize         (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_aboutdialog_check_resize            (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_viewWindow_check_resize             (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_attachFileEditor_check_resize       (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_downloadMonitor_check_resize        (GtkContainer    *container,                                        gpointer         user_data){  dbg_out("here\n");}voidon_initialWindow_size_allocate         (GtkWidget       *widget,                                        GdkRectangle    *allocation,                                        gpointer        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -