home *** CD-ROM | disk | FTP | other *** search
- //==============================================================================================
- //
- // Windows Interface Construction Set
- // Version 1.00
- //
- // IBAR.CPP - Icon Bar Class
- // Copyright ⌐ 1993 by Microdyne Development Technologies.
- // All rights reserved.
- //==============================================================================================
-
- #include <ibutton.h>
- #include <ibar.h>
- #include <wics.h>
-
- BOOL FAR PASCAL FindChildWithId (HWND hWnd, LONG lParam);
-
- TIconBar::TIconBar (PTWindowsObject AParent, WORD wHeight) :
- TWindow (AParent, NULL)
- {
- Attr.Id = 10;
- Attr.Style = WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | WS_CLIPCHILDREN;
- Attr.X = -1;
- Attr.Y = -1;
- Attr.W = 10;
- Attr.H = ( wHeight ) ? wHeight : 25 ;
-
- SetFlags(WB_MDICHILD, FALSE);
- pFontSelection = NULL;
-
- xPoint = 2 ;
-
- hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
- }
-
-
- TIconBar::~TIconBar ()
- {
- DeleteObject (hBrush);
- }
-
- void TIconBar::GetWindowClass(WNDCLASS& WndClass)
- {
- TWindow::GetWindowClass( WndClass );
- WndClass.hbrBackground = GetStockObject (LTGRAY_BRUSH);
- }
-
- void TIconBar::WMCtlColor (RTMessage Msg)
- {
- Msg.Result = hBrush;
- }
-
- void TIconBar::PlaceButton (WORD x, WORD y, WORD Id, BOOL fState)
- {
- GetModule()->MakeWindow(new TIconBarButton (this, Id, x, y, fState));
- }
-
- void TIconBar::PlaceButton (WORD Id, BOOL fState)
- {
- PTIconBarButton pButton ;
-
- GetModule()->MakeWindow((pButton = new TIconBarButton (this, Id, xPoint, 2, fState)));
- xPoint += pButton->GetControlLength() - 1;
- }
-
- typedef struct _FINDWINID
- {
- WORD Id;
- HWND hwnd;
- } FINDWINID;
-
- BOOL FAR PASCAL FindChildWithId (HWND hWnd, LONG lParam)
- {
- if (GetWindowWord (hWnd, GWW_ID) == ((FINDWINID FAR *)lParam)->Id)
- {
- ((FINDWINID FAR *)lParam)->hwnd = hWnd ;
- return FALSE ;
- }
-
- return TRUE;
- }
-
- void TIconBar::RemoveControl (WORD Id)
- {
- FINDWINID FindWinId;
- FARPROC lpproc;
-
- FindWinId.Id = Id;
- FindWinId.hwnd = NULL;
-
- lpproc = MakeProcInstance ((FARPROC)FindChildWithId, GetModule()->hInstance);
- EnumChildWindows (HWindow, lpproc, (LONG) &FindWinId );
- FreeProcInstance (lpproc);
-
- if (FindWinId.hwnd != NULL)
- {
- SendMessage (FindWinId.hwnd, WM_CLOSE, 0, 0L);
- }
- }
-
- void TIconBar::SetButtonState (WORD Id, BOOL fState)
- {
- FINDWINID FindWinId;
- FARPROC lpproc;
-
- FindWinId.Id = Id;
- FindWinId.hwnd = NULL;
-
- lpproc = MakeProcInstance ((FARPROC)FindChildWithId, GetModule()->hInstance);
- EnumChildWindows (HWindow, lpproc, (LONG) &FindWinId );
- FreeProcInstance (lpproc);
-
- if (FindWinId.hwnd != NULL)
- {
- SendMessage (FindWinId.hwnd, BM_SETCHECK, (WPARAM) fState, 0L);
- }
- }
-
- BOOL TIconBar::IsButtonChecked (WORD Id)
- {
- FINDWINID FindWinId;
- FARPROC lpproc;
-
- FindWinId.Id = Id;
- FindWinId.hwnd = NULL;
-
- lpproc = MakeProcInstance ((FARPROC)FindChildWithId, GetModule()->hInstance);
- EnumChildWindows (HWindow, lpproc, (LONG) &FindWinId );
- FreeProcInstance (lpproc);
-
- if (FindWinId.hwnd != NULL)
- {
- return (BOOL) SendMessage (FindWinId.hwnd, BM_GETCHECK, 0, 0L);
- }
-
- return FALSE;
- }
-
- void TIconBar::Paint (HDC hdc, PAINTSTRUCT&)
- {
- RECT WndRect;
-
- GetClientRect (HWindow, &WndRect);
- FrameRect (hdc, &WndRect, GetStockObject(BLACK_BRUSH));
- }
-
- WORD TIconBar::GetHeight ()
- {
- return Attr.H;
- }
-
- void TIconBar::WMCommand (RTMessage msg)
- {
- PostMessage (Parent->HWindow, msg.Message, msg.WParam, 0L);
- }
-
- void TIconBar::WMSetFocus (RTMessage msg)
- {
- SetFocus ((HWND) msg.WParam);
- }
-
- void TIconBar::PlaceFontSelectionControl (WORD x, WORD y, WORD Id)
- {
- GetModule()->MakeWindow((pFontSelection = new TFontSelect (this, Id, x, y)));
- }
-
- void TIconBar::PlaceFontSelectionControl (WORD Id)
- {
- GetModule()->MakeWindow((pFontSelection = new TFontSelect (this, Id, xPoint, 0)));
- xPoint += pFontSelection->GetControlLength();
- }
-
- void TIconBar::SetButtonCommandCode (WORD Id, WORD cmd)
- {
- FINDWINID FindWinId;
- FARPROC lpproc;
-
- FindWinId.Id = Id;
- FindWinId.hwnd = NULL;
-
- lpproc = MakeProcInstance ((FARPROC)FindChildWithId, GetModule()->hInstance);
- EnumChildWindows (HWindow, lpproc, (LONG) &FindWinId );
- FreeProcInstance (lpproc);
-
- if (FindWinId.hwnd != NULL)
- {
- SendMessage (FindWinId.hwnd, WBM_SETCOMMANDCODE, (WPARAM) cmd, 0L);
- }
- }
-
- void TIconBar::GetSelectedFontFamilyName (WORD cchMax, LPSTR lpBuffer)
- {
- if ( pFontSelection != NULL )
- pFontSelection->GetFamilyName(cchMax, lpBuffer);
- }
-
- void TIconBar::SetFontFamilyName (LPSTR lpBuffer)
- {
- if ( pFontSelection != NULL )
- pFontSelection->SetFamilyName (lpBuffer);
- }
-
- void TIconBar::SetFontFamilyCommandCode (WORD code)
- {
- if ( pFontSelection != NULL )
- pFontSelection->SetFamilyCommandCode(code);
- }
-
- int TIconBar::GetSelectedFontSize ()
- {
- if ( pFontSelection != NULL )
- return pFontSelection->GetFontSize();
-
- return 0;
- }
-
- void TIconBar::SetFontSize (int s)
- {
- if ( pFontSelection != NULL )
- pFontSelection->SetFontSize(s) ;
- }
-
- void TIconBar::SetFontSizeCommandCode (WORD code)
- {
- if ( pFontSelection != NULL )
- pFontSelection->SetFontSizeCommandCode(code);
- }
-
- void TIconBar::SetFontStyle (LOGFONT FAR *lplf)
- {
- if ( pFontSelection != NULL )
- {
- pFontSelection->SetFamilyName(lplf->lfFaceName);
- pFontSelection->SetFontSize(lplf->lfHeight);
- }
- }
-