📄 file-selector-window.c
字号:
gtk_paned_set_position (GTK_PANED (hpaned1), 250); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_name (scrolledwindow3, "scrolledwindow3"); gtk_widget_ref (scrolledwindow3); gtk_object_set_data_full (GTK_OBJECT (file_selector), "scrolledwindow3", scrolledwindow3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow3); gtk_container_add (GTK_CONTAINER (hpaned1), scrolledwindow3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); viewport1 = gtk_viewport_new (NULL, NULL); gtk_widget_set_name (viewport1, "viewport1"); gtk_widget_ref (viewport1); gtk_object_set_data_full (GTK_OBJECT (file_selector), "viewport1", viewport1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow3), viewport1); scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_name (scrolledwindow5, "scrolledwindow5"); gtk_widget_ref (scrolledwindow5); gtk_object_set_data_full (GTK_OBJECT (file_selector), "scrolledwindow5", scrolledwindow5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow5); gtk_container_add (GTK_CONTAINER (viewport1), scrolledwindow5); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); fs_dirtree = gtk_ctree_new (1, 0); gtk_widget_set_name (fs_dirtree, "fs_dirtree"); gtk_widget_ref (fs_dirtree); gtk_object_set_data_full (GTK_OBJECT (file_selector), "fs_dirtree", fs_dirtree, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fs_dirtree); gtk_container_add (GTK_CONTAINER (scrolledwindow5), fs_dirtree); gtk_clist_set_column_width (GTK_CLIST (fs_dirtree), 0, 80); gtk_clist_column_titles_show (GTK_CLIST (fs_dirtree)); gtk_ctree_set_show_stub (GTK_CTREE (fs_dirtree), TRUE); label3 = gtk_label_new (_("Directory")); gtk_widget_set_name (label3, "label3"); gtk_widget_ref (label3); gtk_object_set_data_full (GTK_OBJECT (file_selector), "label3", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_clist_set_column_widget (GTK_CLIST (fs_dirtree), 0, label3); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_name (scrolledwindow4, "scrolledwindow4"); gtk_widget_ref (scrolledwindow4); gtk_object_set_data_full (GTK_OBJECT (file_selector), "scrolledwindow4", scrolledwindow4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow4); gtk_container_add (GTK_CONTAINER (hpaned1), scrolledwindow4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); fs_filelist = gtk_clist_new (3); gtk_widget_set_name (fs_filelist, "fs_filelist"); gtk_widget_ref (fs_filelist); gtk_object_set_data_full (GTK_OBJECT (file_selector), "fs_filelist", fs_filelist, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fs_filelist); gtk_container_add (GTK_CONTAINER (scrolledwindow4), fs_filelist); gtk_clist_set_column_width (GTK_CLIST (fs_filelist), 0, 120); gtk_clist_set_column_width (GTK_CLIST (fs_filelist), 1, 80); gtk_clist_column_titles_show (GTK_CLIST (fs_filelist)); gtk_clist_set_sort_column (GTK_CLIST (fs_filelist), 0); gtk_clist_set_sort_type (GTK_CLIST (fs_filelist), GTK_SORT_ASCENDING); gtk_clist_set_auto_sort (GTK_CLIST (fs_filelist), TRUE); label2 = gtk_label_new ("Filename"); gtk_widget_set_name (label2, "label2"); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (file_selector), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_clist_set_column_widget (GTK_CLIST (fs_filelist), 0, label2); label2 = gtk_label_new (_("Date")); gtk_widget_set_name (label2, "label2"); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (file_selector), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_clist_set_column_widget (GTK_CLIST (fs_filelist), 1, label2); label2 = gtk_label_new (_("Size")); gtk_widget_set_name (label2, "label2"); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (file_selector), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_clist_set_column_widget (GTK_CLIST (fs_filelist), 2, label2); gtk_clist_set_column_justification (GTK_CLIST (fs_filelist), 2, GTK_JUSTIFY_RIGHT); fs_filename = gtk_entry_new_with_max_length (256); gtk_widget_set_name (fs_filename, "fs_filename"); gtk_widget_ref (fs_filename); gtk_object_set_data_full (GTK_OBJECT (file_selector), "fs_filename", fs_filename, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fs_filename); gtk_box_pack_start (GTK_BOX (vbox1), fs_filename, FALSE, FALSE, 2); dialog_action_area1 = GTK_DIALOG (file_selector)->action_area; gtk_widget_set_name (dialog_action_area1, "dialog_action_area1"); gtk_object_set_data (GTK_OBJECT (file_selector), "dialog_action_area1", dialog_action_area1); gtk_widget_show (dialog_action_area1); gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 5); fs_ok_button = gtk_button_new_with_label (_("Ok")); gtk_widget_set_name (fs_ok_button, "fs_ok_button"); gtk_widget_ref (fs_ok_button); gtk_object_set_data_full (GTK_OBJECT (file_selector), "fs_ok_button", fs_ok_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fs_ok_button); gtk_box_pack_start (GTK_BOX (dialog_action_area1), fs_ok_button, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (fs_ok_button, GTK_CAN_DEFAULT); fs_cancel_button = gtk_button_new_with_label (_("Cancel")); gtk_widget_set_name (fs_cancel_button, "fs_cancel_button"); gtk_widget_ref (fs_cancel_button); gtk_object_set_data_full (GTK_OBJECT (file_selector), "fs_cancel_button", fs_cancel_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fs_cancel_button); gtk_box_pack_start (GTK_BOX (dialog_action_area1), fs_cancel_button, TRUE, TRUE, 0); gtk_widget_grab_focus (fs_ok_button); gtk_widget_grab_default (fs_ok_button); return file_selector;}GtkWidget *file_selector_new (char *startdir, char *startname, GtkSignalFunc okfunc, GtkSignalFunc cancelfunc, gpointer data) { fs_accept_info *accept=(fs_accept_info *)calloc (1, sizeof (fs_accept_info)); GtkWidget *win = gtk_file_selection_new ("Select A File..."); gtk_widget_set_name (win, "win"); gtk_object_set_data (GTK_OBJECT (win), "win", win); gtk_widget_ref (win); if (startname) gtk_file_selection_set_filename (GTK_FILE_SELECTION (win), startname); accept->func=okfunc; accept->data=data; gtk_signal_connect (GTK_OBJECT (win), "delete_event", GTK_SIGNAL_FUNC (gtk_false), NULL); gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (win)->cancel_button), "clicked", GTK_SIGNAL_FUNC (file_selector_cancel), NULL); gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (win)->ok_button), "clicked", GTK_SIGNAL_FUNC (file_selector_accept), (gpointer)accept); return win;}void fs_new_directory_window (GtkWidget *widget) { GtkCTree *ctree=GTK_CTREE (lw (widget, "fs_dirtree")); GtkWidget *dialog=dialog_new ("fs_ndir", "New Sub-directory", 10, 10, 240, 105); GtkWidget *frame=frame_new (dialog, NULL, "Enter a new subdirectory name", 2); GtkWidget *vbox=GTK_DIALOG (dialog)->vbox; GtkWidget *entry=entry_new (dialog, "entry"); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); ca (frame, entry); bps (vbox, frame); sc ("ok_button", dialog, "clicked", file_selector_newdir_accept, ctree); sc ("cancel_button", dialog, "clicked", file_selector_newdir_cancel, NULL); sc ("fs_ndir", dialog, "delete_event", file_selector_newdir_cancel, NULL); ws (dialog);}void fs_rename_window (GtkWidget *widget) { GtkCList *clist=GTK_CLIST (lw (widget, "fs_filelist")); GtkWidget *dialog=dialog_new ("fs_ndir", "Rename", 10, 10, 240, 105); GtkWidget *frame=frame_new (dialog, NULL, "Enter a new name for the selected file", 2); GtkWidget *vbox=GTK_DIALOG (dialog)->vbox; GtkWidget *entry=entry_new (dialog, "entry"); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); ca (frame, entry); bps (vbox, frame); sc ("ok_button", dialog, "clicked", file_selector_rename_accept, clist); sc ("cancel_button", dialog, "clicked", file_selector_rename_cancel, NULL); sc ("fs_ndir", dialog, "delete_event", file_selector_rename_cancel, NULL); ws (dialog);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -