Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
GSoC
GSoC2018
macOS
vlc
Commits
32519ebf
Commit
32519ebf
authored
Nov 05, 2002
by
Jon Lech Johansen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* ./modules/gui/macosx/prefs.m: new configuration interface
parent
4d0e2b16
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1021 additions
and
6 deletions
+1021
-6
ChangeLog
ChangeLog
+1
-0
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
...s/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
+2
-2
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
+1
-0
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
...s/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
+0
-0
modules/gui/macosx/Modules.am
modules/gui/macosx/Modules.am
+2
-0
modules/gui/macosx/intf.h
modules/gui/macosx/intf.h
+6
-2
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+31
-2
modules/gui/macosx/prefs.h
modules/gui/macosx/prefs.h
+145
-0
modules/gui/macosx/prefs.m
modules/gui/macosx/prefs.m
+833
-0
No files found.
ChangeLog
View file @
32519ebf
0.5.0
Not
released
yet
*
./
modules
/
gui
/
macosx
/
prefs
.
m
:
new
configuration
interface
*
./
src
/
misc
/
netutils
.
c
:
GetMacAddress
Darwin
support
*
./
src
/
libvlc
.
h
:
default
to
en0
instead
of
eth0
under
Darwin
*
./
plugins
/
dvdplay
/
access
.
c
:
use
dvdplay
after
it
has
completed
...
...
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
View file @
32519ebf
...
...
@@ -28,7 +28,7 @@
SUPERCLASS = NSObject;
},
{
ACTIONS = {clearRecentItems = id; };
ACTIONS = {clearRecentItems = id;
viewPreferences = id;
};
CLASS = VLCMain;
LANGUAGE = ObjC;
OUTLETS = {
...
...
@@ -57,13 +57,13 @@
"o_mi_open_disc" = id;
"o_mi_open_file" = id;
"o_mi_open_net" = id;
"o_mi_open_quickly" = id;
"o_mi_open_recent" = id;
"o_mi_open_recent_cm" = id;
"o_mi_paste" = id;
"o_mi_pause" = id;
"o_mi_play" = id;
"o_mi_playlist" = id;
"o_mi_prefs" = id;
"o_mi_previous" = id;
"o_mi_program" = id;
"o_mi_quit" = id;
...
...
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
View file @
32519ebf
...
...
@@ -16,6 +16,7 @@
<key>
IBOpenObjects
</key>
<array>
<integer>
636
</integer>
<integer>
29
</integer>
</array>
<key>
IBSystem Version
</key>
<string>
6D52
</string>
...
...
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
View file @
32519ebf
No preview for this file type
modules/gui/macosx/Modules.am
View file @
32519ebf
...
...
@@ -4,6 +4,7 @@ SOURCES_macosx = \
modules/gui/macosx/vout.m \
modules/gui/macosx/intf.m \
modules/gui/macosx/open.m \
modules/gui/macosx/prefs.m \
modules/gui/macosx/playlist.m \
modules/gui/macosx/controls.m \
modules/gui/macosx/asystm.m
...
...
@@ -11,6 +12,7 @@ SOURCES_macosx = \
noinst_HEADERS += \
modules/gui/macosx/intf.h \
modules/gui/macosx/open.h \
modules/gui/macosx/prefs.h \
modules/gui/macosx/playlist.h \
modules/gui/macosx/vout.h \
modules/gui/macosx/adev_discovery.h \
...
...
modules/gui/macosx/intf.h
View file @
32519ebf
...
...
@@ -2,7 +2,7 @@
* intf.h: MacOS X interface plugin
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: intf.h,v 1.
2
2002/1
0
/0
2 22:56:53 massiot
Exp $
* $Id: intf.h,v 1.
3
2002/1
1
/0
5 03:57:16 jlj
Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
...
...
@@ -82,6 +82,8 @@ struct intf_sys_t
*****************************************************************************/
@interface
VLCMain
:
NSObject
{
id
o_prefs
;
/* VLCPrefs */
IBOutlet
id
o_window
;
/* main window */
IBOutlet
id
o_controls
;
/* VLCControls */
...
...
@@ -94,6 +96,7 @@ struct intf_sys_t
/* main menu */
IBOutlet
id
o_mi_about
;
IBOutlet
id
o_mi_prefs
;
IBOutlet
id
o_mi_hide
;
IBOutlet
id
o_mi_hide_others
;
IBOutlet
id
o_mi_show_all
;
...
...
@@ -103,7 +106,6 @@ struct intf_sys_t
IBOutlet
id
o_mi_open_file
;
IBOutlet
id
o_mi_open_disc
;
IBOutlet
id
o_mi_open_net
;
IBOutlet
id
o_mi_open_quickly
;
IBOutlet
id
o_mi_open_recent
;
IBOutlet
id
o_mi_open_recent_cm
;
...
...
@@ -166,6 +168,8 @@ struct intf_sys_t
//- (void)selectAction:(id)sender;
-
(
IBAction
)
viewPreferences
:(
id
)
sender
;
@end
@interface
VLCMain
(
Internal
)
...
...
modules/gui/macosx/intf.m
View file @
32519ebf
...
...
@@ -2,7 +2,7 @@
* intf.m: MacOS X interface plugin
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: intf.m,v 1.
3
2002/1
0
/0
2 22:56:53 massiot
Exp $
* $Id: intf.m,v 1.
4
2002/1
1
/0
5 03:57:16 jlj
Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
...
...
@@ -33,6 +33,7 @@
#include "intf.h"
#include "vout.h"
#include "prefs.h"
#include "playlist.h"
#include "asystm.h"
...
...
@@ -164,6 +165,18 @@ static void Run( intf_thread_t *p_intf )
*****************************************************************************/
@implementation
VLCMain
-
(
id
)
init
{
self
=
[
super
init
];
if
(
self
!=
nil
)
{
o_prefs
=
nil
;
}
return
(
self
);
}
-
(
void
)
awakeFromNib
{
NSString
*
pTitle
=
[
NSString
...
...
@@ -175,6 +188,7 @@ static void Run( intf_thread_t *p_intf )
[
o_msgs_btn_ok
setTitle
:
_NS
(
"Close"
)];
[
o_mi_about
setTitle
:
_NS
(
"About vlc"
)];
[
o_mi_prefs
setTitle
:
_NS
(
"Preferences"
)];
[
o_mi_hide
setTitle
:
_NS
(
"Hide vlc"
)];
[
o_mi_hide_others
setTitle
:
_NS
(
"Hide Others"
)];
[
o_mi_show_all
setTitle
:
_NS
(
"Show All"
)];
...
...
@@ -184,7 +198,6 @@ static void Run( intf_thread_t *p_intf )
[
o_mi_open_file
setTitle
:
_NS
(
"Open File"
)];
[
o_mi_open_disc
setTitle
:
_NS
(
"Open Disc"
)];
[
o_mi_open_net
setTitle
:
_NS
(
"Open Network"
)];
[
o_mi_open_quickly
setTitle
:
_NS
(
"Open Quickly..."
)];
[
o_mi_open_recent
setTitle
:
_NS
(
"Open Recent"
)];
[
o_mi_open_recent_cm
setTitle
:
_NS
(
"Clear Menu"
)];
...
...
@@ -424,6 +437,12 @@ static void Run( intf_thread_t *p_intf )
vout_DestroyThread
(
p_vout
);
}
if
(
o_prefs
!=
nil
)
{
[
o_prefs
release
];
o_prefs
=
nil
;
}
[
NSApp
stop
:
nil
];
/* write cached user defaults to disk */
...
...
@@ -743,6 +762,16 @@ static void Run( intf_thread_t *p_intf )
[
self
application
:
nil
openFile
:
[
sender
title
]];
}
-
(
IBAction
)
viewPreferences
:(
id
)
sender
{
if
(
o_prefs
==
nil
)
{
o_prefs
=
[[
VLCPrefs
alloc
]
init
];
}
[
o_prefs
createPrefPanel
:
@"main"
];
}
@end
@implementation
VLCMain
(
NSMenuValidation
)
...
...
modules/gui/macosx/prefs.h
0 → 100644
View file @
32519ebf
/*****************************************************************************
* prefs.h: MacOS X plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: prefs.h,v 1.1 2002/11/05 03:57:16 jlj Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* 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.
*****************************************************************************/
/*****************************************************************************
* VLCPrefs interface
*****************************************************************************/
@interface
VLCPrefs
:
NSObject
{
intf_thread_t
*
p_intf
;
NSMutableDictionary
*
o_pref_panels
;
NSMutableDictionary
*
o_toolbars
;
NSMutableDictionary
*
o_scroll_views
;
NSMutableDictionary
*
o_panel_views
;
NSMutableDictionary
*
o_save_prefs
;
}
-
(
BOOL
)
hasPrefs
:(
NSString
*
)
o_module_name
;
-
(
void
)
createPrefPanel
:(
NSString
*
)
o_module_name
;
-
(
void
)
destroyPrefPanel
:(
id
)
o_unknown
;
-
(
void
)
selectPrefView
:(
id
)
sender
;
-
(
void
)
moduleSelected
:(
id
)
sender
;
-
(
void
)
configureModule
:(
id
)
sender
;
-
(
void
)
selectModule
:(
id
)
sender
;
-
(
void
)
configChanged
:(
id
)
o_unknown
;
-
(
void
)
clickedApply
:(
id
)
sender
;
-
(
void
)
clickedCancelOK
:(
id
)
sender
;
@end
@interface
VLCFlippedView
:
NSView
{
}
@end
#define INTF_CONTROL_CONFIG(x) \
@interface VLC##x : NS##x \
{ \
NSString *o_module_name; \
NSString *o_config_name; \
int i_config_type; \
} \
- (void)setModuleName:(NSString *)_o_module_name; \
- (void)setConfigName:(NSString *)_o_config_name; \
- (void)setConfigType:(int)_i_config_type; \
- (NSString *)moduleName; \
- (NSString *)configName; \
- (int)configType; \
@end
#define IMPL_CONTROL_CONFIG(x) \
@implementation VLC##x \
- (id)init \
{ \
self = [super init]; \
if( self != nil ) \
{ \
o_module_name = nil; \
o_config_name = nil; \
i_config_type = 0; \
} \
return( self ); \
} \
- (void)dealloc \
{ \
if( o_module_name != nil ) \
{ \
[o_module_name release]; \
} \
if( o_config_name != nil ) \
{ \
[o_config_name release]; \
} \
[super dealloc]; \
} \
- (void)setModuleName:(NSString *)_o_module_name \
{ \
if( o_module_name != nil ) \
{ \
[o_module_name release]; \
} \
o_module_name = [_o_module_name retain]; \
} \
- (void)setConfigName:(NSString *)_o_config_name \
{ \
if( o_config_name != nil ) \
{ \
[o_config_name release]; \
} \
o_config_name = [_o_config_name retain]; \
} \
- (void)setConfigType:(int)_i_config_type \
{ \
i_config_type = _i_config_type; \
} \
- (NSString *)moduleName \
{ \
return( o_module_name ); \
} \
- (NSString *)configName \
{ \
return( o_config_name ); \
} \
- (int)configType \
{ \
return( i_config_type ); \
} \
@end
INTF_CONTROL_CONFIG
(
Button
);
INTF_CONTROL_CONFIG
(
ComboBox
);
INTF_CONTROL_CONFIG
(
TextField
);
#define CONTROL_CONFIG( obj, mname, ctype, cname ) \
{ \
[obj setModuleName: mname]; \
[obj setConfigType: ctype]; \
[obj setConfigName: [NSString stringWithCString: cname]]; \
}
modules/gui/macosx/prefs.m
0 → 100644
View file @
32519ebf
/*****************************************************************************
* prefs.m: MacOS X plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: prefs.m,v 1.1 2002/11/05 03:57:16 jlj Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* 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.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <stdlib.h>
/* malloc(), free() */
#include <sys/param.h>
/* for MAXPATHLEN */
#include <string.h>
#import <Cocoa/Cocoa.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#import "intf.h"
#import "prefs.h"
/*****************************************************************************
* VLCPrefs implementation
*****************************************************************************/
@implementation
VLCPrefs
-
(
id
)
init
{
self
=
[
super
init
];
if
(
self
!=
nil
)
{
p_intf
=
[
NSApp
getIntf
];
o_pref_panels
=
[[
NSMutableDictionary
alloc
]
init
];
o_toolbars
=
[[
NSMutableDictionary
alloc
]
init
];
o_scroll_views
=
[[
NSMutableDictionary
alloc
]
init
];
o_panel_views
=
[[
NSMutableDictionary
alloc
]
init
];
o_save_prefs
=
[[
NSMutableDictionary
alloc
]
init
];
}
return
(
self
);
}
-
(
void
)
dealloc
{
id
v1
,
v2
;
NSEnumerator
*
o_e1
;
NSEnumerator
*
o_e2
;
#define DIC_REL1(o_dic) \
{ \
o_e1 = [o_dic objectEnumerator]; \
while( (v1 = [o_e1 nextObject]) ) \
{ \
[v1 release]; \
} \
[o_dic removeAllObjects]; \
[o_dic release]; \
}
#define DIC_REL2(o_dic) \
{ \
o_e2 = [o_dic objectEnumerator]; \
while( (v2 = [o_e2 nextObject]) ) \
{ \
DIC_REL1(v2); \
} \
[o_dic removeAllObjects]; \
}
DIC_REL1
(
o_pref_panels
);
DIC_REL2
(
o_toolbars
);
DIC_REL1
(
o_scroll_views
);
DIC_REL2
(
o_panel_views
);
DIC_REL1
(
o_save_prefs
);
#undef DIC_REL1
#undef DIC_REL2
[
super
dealloc
];
}
-
(
BOOL
)
hasPrefs
:(
NSString
*
)
o_module_name
{
module_t
**
pp_parser
;
vlc_list_t
*
p_list
;
char
*
psz_module_name
;
psz_module_name
=
(
char
*
)[
o_module_name
lossyCString
];
/* look for module */
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
FIND_ANYWHERE
);
for
(
pp_parser
=
(
module_t
**
)
p_list
->
pp_objects
;
*
pp_parser
;
pp_parser
++
)
{
if
(
!
strcmp
(
(
*
pp_parser
)
->
psz_object_name
,
psz_module_name
)
)
{
BOOL
b_has_prefs
=
(
*
pp_parser
)
->
i_config_items
!=
0
;
vlc_list_release
(
p_list
);
return
(
b_has_prefs
);
}
}
vlc_list_release
(
p_list
);
return
(
NO
);
}
-
(
void
)
createPrefPanel
:(
NSString
*
)
o_module_name
{
int
i_pos
;
int
i_module_tag
;
module_t
**
pp_parser
;
vlc_list_t
*
p_list
;
module_config_t
*
p_item
;
char
*
psz_module_name
;
NSPanel
*
o_panel
;
/* panel */
NSRect
s_panel_rc
;
/* panel rect */
NSView
*
o_panel_view
;
/* panel view */
NSToolbar
*
o_toolbar
;
/* panel toolbar */
NSMutableDictionary
*
o_tb_items
;
/* panel toolbar items */
NSScrollView
*
o_scroll_view
;
/* panel scroll view */
NSRect
s_scroll_rc
;
/* panel scroll view rect */
NSMutableDictionary
*
o_views
;
/* panel scroll view docviews */
NSRect
s_rc
;
/* rect */
NSView
*
o_view
;
/* view */
NSRect
s_vrc
;
/* view rect */
NSButton
*
o_button
;
/* button */
NSRect
s_brc
;
/* button rect */
VLCTextField
*
o_text_field
;
/* input field / label */
o_panel
=
[
o_pref_panels
objectForKey
:
o_module_name
];
if
(
o_panel
!=
nil
)
{
[
o_panel
center
];
[
o_panel
makeKeyAndOrderFront
:
nil
];
return
;
}
psz_module_name
=
(
char
*
)[
o_module_name
lossyCString
];
/* Look for the selected module */
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
FIND_ANYWHERE
);
for
(
pp_parser
=
(
module_t
**
)
p_list
->
pp_objects
;
*
pp_parser
;
pp_parser
++
)
{
if
(
psz_module_name
&&
!
strcmp
(
psz_module_name
,
(
*
pp_parser
)
->
psz_object_name
)
)
{
break
;
}
}
if
(
!
(
*
pp_parser
)
)
{
vlc_list_release
(
p_list
);
return
;
}
/* We found it, now we can start building its configuration interface */
s_panel_rc
=
NSMakeRect
(
0
,
0
,
450
,
450
);
o_panel
=
[[
NSPanel
alloc
]
initWithContentRect
:
s_panel_rc
styleMask:
NSTitledWindowMask
backing:
NSBackingStoreBuffered
defer:
YES
];
o_toolbar
=
[[
NSToolbar
alloc
]
initWithIdentifier
:
o_module_name
];
[
o_panel
setTitle
:
[
NSString
stringWithFormat
:
@"%@ (%@)"
,
_NS
(
"Preferences"
),
o_module_name
]];
o_panel_view
=
[
o_panel
contentView
];
s_scroll_rc
=
s_panel_rc
;
s_scroll_rc
.
size
.
height
-=
55
;
s_scroll_rc
.
origin
.
y
+=
55
;
o_scroll_view
=
[[
NSScrollView
alloc
]
initWithFrame
:
s_scroll_rc
];
[
o_scroll_views
setObject
:
o_scroll_view
forKey
:
o_module_name
];
[
o_scroll_view
setBorderType
:
NSGrooveBorder
];
[
o_scroll_view
setHasVerticalScroller
:
YES
];
[
o_scroll_view
setDrawsBackground
:
NO
];
[
o_scroll_view
setRulersVisible
:
YES
];
[
o_panel_view
addSubview
:
o_scroll_view
];
o_tb_items
=
[[
NSMutableDictionary
alloc
]
init
];
o_views
=
[[
NSMutableDictionary
alloc
]
init
];
[
o_save_prefs
setObject
:
[[
NSMutableArray
alloc
]
init
]
forKey:
o_module_name
];
/* Enumerate config options and add corresponding config boxes */
p_item
=
(
*
pp_parser
)
->
p_config
;
i_pos
=
0
;
o_view
=
nil
;
i_module_tag
=
3
;
#define X_ORIGIN 20
#define Y_ORIGIN (X_ORIGIN - 10)
#define CHECK_VIEW_HEIGHT \
{ \
float f_new_pos = s_rc.origin.y + s_rc.size.height + X_ORIGIN; \
if( f_new_pos > s_vrc.size.height ) \
{ \
s_vrc.size.height = f_new_pos; \
[o_view setFrame: s_vrc]; \
} \
}
#define CONTROL_LABEL( label ) \
{ \
s_rc.origin.x += s_rc.size.width + 10; \
s_rc.size.width = s_vrc.size.width - s_rc.origin.x - X_ORIGIN - 20; \
o_text_field = [[NSTextField alloc] initWithFrame: s_rc]; \
[o_text_field setDrawsBackground: NO]; \
[o_text_field setBordered: NO]; \
[o_text_field setEditable: NO]; \
[o_text_field setSelectable: NO]; \
[o_text_field setStringValue: \
[NSString stringWithCString: label]]; \
[o_view addSubview: [o_text_field autorelease]]; \
}
#define INPUT_FIELD( ctype, cname, label, w, msg, param ) \
{ \
s_rc.size.height = 23; \
s_rc.size.width = w; \
s_rc.origin.y += 10; \
CHECK_VIEW_HEIGHT; \
o_text_field = [[VLCTextField alloc] initWithFrame: s_rc]; \
[o_text_field setAlignment: NSRightTextAlignment]; \
CONTROL_CONFIG( o_text_field, o_module_name, ctype, cname ); \
[o_text_field msg: param]; \
[o_view addSubview: [o_text_field autorelease]]; \
[[NSNotificationCenter defaultCenter] addObserver: self \
selector: @selector(configChanged:) \
name: NSControlTextDidChangeNotification \
object: o_text_field]; \
CONTROL_LABEL( label ); \
s_rc.origin.y += s_rc.size.height; \
s_rc.origin.x = X_ORIGIN; \
}
#define INPUT_FIELD_INTEGER( name, label, w, param ) \
INPUT_FIELD( CONFIG_ITEM_INTEGER, name, label, w, setIntValue, param )
#define INPUT_FIELD_FLOAT( name, label, w, param ) \
INPUT_FIELD( CONFIG_ITEM_FLOAT, name, label, w, setFloatValue, param )
#define INPUT_FIELD_STRING( name, label, w, param ) \
INPUT_FIELD( CONFIG_ITEM_STRING, name, label, w, setStringValue, param )
if
(
p_item
)
do
{
switch
(
p_item
->
i_type
)
{
case
CONFIG_HINT_CATEGORY
:
{
NSString
*
o_key
;
NSString
*
o_label
;
NSToolbarItem
*
o_tbi
;
o_label
=
[
NSString
stringWithCString
:
p_item
->
psz_text
];
o_tbi
=
[[
NSToolbarItem
alloc
]
initWithItemIdentifier
:
o_label
];
[
o_tbi
setImage
:
[
NSImage
imageNamed
:
@"NSApplicationIcon"
]];
[
o_tbi
setLabel
:
o_label
];
[
o_tbi
setTarget
:
self
];
[
o_tbi
setAction
:
@selector
(
selectPrefView
:)];
o_key
=
[
NSString
stringWithFormat
:
@"%02d %@"
,
i_pos
,
o_label
];
[
o_tb_items
setObject
:
o_tbi
forKey
:
o_key
];
s_vrc
=
s_scroll_rc
;
s_vrc
.
size
.
height
-=
4
;
o_view
=
[[
VLCFlippedView
alloc
]
initWithFrame
:
s_vrc
];
[
o_views
setObject
:
o_view
forKey
:
o_label
];
s_rc
.
origin
.
x
=
X_ORIGIN
;
s_rc
.
origin
.
y
=
Y_ORIGIN
;
i_module_tag
=
3
;