Beispiel #1
0
 def _init_results_box(self, parent):
     innerframe = Frame(parent)
     i1 = Frame(innerframe)
     i2 = Frame(innerframe)
     vscrollbar = Scrollbar(i1, borderwidth=1)
     hscrollbar = Scrollbar(i2, borderwidth=1, orient="horiz")
     self.results_box = Text(
         i1,
         font=Font(family="courier", size="16"),
         state="disabled",
         borderwidth=1,
         yscrollcommand=vscrollbar.set,
         xscrollcommand=hscrollbar.set,
         wrap="none",
         width="40",
         height="20",
         exportselection=1,
     )
     self.results_box.pack(side="left", fill="both", expand=True)
     vscrollbar.pack(side="left", fill="y", anchor="e")
     vscrollbar.config(command=self.results_box.yview)
     hscrollbar.pack(side="left", fill="x", expand=True, anchor="w")
     hscrollbar.config(command=self.results_box.xview)
     # there is no other way of avoiding the overlap of scrollbars while using pack layout manager!!!
     Label(i2, text="   ",
           background=self._BACKGROUND_COLOUR).pack(side="left", anchor="e")
     i1.pack(side="top", fill="both", expand=True, anchor="n")
     i2.pack(side="bottom", fill="x", anchor="s")
     innerframe.pack(side="top", fill="both", expand=True)
Beispiel #2
0
 def _init_results_box(self, parent):
     innerframe = Frame(parent)
     i1 = Frame(innerframe)
     i2 = Frame(innerframe)
     vscrollbar = Scrollbar(i1, borderwidth=1)
     hscrollbar = Scrollbar(i2, borderwidth=1, orient='horiz')
     self.results_box = Text(i1,
                             font=Font(family='courier', size='16'),
                             state='disabled',
                             borderwidth=1,
                             yscrollcommand=vscrollbar.set,
                             xscrollcommand=hscrollbar.set,
                             wrap='none',
                             width='40',
                             height='20',
                             exportselection=1)
     self.results_box.pack(side='left', fill='both', expand=True)
     self.results_box.tag_config(self._HIGHLIGHT_WORD_TAG,
                                 foreground=self._HIGHLIGHT_WORD_COLOUR)
     self.results_box.tag_config(self._HIGHLIGHT_LABEL_TAG,
                                 foreground=self._HIGHLIGHT_LABEL_COLOUR)
     vscrollbar.pack(side='left', fill='y', anchor='e')
     vscrollbar.config(command=self.results_box.yview)
     hscrollbar.pack(side='left', fill='x', expand=True, anchor='w')
     hscrollbar.config(command=self.results_box.xview)
     #there is no other way of avoiding the overlap of scrollbars while using pack layout manager!!!
     Label(i2, text='   ',
           background=self._BACKGROUND_COLOUR).pack(side='left', anchor='e')
     i1.pack(side='top', fill='both', expand=True, anchor='n')
     i2.pack(side='bottom', fill='x', anchor='s')
     innerframe.pack(side='top', fill='both', expand=True)
    def __init__(self, client, *a, **kw):
        Frame.__init__(self, *a, **kw)

        self._client = client

        self.rowconfigure(0, weight=1)
        self.columnconfigure(0, weight=1)

        self._addresses_w = a_w = Frame(self, width=100)
        a_w.grid(row=0, column=0, sticky="NESW")

        a_w.rowconfigure(0, weight=1)
        a_w.columnconfigure(0, weight=1)

        self._addresses_tv = a_tv = Treeview(a_w, columns=("address", ))
        a_tv.heading("#0", text="#")
        a_tv.heading("address", text="Sender")
        a_tv.column("#0", minwidth=50, width=50)
        a_tv.column("address", minwidth=100, width=100)

        a_tv.grid(row=0, column=0, sticky="NESW")
        add_scrollbars(a_w, a_tv)

        a_tv.bind("<<TreeviewSelect>>", self._on_address_tv_select)

        self.columnconfigure(1, weight=10)

        # ConversationView(DoubleScrollbarFrame) uses `pack` layout manager.
        # This frame handles this.
        self._conversation_w_holder = conv_w = Frame(self)
        conv_w.grid(row=0, column=1, sticky="NESW")

        self._invalidate()
        client.watch_sms_added(self._on_sms_added)
Beispiel #4
0
def main():
    root = Tk()
    sizex = 800
    sizey = 600
    posx = 100
    posy = 100
    root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))

    root.grid()
    root.rowconfigure(0, weight=1)
    root.columnconfigure(0, weight=1)

    myframe = Frame(root, relief=GROOVE, bd=1)
    myframe.grid(row=0, column=0, sticky="NESW")

    myframe.rowconfigure(0, weight=1)
    myframe.columnconfigure(0, weight=1)
    myframe.columnconfigure(1, weight=0)

    canvas = Canvas(myframe)
    canvas.grid(row=0, column=0, sticky="NESW")

    frame = Frame(canvas)
    myscrollbar = Scrollbar(myframe, orient="vertical", command=canvas.yview)
    myscrollbar.grid(row=0, column=1, sticky="NESW")
    canvas.configure(yscrollcommand=myscrollbar.set)

    canvas.create_window((0, 0), window=frame, anchor='nw')
    frame.bind("<Configure>", lambda e, c=canvas: myfunction(c, e))
    data(frame)
    root.mainloop()
Beispiel #5
0
 def _init_query_box(self, parent):
     innerframe = Frame(parent, background=self._BACKGROUND_COLOUR)
     another = Frame(innerframe, background=self._BACKGROUND_COLOUR)
     self.query_box = Entry(another, width=60)
     self.query_box.pack(side='left', fill='x', pady=25, anchor='center')
     self.search_button = Button(another, text='Search', command=self.search, borderwidth=1, highlightthickness=1)
     self.search_button.pack(side='left', fill='x', pady=25, anchor='center')
     self.query_box.bind('<KeyPress-Return>', self.search_enter_keypress_handler)
     another.pack()
     innerframe.pack(side='top', fill='x', anchor='n')
Beispiel #6
0
 def _init_feedback(self, parent):
     self._feedbackframe = feedbackframe = Frame(parent)
     feedbackframe.pack(fill='x', side='bottom', padx=3, pady=3)
     self._lastoper_label = Label(feedbackframe, text='Last Operation:',
                                  font=self._font)
     self._lastoper_label.pack(side='left')
     lastoperframe = Frame(feedbackframe, relief='sunken', border=1)
     lastoperframe.pack(fill='x', side='right', expand=1, padx=5)
     self._lastoper1 = Label(lastoperframe, foreground='#007070',
                             background='#f0f0f0', font=self._font)
     self._lastoper2 = Label(lastoperframe, anchor='w', width=30,
                             foreground='#004040', background='#f0f0f0',
                             font=self._font)
     self._lastoper1.pack(side='left')
     self._lastoper2.pack(side='left', fill='x', expand=1)
Beispiel #7
0
 def _init_buttons(self, parent):
     # Set up the frames.
     self._buttonframe = buttonframe = Frame(parent)
     buttonframe.pack(fill="none", side="bottom")
     Button(
         buttonframe,
         text="Step",
         background="#90c0d0",
         foreground="black",
         command=self.step,
     ).pack(side="left")
     Button(
         buttonframe,
         text="Shift",
         underline=0,
         background="#90f090",
         foreground="black",
         command=self.shift,
     ).pack(side="left")
     Button(
         buttonframe,
         text="Reduce",
         underline=0,
         background="#90f090",
         foreground="black",
         command=self.reduce,
     ).pack(side="left")
     Button(
         buttonframe,
         text="Undo",
         underline=0,
         background="#f0a0a0",
         foreground="black",
         command=self.undo,
     ).pack(side="left")
Beispiel #8
0
 def _init_startframe(self):
     frame = self._startframe = Frame(self._top)
     self._start = Entry(frame)
     self._start.pack(side="right")
     Label(frame, text="Start Symbol:").pack(side="right")
     Label(frame, text="Productions:").pack(side="left")
     self._start.insert(0, self._cfg.start().symbol())
Beispiel #9
0
    def _init_readingListbox(self, parent):
        self._readingFrame = listframe = Frame(parent)
        self._readingFrame.pack(fill="both", side="left", padx=2)
        self._readingList_label = Label(self._readingFrame,
                                        font=self._boldfont,
                                        text="Readings")
        self._readingList_label.pack()
        self._readingList = Listbox(
            self._readingFrame,
            selectmode="single",
            relief="groove",
            background="white",
            foreground="#909090",
            font=self._font,
            selectforeground="#004040",
            selectbackground="#c0f0c0",
        )

        self._readingList.pack(side="right", fill="both", expand=1)

        # Add a scrollbar if there are more than 25 examples.
        listscroll = Scrollbar(self._readingFrame, orient="vertical")
        self._readingList.config(yscrollcommand=listscroll.set)
        listscroll.config(command=self._readingList.yview)
        listscroll.pack(side="right", fill="y")

        self._populate_readingListbox()
Beispiel #10
0
    def _init_exampleListbox(self, parent):
        self._exampleFrame = listframe = Frame(parent)
        self._exampleFrame.pack(fill="both", side="left", padx=2)
        self._exampleList_label = Label(self._exampleFrame,
                                        font=self._boldfont,
                                        text="Examples")
        self._exampleList_label.pack()
        self._exampleList = Listbox(
            self._exampleFrame,
            selectmode="single",
            relief="groove",
            background="white",
            foreground="#909090",
            font=self._font,
            selectforeground="#004040",
            selectbackground="#c0f0c0",
        )

        self._exampleList.pack(side="right", fill="both", expand=1)

        for example in self._examples:
            self._exampleList.insert("end", ("  %s" % example))
        self._exampleList.config(height=min(len(self._examples), 25), width=40)

        # Add a scrollbar if there are more than 25 examples.
        if len(self._examples) > 25:
            listscroll = Scrollbar(self._exampleFrame, orient="vertical")
            self._exampleList.config(yscrollcommand=listscroll.set)
            listscroll.config(command=self._exampleList.yview)
            listscroll.pack(side="left", fill="y")

        # If they select a example, apply it.
        self._exampleList.bind("<<ListboxSelect>>", self._exampleList_select)
Beispiel #11
0
    def _init_corpus_select(self, parent):
        innerframe = Frame(parent, background=self._BACKGROUND_COLOUR)
        self.var = StringVar(innerframe)
        self.var.set(self.model.DEFAULT_CORPUS)
        Label(
            innerframe,
            justify=LEFT,
            text=' Corpus: ',
            background=self._BACKGROUND_COLOUR,
            padx=2,
            pady=1,
            border=0,
        ).pack(side='left')

        other_corpora = list(self.model.CORPORA.keys()).remove(
            self.model.DEFAULT_CORPUS)
        om = OptionMenu(innerframe,
                        self.var,
                        self.model.DEFAULT_CORPUS,
                        command=self.corpus_selected,
                        *self.model.non_default_corpora())
        om['borderwidth'] = 0
        om['highlightthickness'] = 1
        om.pack(side='left')
        innerframe.pack(side='top', fill='x', anchor='n')
Beispiel #12
0
    def __init__(self, parent, title=None, content=""):
        Toplevel.__init__(self, parent)
        self.transient(parent)
        self.log = logging.getLogger(__name__)

        if title:
            self.title(title)

        self.parent = parent
        self.body = Frame(self)
        self.fill_body(content)
        self.body.pack(padx=5, pady=5)

        self.create_buttonbox()

        self.grab_set()

        self.protocol("WM_DELETE_WINDOW", self.ok)

        self.geometry("+%d+%d" %
                      (parent.winfo_rootx() + 50, parent.winfo_rooty() + 50))

        self.focus_set()

        self.wait_window(self)
Beispiel #13
0
    def _init_grammar(self, parent):
        # Grammar view.
        self._prodframe = listframe = Frame(parent)
        self._prodframe.pack(fill="both", side="left", padx=2)
        self._prodlist_label = Label(self._prodframe,
                                     font=self._boldfont,
                                     text="Available Expansions")
        self._prodlist_label.pack()
        self._prodlist = Listbox(
            self._prodframe,
            selectmode="single",
            relief="groove",
            background="white",
            foreground="#909090",
            font=self._font,
            selectforeground="#004040",
            selectbackground="#c0f0c0",
        )

        self._prodlist.pack(side="right", fill="both", expand=1)

        self._productions = list(self._parser.grammar().productions())
        for production in self._productions:
            self._prodlist.insert("end", ("  %s" % production))
        self._prodlist.config(height=min(len(self._productions), 25))

        # Add a scrollbar if there are more than 25 productions.
        if len(self._productions) > 25:
            listscroll = Scrollbar(self._prodframe, orient="vertical")
            self._prodlist.config(yscrollcommand=listscroll.set)
            listscroll.config(command=self._prodlist.yview)
            listscroll.pack(side="left", fill="y")

        # If they select a production, apply it.
        self._prodlist.bind("<<ListboxSelect>>", self._prodlist_select)
Beispiel #14
0
 def _create_buttons(self):
     frame = Frame(self)
     self._create_button(frame, self._left_button,
                         self._left_button_clicked)
     self._create_button(frame, self._right_button,
                         self._right_button_clicked)
     frame.pack()
Beispiel #15
0
    def _init_readingListbox(self, parent):
        self._readingFrame = listframe = Frame(parent)
        self._readingFrame.pack(fill='both', side='left', padx=2)
        self._readingList_label = Label(self._readingFrame,
                                        font=self._boldfont,
                                        text='Readings')
        self._readingList_label.pack()
        self._readingList = Listbox(self._readingFrame,
                                    selectmode='single',
                                    relief='groove',
                                    background='white',
                                    foreground='#909090',
                                    font=self._font,
                                    selectforeground='#004040',
                                    selectbackground='#c0f0c0')

        self._readingList.pack(side='right', fill='both', expand=1)

        # Add a scrollbar if there are more than 25 examples.
        listscroll = Scrollbar(self._readingFrame, orient='vertical')
        self._readingList.config(yscrollcommand=listscroll.set)
        listscroll.config(command=self._readingList.yview)
        listscroll.pack(side='right', fill='y')

        self._populate_readingListbox()
Beispiel #16
0
    def _init_exampleListbox(self, parent):
        self._exampleFrame = listframe = Frame(parent)
        self._exampleFrame.pack(fill='both', side='left', padx=2)
        self._exampleList_label = Label(self._exampleFrame,
                                        font=self._boldfont,
                                        text='Examples')
        self._exampleList_label.pack()
        self._exampleList = Listbox(self._exampleFrame,
                                    selectmode='single',
                                    relief='groove',
                                    background='white',
                                    foreground='#909090',
                                    font=self._font,
                                    selectforeground='#004040',
                                    selectbackground='#c0f0c0')

        self._exampleList.pack(side='right', fill='both', expand=1)

        for example in self._examples:
            self._exampleList.insert('end', ('  %s' % example))
        self._exampleList.config(height=min(len(self._examples), 25), width=40)

        # Add a scrollbar if there are more than 25 examples.
        if len(self._examples) > 25:
            listscroll = Scrollbar(self._exampleFrame, orient='vertical')
            self._exampleList.config(yscrollcommand=listscroll.set)
            listscroll.config(command=self._exampleList.yview)
            listscroll.pack(side='left', fill='y')

        # If they select a example, apply it.
        self._exampleList.bind('<<ListboxSelect>>', self._exampleList_select)
Beispiel #17
0
 def _init_startframe(self):
     frame = self._startframe = Frame(self._top)
     self._start = Entry(frame)
     self._start.pack(side='right')
     Label(frame, text='Start Symbol:').pack(side='right')
     Label(frame, text='Productions:').pack(side='left')
     self._start.insert(0, self._cfg.start().symbol())
 def _init_buttons(self, parent):
     # Set up the frames.
     self._buttonframe = buttonframe = Frame(parent)
     buttonframe.pack(fill='none', side='bottom')
     Button(
         buttonframe,
         text='Step',
         background='#90c0d0',
         foreground='black',
         command=self.step,
     ).pack(side='left')
     Button(
         buttonframe,
         text='Shift',
         underline=0,
         background='#90f090',
         foreground='black',
         command=self.shift,
     ).pack(side='left')
     Button(
         buttonframe,
         text='Reduce',
         underline=0,
         background='#90f090',
         foreground='black',
         command=self.reduce,
     ).pack(side='left')
     Button(
         buttonframe,
         text='Undo',
         underline=0,
         background='#f0a0a0',
         foreground='black',
         command=self.undo,
     ).pack(side='left')
Beispiel #19
0
 def _init_buttons(self):
     frame = self._buttonframe = Frame(self._top)
     Button(frame, text='Ok', command=self._ok, underline=0,
            takefocus=0).pack(side='left')
     Button(frame,
            text='Apply',
            command=self._apply,
            underline=0,
            takefocus=0).pack(side='left')
     Button(
         frame,
         text='Reset',
         command=self._reset,
         underline=0,
         takefocus=0,
     ).pack(side='left')
     Button(frame,
            text='Cancel',
            command=self._cancel,
            underline=0,
            takefocus=0).pack(side='left')
     Button(frame,
            text='Help',
            command=self._help,
            underline=0,
            takefocus=0).pack(side='right')
    def _init_grammar(self, parent):
        # Grammar view.
        self._prodframe = listframe = Frame(parent)
        self._prodframe.pack(fill='both', side='left', padx=2)
        self._prodlist_label = Label(
            self._prodframe, font=self._boldfont, text='Available Expansions'
        )
        self._prodlist_label.pack()
        self._prodlist = Listbox(
            self._prodframe,
            selectmode='single',
            relief='groove',
            background='white',
            foreground='#909090',
            font=self._font,
            selectforeground='#004040',
            selectbackground='#c0f0c0',
        )

        self._prodlist.pack(side='right', fill='both', expand=1)

        self._productions = list(self._parser.grammar().productions())
        for production in self._productions:
            self._prodlist.insert('end', ('  %s' % production))
        self._prodlist.config(height=min(len(self._productions), 25))

        # Add a scrollbar if there are more than 25 productions.
        if len(self._productions) > 25:
            listscroll = Scrollbar(self._prodframe, orient='vertical')
            self._prodlist.config(yscrollcommand=listscroll.set)
            listscroll.config(command=self._prodlist.yview)
            listscroll.pack(side='left', fill='y')

        # If they select a production, apply it.
        self._prodlist.bind('<<ListboxSelect>>', self._prodlist_select)
Beispiel #21
0
 def __init__(self, image, initialField, initialText):
     frm = Frame(root)
     frm.config(background="white")
     self.image = PhotoImage(format="gif", data=images[image.upper()])
     self.imageDimmed = PhotoImage(format="gif", data=images[image])
     self.img = Label(frm)
     self.img.config(borderwidth=0)
     self.img.pack(side="left")
     self.fld = Text(frm, **fieldParams)
     self.initScrollText(frm, self.fld, initialField)
     frm = Frame(root)
     self.txt = Text(frm, **textParams)
     self.initScrollText(frm, self.txt, initialText)
     for i in range(2):
         self.txt.tag_config(colors[i], background=colors[i])
         self.txt.tag_config("emph" + colors[i], foreground=emphColors[i])
Beispiel #22
0
 def _init_paging(self, parent):
     innerframe = Frame(parent, background=self._BACKGROUND_COLOUR)
     self.prev = prev = Button(innerframe, text='Previous', command=self.previous, width='10', borderwidth=1, highlightthickness=1, state='disabled')
     prev.pack(side='left', anchor='center')
     self.next = next = Button(innerframe, text='Next', command=self.__next__, width='10', borderwidth=1, highlightthickness=1, state='disabled')
     next.pack(side='right', anchor='center')
     innerframe.pack(side='top', fill='y')
     self.current_page = 0
Beispiel #23
0
 def _init_widgets(self, parent):
     self.main_frame = Frame(parent, dict(background=self._BACKGROUND_COLOUR, padx=1, pady=1, border=1))
     self._init_corpus_select(self.main_frame)
     self._init_query_box(self.main_frame)
     self._init_results_box(self.main_frame)
     self._init_paging(self.main_frame)
     self._init_status(self.main_frame)
     self.main_frame.pack(fill='both', expand=True)
Beispiel #24
0
    def _init_prodframe(self):
        self._prodframe = Frame(self._top)

        # Create the basic Text widget & scrollbar.
        self._textwidget = Text(self._prodframe, background='#e0e0e0',
                                exportselection=1)
        self._textscroll = Scrollbar(self._prodframe, takefocus=0,
                                     orient='vertical')
        self._textwidget.config(yscrollcommand = self._textscroll.set)
        self._textscroll.config(command=self._textwidget.yview)
        self._textscroll.pack(side='right', fill='y')
        self._textwidget.pack(expand=1, fill='both', side='left')

        # Initialize the colorization tags.  Each nonterminal gets its
        # own tag, so they aren't listed here.
        self._textwidget.tag_config('terminal', foreground='#006000')
        self._textwidget.tag_config('arrow', font='symbol')
        self._textwidget.tag_config('error', background='red')

        # Keep track of what line they're on.  We use that to remember
        # to re-analyze a line whenever they leave it.
        self._linenum = 0

        # Expand "->" to an arrow.
        self._top.bind('>', self._replace_arrows)

        # Re-colorize lines when appropriate.
        self._top.bind('<<Paste>>', self._analyze)
        self._top.bind('<KeyPress>', self._check_analyze)
        self._top.bind('<ButtonPress>', self._check_analyze)

        # Tab cycles focus. (why doesn't this work??)
        def cycle(e, textwidget=self._textwidget):
            textwidget.tk_focusNext().focus()
        self._textwidget.bind('<Tab>', cycle)

        prod_tuples = [(p.lhs(),[p.rhs()]) for p in self._cfg.productions()]
        for i in range(len(prod_tuples)-1,0,-1):
            if (prod_tuples[i][0] == prod_tuples[i-1][0]):
                if () in prod_tuples[i][1]: continue
                if () in prod_tuples[i-1][1]: continue
                print(prod_tuples[i-1][1])
                print(prod_tuples[i][1])
                prod_tuples[i-1][1].extend(prod_tuples[i][1])
                del prod_tuples[i]

        for lhs, rhss in prod_tuples:
            print(lhs, rhss)
            s = '%s ->' % lhs
            for rhs in rhss:
                for elt in rhs:
                    if isinstance(elt, Nonterminal): s += ' %s' % elt
                    else: s += ' %r' % elt
                s += ' |'
            s = s[:-2] + '\n'
            self._textwidget.insert('end', s)

        self._analyze()
Beispiel #25
0
 def _create_body(self, message, value, **extra):
     frame = Frame(self)
     Label(frame, text=message, anchor=W, justify=LEFT,
           wraplength=800).pack(fill=BOTH)
     selector = self._create_selector(frame, value, **extra)
     if selector:
         selector.pack(fill=BOTH)
         selector.focus_set()
     frame.pack(padx=5, pady=5, expand=1, fill=BOTH)
Beispiel #26
0
 def initScrollText(self, frm, txt, contents):
     scl = Scrollbar(frm)
     scl.config(command=txt.yview)
     scl.pack(side="right", fill="y")
     txt.pack(side="left", expand=True, fill="x")
     txt.config(yscrollcommand=scl.set)
     txt.insert("1.0", contents)
     frm.pack(fill="x")
     Frame(height=2, bd=1, relief="ridge").pack(fill="x")
Beispiel #27
0
 def _init_query_box(self, parent):
     innerframe = Frame(parent, background=self._BACKGROUND_COLOUR)
     another = Frame(innerframe, background=self._BACKGROUND_COLOUR)
     self.query_box = Entry(another, width=60)
     self.query_box.pack(side="left", fill="x", pady=25, anchor="center")
     self.search_button = Button(
         another,
         text="Search",
         command=self.search,
         borderwidth=1,
         highlightthickness=1,
     )
     self.search_button.pack(side="left",
                             fill="x",
                             pady=25,
                             anchor="center")
     self.query_box.bind("<KeyPress-Return>",
                         self.search_enter_keypress_handler)
     another.pack()
     innerframe.pack(side="top", fill="x", anchor="n")
Beispiel #28
0
    def _make_buttons(self):
        '''Create action buttons at the bottom.'''

        button_row = self.my_grid.size + self.Y_PADDING + (
            self.BUTTON_PANEL_HEIGHT - 2 * self.BUTTON_PADDING)
        button_frame = Frame(self)
        button_frame.place(x=self.my_grid.size - self.X_PADDING, y=button_row)

        self.play_game_button = Button(button_frame, text="Play")
        self.play_game_button.pack(side=LEFT,
                                   padx=self.BUTTON_PADDING,
                                   pady=self.BUTTON_PADDING)
Beispiel #29
0
    def __init__(self, client, *a, **kw):
        Frame.__init__(self, *a, **kw)

        self._client = client

        self.rowconfigure(0, weight = 1)
        self.columnconfigure(0, weight = 1)

        self._nb = nb = Notebook(self)
        nb.grid(row = 0, column = 0, sticky = "NESW")

        self._convs_w = convs_w = ClientConversationsView(client, nb)
        nb.add(convs_w, text = "Conversations")

        self._sms_w = sms_w = Frame(nb)
        nb.add(sms_w, text = "SMS")

        sms_w.rowconfigure(0, weight = 1)
        sms_w.columnconfigure(0, weight = 1)

        self._sms_tv = sms_tv = Treeview(sms_w, columns = ("address", "body"))
        sms_tv.heading("#0", text = "#")
        sms_tv.heading("address", text = "Sender")
        sms_tv.heading("body", text = "Message")
        sms_tv.column("#0", minwidth = 50)
        sms_tv.column("address", minwidth = 100)
        sms_tv.column("body", minwidth = 500)

        sms_tv.grid(row = 0, column = 0, sticky = "NESW")

        add_scrollbars(sms_w, sms_tv)

        sms_tv.bind("<Double-1>", self._on_double_1)

        self._calls_w = calls_w = Frame(nb)
        nb.add(calls_w, text = "Calls")

        self._invalidate()

        client.watch_sms_added(self._on_sms_added)
Beispiel #30
0
    def create_buttonbox(self):
        # add standard button box. override if you don't want the
        # standard buttons

        box = Frame(self)

        w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE)
        w.pack(side=LEFT, padx=5, pady=5)

        self.bind("&<Return>", self.ok)
        self.bind("&<Escape>", self.ok)

        box.pack()