Adding Options to Widget Functions




  
      case CMDIdx: {

                gchar *val1 = NULL;
                gchar *val2 = NULL;

                static const char *opts[] = { "-option1", "-option2", NULL };

                enum optsIdx { opt1IDX, opt2IDX };

                gint i, idx;

                for ( i = 2; i < objc; i += 2 ) {

                    getIdx ( opts, Tcl_GetString ( objv[i] ), &idx );

                    switch ( idx ) {
                        case opt1IDX: {
                                val1 = Tcl_GetString ( objv[i + 1] );
                            }
                            break;

                        case opt2IDX: {
                                val2 = Tcl_GetString ( objv[i + 1] );
                            }
                            break;

                        default: {
                                return TCL_ERROR;
                            }
                    }
                }
               
                some_function (widget, val1, val2);

            }
            break;

Comments