pub trait CellRendererImplExt: ObjectSubclass {
    fn parent_request_mode(&self, renderer: &Self::Type) -> SizeRequestMode;
    fn parent_preferred_width<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        widget: &P
    ) -> (i32, i32);
    fn parent_preferred_width_for_height<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        widget: &P, 
        height: i32
    ) -> (i32, i32);
    fn parent_preferred_height<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        widget: &P
    ) -> (i32, i32);
    fn parent_preferred_height_for_width<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        widget: &P, 
        width: i32
    ) -> (i32, i32);
    fn parent_aligned_area<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        widget: &P, 
        flags: CellRendererState, 
        cell_area: &Rectangle
    ) -> Rectangle;
    fn parent_render<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        cr: &Context, 
        widget: &P, 
        background_area: &Rectangle, 
        cell_area: &Rectangle, 
        flags: CellRendererState
    );
    fn parent_activate<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        event: Option<&Event>, 
        widget: &P, 
        path: &str, 
        background_area: &Rectangle, 
        cell_area: &Rectangle, 
        flags: CellRendererState
    ) -> bool;
    fn parent_start_editing<P: IsA<Widget>>(
        &self, 
        renderer: &Self::Type, 
        event: Option<&Event>, 
        widget: &P, 
        path: &str, 
        background_area: &Rectangle, 
        cell_area: &Rectangle, 
        flags: CellRendererState
    ) -> Option<CellEditable>;
    fn parent_editing_canceled(&self, renderer: &Self::Type);
    fn parent_editing_started(
        &self, 
        renderer: &Self::Type, 
        editable: &CellEditable, 
        path: &str
    );
}