diff --git a/harbour/ChangeLog b/harbour/ChangeLog index bbc7cb8bf8..7de78db192 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,58 @@ The license applies to all entries newer than 2009-04-28. */ +2010-08-10 09:58 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbqt/hbqt.ch + + + contrib/hbide/resources/designer.png + + contrib/hbide/resources/f-bold-1.png + + contrib/hbide/resources/f-generic.png + + contrib/hbide/resources/f-image.png + + contrib/hbide/resources/f-italic-1.png + + contrib/hbide/resources/f-strike-1.png + + contrib/hbide/resources/f-underline-1.png + + contrib/hbide/resources/f_align_bottom.png + + contrib/hbide/resources/f_align_center.png + + contrib/hbide/resources/f_align_justify.png + + contrib/hbide/resources/f_align_left.png + + contrib/hbide/resources/f_align_middle.png + + contrib/hbide/resources/f_align_right.png + + contrib/hbide/resources/f_align_top.png + + contrib/hbide/resources/f_barcode.png + + contrib/hbide/resources/f_box_all.png + + contrib/hbide/resources/f_box_bottom.png + + contrib/hbide/resources/f_box_left.png + + contrib/hbide/resources/f_box_matrix.png + + contrib/hbide/resources/f_box_plain.png + + contrib/hbide/resources/f_box_right.png + + contrib/hbide/resources/f_box_shadow.png + + contrib/hbide/resources/f_box_top.png + + contrib/hbide/resources/f_chart.png + + contrib/hbide/resources/f_gradient.png + + * contrib/hbide/hbide.qrc + + Added: few more icons. + + * contrib/hbide/hbide.hbp + + Added: ideprojectmanager.prg and idetoolbar.prg + + * contrib/hbide/hbide.prg + * contrib/hbide/ideactions.prg + * contrib/hbide/idedocks.prg + * contrib/hbide/ideobject.prg + + contrib/hbide/idereportsmanager.prg + + contrib/hbide/idetoolbar.prg + + Started: implementation of Harbour's Report Designer and Print Engine. + + NOTE: It is a very complex subject and more so I have a little + knowledge about Qt's rendering system, so please do not + pin high hopes. I still do not know which way it will proceed, + will we be successful or failure, will it touch our expectations. + It is an ambitious project I ever dreamt of developing one, + so I just started. If you can extend help in this direction, + every bit will matter. So please gear-up yourselves for next logical + evolution of hbIDE. + 2010-08-08 16:49 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + contrib/rddads/adsextrn.prg * contrib/rddads/rddads.hbp diff --git a/harbour/contrib/hbide/hbide.hbp b/harbour/contrib/hbide/hbide.hbp index 36739a616c..fecd660588 100644 --- a/harbour/contrib/hbide/hbide.hbp +++ b/harbour/contrib/hbide/hbide.hbp @@ -48,6 +48,8 @@ ideedit.prg ideplugins.prg idedict.prg idebrowse.prg +idereportsmanager.prg +idetoolbar.prg docviewgenerator.ui docwriter.ui diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 76fee3a590..0093b3f7aa 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.prg @@ -149,6 +149,7 @@ CLASS HbIde DATA oSC /* Shortcuts Manager */ DATA oTM /* Plugin Tools Manager */ DATA oTH /* Themes Manager */ + DATA oRM /* Reports Manager */ DATA oSetup /* Setup Manager */ DATA oINI /* INI Manager */ @@ -244,6 +245,7 @@ CLASS HbIde DATA oSourceThumbnailDock DATA oQScintillaDock DATA oUpDn + DATA oReportsManagerDock DATA lProjTreeVisible INIT .t. DATA lDockRVisible INIT .f. @@ -452,6 +454,8 @@ METHOD HbIde:create( aParams ) ::oDK:buildDockWidgets() /* Toolbar */ ::oAC:buildToolBar() + /* Build additional Toolbars */ + ::oDK:buildToolBarPanels() /* Main Menu */ ::oAC:buildMainMenu() @@ -480,6 +484,9 @@ METHOD HbIde:create( aParams ) /* Browser Manager */ ::oBM := IdeBrowseManager():new():create( Self ) + /* Reports Manager */ + ::oRM := IdeReportsManager():new():create( Self ) + /* Fill various elements of the IDE */ ::oPM:populate() ::oSM:loadSources() @@ -491,8 +498,6 @@ METHOD HbIde:create( aParams ) /* Restore Settings */ hbide_restSettings( Self ) /* Again to be displayed in Statusbar */ - //HbXbp_SetCodec( ::cWrkCodec ) - //::oDK:setStatusText( SB_PNL_CODEC, ::cWrkCodec ) ::setCodec( ::cWrkCodec ) ::oDK:setStatusText( SB_PNL_THEME, ::cWrkTheme ) diff --git a/harbour/contrib/hbide/hbide.qrc b/harbour/contrib/hbide/hbide.qrc index 30ee75ded2..a2406630bc 100644 --- a/harbour/contrib/hbide/hbide.qrc +++ b/harbour/contrib/hbide/hbide.qrc @@ -69,6 +69,7 @@ resources/decreaseindent.png resources/deleteline.png resources/description.png +resources/designer.png resources/docwriter.png resources/down.png resources/down16.png @@ -238,5 +239,29 @@ resources/zoomout.png resources/zoomin3.png resources/zoomout3.png +resources/f_align_left.png +resources/f_align_right.png +resources/f_align_center.png +resources/f_align_justify.png +resources/f_align_top.png +resources/f_align_middle.png +resources/f_align_bottom.png +resources/f_box_top.png +resources/f_box_left.png +resources/f_box_bottom.png +resources/f_box_right.png +resources/f_box_all.png +resources/f_box_plain.png +resources/f_box_shadow.png +resources/f-generic.png +resources/f-image.png +resources/f_chart.png +resources/f_gradient.png +resources/f_barcode.png +resources/f-bold-1.png +resources/f-italic-1.png +resources/f-underline-1.png +resources/f-strike-1.png + diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index 30f78c23cf..13fe433155 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -557,6 +557,8 @@ METHOD IdeActions:buildMainMenu() oSubMenu:oWidget:addAction_4( ::oSourceThumbnailDock:oWidget:toggleViewAction() ) oSubMenu:oWidget:addAction_4( ::oQScintillaDock:oWidget:toggleViewAction() ) + oSubMenu:oWidget:addAction_4( ::oReportsManagerDock:toggleViewAction() ) + oSubMenu:oWidget:addSeparator() oSubMenu:oWidget:addAction_4( ::oDockB2:oWidget:toggleViewAction() ) * oSubMenu:oWidget:addAction_4( ::oDockB1:oWidget:toggleViewAction() ) diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index 02eb013ddd..ad9425222d 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -138,6 +138,7 @@ CLASS IdeDocks INHERIT IdeObject METHOD buildSourceThumbnail() METHOD buildQScintilla() METHOD buildUpDownWidget() + METHOD buildReportsDesignerWidget() METHOD buildSystemTray() METHOD showDlgBySystemTrayIconCommand() METHOD setViewInitials() @@ -177,32 +178,33 @@ METHOD IdeDocks:destroy() ::oIde:oProjRoot := NIL ::oIde:oOpenedSources := NIL - ::disconnect( ::oOutputResult:oWidget , "copyAvailable(bool)" ) + ::disconnect( ::oOutputResult:oWidget , "copyAvailable(bool)" ) - ::disconnect( ::oEnvironDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oPropertiesDock:oWidget, "visibilityChanged(bool)" ) - ::disconnect( ::oThemesDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDocViewDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDocWriteDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFindDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFunctionsDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oSkeltnDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oHelpDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFuncDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oEnvironDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oPropertiesDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oThemesDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oDocViewDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oDocWriteDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oFindDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oFunctionsDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oSkeltnDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oHelpDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oFuncDock:oWidget , "visibilityChanged(bool)" ) ::disconnect( ::oSourceThumbnailDock:oWidget, "visibilityChanged(bool)" ) - ::disconnect( ::oQScintillaDock:oWidget, "visibilityChanged(bool)" ) + ::disconnect( ::oQScintillaDock:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oReportsManagerDock:oWidget , "visibilityChanged(bool)" ) #if 0 /* Not Implemented */ - ::disconnect( ::oDockPT:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDockED:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDockB2:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oDockPT:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oDockED:oWidget , "visibilityChanged(bool)" ) + ::disconnect( ::oDockB2:oWidget , "visibilityChanged(bool)" ) #endif IF !empty( ::oSys ) - ::disconnect( ::oSys , "activated(QSystemTrayIcon::ActivationReason)" ) - ::disconnect( ::qAct1 , "triggered(bool)" ) - ::disconnect( ::qAct2 , "triggered(bool)" ) + ::disconnect( ::oSys , "activated(QSystemTrayIcon::ActivationReason)" ) + ::disconnect( ::qAct1 , "triggered(bool)" ) + ::disconnect( ::qAct2 , "triggered(bool)" ) ENDIF FOR EACH qTBtn IN ::aPanels @@ -259,7 +261,7 @@ METHOD IdeDocks:buildDialog() ::oDlg:setTabPosition( Qt_BottomDockWidgetArea, QTabWidget_South ) ::oDlg:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea ) ::oDlg:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea ) - ::oDlg:resize( 900,470 ) + ::oDlg:oWidget:resize( 950,520 ) ::oIde:oDa := ::oDlg:drawingArea @@ -317,10 +319,10 @@ METHOD IdeDocks:buildDialog() aadd( ::aViewsInfo, a_ ) NEXT IF ascan( ::aViewsInfo, {|e_| e_[ 1 ] == "Main" } ) == 0 - hb_ains( ::aViewsInfo, 1, { "Main", NIL, 0, 0, 0, 0 }, .t. ) + hb_ains( ::aViewsInfo, 1, { "Main", NIL, 0, 0, QMdiArea_TabbedView, 0 }, .t. ) ENDIF IF ascan( ::aViewsInfo, {|e_| e_[ 1 ] == "Stats" } ) == 0 - hb_ains( ::aViewsInfo, 1, { "Stats", NIL, 0, 0, 0, 0 }, .t. ) + hb_ains( ::aViewsInfo, 1, { "Stats", NIL, 0, 0, QMdiArea_TabbedView, 0 }, .t. ) ENDIF /* View Panels */ @@ -371,6 +373,54 @@ METHOD IdeDocks:buildDialog() /*----------------------------------------------------------------------*/ +METHOD IdeDocks:buildDockWidgets() + + ::buildProjectTree() + ::buildEditorTree() + + ::buildFuncList() + ::buildSkeletonsTree() + + ::buildHelpWidget() + ::buildSkeletonWidget() + ::buildFindInFiles() + ::buildThemesDock() + ::buildPropertiesDock() + ::buildEnvironDock() + + ::buildCompileResults() + ::buildLinkResults() + ::buildOutputResults() + ::buildDocViewer() + ::buildDocWriter() + ::buildFunctionsDock() + ::buildSourceThumbnail() + ::buildQScintilla() + ::buildUpDownWidget() + ::buildReportsDesignerWidget() + + /* Bottom Docks */ + ::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget , ::oDockB2:oWidget ) + + /* Right Docks */ + ::oDlg:oWidget:tabifyDockWidget( ::oHelpDock:oWidget , ::oDocViewDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oDocViewDock:oWidget , ::oFuncDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oFuncDock:oWidget , ::oFunctionsDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oFunctionsDock:oWidget , ::oPropertiesDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oPropertiesDock:oWidget , ::oEnvironDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oEnvironDock:oWidget , ::oSkeltnDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oSkeltnDock:oWidget , ::oThemesDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oThemesDock:oWidget , ::oFindDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oFindDock:oWidget , ::oDocWriteDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oDocWriteDock:oWidget , ::oSourceThumbnailDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oSourceThumbnailDock:oWidget, ::oQScintillaDock:oWidget ) + ::oDlg:oWidget:tabifyDockWidget( ::oQScintillaDock:oWidget , ::oReportsManagerDock:oWidget ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD IdeDocks:buildSystemTray() IF empty( ::oSys ) @@ -401,6 +451,12 @@ METHOD IdeDocks:execEvent( cEvent, p, p1 ) LOCAL qEvent, qMime, qList, qUrl, i, n, oEdit SWITCH cEvent + CASE "dockReportsManager_visibilityChanged" + IF p; ::oRM:show() ; ENDIF + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF + EXIT CASE "dockQScintilla_visibilityChanged" IF p; ::oBM:show() ; ENDIF IF ! p .AND. ! p1:isVisible() @@ -788,54 +844,6 @@ METHOD IdeDocks:showDlgBySystemTrayIconCommand()() /*----------------------------------------------------------------------*/ -METHOD IdeDocks:buildDockWidgets() - - ::buildProjectTree() - ::buildEditorTree() - - ::buildFuncList() - ::buildSkeletonsTree() - - ::buildHelpWidget() - ::buildSkeletonWidget() - ::buildFindInFiles() - ::buildThemesDock() - ::buildPropertiesDock() - ::buildEnvironDock() - - ::buildCompileResults() - ::buildLinkResults() - ::buildOutputResults() - ::buildDocViewer() - ::buildDocWriter() - ::buildFunctionsDock() - ::buildSourceThumbnail() - ::buildQScintilla() - ::buildUpDownWidget() - - /* Bottom Docks */ - ::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget , ::oDockB2:oWidget ) - - /* Right Docks */ - ::oDlg:oWidget:tabifyDockWidget( ::oHelpDock:oWidget , ::oDocViewDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oDocViewDock:oWidget , ::oFuncDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oFuncDock:oWidget , ::oFunctionsDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oFunctionsDock:oWidget , ::oPropertiesDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oPropertiesDock:oWidget , ::oEnvironDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oEnvironDock:oWidget , ::oSkeltnDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oSkeltnDock:oWidget , ::oThemesDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oThemesDock:oWidget , ::oFindDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oFindDock:oWidget , ::oDocWriteDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oDocWriteDock:oWidget , ::oSourceThumbnailDock:oWidget ) - ::oDlg:oWidget:tabifyDockWidget( ::oSourceThumbnailDock:oWidget, ::oQScintillaDock:oWidget ) - - ::buildToolBarPanels() - - RETURN Self - -/*----------------------------------------------------------------------*/ - METHOD IdeDocks:getADockWidget( nAreas, cObjectName, cWindowTitle, nFlags, cEventVisibility ) LOCAL oDock, nBasic @@ -1345,6 +1353,7 @@ METHOD IdeDocks:buildToolBarPanels() aadd( aBtns, { ::oFindDock , "search" } ) aadd( aBtns, { ::oSourceThumbnailDock, "thumbnail" } ) aadd( aBtns, { ::oQScintillaDock , "browser" } ) + aadd( aBtns, { ::oReportsManagerDock , "designer" } ) aadd( aBtns, {} ) aadd( aBtns, { ::oDockB2 , "builderror" } ) @@ -1359,7 +1368,11 @@ METHOD IdeDocks:buildToolBarPanels() ENDIF NEXT - ::oDlg:oWidget:addToolBar( Qt_RightToolBarArea, ::qTBarDocks ) + IF ::oIde:lCurEditsMdi + ::oDlg:oWidget:addToolBar( Qt_TopToolBarArea, ::qTBarDocks ) + ELSE + ::oDlg:oWidget:addToolBar( Qt_RightToolBarArea, ::qTBarDocks ) + ENDIF /* User defined toolbars via Tools & Utilities */ ::oTM:buildUserToolbars() @@ -1782,6 +1795,17 @@ METHOD IdeDocks:buildQScintilla() /*----------------------------------------------------------------------*/ +METHOD IdeDocks:buildReportsDesignerWidget() + LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea + + ::oIde:oReportsManagerDock := ::getADockWidget( nAreas, "dockReportDesigner", "ideReports Designer", QDockWidget_DockWidgetFloatable ) + ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oReportsManagerDock:oWidget, Qt_Horizontal ) + ::connect( ::oReportsManagerDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( "dockReportsManager_visibilityChanged", p, ::oReportsManagerDock:oWidget ) } ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD IdeDocks:setStatusText( nPart, xValue ) LOCAL oPanel := ::oSBar:getItem( nPart ) diff --git a/harbour/contrib/hbide/ideobject.prg b/harbour/contrib/hbide/ideobject.prg index 6cc7f2a508..c08794ec96 100644 --- a/harbour/contrib/hbide/ideobject.prg +++ b/harbour/contrib/hbide/ideobject.prg @@ -100,6 +100,7 @@ CLASS IdeObject ACCESS oTM INLINE ::oIde:oTM ACCESS oTH INLINE ::oIde:oTH ACCESS oFF INLINE ::oIde:oFF + ACCESS oRM INLINE ::oIde:oRM ACCESS oSetup INLINE ::oIde:oSetup ACCESS oINI INLINE ::oIde:oINI @@ -197,6 +198,7 @@ CLASS IdeObject ACCESS oQScintillaDock INLINE ::oIde:oQScintillaDock ACCESS oMainToolbar INLINE ::oIde:oMainToolbar ACCESS oUpDn INLINE ::oIde:oUpDn + ACCESS oReportsManagerDock INLINE ::oIde:oReportsManagerDock ACCESS oSys INLINE ::oIde:oSys ACCESS oSysMenu INLINE ::oIde:oSysMenu diff --git a/harbour/contrib/hbide/idereportsmanager.prg b/harbour/contrib/hbide/idereportsmanager.prg new file mode 100644 index 0000000000..15f5127f5d --- /dev/null +++ b/harbour/contrib/hbide/idereportsmanager.prg @@ -0,0 +1,494 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * + * Copyright 2010 Pritpal Bedi + * www - http://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. + * + */ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/* + * EkOnkar + * ( The LORD is ONE ) + * + * Harbour-Qt IDE + * + * Pritpal Bedi + * 07Aug2010 + */ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ + +#include "hbide.ch" +#include "common.ch" +#include "hbclass.ch" +#include "hbqt.ch" + +/*----------------------------------------------------------------------*/ + +CLASS IdeReportsManager INHERIT IdeObject + + DATA oWidget + DATA qLayout + DATA qToolbar + DATA qToolbarL + DATA qToolbarAlign + DATA qStack + DATA qStatus + DATA qTabBar + DATA qWidget1 + DATA qWidget2 + DATA qWidget3 + + DATA qSpliter + DATA qLayoutD + DATA qFrameL + DATA qScroll + DATA qFrameR + + DATA qLayL + DATA qLayR + DATA qSplL + DATA qSplR + + DATA qTabL0 + DATA qPageL01 + DATA qPageL02 + DATA qPageL01Lay + DATA qTreeObjects + + DATA qTabL1 + DATA qPageL11 + DATA qPageL12 + DATA qPageL11Lay + DATA qTreeProp + + DATA qEditDesc + + DATA qTabR1 + DATA qPageR11 + DATA qPageR11Lay + DATA qTreeData + DATA qPageR12 + DATA qPageR13 + + DATA qDesign + DATA qHRuler + DATA qVRuler + DATA qPort + + DATA aStatusPnls INIT {} + + METHOD new( oIde ) + METHOD create( oIde ) + METHOD destroy() + METHOD show() + METHOD execEvent( cEvent, p ) + METHOD buildToolbar() + METHOD buildToolbarAlign() + METHOD buildToolbarLeft() + METHOD buildStacks() + METHOD buildStatusBar() + METHOD buildTabBar() + METHOD buildDesignReport() + + ENDCLASS + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:new( oIde ) + + ::oIde := oIde + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:create( oIde ) + LOCAL qDock + + DEFAULT oIde TO ::oIde + ::oIde := oIde + + qDock := ::oIde:oReportsManagerDock:oWidget + + ::oWidget := QWidget():new() + + qDock:setWidget( ::oWidget ) + + /* Layout applied to RM widget */ + ::qLayout := QGridLayout():new() + ::qLayout:setContentsMargins( 0,0,0,0 ) + ::qLayout:setSpacing( 0 ) + + ::oWidget:setLayout( ::qLayout ) + + /* Toolbar */ + ::buildToolbar() + ::qLayout:addWidget_1( ::qToolbar:oWidget , 0, 0, 1, 2 ) + ::buildToolbarAlign() + ::qLayout:addWidget_1( ::qToolbarAlign:oWidget , 1, 0, 1, 2 ) + + /* Toolbar left */ + ::buildToolbarLeft() + ::qLayout:addWidget_1( ::qToolbarL:oWidget , 2, 0, 2, 1 ) + + /* ::qTabBar */ + ::buildTabBar() + ::qLayout:addWidget_1( ::qTabBar , 2, 1, 1, 1 ) + + /* Stacked widget */ + ::buildStacks() + ::qLayout:addWidget_1( ::qStack , 3, 1, 1, 1 ) + + /* StatusBar */ + ::buildStatusBar() + ::qLayout:addWidget_1( ::qStatus , 4, 0, 1, 2 ) + + /* Document manipulation interface */ + ::buildDesignReport() + + ::qTabBar:setCurrentIndex( 2 ) + ::oWidget:show() + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:destroy() + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:show() + ::oReportsManagerDock:raise() + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:execEvent( cEvent, p ) + + HB_SYMBOL_UNUSED( p ) + + SWITCH cEvent + CASE "tabBar_currentChanged" + IF !empty( ::qStack ) .AND. p < ::qStack:count() + ::qStack:setCurrentIndex( p ) + ENDIF + EXIT + CASE "buttonNew_clicked" + EXIT + CASE "buttonOpen_clicked" + EXIT + CASE "buttonSave_clicked" + EXIT + CASE "buttonClose_clicked" + EXIT + CASE "buttonPrint_clicked" + EXIT + ENDSWITCH + + RETURN NIL + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildDesignReport() + + ::qLayoutD := QHBoxLayout():new() + ::qLayoutD:setContentsMargins( 0,0,0,0 ) + ::qLayoutD:setSpacing( 1 ) + ::qWidget3:setLayout( ::qLayoutD ) + + ::qSpliter := QSplitter():new() + ::qSpliter:setOrientation( Qt_Horizontal ) + + ::qLayoutD:addWidget( ::qSpliter ) + + ::qFrameL := QFrame():new() + ::qSpliter:addWidget( ::qFrameL ) + + ::qScroll := QScrollArea():new() + ::qScroll:setVerticalScrollBarPolicy( Qt_ScrollBarAsNeeded ) + ::qScroll:setHorizontalScrollBarPolicy( Qt_ScrollBarAsNeeded ) + ::qScroll:setWidgetResizable( .f. ) + ::qScroll:setMinimumWidth( 400 ) + ::qScroll:setBackgroundRole( QPalette_Dark ) + ::qSpliter:addWidget( ::qScroll ) + + ::qFrameR := QFrame():new() + ::qSpliter:addWidget( ::qFrameR ) + + ::qLayL := QVBoxLayout():new() + ::qLayL:setContentsMargins( 0,0,0,0 ) + ::qLayL:setSpacing( 1 ) + ::qFrameL:setLayout( ::qLayL ) + ::qSplL := QSplitter():new() + ::qSplL:setOrientation( Qt_Vertical ) + ::qLayL:addWidget( ::qSplL ) + + ::qLayR := QVBoxLayout():new() + ::qLayR:setContentsMargins( 0,0,0,0 ) + ::qLayR:setSpacing( 1 ) + ::qFrameR:setLayout( ::qLayR ) + ::qSplR := QSplitter():new() + ::qSplR:setOrientation( Qt_Vertical ) + ::qLayR:addWidget( ::qSplR ) + + ::qFrameL:setMinimumWidth( 100 ) + ::qFrameR:setMinimumWidth( 100 ) + + + ::qTabL0 := QTabWidget():new() + ::qSplL:addWidget( ::qTabL0 ) + /* Left Pane Objects Page */ + ::qPageL01 := QWidget():new() + ::qTabL0:addTab( ::qPageL01, "Objects" ) + ::qPageL01Lay := QVBoxLayout():new() + ::qPageL01:setLayout( ::qPageL01Lay ) + ::qPageL01Lay:setContentsMargins( 0,0,0,0 ) + /* Left Pane Events page */ + ::qPageL02 := QWidget():new() + ::qTabL0:addTab( ::qPageL02, "Else" ) + /* Left pane Properties Treeview */ + ::qTreeObjects := QTreeWidget():new() + ::qPageL01Lay:addWidget( ::qTreeObjects ) + ::qTreeObjects:setHeaderHidden( .t. ) + + + ::qTabL1 := QTabWidget():new() + ::qSplL:addWidget( ::qTabL1 ) + /* Left Pane Properties Page */ + ::qPageL11 := QWidget():new() + ::qTabL1:addTab( ::qPageL11, "Props" ) + ::qPageL11Lay := QVBoxLayout():new() + ::qPageL11:setLayout( ::qPageL11Lay ) + ::qPageL11Lay:setContentsMargins( 0,0,0,0 ) + /* Left Pane Events page */ + ::qPageL12 := QWidget():new() + ::qTabL1:addTab( ::qPageL12, "Events" ) + /* Left pane Properties Treeview */ + ::qTreeProp := QTreeWidget():new() + ::qPageL11Lay:addWidget( ::qTreeProp ) + ::qTreeProp:setHeaderHidden( .t. ) + + + ::qEditDesc := QTextEdit():new() + ::qSplL:addWidget( ::qEditDesc ) + ::qEditDesc:setPlainText( "Interface implemented is just a proof of concept, no promises yet, please." ) + ::qEditDesc:setMaximumHeight( 120 ) + + ::qTabR1 := QTabWidget():new() + ::qSplR:addWidget( ::qTabR1 ) + ::qPageR11 := QWidget():new() + ::qTabR1:addTab( ::qPageR11, "Data" ) + ::qPageR12 := QWidget():new() + ::qTabR1:addTab( ::qPageR12, "Variables" ) + ::qPageR13 := QWidget():new() + ::qTabR1:addTab( ::qPageR13, "Functions" ) + + ::qPageR11Lay := QVBoxLayout():new() + ::qPageR11:setLayout( ::qPageR11Lay ) + ::qPageR11Lay:setContentsMargins( 0,0,0,0 ) + + ::qTreeData := QTreeWidget():new() + ::qPageR11Lay:addWidget( ::qTreeData ) + ::qTreeData:setHeaderHidden( .t. ) + + ::qDesign := QFrame():new() + ::qScroll:setWidget( ::qDesign ) + ::qDesign:setBackgroundRole( QPalette_Dark ) + ::qDesign:setGeometry( QRect():new( 0, 0, 600, 900 ) ) + + ::qHRuler := QFrame():new( ::qDesign ) + ::qHRuler:setGeometry( QRect():new( 30, 0, ::qDesign:width(), 15 ) ) + ::qHRuler:setStyleSheet( "background-color: rgb(240,240,240);" ) + ::qVRuler := QFrame():new( ::qDesign ) + ::qVRuler:setStyleSheet( "background-color: rgb(240,240,240);" ) + ::qVRuler:setGeometry( QRect():new( 0, 30, 15, ::qDesign:height() ) ) + + ::qPort := QFrame():new( ::qDesign ) + ::qPort:setStyleSheet( "background-color: white;" ) + ::qPort:setGeometry( QRect():new( 30, 30, ::qDesign:width() - 45, ::qDesign:height() - 45 ) ) + + + ::qWidget1:show() + ::qWidget2:show() + ::qWidget3:show() + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildTabBar() + + ::qTabBar := QTabBar():new() + //::qTabBar:setDocumentMode( .t. ) + ::qTabBar:setShape( QTabBar_TriangularNorth ) + + ::qTabBar:addTab( "Code" ) + ::qTabBar:addTab( "Dialogs" ) + ::qTabBar:addTab( "Page1" ) + + ::connect( ::qTabBar, "currentChanged(int)", {|p| ::execEvent( "tabBar_currentChanged", p ) } ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildStacks() + + ::qStack := QStackedWidget():new() + + ::qWidget1 := QWidget():new() + ::qStack:addWidget( ::qWidget1 ) + + ::qWidget2 := QWidget():new() + ::qStack:addWidget( ::qWidget2 ) + + ::qWidget3 := QWidget():new() + ::qStack:addWidget( ::qWidget3 ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildToolbar() + + ::qToolbar := IdeToolbar():new() + ::qToolbar:orientation := Qt_Horizontal + ::qToolbar:create( "ReportManager_Top_Toolbar" ) + + ::qToolbar:addToolButton( "New" , "New Report" , hbide_image( "new" ), {|| ::execEvent( "buttonNew_clicked" ) } ) + ::qToolbar:addToolButton( "Open" , "Open Report" , hbide_image( "open3" ), {|| ::execEvent( "buttonOpen_clicked" ) } ) + ::qToolbar:addToolButton( "Save" , "Save Report" , hbide_image( "save3" ), {|| ::execEvent( "buttonSave_clicked" ) } ) + ::qToolbar:addToolButton( "Close", "Close Report", hbide_image( "close3" ), {|| ::execEvent( "buttonClose_clicked" ) } ) + ::qToolbar:addToolButton( "Print", "Print Report", hbide_image( "print" ), {|| ::execEvent( "buttonPrint_clicked" ) } ) + ::qToolbar:addSeparator() + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildToolbarAlign() + + ::qToolbarAlign := IdeToolbar():new() + ::qToolbarAlign:orientation := Qt_Horizontal + ::qToolbarAlign:create( "ReportManager_Top_Toolbar_Align" ) + + ::qToolbarAlign:addToolButton( "FontG" , "Font", hbide_image( "f-generic" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + ::qToolbarAlign:addToolButton( "FontB" , "Text Bold" , hbide_image( "f-bold-1" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "FontI" , "Text Italic" , hbide_image( "f-italic-1" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "FontU" , "Text Underlined" , hbide_image( "f-underline-1" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "FontS" , "Text Strikethrough", hbide_image( "f-strike-1" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + ::qToolbarAlign:addToolButton( "JustL" , "Align left" , hbide_image( "f_align_left" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "JustC" , "Align center" , hbide_image( "f_align_center" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "JustR" , "Align right" , hbide_image( "f_align_right" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "JustJ" , "Align justify" , hbide_image( "f_align_justify" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + ::qToolbarAlign:addToolButton( "JustT" , "Align top" , hbide_image( "f_align_top" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "JustM" , "Align middle" , hbide_image( "f_align_middle" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "JustB" , "Align bottom" , hbide_image( "f_align_bottom" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + ::qToolbarAlign:addToolButton( "BoxT" , "Box-frame top" , hbide_image( "f_box_top" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "BoxL" , "Box-frame left" , hbide_image( "f_box_left" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "BoxB" , "Box-frame bottom" , hbide_image( "f_box_bottom" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "BoxR" , "Box-frame right" , hbide_image( "f_box_right" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + ::qToolbarAlign:addToolButton( "BoxA" , "Box-frame all" , hbide_image( "f_box_all" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "BoxP" , "No box-frame" , hbide_image( "f_box_plain" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addToolButton( "BoxS" , "Box shadowed" , hbide_image( "f_box_shadow" ), {|| ::execEvent( "button_clicked" ) } ) + ::qToolbarAlign:addSeparator() + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildToolbarLeft() + + ::qToolbarL := IdeToolbar():new() + ::qToolbarL:orientation := Qt_Vertical + ::qToolbarL:create( "ReportManager_Left_Toolbar" ) + + ::qToolbarL:addToolButton( "Image" , "Image" , hbide_image( "f-image" ), {|| ::execEvent( "buttonNew_clicked" ) } ) + ::qToolbarL:addToolButton( "Chart" , "Chart" , hbide_image( "f_chart" ), {|| ::execEvent( "buttonNew_clicked" ) } ) + ::qToolbarL:addToolButton( "Gradient", "Gradient", hbide_image( "f_gradient" ), {|| ::execEvent( "buttonNew_clicked" ) } ) + ::qToolbarL:addToolButton( "Barcode" , "Barcode" , hbide_image( "f_barcode" ), {|| ::execEvent( "buttonNew_clicked" ) } ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeReportsManager:buildStatusBar() + LOCAL qLabel + + ::qStatus := QStatusBar():new() + ::qStatus:setSizeGripEnabled( .f. ) + + qLabel := QLabel():new(); qLabel:setMinimumWidth( 40 ) + ::qStatus:addPermanentWidget( qLabel, 0 ) + aadd( ::aStatusPnls, qLabel ) + qLabel:setText( "Ready" ) + + qLabel := QLabel():new(); qLabel:setMinimumWidth( 40 ) + ::qStatus:addPermanentWidget( qLabel, 0 ) + aadd( ::aStatusPnls, qLabel ) + + qLabel := QLabel():new(); qLabel:setMinimumWidth( 40 ) + ::qStatus:addPermanentWidget( qLabel, 0 ) + aadd( ::aStatusPnls, qLabel ) + + qLabel := QLabel():new(); qLabel:setMinimumWidth( 40 ) + ::qStatus:addPermanentWidget( qLabel, 1 ) + aadd( ::aStatusPnls, qLabel ) + + RETURN Self + +/*------------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbide/idetoolbar.prg b/harbour/contrib/hbide/idetoolbar.prg new file mode 100644 index 0000000000..e4480be703 --- /dev/null +++ b/harbour/contrib/hbide/idetoolbar.prg @@ -0,0 +1,222 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * + * Copyright 2010 Pritpal Bedi + * www - http://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. + * + */ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/* + * EkOnkar + * ( The LORD is ONE ) + * + * Harbour-Qt IDE + * + * Pritpal Bedi + * 07Aug2010 + */ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ + +#include "hbide.ch" +#include "common.ch" +#include "hbclass.ch" +#include "hbqt.ch" + +/*----------------------------------------------------------------------*/ + +CLASS IdeToolbar INHERIT IdeObject + + DATA oWidget + DATA cName + DATA oParent + DATA hItems INIT {=>} + + DATA allowedAreas INIT Qt_TopToolBarArea + DATA initialArea INIT Qt_TopToolBarArea + DATA orientation INIT Qt_Horizontal + DATA size INIT QSize():new( 16,16 ) + DATA moveable INIT .f. + DATA floatable INIT .f. + + METHOD new( cName, oParent ) + METHOD create( cName, oParent ) + METHOD destroy() + METHOD execEvent( cEvent, p ) + METHOD addToolButton( cName, cDesc, cImage, bAction, lCheckable ) + METHOD setItemChecked( cName, lState ) + METHOD setItemEnabled( cName, lEnabled ) + + ERROR HANDLER onError( ... ) + ENDCLASS + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:new( cName, oParent ) + + ::cName := cName + ::oParent := oParent + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:create( cName, oParent ) + + STATIC nID := 0 + + DEFAULT cName TO ::cName + DEFAULT oParent TO ::oParent + ::cName := cName + ::oParent := oParent + + DEFAULT ::cName TO "IdeToolbar_" + hb_ntos( ++nID ) + + ::oWidget := QToolbar():new() + ::oWidget:setObjectName( ::cName ) + ::oWidget:setAllowedAreas( ::allowedAreas ) + ::oWidget:setOrientation( ::orientation ) + ::oWidget:setIconSize( ::size ) + ::oWidget:setMovable( ::moveable ) + ::oWidget:setFloatable( ::floatable ) + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:onError( ... ) + LOCAL cMsg := __GetMessage() + IF SubStr( cMsg, 1, 1 ) == "_" + cMsg := SubStr( cMsg, 2 ) + ENDIF + RETURN ::oWidget:&cMsg( ... ) + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:destroy() + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:execEvent( cEvent, p ) + + HB_SYMBOL_UNUSED( p ) + + SWITCH cEvent + CASE "buttonNew_clicked" + EXIT + + ENDSWITCH + + RETURN NIL + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:addToolButton( cName, cDesc, cImage, bAction, lCheckable ) + LOCAL oButton, qAction + + STATIC nID := 0 + + DEFAULT cName TO "IdeToolButton_" + hb_ntos( ++nID ) + DEFAULT cDesc TO "" + DEFAULT lCheckable TO .f. + + oButton := QToolButton():new( ::oWidget ) + oButton:setObjectName( cName ) + oButton:setTooltip( cDesc ) + oButton:setIcon( cImage ) + oButton:setCheckable( lCheckable ) + + IF hb_isBlock( bAction ) + ::connect( oButton, "clicked()", bAction ) + ENDIF + #if 1 + qAction := QWidgetAction():new() + qAction:setDefaultWidget( oButton ) + ::oWidget:addAction( qAction ) + #else + ::oWidget:addWidget( oButton ) + #endif + + ::hItems[ cName ] := oButton + RETURN oButton + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:setItemChecked( cName, lState ) + LOCAL lOldState + + IF hb_hHasKey( ::hItems, cName ) + IF ::hItems[ cName ]:isCheckable() + lOldState := ::hItems[ cName ]:isChecked() + IF hb_isLogical( lState ) + ::hItems[ cName ]:setChecked( lState ) + ENDIF + ENDIF + ENDIF + + RETURN lOldState + +/*----------------------------------------------------------------------*/ + +METHOD IdeToolbar:setItemEnabled( cName, lEnabled ) + LOCAL lOldEnabled + + IF hb_hHasKey( ::hItems, cName ) + lOldEnabled := ::hItems[ cName ]:isEnabled() + IF hb_isLogical( lEnabled ) + ::hItems[ cName ]:setEnabled( lEnabled ) + ENDIF + ENDIF + + RETURN lOldEnabled + +/*----------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbide/resources/designer.png b/harbour/contrib/hbide/resources/designer.png new file mode 100644 index 0000000000..c3cf8a767d Binary files /dev/null and b/harbour/contrib/hbide/resources/designer.png differ diff --git a/harbour/contrib/hbide/resources/f-bold-1.png b/harbour/contrib/hbide/resources/f-bold-1.png new file mode 100644 index 0000000000..c9cb630343 Binary files /dev/null and b/harbour/contrib/hbide/resources/f-bold-1.png differ diff --git a/harbour/contrib/hbide/resources/f-generic.png b/harbour/contrib/hbide/resources/f-generic.png new file mode 100644 index 0000000000..bdbc1a80ac Binary files /dev/null and b/harbour/contrib/hbide/resources/f-generic.png differ diff --git a/harbour/contrib/hbide/resources/f-image.png b/harbour/contrib/hbide/resources/f-image.png new file mode 100644 index 0000000000..68da5027cf Binary files /dev/null and b/harbour/contrib/hbide/resources/f-image.png differ diff --git a/harbour/contrib/hbide/resources/f-italic-1.png b/harbour/contrib/hbide/resources/f-italic-1.png new file mode 100644 index 0000000000..977ea82176 Binary files /dev/null and b/harbour/contrib/hbide/resources/f-italic-1.png differ diff --git a/harbour/contrib/hbide/resources/f-strike-1.png b/harbour/contrib/hbide/resources/f-strike-1.png new file mode 100644 index 0000000000..ccee76e29e Binary files /dev/null and b/harbour/contrib/hbide/resources/f-strike-1.png differ diff --git a/harbour/contrib/hbide/resources/f-underline-1.png b/harbour/contrib/hbide/resources/f-underline-1.png new file mode 100644 index 0000000000..0c48721002 Binary files /dev/null and b/harbour/contrib/hbide/resources/f-underline-1.png differ diff --git a/harbour/contrib/hbide/resources/f_align_bottom.png b/harbour/contrib/hbide/resources/f_align_bottom.png new file mode 100644 index 0000000000..7eb926db10 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_bottom.png differ diff --git a/harbour/contrib/hbide/resources/f_align_center.png b/harbour/contrib/hbide/resources/f_align_center.png new file mode 100644 index 0000000000..39b3a40d1f Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_center.png differ diff --git a/harbour/contrib/hbide/resources/f_align_justify.png b/harbour/contrib/hbide/resources/f_align_justify.png new file mode 100644 index 0000000000..791fa51637 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_justify.png differ diff --git a/harbour/contrib/hbide/resources/f_align_left.png b/harbour/contrib/hbide/resources/f_align_left.png new file mode 100644 index 0000000000..8d915e6c80 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_left.png differ diff --git a/harbour/contrib/hbide/resources/f_align_middle.png b/harbour/contrib/hbide/resources/f_align_middle.png new file mode 100644 index 0000000000..00b0e2f4ae Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_middle.png differ diff --git a/harbour/contrib/hbide/resources/f_align_right.png b/harbour/contrib/hbide/resources/f_align_right.png new file mode 100644 index 0000000000..bdb2b949b7 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_right.png differ diff --git a/harbour/contrib/hbide/resources/f_align_top.png b/harbour/contrib/hbide/resources/f_align_top.png new file mode 100644 index 0000000000..5db37eecb7 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_align_top.png differ diff --git a/harbour/contrib/hbide/resources/f_barcode.png b/harbour/contrib/hbide/resources/f_barcode.png new file mode 100644 index 0000000000..a565c843b0 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_barcode.png differ diff --git a/harbour/contrib/hbide/resources/f_box_all.png b/harbour/contrib/hbide/resources/f_box_all.png new file mode 100644 index 0000000000..982eb1d75c Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_all.png differ diff --git a/harbour/contrib/hbide/resources/f_box_bottom.png b/harbour/contrib/hbide/resources/f_box_bottom.png new file mode 100644 index 0000000000..c700b87c62 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_bottom.png differ diff --git a/harbour/contrib/hbide/resources/f_box_left.png b/harbour/contrib/hbide/resources/f_box_left.png new file mode 100644 index 0000000000..f77e7307c0 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_left.png differ diff --git a/harbour/contrib/hbide/resources/f_box_matrix.png b/harbour/contrib/hbide/resources/f_box_matrix.png new file mode 100644 index 0000000000..4ab3384a7a Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_matrix.png differ diff --git a/harbour/contrib/hbide/resources/f_box_plain.png b/harbour/contrib/hbide/resources/f_box_plain.png new file mode 100644 index 0000000000..e461fb455f Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_plain.png differ diff --git a/harbour/contrib/hbide/resources/f_box_right.png b/harbour/contrib/hbide/resources/f_box_right.png new file mode 100644 index 0000000000..a0dc71939f Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_right.png differ diff --git a/harbour/contrib/hbide/resources/f_box_shadow.png b/harbour/contrib/hbide/resources/f_box_shadow.png new file mode 100644 index 0000000000..6f1996a128 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_shadow.png differ diff --git a/harbour/contrib/hbide/resources/f_box_top.png b/harbour/contrib/hbide/resources/f_box_top.png new file mode 100644 index 0000000000..0fa54f9e1d Binary files /dev/null and b/harbour/contrib/hbide/resources/f_box_top.png differ diff --git a/harbour/contrib/hbide/resources/f_chart.png b/harbour/contrib/hbide/resources/f_chart.png new file mode 100644 index 0000000000..f34da5e8bb Binary files /dev/null and b/harbour/contrib/hbide/resources/f_chart.png differ diff --git a/harbour/contrib/hbide/resources/f_gradient.png b/harbour/contrib/hbide/resources/f_gradient.png new file mode 100644 index 0000000000..b76856a2d1 Binary files /dev/null and b/harbour/contrib/hbide/resources/f_gradient.png differ diff --git a/harbour/contrib/hbqt/hbqt.ch b/harbour/contrib/hbqt/hbqt.ch index 22eec94c13..6aceaaf6e2 100644 --- a/harbour/contrib/hbqt/hbqt.ch +++ b/harbour/contrib/hbqt/hbqt.ch @@ -2249,10 +2249,29 @@ #define QAbstractItemDelegate_EditNextItem 1 // The view should use the delegate to open an editor on the next item in the view. #define QAbstractItemDelegate_EditPreviousItem 2 // The view should use the delegate to open an editor on the previous item in the view. -// The following hints are most useful when models are used that cache data, such as those that manipulate data locally in order to increase performance or conserve network bandwidth. +//The following hints are most useful when models are used that cache data, such as those that manipulate data locally in order to increase performance or conserve network bandwidth. #define QAbstractItemDelegate_SubmitModelCache 3 // If the model caches data, it should write out cached data to the underlying data store. #define QAbstractItemDelegate_RevertModelCache 4 // If the model caches data, it should discard cached data and replace it with data from the underlying data store. +#define QTabBar_LeftSide 0 // Left side of the tab. +#define QTabBar_RightSide 1 // Right side of the tab. +//This enum was introduced in Qt 4.5. + +#define QTabBar_SelectLeftTab 0 // Select the tab to the left of the one being removed. +#define QTabBar_SelectRightTab 1 // Select the tab to the right of the one being removed. +#define QTabBar_SelectPreviousTab 2 // Select the previously selected tab. +//This enum was introduced in Qt 4.5. + +//enum QTabBar::Shape +//This enum type lists the built-in shapes supported by QTabBar. Treat these as hints as some styles may not render some of the shapes. However, position should be honored. +#define QTabBar_RoundedNorth 0 // The normal rounded look above the pages +#define QTabBar_RoundedSouth 1 // The normal rounded look below the pages +#define QTabBar_RoundedWest 2 // The normal rounded look on the left side of the pages +#define QTabBar_RoundedEast 3 // The normal rounded look on the right side the pages +#define QTabBar_TriangularNorth 4 // Triangular tabs above the pages. +#define QTabBar_TriangularSouth 5 // Triangular tabs similar to those used in the Excel spreadsheet, for example +#define QTabBar_TriangularWest 6 // Triangular tabs on the left of the pages. +#define QTabBar_TriangularEast 7 // Triangular tabs on the right of the pages. /*----------------------------------------------------------------------*/