/// <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); }