From 651b6c612db4e809c506973996f2580c4158ac3a Mon Sep 17 00:00:00 2001 From: mickeyl Date: Sat, 27 Sep 2003 11:29:26 +0000 Subject: merge dasher which has been introduced in BRANCH first (wtf?) into HEAD --- (limited to 'inputmethods/dasher/DasherScreen.h') diff --git a/inputmethods/dasher/DasherScreen.h b/inputmethods/dasher/DasherScreen.h new file mode 100644 index 0000000..36ca780 --- a/dev/null +++ b/inputmethods/dasher/DasherScreen.h @@ -0,0 +1,102 @@ +//! Class definition for the Dasher screen +// DasherScreen.h +// +///////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2001-2002 David Ward +// +///////////////////////////////////////////////////////////////////////////// + +#ifndef __DasherScreen_h_ +#define __DasherScreen_h_ + +#include "DasherWidgetInterface.h" +#include "DasherTypes.h" + +namespace Dasher {class CDasherScreen;} +class Dasher::CDasherScreen +{ +public: + //! \param width Width of the screen + //! \param height Height of the screen + CDasherScreen(int width,int height) + : m_iWidth(width), m_iHeight(height) {} + + //! Set the widget interface used for communication with the core + virtual void SetInterface(CDasherWidgetInterface* DasherInterface) {m_DasherInterface = DasherInterface;} + + //! Return the width of the screen + int GetWidth() const { return m_iWidth; } + + //! Return the height of the screen + int GetHeight() const { return m_iHeight; } + + //! Structure defining a point on the screen + typedef struct tagpoint { int x; int y; } point; + + //! Set the Dasher font (ie, the screen font) to Name + //! + //! This is the font used to render letters in the main screen + virtual void SetFont(std::string Name)=0; + + //! Set the Dasher font to Normal, Big or VBig + virtual void SetFontSize(Dasher::Opts::FontSize fontsize)=0; + + //! Return the Dasher font size + virtual Dasher::Opts::FontSize GetFontSize()=0; + + // DasherView asks for the width and height of the given symbol at a requested height, + // then it is able to sensibly specify the upper left corner in DrawText. + //! Set Width and Height to those of the character Character at size Size + virtual void TextSize(symbol Character, int* Width, int* Height, int Size) const=0; + //! Draw character Character of size Size positioned at x1 and y1 + virtual void DrawText(symbol Character, int x1, int y1, int Size) const=0; + + + // Draw a filled rectangle - given position and color id + //! Draw a filled rectangle + // + //! Draw a coloured rectangle on the screen + //! \param x1 top left of rectangle (x coordinate) + //! \param y1 top left corner of rectangle (y coordinate) + //! \param x2 bottom right of rectangle (x coordinate) + //! \param y2 bottom right of rectangle (y coordinate) + //! \param Color the colour to be used (numeric) + //! \param ColorScheme Which colourscheme is to be used + virtual void DrawRectangle(int x1, int y1, int x2, int y2, int Color, Opts::ColorSchemes ColorScheme) const=0; + + // Draw a line of fixed colour (usually black). Intended for static UI elements such as a cross-hair + //! Draw a line between each of the points in the array + // + //! \param Number the number of points in the array + virtual void Polyline(point* Points, int Number) const=0; + + // Draw a filled polygon - given vertices and color id + // This is not (currently) used in standard Dasher. However, it could be very + // useful in the future. Please implement unless it will be very difficult, + // in which case make this function call Polyline. + //! Draw a filled polygon + // + //! \param Points array of points defining the edge of the polygon + //! \param Number number of points in the array + //! \param Color colour of the polygon (numeric) + //! \param Colorscheme Which colourscheme is to be used + virtual void DrawPolygon(point* Points, int Number, int Color, Opts::ColorSchemes ColorScheme) const=0; + + // Signal the screen when a frame is started and finished + //! Signal that a frame is being started + virtual void Blank() const=0; + + //! Signal that a frame is finished - the screen should be updated + virtual void Display()=0; + +protected: + //! Width and height of the screen + const int m_iWidth, m_iHeight; + + //! Pointer to a widget interface for communication with the core + CDasherWidgetInterface* m_DasherInterface; +}; + + +#endif /* #ifndef __DasherScreen_h_ */ -- cgit v0.9.0.2