From fe85f7d284783c24c3fe3566721dda30e508aad9 Mon Sep 17 00:00:00 2001 From: MenTaLguY Date: Thu, 10 May 2007 01:18:46 +0000 Subject: add logging of basic display properties (bzr r2994) --- src/debug/log-display-config.cpp | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/debug/log-display-config.cpp (limited to 'src/debug/log-display-config.cpp') diff --git a/src/debug/log-display-config.cpp b/src/debug/log-display-config.cpp new file mode 100644 index 000000000..0aeb71cf9 --- /dev/null +++ b/src/debug/log-display-config.cpp @@ -0,0 +1,89 @@ +/* + * Inkscape::Debug::log_display_config - log display configuration + * + * Authors: + * MenTaLguY + * + * Copyright (C) 2007 MenTaLguY + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include +#include +#include "debug/event-tracker.h" +#include "debug/logger.h" +#include "debug/simple-event.h" +#include "debug/log-display-config.h" + +namespace Inkscape { + +namespace Debug { + +namespace { + +typedef SimpleEvent ConfigurationEvent; + +class Monitor : public ConfigurationEvent { +public: + Monitor(GdkScreen *screen, gint monitor) : ConfigurationEvent("monitor") { + GdkRectangle area; + gdk_screen_get_monitor_geometry(screen, monitor, &area); + _addProperty("x", area.x); + _addProperty("y", area.y); + _addProperty("width", area.width); + _addProperty("height", area.height); + } +}; + +class Screen : public ConfigurationEvent { +public: + Screen(GdkScreen *s) : ConfigurationEvent("screen"), screen(s) { + _addProperty("width", gdk_screen_get_width(screen)); + _addProperty("height", gdk_screen_get_height(screen)); + } + void generateChildEvents() const { + gint n_monitors = gdk_screen_get_n_monitors(screen); + for ( gint i = 0 ; i < n_monitors ; i++ ) { + Logger::write(screen, i); + } + } + +private: + GdkScreen *screen; +}; + +class Display : public ConfigurationEvent { +public: + Display() : ConfigurationEvent("display") {} + void generateChildEvents() const { + GdkDisplay *display=gdk_display_get_default(); + gint n_screens = gdk_display_get_n_screens(display); + for ( gint i = 0 ; i < n_screens ; i++ ) { + GdkScreen *screen = gdk_display_get_screen(display, i); + Logger::write(screen); + } + } +}; + +} + +void log_display_config() { + Logger::write(); +} + +} + +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : -- cgit v1.2.3