Diff for /np2/macosx/Attic/screenopt.cpp between versions 1.1 and 1.4

version 1.1, 2003/10/23 21:00:24 version 1.4, 2003/10/28 16:44:44
Line 13 Line 13
 #include        "iocore.h"  #include        "iocore.h"
 #include        "scrndraw.h"  #include        "scrndraw.h"
 #include        "palettes.h"  #include        "palettes.h"
 #include        "configure.h"  #include        "dialogutils.h"
   #include        "screenopt.h"
   
 static WindowRef        screenWin;  #define getControlValue(a,b)            GetControl32BitValue(getControlRefByID(a,b,screenWin))
 static void SetInitialTabState(WindowRef theWindow);  #define setControlValue(a,b,c)          SetControl32BitValue(getControlRefByID(a,b,screenWin),c)
 static pascal OSStatus PrefsTabEventHandlerProc( EventHandlerCallRef inCallRef, EventRef inEvent, void* inUserData );  
   
 enum {kTabMasterSig = 'ScrT',kTabMasterID = 1000,kTabPaneSig= 'ScTb',kMaxNumTabs= 3};  #define kMaxNumTabs 3
   enum {kTabMasterSig = 'ScrT',kTabMasterID = 1000,kTabPaneSig= 'ScTb'};
   
 static void endLoop(void) {  static WindowRef        screenWin;
     OSStatus    err;  static UInt16 lastPaneSelected = 1;     // static, to keep track of it long term (in a more complex application
     HideSheetWindow(screenWin);                                          // you might store this in a data structure in the window refCon)                                            
     DisposeWindow(screenWin);  
     err=QuitAppModalLoopForWindow(screenWin);  
 }  
   
 static void setFieldValue(UInt32 type) {  
     ControlRef  conRef;  
     Str255              title;  
     SInt32              value;  
       
     value = GetControl32BitValue(getControlRefByID(type, 0, screenWin));   
     if (type == 'RPAd') {  
         value -= 31;  
     }  
     NumToString(value, title);  
     conRef = getControlRefByID(type, 1, screenWin);  
         SetControlData(conRef, kControlNoPart, kControlStaticTextTextTag, *title, title+1);  
     Draw1Control(conRef);  
 }  
   
 static void setReverseStatus(void) {  static void setReverseStatus(void) {
     if (GetControl32BitValue(getControlRefByID('LCDy', 0, screenWin))) {      if (getControlValue('LCDy', 0)) {
         ActivateControl(getControlRefByID('rvrs', 0, screenWin));          ActivateControl(getControlRefByID('rvrs', 0, screenWin));
     }      }
     else {      else {
Line 53  static void setReverseStatus(void) { Line 37  static void setReverseStatus(void) {
 }  }
   
 static void initScreenWindow(void) {  static void initScreenWindow(void) {
     SetControl32BitValue(getControlRefByID('LCDy', 0, screenWin), np2cfg.LCD_MODE & 1);      setControlValue('LCDy', 0, np2cfg.LCD_MODE & 1);
     setReverseStatus();      setReverseStatus();
     SetControl32BitValue(getControlRefByID('rvrs', 0, screenWin), np2cfg.LCD_MODE & 2?1:0);      setControlValue('rvrs', 0, np2cfg.LCD_MODE & 2?1:0);
     SetControl32BitValue(getControlRefByID('uskr', 0, screenWin), np2cfg.skipline);      setControlValue('uskr', 0, np2cfg.skipline);
     SetControl32BitValue(getControlRefByID('rati', 0, screenWin), np2cfg.skiplight);      setControlValue('sl/f', 0, np2cfg.skiplight);
     setFieldValue('rati');        
           setControlValue('GDCl', 0, np2cfg.uPD72020 + 1);
     SetControl32BitValue(getControlRefByID('GDCl', 0, screenWin), np2cfg.uPD72020 + 1);      setControlValue('GrCh', 0, (np2cfg.grcg & 3) + 1);
     SetControl32BitValue(getControlRefByID('GrCh', 0, screenWin), (np2cfg.grcg & 3) + 1);      setControlValue('16cl', 0, np2cfg.color16);
     SetControl32BitValue(getControlRefByID('16cl', 0, screenWin), np2cfg.color16);      
           setControlValue('sl/f', 1, np2cfg.wait[0]);
     SetControl32BitValue(getControlRefByID('tram', 0, screenWin), np2cfg.wait[0]);      setControlValue('sl/f', 2, np2cfg.wait[2]);
     setFieldValue('tram');      setControlValue('sl/f', 3, np2cfg.wait[4]);
     SetControl32BitValue(getControlRefByID('vram', 0, screenWin), np2cfg.wait[2]);      setControlValue('sl/f', 4, np2cfg.realpal);
     setFieldValue('vram');  
     SetControl32BitValue(getControlRefByID('crgc', 0, screenWin), np2cfg.wait[4]);  
     setFieldValue('crgc');  
     SetControl32BitValue(getControlRefByID('RPAd', 0, screenWin), np2cfg.realpal);  
     setFieldValue('RPAd');  
       
 }  }
   
 static pascal OSStatus cfWinproc(EventHandlerCallRef myHandler, EventRef event, void* userData) {  static pascal OSStatus cfWinproc(EventHandlerCallRef myHandler, EventRef event, void* userData) {
Line 91  static pascal OSStatus cfWinproc(EventHa Line 69  static pascal OSStatus cfWinproc(EventHa
             case 'LCDy':              case 'LCDy':
                 setReverseStatus();                  setReverseStatus();
                 break;                  break;
                   
             case 'rati':  
             case 'tram':  
             case 'vram':  
             case 'crgc':  
             case 'RPAd':  
                 setFieldValue(cmd.commandID);  
                 break;  
   
             case kHICommandOK:              case kHICommandOK:
                 renewal = 0;                  renewal = 0;
                 val=GetControl32BitValue(getControlRefByID('uskr', 0, screenWin));                  val=getControlValue('uskr', 0);
                                 if (np2cfg.skipline != val) {                                  if (np2cfg.skipline != val) {
                                         np2cfg.skipline = val;                                          np2cfg.skipline = val;
                                         renewal = 1;                                          renewal = 1;
                                 }                                  }
                 val=GetControl32BitValue(getControlRefByID('rati', 0, screenWin));                  val=getControlValue('sl/f', 0);
                 if (val != np2cfg.skiplight);                  if (val != np2cfg.skiplight);
                                 if (renewal) {                                  if (renewal) {
                                         pal_makeskiptable();                                          pal_makeskiptable();
                                 }                                  }
                 val=GetControl32BitValue(getControlRefByID('LCDy', 0, screenWin)) |                  val=getControlValue('LCDy', 0) | getControlValue('rvrs', 0) << 1;
                     GetControl32BitValue(getControlRefByID('rvrs', 0, screenWin)) << 1;  
                                 if (np2cfg.LCD_MODE != val) {                                  if (np2cfg.LCD_MODE != val) {
                                         np2cfg.LCD_MODE = val;                                          np2cfg.LCD_MODE = val;
                                         pal_makelcdpal();                                          pal_makelcdpal();
Line 125  static pascal OSStatus cfWinproc(EventHa Line 94  static pascal OSStatus cfWinproc(EventHa
                                 }                                  }
   
                 update = 0;                  update = 0;
                 val=GetControl32BitValue(getControlRefByID('GDCl', 0, screenWin))-1;                  val=getControlValue('GDCl', 0)-1;
                                 if (np2cfg.uPD72020 != val) {                                  if (np2cfg.uPD72020 != val) {
                                         np2cfg.uPD72020 = val;                                          np2cfg.uPD72020 = val;
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         gdc_restorekacmode();                                          gdc_restorekacmode();
                                         gdcs.grphdisp |= GDCSCRN_ALLDRAW2;                                          gdcs.grphdisp |= GDCSCRN_ALLDRAW2;
                                 }                                  }
                 val=GetControl32BitValue(getControlRefByID('GrCh', 0, screenWin))-1;                  val=getControlValue('GrCh', 0)-1;
                                 if (np2cfg.grcg != val) {                                  if (np2cfg.grcg != val) {
                                         np2cfg.grcg = val;                                          np2cfg.grcg = val;
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         gdcs.grphdisp |= GDCSCRN_ALLDRAW2;                                          gdcs.grphdisp |= GDCSCRN_ALLDRAW2;
                                 }                                  }
                 val=GetControl32BitValue(getControlRefByID('16cl', 0, screenWin));                  val=getControlValue('16cl', 0);
                                 if (np2cfg.color16 != val) {                                  if (np2cfg.color16 != val) {
                                         np2cfg.color16 = val;                                          np2cfg.color16 = val;
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                 }                                  }
           
                 value[0]=GetControl32BitValue(getControlRefByID('tram', 0, screenWin));                  value[0]=getControlValue('sl/f', 1);
                                 if (value[0]) {                                  if (value[0]) {
                                         value[1] = 1;                                          value[1] = 1;
                                 }                                  }
                 value[2]=GetControl32BitValue(getControlRefByID('vram', 0, screenWin));                  value[2]=getControlValue('sl/f', 2);
                                 if (value[0]) {                                  if (value[0]) {
                                         value[3] = 1;                                          value[3] = 1;
                                 }                                  }
                 value[4]=GetControl32BitValue(getControlRefByID('crgc', 0, screenWin));                  value[4]=getControlValue('sl/f', 3);
                                 if (value[0]) {                                  if (value[0]) {
                                         value[5] = 1;                                          value[5] = 1;
                                 }                                  }
Line 162  static pascal OSStatus cfWinproc(EventHa Line 131  static pascal OSStatus cfWinproc(EventHa
                                                 update |= SYS_UPDATECFG;                                                  update |= SYS_UPDATECFG;
                                         }                                          }
                                 }                                  }
                 val=GetControl32BitValue(getControlRefByID('RPAd', 0, screenWin));                  val=getControlValue('sl/f', 4);
                 if (val != np2cfg.realpal) {                  if (val != np2cfg.realpal) {
                     np2cfg.realpal = val;                      np2cfg.realpal = val;
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                 }                  }
                                   
                 sysmng_update(update);                  sysmng_update(update);
                 endLoop();                  endLoop(screenWin);
                 err=noErr;                  err=noErr;
                 break;                  break;
                                   
             case kHICommandCancel:              case kHICommandCancel:
                 endLoop();                  endLoop(screenWin);
                 err=noErr;                  err=noErr;
                 break;                  break;
         }          }
Line 185  static pascal OSStatus cfWinproc(EventHa Line 154  static pascal OSStatus cfWinproc(EventHa
     return err;      return err;
 }  }
   
   static pascal OSStatus sliderEventHandlerProc( EventHandlerCallRef inCallRef, EventRef inEvent, void* inUserData )
   {
       short               base = 0;
       ControlID   conID;
       ControlRef  theControl = (ControlRef)inUserData;
       if (GetControlID(theControl, &conID) == noErr) {
           if (conID.signature == 'sl/f' && conID.id == 4) {
               base = 31;
           }
       }
       return( changeSlider(theControl, screenWin, base) );
   }
   
   static pascal OSStatus PrefsTabEventHandlerProc( EventHandlerCallRef inCallRef, EventRef inEvent, void* inUserData )
   {
       WindowRef theWindow = (WindowRef)inUserData;  // get the windowRef, passed around as userData    
       short ret;
       ret = changeTab(theWindow, lastPaneSelected);
       if (ret) {
           lastPaneSelected = ret;
       }
       return( eventNotHandledErr );
   }
   
 static void makeNibWindow (IBNibRef nibRef) {  static void makeNibWindow (IBNibRef nibRef) {
     OSStatus    err;      OSStatus    err;
       short               i;
       ControlRef  targetCon[5];
           
     err = CreateWindowFromNib(nibRef, CFSTR("ScreenDialog"), &screenWin);      err = CreateWindowFromNib(nibRef, CFSTR("ScreenDialog"), &screenWin);
     if (err == noErr) {      if (err == noErr) {
         initScreenWindow();          initScreenWindow();
         SetInitialTabState(screenWin);          SetInitialTabState(screenWin, lastPaneSelected, kMaxNumTabs);
         EventTypeSpec   tabControlEvents[] ={ { kEventClassControl, kEventControlHit }};          EventTypeSpec   tabControlEvents[] ={ { kEventClassControl, kEventControlHit }};
         InstallControlEventHandler( getControlRefByID(kTabMasterSig,kTabMasterID,screenWin),  PrefsTabEventHandlerProc , GetEventTypeCount(tabControlEvents), tabControlEvents, screenWin, NULL );          InstallControlEventHandler( getControlRefByID(kTabMasterSig,kTabMasterID,screenWin),  PrefsTabEventHandlerProc , GetEventTypeCount(tabControlEvents), tabControlEvents, screenWin, NULL );
         EventTypeSpec   list[]={          EventTypeSpec   list[]={ { kEventClassCommand, kEventCommandProcess },};
         { kEventClassCommand, kEventCommandProcess },  
           EventTypeSpec   sliderControlEvents[] ={
               { kEventClassControl, kEventControlDraw },
               { kEventClassControl, kEventControlValueFieldChanged }
         };          };
           for (i=0;i<5;i++) {
               targetCon[i] = getControlRefByID('sl/f',i,screenWin);
               InstallControlEventHandler( targetCon[i],  sliderEventHandlerProc , GetEventTypeCount(sliderControlEvents), sliderControlEvents, (void *)targetCon[i], NULL );
           }
   
         EventHandlerRef ref;          EventHandlerRef ref;
         InstallWindowEventHandler (screenWin, NewEventHandlerUPP(cfWinproc), sizeof(list)/sizeof(EventTypeSpec), list, (void *)screenWin, &ref);          InstallWindowEventHandler (screenWin, NewEventHandlerUPP(cfWinproc), GetEventTypeCount(list), list, (void *)screenWin, &ref);
         ShowSheetWindow(screenWin, hWndMain);          ShowSheetWindow(screenWin, hWndMain);
                   
         err=RunAppModalLoopForWindow(screenWin);          err=RunAppModalLoopForWindow(screenWin);
Line 219  void initScreenOpt( void ) { Line 222  void initScreenOpt( void ) {
          return;           return;
     }      }
 }  }
   
 static UInt16 lastPaneSelected = 1;     // static, to keep track of it long term (in a more complex application  
                                         // you might store this in a data structure in the window refCon)                                              
   
 static void SetInitialTabState(WindowRef theWindow)  
 {  
     short qq;  
   
     for(qq=0;qq<kMaxNumTabs+1;qq++)  
     SetControlVisibility( getControlRefByID(  kTabPaneSig,  kTabMasterID+qq, theWindow), false, true );    
       
     SetControlValue(getControlRefByID(kTabMasterSig,kTabMasterID,theWindow),lastPaneSelected );  
     SetControlVisibility( getControlRefByID(  kTabPaneSig,  kTabMasterID+lastPaneSelected, theWindow), true, true );  
 }  
   
 static pascal OSStatus PrefsTabEventHandlerProc( EventHandlerCallRef inCallRef, EventRef inEvent, void* inUserData )  
 {  
     WindowRef theWindow = (WindowRef)inUserData;  // get the windowRef, passed around as userData      
     short controlValue = 2;  
     controlValue = GetControlValue( getControlRefByID(kTabMasterSig,kTabMasterID,theWindow) );  
     if ( controlValue != lastPaneSelected )  
     {  
         SetControlVisibility( getControlRefByID(  kTabPaneSig,  kTabMasterID+lastPaneSelected, theWindow), false, true );  
         SetControlVisibility( getControlRefByID(  kTabPaneSig,  kTabMasterID+controlValue, theWindow), true, true );      
   
         Draw1Control( getControlRefByID(kTabMasterSig,kTabMasterID,theWindow) );                  
         lastPaneSelected= controlValue;      
     }  
       
     return( eventNotHandledErr );  
 }  
   
                                                             
   

Removed from v.1.1  
changed lines
  Added in v.1.4


RetroPC.NET-CVS <cvs@retropc.net>