/*****************************************************************************
* top_window.hpp
*****************************************************************************
- * Copyright (C) 2003 VideoLAN
+ * Copyright (C) 2003 the VideoLAN team
* $Id$
*
* Authors: Cyril Deguet <asmax@via.ecp.fr>
- * Olivier Teulière <ipkiss@via.ecp.fr>
+ * Olivier Teulière <ipkiss@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef TOP_WINDOW_HPP
public:
TopWindow( intf_thread_t *pIntf, int xPos, int yPos,
WindowManager &rWindowManager,
- bool dragDrop, bool playOnDrop );
+ bool dragDrop, bool playOnDrop, bool visible );
virtual ~TopWindow();
/// Methods to process OS events.
+ virtual void processEvent( EvtRefresh &rEvtRefresh );
virtual void processEvent( EvtFocus &rEvtFocus );
+ virtual void processEvent( EvtMenu &rEvtMenu );
virtual void processEvent( EvtMotion &rEvtMotion );
virtual void processEvent( EvtMouse &rEvtMouse );
virtual void processEvent( EvtLeave &rEvtLeave );
/// Called by a control when its tooltip changed
virtual void onTooltipChange( const CtrlGeneric &rCtrl );
+ /// Get the "maximized" variable
+ VarBool &getMaximizedVar() { return *m_pVarMaximized; }
+
+ /// Get the initial visibility status
+ bool isVisible() const { return m_visible; }
+
protected:
/// Actually show the window
virtual void innerShow();
+ /// Actually hide the window
+ virtual void innerHide();
+
private:
+ /**
+ * These methods are only used by the window manager
+ */
+ //@{
/// Change the active layout
virtual void setActiveLayout( GenericLayout *pLayout );
+ //@}
+ /// Initial visibility status
+ bool m_visible;
/// Window manager
WindowManager &m_rWindowManager;
/// Current active layout of the window
/// Current key modifier (also used for mouse)
int m_currModifier;
- /// Find the uppest control in the layout hit by the mouse, and send
- /// it an enter event if needed
+ /// Variable for the visibility of the window
+ VarBoolImpl *m_pVarMaximized;
+
+ /**
+ * Find the uppest control in the layout hit by the mouse, and send
+ * it an enter event if needed
+ */
CtrlGeneric *findHitControl( int xPos, int yPos );
- /// Update the lastHitControl pointer and send a leave event to the
- /// right control
+ /**
+ * Update the lastHitControl pointer and send a leave event to the
+ * right control
+ */
void setLastHit( CtrlGeneric *pNewHitControl );
};