public void drawString(int column, int row, String string, ScreenCharacterStyle... styles)
    {
        if(column >= areaSize.getColumns() || row >= areaSize.getRows() || string == null)
            return;

        string = TabBehaviour.ALIGN_TO_COLUMN_4.replaceTabs(string, column + topLeft.getColumn());
        
        if(string.length() + column > areaSize.getColumns())
            string = string.substring(0, areaSize.getColumns() - column);

        EnumSet<ScreenCharacterStyle> stylesSet = EnumSet.noneOf(ScreenCharacterStyle.class);
        if(styles != null && styles.length != 0)
            stylesSet = EnumSet.copyOf(Arrays.asList(styles));
        
        if(currentlyBold)
            stylesSet.add(ScreenCharacterStyle.Bold);

        screen.putString(column + topLeft.getColumn(), row + topLeft.getRow(), string,
                foregroundColor, backgroundColor, stylesSet);
    }