home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / CM / CyclingManagerDemoCangas.exe / CyclingManagerDemo / scripts / finance / page_transfert.cnc < prev    next >
Text File  |  2001-06-05  |  43KB  |  1,251 lines

  1. func void vSendValidQuickTransfert(i32x _iTransfertID)
  2. {
  3.     if(g_oGameConfig.m_iPhaseID == G_iPhase_Management)
  4.     {
  5.         g_oMenuServer.m_oServer<<mGame_ValidTransfert(_iTransfertID);
  6.         oPage_Transfert.m_iTransfertAsked = true;
  7.         CreateDialog(DIALOG_LOADING_DATA);
  8.     }
  9.     else
  10.     {
  11.         CreateMessageBox(GetLocalizedFromGMKey(261), 0, TransfertError_MessageBoxCallback);
  12.     }
  13. }
  14.  
  15. func void vSendCancelQuickTransfert(i32x _iTransfertID)
  16. {
  17.     if(g_oGameConfig.m_iPhaseID == G_iPhase_Management)
  18.     {
  19.         g_oMenuServer.m_oServer<<mGame_CancelTransfert(_iTransfertID);
  20.         oPage_Transfert.m_iTransfertAsked = true;
  21.         CreateDialog(DIALOG_LOADING_DATA);
  22.     }
  23.     else
  24.     {
  25.         CreateMessageBox(GetLocalizedFromGMKey(261), 0, TransfertError_MessageBoxCallback);
  26.     }
  27. }
  28.  
  29.  
  30. // Player cyclist update
  31. func void Transfert_CyclistList_Item_Update_1 (i32x _iItemID)
  32. {
  33.     var i32x id,iStatus;
  34.     var szx szName;
  35.     var i32x iCyclistID,iRating;
  36.  
  37.     // back color
  38.     if ((_iItemID%2)==0) SetContainerColor(oTransfert_CyclistList_Item.m_cBack,MakeARGB(50,255,255,255));
  39.     else SetContainerColor(oTransfert_CyclistList_Item.m_cBack,MakeARGB(75,255,255,255));
  40.  
  41.     // Save cyclist id into item
  42.     iCyclistID = Join_GetIntFromSortedIndex(oPage_Transfert.m_jUserCyclist_iId,_iItemID);
  43.     Seti32x(0,iCyclistID);
  44.  
  45.     // Set cylist name
  46.     szName = Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szFirstName,iCyclistID);
  47.     szName = strcat(szName," ");
  48.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szName,iCyclistID));
  49.     SetContainerText(oTransfert_CyclistList_Item.m_cName, szName);
  50.  
  51.     // Rating
  52.     iRating=Join_GetIntFromKey(oPage_Transfert.m_jCyclistRating,iCyclistID);
  53.     SetContainerText(oTransfert_CyclistList_Item.m_cRating,itoa(iRating));
  54.     Team_Roaster_List_Item_SetColor(oTransfert_CyclistList_Item.m_cRating,iRating);
  55.  
  56. }
  57. // Other cyclist update
  58. func void Transfert_CyclistList_Item_Update_2 (i32x _iItemID)
  59. {
  60.     var i32x id,iStatus;
  61.     var szx szName;
  62.     var i32x iCyclistID,iRating;
  63.  
  64.     // back color
  65.     if ((_iItemID%2)==0) SetContainerColor(oTransfert_CyclistList_Item.m_cBack,MakeARGB(50,255,255,255));
  66.     else SetContainerColor(oTransfert_CyclistList_Item.m_cBack,MakeARGB(75,255,255,255));
  67.  
  68.     // Save cyclist id into item
  69.     iCyclistID = Join_GetIntFromSortedIndex(oPage_Transfert.m_jOtherCyclist_iId,_iItemID);
  70.     Seti32x(0,iCyclistID);
  71.  
  72.     // Set cylist name
  73.     szName = Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szFirstName,iCyclistID);
  74.     szName = strcat(szName," ");
  75.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szName,iCyclistID));
  76.     SetContainerText(oTransfert_CyclistList_Item.m_cName, szName);
  77.  
  78.     // Rating
  79.     iRating=Join_GetIntFromKey(oPage_Transfert.m_jCyclistRating,iCyclistID);
  80.     SetContainerText(oTransfert_CyclistList_Item.m_cRating,itoa(iRating));
  81.     Team_Roaster_List_Item_SetColor(oTransfert_CyclistList_Item.m_cRating,iRating);
  82.  
  83. }
  84. //----------------------------------------------------------------------------------------------------------------//
  85. //----------------------------------------------------------------------------------------------------------------//
  86. //Transfert_CyclistList_Item Create func
  87. //----------------------------------------------------------------------------------------------------------------//
  88. //----------------------------------------------------------------------------------------------------------------//
  89. func void Transfert_CyclistList_Item_Create ()
  90. {
  91.     // Item component number
  92.     SetComponentNumber(6);
  93.     
  94.     // Members number to save cyclist id
  95.     SetObjectMembersNumber(2);
  96.  
  97.     // back
  98.     oTransfert_CyclistList_Item.m_cBack=InitContainer(tCommonTableBorder);
  99.     SetContainerSize(oTransfert_CyclistList_Item.m_cBack,270,16);
  100.     //SetEvents(oTransfert_CyclistList_Item.m_cBack,GUI_NoEvent);
  101.  
  102.     // selection
  103.     oTransfert_CyclistList_Item.m_cSelection=InitContainer(tCommonTableBorder);
  104.     SetContainerColor(oTransfert_CyclistList_Item.m_cSelection,c_ListSelection);
  105.     SetContainerSize(oTransfert_CyclistList_Item.m_cSelection, 270, 16);
  106.     SetComponentClipper(oTransfert_CyclistList_Item.m_cSelection, 0, 0, 270, 16);
  107.     SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cSelection,false);
  108.  
  109.     // cyclist name
  110.     oTransfert_CyclistList_Item.m_cName = InitContainer(tFontArial);
  111.     SetContainerOffset(oTransfert_CyclistList_Item.m_cName,-1);
  112.     SetComponentSize(oTransfert_CyclistList_Item.m_cName,235,16);
  113.     SetComponentPosition(oTransfert_CyclistList_Item.m_cName, 0, 0);
  114.  
  115.     // Cyclist rating
  116.     oTransfert_CyclistList_Item.m_cRating = InitContainer(tFontArial);
  117.     SetComponentSize(oTransfert_CyclistList_Item.m_cRating,30,16);
  118.     SetComponentPosition(oTransfert_CyclistList_Item.m_cRating, 235, 0);
  119.  
  120.     // picto infos
  121.     oTransfert_CyclistList_Item.m_cInfo=InitButton(t_btn_exclam);
  122.     SetContainerScale(oTransfert_CyclistList_Item.m_cInfo,0.5,0.5);
  123.     SetContainerStateFunc(oTransfert_CyclistList_Item.m_cInfo,ThreeStateButtonState);
  124.     SetComponentPosition(oTransfert_CyclistList_Item.m_cInfo,255,1);
  125.     SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cInfo,false);
  126.  
  127.     // resize item
  128.     SetObjectSize(270,16);
  129. }
  130.  
  131. //----------------------------------------------------------------------------------------------------------------//
  132. //----------------------------------------------------------------------------------------------------------------//
  133. //Transfert_CyclistList_Item Event func
  134. //----------------------------------------------------------------------------------------------------------------//
  135. //----------------------------------------------------------------------------------------------------------------//
  136. func i32x Transfert_CyclistList_Item_Event_1 (i32x _iComponentID, i32x _iEvent)
  137. {
  138.     if (_iComponentID == -1)
  139.     {
  140.         if (_iEvent == GUI_LIST_UNSELECTITEM)
  141.         {
  142.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cSelection,false);
  143.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cInfo, false);
  144.         }
  145.  
  146.         if (_iEvent == GUI_LIST_SELECTITEM)
  147.         {
  148.             // Save selected cyclist id
  149.             oPage_Transfert.m_iCyclist1ID = Geti32x(0);
  150.  
  151.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cSelection,true);
  152.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cInfo, true);
  153.         }
  154.     }
  155.     
  156.     if (_iEvent == GUI_COMPONENT_MOUSE_LDOWN)
  157.     {
  158.         if (_iComponentID != oTransfert_CyclistList_Item.m_cSelection)
  159.         {
  160.             PlaySound(0,sbClickSound[0]);
  161.             PushEvent(GUI_LIST_SELECTION);
  162.         }
  163.     }
  164.     if (_iComponentID == oTransfert_CyclistList_Item.m_cInfo)
  165.     {
  166.         if(_iEvent == GUI_BUTTON_PRESSED )
  167.         {
  168.             // Store selected cyclist ID
  169.             oPanel_Team_Cyclist_Info.iCyclistID = Geti32x(0);
  170.             CreateDialog(DIALOG_INFO_CYCLISTS);
  171.         }
  172.     }
  173.     return 1;
  174. }
  175. func i32x Transfert_CyclistList_Item_Event_2 (i32x _iComponentID, i32x _iEvent)
  176. {
  177.     if (_iComponentID == -1)
  178.     {
  179.         if (_iEvent == GUI_LIST_UNSELECTITEM)
  180.         {
  181.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cSelection,false);
  182.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cInfo, false);
  183.         }
  184.  
  185.         if (_iEvent == GUI_LIST_SELECTITEM)
  186.         {
  187.             // Save selected cyclist id
  188.             oPage_Transfert.m_iCyclist2ID = Geti32x(0);
  189.  
  190.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cSelection,true);
  191.             SetComponentVisibleStatus(oTransfert_CyclistList_Item.m_cInfo, true);
  192.         }
  193.     }
  194.     
  195.     if (_iEvent == GUI_COMPONENT_MOUSE_LDOWN)
  196.     {
  197.         if (_iComponentID != oTransfert_CyclistList_Item.m_cSelection)
  198.         {
  199.             PlaySound(0,sbClickSound[0]);
  200.             PushEvent(GUI_LIST_SELECTION);
  201.         }
  202.     }
  203.     if (_iComponentID == oTransfert_CyclistList_Item.m_cInfo)
  204.     {
  205.         if(_iEvent == GUI_BUTTON_PRESSED )
  206.         {
  207.             // Store selected cyclist ID
  208.             oPanel_Team_Cyclist_Info.iCyclistID = Geti32x(0);
  209.             CreateDialog(DIALOG_INFO_CYCLISTS);
  210.         }
  211.     }
  212.     return 1;
  213. }
  214.  
  215. //Object Transfert Item Create func
  216. //----------------------------------------------------------------------------------------------------------------//
  217. func void Object_Transfert_Item_Create ()
  218. {
  219.     var i32x id;
  220.     var frame f1,f2;
  221.     SetComponentNumber(8);
  222.  
  223.     // Members number to save guest flag and user id
  224.     SetObjectMembersNumber(1);
  225.  
  226.     // back
  227.     oTransfertItem.m_cBack=InitContainer(tCommonTableBorder);
  228.     SetContainerSize(oTransfertItem.m_cBack,580,32);
  229.     SetEvents(oTransfertItem.m_cBack,GUI_NoEvent);
  230.  
  231.     // selection
  232.     oTransfertItem.m_cSelection=InitContainer(tCommonTableBorder);
  233.     SetContainerColor(oTransfertItem.m_cSelection,c_ListSelection);
  234.     SetContainerSize(oTransfertItem.m_cSelection, 580, 32);
  235.     SetComponentClipper(oTransfertItem.m_cSelection, 0, 0, 580, 32);
  236.     SetComponentVisibleStatus(oTransfertItem.m_cSelection,false);
  237.  
  238.     // Cyclist 1 name
  239.     oTransfertItem.m_cCyclist1 = InitContainer(tFontArial);
  240.     SetComponentSize(oTransfertItem.m_cCyclist1,350,16);
  241.     SetComponentPosition(oTransfertItem.m_cCyclist1,0,0);
  242.  
  243.     // Cyclist 2 name
  244.     oTransfertItem.m_cCyclist2 = InitContainer(tFontArial);
  245.     SetComponentSize(oTransfertItem.m_cCyclist2,350,16);
  246.     SetComponentPosition(oTransfertItem.m_cCyclist2,50,16);
  247.  
  248.     // Status button
  249.     oTransfertItem.m_cStatus = InitContainer(tFontArialItalique);
  250.     SetComponentSize(oTransfertItem.m_cStatus,130,16);
  251.     SetComponentPosition(oTransfertItem.m_cStatus,400,8);
  252.     //Parameters    :    Param(1-11) _ix,_iy,_fw,_fh,_fOffset,_fAngle,_r,_g,_b,_a,_fFrameOffset
  253.     f1 = AddFrame(oTransfertItem.m_cStatus, 0, 0, 1.0, 1.0, 0.0, 0.0, 255, 255, 255, 255, 0.0);
  254.     f2 = AddFrame(oTransfertItem.m_cStatus, 0, 0, 1.0, 1.0, 0.0, 0.0, 255,   0,   0, 255, 0.5);
  255.     SetAnimationFlags(oTransfertItem.m_cStatus,MSL_Color);
  256.     SetAnimationSpeed(oTransfertItem.m_cStatus,0.01);
  257.     SetNextFrame(oTransfertItem.m_cStatus,f1);
  258.     GotoFirstFrame(oTransfertItem.m_cStatus);
  259.  
  260.  
  261.     // Ok button
  262.     oTransfertItem.m_cOk = InitButton(t_btn_exclam);
  263.     SetContainerStateFunc(oTransfertItem.m_cOk, ThreeStateButtonState);
  264.     SetContainerHelpIndex(oTransfertItem.m_cOk,1336);
  265.     SetContainerSize(oTransfertItem.m_cOk,20,20);
  266.     SetComponentSize(oTransfertItem.m_cOk,64,16);
  267.     SetComponentPosition(oTransfertItem.m_cOk,530,8);
  268.  
  269.     // Cancel button
  270.     oTransfertItem.m_cCancel = InitButton(tBtnClose);
  271.     SetContainerStateFunc(oTransfertItem.m_cCancel, ThreeStateButtonState);
  272.     SetContainerHelpIndex(oTransfertItem.m_cCancel,1337);
  273.     SetContainerSize(oTransfertItem.m_cCancel,20,20);
  274.     SetComponentPosition(oTransfertItem.m_cCancel,555,8);
  275.  
  276.  
  277.     SetObjectSize(580,32);
  278. }
  279. //Object Transfert Item Update func
  280. //----------------------------------------------------------------------------------------------------------------//
  281. func void Object_Transfert_Item_Update (i32x _iItemID)
  282. {
  283.     var i32x iTransferID,iStatus,iCyclist1ID,iCyclist2ID,iTeam1ID,iTeam2ID,bDest;
  284.     var szx szName;
  285.  
  286.     // back color
  287.     if ((_iItemID%2)==0) SetContainerColor(oTransfertItem.m_cBack,MakeARGB(50,255,255,255));
  288.     else SetContainerColor(oTransfertItem.m_cBack,MakeARGB(75,255,255,255));
  289.  
  290.     // Store transfer id into object
  291.     iTransferID = Join_GetIntFromSortedIndex(oPage_Transfert.m_jTransfert_iId,_iItemID);
  292.     Seti32x(0,iTransferID);
  293.  
  294.     // Cyclists 1 name/team
  295.     iCyclist1ID = Join_GetIntFromKey(oPage_Transfert.m_jTransfert_iCyclist1Id,iTransferID);
  296.     iTeam1ID = Join_GetIntFromKey(oPage_Transfert.m_jCyclist_iIDteam,iCyclist1ID);
  297.     // Cyclists  2 name/team
  298.     iCyclist2ID = Join_GetIntFromKey(oPage_Transfert.m_jTransfert_iCyclist2Id,iTransferID);
  299.     iTeam2ID = Join_GetIntFromKey(oPage_Transfert.m_jCyclist_iIDteam,iCyclist2ID);
  300.  
  301.  
  302.     // Status
  303.     iStatus = Join_GetIntFromKey(oPage_Transfert.m_jTransfert_iStatus,iTransferID);
  304.     if(iStatus==2)
  305.     {
  306.         var i32x iTmp;
  307.         // Transfert has been accepted
  308.         // So reverse team id to always have team1id has sender
  309.         iTmp=iTeam1ID;
  310.         iTeam1ID = iTeam2ID;
  311.         iTeam2ID = iTmp;
  312.     }
  313.  
  314.     // If cyclist 1 is owned by player you're the sender
  315.     if(iTeam1ID == g_oUser.m_iMyTeamID)
  316.         bDest = false;
  317.     else
  318.         bDest = true;
  319.     
  320.  
  321.     szName = Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szFirstName,iCyclist1ID);
  322.     szName = strcat(szName," ");
  323.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szName,iCyclist1ID));
  324.     szName = strcat(szName,"/");
  325.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jTeam_szAbrev,iTeam1ID));
  326.     SetContainerText(oTransfertItem.m_cCyclist1,szName);
  327.  
  328.  
  329.     szName = Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szFirstName,iCyclist2ID);
  330.     szName = strcat(szName," ");
  331.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jCyclist_szName,iCyclist2ID));
  332.     szName = strcat(szName,"/");
  333.     szName = strcat(szName,Join_GetStringFromKey(oPage_Transfert.m_jTeam_szAbrev,iTeam2ID));
  334.  
  335.     SetContainerText(oTransfertItem.m_cCyclist2,szName);
  336.     ResizeComponent(oTransfertItem.m_cCyclist2);
  337.     SetComponentPositionX(oTransfertItem.m_cCyclist2,400-GetComponentWidth(oTransfertItem.m_cCyclist2));
  338.  
  339.     // Status
  340.     GotoFirstFrame(oTransfertItem.m_cStatus);
  341.     if(iStatus == 0) //EMenuServer_Status_New
  342.     {
  343.         SetContainerText(oTransfertItem.m_cStatus,GetLocalizedFromGMKey(259));
  344.         // Start Animation !!!
  345.         if(GetAnimationState(oTransfertItem.m_cStatus) == false)
  346.             StartAnimation(oTransfertItem.m_cStatus);
  347.     }
  348.     else if(iStatus == 1) // EMenuServer_Status_Awaiting
  349.     {
  350.         // Mark it as new
  351.         SetContainerText(oTransfertItem.m_cStatus,GetLocalizedFromGMKey(259));
  352.         // stop Animation !!!
  353.         StopAnimation(oTransfertItem.m_cStatus);
  354.         SetContainerColor(oTransfertItem.m_cStatus,c_White);
  355.     }
  356.     else if(iStatus == 2) // EMenuServer_Status_Accepted
  357.     {
  358.         SetContainerText(oTransfertItem.m_cStatus,GetLocalizedFromGMKey(256));
  359.         // stop Animation !!!
  360.         StopAnimation(oTransfertItem.m_cStatus);
  361.         SetContainerColor(oTransfertItem.m_cStatus,c_White);
  362.     }
  363.     else if(iStatus == 3) // EMenuServer_Status_Refused
  364.     {
  365.         SetContainerText(oTransfertItem.m_cStatus,GetLocalizedFromGMKey(258));
  366.         // stop Animation !!!
  367.         StopAnimation(oTransfertItem.m_cStatus);
  368.         SetContainerColor(oTransfertItem.m_cStatus,c_White);
  369.     }
  370.     else
  371.     {
  372.         // Not valid state
  373.         SetContainerText(oTransfertItem.m_cStatus,GetLocalizedFromGMKey(263));
  374.         // stop Animation !!!
  375.         StopAnimation(oTransfertItem.m_cStatus);
  376.         SetContainerColor(oTransfertItem.m_cStatus,c_White);
  377.     }
  378.     // Center status button
  379.     ResizeComponent(oTransfertItem.m_cStatus);
  380.     SetComponentPositionX(oTransfertItem.m_cStatus,400+((130-GetComponentWidth(oTransfertItem.m_cStatus))/2));
  381.  
  382.     if(iStatus<2)
  383.     {
  384.         SetComponentVisibleStatus(oTransfertItem.m_cCancel,true);
  385.         if(bDest)
  386.         {
  387.             // If you're the dest make valid button visible
  388.             SetComponentVisibleStatus(oTransfertItem.m_cOk,true);
  389.         }
  390.         else
  391.         {
  392.             SetComponentVisibleStatus(oTransfertItem.m_cOk,false);
  393.         }
  394.     }
  395.     else if(iStatus==2)
  396.     {
  397.         SetComponentVisibleStatus(oTransfertItem.m_cCancel,false);
  398.         if(bDest)
  399.         {
  400.             SetComponentVisibleStatus(oTransfertItem.m_cOk,false);
  401.         }
  402.         else
  403.         {
  404.             // Make valid button visible
  405.             SetComponentVisibleStatus(oTransfertItem.m_cOk,true);
  406.         }
  407.     }
  408.     else if(iStatus==3)
  409.     {
  410.         SetComponentVisibleStatus(oTransfertItem.m_cCancel,false);
  411.         if(bDest)
  412.         {
  413.             SetComponentVisibleStatus(oTransfertItem.m_cOk,false);
  414.         }
  415.         else
  416.         {
  417.             // Make valid button visible
  418.             SetComponentVisibleStatus(oTransfertItem.m_cOk,true);
  419.         }
  420.     }
  421.     else if(iStatus==4)
  422.     {
  423.         // No command are valid
  424.         SetComponentVisibleStatus(oTransfertItem.m_cOk,false);
  425.         SetComponentVisibleStatus(oTransfertItem.m_cCancel,false);
  426.     }
  427. }
  428. //Transferts Item Event func
  429. //----------------------------------------------------------------------------------------------------------------//
  430. func i32x Object_Transfert_Item_Event (i32x _iComponentID, i32x _iEvent)
  431. {
  432.     var i32x iTransfertID;
  433.     if (_iComponentID == -1)
  434.     {
  435.         if (_iEvent == GUI_LIST_UNSELECTITEM)
  436.         {
  437.             SetComponentVisibleStatus(oTransfertItem.m_cSelection,false);
  438.         }
  439.  
  440.         if (_iEvent == GUI_LIST_SELECTITEM)
  441.         {
  442.             SetComponentVisibleStatus(oTransfertItem.m_cSelection,true);
  443.         }
  444.     }
  445.     
  446.     if (_iEvent == GUI_COMPONENT_MOUSE_LDOWN)
  447.     {
  448.         if (_iComponentID != oTransfertItem.m_cSelection)
  449.         {
  450.             PlaySound(0,sbClickSound[0]);
  451.             PushEvent(GUI_LIST_PRESSED);
  452.         }
  453.     }
  454.  
  455.     if (_iEvent == GUI_COMPONENT_MOUSE_LUP)
  456.     {
  457.         if (_iComponentID != oTransfertItem.m_cSelection)
  458.         {
  459.             // PlaySound(0,sbClickSound[0]);
  460.             PushEvent(GUI_LIST_SELECTION);
  461.         }
  462.     }
  463.     if (_iEvent == GUI_BUTTON_PRESSED)
  464.     {
  465.         if(_iComponentID == oTransfertItem.m_cOk)
  466.         {
  467.             iTransfertID = Geti32x(0);
  468.  
  469.             if(iTransfertID>0)
  470.             {
  471.                 // Send valid transfert message to MS
  472.                 vSendValidQuickTransfert(iTransfertID);
  473.             }
  474.         }
  475.         else if(_iComponentID == oTransfertItem.m_cCancel)
  476.         {
  477.             iTransfertID = Geti32x(0);
  478.  
  479.             if(iTransfertID>0)
  480.             {
  481.                 // Send cancel transfert message to MS
  482.                 vSendCancelQuickTransfert(iTransfertID);
  483.             }
  484.         }
  485.  
  486.  
  487.     }
  488.  
  489.     return 1;
  490. }
  491.  
  492.  
  493.  
  494. func void vUpdate_UserCyclistSubset()
  495. {
  496.     // Clear subset
  497.     DatabaseSubset_Clear(TEMP_DATABASE);
  498.     // create query to fill the subset
  499.     Query_Create(0, TEMP_DATABASE);
  500.     Query_SetNumJoinTables(    0, 1);
  501.     Query_SelectJoinTable(    0, 0, "DYN_cyclist");
  502.     Query_SelectWhereIntEqual(0, "DYN_cyclist.fkIDteam", g_oUser.m_iMyTeamID);
  503.     Query_Execute(0);
  504.  
  505.     // Sort cyclist by name
  506.     Table_Sort(TEMP_DATABASE,"DYN_cyclist",oPage_Transfert.m_szUserColumnSorted,oPage_Transfert.m_iUserSortDir);
  507. }
  508. func void vUpdate_OtherCyclistSubset(i32x _iTeamID)
  509. {
  510.     // Clear subset
  511.     DatabaseSubset_Clear(TEMP_DATABASE3);
  512.     // create query to fill the subset
  513.     Query_Create(0, TEMP_DATABASE3);
  514.     Query_SetNumJoinTables(    0, 1);
  515.     Query_SelectJoinTable(    0, 0, "DYN_cyclist");
  516.     Query_SelectWhereIntEqual(0, "DYN_cyclist.fkIDteam", _iTeamID);
  517.     Query_Execute(0);
  518.  
  519.     // Sort cyclist by name
  520.     Table_Sort(TEMP_DATABASE3,"DYN_cyclist",oPage_Transfert.m_szOtherColumnSorted,oPage_Transfert.m_iOtherSortDir);
  521. }
  522.  
  523. //----------------------------------------------------------------------------------------------------------------//
  524. //----------------------------------------------------------------------------------------------------------------//
  525. // Update Transfert list must be in page transfer context
  526. //----------------------------------------------------------------------------------------------------------------//
  527. //----------------------------------------------------------------------------------------------------------------//
  528. func void vUpdate_TransfertList ()
  529. {
  530.     var component pOldComponent;
  531.     var i32x iNumRows;
  532.  
  533.     // Update subset
  534.     vUpdate_UserCyclistSubset();
  535.     vUpdate_OtherCyclistSubset(oPage_Transfert.m_iSelectedTeamID);
  536.  
  537.     // Sort transfert by status
  538.     Table_Sort(QUERY_QUICK_TRANSFERT,"DYN_quick_transfert","gene_i_response",1);
  539.  
  540.     if(oPage_Transfert.pthis)
  541.     {
  542.         // Save context
  543.         pOldComponent = GetParserComponent();
  544.  
  545.         SetParserComponent(oPage_Transfert.pthis);
  546.  
  547.  
  548.         // Update list
  549.         iNumRows = Join_GetNumRows(oPage_Transfert.m_jUserCyclist_iId);
  550.         SetListNbItems(oPage_Transfert.m_cUserList,iNumRows);
  551.         if(iNumRows>0)
  552.         {
  553.             SetListPosition(oPage_Transfert.m_cUserList,0);
  554.             SetListSelectedItem(oPage_Transfert.m_cUserList,0);
  555.         }
  556.  
  557.         iNumRows = Join_GetNumRows(oPage_Transfert.m_jOtherCyclist_iId);
  558.         SetListNbItems(oPage_Transfert.m_cOtherList,iNumRows);
  559.         if(iNumRows>0)
  560.         {
  561.             SetListPosition(oPage_Transfert.m_cOtherList,0);
  562.             SetListSelectedItem(oPage_Transfert.m_cOtherList,0);
  563.         }
  564.  
  565.         iNumRows = Join_GetNumRows(oPage_Transfert.m_jTransfert_iId);
  566.         SetListNbItems(oPage_Transfert.m_cList,iNumRows);
  567.  
  568.         // Restore context
  569.         SetParserComponent(pOldComponent);
  570.     }
  571.     else
  572.     {
  573.         print("Trying to update transfert page without context!\n");
  574.     }
  575. }
  576.  
  577. func void vCreateTransfertDialog(i32x _iCyclist1ID,i32x _iCyclist2ID)
  578. {
  579.     if(g_oGameConfig.m_iPhaseID == G_iPhase_Management)
  580.     {
  581.         oDialog_Transfert.m_iCyclist1ID = _iCyclist1ID;
  582.         oDialog_Transfert.m_iCyclist2ID = _iCyclist2ID;
  583.  
  584.         CreateDialog(DIALOG_TRANSFERT);
  585.     }
  586.     else
  587.     {
  588.         CreateMessageBox(GetLocalizedFromGMKey(261), 0, TransfertError_MessageBoxCallback);
  589.     }
  590. }
  591.  
  592. func void TransfertError_MessageBoxCallback(i32x _iResult)
  593. {
  594.     // Nothing to do here
  595. }
  596.  
  597.  
  598. //----------------------------------------------------------------------------------------------------------------//
  599. //----------------------------------------------------------------------------------------------------------------//
  600. // Page_Transfert Create Func
  601. //----------------------------------------------------------------------------------------------------------------//
  602. //----------------------------------------------------------------------------------------------------------------//
  603. func void Page_Transfert_Create ()
  604. {
  605.     var i32x id,iDivID;
  606.  
  607.     // Save current context
  608.     oPage_Transfert.pthis = GetParserComponent();
  609.  
  610.     oPage_Transfert.m_iTransfertAsked = false;
  611.  
  612.     SetComponentNumber(48);
  613.  
  614.     // Init sorted column
  615.     oPage_Transfert.m_szUserColumnSorted = "gene_sz_lastname";
  616.     oPage_Transfert.m_szOtherColumnSorted = "gene_sz_lastname";
  617.     oPage_Transfert.m_iUserSortDir = 1;
  618.     oPage_Transfert.m_iOtherSortDir = 1;
  619.  
  620.  
  621.     // *** Update Title Bar ***
  622.     Set_Title_Bar_Text(GetLocalizedFromGMKey(88)); // page title
  623.  
  624.     // Page Background
  625.     id = Init_LibObject_FilledCadre(tCadreDialbox,700,550);
  626.     SetComponentHeight(id,500);
  627.     SetEvents(id,GUI_NoEvent);
  628.  
  629.     // User Team
  630.     id = InitContainer(tFnt_20);
  631.     SetContainerText(id,Join_GetStringFromKey(g_oMenuJoins.m_iTeamName,g_oUser.m_iMyTeamID));
  632.     SetComponentPosition(id,5,40);
  633.  
  634.     // Title background
  635.     id=InitContainer(tCommonTableBorder);
  636.     SetContainerColor(id,c_TitleList);
  637.     SetContainerSize(id,600,15);
  638.     SetComponentPosition(id,15,285);
  639.     SetEvents(id,GUI_NoEvent);
  640.         // Title Column
  641.     id = InitContainer(tFontArialItalique);
  642.     SetContainerText(id,GetLocalizedFromGMKey(65)); // name
  643.     SetComponentPosition(id,15,285);
  644.     id = InitContainer(tFontArialItalique);
  645.     SetContainerText(id,GetLocalizedFromGMKey(178)); // status 
  646.     ResizeComponent(id);
  647.     SetComponentPosition(id,415+((130-GetComponentWidth(id))/2),285);
  648.     id = InitContainer(tFontArialItalique);
  649.     SetContainerText(id,strncpy(GetLocalizedFromGMKey(253),3)); // command
  650.     SetComponentPosition(id,546,285);
  651.     // Slider background
  652.     id=InitContainer(tCommonTableBorder);
  653.     SetContainerColor(id,c_TitleList);
  654.     SetContainerSize(id,20,200);
  655.     SetComponentPosition(id,595,300);
  656.  
  657.     // Transfert list
  658.     oPage_Transfert.m_cList = InitList(
  659.             "Transfert List", // List name
  660.             64, // Max item number
  661.             600,200, // Width, height
  662.             Object_Transfert_Item_Create,Object_Transfert_Item_Update,Object_Transfert_Item_Event, // Item oFunc
  663.             t_btn_slider, // Slider texture
  664.             NullButtonState);    // State func for the slider
  665.     SetComponentPosition(oPage_Transfert.m_cList,15,300); 
  666.  
  667.     // Horizontal line
  668.     id = InitContainer(tCommonTableBorder);
  669.     SetContainerSize(id,600,1);
  670.     SetComponentPosition(id,15,285);
  671.     id = InitContainer(tCommonTableBorder);
  672.     SetContainerSize(id,600,1);
  673.     SetComponentPosition(id,15,300);
  674.     id = InitContainer(tCommonTableBorder);
  675.     SetContainerSize(id,600,1);
  676.     SetComponentPosition(id,15,500);
  677.     // Vertical line
  678.     id = InitContainer(tCommonTableBorder);
  679.     SetContainerSize(id,1,215);
  680.     SetComponentPosition(id,15,285);
  681.     id = InitContainer(tCommonTableBorder);
  682.     SetContainerSize(id,1,215);
  683.     SetComponentPosition(id,415,285);
  684.     id = InitContainer(tCommonTableBorder);
  685.     SetContainerSize(id,1,215);
  686.     SetComponentPosition(id,545,285);
  687.     id = InitContainer(tCommonTableBorder);
  688.     SetContainerSize(id,1,215);
  689.     SetComponentPosition(id,595,285);
  690.     id = InitContainer(tCommonTableBorder);
  691.     SetContainerSize(id,1,215);
  692.     SetComponentPosition(id,615,285);
  693.  
  694.     // Cyclist list background
  695.     // Title background
  696.     id=InitContainer(tCommonTableBorder);
  697.     SetContainerColor(id,c_TitleList);
  698.     SetContainerSize(id,290,15);
  699.     SetComponentPosition(id,5,75);
  700.     SetEvents(id,GUI_NoEvent);
  701.         // Title Column
  702.     id = InitButton(tFontArialItalique);
  703.     SetContainerStateFunc(id,ColumnTextButtonState);
  704.     SetContainerText(id,GetLocalizedFromGMKey(65)); // name
  705.     SetComponentSize(id,220,16);
  706.     SetComponentPosition(id,5,75);
  707.     oPage_Transfert.m_cUserNameColumn = id;
  708.  
  709.     id = InitButton(tFontArialItalique);
  710.     SetContainerStateFunc(id,ColumnTextButtonState);
  711.     SetContainerText(id,GetLocalizedFromGMKey(126)); // rating
  712.     SetComponentSize(id,30,16);
  713.     SetComponentPosition(id,235,75);
  714.     oPage_Transfert.m_cUserRatingColumn = id;
  715.     // Slider background
  716.     id=InitContainer(tCommonTableBorder);
  717.     SetContainerColor(id,c_TitleList);
  718.     SetContainerSize(id,20,175);
  719.     SetComponentPosition(id,275,90);
  720.  
  721.         // Title Column
  722.     id=InitContainer(tCommonTableBorder);
  723.     SetContainerColor(id,c_TitleList);
  724.     SetContainerSize(id,290,15);
  725.     SetComponentPosition(id,350,75);
  726.     SetEvents(id,GUI_NoEvent);
  727.  
  728.     id = InitButton(tFontArialItalique);
  729.     SetContainerStateFunc(id,ColumnTextButtonState);
  730.     SetContainerText(id,GetLocalizedFromGMKey(65)); // name
  731.     SetComponentSize(id,220,16);
  732.     SetComponentPosition(id,350,75);
  733.     oPage_Transfert.m_cOtherNameColumn = id;
  734.  
  735.     id = InitButton(tFontArialItalique);
  736.     SetContainerStateFunc(id,ColumnTextButtonState);
  737.     SetContainerText(id,GetLocalizedFromGMKey(126)); // rating
  738.     SetComponentSize(id,30,16);
  739.     SetComponentPosition(id,580,75);
  740.     oPage_Transfert.m_cOtherRatingColumn = id;
  741.     // Slider background
  742.     id=InitContainer(tCommonTableBorder);
  743.     SetContainerColor(id,c_TitleList);
  744.     SetContainerSize(id,20,175);
  745.     SetComponentPosition(id,620,90);
  746.  
  747.     // User cyclist list
  748.     oPage_Transfert.m_cUserList = InitList(
  749.             "Transfert List", // List name
  750.             64, // Max item number
  751.             290,175, // Width, height
  752.             Transfert_CyclistList_Item_Create,Transfert_CyclistList_Item_Update_1,Transfert_CyclistList_Item_Event_1, // Item oFunc
  753.             t_btn_slider, // Slider texture
  754.             NullButtonState);    // State func for the slider
  755.     SetComponentPosition(oPage_Transfert.m_cUserList,5,90); 
  756.  
  757.     // other cyclist list
  758.     oPage_Transfert.m_cOtherList = InitList(
  759.             "Transfert List", // List name
  760.             64, // Max item number
  761.             290,175, // Width, height
  762.             Transfert_CyclistList_Item_Create,Transfert_CyclistList_Item_Update_2,Transfert_CyclistList_Item_Event_2, // Item oFunc
  763.             t_btn_slider, // Slider texture
  764.             NullButtonState);    // State func for the slider
  765.     SetComponentPosition(oPage_Transfert.m_cOtherList,350,90); 
  766.  
  767.     // Line
  768.     // Horizontal line
  769.     id = InitContainer(tCommonTableBorder);
  770.     SetContainerSize(id,290,1);
  771.     SetComponentPosition(id,5,75);
  772.     id = InitContainer(tCommonTableBorder);
  773.     SetContainerSize(id,290,1);
  774.     SetComponentPosition(id,5,90);
  775.     id = InitContainer(tCommonTableBorder);
  776.     SetContainerSize(id,290,1);
  777.     SetComponentPosition(id,5,265);
  778.  
  779.     // Horizontal line
  780.     id = InitContainer(tCommonTableBorder);
  781.     SetContainerSize(id,290,1);
  782.     SetComponentPosition(id,350,75);
  783.     id = InitContainer(tCommonTableBorder);
  784.     SetContainerSize(id,290,1);
  785.     SetComponentPosition(id,350,90);
  786.     id = InitContainer(tCommonTableBorder);
  787.     SetContainerSize(id,290,1);
  788.     SetComponentPosition(id,350,265);
  789.  
  790.     // Vertical line
  791.     id = InitContainer(tCommonTableBorder);
  792.     SetContainerSize(id,1,190);
  793.     SetComponentPosition(id,5,75);
  794.     id = InitContainer(tCommonTableBorder);
  795.     SetContainerSize(id,1,190);
  796.     SetComponentPosition(id,235,75);
  797.     id = InitContainer(tCommonTableBorder);
  798.     SetContainerSize(id,1,190);
  799.     SetComponentPosition(id,275,75);
  800.     id = InitContainer(tCommonTableBorder);
  801.     SetContainerSize(id,1,190);
  802.     SetComponentPosition(id,295,75);
  803.  
  804.     // Vertical line
  805.     id = InitContainer(tCommonTableBorder);
  806.     SetContainerSize(id,1,190);
  807.     SetComponentPosition(id,5+345,75);
  808.     id = InitContainer(tCommonTableBorder);
  809.     SetContainerSize(id,1,190);
  810.     SetComponentPosition(id,235+345,75);
  811.     id = InitContainer(tCommonTableBorder);
  812.     SetContainerSize(id,1,190);
  813.     SetComponentPosition(id,275+345,75);
  814.     id = InitContainer(tCommonTableBorder);
  815.     SetContainerSize(id,1,190);
  816.     SetComponentPosition(id,295+345,75);
  817.  
  818.     // Button to make a transfert
  819.     oPage_Transfert.m_cTransfert = InitLibMultiSpriteButtonWithText(tButton32Multi,0,"<>",tFontArial,1330);
  820.     SetComponentPosition(oPage_Transfert.m_cTransfert, 297, 160);
  821.  
  822.     // Team list box
  823.     // Retrieve player team division
  824.     iDivID = Database_GetIntData(QUERY_GLOBAL_TEAMS,"DYN_team.fkIDdivision",1,g_oUser.m_iMyTeamID);
  825.     // Create temp subset to fill with other team
  826.     DatabaseSubset_Create( TEMP_DATABASE2, QUERY_GLOBAL_TEAMS);
  827.     Database_AddTables(    TEMP_DATABASE2, 2);
  828.     Table_SetName( TEMP_DATABASE2, 0, "DYN_team");
  829.     Table_SetName( TEMP_DATABASE2, 1, "DYN_manager");
  830.     TableSubset_SelectColumns( TEMP_DATABASE2, 0, "*");
  831.     TableSubset_SelectColumns( TEMP_DATABASE2, 1, "*");
  832.  
  833.     // create query to fill the subset
  834.     Query_Create(0, TEMP_DATABASE2);
  835.     Query_SetNumJoinTables(    0, 2);
  836.     Query_SelectJoinTable(    0, 0, "DYN_team");
  837.     Query_SelectJoinTable(    0, 1, "DYN_team.fkIDmanager_duplicate.DYN_manager");
  838.     Query_SelectWhereIntEqual(0, "DYN_team.fkIDdivision", iDivID);
  839.     Query_SelectWhereIntDifferent(0, "DYN_team.IDteam", g_oUser.m_iMyTeamID);
  840.     Query_Execute(0);
  841.  
  842.     // Sort team by name
  843.     Table_Sort(TEMP_DATABASE2,"DYN_team","gene_sz_name",1);
  844.  
  845.  
  846.     // Create temp subset to fill with user cyclist
  847.     DatabaseSubset_Create( TEMP_DATABASE, QUERY_GLOBAL_CYCLISTS);
  848.     Database_AddTables(    TEMP_DATABASE, 1);
  849.     Table_SetName( TEMP_DATABASE, 0, "DYN_cyclist");
  850.     TableSubset_SelectColumns( TEMP_DATABASE, 0, "*");
  851.  
  852.     // Create temp subset to fill with other cyclist
  853.     DatabaseSubset_Create( TEMP_DATABASE3, QUERY_GLOBAL_CYCLISTS);
  854.     Database_AddTables(    TEMP_DATABASE3, 1);
  855.     Table_SetName( TEMP_DATABASE3, 0, "DYN_cyclist");
  856.     TableSubset_SelectColumns( TEMP_DATABASE3, 0, "*");
  857.  
  858.     // Select the first team
  859.     oPage_Transfert.m_iSelectedTeamID = Database_GetIntData(TEMP_DATABASE2,"DYN_team.IDteam",2,0);
  860.     oObject_TeamListbox.m_iSelectedTeamID = oPage_Transfert.m_iSelectedTeamID;
  861.  
  862.     // Create team list box
  863.     Object_Roster_Team_Listbox_InitMembers(TEMP_DATABASE2);
  864.     oPage_Transfert.m_cTeamListBox = InitObject(
  865.         oObject_TeamListbox.m_szName,        // Object name
  866.         oObject_TeamListbox.oFunc.pcreate,    // Object create func
  867.         oObject_TeamListbox.oFunc.pevent);    // Object event func
  868.     SetComponentPosition(oPage_Transfert.m_cTeamListBox,340,38);
  869.  
  870.     AutoResize();
  871. }
  872.  
  873. //----------------------------------------------------------------------------------------------------------------//
  874. //----------------------------------------------------------------------------------------------------------------//
  875. // Page_Transfert Event func
  876. //----------------------------------------------------------------------------------------------------------------//
  877. //----------------------------------------------------------------------------------------------------------------//
  878. func i32x Page_Transfert_Event (i32x _iComponentID,i32x _iEvent)
  879. {
  880.     var i32x iNumRows;
  881.     if (_iComponentID == oPage_Transfert.m_cTransfert)
  882.     {
  883.         if(_iEvent == GUI_BUTTON_PRESSED)
  884.         {
  885.             PlaySound(0,sbClickSound[0]);
  886.  
  887.             vCreateTransfertDialog(oPage_Transfert.m_iCyclist1ID,oPage_Transfert.m_iCyclist2ID);
  888.         }
  889.     }
  890.     else if (_iComponentID == oPage_Transfert.m_cUserRatingColumn)
  891.     {
  892.         if(_iEvent == GUI_BUTTON_PRESSED)
  893.         {
  894.             PlaySound(0,sbClickSound[0]);
  895.  
  896.             if(!strcmp(oPage_Transfert.m_szUserColumnSorted,"gene_i_rating"))
  897.             {
  898.                 // Reverse sort dir
  899.                 oPage_Transfert.m_iUserSortDir = oPage_Transfert.m_iUserSortDir * -1;
  900.             }
  901.             else
  902.                 oPage_Transfert.m_iUserSortDir = -1;
  903.  
  904.  
  905.             // Change column sorted
  906.             oPage_Transfert.m_szUserColumnSorted = "gene_i_rating";
  907.             vUpdate_UserCyclistSubset();
  908.  
  909.  
  910.             // Update user list
  911.             iNumRows = Join_GetNumRows(oPage_Transfert.m_jUserCyclist_iId);
  912.             SetListNbItems(oPage_Transfert.m_cUserList,iNumRows);
  913.             // Change selected item
  914.             if(iNumRows>0)
  915.             {
  916.                 SetListPosition(oPage_Transfert.m_cUserList,0);
  917.                 SetListSelectedItem(oPage_Transfert.m_cUserList,0);
  918.             }
  919.         }
  920.     }
  921.     else if (_iComponentID == oPage_Transfert.m_cUserNameColumn)
  922.     {
  923.         if(_iEvent == GUI_BUTTON_PRESSED)
  924.         {
  925.             PlaySound(0,sbClickSound[0]);
  926.  
  927.             if(!strcmp(oPage_Transfert.m_szUserColumnSorted,"gene_sz_lastname"))
  928.             {
  929.                 // Reverse sort dir
  930.                 oPage_Transfert.m_iUserSortDir = oPage_Transfert.m_iUserSortDir * -1;
  931.             }
  932.             else
  933.                 oPage_Transfert.m_iUserSortDir = 1;
  934.  
  935.  
  936.             // Change column sorted
  937.             oPage_Transfert.m_szUserColumnSorted = "gene_sz_lastname";
  938.             vUpdate_UserCyclistSubset();
  939.  
  940.  
  941.             // Update user list
  942.             iNumRows = Join_GetNumRows(oPage_Transfert.m_jUserCyclist_iId);
  943.             SetListNbItems(oPage_Transfert.m_cUserList,iNumRows);
  944.             // Change selected item
  945.             if(iNumRows>0)
  946.             {
  947.                 SetListPosition(oPage_Transfert.m_cUserList,0);
  948.                 SetListSelectedItem(oPage_Transfert.m_cUserList,0);
  949.             }
  950.         }
  951.     }
  952.     else if (_iComponentID == oPage_Transfert.m_cOtherRatingColumn)
  953.     {
  954.         if(_iEvent == GUI_BUTTON_PRESSED)
  955.         {
  956.             PlaySound(0,sbClickSound[0]);
  957.  
  958.             if(!strcmp(oPage_Transfert.m_szOtherColumnSorted,"gene_i_rating"))
  959.             {
  960.                 // Reverse sort dir
  961.                 oPage_Transfert.m_iOtherSortDir = oPage_Transfert.m_iOtherSortDir * -1;
  962.             }
  963.             else
  964.                 oPage_Transfert.m_iOtherSortDir = -1;
  965.  
  966.  
  967.             // Change column sorted
  968.             oPage_Transfert.m_szOtherColumnSorted = "gene_i_rating";
  969.             vUpdate_OtherCyclistSubset(oPage_Transfert.m_iSelectedTeamID);
  970.  
  971.  
  972.             // Update user list
  973.             iNumRows = Join_GetNumRows(oPage_Transfert.m_jOtherCyclist_iId);
  974.             SetListNbItems(oPage_Transfert.m_cOtherList,iNumRows);
  975.             // Change selected item
  976.             if(iNumRows>0)
  977.             {
  978.                 SetListPosition(oPage_Transfert.m_cOtherList,0);
  979.                 SetListSelectedItem(oPage_Transfert.m_cOtherList,0);
  980.             }
  981.         }
  982.     }
  983.     else if (_iComponentID == oPage_Transfert.m_cOtherNameColumn)
  984.     {
  985.         if(_iEvent == GUI_BUTTON_PRESSED)
  986.         {
  987.             PlaySound(0,sbClickSound[0]);
  988.  
  989.             if(!strcmp(oPage_Transfert.m_szOtherColumnSorted,"gene_sz_lastname"))
  990.             {
  991.                 // Reverse sort dir
  992.                 oPage_Transfert.m_iOtherSortDir = oPage_Transfert.m_iOtherSortDir * -1;
  993.             }
  994.             else
  995.                 oPage_Transfert.m_iOtherSortDir = 1;
  996.  
  997.  
  998.             // Change column sorted
  999.             oPage_Transfert.m_szOtherColumnSorted = "gene_sz_lastname";
  1000.             vUpdate_OtherCyclistSubset(oPage_Transfert.m_iSelectedTeamID);
  1001.  
  1002.  
  1003.             // Update user list
  1004.             iNumRows = Join_GetNumRows(oPage_Transfert.m_jOtherCyclist_iId);
  1005.             SetListNbItems(oPage_Transfert.m_cOtherList,iNumRows);
  1006.             // Change selected item
  1007.             if(iNumRows>0)
  1008.             {
  1009.                 SetListPosition(oPage_Transfert.m_cOtherList,0);
  1010.                 SetListSelectedItem(oPage_Transfert.m_cOtherList,0);
  1011.             }
  1012.         }
  1013.     }
  1014.     else if (_iComponentID == oPage_Transfert.m_cTeamListBox)
  1015.     {
  1016.         if(_iEvent == GUI_COMPONENT_REFRESH)
  1017.         {
  1018.             // Team selection
  1019.             oPage_Transfert.m_iSelectedTeamID = oObject_TeamListbox.m_iSelectedTeamID;
  1020.             vUpdate_OtherCyclistSubset(oPage_Transfert.m_iSelectedTeamID);
  1021.             // Update other list
  1022.             iNumRows = Join_GetNumRows(oPage_Transfert.m_jOtherCyclist_iId);
  1023.             SetListNbItems(oPage_Transfert.m_cOtherList,iNumRows);
  1024.             // Change selected item
  1025.             if(iNumRows>0)
  1026.             {
  1027.                 SetListPosition(oPage_Transfert.m_cOtherList,0);
  1028.                 SetListSelectedItem(oPage_Transfert.m_cOtherList,0);
  1029.             }
  1030.         }
  1031.     }
  1032.     else if (_iComponentID == -1)
  1033.     {
  1034.         if(_iEvent == GUI_DIALOG_RETURN)
  1035.         {
  1036.             if(oPage_Transfert.m_iTransfertAsked)
  1037.             {
  1038.                 oPage_Transfert.m_iTransfertAsked = false;
  1039.                 // Racers to wathc out update
  1040.                 // create waiting dialog    
  1041.                 CreateDialog(DIALOG_LOADING_DATA);
  1042.  
  1043.                 // Get query from Menu server
  1044.                 ResetQuery(QUERY_QUICK_TRANSFERT);
  1045.                 GetQuery(g_oMenuServer.m_oServer,QUERY_QUICK_TRANSFERT,"QuickTransfert",FillTransfert,0);
  1046.             }
  1047.         }
  1048.         if(_iEvent == GUI_COMPONENT_DESTRUCTOR )
  1049.         {
  1050.             // Page tactic destructor
  1051.             vDestroyTransfertJoin();
  1052.  
  1053.             oPage_Transfert.iWindowID = ID_NOT_CREATED;
  1054.             oPage_Transfert.pthis = g_poNullComponent;
  1055.         }
  1056.     }
  1057.     return 1;
  1058. }
  1059.  
  1060. //----------------------------------------------------------------------------------------------------------------//
  1061. //----------------------------------------------------------------------------------------------------------------//
  1062. // Page_Transfert Constructor
  1063. //----------------------------------------------------------------------------------------------------------------//
  1064. //----------------------------------------------------------------------------------------------------------------//
  1065. func i32x Page_Transfert_Constructor ()
  1066. {
  1067.     // create page
  1068.     oPage_Transfert.iWindowID = InitObject("Page_Transfert",oPage_Transfert.oFunc.pcreate,oPage_Transfert.oFunc.pevent);
  1069.     SetStackEvents(oPage_Transfert.iWindowID,GUI_Destroy | GUI_Char|GUI_KeyDown);
  1070.  
  1071.     // create waiting dialog    
  1072.     CreateDialog(DIALOG_LOADING_DATA);
  1073.  
  1074.     // Get query from Menu server
  1075.     ResetQuery(QUERY_QUICK_TRANSFERT);
  1076.     GetQuery(g_oMenuServer.m_oServer,QUERY_QUICK_TRANSFERT,"QuickTransfert",FillTransfert,0);
  1077.  
  1078.     // Do not need visual notification
  1079.     oManager.iNotifyTransfert    = false;
  1080.  
  1081.     return oPage_Transfert.iWindowID;
  1082. }
  1083.  
  1084. //----------------------------------------------------------------------------------------------------------------//
  1085. //----------------------------------------------------------------------------------------------------------------//
  1086. //Destructor
  1087. //----------------------------------------------------------------------------------------------------------------//
  1088. //----------------------------------------------------------------------------------------------------------------//
  1089. func void Page_Transfert_Destructor ()
  1090. {
  1091.     Reset_Tool_Bar_Text();
  1092.     // Destroy global join
  1093.     vDestroyTransfertJoin();
  1094.  
  1095.     DeleteComponent(oPage_Transfert.iWindowID);
  1096.     oPage_Transfert.iWindowID = ID_NOT_CREATED;
  1097.     oPage_Transfert.pthis = g_poNullComponent;
  1098. }
  1099.  
  1100. //----------------------------------------------------------------------------------------------------------------//
  1101. //----------------------------------------------------------------------------------------------------------------//
  1102. //Main Window Init member
  1103. //----------------------------------------------------------------------------------------------------------------//
  1104. //----------------------------------------------------------------------------------------------------------------//
  1105.  
  1106. func void Page_Transfert_InitMembers ()
  1107. {
  1108.     oPage_Transfert.szName            = "Page_Transfert";
  1109.     oPage_Transfert.oFunc.pcreate    = Page_Transfert_Create;
  1110.     oPage_Transfert.oFunc.pevent    = Page_Transfert_Event;
  1111. }
  1112.  
  1113.  
  1114. // ******************
  1115. // * Destroy Transfert join
  1116. // ******************
  1117. func void vDestroyTransfertJoin()
  1118. {
  1119.     if(oPage_Transfert.m_jCyclist_iTgaId>0)
  1120.     {
  1121.         Join_Destructor(oPage_Transfert.m_jCyclist_iTgaId);
  1122.         oPage_Transfert.m_jCyclist_iTgaId = 0;
  1123.     }
  1124.     if(oPage_Transfert.m_jCyclist_szTga>0)
  1125.     {
  1126.         Join_Destructor(oPage_Transfert.m_jCyclist_szTga);
  1127.         oPage_Transfert.m_jCyclist_szTga = 0;
  1128.     }
  1129.     if(oPage_Transfert.m_jCyclist_iTgaDirId>0)
  1130.     {
  1131.         Join_Destructor(oPage_Transfert.m_jCyclist_iTgaDirId);
  1132.         oPage_Transfert.m_jCyclist_iTgaDirId = 0;
  1133.     }
  1134.     if(oPage_Transfert.m_jDir_szDir>0)
  1135.     {
  1136.         Join_Destructor(oPage_Transfert.m_jDir_szDir);
  1137.         oPage_Transfert.m_jDir_szDir = 0;
  1138.     }
  1139.  
  1140.     if(oPage_Transfert.m_jUserCyclist_iId>0)
  1141.     {
  1142.         Join_Destructor(oPage_Transfert.m_jUserCyclist_iId);
  1143.         oPage_Transfert.m_jUserCyclist_iId = 0;
  1144.     }
  1145.     if(oPage_Transfert.m_jOtherCyclist_iId>0)
  1146.     {
  1147.         Join_Destructor(oPage_Transfert.m_jOtherCyclist_iId);
  1148.         oPage_Transfert.m_jOtherCyclist_iId = 0;
  1149.     }
  1150.     if(oPage_Transfert.m_jCyclist_szName>0)
  1151.     {
  1152.         Join_Destructor(oPage_Transfert.m_jCyclist_szName);
  1153.         oPage_Transfert.m_jCyclist_szName = 0;
  1154.     }
  1155.     if(oPage_Transfert.m_jCyclist_szFirstName>0)
  1156.     {
  1157.         Join_Destructor(oPage_Transfert.m_jCyclist_szFirstName);
  1158.         oPage_Transfert.m_jCyclist_szFirstName = 0;
  1159.     }
  1160.     if(oPage_Transfert.m_jCyclist_iIDteam>0)
  1161.     {
  1162.         Join_Destructor(oPage_Transfert.m_jCyclist_iIDteam);
  1163.         oPage_Transfert.m_jCyclist_iIDteam = 0;
  1164.     }
  1165.     if(oPage_Transfert.m_jTeam_szAbrev>0)
  1166.     {
  1167.         Join_Destructor(oPage_Transfert.m_jTeam_szAbrev);
  1168.         oPage_Transfert.m_jTeam_szAbrev = 0;
  1169.     }
  1170.     if(oPage_Transfert.m_jCyclistRating != 0)
  1171.     {
  1172.         Join_Destructor(oPage_Transfert.m_jCyclistRating);
  1173.         oPage_Transfert.m_jCyclistRating = 0;
  1174.     }
  1175.  
  1176.     if(oPage_Transfert.m_jTransfert_iId>0)
  1177.     {
  1178.         Join_Destructor(oPage_Transfert.m_jTransfert_iId);
  1179.         oPage_Transfert.m_jTransfert_iId = 0;
  1180.     }
  1181.     if(oPage_Transfert.m_jTransfert_iCyclist1Id>0)
  1182.     {
  1183.         Join_Destructor(oPage_Transfert.m_jTransfert_iCyclist1Id);
  1184.         oPage_Transfert.m_jTransfert_iCyclist1Id = 0;
  1185.     }
  1186.     if(oPage_Transfert.m_jTransfert_iCyclist2Id>0)
  1187.     {
  1188.         Join_Destructor(oPage_Transfert.m_jTransfert_iCyclist2Id);
  1189.         oPage_Transfert.m_jTransfert_iCyclist2Id = 0;
  1190.     }
  1191.     if(oPage_Transfert.m_jTransfert_iStatus>0)
  1192.     {
  1193.         Join_Destructor(oPage_Transfert.m_jTransfert_iStatus);
  1194.         oPage_Transfert.m_jTransfert_iStatus = 0;
  1195.     }
  1196. }
  1197.  
  1198. // ******************
  1199. // * Create Transfert join
  1200. // ******************
  1201. func void vInitTransfertJoin()
  1202. {
  1203.     oPage_Transfert.m_jUserCyclist_iId        = Join_Constructor(TEMP_DATABASE,"DYN_cyclist.IDcyclist");
  1204.     oPage_Transfert.m_jOtherCyclist_iId        = Join_Constructor(TEMP_DATABASE3,"DYN_cyclist.IDcyclist");
  1205.  
  1206.     oPage_Transfert.m_jCyclistRating        = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_i_rating");
  1207.     oPage_Transfert.m_jCyclist_szName        = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_sz_lastname");
  1208.     oPage_Transfert.m_jCyclist_szFirstName    = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_sz_firstname");
  1209.     oPage_Transfert.m_jCyclist_iIDteam        = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.fkIDteam");
  1210.     oPage_Transfert.m_jTeam_szAbrev            = Join_Constructor(QUERY_GLOBAL_TEAMS,"DYN_team.gene_sz_abbreviation");
  1211.     oPage_Transfert.m_jCyclist_iTgaId        = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_tgaID_photo");
  1212.     oPage_Transfert.m_jCyclist_szTga        = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_tgaID_photo.STA_TGA.gene_sz_TGA");
  1213.     oPage_Transfert.m_jCyclist_iTgaDirId    = Join_Constructor(QUERY_GLOBAL_CYCLISTS,"DYN_cyclist.gene_tgaID_photo.STA_TGA.fkIDdirectory");
  1214.     oPage_Transfert.m_jDir_szDir            = Join_Constructor(QUERY_GLOBAL_DIRECTORIES,"STA_directory.game_sz_directory");
  1215.  
  1216.     oPage_Transfert.m_jTransfert_iId = Join_Constructor(QUERY_QUICK_TRANSFERT,"DYN_quick_transfert.IDquick_transfert");
  1217.     oPage_Transfert.m_jTransfert_iCyclist1Id = Join_Constructor(QUERY_QUICK_TRANSFERT,"DYN_quick_transfert.fkIDcyclist_1");
  1218.     oPage_Transfert.m_jTransfert_iCyclist2Id = Join_Constructor(QUERY_QUICK_TRANSFERT,"DYN_quick_transfert.fkIDcyclist_2");
  1219.     oPage_Transfert.m_jTransfert_iStatus = Join_Constructor(QUERY_QUICK_TRANSFERT,"DYN_quick_transfert.gene_i_response");
  1220. }
  1221.  
  1222. // ******************
  1223. // * Query callback
  1224. // ******************
  1225. func void FillTransfert()
  1226. {
  1227.     var component pOldComponent;
  1228.  
  1229.     if(oPage_Transfert.pthis != g_poNullComponent)
  1230.     {
  1231.         // Get current context
  1232.         pOldComponent = GetParserComponent();
  1233.  
  1234.         // Set Page calendar context
  1235.         SetParserComponent(oPage_Transfert.pthis);
  1236.  
  1237.         // Create page global join
  1238.         vDestroyTransfertJoin();
  1239.         vInitTransfertJoin();
  1240.  
  1241.         // Update list display
  1242.         vUpdate_TransfertList();
  1243.  
  1244.         // Restore old context
  1245.         SetParserComponent(pOldComponent);
  1246.     }
  1247.     
  1248.     // Destroy loading data dialog
  1249.     DestroyDialog();
  1250. }
  1251.