/** * @internal * Function oyOption_UpdateFlags_ * @memberof oyOption_s * @brief set the ::flags member * * @date 2015/05/13 * @version Oyranos: 0.9.6 * @since 2008/11/27 (Oyranos: 0.1.9) */ void oyOption_UpdateFlags_ ( oyOption_s_ * o ) { const char * tmp = 0; if(o && o->registration && oyStrrchr_( o->registration, '/' )) { tmp = oyStrrchr_( o->registration, '/' ); if(oyStrstr_( tmp, "front" )) o->flags |= oyOPTIONATTRIBUTE_FRONT; if(oyStrstr_( tmp, "advanced" )) o->flags |= oyOPTIONATTRIBUTE_ADVANCED; tmp = 0; o->flags |= oyOPTIONATTRIBUTE_EDIT; } }
/** Function oyOption_FromRegistration * @memberof oyOption_s * @brief new option with registration and value filled from DB if available * * FIXME value filled from DB if available??? * * @param registration no or full qualified registration * @param object the optional object * @return the option * * @version Oyranos: 0.1.10 * @since 2009/01/24 (Oyranos: 0.1.10) * @date 2009/01/24 */ oyOption_s * oyOption_FromRegistration( const char * registration, oyObject_s object ) { oyOption_s *s = oyOption_New( object ); if(registration) { if(!registration[0] || !oyStrrchr_( registration, OY_SLASH_C )) { WARNc2_S("%s: %s", "passed a incomplete registration string to option creation", registration ); oyOption_Release( &s ); return 0; } else oyOption_SetRegistration( s, registration ); } return s; }
int main ( int argc , char **argv ) { fprintf(stdout,"\n===== SIMPLE UI TOOLKIT =====\n\n"); const char *wrong_arg = 0; char *output_model_file = 0; char *xforms_text = 0; char *input_xml_file = 0; sXformsNode *head; struct sCbData *CallBackData; xmlDoc *modelDocPtr; GtkBuilder *builder; GtkWidget *window; GError *error = NULL; if(argc) { #define OY_PARSE_STRING_ARG( opt ) \ if( pos + 1 < argc && argv[pos][i+1] == 0 ) \ { opt = argv[pos+1]; \ if( opt == 0 && strcmp(argv[pos+1],"0") ) \ wrong_arg = "-" #opt; \ ++pos; \ i = 1000; \ } else if(argv[pos][i+1] == '=') \ { opt = &argv[pos][i+2]; \ if( opt == 0 && strcmp(&argv[pos][i+2],"0") ) \ wrong_arg = "-" #opt; \ i = 1000; \ } else wrong_arg = "-" #opt; \ if(argc != 1) { int pos = 1, i; while(pos < argc) { switch(argv[pos][0]) { case '-': for(i = 1; i < (int)strlen(argv[pos]); ++i) switch (argv[pos][i]) { case 'o': OY_PARSE_STRING_ARG( output_model_file ); break; case 'i': OY_PARSE_STRING_ARG( input_xml_file ); break; case 'v': break;//oy_debug += 1; break; case 'h': usage(argc, argv); exit (0); break; case 'l': /* only for compatibility with cmd line */ break; #if 0 case '-': if(strcmp(&argv[pos][2],"verbose") == 0) { //oy_debug += 1; i=100; break; } STRING_ADD( t, &argv[pos][2] ); text = oyStrrchr_(t, '='); /* get the key only */ if(text) text[0] = 0; oyStringListAddStaticString_( &other_args,&other_args_n, t, oyAllocateFunc_,oyDeAllocateFunc_ ); if(text) oyStringListAddStaticString_( &other_args,&other_args_n, oyStrrchr_(&argv[pos][2], '=') + 1, oyAllocateFunc_,oyDeAllocateFunc_ ); else { if(argv[pos+1]) { oyStringListAddStaticString_( &other_args, &other_args_n, argv[pos+1], oyAllocateFunc_,oyDeAllocateFunc_ ); ++pos; } else wrong_arg = argv[pos]; } if(t) oyDeAllocateFunc_( t ); t = 0; i=100; break; #endif case '?': default: fprintf(stderr, "%s -%c\n", ("Unknown argument"), argv[pos][i]); usage(argc, argv); exit (0); break; } break; default: wrong_arg = argv[pos]; } if( wrong_arg ) { fprintf(stderr, "%s %s\n", ("wrong argument to option:"), wrong_arg); exit(1); } ++pos; } } } fprintf(stdout,"INPUT FILE = %s\n",input_xml_file); if(!input_xml_file) { #if 0 size_t text_size = 0; text = oyReadStdinToMem_(&text_size, oyAllocateFunc_); if(text_size == 0) { usage(argc, argv); exit (0); } #else usage(argc, argv); exit (0); #endif } if(input_xml_file) { xforms_text = sReadFileToMem(input_xml_file); } head = ParseXformsToTree( xforms_text,&modelDocPtr); //sPrintsXformsTree(head); gtk_init( &argc, &argv ); builder = gtk_builder_new(); //cb_data = sGenerateGladeFile(head); CallBackData = sGenerateGladeFile(head,modelDocPtr,&DummyIfFunction); //print_user_data(CallBackData); if( ! gtk_builder_add_from_file( builder, sGTK_UI_FILE, &error ) ) { g_warning( "%s", error->message ); g_free( error ); return( 1 ); } //Get main window pointer from UI window = GTK_WIDGET( gtk_builder_get_object( builder, sGTK_GLADE_MAIN_WINDOW_NAME) ); // = MakeDummy(); gtk_builder_connect_signals( builder, CallBackData); g_object_unref( G_OBJECT( builder ) ); gtk_widget_show( window ); gtk_main(); if(output_model_file) { FILE *fp = fopen(output_model_file,"w"); if( fp != NULL ) xmlDocDump(fp, modelDocPtr); fclose(fp); } xmlDocDump(stdout, modelDocPtr); fprintf(stdout,"\n"); return( 0 ); }