예제 #1
0
        /// <summary>
        /// Returns the first #GFlagsValue which is set in @value.
        /// </summary>
        /// <param name="flagsClass">
        /// a #GFlagsClass
        /// </param>
        /// <param name="value">
        /// the value
        /// </param>
        /// <returns>
        /// the first #GFlagsValue which is set in
        ///          @value, or %NULL if none is set
        /// </returns>
        public static FlagsValue GetFirstValue(FlagsClass flagsClass, uint value)
        {
            if (flagsClass == null)
            {
                throw new ArgumentNullException(nameof(flagsClass));
            }

            var ret_ = g_flags_get_first_value(flagsClass.Handle, value);
            var ret  = Marshal.PtrToStructure <FlagsValue> (ret_);

            return(ret);
        }
예제 #2
0
        /// <summary>
        /// Looks up a #GFlagsValue by nickname.
        /// </summary>
        /// <param name="flagsClass">
        /// a #GFlagsClass
        /// </param>
        /// <param name="nick">
        /// the nickname to look up
        /// </param>
        /// <returns>
        /// the #GFlagsValue with nickname @nick,
        ///          or %NULL if there is no flag with that nickname
        /// </returns>
        public static FlagsValue GetValueByNick(FlagsClass flagsClass, string nick)
        {
            if (flagsClass == null)
            {
                throw new ArgumentNullException(nameof(flagsClass));
            }
            if (nick == null)
            {
                throw new ArgumentNullException(nameof(nick));
            }
            var nick_ = GMarshal.StringToUtf8Ptr(nick);
            var ret_  = g_flags_get_value_by_nick(flagsClass.Handle, nick_);

            GMarshal.Free(nick_);
            var ret = Marshal.PtrToStructure <FlagsValue> (ret_);

            return(ret);
        }