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

📄 revisepal.cpp

📁 iptux是linux下面能实现类似windows里面飞鸽传书的功能
💻 CPP
字号:
//// C++ Implementation: RevisePal//// Description:////// Author: Jally <jallyx@163.com>, (C) 2008//// Copyright: See COPYING file that comes with this distribution////#include "RevisePal.h"#include "IptuxSetup.h"#include "UdpData.h"#include "my_entry.h"#include "baling.h"#include "utils.h" RevisePal::RevisePal(gpointer data):pal((Pal *) data),revise(NULL), icon_model(NULL), name(NULL),encode(NULL), icon(NULL), compatible(NULL){}RevisePal::~RevisePal(){	g_object_unref(icon_model);}void RevisePal::ReviseEntry(gpointer data){	RevisePal rp(data);	rp.InitRevise();	rp.CreateRevise();	rp.RunRevise();}void RevisePal::InitRevise(){	icon_model = IptuxSetup::CreateIconModel();}void RevisePal::CreateRevise(){	extern struct interactive inter;	GtkWidget *box, *button;	revise = gtk_dialog_new_with_buttons(_("Change pal's information"),					     GTK_WINDOW(inter.window),					     GTK_DIALOG_MODAL,					     _("OK"), GTK_RESPONSE_OK,					     _("Cancel"), GTK_RESPONSE_CANCEL,					     NULL);	gtk_dialog_set_default_response(GTK_DIALOG(revise), GTK_RESPONSE_OK);	box = create_box(FALSE);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(revise)->vbox),			   box, FALSE, FALSE, 1);	name = create_label(_("Pal's nickname:"));	gtk_box_pack_start(GTK_BOX(box), name, FALSE, FALSE, 0);	name = my_entry::create_entry(pal->name,				      _("Please input pal's new nickname!"),				      FALSE);	gtk_box_pack_start(GTK_BOX(box), name, TRUE, TRUE, 0);	box = create_box(FALSE);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(revise)->vbox),			   box, FALSE, FALSE, 1);	encode = create_label(_("System encode:"));	gtk_box_pack_start(GTK_BOX(box), encode, FALSE, FALSE, 0);	encode = my_entry::create_entry(pal->encode,					_					("you must understand what you are doing!"),					FALSE);	gtk_box_pack_start(GTK_BOX(box), encode, TRUE, TRUE, 0);	box = create_box(FALSE);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(revise)->vbox),			   box, FALSE, FALSE, 1);	icon = create_label(_("Head portrait:"));	gtk_box_pack_start(GTK_BOX(box), icon, FALSE, FALSE, 0);	icon = IptuxSetup::CreateComboBoxWithModel(icon_model, pal->iconfile);	gtk_box_pack_start(GTK_BOX(box), icon, TRUE, TRUE, 0);	button = create_button("...");	g_signal_connect_swapped(button, "clicked",				 G_CALLBACK(IptuxSetup::AddPalIcon), icon);	gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);	box = create_box(FALSE);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(revise)->vbox),			   box, FALSE, FALSE, 10);	compatible =	    gtk_check_button_new_with_label(_					    ("Be compatible with iptux protocol"));	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compatible),				     FLAG_ISSET(pal->flags, 0));	gtk_widget_show(compatible);	gtk_box_pack_start(GTK_BOX(box), compatible, FALSE, FALSE, 0);}void RevisePal::RunRevise(){	int result;	result = gtk_dialog_run(GTK_DIALOG(revise));	if (result == GTK_RESPONSE_OK)		ApplyRevise();	gtk_widget_destroy(revise);}void RevisePal::ApplyRevise(){	extern UdpData udt;	char buf[MAX_BUF];	GtkTreeIter iter, parent;	gint active;	free(pal->name), free(pal->encode);	pal->name = gtk_editable_get_chars(GTK_EDITABLE(name), 0, -1);	pal->encode = gtk_editable_get_chars(GTK_EDITABLE(encode), 0, -1);	active = gtk_combo_box_get_active(GTK_COMBO_BOX(icon));	snprintf(buf, MAX_BUF, "%d", active);	gtk_tree_model_get_iter_from_string(icon_model, &iter, buf);	free(pal->iconfile);	gtk_tree_model_get(icon_model, &iter, 1, &pal->iconfile, -1);	udt.Ipv4GetParent(pal->ipv4, &parent);	if (udt.PalGetModelIter(pal, &parent, &iter))		pal->SetPalmodelValue(udt.pal_model, &iter);	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(compatible)))		FLAG_SET(pal->flags, 0);	else		FLAG_CLR(pal->flags, 0);	FLAG_SET(pal->flags, 2);}

⌨️ 快捷键说明

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