2010-07-04 09:08 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/xbpmenubar.prg
! Added "style" management method - unique to Harbour.
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-07-04 09:08 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbxbp/xbpmenubar.prg
|
||||
! Added "style" management method - unique to Harbour.
|
||||
|
||||
2010-07-04 08:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbqt/hbqt.ch
|
||||
* contrib/hbqt/hbqt_hbslots.cpp
|
||||
|
||||
@@ -148,6 +148,8 @@ CLASS xbpMenuBar INHERIT xbpWindow
|
||||
METHOD setStyle()
|
||||
METHOD numItems() INLINE len( ::aMenuItems )
|
||||
|
||||
METHOD setStyleSheet( cCSS, cCSSPops )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -180,9 +182,8 @@ METHOD xbpMenuBar:create( oParent, aPresParams, lVisible )
|
||||
|
||||
::xbpWindow:create( ::oParent, , , , ::aPresParams, ::visible )
|
||||
|
||||
::oWidget := QMenuBar():new( ::oParent:pWidget )
|
||||
|
||||
::oParent:oWidget:setMenuBar( ::pWidget )
|
||||
::oWidget := QMenuBar():new()
|
||||
::oParent:oWidget:setMenuBar( ::oWidget )
|
||||
|
||||
if !empty( ::oWidget )
|
||||
::oParent:oMenu := Self
|
||||
@@ -541,15 +542,15 @@ METHOD xbpMenuBar:execSlot( cSlot, p )
|
||||
ELSE
|
||||
::itemSelected( nIndex )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
ELSEIF cSlot == "hovered()"
|
||||
IF !empty( p )
|
||||
ENDIF
|
||||
|
||||
ELSEIF cSlot == "hovered()"
|
||||
IF !empty( p )
|
||||
IF ( nIndex := ascan( ::aMenuItems, {|e_| iif( hb_isNumeric( e_[ 2 ] ), e_[ 2 ] == p, .f. ) } ) ) > 0
|
||||
::itemMarked( nIndex )
|
||||
::itemMarked( nIndex )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
|
||||
RETURN nil
|
||||
@@ -562,7 +563,7 @@ METHOD xbpMenuBar:beginMenu( ... )
|
||||
::sl_beginMenu := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_beginMenu )
|
||||
eval( ::sl_beginMenu, NIL, NIL, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -573,7 +574,7 @@ METHOD XbpMenuBar:endMenu( ... )
|
||||
::sl_endMenu := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_endMenu )
|
||||
eval( ::sl_endMenu, NIL, NIL, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -584,31 +585,31 @@ METHOD XbpMenuBar:itemMarked( ... )
|
||||
::sl_itemMarked := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_itemMarked )
|
||||
eval( ::sl_itemMarked, a_[ 1 ], NIL, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
METHOD XbpMenuBar:itemSelected( ... )
|
||||
LOCAL a_:= hb_aParams()
|
||||
IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] )
|
||||
::sl_itemSelected := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_itemSelected )
|
||||
eval( ::sl_itemSelected, a_[ 1 ], NIL, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
METHOD XbpMenuBar:drawItem( ... )
|
||||
LOCAL a_:= hb_aParams()
|
||||
IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] )
|
||||
::sl_drawItem := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_drawItem )
|
||||
eval( ::sl_drawItem, a_[ 1 ], a_[ 2 ], Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD XbpMenuBar:measureItem( ... )
|
||||
@@ -617,9 +618,9 @@ METHOD XbpMenuBar:measureItem( ... )
|
||||
::sl_measureItem := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_measureItem )
|
||||
eval( ::sl_measureItem, a_[ 1 ], a_[ 2 ], Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD XbpMenuBar:onMenuKey( ... )
|
||||
@@ -628,11 +629,32 @@ METHOD XbpMenuBar:onMenuKey( ... )
|
||||
::sl_onMenuKey := a_[ 1 ]
|
||||
ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_onMenuKey )
|
||||
eval( ::sl_onMenuKey, a_[ 1 ], NIL, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD xbpMenuBar:setStyleSheet( cCSS, cCSSPops )
|
||||
#if 0
|
||||
LOCAL aChild
|
||||
|
||||
FOR EACH aChild IN ::aItems
|
||||
IF hb_isObject( aChild[ 1 ] == QMF_POPUP )
|
||||
aChild[ 2 ]:setStyleSheet( cCSSPops )
|
||||
ENDIF
|
||||
NEXT
|
||||
#endif
|
||||
LOCAL oMenu
|
||||
|
||||
FOR EACH oMenu IN ::aChildren
|
||||
oMenu:setStyleSheet( cCSSPops )
|
||||
NEXT
|
||||
::oWidget:setStyleSheet( cCSS )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD xbpMenuBar:setStyle()
|
||||
LOCAL txt_:={}
|
||||
LOCAL s
|
||||
@@ -646,6 +668,7 @@ METHOD xbpMenuBar:setStyle()
|
||||
aadd( txt_, ' spacing: 3px; /* spacing between menu bar items */ ' )
|
||||
aadd( txt_, ' padding: 1px 4px; ' )
|
||||
aadd( txt_, ' background: transparent; ' )
|
||||
aadd( txt_, ' color: #a8a8a8; ' )
|
||||
aadd( txt_, ' border-radius: 4px; ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, ' ' )
|
||||
@@ -684,6 +707,7 @@ CLASS xbpMenu INHERIT xbpMenuBar
|
||||
METHOD setTitle( cTitle )
|
||||
METHOD popUp( oXbp, aPos, nDefaultItem, nControl )
|
||||
METHOD setStyle()
|
||||
METHOD setStyleSheet( cCSS )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -748,6 +772,18 @@ METHOD xbpMenu:popUp( oXbp, aPos, nDefaultItem, nControl )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD xbpMenu:setStyleSheet( cCSS )
|
||||
LOCAL oMenu
|
||||
|
||||
FOR EACH oMenu IN ::aChildren
|
||||
oMenu:setStyleSheet( cCSS )
|
||||
NEXT
|
||||
::oWidget:setStyleSheet( cCSS )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD xbpMenu:setStyle()
|
||||
LOCAL s, txt_:={}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user