📄 gui_common.c
字号:
} p3[1] = form_encode_urlencoded_str((gchar *) gtk_entry_get_text(GTK_ENTRY(urldlg-> field_name))); if(p3[0] && p3[1] && *p3[0] && *p3[1]) { int row = gtk_clist_append(GTK_CLIST(urldlg->field_list), p3); gtk_clist_set_row_data(GTK_CLIST(urldlg->field_list), row, (gpointer) type); } else gdk_beep(); _free(p3[2]); _free(p3[1]);}static void cfg_url_dlg_field_modify(GtkWidget * w, struct cfg_url_dlg_t *urldlg){ char *p3[3]; int type; int row; if(!GTK_CLIST(urldlg->field_list)->selection) { gdk_beep(); return; } row = GPOINTER_TO_INT(GTK_CLIST(urldlg->field_list)->selection->data); type = GTK_OPTION_MENU(urldlg->field_type)->menu_item ? (int) gtk_object_get_user_data(GTK_OBJECT(GTK_OPTION_MENU(urldlg-> field_type)->menu_item)) : 0; switch (type) { case FORM_T_FILE: p3[0] = "FILE"; p3[2] = form_encode_urlencoded_str( (gchar *) gtk_entry_get_text(GTK_ENTRY(urldlg->field_value_f))); break; case FORM_T_TEXTAREA: { int len; char *p; p3[0] = "LONG TEXT";#if GTK_FACE < 2 len = gtk_text_get_length(GTK_TEXT(urldlg->field_value_t));#else len = gtk_text_buffer_get_char_count( gtk_text_view_get_buffer(GTK_TEXT_VIEW(urldlg->field_value_t)));#endif p = gtk_editable_get_chars(GTK_EDITABLE(urldlg->field_value_t), 0, len); p3[2] = form_encode_urlencoded_str(p); g_free(p); } break; default: p3[0] = "TEXT"; p3[2] = form_encode_urlencoded_str( (gchar *) gtk_entry_get_text(GTK_ENTRY(urldlg->field_value_l))); } p3[1] = form_encode_urlencoded_str((gchar *) gtk_entry_get_text(GTK_ENTRY(urldlg-> field_name))); if(p3[0] && p3[1] && *p3[0] && *p3[1]) { gtk_clist_set_text(GTK_CLIST(urldlg->field_list), row, 0, p3[0]); gtk_clist_set_text(GTK_CLIST(urldlg->field_list), row, 1, p3[1]); gtk_clist_set_text(GTK_CLIST(urldlg->field_list), row, 2, p3[2]); gtk_clist_set_row_data(GTK_CLIST(urldlg->field_list), row, (gpointer) type); } else gdk_beep(); _free(p3[2]); _free(p3[1]);}static void cfg_url_dlg_set_type(GtkWidget * w, struct cfg_url_dlg_t *urldlg){ int type; int tab; type = (int) gtk_object_get_user_data(GTK_OBJECT(w)); switch (type) { case FORM_T_FILE: tab = 1; break; case FORM_T_TEXTAREA: tab = 2; break; default: tab = 0; } gtk_notebook_set_page(GTK_NOTEBOOK(urldlg->tab), tab);}static void cfg_url_dlg_field_switch(GtkObject * w, int row, int col, GdkEvent * event, struct cfg_url_dlg_t *urldlg){ if(GTK_CLIST(w)->selection) { char *p; int type; type = (int) gtk_clist_get_row_data(GTK_CLIST(urldlg->field_list), row); gtk_clist_get_text(GTK_CLIST(urldlg->field_list), row, 1, &p); p = form_decode_urlencoded_str(p, strlen(p)); gtk_entry_set_text(GTK_ENTRY(urldlg->field_name), p); _free(p); gtk_clist_get_text(GTK_CLIST(urldlg->field_list), row, 2, &p); p = form_decode_urlencoded_str(p, strlen(p)); switch (type) { case FORM_T_FILE: gtk_option_menu_set_history(GTK_OPTION_MENU(urldlg->field_type), 1); gtk_entry_set_text(GTK_ENTRY(urldlg->field_value_f), p); gtk_notebook_set_page(GTK_NOTEBOOK(urldlg->tab), 1); break; case FORM_T_TEXTAREA: gtk_option_menu_set_history(GTK_OPTION_MENU(urldlg->field_type), 2);#if GTK_FACE < 2 gtk_text_set_point(GTK_TEXT(urldlg->field_value_t), 0); gtk_text_forward_delete(GTK_TEXT(urldlg->field_value_t), gtk_text_get_length(GTK_TEXT(urldlg->field_value_t))); gtk_text_insert(GTK_TEXT(urldlg->field_value_t), NULL, NULL, NULL, p, strlen(p));#else gtk_text_buffer_set_text(gtk_text_view_get_buffer( GTK_TEXT_VIEW(urldlg->field_value_t)), p, -1);#endif gtk_notebook_set_page(GTK_NOTEBOOK(urldlg->tab), 2); break; default: gtk_option_menu_set_history(GTK_OPTION_MENU(urldlg->field_type), 0); gtk_entry_set_text(GTK_ENTRY(urldlg->field_value_l), p); gtk_notebook_set_page(GTK_NOTEBOOK(urldlg->tab), 0); } _free(p); } else { gtk_entry_set_text(GTK_ENTRY(urldlg->field_name), ""); gtk_entry_set_text(GTK_ENTRY(urldlg->field_value_f), ""); gtk_entry_set_text(GTK_ENTRY(urldlg->field_value_l), "");#if GTK_FACE < 2 gtk_text_set_point(GTK_TEXT(urldlg->field_value_t), 0); gtk_text_forward_delete(GTK_TEXT(urldlg->field_value_t), gtk_text_get_length(GTK_TEXT(urldlg->field_value_t)));#else gtk_text_buffer_set_text(gtk_text_view_get_buffer( GTK_TEXT_VIEW(urldlg->field_value_t)), "", 0);#endif }}static void cfg_url_dlg_set_sensitive(GtkWidget * w, struct cfg_url_dlg_t *urldlg){ gtk_widget_set_sensitive(urldlg->ext_frame, GTK_TOGGLE_BUTTON(urldlg->ext_sw)->active);}static void cfgtab_url(GtkWidget * notebook){ GtkWidget *label, *box, *tbox, *ptab, *prow, *menu, *mi; GtkWidget *swin, *brow, *button, *pbox; GtkWidget *hsb, *vsb; GtkAdjustment *hadj, *vadj; static struct cfg_url_dlg_t urldlg; tbox = gtk_hbox_new(FALSE, 2); gtk_widget_show(tbox); label = gtk_label_new(gettext("URL")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tbox, label); box = gtk_table_new(3, 1, FALSE); gtk_box_pack_start(GTK_BOX(tbox), box, TRUE, TRUE, 1); gtk_widget_show(box); swin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_table_attach_defaults(GTK_TABLE(box), swin, 0, 1, 0, 1); gtk_widget_show(swin); gui_cfg.url_list = gtk_clist_new(2); urldlg.url_list = gui_cfg.url_list; gtk_clist_set_selection_mode(GTK_CLIST(gui_cfg.url_list), GTK_SELECTION_BROWSE); gtk_clist_set_column_title(GTK_CLIST(gui_cfg.url_list), 0, gettext("URL")); gtk_clist_set_column_title(GTK_CLIST(gui_cfg.url_list), 1, gettext("Local filename")); gtk_clist_column_titles_show(GTK_CLIST(gui_cfg.url_list)); gtk_clist_set_column_width(GTK_CLIST(gui_cfg.url_list), 0, 200); gtk_clist_set_reorderable(GTK_CLIST(gui_cfg.url_list), TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(gui_cfg.url_list), 1, TRUE); gtk_container_add(GTK_CONTAINER(swin), gui_cfg.url_list); gtk_widget_show(gui_cfg.url_list); gtk_signal_connect(GTK_OBJECT(gui_cfg.url_list), "select_row", GTK_SIGNAL_FUNC(cfg_url_dlg_switch), (gpointer) & urldlg); brow = gtk_table_new(2, 2, FALSE); gtk_table_attach(GTK_TABLE(box), brow, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 2, 5); gtk_widget_show(brow); gui_cfg.url_entry = guitl_tab_add_entry(brow, gettext("Request URL: "), 0, 0, FALSE); urldlg.url_entry = gui_cfg.url_entry; urldlg.localname_entry = guitl_tab_add_path_entry(brow, gettext("Local filename: "), 0, 2, FALSE); brow = gtk_hbutton_box_new(); gtk_table_attach(GTK_TABLE(box), brow, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 2, 5); gtk_hbutton_box_set_spacing_default(1); gtk_widget_show(brow); gtk_button_box_set_layout(GTK_BUTTON_BOX(brow), GTK_BUTTONBOX_SPREAD); button = guitl_pixmap_button(append_xpm, NULL, gettext("Append")); gtk_container_border_width(GTK_CONTAINER(button), 0); gtk_container_add(GTK_CONTAINER(brow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cfg_url_dlg_append), (gpointer) & urldlg); gtk_signal_connect(GTK_OBJECT(gui_cfg.url_entry), "activate", GTK_SIGNAL_FUNC(cfg_url_dlg_append), (gpointer) & urldlg); button = guitl_pixmap_button(modify_xpm, NULL, gettext("Modify")); gtk_container_border_width(GTK_CONTAINER(button), 0); gtk_container_add(GTK_CONTAINER(brow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cfg_url_dlg_modify), (gpointer) & urldlg); button = guitl_pixmap_button(clear_xpm, NULL, gettext("Clear")); gtk_container_border_width(GTK_CONTAINER(button), 0); gtk_container_add(GTK_CONTAINER(brow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(guitl_ListClear), (gpointer) gui_cfg.url_list); button = guitl_pixmap_button(delete_xpm, NULL, gettext("Delete")); gtk_container_border_width(GTK_CONTAINER(button), 0); gtk_container_add(GTK_CONTAINER(brow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(guitl_ListDeleteSelected), (gpointer) gui_cfg.url_list); /*** DRAG'N'DROP ***/ gtk_drag_dest_set(box, GTK_DEST_DEFAULT_ALL, dragtypes, NUM_ELEM(dragtypes) - 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); gtk_signal_connect(GTK_OBJECT(box), "drag_data_received", GTK_SIGNAL_FUNC(gui_window_drop_url), NULL); box = gtk_vbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(tbox), box, TRUE, TRUE, 1); gtk_widget_show(box); urldlg.ext_sw = gtk_check_button_new_with_label(gettext ("Extended informations for HTTP POST request")); gtk_box_pack_start(GTK_BOX(box), urldlg.ext_sw, FALSE, FALSE, 1); gtk_widget_show(urldlg.ext_sw); gtk_signal_connect(GTK_OBJECT(urldlg.ext_sw), "toggled", GTK_SIGNAL_FUNC(cfg_url_dlg_set_sensitive), &urldlg); urldlg.ext_frame = gtk_frame_new(NULL); gtk_box_pack_start(GTK_BOX(box), urldlg.ext_frame, FALSE, FALSE, 1); gtk_widget_show(urldlg.ext_frame); ptab = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(urldlg.ext_frame), ptab); gtk_widget_show(ptab); prow = gtk_table_new(2, 2, FALSE); gtk_box_pack_start(GTK_BOX(ptab), prow, FALSE, FALSE, 1); gtk_widget_show(prow); label = gtk_label_new(gettext("Request method: ")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(prow), label, 0, 1, 0, 1, GTK_SHRINK | GTK_FILL, GTK_FILL, 2, 2); gtk_widget_show(label); urldlg.method = gtk_option_menu_new(); gtk_table_attach(GTK_TABLE(prow), urldlg.method, 1, 2, 0, 1, GTK_SHRINK | GTK_FILL, GTK_FILL, 2, 2); menu = gtk_menu_new(); mi = gtk_menu_item_new_with_label("GET"); gtk_object_set_user_data(GTK_OBJECT(mi), (gpointer) FORM_M_GET); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = gtk_menu_item_new_with_label("POST"); gtk_object_set_user_data(GTK_OBJECT(mi), (gpointer) FORM_M_POST); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_option_menu_set_menu(GTK_OPTION_MENU(urldlg.method), menu); gtk_widget_show(urldlg.method); label = gtk_label_new(gettext("Request encoding: ")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(prow), label, 0, 1, 1, 2, GTK_SHRINK | GTK_FILL, GTK_FILL, 2, 2); gtk_widget_show(label); urldlg.encoding = gtk_option_menu_new(); gtk_table_attach(GTK_TABLE(prow), urldlg.encoding, 1, 2, 1, 2, GTK_SHRINK | GTK_FILL, GTK_FILL, 2, 2); menu = gtk_menu_new(); mi = gtk_menu_item_new_with_label("multipart/form-data"); gtk_object_set_user_data(GTK_OBJECT(mi), (gpointer) FORM_E_MULTIPART); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = gtk_menu_item_new_with_label("application/x-www-form-urlencoded"); gtk_object_set_user_data(GTK_OBJECT(mi), (gpointer) FORM_E_URLENCODED); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_option_menu_set_menu(GTK_OPTION_MENU(urldlg.encoding), menu); gtk_widget_show(urldlg.encoding); label = gtk_label_new(gettext("Query fields: ")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(ptab), label, FALSE, FALSE, 2); gtk_widget_show(label); swin = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_usize(swin, -1, 100); gtk_box_pack_start(GTK_BOX(ptab), swin, TRUE, TRUE, 2); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(swin); urldlg.field_list = gtk_clist_new(3); gtk_clist_set_selection_mode(GTK_CLIST(urldlg.field_list), GTK_SELECTION_BROWSE); gtk_clist_set_column_title(GTK_CLIST(urldlg.field_list), 0, gettext("Type")); gtk_clist_set_column_title(GTK_CLIST(urldlg.field_list), 1, gettext("Name")); gtk_clist_set_column_title(GTK_CLIST(urldlg.field_list), 2, gettext("Value")); gtk_clist_column_titles_show(GTK_CLIST(urldlg.field_list)); gtk_clist_set_column_auto_resize(GTK_CLIST(urldlg.field_list), 0, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(urldlg.field_list), 1, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(urldlg.field_list), 2, TRUE); gtk_container_add(GTK_CONTAINER(swin), urldlg.field_list); gtk_widget_show(urldlg.field_list); gtk_signal_connect(GTK_OBJECT(urldlg.field_list), "select_row", GTK_SIGNAL_FUNC(cfg_url_dlg_field_switch), (gpointer) & urldlg); prow = gtk_hbutton_box_new(); gtk_box_pack_start(GTK_BOX(ptab), prow, FALSE, FALSE, 1); gtk_widget_show(prow); button = guitl_pixmap_button(append_xpm, NULL, gettext("Append")); gtk_container_add(GTK_CONTAINER(prow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cfg_url_dlg_field_append), &urldlg); button = guitl_pixmap_button(modify_xpm, NULL, gettext("Modify")); gtk_container_add(GTK_CONTAINER(prow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cfg_url_dlg_field_modify), &urldlg); button = guitl_pixmap_button(delete_xpm, NULL, gettext("Delete")); gtk_container_add(GTK_CONTAINER(prow), button); gtk_widget_show(button); gtk_signal_connect(GTK_OBJECT(button), "clicked",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -