コード例 #1
0
        /// <summary>
        /// 读取指定窗口的配置
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        private UIInfo GetUIInfo(string name)
        {
            string queryStr = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mTableName, "name", name);

            var reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, queryStr);

            if (reader == null)
            {
                return(null);
            }

            if (!reader.HasRows || !reader.Read())
            {
                reader.Close();
                reader.Dispose();
                return(null);
            }

            UIInfo info = new UIInfo();

            info.name              = name;
            info.support_back      = DBTextResource.ParseBT_s(GetReaderString(reader, "support_back"), 0) == 1;
            info.is_modal          = DBTextResource.ParseBT_s(GetReaderString(reader, "is_modal"), 0) == 1;
            info.ui_type           = DBTextResource.ParseBT_s(GetReaderString(reader, "ui_type"), 0);
            info.is_global         = DBTextResource.ParseBT_s(GetReaderString(reader, "is_global"), 0) == 1;
            info.sub_panels        = GetReaderString(reader, "sub_panels");
            info.init_open_panels  = GetReaderString(reader, "init_open_panels");
            info.sub_canvas_lenght = DBTextResource.ParseBT_s(GetReaderString(reader, "sub_canvas_lenght"), 0);
            info.lua_path          = GetReaderString(reader, "lua_path");

            var    delay_time_text = GetReaderString(reader, "destroy_delay_time");
            ushort delay_time      = 0;

            if (string.IsNullOrEmpty(delay_time_text))
            {
                if (SystemInfo.systemMemorySize <= 1024)
                {
                    delay_time = 10;
                }
                else
                {
                    delay_time = 20;
                }
            }
            else
            {
                delay_time = DBTextResource.ParseUS_s(delay_time_text, 10);
            }
            info.destroy_delay_time = delay_time;

            info.static_layer_index = DBTextResource.ParseS_s(GetReaderString(reader, "static_layer_index"), -1);
            info.reconnect_handle   = DBTextResource.ParseBT_s(GetReaderString(reader, "reconnect_handle"), 0);
            info.return_handle      = DBTextResource.ParseBT_s(GetReaderString(reader, "return_handle"), 0);
            info.stay_when_switch_plane_instance = DBTextResource.ParseBT_s(GetReaderString(reader, "stay_when_switch_plane_instance"), 0) == 1;
            info.close_wins_type_when_show       = DBTextResource.ParseBT_s(GetReaderString(reader, "close_wins_type_when_show"), 0);
            info.ban_back_last_panel             = DBTextResource.ParseBT_s(GetReaderString(reader, "ban_back_last_panel"), 0) == 1;
            info.ban_sub_window_when_back        = DBTextResource.ParseBT_s(GetReaderString(reader, "ban_sub_window_when_back"), 0) == 1;
            info.reopen   = DBTextResource.ParseBT_s(GetReaderString(reader, "reopen"), 0) == 1;
            info.patch_id = DBTextResource.ParseBT_s(GetReaderString(reader, "patch_id"), 0);

            mData[info.name] = info;

            reader.Close();
            reader.Dispose();

            return(info);
        }