📄 guis.c
字号:
/*************************************************************************** * guis.c * * Mon Dec 17 13:43:12 2007 * Copyright 2007 linux * <linux@<host>> *************************************************************************** */#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <signal.h>#include <errno.h>#include <stdlib.h>#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>//#include <glade/glade.h>#include "main.h"#include "callbacks.h"#include "guis.h"#include "func.h"GtkWidget *create_window (void){ GtkWidget *window; GtkWidget *fixed3; GtkWidget *label12; GtkWidget *label9; GtkWidget *label11; GtkWidget *label10;// GtkWidget *label15; GtkWidget *del_btn;// GtkWidget *interface_combo; GtkWidget *windowcancel_btn; GtkWidget *alignment7; GtkWidget *hbox7;// GtkWidget *image7; GtkWidget *label13; GtkWidget *windowsave_btn; GtkWidget *alignment8; GtkWidget *hbox8;// GtkWidget *image8; GtkWidget *label14; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (window, 300, 270); gtk_window_set_title (GTK_WINDOW (window), _("ADSL network connecting")); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); fixed3 = gtk_fixed_new (); gtk_widget_show (fixed3); //gtk_container_add (GTK_CONTAINER (window), fixed3); note = create_notebook(fixed3,pro_wid()); gtk_notebook_add_pape(GTK_NOTEBOOK(note),status_things(),_("Netstatus")); gtk_notebook_add_pape(GTK_NOTEBOOK(note),about_wid(),_("About")); gtk_widget_show(note); gtk_container_add (GTK_CONTAINER (window),note); adslname_edit = gtk_combo_box_entry_new_text ();//gtk_entry_new (); gtk_widget_show (adslname_edit); gtk_entry_set_max_length(GTK_ENTRY( gtk_bin_get_child( GTK_BIN(adslname_edit))), 32); gtk_fixed_put (GTK_FIXED (fixed3), adslname_edit, 88, 40); gtk_widget_set_size_request (adslname_edit, 160, 24); //gtk_entry_set_invisible_char (GTK_ENTRY (adslname_edit), 8226); del_btn = gtk_button_new_with_mnemonic(_("del")); gtk_widget_show(del_btn); gtk_fixed_put (GTK_FIXED (fixed3),del_btn,250,40); gtk_widget_set_size_request (del_btn, 45, 24); username_edit = gtk_entry_new (); gtk_widget_show (username_edit); gtk_fixed_put (GTK_FIXED (fixed3), username_edit, 88, 88); gtk_widget_set_size_request (username_edit, 160, 24); gtk_entry_set_invisible_char (GTK_ENTRY (username_edit), 8226); password_edit = gtk_entry_new (); gtk_widget_show (password_edit); gtk_fixed_put (GTK_FIXED (fixed3), password_edit, 88, 120); gtk_widget_set_size_request (password_edit, 160, 24); gtk_entry_set_visibility(GTK_ENTRY(password_edit),FALSE); gtk_entry_set_invisible_char (GTK_ENTRY (password_edit), 8226); label12 = gtk_label_new (_("Interface:")); gtk_widget_show (label12); gtk_fixed_put (GTK_FIXED (fixed3), label12, 8, 152); gtk_widget_set_size_request (label12, 80, 24); label9 = gtk_label_new (_("ADSL Name:")); gtk_widget_show (label9); gtk_fixed_put (GTK_FIXED (fixed3), label9, 8, 40); gtk_widget_set_size_request (label9, 80, 24); label11 = gtk_label_new (_("Password:")); gtk_widget_show (label11); gtk_fixed_put (GTK_FIXED (fixed3), label11, 8, 120); gtk_widget_set_size_request (label11, 80, 24); label10 = gtk_label_new (_("User Name:")); gtk_widget_show (label10); gtk_fixed_put (GTK_FIXED (fixed3), label10, 8, 88); gtk_widget_set_size_request (label10, 80, 24);/* label15 = gtk_label_new (_("Config profile")); gtk_widget_show (label15); gtk_fixed_put (GTK_FIXED (fixed3), label15, 8, 8); gtk_widget_set_size_request (label15, 90, 24);*/ interface_combo = gtk_combo_box_entry_new_text (); gtk_widget_show (interface_combo); gtk_fixed_put (GTK_FIXED (fixed3), interface_combo, 88, 152); gtk_widget_set_size_request (interface_combo, 160, 25); load_interfaces(interface_combo); windowcancel_btn = gtk_button_new (); gtk_widget_show (windowcancel_btn); gtk_fixed_put (GTK_FIXED (fixed3), windowcancel_btn, 25, 200); gtk_widget_set_size_request (windowcancel_btn, 80, 32); alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment7); gtk_container_add (GTK_CONTAINER (windowcancel_btn), alignment7); hbox7 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox7); gtk_container_add (GTK_CONTAINER (alignment7), hbox7);/* image7 = gtk_image_new_from_stock ("gtk-undo", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image7); gtk_box_pack_start (GTK_BOX (hbox7), image7, FALSE, FALSE, 0);*/ label13 = gtk_label_new_with_mnemonic (_("Cancel")); gtk_widget_show (label13); gtk_box_pack_start (GTK_BOX (hbox7), label13, FALSE, FALSE, 0); windowsave_btn = gtk_button_new (); gtk_widget_show (windowsave_btn); gtk_fixed_put (GTK_FIXED (fixed3), windowsave_btn, 168, 200); gtk_widget_set_size_request (windowsave_btn, 80, 32); alignment8 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment8); gtk_container_add (GTK_CONTAINER (windowsave_btn), alignment8); hbox8 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox8); gtk_container_add (GTK_CONTAINER (alignment8), hbox8);/* image8 = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image8); gtk_box_pack_start (GTK_BOX (hbox8), image8, FALSE, FALSE, 0);*/ label14 = gtk_label_new_with_mnemonic (_("connect")); gtk_widget_show (label14); gtk_box_pack_start (GTK_BOX (hbox8), label14, FALSE, FALSE, 0); g_signal_connect ((gpointer) window, "delete_event", G_CALLBACK (on_window_delete_event), NULL); g_signal_connect ((gpointer) windowcancel_btn, "clicked", G_CALLBACK (on_windowcancel_btn_clicked), NULL); g_signal_connect ((gpointer) windowsave_btn, "clicked", G_CALLBACK (on_connect), NULL); g_signal_connect (adslname_edit,"changed",GTK_SIGNAL_FUNC(combox_changed),NULL); g_signal_connect ( gtk_bin_get_child (GTK_BIN(adslname_edit)), "paste-clipboard", GTK_SIGNAL_FUNC(combox_entry_changed), NULL ); g_signal_connect (del_btn,"clicked",GTK_SIGNAL_FUNC(on_del),NULL); g_signal_connect(GTK_WIDGET(window),"key-press-event",GTK_SIGNAL_FUNC(enter_press),note); return window;}GtkWidget* create_statuswin (void){ GtkWidget *statuswin; GtkWidget *vbox1; statuswin = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (statuswin, 250, 45); gtk_window_set_title (GTK_WINDOW (statuswin), _("connection status")); gtk_window_set_position (GTK_WINDOW (statuswin), GTK_WIN_POS_CENTER); gtk_window_set_resizable (GTK_WINDOW (statuswin), FALSE); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (statuswin), vbox1); statuslabel = gtk_label_new (_("\nLabel")); gtk_widget_show (statuslabel); gtk_box_pack_start (GTK_BOX (vbox1), statuslabel, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (statuslabel), GTK_JUSTIFY_CENTER); g_signal_connect ((gpointer) statuswin, "delete_event",G_CALLBACK (on_status_delete_event),NULL); return statuswin;}GtkWidget *create_notebook(GtkWidget *child1,GtkWidget *child2){ GtkWidget *note; GtkWidget *label1,*label2; note = gtk_notebook_new (); label1 = gtk_label_new (_("normal")); label2 = gtk_label_new (_("Seting")); gtk_notebook_append_page(GTK_NOTEBOOK( note),child1,label1); gtk_notebook_append_page(GTK_NOTEBOOK( note),child2,label2); return note;}void gtk_notebook_add_pape (GtkNotebook *notebook,GtkWidget *child,gchar *str){ GtkWidget *label ; if(str)label = gtk_label_new (str); else return; gtk_widget_show(child); gtk_notebook_append_page(notebook,child,label);}GtkWidget *pro_wid(){ //GtkWidget *pro; GtkWidget *fixed; GtkWidget *line; GtkWidget *cbut1; GtkWidget *cbut2; static Iwgt data[2]; fixed = gtk_fixed_new (); cbut1 = gtk_check_button_new_with_mnemonic (_("share")); cbut2 = gtk_check_button_new_with_mnemonic (_("set route")); line = gtk_entry_new(); gtk_entry_set_text (GTK_ENTRY(line),get_gw()); gtk_entry_set_max_length(GTK_ENTRY(line),15); gtk_entry_set_width_chars(GTK_ENTRY(line),9); gtk_entry_set_editable (GTK_ENTRY(line),FALSE); gtk_fixed_put (GTK_FIXED (fixed),cbut1,30,20); gtk_fixed_put (GTK_FIXED (fixed),cbut2,30,50); gtk_fixed_put (GTK_FIXED (fixed),line,45,70); data[0].i=0;data[1].i=1; data[0].gwt=NULL;data[1].gwt=line; g_signal_connect(GTK_TOGGLE_BUTTON(cbut1),"toggled",GTK_SIGNAL_FUNC(ckb_handler),data); g_signal_connect(GTK_TOGGLE_BUTTON(cbut2),"toggled",GTK_SIGNAL_FUNC(ckb_handler),data+1); g_signal_connect(line,"activate",G_CALLBACK(entry_handler),cbut2); gtk_widget_show_all (fixed); return fixed;}GtkWidget * status_things(void){ //signal(SIGALRM,handler); //handler(); GtkWidget *fixed; GtkWidget *label; fixed = gtk_fixed_new (); label = gtk_label_new(""); gtk_fixed_put (GTK_FIXED (fixed),label,10,20); g_timeout_add_seconds(2,handler,label); gtk_widget_show (fixed); gtk_widget_show(label); return fixed; //} //return NULL;}GtkWidget *about_wid(void){ str_about = _("\n\n ABOUT_THINGS\n"); GtkWidget *view; GtkTextBuffer *buffer; GtkTextIter iter; view = gtk_text_view_new (); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (view)); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); gtk_text_buffer_set_text(buffer,str_about,-1); gtk_text_view_set_editable(GTK_TEXT_VIEW(view),FALSE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view),FALSE); //return gtk_label_new(str_about); return view;}gint msgbox(gchar *str,guint interval,gboolean one_tow){ GtkWidget *dig = NULL;// GtkWidget *dig = NULL;// GtkWidget *digvh = NULL;// GtkWidget *digbb = NULL; GtkWidget *ok = NULL; GtkWidget *no = NULL; GtkWidget *label = NULL; dig = gtk_dialog_new(); gint id = 0; if(str){ label = gtk_label_new(str); } else{ label = gtk_label_new("label"); }// digvh = gtk_vbox_new(FALSE,2);// digbb = gtk_hbutton_box_new(); ok = gtk_button_new_with_mnemonic ("gtk-ok");//gtk_button_new(); no = gtk_button_new_with_mnemonic ("gtk-cancel"); gtk_button_set_use_stock(GTK_BUTTON(ok),TRUE); gtk_dialog_add_action_widget(GTK_DIALOG(dig),ok,2); if(one_tow){ gtk_button_set_use_stock(GTK_BUTTON(no),TRUE); gtk_dialog_add_action_widget(GTK_DIALOG(dig),no,1);} gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dig)->vbox),label); gtk_button_box_set_layout ( GTK_BUTTON_BOX(GTK_DIALOG(dig)->action_area), GTK_BUTTONBOX_CENTER );// gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dig)->vbox),digbb);// gtk_box_pack_end(GTK_BOX(digvh),digbb,NULL,NULL,0);// gtk_box_pack_start(GTK_BOX(digbb),ok,FALSE,FALSE,0);// gtk_box_pack_end(GTK_BOX(digbb),no,FALSE,FALSE,0); if(interval) g_timeout_add_seconds(interval,dialog_handler,ok); gtk_window_set_position(GTK_WINDOW(dig),GTK_WIN_POS_CENTER_ALWAYS /*GTK_WIN_POS_CENTER*/); gtk_widget_show_all(dig); gtk_window_set_resizable(GTK_WINDOW(dig),FALSE); id = gtk_dialog_run (GTK_DIALOG (dig));// g_print("Button %d pressed .\n",id); gtk_widget_destroy (dig); return id; }/*void show_failed(void){ GladeXML *xml; GtkWidget *ok; GtkWidget *rect; if(access("failed.glade",F_OK)==0){ xml = glade_xml_new("failed.glade", NULL, NULL); } else {// fprintf(stderr,"show_failed:access():%s .\n",strerror(errno)); xml = glade_xml_new(shell_path"/failed.glade", NULL, NULL); } glade_xml_signal_autoconnect(xml); dialog1 = glade_xml_get_widget(xml,"dialog1"); ok = glade_xml_get_widget(xml,"button1"); rect = glade_xml_get_widget(xml,"button2"); chb1 = glade_xml_get_widget(xml,"checkbutton1"); g_signal_connect(GTK_TOGGLE_BUTTON(chb1), g_timeout_add_seconds(2,handler,label);"toggled",GTK_SIGNAL_FUNC(chb1_handler),NULL); g_signal_connect(ok,"clicked",G_CALLBACK (do_ok),dialog1); g_signal_connect(rect,"clicked",G_CALLBACK (do_rect),dialog1);// gtk_widget_show_all(dialog1);}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -