Virtual machine Management Terminal User Interface
リビジョン | 576b2cfeebcb0397a69ce514ead3f94957bf06fa (tree) |
---|---|
日時 | 2022-07-24 20:31:02 |
作者 | Koine Yuusuke(koinec) <koinec@user...> |
コミッター | Koine Yuusuke(koinec) |
Implement Check Yes/No for system quit.
@@ -46,19 +46,18 @@ int | ||
46 | 46 | |
47 | 47 | pstr_prompt = TuiKey_GetPromptString(); |
48 | 48 | |
49 | + mvwprintw( gp_cmd_win, 0, 0, "%s", pstr_prompt ); | |
50 | + | |
49 | 51 | i_mode = TuiKey_GetMode(); |
50 | 52 | if( TUIKEY_MODE_INPUTSTR == i_mode ) { |
51 | 53 | pstr_input = TuiKey_GetInputStringAndPasswd( NULL ); |
52 | - mvwprintw( gp_cmd_win, 0, 0, "%s => %s", pstr_prompt, pstr_input ); | |
54 | + wprintw( gp_cmd_win, " => %s", pstr_input ); | |
53 | 55 | } |
54 | 56 | else if( TUIKEY_MODE_INPUTPASSWD == i_mode ) { |
55 | 57 | pstr_input = TuiKey_GetInputStringAndPasswd( &i_len ); |
56 | 58 | str_pass[ i_len-- ] = '\0'; |
57 | 59 | for( ; 0 <= i_len; i_len-- ) { str_pass[ i_len ] = '*'; } |
58 | - mvwprintw( gp_cmd_win, 0, 0, "%s => %s", pstr_prompt, str_pass ); | |
59 | - } | |
60 | - if( TUIKEY_MODE_VMLIST == i_mode ) { | |
61 | - mvwprintw( gp_cmd_win, 0, 0, "%s :", pstr_prompt ); | |
60 | + wprintw( gp_cmd_win, " => %s", str_pass ); | |
62 | 61 | } |
63 | 62 | |
64 | 63 | touchwin( gp_cmd_win ); |
@@ -159,13 +159,13 @@ int | ||
159 | 159 | strncpy( gt_input.str_msg, "Input 'Y'/'y'(YES) or OtherKey(No) ? ", sizeof( gt_input.str_msg ) ); |
160 | 160 | } |
161 | 161 | else { |
162 | - gi_keymode = TUIKEY_MODE_VMLIST; | |
162 | + gi_keymode = TUIKEY_MODE_VMLIST; | |
163 | 163 | |
164 | - gt_input.b_reqcmd = REQUEST_CMD_NONE; | |
165 | - gt_input.i_hvisor = HVISOR_ID_NONE; | |
166 | - gt_input.i_guest = GUEST_ID_NONE; | |
164 | + gt_input.b_reqcmd = REQUEST_CMD_NONE; | |
165 | + gt_input.i_hvisor = HVISOR_ID_NONE; | |
166 | + gt_input.i_guest = GUEST_ID_NONE; | |
167 | 167 | |
168 | - strncpy( gt_input.str_msg, "Input Command", sizeof( gt_input.str_msg ) ); | |
168 | + strncpy( gt_input.str_msg, "Input Command :", sizeof( gt_input.str_msg ) ); | |
169 | 169 | } |
170 | 170 | |
171 | 171 | return 0x00; |
@@ -179,6 +179,8 @@ int | ||
179 | 179 | { |
180 | 180 | int i_ret = 0x00; |
181 | 181 | |
182 | + if( ERR == i_key ) { return i_ret; } | |
183 | + | |
182 | 184 | if( isprint( i_key ) ) { |
183 | 185 | if( gt_input.i_inputlen < sizeof(gt_input.str_input) - 1) { |
184 | 186 | gt_input.str_input[gt_input.i_inputlen++] = (char)i_key; |
@@ -218,8 +220,13 @@ int | ||
218 | 220 | { |
219 | 221 | int i_ret = 0x00; |
220 | 222 | |
223 | + if( ERR == i_key ) { return i_ret; } | |
224 | + | |
221 | 225 | if(( 'Y' == i_key) || ( 'y' == i_key )) { |
222 | - ReqCtl_CreateRequest( gt_input.b_reqcmd, gt_input.i_hvisor, gt_input.i_guest, NULL ); | |
226 | + if( REQUEST_CMD_SYS_QUIT != gt_input.b_reqcmd ) | |
227 | + { ReqCtl_CreateRequest( gt_input.b_reqcmd, gt_input.i_hvisor, gt_input.i_guest, NULL ); } | |
228 | + else | |
229 | + { i_ret = 0x01; } | |
223 | 230 | } |
224 | 231 | |
225 | 232 | TuiKey_ChangeMode( TUIKEY_MODE_VMLIST, REQUEST_CMD_NONE, 0x00, 0x00 ); |
@@ -238,7 +245,7 @@ int | ||
238 | 245 | switch( i_key ) { |
239 | 246 | // Quit VMTUI ---- |
240 | 247 | case 'q': |
241 | - i_ret = 0x01; | |
248 | + TuiKey_ChangeMode( TUIKEY_MODE_YESNO, REQUEST_CMD_SYS_QUIT, HVISOR_ID_NONE, GUEST_ID_NONE ); | |
242 | 249 | break; |
243 | 250 | |
244 | 251 | // PrevPage Info. Window ---- |
@@ -279,10 +286,6 @@ int | ||
279 | 286 | refresh(); |
280 | 287 | break; |
281 | 288 | |
282 | - case 'i': | |
283 | - //TuiKey_ChangeMode( TUIKEY_MODE_YESNO, REQUEST_ID_NONE, | |
284 | - refresh(); | |
285 | - break; | |
286 | 289 | /* |
287 | 290 | case ERR: |
288 | 291 | break; |