]> git.sesse.net Git - vlc/blob - modules/gui/skins/src/anchor.h
* modules/gui/skins/src/themeloader.cpp: Added proper CR to error messages.
[vlc] / modules / gui / skins / src / anchor.h
1 /*****************************************************************************
2  * anchor.h: Anchor class
3  *****************************************************************************
4  * Copyright (C) 2003 VideoLAN
5  * $Id: anchor.h,v 1.2 2003/04/21 21:51:16 asmax Exp $
6  *
7  * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
8  *          Emmanuel Puig    <karibu@via.ecp.fr>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111,
23  * USA.
24  *****************************************************************************/
25
26
27 #ifndef VLC_SKIN_ANCHOR
28 #define VLC_SKIN_ANCHOR
29
30 //--- GENERAL ---------------------------------------------------------------
31 #include <list>
32 using namespace std;
33
34 //---------------------------------------------------------------------------
35 struct intf_thread_t;
36 class SkinWindow;
37 //---------------------------------------------------------------------------
38 class Anchor
39 {
40     private:
41         // Position parameters
42         int Left;
43         int Top;
44
45         // Ray of action
46         int Len;
47
48         // Priority
49         int Priority;
50
51         // Parent window
52         SkinWindow *Parent;
53
54         // Interface thread
55         intf_thread_t *p_intf;
56
57     public:
58         // Constructor
59         Anchor( intf_thread_t *_p_intf, int x, int y, int len, int priority,
60                 SkinWindow *parent );
61
62         // Hang to anchor if in neighbourhood
63         bool Hang( Anchor *anc, int mx, int my );
64         void Add( Anchor *anc );
65         void Remove( Anchor *anc );
66         bool IsInList( Anchor *anc );
67
68         // List of windows actually magnetized
69         list<Anchor *> HangList;
70
71         // Get position of anchor
72         void GetPos( int &x, int &y );
73
74         // Getters
75         int GetPriority()       { return Priority; }
76         SkinWindow *GetParent()     { return Parent; }
77 };
78 //---------------------------------------------------------------------------
79
80 #endif