/*-*-C-*-
 * Generic object processing for Misc CSE
 */


#ifndef __defined_object_h
#define __defined_object_h


extern ObjectDefPtr object_find_def (int class);
extern ObjectDefPtr object_create_def
(
    int class,
    int size,
    RelocationTablePtr reloctab
);
extern ObjectPtr object_load (ObjectPtr object, ObjectTemplatePtr template);
extern char * object_save (
    TemplateInfoPtr tip,
    ObjectPtr object,
    ObjectTemplatePtr template
);
extern void object_size (
    ObjectPtr object,
    int *bodysize,
    int *stringsize,
    int *msgsize,
    int *numrelocs
);
extern void object_free (ObjectPtr object);

extern error * object_init_dbox (ObjectPtr object);
extern error * object_open_dbox (ObjectPtr object, Bool display);
extern error * object_close_dbox (ObjectPtr object);
extern error * object_reopen_dbox (WindowPtr win, ObjectPtr object);
extern error * object_dbox_mouse_click (
    MouseClickPtr mouse,
    unsigned int modifiers,
    ObjectPtr object
);
extern error * object_dbox_key_pressed (
    ObjectPtr object,
    KeyPressPtr key,
    Bool *consumed
);
extern error * object_dbox_update_window_name (
    ObjectPtr object,
    char *name
);
extern error * object_object_drop (
    ObjectPtr object,
    DropDetailsPtr dropdef,
    ObjectClass class,
    char *name
);

extern error * object_cm_init (ObjectPtr object);
extern error * object_cm_apply (ObjectPtr object);
extern error * object_cm_includenone (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);
extern error * object_cm_colour (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_cd_init (ObjectPtr object);
extern error * object_cd_apply (ObjectPtr object);
extern error * object_cd_colour_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_fisa_create_menu (void);
extern error * object_fi_filetype_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_fd_init (ObjectPtr object);
extern error * object_fd_initial_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);
extern error * object_fd_allowsystem (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_fm_init (ObjectPtr object);
extern error * object_fm_ticked_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);
extern error * object_fm_allowsystem (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_ib_init (ObjectPtr object);
extern error * object_ib_create_menu (void);
extern error * object_ib_position_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_pd_init (ObjectPtr object);
extern error * object_pd_apply (ObjectPtr object);
extern error * object_pd_pagerange (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_pi_init (ObjectPtr object);
extern error * object_pi_apply (ObjectPtr object);
extern error * object_pi_create_menu (void);
extern error * object_pi_licence_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_sa_init (ObjectPtr object);
extern error * object_sa_filetype_popup (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);

extern error * object_sc_apply (ObjectPtr object);

extern error * object_uk_init (ObjectPtr object);
extern error * object_uk_apply (ObjectPtr object);
extern error * object_uk_offset (
    ObjectPtr object,
    int icon,
    MouseClickPtr mouse
);


#endif
