DigiGuide Logo

Home » Developer Area » DigiGuide Markers » Standard Markers

Standard Markers

Below is the complete code for the standard markers that ship with DigiGuide.
<markertemplates  version="0" >
  <template name="Favourite" id="1" searchterm=":favourite">
    <keycommands>
      <keycommand command="ToggleFavourite" code="OnToggleFavourite();"/>
    </keycommands>

    <code><![CDATA[
      function OnSetInitialDefaults()
      {
        Marker.strIconName = "RES:%DGDIR%client01.exe:66";
        Marker.bShowInLegend = 0;
      }

      function OnMenuShow()
      {
        if( IsMarked() )
        {
          AddMenuItem( GetProgrammeInfo( "Remove favourite" ), "OnSetFavourite( 0 );" );
        }
        else
        {
          AddMenuItem( GetProgrammeInfo( "Add as favourite" ), "OnSetFavourite( 1 );" );
        }
      }


      function OnSetFavourite( bMarkAsFavourite )
      {
        if( bMarkAsFavourite )
        {
          Marker.strProgrammeName = GetProgrammeInfo( "$ProgrammeName" );
          Marker.strMarkerName = GetProgrammeInfo( "Favourite: $ProgrammeName" );
          MarkerAddNew();
        }
        else
        {
          MarkerRemove();
        }
      }

      function OnToggleFavourite()
      {
        if( IsMarked() )
        {
          OnSetFavourite( 0 );
        }
        else
        {
          OnSetFavourite( 1 );
        }
      }
      function OnAlert()
      {
      }
    ]]></code>
  </template>

  <template name="Reminder" id="2" searchterm=":reminder">
    <keycommands>
      <keycommand command="ToggleReminder" code="OnReminderToggle();" />
    </keycommands>

    <code><![CDATA[
      function OnMenuShow()
      {
        if( IsMarked() )
        {
          if( MarkerIsProgrammeExcluded() )
          {
            AddMenuItem( "Remind me", "OnReincludeProgramme();" );
          }
          else
          {
            if( Marker.nRecur == 1 )
            {
              AddMenuItem( GetProgrammeInfo( "Don't remind me" ), "OnRemoveReminder();" );
            }
            else
            {
              AddMenuItem( GetProgrammeInfo( "Don't remind me" ), "OnRemoveReminderInstance();" );
              AddMenuItem( GetProgrammeInfo( "Don't remind me ever" ), "OnRemoveReminder();" );
            }

            if( Marker.strProgrammeName == "" )
            {
              AddMenuItem( GetProgrammeInfo( "Exclude|'$ProgrammeName' from '$MarkerName' marker" ), "OnExclude();" );
            }
            else
            {
              /* Do nothing */
            }
          }
        }
        else
        {
          if( !IsProgrammeOld() )
          {
            AddMenuItem( "Remind me|Once", "OnCommonCreate( 1 );" );
          }
          AddMenuItem( "Remind me|Daily", "OnCommonCreate( 2 );" );
          AddMenuItem( "Remind me|Weekly", "OnCommonCreate( 3 );" );
          AddMenuItem( "Remind me|Anytime", "OnCommonCreate( 0 );" );
        }
      }

      function OnSetInitialDefaults()
      {
        Marker.strIconName = "RES:%DGDIR%client01.exe:208";
        Marker.bOnScreen = 1;
        Marker.bSpeechAlert = 1;
        Marker.bShowInLegend = 0;
        Marker.bLookOut = 1;
      }

      function OnCommonCreate( nRecurringType )
      {
        Marker.nRecur = nRecurringType;
        Marker.strProgrammeName = GetProgrammeInfo( "$ProgrammeName" );
        Marker.strMarkerName = GetProgrammeInfo( "Reminder: $ProgrammeName" );
        Marker.dtAnchor = GetProgrammeInfo( "$USStartDateTime" );

        /*
          Only reset the channels for once, daily or weekly. Let AnyTime behave like v5
        */
        if( nRecurringType )
        {
          MarkerClearChannels();
          MarkerAddChannel( GetProgrammeInfo( "$ChannelID" ) );
        }
        MarkerAddNew();
      }

      function OnReincludeProgramme()
      {
        MarkerIncludeProgrammeName();
        MarkerIncludeProgrammeInstance();
      }

      function OnRemoveReminder()
      {
        MarkerRemove();
      }

      function OnRemoveReminderInstance()
      {
        MarkerExcludeProgrammeInstance();
      }

      function OnReminderToggle()
      {
        if( IsMarked() )
        {
          if( MarkerIsProgrammeExcluded() )
          {
            OnReincludeProgramme();
          }
          else
          {
            if( Marker.nRecur == 1 )
            {
              MarkerRemove();
            }
            else
            {
              MarkerExcludeProgrammeInstance();
            }
          }
        }
        else
        {
          /* Use the default recur value */
          OnCommonCreate( Marker.nRecur );
        }
      }

      function OnExclude()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          MarkerExcludeProgrammeName();
        }
      }

      function OnAlert()
      {
      }
    ]]></code>
  </template>


  <template name="Video" id="4" searchterm=":video">
    <keycommands>
      <keycommand command="ToggleVideo" code="ToggleVideo();"/>
    </keycommands>

    <code><![CDATA[
      function OnSetInitialDefaults()
      {
        Marker.strIconName = "RES:%DGDIR%client01.exe:232";
        Marker.nRecur = 1;  /*  Once!  */
        Marker.bShowInLegend = 0;
      }

      function OnMenuShow()
      {
        if( IsMarked() )
        {
          AddMenuItem( GetProgrammeInfo( "Don't video this programme" ), "OnVideo( 0 );" );

          if( Marker.strProgrammeName == "" )
          {
            AddMenuItem( GetProgrammeInfo( "Exclude|'$ProgrammeName' from '$MarkerName' marker" ), "OnExclude();" );
          }
          else
          {
            /* Do nothing */
          }
        }
        else
        {
          if( !IsProgrammeOld() )
          {
            AddMenuItem( GetProgrammeInfo( "Video this programme" ), "OnVideo( 1 );" );
          }
        }
      }

      function ToggleVideo()
      {
        OnVideo( !IsMarked() )
      }

      function OnVideo( bVideo )
      {
        if( bVideo )
        {
          Marker.strProgrammeName = GetProgrammeInfo( "$ProgrammeName" );
          Marker.strMarkerName = GetProgrammeInfo( "Video: $ProgrammeName" );
          Marker.dtAnchor = GetProgrammeInfo( "$USStartDateTime" );
          MarkerClearChannels();
          MarkerAddChannel( GetProgrammeInfo( "$ChannelID" ) );
          MarkerAddNew();
        }
        else
        {
          MarkerRemove();
        }
      }

      function OnExclude()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          MarkerExcludeProgrammeName();
        }
      }
      function OnAlert()
      {
      }
    ]]></code>
  </template>

  <template name="Watch" id="5" searchterm=":watch">
    <keycommands>
      <keycommand command="ToggleWatch" code="ToggleWatch();"/>
    </keycommands>

    <code><![CDATA[

      function OnSetInitialDefaults()
      {
        Marker.strIconName = "RES:%DGDIR%client01.exe:231";
        Marker.nRecur = 1;  /*  Once!  */
        Marker.bShowInLegend = 0;
      }

      function OnMenuShow()
      {
        if( IsMarked() )
        {
          AddMenuItem( GetProgrammeInfo( "Don't watch this programme" ), "OnWatch( 0 );" );

          if( Marker.strProgrammeName == "" )
          {
            AddMenuItem( GetProgrammeInfo( "Exclude|'$ProgrammeName' from '$MarkerName' marker" ), "OnExclude();" );
          }
          else
          {
            /* Do nothing */
          }
        }
        else
        {
          if( !IsProgrammeOld() )
          {
            AddMenuItem( GetProgrammeInfo( "Watch this programme" ), "OnWatch( 1 );" );
          }
        }
      }

      function ToggleWatch()
      {
        OnWatch( !IsMarked() )
      }

      function OnWatch( bWatch )
      {
        if( bWatch )
        {
          Marker.strProgrammeName = GetProgrammeInfo( "$ProgrammeName" );
          Marker.strMarkerName = GetProgrammeInfo( "Watch: $ProgrammeName" );
          Marker.dtAnchor = GetProgrammeInfo( "$USStartDateTime" );
          MarkerClearChannels();
          MarkerAddChannel( GetProgrammeInfo( "$ChannelID" ) );
          MarkerAddNew();
        }
        else
        {
          MarkerRemove();
        }
      }

      function OnExclude()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          MarkerExcludeProgrammeName();
        }
      }
      function OnAlert()
      {
      }
    ]]></code>
  </template>


  <template name="Category" id="6" searchterm=":category">
    <code><![CDATA[
      function OnMenuShow()
      {
        if( IsMarked() )
        {
          AddMenuItem( GetProgrammeInfo( "Don't highlight all $CategoryName programmes" ), "OnRemove();" );
          if( MarkerIsProgrammeExcluded() )
          {
            AddMenuItem( GetProgrammeInfo( "Re-include programme in $CategoryName highlight" ), "OnInclude();" );
          }
          else
          {
            AddMenuItem( GetProgrammeInfo( "Exclude|'$ProgrammeName' from '$CategoryName' highlight" ), "OnExclude();" );
          }
        }
        else
        {
          var strMarkerName = GetProgrammeInfo( "Category: $CategoryName" );

          if( MarkerDoesExist( strMarkerName ) )
          {
            AddMenuItem( GetProgrammeInfo( "Don't highlight all $CategoryName programmes" ), "OnRemove();" );
            AddMenuItem( GetProgrammeInfo( "Re-include programme in $CategoryName highlight" ), "OnInclude();" );
          }
          else
          {
            AddMenuItem( GetProgrammeInfo( "Highlight all $CategoryName programmes" ), "OnHighlight();" );
          }
        }
      }

      function OnRemove()
      {
        var strMarkerName = GetProgrammeInfo( "Category: $CategoryName" );
        MarkerSelect( strMarkerName );
        MarkerRemove();
      }

      function OnExclude()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          MarkerExcludeProgrammeName();
        }
      }

      function OnInclude()
      {
        var strMarkerName = GetProgrammeInfo( "Category: $CategoryName" );
        MarkerSelect( strMarkerName );

        MarkerIncludeProgrammeName();
        MarkerIncludeProgrammeInstance();
      }

      function OnHighlight()
      {
        Marker.strMarkerName = GetProgrammeInfo( "Category: $CategoryName" );

        var nColour = GetProgrammeInfo( "$CategoryID" );

        nColour = nColour / nColour << 8 / nColour << 16;
        Marker.crBackground = nColour;

        MarkerAddCategory();
        MarkerAddCategory( GetProgrammeInfo( "$CategoryID" ) );

        MarkerAddNew();
      }
      function OnAlert()
      {
      }
    ]]></code>
  </template>

  <template name="URL Handler" id="0507142055" searchterm=":none" allow-markers="0">
    <code><![CDATA[
      function OnSetInitialDefaults()
      {
      }

      function OnMenuShow()
      {
        AddMenuSeparator();
        AddMenuItem( GetProgrammeInfo( "Recommend to DigiGuide Forums" ), "OnOpenURL();" );
      }

      function CorrectForURL( str )
      {
        str = str.replace( /&/g, "%26" );
        str = str.replace( /=/g, "%3d" );
        str = str.replace( /:/g, "%3a" );
        str = str.replace( /\?/g, "%3f" );
        str = str.replace( /\\/g, "%5c" );
        return str;
      }

      function OnOpenURL()
      {
        var strSubject = "$EncodedProgrammeName on $EncodedChannelName";
        var strBody = "[quote][b][blue]$EncodedProgrammeName, $EncodedChannelName at $StartTime on $LongDate[/blue][/b]<br><br>$EncodedDescription[/quote]<br>";
        strSubject = GetProgrammeInfo( strSubject );
        strBody = GetProgrammeInfo( strBody );

        var strURL = "http://forums.digiguide.com/post.asp?forum_id=3&method=Topic&forum_title=TV+Talk+and+Radio+Ramblings";
        strURL = strURL + "&subject=" + CorrectForURL( strSubject );
        strURL = strURL = strURL + "&message=" + CorrectForURL( strBody );

        strURL = strURL.replace( /\r/g, "<br>" );

        ShellExecute( strURL );
      }

      function OnAlert()
      {
      }
    ]]></code>
  </template>

  /* Very last ID possible, there is no ID larger than this one! */
  <template name="Manually Created" id="2147483646" searchterm=":manual">
    <code><![CDATA[
      function OnSetInitialDefaults()
      {
        Marker.bLookOut = 1;
      }

      function OnMenuShow()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          if( MarkerIsProgrammeExcluded() )
          {
            AddMenuItem( GetProgrammeInfo( "Re-include programme in '$MarkerName' marker" ), "OnInclude();" );
          }
          else
          {
            AddMenuItem( GetProgrammeInfo( "Exclude|'$ProgrammeName' from '$MarkerName' marker" ), "OnExclude();" );
          }
        }
        else
        {
          /* Do nothing */
        }
      }

      function OnInclude()
      {
        MarkerIncludeProgrammeName();
        MarkerIncludeProgrammeInstance();
      }

      function OnExclude()
      {
        if( IsMarked() && Marker.strProgrammeName == "" )
        {
          MarkerExcludeProgrammeName();
        }
      }

      function OnAlert()
      {
      }
    ]]></code>
  </template>

</markertemplates>