diff options
-rw-r--r-- | idl/gnome-desktop.idl | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/idl/gnome-desktop.idl b/idl/gnome-desktop.idl new file mode 100644 index 000000000..4517c4f04 --- /dev/null +++ b/idl/gnome-desktop.idl @@ -0,0 +1,67 @@ +// module Net is for IDL "standardized" among multiple projects + +module Net { +// module Desktop contains interfaces for the desktop environment itself - not +// desktop applications + +module Desktop { + + // This is a simple-to-implement least-common-denominator that + // we might expect any desktop environment to implement. + // Specific environments may provide more powerful interfaces. + + interface Desktop { + enum BackgroundType { + ImageBackground, + GradientBackground, + SolidBackground + }; + + enum ImageType { + TiledImage, + CenteredImage, + ScaledAspectImage, + ScaledImage + }; + + enum GradientType { + VerticalGradient, + HorizontalGradient + }; + + union BackgroundInfo switch (BackgroundType) { + case ImageBackground: + string filename; + ImageType imagetype; + case GradientBackground: + GradientType gradienttype; + // colors are 24-bit RGB packed into an int + int northwest_color; // top or left color + int southeast_color; // bottom or right color + case SolidBackground: + // 24-bit RGB packed into an int + int color; + }; + + void get_background_info (out BackgroundInfo info); + + void set_background_info (in BackgroundInfo info); + }; +}; +}; + +module GNOME { +module Desktop { + + // We subclass Net::Desktop and add our GNOME-specific features + + interface Desktop : Net::Desktop { + // Add an icon on the desktop for this URI + // The URI can be anything gnome-vfs understands + void add_link (in string uri); + + + }; + +}; +}; |