summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-console/emulation_widget.h
blob: a57803d7a16f570e6a2107111ead109e4f3e8331 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// opie console includes
#include "widget_layer.h"
#include "profile.h"
#include "common.h"

// qt includes
#include <qwidget.h>
#include <qpainter.h>
#include <qstring.h>
#include <qarray.h>
#include <qrect.h>


/**
 * EmulationWidget
 * simple implementation of EmulationLayer
 * (doesn't support scrollbar, history, etc, yet)
 */
class EmulationWidget : public WidgetLayer
{ Q_OBJECT

public:

    /**
     * constructor
     * @param const Profile& config, the configuration
     * @param QWidget* parent, parent widget
     * @param const char* name, the name of the widget
     */
    EmulationWidget( const Profile& config, QWidget *parent=0, const char *name =0 );

    /**
     * destructor
     */
    ~EmulationWidget();

    /**
     * sets the image 
     * @param QArray<Character> const newimg, the new image
     * @param int lines, lines of the new image
     * @param int columns, columns of the new image
     */
    virtual void setImage( QArray<Character> const newimg, int columns, int lines );

    /**
     * reloads configuration
     * @param const Profile& config, configuration
     */
    virtual void reloadConfig( const Profile& config );

    /**
     * sets the scrollbar (not yet implemented)
     */
    virtual void setScroll( int cursor, int slines );

    /**
     * scrolls (not yet implemented)
     * @param int value, scroll by this value
     */
    virtual void scroll( int value );

protected:
    
    /**
     * calculates current image bounds
     */
    virtual void calcGeometry();

    /**
     * draws a String
     * @param QString& string, string to be drawn
     * @param QPainter& painter, painter, that should draw
     * @param QRect rect, rect to be drawn into
     * @param Character attr, attributes of Characters
     * @param bool usePixmap, if to use the background pixmap (currently not supported) 
     * @param bool clear, if rect should be cleared
     */
    void drawAttrString( QString& string, QPainter& painter, QRect rect, Character attr, bool pm, bool clear );

};