00001 00032 #ifndef LL_LLFLOATERDIRECTORY_H 00033 #define LL_LLFLOATERDIRECTORY_H 00034 00035 #include "llfloater.h" 00036 00037 class LLDirectoryCore; 00038 class LLPanelDirBrowser; 00039 00040 class LLPanelDirAdvanced; 00041 class LLPanelDirClassified; 00042 class LLPanelDirEvents; 00043 class LLPanelDirFindAll; 00044 class LLPanelDirFindAllOld; 00045 class LLPanelDirGroups; 00046 class LLPanelDirLand; 00047 class LLPanelDirPeople; 00048 class LLPanelDirPlaces; 00049 class LLPanelDirPopular; 00050 00051 class LLPanelAvatar; 00052 class LLPanelEvent; 00053 class LLPanelGroup; 00054 class LLPanelPlace; 00055 class LLPanelClassified; 00056 00057 // Floater to find people, places, things 00058 class LLFloaterDirectory : public LLFloater 00059 { 00060 public: 00061 LLFloaterDirectory(const std::string& name); 00062 /*virtual*/ ~LLFloaterDirectory(); 00063 00064 /*virtual*/ void setVisible(BOOL visible); 00065 00066 // Used for toggling God mode, which changes to visibility of 00067 // some picks. 00068 static void requestClassifieds(); 00069 00070 // Outside UI widgets can spawn this floater with various tabs 00071 // selected. 00072 static void showFindAll(const std::string& search_text); 00073 static void showClassified(const LLUUID& classified_id); 00074 static void showEvents(S32 event_id); 00075 static void showPopular(const LLUUID& parcel_id); 00076 static void showLandForSale(const LLUUID& parcel_id); 00077 static void showGroups(); 00078 static void refreshGroup(const LLUUID& group_id); 00079 static void hide(void*); 00080 00081 static void toggleEvents(void*); 00082 static void toggleFind(void*); 00083 static void onTabChanged(void*, bool); 00084 static void onTabChangedFindAll(void*, bool); 00085 00086 void hideAllDetailPanels(); 00087 00088 private: 00089 static void showPanel(const std::string& tabname); 00090 /*virtual*/ void onClose(bool app_quitting); 00091 void focusCurrentPanel(); 00092 00093 private: 00094 // Some special "showByID" functions use these cached pointers. 00095 // They could be replaced by getPanelByName(), perhaps. JC 00096 LLPanelDirFindAll* mFindAllPanel; 00097 LLPanelDirClassified* mClassifiedPanel; 00098 LLPanelDirEvents* mEventsPanel; 00099 LLPanelDirPopular* mPopularPanel; 00100 LLPanelDirLand* mLandPanel; 00101 00102 static void* createFindAll(void* userdata); 00103 static void* createClassified(void* userdata); 00104 static void* createEvents(void* userdata); 00105 static void* createPopular(void* userdata); 00106 static void* createPlaces(void* userdata); 00107 static void* createLand(void* userdata); 00108 static void* createPeople(void* userdata); 00109 static void* createGroups(void* userdata); 00110 static void* createFindAllOld(void* userdata); 00111 00112 static void* createClassifiedDetail(void* userdata); 00113 static void* createAvatarDetail(void* userdata); 00114 static void* createEventDetail(void* userdata); 00115 static void* createGroupDetail(void* userdata); 00116 static void* createGroupDetailHolder(void* userdata); 00117 static void* createPlaceDetail(void* userdata); 00118 static void* createPlaceDetailSmall(void* userdata); 00119 00120 static void* createPanelAvatar(void* data); 00121 00122 public: 00123 LLPanelAvatar* mPanelAvatarp; 00124 LLPanelEvent* mPanelEventp; 00125 LLPanelGroup* mPanelGroupp; 00126 LLPanel* mPanelGroupHolderp; 00127 LLPanelPlace* mPanelPlacep; 00128 LLPanelPlace* mPanelPlaceSmallp; 00129 LLPanelClassified* mPanelClassifiedp; 00130 00131 private: 00132 bool mMinimizing; // HACK: see reshape() for details 00133 static LLFloaterDirectory *sInstance; 00134 }; 00135 00136 extern BOOL gDisplayEventHack; 00137 00138 #endif // LL_LLDIRECTORYFLOATER_H