Files
Work/vidcap/srcdlg.hpp
2024-08-07 09:16:27 -04:00

73 lines
2.3 KiB
C++

#ifndef _VIDCAP_SOURCEDLG_HPP_
#define _VIDCAP_SOURCEDLG_HPP_
#ifndef _COMMON_DWINDOW_HPP_
#include <common/dwindow.hpp>
#endif
#ifndef _COMMON_WINDOW_HPP_
#include <common/window.hpp>
#endif
#ifndef _COMMON_CONTROL_HPP_
#include <common/control.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
class SourceDialog : private DWindow
{
public:
SourceDialog(const GUIWindow &parentWindow);
virtual ~SourceDialog();
LRESULT perform(void);
private:
SourceDialog(const SourceDialog &someSourceDialog);
SourceDialog &operator=(const SourceDialog &someSourceDialog);
CallbackData::ReturnType initDialogHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData);
void getDrivers(void);
LRESULT getDriverIndex(void);
Callback<SourceDialog> mInitDialogHandler;
Callback<SourceDialog> mCommandHandler;
Callback<SourceDialog> mDialogCodeHandler;
SmartPointer<Control> mListBox;
HWND mhParent;
LRESULT mDriverIndex;
};
inline
SourceDialog::SourceDialog(const GUIWindow &parentWindow)
: mhParent(parentWindow)
{
mInitDialogHandler.setCallback(this,&SourceDialog::initDialogHandler);
mCommandHandler.setCallback(this,&SourceDialog::commandHandler);
mDialogCodeHandler.setCallback(this,&SourceDialog::dialogCodeHandler);
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
insertHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
insertHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
}
inline
SourceDialog::SourceDialog(const SourceDialog &someSourceDialog)
: mhParent(someSourceDialog.mhParent)
{ // no implementation
mInitDialogHandler.setCallback(this,&SourceDialog::initDialogHandler);
mCommandHandler.setCallback(this,&SourceDialog::commandHandler);
mDialogCodeHandler.setCallback(this,&SourceDialog::dialogCodeHandler);
}
inline
SourceDialog::~SourceDialog()
{
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
removeHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
removeHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
}
inline
SourceDialog &SourceDialog::operator=(const SourceDialog &/*someSourceDialog*/)
{ // no implementation
return *this;
}
#endif