void create_login (HWND hwnd, LPCSTR username, LPCSTR password, LPCSTR dsn, TLOGIN * log_t) { EventTypeSpec controlSpec = { kEventClassControl, kEventControlHit }; RgnHandle cursorRgn = NULL; WindowRef wlogin; ControlRef control; ControlID controlID; EventRecord event; IBNibRef nibRef; OSStatus err; char msg[1024]; if (hwnd == NULL) return; /* Search the bundle for a .nib file named 'odbcadmin'. */ err = CreateNibReferenceWithCFBundle (CFBundleGetBundleWithIdentifier (CFSTR ("org.iodbc.drvproxy")), CFSTR ("login"), &nibRef); if (err == noErr) { /* Nib found ... so create the window */ CreateWindowFromNib (nibRef, CFSTR ("Dialog"), &wlogin); DisposeNibReference (nibRef); /* Set the title with the DSN */ if (dsn) { msg[0] = STRLEN ("Login for ") + STRLEN(dsn); sprintf (msg+1, "Login for %s", (char*)dsn); SetWTitle (wlogin, msg); } /* Set the control into the structure */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, LBUSER_CNTL, wlogin, log_t->username); GETCONTROLBYID (controlID, CNTL_SIGNATURE, LBPASS_CNTL, wlogin, log_t->password); log_t->user = log_t->pwd = NULL; log_t->mainwnd = wlogin; /* Install handlers for the finish button, the cancel */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, LBOK_CNTL, wlogin, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (login_ok_clicked), 1, &controlSpec, log_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, LBCANCEL_CNTL, wlogin, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (login_cancel_clicked), 1, &controlSpec, log_t, NULL); SetControlData (log_t->username, 0, kControlEditTextTextTag, username ? STRLEN (username) : STRLEN(""), (UInt8 *) username ? username : ""); SetControlData (log_t->password, 0, kControlEditTextPasswordTag, password ? STRLEN (password) : STRLEN(""), (UInt8 *) password ? password : ""); /* Show the window and run the loop */ AdvanceKeyboardFocus (wlogin); ShowWindow (wlogin); /* The main loop */ while (log_t->mainwnd) { switch (WaitNextEvent (everyEvent, &event, 60L, cursorRgn)) { }; } } else goto error; return; error: fprintf (stderr, "Can't load Window. Err: %d\n", (int) err); return; }
LPSTR create_gensetup (HWND hwnd, LPCSTR dsn, LPCSTR attrs, BOOL add, BOOL *verify_conn) { EventTypeSpec controlSpec = { kEventClassControl, kEventControlHit }; RgnHandle cursorRgn = NULL; TGENSETUP gensetup_t; ControlID controlID; WindowRef wgensetup; ControlRef control; EventRecord event; IBNibRef nibRef; OSStatus err; char msg[1024]; gensetup_t.verify_conn = true; /* Search the bundle for a .nib file named 'odbcadmin'. */ /* Search the bundle for a .nib file named 'odbcadmin'. */ err = CreateNibReferenceWithCFBundle (CFBundleGetBundleWithIdentifier ( CFSTR ("org.iodbc.adm")), CFSTR ("gensetup"), &nibRef); if (err == noErr) { /* Nib found ... so create the window */ CreateWindowFromNib (nibRef, CFSTR ("Dialog"), &wgensetup); DisposeNibReference (nibRef); /* Set the title with the DSN */ if (dsn) { msg[0] = STRLEN ("Setup of ") + STRLEN(dsn); sprintf (msg+1, "Setup of %s", (char*)dsn); SetWTitle (wgensetup, msg); } /* Install handlers for the finish button, the cancel */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSDSN_CNTL, wgensetup, gensetup_t.dsn_entry); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSVERIFYCONN_CNTL, wgensetup, gensetup_t.verify_conn_cb); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSLIST_CNTL, wgensetup, gensetup_t.key_list); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSKEYWORD_CNTL, wgensetup, gensetup_t.key_entry); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSVALUE_CNTL, wgensetup, gensetup_t.value_entry); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSUPDATE_CNTL, wgensetup, gensetup_t.bupdate); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSADD_CNTL, wgensetup, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (gensetup_add_clicked), 1, &controlSpec, &gensetup_t, NULL); InstallEventHandler (GetControlEventTarget (gensetup_t.bupdate), NewEventHandlerUPP (gensetup_update_clicked), 1, &controlSpec, &gensetup_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSOK_CNTL, wgensetup, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (gensetup_ok_clicked), 1, &controlSpec, &gensetup_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSCANCEL_CNTL, wgensetup, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (gensetup_cancel_clicked), 1, &controlSpec, &gensetup_t, NULL); /* Parse the attributes line */ gensetup_t.mainwnd = wgensetup; parse_attribute_line (&gensetup_t, dsn, attrs, add); AdvanceKeyboardFocus (wgensetup); /* Show the window and run the loop */ DeactivateControl (gensetup_t.bupdate); DSNSETUP = &gensetup_t; ShowWindow (wgensetup); /* The main loop */ while (gensetup_t.mainwnd) { switch (WaitNextEvent (everyEvent, &event, 60L, cursorRgn)) { }; } *verify_conn = gensetup_t.verify_conn; } else goto error; return gensetup_t.connstr; error: fprintf (stderr, "Can't load Window. Err: %d\n", (int) err); return gensetup_t.connstr; }
LPSTR create_keyval (WindowRef wnd, LPCSTR attrs, BOOL *verify_conn) { EventTypeSpec controlSpec = { kEventClassControl, kEventControlHit }; RgnHandle cursorRgn = NULL; TKEYVAL keyval_t; ControlID controlID; WindowRef wkeyval; ControlRef control; EventRecord event; IBNibRef nibRef; OSStatus err; /* Search the bundle for a .nib file named 'odbcadmin'. */ err = CreateNibReferenceWithCFBundle (CFBundleGetBundleWithIdentifier ( CFSTR ("org.iodbc.adm")), CFSTR ("keyval"), &nibRef); if (err == noErr) { /* Nib found ... so create the window */ CreateWindowFromNib (nibRef, CFSTR ("Dialog"), &wkeyval); DisposeNibReference (nibRef); /* Install handlers for the finish button, the cancel */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSVERIFYCONN_CNTL, wkeyval, keyval_t.verify_conn_cb); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSLIST_CNTL, wkeyval, keyval_t.key_list); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSKEYWORD_CNTL, wkeyval, keyval_t.key_entry); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSVALUE_CNTL, wkeyval, keyval_t.value_entry); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSUPDATE_CNTL, wkeyval, keyval_t.bupdate); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSADD_CNTL, wkeyval, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (keyval_add_clicked), 1, &controlSpec, &keyval_t, NULL); InstallEventHandler (GetControlEventTarget (keyval_t.bupdate), NewEventHandlerUPP (keyval_update_clicked), 1, &controlSpec, &keyval_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSOK_CNTL, wkeyval, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (keyval_ok_clicked), 1, &controlSpec, &keyval_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, GSCANCEL_CNTL, wkeyval, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (keyval_cancel_clicked), 1, &controlSpec, &keyval_t, NULL); /* Parse the attributes line */ keyval_t.mainwnd = wkeyval; addkeywords_to_list (keyval_t.key_list, attrs, &keyval_t); AdvanceKeyboardFocus (wkeyval); /* Show the window and run the loop */ DeactivateControl (keyval_t.bupdate); KEYVAL = &keyval_t; ShowSheetWindow(wkeyval, wnd); /* The main loop */ while (keyval_t.mainwnd) WaitNextEvent (everyEvent, &event, 60L, cursorRgn); if (keyval_t.connstr) *verify_conn = keyval_t.verify_conn; } else goto error; return keyval_t.connstr; error: fprintf (stderr, "Can't load Window. Err: %d\n", (int) err); return keyval_t.connstr; }
BOOL create_confirm_Internal (HWND hwnd, SQLPOINTER dsn, SQLPOINTER text, SQLCHAR waMode) { EventTypeSpec controlSpec = { kEventClassControl, kEventControlHit }; RgnHandle cursorRgn = NULL; ControlID controlID; ControlRef control; WindowRef wconfirm; TCONFIRM confirm_t; EventRecord event; IBNibRef nibRef; CFStringRef msg; OSStatus err; /* Search the bundle for a .nib file named 'odbcadmin'. */ err = CreateNibReferenceWithCFBundle (CFBundleGetBundleWithIdentifier (CFSTR ("org.iodbc.drvproxy")), CFSTR ("confirmation"), &nibRef); if (err == noErr) { /* Nib found ... so create the window */ CreateWindowFromNib (nibRef, CFSTR ("Dialog"), &wconfirm); DisposeNibReference (nibRef); /* Set the title with the DSN name */ if (dsn) { if (waMode == 'A') msg = CFStringCreateWithBytes (NULL, (unsigned char*)dsn, STRLEN(dsn), kCFStringEncodingUTF8, false); else msg = convert_wchar_to_CFString((wchar_t*)dsn); SetWindowTitleWithCFString (wconfirm, msg); CFRelease(msg); } /* Install handlers for the finish button, the cancel */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, CONFYES_CNTL, wconfirm, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (confirmadm_yes_clicked), 1, &controlSpec, &confirm_t, NULL); GETCONTROLBYID (controlID, CNTL_SIGNATURE, CONFNO_CNTL, wconfirm, control); InstallEventHandler (GetControlEventTarget (control), NewEventHandlerUPP (confirmadm_no_clicked), 1, &controlSpec, &confirm_t, NULL); /* Change the static field with the message */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, CONFTEXT_CNTL, wconfirm, control); if (waMode == 'A') SetControlData (control, 0, kControlEditTextTextTag, STRLEN (text), text); else { msg = convert_wchar_to_CFString((wchar_t*)text); SetControlData (control, 0, kControlEditTextCFStringTag, sizeof(CFStringRef), &msg); CFRelease(msg); } DrawOneControl (control); confirm_t.yes_no = FALSE; confirm_t.mainwnd = wconfirm; /* Show the window and run the loop */ ShowWindow (wconfirm); /* The main loop */ while (confirm_t.mainwnd) WaitNextEvent (everyEvent, &event, 60L, cursorRgn); } else goto error; return confirm_t.yes_no; error: fprintf (stderr, "Can't load Window. Err: %d\n", (int) err); return confirm_t.yes_no; }
void create_driverchooser (HWND hwnd, TDRIVERCHOOSER * choose_t) { EventTypeSpec controlSpec = { kEventClassControl, kEventControlHit }; RgnHandle cursorRgn = NULL; WindowRef wdrvchooser; ControlID controlID; EventRecord event; IBNibRef nibRef; OSStatus err; if (hwnd == NULL) return; /* Search the bundle for a .nib file named 'odbcadmin'. */ err = CreateNibReferenceWithCFBundle (CFBundleGetBundleWithIdentifier (CFSTR ("org.iodbc.adm")), CFSTR ("odbcdriver"), &nibRef); if (err == noErr) { /* Nib found ... so create the window */ CreateWindowFromNib (nibRef, CFSTR ("Dialog"), &wdrvchooser); DisposeNibReference (nibRef); /* Set the control into the structure */ GETCONTROLBYID (controlID, CNTL_SIGNATURE, DCLIST_CNTL, wdrvchooser, choose_t->driverlist); GETCONTROLBYID (controlID, CNTL_SIGNATURE, DCFINISH_CNTL, wdrvchooser, choose_t->b_add); GETCONTROLBYID (controlID, CNTL_SIGNATURE, DCCANCEL_CNTL, wdrvchooser, choose_t->b_remove); choose_t->driver = NULL; choose_t->mainwnd = wdrvchooser; /* Install handlers for the finish button, the cancel */ InstallEventHandler (GetControlEventTarget (choose_t->b_add), NewEventHandlerUPP (driverchooser_ok_clicked), 1, &controlSpec, choose_t, NULL); InstallEventHandler (GetControlEventTarget (choose_t->b_remove), NewEventHandlerUPP (driverchooser_cancel_clicked), 1, &controlSpec, choose_t, NULL); Drivers_nrows = 0; adddrivers_to_list (choose_t->driverlist, choose_t->mainwnd, TRUE); /* Show the window and run the loop */ choose_t->b_configure = NULL; DRIVERCHOOSER = choose_t; DeactivateControl (DRIVERCHOOSER->b_add); ShowWindow (wdrvchooser); /* The main loop */ while (choose_t->mainwnd) WaitNextEvent (everyEvent, &event, 60L, cursorRgn); } else goto error; return; error: choose_t->driver = NULL; fprintf (stderr, "Can't load Window. Err: %d\n", (int) err); return; }