From dc1d8ec714bfe140a0ece235cb711ca94799b021 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Tue, 10 Aug 2010 17:56:36 +0000 Subject: [PATCH] 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. --- harbour/ChangeLog | 52 ++ harbour/contrib/hbide/hbide.hbp | 2 + harbour/contrib/hbide/hbide.prg | 9 +- harbour/contrib/hbide/hbide.qrc | 25 + harbour/contrib/hbide/ideactions.prg | 2 + harbour/contrib/hbide/idedocks.prg | 164 +++--- harbour/contrib/hbide/ideobject.prg | 2 + harbour/contrib/hbide/idereportsmanager.prg | 494 ++++++++++++++++++ harbour/contrib/hbide/idetoolbar.prg | 222 ++++++++ harbour/contrib/hbide/resources/designer.png | Bin 0 -> 788 bytes harbour/contrib/hbide/resources/f-bold-1.png | Bin 0 -> 705 bytes harbour/contrib/hbide/resources/f-generic.png | Bin 0 -> 627 bytes harbour/contrib/hbide/resources/f-image.png | Bin 0 -> 558 bytes .../contrib/hbide/resources/f-italic-1.png | Bin 0 -> 619 bytes .../contrib/hbide/resources/f-strike-1.png | Bin 0 -> 611 bytes .../contrib/hbide/resources/f-underline-1.png | Bin 0 -> 673 bytes .../hbide/resources/f_align_bottom.png | Bin 0 -> 94 bytes .../hbide/resources/f_align_center.png | Bin 0 -> 103 bytes .../hbide/resources/f_align_justify.png | Bin 0 -> 86 bytes .../contrib/hbide/resources/f_align_left.png | Bin 0 -> 103 bytes .../hbide/resources/f_align_middle.png | Bin 0 -> 99 bytes .../contrib/hbide/resources/f_align_right.png | Bin 0 -> 106 bytes .../contrib/hbide/resources/f_align_top.png | Bin 0 -> 94 bytes harbour/contrib/hbide/resources/f_barcode.png | Bin 0 -> 529 bytes harbour/contrib/hbide/resources/f_box_all.png | Bin 0 -> 106 bytes .../contrib/hbide/resources/f_box_bottom.png | Bin 0 -> 100 bytes .../contrib/hbide/resources/f_box_left.png | Bin 0 -> 100 bytes .../contrib/hbide/resources/f_box_matrix.png | Bin 0 -> 87 bytes .../contrib/hbide/resources/f_box_plain.png | Bin 0 -> 98 bytes .../contrib/hbide/resources/f_box_right.png | Bin 0 -> 103 bytes .../contrib/hbide/resources/f_box_shadow.png | Bin 0 -> 126 bytes harbour/contrib/hbide/resources/f_box_top.png | Bin 0 -> 101 bytes harbour/contrib/hbide/resources/f_chart.png | Bin 0 -> 587 bytes .../contrib/hbide/resources/f_gradient.png | Bin 0 -> 253 bytes harbour/contrib/hbqt/hbqt.ch | 21 +- 35 files changed, 920 insertions(+), 73 deletions(-) create mode 100644 harbour/contrib/hbide/idereportsmanager.prg create mode 100644 harbour/contrib/hbide/idetoolbar.prg create mode 100644 harbour/contrib/hbide/resources/designer.png create mode 100644 harbour/contrib/hbide/resources/f-bold-1.png create mode 100644 harbour/contrib/hbide/resources/f-generic.png create mode 100644 harbour/contrib/hbide/resources/f-image.png create mode 100644 harbour/contrib/hbide/resources/f-italic-1.png create mode 100644 harbour/contrib/hbide/resources/f-strike-1.png create mode 100644 harbour/contrib/hbide/resources/f-underline-1.png create mode 100644 harbour/contrib/hbide/resources/f_align_bottom.png create mode 100644 harbour/contrib/hbide/resources/f_align_center.png create mode 100644 harbour/contrib/hbide/resources/f_align_justify.png create mode 100644 harbour/contrib/hbide/resources/f_align_left.png create mode 100644 harbour/contrib/hbide/resources/f_align_middle.png create mode 100644 harbour/contrib/hbide/resources/f_align_right.png create mode 100644 harbour/contrib/hbide/resources/f_align_top.png create mode 100644 harbour/contrib/hbide/resources/f_barcode.png create mode 100644 harbour/contrib/hbide/resources/f_box_all.png create mode 100644 harbour/contrib/hbide/resources/f_box_bottom.png create mode 100644 harbour/contrib/hbide/resources/f_box_left.png create mode 100644 harbour/contrib/hbide/resources/f_box_matrix.png create mode 100644 harbour/contrib/hbide/resources/f_box_plain.png create mode 100644 harbour/contrib/hbide/resources/f_box_right.png create mode 100644 harbour/contrib/hbide/resources/f_box_shadow.png create mode 100644 harbour/contrib/hbide/resources/f_box_top.png create mode 100644 harbour/contrib/hbide/resources/f_chart.png create mode 100644 harbour/contrib/hbide/resources/f_gradient.png 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 0000000000000000000000000000000000000000..c3cf8a767d3438b22782f459f609afa3ef14a767 GIT binary patch literal 788 zcmV+v1MB>WP)loXHGJDJ2jupx8@9LB6C!57C8;if|N4(lNAz6fZA6g$bgF43517 z`BYFnREC0JnGT89RLs;=a=eVA<2YxZxt#W#@j_U=wBhGp>%ji@TI=l1;6E2*u~@Wg z$4+~6LI`xc7OD$cg!4fUC2VUa zelxUyc*c(Y{{Cj8(O9q#;7Q0J8Tu)BQ_e%A8v+Vtu^Ug=HW1-=VSaudR;%?+VPT+iF^oR|FCIk9-*+3QWA$hOl_O3B_zq}I5%gZGd(A3n##h<-Id;<@0B6$@a zkAnWeB_!ky{;{2Bz0;WMXcH?cDuRH<#zrnRE1Nj2#Yj(F0jtq~fr6otMI5<4u&i#Lg_yNFh>hS^yOk&z+{dOxOTm#}P)M*OX}h}J+=U>;KM z3$d!IDhQzemdngGlJA}ORDgXm36b%6SemFol)(;%V+Et*5>oQVk;Va^rk2s!X5ItP ziE>wR^2zA?yGT#6!|qB!TzU=sK7zU7dU_9fpm-NBIJ}DEsU;vs^U%@ODppr*53#nk zmdnX6B7LuOk(Rg&+v;KHW3JLU_@L2*z&6_sft`dHGJ&a?O*o`9dEGe|TTu3GMFp5l zChkUYHL-ubkL0*%aDo9cAza87Fd?rXOze1i;KVcnCq z&9xpA?28{EiXm`sN#F$yBsT%av5+JW1o|!{$xFX$=>Z<%auK(lmx~#eWy2r88*zql zT7>c%s802-{Lle5s%jg5` SiWTbs00004(6%e5&dwuVo>p%iUaB}c$=S$8n-#Om_{;}Af z!s%OYf}FD~k#g1RoHK_=h0`yt73+1^9wI}c@7z(I=#7K1Exu9;&)?^u?7cXnjJifsLX8A~{JUC-qGO*+K=`GSCzXF{RY~U4YnNN|TPf-Fc{qWpXv-3MDwU zEl5g>q_iB{5kib?SKn;A(b5gSZt+c6T!foOXOy2((iD6~eJapUSGgbun9_G<_S zG%x@oZ@)ot58PS<%!)ApVBEE3pQYLlN5pDTqG|)hl8xn@3ENSy9fBwff;`?_*C{FH~w~6&`N`f-P+#zq*uU-F?Y5k}|UWnw&pcm>7Pr npM&n+00000NkvXXu0mjf*d;l2 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/f-generic.png b/harbour/contrib/hbide/resources/f-generic.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbc1a80ac4b77f1ed24ff3c6caa77a144bc9c26 GIT binary patch literal 627 zcmV-(0*w8MP)D zlg&$%Q5431Gj|$ibZCUI4}yxUiCnc1+G+-^+iB&#UEqHZZ3c#EArT?8(xOd7R1l~w za#2AgQ;{D@I%7CaNV2IHwbJze{Vh7{VkEa(3LsC%xf zXV%KpjLXrEFdch?XycO3IXeUHP0lxluJw5SKF5VK9f$}A+k3HwI4QL-0IdDOcqB zSPE?{nePsVKHqOC;{4k}t(6bITvXyc-d%VPHD_8EAd@c7LN z0VN#U-}*W8+D$+wD1(hb7ZnxQ)>0#;WVhSMx1M~WOW`<`(y-`~O?lW3>LcLKl zTI-Q&y-_m`fH8&#kDju%^KPiHOVtHdSC#>A0E7_i?tf4s(+R0|vB7qwa4%ryoayflfE%+4_t0F6nNx)`Z6qVHi=FPKTS#CU}=K zz{+W!#C9YIhrSlXiNSHls7#+^Yo;a`d;);QTNPSAe+|gJYq?(Q!^i)DrRoA3o7+RD wat;teu)4CGrROk3N|^!cjmHn~jryI>0JT`*mWx6Xs{jB107*qoM6N<$f&tz34gdfE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..977ea821763ea983ac5b9ce3a71a57eecdbc63cf GIT binary patch literal 619 zcmV-x0+juUP)A_ax+;G6&e0r*Ko zK~y-)&5}<@lW`cwzrW}A?j6fwGBVSsRnwNXEoL!@f)0gJ6eJ-b8WBZC)FFxv>*yh* z2pUx6AuM+55FToyKQxITtOnV_4x58A5D}*0^xZpu&)dP03Uxx4p7Zm3`0#zcz(0;y z?qb8~2VP0?GqWWDKoXh#-EDSlImdys4_!L6fh)&%$?cxi7#%lo{zhB}04jA{b0MNT zSfoxI^xG<&4qUpO;ECxXEM@>eNduSR?A^P=T^Xvc7MCN>I5#;%-^OOZtWeS*c=CSO zv(D9cZ2va8*7JrZCXFa7MrI@rR=hO8-+r&Dyv*Ktt|df0Pd{1ducP0EZk}RRn3`5g z8~9r9cy&onF1GEVSIJ@Yz5SvJtQtOacg$K!A#W&HY7s!7`L0U<17})x%gjg~k7E67 zvI-4GJH`NjnK5N3@IoQh9Ej*_=T!5)pv}_kc>X$NnFW&oB)vy(%@v0v=M6>t)8G$) zz7oB``VEy;)oVmDJr1{fz3^?_j8zUBoGUbxm)RgmP&6?-pTRt!_Q=g}RfV%L=-)z* zUwpKN(%A)DDs4J@d^_pa7c>Cac(|*HNOacL)luSo7DJhAQ54O!=~y`TH(=ADE^97} z-wdP>*9(S0@z_fUK?-U%kd0r>E%IS=@LiuSh)nz!^8-%6&rs(VEJXkS002ovPDHLk FV1jmq3Q7O~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ccee76e29e58347b30a48d7b4c3a03efc36ebde6 GIT binary patch literal 611 zcmV-p0-XJcP)h*V(GL>w5|PQEn4Xi1c7vM2@+}vyxXLr8euI;+u!45sghv)gg`#!)PB~>z8 zZ^b+eVwH0)0{~;J$RQm{JnmXA&&rhm47~fw1s}V4^(+A3$%`5G>it4DfcrbM<%&cY zF{wXv(a%QXb7C|;CoY{k!iY)zh(y?~fS~1T^LuNlX1|KDiIfwFGyqspJyQG@C>uhITyhXlOv}Wd-)nW^B3qnNb%?XTWbt*}RMS%o;B^PVdR< z!@U4da2%}Xe!F!IGO5)X^o?RCfLIAYX41&1<4r8RyouKH0jgFB`&1daN-#792Q--` zzx+hTQ&0JgUn3;|Uq`e>Q6$4<8eYbyU3=B0O84qUt=o9)Gy%f!bwpbhp7(u}0YH}c z;9;+qzAk2Auh@_ZRcd-X?EGDBZXd47=dzp5_7-Xmnq>d@J_w+l0RS)Z;HTtgOul&w xa6V9827vT<*n!LMeVduW%Hll0c@Y1F{s73lw+8d?uJHf>002ovPDHLkV1gC+4?O?? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0c487210023af031a2867c5418ac8f66a74dd964 GIT binary patch literal 673 zcmV;S0$%-zP)*hRD* zDilHN6y!03Aylvq8mY0^Xm*&-*;Q4?~%1?s{qC zoNW>*4FEW2MIu!b8t=@MX0>tvW9YtdseyO3_y7RofiQnRAL|D2s%9j$AAC2 zX*&E}0YIaxhCO~UT_{SjhQ>Q-Z=RO|B;_@ivs&m!O_&TWsL9}h0_QlPTLejYwKRVK z&;*{|x#AJCkqsy%SCo<~bCEdCyB$Ikc=k`g*D+Ra(wNs>cO0*S5t+{y`ttcg-%Kbb z^=ci4QS|yc#_InHaNyDH%jeja)imNiG9XD)Bxx#<%wjXO1E<5zpzyFP;B6ltv~%#PWKQjDpeY zx%<2q0E&iz%vM&~9d*KDu_E^?+Xmp(K0t6b>^W1%m*U%KzUUJcvp}U;!x6K9ZmmF- zRTHyc(^x-ND{|TF@IJuR>i3x{xK6@~cOO2>WFjfb9av?RO`dG<3I(ORTK&G*n+M_D zQ)L)(IGti~HHGA60z_n94)hoHHlJ=8H08F^+s5xaY<7o8ZmbOfxXE|-r>1Bmin*DO zP(%Zz%>b|*=r2I2!B}`6Ki9rN5jEj|6gzcmKph6)hn?ULm)G+yCUZW`00000NkvXX Hu0mjf71A&2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7eb926db10cfef57dca2a58440649474896ef054 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`s-7;6Ar-fhQx*sqTsqb8KcmRv r=iv(sGgvl$S;2VtGQ%Xsqd?U+|JVp-yt#TGsDZ)L)z4*}Q$iB}rUf2x literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..39b3a40d1f7baf04d65cbe63a7e7f73884e31eab GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`dY&$hAr-fhQx*sqTsqb8|H!K4 zo!tK>FKU0Kr;uXZwl7hP`^YbO*Y^fK>|e|o7&0ca3D!+L@(QSv!PC{xWt~$(69Cp) BA!Yyo literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..791fa51637111a95b696a1e4e7420a204a95963e GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vYsxEAr-fhQx*sq1YK_U|Kx>i j>A@A;Z40^CjxjJyv1SvDcU-^+RLJ1z>gTe~DWM4fYuXo3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8d915e6c8050e6bcca073dd49ea7f5c1028564ca GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`dY&$hAr-fhQx*sq1YK_U|0KdK zTs&dxgm-!eHcZjeOHjGSu&b4^>t5nCA@*Yo3{%?K1iQE`-vV_qc)I$ztaD0e0sw}P BA2R>| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00b0e2f4ae7268e215cb9d05f86e942cc0d0c596 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`TAnVBAr-fhQx*sqTsqb8KcmRv wXNWn2nxl?w)`1Tu4Ubw}Oqn~_M5GxQxc1u!7Sv9z1L|V%boFyt=akR{0LH8vw*UYD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bdb2b949b707872f255913857a9d8efd07db33ca GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr-fhQx*sqT)Nco|HzA_ zGr2i#`bCQiBwN2d+#n$yc%Sviueo)J1{*Xd)&X^Tw6h61-nuRc)Xd=N>gTe~DWM4f D504=L literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5db37eecb7b7827b087c31b6e3ac190d9e3219f8 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`s-7;6Ar-fhQx*sq1l?}OH86O(`njxgN@xNA5=t3M literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/f_barcode.png b/harbour/contrib/hbide/resources/f_barcode.png new file mode 100644 index 0000000000000000000000000000000000000000..a565c843b0e64bb1d2610749f8207441a82f3edc GIT binary patch literal 529 zcmV+s0`C2ZP)glbBq6cE*gd{ZsoF+#2uHfU=i2A~^c~;tGTbxRJOInGqP&zINRq$eM8HUJbewTv3Rqoz_U)uni3x(hi+&B)rQx~3?7FzIY&5R`2qY)+(7Z%Oo@FJRxbF8H_4&i|J2m9!D zyGW-`H@B0wUJ zx^W9oRkYh}yxMw=o6!Ux^B-_0K-YDY%Vo%h^1AW8s}0B>@8{M%9Ka5g|u6apksqZULT z5G4hsiQL{>0w^dR7JdW#V;l~L{Mh_r+qQWg3WeY}4nJPsSYygXF-&V0g?v6RQl(mr ziS&~gcV6H=7Cg8k{X8%jrsf)xCp1lK1Xh;G%F=8rGxq1TA+^_Jq%U*1O!tbP5nl?z Tk?U2*00000NkvXXu0mjf?91?o literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..982eb1d75caeb73b88892f9b81c7fc07762936ff GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr-fhQx*sqIKBM;gTe~DWM4f DA)O&; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c700b87c624b91348a5ba6b8f39c6f01c9b5b942 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`+MX_sAr-fhQx*sqIKBKIV7Aia x4#TRQ46*_u@@;w&y{(O9jFD9WZ3aiTCk=rju)tn!PC{xWt~$(69CGg9033T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f77e7307c07ac58029755bd1345307a50870dcde GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`+MX_sAr-fhQx*sqIKBKIV7Ahv xjZtJbgRFpve4Cy`Z|lJaOq-G$a~w7@GW>j@E_mVXqpLt|44$rjF6*2UngG`#9s2+P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4ab3384a7a2df06a682698f39bbdfe7e75625c15 GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`a-J@ZAr-fhQx*sq1YK_UA7JPC kWd*letidZLt(^=E=Pe8cV{a^d3{=VB>FVdQ&MBb@0DVXpa{vGU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e461fb455f50f2a9a4b911b3c8707c7b2fe1db04 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`nw~C>Ar-fhQx*sqIKBKIV7Aia v4#TRQ46*_u@@;w&y{!iyG&Od!ZenC8wpA3I)>8NmsENVT)z4*}Q$iB}o_rht literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a0dc71939f5156d179bfe8e3df3c42e6838f7f4e GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`dY&$hAr-fhQx*sqIKBKIV7Aia z4nq)Q8{_{%3Acb6iCqaMVrmdKI;Vst02((O A?EnA( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6f1996a1288cda34b8b0fb5a6dc3de40f96e37e7 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`uAVNAAr-fhQx*sqGNI8_{En#6` YcpvF6XgN(r9cUnfr>mdKI;Vst0JY&JoB#j- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0fa54f9e1d4aaf09b5fa1fd3ef4ee4852d4bab62 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`I-V|$Ar-fhQx*sqIKBM;`WQT2{an^LB{Ts5QePi~ literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbide/resources/f_chart.png b/harbour/contrib/hbide/resources/f_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..f34da5e8bbb2bfaa34abbe1af6359b487ec63eba GIT binary patch literal 587 zcmV-R0<`^!P)4klKH&ri?H zz-mC^Ve1AL9X}KUUT&M1U*NT2A_FrkM1X~z;n|6al~@f(IAqmes%?W}z|Wma^YfkN zOk`k$Xki2z@buhL>;}Xiv}{n<)I>3WW6!SqJj<4e{~7*3d;oI6wY`;$_rrpha45>k zAl&-t+Z5|dXa4v|p(G^n1LyN|^fD&?|Mv}Q00+a1hc_x2Up3d$9eKI z1o?pmJV6-n&!Cd=VSMaExdn^lU<#i{M*W=XczePDmow$a1_YmyFU$~A>i_@aF_H_E zYZz}>TKY2c@Cd^cvV8mftuOA`}`OU}A_ZXkNes^D5L{Nbo1D?Kl|A6tytGD+#{tJ<1zz@cE z4;UZ6d~^TXD`Bz>;1YZLfbr3bH}@Z3CC>m^ZLk5a?_bz2LY4srj&B|?K6w86{{B_u z8Q>TOG~oWTm-p9B6C=xj;H+0b1D?LTKdX^E1Jde&2Hbn{{C<0m1X%`DPI>Ww@y_Gt z_shb`GoWiF(12_AA79IKmC+=}fa$xRT&FxUQEC7HDui06@eI7B00000NkvXXu0mjf Dh=_BI literal 0 HcmV?d00001 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. /*----------------------------------------------------------------------*/