📄 qsteclasses.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 + -