Module cSigCJTaskPanel.pkg

     1//==============================================================================
     2// Project      : SigCj - VDF Classes for Codejock
     3// File         : cSigCJTaskPanel.pkg
     4// Description  : VDF Class for Codejock control
     5//
     6// Revision     : $Rev: 675 $
     7//                $Date: 2011-02-23 10:51:39 -0500 (Wed, 23 Feb 2011) $
     8//                $Author: martin $ Martin Pincott
     9// 
    10// Requirements : Visual DataFlex 12.1+
    11//                Codejock SuitePro - Version 12.0.0+
    12//
    13// Copyright    : (c) 2008 VDF SIG UK
    14//                Visual DataFlex Special Interest Group UK.
    15//                http://www.vdfsig.co.uk/
    16//                dev@vdfsig.co.uk
    17//
    18//                This file is part of SigCj.
    19//
    20//                SigCj is free software: you can redistribute it and/or modify
    21//                it under the terms of the GNU Lesser General Public License 
    22//                as published by the Free Software Foundation, either version 
    23//                2.1 of the License, or (at your option) any later version.
    24//
    25//                SigCj is distributed in the hope that it will be useful, but 
    26//                WITHOUT ANY WARRANTY; without even the implied warranty of
    27//                MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    28//                GNU Lesser General Public License for more details.
    29//
    30//                If you have the complete SigCj workspace then a copy of the  
    31//                GNU Lesser General Public License is in the Docs folder. If  
    32//                not, see <http://www.gnu.org/licenses/>.
    33//    
    34//==============================================================================
    35Use SigCjW_TaskPanel.pkg
    36Use cSigCJMethods_Mixin.pkg
    37Use cSigCJGlobalSettings.pkg
    38Use StdFont.pkg
    39Use brdcster.pkg
    40
    41Define eTPT_Office2000        for OLExtpTaskPanelThemeOffice2000
    42Define eTPT_Office2003        for OLExtpTaskPanelThemeOffice2003
    43Define eTPT_NativeWinXP       for OLExtpTaskPanelThemeNativeWinXP
    44Define eTPT_Office2000Plain   for OLExtpTaskPanelThemeOffice2000Plain
    45Define eTPT_OfficeXPPlain     for OLExtpTaskPanelThemeOfficeXPPlain
    46Define eTPT_Office2003Plain   for OLExtpTaskPanelThemeOffice2003Plain
    47Define eTPT_NativeWinXPPlain  for OLExtpTaskPanelThemeNativeWinXPPlain
    48Define eTPT_Toolbox           for OLExtpTaskPanelThemeToolbox
    49Define eTPT_ToolboxWhidbey    for OLExtpTaskPanelThemeToolboxWhidbey
    50Define eTPT_ListView          for OLExtpTaskPanelThemeListView
    51Define eTPT_ListOfficeXP      for OLExtpTaskPanelThemeListViewOfficeXP
    52Define eTPT_ListOffice2003    for OLExtpTaskPanelThemeListViewOffice2003
    53Define eTPT_BarOffice2003     for OLExtpTaskPanelThemeShortcutBarOffice2003
    54
    55#IF (SigCj_Codejock_Version < 150001) 
    56    Define eTPT_BarOffice2007     for OLExtpTaskPanelThemeShortcutBarOffice2007
    57#ELSE 
    58    Define eTPT_Resource          for OLExtpTaskPanelThemeResource
    59    Define eTPT_VisualStudio2010  for OLExtpTaskPanelThemeVisualStudio2010
    60#ENDIF 
    61                              
    62Define eTPA_Yes               for OLExtpTaskPanelAnimationYes   
    63Define eTPA_No                for OLExtpTaskPanelAnimationNo    
    64Define eTPA_System            for OLExtpTaskPanelAnimationSystem
    65
    66Define eTPB_BehaviourExplorer for OLExtpTaskPanelBehaviourExplorer 
    67Define eTPB_BehaviourList     for OLExtpTaskPanelBehaviourList     
    68Define eTPB_BehaviourToolbox  for OLExtpTaskPanelBehaviourToolbox  
    69
    70Define eTPB_BorderNone        for OLExtpBorderNone       
    71Define eTPB_BorderFlat        for OLExtpBorderFlat       
    72Define eTPB_BorderStaticEdge  for OLExtpBorderStaticEdge 
    73Define eTPB_BorderClientEdge  for OLExtpBorderClientEdge 
    74Define eTPB_BorderFrame       for OLExtpBorderFrame      
    75        
    76Define eTPIT_Link             for OLExtpTaskItemTypeLink
    77Define eTPIT_Text             for OLExtpTaskItemTypeText
    78
    79{ OverrideProperty=Label                     DesignTime=False }
    80{ OverrideProperty=Label_Col_Offset          DesignTime=False }
    81{ OverrideProperty=Label_Justification_Mode  DesignTime=False }
    82{ OverrideProperty=Label_Row_Offset          DesignTime=False }
    83{ OverrideProperty=Location                  DesignTime=False }
    84{ OverrideProperty=peAnchors                 DesignTime=False }
    85{ OverrideProperty=piMinSize                 DesignTime=False }
    86{ OverrideProperty=Size                      DesignTime=False }
    87{ OverrideProperty=TextColor                 DesignTime=False }
    88{ OverrideProperty=Color                     DesignTime=False }
    89{ OverrideProperty=Border_Style              DesignTime=False }
    90{ OverrideProperty=Enabled_State             DesignTime=False }
    91{ OverrideProperty=Visible_State             DesignTime=False }
    92{ OverrideProperty=Attach_Parent_State       DesignTime=False }
    93{ OverrideProperty=Block_Mouse_State         DesignTime=False }
    94{ OverrideProperty=Client_Area_State         DesignTime=False }
    95{ OverrideProperty=Delegation_Mode           DesignTime=False }
    96{ OverrideProperty=Focus_Mode                DesignTime=False }
    97{ OverrideProperty=pbBindValue               DesignTime=False }
    98{ OverrideProperty=peAutoCreate              DesignTime=False }
    99{ OverrideProperty=peNeighborhood            DesignTime=False }
   100{ OverrideProperty=Popup_State               DesignTime=False }
   101{ OverrideProperty=Ring_State                DesignTime=False }
   102{ OverrideProperty=Scope_State               DesignTime=False }
   103{ OverrideProperty=Search_Case               DesignTime=False }
   104{ OverrideProperty=Skip_State                DesignTime=False }
   105{ OverrideProperty=Help_Id                   DesignTime=False }
   106{ OverrideProperty=Help_Keyword              DesignTime=False }
   107{ OverrideProperty=psHtmlHelpTopic           DesignTime=False }
   108{ OverrideProperty=Status_Help               DesignTime=False }
   109{ OverrideProperty=Use_Parent_Status_Help    DesignTime=False }
   110{ OverrideProperty=psLicenseKey              DesignTime=False }
   111{ OverrideProperty=psProgID                  DesignTime=False }
   112
   113Class cSigCJTaskPanel is a cSigCjComTaskPanel
   114    Import_Class_Protocol cSigCJMethods_Mixin
   115    
   116    Procedure Construct_Object
   117        Forward Send Construct_Object
   118
   119        { Visibility=Private }
   120        Property Handle phoGroupCollection          (Create(Self, U_cSigCjComTaskPanelGroups))        
   121        { Visibility=Private }
   122        Property Boolean Private.pbVisible True
   123        { Visibility=Private }
   124
   125        #IF (SigCj_Codejock_Version < 150001) 
   126            Property Integer Private.peTaskPanelTheme           eTPT_BarOffice2007
   127        #ELSE 
   128            Property Integer Private.peTaskPanelTheme           eTPT_Resource
   129        #ENDIF 
   130        { Visibility=Private }
   131        Property Integer Private.peAnimation                eTPA_No
   132        { Visibility=Private }
   133        Property Integer Private.peBehaviour                eTPB_BehaviourExplorer
   134        { Visibility=Private }
   135        Property Integer Private.peBorderStyle              eTPB_BorderNone 
   136        { Visibility=Private }
   137        Property Integer Private.piGroupIconHeight          16
   138        { Visibility=Private }
   139        Property Integer Private.piGroupIconWidth           16    
   140        
   141        // Create child objects:
   142        Object oAllTaskPanelItems is a Broadcaster
   143        End_Object            
   144    End_Procedure  // Construct_Object
   145    
   146    { MethodType=Property Category="CodeJock" }
   147    #IF (SigCj_Codejock_Version < 150001) 
   148        { EnumList="eTPT_Office2000, eTPT_Office2003, eTPT_NativeWinXP, eTPT_Office2000Plain, eTPT_OfficeXPPlain, eTPT_Office2003Plain, eTPT_NativeWinXPPlain, eTPT_Toolbox, eTPT_ToolboxWhidbey, eTPT_ListView, eTPT_ListOfficeXP, eTPT_ListOffice2003, eTPT_BarOffice2003, eTPT_BarOffice2007" }
   149        { InitialValue=eTPT_BarOffice2007 }
   150    #ELSE    
   151        { EnumList="eTPT_Office2000, eTPT_Office2003, eTPT_NativeWinXP, eTPT_Office2000Plain, eTPT_OfficeXPPlain, eTPT_Office2003Plain, eTPT_NativeWinXPPlain, eTPT_Toolbox, eTPT_ToolboxWhidbey, eTPT_ListView, eTPT_ListOfficeXP, eTPT_ListOffice2003, eTPT_BarOffice2003, eTPT_Resource, eTPT_VisualStudio2010" }
   152        { InitialValue=eTPT_Resource }
   153    #ENDIF 
   154    Procedure Set peTaskPanelTheme Integer eTheme
   155        Set SigCJProperty Set_Private.peTaskPanelTheme Set_ComVisualTheme to eTheme
   156    End_Procedure
   157    
   158    { MethodType=Property Category="CodeJock" }
   159    Function peTaskPanelTheme Returns Integer
   160        Function_Return (Private.peTaskPanelTheme(Self))
   161    End_Function
   162    
   163    { MethodType=Property Category="CodeJock" }
   164    Procedure Set pbVisible Boolean bVisible
   165        Set SigCJProperty Set_Private.pbVisible Set_ComEnabled to bVisible   
   166    End_Procedure
   167    
   168    { MethodType=Property Category="CodeJock" }
   169    Function pbVisible Returns Boolean
   170        Function_Return (Private.pbVisible(Self))
   171    End_Function
   172
   173    { MethodType=Property Category="CodeJock" }
   174    { EnumList="eTPA_Yes, eTPA_No, eTPA_System" }
   175    { InitialValue=eTPA_No }
   176    Procedure Set peTaskPanelAnimation Integer eValue
   177        Set SigCJProperty Set_Private.peAnimation Set_ComAnimation to eValue
   178    End_Procedure
   179    
   180    { MethodType=Property Category="CodeJock" }
   181    Function peTaskPanelAnimation Returns Integer
   182        Function_Return (Private.peAnimation(Self))
   183    End_Function
   184
   185    { MethodType=Property Category="CodeJock" }
   186    { EnumList="eTPB_BehaviourExplorer, eTPB_BehaviourList, eTPB_BehaviourToolbox" }
   187    { InitialValue=eTPB_BehaviourExplorer }
   188    Procedure Set peTaskPanelBehaviour Integer eValue
   189        Set SigCJProperty Set_Private.peBehaviour Set_ComBehaviour to eValue
   190    End_Procedure
   191    
   192    { MethodType=Property Category="CodeJock" }
   193    Function peTaskPanelBehaviour Returns Integer
   194        Function_Return (Private.peBehaviour(Self))
   195    End_Function
   196 
   197    { MethodType=Property Category="CodeJock" }
   198    { EnumList="eTPB_BorderNone, eTPB_BorderFlat, eTPB_BorderStaticEdge, eTPB_BorderClientEdge, eTPB_BorderFrame" }
   199    { InitialValue=eTPB_BorderNone }
   200    Procedure Set peTaskPanelBorder Integer eValue
   201        Set SigCJProperty Set_Private.peBorderStyle Set_ComBorderStyle to eValue
   202    End_Procedure
   203    
   204    { MethodType=Property Category="CodeJock" }
   205    Function peTaskPanelBorder Returns Integer
   206        Function_Return (Private.peBorderStyle(Self))
   207    End_Function
   208
   209    { MethodType=Property Category="CodeJock" }
   210    Procedure Set piGroupIconSize Integer iWidth Integer iHeight
   211        If (IsComObjectCreated(Self)) Begin
   212            Send ComSetGroupIconSize iWidth iHeight
   213        End
   214        Set Private.piGroupIconHeight to iHeight
   215        Set Private.piGroupIconWidth to iWidth
   216    End_Procedure
   217        
   218    { MethodType=Event }
   219    Procedure OnCreate        
   220        Forward Send OnCreate
   221        
   222        Set Visible_State to (Private.pbVisible(Self))
   223        Set ComIcons to (ComIcons(ghoSigCjGlobalSetting))
   224        Set pvComObject of (phoGroupCollection(Self)) to (ComGroups(Self))
   225        
   226        //Apply Settings...
   227        Set peTaskPanelTheme to (Private.peTaskPanelTheme(Self))
   228        Set peTaskPanelAnimation to (Private.peAnimation(Self))
   229        Set peTaskPanelBehaviour to (Private.peBehaviour (Self))
   230        Set peTaskPanelBorder to (Private.peBorderStyle(Self))
   231        Set piGroupIconSize to (Private.piGroupIconWidth(Self)) (Private.piGroupIconHeight(Self))
   232        
   233        // Create all groups
   234        Broadcast Send Private.Create Self True
   235    End_Procedure  // OnCreate
   236
   237
   238    { MethodType=Method }
   239    Procedure OnComItemClick Variant vItem
   240        Handle hoItem
   241        Handle hoID
   242        
   243        Get Create U_cSigCjComTaskPanelGroupItem to hoItem
   244        Set pvComObject of hoItem to vItem
   245        Get ComID of hoItem to hoID
   246        Send Destroy to hoItem
   247        If (hoID <> 0) Begin
   248            Send OnClick to hoID        
   249        End
   250    End_Procedure  // OnComItemClick
   251    
   252    { MethodType=Method }
   253    Function FindGroup Integer iID Returns Handle
   254        Variant vGroup
   255        Handle hoGroup hoGroupFound hoGroupCollection
   256        
   257        Get phoGroupCollection to hoGroupCollection
   258        
   259        If (hoGroupCollection = 0) Begin
   260            Function_Return -1
   261        End
   262        
   263        Get ComFind of hoGroupCollection iID to vGroup
   264        If (not(IsNullComObject(vGroup))) Begin
   265            // Create temporary object to retrieve <Tag>.
   266            Get Create U_cSigCjComTaskPanelGroup to hoGroup
   267            Set pvComObject of hoGroup to vGroup
   268            Get ComTag of hoGroup to hoGroupFound
   269            Send Destroy to hoGroup
   270        End
   271        
   272        Function_Return hoGroupFound
   273    End_Function  // FindGroup
   274    
   275    {DocStart = Method}
   276    //---------------------------------------------------
   277    //
   278    // Procedure    : DoEnumerateAllTaskPanelItems
   279    //
   280    // Scope        : Public 
   281    //
   282    // Paramaters   : iMsg
   283    //
   284    // Returns      : None
   285    //
   286    // Purpose      : As objects of type cSigCJTaskPanelGroupItem are created they are registered with a Broadcaster object
   287    //                DoEnumerateAllTaskPanelItems simply sends the passed message to all registered objects
   288    //                
   289    // Notes        : 
   290    //               
   291    //---------------------------------------------------
   292    {DocEnd} 
   293    
   294    { MethodType=Method Visibility=Public }
   295    Procedure DoEnumerateAllTaskPanelItems Integer iMsg
   296        Set broadcast_state of (oAllTaskPanelItems(Self)) to True
   297        Send iMsg of (oAllTaskPanelItems(Self))
   298        Set broadcast_state of (oAllTaskPanelItems(Self)) to False
   299    End_Procedure
   300    
   301End_Class  // cSigCJTaskPanel
   302
   303{ OverrideProperty=Delegation_Mode DesignTime=False }
   304{ OverrideProperty=peAutoCreate    DesignTime=False }
   305{ OverrideProperty=peNeighborhood  DesignTime=False }
   306{ OverrideProperty=psLicenseKey    DesignTime=False }
   307{ OverrideProperty=psProgID        DesignTime=False }
   308Class cSigCJTaskPanelGroup is a cSigCjComTaskPanelGroup
   309    Import_Class_Protocol cSigCJMethods_Mixin
   310    
   311    Procedure Construct_Object
   312        Forward Send Construct_Object
   313
   314        { Visibility=Private }
   315        Property Integer piID 0
   316
   317        { Visibility=Private }
   318        Property Handle phoItemCollection           (Create(Self, U_cSigCjComTaskPanelGroupItems))
   319        { Visibility=Private }
   320        Property Handle phoCaptionFont              (Create(Self, U_cComStdFont))
   321
   322        { Visibility=Private }
   323        Property String Private.psLabel             ""
   324        { Visibility=Private }
   325        Property String Private.psImage             ""
   326        { Visibility=Private }
   327        Property Boolean Private.pbCreateExpanded   False
   328        { Visibility=Private }
   329        Property Boolean Private.pbLabelEmboldened  False
   330        { Visibility=Private }
   331        Property Boolean Private.pbLabelItalic      False           
   332    End_Procedure  // Construct_Object
   333    
   334    { MethodType=Property Category="CodeJock" }
   335    Procedure Set psLabel String sValue
   336        Set SigCJProperty Set_Private.psLabel Set_ComCaption to sValue
   337    End_Procedure  
   338    
   339    { MethodType=Property Category="CodeJock" }
   340    Function psLabel Returns String
   341        Function_Return (Private.psLabel(Self))
   342    End_Function  
   343    
   344    { MethodType=Property Category="CodeJock" }
   345    { PropertyType=Boolean InitialValue=False }
   346    Procedure Set pbLabelEmboldened Boolean bState
   347        If (IsComObjectCreated(phoCaptionFont(Self))) Begin
   348            Set ComBold of (phoCaptionFont(Self)) to bState
   349        End
   350        Set Private.pbLabelEmboldened to bState
   351    End_Procedure
   352    
   353    { MethodType=Property Category="CodeJock" }
   354    Function pbLabelEmboldened Returns Boolean
   355        Function_Return (Private.pbLabelEmboldened(Self))
   356    End_Function  
   357    
   358    { MethodType=Property Category="CodeJock" }
   359    Procedure Set pbLabelItalic Boolean bState
   360        If (IsComObjectCreated(phoCaptionFont(Self))) Begin
   361            Set ComItalic of (phoCaptionFont(Self)) to bState
   362        End
   363        Set Private.pbLabelItalic to bState
   364    End_Procedure
   365    
   366    { MethodType=Property Category="CodeJock" }
   367    Function pbLabelItalic Returns Boolean
   368        Function_Return (Private.pbLabelItalic(Self))
   369    End_Function      
   370    
   371    { MethodType=Property Category="CodeJock" }
   372    Procedure Set psImage String sImage
   373        Integer iIndex
   374        Get AddImage of ghoSigCjGlobalSetting sImage 0 0 to iIndex
   375        If (IsComObjectCreated(Self)) Begin
   376            Set ComIconIndex to iIndex
   377        End
   378        Set Private.psImage to sImage
   379    End_Procedure
   380    
   381    { MethodType=Property Category="CodeJock" }
   382    Function psImage Returns String
   383        Function_Return (Private.psImage(Self))
   384    End_Function
   385    
   386    { MethodType=Property Category="CodeJock" }
   387    Procedure Set pbCreateExpanded Boolean bState
   388        Set SigCJProperty Set_Private.pbCreateExpanded Set_ComExpanded to bState
   389    End_Procedure
   390    
   391    { MethodType=Property Category="CodeJock" }
   392    Function pbCreateExpanded Returns Boolean
   393        Function_Return (Private.pbCreateExpanded(Self))
   394    End_Function
   395    
   396    
   397    { MethodType=Method }
   398    Procedure Private.Create Handle hoParent Boolean bRecurse
   399        Variant vGroup
   400        Handle hoGroups
   401        
   402        // Check for parent
   403        If (hoParent = 0) Begin
   404            Procedure_Return
   405        End
   406        // Get collection of groups and check
   407        Get phoGroupCollection of hoParent to hoGroups
   408        If (hoGroups = 0) Begin
   409            Procedure_Return
   410        End
   411        
   412        Get ComAdd of hoGroups (piID(Self)) (Private.psLabel(Self)) to vGroup
   413        Set pvComObject to vGroup
   414        
   415        Set pvComObject of (phoItemCollection(Self)) to (ComItems(Self))
   416        Set pvComObject of (phoCaptionFont(Self)) to (ComFont(Self))
   417        Set ComTag to (Self)
   418        Set psImage to (Private.psImage(Self))
   419        Set pbCreateExpanded  to (Private.pbCreateExpanded(Self))
   420        Set pbLabelEmboldened to (Private.pbLabelEmboldened(Self))
   421        Set pbLabelItalic to (Private.pbLabelItalic(Self))
   422                        
   423        If (bRecurse) Begin
   424            Broadcast Send Private.Create Self
   425        End
   426    End_Procedure  // Private.Create
   427
   428End_Class  // cSigCJTaskPanelGroup
   429    
   430
   431{ OverrideProperty=Delegation_Mode DesignTime=False }
   432{ OverrideProperty=peAutoCreate    DesignTime=False }
   433{ OverrideProperty=peNeighborhood  DesignTime=False }
   434{ OverrideProperty=psLicenseKey    DesignTime=False }
   435{ OverrideProperty=psProgID        DesignTime=False }
   436Class cSigCJTaskPanelGroupItem is a cSigCjComTaskPanelGroupItem
   437    Import_Class_Protocol cSigCJMethods_Mixin
   438    
   439    Procedure Construct_Object
   440        Forward Send Construct_Object
   441        { Visibility=Private }
   442        Property Integer piID
   443        { Visibility=Private }
   444        Property Integer phmMessage     0
   445        { Visibility=Private }
   446        Property Handle phoDestination (Client_ID(Self))
   447        { Visibility=Private }
   448        Property Handle phoItemsFont                (Create(Self, U_cComStdFont))
   449        
   450        { Visibility=Private }
   451        Property String Private.psLabel             ""
   452        { Visibility=Private }
   453        Property String Private.psToolTip           ""
   454        { Visibility=Private }
   455        Property String Private.psImage             ""
   456        { Visibility=Private }
   457        Property Integer Private.peItemType         eTPIT_Link  
   458        { Visibility=Private }
   459        Property Boolean Private.pbLabelEmboldened  False
   460        { Visibility=Private }
   461        Property Boolean Private.pbLabelItalic      False   
   462        { Visibility=Private }
   463        Property Boolean Private.pbEnabled          True   
   464        { Visibility=Private }
   465        Property Integer Private.piTextColor        clNone       
   466    End_Procedure  // Construct_Object
   467
   468    Procedure End_Construct_Object
   469        Send Add_Element of (oAllTaskPanelItems(Self)) Self
   470        Forward Send End_Construct_Object
   471    End_Procedure
   472    
   473    { MethodType=Property Category="CodeJock" }
   474    Procedure Set psLabel String sValue
   475        Set SigCJProperty Set_Private.psLabel Set_ComCaption to sValue
   476    End_Procedure  
   477    
   478    { MethodType=Property Category="CodeJock" }
   479    Function psLabel Returns String
   480        Function_Return (Private.psLabel(Self))
   481    End_Function  
   482    
   483    { MethodType=Property Category="CodeJock" }
   484    { PropertyType=Color InitialValue=clNone }
   485    { EnumList= "clScrollBar, clBackground, clActiveCaption, clInactiveCaption, clMenu, clWindow" }
   486    { EnumList+="clWindowFrame, clMenuText, clWindowText, clCaptionText, clActiveBorder" }
   487    { EnumList+="clInactiveBorder, clAppWorkSpace, clHighlight, clHighlightText, clBtnFace" }
   488    { EnumList+="clBtnShadow, clGrayText, clBtnText, clInactiveCaptionText, clBtnHighlight" }
   489    { EnumList+="cl3DDkShadow, cl3DLight, clInfoText, clInfoBk, clDefault, clNone" }
   490    { EnumList+="clAqua, clBlack, clBlue, clDkGray, clFuchsia, clGray, clGreen, clLime, clLtGray" }
   491    { EnumList+="clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clWhite, clYellow" }
   492    Procedure Set piTextColor Integer iColor
   493        Set SigCJProperty Set_Private.piTextColor Set_ComTextColor to iColor
   494    End_Procedure  
   495    
   496    { MethodType=Property Category="CodeJock" }
   497    Function piTextColor Returns Integer
   498        Function_Return (Private.piTextColor(Self))
   499    End_Function  
   500
   501    { MethodType=Property Category="CodeJock" }
   502    Procedure Set psTooltip String sValue
   503        Set SigCJProperty Set_Private.psTooltip Set_ComTooltip to sValue
   504    End_Procedure  
   505    
   506    { MethodType=Property Category="CodeJock" }
   507    Function psTooltip Returns String
   508        Function_Return (Private.psTooltip(Self))
   509    End_Function  
   510
   511    { MethodType=Property Category="CodeJock" }
   512    { PropertyType=Boolean InitialValue=False }
   513    Procedure Set pbLabelEmboldened Boolean bState
   514        If (IsComObjectCreated(phoItemsFont(Self))) Begin
   515            Set ComBold of (phoItemsFont(Self)) to bState
   516        End
   517        Set Private.pbLabelEmboldened to bState
   518    End_Procedure
   519    
   520    { MethodType=Property Category="CodeJock" }
   521    Function pbLabelEmboldened Returns Boolean
   522        Function_Return (Private.pbLabelEmboldened(Self))
   523    End_Function  
   524    
   525    { MethodType=Property Category="CodeJock" }
   526    Procedure Set pbLabelItalic Boolean bState
   527        If (IsComObjectCreated(phoItemsFont(Self))) Begin
   528            Set ComItalic of (phoItemsFont(Self)) to bState
   529        End
   530        Set Private.pbLabelItalic to bState
   531    End_Procedure
   532    
   533    { MethodType=Property Category="CodeJock" }
   534    Function pbLabelItalic Returns Boolean
   535        Function_Return (Private.pbLabelItalic(Self))
   536    End_Function 
   537    
   538    { MethodType=Property Category="CodeJock" }
   539    Procedure Set psImage String sImage
   540        Integer iIndex
   541        Get AddImage of ghoSigCjGlobalSetting sImage 0 0 to iIndex
   542        If (IsComObjectCreated(Self)) Begin
   543            Set ComIconIndex to iIndex
   544        End
   545        Set Private.psImage to sImage
   546    End_Procedure
   547    
   548    { MethodType=Property Category="CodeJock" }
   549    Function psImage Returns String
   550        Function_Return (Private.psImage(Self))
   551    End_Function
   552        
   553    { MethodType=Property Category="CodeJock" }
   554    { EnumList="eTPIT_Link, eTPIT_Text" }
   555    { InitialValue=eTPIT_Link }
   556    Procedure Set peItemType Integer eValue
   557        Set SigCJProperty Set_Private.peItemType Set_ComType to eValue
   558    End_Procedure
   559    
   560    { MethodType=Property Category="CodeJock" }
   561    Function peItemType Returns Integer
   562        Function_Return (Private.peItemType(Self))
   563    End_Function   
   564    
   565    { MethodType=Property Category="CodeJock" }
   566    { PropertyType=Boolean InitialValue=True }
   567    Procedure Set pbEnabled Boolean bState
   568        Set SigCJProperty Set_Private.pbEnabled Set_ComEnabled to bState
   569    End_Procedure
   570    
   571    { MethodType=Property Category="CodeJock" }
   572    Function pbEnabled Returns Boolean
   573        Function_Return (Private.pbEnabled(Self))
   574    End_Function     
   575   
   576
   577    { MethodType=Method }
   578    Procedure Private.Create Handle hoParent
   579        Handle hoItems hoItem
   580        Variant vItem
   581        Integer iIndex
   582        
   583        // Check for parent
   584        If (hoParent = 0) Begin
   585            Procedure_Return
   586        End
   587        // Get collection of items and check
   588        Get phoItemCollection of hoParent to hoItems
   589        If (hoItems = 0) Begin
   590            Procedure_Return
   591        End
   592        Move Self to hoItem
   593        Get ComAdd of hoItems hoItem (Private.psLabel(Self)) OLExtpTaskItemTypeLink 0 to vItem
   594        Set pvComObject to vItem
   595        Set pvComObject of (phoItemsFont(Self)) to (ComFont(Self))
   596        
   597        Set piTextColor to (Private.piTextColor(Self))
   598        Set psImage to (Private.psImage(Self))
   599        Set peItemType to (Private.peItemType(Self))
   600        Set pbLabelEmboldened to (Private.pbLabelEmboldened(Self))
   601        Set pbLabelItalic to (Private.pbLabelItalic(Self))
   602        Set pbEnabled to (Private.pbEnabled(Self))
   603    End_Procedure  // Private.Create
   604
   605        
   606    // Procedure : OnClick
   607    // Purpose   : This event is sent when the user selects an item
   608    { MethodType=Event }
   609    Procedure OnClick
   610        Integer iMessage
   611        Handle hoDestination
   612        
   613        Get phmMessage to iMessage
   614        If (iMessage <> 0) Begin
   615            // Get destination from item
   616            Get phoDestination to hoDestination
   617
   618            // Get default destination from parent if item has no destination
   619            If (Object_ID(hoDestination) = 0) Begin
   620                Delegate Get phoDestination to hoDestination
   621            End
   622            // Send message
   623            If (Object_ID(hoDestination) > 0) Begin
   624                Send iMessage of hoDestination
   625            End
   626            Else Begin
   627                Send iMessage of (Focus(Desktop))
   628            End
   629        End
   630    End_Procedure  // OnClick
   631    
   632End_Class  // cSigCJTaskPanelGroupItem
   633
   634//==============================================================================
   635//End of Package - cSigCJTaskPanel.pkg
   636//==============================================================================
   637