00001
00021 #ifndef INC_SOA_UISERVERLIST_H
00022 #define INC_SOA_UISERVERLIST_H
00023
00024 #ifndef INC_SOA_SERVERLIST_H
00025 #include <soa/serverlist.h>
00026 #endif
00027
00028 #ifndef INC_MGUI_DLGSHELL_H
00029 #include <mgui/dlgshell.h>
00030 #endif
00031
00032 #ifndef INC_MGUI_COMBOBOX_H
00033 #include <mgui/combobox.h>
00034 #endif
00035
00036 #ifndef INC_MGUI_EDIT_H
00037 #include <mgui/edit.h>
00038 #endif
00039
00040 #ifndef INC_MGUI_EDITURL_H
00041 #include <mgui/editurl.h>
00042 #endif
00043
00044 namespace SOA {
00045
00046
00048 class DLG_SERVERLIST_ADDITEM : public MGUI::DLGSHELL {
00049 public:
00050
00056 typedef fastdelegate::FastDelegate<void(const SERVERLIST::ITEM*, const SERVERLIST::ITEM*)> DELEGATE_ONITEMADDED;
00057
00059 DLG_SERVERLIST_ADDITEM (
00060 SERVERLIST& ServerList,
00061 const MISTRING& listname,
00062 const MISTRING& title,
00063 const MISTRING& prompt,
00064 const SERVERLIST::ITEM& item
00065 );
00066
00067 virtual ~DLG_SERVERLIST_ADDITEM ();
00068
00071 void SetDelegateOnItemAdded (
00072 DELEGATE_ONITEMADDED DelegateOnItemAdded
00073 ) { m_DelegateOnItemAdded = DelegateOnItemAdded; }
00074
00075 private:
00076 #ifndef GENERATING_DOXYGEN_OUTPUT
00077 typedef DLG_SERVERLIST_ADDITEM THISCLASS;
00078 SERVERLIST& m_ServerList;
00079 MISTRING m_ListName;
00080 MISTRING m_Prompt;
00081 SERVERLIST::ITEM m_Item;
00082 DELEGATE_ONITEMADDED m_DelegateOnItemAdded;
00083
00084 MGUI::CTRL_LABEL m_LblPrompt;
00085 MGUI::CTRL_LABEL m_LblURL;
00086 MGUI::CTRL_EDIT_URL m_EditURL;
00087 MGUI::FORM_EDIT_STRING m_EditName;
00088 MGUI::FORM_COMBOBOX m_CbxCreateIn;
00089 MGUI::CTRL_PUSHBUTTON m_BtnNewFolder;
00090 bool m_IsModifiedURL;
00091
00092 SERVERLIST::ITEM* AddItem (SERVERLIST::ITEM *pParent, const SERVERLIST::ITEM& NewItem, SERVERLIST::ITEM *pListItem = 0);
00093 ERRVALUE CheckURL ();
00094 void EnableControls ();
00095 void OnCmdNewFolder ();
00096 void OnEditURL ();
00097 void OnEnterURL ();
00098
00099 virtual ERRVALUE v_CreateContent ();
00100 virtual void v_OnOK ();
00101
00102 DLG_SERVERLIST_ADDITEM (const DLG_SERVERLIST_ADDITEM&);
00103 DLG_SERVERLIST_ADDITEM& operator= (const DLG_SERVERLIST_ADDITEM&);
00104 #endif
00105 };
00106
00107
00108
00110 ERRVALUE DlgDownloadServerList (
00111 MDLGPARENT dlgparent,
00112 const MISTRING& msg,
00113 const MISTRING& url,
00114 SERVERLIST::ITEM& result,
00115 std::vector<MISTRING> *additionaltags=0
00116 );
00117
00118
00119 }
00120
00121
00122 #endif // INC_SOA_UISERVERLIST_H