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

📄 gtkview.c

📁 语音Email/语音Modem程序包
💻 C
📖 第 1 页 / 共 2 页
字号:
	model->speakerphoneCallNumber(callNmbr);    }    else if(item == "Hangup Call") {	model->hangUp();    }    else if(item == "Test Answer") {	model->answerCall();    }}#endif#ifdef VOICE/*  void GtkView::voicePlayCallback()*/void GtkView::voicePlayCallback(String where){    if(where == "Modem") {	model->playGreeting();    }    else if(where == "Soundcard") {	String greetWav = String(getenv("HOME")) + "/.messages/greeting.wav";	speaker->playWav(greetWav);    }}#endif#ifdef VOICE/*  void GtkView::voiceRecordCallback()*/void GtkView::voiceRecordCallback(){    model->recordGreeting();}#endif#ifdef VOICE/*  void GtkView::voiceMessageCallback()*/void GtkView::voiceMessageCallback(String where){    if(rowSelect == -1)	return;        //char* num;    _gtk_string haveMessage;      callList->get_text(rowSelect,5,&haveMessage);        if(haveMessage == "No") {	return;    }        _gtk_string gtkCallID;      callList->get_text(rowSelect,0,&gtkCallID);    String callID(gtkCallID);        Call call(model->getDbase(), callID);    Message message(model->getDbase(), call.get("MessageID"));    String messageFile(message.get("MessageFile"));    if(where == "Modem") {	model->playMessage(messageFile);    }    else if(where == "Soundcard") {	speaker->playWav(messageFile+".wav");    }    }#endif#ifdef VOICE/*  void GtkView::voiceMessageDeleteCallback()*/void GtkView::voiceMessageDeleteCallback(){    if(rowSelect == -1)	return;        //char* num;    _gtk_string haveMessage;      callList->get_text(rowSelect,5,&haveMessage);        if(haveMessage == "No") {	return;    }        _gtk_string gtkCallID;      callList->get_text(rowSelect,0,&gtkCallID);    String callID(gtkCallID);        Call call(model->getDbase(), callID);    Message message(model->getDbase(), call.get("MessageID"));    String messageFile(message.get("MessageFile"));    call.set("MessageID", "0");    call.update();    message.remove();    unlink(messageFile.cstr());    resetList();}#endif/*  void GtkView::editCallback(string item)*/void GtkView::editCallback(string item){    if(item == "Edit Name") {	editNameCallback();    }    else if(item == "Edit Tag") {	editTagCallback();    }    else if(item == "Play Tag") {	editPlayCallback();    }    else if(item == "Record Tag") {	editRecordCallback();    }}/*  void GtkView::searchCallback(string item)*/void GtkView::searchCallback(string item){    Gtk_Dialog* aboutd;    Gtk_Button* okbutton;    Gtk_Button* cabutton;    Gtk_Entry* name_entry;    Gtk_HBox* hbox;        hbox = new Gtk_HBox(TRUE,0);    okbutton = new Gtk_Button("Ok");    cabutton = new Gtk_Button("Cancel");    aboutd = new Gtk_Dialog();    aboutd->set_title(item.c_str());    aboutd->set_position(GTK_WIN_POS_CENTER);        name_entry = new Gtk_Entry();        hbox->pack_start(*name_entry, FALSE, TRUE, 20);            aboutd->get_vbox()->pack_start(*hbox, TRUE, TRUE, 10);    aboutd->get_action_area()->pack_start(*okbutton, TRUE, TRUE, 25);    aboutd->get_action_area()->pack_start(*cabutton, TRUE, TRUE, 25);        if(item == "Search by Date") {	time_t now=time(NULL);	String temp = model->getDate(now);	name_entry->set_text(temp.cstr());		connect_to_method(okbutton->clicked, this, &searchDateUpdate, (Gtk_Entry*)name_entry);	connect_to_method(name_entry->activate, this, &searchDateUpdate, (Gtk_Entry*)name_entry);    }    else if(item == "Search by Name") {	connect_to_method(okbutton->clicked, this, &searchNameUpdate, (Gtk_Entry*)name_entry);	connect_to_method(name_entry->activate, this, &searchNameUpdate, (Gtk_Entry*)name_entry);    }    else if(item == "Search by Number") {	connect_to_method(okbutton->clicked, this, &searchNumbUpdate, (Gtk_Entry*)name_entry);	connect_to_method(name_entry->activate, this, &searchNumbUpdate, (Gtk_Entry*)name_entry);    }        connect_to_method(okbutton->clicked, this, &killWidget, (Gtk_Widget*)aboutd);    connect_to_method(name_entry->activate, this, &killWidget, (Gtk_Widget*)aboutd);    connect_to_method(cabutton->clicked, this, &killWidget, (Gtk_Widget*)aboutd);        aboutd->show_all();    }/*  void GtkView::daemonCallback(string item)*/void GtkView::daemonCallback(string item){    if(item == "Start Daemon") {	model->startModel();	updateModemStatus();	handleEvents();    }    else if(item == "Stop Daemon") {	model->stopModel();		updateModemStatus();	handleEvents();    }}void GtkView::updateModemStatus(){    char statusText[255];    strcpy(statusText, " Modem status: ");    if(model->modemOpen()) {	strcat(statusText,"open, ");    }    else {	strcat(statusText,"NOT open, " );    }    if(model->modemLock()) {	strcat(statusText,"locked ");    }    else {	strcat(statusText,"NOT locked ");    }    statusBar->set_text(statusText);}/*  void GtkView::helpCallback(string item)*/void GtkView::helpCallback(string item){    if(item == "About") {	displayAbout();    }}void GtkView::searchDateUpdate(Gtk_Entry* data){    oldField = "CallDate";    oldValue = String(data->get_text());    resetList();}/*  searchNameUpdate() */void GtkView::searchNameUpdate(Gtk_Entry* data){    oldField = "CallerName";    oldValue = String(data->get_text());    resetList();}/*  searchNumbUpdate() */void GtkView::searchNumbUpdate(Gtk_Entry* data){    oldField = "CallerNumber";    oldValue = String(data->get_text());    resetList();}void GtkView::updateView(){    String today;    time_t now = time(NULL);    today = model->getDate(now);    Call call(model->getDbase());    call.set("CallDate", today);    ResultSet* res = call.select();        callList->freeze();    while(numRows>0) {	callList->remove_row(0);	numRows--;    }        int n=0;    while(res->next()) {	Caller caller(model->getDbase(), res->getString("CallerID"));	String callerNumber = caller.get("CallerNumber"),	       callerName = caller.get("CallerName"),	       callDate = res->getString("CallDate"),	       callTime = res->getString("CallTime"),	       callID = res->getString("CallID");		String messageID;	if(res->getString("MessageID") == "0") {	    messageID = "No";	}	else {	    messageID = "Yes";	}	gchar* cdata[] = { callID.cstr(), callerNumber.cstr(), callerName.cstr(), 			   callDate.cstr(), callTime.cstr(), messageID.cstr() };	callList->append((const gchar**)cdata);	//delete [] cdata;	n++;    }    numRows=n;    rowSelect = -1;        callList->thaw();    oldField = "CallDate";    oldValue = today;    delete res;}void GtkView::resetList(){    ResultSet* res;    Call call(model->getDbase());    if(oldField == "CallDate") {	call.set("CallDate", oldValue);    }    else if(oldField == "CallerName" || oldField == "CallerNumber") {	Caller caller(model->getDbase());	caller.set(oldField, oldValue);	caller.fill();	call.set("CallerID", caller.get("CallerID"));    }    res = call.select();    callList->freeze();    while(numRows>0) {	callList->remove_row(0);	numRows--;    }        int n=0;    while(res->next()) {	Caller caller(model->getDbase(), res->getString("CallerID"));	String callerNumber = caller.get("CallerNumber"),	       callerName = caller.get("CallerName"),	       callDate = res->getString("CallDate"),	       callTime = res->getString("CallTime"),	       callID = res->getString("CallID");	String messageID;	if(res->getString("MessageID") == "0") {	    messageID = "No";	}	else {	    messageID = "Yes";	}	gchar* cdata[] = { callID.cstr(), callerNumber.cstr(), callerName.cstr(), 			   callDate.cstr(), callTime.cstr(), messageID.cstr() };	callList->append((const gchar**)cdata);	//delete [] cdata;	n++;    }    numRows=n;    rowSelect = -1;        callList->thaw();    delete res;}void GtkView::selectionMade(gint row, gint column, GdkEvent* button){    rowSelect = row;}void GtkView::selectionLost(gint row, gint column, GdkEvent* button){    rowSelect = -1;}void GtkView::handleEvents(){    while (gtk_events_pending())	gtk_main_iteration();}void GtkView::display(String msg1, String msg2, bool isMsg, double pause){    GtkMessageWin* m;    StringVector s;    s.push_back(msg1);    s.push_back(msg2);    if(pause > 0) {	m = new GtkMessageWin(s,(int)pause);    }    else {	m = new GtkMessageWin(s);    }}void GtkView::killWidget(Gtk_Widget* data){    data->delete_self();}int GtkView::killWidgetCallback(Gtk_Widget* data){    killWidget(data);    return 0;}bool GtkView::getRecOn(){    return recOn;}void GtkView::setRecOn(bool on){    recOn = on;}void GtkView::setModel(GtkModel* m){    model = m;}gint GtkView::delete_event_impl(GdkEventAny *){    model->quitModel();    return 0;}void GtkView::speakWav(String wav){    speaker->playWav(wav);}void GtkView::killString(String* ptr){    delete ptr;}

⌨️ 快捷键说明

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