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

📄 qsteclasses.cpp

📁 porting scintilla to qt
💻 CPP
字号:
#include <qevent.h>#include <qpainter.h>#include <QListWidgetItem>#include "qsteclasses.h"#include "qstescintillabase.h"#include "listboxqt.h"QSteCallTip::QSteCallTip(QSteScintillaBase *qsci) : QWidget(qsci,Qt::WindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::WA_StaticContents)),qstebase(qsci){	setFocusProxy(qsci);}QSteCallTip::~QSteCallTip(){	setFocusProxy(0);}void QSteCallTip::paintEvent(QPaintEvent *event){	Surface *surface = Surface::Allocate();	if(!surface)		return;	QPainter paint(this);	surface->Init(&paint);	qstebase->ct.PaintCT(surface);	delete surface;}void QSteCallTip::mousePressEvent(QMouseEvent *event){	Point pos;	pos.x = event->x();	pos.y = event->y();	qstebase->ct.MouseClick(pos);	qstebase->CallTipClick();}QStePopup::QStePopup(){	connect(&mapper,SIGNAL(mapped(int)),this,SLOT(on_triggered(int)));}void QStePopup::addItem(const QString &label,int cmd,bool enable,QSteScintillaBase *qbase){	QAction *act = addAction(label,&mapper,SLOT(map()));	mapper.setMapping(act,cmd);	act->setEnabled(enable);	qstebase = qbase;}void QStePopup::on_triggered(int cmd){	qstebase->Command(cmd);//Command inherits from ScintillaBase}QSteListBox::QSteListBox(QWidget *parent,ListBoxQt *lbqt_) : QListWidget(parent),lbqt(lbqt_){	setWindowFlags(Qt::WindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::WA_StaticContents));	setFocusProxy(parent);	setFrameShape(StyledPanel);	setFrameShadow(Plain);	connect(this,SIGNAL(itemDoubleClicked(QListWidgetItem *)),this,SLOT(handleDoubleClick()));}void QSteListBox::addItemPixmap(const QPixmap &pm,const QString &txt){	new QListWidgetItem(pm,txt,this);}int QSteListBox::find(const QString &prefix){	QList<QListWidgetItem *>itms = findItems(prefix,Qt::MatchStartsWith | Qt::MatchCaseSensitive);	if(itms.size() == 0)		return -1;	return row(itms[0]);}QString QSteListBox::text(int index){	QListWidgetItem *itm = item(index);	if(!itm)		return QString();	return itm->text();}QSteListBox::~QSteListBox(){	setFocusProxy(0);}void QSteListBox::handleDoubleClick(){	printf("qste list box doubleclick\n");	if(lbqt && lbqt->cb_action)		lbqt->cb_action(lbqt->cb_data);}

⌨️ 快捷键说明

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