This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

141
toolbar/HOLD/ADDBMP.HPP Normal file
View File

@@ -0,0 +1,141 @@
#ifndef _TOOLBAR_ADDBITMAP_HPP_
#define _TOOLBAR_ADDBITMAP_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_COMMCTRL_HPP_
#include <common/commctrl.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
class AddBitmap : private TBADDBITMAP
{
public:
AddBitmap(void);
AddBitmap(UINT bitmapID,HINSTANCE hProcessInstance=::GetModuleHandle(0));
AddBitmap(const String &strBitmapName,HINSTANCE hProcessInstance=::GetModuleHandle(0));
AddBitmap(const AddBitmap &someAddBitmap);
AddBitmap(const TBADDBITMAP &someTBADDBITMAP);
virtual ~AddBitmap();
AddBitmap &operator=(const AddBitmap &someAddBitmap);
AddBitmap &operator=(const TBADDBITMAP &someTBADDBITMAP);
BOOL operator==(const AddBitmap &someAddBitmap)const;
BOOL operator==(const TBADDBITMAP &someTBADDBITMAP)const;
HINSTANCE processInstance(void)const;
void processInstance(HINSTANCE hProcessInstance);
UINT bitmapID(void)const;
void bitmapID(UINT bitmapID);
TBADDBITMAP &getTBADDBITMAP(void);
private:
void init(void);
};
inline
AddBitmap::AddBitmap(void)
{
init();
}
inline
AddBitmap::AddBitmap(UINT bitmapID,HINSTANCE hProcessInstance)
{
TBADDBITMAP::hInst=hProcessInstance;
TBADDBITMAP::nID=bitmapID;
}
inline
AddBitmap::AddBitmap(const String &strBitmapName,HINSTANCE hProcessInstance)
{
TBADDBITMAP::hInst=hProcessInstance;
TBADDBITMAP::nID=(UINT)MAKEINTRESOURCE((char*)(String&)strBitmapName);
}
inline
AddBitmap::AddBitmap(const AddBitmap &someAddBitmap)
{
init();
*this=someAddBitmap;
}
inline
AddBitmap::AddBitmap(const TBADDBITMAP &someTBADDBITMAP)
{
init();
*this=someTBADDBITMAP;
}
inline
AddBitmap::~AddBitmap()
{
}
inline
AddBitmap &AddBitmap::operator=(const AddBitmap &someAddBitmap)
{
processInstance(someAddBitmap.processInstance());
bitmapID(someAddBitmap.bitmapID());
return *this;
}
inline
AddBitmap &AddBitmap::operator=(const TBADDBITMAP &someTBADDBITMAP)
{
processInstance(someTBADDBITMAP.hInst);
bitmapID(someTBADDBITMAP.nID);
return *this;
}
inline
BOOL AddBitmap::operator==(const AddBitmap &someAddBitmap)const
{
return (processInstance()==someAddBitmap.processInstance()&&
bitmapID()==someAddBitmap.bitmapID());
}
inline
BOOL AddBitmap::operator==(const TBADDBITMAP &someTBADDBITMAP)const
{
return (processInstance()==someTBADDBITMAP.hInst&&
bitmapID()==someTBADDBITMAP.nID);
}
inline
HINSTANCE AddBitmap::processInstance(void)const
{
return TBADDBITMAP::hInst;
}
inline
void AddBitmap::processInstance(HINSTANCE hProcessInstance)
{
TBADDBITMAP::hInst=hProcessInstance;
}
inline
UINT AddBitmap::bitmapID(void)const
{
return TBADDBITMAP::nID;
}
inline
void AddBitmap::bitmapID(UINT bitmapID)
{
TBADDBITMAP::nID=bitmapID;
}
inline
TBADDBITMAP &AddBitmap::getTBADDBITMAP(void)
{
return (TBADDBITMAP&)*this;
}
inline
void AddBitmap::init(void)
{
TBADDBITMAP::hInst=0;
TBADDBITMAP::nID=0;
}
#endif

216
toolbar/HOLD/TBBTN.HPP Normal file
View File

@@ -0,0 +1,216 @@
#ifndef _TOOLBAR_TOOLBARBUTTON_HPP_
#define _TOOLBAR_TOOLBARBUTTON_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_COMMCTRL_HPP_
#include <common/commctrl.hpp>
#endif
class ToolBarButton : private TBBUTTON
{
public:
enum StateFlags{StateChecked=TBSTATE_CHECKED,StatePressed=TBSTATE_PRESSED,StateEnabled=TBSTATE_ENABLED,
StateHidden=TBSTATE_HIDDEN,StateIndeterminate=TBSTATE_INDETERMINATE,StateWrap=TBSTATE_WRAP,
StateEllipses=TBSTATE_ELLIPSES};
enum StyleFlags{StyleButton=TBSTYLE_BUTTON,StyleSEP=TBSTYLE_SEP,StyleCheck=TBSTYLE_CHECK,StyleGroup=TBSTYLE_GROUP,
StyleCheckGroup=TBSTYLE_CHECKGROUP,StyleDropDown=TBSTYLE_DROPDOWN};
ToolBarButton(void);
ToolBarButton(int indexBitmap,int commandID,BYTE stateFlags=StateEnabled,BYTE styleFlags=StyleButton,DWORD userData=0,DWORD indexString=0);
ToolBarButton(const ToolBarButton &someToolBarButton);
ToolBarButton(const TBBUTTON &someTBBUTTON);
virtual ~ToolBarButton();
ToolBarButton &operator=(const ToolBarButton &someToolBarButton);
ToolBarButton &operator=(const TBBUTTON &someTBBUTTON);
BOOL operator==(const ToolBarButton &someToolBarButton)const;
BOOL operator==(const TBBUTTON &someTBBUTTON)const;
int indexBitmap(void)const;
void indexBitmap(int indexBitmap);
int commandID(void)const;
void commandID(int commandID);
BYTE stateFlags(void)const;
void stateFlags(BYTE stateFlags);
BYTE style(void)const;
void style(BYTE style);
DWORD userData(void)const;
void userData(DWORD userData);
int indexString(void)const;
void indexString(int indexString);
TBBUTTON &getTBBUTTON(void);
private:
void init(void);
};
inline
ToolBarButton::ToolBarButton(void)
{
init();
}
inline
ToolBarButton::ToolBarButton(int indexBitmap,int commandID,BYTE stateFlags,BYTE styleFlags,DWORD userData,DWORD indexString)
{
TBBUTTON::iBitmap=indexBitmap;
TBBUTTON::idCommand=commandID;
TBBUTTON::fsState=stateFlags;
TBBUTTON::fsStyle=styleFlags;
TBBUTTON::dwData=userData;
TBBUTTON::iString=indexString;
}
inline
ToolBarButton::ToolBarButton(const ToolBarButton &someToolBarButton)
{
init();
*this=someToolBarButton;
}
inline
ToolBarButton::ToolBarButton(const TBBUTTON &someTBBUTTON)
{
init();
*this=someTBBUTTON;
}
inline
ToolBarButton::~ToolBarButton()
{
}
inline
ToolBarButton &ToolBarButton::operator=(const ToolBarButton &someToolBarButton)
{
indexBitmap(someToolBarButton.indexBitmap());
commandID(someToolBarButton.commandID());
stateFlags(someToolBarButton.stateFlags());
style(someToolBarButton.style());
userData(someToolBarButton.userData());
indexString(someToolBarButton.indexString());
return *this;
}
inline
ToolBarButton &ToolBarButton::operator=(const TBBUTTON &someTBBUTTON)
{
indexBitmap(someTBBUTTON.iBitmap);
commandID(someTBBUTTON.idCommand);
stateFlags(someTBBUTTON.fsState);
style(someTBBUTTON.fsStyle);
userData(someTBBUTTON.dwData);
indexString(someTBBUTTON.iString);
return *this;
}
inline
BOOL ToolBarButton::operator==(const ToolBarButton &someToolBarButton)const
{
return (indexBitmap()==someToolBarButton.indexBitmap()&&
commandID()==someToolBarButton.commandID()&&
stateFlags()==someToolBarButton.stateFlags()&&
style()==someToolBarButton.style()&&
userData()==someToolBarButton.userData()&&
indexString()==someToolBarButton.indexString());
}
inline
BOOL ToolBarButton::operator==(const TBBUTTON &someTBBUTTON)const
{
return (indexBitmap()==someTBBUTTON.iBitmap&&
commandID()==someTBBUTTON.idCommand&&
stateFlags()==someTBBUTTON.fsState&&
style()==someTBBUTTON.fsStyle&&
userData()==someTBBUTTON.dwData&&
indexString()==someTBBUTTON.iString);
}
inline
int ToolBarButton::indexBitmap(void)const
{
return TBBUTTON::iBitmap;
}
inline
void ToolBarButton::indexBitmap(int indexBitmap)
{
TBBUTTON::iBitmap=indexBitmap;
}
inline
int ToolBarButton::commandID(void)const
{
return TBBUTTON::idCommand;
}
inline
void ToolBarButton::commandID(int commandID)
{
TBBUTTON::idCommand=commandID;
}
inline
BYTE ToolBarButton::stateFlags(void)const
{
return TBBUTTON::fsState;
}
inline
void ToolBarButton::stateFlags(BYTE stateFlags)
{
TBBUTTON::fsState=stateFlags;
}
inline
BYTE ToolBarButton::style(void)const
{
return TBBUTTON::fsStyle;
}
inline
void ToolBarButton::style(BYTE style)
{
TBBUTTON::fsStyle=style;
}
inline
DWORD ToolBarButton::userData(void)const
{
return TBBUTTON::dwData;
}
inline
void ToolBarButton::userData(DWORD userData)
{
TBBUTTON::dwData=userData;
}
inline
int ToolBarButton::indexString(void)const
{
return TBBUTTON::iString;
}
inline
void ToolBarButton::indexString(int indexString)
{
TBBUTTON::iString=indexString;
}
inline
void ToolBarButton::init(void)
{
TBBUTTON::iBitmap=0;
TBBUTTON::idCommand=0;
TBBUTTON::fsState=0;
TBBUTTON::fsStyle=0;
TBBUTTON::bReserved[0]=0;
TBBUTTON::bReserved[1]=0;
TBBUTTON::dwData=0;
TBBUTTON::iString=0;
}
inline
TBBUTTON &ToolBarButton::getTBBUTTON(void)
{
return (TBBUTTON&)*this;
}
#endif

272
toolbar/HOLD/TOOLBAR.CPP Normal file
View File

@@ -0,0 +1,272 @@
#include <toolbar/toolbar.hpp>
#include <common/comctlex.hpp>
#include <common/rect.hpp>
ToolBar::ToolBar(void)
{
CommonControlsEx commonControlsEx;
commonControlsEx.flags(CommonControlsEx::InitBar);
commonControlsEx.initCommonControlsEx();
}
ToolBar::ToolBar(const ToolBar &someToolBar)
{ // private implementation
*this=someToolBar;
}
ToolBar::~ToolBar()
{
destroy();
}
ToolBar &ToolBar::operator=(const ToolBar &/*someToolBar*/)
{ // private implementation
return *this;
}
BOOL ToolBar::create(GUIWindow &parentWindow,UINT controlID,const Rect &initRect,UINT styles)
{
if(isValid())return FALSE;
createControl(0L,TOOLBARCLASSNAME,String(),WS_CHILD|WS_BORDER|WS_VISIBLE|styles,initRect,parentWindow,controlID);
buttonStructSize();
return isValid();
}
BOOL ToolBar::addBitmap(const AddBitmap &addBitmap)const
{
if(!isValid())return FALSE;
return !(-1==sendMessage(TB_ADDBITMAP,1,(LPARAM)&((AddBitmap&)addBitmap).getTBADDBITMAP()));
}
BOOL ToolBar::addBitmaps(Block<AddBitmap> &addBitmaps)const
{
TBADDBITMAP *pTBADDBITMAP;
BOOL result;
pTBADDBITMAP=::new TBADDBITMAP[addBitmaps.size()];
for(int bmIndex=0;bmIndex<addBitmaps.size();bmIndex++)
{
pTBADDBITMAP[bmIndex].hInst=addBitmaps[bmIndex].processInstance();
pTBADDBITMAP[bmIndex].nID=addBitmaps[bmIndex].bitmapID();
}
result=!(-1==sendMessage(TB_ADDBITMAP,addBitmaps.size(),(LPARAM)pTBADDBITMAP));
::delete[] pTBADDBITMAP;
return result;
}
BOOL ToolBar::addButton(const ToolBarButton &toolBarButton)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ADDBUTTONS,1,(LPARAM)&((ToolBarButton&)toolBarButton).getTBBUTTON());
}
BOOL ToolBar::addButtons(Block<ToolBarButton> &toolBarButtons)const
{
BOOL result;
TBBUTTON *pTBBUTTONS;
pTBBUTTONS=::new TBBUTTON[toolBarButtons.size()];
for(int bmIndex=0;bmIndex<toolBarButtons.size();bmIndex++)
{
pTBBUTTONS[bmIndex].iBitmap=toolBarButtons[bmIndex].indexBitmap();
pTBBUTTONS[bmIndex].idCommand=toolBarButtons[bmIndex].commandID();
pTBBUTTONS[bmIndex].fsState=toolBarButtons[bmIndex].stateFlags();
pTBBUTTONS[bmIndex].fsStyle=toolBarButtons[bmIndex].style();
pTBBUTTONS[bmIndex].dwData=toolBarButtons[bmIndex].userData();
pTBBUTTONS[bmIndex].iString=toolBarButtons[bmIndex].indexString();
}
result=sendMessage(TB_ADDBUTTONS,toolBarButtons.size(),(LPARAM)pTBBUTTONS);
::delete[] pTBBUTTONS;
return result;
}
void ToolBar::buttonStructSize(void)const
{
if(!isValid())return;
sendMessage(TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),0L);
}
void ToolBar::resize(void)const
{
if(!isValid())return;
sendMessage(TB_AUTOSIZE,0,0L);
}
WORD ToolBar::countButtons(void)const
{
if(!isValid())return FALSE;
return sendMessage(TB_BUTTONCOUNT,0,0L);
}
BOOL ToolBar::changeBitmap(WORD indexBitmapFrom,WORD indexBitmapTo)const
{
if(!isValid())return FALSE;
return sendMessage(TB_CHANGEBITMAP,(WPARAM)indexBitmapFrom,(LPARAM)MAKELPARAM(indexBitmapTo,0));
}
BOOL ToolBar::checkButton(UINT buttonID,BOOL checkState)const
{
if(!isValid())return FALSE;
return sendMessage(TB_CHECKBUTTON,(WPARAM)buttonID,(LPARAM)MAKELONG(checkState,0));
}
WORD ToolBar::getButtonIndex(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_COMMANDTOINDEX,(WPARAM)buttonID,0L);
}
WORD ToolBar::getBitmapIndex(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_GETBITMAP,(WPARAM)buttonID,0L);
}
void ToolBar::customize(void)const
{
if(!isValid())return;
sendMessage(TB_CUSTOMIZE,0,0L);
}
BOOL ToolBar::deleteButton(WORD indexButton)const
{
if(!isValid())return FALSE;
return sendMessage(TB_DELETEBUTTON,(WPARAM)indexButton,0L);
}
BOOL ToolBar::enableButton(UINT buttonID,BOOL enable)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ENABLEBUTTON,(WPARAM)buttonID,(LPARAM)MAKELONG(enable,0));
}
BOOL ToolBar::canHandleLargeBitmaps(void)const
{
if(!isValid())return FALSE;
return (TBBF_LARGE==sendMessage(TB_GETBITMAPFLAGS,0,0L));
}
BOOL ToolBar::getButtonInfo(WORD indexButton,ToolBarButton &toolBarButton)const
{
if(!isValid())return FALSE;
return sendMessage(TB_GETBUTTON,(WPARAM)indexButton,(LPARAM)&toolBarButton.getTBBUTTON());
}
BOOL ToolBar::getButtonText(WORD buttonID,String &strButtonText)const
{
String strCopyText;
BOOL returnCode(FALSE);
if(!isValid())return returnCode;;
returnCode=!(-1==sendMessage(TB_GETBUTTONTEXT,(WPARAM)buttonID,(LPARAM)(LPSTR)strCopyText));
if(returnCode)strButtonText=strCopyText;
return returnCode;
}
BOOL ToolBar::getItemRect(WORD indexButton,Rect &itemRect)const
{
if(!isValid())return FALSE;
return sendMessage(TB_GETITEMRECT,(WPARAM)indexButton,(LPARAM)(RECT*)itemRect);
}
WORD ToolBar::getRows(void)const
{
if(!isValid())return FALSE;
return sendMessage(TB_GETROWS,0,0L);
}
DWORD ToolBar::getButtonState(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_GETSTATE,(WPARAM)buttonID,0L);
}
HANDLE ToolBar::getToolTipControl(void)const
{
if(!isValid())return FALSE;
return (HANDLE)sendMessage(TB_GETTOOLTIPS,0,0L);
}
BOOL ToolBar::hideButton(UINT buttonID,BOOL hide)const
{
if(!isValid())return FALSE;
return sendMessage(TB_HIDEBUTTON,(WPARAM)buttonID,(LPARAM)MAKELONG(hide,0));
}
BOOL ToolBar::indeterminate(UINT buttonID,BOOL isIndeterminate)const
{
if(!isValid())return FALSE;
return sendMessage(TB_INDETERMINATE,(WPARAM)buttonID,(LPARAM)MAKELONG(isIndeterminate,0));
}
BOOL ToolBar::insertButton(WORD indexButton,const ToolBarButton &toolBarButton)const
{
if(!isValid())return FALSE;
return sendMessage(TB_INSERTBUTTON,(WPARAM)indexButton,(LPARAM)&((ToolBarButton&)toolBarButton).getTBBUTTON());
}
BOOL ToolBar::isButtonChecked(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ISBUTTONCHECKED,(WPARAM)buttonID,0L);
}
BOOL ToolBar::isButtonEnabled(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ISBUTTONENABLED,(WPARAM)buttonID,0L);
}
BOOL ToolBar::isButtonHidden(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ISBUTTONHIDDEN,(WPARAM)buttonID,0L);
}
BOOL ToolBar::isButtonIndeterminate(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ISBUTTONINDETERMINATE,(WPARAM)buttonID,0L);
}
BOOL ToolBar::isButtonPressed(UINT buttonID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_ISBUTTONPRESSED,(WPARAM)buttonID,0L);
}
BOOL ToolBar::pressButton(UINT buttonID,BOOL pressed)const
{
if(!isValid())return FALSE;
return sendMessage(TB_PRESSBUTTON,(WPARAM)buttonID,(LPARAM)MAKELONG(pressed,0));
}
BOOL ToolBar::setBitmapSize(WORD xBitmap,WORD yBitmap)const
{
if(!isValid())return FALSE;
return sendMessage(TB_SETBITMAPSIZE,0,(LPARAM)MAKELONG(xBitmap,yBitmap));
}
BOOL ToolBar::setButtonSize(WORD xButton,WORD yButton)const
{
if(!isValid())return FALSE;
return sendMessage(TB_SETBUTTONSIZE,0,(LPARAM)MAKELONG(xButton,yButton));
}
BOOL ToolBar::setCommandID(WORD indexButton,UINT commandID)const
{
if(!isValid())return FALSE;
return sendMessage(TB_SETCMDID,(WPARAM)indexButton,(LPARAM)commandID);
}
void ToolBar::setParent(GUIWindow &parentWindow)const
{
if(!isValid())return;
sendMessage(TB_SETPARENT,(WPARAM)(HWND)parentWindow,0L);
}
void ToolBar::setToolTips(HANDLE hToolTips)const
{
if(!isValid())return;
sendMessage(TB_SETTOOLTIPS,(WPARAM)(HWND)hToolTips,0L);
}

70
toolbar/HOLD/TOOLBAR.HPP Normal file
View File

@@ -0,0 +1,70 @@
#ifndef _TOOLBAR_TOOLBAR_HPP_
#define _TOOLBAR_TOOLBAR_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_CONTROL_HPP_
#include <common/control.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _TOOLBAR_ADDBITMAP_HPP_
#include <toolbar/addbmp.hpp>
#endif
#ifndef _TOOLBAR_TOOLBARBUTTON_HPP_
#include <toolbar/tbbtn.hpp>
#endif
class Rect;
class ToolBar : public Control
{
public:
enum Styles{StyleToolTips=TBSTYLE_TOOLTIPS,StyleWrapable=TBSTYLE_WRAPABLE,StyleAltDrag=TBSTYLE_ALTDRAG,
StyleFlat=TBSTYLE_FLAT,StyleList=TBSTYLE_LIST,StyleCustomErase=TBSTYLE_CUSTOMERASE};
ToolBar(void);
virtual ~ToolBar();
BOOL create(GUIWindow &parentWindow,UINT controlID,const Rect &initRect=Rect(0,0,100,30),UINT styles=StyleList);
BOOL addBitmap(const AddBitmap &addBitmap)const;
BOOL addBitmaps(Block<AddBitmap> &addBitmaps)const;
BOOL addButton(const ToolBarButton &toolBarButton)const;
BOOL addButtons(Block<ToolBarButton> &toolBarButtons)const;
BOOL deleteButton(WORD indexButton)const;
BOOL changeBitmap(WORD indexBitmapFrom,WORD indexBitmapTo)const;
BOOL checkButton(UINT buttonID,BOOL checkState)const;
BOOL enableButton(UINT buttonID,BOOL enable)const;
BOOL canHandleLargeBitmaps(void)const;
BOOL getButtonInfo(WORD indexButton,ToolBarButton &toolBarButton)const;
BOOL getButtonText(WORD buttonID,String &strButtonText)const;
BOOL getItemRect(WORD indexButton,Rect &itemRect)const;
BOOL hideButton(UINT buttonID,BOOL hide)const;
BOOL indeterminate(UINT buttonID,BOOL isIndeterminate)const;
BOOL insertButton(WORD indexButton,const ToolBarButton &toolBarButton)const;
BOOL isButtonChecked(UINT buttonID)const;
BOOL isButtonEnabled(UINT buttonID)const;
BOOL isButtonHidden(UINT buttonID)const;
BOOL isButtonIndeterminate(UINT buttonID)const;
BOOL isButtonPressed(UINT buttonID)const;
BOOL pressButton(UINT buttonID,BOOL pressed)const;
BOOL setBitmapSize(WORD xBitmap,WORD yBitmap)const;
BOOL setButtonSize(WORD xButton,WORD yButton)const;
BOOL setCommandID(WORD indexButton,UINT commandID)const;
WORD countButtons(void)const;
WORD getButtonIndex(UINT buttonID)const;
WORD getBitmapIndex(UINT buttonID)const;
WORD getRows(void)const;
DWORD getButtonState(UINT buttonID)const;
HANDLE getToolTipControl(void)const;
void resize(void)const;
void customize(void)const;
void setParent(GUIWindow &parentWindow)const;
void setToolTips(HANDLE hToolTips)const;
private:
void buttonStructSize(void)const;
ToolBar(const ToolBar &someToolBar);
ToolBar &operator=(const ToolBar &someToolBar);
};
#endif