Files
Work/nntp/MAINFRM.HPP
2024-08-07 09:16:27 -04:00

128 lines
4.1 KiB
C++

#ifndef _NNTP_MAINWINDOW_HPP_
#define _NNTP_MAINWINDOW_HPP_
#ifndef _COMMON_MDIFRM_HPP_
#include <common/mdifrm.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _SOCKET_WSADATA_HPP_
#include <socket/wsadata.hpp>
#endif
#ifndef _NNTP_NNTPTHREAD_HPP_
#include <nntp/nntpthrd.hpp>
#endif
#ifndef _NNTP_NEWSGROUP_HPP_
#include <nntp/newsgrp.hpp>
#endif
#ifndef _NNTP_NEWSOPTION_HPP_
#include <nntp/newsopt.hpp>
#endif
#ifndef _NNTP_HEADER_HPP_
#include <nntp/header.hpp>
#endif
#ifndef _BSPTREE_BTREE_HPP_
#include <bsptree/btree.hpp>
#endif
#ifndef _COMMON_POINTER_HPP_
#include <common/pointer.hpp>
#endif
#ifndef _THREAD_MONITOR_HPP_
#include <thread/monitor.hpp>
#endif
class RasInterface;
class EditWindow;
class StatusBarEx;
class LogView;
class ImageView;
class BrowseView;
class MainFrame : public FrameWindow, private NNTPThread
{
public:
MainFrame(void);
virtual ~MainFrame();
protected:
virtual void mdiDestroy(MDIWindow &mdiWindow);
virtual void mdiActivate(MDIWindow &mdiWindow);
virtual void mdiDeactivate(MDIWindow &mdiWindow);
virtual void moreWindows(void);
private:
enum{StatusBarID=101};
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
CallbackData::ReturnType queryEndSessionHandler(CallbackData &someCallbackData);
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 lineHandler(CallbackData &someCallbackData);
CallbackData::ReturnType browseSelectHandler(CallbackData &someCallbackData);
BrowseView &createBrowseView(void);
LogView &createLogView(void);
ImageView &createImageView(void);
ImageView &createDocumentView(void);
BOOL openDocument(const String &strPathFileName);
BOOL openImage(const String &strPathFileName);
void createControls(void);
void insertHandlers(void);
void removeHandlers(void);
void getParams(String &hostName,String &userName,String &password);
void handleRetrieve(void);
void message(String messageString);
void message(Block<String> &messageStrings);
void handleCancelNews(void);
void decode(const String &pathFileName,String &strPathImageFile);
void loadFilterList(void);
WORD retrieveNews(const String &newsGroup);
WORD retrieveNews(void);
WORD retrieveGroups(void);
WORD saveBlock(const String &pathFileName,Block<String> &stringBlock);
WORD dialHost(void);
DWORD getSubscriberList(Block<NewsGroup> &subscriberList);
BOOL getArticles(const String &newGroup,Block<MsgID> &msgIDs);
bool inSubject(Block<String> &headText);
DWORD priorDays(void)const;
void verifyNewsDirectory(void);
void handleFileOpen(void);
void handleViewLog(void);
void handleFileBrowse(void);
void handleSubscribe(void);
void handleNewsServer(void);
void handleGeneralOptions(void);
void handleRasSettings(void);
void handleClearLog(void);
void handleImageFitToWindow(void);
DWORD openHandler(ThreadMessage &someThreadMessage);
DWORD preOpenHandler(ThreadMessage &someThreadMessage);
DWORD postOpenHandler(ThreadMessage &someThreadMessage);
Callback<MainFrame> mPaintHandler;
Callback<MainFrame> mDestroyHandler;
Callback<MainFrame> mCommandHandler;
Callback<MainFrame> mKeyDownHandler;
Callback<MainFrame> mSizeHandler;
Callback<MainFrame> mCreateHandler;
Callback<MainFrame> mCloseHandler;
Callback<MainFrame> mQueryEndSessionHandler;
Callback<MainFrame> mBrowseSelectHandler;
ThreadCallback<MainFrame> mOpenHandler;
ThreadCallback<MainFrame> mPreOpenHandler;
ThreadCallback<MainFrame> mPostOpenHandler;
SmartPointer<RasInterface> mRasInterface;
SmartPointer<StatusBarEx> mStatusControl;
SmartPointer<MDIWindow> mLogViewWinCache;
Block<NewsGroup> mSubscriberList;
Block<String> mFilterList;
String mLastOpenDirectory;
BTree<MsgID> mMasterList;
WSASystem mWSASystem;
NewsOption mNewsOption;
bool mIsCancelled;
};
#endif