Line data Source code
1 : /* File: layout_diagram.inl; Copyright and License: see below */ 2 : 3 : #include <assert.h> 4 : 5 5 : static inline void layout_diagram_init ( layout_diagram_t *this_, const data_diagram_t *diagram_data ) 6 : { 7 5 : assert ( NULL != diagram_data ); 8 : 9 5 : geometry_rectangle_init_empty( &((*this_).bounds) ); 10 5 : geometry_rectangle_init_empty( &((*this_).draw_area) ); 11 5 : geometry_rectangle_init_empty( &((*this_).label_box) ); 12 5 : (*this_).data = diagram_data; 13 5 : } 14 : 15 4 : static inline void layout_diagram_destroy ( layout_diagram_t *this_ ) 16 : { 17 4 : geometry_rectangle_destroy( &((*this_).bounds) ); 18 4 : geometry_rectangle_destroy( &((*this_).draw_area) ); 19 4 : geometry_rectangle_destroy( &((*this_).label_box) ); 20 4 : (*this_).data = NULL; 21 4 : } 22 : 23 13 : static inline bool layout_diagram_is_valid ( const layout_diagram_t *this_ ) 24 : { 25 : bool result; 26 13 : if ( (*this_).data == NULL ) 27 : { 28 0 : result = false; /* cannot happen on initialized objects */ 29 : } 30 : else 31 : { 32 13 : result = data_diagram_is_valid( (*this_).data ); 33 : } 34 13 : return result; 35 : } 36 : 37 0 : static inline const geometry_rectangle_t *layout_diagram_get_bounds_const ( const layout_diagram_t *this_ ) 38 : { 39 0 : return &((*this_).bounds); 40 : } 41 : 42 0 : static inline void layout_diagram_set_bounds ( layout_diagram_t *this_, const geometry_rectangle_t *diagram_bounds ) 43 : { 44 0 : geometry_rectangle_replace( &((*this_).bounds), diagram_bounds ); 45 0 : } 46 : 47 0 : static inline const geometry_rectangle_t *layout_diagram_get_draw_area_const ( const layout_diagram_t *this_ ) 48 : { 49 0 : return &((*this_).draw_area); 50 : } 51 : 52 0 : static inline void layout_diagram_set_draw_area ( layout_diagram_t *this_, const geometry_rectangle_t *diagram_draw_area ) 53 : { 54 0 : geometry_rectangle_replace( &((*this_).draw_area), diagram_draw_area ); 55 0 : } 56 : 57 0 : static inline const geometry_rectangle_t *layout_diagram_get_label_box_const ( const layout_diagram_t *this_ ) 58 : { 59 0 : return &((*this_).label_box); 60 : } 61 : 62 0 : static inline void layout_diagram_set_label_box ( layout_diagram_t *this_, const geometry_rectangle_t *label_box ) 63 : { 64 0 : geometry_rectangle_replace( &((*this_).label_box), label_box ); 65 0 : } 66 : 67 0 : static inline const data_diagram_t *layout_diagram_get_data_const ( const layout_diagram_t *this_ ) 68 : { 69 0 : assert ( NULL != (*this_).data ); 70 0 : return (*this_).data; 71 : } 72 : 73 : static inline data_row_id_t layout_diagram_get_diagram_id ( const layout_diagram_t *this_ ) 74 : { 75 : return data_diagram_get_row_id( (*this_).data ); 76 : } 77 : 78 : 79 : /* 80 : Copyright 2018-2024 Andreas Warnke 81 : 82 : Licensed under the Apache License, Version 2.0 (the "License"); 83 : you may not use this file except in compliance with the License. 84 : You may obtain a copy of the License at 85 : 86 : http://www.apache.org/licenses/LICENSE-2.0 87 : 88 : Unless required by applicable law or agreed to in writing, software 89 : distributed under the License is distributed on an "AS IS" BASIS, 90 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 91 : See the License for the specific language governing permissions and 92 : limitations under the License. 93 : */