diff options
Diffstat (limited to 'mmc_updater/depends/win32cpp/wceframe.h')
-rw-r--r-- | mmc_updater/depends/win32cpp/wceframe.h | 420 |
1 files changed, 0 insertions, 420 deletions
diff --git a/mmc_updater/depends/win32cpp/wceframe.h b/mmc_updater/depends/win32cpp/wceframe.h deleted file mode 100644 index f3aa67ef..00000000 --- a/mmc_updater/depends/win32cpp/wceframe.h +++ /dev/null @@ -1,420 +0,0 @@ -// Win32++ Version 7.2 -// Released: 5th AUgust 2011 -// -// David Nash -// email: dnash@bigpond.net.au -// url: https://sourceforge.net/projects/win32-framework -// -// -// Copyright (c) 2005-2011 David Nash -// -// Permission is hereby granted, free of charge, to -// any person obtaining a copy of this software and -// associated documentation files (the "Software"), -// to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, -// merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom -// the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice -// shall be included in all copies or substantial portions -// of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -// ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -// OR OTHER DEALINGS IN THE SOFTWARE. -// -//////////////////////////////////////////////////////// - - -////////////////////////////////////////////////////// -// WceFrame.h -// Definitions for the CCmdBar and CWceFrame - -// These classes are provide a frame window for use on Window CE devices such -// as Pocket PCs. The frame uses CommandBar (a control unique to the Windows CE -// operating systems) to display the menu and toolbar. -// -// Use the PocketPCWceFrame generic application as the starting point for your own -// frame based applications on the Pocket PC. -// -// Refer to the Scribble demo application for an example of how these classes -// can be used. - - -#ifndef _WIN32XX_WCEFRAME_H_ -#define _WIN32XX_WCEFRAME_H_ - - -#include "wincore.h" -#include <commctrl.h> -#include <vector> -#include "default_resource.h" - -#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) - #define SHELL_AYGSHELL -#endif - -#ifdef SHELL_AYGSHELL - #include <aygshell.h> - #pragma comment(lib, "aygshell.lib") -#endif // SHELL_AYGSHELL - -#if (_WIN32_WCE < 0x500 && defined(SHELL_AYGSHELL)) || _WIN32_WCE == 420 - #pragma comment(lib, "ccrtrtti.lib") -#endif - - -namespace Win32xx -{ - - //////////////////////////////////// - // Declaration of the CCmdBar class - // - class CCmdBar : public CWnd - { - public: - CCmdBar(); - virtual ~CCmdBar(); - virtual BOOL AddAdornments(DWORD dwFlags); - virtual int AddBitmap(int idBitmap, int iNumImages, int iImageWidth, int iImageHeight); - virtual BOOL AddButtons(int nButtons, TBBUTTON* pTBButton); - virtual HWND Create(HWND hwndParent); - virtual int GetHeight() const; - virtual HWND InsertComboBox(int iWidth, UINT dwStyle, WORD idComboBox, WORD iButton); - virtual BOOL IsVisible(); - virtual BOOL Show(BOOL fShow); - - private: - -#ifdef SHELL_AYGSHELL - SHMENUBARINFO m_mbi; -#endif - - }; - - - ////////////////////////////////////// - // Declaration of the CWceFrame class - // A mini frame based on CCmdBar - class CWceFrame : public CWnd - { - public: - CWceFrame(); - virtual ~CWceFrame(); - virtual void AddToolBarButton(UINT nID); - CRect GetViewRect() const; - CCmdBar& GetMenuBar() const {return (CCmdBar&)m_MenuBar;} - virtual void OnActivate(WPARAM wParam, LPARAM lParam); - virtual void OnCreate(); - virtual void PreCreate(CREATESTRUCT &cs); - virtual void RecalcLayout(); - virtual void SetButtons(const std::vector<UINT> ToolBarData); - virtual LRESULT WndProcDefault(UINT uMsg, WPARAM wParam, LPARAM lParam); - - protected: - std::vector<UINT> m_ToolBarData; - - private: - CCmdBar m_MenuBar; - tString m_tsAppName; - -#ifdef SHELL_AYGSHELL - SHACTIVATEINFO m_sai; -#endif - - }; - - ////////////////////////////////////////// - // Definitions for the CCmdBar class - // This class wraps CommandBar_Create which - // creates a CommandBar at the top of the window - inline CCmdBar::CCmdBar() - { - } - - inline CCmdBar::~CCmdBar() - { - if (IsWindow()) - ::CommandBar_Destroy(m_hWnd); - } - - - inline BOOL CCmdBar::AddAdornments(DWORD dwFlags) - { - BOOL bReturn = CommandBar_AddAdornments(m_hWnd, dwFlags, 0); - - if (!bReturn) - throw CWinException(_T("AddAdornments failed")); - - return bReturn; - } - - inline int CCmdBar::AddBitmap(int idBitmap, int iNumImages, int iImageWidth, int iImageHeight) - { - HINSTANCE hInst = GetApp()->GetInstanceHandle(); - return CommandBar_AddBitmap(m_hWnd, hInst, idBitmap, iNumImages, iImageWidth, iImageHeight); - } - - inline BOOL CCmdBar::AddButtons(int nButtons, TBBUTTON* pTBButton) - { - BOOL bReturn = CommandBar_AddButtons(m_hWnd, nButtons, pTBButton); - if (!bReturn) - throw CWinException(_T("Failed to add buttons to commandbar")); - - return bReturn; - } - - inline HWND CCmdBar::Create(HWND hParent) - { -#ifdef SHELL_AYGSHELL - SHMENUBARINFO mbi; - - memset(&mbi, 0, sizeof(SHMENUBARINFO)); - mbi.cbSize = sizeof(SHMENUBARINFO); - mbi.hwndParent = hParent; - mbi.nToolBarId = IDW_MAIN; - mbi.hInstRes = GetApp()->GetInstanceHandle(); - mbi.nBmpId = 0; - mbi.cBmpImages = 0; - - if (SHCreateMenuBar(&mbi)) - { - m_hWnd = mbi.hwndMB; - } - else - throw CWinException(_T("Failed to create MenuBar")); - -#else - m_hWnd = CommandBar_Create(GetApp()->GetInstanceHandle(), hParent, IDW_MENUBAR); - - if (m_hWnd == NULL) - throw CWinException(_T("Failed to create CommandBar")); - - CommandBar_InsertMenubar(m_hWnd, GetApp()->GetInstanceHandle(), IDW_MAIN, 0); -#endif - return m_hWnd; - } - - inline int CCmdBar::GetHeight() const - { - return CommandBar_Height(m_hWnd); - } - - inline HWND CCmdBar::InsertComboBox(int iWidth, UINT dwStyle, WORD idComboBox, WORD iButton) - { - HINSTANCE hInst = GetApp()->GetInstanceHandle(); - HWND hWnd = CommandBar_InsertComboBox(m_hWnd, hInst, iWidth, dwStyle, idComboBox, iButton); - - if (!hWnd) - throw CWinException(_T("InsertComboBox failed")); - - return hWnd; - } - - inline BOOL CCmdBar::IsVisible() - { - return ::CommandBar_IsVisible(m_hWnd); - } - - inline BOOL CCmdBar::Show(BOOL fShow) - { - return ::CommandBar_Show(m_hWnd, fShow); - } - - - ///////////////////////////////////////// - // Definitions for the CWceFrame class - // This class creates a simple frame using CCmdBar - inline CWceFrame::CWceFrame() - { -#ifdef SHELL_AYGSHELL - // Initialize the shell activate info structure - memset (&m_sai, 0, sizeof (m_sai)); - m_sai.cbSize = sizeof (m_sai); -#endif - } - - inline CWceFrame::~CWceFrame() - { - } - - inline void CWceFrame::AddToolBarButton(UINT nID) - // Adds Resource IDs to toolbar buttons. - // A resource ID of 0 is a separator - { - m_ToolBarData.push_back(nID); - } - - inline CRect CWceFrame::GetViewRect() const - { - CRect r; - ::GetClientRect(m_hWnd, &r); - -#ifndef SHELL_AYGSHELL - // Reduce the size of the client rectange, by the commandbar height - r.top += m_MenuBar.GetHeight(); -#endif - - return r; - } - - inline void CWceFrame::OnCreate() - { - // Create the Commandbar - m_MenuBar.Create(m_hWnd); - - // Set the keyboard accelerators - HACCEL hAccel = LoadAccelerators(GetApp()->GetResourceHandle(), MAKEINTRESOURCE(IDW_MAIN)); - GetApp()->SetAccelerators(hAccel, this); - - // Add the toolbar buttons - if (m_ToolBarData.size() > 0) - SetButtons(m_ToolBarData); - -#ifndef SHELL_AYGSHELL - // Add close button - m_MenuBar.AddAdornments(0); -#endif - - } - - inline void CWceFrame::OnActivate(WPARAM wParam, LPARAM lParam) - { -#ifdef SHELL_AYGSHELL - // Notify shell of our activate message - SHHandleWMActivate(m_hWnd, wParam, lParam, &m_sai, FALSE); - - UINT fActive = LOWORD(wParam); - if ((fActive == WA_ACTIVE) || (fActive == WA_CLICKACTIVE)) - { - // Reposition the window when it's activated - RecalcLayout(); - } -#endif - } - - inline void CWceFrame::PreCreate(CREATESTRUCT &cs) - { - cs.style = WS_VISIBLE; - m_tsAppName = _T("Win32++ Application"); - - // Choose a unique class name for this app - if (LoadString(IDW_MAIN) != _T("")) - { - m_tsAppName = LoadString(IDW_MAIN); - } - - cs.lpszClass = m_tsAppName.c_str(); - } - -/* inline BOOL CWceFrame::PreTranslateMessage(MSG* pMsg) - { - HACCEL hAccelTable = ::LoadAccelerators(GetApp()->GetResourceHandle(), MAKEINTRESOURCE(IDW_MAIN)); - if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST) - { - if (TranslateAccelerator(m_hWnd, hAccelTable, pMsg)) - return TRUE; - } - return CWnd::PreTranslateMessage(pMsg); - } */ - - inline void CWceFrame::RecalcLayout() - { - HWND hwndCB = m_MenuBar.GetHwnd(); - if (hwndCB) - { - CRect rc; // Desktop window size - CRect rcMenuBar; // MenuBar window size - - ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0); - ::GetWindowRect(hwndCB, &rcMenuBar); - rc.bottom -= (rcMenuBar.bottom - rcMenuBar.top); - - MoveWindow(rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, FALSE); - } - - ShowWindow(TRUE); - UpdateWindow(); - } - - inline void CWceFrame::SetButtons(const std::vector<UINT> ToolBarData) - // Define the resource IDs for the toolbar like this in the Frame's constructor - // m_ToolBarData.push_back ( 0 ); // Separator - // m_ToolBarData.clear(); - // m_ToolBarData.push_back ( IDM_FILE_NEW ); - // m_ToolBarData.push_back ( IDM_FILE_OPEN ); - // m_ToolBarData.push_back ( IDM_FILE_SAVE ); - - { - int iImages = 0; - int iNumButtons = (int)ToolBarData.size(); - - - if (iNumButtons > 0) - { - // Create the TBBUTTON array for each button - std::vector<TBBUTTON> vTBB(iNumButtons); - TBBUTTON* tbbArray = &vTBB.front(); - - for (int j = 0 ; j < iNumButtons; j++) - { - ZeroMemory(&tbbArray[j], sizeof(TBBUTTON)); - - if (ToolBarData[j] == 0) - { - tbbArray[j].fsStyle = TBSTYLE_SEP; - } - else - { - tbbArray[j].iBitmap = iImages++; - tbbArray[j].idCommand = ToolBarData[j]; - tbbArray[j].fsState = TBSTATE_ENABLED; - tbbArray[j].fsStyle = TBSTYLE_BUTTON; - tbbArray[j].iString = -1; - } - } - - // Add the bitmap - GetMenuBar().AddBitmap(IDW_MAIN, iImages , 16, 16); - - // Add the buttons - GetMenuBar().AddButtons(iNumButtons, tbbArray); - } - } - - inline LRESULT CWceFrame::WndProcDefault(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch (uMsg) - { - case WM_DESTROY: - PostQuitMessage(0); - break; - case WM_ACTIVATE: - OnActivate(wParam, lParam); - break; - -#ifdef SHELL_AYGSHELL - - case WM_SETTINGCHANGE: - SHHandleWMSettingChange(m_hWnd, wParam, lParam, &m_sai); - break; -#endif - - } - return CWnd::WndProcDefault(uMsg, wParam, lParam); - } - - -} // namespace Win32xx - -#endif // _WIN32XX_WCEFRAME_H_ - |