
theme:widget:add vcml

XTW_vcml_prefix=""
XTW_vcml_suffix=""

XTW_vcml_left_label_clean=""
XTW_vcml_left_label_dirty=""
XTW_vcml_style_left_label_clean=""
XTW_vcml_style_left_label_dirty=""

XTW_vcml_right_label_clean=" ✔"
XTW_vcml_right_label_dirty=" ✘"
XTW_vcml_style_right_label_clean=""
XTW_vcml_style_right_label_dirty=""

XTW_vcml_ref_prefix=""
XTW_vcml_ref_suffix=""

XTW_vcml_style_clean=blue
XTW_vcml_style_dirty=red

___x_cmd_theme_widget_vcml(){
    X_vcml=""
    local x_=
    local lable_l=
    local lable_r=
    [ -z "$x_git" ] || {
        x_git="${x_git#* }"
        case "$x_git" in
            refs/heads/*)       x_git="${x_git#"refs/heads/"}"  ;;
        esac
        x_vcml="${XTW_vcml_ref_prefix}${x_git}"
        if theme:comp:git:changed;    then
            lable_r="$XTW_vcml_right_label_dirty"
            lable_l="$XTW_vcml_left_label_dirty"
            theme:style_ "%${XTW_vcml_style_right_label_dirty}%"    "$lable_r";         lable_r="$x_"
            theme:style_ "%${XTW_vcml_style_left_label_dirty}%"     "$lable_l";         lable_l="$x_"
            theme:style_ "%${XTW_vcml_style_dirty}%"        "${x_vcml}";                x_vcml="${lable_l}${x_}${lable_r}"
            theme:style_ "%${XTW_vcml_style_dirty}%"        "$XTW_vcml_ref_suffix";     x_="${x_vcml}${x_}"
        else
            lable_r="$XTW_vcml_right_label_clean"
            lable_l="$XTW_vcml_left_label_clean"
            theme:style_ "%${XTW_vcml_style_right_label_clean}%"    "$lable_r";         lable_r="$x_"
            theme:style_ "%${XTW_vcml_style_left_label_clean}%"     "$lable_l";         lable_l="$x_"
            theme:style_ "%${XTW_vcml_style_clean}%"        "${x_vcml}";                x_vcml="${lable_l}${x_}${lable_r}"
            theme:style_ "%${XTW_vcml_style_clean}%"        "$XTW_vcml_ref_suffix";     x_="${x_vcml}${x_}"
        fi
        X_vcml="${XTW_vcml_prefix}${x_}${XTW_vcml_suffix}"
        return
    }

    [ -z "$x_svn" ] || {
        x_=
        return
    }

    [ -z "$x_hg" ] || {
        x_=
        return
    }
}

