PF_Err Arb_Print( PF_InData *in_data, PF_OutData *out_data, PF_ArbPrintFlags print_flags, PF_ArbitraryH arbH, A_u_long print_sizeLu, A_char *print_bufferPC) { PF_Err err = PF_Err_NONE; PF_Handle a_handle = arbH; A_long countL = 0; if (a_handle) { CG_ArbData *a_arbP; a_arbP = (CG_ArbData*)PF_LOCK_HANDLE(a_handle); if (!a_arbP) { err = PF_Err_UNRECOGNIZED_PARAM_TYPE; } else { if (!print_flags && print_sizeLu >= COLORGRID_ARB_MAX_PRINT_SIZE) { A_u_long indexLu = 0; A_char bufAC[64]; // All data for this one parameter must be on the same line for (countL = 0; countL < CG_ARBDATA_ELEMENTS; ++countL) { PF_SPRINTF(bufAC, "ColorGrid %d\t", countL + 1); ERR(AEFX_AppendText(bufAC, (const A_u_long)print_sizeLu, print_bufferPC, &indexLu)); if (!err) { PF_SPRINTF( bufAC, "R=%f\tG=%f\tB=%f\t", a_arbP->colorA[countL].red, a_arbP->colorA[countL].green, a_arbP->colorA[countL].blue); ERR(AEFX_AppendText(bufAC, (const A_u_long)print_sizeLu, print_bufferPC, &indexLu)); } } } else if ((print_sizeLu) && print_bufferPC) { print_bufferPC[0] = 0x00; } PF_UNLOCK_HANDLE(a_handle); } } if (err == AEFX_ParseError_APPEND_ERROR) { err = PF_Err_OUT_OF_MEMORY; // increase COLORGRID_ARB_MAX_PRINT_SIZE } return err; }
static PF_Err PopDialog ( PF_InData *in_data, PF_OutData *out_data, PF_ParamDef *params[], PF_LayerDef *output ) { PF_Err err = PF_Err_NONE; PF_SPRINTF( out_data->return_msg, "This would be a fine place for\ra platform-specific options dialog."); out_data->out_flags |= PF_OutFlag_DISPLAY_ERROR_MESSAGE; return err; }
static PF_Err About ( PF_InData *in_data, PF_OutData *out_data, PF_ParamDef *params[], PF_LayerDef *output ) { PF_SPRINTF( out_data->return_msg, "%s, v%d.%d\r%s", NAME, MAJOR_VERSION, MINOR_VERSION, DESCRIPTION); return PF_Err_NONE; }
static PF_Err DoClick( PF_InData *in_data, PF_OutData *out_data, PF_ParamDef *params[], PF_LayerDef *output, PF_EventExtra *event_extra ) { PF_Err err = PF_Err_NONE; ArbitraryData *arb_data = (ArbitraryData *)PF_LOCK_HANDLE(params[OCIO_DATA]->u.arb_d.value); SequenceData *seq_data = (SequenceData *)PF_LOCK_HANDLE(in_data->sequence_data); if(event_extra->effect_win.area == PF_EA_CONTROL) { bool menus_visible = (arb_data->action != OCIO_ACTION_NONE); bool third_menu = (arb_data->action == OCIO_ACTION_DISPLAY); PF_Point local_point; local_point.h = event_extra->u.do_click.screen_point.h - event_extra->effect_win.current_frame.left; local_point.v = event_extra->u.do_click.screen_point.v - event_extra->effect_win.current_frame.top; UIRegion reg = WhichRegion(local_point, menus_visible, third_menu); if(reg != REGION_NONE) { try { if(reg == REGION_CONFIG_MENU) { DoClickConfig(in_data, out_data, params, output, event_extra, arb_data, seq_data); } else if(reg == REGION_PATH) { if(arb_data->source == OCIO_SOURCE_CUSTOM) { DoClickPath(in_data, out_data, params, output, event_extra, arb_data, seq_data); } } else if(arb_data->action != OCIO_ACTION_NONE && seq_data->status != STATUS_FILE_MISSING) { if(seq_data->context == NULL) { seq_data->context = new OpenColorIO_AE_Context(arb_data, GetProjectDir(in_data) ); } if(reg == REGION_CONVERT_BUTTON || reg == REGION_DISPLAY_BUTTON) { DoClickConvertDisplay(in_data, out_data, params, output, event_extra, arb_data, seq_data, reg); } else if(reg == REGION_EXPORT_BUTTON) { DoClickExport(in_data, out_data, params, output, event_extra, arb_data, seq_data, reg); } else // must be a menu then { DoClickMenus(in_data, out_data, params, output, event_extra, arb_data, seq_data, reg); } } } catch(std::exception &e) { if(in_data->appl_id == 'FXTC') { PF_SPRINTF(out_data->return_msg, e.what()); out_data->out_flags |= PF_OutFlag_DISPLAY_ERROR_MESSAGE; } else { void *hwndOwner = NULL; #ifdef WIN_ENV PF_GET_PLATFORM_DATA(PF_PlatData_MAIN_WND, &hwndOwner); #endif ErrorMessage(e.what(), hwndOwner); } } catch(...) { PF_SPRINTF(out_data->return_msg, "Unknown error"); out_data->out_flags |= PF_OutFlag_DISPLAY_ERROR_MESSAGE; } } } PF_UNLOCK_HANDLE(params[OCIO_DATA]->u.arb_d.value); PF_UNLOCK_HANDLE(in_data->sequence_data); event_extra->evt_out_flags = PF_EO_HANDLED_EVENT; return err; }