mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 21:55:31 +00:00
199 lines
3.9 KiB
Plaintext
199 lines
3.9 KiB
Plaintext
#import "MyBrowserView.h"
|
|
|
|
#define DOCUMENT_DONE_STRING @"Document: Done"
|
|
#define LOADING_STRING @"Loading..."
|
|
|
|
@implementation MyBrowserView
|
|
|
|
- (IBAction)load:(id)sender
|
|
{
|
|
NSString* str = [urlbar stringValue];
|
|
[browserView loadURI:str referrer:nil flags:NSLoadFlagsNone];
|
|
}
|
|
|
|
- (void)awakeFromNib
|
|
{
|
|
NSRect bounds = [self bounds];
|
|
browserView = [[CHBrowserView alloc] initWithFrame:bounds];
|
|
[self addSubview:browserView];
|
|
[browserView setContainer:self];
|
|
[browserView addListener:self];
|
|
|
|
defaultStatus = NULL;
|
|
loadingStatus = DOCUMENT_DONE_STRING;
|
|
[status setStringValue:loadingStatus];
|
|
|
|
[progress retain];
|
|
[progress removeFromSuperview];
|
|
}
|
|
|
|
- (void)setFrame:(NSRect)frameRect
|
|
{
|
|
[super setFrame:frameRect];
|
|
NSRect bounds = [self bounds];
|
|
[browserView setFrame:bounds];
|
|
}
|
|
|
|
- (void)onLoadingStarted
|
|
{
|
|
if (defaultStatus) {
|
|
[defaultStatus release];
|
|
defaultStatus = NULL;
|
|
}
|
|
|
|
[progressSuper addSubview:progress];
|
|
[progress release];
|
|
[progress setIndeterminate:YES];
|
|
[progress startAnimation:self];
|
|
|
|
loadingStatus = LOADING_STRING;
|
|
[status setStringValue:loadingStatus];
|
|
|
|
#ifdef DEBUG_vidur
|
|
printf("Starting to load\n");
|
|
#endif
|
|
}
|
|
|
|
- (void)onLoadingCompleted:(BOOL)succeeded
|
|
{
|
|
[progress setIndeterminate:YES];
|
|
[progress stopAnimation:self];
|
|
[progress retain];
|
|
[progress removeFromSuperview];
|
|
|
|
loadingStatus = DOCUMENT_DONE_STRING;
|
|
if (defaultStatus) {
|
|
[status setStringValue:defaultStatus];
|
|
}
|
|
else {
|
|
[status setStringValue:loadingStatus];
|
|
}
|
|
|
|
[browserView setActive:YES];
|
|
#ifdef DEBUG_vidur
|
|
printf("Loading completed\n");
|
|
#endif
|
|
}
|
|
|
|
- (void)onProgressChange:(int)currentBytes outOf:(int)maxBytes
|
|
{
|
|
if (maxBytes > 0) {
|
|
BOOL isIndeterminate = [progress isIndeterminate];
|
|
if (isIndeterminate) {
|
|
[progress setIndeterminate:NO];
|
|
}
|
|
double val = ((double)currentBytes / (double)maxBytes) * 100.0;
|
|
[progress setDoubleValue:val];
|
|
#ifdef DEBUG_vidur
|
|
printf("Progress notification: %f%%\n", val);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
- (void)onLocationChange:(NSString*)url
|
|
{
|
|
[urlbar setStringValue:url];
|
|
|
|
#ifdef DEBUG_vidur
|
|
const char* str = [spec cString];
|
|
printf("Location changed to: %s\n", str);
|
|
#endif
|
|
}
|
|
|
|
- (void)setStatus:(NSString *)statusString ofType:(NSStatusType)type
|
|
{
|
|
if (type == NSStatusTypeScriptDefault) {
|
|
if (defaultStatus) {
|
|
[defaultStatus release];
|
|
}
|
|
defaultStatus = statusString;
|
|
if (defaultStatus) {
|
|
[defaultStatus retain];
|
|
}
|
|
}
|
|
else if (!statusString) {
|
|
if (defaultStatus) {
|
|
[status setStringValue:defaultStatus];
|
|
}
|
|
else {
|
|
[status setStringValue:loadingStatus];
|
|
}
|
|
}
|
|
else {
|
|
[status setStringValue:statusString];
|
|
}
|
|
}
|
|
|
|
- (void)onStatusChange:(NSString*)aMessage
|
|
{
|
|
NSLog(@"Status is %@", aMessage);
|
|
}
|
|
|
|
- (void)onSecurityStateChange:(unsigned long)newState
|
|
{
|
|
}
|
|
|
|
- (void)onShowContextMenu:(int)flags domEvent:(nsIDOMEvent*)aEvent domNode:(nsIDOMNode*)aNode
|
|
{
|
|
NSLog(@"Showing context menu");
|
|
}
|
|
|
|
- (void)onShowTooltip:(NSPoint)where withText:(NSString*)text
|
|
{
|
|
NSLog(@"Showing tooltip %@", text);
|
|
}
|
|
|
|
- (void)onHideTooltip
|
|
{
|
|
}
|
|
|
|
- (NSString *)title
|
|
{
|
|
NSWindow* window = [self window];
|
|
NSString* str = [window title];
|
|
return str;
|
|
}
|
|
|
|
- (void)setTitle:(NSString *)title
|
|
{
|
|
NSWindow* window = [self window];
|
|
[window setTitle:title];
|
|
}
|
|
|
|
- (void)sizeBrowserTo:(NSSize)dimensions
|
|
{
|
|
NSRect bounds = [self bounds];
|
|
float dx = dimensions.width - bounds.size.width;
|
|
float dy = dimensions.height - bounds.size.height;
|
|
|
|
NSWindow* window = [self window];
|
|
NSRect frame = [window frame];
|
|
frame.size.width += dx;
|
|
frame.size.height += dy;
|
|
|
|
[window setFrame:frame display:YES];
|
|
}
|
|
|
|
- (CHBrowserView*)createBrowserWindow:(unsigned int)mask
|
|
{
|
|
// XXX not implemented
|
|
return NULL;
|
|
}
|
|
|
|
- (NSMenu*)getContextMenu
|
|
{
|
|
return nil;
|
|
}
|
|
|
|
- (NSWindow*)getNativeWindow
|
|
{
|
|
return [self window];
|
|
}
|
|
|
|
- (BOOL)shouldAcceptDragFromSource:(id)dragSource
|
|
{
|
|
return NO;
|
|
}
|
|
|
|
@end
|