set_tick_image Function

private function set_tick_image(self, file) result(ok)

Draw the ticks as an image (OpenFrames' setTickImage; found with find_data_file; '' for disks again). False if it cannot be read.

Type Bound

CoordinateAxes

Arguments

Type IntentOptional Attributes Name
class(CoordinateAxes), intent(inout) :: self
character(len=*), intent(in) :: file

image file ('' for disks)

Return Value logical


Calls

proc~~set_tick_image~~CallsGraph proc~set_tick_image CoordinateAxes%set_tick_image interface~vkf_image_delete vkf_image_delete proc~set_tick_image->interface~vkf_image_delete interface~vkf_image_read vkf_image_read proc~set_tick_image->interface~vkf_image_read proc~find_data_file find_data_file proc~set_tick_image->proc~find_data_file proc~make_axes make_axes proc~set_tick_image->proc~make_axes proc~find_in_dirs find_in_dirs proc~find_data_file->proc~find_in_dirs interface~vkf_switch_create vkf_switch_create proc~make_axes->interface~vkf_switch_create proc~add add proc~make_axes->proc~add proc~append append proc~make_axes->proc~append proc~color~2 ReferenceFrame%color proc~make_axes->proc~color~2 proc~line_node line_node proc~make_axes->proc~line_node proc~marker_node marker_node proc~make_axes->proc~marker_node proc~replace ShapeNodes%replace proc~make_axes->proc~replace interface~vkf_node_add_child vkf_node_add_child proc~add->interface~vkf_node_add_child interface~vkf_node_delete vkf_node_delete proc~add->interface~vkf_node_delete proc~check_status check_status proc~add->proc~check_status interface~vkf_line_create vkf_line_create proc~line_node->interface~vkf_line_create proc~line_node->proc~check_status proc~line_set_points line_set_points proc~line_node->proc~line_set_points proc~line_set_segments line_set_segments proc~line_node->proc~line_set_segments proc~line_set_style line_set_style proc~line_node->proc~line_set_style interface~vkf_marker_create vkf_marker_create proc~marker_node->interface~vkf_marker_create proc~marker_node->proc~check_status proc~marker_node->proc~line_set_points proc~marker_set_style marker_set_style proc~marker_node->proc~marker_set_style interface~vkf_compile_node vkf_compile_node proc~replace->interface~vkf_compile_node proc~replace->interface~vkf_node_add_child proc~replace->interface~vkf_node_delete interface~vkf_node_remove_child vkf_node_remove_child proc~replace->interface~vkf_node_remove_child proc~replace->proc~check_status interface~vkf_line_points vkf_line_points proc~line_set_points->interface~vkf_line_points interface~vkf_line_points_changed vkf_line_points_changed proc~line_set_points->interface~vkf_line_points_changed interface~vkf_line_style vkf_line_style proc~line_set_segments->interface~vkf_line_style interface~vkf_line_style_changed vkf_line_style_changed proc~line_set_segments->interface~vkf_line_style_changed proc~line_set_style->interface~vkf_line_style proc~line_set_style->interface~vkf_line_style_changed proc~marker_set_style->interface~vkf_line_style proc~marker_set_style->interface~vkf_line_style_changed

Source Code

    logical function set_tick_image(self, file) result(ok)
        class(CoordinateAxes), intent(inout) :: self
        character(len=*), intent(in) :: file                !! image file ('' for disks)
        character(len=:), allocatable :: path
        type(c_ptr) :: image
        ok = .true.
        image = c_null_ptr
        if (len_trim(file) > 0) then
            path = find_data_file(file)
            if (len(path) > 0) image = vkf_image_read(path, len(path, kind=c_int))
            ok = c_associated(image)
            if (.not. ok) return
        end if
        if (c_associated(self%image)) call vkf_image_delete(self%image)
        self%image = image
        self%image_file = trim(file)
        self%shape_ = merge(MARKER_IMAGE, MARKER_DISK, c_associated(image))
        call make_axes(self)
    end function set_tick_image