Author: spadkins
Date: Fri Jun 16 11:16:51 2006
New Revision: 6513

Modified:
   p5ee/trunk/App-Widget/lib/App/Widget.pm

Log:
add theme support to all widgets via get_theme_value()

Modified: p5ee/trunk/App-Widget/lib/App/Widget.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget.pm     (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget.pm     Fri Jun 16 11:16:51 2006
@@ -448,6 +448,39 @@
     return($html_attribs);
 }
 
+sub get_theme_value {
+    &App::sub_entry if ($App::trace);
+    my ($self, $var, $default) = @_;
+
+    my $theme_values = $self->{theme_values};
+    if (!defined $theme_values) {
+        my $context = $self->{context};
+        my $theme = $self->{theme};
+        if (!$theme) {
+            $theme = $context->get_user_option("theme") || "default";
+            $self->{theme} = $theme if ($theme);
+        }
+        my $theme_domain = $context->value_domain("theme.$theme",
+            class => "App::ValueDomain::Repository,
+            repository => "default",
+            table => "value_domain",
+            params => { name => "theme.$theme" },
+            valuecolumn => "value",
+            labelcolumn => "label");
+        $theme_values = $theme_domain->values();
+        $self->{theme_values} = $theme_values;
+    }
+    my $name = $self->{name};
+    my $class = ref($self);
+    my $value = $theme_values->{"$name.$var"};
+    $value = $theme_values->{"$class.$var"} if (!defined $value);
+    $value = $theme_values->{$var} if (!defined $value);
+    $value = $default if (!defined $value && defined $default);
+
+    &App::sub_exit($value) if ($App::trace);
+    return($value);
+}
+
 sub html {
     my ($self) = @_;
     return $self->html_escape($self->{name});

Reply via email to