LCOV - code coverage report
Current view: top level - gui/source - gui_main.c (source / functions) Hit Total Coverage
Test: crystal-facet-uml_v1.56.1_covts Lines: 0 28 0.0 %
Date: 2024-03-23 04:33:35 Functions: 0 2 0.0 %

          Line data    Source code
       1             : /* File: gui_main.c; Copyright and License: see below */
       2             : 
       3             : #include "gui_main.h"
       4             : #include "gui_main_window.h"
       5             : #include "gui_window_manager.h"
       6             : #include "storage/data_database_reader.h"
       7             : #include "meta/meta_info.h"
       8             : #include "u8/u8_trace.h"
       9             : #include "u8/u8_log.h"
      10             : #include <gtk/gtk.h>
      11             : #include <stdio.h>
      12             : #include <stdlib.h>
      13             : 
      14             : static gui_window_manager_t window_manager;
      15             : 
      16           0 : static void gui_main_activate_callback( GtkApplication* app, gpointer user_data )
      17             : {
      18           0 :     U8_TRACE_BEGIN();
      19           0 :     U8_TRACE_TIMESTAMP();
      20           0 :     gui_window_manager_t *const win_manager = user_data;
      21           0 :     assert( win_manager != NULL );
      22             : 
      23           0 :     gui_window_manager_open_main_window( win_manager );
      24             : 
      25           0 :     U8_TRACE_END();
      26           0 : }
      27             : 
      28             : #if (( GTK_MAJOR_VERSION == 4 ) && ( GTK_MINOR_VERSION <= 6 ))
      29             : #define G_APPLICATION_DEFAULT_FLAGS (G_APPLICATION_FLAGS_NONE)
      30             : #endif  /* (( GTK_MAJOR_VERSION == 4 ) && ( GTK_MINOR_VERSION <= 6 )) */
      31             : 
      32           0 : void gui_main ( io_data_file_t *data_file, int argc, char **argv ) {
      33           0 :     U8_TRACE_BEGIN();
      34           0 :     U8_TRACE_TIMESTAMP();
      35           0 :     U8_TRACE_INFO_INT( "sizeof(gui_window_manager_t):", sizeof(gui_window_manager_t) );
      36             :     /* expect that no gtk_get_micro_version needed for analysis: */
      37           0 :     U8_LOG_EVENT_INT( "compiled against gtk:    ", GTK_MAJOR_VERSION * 1000 + GTK_MINOR_VERSION );
      38           0 :     U8_LOG_EVENT_INT( "linked against gtk:    ", gtk_get_major_version() * 1000 + gtk_get_minor_version() );
      39           0 :     U8_TRACE_INFO( "initializing gui thread..." );
      40             : 
      41             :     /* init */
      42           0 :     GtkApplication *const gtk_app
      43           0 :         = gtk_application_new( META_INFO_APPLICATION_ID_STR, G_APPLICATION_DEFAULT_FLAGS );
      44             : 
      45           0 :     gui_window_manager_init( &window_manager, data_file, gtk_app );
      46             : 
      47           0 :     g_signal_connect( gtk_app, "activate", G_CALLBACK( gui_main_activate_callback ), &window_manager);
      48             : 
      49             :     /* run */
      50           0 :     U8_LOG_EVENT( "Connecting to a display (if display is remote, this may take some seconds) ..." );
      51           0 :     int error_code = g_application_run( G_APPLICATION(gtk_app), argc, argv );
      52           0 :     if ( error_code != 0 )
      53             :     {
      54           0 :         U8_LOG_ERROR_INT( "g_application_run:", error_code );
      55             :     }
      56             : 
      57             :     /* destroy */
      58           0 :     gui_window_manager_destroy( &window_manager );
      59           0 :     g_object_unref( gtk_app );
      60             : 
      61           0 :     U8_TRACE_TIMESTAMP();
      62           0 :     U8_TRACE_END();
      63           0 : }
      64             : 
      65             : 
      66             : /*
      67             : Copyright 2016-2024 Andreas Warnke
      68             : 
      69             : Licensed under the Apache License, Version 2.0 (the "License");
      70             : you may not use this file except in compliance with the License.
      71             : You may obtain a copy of the License at
      72             : 
      73             :     http://www.apache.org/licenses/LICENSE-2.0
      74             : 
      75             : Unless required by applicable law or agreed to in writing, software
      76             : distributed under the License is distributed on an "AS IS" BASIS,
      77             : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      78             : See the License for the specific language governing permissions and
      79             : limitations under the License.
      80             : */

Generated by: LCOV version 1.16