Example #1
0
int	NavHelp::help_index( navh_eHelpFile file_type, const char *file_name)
{
  FILE	*file;
  char	line[200];
  char	include_file[80];
  char	subject[80];
  int 	sts;
  char  *s;
  lng_eCoding coding = lng_eCoding_ISO8859_1;

  // Open file
  file = navhelp_open_file( this, file_type, file_name);
  if ( !file) return NAV__NOFILE;

  sts = dcli_read_line( line, sizeof( line), file);
  while ( ODD(sts))
  {
    if ( cdh_NoCaseStrncmp( line, "<coding>", 8) == 0) {      
      char codingstr[40];

      help_remove_spaces( &line[8], codingstr);
      if ( cdh_NoCaseStrcmp( codingstr, "ISO8859-1") == 0) {
	coding = lng_eCoding_ISO8859_1;
      }
      else if ( cdh_NoCaseStrcmp( codingstr, "UTF-8") == 0) {
	coding = lng_eCoding_UTF_8;
      }
    }
    else if ( cdh_NoCaseStrncmp( line, "<include>", 9) == 0)
    {
      help_remove_spaces( &line[9], include_file);
      sts = help_index( navh_eHelpFile_Other, include_file);
    }
    else if ( cdh_NoCaseStrncmp( line, "<topic>", 7) == 0)
    {
      if ( (s = strstr( line, "<style>")) || (s = strstr( line, "<STYLE>")))
	*s = 0;
      help_remove_spaces( &line[7], subject);

      (insert_cb)( parent_ctx, navh_eItemType_HelpBold,
		   subject,  "", "", subject, 
		   "", file_name, file_type, 0, NULL, coding);
    }
    sts = dcli_read_line( line, sizeof( line), file);
  }
  fclose( file);
  return NAV__SUCCESS;
}
Example #2
0
static cb_ret_t
help_execute_cmd (unsigned long command)
{
    cb_ret_t ret = MSG_HANDLED;

    switch (command)
    {
    case CK_Help:
        help_help (whelp);
        break;
    case CK_Index:
        help_index (whelp);
        break;
    case CK_Back:
        help_back (whelp);
        break;
    case CK_Up:
        help_prev_link (TRUE);
        break;
    case CK_Down:
        help_next_link (TRUE);
        break;
    case CK_PageDown:
        move_forward (help_lines - 1);
        break;
    case CK_PageUp:
        move_backward (help_lines - 1);
        break;
    case CK_HalfPageDown:
        move_forward (help_lines / 2);
        break;
    case CK_HalfPageUp:
        move_backward (help_lines / 2);
        break;
    case CK_Top:
        move_to_top ();
        break;
    case CK_Bottom:
        move_to_bottom ();
        break;
    case CK_Enter:
        help_select_link ();
        break;
    case CK_LinkNext:
        help_next_link (FALSE);
        break;
    case CK_LinkPrev:
        help_prev_link (FALSE);
        break;
    case CK_NodeNext:
        help_next_node ();
        break;
    case CK_NodePrev:
        help_prev_node ();
        break;
    case CK_Quit:
        dlg_stop (whelp);
        break;
    default:
        ret = MSG_NOT_HANDLED;
    }

    return ret;
}