00001 // DasherWidgetInterface.h 00002 // 00004 // 00005 // Copyright (c) 2002 Iain Murray 00006 // 00008 00009 #ifndef __DasherWidgetInterface_h__ 00010 #define __DasherWidgetInterface_h__ 00011 00012 00013 #include "DasherTypes.h" 00014 #include <string> 00015 00016 namespace Dasher {class CDasherWidgetInterface;} 00017 class Dasher::CDasherWidgetInterface 00018 { 00019 public: 00021 // 00024 virtual void Start()=0; 00025 00026 // Times in milliseconds are required so Dasher runs at the correct speed. 00028 // 00035 virtual void TapOn(int MouseX, int MouseY, unsigned long Time)=0; 00036 00038 virtual void PauseAt(int MouseX, int MouseY)=0; 00039 00041 // 00044 virtual void Unpause(unsigned long Time)=0; 00045 00047 virtual void Redraw()=0; 00048 00049 // The widgets need to tell the engine when they have been affected 00050 // by external interaction 00051 00053 virtual void ChangeScreen()=0; 00054 00056 virtual void ChangeEdit()=0; 00057 00058 // These are needed so widgets know how to render the alphabet. 00059 // All strings are encoded in UTF-8. 00060 00062 virtual unsigned int GetNumberSymbols()=0; 00063 00065 // 00068 virtual const std::string& GetDisplayText(Dasher::symbol Symbol)=0; 00069 00071 // 00074 virtual const std::string& GetEditText(Dasher::symbol Symbol)=0; 00075 00078 virtual int GetTextColour(Dasher::symbol Symbol)=0; 00079 00081 // 00083 virtual Opts::ScreenOrientations GetAlphabetOrientation()=0; 00084 00086 virtual Opts::AlphabetTypes GetAlphabetType()=0; 00087 00089 virtual const std::string& GetTrainFile()=0; // Returns a fully-qualified path to file: 00090 // UserLocation + TrainFile 00091 }; 00092 00093 #endif /* #ifndef __DasherWidgetInterface_h__ */
1.4.2