#ifndef _NNTP_MAINWINDOW_HPP_ #define _NNTP_MAINWINDOW_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _DISPLAY_EDITWINDOW_HPP_ #include #endif #ifndef _SOCKET_WSADATA_HPP_ #include #endif #ifndef _NNTP_NNTPCLIENT_HPP_ #include #endif #ifndef _NNTP_NNTPTHREAD_HPP_ #include #endif #ifndef _NNTP_NEWSGROUP_HPP_ #include #endif #ifndef _NNTP_NEWSOPTION_HPP_ #include #endif #ifndef _BSPTREE_BTREE_HPP_ #include #endif #ifndef _COMMON_POINTER_HPP_ #include #endif class RasInterface; class DirTree; class MainWindow : public Window, private NNTPThread { public: MainWindow(void); virtual ~MainWindow(); int messageLoop(void)const; static String className(void); private: enum{TimerID=0}; void createControls(void); void registerClass(void)const; void insertHandlers(void); void removeHandlers(void); void getHostName(String &hostName); void handleRetrieve(void); void message(String messageString); void message(Block &messageStrings); void handleCancelNews(void); WORD retrieveNews(const String &newsGroup); WORD retrieveNews(void); WORD retrieveGroups(void); WORD saveBlock(const String &pathFileName,Block &stringBlock); WORD waitForScheduledEvent(void); WORD dialHost(void); DWORD getSubscriberList(Block &subscriberList); DWORD priorDays(void)const; void handleSubscribe(void); void handleNewsServer(void); void handleNewsDir(void); void handleNewsDirRefresh(void); void handleGeneralOptions(void); void handleRasSettings(void); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType timerHandler(CallbackData &someCallbackData); CallbackData::ReturnType lineHandler(CallbackData &someCallbackData); DWORD openHandler(ThreadMessage &someThreadMessage); DWORD preOpenHandler(ThreadMessage &someThreadMessage); DWORD postOpenHandler(ThreadMessage &someThreadMessage); Callback mPaintHandler; Callback mDestroyHandler; Callback mCommandHandler; Callback mKeyDownHandler; Callback mSizeHandler; Callback mCreateHandler; Callback mLineHandler; Callback mTimerHandler; ThreadCallback mOpenHandler; ThreadCallback mPreOpenHandler; ThreadCallback mPostOpenHandler; static char szClassName[]; static char szMenuName[]; RasInterface *mlpRasInterface; SmartPointer mDirTree; SmartPointer mEditWindow; Block mSubscriberList; BTree mMasterList; WSASystem mWSASystem; WORD mCancelWait; NewsOption mNewsOption; }; inline String MainWindow::className(void) { return String(szClassName); } inline int MainWindow::messageLoop(void)const { return Window::messageLoop(); } #endif