added tab system
This commit is contained in:
+55
-8
@@ -1,49 +1,96 @@
|
||||
#include "notebook.h"
|
||||
#include "notebooktab.h"
|
||||
#include "notebookpage.h"
|
||||
#include "QPainter"
|
||||
|
||||
NotebookTab::NotebookTab(Notebook *notebook)
|
||||
: QWidget(notebook)
|
||||
{
|
||||
this->notebook = notebook;
|
||||
text = "<no title>";
|
||||
|
||||
resize(100, 24);
|
||||
calcSize();
|
||||
}
|
||||
|
||||
void NotebookTab::setSelected(bool value)
|
||||
{
|
||||
selected = value;
|
||||
repaint();
|
||||
}
|
||||
|
||||
bool NotebookTab::getSelected()
|
||||
{
|
||||
return selected;
|
||||
}
|
||||
|
||||
void NotebookTab::calcSize()
|
||||
{
|
||||
resize(fontMetrics().width(text) + 8, 24);
|
||||
}
|
||||
|
||||
void NotebookTab::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPainter painter(this);
|
||||
|
||||
painter.setBrush(this->mouseDown ? QColor(0, 255, 0) : (this->mouseOver ? QColor(255, 0, 0) : QColor(0, 0, 255)));
|
||||
QColor bg = QColor(255, 255, 255), fg = QColor(0, 0, 0);
|
||||
|
||||
painter.drawRect(0, 0, this->width(), this->height());
|
||||
// if (selected)
|
||||
// {
|
||||
// bg = App.ColorScheme.TabSelectedBG;
|
||||
// text = App.ColorScheme.TabSelectedText;
|
||||
// }
|
||||
// else if (mouseOver)
|
||||
// {
|
||||
// bg = App.ColorScheme.TabHoverBG;
|
||||
// text = App.ColorScheme.TabHoverText;
|
||||
// }
|
||||
// else if ()
|
||||
// {
|
||||
// bg = App.ColorScheme.TabHighlightedBG;
|
||||
// text = App.ColorScheme.TabHighlightedText;
|
||||
// }
|
||||
// else if ()
|
||||
// {
|
||||
// bg = App.ColorScheme.TabNewMessageBG;
|
||||
// text = App.ColorScheme.TabHighlightedText;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// bg = App.ColorScheme.TabBG;
|
||||
// text = App.ColorScheme.TabText;
|
||||
// }
|
||||
|
||||
painter.fillRect(rect(), bg);
|
||||
|
||||
painter.setPen(fg);
|
||||
painter.drawText(4, (height() + fontMetrics().height()) / 2, text);
|
||||
}
|
||||
|
||||
void NotebookTab::mousePressEvent(QMouseEvent *)
|
||||
{
|
||||
mouseDown = true;
|
||||
|
||||
this->repaint();
|
||||
repaint();
|
||||
}
|
||||
|
||||
void NotebookTab::mouseReleaseEvent(QMouseEvent *)
|
||||
{
|
||||
mouseDown = false;
|
||||
|
||||
this->repaint();
|
||||
repaint();
|
||||
|
||||
notebook->select(page);
|
||||
}
|
||||
|
||||
void NotebookTab::enterEvent(QEvent *)
|
||||
{
|
||||
mouseOver = true;
|
||||
|
||||
this->repaint();
|
||||
repaint();
|
||||
}
|
||||
|
||||
void NotebookTab::leaveEvent(QEvent *)
|
||||
{
|
||||
mouseOver = false;
|
||||
|
||||
this->repaint();
|
||||
repaint();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user