📄 irreceiver.cpp
字号:
/************************************************************************ Copyright (C) 2000-2005 Trolltech AS. All rights reserved.**** This file is part of the Qtopia Environment.** ** 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.** ** A copy of the GNU GPL license version 2 is included in this package as ** LICENSE.GPL.**** 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.**** In addition, as a special exception Trolltech gives permission to link** the code of this program with Qtopia applications copyrighted, developed** and distributed by Trolltech under the terms of the Qtopia Personal Use** License Agreement. You must comply with the GNU General Public License** in all respects for all of the code used other than the applications** licensed under the Qtopia Personal Use License Agreement. If you modify** this file, you may extend this exception to your version of the file,** but you are not obligated to do so. If you do not wish to do so, delete** this exception statement from your version.** ** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#include "irreceiver.h"#include "ircontroller.h"#include <qtopia/resource.h>#include <qpopupmenu.h>static const int protobase=100;IRReceiverApplet::IRReceiverApplet( QWidget *parent, const char *name ) : QWidget( parent, name ){ QPopupMenu* menu = new QPopupMenu; irc = new IRController(this); for (int i=0; i<=(int)IRController::LastState; i++) it[i] = menu->insertItem(IRController::stateDescription((IRController::State)i)); menu->setItemChecked(irc->state(),TRUE); int pc = irc->protocolCount(); if ( pc ) menu->insertSeparator(); for (int i=0; i<pc; i++) { QString n = irc->protocolName(i); QIconSet ic = irc->protocolIcon(i); if ( ic.pixmap().isNull() ) menu->insertItem(n,protobase+i); else menu->insertItem(ic,n,protobase+i); } menu->setItemChecked(protobase+irc->currentProtocol(),TRUE); acc = new Accessory(Resource::loadIconSet("irreceive"), tr("Beaming"), menu, this); connect(acc, SIGNAL(activated(int)), this, SLOT(activate(int))); connect(irc, SIGNAL(stateChanged(State)), this, SLOT(checkState())); setFixedWidth( 0 );}IRReceiverApplet::~IRReceiverApplet(){}void IRReceiverApplet::checkState(){ for (int i=0; i<=(int)IRController::LastState; i++) { bool y = irc->state()==i; acc->popup()->setItemChecked(it[i],y); }}void IRReceiverApplet::activate(int choice){ QPopupMenu* menu = acc->popup(); if ( choice >= protobase ) { if ( !irc->setProtocol(choice-protobase) ) choice = -1; for (int i=protobase; i-protobase<irc->protocolCount(); i++) menu->setItemChecked(i,i==choice); } else { for (int i=0; i<=(int)IRController::LastState; i++) { bool y = choice==it[i]; menu->setItemChecked(it[i],y); if ( y ) irc->setState((IRController::State)i); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -