2010-07-09 18:35 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.h
  * contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
  * contrib/hbqt/qtgui/THBQPlainTextEdit.prg
  * contrib/hbqt/qth/HBQPlainTextEdit.qth
  * contrib/hbide/hbide.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/idefunctions.prg
  * contrib/hbide/ideharbourhelp.prg
    + Implemented: completely reworked code completion basics 
      and brand new function prototype display as tooltip 
      ( now entirely native widget with many extras ).
This commit is contained in:
Pritpal Bedi
2010-07-10 01:38:23 +00:00
parent 1979515ea0
commit 9fd84b2d61
12 changed files with 223 additions and 95 deletions

View File

@@ -16,6 +16,22 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-09 18:35 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
+ Implemented: completely reworked code completion basics
and brand new function prototype display as tooltip
( now entirely native widget with many extras ).
2010-07-09 22:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/make.hbs
* contrib/hbpre.hbm

View File

@@ -538,8 +538,6 @@ METHOD HbIde:create( aParams )
::qTabWidget:setCurrentIndex( ::qTabWidget:count() - 1 )
::qTabWidget:setCurrentIndex( val( ::oINI:cRecentTabIndex ) )
::oEM:updateCompleter()
::showApplicationCursor()
qSplash:close()
@@ -552,6 +550,9 @@ METHOD HbIde:create( aParams )
/* Initialize plugins */
hbide_loadPlugins( Self, "1.0" )
/* Fill auto completion lists - it must be the last action and be present here always */
::oEM:updateCompleter()
DO WHILE .t.
::nEvent := AppEvent( @::mp1, @::mp2, @::oXbp )

View File

@@ -115,6 +115,7 @@ CLASS IdeEdit INHERIT IdeObject
DATA cCurLineText INIT ""
DATA cProto INIT ""
DATA cProtoOrg INIT ""
DATA qTimer
DATA nProtoLine INIT -1
DATA nProtoCol INIT -1
@@ -419,7 +420,7 @@ METHOD IdeEdit:connectEditSignals( oEdit )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
LOCAL pAct, qAct, n, qEdit, oo, nLine, qCursor
LOCAL pAct, qAct, n, qEdit, oo, qCursor
HB_SYMBOL_UNUSED( p1 )
@@ -505,10 +506,20 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
::markCurrentFunction()
#if 0
IF ::nProtoLine != -1
IF ::getLineNo() == ::nProtoLine .AND. ::getColumnNo() >= ::nProtoCol + 1
::cProto := hbide_formatProto_1( ::cProtoOrg )
::showProtoType()
ENDIF
ENDIF
#endif
#if 0
IF ::nProtoLine != -1
nLine := ::getLineNo()
IF ! ::isSuspended
IF nLine != ::nProtoLine .OR. ::getColumnNo() <= ::nProtoCol
IF nLine != ::nProtoLine .OR. ::getColumnNo() < ::nProtoCol
::suspendPrototype()
ENDIF
ELSE
@@ -517,7 +528,7 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
ENDIF
ENDIF
ENDIF
#endif
EXIT
CASE copyAvailable
@@ -554,21 +565,6 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:dispStatusInfo()
LOCAL nMode
::qEdit:hbGetSelectionInfo()
nMode := ::aSelectionInfo[ 5 ]
::oAC:getAction( "TB_SelectionMode" ):setIcon( hbide_image( iif( nMode == 3, "selectionline", "stream" ) ) )
::oAC:getAction( "TB_SelectionMode" ):setChecked( nMode > 1 )
::oDK:setStatusText( SB_PNL_STREAM, iif( nMode == 2, "Column", iif( nMode == 3, "Line", "Stream" ) ) )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
LOCAL key, kbm, qEvent, lAlt, lCtrl, lShift
@@ -592,6 +588,13 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
ENDIF
SWITCH ( key )
CASE Qt_Key_Backspace
IF ! lCtrl .AND. ! lAlt
IF ::getLineNo() == ::nProtoLine .AND. ::getColumnNo() <= ::nProtoCol + 1
::hidePrototype()
ENDIF
ENDIF
EXIT
CASE Qt_Key_Space
IF !lAlt .AND. !lShift .AND. !lCtrl
::lUpdatePrevWord := .t.
@@ -618,7 +621,6 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
CASE QEvent_Enter
CASE QEvent_FocusIn
::resumePrototype()
IF key == QEvent_FocusIn
::oUpDn:show()
ENDIF
@@ -630,7 +632,6 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
CASE QEvent_Leave
CASE QEvent_FocusOut
::suspendPrototype()
EXIT
CASE QEvent_Wheel
@@ -654,6 +655,9 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
ELSEIF p == 21001
::handlePreviousWord( .t. )
ELSEIF p == 21002
::loadFuncHelp()
ELSEIF p == 21011
::copyBlockContents( p1 )
@@ -678,6 +682,21 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:dispStatusInfo()
LOCAL nMode
::qEdit:hbGetSelectionInfo()
nMode := ::aSelectionInfo[ 5 ]
::oAC:getAction( "TB_SelectionMode" ):setIcon( hbide_image( iif( nMode == 3, "selectionline", "stream" ) ) )
::oAC:getAction( "TB_SelectionMode" ):setChecked( nMode > 1 )
::oDK:setStatusText( SB_PNL_STREAM, iif( nMode == 2, "Column", iif( nMode == 3, "Line", "Stream" ) ) )
RETURN Self
/*----------------------------------------------------------------------*/
STATIC FUNCTION hbide_blockContents( aContents )
LOCAL oldContents
STATIC contents := {}
@@ -2132,13 +2151,17 @@ METHOD IdeEdit:loadFuncHelp()
cWord := hbide_getPreviousWord( cText, nCol )
IF !empty( cWord )
IF ! empty( ::oHL )
::oHL:jumpToFunction( cWord )
ENDIF
IF !empty( cPro := ::oFN:positionToFunction( cWord, .t. ) )
IF empty( ::cProto )
::showPrototype( ::cProto := hbide_formatProto( cPro ) )
IF empty( cPro := ::oEM:getProto( cWord ) )
IF ! empty( ::oHL )
::oHL:jumpToFunction( cWord )
ENDIF
IF !empty( cPro := ::oFN:positionToFunction( cWord, .t. ) )
IF empty( ::cProto )
::showPrototype( ::cProto := cPro )
ENDIF
ENDIF
ELSE
::showPrototype( ::cProto := cPro )
ENDIF
ENDIF
RETURN Self
@@ -2173,10 +2196,10 @@ METHOD IdeEdit:showPrototype( cProto )
IF ! ::isSuspended .AND. !empty( ::qEdit )
IF !empty( cProto )
::cProto := cProto
::cProtoOrg := cProto
::cProto := hbide_formatProto( cProto )
::nProtoLine := ::getLineNo()
::nProtoCol := ::getColumnNo()
::qTimer:start()
ENDIF
::qEdit:hbShowPrototype( ::cProto )
ENDIF
@@ -2190,7 +2213,6 @@ METHOD IdeEdit:hidePrototype()
::nProtoLine := -1
::nProtoCol := -1
::cProto := ""
::qTimer:stop()
::qEdit:hbShowPrototype( "" )
ENDIF
RETURN Self
@@ -2208,7 +2230,7 @@ METHOD IdeEdit:parseCodeCompletion( cSyntax )
ENDIF
ELSE
IF ( n := at( "(", cSyntax ) ) > 0
cText := trim( substr( cSyntax, 1, n ) )
cText := trim( substr( cSyntax, 1, n - 1 ) )
ELSE
cText := trim( cSyntax )
ENDIF
@@ -2417,10 +2439,14 @@ FUNCTION hbide_isHarbourKeyword( cWord, oIde )
FUNCTION hbide_formatProto( cProto )
LOCAL n, n1, cArgs
cProto := StrTran( cProto, "<", "&lt;" )
cProto := StrTran( cProto, ">", "&gt;" )
n := at( "(", cProto )
n1 := at( ")", cProto )
IF n > 0 .AND. n1 > 0
cArgs := substr( cProto, n + 1, n1 - n - 1 )
cArgs := strtran( cArgs, ",", "<font color=red><b>" + "," + "</b></font>" )
cProto := "<p style='white-space:pre'>" + "<b>" + substr( cProto, 1, n - 1 ) + "</b>" + ;

View File

@@ -82,6 +82,7 @@ CLASS IdeEditsManager INHERIT IdeObject
DATA qContextMenu
DATA qContextSub
DATA aActions INIT {}
DATA aProtos INIT {}
METHOD new( oIde )
METHOD create( oIde )
@@ -169,6 +170,7 @@ CLASS IdeEditsManager INHERIT IdeObject
METHOD qscintilla()
METHOD setStyleSheet( nMode )
METHOD updateCompleter()
METHOD getProto( cWord )
ENDCLASS
@@ -236,45 +238,50 @@ METHOD IdeEditsManager:create( oIde )
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:updateCompleter()
LOCAL aFun := ::oFN:getFunctionPrototypes()
LOCAL aHrb := ::oHL:getFunctionPrototypes()
LOCAL n, s, a_, k_:={}
LOCAL aFun, aHrb, n, s, k_
/* Collection of prototypes can be extended to honor plugins and defined in "setup" */
aFun := ::oFN:getFunctionPrototypes()
aHrb := ::oHL:getFunctionPrototypes()
::disconnect( ::qCompleter, "activated(QString)", {|p| ::execEvent( "qcompleter_activated", p ) } )
FOR EACH a_ IN { aFun, aHrb }
FOR EACH s IN a_
s := trim( s )
IF ::oINI:lCompletionWithArgs
IF ascan( k_, s ) == 0
::aProtos := {}
aeval( aHrb, {|e| aadd( ::aProtos, e ) } )
aeval( aFun, {|e| aadd( ::aProtos, e ) } )
k_:= {}
FOR EACH s IN ::aProtos
s := alltrim( s )
IF ::oINI:lCompletionWithArgs
IF ascan( k_, s ) == 0
aadd( k_, s )
ENDIF
ELSE
IF ( n := at( "(", s ) ) == 0
IF ( n := at( " ", s ) ) > 0
aadd( k_, substr( s, 1, n - 1 ) )
ELSE
aadd( k_, s )
ENDIF
ELSE
IF ( n := at( "(", s ) ) == 0
IF ( n := at( " ", s ) ) > 0
aadd( k_, substr( s, 1, n - 1 ) )
ELSE
aadd( k_, trim( s ) )
ENDIF
ELSE
aadd( k_, substr( s, 1, n - 1 ) )
ENDIF
aadd( k_, trim( substr( s, 1, n - 1 ) ) )
ENDIF
NEXT
ENDIF
NEXT
asort( k_, , , {|e,f| lower( e ) < lower( f ) } )
::qProtoList:clear()
aeval( k_, {|e| ::qProtoList:append( e ) } )
::qCompleter:setWrapAround( .t. )
::qCompleter:setCaseSensitivity( Qt_CaseInsensitive )
::qCompleter:setModelSorting( QCompleter_CaseInsensitivelySortedModel )
::qCompModel:setStringList( ::qProtoList )
::qCompleter:setModel( ::qCompModel )
::qCompleter:setModelSorting( QCompleter_CaseInsensitivelySortedModel )
::qCompleter:setCaseSensitivity( Qt_CaseInsensitive )
::qCompleter:setCompletionMode( QCompleter_PopupCompletion )
::qCompleter:setWrapAround( .t. )
QListView():from( ::qCompleter:popup() ):setAlternatingRowColors( .t. )
@@ -284,6 +291,21 @@ METHOD IdeEditsManager:updateCompleter()
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:getProto( cWord )
LOCAL n, nLen
cWord := upper( cWord )
nLen := len( cWord )
/* This can be rationalized */
IF ( n := ascan( ::aProtos, {|e| upper( left( e, nLen ) ) == cWord } ) ) > 0
RETURN ::aProtos[ n ]
ENDIF
RETURN ""
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:destroy()
LOCAL a_

View File

@@ -82,17 +82,6 @@
/*----------------------------------------------------------------------*/
#define editFunc_returnPressed 101
#define editFunc_textChanged 102
#define tableFuncList_itemSelectionChanged 103
#define tableFuncList_itemDoubleClicked 104
#define buttonMark_clicked 105
#define buttonLoad_clicked 106
#define buttonTag_clicked 107
#define buttonClose_clicked 108
/*----------------------------------------------------------------------*/
CLASS IdeFunctions INHERIT IdeObject
DATA isNotSetYet INIT .t.
@@ -146,16 +135,16 @@ METHOD IdeFunctions:create( oIde )
::buildHeader()
::oUI:signal( "editFunction" , "textChanged(QString)" , {|p| ::execEvent( editFunc_textChanged, p ) } )
::oUI:signal( "editFunction" , "returnPressed()" , {| | ::execEvent( editFunc_returnPressed ) } )
::oUI:signal( "editFunction" , "textChanged(QString)" , {|p| ::execEvent( "editFunc_textChanged", p ) } )
::oUI:signal( "editFunction" , "returnPressed()" , {| | ::execEvent( "editFunc_returnPressed" ) } )
//
::oUI:signal( "buttonMark" , "clicked()" , {| | ::execEvent( buttonMark_clicked ) } )
::oUI:signal( "buttonLoad" , "clicked()" , {| | ::execEvent( buttonLoad_clicked ) } )
::oUI:signal( "buttonTag" , "clicked()" , {| | ::execEvent( buttonTag_clicked ) } )
::oUI:signal( "buttonClose" , "clicked()" , {| | ::execEvent( buttonClose_clicked ) } )
::oUI:signal( "buttonMark" , "clicked()" , {| | ::execEvent( "buttonMark_clicked" ) } )
::oUI:signal( "buttonLoad" , "clicked()" , {| | ::execEvent( "buttonLoad_clicked" ) } )
::oUI:signal( "buttonTag" , "clicked()" , {| | ::execEvent( "buttonTag_clicked" ) } )
::oUI:signal( "buttonClose" , "clicked()" , {| | ::execEvent( "buttonClose_clicked" ) } )
//
::oUI:signal( "tableFuncList", "itemSelectionChanged()" , {| | ::execEvent( tableFuncList_itemSelectionChanged ) } )
::oUI:signal( "tableFuncList", "itemDoubleClicked(QTblWItem)", {|p| ::execEvent( tableFuncList_itemDoubleClicked, p ) } )
::oUI:signal( "tableFuncList", "itemSelectionChanged()" , {| | ::execEvent( "tableFuncList_itemSelectionChanged" ) } )
::oUI:signal( "tableFuncList", "itemDoubleClicked(QTblWItem)", {|p| ::execEvent( "tableFuncList_itemDoubleClicked", p ) } )
RETURN Self
@@ -165,35 +154,36 @@ METHOD IdeFunctions:execEvent( nMode, p )
LOCAL n, nLen
DO CASE
CASE nMode == editFunc_textChanged
CASE nMode == "editFunc_textChanged"
p := upper( p )
nLen := len( p )
IF ( n := ascan( ::aList, {|e_| left( e_[ 1 ], nLen ) == p } ) ) > 0
::oUI:q_tableFuncList:setCurrentItem( ::aItems[ n ] )
ENDIF
CASE nMode == editFunc_returnPressed
CASE nMode == "editFunc_returnPressed"
::openFunction( .f. )
CASE nMode == tableFuncList_itemDoubleClicked
CASE nMode == "tableFuncList_itemDoubleClicked"
::openFunction( .f. )
CASE nMode == buttonMark_clicked
CASE nMode == "buttonMark_clicked"
::oUI:q_listProjects:show()
::listProjects()
CASE nMode == buttonLoad_clicked
CASE nMode == "buttonLoad_clicked"
::oUI:q_listProjects:hide()
::loadTags()
CASE nMode == buttonTag_clicked
CASE nMode == "buttonTag_clicked"
::oUI:q_listProjects:hide()
::buildTags()
::oEM:updateCompleter()
CASE nMode == buttonClose_clicked
CASE nMode == "buttonClose_clicked"
::oFunctionsDock:hide()
CASE nMode == tableFuncList_itemSelectionChanged
CASE nMode == "tableFuncList_itemSelectionChanged"
n := ::oUI:q_tableFuncList:currentRow()
IF n >= 0
::oUI:q_editSyntax:setText( ::aList[ n + 1, 2 ] )
@@ -617,8 +607,6 @@ METHOD IdeFunctions:populateTable()
::oUI:q_labelEntries:setText( "Entries: " + hb_ntos( n ) )
NEXT
::oEM:updateCompleter()
RETURN Self
/*----------------------------------------------------------------------*/

View File

@@ -222,8 +222,6 @@ METHOD IdeHarbourHelp:show()
::populateRootInfo()
::refreshDocTree()
::oEM:updateCompleter()
ENDIF
RETURN Self
@@ -499,6 +497,8 @@ METHOD IdeHarbourHelp:execEvent( nMode, p, p1 )
CASE "buttonRefresh_clicked"
::refreshDocTree()
::aProtoTypes := {}
::lLoadedProto := .f.
::oEM:updateCompleter()
EXIT

View File

@@ -78,6 +78,7 @@
:hbHighlightArea( nTop, nLeft, nBottom, nRight, nMode ) -> NIL
:hbTogglePersistentSelection() -> NIL
:hbHorzRulerVisible( lVisible ) -> NIL
:hbSetProtoStyle( cCss ) -> NIL
$DESCRIPTION$

View File

@@ -145,6 +145,17 @@ HBQPlainTextEdit::HBQPlainTextEdit( QWidget * parent ) : QPlainTextEdit( parent
setContentsMargins( 0,0,0,0 );
ttFrame = new QFrame( this );
ttFrame->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
ttLayout = new QHBoxLayout( ttFrame );
ttFrame->setLayout( ttLayout );
ttLabel = new QLabel();
ttLabel->setText( "" );
hbSetProtoStyle();
ttLayout->addWidget( ttLabel );
ttFrame->setFocusPolicy( Qt::NoFocus );
ttFrame->hide();
#if 0
timer = new QTimer( this );
connect( timer, SIGNAL( timeout() ), this, SLOT( hbUpdateCaret() ) );
@@ -203,18 +214,35 @@ void HBQPlainTextEdit::hbRefresh()
/*----------------------------------------------------------------------*/
void HBQPlainTextEdit::hbSetProtoStyle( const QString & css )
{
if( css == ( QString ) "" )
ttLabel->setStyleSheet( "background-color: rgb(255,255,174); border: 1px solid black; padding: 3px;" );
else
ttLabel->setStyleSheet( css );
}
/*----------------------------------------------------------------------*/
void HBQPlainTextEdit::hbShowPrototype( const QString & tip )
{
ttLabel->setText( tip );
if( tip == ( QString ) "" )
{
QToolTip::hideText();
isTipActive = false;
ttFrame->hide();
}
else
{
QRect r = HBQPlainTextEdit::cursorRect();
QToolTip::showText( mapToGlobal( QPoint( r.x(), r.y()+20 ) ), tip );
isTipActive = true;
QRect r = HBQPlainTextEdit::cursorRect();
ttFrame->setMaximumWidth( viewport()->width() );
int w = ttLabel->width();
int x = r.x()-r.width();
x = x + w > viewport()->width() ? viewport()->width() - w : x;
ttFrame->move( x, r.y() + 7 );
ttFrame->show();
}
}
@@ -1255,13 +1283,6 @@ bool HBQPlainTextEdit::hbKeyPressSelection( QKeyEvent * event )
void HBQPlainTextEdit::keyPressEvent( QKeyEvent * event )
{
//HB_TRACE( HB_TR_ALWAYS, ( "keyPressEvent %i 000", event->key() ) );
if( hbKeyPressSelection( event ) )
{
// QApplication::processEvents();
return;
}
//HB_TRACE( HB_TR_ALWAYS, ( "keyPressEvent %i", event->key() ) );
if( c && c->popup()->isVisible() )
{
// The following keys are forwarded by the completer to the widget
@@ -1281,16 +1302,33 @@ void HBQPlainTextEdit::keyPressEvent( QKeyEvent * event )
hb_itemRelease( p1 );
}
break;
case Qt::Key_ParenLeft:
if( block ){
PHB_ITEM p1 = hb_itemPutNI( NULL, 21002 );
hb_vmEvalBlockV( block, 1, p1 );
hb_itemRelease( p1 );
}
break;
default:
break;
}
}
if( hbKeyPressSelection( event ) )
{
return;
}
QPlainTextEdit::keyPressEvent( event );
if( ! c )
return;
if( isTipActive )
{
c->popup()->hide();
return;
}
if( ( event->modifiers() & ( Qt::ControlModifier | Qt::AltModifier ) ) )
{
c->popup()->hide();
@@ -1321,6 +1359,8 @@ void HBQPlainTextEdit::keyPressEvent( QKeyEvent * event )
}
QRect cr = cursorRect();
c->popup()->setMaximumWidth( viewport()->width() );
cr.setWidth( c->popup()->sizeHintForColumn( 0 ) + c->popup()->verticalScrollBar()->sizeHint().width() );
cr.setTop( cr.top() + horzRulerHeight + 5 );
cr.setBottom( cr.bottom() + horzRulerHeight + 5 );
@@ -1917,6 +1957,14 @@ void HBQPlainTextEdit::hbUpdateHorzRuler( const QRect & rect, int dy )
if( dy == 0 )
horzRuler->update();
if( dy != 0 )
{
if( isTipActive )
{
ttFrame->move( ttFrame->x(), ttFrame->y() + dy );
}
}
}
/*----------------------------------------------------------------------*/

View File

@@ -67,6 +67,8 @@
#include <QtGui/QAbstractItemView>
#include <QtGui/QScrollBar>
#include <QtGui/QToolTip>
#include <QtGui/QVBoxLayout>
#include <QtGui/QLabel>
#include "hbqt_hbqsyntaxhighlighter.h"
@@ -121,6 +123,9 @@ private:
QList<int> bookMarksGoto;
QWidget * lineNumberArea;
QFrame * horzRuler;
QFrame * ttFrame;
QHBoxLayout * ttLayout;
QLabel * ttLabel;
int spaces;
bool numberBlock;
bool highlightCurLine;
@@ -206,6 +211,7 @@ public slots:
void hbHighlightArea( int, int, int, int, int );
void hbTogglePersistentSelection();
void hbHorzRulerVisible( bool visible ) { hbUpdateHorzRulerHeight( visible ? 20 : 0 ); };
void hbSetProtoStyle( const QString & css = "" );
private slots:
void hbSlotCursorPositionChanged();

View File

@@ -860,6 +860,20 @@ HB_FUNC( QT_HBQPLAINTEXTEDIT_HBHORZRULERVISIBLE )
}
}
/*
* void hbSetProtoStyle( const QString & css )
*/
HB_FUNC( QT_HBQPLAINTEXTEDIT_HBSETPROTOSTYLE )
{
HBQPlainTextEdit * p = hbqt_par_HBQPlainTextEdit( 1 );
if( p )
( p )->hbSetProtoStyle( HBQPlainTextEdit::tr( hb_parc( 2 ) ) );
else
{
HB_TRACE( HB_TR_DEBUG, ( "............................... F=QT_HBQPLAINTEXTEDIT_HBSETPROTOSTYLE FP=( p )->hbSetProtoStyle( HBQPlainTextEdit::tr( hb_parc( 2 ) ) ); p is NULL" ) );
}
}
/*----------------------------------------------------------------------*/
#endif /* #if QT_VERSION >= 0x040500 */

View File

@@ -117,6 +117,7 @@ CREATE CLASS HBQPlainTextEdit INHERIT HbQtObjectHandler, QPlainTextEdit
METHOD hbHighlightArea( nTop, nLeft, nBottom, nRight, nMode )
METHOD hbTogglePersistentSelection()
METHOD hbHorzRulerVisible( lVisible )
METHOD hbSetProtoStyle( cCss )
ENDCLASS
@@ -329,3 +330,7 @@ METHOD HBQPlainTextEdit:hbTogglePersistentSelection()
METHOD HBQPlainTextEdit:hbHorzRulerVisible( lVisible )
RETURN Qt_HBQPlainTextEdit_hbHorzRulerVisible( ::pPtr, lVisible )
METHOD HBQPlainTextEdit:hbSetProtoStyle( cCss )
RETURN Qt_HBQPlainTextEdit_hbSetProtoStyle( ::pPtr, cCss )

View File

@@ -148,6 +148,7 @@ HB_FUNC( QT_HBQPLAINTEXTEDIT )
void hbHighlightArea( int top, int left, int bottom, int right, int mode )
void hbTogglePersistentSelection()
void hbHorzRulerVisible( bool visible )
void hbSetProtoStyle( const QString & css )
</SLOTS>