2010-02-08 08:50 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/idesources.prg

  * contrib/hbqt/generator/qt45.qtp

  * contrib/hbqt/hbqt.h

  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.h
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.h

  * contrib/hbqt/qtgui/filelist.mk
  * contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
  * contrib/hbqt/qtgui/HBQSyntaxHighlighter.cpp
  + contrib/hbqt/qtgui/QStackedWidget.cpp
  * contrib/hbqt/qtgui/THBQPlainTextEdit.prg
  * contrib/hbqt/qtgui/THBQSyntaxHighlighter.prg
  + contrib/hbqt/qtgui/TQStackedWidget.prg

  * contrib/hbqt/qth/HBQPlainTextEdit.qth
  * contrib/hbqt/qth/HBQSyntaxHighLighter.qth
  + contrib/hbqt/qth/QStackedWidget.qth

    + Added one more class in hbQT.
    + Prepared to present multiple-views of tabbed-editor.
         The term multiple-view is a bit confusing. The concept
         I am thinking of is to present stacked tabs of common interest 
         together switchable from "Editor" tree-presentation or from 
         a combo-box containing such different "views". 
         A better name to this feature is requested.
    % Code shifting, normalization.
    + Started to have block(column)copy and paste operation.
         But appears it is a huge task, probably leading to 
         rewriting the whole HBQPlainTextEdit() class.
         I must confess that the more I try in the direction,
         the more I am in troubles. Reason: Qt does not provide
         any inbuild mechanism to achieve it.
This commit is contained in:
Pritpal Bedi
2010-02-08 17:03:42 +00:00
parent 78c8ea7cb9
commit 03ebb05361
23 changed files with 746 additions and 60 deletions

View File

@@ -17,6 +17,50 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-02-08 08:50 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesources.prg
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/qtgui/filelist.mk
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/HBQSyntaxHighlighter.cpp
+ contrib/hbqt/qtgui/QStackedWidget.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qtgui/THBQSyntaxHighlighter.prg
+ contrib/hbqt/qtgui/TQStackedWidget.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/qth/HBQSyntaxHighLighter.qth
+ contrib/hbqt/qth/QStackedWidget.qth
+ Added one more class in hbQT.
+ Prepared to present multiple-views of tabbed-editor.
The term multiple-view is a bit confusing. The concept
I am thinking of is to present stacked tabs of common interest
together switchable from "Editor" tree-presentation or from
a combo-box containing such different "views".
A better name to this feature is requested.
% Code shifting, normalization.
+ Started to have block(column)copy and paste operation.
But appears it is a huge task, probably leading to
rewriting the whole HBQPlainTextEdit() class.
I must confess that the more I try in the direction,
the more I am in troubles. Reason: Qt does not provide
any inbuild mechanism to achieve it.
2010-02-08 16:49 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
+ Readded HB_U8 and HB_I8. Currently mapped to HB_BYTE/HB_CHAR,

View File

@@ -155,6 +155,7 @@ CLASS HbIde
DATA oSBar
DATA oMenu
DATA oTBar
DATA oStackedWidget
DATA oFont
DATA oProjTree
DATA oEditTree
@@ -183,6 +184,7 @@ CLASS HbIde
DATA lDockRVisible INIT .f.
DATA lDockBVisible INIT .f.
DATA lTabCloseRequested INIT .f.
DATA isColumnSelectionEnabled INIT .f.
DATA cWrkProject INIT ""
DATA cWrkTheme INIT ""
@@ -243,6 +245,8 @@ CLASS HbIde
METHOD execEditorAction( cKey )
METHOD execWindowsAction( cKey )
DATA oFrame
ENDCLASS
/*----------------------------------------------------------------------*/
@@ -318,19 +322,6 @@ METHOD HbIde:create( cProjIni )
/* Load Environments */
::oEV := IdeEnvironments():new( Self, hbide_pathToOSPath( ::aINI[ INI_HBIDE, PathEnv ] + ::pathSep + "hbide.env" ) ):create()
/* Prepare Editor's Tabs */
::oEM:prepareTabWidget()
/* Attach GRID Layout to Editor Area - Futuristic */
::qLayout := QGridLayout():new()
::qLayout:setContentsMargins( 0,0,0,0 )
::qLayout:setHorizontalSpacing( 0 )
::qLayout:setVerticalSpacing( 0 )
//
::oDa:oWidget:setLayout( ::qLayout )
//
::qLayout:addWidget_1( ::oDa:oTabWidget:oWidget, 0, 0, 1, 1 )
/* Just to spare some GC calls */
::qCursor := QTextCursor():new()
::qBrushWrkProject := QBrush():new( "QColor", QColor():new( 255,0,0 ) )
@@ -344,9 +335,7 @@ METHOD HbIde:create( cProjIni )
::cWrkProject := ::aINI[ INI_HBIDE, CurrentProject ]
::oPM:populate()
::oSM:loadSources()
#if 0 /* Must not be greyed as we have more options there */
::updateProjectMenu()
#endif
::updateTitleBar()
/* Set some last settings */
::oPM:setCurrentProject( ::cWrkProject, .f. )
@@ -481,6 +470,7 @@ METHOD HbIde:execAction( cKey )
CASE "Copy"
CASE "Paste"
CASE "SelectAll"
CASE "SelectionMode"
CASE "DuplicateLine"
CASE "DeleteLine"
CASE "MoveLineUp"
@@ -548,6 +538,10 @@ METHOD HbIde:execEditorAction( cKey )
CASE "SelectAll"
::oEM:selectAll()
EXIT
CASE "SelectionMode"
::isColumnSelectionEnabled := ! ::isColumnSelectionEnabled
::oEM:toggleSelectionMode()
EXIT
CASE "DuplicateLine"
::oEM:duplicateLine()
EXIT
@@ -603,7 +597,8 @@ METHOD HbIde:execEditorAction( cKey )
EXIT
CASE "MatchPairs"
//
::oDockFind:show()
//::oDockFind:show()
::oStackedWidget:oWidget:setCurrentIndex( iif( ::oStackedWidget:oWidget:currentIndex() == 1, 0, 1 ) )
EXIT
CASE "InsertSeparator"
::oEM:insertSeparator()

View File

@@ -142,8 +142,7 @@ METHOD IdeActions:buildActions()
IF !( hb_hHasKey( ::hActions, a_[ ACT_NAME ] ) )
qAction := QAction():new( ::qDlg )
qAction:setCheckable( iif( empty( a_[ ACT_CHECKABLE ] ), .F., ;
iif( upper( a_[ ACT_CHECKABLE ] ) == "YES", .T., .F. ) ) )
qAction:setCheckable( iif( empty( a_[ ACT_CHECKABLE ] ), .F., upper( a_[ ACT_CHECKABLE ] ) == "YES" ) )
qAction:setText( strtran( a_[ ACT_TEXT ], "~", "&" ) )
IF !empty( a_[ ACT_IMAGE ] )
qAction:setIcon( ::resPath + a_[ ACT_IMAGE ] + ".png" )
@@ -194,7 +193,7 @@ METHOD IdeActions:loadActions()
aadd( aAct, { "TB_Copy" , "~Copy" , "copy" , "" , "No", "Yes" } )
aadd( aAct, { "TB_Paste" , "~Paste" , "paste" , "" , "No", "Yes" } )
aadd( aAct, { "TB_SelectAll" , "Select ~All" , "selectall" , "" , "No", "Yes" } )
aadd( aAct, { "TB_SelectionMode" , "Toggle Selection Mode" , "stream" , "" , "No", "Yes" } )
aadd( aAct, { "TB_SelectionMode" , "Toggle Selection Mode" , "stream" , "" , "Yes", "Yes" } )
aadd( aAct, { "TB_Find" , "~Find / Replace" , "find" , "" , "No", "Yes" } )
aadd( aAct, { "TB_Search" , "Search" , "search" , "" , "No", "Yes" } )
aadd( aAct, { "TB_SetMark" , "Toggle Mark" , "placeremovemark", "" , "No", "Yes" } )

View File

@@ -80,6 +80,8 @@ CLASS IdeDocks INHERIT IdeObject
METHOD create( oIde )
METHOD destroy()
METHOD buildDialog()
METHOD buildTabWidget()
METHOD buildStackWidget()
METHOD buildDockWidgets()
METHOD buildProjectTree()
METHOD buildEditorTree()
@@ -127,22 +129,15 @@ METHOD IdeDocks:destroy()
METHOD IdeDocks:buildDialog()
#if 1
::oIde:oDlg := XbpDialog():new()
::oDlg:icon := ::resPath + "vr.png"
::oDlg:title := "Harbour-Qt IDE"
#ifdef HBIDE_USE_UIC
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
#else
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.ui" ):create()
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.ui" ):create()
#endif
::oDlg:create( , , , , , .f. )
#else
::oIde:oDlg := XbpDialog():new( , , {10,10}, {1100,700}, , .f. )
::oDlg:icon := ::resPath + "vr.png"
::oDlg:title := "Harbour-Qt IDE"
::oDlg:create()
#endif
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow" ) )
@@ -157,6 +152,82 @@ METHOD IdeDocks:buildDialog()
::oIde:setPosAndSizeByIni( ::oDlg:oWidget, MainWindowGeometry )
::oDlg:Show()
/* Attach GRID Layout to Editor Area - Futuristic */
::oIde:qLayout := QGridLayout():new()
::oIde:qLayout:setContentsMargins( 0,0,0,0 )
::oIde:qLayout:setHorizontalSpacing( 0 )
::oIde:qLayout:setVerticalSpacing( 0 )
//
#if 0
::buildTabWidget()
::qLayout:addWidget_1( ::oDa:oTabWidget:oWidget, 0, 0, 1, 1 )
#else
::buildStackWidget()
::qLayout:addWidget_1( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
::buildTabWidget()
#endif
::oDa:oWidget:setLayout( ::oIde:qLayout )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildStackWidget()
/* Its parent will be drawing area and pages will be XbpTabWidgets() */
::oIde:oStackedWidget := XbpWindow():new( ::oDa )
::oStackedWidget:oWidget := QStackedWidget():new( ::oDa:oWidget )
::oStackedWidget:oWidget:setObjectName( "myStackedWidget" )
::oDa:addChild( ::oStackedWidget )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildTabWidget()
#if 0
::oIde:oDa:oTabWidget := XbpTabWidget():new():create( ::oDa, , {0,0}, {10,10}, , .t. )
::oIde:qTabWidget := ::oDa:oTabWidget:oWidget
::qTabWidget:setUsesScrollButtons( .f. )
::qTabWidget:setMovable( .t. )
::qTabWidget:setContextMenuPolicy( Qt_CustomContextMenu )
::connect( ::qTabWidget, "customContextMenuRequested(QPoint)", {|p| ::exeEvent( 1, p ) } )
#else
#if 0
::oIde:oFrame := XbpWindow():new( ::oIde:oStackedWidget )
::oFrame:oWidget := QWidget():new( ::oIde:oStackedWidget:oWidget )
::oStackedWidget:addChild( ::oFrame )
::oFrame:oTabWidget := XbpTabWidget():new():create( ::oFrame, , {0,0}, {200,200}, , .t. )
::oIde:qTabWidget := ::oIde:oFrame:oTabWidget:oWidget
::qTabWidget:setUsesScrollButtons( .f. )
::qTabWidget:setMovable( .t. )
::oStackedWidget:oWidget:addWidget( ::oFrame:oWidget )
::oStackedWidget:oWidget:setCurrentIndex( 1 )
#else /* Below Works */
LOCAL oTabWidget
STATIC qTabWidget
oTabWidget := XbpTabWidget():new():create( ::oIde:oStackedWidget , {0,0}, {10,10}, , .t. )
::oIde:oDa:oTabWidget := oTabWidget /* Important - Look deep why it be so */
::oIde:qTabWidget := oTabWidget:oWidget
::qTabWidget:setUsesScrollButtons( .f. )
::qTabWidget:setMovable( .t. )
::oStackedWidget:oWidget:addWidget( ::qTabWidget )
qTabWidget := QTabWidget():new( ::oStackedWidget:oWidget )
::oStackedWidget:oWidget:addWidget( qTabWidget )
::oStackedWidget:oWidget:setCurrentIndex( 0 )
#endif
#endif
RETURN Self
/*----------------------------------------------------------------------*/
@@ -181,7 +252,7 @@ METHOD IdeDocks:buildDockWidgets()
METHOD IdeDocks:buildProjectTree()
LOCAL i
::oIde:oDockPT := XbpWindow():new( ::oDa )
::oIde:oDockPT := XbpWindow():new()
::oDockPT:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockPT:oWidget:setObjectName( "dockProjectTree" )
::oDlg:addChild( ::oDockPT )
@@ -193,7 +264,7 @@ METHOD IdeDocks:buildProjectTree()
::oIde:oProjTree := XbpTreeView():new()
::oProjTree:hasLines := .T.
::oProjTree:hasButtons := .T.
::oProjTree:create( ::oDa, , { 0,0 }, { 10,10 }, , .t. )
::oProjTree:create( ::oDockPT, , { 0,0 }, { 10,10 }, , .t. )
::oProjTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB" ) )
@@ -231,7 +302,7 @@ METHOD IdeDocks:buildProjectTree()
METHOD IdeDocks:buildEditorTree()
::oIde:oDockED := XbpWindow():new( ::oDa )
::oIde:oDockED := XbpWindow():new()
::oDockED:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockED:oWidget:setObjectName( "dockEditorTabs" )
::oDlg:addChild( ::oDockED )
@@ -243,9 +314,7 @@ METHOD IdeDocks:buildEditorTree()
::oIde:oEditTree := XbpTreeView():new()
::oEditTree:hasLines := .T.
::oEditTree:hasButtons := .T.
::oEditTree:create( ::oDa, , { 0,0 }, { 10,10 }, , .t. )
* ::oEditTree:setStyleSheet( GetStyleSheet( "QTreeWidget" ) )
::oEditTree:create( ::oDockED, , { 0,0 }, { 10,10 }, , .t. )
//::oEditTree:itemMarked := {|oItem| ::manageItemSelected( 0, oItem ), ::oCurProjItem := oItem }
::oEditTree:itemMarked := {|oItem| ::oIde:oCurProjItem := oItem, ::oIde:manageFocusInEditor() }
@@ -273,7 +342,7 @@ METHOD IdeDocks:buildEditorTree()
METHOD IdeDocks:buildFuncList()
::oIde:oDockR := XbpWindow():new( ::oDa )
::oIde:oDockR := XbpWindow():new()
::oDockR:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockR:oWidget:setObjectName( "dockFuncList" )
::oDlg:addChild( ::oDockR )
@@ -283,7 +352,6 @@ METHOD IdeDocks:buildFuncList()
::oDockR:oWidget:setFocusPolicy( Qt_NoFocus )
::oIde:oFuncList := XbpListBox():new( ::oDockR ):create( , , { 0,0 }, { 100,400 }, , .t. )
* ::oFuncList:setStyleSheet( GetStyleSheet( "QListView" ) )
//::oFuncList:ItemMarked := {|mp1, mp2, oXbp| ::gotoFunction( mp1, mp2, oXbp ) }
::oFuncList:ItemSelected := {|mp1, mp2, oXbp| ::oIde:gotoFunction( mp1, mp2, oXbp ) }
@@ -310,7 +378,7 @@ METHOD IdeDocks:buildFuncList()
METHOD IdeDocks:buildCompileResults()
::oIde:oDockB := XbpWindow():new( ::oDa )
::oIde:oDockB := XbpWindow():new()
::oDockB:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockB:oWidget:setObjectName( "dockCompileResults" )
::oDlg:addChild( ::oDockB )
@@ -331,7 +399,7 @@ METHOD IdeDocks:buildCompileResults()
METHOD IdeDocks:buildLinkResults()
::oIde:oDockB1 := XbpWindow():new( ::oDa )
::oIde:oDockB1 := XbpWindow():new()
::oDockB1:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockB1:oWidget:setObjectName( "dockLinkResults" )
::oDlg:addChild( ::oDockB1 )
@@ -352,7 +420,7 @@ METHOD IdeDocks:buildLinkResults()
METHOD IdeDocks:buildOutputResults()
::oIde:oDockB2 := XbpWindow():new( ::oDa )
::oIde:oDockB2 := XbpWindow():new()
::oDockB2:oWidget := QDockWidget():new( ::oDlg:oWidget )
::oDockB2:oWidget:setObjectName( "dockOutputResults" )
::oDlg:addChild( ::oDockB2 )

View File

@@ -68,6 +68,7 @@
#include "hbclass.ch"
#include "hbqt.ch"
#include "hbide.ch"
#include "xbp.ch"
/*----------------------------------------------------------------------*/
@@ -96,7 +97,6 @@ CLASS IdeEditsManager INHERIT IdeObject
METHOD new( oIde )
METHOD create( oIde )
METHOD destroy()
METHOD prepareTabWidget()
METHOD removeSourceInTree( cSourceFile )
METHOD addSourceInTree( cSourceFile )
METHOD exeEvent( nMode, p )
@@ -141,6 +141,7 @@ CLASS IdeEditsManager INHERIT IdeObject
METHOD streamComment()
METHOD blockComment()
METHOD indent( nStep )
METHOD toggleSelectionMode()
ENDCLASS
@@ -202,22 +203,6 @@ METHOD IdeEditsManager:destroy()
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:prepareTabWidget()
::oIde:oDa:oTabWidget := XbpTabWidget():new():create( ::oDa, , {0,0}, {10,10}, , .t. )
::oIde:oTabWidget := ::oDa:oTabWidget
::oIde:qTabWidget := ::oDa:oTabWidget:oWidget
::qTabWidget:setUsesScrollButtons( .f. )
::qTabWidget:setMovable( .t. )
::qTabWidget:setContextMenuPolicy( Qt_CustomContextMenu )
::connect( ::qTabWidget, "customContextMenuRequested(QPoint)", {|p| ::exeEvent( 1, p ) } )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:removeSourceInTree( cSourceFile )
LOCAL n
@@ -512,6 +497,15 @@ METHOD IdeEditsManager:selectAll()
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:toggleSelectionMode()
IF !empty( ::qCurEdit )
::qCurEdit:highlightSelectedColumns( ::isColumnSelectionEnabled )
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:duplicateLine()
LOCAL qEdit
IF !empty( qEdit := ::getEditCurrent() )
@@ -1133,6 +1127,7 @@ METHOD IdeEditor:split( nOrient, oEditP )
METHOD IdeEditor:destroy()
LOCAL n, oEdit
hbide_dbg( "IdeEditor:destroy()", 0 )
::disconnect( ::qDocument, "blockCountChanged(int)" )
::disconnect( ::qDocument, "contentsChange(int,int,int)" )
@@ -1345,6 +1340,7 @@ CLASS IdeEdit INHERIT IdeObject
DATA qBrushMark INIT QBrush():new( "QColor", QColor():new( 0,255,255 ) )
DATA qActionTab
DATA qLastCursor INIT QTextCursor():new()
DATA qSelColor INIT QColor():new( 255,0,255 )
DATA qCursorMark
DATA qMarkUData INIT HBQTextBlockUserData():new()
@@ -1638,9 +1634,14 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
::oEditor:qCqEdit := qEdit
::oEditor:qCoEdit := oEdit
qCursor := QTextCursor():configure( qEdit:TextCursor() )
/* Book Marks reach-out buttons */
::relayMarkButtons()
qCursor := QTextCursor():configure( qEdit:TextCursor() )
/* An experimental move but seems a lot is required to achieve column selection */
* qEdit:highlightSelectedColumns( ::isColumnSelectionEnabled )
::oDK:setStatusText( SB_PNL_SELECTEDCHARS, len( qCursor:selectedText() ) )
EXIT

View File

@@ -103,10 +103,11 @@ CLASS IdeObject
ACCESS qDlg INLINE ::oIde:oDlg:oWidget
ACCESS oDA INLINE ::oIde:oDA
ACCESS qLayout INLINE ::oIde:qLayout
ACCESS qCurEdit INLINE ::oIde:qCurEdit
ACCESS qCurDocument INLINE ::oIde:qCurDocument
ACCESS oCurEditor INLINE ::oIde:oCurEditor
ACCESS qTabWidget INLINE ::oIde:oDA:oTabWidget:oWidget
ACCESS qTabWidget INLINE ::oIde:qTabWidget
ACCESS qBrushWrkProject INLINE ::oIde:qBrushWrkProject
ACCESS cWrkProject INLINE ::oIde:cWrkProject
@@ -148,11 +149,14 @@ CLASS IdeObject
ACCESS oLinkResult INLINE ::oIde:oLinkResult
ACCESS oDockB2 INLINE ::oIde:oDockB2
ACCESS oOutputResult INLINE ::oIde:oOutputResult
ACCESS oStackedWidget INLINE ::oIde:oStackedWidget
ACCESS oFrame INLINE ::oIde:oFrame
ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible
ACCESS lDockRVisible INLINE ::oIde:lDockRVisible
ACCESS lDockBVisible INLINE ::oIde:lDockBVisible
ACCESS lTabCloseRequested INLINE ::oIde:lTabCloseRequested
ACCESS isColumnSelectionEnabled INLINE ::oIde:isColumnSelectionEnabled
ACCESS aMarkTBtns INLINE ::oIde:aMarkTBtns

View File

@@ -420,7 +420,7 @@ METHOD IdeSourcesManager:openSource()
METHOD IdeSourcesManager:selectSource( cMode, cFile, cTitle )
LOCAL oDlg, cPath
oDlg := XbpFileDialog():new():create( ::oDa, , { 10,10 } )
oDlg := XbpFileDialog():new():create( ::oDlg, , { 10,10 } )
IF cMode == "open"
oDlg:title := "Select a Source File"

View File

@@ -193,6 +193,7 @@ QSpacerItem.qth
QSpinBox.qth
QSplashScreen.qth
QSplitter.qth
QStackedWidget.qth
QStandardItem.qth
QStandardItemModel.qth
QStatusBar.qth

View File

@@ -270,6 +270,7 @@ extern void * hbqt_pPtrFromItem( PHB_ITEM pObj );
#define hbqt_par_QSpinBox( n ) ( ( QSpinBox * ) hbqt_gcpointer( n ) )
#define hbqt_par_QSplashScreen( n ) ( ( QSplashScreen * ) hbqt_gcpointer( n ) )
#define hbqt_par_QSplitter( n ) ( ( QSplitter * ) hbqt_gcpointer( n ) )
#define hbqt_par_QStackedWidget( n ) ( ( QStackedWidget * ) hbqt_gcpointer( n ) )
#define hbqt_par_QStandardItem( n ) ( ( QStandardItem * ) hbqt_gcpointer( n ) )
#define hbqt_par_QStandardItemModel( n ) ( ( QStandardItemModel * ) hbqt_gcpointer( n ) )
#define hbqt_par_QStatusBar( n ) ( ( QStatusBar * ) hbqt_gcpointer( n ) )

View File

@@ -86,6 +86,10 @@ HBQPlainTextEdit::HBQPlainTextEdit( QWidget * parent ) : QPlainTextEdit( parent
numberBlock = true;
lineNumberArea = new LineNumberArea( this );
columnBegins = -1;
columnEnds = -1;
isColumnSelectionEnabled = false;
connect( this, SIGNAL( blockCountChanged( int ) ) , this, SLOT( updateLineNumberAreaWidth( int ) ) );
connect( this, SIGNAL( updateRequest( const QRect &, int ) ), this, SLOT( updateLineNumberArea( const QRect &, int ) ) );
@@ -142,6 +146,8 @@ void HBQPlainTextEdit::paintEvent( QPaintEvent * event )
painter.fillRect( r, QBrush( m_currentLineColor ) );
}
}
this->paintColumnSelection( event );
painter.end();
QPlainTextEdit::paintEvent( event );
}
@@ -533,6 +539,63 @@ void HBQPlainTextEdit::convertDQuotes()
insertPlainText( txt );
}
void HBQPlainTextEdit::paintColumnSelection( QPaintEvent *event )
{
QTextCursor c = textCursor();
if( isColumnSelectionEnabled && c.hasSelection() )
{
if( columnBegins >= 0 && columnEnds >= 0 )
{
QTextBlock b = c.document()->findBlock( c.selectionStart() );
QTextBlock e = c.document()->findBlock( c.selectionEnd() );
if( b.isVisible() || e.isVisible() )
{
if( b.isVisible() )
{
QPainter p( viewport() );
if( b.isValid() && b.isVisible() )
{
int fontWidth = fontMetrics().averageCharWidth();
int x = ( columnBegins + 1 ) * fontWidth;
int w = ( c.columnNumber() - columnBegins ) * fontWidth;
QRect r( x, 0, w, viewport()->height() );
p.fillRect( r, QBrush( QColor( 175, 255, 175 ) ) );
}
}
}
}
}
}
void HBQPlainTextEdit::highlightSelectedColumns( bool yes )
{
if( yes )
{
isColumnSelectionEnabled = true;
QTextCursor c = textCursor();
if( columnBegins == -1 && c.hasSelection() )
{
int b = c.document()->findBlock( c.selectionStart() ).position();
columnBegins = c.selectionStart() - b;
columnEnds = c.columnNumber();
}
}
else
{
columnBegins = -1;
columnEnds = -1;
isColumnSelectionEnabled = false;
}
update();
}
void HBQPlainTextEdit::insertTab( int mode )
{
QTextCursor cursor = textCursor();

View File

@@ -118,6 +118,10 @@ private:
QTextEdit::ExtraSelection selection;
void braceHighlight();
int columnBegins;
int columnEnds;
bool isColumnSelectionEnabled;
protected:
bool event( QEvent * event );
void resizeEvent( QResizeEvent * event );
@@ -144,10 +148,12 @@ public slots:
void duplicateLine();
void replaceSelection( const QString & txt );
void insertTab( int mode );
void highlightSelectedColumns( bool yes );
private slots:
void slotCursorPositionChanged();
void updateLineNumberArea( const QRect &, int );
void paintColumnSelection( QPaintEvent * );
};

View File

@@ -138,6 +138,11 @@ void HBQSyntaxHighlighter::hbSetSingleLineCommentFormat( const QTextCharFormat &
singleLineCommentFormat = format;
}
void HBQSyntaxHighlighter::hbSetFormatColumnSelection( int start, int count, const QColor & color )
{
setFormat( start, count, color );
}
void HBQSyntaxHighlighter::highlightBlock( const QString &text )
{
#if 0
@@ -159,6 +164,7 @@ void HBQSyntaxHighlighter::highlightBlock( const QString &text )
}
}
#endif
//HB_TRACE( HB_TR_ALWAYS, ( "SYNTSX HIGHLIGHTING" ) );
int index = 0;

View File

@@ -88,6 +88,7 @@ public:
void hbSetSingleLineCommentFormat( const QTextCharFormat & format );
void hbSetRule( QString name, QString pattern, const QTextCharFormat & format );
void hbSetFormat( QString name, const QTextCharFormat & format );
void hbSetFormatColumnSelection( int start, int count, const QColor & color );
protected:
void highlightBlock( const QString &text );

View File

@@ -387,6 +387,14 @@ HB_FUNC( QT_HBQPLAINTEXTEDIT_MOVELINE )
hbqt_par_HBQPlainTextEdit( 1 )->moveLine( hb_parni( 2 ) );
}
/*
* void highlightSelectedColumns( bool yes )
*/
HB_FUNC( QT_HBQPLAINTEXTEDIT_HIGHLIGHTSELECTEDCOLUMNS )
{
hbqt_par_HBQPlainTextEdit( 1 )->highlightSelectedColumns( hb_parl( 2 ) );
}
/*----------------------------------------------------------------------*/
#endif /* #if QT_VERSION >= 0x040500 */

View File

@@ -174,6 +174,14 @@ HB_FUNC( QT_HBQSYNTAXHIGHLIGHTER_HBSETFORMAT )
hbqt_par_HBQSyntaxHighlighter( 1 )->hbSetFormat( HBQSyntaxHighlighter::tr( hb_parc( 2 ) ), *hbqt_par_QTextCharFormat( 3 ) );
}
/*
* void hbSetFormatColumnSelection( int start, int count, const QColor & color )
*/
HB_FUNC( QT_HBQSYNTAXHIGHLIGHTER_HBSETFORMATCOLUMNSELECTION )
{
hbqt_par_HBQSyntaxHighlighter( 1 )->hbSetFormatColumnSelection( hb_parni( 2 ), hb_parni( 3 ), *hbqt_par_QColor( 4 ) );
}
/*----------------------------------------------------------------------*/
#endif /* #if QT_VERSION >= 0x040500 */

View File

@@ -0,0 +1,229 @@
/*
* $Id$
*/
/* -------------------------------------------------------------------- */
/* WARNING: Automatically generated source file. DO NOT EDIT! */
/* Instead, edit corresponding .qth file, */
/* or the generator tool itself, and run regenarate. */
/* -------------------------------------------------------------------- */
/*
* Harbour Project source code:
* QT wrapper main header
*
* Copyright 2009-2010 Pritpal Bedi <pritpal@vouchcac.com>
*
* Copyright 2009 Marcos Antonio Gambeta <marcosgambeta at gmail dot com>
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
/*----------------------------------------------------------------------*/
#include "hbapi.h"
#include "../hbqt.h"
/*----------------------------------------------------------------------*/
#if QT_VERSION >= 0x040500
/*----------------------------------------------------------------------*/
#include <QtCore/QPointer>
#include <QtGui/QStackedWidget>
/*
* QStackedWidget ( QWidget * parent = 0 )
* ~QStackedWidget ()
*
*/
typedef struct
{
void * ph;
bool bNew;
QT_G_FUNC_PTR func;
QPointer< QStackedWidget > pq;
} QGC_POINTER_QStackedWidget;
QT_G_FUNC( hbqt_gcRelease_QStackedWidget )
{
QGC_POINTER_QStackedWidget * p = ( QGC_POINTER_QStackedWidget * ) Cargo;
if( p && p->bNew )
{
if( p->ph && p->pq )
{
const QMetaObject * m = ( ( QObject * ) p->ph )->metaObject();
if( ( QString ) m->className() != ( QString ) "QObject" )
{
HB_TRACE( HB_TR_DEBUG, ( "YES_rel_QStackedWidget /.\\ ph=%p pq=%p", p->ph, (void *)(p->pq) ) );
delete ( ( QStackedWidget * ) p->ph );
HB_TRACE( HB_TR_DEBUG, ( "YES_rel_QStackedWidget \\./ ph=%p pq=%p", p->ph, (void *)(p->pq) ) );
p->ph = NULL;
}
else
{
HB_TRACE( HB_TR_DEBUG, ( "NO__rel_QStackedWidgetph=%p pq=%p", p->ph, (void *)(p->pq) ) );
}
}
else
{
HB_TRACE( HB_TR_DEBUG, ( "DEL_rel_QStackedWidget : Object already deleted!" ) );
}
}
else
{
HB_TRACE( HB_TR_DEBUG, ( "PTR_rel_QStackedWidget : Object not created with new()" ) );
p->ph = NULL;
}
}
void * hbqt_gcAllocate_QStackedWidget( void * pObj, bool bNew )
{
QGC_POINTER_QStackedWidget * p = ( QGC_POINTER_QStackedWidget * ) hb_gcAllocate( sizeof( QGC_POINTER_QStackedWidget ), hbqt_gcFuncs() );
p->ph = pObj;
p->bNew = bNew;
p->func = hbqt_gcRelease_QStackedWidget;
if( bNew )
{
new( & p->pq ) QPointer< QStackedWidget >( ( QStackedWidget * ) pObj );
HB_TRACE( HB_TR_DEBUG, ( " _new_QStackedWidget ph=%p %i B %i KB", pObj, ( int ) hb_xquery( 1001 ), hbqt_getmemused() ) );
}
return p;
}
HB_FUNC( QT_QSTACKEDWIDGET )
{
void * pObj = NULL;
pObj = new QStackedWidget( hbqt_par_QWidget( 1 ) ) ;
hb_retptrGC( hbqt_gcAllocate_QStackedWidget( pObj, true ) );
}
/*
* int addWidget ( QWidget * widget )
*/
HB_FUNC( QT_QSTACKEDWIDGET_ADDWIDGET )
{
hb_retni( hbqt_par_QStackedWidget( 1 )->addWidget( hbqt_par_QWidget( 2 ) ) );
}
/*
* int count () const
*/
HB_FUNC( QT_QSTACKEDWIDGET_COUNT )
{
hb_retni( hbqt_par_QStackedWidget( 1 )->count() );
}
/*
* int currentIndex () const
*/
HB_FUNC( QT_QSTACKEDWIDGET_CURRENTINDEX )
{
hb_retni( hbqt_par_QStackedWidget( 1 )->currentIndex() );
}
/*
* QWidget * currentWidget () const
*/
HB_FUNC( QT_QSTACKEDWIDGET_CURRENTWIDGET )
{
hb_retptrGC( hbqt_gcAllocate_QWidget( hbqt_par_QStackedWidget( 1 )->currentWidget(), false ) );
}
/*
* int indexOf ( QWidget * widget ) const
*/
HB_FUNC( QT_QSTACKEDWIDGET_INDEXOF )
{
hb_retni( hbqt_par_QStackedWidget( 1 )->indexOf( hbqt_par_QWidget( 2 ) ) );
}
/*
* int insertWidget ( int index, QWidget * widget )
*/
HB_FUNC( QT_QSTACKEDWIDGET_INSERTWIDGET )
{
hb_retni( hbqt_par_QStackedWidget( 1 )->insertWidget( hb_parni( 2 ), hbqt_par_QWidget( 3 ) ) );
}
/*
* void removeWidget ( QWidget * widget )
*/
HB_FUNC( QT_QSTACKEDWIDGET_REMOVEWIDGET )
{
hbqt_par_QStackedWidget( 1 )->removeWidget( hbqt_par_QWidget( 2 ) );
}
/*
* QWidget * widget ( int index ) const
*/
HB_FUNC( QT_QSTACKEDWIDGET_WIDGET )
{
hb_retptrGC( hbqt_gcAllocate_QWidget( hbqt_par_QStackedWidget( 1 )->widget( hb_parni( 2 ) ), false ) );
}
/*
* void setCurrentIndex ( int index )
*/
HB_FUNC( QT_QSTACKEDWIDGET_SETCURRENTINDEX )
{
hbqt_par_QStackedWidget( 1 )->setCurrentIndex( hb_parni( 2 ) );
}
/*
* void setCurrentWidget ( QWidget * widget )
*/
HB_FUNC( QT_QSTACKEDWIDGET_SETCURRENTWIDGET )
{
hbqt_par_QStackedWidget( 1 )->setCurrentWidget( hbqt_par_QWidget( 2 ) );
}
/*----------------------------------------------------------------------*/
#endif /* #if QT_VERSION >= 0x040500 */
/*----------------------------------------------------------------------*/

View File

@@ -96,6 +96,7 @@ CREATE CLASS HBQPlainTextEdit INHERIT HbQtObjectHandler, QPlainTextEdit
METHOD blockIndent( nSteps )
METHOD deleteLine()
METHOD moveLine( nIDirection )
METHOD highlightSelectedColumns( lYes )
ENDCLASS
@@ -224,3 +225,7 @@ METHOD HBQPlainTextEdit:deleteLine()
METHOD HBQPlainTextEdit:moveLine( nIDirection )
RETURN Qt_HBQPlainTextEdit_moveLine( ::pPtr, nIDirection )
METHOD HBQPlainTextEdit:highlightSelectedColumns( lYes )
RETURN Qt_HBQPlainTextEdit_highlightSelectedColumns( ::pPtr, lYes )

View File

@@ -71,6 +71,7 @@ CREATE CLASS HBQSyntaxHighlighter INHERIT HbQtObjectHandler, QSyntaxHighlighter
METHOD hbSetSingleLineCommentFormat( pFormat )
METHOD hbSetRule( cName, cPattern, pFormat )
METHOD hbSetFormat( cName, pFormat )
METHOD hbSetFormatColumnSelection( nStart, nCount, pColor )
ENDCLASS
@@ -99,3 +100,7 @@ METHOD HBQSyntaxHighlighter:hbSetRule( cName, cPattern, pFormat )
METHOD HBQSyntaxHighlighter:hbSetFormat( cName, pFormat )
RETURN Qt_HBQSyntaxHighlighter_hbSetFormat( ::pPtr, cName, hbqt_ptr( pFormat ) )
METHOD HBQSyntaxHighlighter:hbSetFormatColumnSelection( nStart, nCount, pColor )
RETURN Qt_HBQSyntaxHighlighter_hbSetFormatColumnSelection( ::pPtr, nStart, nCount, hbqt_ptr( pColor ) )

View File

@@ -0,0 +1,131 @@
/*
* $Id$
*/
/* -------------------------------------------------------------------- */
/* WARNING: Automatically generated source file. DO NOT EDIT! */
/* Instead, edit corresponding .qth file, */
/* or the generator tool itself, and run regenarate. */
/* -------------------------------------------------------------------- */
/*
* Harbour Project source code:
* QT wrapper main header
*
* Copyright 2009-2010 Pritpal Bedi <pritpal@vouchcac.com>
*
* Copyright 2009 Marcos Antonio Gambeta <marcosgambeta at gmail dot com>
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
/*----------------------------------------------------------------------*/
#include "hbclass.ch"
CREATE CLASS QStackedWidget INHERIT HbQtObjectHandler, QFrame
METHOD new( ... )
METHOD addWidget( pWidget )
METHOD count()
METHOD currentIndex()
METHOD currentWidget()
METHOD indexOf( pWidget )
METHOD insertWidget( nIndex, pWidget )
METHOD removeWidget( pWidget )
METHOD widget( nIndex )
METHOD setCurrentIndex( nIndex )
METHOD setCurrentWidget( pWidget )
ENDCLASS
METHOD QStackedWidget:new( ... )
LOCAL p
FOR EACH p IN { ... }
hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )
NEXT
::pPtr := Qt_QStackedWidget( ... )
RETURN Self
METHOD QStackedWidget:addWidget( pWidget )
RETURN Qt_QStackedWidget_addWidget( ::pPtr, hbqt_ptr( pWidget ) )
METHOD QStackedWidget:count()
RETURN Qt_QStackedWidget_count( ::pPtr )
METHOD QStackedWidget:currentIndex()
RETURN Qt_QStackedWidget_currentIndex( ::pPtr )
METHOD QStackedWidget:currentWidget()
RETURN Qt_QStackedWidget_currentWidget( ::pPtr )
METHOD QStackedWidget:indexOf( pWidget )
RETURN Qt_QStackedWidget_indexOf( ::pPtr, hbqt_ptr( pWidget ) )
METHOD QStackedWidget:insertWidget( nIndex, pWidget )
RETURN Qt_QStackedWidget_insertWidget( ::pPtr, nIndex, hbqt_ptr( pWidget ) )
METHOD QStackedWidget:removeWidget( pWidget )
RETURN Qt_QStackedWidget_removeWidget( ::pPtr, hbqt_ptr( pWidget ) )
METHOD QStackedWidget:widget( nIndex )
RETURN Qt_QStackedWidget_widget( ::pPtr, nIndex )
METHOD QStackedWidget:setCurrentIndex( nIndex )
RETURN Qt_QStackedWidget_setCurrentIndex( ::pPtr, nIndex )
METHOD QStackedWidget:setCurrentWidget( pWidget )
RETURN Qt_QStackedWidget_setCurrentWidget( ::pPtr, hbqt_ptr( pWidget ) )

View File

@@ -141,6 +141,7 @@ CPP_SOURCES := \
QSpinBox.cpp \
QSplashScreen.cpp \
QSplitter.cpp \
QStackedWidget.cpp \
QStandardItem.cpp \
QStandardItemModel.cpp \
QStatusBar.cpp \
@@ -360,6 +361,7 @@ PRG_SOURCES := \
TQSpinBox.prg \
TQSplashScreen.prg \
TQSplitter.prg \
TQStackedWidget.prg \
TQStandardItem.prg \
TQStandardItemModel.prg \
TQStatusBar.prg \

View File

@@ -127,6 +127,7 @@ HB_FUNC( QT_HBQPLAINTEXTEDIT )
void blockIndent( int steps )
void deleteLine()
void moveLine( int iDirection )
void highlightSelectedColumns( bool yes )
</SLOTS>
<SIGNALS>

View File

@@ -90,6 +90,7 @@ void hbSetMultiLineCommentFormat( const QTextCharFormat & format )
void hbSetSingleLineCommentFormat( const QTextCharFormat & format )
void hbSetRule( QString name, QString pattern, QTextCharFormat & format )
void hbSetFormat( QString name, const QTextCharFormat & format )
void hbSetFormatColumnSelection( int start, int count, const QColor & color )
# QTextBlock currentBlock () const
# int currentBlockState () const

View File

@@ -0,0 +1,107 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* QT Source Generator for Harbour
*
* Copyright 2009 Pritpal Bedi <pritpal@vouchcac.com>
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
/*----------------------------------------------------------------------*/
;
; Header File to Generate QT Wrapper Sources
;
<CLASS>
QObject =
Inherits = QFrame
Type =
New =
</CLASS>
<SUBCLASS>
</SUBCLASS>
<DOC>
</DOC>
<CODE>
#include <QtGui/QStackedWidget>
/*
* QStackedWidget ( QWidget * parent = 0 )
* ~QStackedWidget ()
*
*/
HB_FUNC( QT_QSTACKEDWIDGET )
{
hb_retptr( new QStackedWidget( hbqt_par_QWidget( 1 ) ) );
}
</CODE>
<ENUMS>
</ENUMS>
<PROTOS>
int addWidget ( QWidget * widget )
int count () const
int currentIndex () const
QWidget * currentWidget () const
int indexOf ( QWidget * widget ) const
int insertWidget ( int index, QWidget * widget )
void removeWidget ( QWidget * widget )
QWidget * widget ( int index ) const
</PROTOS>
<SLOTS>
void setCurrentIndex ( int index )
void setCurrentWidget ( QWidget * widget )
</SLOTS>
<SIGNALS>
void currentChanged ( int index )
void widgetRemoved ( int index )
</SIGNALS>