Gtk2-Ex-FormFactory

 view release on metacpan or  search on metacpan

lib/Gtk2/Ex/FormFactory.pm  view on Meta::CPAN

	#-- And finally connect the changed signals - this need to be
	#-- done *after* showing the widgets. For containers ->show()
	#-- could trigger updates which cause object updates. Since
	#-- ->update() isn't called yet, this would invalidate the 
	#-- object's state.
	$self->connect_signals;
	
	1;
}

sub update {
	my $self = shift;
	$self->update_all;
}

sub ok {
	my $self = shift;

	$self->apply;
	$self->close;
	

lib/Gtk2/Ex/FormFactory/CheckButtonGroup.pm  view on Meta::CPAN

	$hbox->show_all;

	$self->set_gtk_check_buttons(\%gtk_check_buttons);
	$self->set_gtk_table($gtk_table);

	$self->connect_changed_signal_for_all_buttons;

	1;
}

sub update_selection {
	my $self = shift;
	
	$self->set_in_selection_update(1);
	
	my $selected_href     = $self->get_object_value;
	my $gtk_check_buttons = $self->get_gtk_check_buttons;
	
	while ( my ($value, $gtk_check_button) = each %{$gtk_check_buttons} ) {
		$gtk_check_button->set_active( $selected_href->{$value} );
	}

lib/Gtk2/Ex/FormFactory/Container.pm  view on Meta::CPAN

	my $child_gtk_widget = $child->get_gtk_parent_widget;
	my $gtk_widget       = $self->get_gtk_widget;
	
	$gtk_widget->remove($child_gtk_widget);

	$child->cleanup;

	1;	
}

sub update_all {
	my $self = shift;
	
	$self->SUPER::update(@_);
        foreach my $c ( @{$self->get_content} ) {
            $c->update_all;
        }
	
	1;
}

lib/Gtk2/Ex/FormFactory/Context.pm  view on Meta::CPAN

		      qq[       get_object_attr("object","attr")];
		            
	}

	my $proxy = $self->get_proxies_by_name->{$object_name}
		or die "Object '$object_name' not registered";

	return $proxy->get_attr($attr_name);
}

sub update_object_attr_widgets {
	my $self = shift;
	my ($object, $attr) = @_;

        my $object_attr = $self->norm_object_attr($object, $attr);

	$Gtk2::Ex::FormFactory::DEBUG &&
	    print "update_object_attr_widgets($object, $attr)\n";

	my $widgets_by_attr      = $self->get_widgets_by_attr;
	my $depend_trigger_href  = $self->get_depend_trigger_href;

lib/Gtk2/Ex/FormFactory/Context.pm  view on Meta::CPAN

                    $w->update;
                }
                foreach my $name ( keys %{$self->get_aggregated_by_href->{$update_object_attr}} ) {
                    $self->get_proxy($name)->update_by_aggregation;
                }
	}

	1;
}

sub update_object_widgets {
	my $self = shift;
	my ($name) = @_;

	$Gtk2::Ex::FormFactory::DEBUG &&
	    print "update_object_widgets($name)\n";

        $name = $self->norm_object_attr($name);

	my $object       = $self->get_object($name);
	my $change_state = defined $object ? '' : 'empty,inactive';

lib/Gtk2/Ex/FormFactory/Context.pm  view on Meta::CPAN

        foreach my $w ( values %{$widget_activity_href->{$name}} ) {
            $w->update($change_state);
        }

	my $update_hook = $self->get_update_hooks_by_object->{$name};
	&$update_hook($object) if $update_hook;

	1;
}

sub update_object_widgets_activity {
	my $self = shift;
	my ($name, $activity) = @_;

	warn "activity !(empty|inactive|active)"
		unless $activity =~ /^empty|inactive|active$/;

	$Gtk2::Ex::FormFactory::DEBUG &&
	    print "update_object_activity($name)\n";

	my $widgets_by_object = $self->get_widgets_by_object;

lib/Gtk2/Ex/FormFactory/ExecFlow.pm  view on Meta::CPAN


    if ( $job->get_type eq 'group' ) {
        foreach my $child_job ( @{$job->get_jobs} ) {
            $self->add_job_to_model($child_job, $iter);
        }
    }

    1;
}

sub update_job {
    my $self = shift;
    my ($job) = @_;

    my $path = $self->get_path_by_id_href->{$job->get_id};
    
    return if !$path;

    my $model = $self->get_gtk_widget->get_model;
    my $iter  = $model->get_iter($path);
    

lib/Gtk2/Ex/FormFactory/Proxy.pm  view on Meta::CPAN


	return $self;
}

sub get_object {
	my $self = shift;
	my $object = $self->{object};
	ref $object eq 'CODE' ? &$object() : $object;
}

sub update_by_aggregation {
	my $self = shift;
	
	my $aggregated_by = $self->get_aggregated_by;
	
	my $object = $self->get_attr($aggregated_by);
	
	$self->set_object($object);
	
	1;
}

lib/Gtk2/Ex/FormFactory/ToggleButton.pm  view on Meta::CPAN

	$self->get_gtk_widget->signal_connect_after (
	  toggled => sub {
	  	$self->update_button_label;
	  	$self->widget_value_changed;
	  },
	);
	
	1;
}

sub update_button_label {
	my $self = shift;
	
        return if $self->get_true_label eq $self->get_false_label;

        my $gtk_widget;
        if ( $self->get_stock ) {
            my $gtk_align  = ($self->get_gtk_parent_widget->get_children)[0];
            my $gtk_hbox   = ($gtk_align->get_children)[0];
            $gtk_widget = ($gtk_hbox->get_children)[1];
        }

lib/Gtk2/Ex/FormFactory/Widget.pm  view on Meta::CPAN

		die "Can't find sibling($sibling_idx)" unless $sibling;
		return $sibling;
	} else {
		return $self->get_form_factory->get_widget($name);
	}
}

#========================================================================
# Update this widgets resp. transfer the object's value to the Widget
#========================================================================
sub update {
	my $self = shift;
	my ($change_state) = @_;

        $change_state = '' if not defined $change_state;

	$Gtk2::Ex::FormFactory::DEBUG &&
	    print "update_widget(".$self->get_name.", $change_state)\n";

	#-- Check if widget updating is temoprarily disabled
	#-- (refer to widget_value_changed() for this)

lib/Gtk2/Ex/FormFactory/Widget.pm  view on Meta::CPAN


	#-- Set widget into normal update state
	$self->set_in_update(0);

	1;
}

#========================================================================
# Update this widget, and it's child; overwritten by Container class
#========================================================================
sub update_all {
	my $self = shift;
	
	#-- For a non Container widget, this is the same as update()
	$self->update(@_);
	
	1;
}

#========================================================================
# Update this widget's activity state: (in)sensitive / (in)visible
#========================================================================
sub update_widget_activity {
	my $self = shift;
	my ($active) = @_;
	
	$active = 0 if $active eq 'inactive';
	
	#-- Use the Widget's activity value over the given $active
	if ( defined $self->get_widget_activity ) {
		$active = $self->get_widget_activity;
	}



( run in 0.683 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )