def create_int_float_entry_subform(self):
        """Create form for int float entry arguments."""
        ### define an starting offset
        offset = 5, 30

        ### create list to hold widget
        int_float_entry_subform = List2D()

        ### instantiate value argument widgets

        ## define argument name
        arg_name = "value"

        ## instantiate and store text object

        text_obj = get_text_obj(reference_rect=self.rect, offset=offset, text=arg_name)

        int_float_entry_subform.append(text_obj)

        ## define needed arguments, instantiate and store
        ## widget for the int float entry value

        # define widget name
        widget_name = arg_name

        # define position data

        offset = 190, offset[1] + 5
        coordinates_name = "topleft"
        coordinates_value = self.rect.move(offset).topleft

        # instantiate and store

        value_int_float_entry = IntFloatEntry(
            loop_holder=self,
            value=0,
            numeric_classes_hint="int_float",
            allow_none=True,
            draw_on_window_resize=self.draw,
            name=widget_name,
            coordinates_name=coordinates_name,
            coordinates_value=coordinates_value,
        )

        int_float_entry_subform.append(value_int_float_entry)

        ### instantiate numeric_classes_hint argument
        ### widgets

        ## define argument name
        arg_name = "numeric_classes_hint"

        ## update offset
        offset = 5, offset[1] + 25

        ## instantiate and store text object

        text_obj = get_text_obj(reference_rect=self.rect, offset=offset, text=arg_name)

        int_float_entry_subform.append(text_obj)

        ### define needed arguments, instantiate and store
        ### widget for the int float entry
        ### numeric_classes_hint argument

        ## define widget name
        widget_name = arg_name

        ## define position data

        offset = 190, offset[1] + 5
        coordinates_name = "topleft"
        coordinates_value = self.rect.move(offset).topleft

        ## define options
        options = ["int", "float", "int_float"]

        ## instantiate and store

        numeric_classes_hint_option_tray = OptionTray(
            name=widget_name,
            value=options[0],
            options=options,
            coordinates_name=coordinates_name,
            coordinates_value=coordinates_value,
        )

        int_float_entry_subform.append(numeric_classes_hint_option_tray)

        ### instantiate multiple argument widgets:

        for arg_name in (
            "normal_drag_increment",
            "preciser_drag_increment",
            "normal_click_increment",
            "preciser_click_increment",
            "min_value",
            "max_value",
        ):
            ## update offset
            offset = 5, offset[1] + 25

            ## instantiate and store text object

            text_obj = get_text_obj(
                reference_rect=self.rect, offset=offset, text=arg_name
            )

            int_float_entry_subform.append(text_obj)

            ## update offset
            offset = 190, offset[1] + 5

            ## define widget name
            widget_name = arg_name

            ## define position data

            coordinates_value = self.rect.move(offset).topleft

            ## instantiate and store

            arg_int_float_entry = IntFloatEntry(
                loop_holder=self,
                name=widget_name,
                value=None,
                numeric_classes_hint="int_float",
                allow_none=True,
                draw_on_window_resize=self.draw,
                coordinates_name="topleft",
                coordinates_value=coordinates_value,
            )

            int_float_entry_subform.append(arg_int_float_entry)

        ### instantiate allow_none argument widgets

        ## define argument name
        arg_name = "allow_none"

        ## update offset
        offset = 5, offset[1] + 25

        ## instantiate and store text object

        text_obj = get_text_obj(reference_rect=self.rect, offset=offset, text=arg_name)

        int_float_entry_subform.append(text_obj)

        ## define needed arguments, instantiate and store
        ## widget for the int float entry allow_none
        ## argument

        # define widget name
        widget_name = arg_name

        # define position data

        offset = 190, offset[1] + 5
        coordinates_name = "topleft"
        coordinates_value = self.rect.move(offset).topleft

        # instantiate and store

        allow_none_check = CheckButton(
            value=False,
            name=widget_name,
            coordinates_name=coordinates_name,
            coordinates_value=coordinates_value,
        )

        int_float_entry_subform.append(allow_none_check)

        ### finally store the subform list in the
        ### subform map
        self.subform_map["int_float_entry"] = int_float_entry_subform
Create form for int float entry arguments.
nodezator/editing/widgetpicker/subforms.py