Never needed the cancel and I have nested stiff with dohotkey

I created two variables: BOSS and DPSON. (which I visualize with screen buttons, example below)
(I also set the variables initially in autoexec, so they are always defined)

basically when I spam 1 the tank will always do something and the DPS will only start when I switch DPSON with "3"

The BOSS variable goes to single target rotation for my tank and to a different proc macro (e.g. lock does curses...)

enjoy

Code:
<Hotkey 1>
  <If BOSS is 0 >
  //tank AOE
    <dohotkey Hotkey OemPa1 4>

  // LOCK/Mage/shammy DPS
    <dohotkey Hotkey OemPa2 7>

  <Else if BOSS is 1 >
  //tank Single target
    <dohotkey Hotkey OemPa1 5>

  // LOCK/Mage/shammy  Boss
    <dohotkey Hotkey OemPa2 8>


//=====================================
// TANK Attack AOE
//
<Hotkey OemPa1 4>
    <toggle>
      <SendLabel w1>
        <Key 1>
    <toggle>
      <SendLabel w1>
        <Key 4>

//=====================================
// TANK Attack Single Target
//
<Hotkey OemPa1 5>
    <toggle>
      <SendLabel w1>
        <Key 3>
    <toggle>
      <SendLabel w1>
        <Key 4>


//=====================================
// Lock/mage Normal DPS
//
<Hotkey OemPa2 7>
<If DPSON is 1 >
  <dohotkey Hotkey OemPa1 7>

<Hotkey OemPa1 7>
    <toggle>
      <SendLabel w2,w3,w4>
        <Key 1>
    <toggle>
      <SendLabel w2,w3,w4>
        <Key 2>

//=====================================
// Lock/mage Boss toggle
//
<Hotkey OemPa2 8>
<If DPSON is 1 >
  <dohotkey Hotkey OemPa1 8>

<Hotkey OemPa1 8>
<If DPSON is 1 >
    <toggle>
      <SendLabel w2,w3,w4>
        <Key 1>
    <toggle>
      <SendLabel w2,w3,w4>
        <Key 4>

//===BOSS============================================

<Hotkey  ScrollLockOn 3>
  <If BOSS is 0>
    <SetVar BOSS 1>
    <SetButtoncolors BUTTON-BOSS 0x0000FF>
  <Else If BOSS is 1>
    <SetVar BOSS 0>
    <SetButtoncolors BUTTON-BOSS 0x000000>
  <Else>
    <SetVar BOSS 1>
    <SetButtoncolors BUTTON-BOSS 0x0000FF>