00001 // This may look like C code, but it's really -*- C++ -*- 00002 /* 00003 * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium. 00004 * 00005 * See the LICENSE file for terms of use. 00006 */ 00007 #ifndef HOME_H_ 00008 #define HOME_H_ 00009 00010 #include <Wt/WContainerWidget> 00011 00012 namespace Wt { 00013 class WStackedWidget; 00014 class WTreeNode; 00015 class WTable; 00016 } 00017 00018 using namespace Wt; 00019 00020 class Home : public WContainerWidget 00021 { 00022 public: 00023 Home(WContainerWidget *parent); 00024 00025 virtual void refresh(); 00026 00027 private: 00028 WStackedWidget *contents_; 00029 00030 WWidget *introduction(); 00031 WWidget *news(); 00032 WWidget *status(); 00033 WWidget *features(); 00034 WWidget *documentation(); 00035 WWidget *examples(); 00036 WWidget *download(); 00037 WWidget *community(); 00038 00039 WTable *recentNews_; 00040 WTable *historicalNews_; 00041 WTable *releases_; 00042 00043 void readNews(WTable *newsTable, const std::string newsfile); 00044 void readReleases(WTable *releaseTable, const std::string releasefile); 00045 static std::string href(const std::string url, 00046 const std::string description); 00047 00048 WTreeNode *makeTreeMap(const std::string name, WTreeNode *parent); 00049 WTreeNode *makeTreeFile(const std::string name, WTreeNode *parent); 00050 00051 WWidget *helloWorldExample(); 00052 WWidget *chartExample(); 00053 WWidget *homepageExample(); 00054 WWidget *treelistExample(); 00055 WWidget *hangmanExample(); 00056 WWidget *styleExample(); 00057 WWidget *composerExample(); 00058 WWidget *dragdropExample(); 00059 WWidget *fileExplorerExample(); 00060 WWidget *calendarExample(); 00061 WWidget *chatExample(); 00062 00063 WWidget *wrapViewOrDefer(WWidget *(Home::*createFunction)()); 00064 00065 void changeTitle(WMenuItem *item); 00066 00067 WContainerWidget *sideBarContent_; 00068 }; 00069 00070 #endif // HOME_H_