home *** CD-ROM | disk | FTP | other *** search
- // Microworks ObjectMate 2.6
- //
- // "SFX Class Library"
- //
- // An ObjectWindows 2.0 extension for Borland C++ 4.0
- //
- // Copyright 1992-94 Microworks Sydney, Australia.
- //
- // STOOLBAR.CPP
-
- #include <owl\owlpch.h>
- #include <sfx\sfx200.h>
- #include <sfx\stoolbar.h>
-
- DEFINE_RESPONSE_TABLE1(TSFXToolbar, TWindow)
- EV_WM_PAINT,
- END_RESPONSE_TABLE;
-
- // constructor for a TSFXToolbar object
-
- TSFXToolbar::TSFXToolbar(TWindow* parent,
- int id,
- const char far* title,
- int x, int y,
- BOOL isChild,
- TModule* module)
- :TWindow(parent, title, module)
- {
- if (isChild)
- {
- Attr.Style = (WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP);
- Attr.Id = id;
- }
- else
- {
- Attr.Style = (WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE | MTB_3DFRAME);
- }
- Attr.X = x;
- Attr.Y = y;
- }
-
- // constructor for a TSFXToolbar resource object
-
- TSFXToolbar::TSFXToolbar(TWindow* parent, int resourceId, TModule* module)
- :TWindow(parent, 0, module)
- {
- SetFlag(wfFromResource);
- memset(&Attr, 0x0, sizeof(Attr));
- Attr.Id = resourceId;
- }
-
- char far*
- TSFXToolbar::GetClassName()
- {
- return "SFXTOOLBAR";
- }
-
- int
- TSFXToolbar::GetId()
- {
- return Attr.Id;
- }
-
- void
- TSFXToolbar::GetTitle(char far* str)
- {
- HGLOBAL hText = (HGLOBAL)GetWindowWord(4);
- if (hText)
- {
- char* title = (char*)GlobalLock(hText);
- lstrcpyn(str, title, lstrlen(title) + 1);
- GlobalUnlock(hText);
- }
- }
-
- void
- TSFXToolbar::AlignToolbar()
- {
- HandleMessage(WM_ALIGNTOOLBAR, 0, 0);
- }
-
- UINT
- TSFXToolbar::GetCheck(int toolId)
- {
- return (UINT)HandleMessage(WM_GETCHECK, toolId, 0);
- }
-
- void
- TSFXToolbar::CheckTool(int toolId)
- {
- HandleMessage(WM_SETCHECK, toolId, 1);
- }
-
- void
- TSFXToolbar::UncheckTool(int toolId)
- {
- HandleMessage(WM_SETCHECK, toolId, 0);
- }
-
- BOOL
- TSFXToolbar::IsToolEnabled(int toolId)
- {
- return ::IsWindowEnabled(GetDlgItem(toolId));
- }
-
- void
- TSFXToolbar::EnableTool(int toolId, BOOL enabled)
- {
- if (enabled && !IsToolEnabled(toolId))
- {
- ::EnableWindow(GetDlgItem(toolId), TRUE);
- ::InvalidateRect(GetDlgItem(toolId), NULL, TRUE);
- }
- else
- if (!enabled && IsToolEnabled(toolId))
- {
- ::EnableWindow(GetDlgItem(toolId), FALSE);
- ::InvalidateRect(GetDlgItem(toolId), NULL, TRUE);
- }
- }
-
- void
- TSFXToolbar::GetText(char far* str)
- {
- ::GetWindowText(StatusWindow(), str, sizeof(str));
- }
-
- void
- TSFXToolbar::SetText(const char far* str)
- {
- if (((Attr.Style & 0xF00) != MTB_LEFT) && ((Attr.Style & 0xF00) != MTB_RIGHT) &&
- ((Attr.Style & 0xF00) != MTB_FLOAT))
- {
- ::SetWindowText(StatusWindow(), str);
- }
- }
-
- void
- TSFXToolbar::SetTool(int newId, int toolId)
- {
- HandleMessage(WM_SETBITMAP, newId, toolId);
- }
-
- void
- TSFXToolbar::SetFont(HFONT font)
- {
- ::SendMessage(StatusWindow(), WM_SETFONT, (UINT)font, 1);
- }
-
- HWND
- TSFXToolbar::StatusWindow()
- {
- return (HWND)GetWindowWord(MTB_WNDSTATIC);
- }
-
- void
- TSFXToolbar::EvPaint()
- {
- DefaultProcessing();
- }
-
- IMPLEMENT_STREAMABLE1(TSFXToolbar, TWindow);
-
- void*
- TSFXToolbar::Streamer::Read(ipstream& is, uint32 /*version*/) const
- {
- TSFXToolbar* o = GetObject();
- ReadVirtualBase((TWindow*)o, is);
- o->Title = is.freadString();
- return o;
- }
-
- void
- TSFXToolbar::Streamer::Write(opstream& os) const
- {
- char str[256];
-
- TSFXToolbar* o = GetObject();
- WriteVirtualBase((TWindow*) o, os);
- o->GetTitle(str);
- os.fwriteString(str);
- }
-
-
-