rename substitute --> graft

rename substitute --> graft

substitute should replace nodes with trees
I commented on this

-- Modeling Opetopes
-- here is Eric's editor: http://sma.epfl.ch/~finster/opetope/opetope.html
--
-- Note: Kock et al. use a similar scheme, where
--          - dots    <-->   lines
--          - spheres <-->   dots
--          - lines disappear
--          -                spheres appear

-- Note: In Eric's new work (at IAS) there are no
--       dots any more, instead he uses 'output cards', so
--          - (output) cards   <-->  lines
--          - space between stacked cards <--> output cards
--          - lines disappear
--          -                (regular) cards appear

import "../tests/Nat.prg"

data Dir :: *2 where
  Hor :: Dir
  Ver :: Dir

-- define the Tree kind, a rose tree
-- note: we may need a two-level kind, since we need to track disjointness
--       of subtrees
-- todo: later we may want to have a label kind parameter too

data Tree :: Dir ~> *1 where
  Unit :: Tree Ver
  Ni :: Tree Hor
  Fork :: Tree d ~> Tree Hor ~> Tree Hor
 deriving syntax (tr) List(Ni, Fork) Unit(Unit)

-- make it singleton

data Tree' :: Tree d ~> * where
  In :: Tree' ()tr
  Fork :: Tree' head -> Tree' tail -> Tree' [head; tail]tr
  Done :: Tree' []tr
 deriving syntax (ar) List(Done, Fork) Unit(In) -- "arbre"
-- http://www.papoulipoesique.com/wp-content/uploads/2013/06/arbre.jpg

-- define a proposition for subtrees
-- to be checked: TakeHead must ensure that all the node is consumed

prop Subtree :: Tree d ~> Tree e ~> * where
  UnitSub :: Subtree ()tr tr
  BothNil :: Subtree []tr []tr
  TakeHead :: Subtree head head' -> Subtree tail tail' -> Subtree [head; tail]tr [head'; tail']tr

-- now we can stack cards (these are zooms in Kock et al. parlance)

data Stack :: Tree d ~> Tree e ~> * where
  Empty :: Corolla tr => Tree' tr -> Stack tr ()tr
  SubDone :: Stack ()tr []tr
  Subdivision :: Stack ()tr sub -> Stack tr rest -> Stack tr [sub; rest]tr
  Encompass :: Subtree consumed tr => Stack consumed prod -> Stack tr prod
  -- the following three grab a node (and possibly its offsprings) and incorporate it into a single card
  -- [perhaps, note: there may be other cards stacked on this one]
  NodeDone :: Stack []tr [()tr]tr
  Pick :: {- EntireNode => -} Stack head prodhead -> Stack tail prodtail -> Stack [head; tail]tr [prodhead; prodtail]tr
  Exclude :: {- EntireNode => -} Stack tail prod -> Stack [()tr; tail]tr prod
  -- we need a way to sequence cards
  -- MultiCard :: ??? Disjoint a b 0 => Subtree a -> Subtree b -> Stack tr a [proda, prodb]tr

  On :: (Subtree tr' tr, Pointers 1t at out) => Stack tr' out' -> Stack tr out -> Tree' at -> Stack tr {graft out' at out}

-- it remains to define corollas

prop Corolla :: Tree d ~> * where
  None' :: Corolla []tr
  One' :: Corolla tail -> Corolla [()tr; tail]tr

--  o   --->  |
--  |         |

lolliCell :: Stack []tr ()tr
lolliCell = Empty Done

--  |         |
--  o   --->  |
--  |         |

dolliCell :: Stack [()tr]tr ()tr
dolliCell = Empty $ Fork In Done

--              |
--  [o]   --->  o
--   |          |

lolliFrame :: Stack []tr [()tr]tr
lolliFrame = Encompass NodeDone

--   |          |
--  [o]   --->  o
--   |          |

dolliFrame :: Stack [()tr]tr [()tr]tr
dolliFrame = Encompass (Exclude NodeDone)

--   |          |
--   |          o
-- [[o]]  --->  |
--   |          o
--   |          |

stacked :: Stack [()tr]tr [[()tr]tr]tr
stacked = (dolliFrame `On` dolliFrame) (In `Fork` Done)

--    |           o   |
-- | [o] |  --->   \ /
-- | [|] |          o
--    |             |

--cyclops :: Stack [()tr]tr [[]tr, ()tr]tr
--cyclops = Subdivision SubDone (Exclude NodeDone)

-- Stacking, Valence, Affine subtree, Substitute at an affine position

-- counting Units in a tree

valence :: Tree d ~> Nat
{valence []tr} = 0t
{valence [head; tail]tr} = {plus {valence head} {valence tail}}
{valence ()tr} = 1t

-- counting siblings of a tree

nodeValence :: Tree d ~> Nat
{nodeValence []tr} = 0t
{nodeValence [head; tail]tr} = (1+{nodeValence tail})t

-- nodeValenceAt: given a (multi)pointer, determine the node valences at those positions
--               WHERE     IN
nodeValenceAt :: Tree d ~> Tree e ~> Nat
{nodeValenceAt ()tr tree} = {nodeValence tree}
{nodeValenceAt []tr []tr} = 0t
{nodeValenceAt [head'; tail']tr [head; tail]tr} = {plus {nodeValenceAt head' head} {nodeValenceAt tail' tail}}

-- a pointer is a valence-1 subtree of a tree
-- it is used to mark a unit in a tree where substitution will occur
--
prop Pointers :: Nat ~> Tree d ~> Tree e ~> * where
  Finger :: Pointers 1t ()tr ()tr
  Finished :: Pointers 0t []tr []tr
  ThisWay :: Pointers 1t head' head -> Pointers n tail' tail -> Pointers (1+n)t [head'; tail']tr [head; tail]tr
  ElseWhere :: Pointers n tail' tail -> Pointers n [[]tr; tail']tr [head; tail]tr

-- http://en.wikipedia.org/wiki/Grafting
--
-- graft WHAT      WHERE     IN
graft :: Tree d ~> Tree e ~> Tree f ~> Tree f
{graft what ()tr ()tr} = what
{graft what []tr tr} = tr
{graft what [head'; tail']tr [head; tail]tr} = [{graft what head' head}; {graft what tail' tail}]tr

{- NOTE: we have an Omega bug here:

prompt> :norm {graft []tr ()tr ()tr}
Normalizes to:
  []tr

prompt> :kind []tr
[]tr :: Tree Hor  = []tr

prompt> :kind {graft []tr ()tr ()tr}
{graft []tr ()tr ()tr} :: Tree Ver  = {graft []tr ()tr ()tr}

... BUT: Hor /= Ver :-(
-}

-- substitution: replace a pointed node (of valence n) in a tree with an
-- other tree of (valence n) -- TODO

-- Modeling Opetopes
-- here is Eric's editor: http://sma.epfl.ch/~finster/opetope/opetope.html
--
-- Note: Kock et al. use a similar scheme, where
--          - dots    <-->   lines
--          - spheres <-->   dots
--          - lines disappear
--          -                spheres appear

-- Note: In Eric's new work (at IAS) there are no
--       dots any more, instead he uses 'output cards', so
--          - (output) cards   <-->  lines
--          - space between stacked cards <--> output cards
--          - lines disappear
--          -                (regular) cards appear

import "../tests/Nat.prg"

data Dir :: *2 where
  Hor :: Dir
  Ver :: Dir

-- define the Tree kind, a rose tree
-- note: we may need a two-level kind, since we need to track disjointness
--       of subtrees

data Tree :: Dir ~> *1 where
  Unit :: Tree Ver
  Ni :: Tree Hor
  Fork :: Tree d ~> Tree Hor ~> Tree Hor
 deriving syntax (tr) List(Ni, Fork) Unit(Unit)

-- make it singleton

data Tree' :: Tree d ~> * where
  In :: Tree' ()tr
  Fork :: Tree' head -> Tree' tail -> Tree' [head; tail]tr
  Done :: Tree' []tr
 deriving syntax (ar) List(Done, Fork) Unit(In) -- "arbre"
-- http://www.papoulipoesique.com/wp-content/uploads/2013/06/arbre.jpg

-- define a proposition for subtrees
-- to be checked: TakeHead must ensure that all the node is consumed

prop Subtree :: Tree d ~> Tree e ~> * where
  UnitSub :: Subtree ()tr tr
  BothNil :: Subtree []tr []tr
  TakeHead :: Subtree head head' -> Subtree tail tail' -> Subtree [head; tail]tr [head'; tail']tr

-- now we can stack cards (these are zooms in Kock et al. parlance)

data Stack :: Tree d ~> Tree e ~> * where
  Empty :: Corolla tr => Tree' tr -> Stack tr ()tr
  SubDone :: Stack ()tr []tr
  Subdivision :: Stack ()tr sub -> Stack tr rest -> Stack tr [sub; rest]tr
  Encompass :: Subtree consumed tr => Stack consumed prod -> Stack tr prod
  -- the following three grab a node (and possibly its offsprings) and incorporate it into a single card
  -- [perhaps, note: there may be other cards stacked on this one]
  NodeDone :: Stack []tr [()tr]tr
  Pick :: {- EntireNode => -} Stack head prodhead -> Stack tail prodtail -> Stack [head; tail]tr [prodhead; prodtail]tr
  Exclude :: {- EntireNode => -} Stack tail prod -> Stack [()tr; tail]tr prod
  -- we need a way to sequence cards
  -- MultiCard :: ??? Disjoint a b 0 => Subtree a -> Subtree b -> Stack tr a [proda, prodb]tr

  On :: (Subtree tr' tr, Pointers 1t at out) => Stack tr' out' -> Stack tr out -> Tree' at -> Stack tr {substitute out' at out}

-- it remains to define corollas

prop Corolla :: Tree d ~> * where
  None' :: Corolla []tr
  One' :: Corolla tail -> Corolla [()tr; tail]tr

--  o   --->  |
--  |         |

lolliCell :: Stack []tr ()tr
lolliCell = Empty Done

--  |         |
--  o   --->  |
--  |         |

dolliCell :: Stack [()tr]tr ()tr
dolliCell = Empty $ Fork In Done

--              |
--  [o]   --->  o
--   |          |

lolliFrame :: Stack []tr [()tr]tr
lolliFrame = Encompass NodeDone

--   |          |
--  [o]   --->  o
--   |          |

dolliFrame :: Stack [()tr]tr [()tr]tr
dolliFrame = Encompass (Exclude NodeDone)

--   |          |
--   |          o
-- [[o]]  --->  |
--   |          o
--   |          |

stacked :: Stack [()tr]tr [[()tr]tr]tr
stacked = (dolliFrame `On` dolliFrame) (In `Fork` Done)

--    |           o   |
-- | [o] |  --->   \ /
-- | [|] |          o
--    |             |

--cyclops :: Stack [()tr]tr [[]tr, ()tr]tr
--cyclops = Subdivision SubDone (Exclude NodeDone)

-- Stacking, Valence, Affine subtree, Substitute at an affine position

-- counting Units in a tree

valence :: Tree d ~> Nat
{valence []tr} = 0t
{valence [head; tail]tr} = {plus {valence head} {valence tail}}
{valence ()tr} = 1t

-- counting siblings of a tree

nodeValence :: Tree d ~> Nat
{nodeValence []tr} = 0t
{nodeValence [head; tail]tr} = (1+{nodeValence tail})t

-- nodeValenceAt: given a (multi)pointer, determine the node valences at those positions
--               WHERE     IN
nodeValenceAt :: Tree d ~> Tree e ~> Nat
{nodeValenceAt ()tr tree} = {nodeValence tree}
{nodeValenceAt []tr []tr} = 0t
{nodeValenceAt [head'; tail']tr [head; tail]tr} = {plus {nodeValenceAt head' head} {nodeValenceAt tail' tail}}

-- a pointer is a valence-1 subtree of a tree
-- it is used to mark a unit in a tree where substitution will occur
--
prop Pointers :: Nat ~> Tree d ~> Tree e ~> * where
  Finger :: Pointers 1t ()tr ()tr
  Finished :: Pointers 0t []tr []tr
  ThisWay :: Pointers 1t head' head -> Pointers n tail' tail -> Pointers (1+n)t [head'; tail']tr [head; tail]tr
  ElseWhere :: Pointers n tail' tail -> Pointers n [[]tr; tail']tr [head; tail]tr

-- substitute WHAT      WHERE     IN
substitute :: Tree d ~> Tree e ~> Tree f ~> Tree f
{substitute what ()tr ()tr} = what
{substitute what []tr tr} = tr
{substitute what [head'; tail']tr [head; tail]tr} = [{substitute what head' head}; {substitute what tail' tail}]tr

{- NOTE: we have an Omega bug here:

prompt> :norm {substitute []tr ()tr ()tr}
Normalizes to:
  []tr

prompt> :kind []tr
[]tr :: Tree Hor  = []tr

prompt> :kind {substitute []tr ()tr ()tr}
{substitute []tr ()tr ()tr} :: Tree Ver  = {substitute []tr ()tr ()tr}

... BUT: Hor /= Ver :-(
-}


codegen/QtDesigner: updated

codegen/QtDesigner: updated

Modified:
codegen/QtDesigner/QDesignerFormWindowInterface.prg

%%
%% Qt4xHb - Bindings libraries for Harbour/xHarbour and Qt Framework 4
%%
%% Copyright (C) 2020 Marcos Antonio Gambeta <marcosgambeta AT outlook DOT com>
%%

$project=Qt4xHb
$module=QtDesigner

$header

#include "hbclass.ch"

$addRequests

$beginClassFrom=QWidget

$addMethods

$addSignals

$endClass

$destructor

#pragma BEGINDUMP

$includes

#include <QtCore/QDir>
#include <QtDesigner/QDesignerFormEditorInterface>

$deleteMethod

$prototype=virtual QDir absoluteDir () const = 0
$virtualMethod=|QDir|absoluteDir|

$prototype=virtual void addResourceFile ( const QString & path ) = 0
$virtualMethod=|void|addResourceFile|const QString &

$prototype=virtual QString author () const = 0
$virtualMethod=|QString|author|

$prototype=virtual QString comment () const = 0
$virtualMethod=|QString|comment|

$prototype=virtual QString contents () const = 0
$virtualMethod=|QString|contents|

$prototype=virtual QDesignerFormEditorInterface * core () const
$virtualMethod=|QDesignerFormEditorInterface *|core|

$prototype=virtual QDesignerFormWindowCursorInterface * cursor () const = 0
$virtualMethod=|QDesignerFormWindowCursorInterface *|cursor|

$prototype=virtual void emitSelectionChanged () = 0
$virtualMethod=|void|emitSelectionChanged|

$prototype=virtual QString exportMacro () const = 0
$virtualMethod=|QString|exportMacro|

$prototype=virtual Feature features () const = 0
$virtualMethod=|QDesignerFormWindowInterface::Feature|features|

$prototype=virtual QString fileName () const = 0
$virtualMethod=|QString|fileName|

$prototype=virtual QPoint grid () const = 0
$virtualMethod=|QPoint|grid|

$prototype=virtual bool hasFeature ( Feature feature ) const = 0
$virtualMethod=|bool|hasFeature|QDesignerFormWindowInterface::Feature

$prototype=virtual QStringList includeHints () const = 0
$virtualMethod=|QStringList|includeHints|

$prototype=virtual bool isDirty () const = 0
$virtualMethod=|bool|isDirty|

$prototype=virtual bool isManaged ( QWidget * widget ) const = 0
$virtualMethod=|bool|isManaged|QWidget *

$prototype=virtual void layoutDefault ( int * margin, int * spacing ) = 0
$virtualMethod=|void|layoutDefault|int *,int *

$prototype=virtual QWidget * mainContainer () const = 0
$virtualMethod=|QWidget *|mainContainer|

$prototype=virtual QString pixmapFunction () const = 0
$virtualMethod=|QString|pixmapFunction|

$prototype=virtual void removeResourceFile ( const QString & path ) = 0
$virtualMethod=|void|removeResourceFile|const QString &

$prototype=virtual QStringList resourceFiles () const = 0
$virtualMethod=|QStringList|resourceFiles|

$prototype=virtual void setAuthor ( const QString & author ) = 0
$virtualMethod=|void|setAuthor|const QString &

$prototype=virtual void setComment ( const QString & comment ) = 0
$virtualMethod=|void|setComment|const QString &

$prototype=virtual void setExportMacro ( const QString & exportMacro ) = 0
$virtualMethod=|void|setExportMacro|const QString &

$prototype=virtual void setIncludeHints ( const QStringList & includeHints ) = 0
$virtualMethod=|void|setIncludeHints|const QStringList &

$prototype=virtual void setLayoutDefault ( int margin, int spacing ) = 0
$virtualMethod=|void|setLayoutDefault|int,int

$prototype=virtual void setLayoutFunction ( const QString & margin, const QString & spacing ) = 0
$virtualMethod=|void|setLayoutFunction|const QString &,const QString &

$prototype=virtual void setMainContainer ( QWidget * mainContainer ) = 0
$virtualMethod=|void|setMainContainer|QWidget *

$prototype=virtual void setPixmapFunction ( const QString & pixmapFunction ) = 0
$virtualMethod=|void|setPixmapFunction|const QString &

$prototype=virtual void clearSelection ( bool update = true ) = 0
$virtualMethod=|void|clearSelection|bool=true

$prototype=virtual void manageWidget ( QWidget * widget ) = 0
$virtualMethod=|void|manageWidget|QWidget *

$prototype=virtual void selectWidget ( QWidget * widget, bool select = true ) = 0
$virtualMethod=|void|selectWidget|QWidget *,bool=true

$prototype=virtual void setContents ( QIODevice * device ) = 0
$internalVirtualMethod=|void|setContents,setContents1|QIODevice *

$prototype=virtual void setContents ( const QString & contents ) = 0
$internalVirtualMethod=|void|setContents,setContents2|const QString &

/*
[1]virtual void setContents ( QIODevice * device ) = 0
[2]virtual void setContents ( const QString & contents ) = 0
*/

HB_FUNC_STATIC( QDESIGNERFORMWINDOWINTERFACE_SETCONTENTS )
{
  if( ISNUMPAR(1) && ISQIODEVICE(1) )
  {
    QDesignerFormWindowInterface_setContents1();
  }
  else if( ISNUMPAR(1) && ISCHAR(1) )
  {
    QDesignerFormWindowInterface_setContents2();
  }
  else
  {
    hb_errRT_BASE( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
  }
}

$prototype=virtual void setDirty ( bool dirty ) = 0
$virtualMethod=|void|setDirty|bool

$prototype=virtual void setFeatures ( Feature features ) = 0
$virtualMethod=|void|setFeatures|QDesignerFormWindowInterface::Feature

$prototype=virtual void setFileName ( const QString & fileName ) = 0
$virtualMethod=|void|setFileName|const QString &

$prototype=virtual void setGrid ( const QPoint & grid ) = 0
$virtualMethod=|void|setGrid|const QPoint &

$prototype=virtual void unmanageWidget ( QWidget * widget ) = 0
$virtualMethod=|void|unmanageWidget|QWidget *

$prototype=static QDesignerFormWindowInterface * findFormWindow ( QWidget * widget )
$internalStaticMethod=|QDesignerFormWindowInterface *|findFormWindow,findFormWindow1|QWidget *

$prototype=static QDesignerFormWindowInterface * findFormWindow ( QObject * object )
$internalStaticMethod=|QDesignerFormWindowInterface *|findFormWindow,findFormWindow2|QObject *

/*
[1]QDesignerFormWindowInterface * findFormWindow ( QWidget * widget )
[2]QDesignerFormWindowInterface * findFormWindow ( QObject * object )
*/

HB_FUNC_STATIC( QDESIGNERFORMWINDOWINTERFACE_FINDFORMWINDOW )
{
  if( ISNUMPAR(1) && ISQWIDGET(1) )
  {
    QDesignerFormWindowInterface_findFormWindow1();
  }
  else if( ISNUMPAR(1) && ISQOBJECT(1) )
  {
    QDesignerFormWindowInterface_findFormWindow2();
  }
  else
  {
    hb_errRT_BASE( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
  }
}

$beginSignals
$signal=|aboutToUnmanageWidget(QWidget*)
$signal=|activated(QWidget*)
$signal=|changed()
$signal=|featureChanged(QDesignerFormWindowInterface::Feature)
$signal=|fileNameChanged(QString)
$signal=|geometryChanged()
$signal=|mainContainerChanged(QWidget*)
$signal=|objectRemoved(QObject*)
$signal=|resourceFilesChanged()
$signal=|selectionChanged()
$signal=|widgetManaged(QWidget*)
$signal=|widgetRemoved(QWidget*)
$signal=|widgetUnmanaged(QWidget*)
$endSignals

#pragma ENDDUMP

%%
%% Qt4xHb - Bindings libraries for Harbour/xHarbour and Qt Framework 4
%%
%% Copyright (C) 2020 Marcos Antonio Gambeta <marcosgambeta AT outlook DOT com>
%%

$project=Qt4xHb
$module=QtDesigner

$header

#include "hbclass.ch"

$addRequests

$beginClassFrom=QWidget

$addMethods

$addSignals

$endClass

$destructor

#pragma BEGINDUMP

$includes

#include <QtCore/QDir>
#include <QtDesigner/QDesignerFormEditorInterface>

$deleteMethod

$prototype=virtual QDir absoluteDir () const = 0
$virtualMethod=|QDir|absoluteDir|

$prototype=virtual void addResourceFile ( const QString & path ) = 0
$virtualMethod=|void|addResourceFile|const QString &

$prototype=virtual QString author () const = 0
$virtualMethod=|QString|author|

$prototype=virtual QString comment () const = 0
$virtualMethod=|QString|comment|

$prototype=virtual QString contents () const = 0
$virtualMethod=|QString|contents|

$prototype=virtual QDesignerFormEditorInterface * core () const
$virtualMethod=|QDesignerFormEditorInterface *|core|

$prototype=virtual QDesignerFormWindowCursorInterface * cursor () const = 0
$virtualMethod=|QDesignerFormWindowCursorInterface *|cursor|

$prototype=virtual void emitSelectionChanged () = 0
$virtualMethod=|void|emitSelectionChanged|

$prototype=virtual QString exportMacro () const = 0
$virtualMethod=|QString|exportMacro|

$prototype=virtual Feature features () const = 0
$virtualMethod=|QDesignerFormWindowInterface::Feature|features|

$prototype=virtual QString fileName () const = 0
$virtualMethod=|QString|fileName|

$prototype=virtual QPoint grid () const = 0
$virtualMethod=|QPoint|grid|

$prototype=virtual bool hasFeature ( Feature feature ) const = 0
$virtualMethod=|bool|hasFeature|QDesignerFormWindowInterface::Feature

$prototype=virtual QStringList includeHints () const = 0
$virtualMethod=|QStringList|includeHints|

$prototype=virtual bool isDirty () const = 0
$virtualMethod=|bool|isDirty|

$prototype=virtual bool isManaged ( QWidget * widget ) const = 0
$virtualMethod=|bool|isManaged|QWidget *

$prototype=virtual void layoutDefault ( int * margin, int * spacing ) = 0
$virtualMethod=|void|layoutDefault|int *,int *

$prototype=virtual QWidget * mainContainer () const = 0
$virtualMethod=|QWidget *|mainContainer|

$prototype=virtual QString pixmapFunction () const = 0
$virtualMethod=|QString|pixmapFunction|

$prototype=virtual void removeResourceFile ( const QString & path ) = 0
$virtualMethod=|void|removeResourceFile|const QString &

$prototype=virtual QStringList resourceFiles () const = 0
$virtualMethod=|QStringList|resourceFiles|

$prototype=virtual void setAuthor ( const QString & author ) = 0
$virtualMethod=|void|setAuthor|const QString &

$prototype=virtual void setComment ( const QString & comment ) = 0
$virtualMethod=|void|setComment|const QString &

$prototype=virtual void setExportMacro ( const QString & exportMacro ) = 0
$virtualMethod=|void|setExportMacro|const QString &

$prototype=virtual void setIncludeHints ( const QStringList & includeHints ) = 0
$virtualMethod=|void|setIncludeHints|const QStringList &

$prototype=virtual void setLayoutDefault ( int margin, int spacing ) = 0
$virtualMethod=|void|setLayoutDefault|int,int

$prototype=virtual void setLayoutFunction ( const QString & margin, const QString & spacing ) = 0
$virtualMethod=|void|setLayoutFunction|const QString &,const QString &

$prototype=virtual void setMainContainer ( QWidget * mainContainer ) = 0
$virtualMethod=|void|setMainContainer|QWidget *

$prototype=virtual void setPixmapFunction ( const QString & pixmapFunction ) = 0
$virtualMethod=|void|setPixmapFunction|const QString &

$prototype=virtual void clearSelection ( bool update = true ) = 0
$virtualMethod=|void|clearSelection|bool=true

$prototype=virtual void manageWidget ( QWidget * widget ) = 0
$virtualMethod=|void|manageWidget|QWidget *

$prototype=virtual void selectWidget ( QWidget * widget, bool select = true ) = 0
$virtualMethod=|void|selectWidget|QWidget *,bool=true

$prototype=virtual void setContents ( QIODevice * device ) = 0
$internalVirtualMethod=|void|setContents,setContents1|QIODevice *

$prototype=virtual void setContents ( const QString & contents ) = 0
$internalVirtualMethod=|void|setContents,setContents2|const QString &

//[1]virtual void setContents ( QIODevice * device ) = 0
//[2]virtual void setContents ( const QString & contents ) = 0

HB_FUNC_STATIC( QDESIGNERFORMWINDOWINTERFACE_SETCONTENTS )
{
  if( ISNUMPAR(1) && ISQIODEVICE(1) )
  {
    QDesignerFormWindowInterface_setContents1();
  }
  else if( ISNUMPAR(1) && ISCHAR(1) )
  {
    QDesignerFormWindowInterface_setContents2();
  }
  else
  {
    hb_errRT_BASE( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
  }
}

$prototype=virtual void setDirty ( bool dirty ) = 0
$virtualMethod=|void|setDirty|bool

$prototype=virtual void setFeatures ( Feature features ) = 0
$virtualMethod=|void|setFeatures|QDesignerFormWindowInterface::Feature

$prototype=virtual void setFileName ( const QString & fileName ) = 0
$virtualMethod=|void|setFileName|const QString &

$prototype=virtual void setGrid ( const QPoint & grid ) = 0
$virtualMethod=|void|setGrid|const QPoint &

$prototype=virtual void unmanageWidget ( QWidget * widget ) = 0
$virtualMethod=|void|unmanageWidget|QWidget *

$prototype=static QDesignerFormWindowInterface * findFormWindow ( QWidget * widget )
$internalStaticMethod=|QDesignerFormWindowInterface *|findFormWindow,findFormWindow1|QWidget *

$prototype=static QDesignerFormWindowInterface * findFormWindow ( QObject * object )
$internalStaticMethod=|QDesignerFormWindowInterface *|findFormWindow,findFormWindow2|QObject *

//[1]QDesignerFormWindowInterface * findFormWindow ( QWidget * widget )
//[2]QDesignerFormWindowInterface * findFormWindow ( QObject * object )

HB_FUNC_STATIC( QDESIGNERFORMWINDOWINTERFACE_FINDFORMWINDOW )
{
  if( ISNUMPAR(1) && ISQWIDGET(1) )
  {
    QDesignerFormWindowInterface_findFormWindow1();
  }
  else if( ISNUMPAR(1) && ISQOBJECT(1) )
  {
    QDesignerFormWindowInterface_findFormWindow2();
  }
  else
  {
    hb_errRT_BASE( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
  }
}

$beginSignals
$signal=|aboutToUnmanageWidget(QWidget*)
$signal=|activated(QWidget*)
$signal=|changed()
$signal=|featureChanged(QDesignerFormWindowInterface::Feature)
$signal=|fileNameChanged(QString)
$signal=|geometryChanged()
$signal=|mainContainerChanged(QWidget*)
$signal=|objectRemoved(QObject*)
$signal=|resourceFilesChanged()
$signal=|selectionChanged()
$signal=|widgetManaged(QWidget*)
$signal=|widgetRemoved(QWidget*)
$signal=|widgetUnmanaged(QWidget*)
$endSignals

#pragma ENDDUMP


codegen/QtGui/QAccessible.prg: fixed

codegen/QtGui/QAccessible.prg: fixed

%%
%% Qt4xHb - Bindings libraries for Harbour/xHarbour and Qt Framework 4
%%
%% Copyright (C) 2020 Marcos Antonio Gambeta <marcosgambeta AT outlook DOT com>
%%

$project=Qt4xHb
$module=QtGui

$header

#include "hbclass.ch"

$addRequests

$beginClassFrom=

$addMethods

$endClass

$destructor

#pragma BEGINDUMP

$includes

$prototypeV2=static bool isActive()

$prototypeV2=static QAccessibleInterface * queryAccessibleInterface( QObject * object )

$prototypeV2=static void setRootObject( QObject * object )

$prototypeV2=static void updateAccessibility( QObject * object, int child, QAccessible::Event reason )

$extraMethods

#pragma ENDDUMP

%%
%% Qt4xHb - Bindings libraries for Harbour/xHarbour and Qt Framework 4
%%
%% Copyright (C) 2020 Marcos Antonio Gambeta <marcosgambeta AT outlook DOT com>
%%

$project=Qt4xHb
$module=QtGui

$header

#include "hbclass.ch"

$addRequests

$beginClassFrom=

$addMethods

$endClass

$destructor

#pragma BEGINDUMP

$includes

$prototypeV2=static bool isActive()

$prototypeV2=static QAccessibleInterface * queryAccessibleInterface( QObject * object )

$prototypeV2=static void setRootObject( QObject * object )

$prototypeV2=static void updateAccessibility( QObject * object, int child, Event reason )

$extraMethods

#pragma ENDDUMP