mirror of
https://github.com/YACReader/yacreader
synced 2025-07-23 07:24:58 -04:00
added the basic methods to YACRreaderMacOSXToolbar, some of them have been implemented succesfully. Tested in YACReader
This commit is contained in:
@ -2,17 +2,29 @@
|
||||
#define YACREADER_MACOSX_TOOLBAR_H
|
||||
|
||||
#include <QMacToolBar>
|
||||
#include <QtWidgets>
|
||||
|
||||
class YACReaderMacOSXToolbar : public QMacToolBar
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit YACReaderMacOSXToolbar(QWidget *window, QObject *parent = 0);
|
||||
explicit YACReaderMacOSXToolbar(QObject *parent = 0);
|
||||
void addAction(QAction * action);
|
||||
void addDropDownItem(const QList<QAction*> & actions, const QAction * defaultAction = 0);
|
||||
void addSpace(int size); //size in points
|
||||
void addSeparator();
|
||||
void addStretch();
|
||||
void addWidget(QWidget * widget);
|
||||
void show();
|
||||
void hide();
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
protected:
|
||||
NSToolbar * nativeToolBar;
|
||||
|
||||
};
|
||||
|
||||
#endif // YACREADER_MACOSX_TOOLBAR_H
|
||||
|
@ -1,20 +1,39 @@
|
||||
#include "yacreader_macosx_toolbar.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QMacNativeWidget>
|
||||
|
||||
#import <AppKit/AppKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
YACReaderMacOSXToolbar::YACReaderMacOSXToolbar(QWidget * window, QObject *parent) :
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface CustomSeparator : NSView
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation CustomSeparator
|
||||
|
||||
- (void) drawRect:(NSRect)rect {
|
||||
[[NSColor colorWithDeviceRed:0.5 green:0.5 blue:0.5 alpha:1] setFill];
|
||||
NSRectFill(rect);
|
||||
[super drawRect:rect];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
YACReaderMacOSXToolbar::YACReaderMacOSXToolbar(QObject *parent) :
|
||||
QMacToolBar(parent)
|
||||
{
|
||||
//setup native toolbar
|
||||
NSToolbar * nativeToolBar= nativeToolbar();
|
||||
nativeToolBar= nativeToolbar();
|
||||
[nativeToolBar setSizeMode:NSToolbarSizeModeSmall];
|
||||
[nativeToolBar setDisplayMode:NSToolbarDisplayModeIconOnly];
|
||||
|
||||
//button testing
|
||||
QPixmap p(100,100);
|
||||
/*QPixmap p(100,100);
|
||||
|
||||
QIcon icon(p);
|
||||
QMacToolBarItem *toolBarItem = addItem(icon,"hola");
|
||||
@ -22,10 +41,83 @@ YACReaderMacOSXToolbar::YACReaderMacOSXToolbar(QWidget * window, QObject *parent
|
||||
|
||||
|
||||
[nativeItem setMaxSize:NSMakeSize(10,50)];
|
||||
[nativeItem setMinSize:NSMakeSize(10,50)];
|
||||
[nativeItem setMinSize:NSMakeSize(10,50)];*/
|
||||
//toolBarItem->setStandardItem(QMacToolBarItem::FlexibleSpace);
|
||||
//connect(toolButton, SIGNAL(activated()), this, SLOT(fooClicked()))
|
||||
|
||||
window->window()->winId(); // create window->windowhandle()
|
||||
attachToWindow(window->window()->windowHandle());
|
||||
//window->window()->winId(); // create window->windowhandle()
|
||||
//attachToWindow(window->window()->windowHandle());
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addAction(QAction *action)
|
||||
{
|
||||
QMacToolBarItem *toolBarItem = addItem(action->icon(),action->text());
|
||||
|
||||
connect(toolBarItem,SIGNAL(activated()),action, SIGNAL(triggered()));
|
||||
|
||||
//TODO add support for enable/disable toolbaritems
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addDropDownItem(const QList<QAction *> &actions, const QAction *defaultAction)
|
||||
{
|
||||
foreach(QAction * action, actions)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addSpace(int size)
|
||||
{
|
||||
QMacToolBarItem *toolBarItem = addItem(QIcon(),"");
|
||||
//NSToolbarItem * nativeItem = toolBarItem->nativeToolBarItem();
|
||||
toolBarItem->setStandardItem(QMacToolBarItem::Space);
|
||||
|
||||
NSToolbarItem * nativeItem = toolBarItem->nativeToolBarItem();
|
||||
|
||||
//TODO this doesn't work
|
||||
[nativeItem setMaxSize:NSMakeSize(size,24)];
|
||||
[nativeItem setMinSize:NSMakeSize(size,24)];
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addSeparator()
|
||||
{
|
||||
//QMacToolBar::addSeparator();
|
||||
|
||||
QMacToolBarItem *toolBarItem = addItem(QIcon(),"");
|
||||
NSToolbarItem * nativeItem = toolBarItem->nativeToolBarItem();
|
||||
|
||||
static const NSRect buttonFrameRect = { { 0.0, 0.0 }, { 1, 16.0 } };
|
||||
CustomSeparator *view = [[CustomSeparator alloc] initWithFrame:buttonFrameRect];
|
||||
|
||||
[nativeItem setView:view];
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addStretch()
|
||||
{
|
||||
QMacToolBarItem *toolBarItem = addItem(QIcon(),"");
|
||||
toolBarItem->setStandardItem(QMacToolBarItem::FlexibleSpace);
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::addWidget(QWidget *widget)
|
||||
{
|
||||
/* QMacNativeWidget *nativeWidget = new QMacNativeWidget();
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->addWidget(widget);
|
||||
nativeWidget->setLayout(layout);
|
||||
|
||||
|
||||
NSView *nativeWidgetView = reinterpret_cast<NSView *>(nativeWidget->winId());
|
||||
QMacToolBarItem *toolBarItem = addItem(QIcon(),"");
|
||||
NSToolbarItem * nativeItem = toolBarItem->nativeToolBarItem();
|
||||
[nativeItem setView:nativeWidgetView];*/
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::show()
|
||||
{
|
||||
[nativeToolBar setVisible:YES];
|
||||
}
|
||||
|
||||
void YACReaderMacOSXToolbar::hide()
|
||||
{
|
||||
[nativeToolBar setVisible:NO];
|
||||
}
|
||||
|
Reference in New Issue
Block a user