]> git.sesse.net Git - vlc/blob - projects/mozilla/control/position.h
mozilla plugin: Bring marquee interface in line with logo.
[vlc] / projects / mozilla / control / position.h
1 /*****************************************************************************
2  * position.h: Support routines for logo and marquee plugin objects
3  *****************************************************************************
4  * Copyright (C) 2010 M2X BV
5  *
6  * Authors: JP Dinger <jpd (at) videolan (dot) org>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 #ifndef POSITION_H
23 #define POSITION_H
24
25 struct posidx_s { const char *n; size_t i; };
26 static const posidx_s posidx[] = {
27     { "center",        0 },
28     { "left",          1 },
29     { "right",         2 },
30     { "top",           4 },
31     { "bottom",        8 },
32     { "top-left",      5 },
33     { "top-right",     6 },
34     { "bottom-left",   9 },
35     { "bottom-right", 10 },
36 };
37 enum { num_posidx = sizeof(posidx)/sizeof(*posidx) };
38
39 static inline const char *position_bynumber( size_t i )
40 {
41     for( const posidx_s *h=posidx; h<posidx+num_posidx; ++h )
42         if( h->i == i )
43             return h->n;
44     return "undefined";
45 }
46
47 static inline bool position_byname( const char *n, size_t &i )
48 {
49     for( const posidx_s *h=posidx; h<posidx+num_posidx; ++h )
50         if( !strcasecmp( n, h->n ) )
51             { i=h->i; return true; }
52     return false;
53 }
54 #endif