enabled OK button on GuiCombat screen when choosing defenders/attackers. iOS solution only currently. To implement in Android, we need to create a mask/invisible button above the OK button coordinates and add a listener to activate when a user touches the appropriate area. Not ideal, but it works for now.

TODO:  translate functionality into core of engine.
This commit is contained in:
techdragon.nguyen@gmail.com
2011-12-30 16:04:21 +00:00
parent 7fef90f943
commit e102d3f369
10 changed files with 84 additions and 39 deletions
+3
View File
@@ -6,8 +6,11 @@
BOOL bannerIsVisible;
}
- (void)addOkButtonListener: (CGRect) frame;
@property (nonatomic, retain) id eaglView;
@property (nonatomic, retain) UITextField *inputField;
@property (nonatomic, retain) UIButton *okButtonView;
@property (nonatomic, assign) BOOL bannerIsVisible;
@end
+26 -2
View File
@@ -10,6 +10,7 @@
@synthesize bannerIsVisible;
@synthesize eaglView;
@synthesize okButtonView;
@synthesize inputField;
#pragma mark initialization / deallocation methods
@@ -38,6 +39,7 @@
[eaglView setDelegate: nil];
[eaglView release], eaglView = nil;
[inputField release], inputField = nil;
[okButtonView release], okButtonView = nil;
[super dealloc];
}
@@ -86,10 +88,32 @@
// e.g. self.myOutlet = nil;
}
#pragma mark - UIView Creation
- (void)addOkButtonListener: (CGRect) frame
{
// create an invisible view to handle the pressing of the OK button.
if ( okButtonView == nil )
{
okButtonView = [[UIButton alloc] initWithFrame: frame];
[okButtonView setBackgroundColor: [UIColor clearColor]];
[okButtonView setEnabled: YES];
[okButtonView addTarget: self.view action:@selector(handleOK:) forControlEvents: UIControlEventTouchUpInside];
[self.view addSubview: okButtonView];
}
else
{
[self.view bringSubviewToFront: okButtonView];
}
}
#pragma mark -
- (void)removeOkButtonListener
{
[[self.view.subviews lastObject] removeFromSuperview];
[okButtonView release], okButtonView = nil;
}
#pragma mark device orientation handlers
#pragma mark - device orientation handlers
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
+1
View File
@@ -14,6 +14,7 @@
- (void) rotateBackgroundImage:(UIInterfaceOrientation)fromInterfaceOrientation toInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;
- (void) handleWEngineCommand:(NSString *) command withParameter: (NSString *) parameter;
- (void) handleWEngineCommand:(NSString *) command withUIParameters: (CGFloat) x yCoordinate: (CGFloat) y width: (CGFloat) width height: (CGFloat) height;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) EAGLViewController *glViewController;
+14
View File
@@ -144,6 +144,16 @@
[self.glViewController toggleKeyboardWithState: initialState];
}
- (void) handleWEngineCommand:(NSString *) command
withUIParameters: (CGFloat) x
yCoordinate: (CGFloat) y
width: (CGFloat) width
height: (CGFloat) height
{
CGRect uiFrame = CGRectMake(x, y, width, height);
if ( [command isEqualToString: @"okbuttoncreated"] )
[glViewController addOkButtonListener: uiFrame];
}
- (void)handleWEngineCommand:(NSString *) command withParameter: (NSString *) parameter
{
@@ -165,6 +175,10 @@
{
[self initializeKeyboard: parameter];
}
else if ([command isEqualToString: @"combatGuiEndDamage"])
{
[glViewController removeOkButtonListener];
}
}