* make lyx look a bit more like a Mac application by removing frames around the work area.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23459 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Stefan Schimanski 2008-03-04 18:53:44 +00:00
parent 37b429e347
commit d8df65532e
2 changed files with 45 additions and 2 deletions

View File

@ -1906,11 +1906,10 @@ void GuiView::lfunUiToggle(FuncRequest const & cmd)
int l, t, r, b; int l, t, r, b;
getContentsMargins(&l, &t, &r, &b); getContentsMargins(&l, &t, &r, &b);
//are the frames in default state? //are the frames in default state?
d.current_work_area_->setFrameStyle(QFrame::NoFrame);
if (l == 0) { if (l == 0) {
d.current_work_area_->setFrameStyle(QFrame::NoFrame);
setContentsMargins(-2, -2, -2, -2); setContentsMargins(-2, -2, -2, -2);
} else { } else {
d.current_work_area_->setFrameStyle(QFrame::NoFrame);
setContentsMargins(0, 0, 0, 0); setContentsMargins(0, 0, 0, 0);
} }
return; return;

View File

@ -47,6 +47,9 @@
#include <QContextMenuEvent> #include <QContextMenuEvent>
#include <QInputContext> #include <QInputContext>
#include <QHelpEvent> #include <QHelpEvent>
#ifdef Q_WS_MAC
#include <QMacStyle>
#endif
#include <QMainWindow> #include <QMainWindow>
#include <QPainter> #include <QPainter>
#include <QPalette> #include <QPalette>
@ -248,6 +251,11 @@ GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & lv)
setAcceptDrops(true); setAcceptDrops(true);
setMouseTracking(true); setMouseTracking(true);
setMinimumSize(100, 70); setMinimumSize(100, 70);
#ifdef Q_WS_MACX
setFrameStyle(QFrame::NoFrame);
#else
setFrameStyle(QFrame::Box);
#endif
updateWindowTitle(); updateWindowTitle();
viewport()->setAutoFillBackground(false); viewport()->setAutoFillBackground(false);
@ -298,7 +306,11 @@ void GuiWorkArea::setFullScreen(bool full_screen)
if (lyxrc.full_screen_scrollbar) if (lyxrc.full_screen_scrollbar)
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
} else { } else {
#ifdef Q_WS_MACX
setFrameStyle(QFrame::NoFrame);
#else
setFrameStyle(QFrame::Box); setFrameStyle(QFrame::Box);
#endif
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
} }
} }
@ -1115,8 +1127,40 @@ bool GuiWorkArea::isFullScreen()
// //
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
#ifdef Q_WS_MACX
class NoTabFrameMacStyle : public QMacStyle {
public:
///
QRect subElementRect(SubElement element, const QStyleOption * option,
const QWidget * widget = 0 ) const
{
QRect rect = QMacStyle::subElementRect(element, option, widget);
bool noBar = static_cast<QTabWidget const *>(widget)->count() <= 1;
// The Qt Mac style puts the contents into a 3 pixel wide box
// which looks very ugly and not like other Mac applications.
// Hence we remove this here, and moreover the 16 pixel round
// frame above if the tab bar is hidden.
if (element == QStyle::SE_TabWidgetTabContents) {
rect.adjust(- rect.left(), 0, rect.left(), 0);
if (noBar)
rect.setTop(0);
}
return rect;
}
};
NoTabFrameMacStyle noTabFramemacStyle;
#endif
TabWorkArea::TabWorkArea(QWidget * parent) : QTabWidget(parent) TabWorkArea::TabWorkArea(QWidget * parent) : QTabWidget(parent)
{ {
#ifdef Q_WS_MACX
setStyle(&noTabFramemacStyle);
#endif
QPalette pal = palette(); QPalette pal = palette();
pal.setColor(QPalette::Active, QPalette::Button, pal.setColor(QPalette::Active, QPalette::Button,
pal.color(QPalette::Active, QPalette::Window)); pal.color(QPalette::Active, QPalette::Window));