/****************************************************************************
**
** Qtitan Library by Developer Machines (Microsoft-Ribbon implementation for Qt.C++)
**
** Copyright (c) 2009-2015 Developer Machines (http://www.devmachines.com)
** ALL RIGHTS RESERVED
**
** The entire contents of this file is protected by copyright law and
** international treaties. Unauthorized reproduction, reverse-engineering
** and distribution of all or any portion of the code contained in this
** file is strictly prohibited and may result in severe civil and
** criminal penalties and will be prosecuted to the maximum extent
** possible under the law.
**
** RESTRICTIONS
**
** THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED
** FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE
** COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE
** AVAILABLE TO OTHER INDIVIDUALS WITHOUT WRITTEN CONSENT
** AND PERMISSION FROM DEVELOPER MACHINES
**
** CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON
** ADDITIONAL RESTRICTIONS.
**
****************************************************************************/
#include <QApplication>
#include <QBitmap>
#include <QPainter>
#include <QMdiArea>
#include <QComboBox>
#include <QCheckBox>
#include <QLineEdit>
#include <QToolTip>
#include <QDockWidget>
#include <QGroupBox>
#include <QMessageBox>
#include <QTextEdit>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <qdrawutil.h>
#endif /* Q_OS_WIN*/
#include "QtnRibbonStylePrivate.h"
#include "QtnCommonStyle.h"
#include "QtnRibbonStyle.h"
#include "QtnStyleHelpers.h"
#include "QtnCommonStylePrivate.h"
#include "QtnOfficeFrameHelper.h"
#include "QtnRibbonMainWindow.h"
#include "QtnRibbonBar.h"
#include "QtnRibbonPage.h"
#include "QtnRibbonTabBar.h"
#include "QtnRibbonPrivate.h"
#include "QtnRibbonGroupPrivate.h"
#include "QtnRibbonGroup.h"
#include "QtnRibbonBackstageView.h"
#include "QtnRibbonStatusBar.h"
#include "QtnRibbonSliderPane.h"
#include "QtnRibbonSystemPopupBar.h"
#include "QtnRibbonButtonPrivate.h"
#include "QtnRibbonToolTip.h"
#include "QtnRibbonGalleryControls.h"
#include "QtnRibbonQuickAccessBar.h"
#ifdef DEBUG_MEMORY_ENABLED
#include "QtitanMSVSDebug.h"
#endif
QTITAN_USE_NAMESPACE
static QString qtn_getColorName(RibbonPage::ContextColor color)
{
switch (color)
{
case RibbonPage::ContextColorBlue:
return QString("Blue");
case RibbonPage::ContextColorYellow:
return QString("Yellow");
case RibbonPage::ContextColorGreen:
return QString("Green");
case RibbonPage::ContextColorRed:
return QString("Red");
case RibbonPage::ContextColorPurple:
return QString("Purple");
case RibbonPage::ContextColorCyan:
return QString("Cyan");
case RibbonPage::ContextColorOrange:
return QString("Orange");
default:
break;
}
return QString("");
}
static QColor qtn_getColorToRGB(RibbonPage::ContextColor color)
{
switch (color)
{
case RibbonPage::ContextColorRed:
return QColor(255, 160, 160);
case RibbonPage::ContextColorOrange:
return QColor(239, 189, 55);
case RibbonPage::ContextColorYellow:
return QColor(253, 229, 27);
case RibbonPage::ContextColorGreen:
return QColor(113, 190, 89);
case RibbonPage::ContextColorBlue:
return QColor(128, 181, 196);
case RibbonPage::ContextColorCyan:
return QColor(114, 163, 224);
case RibbonPage::ContextColorPurple:
return QColor(214, 178, 209);
default:
break;
}
return QColor();
}
/*!
\class Qtitan::RibbonPaintManager
\internal
*/
RibbonPaintManager::RibbonPaintManager(CommonStyle* baseStyle)
: OfficePaintManager(baseStyle)
{
}
RibbonPaintManager::~RibbonPaintManager()
{
}
QIcon RibbonPaintManager::qtnStandardIcon(QStyle::StandardPixmap px, const QStyleOption* opt, const QWidget* wd, bool& ret ) const
{
Q_UNUSED(px);
Q_UNUSED(opt);
Q_UNUSED(wd);
ret = false;
return QIcon();
}
void RibbonPaintManager::drawRibbonBar(const QStyleOption* opt, QPainter* p, const QWidget* widget) const
{
Q_UNUSED(widget);
QTN_D_STYLE(RibbonStyle)
if (const StyleOptionRibbon* optRibbonBar = qstyleoption_cast<const StyleOptionRibbon*>(opt))
{
QRect rcRibbonClient = opt->rect;
if (optRibbonBar->frameHelper)
rcRibbonClient.setTop(rcRibbonClient.top() + optRibbonBar->titleBarHeight);
QRect rcRibbonTabs = optRibbonBar->rectTabBar;
rcRibbonTabs.setLeft(rcRibbonClient.left());
rcRibbonTabs.setRight(rcRibbonClient.right());
QRect rcRibbonGroups(QPoint(rcRibbonClient.left(), rcRibbonTabs.bottom()), QPoint(rcRibbonClient.right(), rcRibbonClient.bottom()));
p->fillRect(rcRibbonTabs, d.m_clrRibbonFace);
p->fillRect(rcRibbonGroups, d.m_clrRibbonFace);
if (d.m_flatFrame && optRibbonBar->frameHelper)
{
if (!optRibbonBar->frameHelper->isDwmEnabled())
{
if (!optRibbonBar->frameHelper->isActive())
optRibbonBar->frameHelper->fillSolidRect(p, rcRibbonTabs, optRibbonBar->airRegion, d.m_clrRibbonInactiveFace);
}
else
{
optRibbonBar->frameHelper->fillSolidRect(p, rcRibbonTabs, optRibbonBar->airRegion, QColor(0, 0, 0));
QPixmap soImage = cached("RibbonTabBackgroundDwm.png");
if (!soImage.isNull())
{
QRect rcSrc = sourceRectImage(soImage.rect(), 0, 1);
QRect rcRibbonClient = opt->rect;
QRect rcRibbonTabs = optRibbonBar->rectTabBar;
int height = qMin(rcRibbonTabs.height(), rcSrc.height()+1);
rcSrc.setTop(rcSrc.bottom() - height);
QRect rcArea(QPoint(rcRibbonClient.left(), rcRibbonTabs.bottom() - height),
QPoint(rcRibbonClient.right(), rcRibbonTabs.bottom()));
drawImage(soImage, *p, rcArea, rcSrc, QRect(QPoint(10, 0), QPoint(10, 0)), /*isStyle2010()*/true);
}
}
}
if (optRibbonBar->minimized)
{
p->fillRect(rcRibbonClient.left(), rcRibbonClient.bottom() - 2, rcRibbonClient.width(), 1, d.m_clrMinimizedFrameEdgeShadow);
p->fillRect(rcRibbonClient.left(), rcRibbonClient.bottom() - 1, rcRibbonClient.width(), 1, d.m_clrMinimizedFrameEdgeHighLight);
}
}
}
/*! \internal */
void RibbonPaintManager::drawRibbonTabBar(const QStyleOption* opt, QPainter* p, const QWidget* w) const
{
Q_UNUSED(opt);
Q_UNUSED(p);
Q_UNUSED(w);
}
/*! \internal */
void RibbonPaintManager::drawRibbonGroups(const QStyleOption* option, QPainter* p, const QWidget* widget) const
{
Q_UNUSED(widget);
RibbonPage::ContextColor pageColor = RibbonPage::ContextColorNone;
if (const RibbonBar* rb = qobject_cast<const RibbonBar*>(widget))
{
if (RibbonPage* page = rb->getPage(rb->currentPageIndex()))
pageColor = page->contextColor();
}
else if (/*const ReducedGroupPopupMenu* pm = qobject_cast<const ReducedGroupPopupMenu*>(widget)*/widget && widget->windowFlags() & Qt::Popup)
{
if (const RibbonPage* page = getParentWidget<const RibbonPage>(widget))
pageColor = page->contextColor();
}
if (pageColor != RibbonPage::ContextColorNone)
{
QString resName("ContextPage");
resName += qtn_getColorName(pageColor);
resName += "Client";
QPixmap soImage = cached(resName);
if (!soImage.isNull())
drawImage(soImage, *p, option->rect, sourceRectImage(soImage.rect(), 0, 1),
soImage.width() < 5 ? QRect(QPoint(1, 8), QPoint(1, 8)) : QRect(QPoint(8, 8), QPoint(8, 8)));
}
else
{
QPixmap soImage = cached("RibbonGroups.png");
if (!soImage.isNull())
没有合适的资源?快使用搜索试试~ 我知道了~
QtitanRibbon4.8源码
共1709个文件
png:1455个
h:102个
cpp:62个
5星 · 超过95%的资源 需积分: 42 46 下载量 84 浏览量
2022-07-18
09:24:29
上传
评论 2
收藏 67.85MB ZIP 举报
温馨提示
QtitanRibbon组件实现了Microsoft Ribbon for Qt的概念,设计用于任何使用Qt开发的商业应用。这个组件和Qt一道为获取一些应用提供了一个难得的机会,这些应用在全球三大主要平台Windows、Linux和Mac OS X上都有现代化的外观和感觉。 QtitanRibbon4.8源码,亲测QT Creator 4.6 + QT 5.9下可用。包含Office2007、Office2010和Office2013的共11种皮肤。 编译方法: 1.编译ribbon的dll,qt编译src\shared\ribbon\ribbon.pro 2.编译demo程序,qt编译src\demos\ribbon\Application\Application.pro
资源详情
资源评论
资源推荐
收起资源包目录
QtitanRibbon4.8源码 (1709个子文件)
Application.pro.user.22 19KB
ribbon.pro.user.22 19KB
Application.pro.user.4.8-pre1 64KB
ribbon.pro.user.4.8-pre1 63KB
Application.pro.user.d1ff675.4.9-pre1 24KB
ribbon.pro.user.d1ff675.4.9-pre1 24KB
libqtnribbond.a 51.88MB
libqtnribbond4.a 1.23MB
libqtnribbondsgnd4.a 2KB
qtnribbond_resource.aps 79KB
qtnribbon_resource.aps 79KB
logooffice.bmp 520B
QtnRibbonPaintManager.cpp 177KB
QtnOfficePaintManager.cpp 155KB
QtnOfficeStyle.cpp 115KB
QtnRibbonStyle.cpp 106KB
QtnRibbonBar.cpp 100KB
mainwindow.cpp 90KB
QtnOfficeFrameHelper_win.cpp 74KB
QtnRibbonCustomizeManager.cpp 63KB
QtnRibbonCustomizePage.cpp 63KB
QtnRibbonControls.cpp 47KB
QtnRibbonGroup.cpp 45KB
QtnRibbonSystemPopupBar.cpp 44KB
QtnRibbonGallery.cpp 44KB
QtnCommonStyle.cpp 43KB
QtnRibbonPage.cpp 39KB
QtnRibbonStyleDsgnPlugin.cpp 39KB
QtnOfficePopupWindow.cpp 35KB
QtnPopupHelpers.cpp 34KB
QtnRibbonTabBar.cpp 33KB
QtnRibbonBackstageView.cpp 26KB
QtnRibbonToolTip.cpp 22KB
QtnStyleHelpers.cpp 21KB
mainwindow.cpp 20KB
ribbonwindow.cpp 18KB
dockwidgets.cpp 17KB
QtnRibbonQuickAccessBar.cpp 15KB
QtnRibbonCustomizeDialog.cpp 15KB
QtnCommonStyle_win.cpp 14KB
QtnRibbonStatusBar.cpp 14KB
mainwindow.cpp 13KB
QtnCommandDsgn.cpp 12KB
QtnRibbonPrivate.cpp 11KB
QtnRibbonBarDsgnPlugin.cpp 11KB
demomainwindow.cpp 11KB
QtnRibbonDsgnTaskMenu.cpp 10KB
QtnOfficePopupMenu.cpp 10KB
QtnRibbonButtonControls.cpp 9KB
QtnMainWindowDsgnContainer.cpp 7KB
QtnRibbonGroupDsgnPlugin.cpp 7KB
QtnRibbonBackstageViewDsgnPlugin.cpp 7KB
QtnRibbonButtonPrivate.cpp 7KB
ribbonpopularpage.cpp 6KB
QtnRibbonDsgnContainer.cpp 6KB
QtnRibbonSliderPane.cpp 6KB
QtnStatusBarDsgnPlugin.cpp 6KB
QtnRibbonInputControls.cpp 6KB
QtnRibbonMainWindowDsgnPlugin.cpp 5KB
QtnRibbonMainWindow.cpp 5KB
QtnRibbonGalleryControls.cpp 5KB
QtnRibbonPageDsgnPlugin.cpp 4KB
QtnMainWindowDsgnTaskMenu.cpp 4KB
QtnOfficePopupColorButton.cpp 4KB
aboutdialog.cpp 3KB
QtnRibbonDef.cpp 3KB
QtnCommonPaintManager.cpp 3KB
QtnRibbonWorkspaceDsgnPlugin.cpp 3KB
QtnRibbonDsgnPlugins.cpp 2KB
ribbonimages.cpp 2KB
QtnRibbonWorkspace.cpp 2KB
main.cpp 367B
main.cpp 349B
main.cpp 178B
qtnribbondsgnd4.dll 53.26MB
qtnribbond4.dll 43.32MB
qtnribbond4.dll 43.32MB
Ribbon_Applicationd.exe 5.44MB
ribbon.vcxproj.filters 171KB
Application.vcxproj.filters 21KB
QtnOfficeStylePrivate.h 24KB
QtnRibbonStylePrivate.h 19KB
QtnCommonStyle.h 13KB
QtnOfficeStyle.h 12KB
ui_QtnRibbonBarCustomizePage.h 10KB
QtnRibbonStyle.h 9KB
QtnRibbonStyleDsgnPlugin.h 9KB
ui_QtnRibbonQuickAccessBarCustomizePage.h 9KB
QtnRibbonCustomizeManagerPrivate.h 8KB
QtnRibbonCustomizeDialogPrivate.h 8KB
QtnRibbonControls.h 8KB
QtnStyleHelpers.h 7KB
QtnRibbonBar.h 7KB
QtnRibbonGallery.h 7KB
QtnCommonStylePrivate.h 6KB
QtnRibbonControlsPrivate.h 6KB
QtnOfficeFrameHelper_win.h 6KB
QtnPopupHelpers.h 6KB
ui_ribbonpopularpage.h 6KB
QtnRibbonBarPrivate.h 6KB
共 1709 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
lijj0459
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- alu.v
- H21-282学习参考.pdf
- QuestionTwo.java
- QuestionOne.java
- AWS Certified Solutions Architect Study Guide -SAA-C03 .docx
- 校园小情书微信小程序源码 社区小程序前后端开源 校园表白墙交友小程序.rar
- OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1