⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface.c

📁 C写的TELNET
💻 C
📖 第 1 页 / 共 5 页
字号:
  connect_via_menu = gtk_menu_new ();  add_menu_item (selectconnection, "telnet", connect_via_menu, (void *)0);  add_menu_item (selectconnection, "ssh", connect_via_menu, (void *)1);  add_menu_item (selectconnection, "rlogin", connect_via_menu, (void *)2);  gtk_option_menu_set_menu (GTK_OPTION_MENU (connect_via), connect_via_menu);    // for handling cmdline param  if (x_count > 1)  {    if (!strcmp(x_choice,"telnet"))       connection_type = 0;    else if (!strcmp(x_choice,"ssh"))       connection_type = 1;    else if (!strcmp(x_choice,"rlogin"))       connection_type = 2;  }  gtk_option_menu_set_history(GTK_OPTION_MENU(connect_via),connection_type);  host_label=new_label(main_window, "host_label",_(" Host name "));  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), host_label,NULL, NULL);  hostname_entry = gnome_entry_new ("host_history");  gnome_entry_load_history(GNOME_ENTRY(hostname_entry));     gtk_widget_ref (hostname_entry);  gtk_object_set_data_full (GTK_OBJECT (main_window), "hostname_entry", hostname_entry,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (hostname_entry);  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), hostname_entry, NULL, NULL);  hostname_combo_entry = gnome_entry_gtk_entry (GNOME_ENTRY (hostname_entry));     gtk_widget_ref (hostname_combo_entry);  gtk_object_set_data_full (GTK_OBJECT (main_window), "hostname_combo_entry", hostname_combo_entry,                            (GtkDestroyNotify) gtk_widget_unref);  if (x_count > 1)     gtk_entry_set_text (GTK_ENTRY (hostname_combo_entry),x_hostname);  else if (x_count > 3 && !atoi(x_port))  {        int length = strlen(x_port)+1+strlen(x_hostname);        char *temp = (char *) malloc (length+1);        snprintf(temp, length+1, "%s@%s", x_port, x_hostname);        gtk_entry_set_text (GTK_ENTRY (hostname_combo_entry),temp);        free (temp);  }                           gtk_widget_show (hostname_combo_entry);  port_label=new_label(main_window, "port_label",_(" Port "));    gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), port_label, NULL, NULL);  port_entry = new_entry(main_window,"port_entry");  if ((x_count > 3) && atoi(x_port))     gtk_entry_set_text (GTK_ENTRY (port_entry),x_port);    gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), port_entry, _("port number -- leave blank for default"), NULL);  gtk_widget_set_usize (port_entry, 50, -2);// Make the toolbar button  connect_button=new_toolbar_button(main_window,toolbar,GNOME_STOCK_PIXMAP_EXEC,"connect_button",  _("Connect"), _("Connect to the remote host"));  disconnect_button = new_toolbar_button(main_window,toolbar,GNOME_STOCK_PIXMAP_STOP,"disconnect_button",  _("Disconnect"), _("Disconnect from the remote host"));  preferences_button = new_toolbar_button(main_window,toolbar,GNOME_STOCK_PIXMAP_PREFERENCES,"preferences_button",  _("Preferences"), _("Change your settings"));  about_button = new_toolbar_button(main_window,toolbar,GNOME_STOCK_PIXMAP_HELP,"help_button",  _("Help"), _("Documentation"));  vbox8 = new_box(main_window,"vbox8",vertbox);  gnome_app_set_contents (GNOME_APP (main_window), vbox8);  entry6 = new_entry(main_window,"entry6");  gtk_box_pack_start (GTK_BOX (vbox8), entry6, FALSE, FALSE, 0);  gtk_widget_set_usize (entry6, -2, 4);    hbox4 = new_box(main_window,"hbox4",horzbox);    gtk_box_pack_start (GTK_BOX (vbox8), hbox4, TRUE, TRUE, 0);///////////////////////////////////////////////////////////////////////////////////////////////* Make term */  term = zvt_term_new_with_size(81,24);  gtk_widget_ref (term);  gtk_object_set_data_full (GTK_OBJECT (main_window), "term", term,(GtkDestroyNotify) gtk_widget_unref);    GTK_WIDGET_SET_FLAGS(term,GTK_HAS_FOCUS + GTK_CAN_FOCUS + GTK_VISIBLE + GTK_SENSITIVE + GTK_HAS_GRAB);  gtk_widget_show (term);  gtk_box_pack_start (GTK_BOX (hbox4), term, TRUE, TRUE, 0);/////////////////////////////////////////////////////////////////////////////////////////////  vscrollbar1 = gtk_vscrollbar_new (GTK_ADJUSTMENT (ZVT_TERM(term)->adjustment));  gtk_widget_ref (vscrollbar1);  gtk_object_set_data_full (GTK_OBJECT (main_window), "vscrollbar1", vscrollbar1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (vscrollbar1);  gtk_box_pack_end (GTK_BOX (hbox4), vscrollbar1, FALSE, FALSE, 0);  app_statusbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER);  gtk_widget_ref (app_statusbar);  gtk_object_set_data_full (GTK_OBJECT (main_window), "app_statusbar", app_statusbar,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (app_statusbar);  gnome_app_set_statusbar (GNOME_APP (main_window), app_statusbar);  gtk_signal_connect(GTK_OBJECT (main_window), "delete_event", GTK_SIGNAL_FUNC(destroy_win), NULL);  gtk_signal_connect(GTK_OBJECT (connect_button), "clicked", GTK_SIGNAL_FUNC (on_connect_button_clicked), NULL);  gtk_signal_connect(GTK_OBJECT (disconnect_button), "clicked", GTK_SIGNAL_FUNC (on_disconnect_button_clicked),NULL);  gtk_signal_connect(GTK_OBJECT (term), "child_died", GTK_SIGNAL_FUNC (on_disconnect_button_clicked), NULL);  gtk_signal_connect(GTK_OBJECT (term), "destroy", GTK_SIGNAL_FUNC (on_disconnect_button_clicked), NULL);  gtk_signal_connect(GTK_OBJECT (preferences_button), "clicked",GTK_SIGNAL_FUNC (on_preferences_button_clicked), NULL);  gtk_signal_connect(GTK_OBJECT (about_button), "clicked", GTK_SIGNAL_FUNC (on_about_button_clicked), NULL);  gtk_signal_connect(GTK_OBJECT (entry6), "enter_notify_event", GTK_SIGNAL_FUNC (on_dock_leave), NULL);  gtk_signal_connect(GTK_OBJECT (hostname_combo_entry), "activate", GTK_SIGNAL_FUNC (on_connect_button_clicked), NULL);  gtk_widget_grab_focus (hostname_entry);  if (x_count > 1)  // if it has 1 param (telnet/ssh/rlogin) + a host     on_connect_button_clicked(NULL, NULL);  return main_window;}void show_term(void)/*   Show the terminal window*/{  zvt_term_set_font_name(ZVT_TERM(term), fontstr);  zvt_term_set_background(ZVT_TERM(term),image_file_location,bgimg_transparent,4);  //addition since v1.2 // The following line HAS TO BE AFTER gtk_widget_show (main_window), otherwise it will crash with Segmentation Fault  zvt_term_set_del_key_swap(ZVT_TERM(term),swap_del_backspace);   zvt_term_set_color_scheme(ZVT_TERM(term), red, green,blue);}GtkWidget* create_message_box (gchar * s) {/*   Message box for displaying errors*/  GtkWidget *dialog_vbox3;  GtkWidget *button5;  GtkWidget *dialog_action_area3;  GtkWidget *message_box;  message_box = gnome_message_box_new (s,GNOME_MESSAGE_BOX_INFO, NULL);  gtk_object_set_data (GTK_OBJECT (message_box), "message_box", message_box);  gtk_window_set_title (GTK_WINDOW (message_box), _("Information"));  gtk_window_set_position (GTK_WINDOW (message_box), GTK_WIN_POS_CENTER);  gtk_window_set_modal (GTK_WINDOW (message_box), TRUE);  gtk_window_set_policy (GTK_WINDOW (message_box), FALSE, FALSE, FALSE);  gnome_dialog_close_hides (GNOME_DIALOG (message_box), TRUE);  dialog_vbox3 = GNOME_DIALOG (message_box)->vbox;  gtk_object_set_data (GTK_OBJECT (message_box), "dialog_vbox3", dialog_vbox3);  gtk_widget_show (dialog_vbox3);  gnome_dialog_append_button (GNOME_DIALOG (message_box), GNOME_STOCK_BUTTON_OK);  button5 = g_list_last (GNOME_DIALOG (message_box)->buttons)->data;  gtk_widget_ref (button5);  gtk_object_set_data_full (GTK_OBJECT (message_box), "button5", button5,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (button5);  GTK_WIDGET_SET_FLAGS (button5, GTK_CAN_DEFAULT);  dialog_action_area3 = GNOME_DIALOG (message_box)->action_area;  gtk_widget_ref (dialog_action_area3);  gtk_object_set_data_full (GTK_OBJECT (message_box), "dialog_action_area3", dialog_action_area3,                            (GtkDestroyNotify) gtk_widget_unref);  return message_box;}GtkWidget* create_about_dialog (void)/*   Give credits to people who participated making gnome-telnet*/{  GtkWidget *button8;  GtkWidget *about_dialog;  GtkWidget *dialog_vbox4;  GtkWidget *notebook2;  GtkWidget *vbox7;  GtkWidget *vbox6;  GtkWidget *hbox1;    GtkWidget *scrolledwindow1;  GtkWidget *text1;  GtkWidget *text3;  GtkWidget *pixmap2;  GtkWidget *pixmap3;  GtkWidget *table10;  GtkWidget *label12;  GtkWidget *label13;  GtkWidget *label21;  GtkWidget *label22;  GtkWidget *label23;  GtkWidget *label24;  GtkWidget *label25;  GtkWidget *label27;  GtkWidget *label33;  GtkWidget *label34;  GtkWidget *href1;  GtkWidget *href2;  GtkWidget *href3;  GtkWidget *href6;  GtkWidget *href7;  GtkWidget *scrolledwindow4;  GtkWidget *scrolledwindow2;  GtkWidget *text2;  GtkWidget *dialog_action_area4;  about_dialog = gnome_dialog_new (_("About GTelnet"), NULL);  gtk_object_set_data (GTK_OBJECT (about_dialog), "about_dialog", about_dialog);  gtk_widget_set_usize (about_dialog, 600, -2);  gtk_window_set_policy (GTK_WINDOW (about_dialog), FALSE, FALSE, FALSE);  dialog_vbox4 = GNOME_DIALOG (about_dialog)->vbox;  gtk_object_set_data (GTK_OBJECT (about_dialog), "dialog_vbox4", dialog_vbox4);  gtk_widget_show (dialog_vbox4);  notebook2 = gtk_notebook_new ();  gtk_widget_ref (notebook2);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "notebook2", notebook2,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (notebook2);  gtk_box_pack_start (GTK_BOX (dialog_vbox4), notebook2, TRUE, TRUE, 0);  vbox7 = new_box(about_dialog,"vbox7", vertbox);  gtk_container_add (GTK_CONTAINER (notebook2), vbox7);    href7 = gnome_href_new ("ghelp:/usr/share/doc/gnome-telnet-2.5/index.html", _("Click here for a complete documentation"));  gtk_widget_ref (href7);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "href7", href7,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (href7);  gtk_box_pack_start (GTK_BOX (vbox7), href7, FALSE, FALSE, 0);    scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (scrolledwindow1);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "scrolledwindow1", scrolledwindow1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (scrolledwindow1);  gtk_box_pack_start (GTK_BOX (vbox7), scrolledwindow1, TRUE, TRUE, 0);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);  text1 = gtk_text_new (NULL, NULL);  gtk_widget_ref (text1);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "text1", text1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (text1);  gtk_container_add (GTK_CONTAINER (scrolledwindow1), text1);  gtk_text_insert (GTK_TEXT (text1), NULL, NULL, NULL,                   _("GTelnet is a frontend for the following programs:\n\n- Telnet:  to communicate with another host using the TELNET protocol. \n\n- SSH:  ssh (Secure Shell) is a program for logging into a remote machine and for executing commands on a remote machine.  It is intended to replace rlogin and rsh, and provide secure encrypted communications between two untrusted hosts over an insecure network.  X11 connections and arbitrary TCP/IP ports can also be forwarded over the secure channel. (Copied from SSH manual)\n\n- RLogin: rlogin is a program that is a little bit similar to telnet. It is intended to make remote administration over local area network easier, but it can be very insecure. It is recommended that you use SSH instead of rlogin."), 733);  label33 = new_label (about_dialog,"doc_label",_("Documentation"));  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 0), label33);  vbox6 = new_box(about_dialog,"vbox6",vertbox);  gtk_container_add (GTK_CONTAINER (notebook2), vbox6);  hbox1 = new_box(about_dialog,"hbox1", horzbox);  gtk_box_pack_start (GTK_BOX (vbox6), hbox1, TRUE, TRUE, 0);  pixmap2  = gnome_pixmap_new_from_xpm_d(gnome_telnet_xpm);  gtk_widget_ref (pixmap2);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "pixmap2", pixmap2,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (pixmap2);  gtk_box_pack_start (GTK_BOX (hbox1), pixmap2, TRUE, TRUE, 0);  label21 = new_label (about_dialog,"about_label","Gnome Telnet v2.5");  label22 = new_label (about_dialog,"copyright_label",_("Copyright (C) 2000 the Free Software Foundation"));  label23 = new_label (about_dialog,"blank","");  label24 = new_label (about_dialog,"desc",_("GTelnet is a frontend to the ole good telnet, ssh, and rlogin"));      label25 = new_label (about_dialog,"blank","");    label27 = new_label (about_dialog,"auth_label",_("Authors: "));  gtk_box_pack_start (GTK_BOX (vbox6), label21, FALSE, FALSE, 0);  gtk_box_pack_start (GTK_BOX (vbox6), label22, FALSE, FALSE, 0);  gtk_box_pack_start (GTK_BOX (vbox6), label23, FALSE, FALSE, 0);  gtk_box_pack_start (GTK_BOX (vbox6), label24, FALSE, FALSE, 0);  gtk_box_pack_start (GTK_BOX (vbox6), label25, FALSE, FALSE, 0);  href1 = gnome_href_new ("http://www.cyest.org", "http://www.cyest.org");  gtk_widget_ref (href1);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "href1", href1,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (href1);  gtk_box_pack_start (GTK_BOX (vbox6), href1, FALSE, FALSE, 0);  href2 = gnome_href_new ("http://www.cyest.org/resume-pranagunadi.html", "My resume");  gtk_widget_ref (href2);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "href2", href2,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (href2);  gtk_box_pack_start (GTK_BOX (vbox6), href2, FALSE, FALSE, 0);  href3 = gnome_href_new ("http://www.cyest.org/modules.php?name=Software", "My portfolio");  gtk_widget_ref (href3);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "href3", href3,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (href3);  gtk_box_pack_start (GTK_BOX (vbox6), href3, FALSE, FALSE, 0);  gtk_box_pack_start (GTK_BOX (vbox6), label27, FALSE, FALSE, 0);  gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);  scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (scrolledwindow4);  gtk_object_set_data_full (GTK_OBJECT (about_dialog), "scrolledwindow4", scrolledwindow4,                            (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (scrolledwindow4);  gtk_box_pack_start (GTK_BOX (vbox6), scrolledwindow4, TRUE, TRUE, 0);  gtk_widget_set_usize (scrolledwindow4, -2, 80);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);  text3 = gtk_text_new (NULL, NULL);  gtk_widget_ref (text3);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -