libidxgui
/home/rex/ebltrunk/tools/libidxgui/include/scroll_box0.h
00001 /***************************************************************************
00002  *   Copyright (C) 2009 by Pierre Sermanet *
00003  *   pierre.sermanet@gmail.com *
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *     * Redistributions of source code must retain the above copyright
00008  *       notice, this list of conditions and the following disclaimer.
00009  *     * Redistributions in binary form must reproduce the above copyright
00010  *       notice, this list of conditions and the following disclaimer in the
00011  *       documentation and/or other materials provided with the distribution.
00012  *     * Redistribution under a license not approved by the Open Source
00013  *       Initiative (http://www.opensource.org) must display the
00014  *       following acknowledgement in all advertising material:
00015  *        This product includes software developed at the Courant
00016  *        Institute of Mathematical Sciences (http://cims.nyu.edu).
00017  *     * The names of the authors may not be used to endorse or promote products
00018  *       derived from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
00021  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00022  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00023  * DISCLAIMED. IN NO EVENT SHALL ThE AUTHORS BE LIABLE FOR ANY
00024  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00025  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00026  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00027  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00028  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00029  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00030  ***************************************************************************/
00031 
00032 #ifndef SCROLL_BOX0_H_
00033 #define SCROLL_BOX0_H_
00034 
00035 #include <QtGui/QPixmap>
00036 #include <QtGui/QWidget>
00037 #include <QtGui/QtGui>
00038 #include <QtGui/QResizeEvent>
00039 #include <QtGui/QPushButton>
00040 #include <math.h>
00041 #include <iostream>
00042 #include "defines.h"
00043 
00044 using namespace std;
00045 
00046 namespace ebl {
00047 
00048   class EXPORT scroll_box0 {
00049   public:
00050     scroll_box0();
00051     virtual ~scroll_box0();
00052     virtual void set_parent(void *parent) = 0;
00053     virtual void display_next() = 0;
00054     virtual void display_previous() = 0;
00055     virtual unsigned int max_pages () = 0;
00056     virtual void display_controls() = 0;
00057     virtual scroll_box0* copy() = 0;
00058     virtual bool next_page();
00059     virtual bool previous_page();
00060 
00061   protected:
00062     unsigned int page_number;
00063     QPushButton *button_next;
00064     QPushButton *button_previous;
00065     unsigned int _h0;
00066     unsigned int _w0;
00067     unsigned int _h1;
00068     unsigned int _w1;
00069   };
00070 
00071 } // namespace ebl {
00072 
00073 #endif /* SCROLL_BOX0_H_ */