📄 duplicate.c
字号:
/* callbacks for devices_setup_read */void readdev_selected(GtkWidget *item, gpointer devnr) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor; do_lock(); /* change cursor to watch */ gdk_window_get_user_data(GTK_WIDGET(toplevel)->window, (gpointer) &win_attr); normal_cursor = win_attr->cursor; cursor = gdk_cursor_new(GDK_WATCH); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,cursor); while (gtk_events_pending()) gtk_main_iteration(); curset.reader_devnr = GPOINTER_TO_INT(devnr); if (curset.reader_devnr != -1) { get_cd_toc_and_volid(curset.reader_devnr); } /* in which menu are we right now? */ /* info menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[0])) == 1) { fill_cdlist(); } /* info menu 2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[0])) == 1) { fill_cdlist(); } /* read menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[1])) == 1) { fill_read_menu(); } /* read menu 2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[1])) == 1) { fill_read_tracks(0); } /* verify menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[2])) == 1) { fill_verify_menu(); } /* verify menu2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[2])) == 1) { fill_verify_tracks(1); } /* write menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[4])) == 1) { fill_write_menu(); } /* write menu2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[5])) == 1) { fill_write_tracks(); } /* reset cursor */ normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor); do_unlock();}void readdev_speed(GtkWidget *item, GtkSpinButton *spin) { curset.audioread_speed = gtk_spin_button_get_value_as_int(spin);}/* draw the device-setup-read line */void devices_setup_read(gint row, GtkWidget *tbl, gint showspeed) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GtkWidget *eject_btn, *eject_xpm;GtkWidget *load_btn, *load_xpm;GdkPixmap *pmap;GdkBitmap *mask;GtkStyle *style;gchar tmp[MAXLINE];GtkWidget *speed1;GtkObject *adj;gint menuidx, menuhistory; /* no reader so far selected? set default primary reader */ if (curset.reader_devnr == -1) { curset.reader_devnr = setupdata.readdev1_devnr; } if (curset.audioread_speed == -1) { curset.audioread_speed = setupdata.audioread_speed; } /* read device */ l1 = rightjust_gtk_label_new(text(133)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1); gtk_widget_show(l1); omenu = gtk_option_menu_new (); menu = gtk_menu_new(); menuidx = 0; menuhistory = -1; if (setupdata.readdev1_devnr != -1) { if (convert_devnr2devstring(setupdata.readdev1_devnr,tmp) == 0) { menu_item = gtk_menu_item_new_with_label(tmp); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(readdev_selected), GINT_TO_POINTER(setupdata.readdev1_devnr)); gtk_menu_append (GTK_MENU (menu), menu_item); if (curset.reader_devnr == setupdata.readdev1_devnr) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); } } if (setupdata.readdev2_devnr != -1 && setupdata.readdev2_devnr != setupdata.readdev1_devnr) { if (convert_devnr2devstring(setupdata.readdev2_devnr,tmp) == 0) { menu_item = gtk_menu_item_new_with_label(tmp); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(readdev_selected), GINT_TO_POINTER(setupdata.readdev2_devnr)); gtk_menu_append (GTK_MENU (menu), menu_item); if (curset.reader_devnr == setupdata.readdev2_devnr) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); } } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); if (menuhistory != -1) { gtk_option_menu_set_history(GTK_OPTION_MENU (omenu), menuhistory); } else { /* if we are here we have an invalid reader setting */ /* set to default */ curset.reader_devnr = setupdata.readdev1_devnr; gtk_option_menu_set_history(GTK_OPTION_MENU (omenu), 0); } gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1); gtk_widget_show(omenu); define_tooltip(omenu, help(42)); if (showspeed) { l1 = rightjust_gtk_label_new(text(136)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,12,15,row,row+1); gtk_widget_show(l1); adj = gtk_adjustment_new(0.0,0.0,64.0,1.0,1.0,1.0); speed1 = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0); gtk_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (readdev_speed),GINT_TO_POINTER(speed1)); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(speed1),1); gtk_table_attach_defaults(GTK_TABLE(tbl),speed1,15,16,row,row+1); if (curset.audioread_speed != -1) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(speed1), (gfloat)curset.audioread_speed); } gtk_widget_show(speed1); define_tooltip(speed1, help(43)); } else { /* if not showing speed, show eject/load buttons */ gtk_widget_realize(tbl); style = gtk_widget_get_style(tbl); pmap = gdk_pixmap_create_from_xpm_d(tbl->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) disc_eject); eject_xpm = gtk_pixmap_new(pmap,mask); eject_btn = gtk_button_new(); gtk_signal_connect (GTK_OBJECT (eject_btn), "clicked", GTK_SIGNAL_FUNC (eject_clicked), GINT_TO_POINTER(0)); gtk_table_attach_defaults(GTK_TABLE(tbl),eject_btn, 14,15,row,row+1); gtk_widget_show(eject_btn); gtk_container_add(GTK_CONTAINER(eject_btn), eject_xpm); gtk_widget_show(eject_xpm); define_tooltip(eject_btn, help(78)); pmap = gdk_pixmap_create_from_xpm_d(tbl->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) disc_load); load_xpm = gtk_pixmap_new(pmap,mask); load_btn = gtk_button_new(); gtk_signal_connect (GTK_OBJECT (load_btn), "clicked", GTK_SIGNAL_FUNC (eject_clicked), GINT_TO_POINTER(1)); gtk_table_attach_defaults(GTK_TABLE(tbl),load_btn, 15,16,row,row+1); gtk_widget_show(load_btn); gtk_container_add(GTK_CONTAINER(load_btn), load_xpm); gtk_widget_show(load_xpm); define_tooltip(load_btn, help(79)); }}void imagedir_selected(GtkWidget *item, gpointer val) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor; do_lock(); /* change cursor to watch */ gdk_window_get_user_data(GTK_WIDGET(toplevel)->window, (gpointer) &win_attr); normal_cursor = win_attr->cursor; cursor = gdk_cursor_new(GDK_WATCH); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,cursor); while (gtk_events_pending()) gtk_main_iteration(); curset.image_index = GPOINTER_TO_INT(val); /* which sub-menu are we in? */ /* read menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[1])) == 1) { fill_read_menu(); } if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[1])) == 1) { fill_read_tracks(1); } /* verify menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[2])) == 1) { fill_verify_menu(); } /* verify menu2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[2])) == 1) { fill_verify_tracks(0); } /* write menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[4])) == 1) { fill_write_menu(); } /* write menu2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[5])) == 1) { fill_write_tracks(); } /* delete menu? */ if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[5])) == 1) { fill_delete_menu(); } /* delete menu2? */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[6])) == 1) { fill_delete_menu(); } /* master menu */ if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[4])) == 1) { fill_master_write_menu(); } /* reset cursor */ normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor); do_unlock();}/* draw the device-setup-image line */void devices_setup_image(gint row, GtkWidget *tbl) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GList *loop;gchar tmp[MAXLINE];gint i, menuidx, menuhistory; /* default curset.image_index is -1...so we are fine here */ /* image directory */ l1 = rightjust_gtk_label_new(text(134)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1); gtk_widget_show(l1); omenu = gtk_option_menu_new (); menu = gtk_menu_new(); /* automatic setting */ menuidx = 0; menuhistory = -1; menu_item = gtk_menu_item_new_with_label(text(137)); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(imagedir_selected), GINT_TO_POINTER(-1)); gtk_menu_append (GTK_MENU (menu), menu_item); if (curset.image_index == -1) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); /* add image dirs */ i = 0; loop = g_list_first(setupdata.image_dirs); while(loop) { strcpy(tmp,(gchar *)loop->data); menu_item = gtk_menu_item_new_with_label(tmp); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(imagedir_selected), GINT_TO_POINTER(i)); gtk_menu_append (GTK_MENU (menu), menu_item); if (curset.image_index == i) { menuhistory = menuidx; } menuidx++; gtk_widget_show (menu_item); loop = loop->next; i++; } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); if (menuhistory != -1) { gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory); } else { /* looks we got an invalid setting...set to default */ curset.image_index = -1; gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),0); } gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1); gtk_widget_show(omenu); define_tooltip(omenu, help(44));}/* callbacks for devices_setup_write */void writedev_selected(GtkWidget *item, GtkWidget *omenu) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor; /* this has no function yet, exept causing an eject on the write device */ do_lock(); /* change cursor to watch */ gdk_window_get_user_data(GTK_WIDGET(toplevel)->window, (gpointer) &win_attr); normal_cursor = win_attr->cursor; cursor = gdk_cursor_new(GDK_WATCH); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,cursor); while (gtk_events_pending()) gtk_main_iteration(); eject_cd(curset.writer_devnr); /* now set the writer-device back to it real setting (erasing the "Eject text") */ gtk_option_menu_set_history(GTK_OPTION_MENU (omenu), 0); /* reset cursor */ normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor); do_unlock();}void writedev_speed(GtkWidget *item, GtkSpinButton *spin) { curset.writer_speed = gtk_spin_button_get_value_as_int(spin);}/* draw the device-setup-write line */void devices_setup_write(gint row, GtkWidget *tbl) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GtkWidget *speed1;GtkObject *adj;gchar tmp[MAXLINE]; /* we must have a writer defined here...so just set */ curset.writer_devnr = setupdata.writer_devnr; if (curset.writer_speed == -1) { curset.writer_speed = setupdata.writer_speed; } /* write device */ l1 = rightjust_gtk_label_new(text(135)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1); gtk_widget_show(l1); omenu = gtk_option_menu_new (); menu = gtk_menu_new(); if (convert_devnr2devstring(setupdata.writer_devnr,tmp) == 0) { menu_item = gtk_menu_item_new_with_label(tmp); gtk_menu_append (GTK_MENU (menu), menu_item); gtk_widget_show (menu_item); /* now add eject option here */ menu_item = gtk_menu_item_new_with_label(text(291)); gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(writedev_selected), omenu); gtk_menu_append (GTK_MENU (menu), menu_item); gtk_widget_show (menu_item); } gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1); gtk_widget_show(omenu); define_tooltip(omenu, help(45)); l1 = rightjust_gtk_label_new(text(136)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,12,15,row,row+1); gtk_widget_show(l1); adj = gtk_adjustment_new(0.0,0.0,32.0,1.0,1.0,1.0); speed1 = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0); gtk_signal_connect (GTK_OBJECT (adj), "value_changed", GTK_SIGNAL_FUNC (writedev_speed),GINT_TO_POINTER(speed1)); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(speed1),1); gtk_table_attach_defaults(GTK_TABLE(tbl),speed1,15,16,row,row+1); if (curset.writer_speed != -1) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(speed1), (gfloat)curset.writer_speed); } gtk_widget_show(speed1); define_tooltip(speed1, help(46));}/* function to remove all selections on a clist */void undo_selections(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { gtk_clist_unselect_all(GTK_CLIST(clist));}/* draw the cd-info-menu */void draw_info_menu() {GtkWidget *hbox, *vbox;GtkWidget *f1,*f2;GtkWidget *b1, *b_update;GtkWidget *e1;GtkWidget *l1;GtkWidget *tbl;GtkWidget *cd_list, *img_list;gchar *titles[2];GtkWidget *scrolled_win; /* prepare draw area */ clear_actionspace(); f1 = gtk_frame_new(text(107)); set_font_and_color(f1,BOLDFONT,NULL); gtk_box_pack_start(GTK_BOX(actionspace),f1,FALSE,FALSE,0); gtk_widget_show(f1); tbl = gtk_table_new(1,16,TRUE); gtk_table_set_col_spacing(GTK_TABLE(tbl),3,10); gtk_table_set_col_spacing(GTK_TABLE(tbl),14,5); gtk_container_set_border_width(GTK_CONTAINER (tbl),5); gtk_container_add(GTK_CONTAINER(f1),tbl); gtk_widget_show(tbl); devices_setup_read(0, tbl, 0); /* left and right info-frames */ tbl = gtk_table_new(1,2,TRUE); gtk_table_set_col_spacings(GTK_TABLE(tbl),10); gtk_box_pack_start(GTK_BOX(actionspace),tbl,TRUE,TRUE,10); gtk_widget_show(tbl);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -