00001 #ifndef __DW_PLATFORM_HH__
00002 #define __DW_PLATFORM_HH__
00003
00004 #ifndef __INCLUDED_FROM_DW_CORE_HH__
00005 # error Do not include this file directly, use "core.hh" instead.
00006 #endif
00007
00008 namespace dw {
00009 namespace core {
00010
00016 class Platform: public lout::object::Object
00017 {
00018 public:
00019
00020
00021
00022
00023
00024
00029 virtual void setLayout (Layout *layout) = 0;
00030
00031
00032
00033
00034
00035
00036
00041 virtual void attachView (View *view) = 0;
00042
00047 virtual void detachView (View *view) = 0;
00048
00049
00050
00051
00052
00053
00054
00058 virtual int textWidth (style::Font *font, const char *text, int len) = 0;
00059
00063 virtual int nextGlyph (const char *text, int idx) = 0;
00064
00068 virtual int prevGlyph (const char *text, int idx) = 0;
00069
00073 virtual float dpiX () = 0;
00074
00078 virtual float dpiY () = 0;
00079
00080
00081
00082
00083
00084
00085
00094 virtual int addIdle (void (Layout::*func) ()) = 0;
00095
00099 virtual void removeIdle (int idleId) = 0;
00100
00101
00102
00103
00104
00105
00106
00119 virtual style::Font *createFont (style::FontAttrs *attrs,
00120 bool tryEverything) = 0;
00121
00122 virtual bool fontExists (const char *name) = 0;
00123
00127 virtual style::Color *createColor (int color) = 0;
00128
00132 virtual style::Tooltip *createTooltip (const char *text) = 0;
00133
00137 virtual void cancelTooltip () = 0;
00138
00139
00140
00141
00142
00143
00144 virtual Imgbuf *createImgbuf (Imgbuf::Type type, int width, int height) = 0;
00145
00149 virtual void copySelection(const char *text) = 0;
00150
00154 virtual ui::ResourceFactory *getResourceFactory () = 0;
00155 };
00156
00157 }
00158 }
00159
00160 #endif // __DW_PLATFORM_HH__