00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ARCHON_DISPLAY_CONNECTION_H
00021 #define ARCHON_DISPLAY_CONNECTION_H
00022
00023 #include <stdexcept>
00024 #include <string>
00025
00026 #include <archon/util/ref.H>
00027 #include <archon/display/implementation.H>
00028 #include <archon/display/screen.H>
00029
00030 namespace Archon
00031 {
00032 namespace Display
00033 {
00034 using namespace std;
00035 using namespace Utilities;
00036
00037
00038
00039
00040
00041 struct Implementation;
00042 struct Screen;
00043
00044
00054 struct Connection: virtual RefObjectBase
00055 {
00061 virtual Ref<Implementation> getImplementation() = 0;
00062
00070 virtual Ref<Screen> getDefaultScreen() = 0;
00071
00079 virtual int getNumberOfScreens() = 0;
00080
00090 virtual Ref<Screen> getScreen(int index) throw(out_of_range) = 0;
00091 };
00092 }
00093 }
00094
00095 #endif // ARCHON_DISPLAY_CONNECTION_H