Initial Commit
This commit is contained in:
69
common/accelerator.cpp
Normal file
69
common/accelerator.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
#include <common/accelerator.hpp>
|
||||
#include <common/guiwnd.hpp>
|
||||
|
||||
Accelerator::Accelerator()
|
||||
: mhAccelerator(0)
|
||||
{
|
||||
}
|
||||
|
||||
Accelerator::Accelerator(const String &strTableName,HINSTANCE hInstance)
|
||||
: mhAccelerator(0)
|
||||
{
|
||||
mhAccelerator=::LoadAccelerators(hInstance,strTableName);
|
||||
}
|
||||
|
||||
Accelerator::Accelerator(UINT resID,HINSTANCE hInstance)
|
||||
: mhAccelerator(0)
|
||||
{
|
||||
mhAccelerator=::LoadAccelerators(hInstance,MAKEINTRESOURCE(resID));
|
||||
}
|
||||
|
||||
Accelerator::~Accelerator()
|
||||
{
|
||||
destroy();
|
||||
}
|
||||
|
||||
Accelerator &Accelerator::operator=(const Accelerator &/*accelerator*/)
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool Accelerator::loadAccelerators(const String &strTableName,HINSTANCE hInstance)
|
||||
{
|
||||
destroy();
|
||||
mhAccelerator=::LoadAccelerators(hInstance,strTableName);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Accelerator::loadAccelerators(UINT resID,HINSTANCE hInstance)
|
||||
{
|
||||
destroy();
|
||||
mhAccelerator=::LoadAccelerators(hInstance,MAKEINTRESOURCE(resID));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Accelerator::translate(const GUIWindow &parent,MSG &msg)const
|
||||
{
|
||||
if(!isOkay())return false;
|
||||
return ::TranslateAccelerator(parent,mhAccelerator,&msg);
|
||||
}
|
||||
|
||||
bool Accelerator::translateMDISysAccelerator(const GUIWindow &parent,MSG &msg)const
|
||||
{
|
||||
HWND hClient;
|
||||
if(!isOkay())return false;
|
||||
hClient=parent.getChild();
|
||||
return ::TranslateMDISysAccel(hClient,&msg);
|
||||
}
|
||||
|
||||
void Accelerator::destroy()
|
||||
{
|
||||
if(!isOkay())return;
|
||||
::DestroyAcceleratorTable(mhAccelerator);
|
||||
mhAccelerator=0;
|
||||
}
|
||||
|
||||
bool Accelerator::isOkay(void)const
|
||||
{
|
||||
return mhAccelerator?true:false;
|
||||
}
|
||||
Reference in New Issue
Block a user