HDPI icon scaling (#2609)

* setting for icon scaling

* enforce icon scaling

* linter fixes
This commit is contained in:
Alexander Tsybulsky 2019-04-05 13:47:09 +03:00 committed by Lars Hvam
parent 604c68200e
commit 3c80012b37
4 changed files with 145 additions and 61 deletions

View File

@ -187,6 +187,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ro_html->add( '<link rel="stylesheet" type="text/css" href="css/ag-icons.css">' ). ro_html->add( '<link rel="stylesheet" type="text/css" href="css/ag-icons.css">' ).
ro_html->add( '<script type="text/javascript" src="js/common.js"></script>' ). "#EC NOTEXT ro_html->add( '<script type="text/javascript" src="js/common.js"></script>' ). "#EC NOTEXT
CASE mo_settings->get_icon_scaling( ). " Enforce icon scaling
WHEN mo_settings->c_icon_scaling-large.
ro_html->add( '<style>.icon { font-size: 200% }</style>' ).
WHEN mo_settings->c_icon_scaling-small.
ro_html->add( '<style>.icon.large { font-size: inherit }</style>' ).
ENDCASE.
ro_html->add( '</head>' ). "#EC NOTEXT ro_html->add( '</head>' ). "#EC NOTEXT
ENDMETHOD. ENDMETHOD.

View File

@ -41,6 +41,9 @@ CLASS zcl_abapgit_gui_page_settings DEFINITION
METHODS render_max_lines METHODS render_max_lines
RETURNING RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html . VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS render_icon_scaling
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS render_adt_jump_enabled METHODS render_adt_jump_enabled
RETURNING RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html . VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
@ -178,7 +181,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
METHOD post. METHOD post.
DATA: lv_i_param_value TYPE i. DATA lv_i_param_value TYPE i.
DATA lv_c_param_value TYPE c.
FIELD-SYMBOLS: <ls_post_field> TYPE ihttpnvp. FIELD-SYMBOLS: <ls_post_field> TYPE ihttpnvp.
@ -234,6 +238,14 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
mo_settings->set_parallel_proc_disabled( abap_false ). mo_settings->set_parallel_proc_disabled( abap_false ).
ENDIF. ENDIF.
READ TABLE mt_post_fields ASSIGNING <ls_post_field> WITH KEY name = 'icon_scaling'.
IF sy-subrc = 0.
lv_c_param_value = <ls_post_field>-value.
mo_settings->set_icon_scaling( lv_c_param_value ).
ELSE.
mo_settings->set_icon_scaling( '' ).
ENDIF.
post_hotkeys( ). post_hotkeys( ).
ENDMETHOD. ENDMETHOD.
@ -408,6 +420,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
ro_html->add( render_section_begin( |User specific settings| ) ). ro_html->add( render_section_begin( |User specific settings| ) ).
ro_html->add( render_start_up( ) ). ro_html->add( render_start_up( ) ).
ro_html->add( render_max_lines( ) ). ro_html->add( render_max_lines( ) ).
ro_html->add( render_icon_scaling( ) ).
ro_html->add( |<hr>| ). ro_html->add( |<hr>| ).
ro_html->add( render_adt_jump_enabled( ) ). ro_html->add( render_adt_jump_enabled( ) ).
ro_html->add( |<hr>| ). ro_html->add( |<hr>| ).
@ -539,6 +552,41 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_icon_scaling.
DATA:
BEGIN OF ls_sel,
auto TYPE string,
large TYPE string,
small TYPE string,
END OF ls_sel.
CASE mo_settings->get_icon_scaling( ).
WHEN zcl_abapgit_settings=>c_icon_scaling-large.
ls_sel-large = ' selected'.
WHEN zcl_abapgit_settings=>c_icon_scaling-small.
ls_sel-small = ' selected'.
WHEN OTHERS.
ls_sel-auto = ' selected'.
ENDCASE.
CREATE OBJECT ro_html.
ro_html->add( |<h2>UI Icon scaling</h2>| ).
ro_html->add( |<label for="icon_scaling">High DPI icon scaling</label>| ).
ro_html->add( |<br>| ).
ro_html->add( |<select name="icon_scaling" size="3">| ).
ro_html->add( |<option value=""{ ls_sel-auto }>Auto</option>| ).
ro_html->add( |<option value="{ zcl_abapgit_settings=>c_icon_scaling-large }"{ ls_sel-large }>Large</option>| ).
ro_html->add( |<option value="{ zcl_abapgit_settings=>c_icon_scaling-small }"{ ls_sel-small }>Small</option>| ).
ro_html->add( |</select>| ).
ro_html->add( |<br>| ).
ro_html->add( |<br>| ).
ENDMETHOD.
METHOD render_link_hints. METHOD render_link_hints.
DATA: lv_checked TYPE string, DATA: lv_checked TYPE string,
@ -675,11 +723,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_gui_page_hotkey~get_hotkey_actions.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event. METHOD zif_abapgit_gui_event_handler~on_event.
* todo, check input values eg INT * todo, check input values eg INT
@ -703,4 +746,9 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
ENDCASE. ENDCASE.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_gui_page_hotkey~get_hotkey_actions.
RETURN.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -4,6 +4,12 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50. CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50.
CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72. CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72.
CONSTANTS:
BEGIN OF c_icon_scaling,
large TYPE c VALUE 'L',
small TYPE c VALUE 'S',
END OF c_icon_scaling.
METHODS: METHODS:
set_proxy_url set_proxy_url
IMPORTING IMPORTING
@ -116,8 +122,14 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
iv_disable_parallel_proc TYPE abap_bool, iv_disable_parallel_proc TYPE abap_bool,
get_parallel_proc_disabled get_parallel_proc_disabled
RETURNING RETURNING
VALUE(rv_disable_parallel_proc) TYPE abap_bool. VALUE(rv_disable_parallel_proc) TYPE abap_bool,
get_icon_scaling
RETURNING
VALUE(rv_scaling) TYPE zif_abapgit_definitions=>ty_s_user_settings-icon_scaling,
set_icon_scaling
IMPORTING
iv_scaling TYPE zif_abapgit_definitions=>ty_s_user_settings-icon_scaling.
PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
TYPES: BEGIN OF ty_s_settings, TYPES: BEGIN OF ty_s_settings,
proxy_url TYPE string, proxy_url TYPE string,
@ -140,7 +152,7 @@ ENDCLASS.
CLASS zcl_abapgit_settings IMPLEMENTATION. CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
METHOD get_adt_jump_enabled. METHOD get_adt_jump_enabled.
@ -163,11 +175,50 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_hotkeys.
DATA: lt_default_hotkeys TYPE zif_abapgit_gui_page_hotkey=>tty_hotkey_action,
ls_hotkey LIKE LINE OF rt_hotkeys.
FIELD-SYMBOLS: <ls_default_hotkey> LIKE LINE OF lt_default_hotkeys.
IF lines( ms_user_settings-hotkeys ) > 0.
rt_hotkeys = ms_user_settings-hotkeys.
ELSE.
" provide default hotkeys
lt_default_hotkeys = zcl_abapgit_hotkeys=>get_default_hotkeys_from_pages( ).
LOOP AT lt_default_hotkeys ASSIGNING <ls_default_hotkey>.
ls_hotkey-action = <ls_default_hotkey>-action.
ls_hotkey-sequence = <ls_default_hotkey>-default_hotkey.
INSERT ls_hotkey INTO TABLE rt_hotkeys.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD get_icon_scaling.
rv_scaling = ms_user_settings-icon_scaling.
ENDMETHOD.
METHOD get_link_hints_enabled. METHOD get_link_hints_enabled.
rv_link_hints_enabled = ms_user_settings-link_hints_enabled. rv_link_hints_enabled = ms_user_settings-link_hints_enabled.
ENDMETHOD. ENDMETHOD.
METHOD get_link_hint_background_color.
rv_background_color = ms_user_settings-link_hint_background_color.
ENDMETHOD.
METHOD get_link_hint_key. METHOD get_link_hint_key.
rv_link_hint_key = ms_user_settings-link_hint_key. rv_link_hint_key = ms_user_settings-link_hint_key.
ENDMETHOD. ENDMETHOD.
@ -178,6 +229,11 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_parallel_proc_disabled.
rv_disable_parallel_proc = ms_user_settings-parallel_proc_disabled.
ENDMETHOD.
METHOD get_proxy_authentication. METHOD get_proxy_authentication.
rv_auth = ms_settings-proxy_auth. rv_auth = ms_settings-proxy_auth.
ENDMETHOD. ENDMETHOD.
@ -252,6 +308,7 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
set_commitmsg_body_size( c_commitmsg_body_size_dft ). set_commitmsg_body_size( c_commitmsg_body_size_dft ).
set_default_link_hint_key( ). set_default_link_hint_key( ).
set_default_link_hint_bg_color( ). set_default_link_hint_bg_color( ).
set_icon_scaling( '' ).
ENDMETHOD. ENDMETHOD.
@ -271,11 +328,29 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD set_hotkeys.
ms_user_settings-hotkeys = it_hotkeys.
ENDMETHOD.
METHOD set_icon_scaling.
ms_user_settings-icon_scaling = iv_scaling.
IF ms_user_settings-icon_scaling NA c_icon_scaling.
ms_user_settings-icon_scaling = ''. " Reset to default
ENDIF.
ENDMETHOD.
METHOD set_link_hints_enabled. METHOD set_link_hints_enabled.
ms_user_settings-link_hints_enabled = iv_link_hints_enabled. ms_user_settings-link_hints_enabled = iv_link_hints_enabled.
ENDMETHOD. ENDMETHOD.
METHOD set_link_hint_background_color.
ms_user_settings-link_hint_background_color = iv_background_color.
ENDMETHOD.
METHOD set_link_hint_key. METHOD set_link_hint_key.
ms_user_settings-link_hint_key = iv_link_hint_key. ms_user_settings-link_hint_key = iv_link_hint_key.
ENDMETHOD. ENDMETHOD.
@ -286,6 +361,11 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD set_parallel_proc_disabled.
ms_user_settings-parallel_proc_disabled = iv_disable_parallel_proc.
ENDMETHOD.
METHOD set_proxy_authentication. METHOD set_proxy_authentication.
ms_settings-proxy_auth = iv_auth. ms_settings-proxy_auth = iv_auth.
ENDMETHOD. ENDMETHOD.
@ -340,56 +420,4 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
cg_data = ms_settings ). cg_data = ms_settings ).
ENDMETHOD. ENDMETHOD.
METHOD get_link_hint_background_color.
rv_background_color = ms_user_settings-link_hint_background_color.
ENDMETHOD.
METHOD set_link_hint_background_color.
ms_user_settings-link_hint_background_color = iv_background_color.
ENDMETHOD.
METHOD set_hotkeys.
ms_user_settings-hotkeys = it_hotkeys.
ENDMETHOD.
METHOD get_hotkeys.
DATA: lt_default_hotkeys TYPE zif_abapgit_gui_page_hotkey=>tty_hotkey_action,
ls_hotkey LIKE LINE OF rt_hotkeys.
FIELD-SYMBOLS: <ls_default_hotkey> LIKE LINE OF lt_default_hotkeys.
IF lines( ms_user_settings-hotkeys ) > 0.
rt_hotkeys = ms_user_settings-hotkeys.
ELSE.
" provide default hotkeys
lt_default_hotkeys = zcl_abapgit_hotkeys=>get_default_hotkeys_from_pages( ).
LOOP AT lt_default_hotkeys ASSIGNING <ls_default_hotkey>.
ls_hotkey-action = <ls_default_hotkey>-action.
ls_hotkey-sequence = <ls_default_hotkey>-default_hotkey.
INSERT ls_hotkey INTO TABLE rt_hotkeys.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD set_parallel_proc_disabled.
ms_user_settings-parallel_proc_disabled = iv_disable_parallel_proc.
ENDMETHOD.
METHOD get_parallel_proc_disabled.
rv_disable_parallel_proc = ms_user_settings-parallel_proc_disabled.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -337,6 +337,7 @@ INTERFACE zif_abapgit_definitions
link_hint_background_color TYPE string, link_hint_background_color TYPE string,
hotkeys TYPE tty_hotkey, hotkeys TYPE tty_hotkey,
parallel_proc_disabled TYPE abap_bool, parallel_proc_disabled TYPE abap_bool,
icon_scaling TYPE c LENGTH 1,
END OF ty_s_user_settings . END OF ty_s_user_settings .
TYPES: TYPES:
tty_dokil TYPE STANDARD TABLE OF dokil tty_dokil TYPE STANDARD TABLE OF dokil