Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.h')
-rw-r--r--src/mainwindow.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/mainwindow.h b/src/mainwindow.h
new file mode 100644
index 0000000..4e4aa77
--- /dev/null
+++ b/src/mainwindow.h
@@ -0,0 +1,126 @@
+/*
+Copyright 2015 Ian Jauslin
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include "pdfWindow.h"
+#include "config.h"
+#include <QKeyEvent>
+#include <QDesktopWidget>
+#include <QProgressBar>
+#include <QBasicTimer>
+#include <QTimer>
+#include <cctype>
+
+namespace Ui {
+ class MainWindow;
+ class SecondaryWindow;
+}
+
+class SecondaryWindow;
+class TimeIndicator;
+
+class MainWindow : public pdfWindow
+{
+ Q_OBJECT
+
+ public:
+ // index of main screen
+ int nrMainScreen;
+ // index of secondary screen
+ int nrSecScreen;
+ // timer counter
+ int pres_time_step;
+ SecondaryWindow* secondaryWindow;
+ // slidelist
+ QVector<int> slidelist;
+
+ // constructor
+ explicit MainWindow(QWidget *parent = 0);
+
+ void setConfig(Config* config);
+
+ //enable secondary screen
+ void secondaryScreen();
+ void exchangeScreens();
+ void moveToScreen(QWidget* widget,int screen,QDesktopWidget* desktop);
+
+ void nextPage();
+ void previousPage();
+ void gotoPage(int page);
+ void nextSlide();
+ void previousSlide();
+
+ void showhideTimeBar();
+ void startstopTimer();
+ void resetTimer();
+
+ // destructor
+ ~MainWindow();
+
+ private:
+ // global comnfiguration object
+ Config* conf;
+ // presentation timer
+ QBasicTimer pres_timer;
+ // Main layout
+ QVBoxLayout* layout;
+ TimeIndicator* timebar;
+ Ui::MainWindow *ui;
+
+ void loadUi();
+ void readSlidelist(char* path);
+ void keyPressEvent(QKeyEvent* event);
+ // to get arrow keys
+ bool eventFilter(QObject *obj, QEvent *event);
+
+ //called by pres_timer
+ void timerEvent(QTimerEvent *event);
+
+ // check whether a string is an integer
+ bool check_int(const char* string);
+};
+
+
+class SecondaryWindow : public pdfWindow
+{
+ Q_OBJECT
+
+ public:
+ // constructor
+ explicit SecondaryWindow(QWidget* parent = 0);
+ // destructor
+ ~SecondaryWindow();
+
+ private:
+ Ui::SecondaryWindow *ui;
+ void loadUi();
+};
+
+// time progress bar
+class TimeIndicator : public QProgressBar
+{
+ Q_OBJECT
+ public:
+ // constructor
+ explicit TimeIndicator(QWidget* parent = 0);
+ // destructore
+ ~TimeIndicator();
+ void setTime(int time,int maxtime);
+};
+
+#endif // MAINWINDOW_H