LCOV - code coverage report
Current view: top level - vcl/unx/gtk/window - xid_fullscreen_on_all_monitors.c (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 0 42 0.0 %
Date: 2014-04-11 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  */
       9             : 
      10             : #include <dlfcn.h>
      11             : #include <stdlib.h>
      12             : 
      13             : typedef int Window;
      14             : typedef union  _GdkEvent GdkEvent;
      15             : typedef struct _GdkWindow GdkWindow;
      16             : typedef struct _GdkDisplay GdkDisplay;
      17             : typedef struct _GdkScreen GdkScreen;
      18             : 
      19             : typedef enum
      20             : {
      21             :     GDK_FULLSCREEN_ON_CURRENT_MONITOR,
      22             :     GDK_FULLSCREEN_ON_ALL_MONITORS
      23             : } GdkFullscreenMode;
      24             : 
      25           0 : int main(int argc, char *argv[])
      26             : {
      27             :     void *handle;
      28             :     void (*gtk_init)(int*, char***);
      29             :     GdkWindow* (*gdk_x11_window_foreign_new_for_display)(GdkDisplay*, Window);
      30             :     GdkDisplay* (*gdk_display_get_default)(void);
      31             :     GdkEvent* (*gdk_event_get)(void);
      32             :     void (*gtk_main_do_event)(GdkEvent*);
      33             :     void (*gdk_event_free)(GdkEvent*);
      34             :     void (*gdk_window_fullscreen)(GdkWindow *);
      35             :     void (*gdk_window_set_fullscreen_mode)(GdkWindow *, GdkFullscreenMode);
      36             : 
      37             :     GdkEvent *event;
      38             :     GdkWindow *window;
      39             :     int windowid;
      40             : 
      41           0 :     handle = dlopen("libgtk-3.so.0", RTLD_LAZY);
      42           0 :     if( NULL == handle )
      43           0 :         return -1;
      44             : 
      45           0 :     gtk_init = (void (*) (int*, char***))
      46           0 :         dlsym(handle, "gtk_init");
      47           0 :     gdk_x11_window_foreign_new_for_display = (GdkWindow* (*)(GdkDisplay*, Window))
      48           0 :         dlsym(handle, "gdk_x11_window_foreign_new_for_display");
      49           0 :     gdk_display_get_default = (GdkDisplay* (*)(void))
      50           0 :         dlsym(handle, "gdk_display_get_default");
      51           0 :     gdk_event_get = (GdkEvent* (*)(void))
      52           0 :         dlsym(handle, "gdk_event_get");
      53           0 :     gtk_main_do_event = (void (*)(GdkEvent*))
      54           0 :         dlsym(handle, "gtk_main_do_event");
      55           0 :     gdk_event_free = (void (*)(GdkEvent*))
      56           0 :         dlsym(handle, "gdk_event_free");
      57           0 :     gdk_window_fullscreen = (void (*)(GdkWindow *))
      58           0 :         dlsym(handle, "gdk_window_fullscreen");
      59           0 :     gdk_window_set_fullscreen_mode = (void (*)(GdkWindow *, GdkFullscreenMode))
      60           0 :         dlsym(handle, "gdk_window_set_fullscreen_mode");
      61             : 
      62           0 :     if (!gtk_init ||
      63           0 :         !gdk_x11_window_foreign_new_for_display ||
      64           0 :         !gdk_display_get_default ||
      65           0 :         !gdk_event_get ||
      66           0 :         !gtk_main_do_event ||
      67           0 :         !gdk_event_free ||
      68           0 :         !gdk_window_fullscreen ||
      69             :         !gdk_window_set_fullscreen_mode)
      70             :     {
      71           0 :         dlclose(handle);
      72           0 :         return -1;
      73             :     }
      74             : 
      75           0 :     gtk_init(&argc, &argv);
      76             : 
      77           0 :     windowid = atoi(argv[1]);
      78             : 
      79           0 :     window = gdk_x11_window_foreign_new_for_display(gdk_display_get_default(), windowid);
      80           0 :     if (!window)
      81             :     {
      82           0 :         dlclose(handle);
      83           0 :         return -1;
      84             :     }
      85             : 
      86           0 :     gdk_window_set_fullscreen_mode(window, GDK_FULLSCREEN_ON_ALL_MONITORS);
      87           0 :     gdk_window_fullscreen(window);
      88             : 
      89           0 :     while ((event = gdk_event_get()) != NULL)
      90             :     {
      91           0 :         gtk_main_do_event(event);
      92           0 :         gdk_event_free(event);
      93             :     }
      94             : 
      95           0 :     dlclose(handle);
      96           0 :     return 0;
      97             : }
      98             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
      99             : 

Generated by: LCOV version 1.10