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

📄 menu.c

📁 Linux下的飞鸽传书
💻 C
📖 第 1 页 / 共 2 页
字号:
  GtkWidget *log_item;  GtkWidget *separator3_item;  GtkWidget *absent_item;  GtkWidget *attend_item;  GtkWidget *separator4_item;  GtkWidget *quit_item;  menu=gtk_menu_new();   new_message_item=create_menu_item("new_message_item",_("_New Message"),NULL,on_mainmenu_new_message_item);  separator0_item=create_menu_separator("separator0");  download_item=create_menu_item("download_item",_("DownLoadMonitor"),NULL,on_mainmenu_download_item);  separator1_item=create_menu_separator("separator1");  foreground_win_item=create_menu_item("foreground_win_item",_("Foreground all message windows"),NULL,on_mainmenu_foreground_win_item);  remove_win_item=create_menu_item("remove_win_item",_("Remove opend windows"),NULL,on_mainmenu_remove_win_item);  separator2_item=create_menu_separator("separator2");  preferences_item=create_stock_menu_item("preferences_item",GTK_STOCK_PREFERENCES,NULL,on_mainmenu_preferences_item);  about_item=create_stock_menu_item("about_item",GTK_STOCK_ABOUT,NULL,on_mainmenu_about_item);  log_item=create_menu_item("log_item",_("Show Log"),NULL,on_mainmenu_log_item);  separator3_item=create_menu_separator("separator3");  absent_item=create_menu_item("absent_item",_("Absence"),NULL,on_mainmenu_absent_item);  gtk_menu_item_set_submenu (GTK_MENU_ITEM (absent_item), create_fuzai_menu());  if (hostinfo_is_ipmsg_absent())    attend_item=create_menu_item("attend_item",_("Attend"),NULL,on_mainmenu_attend_item);  separator4_item=create_menu_separator("separator4");  quit_item=create_stock_menu_item("quit_item",GTK_STOCK_QUIT,NULL,on_mainmenu_quit_item);  gtk_menu_append( GTK_MENU(menu), new_message_item);  gtk_menu_append( GTK_MENU(menu), separator0_item);  gtk_menu_append( GTK_MENU(menu), download_item);  gtk_menu_append( GTK_MENU(menu), separator1_item);  gtk_menu_append( GTK_MENU(menu), remove_win_item);  gtk_menu_append( GTK_MENU(menu), foreground_win_item);  gtk_menu_append( GTK_MENU(menu), separator2_item);  gtk_menu_append( GTK_MENU(menu), preferences_item);  gtk_menu_append( GTK_MENU(menu), about_item);  gtk_menu_append( GTK_MENU(menu), log_item);  gtk_menu_append( GTK_MENU(menu), separator3_item);  gtk_menu_append( GTK_MENU(menu), absent_item);  if (hostinfo_is_ipmsg_absent())    gtk_menu_append( GTK_MENU(menu), attend_item);  gtk_menu_append( GTK_MENU(menu), separator4_item);  gtk_menu_append( GTK_MENU(menu), quit_item);  GLADE_HOOKUP_OBJECT(menu,new_message_item,"new_message_item");  GLADE_HOOKUP_OBJECT(menu,separator0_item,"separator0_item");  GLADE_HOOKUP_OBJECT(menu,download_item,"download_item");  GLADE_HOOKUP_OBJECT(menu,separator1_item,"separator1_item");  GLADE_HOOKUP_OBJECT(menu,remove_win_item,"remove_win_item");  GLADE_HOOKUP_OBJECT(menu,foreground_win_item,"foreground_win_item");  GLADE_HOOKUP_OBJECT(menu,separator1_item,"separator2_item");  GLADE_HOOKUP_OBJECT(menu,preferences_item,"preferences_item");  GLADE_HOOKUP_OBJECT(menu,about_item,"about_item");  GLADE_HOOKUP_OBJECT(menu,log_item,"log_item");  GLADE_HOOKUP_OBJECT(menu,separator3_item,"separator3_item");    GLADE_HOOKUP_OBJECT(menu,absent_item,"absent_item");  if (hostinfo_is_ipmsg_absent())    GLADE_HOOKUP_OBJECT(menu,attend_item,"attend_item");  GLADE_HOOKUP_OBJECT(menu, separator4_item," separator4_item");  GLADE_HOOKUP_OBJECT(menu,quit_item,"quit_item");  return menu;}gbooleanon_init_win_event_button_press_event (GtkWidget       *widget,                                        GdkEventButton  *event,                                        gpointer         user_data){	GtkWidget	*fuzaiMenu;	dbg_out("buttonWin: button press: %d\n", event->button);	switch (event->button) {	case 3:	  gtk_menu_popup(GTK_MENU(create_main_menu()), NULL, NULL, NULL, NULL,			       event->button, event->time);	default:					/* main menu */	  return FALSE;	  break;	}	return TRUE;}voidipmsg_show_about_dialog(void){  GdkPixbuf *aboutDialog_icon_pixbuf;  GtkWidget *aboutDialog;  const gchar *authors[]={    G2IPMSG_AUTHOR,    NULL  };  dbg_out("here\n");  aboutDialog=create_aboutdialog ();  g_assert(aboutDialog);  gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(aboutDialog),(const gchar **)authors);  gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(aboutDialog),G2IPMSG_TRANSLATOR);  gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG(aboutDialog),_("Takeharu KATO"));  aboutDialog_icon_pixbuf = create_pixbuf ("g2ipmsg/ipmsg.xpm");  if (aboutDialog_icon_pixbuf)    {      gtk_window_set_icon (GTK_WINDOW (aboutDialog), aboutDialog_icon_pixbuf);      gdk_pixbuf_unref (aboutDialog_icon_pixbuf);    }  gtk_widget_show (aboutDialog);}static voiddo_update_monitor_win(gpointer data,gpointer user_data) {  GtkWidget *window;  GtkWidget *view;  GtkTreeSelection *sel;  if (!data)    return;  window=GTK_WIDGET(data);   view=lookup_widget(GTK_WIDGET(window),"treeview5");  g_assert(view);  update_download_view(window);    sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(view));  update_download_monitor_button(sel);  return;}int download_monitor_delete_btn_action(GtkButton       *button,				   gpointer         user_data){  GtkWidget *window;    GtkWidget *view;  GtkTreeSelection *sel;  GtkTreeIter  selected_row;  GtkTreeModel *model;  long pkt_no;  dbg_out("here\n");  g_static_mutex_lock(&monitor_win_mutex);  window=lookup_widget(GTK_WIDGET(button),"downloadMonitor");  view=lookup_widget(GTK_WIDGET(window),"treeview5");  g_assert(view);  sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(view));  if (gtk_tree_selection_get_selected(sel, &model, &selected_row)) {    gtk_tree_model_get(model, &selected_row, 		       3, &pkt_no,		       -1);    dbg_out("Relase:%ld\n",pkt_no);    release_attach_file_block(pkt_no,TRUE);    gtk_list_store_remove(GTK_LIST_STORE(model), &selected_row);  }  download_monitor_update_state();  sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(view));  update_download_monitor_button(sel);  g_static_mutex_unlock(&monitor_win_mutex);}int download_monitor_update_state(void){  g_static_mutex_lock(&monitor_win_mutex);  g_list_foreach(monitor_wins,		 do_update_monitor_win,		 NULL);    g_static_mutex_unlock(&monitor_win_mutex);}/* *スレッド経由でのリリースファイル */voiddownload_monitor_release_file(const long pktno,int fileid){  g_static_mutex_lock(&monitor_win_mutex);  release_attach_file(pktno,fileid);  gdk_threads_enter();    g_list_foreach(monitor_wins,		 do_update_monitor_win,		 NULL);    gdk_threads_leave();  g_static_mutex_unlock(&monitor_win_mutex);}/* *スレッド経由でのリリースファイル */intdownload_monitor_refer_file(const long pktno,int fileid,unsigned long *ipmsg_fattr,const char **path,size_t *size){  int rc;  g_static_mutex_lock(&monitor_win_mutex);  if (g_list_length(monitor_wins)>0) {    rc=refer_attach_file(pktno,fileid,ipmsg_fattr,path,size);  }  g_static_mutex_unlock(&monitor_win_mutex);  return rc;}intdownload_monitor_add_waiter_window(GtkWidget *window){  if (!window)    return -EINVAL;  dbg_out("here %x\n",(unsigned int)window);  g_static_mutex_lock(&monitor_win_mutex);  monitor_wins=g_list_append(monitor_wins,(gpointer)window);  g_static_mutex_unlock(&monitor_win_mutex);  return 0;}intdownload_monitor_remove_waiter_window(GtkWidget *window){  if (!window)    return -EINVAL;  dbg_out("here %x\n",(unsigned int)window);  g_static_mutex_lock(&monitor_win_mutex);  monitor_wins=g_list_remove(monitor_wins,(gpointer)window);  g_static_mutex_unlock(&monitor_win_mutex);  return 0;}int show_ipmsg_log(void){  int rc;  gchar *logfile;  GnomeVFSMimeApplication *app;  GList params;  gchar *url;  dbg_out("here\n");  rc=0;  if (!hostinfo_refer_ipmsg_enable_log())    goto error_out;  rc=-ENOMEM;  if (g_path_is_absolute ((gchar *)hostinfo_refer_ipmsg_logfile()))    logfile=g_strdup((gchar *)hostinfo_refer_ipmsg_logfile());  else {    gchar *current_dir;   current_dir=g_get_current_dir();   if (!current_dir)     goto error_out;   logfile=g_build_filename (current_dir,hostinfo_refer_ipmsg_logfile(),NULL);   g_free(current_dir);   dbg_out("Absolute path:%s\n",logfile);  }  if (!logfile)    goto error_out;  url=gnome_vfs_get_uri_from_local_path(logfile);  if (!url)    goto free_log_file;  params.data = (char *) url;  params.prev = NULL;  params.next = NULL;  rc=-ENOENT;  app=gnome_vfs_mime_get_default_application("text/plain");  if (!app)    goto free_url;  gnome_vfs_mime_application_launch(app, &params);  gnome_vfs_mime_application_free (app);  rc=0; free_url:  g_free(url); free_log_file:  g_free(logfile);     error_out:  return rc;}GtkWidget*internal_create_viewConfigWindow (void){  GtkWidget *window=NULL;  GtkWidget *viewConfigGroupChkBtn=NULL;  GtkWidget *viewConfigHostChkBtn=NULL;  GtkWidget *viewConfigIPAddrChkBtn=NULL;  GtkWidget *viewConfigLogonChkBtn=NULL;  GtkWidget *viewConfigPriorityChkBtn=NULL;  GtkWidget *viewConfigGridChkBtn=NULL;  GtkWidget *viewConfigGroupSortChkBtn=NULL;  GtkWidget *viewConfigGroupInverseSortBtn=NULL;  GtkWidget *viewConfigSecondKeyUserRBtn=NULL;  GtkWidget *viewConfigSecondKeyMachineRBtn=NULL;  GtkWidget *viewConfigSecondKeyIPAddrRBtn=NULL;  GtkWidget *viewConfigOtherSortInverseBtn=NULL;  uint state;  state=hostinfo_refer_header_state();  window=create_viewConfigWindow();  viewConfigGroupChkBtn=lookup_widget(window,"viewConfigGroupChkBtn");  viewConfigHostChkBtn=lookup_widget(window, "viewConfigHostChkBtn");  viewConfigIPAddrChkBtn=lookup_widget(window,"viewConfigIPAddrChkBtn");  viewConfigLogonChkBtn=lookup_widget(window,"viewConfigLogonChkBtn");  viewConfigPriorityChkBtn=lookup_widget(window,"viewConfigPriorityChkBtn");  viewConfigGridChkBtn=lookup_widget(window,"viewConfigGridChkBtn");  viewConfigGroupSortChkBtn=lookup_widget(window,"groupSortCheckBtn");  viewConfigGroupInverseSortBtn=lookup_widget(window,"groupInverseBtn");  viewConfigSecondKeyUserRBtn=lookup_widget(window,"secondKeyUserRBtn");  viewConfigSecondKeyMachineRBtn=lookup_widget(window,"secondKeyMachineRBtn");  viewConfigSecondKeyIPAddrRBtn=lookup_widget(window,"secondKeyIPAddrRBtn");  viewConfigOtherSortInverseBtn=lookup_widget(window,"secondKeyInverseBtn");  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGroupChkBtn),(state&HEADER_VISUAL_GROUP_ID));  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigHostChkBtn),(state&HEADER_VISUAL_HOST_ID));  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigIPAddrChkBtn),(state&HEADER_VISUAL_IPADDR_ID));  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigLogonChkBtn),(state&HEADER_VISUAL_LOGON_ID));  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigPriorityChkBtn),(state&HEADER_VISUAL_PRIO_ID));#if GTK_CHECK_VERSION(2,10,6)  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGridChkBtn),(state&HEADER_VISUAL_GRID_ID));#else  gtk_widget_set_sensitive(viewConfigGridChkBtn,FALSE);#endif  /*   * Group sort   */  if (hostinfo_refer_ipmsg_is_sort_with_group())    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGroupSortChkBtn),TRUE);  else    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGroupSortChkBtn),FALSE);  if (hostinfo_refer_ipmsg_group_sort_order())    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGroupInverseSortBtn),FALSE);  else    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigGroupInverseSortBtn),TRUE);  /*   * Sub sort   */  switch(hostinfo_refer_ipmsg_sub_sort_id()) {  default:  case SORT_TYPE_USER:    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyUserRBtn),TRUE);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyIPAddrRBtn),FALSE);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyMachineRBtn),FALSE);      break;    case SORT_TYPE_MACHINE:      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyUserRBtn),FALSE);      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyIPAddrRBtn),FALSE);      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyMachineRBtn),TRUE);      break;    case SORT_TYPE_IPADDR:      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyUserRBtn),FALSE);      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyIPAddrRBtn),TRUE);      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigSecondKeyMachineRBtn),FALSE);      break;  }  if (hostinfo_refer_ipmsg_sub_sort_order())    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigOtherSortInverseBtn),FALSE);  else    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(viewConfigOtherSortInverseBtn),TRUE);    return window;}

⌨️ 快捷键说明

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