1
edit
Changes
→Sample code
</ul>
== Pattern diagram ==
// so long as sun.servlet.* must run on older JDK 1.02 JVMs which
// don't include that support.
*****************************************************************************************************************************
*****************************************************************************************************************************
** Implementing the Clonable Interface **
*****************************************************************************************************************************
*****************************************************************************************************************************
public class Cookie implements Cloneable {
*
*/
************************************************************************************************************************************************************************************************************************************************************ Overriding the Clone Method and calling the super class Clone method ************************************************************************************************************************************************************************************************************************************************************
public Object clone() {
try {
#include "imap_menu_funcs.h"
*****************************************************************************************************************************
*****************************************************************************************************************************
** Object_t Sturcture Definition on the header file **
*****************************************************************************************************************************
*****************************************************************************************************************************
struct Object_t {
ObjectClass_t *class;
gchar *blur;
};
typedef void (*MoveSashFunc_t)(Object_t*, gint, gint);
typedef void (*OutputFunc_t)(gpointer, const char*, ...);
struct AreaInfoDialog_t;
struct ObjectClass_t {
};
Object_t *object_ref(Object_t *obj);
void object_unref(Object_t *obj);
#define object_get_dimensions(obj, x, y, width, height) \
((obj)->class->get_dimensions((obj), (x), (y), (width), (height)))
#define object_normalize(obj) \
((obj)->class->normalize(obj))
#define object_resize(obj, per_x, per_y) \
((obj)->class->resize((obj), (per_x), (per_y)))
#define object_update(obj, data) \
((obj)->class->update((obj), (data)))
#define object_update_info_widget(obj, data) \
((obj)->class->update_info_widget((obj), (data)))
#define object_fill_info_tab(obj, data) \
((obj)->class->fill_info_tab((obj), (data)))
#define object_get_stock_icon_name(obj) \
((obj)->class->get_stock_icon_name())
typedef struct {
Object_t *obj;
void (*set_xy)(Object_t *obj, guint state, gint x, gint y);
} ObjectFactory_t;
gboolean object_on_button_press(GtkWidget *widget, GdkEventButton *event,
gpointer data);
typedef struct {
GList *list;
} ObjectListCallback_t;
struct ObjectList_t {
};
ObjectList_t *make_object_list (void);
void object_list_destruct(ObjectList_t *list);
ObjectList_t *object_list_copy(ObjectList_t *des, ObjectList_t *src);
ObjectList_t *object_list_append_list(ObjectList_t *des, ObjectList_t *src);
void object_list_append(ObjectList_t *list, Object_t *object);
void object_list_prepend(ObjectList_t *list, Object_t *object);
Object_t *object_list_near_sash(ObjectList_t *list, gint x, gint y,
MoveSashFunc_t *sash_func);
gint object_list_cut(ObjectList_t *list);
void object_list_copy_to_paste_buffer(ObjectList_t *list);
void object_list_paste(ObjectList_t *list);
void object_list_remove_all(ObjectList_t *list);
void object_list_delete_selected(ObjectList_t *list);
void object_list_move_to_front(ObjectList_t *list);
void object_list_send_to_back(ObjectList_t *list);
void object_list_write_csim(ObjectList_t *list, gpointer param,
OutputFunc_t output);
void object_list_write_ncsa(ObjectList_t *list, gpointer param,
OutputFunc_t output);
typedef void (*ObjectListCallbackFunc_t)(Object_t*, gpointer);
gpointer object_list_add_changed_cb(ObjectList_t *list,
ObjectListCallbackFunc_t func,
ObjectListCallbackFunc_t func,
gpointer data);
void object_list_remove_add_cb(ObjectList_t *list, gpointer id);
void object_list_remove_select_cb(ObjectList_t *list, gpointer id);
void object_list_remove_move_cb(ObjectList_t *list, gpointer id);
void object_list_remove_geometry_cb(ObjectList_t *list, gpointer id);
#define object_list_clear_changed(list) ((list)->changed = FALSE)
#define object_list_set_changed(list, ischanged) \
((list)->changed = (ischanged))
#define object_list_get_changed(list) ((list)->changed)
void clear_paste_buffer(void);
gpointer paste_buffer_add_add_cb(ObjectListCallbackFunc_t func, gpointer data);
gpointer data);
ObjectList_t *get_paste_buffer(void);
void do_object_locked_dialog(void);
#endif /* _IMAP_OBJECT_H */
</pre>
#include "config.h"
#include <gtk/gtk.h>
#include "imap_commands.h"
#include "imap_default_dialog.h"
#include "imap_object.h"
#include "imap_string.h"
static Object_t* object_factory_create_object (ObjectFactory_t *factory,
gint x, gint y);
typedef struct {
} ObjectListCB_t;
static ObjectList_t *_paste_buffer;
static gpointer
object_list_callback_add(ObjectListCallback_t *list,
ObjectListCallbackFunc_t func, gpointer data)
{
}
static void
object_list_callback_remove(ObjectListCallback_t *list, gpointer id)
{
}
static void
object_list_callback_call(ObjectListCallback_t *list, Object_t *obj)
{
}
gpointer
object_list_add_changed_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_update_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_add_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_remove_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_select_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_move_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
object_list_add_geometry_cb(ObjectList_t *list, ObjectListCallbackFunc_t func,
gpointer data)
{
}
gpointer
paste_buffer_add_add_cb(ObjectListCallbackFunc_t func, gpointer data)
{
}
gpointer
paste_buffer_add_remove_cb(ObjectListCallbackFunc_t func, gpointer data)
{
}
void
object_list_remove_add_cb(ObjectList_t *list, gpointer id)
{
}
void
object_list_remove_select_cb(ObjectList_t *list, gpointer id)
{
}
void
object_list_remove_remove_cb(ObjectList_t *list, gpointer id)
{
}
void
object_list_remove_move_cb(ObjectList_t *list, gpointer id)
{
}
void
object_list_remove_geometry_cb(ObjectList_t *list, gpointer id)
{
}
Object_t*
object_init(Object_t *obj, ObjectClass_t *class)
{
}
static void
object_destruct(Object_t *obj)
{
}
Object_t*
object_ref(Object_t *obj)
{
}
void
object_unref(Object_t *obj)
{
}
************************************************************************************************************************************************************************************************************************************************************ Implementing a Clone method to return a new instance of Object_t ************************************************************************************************************************************************************************************************************************************************************
Object_t*
object_clone(Object_t *obj)
object_copy(Object_t *src, Object_t *des)
{
}
Object_t*
object_assign(Object_t *obj, Object_t *des)
{
}
void
object_draw(Object_t *obj, GdkWindow *window)
{
}
void
object_edit(Object_t *obj, gboolean add)
{
}
void
object_select(Object_t *obj)
{
}
void
object_unselect(Object_t *obj)
{
}
void
object_move(Object_t *obj, gint dx, gint dy)
{
}
void
object_remove(Object_t *obj)
{
}
void
object_lock(Object_t *obj)
{
}
void
object_unlock(Object_t *obj)
obj->locked = FALSE;
}
void
object_set_url(Object_t *obj, const gchar *url)
{
}
void
object_set_target(Object_t *obj, const gchar *target)
{
}
void
object_set_comment(Object_t *obj, const gchar *comment)
{
}
void
object_set_mouse_over(Object_t *obj, const gchar *mouse_over)
{
}
void
object_set_mouse_out(Object_t *obj, const gchar *mouse_out)
object_set_focus(Object_t *obj, const gchar *focus)
{
}
void
object_set_blur(Object_t *obj, const gchar *blur)
{
}
gint
object_get_position_in_list(Object_t *obj)
{
}
void
object_emit_changed_signal(Object_t *obj)
{
}
void
object_emit_geometry_signal(Object_t *obj)
{
}
void
object_emit_update_signal(Object_t *obj)
{
}
void
do_object_locked_dialog(void)
{
}
Object_t*
object_factory_create_object(ObjectFactory_t *factory, gint x, gint y)
{
}
static gboolean
button_motion(GtkWidget *widget, GdkEventMotion *event,
ObjectFactory_t *factory)
{
}
gboolean
object_on_button_press(GtkWidget *widget, GdkEventButton *event, gpointer data)
{
}
ObjectList_t*
make_object_list(void)
{
}
void
object_list_destruct(ObjectList_t *list)
{
}
ObjectList_t*
object_list_append_list(ObjectList_t *des, ObjectList_t *src)
{
}
ObjectList_t*
object_list_copy(ObjectList_t *des, ObjectList_t *src)
{
}
void
object_list_append(ObjectList_t *list, Object_t *object)
{
}
void
object_list_prepend(ObjectList_t *list, Object_t *object)
{
}
void
object_list_insert(ObjectList_t *list, gint position, Object_t *object)
{
}
void
object_list_remove(ObjectList_t *list, Object_t *object)
{
}
void
object_list_remove_link(ObjectList_t *list, GList *link)
{
}
void
object_list_update(ObjectList_t *list, Object_t *object)
{
}
void
object_list_draw(ObjectList_t *list, GdkWindow *window)
{
}
void
object_list_draw_selected(ObjectList_t *list, GdkWindow *window)
{
}
Object_t*
object_list_find(ObjectList_t *list, gint x, gint y)
{
}
Object_t*
object_list_near_sash(ObjectList_t *list, gint x, gint y,
MoveSashFunc_t *sash_func)
{
}
void
object_list_remove_all(ObjectList_t *list)
{
}
void
clear_paste_buffer(void)
{
}
ObjectList_t*
get_paste_buffer(void)
{
}
gint
object_list_cut(ObjectList_t *list)
{
}
void
object_list_copy_to_paste_buffer(ObjectList_t *list)
{
}
void
object_list_paste(ObjectList_t *list)
{
}
void
object_list_delete_selected(ObjectList_t *list)
{
}
void
object_list_edit_selected(ObjectList_t *list)
{
}
gint
object_list_select_all(ObjectList_t *list)
{
}
void
object_list_select_next(ObjectList_t *list)
{
}
void object_list_select_prev(ObjectList_t *list)
{
}
gint
object_list_select_region(ObjectList_t *list, gint x, gint y, gint width,
gint height)
{
}
gint
object_list_deselect_all(ObjectList_t *list, Object_t *exception)
{
}
gint
object_list_nr_selected(ObjectList_t *list)
{
}
void
object_list_resize(ObjectList_t *list, gint percentage_x, gint percentage_y)
{
}
static void
object_list_swap_prev(ObjectList_t *list, GList *p)
{
}
static void
object_list_swap_next(ObjectList_t *list, GList *p)
{
}
void
object_list_move_selected(ObjectList_t *list, gint dx, gint dy)
{
}
void
object_list_move_up(ObjectList_t *list, Object_t *obj)
{
}
void
object_list_move_down(ObjectList_t *list, Object_t *obj)
{
}
object_list_move_selected_up(ObjectList_t *list)
{
}
void
object_list_move_selected_down(ObjectList_t *list)
{
}
void
object_list_move_to_front(ObjectList_t *list)
{
}
void
object_list_send_to_back(ObjectList_t *list)
{
}
static void
write_xml_attrib(const gchar *attrib, const gchar *value,
OutputFunc_t output)
{
}
void
object_list_write_csim(ObjectList_t *list, gpointer param, OutputFunc_t output)
{
}
void
object_list_write_cern(ObjectList_t *list, gpointer param, OutputFunc_t output)
{
}
void
object_list_write_ncsa(ObjectList_t *list, gpointer param, OutputFunc_t output)
{
}
</pre>
== Related Patterns ==
<ul>
<li>[[http://zenit.senecac.on.ca/wiki/index.php/CompositeComposite]]</li><br><li>[[http://zenit.senecac.on.ca/wiki/index.php/Abstract_Factory Abstract Factory]]</li><br><li>[[http://zenit.senecac.on.ca/wiki/index.php/Decorator Decorator]]</li><br>
<ul>