/* This file contains empty template routines that
 * the IDCMP handler will call uppon. Fill out these
 * routines with your code or use them as a reference
 * to create your program.
 */

#include "ARemote_temp_aux.h"

int ConnectToStringClicked( void )
{
	/* routine when gadget "Connect To" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	return 0;
}

int AcceptFromStringClicked( void )
{
	/* routine when gadget "Accept From" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	winRequests |= FLAG_CHANGE_ACCEPT;
	return 0;
}

int ConnectToPortIntClicked( void )
{
	/* routine when gadget "_Port" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	return 0;
}

int AcceptFromPortIntClicked( void )
{
	/* routine when gadget "Po_rt" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	winRequests |= FLAG_CHANGE_ACCEPT;
	return 0;
}

int ToggleStringClicked( void )
{
	/* routine when gadget "_Xmit Trigger" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	winRequests |= FLAG_CHANGE_TOGGLE;
	return 0;
}

int PopupHotkeyStringClicked( void )
{
	/* routine when gadget "Popu_p Hotkey" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	winRequests |= FLAG_CHANGE_POPUP;
	return 0;
}

int ConnectToPasswordStringClicked( void )
{
	/* routine when gadget "Pas_sword" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	return 0;
}

int AcceptFromPasswordStringClicked( void )
{
	/* routine when gadget "P_assword" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	winRequests |= FLAG_CHANGE_ACCEPT;
	return 0;
}

int ConnectOnStartupCheckboxClicked( void )
{
	/* routine when gadget "Co_nnect on Startup" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	return 0;
}

int ConnectButtonClicked( void )
{
	/* routine when gadget "_Connect Now" is clicked. */
	winRequests |= FLAG_CONNECT;
	return 0;
}

int DisconnectButtonClicked( void )
{
	/* routine when gadget "_Disconnect Now" is clicked. */
	winRequests |= FLAG_DISCONNECT;
	return 0;
}

int XmitCueCheckboxClicked( void )
{
	/* routine when gadget "Xmi_t Cue" is clicked. */
	winRequests |= FLAG_UPDATE_STATE;
	return 0;
}

int ARemoteAbout( void )
{
	/* routine when (sub)item "About" is selected. */
	winRequests |= FLAG_ABOUT;
	return 0;
}

int ARemoteEnabled( void )
{
	/* routine when (sub)item "Enable" is selected. */
    if (BEnabled) winRequests |= FLAG_DISABLE;
             else winRequests |= FLAG_ENABLE;
	return 1;
}

int ARemoteSaveSettings( void )
{
	/* routine when (sub)item "Save Settings" is selected. */
	winRequests |= FLAG_SAVE_SETTINGS;
	return 0;
}

int ARemoteHide( void )
{
	/* routine when (sub)item "Hide" is selected. */
    winRequests |= FLAG_CLOSE_WINDOW;
	return 0;
}

int ARemoteQuit( void )
{
	/* routine when (sub)item "Quit" is selected. */
	winRequests |= FLAG_QUIT;
	return 0;
}

int ARemoteCloseWindow( void )
{
	/* routine for "IDCMP_CLOSEWINDOW". */
    winRequests |= FLAG_CLOSE_WINDOW;
	return 0;
}

int ARemoteVanillaKey( void )
{
  int key = ARemoteMsg.Code;
  
  /* Force to lower case */
  if ((key >= 'A')&&(key <= 'Z')) key += ('a'-'A');
  
  switch(ARemoteMsg.Code)
  {
    case 'o': ActivateGadget(ARemoteGadgets[GD_ConnectToString], ARemoteWnd, NULL); break;
    case 'p': ActivateGadget(ARemoteGadgets[GD_ConnectToPortInt], ARemoteWnd, NULL); break;
    case 's': ActivateGadget(ARemoteGadgets[GD_ConnectToPasswordString], ARemoteWnd, NULL); break;
    case 'a': ActivateGadget(ARemoteGadgets[GD_AcceptFromString], ARemoteWnd, NULL); break;
    case 'r': ActivateGadget(ARemoteGadgets[GD_AcceptFromPortInt], ARemoteWnd, NULL); break;
    case 'w': ActivateGadget(ARemoteGadgets[GD_AcceptFromPasswordString], ARemoteWnd, NULL); break;
    case 'u': ActivateGadget(ARemoteGadgets[GD_PopupHotkeyString], ARemoteWnd, NULL); break;
    case 'x': ActivateGadget(ARemoteGadgets[GD_ToggleString], ARemoteWnd, NULL); break;
    case 'n': GT_SetGadgetAttrs(ARemoteGadgets[GD_ConnectOnStartupCheckbox], ARemoteWnd, NULL, 
              GTCB_Checked, (!((ARemoteGadgets[GD_ConnectOnStartupCheckbox]->Flags)&GFLG_SELECTED)), TAG_END);
              winRequests |= FLAG_UPDATE_STATE;
              break;
    case 'f': GT_SetGadgetAttrs(ARemoteGadgets[GD_XmitCueCheckbox], ARemoteWnd, NULL, 
              GTCB_Checked, (!((ARemoteGadgets[GD_XmitCueCheckbox]->Flags)&GFLG_SELECTED)), TAG_END);
              winRequests |= FLAG_UPDATE_STATE;
              break;
    case 'c': winRequests |= FLAG_CONNECT; break;
    case 'd': winRequests |= FLAG_DISCONNECT; break;
  }
  return 0;
}