home *** CD-ROM | disk | FTP | other *** search
- /*
- * CTOOLBAR.CPP
- * Sample Code Class Libraries
- *
- * Implementation of the CToolBar class
- *
- * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
- *
- * Kraig Brockschmidt, Microsoft
- * Internet : kraigb@microsoft.com
- * Compuserve: >INTERNET:kraigb@microsoft.com
- */
-
-
- #include <windows.h>
- #include "classlib.h"
-
-
- /*
- * CToolBar::CToolBar
- * CToolBar::~CToolBar
- *
- * Constructor Parameters:
- * hInst HINSTANCE of the module we're loaded in.
- */
-
- CToolBar::CToolBar(HINSTANCE hInst)
- : CWindow(hInst)
- {
- return;
- }
-
-
- CToolBar::~CToolBar(void)
- {
- return;
- }
-
-
-
-
-
- /*
- * CToolBar::Init
- *
- * Purpose:
- * Initializes a toolbar object by creating the control that it
- * owns.
- *
- * Parameters:
- * hWndParent HWND of the parent window. The toolbar is
- * created up from the bottom of this window,
- * spanning the entire width of the window.
- * uID UINT id of the control.
- * cy UINT height to create the control
- *
- * Return Value:
- * BOOL TRUE if the function succeeded, FALSE otherwise.
- */
-
- BOOL CToolBar::Init(HWND hWndParent, UINT uID, UINT cy)
- {
- RECT rc;
-
- /*
- * Note that the class is already registered since we live in a
- * DLL and that DLL will be loaded if anyone is using this class
- * library.
- */
-
- GetClientRect(hWndParent, &rc);
- m_cyBar=cy;
-
- m_hWnd=CreateWindow(CLASS_GIZMOBAR, TEXT("Wooley")
- , WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, rc.left, rc.top
- , rc.right-rc.left, m_cyBar, hWndParent, (HMENU)uID, m_hInst
- , 0L);
-
- return (NULL!=m_hWnd);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::OnSize
- *
- * Purpose:
- * Handles parent resizing. The owner of this window is responsible
- * to call this function when it wants the toolbar to resize. The
- * toolbar will automatically occupy a strip of the appropriate
- * height along the top of the window.
- *
- * Parameters:
- * hWndParent HWND of the parent window to which we're resizing
- *
- * Return Value:
- * None
- */
-
- void CToolBar::OnSize(HWND hWndParent)
- {
- RECT rc;
-
- GetClientRect(hWndParent, &rc);
-
- SetWindowPos(m_hWnd, NULL, rc.left, rc.top, rc.right-rc.left
- , m_cyBar, SWP_NOZORDER);
-
- return;
- }
-
-
-
-
-
-
- /*
- * CToolBar::FontSet
- *
- * Purpose:
- * Changes the font in the StatStrip.
- *
- * Parameters:
- * hFont HFONT of the font to use in the control.
- * fRedraw BOOL indicating if the control is to repaint
- *
- * Return Value:
- * None
- */
-
- void CToolBar::FontSet(HFONT hFont, BOOL fRedraw)
- {
- SendMessage((UINT)m_hWnd, WM_SETFONT, (WPARAM)hFont, fRedraw);
- return;
- }
-
-
-
-
-
- /*
- * CToolBar::FontGet
- *
- * Purpose:
- * Retrieves the handle of the current font used in the control.
- *
- * Parameters:
- * None
- *
- * Return Value:
- * HFONT Handle to the current font.
- */
-
- HFONT CToolBar::FontGet(void)
- {
- return (HFONT)(UINT)SendMessage((UINT)m_hWnd, WM_GETFONT, 0, 0L);
- }
-
-
-
-
-
-
- /*
- * CToolBar::Enable
- *
- * Purpose:
- * Enables or disables the StatStrip window, graying the text if
- * the control is disabled.
- *
- * Parameters:
- * fEnable BOOL specifying to enable (TRUE) or disable
- *
- * Return Value:
- * None
- */
-
- void CToolBar::Enable(BOOL fEnable)
- {
- EnableWindow(m_hWnd, fEnable);
- return;
- }
-
-
-
-
-
-
- /*
- * CToolBar::HwndAssociateSet
- *
- * Purpose:
- * Changes the associate window of a toolbar.
- *
- * Parameters:
- * hWndNew HWND of new associate.
- *
- * Return Value:
- * HWND Handle of previous associate.
- */
-
- HWND CToolBar::HwndAssociateSet(HWND hWndNew)
- {
- return GBHwndAssociateSet(m_hWnd, hWndNew);
- }
-
-
-
-
-
- /*
- * CToolBar::HwndAssociateGet
- *
- * Purpose:
- * Retrieves the associate window of a toolbar
- *
- * Parameters:
- * None
- *
- * Return Value:
- * HWND Handle of current associate.
- */
-
- HWND CToolBar::HwndAssociateGet(void)
- {
- return GBHwndAssociateGet(m_hWnd);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::Add
- *
- * Purpose:
- * Creates a new tool on the toolbar. Subsequent operations
- * should be done using the identifier, uID, for this tool.
- *
- * Parameters:
- * iType UINT type of the tool to create.
- * iTool UINT position (zero-based) for the tool.
- * uID UINT identifier for WM_COMMAND from this tool.
- * dx, dy UINT dimensions of the tool.
- * pszText LPTSTR initial text for edit, list, combo, text
- * hBitmap HBITMAP for tools of the button types (COMMAND
- * or ATTRIBUTE) specifies a source bitmap from
- * which the button image is taken.
- * iImage UINT index into hBitmap for the button image
- * uState UINT initial state of the tool.
- *
- * Return Value:
- * BOOL TRUE if creation succeeded, FALSE otherwise.
- */
-
- BOOL CToolBar::Add(UINT iType, UINT iTool, UINT uID, UINT dx
- , UINT dy, LPTSTR pszText, HBITMAP hBmp, UINT iImage, UINT uState)
- {
- return GBGizmoAdd(m_hWnd, iType, iTool, uID, dx, dy
- , pszText, hBmp, iImage, uState);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::Remove
- *
- * Purpose:
- * Removes an existing tool from the toolbar.
- *
- * Parameters:
- * uID UINT identifier for this tool.
- *
- * Return Value:
- * BOOL TRUE if deletion succeeded, FALSE otherwise.
- */
-
- BOOL CToolBar::Remove(UINT uID)
- {
- return GBGizmoRemove(m_hWnd, uID);
- }
-
-
-
-
-
-
- /*
- * CToolBar::SendMessage
- *
- * Purpose:
- * Implements the equivalent of SendMessage to a tool in the
- * toolbar. Separators, command buttons, and attribute buttons
- * do not accept messages.
- *
- * Parameters:
- * uID UINT identifier of the tool to affect.
- * iMsg UINT message to send.
- * wParam WPARAM of the message.
- * lParam LPARAM of the message.
- *
- * Return Value:
- * LONG Return value from the message. 0L if the
- * tool does not accept messages.
- */
-
- LONG CToolBar::SendMessage(UINT uID, UINT iMsg, WPARAM wParam
- , LPARAM lParam)
- {
- return GBGizmoSendMessage(m_hWnd, uID, iMsg, wParam, lParam);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::Show
- *
- * Purpose:
- * Shows or hides a control, adjusting the positions of all others
- * to make room for or reuse the space for this control.
- *
- * Parameters:
- * uID UINT identifier of the tool to affect.
- * fShow BOOL TRUE to show the tool, FALSE to hide it.
- *
- * Return Value:
- * BOOL TRUE if the function was successful, FALSE
- * otherwise.
- */
-
- BOOL CToolBar::Show(UINT uID, BOOL fShow)
- {
- return GBGizmoShow(m_hWnd, uID, fShow);
- }
-
-
-
-
-
-
- /*
- * CToolBar::Enable
- *
- * Purpose:
- * Enables or disables a control on the toolbar.
- *
- * Parameters:
- * uID UINT identifier of the tool to affect.
- * fEnable BOOL TRUE to enable the tool, FALSE otherwise.
- *
- * Return Value:
- * BOOL TRUE if the tool was previously disabled, FALSE
- * otherwise.
- */
-
- BOOL CToolBar::Enable(UINT uID, BOOL fEnable)
- {
- return GBGizmoEnable(m_hWnd, uID, fEnable);
- }
-
-
-
-
-
- /*
- * CToolBar::Check
- *
- * Purpose:
- * Checks or unchecks an attribute button in the toolbar. If the
- * tool is part of a group of mutually exclusive attributes, then
- * other tools are unchecked when this one is checked. If this is
- * the only one checked in these circumstances, this function is
- * a NOP.
- *
- * Parameters:
- * uID UINT identifier of the tool to affect.
- * fCheck BOOL TRUE to check this tool, FALSE to uncheck.
- *
- * Return Value:
- * BOOL TRUE if the change took place. FALSE otherwise.
- */
-
- BOOL CToolBar::Check(UINT uID, BOOL fCheck)
- {
- return GBGizmoCheck(m_hWnd, uID, fCheck);
- }
-
-
-
-
-
- /*
- * CToolBar::FocusSet
- *
- * Purpose:
- * Sets the focus to a partuclar tool in the toolbar if that tool
- * can accept the focus. Separators, attribute buttons, text,
- * and command buttons cannot have the focus.
- *
- * Parameters:
- * uID UINT identifier of the tool to affect.
- *
- * Return Value:
- * BOOL TRUE if the focus was set. FALSE otherwise,
- * such as when uID identifies a control that
- * cannot have focus.
- *
- */
-
- UINT CToolBar::FocusSet(UINT uID)
- {
- return GBGizmoFocusSet(m_hWnd, uID);
- }
-
-
-
-
-
-
-
-
- /*
- * CToolBar::Exist
- *
- * Purpose:
- * Determines if a tool of a given identifier exists.
- *
- * Parameters:
- * uID UINT identifier to verify.
- *
- * Return Value:
- * BOOL TRUE if the tool exists, FALSE otherwise.
- */
-
- BOOL CToolBar::Exist(UINT uID)
- {
- return GBGizmoExist(m_hWnd, uID);
- }
-
-
-
-
-
- /*
- * CToolBar::TypeGet
- *
- * Purpose:
- * Returns the type of the tool specified by the given identifer.
- *
- * Parameters:
- * uID UINT identifier to find.
- *
- * Return Value:
- * int A GIZMOTYPE_* value if the function is
- * successful, otherwise -1.
- */
-
- int CToolBar::TypeGet(UINT uID)
- {
- return GBGizmoTypeGet(m_hWnd, uID);
- }
-
-
-
-
-
-
-
-
- /*
- * CToolBar::DataSet
- * CToolBar::DataGet
- *
- * Purpose:
- * Sets or retrieves an extra DWORD value associated with the given
- * tool. Applications can store any information here they please.
- *
- * Parameters:
- * uID UINT identifier of the tool.
- * dwData (Set only) DWORD data to store with the tool.
- *
- * Return Value:
- * DWORD Set: Previous value
- * Get: Current value
- */
-
- DWORD CToolBar::DataSet(UINT uID, DWORD dwData)
- {
- return GBGizmoDataSet(m_hWnd, uID, dwData);
- }
-
-
- DWORD CToolBar::DataGet(UINT uID)
- {
- return GBGizmoDataGet(m_hWnd, uID);
- }
-
-
-
-
-
- /*
- * CToolBar::NotifySet
- * CToolBar::NotifyGet
- *
- * Purpose:
- * Sets or retrieves the notify status of a tool. If notify is
- * FALSE, the no WM_COMMAND messages are sent from the toolbar
- * to the parent window when this tool is used.
- *
- * Parameters:
- * uID UINT identifier of the tool.
- * fNotify (Set only) BOOL new notify status to set.
- *
- * Return Value:
- * BOOL Set: Previous value of the notify flag.
- * Get: Current value of the notify flag.
- */
-
- BOOL CToolBar::NotifySet(UINT uID, BOOL fNotify)
- {
- return GBGizmoNotifySet(m_hWnd, uID, fNotify);
- }
-
-
- BOOL CToolBar::NotifyGet(UINT uID)
- {
- return GBGizmoNotifyGet(m_hWnd, uID);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::TextSet
- * CToolBar::TextGet
- *
- * Purpose:
- * Retrieves or sets text in a toolbar control. Separators,
- * command buttons, and attribute buttons are not affected by
- * this call.
- *
- * Parameters:
- * uID UINT identifying the tool.
- * psz LPTSTR pointing to a buffer to receive the text.
- * cch (Get only) UINT maximum number of chars to copy
- * to psz.
- *
- * Return Value:
- * int Number of characters copied to psz.
- */
-
- void CToolBar::TextSet(UINT uID, LPTSTR psz)
- {
- GBGizmoTextSet(m_hWnd, uID, psz);
- return;
- }
-
-
- int CToolBar::TextGet(UINT uID, LPTSTR psz, UINT cch)
- {
- return GBGizmoTextGet(m_hWnd, uID, psz, cch);
- }
-
-
-
-
-
-
-
- /*
- * CToolBar::IntSet
- * CToolBar::IntGet
- *
- * Purpose:
- * Retrieves or sets an integer in a toolbar control. Separators,
- * command buttons, and attribute buttons are not affected by this
- * call.
- *
- * Parameters:
- * uID UINT identifying the tool.
- *
- * Get Parameters:
- * pfTrans BOOL * in which the success of the function is
- * returned.
- * fSigned BOOL TRUE to indicate if the value is signed.
- *
- * Set Parameters:
- * u UINT value to set in the tool.
- * fSigned BOOL TRUE to indicate if the value is signed.
- *
- * Return Value:
- * UINT Integer translation of the tool's text.
- */
-
- void CToolBar::IntSet(UINT uID, int i, BOOL fSigned)
- {
- GBGizmoIntSet(m_hWnd, uID, i, fSigned);
- return;
- }
-
-
- UINT CToolBar::IntGet(UINT uID, BOOL *pfTrans, BOOL fSigned)
- {
- return GBGizmoIntGet(m_hWnd, uID, pfTrans, fSigned);
- }
-