#ifndef ADOPTERWINDOW_H
#define ADOPTERWINDOW_H
-#include <QMainWindow>
#include <QList>
+#include "mainbase.h"
class QWidget;
-class QToolBar;
class QAction;
class BookView;
-class QVBoxLayout;
+class Progress;
+class TranslucentButton;
/**
* A toplevel window that can adopt a BookView and other children.
- * On Maemo, it can also grab the volume keys.
+ * On some platforms, it can also grab the volume keys.
*/
-class AdopterWindow: public QMainWindow
+class AdopterWindow: public MainBase
{
Q_OBJECT
public:
explicit AdopterWindow(QWidget *parent = 0);
- /** Adopt children "bookView" and "others". */
- void takeChildren(BookView *bookView, const QList<QWidget *> &others);
+ /** Adopt book view and decorations. */
+ void takeBookView(BookView *bookView, Progress *prog,
+ TranslucentButton *prev, TranslucentButton *next);
- /** Release current children (adopted in @see takeChildren). */
- void leaveChildren();
+ /** Release book view and decorations. */
+ void leaveBookView();
- /** Return true if a child is currently adopted. */
- bool hasChild(QWidget *child);
+ /** Return true if the book view is currently adopted. */
+ bool hasBookView();
- /**
- * Add action that is visible on the tool bar.
- * @param receiver Object receiving "activated" signal.
- * @param slot Slot receiving "activated" signal.
- * @param iconName Base name of tool bar icon in resource file.
- * @param text Tool bar item text.
- * @param important On Symbian, only "important" actions are added to
- * the tool bar. All actions are added to the Options
- * menu though.
- */
- QAction *addToolBarAction(QObject *receiver, const char *slot,
- const QString &iconName, const QString &text,
- bool important = false);
-
- /** Add spacing to tool bar. */
- void addToolBarSpace();
-
- /** Show window. */
- void show();
-
- /** If grab is true, volume keys will generate pageUp/Down key events. */
+ /** If grab is true, volume keys will navigate the book view. */
void grabVolumeKeys(bool grab);
public slots:
/** Handle settings changes. */
void onSettingsChanged(const QString &key);
+signals:
+ /** Emitted when Page Up or Volume Up pressed. */
+ void pageUp();
+
+ /** Emitted when Page Down or Volume Down pressed. */
+ void pageDown();
+
protected:
+ /** Handle key press events. */
void keyPressEvent(QKeyEvent *event);
-#ifdef Q_WS_MAEMO_5
+
+ /**
+ * Handle show events.
+ * On Symbian, volume keys can only be grabbed, when the window is shown.
+ * So we do it from here.
+ */
void showEvent(QShowEvent *event);
+
+ /** Handle resize event: Restore reading position. */
+ void resizeEvent(QResizeEvent *event);
+
+ /** Handle close event: Save reading position. */
+ void closeEvent(QCloseEvent *event);
+
+ /** Handle leave event: Save reading position. */
+ void leaveEvent(QEvent *event);
+
+#ifdef Q_WS_MAEMO_5
+ /** Actually grab the volume keys. */
void doGrabVolumeKeys(bool grab);
-#endif
- BookView *bookView;
+#endif // Q_WS_MAEMO_5
+
+protected slots:
+ void placeDecorations();
+ void onPageDown();
+ void onPageUp();
+
+private:
+ BookView *bookView; /**< Book view widget. */
bool grabbingVolumeKeys;/**< True, if volume keys should be grabbed. */
- QToolBar *toolBar;
+ Progress *progress; /**< Reading progress indicator. */
+ TranslucentButton *previousButton; /**< Previous page indicator. */
+ TranslucentButton *nextButton; /**< Next page indicator. */
};
#endif // ADOPTERWINDOW_H