Index: image_fupload_imagefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/image_fupload/image_fupload_imagefield/image_fupload_imagefield_widget.inc,v
retrieving revision 1.9
diff -u -r1.9 image_fupload_imagefield_widget.inc
--- image_fupload_imagefield_widget.inc	21 Mar 2009 18:37:08 -0000	1.9
+++ image_fupload_imagefield_widget.inc	24 Mar 2009 20:43:04 -0000
@@ -14,16 +14,10 @@
 module_load_include('inc', 'imagefield', 'imagefield_widget');
 
 /**
- * @defgroup "FileField widget settings callbacks"
- * @{
- *
- * These callbacks are invoked by filefield_widget_settings. Their
- * return values are merged with and will override filefields' widget
- * settings callback's return values.
+ * Implementation of hook_widget_settings($op = 'form').
  */
-function image_fupload_imagefield_widget_widget_settings_form($widget) {
-  $form = array();
-  $form = imagefield_widget_widget_settings_form($widget);
+function image_fupload_imagefield_widget_settings_form($widget) {
+  $form = module_invoke('imagefield', 'widget_settings_form', $widget);
   $node_type = str_replace("-", "_", arg(3));
   
   // warn user to only use this widget once per node type  
@@ -93,15 +87,23 @@
   return $form;
 }
 
-function image_fupload_imagefield_widget_widget_settings_save($widget) {
+/**
+ * Implementation of hook_widget_settings($op = 'save').
+ */
+function image_fupload_imagefield_widget_settings_save($widget) {
   // elements which should be saved for this field (settings)
   $settings = array('fupload_mode', 'fupload_previewlist_img_attributes', 'fupload_title_replacements', 'fupload_previewlist_field_settings', 'fupload_previewlist_redirecturl');
   _fupload_imagepreview_settings('write', $widget['type_name'], array('fieldname' => $widget['field_name'], 'preview_preset' => $widget['fupload_previewlist_img']));
-  
-  return array_merge(imagefield_widget_widget_settings_save($widget), $settings);  
+
+  return array_merge(module_invoke('imagefield', 'widget_settings_save', $widget), $settings);  
 }
 
-function image_fupload_imagefield_widget_widget_settings_validate($widget) {
+/**
+ * Implementation of hook_widget_settings($op = 'validate').
+ */
+function image_fupload_imagefield_widget_settings_validate($widget) {
+  module_invoke('imagefield', 'widget_settings_validate', $widget);
+
   // check some dependencies
   if (isset($widget['fupload_mode']) && $widget['fupload_mode'] == "multiple") {
     $allowed_fields = array('imagefield_title', 'imagefield_alt', 'imagefield_description');
@@ -114,27 +116,6 @@
 }
 
 /**
- * @defgroup "FileField widget element callbacks.
- * @{
- *
- * The call backs are called by form elements that leverage the
- * filefield_widget_value and filefield_widget_process callbacks.
- * They will be called after the filefield callbacks and their
- * return values will be merged with the filefield callback's.
- */
-function image_fupload_imagefield_widget_widget_value($element, $edit = FALSE) {
-  return imagefield_widget_widget_value($element, $edit);
-}
-
-function image_fupload_imagefield_widget_widget_process($element, $edit, &$form_state, $form) {
-  return imagefield_widget_widget_process($element, $edit, $form_state, $form);
-}
-
-/**
- * @} End defgroup "FileField widget element callbacks."
- */
-
-/**
 * Helper function
 * Creates a list of CCK fields depending on node type
 */
Index: image_fupload_imagefield.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/image_fupload/image_fupload_imagefield/image_fupload_imagefield.module,v
retrieving revision 1.30
diff -u -r1.30 image_fupload_imagefield.module
--- image_fupload_imagefield.module	21 Mar 2009 08:40:40 -0000	1.30
+++ image_fupload_imagefield.module	24 Mar 2009 20:43:04 -0000
@@ -433,8 +433,9 @@
  */
 function image_fupload_imagefield_elements() {
   $elements = array();
-  $elements_imagefield = imagefield_elements();
+  $elements_imagefield = module_invoke('imagefield', 'elements');
   $elements['image_fupload_imagefield_widget'] = $elements_imagefield['imagefield_widget'];
+
   return $elements;
 }
 
@@ -448,10 +449,6 @@
       'field types' => array('image', 'filefield'),
       'multiple values' => CONTENT_HANDLE_CORE,
       'callbacks' => array('default value' => CONTENT_CALLBACK_CUSTOM),
-      // callback for dynamic filefield widgets to determine
-      // if this widget is appropriate for a file type.
-      'suitability callback' => 'imagefield_handles_file',
-      // description to use on forms to describe this widget.
       'description' => t('An edit widget for image files being uploaded via Image FUpload, including a preview of the image and editing options.'),
     ),
   );
@@ -459,11 +456,18 @@
 
 /**
  * Implementation of CCK's hook_widget_settings().
- *
- * Delegated to filefield.
  */
 function image_fupload_imagefield_widget_settings($op, $widget) {
-  return filefield_widget_settings($op, $widget);
+  module_load_include('inc', 'image_fupload_imagefield', 'image_fupload_imagefield_widget');
+
+  switch ($op) {
+    case 'form':
+      return image_fupload_imagefield_widget_settings_form($widget);
+    case 'validate':
+      return image_fupload_imagefield_widget_settings_validate($widget);
+    case 'save':
+      return image_fupload_imagefield_widget_settings_save($widget);
+  }
 }
 
 /**
@@ -472,20 +476,11 @@
  * Assign default properties to item and delegate to filefield.
  */
 function image_fupload_imagefield_widget($form, $form_state, $field, $items, $delta = 0) {
-  // @todo: use CCK's default value callback.
-  // add default values to items.
-  if (empty($items[$delta])) {
-    $items[$delta] = array('alt' => '', 'title' => '');
-  }
-  $element = filefield_widget($form, $form_state, $field, $items, $delta);
-
-  $element['#upload_validators'] += imagefield_widget_upload_validators($field);
-  
-  return $element;
+  $element = module_invoke('imagefield', 'widget', $form, $form_state, $field, $items, $delta);
 }
 
 /**
- * Interact on changes to CCK ImageFields
+ * Interact on changes to CCK ImageFields.
  */
 function image_fupload_imagefield_content_fieldapi($op, $field, $new_instance = NULL) {
   $image_node_types = variable_get('image_node_types', array());
