-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEventHandlers.incl
217 lines (158 loc) · 5.48 KB
/
EventHandlers.incl
1
void local fn MyCustomCellCallback( tag as long, identifier as CFStringRef, row as NSInteger, vw as CFTypeRef, userData as ptr )'~'1CFDictionaryRef dict = fn ArrayObjectAtIndex( fn TableViewData( tag ), row )select ( fn ViewTag( vw ) )case _tableCheckboxButtonSetState( vw, fn NumberIntegerValue( fn DictionaryObjectForKey( dict, identifier ) ) )case _tablePopUpPopUpButtonSelectItemAtIndex( vw, fn NumberIntegerValue( fn DictionaryObjectForKey( dict, identifier ) ) )case _tableRatingControlSetIntegerValue( vw, fn NumberIntegerValue( fn DictionaryObjectForKey( dict, identifier ) ) )end selectend fn// menu events arrive herevoid local fn DoMenu( menuID as long, itemID as long )'~'1select case ( menuID )case _mFileselect case ( itemID )case _iClose : fn CloseSQLite3Databaseend selectend selectend fnvoid local fn DoToolbar( whichTag as long )//~NSLog(@"toolbar item %ld clicked", whichTag )select case ( whichTag )case _personButtonToolbarItemSetBordered( _mainToolbar, _personButton, YES )ToolbarItemSetEnabled( _mainToolbar, _personButton, NO )ToolbarItemSetBordered( _mainToolbar, _contactButton, NO )ToolbarItemSetEnabled( _mainToolbar, _contactButton, YES )ToolbarItemSetBordered( _mainToolbar, _addressButton, NO )ToolbarItemSetEnabled( _mainToolbar, _addressButton, YES )// hide and show viewsViewSetHidden( _personView, NO )ViewSetHidden( _contactView, YES )ViewSetHidden( _addressView, YES )case _contactButtonToolbarItemSetBordered( _mainToolbar, _personButton, NO )ToolbarItemSetEnabled( _mainToolbar, _personButton, YES )ToolbarItemSetBordered( _mainToolbar, _contactButton, YES )ToolbarItemSetEnabled( _mainToolbar, _contactButton, NO )ToolbarItemSetBordered( _mainToolbar, _addressButton, NO )ToolbarItemSetEnabled( _mainToolbar, _addressButton, YES )// hide and show viewsViewSetHidden( _personView, YES )ViewSetHidden( _contactView, NO )ViewSetHidden( _addressView, YES )case _addressButtonToolbarItemSetBordered( _mainToolbar, _personButton, NO )ToolbarItemSetEnabled( _mainToolbar, _personButton, YES )ToolbarItemSetBordered( _mainToolbar, _contactButton, NO )ToolbarItemSetEnabled( _mainToolbar, _contactButton, YES )ToolbarItemSetBordered( _mainToolbar, _addressButton, YES )ToolbarItemSetEnabled( _mainToolbar, _addressButton, NO )// hide and show viewsViewSetHidden( _personView, YES )ViewSetHidden( _contactView, YES )ViewSetHidden( _addressView, NO )case _preferencesButtonToolbarItemSetBordered( _mainToolbar, _preferencesButton, YES )' WindowBeginSheet( _window, _sheetWindow )end selectend fnvoid local fn DoDialog( whichEvent as long, whichTag as long, whichWindow as long )'~'1CFStringRef identifierCFMutableDictionaryRef resultsDictionaryRefselect case ( whichWindow )'Main Window contains the Table Viewcase _windowselect case ( whichEvent )case _btnClick//~NSLog(@"single click")case _tableViewSelectionDidChangeSegmentedControlSetSegmentEnabled( _addRemoveSegment, _removeContactSegmentItem, ( fn TableViewSelectedRow( whichTag ) != -1 ))select case ( whichTag )case _contactListViewidentifier = fn DictionaryObjectForKey( fn ArrayObjectAtIndex( fn TableViewData( _contactListView ), fn TableViewSelectedRow( _contactListView )), @"ID" )resultsDictionaryRef = fn GetPersonByIDRecord( identifier )fn PopulatePersonView( resultsDictionaryRef )resultsDictionaryRef = fn GetAddressesByPersonIDRecord( identifier )fn PopulateAddressesView( resultsDictionaryRef )resultsDictionaryRef = fn GetContactsByPersonIDRecord( identifier )fn PopulateContactsView( resultsDictionaryRef )end selectcase _tableViewCellTextDidEndEditing'update cost cell when qty or price change'identifier = fn TableViewEventColumnIdentifier( tag )case _toolbarItemClick//~NSLog(@"toolbar item %ld clicked", whichTag )select case ( whichTag )case _personButtonfn DoToolbar( _personButton )case _contactButtonfn DoToolbar( _contactButton )case _addressButtonfn DoToolbar( _addressButton )case _preferencesButtonfn DoToolbar( _preferencesButton )end selectcase _viewAcceptsFirstResponderselect case ( whichTag )case _contactView//~NSLog(@"_viewAcceptsFirstResponder event for view %ld", whichTag )end selectcase _windowWillCloseif ( fn CloseSQLite3Database )endelse//~NSLog( @"Can't Close the database…" )end ifend select'Preferences Window contains Database Connection String, etc…case _preferencesWindowselect case ( whichEvent )case _btnClickselect case( whichTag )case _preferenceSaveButton' string = fn ControlStringValue( _preferenceDatabasePath )' WindowEndSheet( _window, _sheetWindow )' textfield 2,, string,,_windowcase _preferenceCancelButton' WindowEndSheet( _window, _sheetWindow )end selectToolbarItemSetBordered( _mainToolbar, _preferencesButton, NO )end selectend selectend fnvoid local fn DoAppEvent( whichEvent as long )'~'1' BOOL isConnected/* * * Does Preferences File Exist? * if exists * then open preferences file * read preferences into dictionary * if not exists * then create preferences file * */select ( whichEvent )case _appWillFinishLaunching//~NSLog(@"_appWillFinishLaunching")'fn OpenSQLite3DatabasegDatabaseURL = fn CreateGlobalURLgDBIsConnected = fn OpenSQLite3Database( gDatabaseURL )' fn CreateEmptySQLDatabaseif ( gDBIsConnected )fn TestSQLiteend if' fn TestSQLiteInsert' fn GetCustomers' fn ContactSampleDataBuildcase _appShouldTerminateAfterLastWindowClosedAppEventSetBool( YES ) ' tell the runtime we can quitend selectend fn