1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Copyright 2014-2016, Rene Gollent, rene@gollent.com. 4 * Distributed under the terms of the MIT License. 5 */ 6 #ifndef GRAPHICAL_USER_INTERFACE_H 7 #define GRAPHICAL_USER_INTERFACE_H 8 9 10 #include "UserInterface.h" 11 12 13 class BFilePanel; 14 class BHandler; 15 class BMessenger; 16 class TeamWindow; 17 18 19 class GraphicalUserInterface : public UserInterface { 20 public: 21 GraphicalUserInterface(); 22 virtual ~GraphicalUserInterface(); 23 24 virtual const char* ID() const; 25 26 virtual status_t Init(Team* team, 27 UserInterfaceListener* listener); 28 virtual void Show(); 29 virtual void Terminate(); 30 // shut down the UI *now* -- no more user 31 // feedback 32 33 virtual UserInterface* Clone() const; 34 35 virtual bool IsInteractive() const; 36 37 virtual status_t LoadSettings(const TeamUiSettings* settings); 38 virtual status_t SaveSettings(TeamUiSettings*& settings) const; 39 40 virtual void NotifyUser(const char* title, 41 const char* message, 42 user_notification_type type); 43 virtual void NotifyBackgroundWorkStatus( 44 const char* message); 45 virtual int32 SynchronouslyAskUser(const char* title, 46 const char* message, const char* choice1, 47 const char* choice2, const char* choice3); 48 virtual status_t SynchronouslyAskUserForFile(entry_ref* _ref); 49 private: 50 class FilePanelHandler; 51 52 private: 53 TeamWindow* fTeamWindow; 54 BMessenger* fTeamWindowMessenger; 55 FilePanelHandler* fFilePanelHandler; 56 BFilePanel* fFilePanel; 57 }; 58 59 60 #endif // GRAPHICAL_USER_INTERFACE_H 61