X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fskins2%2Fcontrols%2Fctrl_resize.hpp;h=01857c78b278d4419b396a97f305aaaecd9748fa;hb=2aa61dc55a77f535c3e70104b6ec2167766f8499;hp=db8545f36e37b4522ee54dd5a9af2512e018cb1a;hpb=8329eed8052344a3cae4817b9aacb06924d85d0c;p=vlc diff --git a/modules/gui/skins2/controls/ctrl_resize.hpp b/modules/gui/skins2/controls/ctrl_resize.hpp index db8545f36e..01857c78b2 100644 --- a/modules/gui/skins2/controls/ctrl_resize.hpp +++ b/modules/gui/skins2/controls/ctrl_resize.hpp @@ -1,11 +1,11 @@ /***************************************************************************** * ctrl_resize.hpp ***************************************************************************** - * Copyright (C) 2003 VideoLAN + * Copyright (C) 2003 the VideoLAN team * $Id$ * * Authors: Cyril Deguet - * Olivier Teulière + * Olivier Teulière * * 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 @@ -19,7 +19,7 @@ * * 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 CTRL_RESIZE_HPP @@ -27,18 +27,20 @@ #include "ctrl_flat.hpp" #include "../commands/cmd_generic.hpp" +#include "../src/window_manager.hpp" #include "../utils/fsm.hpp" -class GenericLayout; +class WindowManager; /// Control decorator for resizing windows class CtrlResize: public CtrlFlat { public: - CtrlResize( intf_thread_t *pIntf, CtrlFlat &rCtrl, - GenericLayout &rLayout, const UString &rHelp, - VarBool *pVisible ); + CtrlResize( intf_thread_t *pIntf, WindowManager &rWindowManager, + CtrlFlat &rCtrl, GenericLayout &rLayout, + const UString &rHelp, VarBool *pVisible, + WindowManager::Direction_t direction ); virtual ~CtrlResize() {} /// Handle an event @@ -57,18 +59,16 @@ class CtrlResize: public CtrlFlat /// Get the position of the decorated control in the layout, if any virtual const Position *getPosition() const; - static void transOutStill( SkinObject *pCtrl ); - static void transStillOut( SkinObject *pCtrl ); - static void transStillStill( SkinObject *pCtrl ); - static void transStillResize( SkinObject *pCtrl ); - static void transResizeStill( SkinObject *pCtrl ); - static void transResizeResize( SkinObject *pCtrl ); + /// Method called when the control is resized + virtual void onResize(); /// Get the type of control (custom RTTI) virtual string getType() const { return m_rCtrl.getType(); } private: FSM m_fsm; + /// Window manager + WindowManager &m_rWindowManager; /// Decorated CtrlFlat CtrlFlat &m_rCtrl; /// The layout resized by this control @@ -77,13 +77,19 @@ class CtrlResize: public CtrlFlat EvtGeneric *m_pEvt; /// Position of the click that started the resizing int m_xPos, m_yPos; - /// Callbacks - Callback m_cmdOutStill; - Callback m_cmdStillOut; - Callback m_cmdStillStill; - Callback m_cmdStillResize; - Callback m_cmdResizeStill; - Callback m_cmdResizeResize; + /// Direction of the resizing + WindowManager::Direction_t m_direction; + + /// Change the cursor, based on the given direction + void changeCursor( WindowManager::Direction_t direction ) const; + + /// Callback objects + DEFINE_CALLBACK( CtrlResize, OutStill ) + DEFINE_CALLBACK( CtrlResize, StillOut ) + DEFINE_CALLBACK( CtrlResize, StillStill ) + DEFINE_CALLBACK( CtrlResize, StillResize ) + DEFINE_CALLBACK( CtrlResize, ResizeStill ) + DEFINE_CALLBACK( CtrlResize, ResizeResize ) // Size of the layout, before resizing int m_width, m_height;