mirror of
https://github.com/id-Software/DOOM-IOS2.git
synced 2026-03-20 08:59:35 +01:00
Initial Commit
This commit is contained in:
202
common/idmobilelib/ios/LabelButton.mm
Executable file
202
common/idmobilelib/ios/LabelButton.mm
Executable file
@@ -0,0 +1,202 @@
|
||||
/*
|
||||
|
||||
Copyright (C) 2009-2011 id Software LLC, a ZeniMax Media company.
|
||||
|
||||
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-1307, USA.
|
||||
|
||||
*/
|
||||
#import "LabelButton.h"
|
||||
#import "Label.h"
|
||||
#import "Slider.h"
|
||||
#import "Switch.h"
|
||||
#import "Carousel.h"
|
||||
#import "Localization.h"
|
||||
@implementation idLabelButton
|
||||
|
||||
@synthesize label;
|
||||
@synthesize label2;
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::awakeFromNib
|
||||
========================
|
||||
*/
|
||||
- (void)awakeFromNib {
|
||||
|
||||
// Do not optimize my class out
|
||||
[idLabel class ];
|
||||
[idSlider class];
|
||||
[idSwitch class];
|
||||
[idCarousel class];
|
||||
|
||||
CGFloat points = self.titleLabel.font.pointSize;
|
||||
|
||||
self.titleLabel.font = [UIFont fontWithName:@"idGinza Narrow" size:points];
|
||||
|
||||
// Localize the text.
|
||||
NSString * unLocText = self.titleLabel.text;
|
||||
if( unLocText ) {
|
||||
const char * utf8string = idLocalization_GetString( [unLocText UTF8String ] );
|
||||
|
||||
NSString * localizedString = [ NSString stringWithCString: utf8string encoding:NSUTF8StringEncoding ];
|
||||
[self setTitle: localizedString forState:UIControlStateNormal];
|
||||
[self setTitle: localizedString forState:UIControlStateHighlighted];
|
||||
}
|
||||
|
||||
if( self.label2 )
|
||||
label2Color = self.label2.textColor;
|
||||
if( self.label ) {
|
||||
labelColor = self.label.textColor;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::setHighlighted
|
||||
========================
|
||||
*/
|
||||
- (void)setHighlighted:(BOOL)highlight {
|
||||
if( highlight ) {
|
||||
if( self.label )
|
||||
self.label.textColor = self.label.highlightedTextColor;
|
||||
if( self.label2 )
|
||||
self.label2.textColor = self.label2.highlightedTextColor;
|
||||
} else if( self.enabled ) {
|
||||
if( self.label )
|
||||
self.label.textColor = labelColor;
|
||||
if( self.label2 )
|
||||
self.label2.textColor = label2Color;
|
||||
}
|
||||
|
||||
[super setHighlighted:highlight];
|
||||
|
||||
// Localize the text.
|
||||
NSString * unLocText = self.titleLabel.text;
|
||||
if( unLocText ) {
|
||||
const char * utf8string = idLocalization_GetString( [unLocText UTF8String ] );
|
||||
self.titleLabel.text = [ NSString stringWithCString: utf8string encoding:NSUTF8StringEncoding ];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::setEnabled
|
||||
========================
|
||||
*/
|
||||
- (void)setEnabled:(BOOL)enabled {
|
||||
if( !enabled ) {
|
||||
if( self.label )
|
||||
self.label.textColor = self.label.highlightedTextColor;
|
||||
if( self.label2 )
|
||||
self.label2.textColor = self.label2.highlightedTextColor;
|
||||
} else {
|
||||
if( self.label )
|
||||
self.label.textColor = labelColor;
|
||||
if( self.label2 )
|
||||
self.label2.textColor = label2Color;
|
||||
}
|
||||
|
||||
[super setEnabled:enabled];
|
||||
|
||||
// Localize the text.
|
||||
NSString * unLocText = self.titleLabel.text;
|
||||
if( unLocText ) {
|
||||
const char * utf8string = idLocalization_GetString( [unLocText UTF8String ] );
|
||||
self.titleLabel.text = [ NSString stringWithCString: utf8string encoding:NSUTF8StringEncoding ];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::Enable
|
||||
========================
|
||||
*/
|
||||
- (void) Enable {
|
||||
|
||||
self.enabled = YES;
|
||||
if( self.label )
|
||||
label.enabled = YES;
|
||||
if( self.label2 )
|
||||
label2.enabled = YES;
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::Disable
|
||||
========================
|
||||
*/
|
||||
- (void) Disable {
|
||||
self.enabled = NO;
|
||||
if( self.label )
|
||||
label.enabled = NO;
|
||||
if( self.label2 )
|
||||
label2.enabled = NO;
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::Hide
|
||||
========================
|
||||
*/
|
||||
- (void) Hide {
|
||||
|
||||
[UIView beginAnimations:@"Hide" context:nil];
|
||||
[UIView setAnimationDuration:1.0f];
|
||||
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
|
||||
[UIView setAnimationBeginsFromCurrentState:YES];
|
||||
[UIView setAnimationDelegate:self];
|
||||
[UIView setAnimationDidStopSelector:@selector(Disable)];
|
||||
|
||||
self.alpha = 0.0f;
|
||||
if( self.label )
|
||||
label.alpha = 0.0f;
|
||||
if( self.label2 )
|
||||
label2.alpha = 0.0f;
|
||||
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
/*
|
||||
========================
|
||||
idLabelButton::Show
|
||||
========================
|
||||
*/
|
||||
- (void) Show {
|
||||
|
||||
[UIView beginAnimations:@"Show" context:nil];
|
||||
[UIView setAnimationDuration:1.0f];
|
||||
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
|
||||
[UIView setAnimationBeginsFromCurrentState:YES];
|
||||
[UIView setAnimationDelegate:self];
|
||||
[UIView setAnimationDidStopSelector:@selector(Enable)];
|
||||
|
||||
self.alpha = 1.0f;
|
||||
if( self.label )
|
||||
label.alpha = 1.0f;
|
||||
if( self.label2 )
|
||||
label2.alpha = 1.0f;
|
||||
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
- (void) dealloc {
|
||||
label = nil;
|
||||
label2 = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user