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

📄 menu.c

📁 飞鸽传书的linux源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
  ipmsg_send_br_absence(udp_con,0);}voidon_mainmenu_foreground_win_item(gpointer menuitem){  dbg_out("here\n");  present_all_displayed_windows();}voidon_mainmenu_remove_win_item(gpointer menuitem){  dbg_out("here\n");  destroy_all_opened_windows();}voidon_mainmenu_quit_item (gpointer menuitem){  dbg_out("here\n");  on_initialWindow_destroy(GTK_OBJECT(menuitem),NULL);}voidon_fuzai_item_activate (gpointer user_data){  int max_index;  int index;  index=(int)user_data - 1;  dbg_out("here:%x\n",index);  if (hostinfo_refer_absent_length(&max_index)) {    g_assert_not_reached();  }  dbg_out("Max index:%d\n",max_index);  if ( (index >= max_index) || (index < 0) )    return;  hostinfo_set_absent_id(index);  hostinfo_set_ipmsg_absent(TRUE);  ipmsg_send_br_absence(udp_con,0);  return;}voidon_fuzai_config_activate (gpointer menuitem){  GtkWidget *window;  dbg_out("here:%x\n",(unsigned int)menuitem);  window=internal_create_fuzai_editor();  gtk_widget_show(window);}static GtkWidget *create_fuzai_menu(void){  GtkWidget *menu;  GtkWidget *new_item;  GtkWidget *separator4_item;  GtkWidget *config_item;  gchar name[16];  gchar *title;  int i,max_index=0;  menu=gtk_menu_new();   if (hostinfo_refer_absent_length(&max_index)) {    g_assert_not_reached();  }  dbg_out("Max index:%d\n",max_index);  for(i=0;i<max_index;++i) {    snprintf(name,15,"fuzai%d",i);    name[15]='\0';    title=NULL;    hostinfo_get_absent_title(i,(const char **)&title);    /*  埋め込みのindexは, NULLと区別するため, +1する */    if (title) {      new_item=create_menu_item(name,title,(gpointer)(i+1),on_fuzai_item_activate);      g_free(title);    }else      new_item=create_menu_item(name,name,(gpointer)(i+1),on_fuzai_item_activate);    gtk_menu_append( GTK_MENU(menu), new_item);    GLADE_HOOKUP_OBJECT(menu,new_item,name);  }  separator4_item=create_menu_separator("separator4");  config_item=create_stock_menu_item("fuzai_config_item",GTK_STOCK_PREFERENCES,NULL,on_fuzai_config_activate);  gtk_menu_append( GTK_MENU(menu), separator4_item);  gtk_menu_append( GTK_MENU(menu), config_item);  GLADE_HOOKUP_OBJECT(menu,separator4_item,"separator4_item");  GLADE_HOOKUP_OBJECT(menu,config_item,"fuzai_config_item");  return menu;}GtkWidget *create_main_menu(void){  GtkWidget *menu;  GtkWidget *download_item;  GtkWidget *separator1_item;  GtkWidget *remove_win_item;  GtkWidget *foreground_win_item;  GtkWidget *separator2_item;  GtkWidget *preferences_item;  GtkWidget *about_item;  GtkWidget *log_item;  GtkWidget *separator3_item;  GtkWidget *absent_item;  GtkWidget *attend_item;  GtkWidget *separator4_item;  GtkWidget *quit_item;  menu=gtk_menu_new();   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), 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,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;  if (!data)    return;  window=GTK_WIDGET(data);  update_download_view(window);  return;}int download_monitor_update_state(void){#if 0  g_static_mutex_lock(&monitor_win_mutex);  g_list_foreach(monitor_wins,		 do_update_monitor_win,		 NULL);    g_static_mutex_unlock(&monitor_win_mutex);#endif}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=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;}

⌨️ 快捷键说明

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