OSDN Git Service

Improved Russian & Spanish translations for the installer
[lamexp/LameXP.git] / src / Dialog_SplashScreen.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // LameXP - Audio Encoder Front-End
3 // Copyright (C) 2004-2015 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version, but always including the *additional*
9 // restrictions defined in the "License.txt" file.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with this program; if not, write to the Free Software Foundation, Inc.,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 //
20 // http://www.gnu.org/licenses/gpl-2.0.txt
21 ///////////////////////////////////////////////////////////////////////////////
22
23 #pragma once
24
25 #include "UIC_SplashScreen.h"
26
27 //MUtils forward declaration
28 namespace MUtils
29 {
30         class Taskbar7;
31 }
32
33 //UIC forward declartion
34 namespace Ui
35 {
36         class SplashScreen;
37 }
38
39 ////////////////////////////////////////////////////////////
40 // Splash Frame
41 ////////////////////////////////////////////////////////////
42
43 class SplashScreen: public QFrame
44 {
45         Q_OBJECT
46
47 public:
48         SplashScreen(QWidget *parent = 0);
49         ~SplashScreen(void);
50
51         static void showSplash(QThread *thread);
52
53 private:
54         enum
55         {
56                 STATUS_FADE_IN = 0,
57                 STATUS_WAIT = 1,
58                 STATUS_FADE_OUT = 2,
59                 STATUS_DONE = 3
60         }
61         status_t;
62
63         Ui::SplashScreen *ui; //for Qt UIC
64
65         QScopedPointer<QMovie> m_working;
66         QScopedPointer<QEventLoop> m_loop;
67         QScopedPointer<QTimer> m_timer;
68         QScopedPointer<MUtils::Taskbar7> m_taskbar;
69         
70         const unsigned int m_opacitySteps;
71
72         unsigned int m_status;
73         unsigned int m_fadeValue;
74
75         volatile bool m_canClose;
76         volatile bool m_taskBarFlag;
77
78 private slots:
79         void updateHandler(void);
80         void threadComplete(void);
81
82 protected:
83         void keyPressEvent(QKeyEvent *event);
84         void keyReleaseEvent(QKeyEvent *event);
85         void closeEvent(QCloseEvent *event);
86 };