📄 callbacks.c
字号:
{ //FIXME!!!! //use the same code with ON_DELETE_EVENT!!!!!!!!! //tray_destroy(); //dld_set_ui_callback(dld_ui_callback_null); //gtk_main_quit(); //confirm_and_exit(); static BOOL bBusy = FALSE; if(bBusy) return ; bBusy = TRUE; if(quick_question(window_main, _("Do you really want to exit DLD ?")) == GTK_RESPONSE_YES) { exit_dld(); } bBusy = FALSE;}voidon_treeview_dirs_selection_changed (GtkTreeSelection *sel, GtkListStore *liststore){ GtkTreeIter selected_row; gpointer p = NULL; //dprintf("[on_treeview_dirs_selection_changed] CHANGED!\r\n"); // Check if a row is selected or not // This will only work in SINGLE or BROWSE mode! if (gtk_tree_selection_get_selected(sel, NULL, &selected_row)) { /* gtk_widget_set_sensitive(menu_download_start_task, TRUE); gtk_widget_set_sensitive(menu_download_stop_task, TRUE); gtk_widget_set_sensitive(menu_download_remove_task, TRUE); */ gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(treeview_dirs)), &selected_row, 0, &p, -1); g_ui_curtaskdir = (DldTaskDir *)p; dld_gtkui_select_taskdir(g_ui_curtaskdir); dprintf("[on_treeview_dirs_selection_changed] g_ui_curtaskdir = %d\r\n", g_ui_curtaskdir); } else { /* gtk_widget_set_sensitive(menu_download_start_task, FALSE); gtk_widget_set_sensitive(menu_download_stop_task, FALSE); gtk_widget_set_sensitive(menu_download_remove_task, FALSE); */ } //dld_gtkui_set_in_gtk_action(FALSE); }voidon_treeview_infos_selection_changed (GtkTreeSelection *sel, GtkListStore *liststore){ GtkTreeIter selected_row; gpointer p = NULL; // Check if a row is selected or not // This will only work in SINGLE or BROWSE mode! if (gtk_tree_selection_get_selected(sel, NULL, &selected_row)) { //gtk_widget_set_sensitive(menu_download_start_task, TRUE); //gtk_widget_set_sensitive(menu_download_stop_task, TRUE); //gtk_widget_set_sensitive(menu_download_remove_task, TRUE); gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(treeview_infos)), &selected_row, 0, &p, -1); //g_ui_curtaskthread = ; dld_gtkui_select_taskthread((DldTaskThread *)p); } else { //gtk_widget_set_sensitive(menu_download_start_task, FALSE); //gtk_widget_set_sensitive(menu_download_stop_task, FALSE); //gtk_widget_set_sensitive(menu_download_remove_task, FALSE); dld_gtkui_select_taskthread(NULL); } //dld_gtkui_set_in_gtk_action(FALSE);}voidon_treeview_tasks_selection_changed (GtkTreeSelection *sel, GtkListStore *liststore){ GtkTreeIter iter; GtkTreeModel *model; gint count;// gchar *taskstr; gpointer p = NULL; //g_free (file_list->selected); //file_list->selected = NULL; count = gtk_tree_selection_count_selected_rows(sel); if (count == 1) { GList *list, *last; list = gtk_tree_selection_get_selected_rows (sel, &model); last = g_list_last (list); gtk_tree_model_get_iter (model, &iter, last->data); gtk_tree_model_get (model, &iter, TREEVIEW_TASKS_COL_TASK, &p, -1); if (p) { dld_gtkui_select_task((DldTask *)p); } g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL); g_list_free (list); } else { dld_gtkui_select_task(NULL); } if(count == 0) { gtk_widget_set_sensitive(menu_download_start_task, FALSE); gtk_widget_set_sensitive(menu_download_stop_task, FALSE); gtk_widget_set_sensitive(menu_download_remove_task, FALSE); gtk_widget_set_sensitive(menu_download_delete_file, FALSE); gtk_widget_set_sensitive(menu_download_restart_task, FALSE); gtk_widget_set_sensitive(menu_popup_task_start_task, FALSE); gtk_widget_set_sensitive(menu_popup_task_stop_task, FALSE); gtk_widget_set_sensitive(menu_popup_task_remove_task, FALSE); gtk_widget_set_sensitive(menu_popup_task_delete_file, FALSE); gtk_widget_set_sensitive(menu_popup_task_restart_task, FALSE); } else { gtk_widget_set_sensitive(menu_download_start_task, TRUE); gtk_widget_set_sensitive(menu_download_stop_task, TRUE); gtk_widget_set_sensitive(menu_download_remove_task, TRUE); gtk_widget_set_sensitive(menu_download_delete_file, TRUE); gtk_widget_set_sensitive(menu_download_restart_task, TRUE); gtk_widget_set_sensitive(menu_popup_task_start_task, TRUE); gtk_widget_set_sensitive(menu_popup_task_stop_task, TRUE); gtk_widget_set_sensitive(menu_popup_task_remove_task, TRUE); gtk_widget_set_sensitive(menu_popup_task_delete_file, TRUE); gtk_widget_set_sensitive(menu_popup_task_restart_task, TRUE); } if(g_ui_curtask == NULL) { gtk_widget_set_sensitive(menu_download_modify_task, FALSE); gtk_widget_set_sensitive(menu_download_copy_url, FALSE); gtk_widget_set_sensitive(menu_popup_task_modify_task, FALSE); gtk_widget_set_sensitive(menu_popup_task_copy_url, FALSE); gtk_widget_set_sensitive(menu_popup_task_open_dir, FALSE); gtk_widget_set_sensitive(menu_popup_task_open_file, FALSE); gtk_widget_set_sensitive(menu_popup_task_install, FALSE); } else { gtk_widget_set_sensitive(menu_download_modify_task, TRUE); gtk_widget_set_sensitive(menu_download_copy_url, TRUE); gtk_widget_set_sensitive(menu_popup_task_modify_task, TRUE); gtk_widget_set_sensitive(menu_popup_task_copy_url, TRUE); gtk_widget_set_sensitive(menu_popup_task_open_dir, TRUE); gtk_widget_set_sensitive(menu_popup_task_open_file, (g_ui_curtask->status == DLD_TASK_FINISHED)); //FIXME!!!!! //check if the file is installable... gtk_widget_set_sensitive(menu_popup_task_install, os_file_installable(g_ui_curtask->localfile->str)); }}int on_treeview_tasks_button_press(GtkWidget *widget,GdkEventButton *event){ switch (event->button) { case 3: { gtk_menu_popup(GTK_MENU(menu_popup_task_menu), (GtkWidget *)NULL, (GtkWidget *)NULL, (GtkMenuPositionFunc)NULL, (gpointer)NULL, event->button,event->time); break; return TRUE; } case 1: { if (event->type==GDK_2BUTTON_PRESS) { //main_window_toggle(); //Main Window ... //on_menu_popup_window_drop_show_activate(NULL, NULL); if(g_ui_curtask != NULL) { if(g_ui_curtask->status == DLD_TASK_RUNNING || g_ui_curtask->status == DLD_TASK_WAITING) { dld_task_stop(g_ui_curtask); } else if(g_ui_curtask->status != DLD_TASK_FINISHED) { dld_task_start(g_ui_curtask); } else { on_menu_task_popup_open_file_activate(NULL, NULL); } } return TRUE; } } } return FALSE;}void on_url_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time){ dprintf("[on_url_drag_data_received] IN! len=%d fromat=%d data=%s\r\n", data->length, data->format, data->data); if (data->length >= 0 && data->format == 8) { //int i; char **files = g_strsplit ((char *)data->data, "\n", -1); /*for (i = 0; files != NULL && files[i] != NULL; i++) { //if (strncmp (files[i], "file:", strlen ("file:")) == 0) // add_file (files[i] + strlen ("file:")); dprintf("[on_url_drag_data_received] URL: %s\r\n", files[i]); } */ if(files != NULL && files[0] != NULL) { if(strnicmp(files[0], "http://", 7) == 0 || strnicmp(files[0], "ftp://", 6) == 0) { GtkWidget *dlg; gchar *utfstr = NULL; dlg = create_dialog_taskprop(NULL); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dlg, "text_url")), files[0]); if(files[1] != NULL) { utfstr = g_locale_to_utf8(files[1],-1,NULL,NULL,NULL); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dlg, "text_comment")), utfstr); g_free(utfstr); } gtk_widget_show(dlg); } } g_strfreev (files); gtk_drag_finish (context, TRUE, FALSE, time); } else { gtk_drag_finish (context, FALSE, FALSE, time); }}/*==============================================================================================================================================================New Task Dialog Callbacks==============================================================================================================================================================*/voidon_dialog_taskprop_entry_url_changed (GtkEditable *editable, gpointer user_data){ G_CONST_RETURN gchar *url; gchar *p; STRING *filename = NULL; GtkWidget *wnd; wnd = GTK_WIDGET(editable); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); url = gtk_entry_get_text(GTK_ENTRY(editable)); p = strrchr(url, '/'); if(p) { p++; if(*p) filename = string_assign(filename, p); } if(!filename) filename = string_assign(filename, "unknown_name"); os_adjust_filename(filename->str); gtk_entry_set_text(GTK_ENTRY(lookup_widget(wnd, "text_rename")), (gchar *)filename->str); filename = string_free(filename); //g_print("Edit");}voidon_dialog_taskprop_button_cancel_clicked (GtkButton *button, gpointer user_data){ GtkWidget *wnd; //destroy dialog wnd = GTK_WIDGET(button); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); //gtk_widget_destroy(GTK_WIDGET(wnd)); //gtk_widget_hide(GTK_WIDGET(wnd)); if(gtk_window_get_modal(GTK_WINDOW(wnd))) { //gtk_dialog_response(GTK_DIALOG(wnd), GTK_RESPONSE_DELETE_EVENT); gtk_widget_destroy(GTK_WIDGET(wnd)); } else { gtk_widget_destroy(GTK_WIDGET(wnd)); } g_print("Cancel");}voidon_dialog_taskprop_button_ok_clicked (GtkButton *button, gpointer user_data){ GtkWidget *wnd; //GValue value; wnd = GTK_WIDGET(button); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); //get settings //g_object_get_property(wnd, "task", value); dld_gtkui_taskprop(wnd); //destroy dialog if(gtk_window_get_modal(GTK_WINDOW(wnd))) { //gtk_dialog_response(GTK_DIALOG(wnd), GTK_RESPONSE_DELETE_EVENT); gtk_widget_destroy(GTK_WIDGET(wnd)); } else { gtk_widget_destroy(GTK_WIDGET(wnd)); } //g_print("OK");}voidon_dialog_taskprop_category_text_changed (GtkEditable *editable, gpointer user_data){ GtkWidget *wnd; CHAR *dir, *path; wnd = GTK_WIDGET(editable); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); dir = (CHAR *)gtk_entry_get_text(GTK_ENTRY(editable)); path = dld_taskdir_get_path(dir); gtk_entry_set_text(GTK_ENTRY(lookup_widget(wnd, "text_localdir")), (gchar *)path); dprintf("[on_dialg_new_task_category_text_changed]\r\n");}/*===========================New Dir Dialog Callbacks===========================*/voidon_dialog_new_dir_button_ok_clicked (GtkButton *button, gpointer user_data){ GtkWidget *wnd; wnd = GTK_WIDGET(button); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); dld_gtkui_new_dir(wnd); //destroy dialog gtk_widget_destroy(GTK_WIDGET(wnd)); //g_print("OK");}voidon_dialog_new_dir_button_cancel_clicked (GtkButton *button, gpointer user_data){ GtkWidget *wnd; wnd = GTK_WIDGET(button); while(wnd->parent) wnd = GTK_WIDGET(wnd->parent); //get settings //dld_gtkui_new_task(wnd); //destroy dialog gtk_widget_destroy(GTK_WIDGET(wnd)); //g_print("OK");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -