?? menu.c
字號:
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, ¶ms); 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 + -