1 /***************************************************************************
2 *                                                                         *
3 *   This program is free software; you can redistribute it and/or modify  *
4 *   it under the terms of the GNU General Public License as published by  *
5 *   the Free Software Foundation; either version 3 of the License, or     *
6 *   (at your option) any later version.                                   *
7 *                                                                         *
8 ***************************************************************************/
9 
10 #include "ArenaWidget.h"
11 
12 #include <QUrl>
13 #include <QFile>
14 #include <QVBoxLayout>
15 
16 #include "WulforUtil.h"
17 #include "ArenaWidgetManager.h"
18 
operator |(const ArenaWidget::Flags & a,const ArenaWidget::Flags & b)19 ArenaWidget::Flags operator|(const ArenaWidget::Flags &a, const ArenaWidget::Flags &b){
20     return ArenaWidget::Flags(static_cast<unsigned>(a) | static_cast<unsigned>(b));
21 }
22 
operator &(const ArenaWidget::Flags & a,const ArenaWidget::Flags & b)23 ArenaWidget::Flags operator&(const ArenaWidget::Flags &a, const ArenaWidget::Flags &b){
24     return ArenaWidget::Flags(static_cast<unsigned>(a) & static_cast<unsigned>(b));
25 }
26 
operator ^(const ArenaWidget::Flags & a,const ArenaWidget::Flags & b)27 ArenaWidget::Flags operator^(const ArenaWidget::Flags &a, const ArenaWidget::Flags &b){
28     return ArenaWidget::Flags(static_cast<unsigned>(a) ^ static_cast<unsigned>(b));
29 }
30 
operator ~(const ArenaWidget::Flags & a)31 ArenaWidget::Flags operator~ ( const ArenaWidget::Flags& a ) {
32     return ArenaWidget::Flags(~(static_cast<unsigned>(a)));
33 }
34 
ArenaWidget()35 ArenaWidget::ArenaWidget(): _arenaUnload(true), toolBtn(NULL), flags(ArenaWidget::NoFlags | ArenaWidget::RaiseOnStart)
36 {
37 }
38 
~ArenaWidget()39 ArenaWidget::~ArenaWidget(){
40 }
41 
ScriptWidget()42 ScriptWidget::ScriptWidget(){
43     _wgt = NULL;
44     _menu = NULL;
45 }
46 
~ScriptWidget()47 ScriptWidget::~ScriptWidget(){
48 }
49 
getWidget()50 QWidget *ScriptWidget::getWidget(){ return _wgt; }
getArenaTitle()51 QString ScriptWidget::getArenaTitle() { return _arenaTitle; }
getArenaShortTitle()52 QString ScriptWidget::getArenaShortTitle() { return _arenaShortTitle; }
getMenu()53 QMenu *ScriptWidget::getMenu() { return _menu; }
getPixmap()54 const QPixmap &ScriptWidget::getPixmap() { return pxm; }
55 
setWidget(QWidget * wgt)56 void  ScriptWidget::setWidget(QWidget *wgt) { _wgt = wgt; }
setArenaTitle(QString t)57 void  ScriptWidget::setArenaTitle(QString t) { _arenaTitle = t; }
setArenaShortTitle(QString st)58 void  ScriptWidget::setArenaShortTitle(QString st) { _arenaShortTitle = st; }
setMenu(QMenu * _m)59 void  ScriptWidget::setMenu(QMenu *_m) { _menu = _m; }
setPixmap(const QPixmap & px)60 void  ScriptWidget::setPixmap(const QPixmap &px) { pxm = px; }
61 
62 #ifdef USE_QML
DeclarativeWidget(const QString & file)63 DeclarativeWidget::DeclarativeWidget(const QString &file) : QWidget(NULL) {
64     view = new QDeclarativeView();
65     view->setSource(QUrl::fromLocalFile(file));
66 
67     setLayout(new QVBoxLayout());
68     layout()->addWidget(view);
69 }
70 
~DeclarativeWidget()71 DeclarativeWidget::~DeclarativeWidget(){
72 }
73 
closeEvent(QCloseEvent * e)74 void DeclarativeWidget::closeEvent(QCloseEvent *e){
75     e->accept();
76 
77     setAttribute(Qt::WA_DeleteOnClose);
78 
79     ArenaWidgetManager::getInstance()->rem(this);
80 }
81 
getWidget()82 QWidget *DeclarativeWidget::getWidget(){
83     return this;
84 }
85 
getArenaTitle()86 QString DeclarativeWidget::getArenaTitle(){
87     QString fname = view->source().toLocalFile();
88 
89     return (fname.right(fname.length()-fname.lastIndexOf(QDir::separator())-1));
90 }
91 
getArenaShortTitle()92 QString DeclarativeWidget::getArenaShortTitle(){
93     return getArenaTitle();
94 }
95 
getMenu()96 QMenu *DeclarativeWidget::getMenu(){
97     return NULL;
98 }
99 
getPixmap()100 const QPixmap &DeclarativeWidget::getPixmap(){
101     return WICON(WulforUtil::eiFILETYPE_APPLICATION);
102 }
103 #endif
104