Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import curses
- import ipaddress
- class Boxes(object):
- def __init__(self, screen):
- self.screen = screen
- self.y, self.x = screen.getmaxyx()
- curses.cbreak()
- curses.curs_set(False)
- curses.start_color()
- curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)
- curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_GREEN) # Diago Header
- curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_RED) # Errors
- screen.immedok(True)
- screen.keypad(1)
- screen.border()
- # Creates sub box template
- ## Need to center box
- self.box = curses.newwin((self.y // 4), (self.x // 4), (self.y // 3),
- (self.x // 2 - 30 // 2))
- def sm_box_input(self, header):
- """
- Required (header, ):
- "header" = |Title of Box|
- """
- curses.echo()
- curses.curs_set(True)
- self.screen.refresh()
- box = self.box
- box.box()
- ### Need to Center Text
- box.addstr(1, len(header), header, curses.color_pair(2) | curses.A_BOLD)
- box.addstr(0, 0, "Press Any Key", curses.A_BLINK)
- user_input = box.getstr(3, (3 // 2))
- del box
- self.screen.touchwin()
- curses.curs_set(False)
- curses.noecho()
- return user_input
- def sm_box_dialog(self, type, header, content):
- """
- Required: (type, header, content)
- "type" = 'error' or 'dialog'
- """
- self.screen.refresh()
- box = self.box
- box.box()
- ### Need to Center Text
- if type is "dialog":
- box.addstr(1, len(header), header, curses.color_pair(2) | curses.A_BOLD)
- elif type is "error":
- box.addstr(1, len(header), header, curses.color_pair(3) | curses.A_BOLD)
- else:
- raise ValueError("Incorrect function value, pelase use 'error', or 'dialog'")
- box.addstr(3, (3 // 2), content)
- box.refresh()
- box.addstr(0, 0, "Press Any Key", curses.A_BLINK)
- self.screen.getch()
- del box
- self.screen.touchwin()
- return
- def main(stdscrn):
- screen = Boxes(stdscrn)
- screen.sm_box_dialog('dialog', "Crackers", "Troopers")
- stdscrn.getch()
- curses.endwin()
- if __name__ == '__main__':
- curses.wrapper(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement