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#include "ObjectList.h" 13#include "String.h" 14 15 16class BFilePanel; 17class BHandler; 18class BMessenger; 19class TeamWindow; 20 21 22class GraphicalUserInterface : public UserInterface { 23public: 24 GraphicalUserInterface(); 25 virtual ~GraphicalUserInterface(); 26 27 virtual const char* ID() const; 28 29 virtual status_t Init(Team* team, 30 UserInterfaceListener* listener); 31 virtual void Show(); 32 virtual void Terminate(); 33 // shut down the UI *now* -- no more user 34 // feedback 35 36 virtual UserInterface* Clone() const; 37 38 virtual bool IsInteractive() const; 39 40 virtual status_t LoadSettings(const TeamUiSettings* settings); 41 virtual status_t SaveSettings(TeamUiSettings*& settings) const; 42 43 virtual void NotifyUser(const char* title, 44 const char* message, 45 user_notification_type type); 46 virtual void NotifyBackgroundWorkStatus( 47 const char* message); 48 virtual int32 SynchronouslyAskUser(const char* title, 49 const char* message, const char* choice1, 50 const char* choice2, const char* choice3); 51 virtual status_t SynchronouslyAskUserForFile(entry_ref* _ref); 52private: 53 class FilePanelHandler; 54 55private: 56 TeamWindow* fTeamWindow; 57 BMessenger* fTeamWindowMessenger; 58 FilePanelHandler* fFilePanelHandler; 59 BFilePanel* fFilePanel; 60 61 struct DefaultAction { 62 BString fKey; 63 int fDecision; 64 }; 65 BObjectList<DefaultAction> fDefaultActions; 66}; 67 68 69#endif // GRAPHICAL_USER_INTERFACE_H 70