2012-07-13 15:57 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbqt/qtgui/hbqtgui.ch
  * contrib/hbqt/hbmk2_qt.hb
    + Applied: patch received from Ryszard Glab ( with my fixes of one overlook ).
      fixes:
        - some issues with QApplication:translation method 
        - it allows for binding QAction to a window for wchich the action 
          was deined, for example, 
            if SomeDialog.ui file has actions defined then virtual methods:
            <actionName>_triggered is added to UI_SomeDialog class.

      Thanks Ryszard, it is pleasure to see you on-board again.
This commit is contained in:
Pritpal Bedi
2012-07-13 23:04:02 +00:00
parent 2173ae9ea5
commit 847fd913ab
3 changed files with 206 additions and 42 deletions

View File

@@ -16,6 +16,19 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-07-13 15:57 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/qtgui/hbqtgui.ch
* contrib/hbqt/hbmk2_qt.hb
+ Applied: patch received from Ryszard Glab ( with my fixes of one overlook ).
fixes:
- some issues with QApplication:translation method
- it allows for binding QAction to a window for wchich the action
was deined, for example,
if SomeDialog.ui file has actions defined then virtual methods:
<actionName>_triggered is added to UI_SomeDialog class.
Thanks Ryszard, it is pleasure to see you on-board again.
2012-07-12 23:33 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideeditor.prg

View File

@@ -32,6 +32,7 @@
#include "directry.ch"
#include "hbclass.ch"
#include "error.ch"
#define I_( x ) hb_i18n_gettext( x )
@@ -573,7 +574,7 @@ STATIC FUNCTION uic_to_prg( hbmk, cFileNameSrc, cFileNameDst, cName )
#define HBQTUI_STRINGIFY( cStr ) '"' + cStr + '"'
#define HBQTUI_PAD_30( cStr ) PadR( cStr, Max( Len( cStr ), 35 ) )
#define HBQTUI_STRIP_SQ( cStr ) StrTran( StrTran( StrTran( StrTran( s, "[", " " ), "]", " " ), "\n", " " ), Chr( 10 ), " " )
#define HBQTUI_STRIP_SQ( cStr ) StrTran( StrTran( StrTran( StrTran( cStr, "[", " " ), "]", " " ), "\n", " " ), Chr( 10 ), " " )
STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
LOCAL s
@@ -588,6 +589,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
LOCAL cCmd
LOCAL aReg
LOCAL aLinesPRG
LOCAL aMethodCalls := { { "QObject_connect( ", {| s | hbqtui_qobject_connect( s ) } } }
LOCAL regEx := hb_regexComp( "\bQ[A-Za-z_]+ \b" )
@@ -595,6 +597,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
LOCAL aWidgets := {}
LOCAL aCommands := {}
LOCAL aCalls := {}
lCreateFinished := .F.
@@ -623,13 +626,18 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
ENDIF
NEXT
FOR EACH s IN aLines
IF ! Empty( s )
hbqtui_replaceConstants( @s ) /* Replace Qt::* with Harbour constants */
ENDIF
NEXT
FOR EACH s IN aLines
IF ! Empty( s )
/* Replace Qt::* with actual values */
hbqtui_replaceConstants( @s )
hbqtui_QAppTranslate( @s )
// hbqtui_replaceConstants( @s )
IF "setupUi" $ s
lCreateFinished := .T.
@@ -638,6 +646,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
/* It is the test for main widget's objectName, leave it. */
ELSEIF Left( s, 1 ) == "Q" .AND. ! lCreateFinished .AND. ( n := At( "*", s ) ) > 0
HB_SYMBOL_UNUSED( n )
/* We will deal later - just skip */
ELSEIF hbqtui_notAString( s ) .AND. ! Empty( aReg := hb_regex( regEx, s ) )
@@ -654,13 +663,16 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
ELSEIF hbqtui_isNonImplementedMethod( s )
/* Do nothing */
ELSEIF ( n := hbqtui_isSupportedMethodCall( s, aMethodCalls ) ) > 0
AAdd( aCalls, Eval( aMethodCalls[ n ][ 2 ], s ) )
ELSEIF ! Empty( cText := hbqtui_pullSetToolTip( aLines, s:__enumIndex() ) )
n := At( "->", cText )
cNam := AllTrim( SubStr( cText, 1, n - 1 ) )
cCmd := hbqtui_formatCommand( SubStr( cText, n + 2 ), .T., aWidgets )
AAdd( aCommands, { cNam, cCmd } )
AAdd( aCommands, { cNam, hbqtui_pullTranslate( cCmd ) } )
ELSEIF ! Empty( cText := hbqui_pullText( aLines, s:__enumIndex() ) )
ELSEIF ! Empty( cText := hbqtui_pullText( aLines, s:__enumIndex() ) )
n := At( "->", cText )
cNam := AllTrim( SubStr( cText, 1, n - 1 ) )
cCmd := hbqtui_formatCommand( SubStr( cText, n + 2 ), .T., aWidgets )
@@ -688,7 +700,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
cNam := SubStr( s, 1, n - 1 )
cCmd := hbqtui_formatCommand( SubStr( s, n + 2 ), .F., aWidgets )
cCmd := hbqtui_setObjects( cCmd, aWidgets )
AAdd( aCommands, { cNam, cCmd } )
AAdd( aCommands, { cNam, hbqtui_pullTranslate( cCmd ) } )
ELSEIF ( n := At( "= new", s ) ) > 0
IF ( n1 := At( "*", s ) ) > 0 .AND. n1 < n
@@ -719,12 +731,12 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName )
AAdd( aLinesPRG, " RETURN " + StrTran( cFuncName, "hbqtui_", "ui_" ) + "():new( oParent )" )
AAdd( aLinesPRG, "" )
hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aLinesPRG )
hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aCalls, aLinesPRG )
RETURN aLinesPRG
STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aLinesPRG )
LOCAL item, cClass, cNam, cCmd, s
STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aCalls, aLinesPRG )
LOCAL item, cClass, cNam, cCmd
cClass := strtran( cFuncName, "hbqtui_", "ui_" )
@@ -738,10 +750,16 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL
NEXT
AAdd( aLinesPRG, "" )
AAdd( aLinesPRG, " METHOD init( oParent )" )
AAdd( aLinesPRG, " METHOD destroy() INLINE ::oWidget:setParent( QWidget() )" )
AAdd( aLinesPRG, " METHOD destroy() INLINE ::oWidget:setParent( QWidget() )" )
AAdd( aLinesPRG, "" )
AAdd( aLinesPRG, " ERROR HANDLER __OnError( ... )" )
AAdd( aLinesPRG, "" )
FOR EACH item IN aWidgets
IF At( "QAction", item[ 1 ] ) > 0
AAdd( aLinesPRG, " MESSAGE " + PadR( item[ 2 ] + "_triggered()", max( 38, Len( item[ 2 ] + "_triggered()" ) ) ) + " VIRTUAL" )
ENDIF
NEXT
AAdd( aLinesPRG, "" )
AAdd( aLinesPRG, "ENDCLASS" )
AAdd( aLinesPRG, "" )
AAdd( aLinesPRG, "" )
@@ -765,6 +783,7 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL
AAdd( aLinesPRG, " ::" + PadR( item[ 2 ], 34 ) + " := " + hbqtui_hashToObj( item[ 4 ] ) )
ELSE
AAdd( aLinesPRG, " ::" + PadR( item[ 2 ], 34 ) + " := " + "::oWidget" )
AAdd( aLinesPRG, "" )
ENDIF
NEXT
AAdd( aLinesPRG, "" )
@@ -776,32 +795,45 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL
cCmd := StrTran( cCmd, "false", ".F." )
IF "setToolTip(" $ cCmd
s := hbqtui_pullToolTip( cCmd )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setToolTip( [" + HBQTUI_STRIP_SQ( s ) + "] )" )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) )
ELSEIF "setPlainText(" $ cCmd
s := hbqtui_pullToolTip( cCmd )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setPlainText( [" + HBQTUI_STRIP_SQ( s ) + "] )" )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + cCmd )
ELSEIF "setStyleSheet(" $ cCmd
s := hbqtui_pullToolTip( cCmd )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setStyleSheet( [" + HBQTUI_STRIP_SQ( s ) + "] )" )
hbqtui_stripFront( @cCmd, "(" )
hbqtui_stripRear( @cCmd, ")" )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setStyleSheet( " + HBQTUI_STRIP_SQ( cCmd ) + " )" )
ELSEIF "setText(" $ cCmd
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) )
ELSEIF "setWhatsThis(" $ cCmd
s := hbqtui_pullToolTip( cCmd )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setWhatsThis( [" + HBQTUI_STRIP_SQ( s ) + "] )" )
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) )
ELSEIF "header()->" $ cCmd
/* TODO: how to handle : __qtreeviewitem->header()->setVisible( .F. ) */
ELSEIF cCmd == "pPtr"
/* Nothing TO DO */
ELSE
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_hashToObj( cCmd ) )
ENDIF
NEXT
AAdd( aLinesPRG, "" )
FOR EACH item IN aWidgets
IF item[ 1 ] == "QAction"
AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( item[ 2 ] ) + ": connect( " + '"triggered()", {|| ::' + item[ 2 ] + "_triggered() } )" )
ENDIF
NEXT
/* supported method calls */
AAdd( aLinesPRG, "" )
FOR EACH item IN aCalls
AAdd( aLinesPRG, " " + item )
NEXT
AAdd( aLinesPRG, "" )
AAdd( aLinesPRG, " RETURN Self" )
AAdd( aLinesPRG, "" )
@@ -854,12 +886,6 @@ STATIC FUNCTION hbqtui_hashToObj( cCmd )
RETURN cCmd
STATIC FUNCTION hbqtui_QAppTranslate( cCmd )
IF "QApplication_translate" $ cCmd
cCmd := hbqtui_pullTranslate( cCmd )
ENDIF
RETURN cCmd
STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets )
LOCAL regDefine
LOCAL aDefine
@@ -874,14 +900,10 @@ STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets )
lText := .T.
ENDIF
// cCmd := StrTran( cCmd, "QApplication_translate" , "q__tr" )
cCmd := StrTran( cCmd, "QApplication::UnicodeUTF8", '"UTF8"' )
cCmd := StrTran( cCmd, "QString()" , '""' )
cCmd := StrTran( cCmd, "QSize(" , "QSize(" )
cCmd := StrTran( cCmd, "QRect(" , "QRect(" )
cCmd := StrTran( cCmd, "QString()", ' "" ' )
IF "::" $ cCmd
regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z_]+\b" )
regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z0-9_]+\b" )
aDefine := hb_regex( regDefine, cCmd )
IF ! Empty( aDefine )
cCmd := StrTran( cCmd, "::", "_" ) /* Qt Defines - how to handle */
@@ -905,24 +927,90 @@ STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets )
STATIC FUNCTION hbqtui_pullTranslate( cCmd )
LOCAL n, n1, n2, n3, n4, cArgs, cText
LOCAL cName
LOCAL cEnd
LOCAL cDisamb
LOCAL oError
IF ( n := at( "QApplication_translate", cCmd ) ) > 0
/* Examples:
object->setWindowTitle(QApplication_translate("DialogName", "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8))
object->setWindowTitle(QApplication::translate("FormEnvironments", "Form", 0, QApplication::UnicodeUTF8));
object->setToolTip(QString());
object->setWhatsThis(QApplication::translate("FormEnvironments", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt;\">HBIDE employes the concept of keeping everything tied together. It means all complier specific environments are kept together in a convinient way and applied as per need.</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;\"></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" fo"
"nt-size:8pt;\">So here you view/edit all the environments you employ in your applications. At the time you will build the project, a list of stated environments will be presented to choose from.</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;\"></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt;\">This opens up the possibility to experiment with different compilers without re-opening the IDE or setting up the envvars manually.</span></p></body></html>", 0, QApplication::UnicodeUTF8));
*/
IF ( n := At( "QApplication_translate", cCmd ) ) > 0
n1 := hb_at( "(", cCmd, n )
n2 := hb_rat( ")", cCmd )
cArgs := SubStr( cCmd, n1 + 1, n2 - n1 - 2 )
/* "DialogName", "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8 */
n3 := at( ",", cArgs )
n4 := hb_at( ",", cArgs, n3 + 1 )
cText := StrTran( AllTrim( SubStr( cArgs, n3 + 1, n4 - n3 - 2 ) ), '"' )
cName := SubStr( cArgs, 2, n3 - 3 )
cArgs := SubStr( cArgs, n3 + 1 )
/* "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8 */
IF ( n4 := At( "QApplication_UnicodeUTF8", cArgs ) ) > 0
cEnd := SubStr( cArgs, n4 ) /* "QApplication_UnicodeUTF8" */
ELSEIF ( n4 := At( "QApplication_CodecForTr", cArgs ) ) > 0
cEnd := SubStr( cArgs, n4 ) /* "QApplication_CodecForTr" */
ELSE
oError := ErrorNew()
oError:severity := ES_ERROR
oError:genCode := EG_ARG
oError:subSystem := "HBMK2"
oError:subCode := 1001
oError:canRetry := .F.
oError:canDefault := .F.
oError:Args := cCmd
oError:operation := ProcName()
oError:Description := "Unsupported QT-encoding in QApplication:translate() call"
Eval( ErrorBlock(), oError )
ENDIF
cCmd := SubStr( cCmd, 1, n - 1 ) + ' "' + cText + '" ' + ")"
IF ! Empty( cEnd )
/* Known translation */
cArgs := Left( cArgs, n4 - 1 )
/* "[Dialog Title]\"\303\263Title\"", 0, */
n4 := hb_RAt( ",", cArgs )
cArgs := Left( cArgs, n4 - 1 )
/* "[Dialog Title]\"\303\263Title\"", 0 */
n4 := hb_RAt( ",", cArgs )
cDisamb := AllTrim( SubStr( cArgs, n4 + 1 ) )
IF cDisamb == "0"
cDisamb := '""'
ENDIF
cArgs := AllTrim( Left( cArgs, n4 - 1 ) )
// cArgs := HB_STRDECODESCAPE( SubStr( cArgs, 2, Len( cArgs ) - 2 ) )
IF "DOCTYPE HTML PUBLIC" $ cArgs
cArgs := StrTran( cArgs, '\"', '"' )
cArgs := StrTran( cArgs, '\n', " " )
cArgs := StrTran( cArgs, '""' )
cArgs := "[" + Substr( cArgs, 2, Len( cArgs ) - 2 ) + "]"
cText := ' QApplication():translate( "' + cName + '", ' + cArgs + ', ' + cDisamb + ', ' + cEnd + " )"
ELSE
cText := ' QApplication():translate( "' + cName + '", e' + cArgs + ', ' + cDisamb + ', ' + cEnd + " )"
ENDIF
/* Finally translate to CP used by application */
cCmd := SubStr( cCmd, 1, n - 1 ) + cText + " )"
ENDIF
ENDIF
RETURN cCmd
STATIC FUNCTION hbqtui_isNonImplementedMethod( cString )
LOCAL cMethod, aMethods := {}
AAdd( aMethods, "setAccessibleName" )
AAdd( aMethods, "setAccessibleName" ) /* Add other methods which could not been implemented in HbQt */
FOR EACH cMethod IN aMethods
IF cMethod $ cString
@@ -955,6 +1043,36 @@ STATIC FUNCTION hbqtui_occurs( cString, cCharToFind )
RETURN nCount
STATIC FUNCTION hbqtui_isSupportedMethodCall( cString, aMethodCalls )
LOCAL aMethod
FOR EACH aMethod IN aMethodCalls
IF aMethod[ 1 ] $ cString
RETURN aMethod:__enumIndex()
ENDIF
NEXT
RETURN 0
STATIC FUNCTION hbqtui_qobject_connect( cString )
LOCAL cCall
LOCAL n, n2, n4
LOCAL aPar
/* QObject::connect( buttonOK, SIGNAL( clicked() ), actionName, SLOT( trigger() ) ); */
cString := StrTran( cString, "QObject_connect", "hbqt_connect" )
n := At( "(", cString )
aPar := hb_aTokens( SubStr( cString, n + 1, Len( cString ) - n - 1 ), "," )
n2 := At( "(", aPar[ 2 ] )
n4 := At( "(", aPar[ 4 ] )
cCall := Left( cString, n ) +;
"::" + AllTrim( aPar[ 1 ] ) + ', ' +;
'"' + SubStr( aPar[ 2 ], n2 + 1, Len( aPar[ 2 ] ) - n2 - 1 ) + '", ' +;
"::" + AllTrim( aPar[ 3 ] ) + ', ' +;
'"' + SubStr( aPar[ 4 ], n4 + 1, Len( aPar[ 4 ] ) - n4 - 1 ) + '" ) '
RETURN cCall
STATIC FUNCTION hbqtui_pullColumn( cCmd, nCol )
IF "(0," $ cCmd
@@ -989,13 +1107,22 @@ STATIC PROCEDURE hbqtui_replaceConstants( /* @ */ cString )
LOCAL cCmdB
LOCAL cCmdE
LOCAL cOR
LOCAL n, n1
LOCAL n, n1, n2, n3
LOCAL regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z_]+\b" )
LOCAL regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z0-9_]+\b" )
IF ( n := At( "QString::fromUtf8(", cString ) ) > 0
IF At( 'QString::fromUtf8("")', cString ) > 0
cString := StrTran( cString, 'QString::fromUtf8("")', '""' )
ELSEIF ( n := At( "QString::fromUtf8(", cString ) ) > 0
n2 := hb_At( '"', cString, n )
n3 := hb_At( '"', cString, n2 + 1 )
n1 := hb_At( ")", cString, n )
cString := SubStr( cString, 1, n - 1 ) + SubStr( cString, n + Len( "QString::fromUtf8(" ), n1 - ( n + Len( "QString::fromUtf8(" ) ) ) + SubStr( cString, n1 + 1 )
IF n2 < n1 .AND. n1 < n3
n1 := hb_At( ")", cString, n3 + 1 )
ENDIF
cString := SubStr( cString, 1, n - 1 ) + substr( cString, n + len( "QString::fromUtf8(" ), n1 - ( n + len( "QString::fromUtf8(" ) ) ) + SubStr( cString, n1 + 1 )
ENDIF
IF hbqtui_occurs( cString, "|" ) > 0
@@ -1051,7 +1178,7 @@ STATIC FUNCTION hbqtui_setObjects( cCmd, aWidgets )
RETURN cCmd
STATIC FUNCTION hbqui_pullText( aLines, nFrom )
STATIC FUNCTION hbqtui_pullText( aLines, nFrom )
LOCAL cString := ""
LOCAL nLen := Len( aLines )
LOCAL aKeyword := { "setText(", "setPlainText(", "setStyleSheet(", "setWhatsThis(" }

View File

@@ -1407,6 +1407,15 @@
#define Qt_WMacNoSheet 0 // No longer needed.
//Input Methods Hints
#define Qt_ImhHiddenText 0x1 // Characters should be hidden, as is typically used when entering passwords. This is automatically set when setting QLineEdit::echoMode to Password.
#define Qt_ImhNoAutoUppercase 0x2 // The input method should not try to automatically switch to upper case when a sentence ends.
#define Qt_ImhPreferNumbers 0x4 // Numbers are preferred (but not required).
#define Qt_ImhPreferUppercase 0x8 // Upper case letters are preferred (but not required).
#define Qt_ImhPreferLowercase 0x10 // Lower case letters are preferred (but not required).
#define Qt_ImhNoPredictiveText 0x20 // Do not use predictive text (i.e. dictionary lookup) while typing.
// Frame Shadow
#define QFrame_Plain 0x0010 // the frame and contents appear level with the surroundings; draws using the palette QPalette::WindowText color (without any 3D effect)
#define QFrame_Raised 0x0020 // the frame and contents appear raised; draws a 3D raised line using the light and dark colors of the current color group
@@ -2353,6 +2362,20 @@
#define QDeclarativeEngine_CppOwnership 0 // The object is owned by C++ code, and will never be deleted by QML. The JavaScript destroy() method cannot be used on objects with CppOwnership. This option is similar to QScriptEngine::QtOwnership.
#define QDeclarativeEngine_JavaScriptOwnership 1 // The object is owned by JavaScript. When the object is returned to QML as the return value of a method call or property access, QML will delete the object if there are no remaining JavaScript references to it and it has no QObject::parent(). This option is similar to QScriptEngine::ScriptOwnership.
//MenuRole of Qaction
#define QAction_NoRole 0 // This action should not be put into the application menu
#define QAction_TextHeuristicRole 1 // This action should be put in the application menu based on the action's text as described in the QMenuBar documentation.
#define QAction_ApplicationSpecificRole 2 // This action should be put in the application menu with an application specific role
#define QAction_AboutQtRole 3 // This action matches handles the "About Qt" menu item.
#define QAction_AboutRole 4 // This action should be placed where the "About" menu item is in the application menu. The text of the menu item will be set to "About <application name>". The application name is fetched from the Info.plist file in the application's bundle (See Deploying an Application on Mac OS X).
#define QAction_PreferencesRole 5 // This action should be placed where the "Preferences..." menu item is in the application menu.
#define QAction_QuitRole 6 // This action should be placed where the Quit menu item is in the application menu.
//QApplication:Translate
#define QApplication_CodecForTr 0 // The encoding specified by QTextCodec::codecForTr() (Latin-1 if none has been set).
#define QApplication_UnicodeUTF8 1 // UTF-8
#define QLCDNumber_Hex 0 // Hexadecimal
#define QLCDNumber_Dec 1 // Decimal
#define QLCDNumber_Oct 2 // Octal
@@ -2366,6 +2389,7 @@
#define QValidator_Intermediate 1 // The string is a plausible intermediate value.
#define QValidator_Acceptable 2 // The string is acceptable as a final result; i.e. it is valid.
/*----------------------------------------------------------------------*/
// HBQT Defined Constants
/*----------------------------------------------------------------------*/