PA_PictureEditor


version 2003


PA_PictureEditor (windowTitle; picture; pictSize) → PA_Handle

Parameter Type Description
windowTitle PA_Unichar* Title of the editor window
picture void * Pointer the picture data
pictSize long Size of aPicture
Function result PA_Handle Handle to the user-modified picture

Description

The routine PA_PictureEditor displays the Picture Editor (available in the Design environment) in a new window.

Pass the title you want to give to the window in windowTitle (C or Pascal strings, depending on the platform or on the previous call to PA_UseP/CStrings ). It will usually be the a picture name, or a document name.

Pass a pointer to the picture in Picture , and its size (in bytes) in pictSize .

The user can then customize the picture with the same tools available to the designer in the Design environment.

Once the user has closed the window, the routine returns a handle to the picture. This handle belongs to the plug-in. You should dispose of it once you have finished working with it, except if you give this handle to 4th Dimension using the PA_ReturnPictureHandle routine

Example

Modify a picture. The routine given to the 4D programmer has the following syntax:

newPicture:=superplug_EditPicture(oldPicture)

PluginMain simply calls this routine, passing it the PluginParameters:

   void EditPicture( PA_PluginParameters params )
   {
      PA_Handle h;
      PA_PictureInfo info;
      char* pt;
      long len;
   // Get the picture size
      len = PA_GetPictureParameter( params, 1, 0, 0 );
   // Make room for the new picture
      pt = malloc( len );
      if ( pt )
      {
   // get the picture parameter
         PA_GetPictureParameter( params, 1, pt, &info );
   // edit it
         h = PA_PictureEditor("Nice Picture", pt, len );
   // free memory
         free( pt );
   // return the new picture. We need to lock the handle to avoid fool pointer
         PA_ReturnPicture( params, PA_LockHandle( h ), PA_GetHandleSize( h ), info );
   // Unlock the handle
         PA_UnlockHandle( h );
   // Free memory
         PA_DisposeHandle( h );
      }
   }

See Also

No reference.

Error Handling

PA_GetLastError

always returns eER_NoErr