X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=adopterwindow.h;h=7420d2c6bad5862926d3ec3ea01a23eb6a67cf6b;hb=4f302c4427507fec544f32b9003035e93f32b2e2;hp=d4631f46af39f360c46c0b35916a8a7c949ce9bf;hpb=b28659ebcbbcd4c42d90e0439fc09e03fc5a47cc;p=dorian diff --git a/adopterwindow.h b/adopterwindow.h index d4631f4..7420d2c 100644 --- a/adopterwindow.h +++ b/adopterwindow.h @@ -1,71 +1,85 @@ #ifndef ADOPTERWINDOW_H #define ADOPTERWINDOW_H -#include #include +#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. */ -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 &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, if the window is shown. + */ void showEvent(QShowEvent *event); + + /** Handle resize event: Restore reading position. */ + void resizeEvent(QResizeEvent *event); + + /** Handle close event. */ + 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