LCOV - code coverage report
Current view: top level - gui/source - gui_marked_set.c (source / functions) Hit Total Coverage
Test: crystal-facet-uml_v1.61.0_covts Lines: 0 49 0.0 %
Date: 2024-10-26 21:44:38 Functions: 0 4 0.0 %

          Line data    Source code
       1             : /* File: gui_marked_set.c; Copyright and License: see below */
       2             : 
       3             : #include "gui_marked_set.h"
       4             : #include "entity/data_table.h"
       5             : #include "entity/data_id.h"
       6             : #include "u8/u8_trace.h"
       7             : #include "u8/u8_log.h"
       8             : #include <gdk/gdk.h>
       9             : 
      10             : static bool gui_marked_set_glib_signal_initialized = false;
      11             : static guint gui_marked_set_glib_signal_id = 0;
      12             : const char *GUI_MARKED_SET_GLIB_SIGNAL_NAME = "cfu_object_selected";
      13             : 
      14           0 : void gui_marked_set_init ( gui_marked_set_t *this_,
      15             :                            GObject *signal_source,
      16             :                            void(*request_focus_call)(struct gui_sketch_area_struct* user_data, data_id_t diagram_wish),
      17             :                            struct gui_sketch_area_struct* request_focus_user_data )
      18             : {
      19           0 :     U8_TRACE_BEGIN();
      20           0 :     assert( NULL != signal_source );
      21             : 
      22           0 :     data_full_id_init_void( &((*this_).focused) );
      23           0 :     data_id_init_void( &((*this_).focused_diagram) );
      24           0 :     data_id_init_void( &((*this_).highlighted) );
      25           0 :     (*this_).highlighted_kind = LAYOUT_SUBELEMENT_KIND_VOID;
      26           0 :     data_id_init_void( &((*this_).highlighted_diagram) );
      27           0 :     (*this_).highlighted_button = GUI_SKETCH_ACTION_NONE;
      28             : 
      29           0 :     data_small_set_init( &((*this_).selected_set) );
      30             : 
      31             :     /* define a new signal */
      32           0 :     if ( ! gui_marked_set_glib_signal_initialized )
      33             :     {
      34           0 :         gui_marked_set_glib_signal_id = g_signal_new (
      35             :             GUI_MARKED_SET_GLIB_SIGNAL_NAME,
      36             :             G_TYPE_OBJECT,
      37             :             G_SIGNAL_RUN_FIRST,
      38             :             0,
      39             :             NULL,
      40             :             NULL,
      41             :             g_cclosure_marshal_VOID__POINTER,
      42             :             G_TYPE_NONE,
      43             :             1,
      44             :             G_TYPE_POINTER /* data_id_t* */
      45             :         );
      46           0 :         gui_marked_set_glib_signal_initialized = true;
      47           0 :         U8_TRACE_INFO_INT( "g_signal_new(\"cfu_object_selected\") returned new signal id", gui_marked_set_glib_signal_id );
      48             :     }
      49             : 
      50           0 :     (*this_).signal_source = signal_source;
      51             : 
      52             :     /* store a function pointer and parameter for requesting focus later */
      53           0 :     (*this_).request_focus_call = request_focus_call;
      54           0 :     (*this_).request_focus_user_data = request_focus_user_data;
      55             : 
      56           0 :     U8_TRACE_END();
      57           0 : }
      58             : 
      59           0 : void gui_marked_set_destroy( gui_marked_set_t *this_ )
      60             : {
      61           0 :     U8_TRACE_BEGIN();
      62             : 
      63           0 :     data_full_id_destroy( &((*this_).focused) );
      64           0 :     data_id_destroy( &((*this_).focused_diagram) );
      65           0 :     data_id_destroy( &((*this_).highlighted) );
      66           0 :     data_id_destroy( &((*this_).highlighted_diagram) );
      67           0 :     data_small_set_destroy( &((*this_).selected_set) );
      68           0 :     (*this_).signal_source = NULL;
      69           0 :     (*this_).request_focus_call = NULL;
      70           0 :     (*this_).request_focus_user_data = NULL;
      71             : 
      72           0 :     U8_TRACE_END();
      73           0 : }
      74             : 
      75           0 : void gui_marked_set_reset( gui_marked_set_t *this_ )
      76             : {
      77           0 :     U8_TRACE_BEGIN();
      78           0 :     assert( NULL != (*this_).signal_source );
      79             : 
      80           0 :     data_full_id_init_void( &((*this_).focused) );
      81           0 :     data_id_init_void( &((*this_).focused_diagram) );
      82           0 :     data_id_init_void( &((*this_).highlighted) );
      83           0 :     (*this_).highlighted_kind = LAYOUT_SUBELEMENT_KIND_VOID;
      84           0 :     data_id_init_void( &((*this_).highlighted_diagram) );
      85           0 :     (*this_).highlighted_button = GUI_SKETCH_ACTION_NONE;
      86           0 :     data_small_set_reinit( &((*this_).selected_set) );
      87             : 
      88           0 :     U8_TRACE_END();
      89           0 : }
      90             : 
      91           0 : void gui_marked_set_private_notify_listeners( gui_marked_set_t *this_, data_id_t modified_real_object_id )
      92             : {
      93           0 :     U8_TRACE_BEGIN();
      94             : 
      95           0 :     U8_TRACE_INFO( "g_signal_emit to listeners" );
      96           0 :     g_signal_emit( (*this_).signal_source, gui_marked_set_glib_signal_id, 0, &modified_real_object_id );
      97             : 
      98           0 :     U8_TRACE_END();
      99           0 : }
     100             : 
     101             : 
     102             : /*
     103             : Copyright 2016-2024 Andreas Warnke
     104             : 
     105             : Licensed under the Apache License, Version 2.0 (the "License");
     106             : you may not use this file except in compliance with the License.
     107             : You may obtain a copy of the License at
     108             : 
     109             :     http://www.apache.org/licenses/LICENSE-2.0
     110             : 
     111             : Unless required by applicable law or agreed to in writing, software
     112             : distributed under the License is distributed on an "AS IS" BASIS,
     113             : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     114             : See the License for the specific language governing permissions and
     115             : limitations under the License.
     116             : */

Generated by: LCOV version 1.16