// --------------------------------------------------------------------------- // // ----------- pascal OSStatus bToolGeomWithJoin::dtb_proc( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue){ bToolGeomWithJoin* t=(bToolGeomWithJoin*)GetControlReference(browser); CFStringRef cfs; bGenericMacMapApp* gapp=(bGenericMacMapApp*)t->getapp(); bGenericType* tp=NULL; char name[256]; Boolean b; switch(property){ case kToolGeomWithJoinTypesCheckProperty: if(!changeValue){ if(!t->_tp_use.get(itemID,&tp)){ } SetDataBrowserItemDataBooleanValue(itemData,(tp!=NULL)); } else{ GetDataBrowserItemDataBooleanValue(itemData,&b); if(b){ tp=gapp->typesMgr()->get(itemID); } else{ tp=NULL; } t->_tp_use.put(itemID,&tp); } break; case kToolGeomWithJoinTypesNameProperty: if(!changeValue){ tp=gapp->typesMgr()->get(itemID); tp->name(name); cfs=CFStringCreateWithCString(kCFAllocatorDefault,name,CFStringGetSystemEncoding()); SetDataBrowserItemDataText(itemData,cfs); CFRelease(cfs); } break; case kDataBrowserItemIsEditableProperty: if(SetDataBrowserItemDataBooleanValue(itemData,true)){ } break; case kDataBrowserItemIsSelectableProperty: if(SetDataBrowserItemDataBooleanValue(itemData,true)){ } break; default: break; } return(noErr); }
static pascal OSStatus fdsn_getset_item (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { static IconRef folderIcon = 0; static IconRef dsnIcon = 0; OSStatus err = noErr; if (!changeValue) switch (property) { case DBNAME_ID: if (folderIcon == 0) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericFolderIcon, &folderIcon); if (dsnIcon == 0) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericDocumentIcon, &dsnIcon); SetDataBrowserItemDataText (itemData, FDSN_array[itemID - DBITEM_ID - 1]); if (FDSN_type[itemID - DBITEM_ID - 1]) SetDataBrowserItemDataIcon(itemData, dsnIcon); else SetDataBrowserItemDataIcon(itemData, folderIcon); break; case kDataBrowserItemIsActiveProperty: if (itemID > DBITEM_ID && itemID <= DBITEM_ID + FDSN_nrows) err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsEditableProperty: err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsContainerProperty: err = SetDataBrowserItemDataBooleanValue (itemData, itemID == DBITEM_ID); break; case kDataBrowserContainerAliasIDProperty: break; case kDataBrowserItemParentContainerProperty: break; default: err = errDataBrowserPropertyNotSupported; break; } else err = errDataBrowserPropertyNotSupported; return err; }
static pascal OSStatus dsnsetup_getset_item (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { OSStatus err = noErr; if (!changeValue) switch (property) { case GSKEYWORD_ID: SetDataBrowserItemDataText (itemData, DSNSETUP_array[0][itemID - DBITEM_ID - 1]); break; case GSVALUE_ID: SetDataBrowserItemDataText (itemData, DSNSETUP_array[1][itemID - DBITEM_ID - 1]); break; case kDataBrowserItemIsActiveProperty: if (itemID > DBITEM_ID && itemID <= DBITEM_ID + DSNSETUP_nrows) err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsEditableProperty: err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsContainerProperty: err = SetDataBrowserItemDataBooleanValue (itemData, itemID == DBITEM_ID); break; case kDataBrowserContainerAliasIDProperty: break; case kDataBrowserItemParentContainerProperty: break; default: err = errDataBrowserPropertyNotSupported; break; } else err = errDataBrowserPropertyNotSupported; return err; }
OSStatus MySimpleDataCallback(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { static IconRef neighborhoodIcon = 0; static IconRef servicesIcon = 0; CFStringRef name; switch (property) { case kNameColumn: if (itemID <= kMaxNeighborhoods) { if (neighborhoodIcon == 0) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericNetworkIcon, &neighborhoodIcon); SetDataBrowserItemDataIcon(itemData, neighborhoodIcon); SetDataBrowserItemDataText(itemData, gData[itemID-1]); } else { if (servicesIcon == 0) { if (gSystemIsMacOSX) GetIconRef(kOnSystemDisk, kSystemIconsCreator, kGenericIDiskIcon, &servicesIcon); else GetIconRef(kOnSystemDisk, kSystemIconsCreator, kIPFileServerIcon, &servicesIcon); } SetDataBrowserItemDataIcon(itemData, servicesIcon); ParseURL(gData[itemID - 1], &name); if (name) { SetDataBrowserItemDataText(itemData, name); CFRelease(name); } } break; case kDataBrowserItemIsSelectableProperty: if (itemID <= kMaxNeighborhoods) SetDataBrowserItemDataBooleanValue(itemData, false); else SetDataBrowserItemDataBooleanValue(itemData, true); break; case kDataBrowserItemIsContainerProperty: if (itemID <= kMaxNeighborhoods) SetDataBrowserItemDataBooleanValue(itemData, true); else SetDataBrowserItemDataBooleanValue(itemData, false); break; } return noErr; }
static pascal OSStatus DBClientDataCallback (HIViewRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { OSStatus err, result; CFStringRef str; Boolean r; uint32 address; uint8 value; char code[256]; result = noErr; switch (property) { case kCmCheckBox: ThemeButtonValue buttonValue; if (changeValue) { err = GetDataBrowserItemDataButtonValue(itemData, &buttonValue); citem[itemID - 1].enabled = (buttonValue == kThemeButtonOn) ? true : false; } else err = SetDataBrowserItemDataButtonValue(itemData, citem[itemID - 1].enabled ? kThemeButtonOn : kThemeButtonOff); break; case kCmAddress: if (changeValue) { err = GetDataBrowserItemDataText(itemData, &str); r = CFStringGetCString(str, code, 256, CFStringGetSystemEncoding()); CFRelease(str); if (r) { Boolean translated; if (S9xProActionReplayToRaw(code, address, value) == NULL) translated = true; else if (S9xGameGenieToRaw(code, address, value) == NULL) translated = true; else { translated = false; if (sscanf(code, "%" SCNx32, &address) != 1) address = 0; else address &= 0xFFFFFF; } citem[itemID - 1].address = address; sprintf(code, "%06" PRIX32, address); str = CFStringCreateWithCString(kCFAllocatorDefault, code, CFStringGetSystemEncoding()); err = SetDataBrowserItemDataText(itemData, str); CFRelease(str); if (translated) { DataBrowserItemID id[1]; citem[itemID - 1].value = value; id[0] = itemID; err = UpdateDataBrowserItems(browser, kDataBrowserNoItem, 1, id, kDataBrowserItemNoProperty, kCmValue); } } } else { sprintf(code, "%06" PRIX32, citem[itemID - 1].address); str = CFStringCreateWithCString(kCFAllocatorDefault, code, CFStringGetSystemEncoding()); err = SetDataBrowserItemDataText(itemData, str); CFRelease(str); } break; case kCmValue: if (changeValue) { err = GetDataBrowserItemDataText(itemData, &str); r = CFStringGetCString(str, code, 256, CFStringGetSystemEncoding()); CFRelease(str); if (r) { uint32 byte; if (sscanf(code, "%" SCNx32, &byte) == 1) citem[itemID - 1].value = (uint8) byte; else { citem[itemID - 1].value = 0; err = SetDataBrowserItemDataText(itemData, CFSTR("00")); } } } else { sprintf(code, "%02" PRIX8, citem[itemID - 1].value); str = CFStringCreateWithCString(kCFAllocatorDefault, code, CFStringGetSystemEncoding()); err = SetDataBrowserItemDataText(itemData, str); CFRelease(str); } break; case kCmDescription: if (changeValue) { code[0] = 0; err = GetDataBrowserItemDataText(itemData, &str); strcpy(code, GetMultiByteCharacters(str, 19)); CFRelease(str); if (code[0] == 0) { code[0] = ' '; code[1] = 0; } strcpy(citem[itemID - 1].description, code); } else { str = CFStringCreateWithCString(kCFAllocatorDefault, citem[itemID - 1].description, CFStringGetSystemEncoding()); err = SetDataBrowserItemDataText(itemData, str); CFRelease(str); } break; case kDataBrowserItemIsActiveProperty: err = SetDataBrowserItemDataBooleanValue(itemData, true); break; case kDataBrowserItemIsEditableProperty: err = SetDataBrowserItemDataBooleanValue(itemData, true); break; default: result = errDataBrowserPropertyNotSupported; } return (result); }
OSStatus wxMacListBoxItem::GetSetData(wxMacDataItemBrowserControl *owner , DataBrowserPropertyID property, DataBrowserItemDataRef itemData, bool changeValue ) { wxMacDataBrowserListControl *lb = wxDynamicCast(owner,wxMacDataBrowserListControl); OSStatus err = errDataBrowserPropertyNotSupported; if ( !changeValue ) { if ( property >= kMinColumnId ) { wxMacDataBrowserColumn* col = lb->GetColumnFromProperty( property ); unsigned int n = owner->GetLineFromItem( this ); wxListBox *list = wxDynamicCast( owner->GetWXPeer() , wxListBox ); wxMacDataBrowserCellValue valueholder(itemData); list->GetValueCallback( n , col, valueholder ); err = noErr; } else { if ( property == kDataBrowserItemIsEditableProperty ) { DataBrowserPropertyID propertyToEdit ; GetDataBrowserItemDataProperty( itemData, &propertyToEdit ); wxMacDataBrowserColumn* col = lb->GetColumnFromProperty( propertyToEdit ); verify_noerr(SetDataBrowserItemDataBooleanValue( itemData, col->IsEditable() )); err = noErr; } } } else { if ( property >= kMinColumnId ) { wxMacDataBrowserColumn* col = lb->GetColumnFromProperty( property ); unsigned int n = owner->GetLineFromItem( this ); wxListBox *list = wxDynamicCast( owner->GetWXPeer() , wxListBox ); wxMacDataBrowserCellValue valueholder(itemData); list->SetValueCallback( n , col, valueholder ); /* // we have to change this behind the back, since Check() would be triggering another update round bool newVal = !m_isChecked; verify_noerr(SetDataBrowserItemDataButtonValue( itemData, newVal ? kThemeButtonOn : kThemeButtonOff )); m_isChecked = newVal; err = noErr; wxCommandEvent event( wxEVT_CHECKLISTBOX, checklist->GetId() ); event.SetInt( owner->GetLineFromItem( this ) ); event.SetEventObject( checklist ); checklist->HandleWindowEvent( event ); */ err = noErr; } } // call inherited if not ours if ( err == errDataBrowserPropertyNotSupported ) { err = wxMacDataItem::GetSetData(owner, property, itemData, changeValue); } return err; }
static pascal OSStatus drivers_getset_item (ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { OSStatus err = noErr; if (!changeValue) switch (property) { case DBNAME_ID: SetDataBrowserItemDataText (itemData, Drivers_array[0][itemID - DBITEM_ID - 1]); break; case DBFILE_ID: SetDataBrowserItemDataText (itemData, Drivers_array[1][itemID - DBITEM_ID - 1]); break; case DBVERSION_ID: SetDataBrowserItemDataText (itemData, Drivers_array[2][itemID - DBITEM_ID - 1]); break; case DBSIZE_ID: SetDataBrowserItemDataText (itemData, Drivers_array[3][itemID - DBITEM_ID - 1]); break; case DBDATE_ID: SetDataBrowserItemDataText (itemData, Drivers_array[4][itemID - DBITEM_ID - 1]); break; case kDataBrowserItemIsActiveProperty: if (itemID > DBITEM_ID && itemID <= DBITEM_ID + Drivers_nrows) err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsEditableProperty: err = SetDataBrowserItemDataBooleanValue (itemData, true); break; case kDataBrowserItemIsContainerProperty: err = SetDataBrowserItemDataBooleanValue (itemData, itemID == DBITEM_ID); break; case kDataBrowserContainerAliasIDProperty: break; case kDataBrowserItemParentContainerProperty: break; default: err = errDataBrowserPropertyNotSupported; break; } else err = errDataBrowserPropertyNotSupported; return err; }