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

📄 phonewindow.c

📁 用你的语音Modem实现像电话一样通话的程序
💻 C
字号:
#include "phone.h"#include "phoneprefs.h"#include "phonewindow.h"PhoneWindow::PhoneWindow(Phone *phone) : BC_Window("", MEGREY, "XPhone 2.0", 420, PRESETS * 30 + 50, 420, PRESETS * 30 + 20, 0, 0){ this->phone = phone; }PhoneWindow::~PhoneWindow(){	delete menubar;		for(int i = 0; i < PRESETS; i++) delete preset[i];	for(int i = 0; i < PRESETS; i++) delete preset_dial[i];	for(int i = 0; i < 10; i++) number[i];	delete pnd;	delete star;	for(int i = 0; i < 4; i++) delete volume[i];	delete off;	delete on;	delete flash;}PhoneWindow::create_objects(){	int i, y, x;	char string[256];		add_tool(menubar = new PhoneMenu(phone));	menubar->create_objects();// keypad	for(y = 40, i = 1; i < 10; y += 30)	{		for(x = 15; x < 95; x += 35, i++)		{			sprintf(string, "%d", i);			add_tool(number[i] = new PhoneButton(phone, x, y, string));		}	}		add_tool(pnd = new PhoneButton(phone, 15, y, "#"));	add_tool(number[0] = new PhoneButton(phone, 50, y, "0"));	add_tool(star = new PhoneButton(phone, 85, y, "*"));		y += 60;	add_tool(on = new PhoneOnButton(phone, 15, y));	add_tool(off = new PhoneOffButton(phone, 70, y));	add_tool(flash = new PhoneFlashButton(phone, 125, y));// volume	add_tool(new BC_Title(130, 40, "Volume"));	for(i = 0, y = 70; i < 4; i++, y += 25)	{		sprintf(string, "%d", i + 1);		add_tool(volume[i] = new PhoneVolumeButton(phone, y, i, string));	}// presets	for(i = 0, y = 40; i < PRESETS; i++, y += 30)	{		add_tool(preset[i] = new PhonePreset(phone, i, y));		add_tool(preset_dial[i] = new PhonePresetDial(phone, i, y));	}}PhoneWindow::close_event(){	set_done(0);}PhoneWindow::keypress_event(){	char key_pressed[5];     // argument for dial	int key = get_keypress();	sprintf(key_pressed, "%c", key);			switch(key)	{		case 0:			break;		case ESC:			set_done(0);				break;		default:			if(!phone->test_character(key))			{				phone->dial(key_pressed);			}			break;	}}PhoneMenu::PhoneMenu(Phone *phone) : BC_MenuBar(0, 0, phone->gui->w){ this->phone = phone; }PhoneMenu::~PhoneMenu(){	delete file;}PhoneMenu::create_objects(){	add_menu(file = new PhoneFileMenu(phone));	file->create_objects();}PhoneFileMenu::PhoneFileMenu(Phone *phone) : BC_Menu("XPhone"){ this->phone = phone; }PhoneFileMenu::~PhoneFileMenu(){	delete quit;}PhoneFileMenu::create_objects(){	add_menuitem(new PhonePreferences(phone));	add_menuitem(quit = new PhoneQuit(phone));}PhoneQuit::PhoneQuit(Phone *phone) : BC_MenuItem("Quit", "Ctrl-q", 17){ this->phone = phone; }PhoneQuit::~PhoneQuit(){}PhoneQuit::handle_event(){	set_done(0);}PhonePreferences::PhonePreferences(Phone *phone) : BC_MenuItem("Preferences..."){	this->phone = phone;	thread = new PhonePrefsThread(phone);}PhonePreferences::~PhonePreferences(){	delete thread;}PhonePreferences::handle_event(){	thread->start();}PhonePreset::PhonePreset(Phone *phone, int number, int y) : BC_TextBox(200, y, 150, phone->preset[number]){ this->phone = phone; this->number = number; }PhonePreset::~PhonePreset(){}PhonePreset::handle_event(){	strcpy(phone->preset[number], get_text());}PhonePresetDial::PhonePresetDial(Phone *phone, int number, int y) : BC_BigButton(360, y, "Dial"){ this->phone = phone; this->number = number; }PhonePresetDial::~PhonePresetDial(){}PhonePresetDial::handle_event(){	char string[1024];	if(!phone->fix_preset(phone->preset[number], string))	{		phone->dial(string);	}}PhoneButton::PhoneButton(Phone *phone, int x, int y, char *string) : BC_SmallButton(x, y, string){ this->phone = phone; strcpy(this->string, string); }PhoneButton::~PhoneButton(){}PhoneButton::handle_event(){	phone->dial(string);}PhoneVolumeButton::PhoneVolumeButton(Phone *phone, int y, int number, char *string) : BC_BigButton(140, y, string){ this->phone = phone; this->number = number; }PhoneVolumeButton::~PhoneVolumeButton(){}PhoneVolumeButton::handle_event(){	phone->set_volume(number);}PhoneOffButton::PhoneOffButton(Phone *phone, int x, int y) : BC_BigButton(x, y, "Off"){ this->phone = phone; }PhoneOffButton::~PhoneOffButton(){}PhoneOffButton::handle_event(){	phone->go_off();}PhoneOnButton::PhoneOnButton(Phone *phone, int x, int y) : BC_BigButton(x, y, "On"){ this->phone = phone; }PhoneOnButton::~PhoneOnButton(){}PhoneOnButton::handle_event(){	phone->go_on();}PhoneFlashButton::PhoneFlashButton(Phone *phone, int x, int y) : BC_BigButton(x, y, "Flash"){ this->phone = phone; }PhoneFlashButton::~PhoneFlashButton(){}PhoneFlashButton::handle_event(){	phone->flash_it();}

⌨️ 快捷键说明

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