2010-02-16 18:31 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

+ contrib/hbide/resources/cutb16.png
  + contrib/hbide/resources/dbl2sglquote.png
  + contrib/hbide/resources/decreaseindent.png
  + contrib/hbide/resources/down16.png
  + contrib/hbide/resources/increaseindent.png
  + contrib/hbide/resources/sgl2dblquote.png
  + contrib/hbide/resources/up16.png

  * contrib/hbide/idedocks.prg
    + Implemented left-side toolbar containing available panels
      distinguished by suble color change. Click on one will 
      bring forward the relevant tabs-panel. Tooltip describes
      which panel it is.
    + Implemented left-side another toolbar underneath above one
      giving access to line and block actions.

    ;NOTE: Please test and forward suggessions.
    ;REQUEST: Can someone provide relevant .png's to these actions ?
              I am really poor in drafting something meaningful.
This commit is contained in:
Pritpal Bedi
2010-02-17 02:38:41 +00:00
parent a3b3c4fd7f
commit 0ad0574bbf
9 changed files with 206 additions and 78 deletions

View File

@@ -17,6 +17,27 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-02-16 18:31 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ contrib/hbide/resources/cutb16.png
+ contrib/hbide/resources/dbl2sglquote.png
+ contrib/hbide/resources/decreaseindent.png
+ contrib/hbide/resources/down16.png
+ contrib/hbide/resources/increaseindent.png
+ contrib/hbide/resources/sgl2dblquote.png
+ contrib/hbide/resources/up16.png
* contrib/hbide/idedocks.prg
+ Implemented left-side toolbar containing available panels
distinguished by suble color change. Click on one will
bring forward the relevant tabs-panel. Tooltip describes
which panel it is.
+ Implemented left-side another toolbar underneath above one
giving access to line and block actions.
;NOTE: Please test and forward suggessions.
;REQUEST: Can someone provide relevant .png's to these actions ?
I am really poor in drafting something meaningful.
2010-02-17 03:23 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/legacycd.c
! Fixed GETPROCADDRESS() for WinCE after recent changes.

View File

@@ -75,6 +75,8 @@
CLASS IdeDocks INHERIT IdeObject
DATA nPass INIT 0
DATA aPanels INIT {}
DATA aBtnLines INIT {}
METHOD new( oIde )
METHOD create( oIde )
@@ -104,6 +106,8 @@ CLASS IdeDocks INHERIT IdeObject
METHOD getMarkWidget( nIndex )
METHOD dispEnvironment( cEnviron )
METHOD execSkeleton( nMode, p )
METHOD addPanelButton( cPanel )
METHOD disblePanelButton( qTBtn )
ENDCLASS
@@ -129,6 +133,7 @@ METHOD IdeDocks:create( oIde )
METHOD IdeDocks:destroy()
LOCAL oUI := ::oIde:oSkeltnUI
LOCAL qTBtn
::disconnect( oUI:q_buttonNew , "clicked()" )
::disconnect( oUI:q_buttonRename, "clicked()" )
@@ -142,47 +147,35 @@ METHOD IdeDocks:destroy()
/* Initiate more destructors */
FOR EACH qTBtn IN ::aPanels
::disconnect( qTBtn, "clicked()" )
qTBtn := NIL
NEXT
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:setView( cView )
LOCAL n
METHOD IdeDocks:buildDockWidgets()
SWITCH cView
::buildToolBarPanels()
CASE "New..."
cView := hbide_fetchAString( ::qViewsCombo, cView, "Name the View", "New View" )
IF cView != "New..."
IF ascan( ::aINI[ INI_VIEWS ], {|e| e == cView } ) > 0
MsgBox( "View: " + cView + ", already exists" )
ELSE
aadd( ::aINI[ INI_VIEWS ], cView )
::qViewsCombo:addItem( cView )
::buildViewWidget()
::oStackedWidget:oWidget:setCurrentIndex( len( ::aINI[ INI_VIEWS ] ) )
::oIde:cWrkView := cView
ENDIF
ENDIF
EXIT
::buildProjectTree()
::buildEditorTree()
::buildFuncList()
::buildCompileResults()
::buildLinkResults()
::buildOutputResults()
::buildHelpWidget()
::buildSkeletonWidget()
CASE "Main"
::oIde:nCurView := 0
::oIde:qTabWidget := ::aViews[ ::nCurView + 1 ]:oTabWidget:oWidget
::oIde:oTabParent := ::aViews[ ::nCurView + 1 ]
::oStackedWidget:oWidget:setCurrentIndex( 0 )
::oIde:cWrkView := "Main"
EXIT
* ::buildFindInFiles()
OTHERWISE
IF ( n := ascan( ::aINI[ INI_VIEWS ], cView ) ) > 0
::oStackedWidget:oWidget:setCurrentIndex( n ) /* Note: n is always base of zero as main == 1 */
::oIde:cWrkView := cView
ENDIF
EXIT
ENDSWITCH
::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget )
::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget, ::oDockB2:oWidget )
RETURN NIL
RETURN Self
/*----------------------------------------------------------------------*/
@@ -323,42 +316,127 @@ METHOD IdeDocks:buildViewWidget()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildDockWidgets()
METHOD IdeDocks:setView( cView )
LOCAL n
::buildToolBarPanels()
SWITCH cView
::buildProjectTree()
::buildEditorTree()
::buildFuncList()
::buildCompileResults()
::buildLinkResults()
::buildOutputResults()
::buildHelpWidget()
::buildSkeletonWidget()
CASE "New..."
cView := hbide_fetchAString( ::qViewsCombo, cView, "Name the View", "New View" )
IF cView != "New..."
IF ascan( ::aINI[ INI_VIEWS ], {|e| e == cView } ) > 0
MsgBox( "View: " + cView + ", already exists" )
ELSE
aadd( ::aINI[ INI_VIEWS ], cView )
::qViewsCombo:addItem( cView )
::buildViewWidget()
::oStackedWidget:oWidget:setCurrentIndex( len( ::aINI[ INI_VIEWS ] ) )
::oIde:cWrkView := cView
ENDIF
ENDIF
EXIT
* ::buildFindInFiles()
CASE "Main"
::oIde:nCurView := 0
::oIde:qTabWidget := ::aViews[ ::nCurView + 1 ]:oTabWidget:oWidget
::oIde:oTabParent := ::aViews[ ::nCurView + 1 ]
::oStackedWidget:oWidget:setCurrentIndex( 0 )
::oIde:cWrkView := "Main"
EXIT
::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget )
::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget, ::oDockB2:oWidget )
OTHERWISE
IF ( n := ascan( ::aINI[ INI_VIEWS ], cView ) ) > 0
::oStackedWidget:oWidget:setCurrentIndex( n ) /* Note: n is always base of zero as main == 1 */
::oIde:cWrkView := cView
ENDIF
EXIT
ENDSWITCH
RETURN NIL
/*----------------------------------------------------------------------*/
METHOD IdeDocks:disblePanelButton( qTBtn )
LOCAL q
FOR EACH q IN ::aPanels
q:setEnabled( !( q == qTBtn ) )
NEXT
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:addPanelButton( cPanel )
LOCAL qTBtn, aColors, nIndex
#if 0 /* Royal Blue */
aColors := { ;
"#000073" , ;
"#000080" , ;
"#19198D" , ;
"#333399" , ;
"#4D4DA6" , ;
"#6666B3" , ;
"#8080C0" , ;
"#9999CC" , ;
"#B2B2D9" , ;
"#CCCCE6" , ;
"#E6E6F2" ;
}
#endif
#if 0 /* Turquish */
aColors := { ;
"#009999" , ;
"#19A3A3" , ;
"#33ADAD" , ;
"#4DB8B8" , ;
"#66C2C2" , ;
"#80CCCC" , ;
"#99D6D6" , ;
"#B2E0E0" , ;
"#CCEBEB" , ;
"#E6F5F5" ;
}
#endif
aColors := { ;
"#996633" , ;
"#A37547" , ;
"#AD855C" , ;
"#B89470" , ;
"#C2A385" , ;
"#CCB299" , ;
"#D6C2AD" , ;
"#E0D1C2" , ;
"#EBE0D6" , ;
"#F5F0EB" ;
}
IF cPanel == "Main"
nIndex := 0
ELSE
nIndex := len( ::aPanels ) - 1
ENDIF
qTBtn := QToolButton():new()
qTBtn:setMaximumHeight( 12 )
qTBtn:setMaximumWidth( 18 )
qTBtn:setTooltip( "Panel: " + cPanel )
qTBtn:setStyleSheet( "background-color: " + aColors[ nIndex + 1 ] + " ;" )
::connect( qTBtn, "clicked()", {|| ::disblePanelButton( qTBtn ), ::setView( cPanel ) } )
::qTBarPanels:addWidget( qTBtn )
aadd( ::aPanels, qTBtn )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildToolBarPanels()
LOCAL qAct, i, s, qSize, qA
#if 0
LOCAL aColors := { "rgb( 0,0,212 )" , "rgb( 0,0,255 )" , "rgb( 40,40,255 )", ;
"rgb( 80,80,255 )", "rgb( 120,120,255 )", "rgb( 160,160,255 )" }
#else
//LOCAL aColors := { "rgb(128,64,64)","rgb(128,0,0)","rgb(255,128,64)","rgb(128,128,64)","rgb(255,128,128)","rgb(225,128,0)" }
LOCAL aColors := { "rgb(255,128,64)","rgb(225,225,0)" ,"rgb(0,128,128)",;
"rgb(190,115,65)","rgb(80,175,120)","rgb(17,122,238)" }
#endif
LOCAL s, qSize, qTBtn, a_, aBtns
STATIC aPanels := {}
qSize := QSize():new( 16,16 )
qSize := QSize():new( 20,20 )
::oIde:qTBarPanels := QToolBar():new()
::qTBarPanels:setObjectName( "ToolBar_Panels" )
@@ -367,31 +445,60 @@ METHOD IdeDocks:buildToolBarPanels()
::qTBarPanels:setIconSize( qSize )
::qTBarPanels:setMovable( .f. )
::qTBarPanels:setFloatable( .f. )
::qTBarPanels:setStyleSheet( "QToolBar { spacing: 1px; color: white; margin-top: 2px; }" )
::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarPanels )
qAct := QToolButton():new( ::qTBarPanels )
qAct:setMaximumHeight( 12 )
qAct:setMaximumWidth( 20 )
qAct:setTooltip( "Panel: Main" )
//qAct:setStyleSheet( "background-color: rgb( 0,0,175 );" )
qAct:setStyleSheet( "background-color: rgb( 132,66,0 );" )
aadd( aPanels, qAct )
qA := QAction():from( ::qTBarPanels:addWidget( qAct ) )
qA:setCheckable( .t. )
i := 0
::addPanelButton( "Main" )
FOR EACH s IN ::aINI[ INI_VIEWS ]
* ::qTBarPanels:addSeparator()
qAct := QToolButton():new( ::qTBarPanels )
qAct:setMaximumHeight( 12 )
qAct:setMaximumWidth( 20 )
qAct:setTooltip( "Panel: " + s )
qAct:setStyleSheet( "background-color: " + aColors[ ++i ] + ";" )
IF i >= len( aColors )
i := 0
ENDIF
aadd( aPanels, qAct )
::qTBarPanels:addWidget( qAct )
::addPanelButton( s )
NEXT
/* Toolbar Line Actions */
::oDlg:oWidget:addToolBarBreak( Qt_LeftToolBarArea )
::oIde:qTBarLines := QToolBar():new()
::qTBarLines:setObjectName( "ToolBar_Lines" )
::qTBarLines:setAllowedAreas( Qt_LeftToolBarArea )
::qTBarLines:setOrientation( Qt_Vertical )
::qTBarLines:setIconSize( qSize )
::qTBarLines:setMovable( .f. )
::qTBarLines:setFloatable( .f. )
::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarLines )
aBtns := {}
aadd( aBtns, { "up16" , "Move Current Line Up" , {|| ::oEM:moveLine( -1 ) } } )
aadd( aBtns, { "down16" , "Move Current Line Down", {|| ::oEM:moveLine( 1 ) } } )
aadd( aBtns, { "cutb16" , "Delete Current Line" , {|| ::oEM:deleteLine() } } )
aadd( aBtns, { "copy" , "Duplicate Current Line", {|| ::oEM:duplicateLine() } } )
FOR EACH a_ IN aBtns
qTBtn := QToolButton():new()
qTBtn:setTooltip( a_[ 2 ] )
qTBtn:setIcon( ::resPath + a_[ 1 ] + ".png" )
qTBtn:setMaximumWidth( 20 )
qTBtn:setMaximumHeight( 20 )
::connect( qTBtn, "clicked()", a_[ 3 ] )
::qTBarLines:addWidget( qTBtn )
aadd( ::aBtnLines, qTBtn )
NEXT
aBtns := {}
aadd( aBtns, { "commentout" , "Block Comment" , {|| ::oEM:blockComment() } } )
aadd( aBtns, { "increaseindent", "Indent Right" , {|| ::oEM:indent( 1 ) } } )
aadd( aBtns, { "decreaseindent", "Indent Left" , {|| ::oEM:indent( -1 ) } } )
aadd( aBtns, { "sgl2dblquote" , "Single to Double Quotes", {|| ::oEM:convertDQuotes() } } )
aadd( aBtns, { "dbl2sglquote" , "Double to Single Quotes", {|| ::oEM:convertQuotes() } } )
FOR EACH a_ IN aBtns
qTBtn := QToolButton():new()
qTBtn:setTooltip( a_[ 2 ] )
qTBtn:setIcon( ::resPath + a_[ 1 ] + ".png" )
qTBtn:setMaximumWidth( 20 )
qTBtn:setMaximumHeight( 20 )
::connect( qTBtn, "clicked()", a_[ 3 ] )
::qTBarLines:addWidget( qTBtn )
aadd( ::aBtnLines, qTBtn )
NEXT
RETURN Self

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B