Yes, I have seen that in the Nim manual.
Unfortunately such a concept construction is a bit difficult because all the
code is automatically generated by use of gobject-introspection. Maybe I will
make one manual test case to see if it would work. For now I have broken down
the procs into multiple instances in the macro:
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: CellEditable; path: string)): culong
{.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: SpinButton; path: string)): culong
{.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: ComboBox; path: string)): culong {.discardable.}
=
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: SearchEntry; path: string)): culong
{.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: ComboBoxText; path: string)): culong
{.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: AppChooserButton; path: string)): culong
{.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
proc connect_for_signal_editing_started2(self: CellRenderer; p: proc
(self: CellRenderer; editable: Entry; path: string)): culong {.discardable.} =
scediting_started(self, connect_for_signal_cdecl_editing_started2, nil)
connect_for_signal_editing_started2(r, handler2)
Seems to work, due to overloading the compiler can select a proc definition
which matches for handler2.
At least the test case which a user posted compiles now -- I have to wait for
user reply:
[https://github.com/StefanSalewski/gintro/issues/14#issuecomment-330171244](https://github.com/StefanSalewski/gintro/issues/14#issuecomment-330171244)