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

📄 interface.c

📁 这个项目里有两个关于收、发GSM 手机短信的C语言程序
💻 C
📖 第 1 页 / 共 3 页
字号:
/* interface.c --- creation of the UI objects  *//* Copyright (c) E. Lassauge, 2000-2001. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation. * * This file is provided AS IS with no warranties of any kind.  The author * shall have no liability with respect to the infringement of copyrights, * trade secrets or any patents by this file or any part thereof.  In no * event will the author be liable for any lost revenue or profits or * other special, indirect and consequential damages. * * mailto:lassauge@mail.dotcom.fr * http://lassauge.free.fr/ * * REVISION HISTORY: see Changelog * */#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <dirent.h>#include <sys/stat.h>#include <unistd.h>#include <gnome.h>#include "sms.h"#include "callbacks.h"#include "interface.h"#include "support.h"/* Common widgets */GtkWidget   *About = (GtkWidget *)NULL;GtkWidget   *Scripts_fs = (GtkWidget *)NULL;GtkWidget   *Preference = (GtkWidget *)NULL;GtkWidget   *Alias = (GtkWidget *)NULL;GtkWidget   *Scripts = (GtkWidget *)NULL;GtkWidget   *GnomeSmssend = (GtkWidget *)NULL;GtkWidget   *Notebook = (GtkWidget *)NULL;GtkWidget   *Appbar = (GtkWidget *)NULL;GtkTooltips *Tooltips = (GtkTooltips *)NULL;/* Local functions */static void scan_dir(gchar *dirname);static void update_clist(gpointer key,                  gpointer value,                  gpointer user_data);GtkWidget *create_about(){    /* The about box */    const gchar *authors[] = {	"Eric Lassauge <lassauge@mail.dotcom.fr>",	NULL    };    GtkWidget *about;    about = gnome_about_new("Gnome SmsSend",                            VERSION,			    _("Copyright 2000-2001"),                             authors,                            _("GNOME interface to SmsSend"), #ifndef DEVEL			    "gsmssend/gsms-about.png"#else			    "../pixmaps/gsms-about.png"#endif			    );    gtk_window_set_modal(GTK_WINDOW(about), TRUE);    return about;}GtkWidget *create_scripts_file_selection(){    GtkWidget *scripts;    /* create a script file selection dialog */    scripts = gtk_file_selection_new(_("Choose script"));    gtk_signal_connect (GTK_OBJECT(scripts), "destroy",		(GtkSignalFunc) gtk_widget_destroy, GTK_OBJECT (scripts));    gtk_signal_connect(GTK_OBJECT (GTK_FILE_SELECTION (scripts)->ok_button),		"clicked", (GtkSignalFunc) on_script_ok_pressed, scripts);    gtk_signal_connect_object(GTK_OBJECT (GTK_FILE_SELECTION		    (scripts)->cancel_button),		"clicked", (GtkSignalFunc) gtk_widget_destroy,		GTK_OBJECT (scripts));    return scripts;}GtkWidget *create_preferences(){    /* create the preference dialog box */    GtkWidget *preferences;    GtkWidget *dialog_vbox;    GtkWidget *main_vbox;    GtkWidget *pref_proxy;    GtkWidget *proxy_label;    GtkWidget *use_proxy;    GtkWidget *proxy_table;    GtkWidget *proxyhost_label;    GtkWidget *proxyport_label;    GtkWidget *proxy_host;    GtkWidget *proxy_port;    GtkWidget *proxyuser_label;    GtkWidget *proxypass_label;    GtkWidget *proxy_user;    GtkWidget *proxy_password;    GtkWidget *config_vbox;    GtkWidget *config_label;    GtkWidget *config_hbox1;    GtkWidget *config_hbox2;    GtkWidget *debug_label;    GtkObject *debug_level_adj;    GtkWidget *debug_level;    GtkWidget *timeout_label;    GtkObject *timeout_level_adj;    GtkWidget *timeout_level;    GtkWidget *auto_check;    GtkWidget *keep_pass;    GtkWidget *header_table;    GtkWidget *header_label;    GtkWidget *fileentry;    GtkWidget *header_file;    GtkWidget *usage_label;    GtkWidget *usage_hbox1;    GtkWidget *delay_send;    GtkWidget *retry_label;    GtkObject *retries_level_adj;    GtkWidget *retries_level;    GtkWidget *dialog_action_area;    GtkWidget *ok_button;    GtkWidget *apply_button;    GtkWidget *cancel_button;    preferences = gnome_dialog_new(_("Preferences"), NULL);    gnome_dialog_set_close(GNOME_DIALOG(preferences), TRUE);    gtk_window_set_policy(GTK_WINDOW(preferences), FALSE, FALSE, FALSE);    gtk_window_set_wmclass(GTK_WINDOW(preferences), PACKAGE, PACKAGE);    dialog_vbox = GNOME_DIALOG(preferences)->vbox;    gtk_widget_show(dialog_vbox);    main_vbox = gtk_vbox_new(FALSE, 0);    gtk_widget_show(main_vbox);    gtk_box_pack_start(GTK_BOX(dialog_vbox), main_vbox, TRUE, TRUE, 0);    proxy_label = gtk_frame_new(_("Proxy configuration"));    gtk_widget_show(proxy_label);    gtk_box_pack_start(GTK_BOX(main_vbox), proxy_label, TRUE, TRUE, 0);    gtk_container_set_border_width(GTK_CONTAINER(proxy_label), 2);    gtk_frame_set_label_align(GTK_FRAME(proxy_label), 0.02,0.5);    pref_proxy = gtk_vbox_new(FALSE, 2);    gtk_widget_set_name(pref_proxy, "pref_proxy");    gtk_object_set_data(GTK_OBJECT(preferences), "pref_proxy", pref_proxy);    gtk_widget_show(pref_proxy);    gtk_container_add(GTK_CONTAINER(proxy_label), pref_proxy);    gtk_container_set_border_width(GTK_CONTAINER(pref_proxy), 2);    use_proxy = gtk_check_button_new_with_label(_("Use proxy"));    gtk_widget_set_name(use_proxy, "use_proxy");    gtk_object_set_data(GTK_OBJECT(preferences), "use_proxy", use_proxy);    gtk_widget_show(use_proxy);    gtk_box_pack_start(GTK_BOX(pref_proxy), use_proxy, FALSE, FALSE, 0);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(use_proxy), UseProxy);    gtk_tooltips_set_tip(Tooltips, use_proxy, _("Check if you need to use a proxy server"), NULL);    proxy_table = gtk_table_new(4, 2, FALSE);    gtk_widget_show(proxy_table);    gtk_box_pack_end(GTK_BOX(pref_proxy), proxy_table, FALSE, FALSE, 0);    gtk_table_set_row_spacings(GTK_TABLE(proxy_table), 1);    gtk_table_set_col_spacings(GTK_TABLE(proxy_table), 2);    proxyhost_label = gtk_label_new(_("Proxy Host"));    gtk_widget_show(proxyhost_label);    gtk_table_attach(GTK_TABLE(proxy_table), proxyhost_label, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0);    gtk_label_set_justify(GTK_LABEL(proxyhost_label), GTK_JUSTIFY_RIGHT);    proxyport_label = gtk_label_new(_("Proxy Port"));    gtk_widget_show(proxyport_label);    gtk_table_attach(GTK_TABLE(proxy_table), proxyport_label, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0);    gtk_label_set_justify(GTK_LABEL(proxyport_label), GTK_JUSTIFY_RIGHT);    proxy_host = gtk_entry_new_with_max_length(P_LENGTH-1);    gtk_widget_set_name(proxy_host, "proxy_host");    gtk_object_set_data(GTK_OBJECT(preferences), "proxy_host", proxy_host);    gtk_widget_show(proxy_host);    gtk_table_attach(GTK_TABLE(proxy_table), proxy_host, 1, 2, 0, 1,		     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);    gtk_tooltips_set_tip(Tooltips, proxy_host, _("Name or IP address of proxy server"), NULL);    if (UseProxy)	gtk_entry_set_text(GTK_ENTRY(proxy_host), ProxyHost);    proxy_port = gtk_entry_new_with_max_length(4);    gtk_widget_set_name(proxy_port, "proxy_port");    gtk_object_set_data(GTK_OBJECT(preferences), "proxy_port", proxy_port);    gtk_widget_show(proxy_port);    gtk_table_attach(GTK_TABLE(proxy_table), proxy_port, 1, 2, 1, 2,		     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);    gtk_tooltips_set_tip(Tooltips, proxy_port, _("Port number for the proxy (usually 80 or 8080)"), NULL);    if (UseProxy)    {	char port[5];	g_snprintf(port, 5, "%d", ProxyPort);	gtk_entry_set_text(GTK_ENTRY(proxy_port), port);    }    proxyuser_label = gtk_label_new(_("Proxy User"));    gtk_widget_show(proxyuser_label);    gtk_table_attach(GTK_TABLE(proxy_table), proxyuser_label, 0, 1, 2, 3, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0);    gtk_label_set_justify(GTK_LABEL(proxyuser_label), GTK_JUSTIFY_RIGHT);    proxypass_label = gtk_label_new(_("Proxy Password"));    gtk_widget_show(proxypass_label);    gtk_table_attach(GTK_TABLE(proxy_table), proxypass_label, 0, 1, 3, 4, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0);    gtk_label_set_justify(GTK_LABEL(proxypass_label), GTK_JUSTIFY_RIGHT);    proxy_user = gtk_entry_new_with_max_length(P_LENGTH-1);    gtk_widget_set_name(proxy_user, "proxy_user");    gtk_object_set_data(GTK_OBJECT(preferences), "proxy_user", proxy_user);    gtk_widget_show(proxy_user);    gtk_table_attach(GTK_TABLE(proxy_table), proxy_user, 1, 2, 2, 3,		     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);    gtk_tooltips_set_tip(Tooltips, proxy_user, _("User name for proxy connection if needed"), NULL);    if (UseProxy)	gtk_entry_set_text(GTK_ENTRY(proxy_user), ProxyUser);    proxy_password = gtk_entry_new_with_max_length(P_LENGTH-1);    gtk_widget_set_name(proxy_password, "proxy_password");    gtk_object_set_data(GTK_OBJECT(preferences), "proxy_password", proxy_password);    gtk_widget_show(proxy_password);    gtk_table_attach(GTK_TABLE(proxy_table), proxy_password, 1, 2, 3, 4,		     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);    gtk_entry_set_visibility(GTK_ENTRY(proxy_password), FALSE);    gtk_tooltips_set_tip(Tooltips, proxy_password, _("Password for proxy connection if needed"), NULL);    if (UseProxy)	gtk_entry_set_text(GTK_ENTRY(proxy_password), ProxyPass);    config_label = gtk_frame_new(_("SmsSend Configuration"));    gtk_widget_show(config_label);    gtk_box_pack_start(GTK_BOX(main_vbox), config_label, TRUE, TRUE, 0);    gtk_container_set_border_width(GTK_CONTAINER(config_label), 2);    gtk_frame_set_label_align(GTK_FRAME(config_label), 0.02,0.5);    config_vbox = gtk_vbox_new(FALSE, 3);    gtk_widget_show(config_vbox);    gtk_container_add(GTK_CONTAINER(config_label), config_vbox);    gtk_container_set_border_width(GTK_CONTAINER(config_vbox), 2);    config_hbox1 = gtk_hbox_new(FALSE, 2);    gtk_widget_show(config_hbox1);    gtk_box_pack_start(GTK_BOX(config_vbox), config_hbox1, TRUE, TRUE, 0);    gtk_container_set_border_width(GTK_CONTAINER(config_hbox1), 2);    debug_label = gtk_label_new(_("Debug Level"));    gtk_widget_show(debug_label);    gtk_box_pack_start(GTK_BOX(config_hbox1), debug_label, FALSE, FALSE, 0);    gtk_label_set_justify(GTK_LABEL(debug_label), GTK_JUSTIFY_RIGHT);    debug_level_adj = gtk_adjustment_new(DebugLevel, 0, 15, 1, 5, 5);    debug_level = gtk_spin_button_new(GTK_ADJUSTMENT(debug_level_adj), 1, 0);    gtk_widget_set_name(debug_level, "debug_level");    gtk_object_set_data(GTK_OBJECT(preferences), "debug_level", debug_level);    gtk_widget_show(debug_level);    gtk_box_pack_start(GTK_BOX(config_hbox1), debug_level, FALSE, FALSE, 0);    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(debug_level), TRUE);    gtk_tooltips_set_tip(Tooltips, debug_level, _("Set debug level of smssend"), NULL);    timeout_label = gtk_label_new(_("Timeout"));    gtk_widget_show(timeout_label);    gtk_box_pack_start(GTK_BOX(config_hbox1), timeout_label, FALSE, FALSE, 0);    gtk_label_set_justify(GTK_LABEL(timeout_label), GTK_JUSTIFY_RIGHT);    timeout_level_adj = gtk_adjustment_new(TimeOut, 0, 1000, 10, 100, 100);    timeout_level = gtk_spin_button_new(GTK_ADJUSTMENT(timeout_level_adj), 1, 0);    gtk_widget_set_name(timeout_level, "timeout");    gtk_object_set_data(GTK_OBJECT(preferences), "timeout", timeout_level);    gtk_widget_show(timeout_level);    gtk_box_pack_start(GTK_BOX(config_hbox1), timeout_level, FALSE, FALSE, 0);    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(timeout_level), TRUE);    gtk_tooltips_set_tip(Tooltips, timeout_level, _("Set timeout value for smssend"), NULL);    config_hbox2 = gtk_hbox_new(FALSE, 2);    gtk_widget_show(config_hbox2);    gtk_box_pack_start(GTK_BOX(config_vbox), config_hbox2, FALSE, FALSE, 0);    gtk_container_set_border_width(GTK_CONTAINER(config_hbox2), 2);    auto_check = gtk_check_button_new_with_label(_("Auto check new version of scripts"));    gtk_widget_set_name(auto_check, "auto_check");    gtk_object_set_data(GTK_OBJECT(preferences), "auto_check", auto_check);    gtk_widget_show(auto_check);    gtk_box_pack_start(GTK_BOX(config_hbox2), auto_check, FALSE, FALSE, 0);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(auto_check), AutoCheck);    keep_pass = gtk_check_button_new_with_label(_("Keep passwords"));    gtk_widget_set_name(keep_pass, "keep_pass");    gtk_object_set_data(GTK_OBJECT(preferences), "keep_pass", keep_pass);    gtk_widget_show(keep_pass);    gtk_box_pack_start(GTK_BOX(config_hbox2), keep_pass, FALSE, FALSE, 0);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keep_pass), KeepPass);    gtk_tooltips_set_tip(Tooltips, keep_pass, _("Check if you want to keep provider's password in the preferences file"), NULL);    header_table = gtk_table_new(1, 2, FALSE);    gtk_widget_show(header_table);    gtk_box_pack_start(GTK_BOX(config_vbox), header_table, FALSE, FALSE, 0);    gtk_table_set_row_spacings(GTK_TABLE(header_table), 1);    gtk_table_set_col_spacings(GTK_TABLE(header_table), 2);    header_label = gtk_label_new(_("Header file: "));    gtk_widget_show(header_label);    gtk_table_attach(GTK_TABLE(header_table), header_label, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0);    fileentry = gnome_file_entry_new (NULL, _("Header file: "));    gtk_widget_show (fileentry);    gtk_container_set_border_width (GTK_CONTAINER (fileentry), 2);    header_file = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (fileentry));    gtk_widget_show (header_file);    gtk_table_attach(GTK_TABLE(header_table), fileentry, 1, 2, 0, 1,		     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);    gtk_object_set_data(GTK_OBJECT(preferences), "header_file", header_file);    gtk_tooltips_set_tip(Tooltips, header_file, _("Header file for smssend"), NULL);    usage_label = gtk_frame_new(_("GNOME SmsSend Configuration"));    gtk_widget_show(usage_label);    gtk_box_pack_start(GTK_BOX(main_vbox), usage_label, TRUE, TRUE, 0);    gtk_container_set_border_width(GTK_CONTAINER(usage_label), 2);    gtk_frame_set_label_align(GTK_FRAME(usage_label), 0.02,0.5);    usage_hbox1 = gtk_hbox_new(FALSE, 0);    gtk_widget_show(usage_hbox1);    gtk_container_add(GTK_CONTAINER(usage_label), usage_hbox1);    gtk_container_set_border_width(GTK_CONTAINER(usage_hbox1), 2);    delay_send = gtk_check_button_new_with_label(_("Delay SmsSend calls"));    gtk_widget_set_name(delay_send, "delay_send");    gtk_object_set_data(GTK_OBJECT(preferences), "delay_send", delay_send);    gtk_widget_show(delay_send);    gtk_box_pack_start(GTK_BOX(usage_hbox1), delay_send, FALSE, FALSE, 0);    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(delay_send), DelaySend);    gtk_tooltips_set_tip(Tooltips, delay_send, _("Check if you want to postpone all SmsSend calls"), NULL);    retry_label = gtk_label_new(_("Retries"));    gtk_widget_show(retry_label);    gtk_box_pack_start(GTK_BOX(usage_hbox1), retry_label, FALSE, FALSE, 0);    gtk_label_set_justify(GTK_LABEL(retry_label), GTK_JUSTIFY_RIGHT);    retries_level_adj = gtk_adjustment_new(Retries, 1, 10, 1, 10, 10);    retries_level = gtk_spin_button_new(GTK_ADJUSTMENT(retries_level_adj), 1, 0);    gtk_widget_set_name(retries_level, "retries");

⌨️ 快捷键说明

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