using Microsoft.Win32; using System; using System.Windows; using System.Windows.Input; using System.Windows.Threading; using bib_talk.Business; using System.Windows.Controls; namespace bib_talk { public partial class MainWindow : Window { MainWindowManager mwManager; // MainWindowManager initializeren private DispatcherTimer _timer; // DispatcherTimer initialisieren public string loggedinUser; // Feld um eingeloggten User zu speichern private bool isFirstLoad = true; // MainWindow Konstruktor mit einem User und LoadMessages Methode public MainWindow(string user) { loggedinUser = user; InitializeComponent(); InitializeTimer(); LoadData(); mwManager = new MainWindowManager(this, user); mwManager.LoadMessages(); } // Der 3 Sekunden Timer für die Nachrichten und Online Benutzer private void InitializeTimer() { _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; _timer.Tick += (sender, e) => { mwManager.LoadMessages(); mwManager.LoadOnlineUsers(); }; _timer.Start(); } // Methode zum Usernamen in dem MainWindow anzeigen public void LoadData() { loggedInUser.Text = "Logged in as: " + loggedinUser; } // Methode zum User ausloggen und App schließen private void CloseButton_Click(object sender, RoutedEventArgs e) { mwManager.LogoutUser(); this.Close(); } // Custom DraggableArea für das MainWindow private void DraggableArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ButtonState == MouseButtonState.Pressed) { DragMove(); } } // Hotkey (Enter) für das Senden einer Nachricht private async void messageBox_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { mwManager.SendMessage(); } } // Senden Button für das Senden einer Nachricht private async void send_Click(object sender, RoutedEventArgs e) { mwManager.SendMessage(); } // Methode zum Profilbilder hochladen private async void uploadpbclick(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.png, *.gif) | *.jpg; *.jpeg; *.png; *.gif"; if (openFileDialog.ShowDialog() == true) { string filePath = openFileDialog.FileName; await mwManager.UploadProfileImage(filePath); } } // Logik für den Chat Clear Button private void clearChatButton_Click(object sender, RoutedEventArgs e) { //Rufe die Methode zum Löschen des Chats auf mwManager.DeleteMessages(); } #region Ohne Funktion // Chat Settings Logik private void MenuButton_Click(object sender, RoutedEventArgs e) { // Öffnen Sie das Kontextmenü, wenn Sie auf den Drei-Punkte-Button klicken contextMenu.IsOpen = true; } private void muteChatButton_Click(object sender, RoutedEventArgs e) { // Logik zum Blockieren eines Benutzers } private void helpButton_Click(object sender, RoutedEventArgs e) { // Logik zum Entfernen eines Freundes } #endregion } }