1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Copyright 2014, 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 bool IsInteractive() const; 34 35 virtual status_t LoadSettings(const TeamUiSettings* settings); 36 virtual status_t SaveSettings(TeamUiSettings*& settings) const; 37 38 virtual void NotifyUser(const char* title, 39 const char* message, 40 user_notification_type type); 41 virtual int32 SynchronouslyAskUser(const char* title, 42 const char* message, const char* choice1, 43 const char* choice2, const char* choice3); 44 virtual status_t SynchronouslyAskUserForFile(entry_ref* _ref); 45 private: 46 class FilePanelHandler; 47 48 private: 49 TeamWindow* fTeamWindow; 50 BMessenger* fTeamWindowMessenger; 51 FilePanelHandler* fFilePanelHandler; 52 BFilePanel* fFilePanel; 53 }; 54 55 56 #endif // GRAPHICAL_USER_INTERFACE_H 57