12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include "pch.h"
- //////////////////////////////////////////////////////////////////////////////
- //
- //
- //
- //////////////////////////////////////////////////////////////////////////////
- class CaptionImpl :
- public ICaption,
- public EventTargetContainer<CaptionImpl>
- {
- private:
- TRef<ButtonPane> m_pbuttonClose;
- TRef<ButtonPane> m_pbuttonRestore;
- TRef<ButtonPane> m_pbuttonMinimize;
- TRef<Pane> m_ppane;
- TRef<ICaptionSite> m_psite;
- void DoCreateButton(
- Modeler* pmodeler,
- TRef<ButtonPane>& pbuttonPane,
- const ZString& str,
- const WinPoint& offset,
- Pane* ppane
- ) {
- TRef<ButtonFacePane> pface =
- CreateButtonFacePane(
- pmodeler->LoadSurface(str, false),
- ButtonFaceUp | ButtonFaceDown
- );
- pbuttonPane = CreateButton(pface);
- pbuttonPane->SetOffset(offset);
- ppane->InsertAtTop(pbuttonPane);
- }
- public:
- CaptionImpl(Modeler* pmodeler, Pane* ppane, ICaptionSite* psite) :
- m_ppane(ppane),
- m_psite(psite)
- {
- DoCreateButton(pmodeler, m_pbuttonClose, "btnclosebmp", WinPoint(780, 5), ppane);
- DoCreateButton(pmodeler, m_pbuttonRestore, "btnrestorebmp", WinPoint(761, 5), ppane);
- DoCreateButton(pmodeler, m_pbuttonMinimize, "btnminimizebmp", WinPoint(744, 5), ppane);
- AddEventTarget(OnClose, m_pbuttonClose->GetEventSource());
- AddEventTarget(OnRestore, m_pbuttonRestore->GetEventSource());
- AddEventTarget(OnMinimize, m_pbuttonMinimize->GetEventSource());
- }
- bool OnClose()
- {
- m_psite->OnCaptionClose();
- return true;
- }
- bool OnMinimize()
- {
- m_psite->OnCaptionMinimize();
- return true;
- }
- bool OnRestore()
- {
- m_psite->OnCaptionRestore();
- return true;
- }
- void SetFullscreen(bool bFullscreen)
- {
- m_pbuttonClose->SetHidden(!bFullscreen);
- m_pbuttonRestore->SetHidden(!bFullscreen);
- m_pbuttonMinimize->SetHidden(!bFullscreen);
- }
- };
- //////////////////////////////////////////////////////////////////////////////
- //
- //
- //
- //////////////////////////////////////////////////////////////////////////////
- TRef<ICaption> CreateCaption(Modeler* pmodeler, Pane* ppane, ICaptionSite* psite)
- {
- return new CaptionImpl(pmodeler, ppane, psite);
- }
|