Files
Work/common/Dwindow.hpp
2024-08-07 09:09:36 -04:00

107 lines
2.6 KiB
C++

#ifndef _COMMON_DWINDOW_HPP_
#define _COMMON_DWINDOW_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
#ifndef _COMMON_GUIWINDOW_HPP_
#include <common/guiwnd.hpp>
#endif
class Rect;
class String;
class DWindow : public GUIWindow
{
public:
DWindow(void);
virtual ~DWindow();
bool createDialogParam(GUIWindow &frameWindow,GUIWindow &parentWindow,const String &strTemplate,LPARAM param);
bool createDialogParam(GUIWindow &parentWindow,const String &strTemplate,LPARAM param);
HWND getItem(int controlID)const;
LRESULT sendMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const;
LRESULT postMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const;
void setText(UINT controlID,const String &setText)const;
WORD getText(UINT controlID,String &textString)const;
String getText(UINT controlID)const;
BOOL setInt(UINT controlID,int value)const;
BOOL getInt(UINT controlID,int &value)const;
WORD enable(UINT controlID,WORD isEnabled)const;
void setFocus(UINT controlID)const;
bool show(UINT controlID,int nCmdShow=SW_SHOW)const;
protected:
void endDialog(WORD returnCode);
virtual int windowProcedure(HWND hWnd,WORD message,WPARAM wParam,LPARAM lParam);
private:
DWindow(const DWindow &someDWindow);
DWindow &operator=(const DWindow &someDWindow);
SmartPointer<GUIWindow> mFrameWindow;
};
inline
DWindow::DWindow(void)
{
}
inline
DWindow::DWindow(const DWindow &someDWindow)
: GUIWindow(someDWindow) // private implementation
{
}
inline
DWindow &DWindow::operator=(const DWindow &someDWindow)
{ // private implementation
return *this;
}
inline
HWND DWindow::getItem(int controlID)const
{
if(!isValid())return FALSE;
return ::GetDlgItem(*this,controlID);
}
inline
void DWindow::setFocus(UINT controlID)const
{
::SetFocus(getItem(controlID));
}
inline
bool DWindow::show(UINT controlID,int nCmdShow)const
{
return ::ShowWindow(getItem(controlID),nCmdShow);
}
inline
LRESULT DWindow::sendMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const
{
if(!isValid())return FALSE;
return ::SendMessage(getItem(controlID),message,wParam,lParam);
}
inline
LRESULT DWindow::postMessage(DWORD controlID,UINT message,WPARAM wParam,LPARAM lParam)const
{
if(!isValid())return FALSE;
return ::PostMessage(::GetDlgItem(*this,controlID),message,wParam,lParam);
}
inline
WORD DWindow::enable(UINT controlID,WORD isEnabled)const
{
return ::EnableWindow(::GetDlgItem(*this,controlID),isEnabled);
}
inline
void DWindow::endDialog(WORD returnCode)
{
if(isValid())::EndDialog((HWND)*this,returnCode);
}
#endif