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

📄 litewindow.cpp

📁 这是一个嵌入式linux系统下的BT下载工具包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*************************************************************************** *   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 + -