Re: gtkentry subclass
- From: Adrian Feiguin <feiguin magnet fsu edu>
- To: "Padraig O'Briain" <Padraig Obriain Sun COM>
- Cc: gtk-devel-list gnome org
- Subject: Re: gtkentry subclass
- Date: Wed, 29 May 2002 13:21:05 -0400 (EDT)
Hi Padraig,
Let me see: You overload part of the atk class methods in:
static void
gail_window_class_init (GailWindowClass *klass)
{
GailWidgetClass *widget_class;
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
class->get_name = gail_window_get_name;
class->get_parent = gail_window_get_parent;
class->get_index_in_parent = gail_window_get_index_in_parent;
class->ref_state_set = gail_window_ref_state_set;
class->initialize = gail_window_real_initialize;
but you also initialize some in the function:
static void
atk_component_interface_init (AtkComponentIface *iface)
{
g_return_if_fail (iface != NULL);
iface->get_extents = gail_window_get_extents;
iface->get_size = gail_window_get_size;
}
Can you tell me the difference? I guess the first overload the previous
interface. What's the difference between the parent class interface, and
the child class interface? Thanks a lot!
<ADRIAN>
On Wed, 29 May 2002, Padraig O'Briain wrote:
> Adrain,
>
> I wanted to do a similar thing in gail.
>
> I have a GailWidget class which implements AtkComponent interface and a
> GailWindow class which derives from GailWidget. I wanted to provide a different
> implementation in GailWindow for a couple of AtkComponent methods.
>
> Hopefully, the code in gail/gail/gailwindow.c will show you how I did it.
>
> Padraig
>
> >
> > I'm trying to create a gtkentry subclass that would allow to justify the
> > text (left/right--for numbers/centered). Everything would be much easier
> > if I could just simply overload the "adjust_scroll" function (if it were
> > part of the class methods). Instead, I have to practivally copy all the
> > gtkentry code and overload the gtkeditable interface. However I don't
> > understand the new strategy of adding interfaces:
> >
> > static const GInterfaceInfo editable_info =
> > {
> > (GInterfaceInitFunc) gtk_entry_editable_init, /*
> > interface_init */
> > NULL, /*
> > interface_finalize */
> > NULL /*
> > interface_data */
> > };
> >
> > g_type_add_interface_static (entry_type,
> > GTK_TYPE_EDITABLE,
> > &editable_info);
> >
> > I want to overload the methods:
> >
> > static void
> > gtk_entry_editable_init (GtkEditableClass *iface)
> > {
> > iface->do_insert_text = gtk_entry_insert_text;
> > iface->do_delete_text = gtk_entry_delete_text;
> > iface->insert_text = gtk_entry_real_insert_text;
> > iface->delete_text = gtk_entry_real_delete_text;
> > iface->get_chars = gtk_entry_get_chars;
> > iface->set_selection_bounds = gtk_entry_set_selection_bounds;
> > iface->get_selection_bounds = gtk_entry_get_selection_bounds;
> > iface->set_position = gtk_entry_real_set_position;
> > iface->get_position = gtk_entry_get_position;
> > }
> >
> > When I just copy and paste (and rename) the code from gtkentry, it keeps
> > calling the original gtkentry functions before calling the new ones. Any
> > hits? Thanks a lot!
> > <ADRIAN>
> >
> > _______________________________________________
> > gtk-devel-list mailing list
> > gtk-devel-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-devel-list
>
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]