home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / CM / CyclingManagerDemoCangas.exe / CyclingManagerDemo / scripts / common / admin / object_calendar.cnc next >
Text File  |  2001-04-25  |  7KB  |  265 lines

  1. // Hour checkbox
  2. //----------------------------------------------------------------------------------------------------------------//
  3. func void HourCheckboxState (i32x _iComponentID,i32x _iState)
  4. {
  5.     if(_iState & GUI_State_Checked)
  6.         SetContainerColor(_iComponentID, c_FillColor_01);
  7.     else
  8.         SetContainerColor(_iComponentID, c_FillColor_02);
  9. }
  10.  
  11.  
  12. func void Object_Calendar_Hour_Create()
  13. {
  14.     var szx txt;
  15.     var i32x id,h,sx,sy;
  16.  
  17.     // Component number
  18.     SetComponentNumber(1);
  19.  
  20.     // Members number
  21.     SetObjectMembersNumber(1);
  22.  
  23.     // Read parameter
  24.     h = oCalendarHour.m_iHour;
  25.     sx = oCalendarHour.m_iSizeX;
  26.     sy = oCalendarHour.m_iSizeY;
  27.  
  28.     // Save it into object
  29.     Seti32x(0,h);
  30.  
  31.     // Background
  32.     oCalendarHour.m_cBack = InitCheckBox(t_Common_Color_White);
  33.     SetContainerStateFunc(oCalendarHour.m_cBack,HourCheckboxState);
  34.     if(oCalendarHour.m_iChecked)
  35.         SetCheckboxState(oCalendarHour.m_cBack,1);
  36.     SetContainerSize(oCalendarHour.m_cBack,sx,sy);
  37.  
  38.     // Object size equal to back size
  39.     SetObjectSize(sx,sy);
  40. }
  41.  
  42. func i32x Object_Calendar_Hour_Event(i32x _iComponentID,i32x _iEvent)
  43. {
  44.     return 1;
  45. }
  46.  
  47. // *** Day Object ***
  48. func void Object_Calendar_Day_Create()
  49. {
  50.     var i32x i,id,day;
  51.     var i32x iRow,iNumRows;
  52.  
  53.     // Component number
  54.     SetComponentNumber(24);
  55.  
  56.     // Members number
  57.     SetObjectMembersNumber(1);
  58.  
  59.     // Read parameter
  60.     day = oCalendarDay.m_iDay;
  61.  
  62.     // Reset subset
  63.     DatabaseSubset_Clear(TEMP_DATABASE_CALENDAR);
  64.     // fill subset
  65.     Query_SelectWhereIntEqual(TEMP_CALENDARQUERY, "GAM_calendar.race_i_real_day", day);
  66.     Query_Execute(TEMP_CALENDARQUERY);
  67.     iNumRows = Join_GetNumRows(oAdminCalendar.iJoinTime);
  68.  
  69.     // Hour object
  70.     i=0;
  71.     while(i<24)
  72.     {
  73.         oCalendarHour.m_iHour = i;
  74.         oCalendarHour.m_iChecked = 0;
  75.         
  76.         iRow = 0;
  77.         while(iRow<iNumRows)
  78.         {
  79.             if((Join_GetIntFromIndex(oAdminCalendar.iJoinTime,iRow)/3600) == i)
  80.                 oCalendarHour.m_iChecked = 1;
  81.  
  82.             iRow = iRow +1;
  83.         }
  84.  
  85.         // Create hour object
  86.         oCalendarDay.m_cHour[i] = InitObject(
  87.             strcat("H",itoa(i)),
  88.             Object_Calendar_Hour_Create,
  89.             Object_Calendar_Hour_Event
  90.         );
  91.         // Update hour position
  92.         SetComponentPositionY(oCalendarDay.m_cHour[i],i*oCalendarHour.m_iSizeY);
  93.         i=i+1;    
  94.     }
  95.  
  96.     // Change object size
  97.     AutoResize();
  98. }
  99.  
  100. func i32x Object_Calendar_Day_Event(i32x _iComponentID,i32x _iEvent)
  101. {
  102.     return 1;
  103. }
  104.  
  105. func void vAdminCalendarUpdate()
  106. {
  107.     var i32x i;
  108.     var component pOld;
  109.     // Retrieve old paser component
  110.     pOld = GetParserComponent();
  111.     
  112.     // Set Calendar onglet context
  113.     SetParserComponent(oAdminCalendar.pThis);
  114.  
  115.     // Create temp subset
  116.     DatabaseSubset_Create( TEMP_DATABASE_CALENDAR, QUERY_ADMIN_CALENDAR);
  117.     Database_AddTables(    TEMP_DATABASE_CALENDAR, 1);
  118.     Table_SetName( TEMP_DATABASE_CALENDAR, 0, "GAM_calendar");
  119.     TableSubset_SelectColumns( TEMP_DATABASE_CALENDAR, 0, "*");
  120.  
  121.     // create query to fill races of day calendar row subset
  122.     Query_Create(TEMP_CALENDARQUERY, TEMP_DATABASE_CALENDAR);
  123.     Query_SetNumJoinTables(    TEMP_CALENDARQUERY, 1);
  124.     Query_SelectJoinTable(    TEMP_CALENDARQUERY, 0, "GAM_calendar");
  125.  
  126.     // Global join
  127.     oAdminCalendar.iJoinDay=Join_Constructor(TEMP_DATABASE_CALENDAR,"GAM_calendar.race_i_real_day");
  128.     oAdminCalendar.iJoinTime=Join_Constructor(TEMP_DATABASE_CALENDAR,"GAM_calendar.race_i_real_time");
  129.  
  130.     // Create day object
  131.     i=0;
  132.     while(i<7)
  133.     {
  134.         oCalendarDay.m_iDay = i;
  135.  
  136.         if(oAdminCalendar.m_cDay[i] != ID_NOT_CREATED)
  137.         {
  138.             DeleteComponent(oAdminCalendar.m_cDay[i]);
  139.             oAdminCalendar.m_cDay[i] = ID_NOT_CREATED;
  140.         }
  141.  
  142.         // Create day object
  143.         oAdminCalendar.m_cDay[i] = InitObject(
  144.             oAdminCalendar.szTabDay[i],
  145.             Object_Calendar_Day_Create,
  146.             Object_Calendar_Day_Event
  147.         );
  148.         // Update day position
  149.         SetComponentPosition(oAdminCalendar.m_cDay[i],i*oCalendarHour.m_iSizeX+32,24);
  150.  
  151.         i=i+1;
  152.     }
  153.  
  154.     // Restore parser component
  155.     SetParserComponent(pOld);
  156. }
  157.  
  158.  
  159. func void Object_Calendar_Create()
  160. {
  161.     SetComponentNumber(96);
  162.     var i32x i,id;
  163.     var i32x iOffsetY;
  164.     iOffsetY = 10;
  165.  
  166.  
  167.     oAdminCalendar.pThis=GetParserComponent();
  168.  
  169.     //initialisation du tableau de jours
  170.     oAdminCalendar.szTabDay[1]=GetLocalizedFromGMKey(10);
  171.     oAdminCalendar.szTabDay[2]=GetLocalizedFromGMKey(11);
  172.     oAdminCalendar.szTabDay[3]=GetLocalizedFromGMKey(12);
  173.     oAdminCalendar.szTabDay[4]=GetLocalizedFromGMKey(14);
  174.     oAdminCalendar.szTabDay[5]=GetLocalizedFromGMKey(15);
  175.     oAdminCalendar.szTabDay[6]=GetLocalizedFromGMKey(16);
  176.     oAdminCalendar.szTabDay[0]=GetLocalizedFromGMKey(17);
  177.  
  178.     // Create Day array
  179.  
  180.     // Init create parameters
  181.     oCalendarHour.m_iSizeX = 64;
  182.     oCalendarHour.m_iSizeY = 18;
  183.     i=0;
  184.     while(i<7)
  185.     {
  186.         oCalendarDay.m_iDay = i;
  187.  
  188.         // Day object is not created
  189.         oAdminCalendar.m_cDay[i] = ID_NOT_CREATED;
  190.  
  191.         // Title (Day)
  192.         id = InitContainer(tFontArialItalique);
  193.         SetContainerText(id,oAdminCalendar.szTabDay[i]);
  194.         SetContainerOffset(id,-1);
  195.         SetComponentPosition(id,i*oCalendarHour.m_iSizeX+32,0);
  196.         SetEvents(id,GUI_NoEvent);
  197.  
  198.         // Line
  199.         id = InitContainer(tCommonTableBorder);
  200.         SetContainerSize(id,1,oCalendarHour.m_iSizeY*24);
  201.         SetComponentPosition(id,i*oCalendarHour.m_iSizeX+32,24);
  202.         SetEvents(id,GUI_NoEvent);
  203.         i=i+1;
  204.     }
  205.     // Last Line
  206.     id = InitContainer(tCommonTableBorder);
  207.     SetContainerSize(id,1,oCalendarHour.m_iSizeY*24);
  208.     SetComponentPosition(id,7*oCalendarHour.m_iSizeX+32,24);
  209.     SetEvents(id,GUI_NoEvent);
  210.  
  211.     // Hour caption
  212.     i=0;
  213.     while(i<24)
  214.     {
  215.         // Line Title (hour)
  216.         id = InitContainer(tFontArialItalique);
  217.         SetContainerText(id,strcat(itoa(i),"h"));
  218.         SetComponentPosition(id,0,i*oCalendarHour.m_iSizeY+26);
  219.         SetEvents(id,GUI_NoEvent);
  220.  
  221.         // Line
  222.         id = InitContainer(tCommonTableBorder);
  223.         SetContainerSize(id,oCalendarHour.m_iSizeX*7,1);
  224.         SetComponentPosition(id,32,i*oCalendarHour.m_iSizeY+24);
  225.         SetEvents(id,GUI_NoEvent);
  226.  
  227.         i=i+1;
  228.     }
  229.     // last Line
  230.     id = InitContainer(tCommonTableBorder);
  231.     SetContainerSize(id,oCalendarHour.m_iSizeX*7,1);
  232.     SetComponentPosition(id,32,24*oCalendarHour.m_iSizeY+24);
  233.     SetEvents(id,GUI_NoEvent);
  234.  
  235.     AutoResize();
  236. }
  237.  
  238. func i32x Object_Calendar_Event(i32x _iComponentID,i32x _iEvent)
  239. {
  240.     if(_iComponentID == -1)
  241.     {
  242.         if(_iEvent == GUI_COMPONENT_DESTRUCTOR)
  243.         {
  244.             if(oAdminCalendar.iJoinDay > 0)
  245.             {
  246.                 Join_Destructor(oAdminCalendar.iJoinDay);
  247.                 oAdminCalendar.iJoinDay = 0;
  248.             }
  249.             if(oAdminCalendar.iJoinTime > 0)
  250.             {
  251.                 Join_Destructor(oAdminCalendar.iJoinTime);
  252.                 oAdminCalendar.iJoinTime = 0;
  253.             }
  254.         }
  255.     }
  256.  
  257.     return 1;
  258. }
  259.  
  260. func void Object_Calendar_InitMembers()
  261. {
  262.     oAdminCalendar.oFunc.pcreate    = Object_Calendar_Create;
  263.     oAdminCalendar.oFunc.pevent    = Object_Calendar_Event;
  264. }
  265.