@@ -119,13 +119,25 @@ void onlineHelp(Runtime *runtime, TextEditInput *widget) {
119119 runtime->browseFile (path);
120120}
121121
122+ void showHelpPopup (TextEditHelpWidget *helpWidget) {
123+ helpWidget->showPopup (-20 , -8 );
124+ }
125+
126+ void showHelpLineInput (TextEditHelpWidget *helpWidget) {
127+ helpWidget->showPopup (40 , 1 );
128+ }
129+
130+ void showHelpSideabar (TextEditHelpWidget *helpWidget) {
131+ helpWidget->showSidebar ();
132+ }
133+
122134void showRecentFiles (TextEditHelpWidget *helpWidget, String &loadPath) {
123135 String fileList;
124136 helpWidget->createMessage ();
125- helpWidget->show ();
126137 helpWidget->reload (NULL );
127138 getRecentFileList (fileList, loadPath);
128139 helpWidget->setText (fileList);
140+ showHelpPopup (helpWidget);
129141}
130142
131143void showSelectionCount (AnsiWidget *out, TextEditInput *widget) {
@@ -213,7 +225,7 @@ void System::editSource(String loadPath, bool restoreOnExit) {
213225 helpWidget->setText (gsb_last_errmsg);
214226 helpWidget->createStackTrace (gsb_last_errmsg, gsb_last_line, _stackTrace);
215227 widget = helpWidget;
216- helpWidget-> show ( );
228+ showHelpPopup (helpWidget );
217229 _output->setStatus (" Error. Esc=Close, Up/Down=Caller" );
218230 } else {
219231 _output->setStatus (!gsb_last_errmsg[0 ] ? " Error" : gsb_last_errmsg);
@@ -300,7 +312,7 @@ void System::editSource(String loadPath, bool restoreOnExit) {
300312 _output->setStatus (" Keyword Help. F2=online, Esc=Close" );
301313 widget = helpWidget;
302314 helpWidget->createKeywordIndex ();
303- helpWidget-> show ( );
315+ showHelpPopup (helpWidget );
304316 break ;
305317 case SB_KEY_F (2 ):
306318 redraw = false ;
@@ -316,10 +328,10 @@ void System::editSource(String loadPath, bool restoreOnExit) {
316328 if (editWidget->getTextLength ()) {
317329 saveFile (editWidget, loadPath);
318330 saveRecentPosition (loadPath, editWidget->getCursorPos ());
319- _output->setStatus (" Export to mobile SmallBASIC. Enter <IP>:<Port>" );
331+ _output->setStatus (" Export to SmallBASIC. Enter <IP>:<Port> | <sbasic command >" );
320332 widget = helpWidget;
321333 helpWidget->createLineEdit (g_exportAddr);
322- helpWidget-> show ( );
334+ showHelpLineInput (helpWidget );
323335 inputMode = kExportAddr ;
324336 }
325337 break ;
@@ -329,7 +341,7 @@ void System::editSource(String loadPath, bool restoreOnExit) {
329341 _output->setStatus (" Debug. F6=Step, F7=Continue, Esc=Close" );
330342 widget = helpWidget;
331343 helpWidget->createMessage ();
332- helpWidget-> show ( );
344+ showHelpSideabar (helpWidget );
333345 ((Runtime *)this )->debugStart (editWidget, loadPath.c_str ());
334346 statusMessage.resetCursor (editWidget);
335347 break ;
@@ -350,46 +362,46 @@ void System::editSource(String loadPath, bool restoreOnExit) {
350362 _output->setStatus (" Enter program command line, Esc=Close" );
351363 widget = helpWidget;
352364 helpWidget->createLineEdit (opt_command);
353- helpWidget-> show ( );
365+ showHelpLineInput (helpWidget );
354366 inputMode = kCommand ;
355367 break ;
356368 case SB_KEY_CTRL (' h' ):
357369 _output->setStatus (" Keystroke help. Esc=Close" );
358370 widget = helpWidget;
359371 helpWidget->createHelp ();
360- helpWidget-> show ( );
372+ showHelpSideabar (helpWidget );
361373 break ;
362374 case SB_KEY_CTRL (' l' ):
363375 _output->setStatus (" Outline. Esc=Close" );
364376 widget = helpWidget;
365377 helpWidget->createOutline ();
366- helpWidget-> show ( );
378+ showHelpSideabar (helpWidget );
367379 break ;
368380 case SB_KEY_CTRL (' f' ):
369381 _output->setStatus (" Find in buffer. Esc=Close" );
370382 widget = helpWidget;
371383 helpWidget->createSearch (false );
372- helpWidget-> show ( );
384+ showHelpLineInput (helpWidget );
373385 statusMessage.resetCursor (editWidget);
374386 break ;
375387 case SB_KEY_CTRL (' n' ):
376388 _output->setStatus (" Replace string. Esc=Close" );
377389 widget = helpWidget;
378390 helpWidget->createSearch (true );
379- helpWidget-> show ( );
391+ showHelpLineInput (helpWidget );
380392 statusMessage.resetCursor (editWidget);
381393 break ;
382394 case SB_KEY_ALT (' g' ):
383395 _output->setStatus (" Goto line. Esc=Close" );
384396 widget = helpWidget;
385397 helpWidget->createGotoLine ();
386- helpWidget-> show ( );
398+ showHelpLineInput (helpWidget );
387399 break ;
388400 case SB_KEY_CTRL (' ' ):
389401 _output->setStatus (" Auto-complete. Esc=Close" );
390402 widget = helpWidget;
391403 helpWidget->createCompletionHelp ();
392- helpWidget-> show ( );
404+ showHelpSideabar (helpWidget );
393405 break ;
394406 case SB_KEY_INSERT:
395407 statusMessage.setInsert ();
@@ -497,14 +509,14 @@ void System::editSource(String loadPath, bool restoreOnExit) {
497509 break ;
498510 }
499511 } else if (helpWidget->closeOnEnter () && helpWidget->isVisible ()) {
500- statusMessage._dirty = !widget ->isDirty ();
512+ statusMessage._dirty = !editWidget ->isDirty ();
501513 widget = editWidget;
502514 helpWidget->hide ();
503515 helpWidget->cancelMode ();
504516 }
505517 redraw = true ;
506518 } else if (helpWidget->replaceDoneMode ()) {
507- statusMessage._dirty = !widget ->isDirty ();
519+ statusMessage._dirty = !editWidget ->isDirty ();
508520 widget = editWidget;
509521 helpWidget->hide ();
510522 helpWidget->cancelMode ();
0 commit comments