@@ -481,6 +481,92 @@ def add_logo_to_toolbar(self, toolbar):
481481 except :
482482 pass
483483
484+ def create_header (self ):
485+ """Erstellt den Header-Bereich mit Logo, App-Titel und Version"""
486+ header_frame = ttk .Frame (self .root , bootstyle = "primary" )
487+ header_frame .pack (side = tk .TOP , fill = tk .X , padx = 5 , pady = (5 , 10 ))
488+
489+ # Header-Container für bessere Kontrolle
490+ header_container = ttk .Frame (header_frame )
491+ header_container .pack (fill = tk .X , padx = 15 , pady = 10 )
492+
493+ # Logo (links)
494+ logo_frame = ttk .Frame (header_container )
495+ logo_frame .pack (side = tk .LEFT )
496+
497+ try :
498+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
499+ logo_path = os .path .join (script_dir , "assets" , "bash-script-maker-48.png" )
500+
501+ if os .path .exists (logo_path ):
502+ try :
503+ from PIL import Image , ImageTk
504+
505+ # Logo für Header (48x48)
506+ img = Image .open (logo_path )
507+ logo_photo = ImageTk .PhotoImage (img )
508+
509+ logo_label = ttk .Label (logo_frame , image = logo_photo )
510+ logo_label .image = logo_photo # Referenz behalten
511+ logo_label .pack (side = tk .LEFT , padx = (0 , 15 ))
512+
513+ except ImportError :
514+ # Fallback: Großes Emoji
515+ logo_label = ttk .Label (logo_frame , text = "🖥️" , font = ("Arial" , 36 ))
516+ logo_label .pack (side = tk .LEFT , padx = (0 , 15 ))
517+ else :
518+ # Fallback: Emoji
519+ logo_label = ttk .Label (logo_frame , text = "🖥️" , font = ("Arial" , 36 ))
520+ logo_label .pack (side = tk .LEFT , padx = (0 , 15 ))
521+
522+ except Exception as e :
523+ print (f"Fehler beim Laden des Header-Logos: { e } " )
524+ # Minimaler Fallback
525+ logo_label = ttk .Label (logo_frame , text = "🖥️" , font = ("Arial" , 24 ))
526+ logo_label .pack (side = tk .LEFT , padx = (0 , 15 ))
527+
528+ # Titel und Version (mittig-links)
529+ title_frame = ttk .Frame (header_container )
530+ title_frame .pack (side = tk .LEFT , fill = tk .X , expand = True )
531+
532+ # Haupttitel
533+ title_label = ttk .Label (
534+ title_frame ,
535+ text = "Bash-Script-Maker" ,
536+ font = ("Arial" , 24 , "bold" ),
537+ bootstyle = "inverse-primary"
538+ )
539+ title_label .pack (anchor = tk .W )
540+
541+ # Untertitel mit Version
542+ subtitle_label = ttk .Label (
543+ title_frame ,
544+ text = f"Version { __version__ } - Professioneller Bash-Script-Generator" ,
545+ font = ("Arial" , 11 ),
546+ bootstyle = "inverse-secondary"
547+ )
548+ subtitle_label .pack (anchor = tk .W , pady = (2 , 0 ))
549+
550+ # Status-Info (rechts)
551+ status_frame = ttk .Frame (header_container )
552+ status_frame .pack (side = tk .RIGHT )
553+
554+ # Aktuelle Zeit/Datum als zusätzliche Info
555+ import datetime
556+ current_time = datetime .datetime .now ().strftime ("%d.%m.%Y" )
557+
558+ info_label = ttk .Label (
559+ status_frame ,
560+ text = f"Gestartet: { current_time } " ,
561+ font = ("Arial" , 9 ),
562+ bootstyle = "inverse-secondary"
563+ )
564+ info_label .pack (anchor = tk .E )
565+
566+ # Separator-Linie unter dem Header
567+ separator = ttk .Separator (self .root , orient = tk .HORIZONTAL )
568+ separator .pack (side = tk .TOP , fill = tk .X , padx = 5 )
569+
484570 def create_menu (self ):
485571 """Erstellt das Menü der Anwendung"""
486572 menubar = tk .Menu (self .root )
@@ -601,12 +687,12 @@ def create_main_interface(self):
601687 )
602688 status_bar .pack (side = tk .BOTTOM , fill = tk .X )
603689
604- # Toolbar ganz oben platzieren
605- toolbar = ttk .Frame (self .root )
606- toolbar .pack (side = tk .TOP , fill = tk .X , padx = 5 , pady = (5 , 0 ))
690+ # Header-Bereich für App-Titel und Logo
691+ self .create_header ()
607692
608- # Logo hinzufügen (links)
609- self .add_logo_to_toolbar (toolbar )
693+ # Toolbar für Buttons
694+ toolbar = ttk .Frame (self .root )
695+ toolbar .pack (side = tk .TOP , fill = tk .X , padx = 5 , pady = (0 , 0 ))
610696
611697 # Toolbar-Inhalte - LINKS
612698 btn_new = ttk .Button (
0 commit comments