Main loop: start the GUI.
(self)
| 1921 | self.root.update() |
| 1922 | |
| 1923 | def main(self): |
| 1924 | """ |
| 1925 | Main loop: start the GUI. |
| 1926 | """ |
| 1927 | # Note: for TK doc, use https://tkdocs.com |
| 1928 | |
| 1929 | # Root |
| 1930 | self.root = tk.Tk() |
| 1931 | self.root.title("LDAPhero (@secdev/scapy)") |
| 1932 | self.root.option_add("*tearOff", False) |
| 1933 | |
| 1934 | # TTK style |
| 1935 | |
| 1936 | ttkstyle = ttk.Style() |
| 1937 | ttkstyle.theme_use("alt") |
| 1938 | ttkstyle.configure( |
| 1939 | "BorderFrame.TFrame", |
| 1940 | relief="groove", |
| 1941 | borderwidth=3, |
| 1942 | ) |
| 1943 | |
| 1944 | # Global configuration variables |
| 1945 | self.crop_output = tk.BooleanVar() |
| 1946 | self.crop_output.set(True) |
| 1947 | |
| 1948 | # Create main frames, pack them in scrollable elements |
| 1949 | content = ttk.PanedWindow(self.root, orient=tk.HORIZONTAL) |
| 1950 | |
| 1951 | tvfr = ttk.Frame(content) |
| 1952 | tvfr.grid_columnconfigure(0, weight=1) |
| 1953 | tvfr.grid_rowconfigure(0, weight=1) |
| 1954 | self.tk_tree = ttk.Treeview(tvfr, show="tree") |
| 1955 | content.add(tvfr) |
| 1956 | self.tk_tree.bind("<Double-1>", self.treedoubleclick) |
| 1957 | |
| 1958 | tree_scrollbar = AutoHideScrollbar( |
| 1959 | tvfr, orient="vertical", command=self.tk_tree.yview |
| 1960 | ) |
| 1961 | self.tk_tree.configure(yscrollcommand=tree_scrollbar.set) |
| 1962 | self.tk_tree.grid(row=0, column=0, sticky="nsew") |
| 1963 | self.tk_tree.column("#0", width=200) |
| 1964 | |
| 1965 | self.tk_textpane = tk.Text(content, state=tk.DISABLED) |
| 1966 | self.tk_textpane.tag_configure("bold", font="TkCaptionFont") |
| 1967 | self.tk_textpane.tag_configure("error", foreground="red") |
| 1968 | content.add(self.tk_textpane) |
| 1969 | |
| 1970 | # Menu |
| 1971 | menubar = tk.Menu(self.root) |
| 1972 | self.menu_connection = tk.Menu(menubar) |
| 1973 | self.menu_browse = tk.Menu(menubar) |
| 1974 | self.menu_view = tk.Menu(menubar) |
| 1975 | menubar.add_cascade(menu=self.menu_connection, label="Connection") |
| 1976 | self.menu_connection.add_command(label="Connect", command=self.connect) |
| 1977 | self.menu_connection.add_command( |
| 1978 | label="Bind", command=self.bind, state=tk.DISABLED, accelerator="Ctrl+B" |
| 1979 | ) |
| 1980 | self.menu_connection.add_command( |