]> err.no Git - sope/blobdiff - Recycler/NGObjDOM/XUL.subproj/ODR_XUL_tab.m
more directory hierarchy reorganisations,
[sope] / Recycler / NGObjDOM / XUL.subproj / ODR_XUL_tab.m
diff --git a/Recycler/NGObjDOM/XUL.subproj/ODR_XUL_tab.m b/Recycler/NGObjDOM/XUL.subproj/ODR_XUL_tab.m
new file mode 100644 (file)
index 0000000..eed1f82
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo 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 Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+// $Id$
+
+#include "ODR_XUL_box.h"
+#include "common.h"
+#include <DOM/DOMNode+QueryPath.h>
+
+@interface ODR_XUL_tabbox : ODR_XUL_box
+@end
+
+@implementation ODR_XUL_tabbox
+
+- (NSString *)borderWidthForNode:(id)_node inContext:(WOContext *)_context {
+  return @"1";
+}
+
+- (void)appendNode:(id)_node
+  toResponse:(WOResponse *)_response
+  inContext:(WOContext *)_ctx
+{
+  NSString *align;
+  BOOL     selection;
+
+  if (![_node hasChildNodes])
+    return;
+  
+  align     = [self stringFor:@"align"     node:_node ctx:_ctx];
+  selection = [self   boolFor:@"selection" node:_node ctx:_ctx];
+  
+  if ([align isEqualToString:@"vertical"]) {
+    [self verticalAppendChildList:[_node childNodes] ofNode:_node
+          toResponse:_response
+          inContext:_ctx];
+  }
+  else {
+    [self horizontalAppendChildList:[_node childNodes] ofNode:_node
+          toResponse:_response
+          inContext:_ctx];
+  }
+}
+
+@end
+
+@interface ODR_XUL_tabpanel : ODR_XUL_box
+@end
+
+@implementation ODR_XUL_tabpanel
+- (NSString *)borderWidthForNode:(id)_node inContext:(WOContext *)_ctx {
+  return @"1";
+}
+
+- (BOOL)addChildNode:(id)_node inContext:(WOContext *)_ctx {
+  return YES;
+}
+
+- (void)appendNode:(id)_domNode
+  toResponse:(WOResponse *)_response
+  inContext:(WOContext *)_context
+{
+  NSArray *childs;
+
+  childs = (NSArray *)[_domNode childNodes];
+
+  if ([childs count] == 0) return;
+}
+
+@end /* ODR_XUL_tabpanel */
+
+@interface ODR_XUL_tab : ODRDynamicXULTag
+@end
+
+@implementation ODR_XUL_tab
+
+- (BOOL)addChildNode:(id)_node inContext:(WOContext *)_ctx {
+  return NO;
+}
+
+- (void)appendNode:(id)_node
+  toResponse:(WOResponse *)_response
+  inContext:(WOContext *)_ctx
+{
+  NSString *value;
+  BOOL     isSelected = YES;;
+
+  value = [self stringFor:@"value" node:_node ctx:_ctx];
+  NSLog(@"__tab value is %@", value);
+  value = (value) ? value : @"tab";
+
+  NSLog(@"_________ stringValue is %@",
+        [self stringFor:@"selected" node:_node ctx:_ctx]);
+  
+  if (isSelected) [_response appendContentString:@"<B>"];
+  
+  [_response appendContentString:value];
+  
+  if (isSelected) [_response appendContentString:@"</B>"];
+}
+
+@end /* ODR_XUL_tab */
+
+
+@interface ODR_XUL_tabcontrol : ODR_XUL_box
+@end
+
+@implementation ODR_XUL_tabcontrol
+
+- (NSString *)borderWidthForNode:(id)_node inContext:(WOContext *)_ctx {
+  return @"1";
+}
+
+- (BOOL)addChildNode:(id)_node inContext:(WOContext *)_ctx {
+  return ([[_node nodeName] isEqualToString:@"tabbox"] ||
+          [[_node nodeName] isEqualToString:@"tabpanel"]);
+}
+
+- (void)appendNode:(id)_node
+  toResponse:(WOResponse *)_response
+  inContext:(WOContext *)_ctx
+{
+  NSString *align;
+
+  if (![_node hasChildNodes])
+    return;
+
+  align = [self stringFor:@"align" node:_node ctx:_ctx];
+  
+  if ([align isEqualToString:@"vertical"]) {
+    [self verticalAppendChildList:[_node childNodes] ofNode:_node
+          toResponse:_response
+          inContext:_ctx];
+  }
+  else {
+    [self horizontalAppendChildList:[_node childNodes] ofNode:_node
+          toResponse:_response
+          inContext:_ctx];
+  }
+}
+
+@end /* ODR_XUL_tabcontrol */