Установите ширину кнопки панели инструментов, определенную в cl_gui_toolbar

У меня есть панель инструментов, определенная с классом cl_gui_toolbar, которая отображается в контейнере (который был создан с помощью класса cl_gui_custom_container). Я добавил в него несколько кнопок и групп кнопок.

Теперь мой пользователь хочет, чтобы одна из этих групп кнопок была больше, потому что пользователь может не распознать, что кнопка есть. Есть ли способ установить ширину группы кнопок?

Вот мой текущий код:

METHOD init_toolbar.

    DATA: lt_buttons_data TYPE ttb_button,
          ls_button_data TYPE LINE OF ttb_button.

    go_toolbar_container = NEW cl_gui_custom_container( container_name = 'TOOLBAR_1000' ).
    go_toolbar = NEW cl_gui_toolbar( parent = go_toolbar_container ).

" Some other buttons
" ...
" ...

  CLEAR ls_button_data.
  CLEAR lt_buttons_data.

  ls_button_data-function =  'DBFILTER'.
  ls_button_data-icon =      '@EX@'.
  ls_button_data-quickinfo = 'Quickinfo'.
  ls_button_data-text =      'SmallText'.
  ls_button_data-butn_type = cntb_btype_menu.
  APPEND ls_button_data TO lt_buttons_data.

  go_toolbar->add_button_group( data_table = lt_buttons_data ).

  CLEAR ct_expand.
  ct_expand = NEW cl_ctmenu( ).

  ct_expand->add_function( fcode = '1' text = '1' checked = abap_false ).
  ct_expand->add_function( fcode = '2' text = '2' checked = abap_false ).
  ct_expand->add_function( fcode = '3' text = '3' checked = abap_false ).

  CLEAR wa_ctxmenu.
  wa_ctxmenu-function = 'DBFILTER'.
  wa_ctxmenu-ctmenu = ct_expand.
  APPEND wa_ctxmenu TO table_ctxmenu.
  go_toolbar->assign_static_ctxmenu_table( table_ctxmenu = table_ctxmenu ).

ENDMETHOD.

Знаете ли вы, как установить ширину этой группы кнопок?

P.S.: Мне только что сообщили, что текст кнопки (например, "smallText") можно заменить если на более длинный текст, если нет другого выхода.


person Sasku    schedule 03.12.2019    source источник
comment
Нет. Обходной путь: используйте класс CL_GUI_HTML_VIEWER для определения кнопок с помощью HTML-кода и стилей CSS. Но сомневаюсь, что стоит тратить на это время.   -  person Sandra Rossi    schedule 03.12.2019
comment
Ну, это слишком много работы. Тогда я просто использую другой текст. Спасибо!   -  person Sasku    schedule 03.12.2019


Ответы (1)


Невозможно настроить ширину кнопки в классе CL_GUI_TOOLBAR как количество пикселей.

В качестве обходного пути:

  • Введите более длинный текст. Может быть, введите «неразрывные пробелы» в конце вашего текста. Это символ Юникода U+00A0 (CL_ABAP_CONV_IN_CE=>UCCP( '00A0' )).
  • Вместо CL_GUI_TOOLBAR используйте класс CL_GUI_HTML_VIEWER для определения кнопок с кодом HTML и стилями CSS. Но сомневаюсь, что стоит тратить на это время.
person Sandra Rossi    schedule 04.12.2019