📄 litewindow.cpp
字号:
/*************************************************************************** * Copyright (C) 2005-2006 Gao Xianchao * * 2007 Gao Xianchao gnap_an linux_lyb ahlongxp * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************//* * Author: gxc * Create data: 2005-10-22 20:09 */ #include <string>#include <stdio.h>#include "LiteWindow.h"#include "log.h"#include "utils.h"CLiteWindow::CLiteWindow(){}CLiteWindow::~CLiteWindow(){}gboolean CLiteWindow::delete_event(GtkWidget* widget, GdkEvent* event, gpointer data){ gboolean result = TRUE; GtkWidget* dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure to Exit?")); if(GTK_RESPONSE_YES == gtk_dialog_run(GTK_DIALOG(dialog))) { result = FALSE; } gtk_widget_destroy(dialog); return result;}void CLiteWindow::destroy(GtkWidget* widget, gpointer data){ gtk_main_quit();}void CLiteWindow::exit_button_clicked_event(GtkWidget* widget, gpointer data){ CLiteWindow* window = (CLiteWindow*)data; GtkWidget* dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure to Exit?")); if(GTK_RESPONSE_YES == gtk_dialog_run(GTK_DIALOG(dialog))) { gtk_widget_hide(GTK_WIDGET(window->_window)); gtk_main_quit(); } gtk_widget_destroy(dialog); }void CLiteWindow::about_button_clicked_event(GtkWidget* widget, gpointer data){ static const gchar *authors[] = { "Gao Xiancho <gxcoo@hotmail.com>", NULL }; const gchar *documenters[] = { "BitStorm Documentation Team", NULL }; gtk_show_about_dialog(NULL, "name", "BitStorm Lite", "version", "0.2p", "copyright", "\xC2\xA9 2005-2006 Gao Xianchao <gxcoo@hotmail.com>\n" "\xC2\xA9 2007 Gao Xianchao gnap_an linux_lyb ahlongxp\n" "Special thanks to Gentoofans <gentoofans@hotmail.com>", "comments", _("http://sourceforge.net/projects/bbom/\n\n" "BitStorm is a p2p file-sharing freeware fully compatible with Bittorrent," "which is one of the most popular p2p protocol designed for high-speed " "distribution of 100MB or GB sized files"), "authors", authors, "documenters", documenters, "translator-credits", "translator-credits", "logo_icon_name", "gnome-money", NULL);}void CLiteWindow::createWindow(){ //MainWindow _window = gtk_window_new(GTK_WINDOW_TOPLEVEL); std::string title; if(_task->getTorrentFile()->IsUTF8Valid()) { title = _task->getTorrentFile()->getNameUTF8() + " - BitStorm Lite"; } else { title = _task->getTorrentFile()->getName() + " - BitStorm Lite"; } gtk_window_set_title(GTK_WINDOW(_window), title.c_str()); g_signal_connect(G_OBJECT(_window), "delete_event", G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(_window), "destroy", G_CALLBACK(destroy), NULL); gtk_container_set_border_width(GTK_CONTAINER(_window), 10); GtkWidget* vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(_window), vbox); //TaskNameLabel GtkWidget* hbox = gtk_hbox_new(FALSE, 0); if(_task->getTorrentFile()->IsUTF8Valid()) { _taskNameLabel = gtk_label_new(_task->getTorrentFile()->getNameUTF8().c_str()); } else { _taskNameLabel = gtk_label_new(_task->getTorrentFile()->getName().c_str()); } gtk_label_set_justify(GTK_LABEL(_taskNameLabel), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(hbox), _taskNameLabel, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 3); //TotalSize hbox = gtk_hbox_new(FALSE, 0); std::string totalSize = byteCount2Str(_task->getStorage()->getSelectedCount()); _totalSizeLabel = gtk_label_new(totalSize.c_str()); gtk_label_set_justify(GTK_LABEL(_totalSizeLabel), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(hbox), _totalSizeLabel, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 3); //ProgressBar _progressBar = gtk_progress_bar_new(); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(_progressBar), gdouble(0)); gtk_box_pack_start(GTK_BOX(vbox), _progressBar, FALSE, TRUE, 3); //Time hbox = gtk_hbox_new(FALSE, 0); _timeLabel = gtk_label_new(_("time elapsed / estimated : ")); gtk_label_set_justify(GTK_LABEL(_timeLabel), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(hbox), _timeLabel, FALSE, TRUE, 0); _timeLabel = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox), _timeLabel, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 3); //DownloadTo hbox = gtk_hbox_new(FALSE, 0); std::string dest = _("downlaod to : "); if(_task->getTorrentFile()->IsUTF8Valid()) { dest += _task->getDestPath() + _task->getTorrentFile()->getNameUTF8(); } else { dest += _task->getDestPath() + _task->getTorrentFile()->getName(); } _downloadToLabel = gtk_label_new(dest.c_str()); gtk_label_set_justify(GTK_LABEL(_downloadToLabel), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(hbox), _downloadToLabel, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 3); //State GtkWidget* stateHbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), stateHbox, FALSE, TRUE, 5); GtkWidget* table = gtk_table_new(2, 2, FALSE); gtk_box_pack_start(GTK_BOX(stateHbox), table, TRUE, TRUE, 0); //DownloadRate _downloadRateLabel = gtk_label_new("download rate : "); gtk_label_set_markup(GTK_LABEL(_downloadRateLabel), _("<span><b>download rate : </b></span>")); gtk_label_set_justify(GTK_LABEL(_downloadRateLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _downloadRateLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 1, 0, 1); _downloadRateLabel = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(_downloadRateLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _downloadRateLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 0, 1); //UploadRate _uploadRateLabel = gtk_label_new("upload rate : "); gtk_label_set_markup(GTK_LABEL(_uploadRateLabel), _("<span><b>upload rate : </b></span>")); gtk_label_set_justify(GTK_LABEL(_uploadRateLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _uploadRateLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 1, 1, 2); _uploadRateLabel = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(_uploadRateLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _uploadRateLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 1, 2); table = gtk_table_new(2, 2, FALSE); gtk_box_pack_start(GTK_BOX(stateHbox), table, TRUE, TRUE, 5); //Downloaded _downloadedLabel = gtk_label_new("downloaded : "); gtk_label_set_markup(GTK_LABEL(_downloadedLabel), _("<span><b>downloaded : </b></span>")); gtk_label_set_justify(GTK_LABEL(_downloadedLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _downloadedLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 1, 0, 1); _downloadedLabel = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(_downloadedLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _downloadedLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 0, 1); //uploaded _uploadedLabel = gtk_label_new("uploaded : "); gtk_label_set_markup(GTK_LABEL(_uploadedLabel), _("<span><b>uploaded : </b></span>")); gtk_label_set_justify(GTK_LABEL(_uploadedLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _uploadedLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 1, 1, 2); _uploadedLabel = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(_uploadedLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _uploadedLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 1, 2); table = gtk_table_new(2, 2, FALSE); gtk_box_pack_start(GTK_BOX(stateHbox), table, TRUE, TRUE, 5); //Peers _peersLabel = gtk_label_new("peers : "); gtk_label_set_markup(GTK_LABEL(_peersLabel), _("<span><b>peers : </b></span>")); gtk_label_set_justify(GTK_LABEL(_peersLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _peersLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 0, 1, 0, 1); _peersLabel = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(_peersLabel), GTK_JUSTIFY_LEFT); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), _peersLabel, FALSE, TRUE, 0); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 2, 0, 1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -