示例#1
0
 def _initialize_default_name_markups(self):
     if self.instrument_name:
         string = self.instrument_name
         string = stringtools.capitalize_string_start(string)
         markup = markuptools.Markup(contents=string)
         self._instrument_name_markup = markup
     else:
         self._instrument_name_markup = None
     if self.short_instrument_name:
         string = self.short_instrument_name
         string = stringtools.capitalize_string_start(string)
         markup = markuptools.Markup(contents=string)
         self._short_instrument_name_markup = markup
     else:
         self._short_instrument_name_markup = None
示例#2
0
    def display(
        self, 
        lines, 
        capitalize_first_character=True,
        ):
        r'''Displays `lines`.

        Clears terminal first.

        Returns none.
        '''
        assert isinstance(lines, (str, list))
        if isinstance(lines, str):
            lines = [lines]
        if self._session.hide_next_redraw:
            return
        if capitalize_first_character:
            lines = [
                stringtools.capitalize_string_start(line) 
                for line in lines
                ]
        if lines:
            self._session.transcript._append_entry(lines)
        if not self._session.pending_user_input:
            for line in lines:
                print line
示例#3
0
文件: Menu.py 项目: willingc/abjad
 def _display_all_commands(self):
     menu_lines = []
     for menu_section in self.menu_sections:
         #print repr(menu_section), 'SECTION'
         if not menu_section.is_command_section:
             continue
         for menu_entry in menu_section.menu_entries:
             key = menu_entry.key
             display_string = menu_entry.display_string
             menu_line = self._make_tab(1)
             menu_line += '{} ({})'.format(display_string, key)
             menu_lines.append(menu_line)
         menu_lines.append('')
     if menu_lines:
         menu_lines.pop()
     menu_lines = self._make_bicolumnar(menu_lines)
     title = self._session.menu_header
     title = stringtools.capitalize_string_start(title)
     menu_lines[0:0] = [title, '']
     menu_lines.append('')
     self._clear_terminal()
     self._io_manager.display(
         menu_lines, 
         capitalize_first_character=False,
         )
     self._session._hide_hidden_commands = True
     self._session._hide_next_redraw = True
示例#4
0
    def display(
        self, 
        lines, 
        capitalize_first_character=True,
        clear_terminal=False,
        ):
        r'''Displays `lines`.

        Clears terminal first.

        Returns none.
        '''
        assert isinstance(lines, (str, list))
        if isinstance(lines, str):
            lines = [lines]
        if not self.session.hide_next_redraw:
            if capitalize_first_character:
                lines = [
                    stringtools.capitalize_string_start(line) 
                    for line in lines
                    ]
            if lines:
                if self.session.transcribe_next_command:
                    self.session.io_transcript.append_lines(lines)
            if self.session.is_displayable:
                if clear_terminal:
                    self.clear_terminal()
                for line in lines:
                    print line
示例#5
0
 def _make_class_name_markup(rhythm_maker):
     class_ = type(rhythm_maker)
     string = class_._human_readable_class_name
     string = stringtools.capitalize_string_start(string)
     pair = schemetools.SchemePair('font-name', 'Times')
     command = markuptools.MarkupCommand('override', pair, string)
     command = markuptools.MarkupCommand('fontsize', 4.5, command)
     markup = markuptools.Markup(command)
     return markup
示例#6
0
 def _make_title_lines(self):
     result = []
     if not self.hide_current_run:
         if self.title is not None:
             title = self.title
         else:
             title = self.session.menu_header
         result.append(stringtools.capitalize_string_start(title))
         result.append('')
     return result
示例#7
0
    def handle_user_input(
        self, 
        prompt_string, 
        default_value=None, 
        include_chevron=True, 
        include_newline=True,
        prompt_character='>', 
        capitalize_prompt=True,
        ):
        r'''Handles user input.

        Appends user input to command history.

        Appends user input to IO transscript.

        Returns command selected by user.
        '''
        if default_value in (None, 'None'):
            default_value = ''
        readline.set_startup_hook(lambda: readline.insert_text(default_value))
        try:
            if capitalize_prompt:
                prompt_string = stringtools.capitalize_string_start(
                    prompt_string)
            if include_chevron:
                prompt_string = prompt_string + prompt_character + ' '
            else:
                prompt_string = prompt_string + ' '
            if self.session.is_displayable:
                user_input = raw_input(prompt_string)
                if include_newline:
                    if not user_input == 'help':
                        print ''
            else:
                user_input = self._pop_from_pending_user_input()
            if self.session.transcribe_next_command:
                self.session.command_history.append(user_input)
            if user_input == '.':
                last_semantic_command = self.session.last_semantic_command
                user_input = last_semantic_command
            if self.session.transcribe_next_command:
                menu_chunk = []
                menu_chunk.append('{}{}'.format(prompt_string, user_input))
                if include_newline:
                    if not user_input == 'help':
                        menu_chunk.append('')
                self.session.io_transcript.append_lines(menu_chunk)
            return user_input
        finally:
            readline.set_startup_hook()
示例#8
0
 def _make_title_lines(self):
     menu_lines = []
     if isinstance(self.title, str):
         title_lines = [stringtools.capitalize_string_start(self.title)]
     elif isinstance(self.title, list):
         title_lines = self.title
     else:
         title_lines = []
     for title_line in title_lines:
         if self.indent_level:
             line = '{} {}'.format(
                 self._make_tab(self.indent_level), title_line)
             menu_lines.append(line)
         else:
             menu_lines.append(title_line)
     if menu_lines:
         menu_lines.append('')
     return menu_lines
示例#9
0
 def display_hidden_menu_section(self):
     self.session.push_breadcrumb('hidden commands')
     menu_lines = []
     title = self.session.menu_header
     title = stringtools.capitalize_string_start(title)
     menu_lines.append(title)
     menu_lines.append('')
     for menu_section in self.menu_sections:
         if menu_section.is_hidden:
             for menu_entry in menu_section.menu_entries:
                 key = menu_entry.key
                 display_string = menu_entry.display_string
                 menu_line = self._make_tab(1) + ' '
                 menu_line += '{} ({})'.format(display_string, key)
                 menu_lines.append(menu_line)
             menu_lines.append('')
     self.session.io_manager.display(
         menu_lines, 
         capitalize_first_character=False,
         clear_terminal=True,
         )
     self.session.hide_next_redraw = True
     self.session.pop_breadcrumb()
示例#10
0
 def _make_gallery_title_markup(self):
     string = self._human_readable_class_name 
     string = stringtools.capitalize_string_start(string)
     markup = markuptools.Markup(string)
     return markup
示例#11
0
 def _load_prompt_string(self):
     prompt_string = self._current_prompt.prompt_string
     if self.capitalize_prompts:
         prompt_string = stringtools.capitalize_string_start(prompt_string)
     self._prompt_strings.append(prompt_string)