[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/games/astrododge
From: Rivo Laks <rivolaks () hot ! ee>
Date: 2009-08-08 19:17:29
Message-ID: 1249759049.258669.27125.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1008957 by rivol:
Add a stylesheet for in-game menus to get fancier shaped menu.
M +2 -0 data/CMakeLists.txt
A data/menus.css
M +43 -9 src/menuview.cpp
M +8 -1 src/menuview.h
--- trunk/playground/games/astrododge/data/CMakeLists.txt #1008956:1008957
@@ -27,3 +27,5 @@
file(GLOB AD_DATA_TEXTURES textures/*.png)
install(FILES ${AD_DATA_TEXTURES}
DESTINATION ${DATA_INSTALL_DIR}/astrododge/textures)
+
+install (FILES menus.css DESTINATION ${DATA_INSTALL_DIR}/astrododge)
--- trunk/playground/games/astrododge/src/menuview.cpp #1008956:1008957
@@ -18,17 +18,21 @@
#include "menuview.h"
#include "displaywidget.h"
+#include "datastore.h"
#include <kgllib/widgetproxy.h>
+#include <KDebug>
+
#include <QVBoxLayout>
#include <QPushButton>
#include <QGraphicsProxyWidget>
+#include <QFile>
+#include <QLabel>
MenuView::MenuView(KGLLib::GLWidget* parent): GLView(parent)
{
- mMainMenu = 0;
mMainMenuProxy = 0;
}
@@ -43,24 +47,54 @@
return static_cast<DisplayWidget*>(glWidget())->proxy();
}
+QGraphicsProxyWidget* MenuView::createMenu(QFrame* menuContainer)
+{
+ menuContainer->setObjectName("menu");
+
+ QWidget* menu = new QWidget();
+ menu->setWindowOpacity(0.8);
+ menu->setObjectName("menuContainer");
+ menu->setLayout(new QVBoxLayout);
+ menu->setStyleSheet(mStyleSheet);
+ menu->layout()->addWidget(menuContainer);
+
+ return proxy()->addWidget(menu);
+}
+
void MenuView::init()
{
+ loadStyleSheet();
+
// Main menu
- mMainMenu = new QWidget();
- mMainMenu->setWindowOpacity(0.8);
- mMainMenu->setLayout(new QVBoxLayout);
+ QFrame* mainMenu = new QFrame();
+ mainMenu->setLayout(new QVBoxLayout);
- QPushButton* startButton = new QPushButton("New game", mMainMenu);
+ QLabel* header = new QLabel("AstroDodge");
+ header->setObjectName("header");
+ mainMenu->layout()->addWidget(header);
+
+ QPushButton* startButton = new QPushButton("New game", mainMenu);
connect(startButton, SIGNAL(clicked(bool)), this, SIGNAL(startNewGame()));
- mMainMenu->layout()->addWidget(startButton);
+ mainMenu->layout()->addWidget(startButton);
- QPushButton* quitButton = new QPushButton("Quit", mMainMenu);
+ QPushButton* quitButton = new QPushButton("Quit", mainMenu);
connect(quitButton, SIGNAL(clicked(bool)), this, SIGNAL(quitGame()));
- mMainMenu->layout()->addWidget(quitButton);
+ mainMenu->layout()->addWidget(quitButton);
- mMainMenuProxy = proxy()->addWidget(mMainMenu);
+ mMainMenuProxy = createMenu(mainMenu);
}
+void MenuView::loadStyleSheet()
+{
+ QFile f(DataStore::instance()->dataDir() + "menus.css");
+ if (!f.open(QIODevice::ReadOnly)) {
+ kError() << "Couldn't open" << f.fileName();
+ return;
+ }
+
+ mStyleSheet = f.readAll();
+}
+
void MenuView::render()
{
}
--- trunk/playground/games/astrododge/src/menuview.h #1008956:1008957
@@ -25,6 +25,7 @@
class WidgetProxy;
}
class QGraphicsProxyWidget;
+class QFrame;
class MenuView : public GLView
@@ -49,8 +50,14 @@
void startNewGame();
void quitGame();
+ protected:
+ void loadStyleSheet();
+
+ QGraphicsProxyWidget* createMenu(QFrame* menuContainer);
+
private:
- QWidget* mMainMenu;
+ QString mStyleSheet;
+
QGraphicsProxyWidget* mMainMenuProxy;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic