亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? settingssub.cxx

?? 使用VOIP技術.能夠無連接接通遠程用戶
?? CXX
?? 第 1 頁 / 共 2 頁
字號:
////  The contents of this file are subject to the Mozilla Public License//  Version 1.0 (the "License"); you may not use this file except in//  compliance with the License. You may obtain a copy of the License at//  http://www.mozilla.org/MPL/// //  Software distributed under the License is distributed on an "AS IS"//  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See//  the License for the specific language governing rights and limitations//  under the License.// //  The Original Code is CPhone, a cross platform voip gui.////  The Initial Developer of the Original Code is Derek Smithies.////  Copyright (C) 2002 Indranet Technologies Ltd, //                                  http://www.indranet-technologies.com//  All Rights Reserved.////  Contributor(s): _______________/* * *  $Log: settingsSub.cxx,v $ *  Revision 1.5  2003/05/09 04:34:46  dereksmithies *  Tidy up gatekeeper finding. Works reliably. * *  Revision 1.4  2003/05/09 03:08:24  dereksmithies *  Fix Microtelco handling, and message display * *  Revision 1.3  2003/05/06 22:40:36  dereksmithies *  Fixes to get it working correctly on microtelco. * *  Revision 1.2  2003/04/04 04:37:49  dereksmithies *  Major upgrade. *  Ixj & microtelco support added. Fix threading issues. * *  Revision 1.1.1.1  2002/05/12 22:55:05  dereksmithies *  Initial release. * * * * */#include <ptlib.h>#include <qapplication.h>#include <qcheckbox.h>#include <qlineedit.h>#include <qlistview.h>#include <qobjcoll.h>#include <qpushbutton.h>#include <qradiobutton.h>#include <qslider.h>#include <qspinbox.h>#include "settingsSub.h"#include "cpendpoint.h"#include "message.h"#include "vdisplay.h"#define CUSTOM_EVENT_SETUP      (QEvent::User + 1)#define CUSTOM_EVENT_FAIL_MT    (QEvent::User + 2)/*  *  Constructs a Settings which is a child of 'parent', with the  *  name 'name' and widget flags set to 'f'  * *  The dialog will by default be modeless, unless you set 'modal' to *  TRUE to construct a modal dialog. */Settings::Settings(ConnectOptions & co)  : FormConnectionSettings( 0, "Settings", FALSE, WDestructiveClose),    connectOpts(co){  move(300, 300);  controlsSet = FALSE;  CPhone::Current().SetWindowId(eSettings, winId());  QApplication::postEvent(this, new QCustomEvent(CUSTOM_EVENT_SETUP));}/*   *  Destroys the object and frees any allocated resources */Settings::~Settings(){}void Settings::Setup(){  InitialiseCodecSettings();    CheckBoxAutoAnswer->setChecked(connectOpts.autoAnswer);  CheckBoxDisableFastStart->setChecked(connectOpts.noFastStart);  CheckBoxDisableH245Tunnel->setChecked(connectOpts.noH245Tunnelling);    CheckBoxDefaultAudio->setChecked(connectOpts.useDefaultAudioBandwidth);  CheckBoxDefaultVideo->setChecked(connectOpts.useDefaultVideoBandwidth);  SpinBoxFramesEthernetPacket->setValue(connectOpts.packetUtilization);    SpinBoxBandwidthAudio->setValue(connectOpts.audioBandwidth);  SpinBoxBandwidthVideo->setValue(connectOpts.videoBandwidth);  LineEditGatekeeper->setText((const char *)connectOpts.gatekeeperName.GetPointer());  LineEditGatekeeper->setEnabled(!connectOpts.searchForGatekeeper);  LineEditUserName->setText((const char *)connectOpts.userName.GetPointer());  PushButtonNatTraversal->setDown(connectOpts.doNatTraversal);  LineEditNatTraversal->setText((const char *)connectOpts.externalNatAddress.GetPointer());  PushButtonEnableMicroTelco->setDown(connectOpts.doMicroTelco);  LineEditMicroTelcoAccount->setText((const char *)connectOpts.microTelcoAccount.GetPointer());  LineEditMicroTelcoPassword->setText((const char *)connectOpts.microTelcoPassword.GetPointer());  SpinBoxLowUdp->setValue(connectOpts.lowUdpPort);  SpinBoxHighUdp->setValue(connectOpts.highUdpPort);  CheckBoxSearchForAGatekeeper->setChecked(connectOpts.searchForGatekeeper);  /////  controlsSet = TRUE;  UpdateCurrentGatekeeperText();  UpdateMicroTelcoText();  CheckBoxDefaultVideoBandwidth_slot(); //Update spinboxes to reflect  CheckBoxDefaultAudioBandwidth_slot(); //status of them being enabled.  BOOL inACall = !CPhone::GetUi().WaitingForACall();    OnConnectionEstablished(inACall);  PushButtonNatTraversal_Slot();     //Update text on toggle button.}void Settings::closeEvent(QCloseEvent *e){  CPhone::Current().ForgetExists(eSettings, winId());  e->accept();}void Settings::InitialiseCodecSettings(){  ListViewActiveCodecs->setSorting(-1);  ListViewActiveCodecs->setColumnWidthMode(0, QListView::Maximum);  ListViewDormantCodecs->setSorting(-1);  ListViewDormantCodecs->setColumnWidthMode(0, QListView::Maximum);         PStringList activeCodecs  = connectOpts.GetEnabledCapabilities();  PStringList dormantCodecs = connectOpts.GetDisabledCapabilities();    PINDEX i;  for(i=0; i < activeCodecs.GetSize(); i++)       AddItemToList(ListViewActiveCodecs, activeCodecs[i]);  for(i=0; i < dormantCodecs.GetSize(); i++)       AddItemToList(ListViewDormantCodecs, dormantCodecs[i]);}void Settings::AddItemToList(QListView *srcList, PString label){  QListViewItem *lastItem = srcList->firstChild();  if (lastItem != NULL) {    QListViewItem *lead = lastItem->nextSibling();    while (lead != NULL) {      lastItem = lead;      lead     = lead->nextSibling();    }  }  QListViewItem *item;  if(lastItem == NULL)    item = new QListViewItem(srcList);  else    item = new QListViewItem(srcList, lastItem);  item->setText( 0, label.GetPointer() );}  BOOL Settings::isNameInCodecList(PString name, QListView *srcList){  QListViewItem *item = srcList->firstChild();  while (item != NULL) {    if (item->text(0).compare(name.GetPointer()) == 0)      return TRUE;    item = item->nextSibling();  }  return FALSE;}//Remove all the old codec kesy in the PConfig structure. Put new ones //in. The order of insertion is important, as it determines the //priority ranking of the codec.void Settings::SaveCodecSettings(){  PStringList dormantCodecs;  PStringList activeCodecs;  QListViewItem *item = ListViewActiveCodecs->firstChild();  while (item != NULL) {    activeCodecs.AppendString((const char *)item->text(0));    item = item->nextSibling();  }  connectOpts.SetEnabledCapabilities(activeCodecs);  CPhone::GetUi().RebuildCapabilityTable();}void Settings::MakeCodecActive_slot(){  QListViewItem *next;  QListViewItem *item = ListViewDormantCodecs->firstChild();  while (item != NULL) {    next = item->nextSibling();    if(item->isSelected()) {      QString codecName = item->text(0);      delete item;      AddItemToList(ListViewActiveCodecs, PString((const char *)codecName));    }     item = next;  }  SaveCodecSettings();}void Settings::MakeCodecDormant_slot(){  QListViewItem *next;  QListViewItem *item = ListViewActiveCodecs->firstChild();  while (item != NULL) {    next = item->nextSibling();    if(item->isSelected()) {      QString codecName = item->text(0);      delete item;      AddItemToList(ListViewDormantCodecs, PString((const char *)codecName));    }     item = next;  }  SaveCodecSettings();}void Settings::MoveCodecUp_slot(){  PStringList list = GetSelectedCapabilities();  if (list.GetSize() == 0)    return;    //First check that we can move everything down;  QListViewItem *thisCodec,*parentCodec,*grandParentCodec;  thisCodec = FindThisCodec(QString((const char *)list[0]));  if(thisCodec->itemAbove() == NULL) {    return;  }  //We can move all items up.    for(PINDEX i= 0; i < list.GetSize();  i++) {    thisCodec = FindThisCodec(QString((const char *)list[i]));    if(thisCodec == NULL)      return;    parentCodec = thisCodec->itemAbove();    if(parentCodec == NULL)       return;    grandParentCodec = parentCodec->itemAbove();    if(grandParentCodec == NULL) {      thisCodec->moveItem(ListViewActiveCodecs->firstChild());      ListViewActiveCodecs->firstChild()->moveItem(thisCodec);    } else      thisCodec->moveItem(grandParentCodec);  }  SaveCodecSettings();}void Settings::MoveCodecDown_slot(){  PStringList list = GetSelectedCapabilities();  if (list.GetSize() == 0)    return;  //First check that we can move everything down;  QListViewItem *thisCodec;  thisCodec = FindThisCodec(QString((const char *)list[list.GetSize()-1]));  if(thisCodec == NULL)    return;  if(thisCodec->nextSibling() == NULL)    return;  //We can move all items down.    for(unsigned int i= list.GetSize(); i>0; i--) {    thisCodec = FindThisCodec(QString((const char *)list[i-1]));    if(thisCodec == NULL)      return;    thisCodec->moveItem(thisCodec->nextSibling());  }  SaveCodecSettings();}PStringList Settings::GetSelectedCapabilities(){  PStringList list;  QListViewItem *item = ListViewActiveCodecs->firstChild();    while (item != NULL) {    if(item->isSelected())       list.AppendString(PString((const char *)item->text(0)));    item = item->nextSibling();  }  return list;}QListViewItem * Settings::FindThisCodec(QString sourceCodec) {  QListViewItem  *thisCodec  = ListViewActiveCodecs->firstChild();  while (thisCodec != NULL) {    if (thisCodec->text(0) == sourceCodec) {      return thisCodec;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品在线观看视频| 日韩成人精品在线观看| 99免费精品在线观看| 久久久久久免费| 成人在线视频一区二区| 久久久高清一区二区三区| 国产东北露脸精品视频| 欧美高清在线精品一区| 99在线精品观看| 亚洲午夜影视影院在线观看| 欧美精品123区| 精品一区二区免费| 一区二区三区电影在线播| 色天天综合久久久久综合片| 亚洲狠狠爱一区二区三区| 在线成人小视频| 国内久久精品视频| 亚洲欧美在线观看| 欧美日韩国产美女| 国产精品一级在线| 亚洲精品成人悠悠色影视| 欧美美女视频在线观看| 国产精品综合视频| 亚洲精品成人天堂一二三| 欧美一级在线观看| 91亚洲国产成人精品一区二三 | 亚洲欧美乱综合| 欧美男男青年gay1069videost| 美女免费视频一区二区| 国产日韩欧美精品综合| 欧美性一二三区| 国产乱码精品一区二区三| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品综合久久久久久8888| 欧美国产欧美综合| 欧美一区二区三区的| 国产精选一区二区三区| 亚洲一区二区三区四区的| 欧美精品一区二区三区四区 | 国产精品一区二区久久精品爱涩| 亚洲人吸女人奶水| 精品国产精品网麻豆系列 | 国产精品99久久久久| 一区二区三区视频在线观看| 亚洲精品一区二区在线观看| 91久久国产最好的精华液| 精品午夜久久福利影院| 一级特黄大欧美久久久| 国产女人水真多18毛片18精品视频 | 一区二区三区色| 中文字幕免费观看一区| 欧美一二区视频| 在线国产电影不卡| 欧美日本视频在线| 菠萝蜜视频在线观看一区| 日本伊人精品一区二区三区观看方式| 国产精品久久久99| 国产婷婷色一区二区三区| 91精品国产一区二区三区| 色香蕉成人二区免费| 成人中文字幕合集| 国产成人在线看| 国模大尺度一区二区三区| 青青草97国产精品免费观看无弹窗版| 一区二区三区日韩| 一区二区三区免费网站| 国产精品―色哟哟| 中文字幕成人网| 久久九九久精品国产免费直播| 欧美一级高清大全免费观看| 欧美色综合影院| 欧美在线一二三四区| 在线视频一区二区免费| 色婷婷综合久久久久中文 | 亚洲国产aⅴ天堂久久| 中文字幕亚洲欧美在线不卡| 久久久蜜臀国产一区二区| 欧美电视剧免费全集观看| 91精品国产综合久久小美女| 这里只有精品视频在线观看| 3d动漫精品啪啪| 日韩免费看网站| 久久日韩粉嫩一区二区三区| www久久精品| 久久久噜噜噜久久中文字幕色伊伊| 欧美一二三在线| 26uuu久久天堂性欧美| 欧美精品一区二区三区在线| 久久夜色精品国产噜噜av| 精品国产伦理网| 日本一区二区三区电影| 中文字幕在线一区二区三区| 久久久久国产精品麻豆| 久久精品日产第一区二区三区高清版 | 国产精品伦理在线| 中文字幕日韩一区二区| 亚洲激情自拍视频| 天天操天天综合网| 久久se这里有精品| 成人av网站大全| 在线观看亚洲精品视频| 欧美日韩国产一级| 日韩精品一区二| 中文字幕中文字幕中文字幕亚洲无线| 亚洲欧美怡红院| 午夜在线成人av| 激情综合色丁香一区二区| 高清成人在线观看| 91精品办公室少妇高潮对白| 精品视频在线视频| 久久综合九色综合久久久精品综合| 欧美激情一区二区三区| 亚洲欧美色综合| 日本伊人色综合网| jizz一区二区| 6080国产精品一区二区| 久久久高清一区二区三区| 亚洲精品乱码久久久久久| 美女一区二区久久| 91老司机福利 在线| 制服丝袜亚洲精品中文字幕| 中文字幕成人在线观看| 日韩电影在线免费| 92国产精品观看| 日韩一区二区免费在线观看| 国产亚洲婷婷免费| 日本怡春院一区二区| 成人精品鲁一区一区二区| 欧美美女激情18p| 自拍偷拍国产精品| 精一区二区三区| 欧美区一区二区三区| 国产精品美女一区二区三区| 日日欢夜夜爽一区| av欧美精品.com| 久久一区二区视频| 日韩不卡一区二区三区| 成人av片在线观看| 欧美精品一区二区三区在线播放| 亚洲成人在线观看视频| 99精品视频在线播放观看| 欧美精品一区二区高清在线观看 | 91精品国产综合久久久久久久| 国产精品九色蝌蚪自拍| 老司机免费视频一区二区| 91成人在线精品| 国产福利不卡视频| 99精品视频一区二区三区| 在线亚洲+欧美+日本专区| 国产伦精品一区二区三区免费迷 | 国产精品资源在线| 欧美日韩国产不卡| 亚洲精品水蜜桃| 99热精品国产| 中文字幕在线观看不卡| 精品亚洲porn| 精品国产凹凸成av人导航| 五月天亚洲精品| 欧美日韩国产综合一区二区| 亚洲精品中文在线影院| 成人aaaa免费全部观看| 国产日韩三级在线| 成人丝袜高跟foot| 中文字幕+乱码+中文字幕一区| 黑人巨大精品欧美黑白配亚洲| 日韩精品一区二区三区视频播放 | 欧美无砖专区一中文字| 综合久久综合久久| 91丨九色丨黑人外教| 国产精品久久久一本精品| 处破女av一区二区| 亚洲欧美精品午睡沙发| 成a人片国产精品| 亚洲精品国产a| 欧美三日本三级三级在线播放| 亚洲在线观看免费| 欧美久久久一区| 日韩精彩视频在线观看| 91精品国产麻豆| 精品一区二区在线播放| 精品福利一二区| 成人av影院在线| 一区二区三区小说| 欧美另类z0zxhd电影| 日日摸夜夜添夜夜添精品视频| 欧美电影精品一区二区| 国产精品18久久久久久久网站| 欧美激情中文字幕一区二区| 国产sm精品调教视频网站| ㊣最新国产の精品bt伙计久久| 91激情五月电影| 日韩高清在线电影| 久久久777精品电影网影网 | 欧美日韩综合色| 另类小说图片综合网| 国产日韩影视精品| 欧美性一区二区| 国产一区二区在线视频| 国产精品无人区| 欧美日韩国产综合视频在线观看|