⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prefs.m

📁 video linux conference
💻 M
📖 第 1 页 / 共 2 页
字号:
                    if( p_item->i_type & CONFIG_ITEM )                        i_options ++;                    if( i_options > 0 && i_category >= 0 && i_subcategory >= 0 )                        break;                } while( p_item->i_type != CONFIG_HINT_END && p_item++ );                if( !i_options ) continue;                /* Find the right category item */                long cookie;                vlc_bool_t b_found = VLC_FALSE;                unsigned int i;                VLCTreeItem* p_category_item, * p_subcategory_item;                for (i = 0 ; i < [o_children count] ; i++)                {                    p_category_item = [o_children objectAtIndex: i];                    if( p_category_item->i_object_id == i_category )                    {                        b_found = VLC_TRUE;                        break;                    }                }                if( !b_found ) continue;                /* Find subcategory item */                b_found = VLC_FALSE;                cookie = -1;                for (i = 0 ; i < [p_category_item->o_children count] ; i++)                {                    p_subcategory_item = [p_category_item->o_children                                            objectAtIndex: i];                    if( p_subcategory_item->i_object_id == i_subcategory )                    {                        b_found = VLC_TRUE;                        break;                    }                }                if( !b_found )                    p_subcategory_item = p_category_item;                [p_subcategory_item->o_children addObject:[[VLCTreeItem alloc]                    initWithName:[[VLCMain sharedInstance]                        localizedString: p_module->psz_object_name ]                    ID: p_module->i_object_id                    parent:p_subcategory_item                    children:IsALeafNode                    whithCategory: -1]];            }        }        vlc_list_release( p_list );    }    return o_children;}- (int)getObjectID{    return i_object_id;}- (NSString *)getName{    return o_name;}- (VLCTreeItem *)childAtIndex:(int)i_index{    return [[self children] objectAtIndex:i_index];}- (int)numberOfChildren {    id i_tmp = [self children];    return (i_tmp == IsALeafNode) ? (-1) : (int)[i_tmp count];}- (BOOL)hasPrefs:(NSString *)o_module_name{    intf_thread_t *p_intf = VLCIntf;    module_t *p_parser;    vlc_list_t *p_list;    char *psz_module_name;    int i_index;    psz_module_name = (char *)[o_module_name UTF8String];    /* look for module */    p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE );    for( i_index = 0; i_index < p_list->i_count; i_index++ )    {        p_parser = (module_t *)p_list->p_values[i_index].p_object ;        if( !strcmp( p_parser->psz_object_name, psz_module_name ) )        {            BOOL b_has_prefs = p_parser->i_config_items != 0;            vlc_list_release( p_list );            return( b_has_prefs );        }    }    vlc_list_release( p_list );    return( NO );}- (NSView *)showView:(NSScrollView *)o_prefs_view    advancedView:(vlc_bool_t) b_advanced{    NSRect          s_vrc;    NSView          *o_view;    s_vrc = [[o_prefs_view contentView] bounds]; s_vrc.size.height -= 4;    o_view = [[VLCFlippedView alloc] initWithFrame: s_vrc];    [o_view setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin |                                    NSViewMaxYMargin];/* Create all subviews if it isn't already done because we cannot use *//* setHiden for MacOS < 10.3*/    if( o_subviews == nil )    {        intf_thread_t   *p_intf = VLCIntf;        vlc_list_t      *p_list;        module_t        *p_parser = NULL;        module_config_t *p_item;        o_subviews = [[NSMutableArray alloc] initWithCapacity:10];        /* Get a pointer to the module */        if( i_object_category == -1 )        {            p_parser = (module_t *) vlc_object_get( p_intf, i_object_id );            if( !p_parser || p_parser->i_object_type != VLC_OBJECT_MODULE )            {                /* 0OOoo something went really bad */                return nil;            }            p_item = p_parser->p_config;            int i = 0;            p_item = p_parser->p_config + 1;            do            {                if( !p_item )                {                    msg_Err( p_intf, "null item found" );                    break;                }                switch(p_item->i_type)                {                case CONFIG_SUBCATEGORY:                    break;                case CONFIG_SECTION:                    break;                case CONFIG_CATEGORY:                    break;                case CONFIG_HINT_END:                    break;                case CONFIG_HINT_USAGE:                    break;                default:                {                    VLCConfigControl *o_control = nil;                    o_control = [VLCConfigControl newControl:p_item                                                  withView:o_view];                    if( o_control != nil )                    {                        [o_control setAutoresizingMask: NSViewMaxYMargin |                            NSViewWidthSizable];                        [o_subviews addObject: o_control];                    }                }                    break;                }            } while( p_item++->i_type != CONFIG_HINT_END );            vlc_object_release( p_parser );        }        else        {            int i = 0;            int i_index;            p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE );            if( !p_list ) return o_view;            /*            * Find the main module            */            for( i_index = 0; i_index < p_list->i_count; i_index++ )            {                p_parser = (module_t *)p_list->p_values[i_index].p_object;                if( !strcmp( p_parser->psz_object_name, "main" ) )                    break;            }            if( p_parser == NULL )            {                msg_Err( p_intf, "could not find the main module in our "                                    "preferences" );                return o_view;            }            p_item = (p_parser->p_config + i_object_category);            if( ( p_item->i_type == CONFIG_CATEGORY ) &&              ( ( p_item->i_value == CAT_PLAYLIST )  ||                ( p_item->i_value == CAT_AUDIO )  ||                ( p_item->i_value == CAT_VIDEO ) ) )                p_item++;            do            {                p_item++;                if( !p_item )                {                    msg_Err( p_intf, "null item found" );                    break;                }                switch(p_item->i_type)                {                case CONFIG_SUBCATEGORY:                    break;                case CONFIG_SECTION:                    break;                case CONFIG_CATEGORY:                    break;                case CONFIG_HINT_END:                    break;                case CONFIG_HINT_USAGE:                    break;                default:                {                    VLCConfigControl *o_control = nil;                    o_control = [VLCConfigControl newControl:p_item                                                  withView:o_view];                    if( o_control != nil )                    {                        [o_control setAutoresizingMask: NSViewMaxYMargin |                                                        NSViewWidthSizable];                        [o_subviews addObject: o_control];                    }                    break;                }                }            } while ( ( p_item->i_type != CONFIG_HINT_END ) &&                      ( p_item->i_type != CONFIG_SUBCATEGORY ) );            vlc_list_release( p_list );        }    }    if( o_view != nil )    {        int i_lastItem = 0;        int i_yPos = -2;        int i_max_label = 0;        int i_show_advanced = 0;        NSEnumerator *enumerator = [o_subviews objectEnumerator];        VLCConfigControl *o_widget;        NSRect o_frame;                while( ( o_widget = [enumerator nextObject] ) )            if( ( [o_widget isAdvanced] ) && (! b_advanced) )                continue;            else if( i_max_label < [o_widget getLabelSize] )                i_max_label = [o_widget getLabelSize];        enumerator = [o_subviews objectEnumerator];        while( ( o_widget = [enumerator nextObject] ) )        {            int i_widget;            if( ( [o_widget isAdvanced] ) && (! b_advanced) )            {                i_show_advanced++;                continue;            }            i_widget = [o_widget getViewType];            i_yPos += [VLCConfigControl calcVerticalMargin:i_widget                lastItem:i_lastItem];            [o_widget setYPos:i_yPos];            o_frame = [o_widget frame];            o_frame.size.width = [o_view frame].size.width -                                    LEFTMARGIN - RIGHTMARGIN;            [o_widget setFrame:o_frame];            [o_widget alignWithXPosition: i_max_label];            i_yPos += [o_widget frame].size.height;            i_lastItem = i_widget;            [o_view addSubview:o_widget];         }        if( i_show_advanced != 0 )        {            /* We add the advanced notice... */            NSRect s_rc = [o_view frame];            NSTextField *o_label;            s_rc.size.height = 17;            s_rc.origin.x = LEFTMARGIN;            s_rc.origin.y = i_yPos += [VLCConfigControl                                        calcVerticalMargin:CONFIG_ITEM_STRING                                        lastItem:i_lastItem];            o_label = [[[NSTextField alloc] initWithFrame: s_rc] retain];            [o_label setDrawsBackground: NO];            [o_label setBordered: NO];            [o_label setEditable: NO];            [o_label setSelectable: NO];            [o_label setStringValue: _NS("Some options are available but " \                                "hidden. Check \"Advanced\" to see them.")];            [o_label setFont:[NSFont systemFontOfSize:10]];            [o_label sizeToFit];            [o_view addSubview:o_label];            i_yPos += [o_label frame].size.height;        }        o_frame = [o_view frame];        o_frame.size.height = i_yPos;        [o_view setFrame:o_frame];        [o_prefs_view setDocumentView:o_view];    }    return o_view;}- (void)applyChanges{    unsigned int i;    if( o_subviews != nil )        //Item has been shown        for( i = 0 ; i < [o_subviews count] ; i++ )            [[o_subviews objectAtIndex:i] applyChanges];    if( o_children != IsALeafNode )        for( i = 0 ; i < [o_children count] ; i++ )            [[o_children objectAtIndex:i] applyChanges];}- (void)resetView{    unsigned int i;    if( o_subviews != nil )    {        //Item has been shown        [o_subviews release];        o_subviews = nil;    }    if( o_children != IsALeafNode )        for( i = 0 ; i < [o_children count] ; i++ )            [[o_children objectAtIndex:i] resetView];}@end@implementation VLCFlippedView- (BOOL)isFlipped{    return( YES );}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -