00001 00032 #ifndef LL_LLFLOATERDIRECTORY_H 00033 #define LL_LLFLOATERDIRECTORY_H 00034 00035 #include "llfloater.h" 00036 #include "lltabcontainer.h" 00037 00038 class LLDirectoryCore; 00039 class LLPanelDirBrowser; 00040 00041 class LLPanelDirAdvanced; 00042 class LLPanelDirClassified; 00043 class LLPanelDirEvents; 00044 class LLPanelDirFindAll; 00045 class LLPanelDirFindAllOld; 00046 class LLPanelDirGroups; 00047 class LLPanelDirLand; 00048 class LLPanelDirPeople; 00049 class LLPanelDirPlaces; 00050 class LLPanelDirPopular; 00051 00052 class LLPanelAvatar; 00053 class LLPanelEvent; 00054 class LLPanelGroup; 00055 class LLPanelPlace; 00056 class LLPanelClassified; 00057 00058 // Floater to find people, places, things 00059 class LLFloaterDirectory : public LLFloater 00060 { 00061 public: 00062 LLFloaterDirectory(const std::string& name); 00063 /*virtual*/ ~LLFloaterDirectory(); 00064 00065 /*virtual*/ void setVisible(BOOL visible); 00066 00067 // Used for toggling God mode, which changes to visibility of 00068 // some picks. 00069 static void requestClassifieds(); 00070 00071 // Outside UI widgets can spawn this floater with various tabs 00072 // selected. 00073 static void showFindAll(const std::string& search_text); 00074 static void showClassified(const LLUUID& classified_id); 00075 static void showEvents(S32 event_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 00085 void hideAllDetailPanels(); 00086 00087 private: 00088 static void showPanel(const std::string& tabname); 00089 /*virtual*/ void onClose(bool app_quitting); 00090 void focusCurrentPanel(); 00091 00092 private: 00093 // Some special "showByID" functions use these cached pointers. 00094 // They could be replaced by getPanelByName(), perhaps. JC 00095 LLPanelDirFindAll* mFindAllPanel; 00096 LLPanelDirClassified* mClassifiedPanel; 00097 LLPanelDirEvents* mEventsPanel; 00098 LLPanelDirLand* mLandPanel; 00099 00100 static void* createFindAll(void* userdata); 00101 static void* createClassified(void* userdata); 00102 static void* createEvents(void* userdata); 00103 static void* createShowcase(void* userdata); 00104 static void* createPlaces(void* userdata); 00105 static void* createLand(void* userdata); 00106 static void* createPeople(void* userdata); 00107 static void* createGroups(void* userdata); 00108 00109 static void* createClassifiedDetail(void* userdata); 00110 static void* createAvatarDetail(void* userdata); 00111 static void* createEventDetail(void* userdata); 00112 static void* createGroupDetail(void* userdata); 00113 static void* createGroupDetailHolder(void* userdata); 00114 static void* createPlaceDetail(void* userdata); 00115 static void* createPlaceDetailSmall(void* userdata); 00116 00117 static void* createPanelAvatar(void* data); 00118 00119 public: 00120 LLPanelAvatar* mPanelAvatarp; 00121 LLPanelEvent* mPanelEventp; 00122 LLPanelGroup* mPanelGroupp; 00123 LLPanel* mPanelGroupHolderp; 00124 LLPanelPlace* mPanelPlacep; 00125 LLPanelPlace* mPanelPlaceSmallp; 00126 LLPanelClassified* mPanelClassifiedp; 00127 00128 static S32 sOldSearchCount; // debug 00129 static S32 sNewSearchCount; // debug 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