type revision 251236
1238438Sdteske#!/bin/sh 2238438Sdteske#- 3249746Sdteske# Copyright (c) 2012-2013 Devin Teske 4238438Sdteske# All Rights Reserved. 5238438Sdteske# 6238438Sdteske# Redistribution and use in source and binary forms, with or without 7238438Sdteske# modification, are permitted provided that the following conditions 8238438Sdteske# are met: 9238438Sdteske# 1. Redistributions of source code must retain the above copyright 10238438Sdteske# notice, this list of conditions and the following disclaimer. 11238438Sdteske# 2. Redistributions in binary form must reproduce the above copyright 12238438Sdteske# notice, this list of conditions and the following disclaimer in the 13238438Sdteske# documentation and/or other materials provided with the distribution. 14238438Sdteske# 15238438Sdteske# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16238438Sdteske# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE 17238438Sdteske# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18238438Sdteske# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19238438Sdteske# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20238438Sdteske# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21238438Sdteske# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22238438Sdteske# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23238438Sdteske# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24238438Sdteske# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25238438Sdteske# SUCH DAMAGE. 26238438Sdteske# 27238438Sdteske# $FreeBSD: head/usr.sbin/bsdconfig/mouse/type 251236 2013-06-01 23:58:44Z dteske $ 28238438Sdteske# 29238438Sdteske############################################################ INCLUDES 30238438Sdteske 31240684SdteskeBSDCFG_SHARE="/usr/share/bsdconfig" 32240684Sdteske. $BSDCFG_SHARE/common.subr || exit 1 33244675Sdteskef_dprintf "%s: loading includes..." "$0" 34240684Sdteskef_include $BSDCFG_SHARE/dialog.subr 35240684Sdteskef_include $BSDCFG_SHARE/mustberoot.subr 36240684Sdteskef_include $BSDCFG_SHARE/sysrc.subr 37238438Sdteske 38240684SdteskeBSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="110.mouse" 39238438Sdteskef_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr 40238438Sdteske 41243112Sdteskeipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" ) 42238438Sdteske[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm" 43238438Sdteske 44238438Sdteske############################################################ FUNCTIONS 45238438Sdteske 46238438Sdteske# dialog_menu_main 47238438Sdteske# 48238438Sdteske# Display the dialog(1)-based application main menu. 49238438Sdteske# 50238438Sdteskedialog_menu_main() 51238438Sdteske{ 52251190Sdteske local menu_list defaultitem= 53238438Sdteske local hline="" 54238438Sdteske local prompt="$msg_protocol_menu_text" 55238438Sdteske 56238438Sdteske menu_list=" 57238438Sdteske '1 $msg_auto' '$msg_auto_desc' 58238438Sdteske '2 $msg_glidepoint' '$msg_glidepoint_desc' 59238438Sdteske '3 $msg_hitachi' '$msg_hitachi_desc' 60238438Sdteske '4 $msg_intellimouse' '$msg_intellimouse_desc' 61238438Sdteske '5 $msg_logitech' '$msg_logitech_desc' 62238438Sdteske '6 $msg_microsoft' '$msg_microsoft_desc' 63238438Sdteske '7 $msg_mm_series' '$msg_mm_series_desc' 64238438Sdteske '8 $msg_mouseman' '$msg_mouseman_desc' 65238438Sdteske '9 $msg_mousesystems' '$msg_mousesystems_desc' 66238438Sdteske 'A $msg_thinkingmouse' '$msg_thinkingmouse_desc' 67238438Sdteske " # END-QUOTE 68238438Sdteske 69251190Sdteske local height width rows 70251190Sdteske eval f_dialog_menu_size height width rows \ 71251190Sdteske \"\$DIALOG_TITLE\" \ 72251190Sdteske \"\$DIALOG_BACKTITLE\" \ 73251190Sdteske \"\$prompt\" \ 74251190Sdteske \"\$hline\" \ 75251190Sdteske $menu_list 76238438Sdteske 77249751Sdteske case "$( f_sysrc_get moused_type )" in 78249751Sdteske auto) defaultitem="1 $msg_auto" ;; 79249751Sdteske glidepoint) defaultitem="2 $msg_glidepoint" ;; 80249751Sdteske mmhittab) defaultitem="3 $msg_hitachi" ;; 81249751Sdteske intellimouse) defaultitem="4 $msg_intellimouse" ;; 82249751Sdteske logitech) defaultitem="5 $msg_logitech" ;; 83249751Sdteske microsoft) defaultitem="6 $msg_microsoft" ;; 84249751Sdteske mmseries) defaultitem="7 $msg_mm_series" ;; 85249751Sdteske mouseman) defaultitem="8 $msg_mouseman" ;; 86249751Sdteske mousesystems) defaultitem="9 $msg_mousesystems" ;; 87249751Sdteske thinkingmouse) defaultitem="A $msg_thinkingmouse" ;; 88249751Sdteske esac 89249751Sdteske 90251236Sdteske local menu_choice 91251236Sdteske menu_choice=$( eval $DIALOG \ 92249751Sdteske --title \"\$DIALOG_TITLE\" \ 93238438Sdteske --backtitle \"\$DIALOG_BACKTITLE\" \ 94238438Sdteske --hline \"\$hline\" \ 95238438Sdteske --ok-label \"\$msg_ok\" \ 96238438Sdteske --cancel-label \"\$msg_cancel\" \ 97249751Sdteske --default-item \"\$defaultitem\" \ 98251190Sdteske --menu \"\$prompt\" \ 99251190Sdteske $height $width $rows \ 100238438Sdteske $menu_list \ 101240768Sdteske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 102240768Sdteske ) 103240768Sdteske local retval=$? 104251236Sdteske f_dialog_menutag_store -s "$menu_choice" 105240768Sdteske return $retval 106238438Sdteske} 107238438Sdteske 108238438Sdteske############################################################ MAIN 109238438Sdteske 110238438Sdteske# Incorporate rc-file if it exists 111238438Sdteske[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc" 112238438Sdteske 113238438Sdteske# 114238438Sdteske# Process command-line arguments 115238438Sdteske# 116250633Sdteskewhile getopts h$GETOPTS_STDARGS flag; do 117238438Sdteske case "$flag" in 118238438Sdteske h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";; 119238438Sdteske esac 120238438Sdteskedone 121238438Sdteskeshift $(( $OPTIND - 1 )) 122238438Sdteske 123238438Sdteske# 124238438Sdteske# Initialize 125238438Sdteske# 126238438Sdteskef_dialog_title "$msg_select_a_protocol_type_for_your_mouse" 127238438Sdteskef_dialog_backtitle "${ipgm:+bsdconfig }$pgm" 128238438Sdteskef_mustberoot_init 129238438Sdteske 130238438Sdteske# 131238438Sdteske# Launch application main menu 132238438Sdteske# 133238438Sdteskewhile :; do 134251236Sdteske dialog_menu_main || f_die 135251236Sdteske f_dialog_menutag_fetch mtag 136238438Sdteske 137238438Sdteske case "$mtag" in 138238438Sdteske "1 $msg_auto") # Bus mouse, PS/2 style mouse or PnP serial mouse 139238438Sdteske f_sysrc_set moused_type "auto" || f_die 140238438Sdteske break ;; 141238438Sdteske "2 $msg_glidepoint") # ALPS GlidePoint pad (serial) 142238438Sdteske f_sysrc_set moused_type "glidepoint" || f_die 143238438Sdteske break ;; 144238438Sdteske "3 $msg_hitachi") # Hitachi tablet (serial) 145238438Sdteske f_sysrc_set moused_type "mmhittab" || f_die 146238438Sdteske break ;; 147238438Sdteske "4 $msg_intellimouse") # Microsoft Intellimouse (serial) 148238438Sdteske f_sysrc_set moused_type "intellimouse" || f_die 149238438Sdteske break ;; 150238438Sdteske "5 $msg_logitech") # Logitech protocol (old models) (serial) 151238438Sdteske f_sysrc_set moused_type "logitech" || f_die 152238438Sdteske break ;; 153238438Sdteske "6 $msg_microsoft") # Microsoft protocol (serial) 154238438Sdteske f_sysrc_set moused_type "microsoft" || f_die 155238438Sdteske break ;; 156238438Sdteske "7 $msg_mm_series") # MM Series protocol (serial) 157238438Sdteske f_sysrc_set moused_type "mmseries" || f_die 158238438Sdteske break ;; 159238438Sdteske "8 $msg_mouseman") # Logitech MouseMan/TrackMan models (serial) 160238438Sdteske f_sysrc_set moused_type "mouseman" || f_die 161238438Sdteske break ;; 162238438Sdteske "9 $msg_mousesystems") # MouseSystems protocol (serial) 163238438Sdteske f_sysrc_set moused_type "mousesystems" || f_die 164238438Sdteske break ;; 165238438Sdteske "A $msg_thinkingmouse") # Kensignton ThinkingMouse (serial) 166238438Sdteske f_sysrc_set moused_type "thinkingmouse" || f_die 167238438Sdteske break ;; 168238438Sdteske esac 169238438Sdteske 170238438Sdteskedone 171238438Sdteske 172238438Sdteskeexit $SUCCESS 173238438Sdteske 174238438Sdteske################################################################################ 175238438Sdteske# END 176238438Sdteske################################################################################ 177