Files
harbour-core/harbour/contrib/hbide/ideobject.prg
Pritpal Bedi a1a104fd89 2010-02-21 07:14 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ contrib/hbide/resources/dc_delete.png
  + contrib/hbide/resources/dc_down.png
  + contrib/hbide/resources/dc_folder.png
  + contrib/hbide/resources/dc_function.png
  + contrib/hbide/resources/dc_home.png
  + contrib/hbide/resources/dc_left.png
  + contrib/hbide/resources/dc_plus.png
  + contrib/hbide/resources/dc_print.png
  + contrib/hbide/resources/dc_quit.png
  + contrib/hbide/resources/dc_refresh.png
  + contrib/hbide/resources/dc_right.png
  + contrib/hbide/resources/dc_textdoc.png
  + contrib/hbide/resources/dc_textdocument.png
  + contrib/hbide/resources/dc_up.png
  + contrib/hbide/resources/docviewgenerator.ui
  + contrib/hbide/resources/docviewgenerator.uic
  * contrib/hbide/resources/help.png
  + contrib/hbide/resources/searchreplace.ui
  + contrib/hbide/resources/searchreplace.uic
    + Added few more images and redefined a prev one.

  * contrib/hbqt/THbQtUI.prg
    + Added some more hbqt.ch defined constants in the engine.

  * contrib/hbide/hbide.ch
  * contrib/hbide/hbide.hbp
  * contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/idefindreplace.prg
  * contrib/hbide/ideharbourhelp.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/idestylesheets.prg
    + Implemented an html viewer for Harbour's documentation .txt
      files with slots to make it a "writer" too if it fits the purpose.

    ! Reimplemented the "Search-Replace" user interface and working.
      A work-in-progrss which I will explain later.

    ; Harbour Documentation Viewer - How to Invoke
        * Close any docking pane is visible at the right panel.
        * Point to <Docks> option on <Main Menu> and click on 
           <Document Viewer>
        * A right-side "Document Viewer" window will appear.
        * Provide Harbour's installation root path in 
          "Harbour Installation Root:" field, i.e., C:\harbour
        * OR alternatively, you can choose one by clicking 
          "Harbour Installation Root Path" icon on the right of 
          field.
        * Click "Refresh" icon on the toolbar of "Document Viewer" 
          window" only once and wait a couple of seconds.
        * "Contents" tab will be populated with /doc and /doc/en 
          folders.
        * Double-click on one to expand - you will be able to 
          view .txt file names.
        * Double-click on some .txt node, wait a couple of seconds,
          and you will be able to see "functions" nodes.
        * Double-click on the function's node and you will be 
          presented with html display in the "View" tab on the right.
        * Navigate other tabs on the right, you will understand the 
          contents.
        * Next time hbIDE will remember Harbour's installation root path.
        * :( On exit expect to receive a GPF, investigating.

      Right now only "Viewer" part is ready per preliminary stages.
      I have a lot of ideas on my drawing-board and would like to 
      hear your opinions. Basic components to write a document are 
      also in place, but I need to gather more info and what else 
      can be included.

      In the next several days I will be focussing on this tool.

      Bacco and Vailton, please bear with me, as this interface 
      is the basic requirement of hbIDE which I had kept postponed 
      till now. A stand alone viewer and writer has its own purpose,
      space, and audience.
2010-02-21 15:49:37 +00:00

237 lines
12 KiB
Plaintext

/*
* $Id$
*/
/*
* Harbour Project source code:
*
* Copyright 2009-2010 Pritpal Bedi <pritpal@vouchcac.com>
* www - http://www.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 <pritpal@vouchcac.com>
* 03Jan2010
*/
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
#include "hbide.ch"
#include "common.ch"
#include "hbclass.ch"
/*----------------------------------------------------------------------*/
CLASS IdeObject
ACCESS pSlots INLINE hbxbp_getSlotsPtr()
ACCESS pEvents INLINE hbxbp_getEventsPtr()
DATA xD
DATA xD1
DATA xD2
DATA oIde
DATA oUI
DATA qContextMenu
ACCESS oFR INLINE ::oIde:oFR
ACCESS oEM INLINE ::oIde:oEM
ACCESS oPM INLINE ::oIde:oPM
ACCESS oDK INLINE ::oIde:oDK
ACCESS oAC INLINE ::oIde:oAC
ACCESS oSM INLINE ::oIde:oSM
ACCESS oEV INLINE ::oIde:oEV
ACCESS oFindDock INLINE ::oIde:oFindDock
ACCESS oFindInFiles INLINE ::oIde:oFindInFiles
ACCESS aMeta INLINE ::oIde:aMeta
ACCESS oFont INLINE ::oIde:oFont
ACCESS oThemes INLINE ::oIde:oThemes
ACCESS oSBar INLINE ::oIde:oSBar
ACCESS oDlg INLINE ::oIde:oDlg
ACCESS qDlg INLINE ::oIde:oDlg:oWidget
ACCESS oDA INLINE ::oIde:oDA
ACCESS qLayout INLINE ::oIde:qLayout
ACCESS qCurEdit INLINE ::oIde:qCurEdit
ACCESS qCurDocument INLINE ::oIde:qCurDocument
ACCESS oCurEditor INLINE ::oIde:oCurEditor
ACCESS qTabWidget INLINE ::oIde:qTabWidget
ACCESS oTabParent INLINE ::oIde:oTabParent
ACCESS qBrushWrkProject INLINE ::oIde:qBrushWrkProject
ACCESS qViewsCombo INLINE ::oIde:qViewsCombo
ACCESS qHelpBrw INLINE ::oIde:qHelpBrw
ACCESS qTBarSlctns INLINE ::oIde:qTBarSlctns
ACCESS qTBarLines INLINE ::oIde:qTBarLines
ACCESS qTBarPanels INLINE ::oIde:qTBarPanels
ACCESS cWrkProject INLINE ::oIde:cWrkProject
ACCESS cWrkTheme INLINE ::oIde:cWrkTheme
ACCESS cWrkCodec INLINE ::oIde:cWrkCodec
ACCESS cWrkPathMk2 INLINE ::oIde:cWrkPathMk2
ACCESS cWrkPathEnv INLINE ::oIde:cWrkPathEnv
ACCESS cWrkEnvironment INLINE ::oIde:cWrkEnvironment
ACCESS cWrkFind INLINE ::oIde:cWrkFind
ACCESS cWrkFolderFind INLINE ::oIde:cWrkFolderFind
ACCESS cWrkReplace INLINE ::oIde:cWrkReplace
ACCESS cWrkView INLINE ::oIde:cWrkView
ACCESS cWrkHarbour INLINE ::oIde:cWrkHarbour
//
ACCESS resPath INLINE ::oIde:resPath
ACCESS pathSep INLINE ::oIde:pathSep
ACCESS cLastFileOpenPath INLINE ::oIde:cLastFileOpenPath
ACCESS aProjects INLINE ::oIde:aProjects
ACCESS aINI INLINE ::oIde:aINI
ACCESS aSources INLINE ::oIde:aSources
ACCESS aEditorPath INLINE ::oIde:aEditorPath
ACCESS aProjData INLINE ::oIde:aProjData
ACCESS aTabs INLINE ::oIde:aTabs
ACCESS aViews INLINE ::oIde:aViews
ACCESS aSkltns INLINE ::oIde:aSkltns
ACCESS nCurView INLINE ::oIde:nCurView
ACCESS nTabSpaces INLINE ::oIde:nTabSpaces
ACCESS cTabSpaces INLINE ::oIde:cTabSpaces
ACCESS cSeparator INLINE ::oIde:cSeparator
ACCESS cPathSkltns INLINE ::oIde:cPathSkltns
ACCESS oDockPT INLINE ::oIde:oDockPT
ACCESS oProjTree INLINE ::oIde:oProjTree
ACCESS oProjRoot INLINE ::oIde:oProjRoot
ACCESS oDockED INLINE ::oIde:oDockED
ACCESS oEditTree INLINE ::oIde:oEditTree
ACCESS oOpenedSources INLINE ::oIde:oOpenedSources
ACCESS oFuncDock INLINE ::oIde:oFuncDock
ACCESS oFuncList INLINE ::oIde:oFuncList
ACCESS oDockB INLINE ::oIde:oDockB
ACCESS oCompileResult INLINE ::oIde:oCompileResult
ACCESS oDockB1 INLINE ::oIde:oDockB1
ACCESS oLinkResult INLINE ::oIde:oLinkResult
ACCESS oDockB2 INLINE ::oIde:oDockB2
ACCESS oOutputResult INLINE ::oIde:oOutputResult
ACCESS oStackedWidget INLINE ::oIde:oStackedWidget
ACCESS oFrame INLINE ::oIde:oFrame
ACCESS oHelpDock INLINE ::oIde:oHelpDock
ACCESS oSkeltnDock INLINE ::oIde:oSkeltnDock
ACCESS oSkeltnUI INLINE ::oIde:oSkeltnUI
ACCESS oGeneral INLINE ::oIde:oGeneral
ACCESS oThemesDock INLINE ::oIde:oThemesDock
ACCESS oPropertiesDock INLINE ::oIde:oPropertiesDock
ACCESS oEnvironDock INLINE ::oIde:oEnvironDock
ACCESS oSearchReplace INLINE ::oIde:oSearchReplace
ACCESS oDocViewDock INLINE ::oIde:oDocViewDock
ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible
ACCESS lDockRVisible INLINE ::oIde:lDockRVisible
ACCESS lDockBVisible INLINE ::oIde:lDockBVisible
ACCESS lTabCloseRequested INLINE ::oIde:lTabCloseRequested
ACCESS isColumnSelectionEnabled INLINE ::oIde:isColumnSelectionEnabled
ACCESS aMarkTBtns INLINE ::oIde:aMarkTBtns
DATA aSlots INIT {}
DATA aEvents INIT {}
METHOD connect( qWidget, cSlot, bBlock )
METHOD disConnect( qWidget, cSlot )
METHOD createTags( ... ) INLINE ::oIde:createTags( ... )
METHOD addSourceInTree( ... ) INLINE ::oIde:addSourceInTree( ... )
METHOD setPosAndSizeByIni( ... ) INLINE ::oIde:setPosAndSizeByIni( ... )
METHOD setPosByIni( ... ) INLINE ::oIde:setPosByIni( ... )
METHOD setSizeByIni( ... ) INLINE ::oIde:setSizeByIni( ... )
METHOD execAction( ... ) INLINE ::oIde:execAction( ... )
METHOD manageFuncContext( ... ) INLINE ::oIde:manageFuncContext( ... )
METHOD manageProjectContext( ... ) INLINE ::oIde:manageProjectContext( ... )
METHOD updateFuncList( ... ) INLINE ::oIde:updateFuncList( ... )
METHOD gotoFunction( ... ) INLINE ::oIde:gotoFunction( ... )
METHOD updateProjectMenu( ... ) INLINE ::oIde:updateProjectMenu( ... )
METHOD updateProjectTree( ... ) INLINE ::oIde:updateProjectTree( ... )
METHOD manageItemSelected( ... ) INLINE ::oIde:manageItemSelected( ... )
METHOD manageFocusInEditor( ... ) INLINE ::oIde:manageFocusInEditor( ... )
METHOD setCodec( ... ) INLINE ::oIde:setCodec( ... )
METHOD updateTitleBar( ... ) INLINE ::oIde:updateTitleBar( ... )
METHOD editSource( ... ) INLINE ::oSM:editSource( ... )
METHOD getEditorByIndex( ... ) INLINE ::oSM:getEditorByIndex( ... )
ENDCLASS
/*----------------------------------------------------------------------*/
METHOD IdeObject:connect( qWidget, cSlot, bBlock )
IF !( Qt_Slots_Connect( ::pSlots, qWidget, cSlot, bBlock ) )
hbide_dbg( "Connection FAILED:", cSlot )
ELSE
// hbide_dbg( "Connection SUCCEEDED:", cSlot )
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeObject:disConnect( qWidget, cSlot )
IF !( Qt_Slots_disConnect( ::pSlots, qWidget, cSlot ) )
hbide_dbg( "Dis-Connection FAILED:", cSlot )
ELSE
// hbide_dbg( "Dis-Connection SUCCEEDED:", cSlot )
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/